NEUE VERSION: 'Kurs42_To_CNF'

Hier können alle Themen rund um die neuen zusätzlichen Blockungsprogramme diskutiert werden.

Moderator: wschrewe

Benutzeravatar
wschrewe
Fachberater*in
Beiträge: 1882
Registriert: Dienstag 25. September 2018, 17:36
Schulform: BK (Pensionär)
Kontaktdaten:

Re: NEUE VERSION: 'Kurs42_To_CNF'

Beitrag von wschrewe »

B. Bartsch hat geschrieben: Dienstag 11. Dezember 2018, 21:55 - Importiert man NUR Blockplan.txt, so erscheint der Fehler 'Feld "Kurs_ID" nicht gefunden'.
- Importiert man NUR Kursbelegung.txt, so erscheint zunächst kein Fehler, aber anschließend stürzt das Programm ab, sobald man auf einen Kurs klickt.
Stimmt, habe ich beim Experimentieren mit Ihrem Programm auch bemerkt. Der Fehler ist beseitigt. Ich hätte da noch eine Anregung: Offenbar werden die Blockungsergebnisse in den zwei Dateien 'Kursbelegung_x.txt' und 'Blockplan_x.txt' gespeichert. Ich fände es sinvoller, von den existierenden Dateien Kopien anzulegen und die Ergebnisse mit den Oprinalnamen zu speichern, weil man dann (über Datei->Neue Blockung aus Textdateien...') schnell eine neue Blockungsdatei mit Ihren Ergebnissen anlegen kann, vorausgesetzt, man hat die Blockung vorher (über den entsprechenden Menüpunkt) in eine Textdatei exportiert.

Einen korrigierten Snapshot lade ich gleich hoch.
Mit freundlichen Grüßen
Walter Schrewe
"If all else fails, read the instructions" (Donald E. Knuth, letzter TeX - Hilfehinweis)
M. Plümper
Fachberater*in
Beiträge: 749
Registriert: Montag 1. Oktober 2018, 20:30
Schulform: Gymnasium
Kontaktdaten:

Re: NEUE VERSION: 'Kurs42_To_CNF'

Beitrag von M. Plümper »

Unter Umständen werden aber nahezu zeitgleich mehrere Lösungen gefunden und entsprechend gespeichert. Dann würde nur immer eine gesichert. Vielleicht wäre es ja möglich für jede Lösung einen Unterordner anzulegen, wo die Originaldateien und die durch die Blockung erzeugten Dateien richtig benannt zusammen abgelegt werden.
B. Bartsch
Fachberater*in
Beiträge: 321
Registriert: Dienstag 4. Dezember 2018, 14:14
Schulform: Gymnasium

Re: NEUE VERSION: 'Kurs42_To_CNF'

Beitrag von B. Bartsch »

... anbei die neue Version (2018-12-13).

- NEU: Jedes Ergebnis wird in einem separaten Unterordner gespeichert. Dabei wird zunächst der Inhalt des Originalordner kopiert, dann werden "Blockplan.txt" und "Kursbelegung.txt" überschrieben. Man sollte nichts anderes als die Textdateien im Originalordner haben, sonst gibt es unnötige Kopien.

- NEU: Man kann pro Schiene die Mindest- oder Höchstanzahl an SchülerInnen definieren.

Benjamin Bartsch
Dateianhänge
Kurs42_To_CNF_2018_12_13.jar
(405.72 KiB) 124-mal heruntergeladen
B. Bartsch
M. Plümper
Fachberater*in
Beiträge: 749
Registriert: Montag 1. Oktober 2018, 20:30
Schulform: Gymnasium
Kontaktdaten:

Re: NEUE VERSION: 'Kurs42_To_CNF'

Beitrag von M. Plümper »

Hallo Herr Bartsch,

nach einigen Tests möchte ich mich zunächst mal für die aktuelle Testoberfläche bedanken. Damit kann gut einzelne Aspekte testen. Auch die Ergebnisse der Lösungen sind sehr gut, so dass damit aus meiner Sicht eine gute alternative zum Blocken in anderen Programmen gefunden ist. Die Rechenzeiten variieren leider bei der gleichen Ausgangslange sehr stark, was aber durch viele parallele Rechnungen abgefangen werden kann (siehe ihren Vorschlag oben).

Die folgende Punkte würde ich noch anregen.

Es wäre schön, wenn es eine Blockungsdatei geben würde, in der die Einstellungen und Regeln einer erfolgreichen Berechnung gespeichert werden, also Kursdifferenzen, Umwähler, Regeln usw.
Wenn es diese Datei gäbe, dann könnte man sie im Textdateien-Verzeichnis ablegen. Liest man das Verzeichnis ein, so sollten die Einstellungen und Regeln links im Programm wiederhergestellt werden und ein Lösungs-Tab erzeugt werden, in dem die Zuordnung der Kurse zu den Schienen aus der Blockplan.txt übernommen wird.
Dadurch kann man wirklich an der Stelle weiter rechnen an der man aufgehört hat und auch die Optimierungsoptionen wie 8x80% nutzen. Das geht aktuell nicht, weil die Kurse unter den Regeln fixiert sind. Man trennt also Regeln von Ergebnissen.

Ein weiterer punkt wäre das einbeziehen der Schülerzuordnungen zu den Kursen. In kurs42 kann ich sehr leicht Schüler einem Kurs zuordnen und sie dort fixieren. In Kurs42_To_CNF muss man für jeden Schüler von Hand die Zuordnung eingeben. Es wäre daher gut, wenn zwei Dinge möglich wären:
  • Man kann die Schülerbelegung der Kurse aus den Textdateien optional übernehmen.
  • Es gibt eine Regel, alles Schüler eines Kurses in diesem zu fixieren.
Diese beiden Punkte sind wahrscheinlich relativ aufwendig umzusetzen, aber bspw. beim Ergänzen der Zusatzkurse in der Q2 absolut notwendig, weil ich dort die bestehenden Kurse nicht verändern möchte, falls es nicht unbedingt erforderlich ist.

Zum Abschluss noch eine Frage: Kann man auch Teilblockungen erstellen (also bspw. nur LKs) und dann mit diesen weiterrechnen?
B. Bartsch
Fachberater*in
Beiträge: 321
Registriert: Dienstag 4. Dezember 2018, 14:14
Schulform: Gymnasium

Re: NEUE VERSION: 'Kurs42_To_CNF'

Beitrag von B. Bartsch »

...anbei die neuste Kurs42_To_CNF Version (2018-12-15).

- NEU: Beim Öffnen eines Kurs42-Ordners wird nachgefragt, welche SchülerInnen eines Kurses man komplett fixieren möchte. Dies hat zur Folge, dass aus der "Kursbelegung.txt" die SchülerInnen des angekreuzten Kurses fixiert werden. Hinweis: Es können aber andere SchülerInnen in den Kurs kommen. Möchte man dies nicht, müsste man bei z.b. 20 SchülerInnen die Kursobergrenze auf 20 setzen.
Es wäre schön, wenn es eine Blockungsdatei geben würde, in der die Einstellungen und Regeln einer erfolgreichen Berechnung gespeichert werden, also Kursdifferenzen, Umwähler, Regeln usw.
Wenn es diese Datei gäbe, dann könnte man sie im Textdateien-Verzeichnis ablegen. Liest man das Verzeichnis ein, so sollten die Einstellungen und Regeln links im Programm wiederhergestellt werden und ein Lösungs-Tab erzeugt werden, in dem die Zuordnung der Kurse zu den Schienen aus der Blockplan.txt übernommen wird.
Dadurch kann man wirklich an der Stelle weiter rechnen an der man aufgehört hat und auch die Optimierungsoptionen wie 8x80% nutzen. Das geht aktuell nicht, weil die Kurse unter den Regeln fixiert sind. Man trennt also Regeln von Ergebnissen.
Also ich könnte die 5 Attribute (Schienengröße, GK-Umwahlen-Max, GK-Kursdifferenz, LK-Umwahlen-Max, LK-Kursdifferenz) in eine Textdatei schreiben und diese beim Öffnen einer Blockung rekonstruieren. Auch die Regeln könnte ich rekonstruieren. Programmiertechnisch geht dies nicht ganz so einfach, dafür habe ich momentan leider nicht die Zeit (gerne später).

Die Rekonstruktion einer Lösung bzw. eines Lösungsfenster ist leider extrem kompliziert, so wie ich das programmiert habe. Ich denke, das werde ich nicht umsetzen können (muss ich drüber nachdenken...;-) ).

