anbei ein neues Tool Corona_Planer_CNF.
Die Idee:
- Sie wollen im Wechselunterricht möglichst viele SuS beschulen.
- Sie wollen den momentanen Stundenplan weiter verwenden.
- Sie wollen die SuS in Woche 1 und Woche 2 einteilen. Dann haben ca. 50% der SuS Unterricht in Woche 1 und die anderen 50% in Woche zwei. Dadurch sind die Kursgrößen halbiert.
- In der Oberstufe ergibt sich nun das Problem, dass ein Kurs mit z.B. 22 SuS zufälligerweise in 5 SuS in Woche 1 und 17 SuS in Woche 2 aufgeteilt wird. Und hier kommt der Corona_Planer_CNF ins Spiel, der versucht die Kursdifferenzen der Teilgruppen zu minimieren.
- Sie benötigen eine fertige Blockung (z.B. der EF) und exportieren die Textdateien aus Kurs42. Diese Dateien importieren Sie in meinem Programm, stellen die Bedingungen ein und lassen dann Berechnen.
- Sobald Sie eine Lösung haben, die Ihnen gefällt, können Sie bei der Liste der Lösungen auf "Speichern" klicken. Dies speichert eine neue "Schueler.txt" in der alles identisch ist bis auf die Spalte "Klasse". Hier findet man dann z.B. statt "EF" nun "EF_W1" oder "EF_W2".
- Es gibt noch einen kleinen Bug: Falls Sie den Button "Speichern" nicht sehen, müssten Sie versuchen, die Schriftart etwas kleiner zu setzen.
- Wie auch in meinen anderen CNF-Programmen benötigen Sie von hier https://github.com/msoos/cryptominisat/releases die Datei "cryptominisat5-win-amd64-nogauss.exe". Ggf. müssen Sie dazu im Bereich "CryptoMiniSat 5.6.8" das Menü zunächst aufklappen.
- Es gibt auch einen Spezialimport zur Blockung einer Abiturentlassung mit Schülerpräferenzen.
100#Definiere: Es gibt <A> Wochenzyklen.
200#Kurs: Der Kurs <A> hat höchstens <B> SuS.
201#Kurs: Der Kurs <A> hat höchstens eine Kursdifferenz von <B> SuS.
202#Kurs: Die Kursdifferenz <A> kommt höchstens bei <B> Kursen vor.
300#Schüler: Fixiere den/die Schüler/in <A> in Wochenzyklus <B>.
301#Schüler: Schüler/in <A> unbedingt im gleichen Wochenzyklus wie Schüler/in <B>.
302#Schüler: Schüler/in <A> nicht im gleichen Wochenzyklus wie Schüler/in <B>.
Die Regel 200 entspricht letztlich der Grenze der Raumkapazitäten.
Die Regel 201 ist die, die man optimiert.
Schafft man mit Regel 201 eine Kursdifferenz von 2 (aber nicht 1), so kann man mit Regel 202 die 1er-Kursdifferenzen reduzieren.
Mit den Regeln 301/302 kann man forcieren, dass bestimmte SuS in der gleichen Woche (nicht) zur Schule gehen.
Man kann die Regeln nacheinander anwenden und so bestimmte Werte überschreiben:
201#Kurs: Der Kurs <*> hat höchstens eine Kursdifferenz von <3> SuS.
201#Kurs: Der Kurs <IF-GK1> hat höchstens eine Kursdifferenz von <9> SuS.
So kann man erreichen, dass die Kursdifferenz aller Kurse wichtig ist, außer die des Informatik-Kurses.
Es gibt folgende drei neue Regeln:
303#Schüler: Schüler/in <A> wünscht sich den gleichen Wochenzyklus wie Schüler/in <B>.
304#Schüler: Höchstens <A> unerfüllte Schülerwünsche.
305#Schüler: Schüler/in <A> höchstens <B> unerfüllte Schülerwünsche.
Diese kann man Verwenden, um auf Schülerwünsche einzugehen, aber dafür ist es primär nicht gedacht. Herr Westphal bat mich, für die (in Gruppen aufgeteilte) Abiturentlassung eine Importfunktion zu implementieren, bei der man pro Schüler/in angeben kann, mit wem er/sie in einer Gruppe sein möchte. Die Importdatei muss "Abiturentlassung.txt" heißen und sich an dieses Format halten:
Code: Alles auswählen
SchülerID;SchülerName;WunschID1;WunschID2;WunschID3
1;Westphal;2;5;7
2;Bartsch;1;5;6
3;Kohle;4;9;8
4;Dummy;;;
5;Dummy;;;
6;Dummy;;;
7;Dummy;;;
8;Dummy;;;
9;Dummy;;;
Es gibt folgende neue Regel:
203#Kurs: Der Kurs <A> soll alle SuS in einer Woche haben (die Kursdifferenz wird ignoriert).