B. Bartsch
Dateianhänge
Kurs42_To_CNF_2018_12_15.jar
(413.08 KiB) 137-mal heruntergeladen
B. Bartsch
B. Bartsch
Fachberater*in
Beiträge: 321
Registriert: Dienstag 4. Dezember 2018, 14:14
Schulform: Gymnasium

Re: NEUE VERSION: 'Kurs42_To_CNF'

Beitrag von B. Bartsch »

Zum Abschluss noch eine Frage: Kann man auch Teilblockungen erstellen (also bspw. nur LKs) und dann mit diesen weiterrechnen?
Nein, jedenfalls nicht direkt.

Ich beginne immer mit den LKs zuerst und taste mich dort heran (Regel: LKs allein in Schiene 1-2). Die Kursdifferenzen der GK-Kurse mache ich groß (20-30) und ich erlaube mehr Schienen (z.b. 4 mehr als nötig). Dann hat das Programm es sehr leicht mit den GKs und kann sich voll auf die LKS konzentrieren. Sobald die LKs 'optimal' sind, verschärfe ich die Bedingungen der GKs.

Benjamin Bartsch
B. Bartsch
M. Plümper
Fachberater*in
Beiträge: 749
Registriert: Montag 1. Oktober 2018, 20:30
Schulform: Gymnasium
Kontaktdaten:

Re: NEUE VERSION: 'Kurs42_To_CNF'

Beitrag von M. Plümper »

Danke für die Anpassung und die Rückmeldung. Ich werde voraussichtlich zwar diese Woche nicht mehr zum Testen kommen, aber vielleicht findet sich ja eine ruhige Minute in den Ferien.

Zur Rekonstruktion eines Lösungsfensters: Ich weiß zwar nicht, wie Sie die Lösungen intern verarbeiten, aber wenn aus den Textdateien eine Rekonstruktion nicht möglich ist, ließen sich nicht die originalen Daten speichern? Irgendwie müssen Sie ja im aktuellen Betrieb Informationen einer vorhandenen Lösung für die nächste Berechnung nutzen können, oder übersehe ich da gerade etwas?
B. Bartsch
Fachberater*in
Beiträge: 321
Registriert: Dienstag 4. Dezember 2018, 14:14
Schulform: Gymnasium

Re: NEUE VERSION: 'Kurs42_To_CNF'

Beitrag von B. Bartsch »

...anbei die neuste Kurs42_To_CNF Version (2019-02-22).

Nachdem Herr Westphal einige Wünsche hatte, mir weitere Hinweise gab und mich auf Fehler hinwies, hat sich einiges angesammelt an Erneuerungen:

Fach-Art#BI;GK#max. Kursdif. (ignoriert globale Kursdifferenz)#3
--> Man kann globale Kursdifferenzen überschreiben für eine Fach-Art

Fach-Art#CH;GK#niemals zusammen mit Kurs#EK-GK1
--> Man kann einer Fach-Art verbieten mit einem bestimmten Kurs zusammen zu liegen.

Fach-Art#E;GK#niemals zusammen mit Fach-Art#D;GK
--> Man kann einer Fach-Art verbieten mit einer anderen Fach-Art zusammen zu liegen.

SchülerIn#AAA;AAAA;01.01.2001;4#nicht zusammen mit SchülerIn#BBBB;BBBB;05.05.2001;4
--> Man kann einer SchülerIn verbieten im gleichen Kurs mit einer anderen SchülerIn zu sein. Kurse die es nur 1x gibt werden dabei ignoriert!

Alle GKs#komplett fixieren (Schiene und Teilnehmer)#-#-
--> Man kann alle GKs mitsamt den zugehörigen SchülerInnen fixieren.

Alle LKs#komplett fixieren (Schiene und Teilnehmer)#-#-
--> Man kann alle LKs mitsamt den zugehörigen SchülerInnen fixieren.

... und viele kleine Verbesserungen in Statistik und Ausgabe.

PS: Das Programm benötigt mittlerweile alle Textdateien, die Kurs42 beim Export erzeugt. Einfach alle in einem bestimmten Ordner speichern.
Dateianhänge
Kurs42_To_CNF_2019_02_22.jar
(152.55 KiB) 126-mal heruntergeladen
B. Bartsch
NielsWestphal
Beiträge: 589
Registriert: Sonntag 2. Dezember 2018, 18:33
Schulform: Gymnasium

Re: NEUE VERSION: 'Kurs42_To_CNF'

Beitrag von NielsWestphal »

B. Bartsch hat geschrieben: Donnerstag 21. Februar 2019, 22:38 ...anbei die neuste Kurs42_To_CNF Version (2019-02-22).

Nachdem Herr Westphal einige Wünsche hatte, mir weitere Hinweise gab und mich auf Fehler hinwies, hat sich einiges angesammelt an Erneuerungen:
Ich kann nur sagen: Herr Bartsch hat ganze Arbeit geleistet! Das Programm ist der HAMMER! Wir haben deutlich bessere Blockungsergebnisse erhalten, als wir das mit Untis im letzten Sommer bekommen haben! Und ich glaube sagen zu können, dass wir wirklich schwierige Blockungen und Bedingungen haben!
Untis wird jedenfalls zum Blocken nicht mehr verwendet!
mfg
Niels Westphal
B. Bartsch
Fachberater*in
Beiträge: 321
Registriert: Dienstag 4. Dezember 2018, 14:14
Schulform: Gymnasium

Re: NEUE VERSION: 'Kurs42_To_CNF'

Beitrag von B. Bartsch »

...anbei die neuste Kurs42_To_CNF Version (2019-02-23).

- NEU: Regel "Schiene#...#max. Kursanzahl#...", beispielsweise "Schiene#13#max. Kursanzahl#2"
In Kombination mit "Kurs#...#in Schiene#...", kann man so bestimmte Kurse in einer Schiene fixieren, und dann verhindern, dass weitere Kurse in diese Schiene dürfen.

Für diejenigen, die das Programm zum ersten Mal verwenden, der folgende Tipp:
Nähern Sie sich mit den Kursdifferenzen (KD=20, 19, 18, 17, ...) an, bis Ihnen die Zeit dafür lang erscheint (z.B. maximal 30 min). Es reicht, wenn Sie jeder Berechnung 1 Thread geben, dafür können Sie aber mehrere KDs gleichzeitig berechnen lassen. Wenn Sie dann nach einer gewissen Zeit nicht mehr weiter kommen, beispielsweise bei KD=7, dann müssen Sie die Strategie ändern.
Von nun an nehmen Sie als Basis eine existierende Lösung (z.B. KD=7), stellen dann den Wunsch KD=6 ein und klicken auf einen der %-Buttons. Der (100%, 90%, 80%, 70%, 60%, 50%, 40%, 30%)-Button startet dann 8 Berechnungen und fixiert den angegebenen Anteil an Kursen zufällig, basierend auf der momentanen Lösung. Je nach Fall, kommt man dann plötzlich sprunghaft weiter.
Wenn diese Form der Annäherung stagniert. Hilft nur (1) mehr Zeit investieren oder (2) den gesamten Prozess von vorne beginnen.
Dateianhänge
Kurs42_To_CNF_2019_02_23.jar
(153.47 KiB) 129-mal heruntergeladen
B. Bartsch
Antworten