Änderungen

Zur Navigation springen Zur Suche springen
1.576 Bytes hinzugefügt ,  10:22, 28. Mai 2020
keine Bearbeitungszusammenfassung
Zeile 9: Zeile 9:  
=== Vorbereitungen ===
 
=== Vorbereitungen ===
   −
* Laden Sie sich den folgenden SAT-Solver (https://github.com/msoos/cryptominisat/releases) herunter und speichern Sie die Datei (für Windows: cryptominisat5-win-amd64-nogauss.exe) auf Ihrem PC und merken Sie sich den Pfad. Für Windows ist die aktuellste Version 5.6.8 (Stand: Mai 2020), Sie müssen den Reiter "Assets" aufklappen, um die Datei zu sehen.
+
* Laden Sie sich den folgenden SAT-Solver (https://github.com/msoos/cryptominisat/releases) herunter und speichern Sie die Datei (für Windows: cryptominisat5-win-amd64-nogauss.exe) auf Ihrem PC und merken Sie sich den Pfad. Für Windows ist die aktuellste Version 5.6.8 (Stand: Mai 2020), Sie müssen den Reiter "Assets" aufklappen, um die Datei zu sehen. Hier ist der Direkt-Link (https://github.com/msoos/cryptominisat/releases/download/5.6.8/cryptominisat5-win-amd64-nogauss.exe).
* Installieren Sie ggf. JAVA und laden sich sich dann die aktuellste Version von Kurs42_To_CNF herunter (https://schulverwaltungsinfos.nrw.de/svws/forum/viewtopic.php?f=71&t=20&start=2000). Sie finden das Programm auch hier (https://www.svws.nrw.de/download/tools), diese Version ist aber nicht die aktuellste.
+
* Installieren Sie ggf. JAVA und laden sich sich dann die aktuellste Version von Kurs42_To_CNF herunter (https://schulverwaltungsinfos.nrw.de/svws/forum/viewtopic.php?f=71&t=20&start=2000). Sie finden das Programm auch hier (https://www.svws.nrw.de/download/tools), diese Version ist aber nicht immer die aktuellste.
* Sie haben nun das Programm in Form einer JAR-Datei, welche man mit einem Doppelklick starten kann. Dort müssen Sie dort zunächst den Pfad zu cryptominisat...exe angeben und können dann arbeiten, aber zuvor müssen Sie jedoch noch aus Kurs42 Ihre Daten als Textdateien exportieren. '''Bitte vergewissern Sie sich, dass in den Einstellung das Exportformat UTF8 eingestellt ist.'''
+
* Sie haben nun das Programm in Form einer JAR-Datei, welche man mit einem Doppelklick starten kann. Dort müssen Sie dort zunächst den Pfad zur Datei cryptominisat...exe angeben und können dann arbeiten, aber zuvor müssen Sie jedoch noch aus Kurs42 Ihre Daten als Textdateien exportieren. '''Bitte vergewissern Sie sich, dass in den Einstellung das Exportformat UTF8 eingestellt ist.'''
      Zeile 18: Zeile 18:  
* Die Laufbahnen sollten wie üblich bereits vor dem Blocken gründlich geprüft werden.
 
* Die Laufbahnen sollten wie üblich bereits vor dem Blocken gründlich geprüft werden.
 
* In Kurs42 werden unter ''Bearbeiten --> Kurse einrichten'' bzw. ''Bearbeiten --> Kurse einrichten (ohne Fachwahl)'' die Anzahl der Kurse pro Fach festgelegt.
 
* In Kurs42 werden unter ''Bearbeiten --> Kurse einrichten'' bzw. ''Bearbeiten --> Kurse einrichten (ohne Fachwahl)'' die Anzahl der Kurse pro Fach festgelegt.
* Unter ''Extras'' --> ''Einstellungen'' wird bei Import-Export bei ''Kodierung von Textexporten'' auf den Eintrag ''UTF8'' gestellt.
+
* '''Unter ''Extras'' --> ''Einstellungen'' wird bei Import-Export bei ''Kodierung von Textexporten'' auf den Eintrag ''UTF8'' gestellt.'''
 
* Unter ''Import/Export --> Export in Textdatei'' werden sämtliche Häkchen gesetzt und ein Zielordner gewählt.
 
* Unter ''Import/Export --> Export in Textdatei'' werden sämtliche Häkchen gesetzt und ein Zielordner gewählt.
 +
 +
=== Das erste schnelle Ergebnis mit Kurs42_To_CNF ===
 +
 +
Ziel ist es, zunächst ein beliebiges Blockungsergebnis zu erhalten. Anschließend grenzt man seine Bedingungen Schritt für Schritt ein, bis man ein Ergebnis hat mit dem man zufrieden ist. Die Kursgrößendifferenz sollte man nicht eingrenzen, dies kann das Programm später automatisch optimieren.
 +
 
* In Kurs42_To_CNF unter ''Datei --> Kurs42-Ordner öffnen'' den soeben mit dem Export befüllten Ordner auswählen.
 
* In Kurs42_To_CNF unter ''Datei --> Kurs42-Ordner öffnen'' den soeben mit dem Export befüllten Ordner auswählen.
* Die Abfrage ''Sollen alle Schüler/Kurse aus KURS42 fixiert werden?'' kann zunächst verneint werden (diese Abfrage wird an anderer Stelle erklärt, wenn es um das Blocken der Zusatzkurse in der Q2 oder das Neuladen eines Blockungsegebnisses geht).
+
* Die Abfrage ''Sollen aus Kurs42 alle alle Kurse/Teilnehmer als Regeln fixiert werden?'' kann zunächst verneint werden. Diese Abfrage wird an anderer Stelle erklärt, wenn es um das Blocken der Zusatzkurse in der Q2 oder das Neuladen eines Blockungsergebnisses geht.
* Das Fenster ''Debug'' ganz unten sollte leer sein.
+
* Das Fenster ''Debug'' (unten) sollte leer sein.
* Das Fenster ''Statistik'' gibt Importinformationen an, z.B. wie viele Schüler importiert und wie viele Fächer gewählt wurden.
+
* Das Fenster ''Statistik'' (oben links) gibt Importinformationen an, z.B. wie viele Schüler importiert und wie viele Fächer gewählt wurden.
 +
* Lassen Sie das Fenster ''Regeln'' (unten links) noch leer.
 +
* Das Fenster ''Maximalwerte'' (oben links) enthält allgemeine Voreinstellungen zur Blockung.
 +
** Stellen Sie ''Schienen'' auf die gewünschte Anzahl an. Die Anzahl der Schienen muss mindestens so groß sein, wie die Anzahl der Kurse des Schülers mit den meisten Kursen.
 +
** Belassen Sie die ''Maximale Kursgrößendifferenz'' auf einem sehr hohen Wert (15-20). Dieser wird später automatisch optimiert.
 +
** Stellen Sie die ''Maximale Kursgröße'' auf den größten Wert ein, den Sie alle Kursen zumuten (32-25). Vorsicht: Falls Sie z.B. 32 eingeben und es einen Kurs mit 33 SuS rechnerisch geben müsste, dann ist die Blockung sofort unlösbar (UNSAT).
 +
** Stellen Sie die ''Umwähler'' zunächst auf 0 ein und klicken Sie auf den Button "Berechne!". Über dem Button können Sie die Anzahl der ''Threads'' auf 1 stehen lassen (mehr dazu unter ''Technische Fragen'', siehe unten), das Ausgabeformat ist üblicherweise ''Neu+BOM''. Falls Sie nun '''keine''' Lösung erhalten (ein Indiz dafür ist, dass die Berechnung sehr lange dauert oder es erscheint ein Tab mit dem Hinweis ''UNSAT''), müssen Sie die Umwähler sukzessiv um 1 erhöhen. So lässt sich die Mindestzahl an Umwähler ermitteln.
   −
=== Blocken mit Kurs42_To_CNF ===
+
Sie haben nun eine Lösung. Das Ergebnis wird in einem Tab, z.B. ''B1_SAT'' in sechs Fenstern dargestellt, die sich von selbst erklären. Dieses Ergebnis enthält allerdings noch eine viel zu große Kursgrößendifferenz. Sie könnten nun unter "Auto-Optimierung (GK-KD: Parallele Rechnungen: ___" auf den Button "K" klicken, dann probiert das Programm automatisch die Grundkurs-Kursgrößendifferenz zu optimieren. Dabei werden "___" Prozessorkerne verwendet. Hier müssen Sie ziemlich genau wissen, wie viele Prozessorkerne ihr PC hat. Abbrechen kann man die Automatisierung jederzeit mit dem Button "Stoppe alle Auto-Berechnungen" (oben rechts).
   −
Das Fenster '''Maximalwerte''' enthält allgemeine Voreinstellungen zur Blockung. Erfahrungsgemäß bietet sich das Vorhegen an, zunächst die ''Umwähler'' auf 0 zu setzen, dafür aber die ''Maximale Kursgrößendifferenz'' auf einen sehr hohen Wert, z.B. 30 zu setzen. Die ''Maximale Kursgröße'' sollte dem an der Schule üblichen Wert entsprechen. Die Anzahl der Schienen muss mindestens so groß sein, wie die Anzahl der Kurse des Schülers mit den meisten Kursen.
+
=== Die Blockung mit Nebenbedingungen/Wünschen ergänzen ===
   −
Im Fenster '''Regeln''' werden die Regeln definiert, an die sich das Programm zwingend halten soll. Sollen z.B. alle Religions- und Philosophie-Kurse unbeding parallel liegen, und zwar in Schiene 3, wählt man in den vier Drop-Down-Menüs Folgendes aus:
+
Im Fenster '''Regeln''' werden die Regeln definiert, an die sich das Programm zwingend halten soll. Sollen z.B. alle Religions- und Philosophie-Kurse unbedingt parallel liegen, und zwar in Schiene 3, wählt man in den vier Drop-Down-Menüs Folgendes aus:
 
# Fach-Art
 
# Fach-Art
 
# Rel,GK
 
# Rel,GK
Zeile 35: Zeile 46:  
# 3
 
# 3
 
Es erscheint im Regelfenster ''Fach-Art#REL;GK#in Schiene#3''. Auch durch andere Regelkombinationen kann dieses Ergebnis erzwungen werden, hier gilt es, auszuprobieren und Erfahrungen zu sammeln.
 
Es erscheint im Regelfenster ''Fach-Art#REL;GK#in Schiene#3''. Auch durch andere Regelkombinationen kann dieses Ergebnis erzwungen werden, hier gilt es, auszuprobieren und Erfahrungen zu sammeln.
Die Anzahl der ''Threads'' kann zunächst auf 1 stehen (mehr dazu unter ''Technische Fragen'', siehe unten), das Ausgabeformat ist üblicherweise ''Neu+BOM''
     −
'''Berechnen'''
+
Bei der Blockung der Q1 ist folgende Regel relativ typisch:
Ein Klick auf den Button ''Berechne!'' führt eine Berechnung gemäß der Maximalwerte und Regeln durch.
+
#LKs allein von Schiene
Das Ergebnis wird in einem Tab, z.B. ''B1_SAT'' in sechs Fenstern dargestellt, die sich von selbst erklären. Wenn es mathematisch kein Ergebnis geben kann, erscheint ''UNSAT'' als Name des Tabs.
+
#1
Hier könnte es sein, dass es keine Lösung gibt, in der es keine Umwähler gibt. Dann stellt erhöht man die Zahl der Umwähler solange, bis ein Egebnis möglich ist. So lässt sich die Mindestzahl an Umwähler ermitteln. Dieses Ergebnis enhält allerdings noch eine viel zu große Kursgrößendifferenz, die sich im nächsten Schritt optimieren lässt. Siehe dazu unten ''Strategien und Tipps''.
+
#bis Schiene
 +
#2
    
=== Daten in Kurs42 importieren ===
 
=== Daten in Kurs42 importieren ===
   −
Nach einer erfolgreichen Berechnung einer Blockungung legt das Programm im oben angelegten Ordner für den Export aus Kurs einen Unterordner an, dessen Name dem TAB ''B1_SAT'' entspricht und zusätzlich das Ausgabeformat enthält, hier also ''B_00001_NEU_UTF8_BOM''. In disem Ordner gibt es auch eine Textdatei, die das Ergebnis der Berechnung und die angewendeten Regeln dokumentiert, sodass man das Vorgehen rekonstruieren kann.
+
Nach einer erfolgreichen Berechnung einer Blockung legt das Programm im oben angelegten Ordner für den Export aus Kurs einen Unterordner an, dessen Name dem TAB ''B1_SAT'' entspricht und zusätzlich das Ausgabeformat enthält, hier also ''B_00001_NEU_UTF8_BOM''. In disem Ordner gibt es auch eine Textdatei, die das Ergebnis der Berechnung und die angewendeten Regeln dokumentiert, sodass man das Vorgehen rekonstruieren kann.
 
In Kurs42 gibt es zwei Möglichkeiten, diese Blockung zu importieren:
 
In Kurs42 gibt es zwei Möglichkeiten, diese Blockung zu importieren:
 
# Unter ''Import/Export'' --> ''Import der SAT-Solver-Ergebnisse'' alle Häkchen setzen und den Ordner ''B_00001_NEU_UTF8_BOM'' auswählen. Die Blockung ist importiert und kann z.B. unter ''Blocken'' --> ''Automatisch Blocken'' eingesehen und bearbeitet werden.
 
# Unter ''Import/Export'' --> ''Import der SAT-Solver-Ergebnisse'' alle Häkchen setzen und den Ordner ''B_00001_NEU_UTF8_BOM'' auswählen. Die Blockung ist importiert und kann z.B. unter ''Blocken'' --> ''Automatisch Blocken'' eingesehen und bearbeitet werden.
Zeile 280: Zeile 291:     
'''Weitere Tipps'''
 
'''Weitere Tipps'''
Bitte bei der Verwendung des Programms und der Anwendung der Regeln Fixierungen vermeiden!
+
Je mehr Sie fixieren, desto schneller ist das Programm. Aber in bestimmten Situationen sollten Sie Fixierungen vermeiden, wenn sie damit nur erreichen wollen, dass bestimmte Kurse zusammen liegen. Sollen z.B. Kurs A und B zusammen liegen und ebenso Kurs C und D und Sie legen nun Kurs A und B in Schiene 5 und Kurs C und D in Schiene 6, dann nehmen Sie dem Programm die Kombinationsmöglichkeit A, B, C und D in die selbe Schiene zu legen.
 
      
'''Beispiel 1: Sie wollen, dass alle Deutsch-Kurse in Schiene 1 sind --> fixieren'''
 
'''Beispiel 1: Sie wollen, dass alle Deutsch-Kurse in Schiene 1 sind --> fixieren'''
 
Fach-Art#D;GK#allein in Schiene (SuS optimal)#1
 
Fach-Art#D;GK#allein in Schiene (SuS optimal)#1
 +
 
'''Beispiel 2: Sie wollen, dass ER-GK1 und ER-GK2 nicht zusammen sind, da es nur eine Lehrkraft gibt''' --> nicht fixieren, sondern
 
'''Beispiel 2: Sie wollen, dass ER-GK1 und ER-GK2 nicht zusammen sind, da es nur eine Lehrkraft gibt''' --> nicht fixieren, sondern
 
* Kurs#ER-GK1#niemals zusammen mit#ER-GK2
 
* Kurs#ER-GK1#niemals zusammen mit#ER-GK2
 
oder besser
 
oder besser
 
* Fach-Art#ER;GK#maximale Anzahl pro Schiene#1
 
* Fach-Art#ER;GK#maximale Anzahl pro Schiene#1
 +
 
'''Beispiel 3: Sie wollen alle Religionskurse in einer Schiene, aber keine anderen Kurse --> fixieren'''
 
'''Beispiel 3: Sie wollen alle Religionskurse in einer Schiene, aber keine anderen Kurse --> fixieren'''
 
*Kurs#ER-GK1#in Schiene#6
 
*Kurs#ER-GK1#in Schiene#6
Zeile 297: Zeile 309:  
oder besser die zwei ER-Zeilen ersetzen durch:
 
oder besser die zwei ER-Zeilen ersetzen durch:
 
*Fach-Art#ER;GK#in Schiene (SuS optimal)#6
 
*Fach-Art#ER;GK#in Schiene (SuS optimal)#6
 +
 
'''Beispiel 4: Sie wollen, dass bestimmte Kurse zusammen sind''' --> auf gar keinen Fall fixieren, sie nehmen sich potentielle Kombinationsmöglichkeiten, wenn Sie die Schiene festlegen, sondern:
 
'''Beispiel 4: Sie wollen, dass bestimmte Kurse zusammen sind''' --> auf gar keinen Fall fixieren, sie nehmen sich potentielle Kombinationsmöglichkeiten, wenn Sie die Schiene festlegen, sondern:
 
*Kurs#S0-GK1#unbedingt zusammen mit#L0-GK1
 
*Kurs#S0-GK1#unbedingt zusammen mit#L0-GK1
 
*Kurs#S0-GK1#unbedingt zusammen mit#F0-GK1
 
*Kurs#S0-GK1#unbedingt zusammen mit#F0-GK1
 
*Kurs#S0-GK1#unbedingt zusammen mit#S8-GK1
 
*Kurs#S0-GK1#unbedingt zusammen mit#S8-GK1
 +
 
'''Beispiel 5: Sie wollen, dass bestimmte Kurse nicht zusammen sind,''' z.B. weil ein Lehrer ggf. den zweiten Kurs übernehmen soll --> auf gar keinen Fall fixieren, sondern:
 
'''Beispiel 5: Sie wollen, dass bestimmte Kurse nicht zusammen sind,''' z.B. weil ein Lehrer ggf. den zweiten Kurs übernehmen soll --> auf gar keinen Fall fixieren, sondern:
 
*Kurs#MU-GK1#niemals zusammen mit#IF-GK1
 
*Kurs#MU-GK1#niemals zusammen mit#IF-GK1
 +
 
'''Beispiel 6: Sie wollen die LKs so setzen wie besprochen mit den KOOP-Schulen und LKs sollen getrennt werden von den GKs'''. --> fixieren:
 
'''Beispiel 6: Sie wollen die LKs so setzen wie besprochen mit den KOOP-Schulen und LKs sollen getrennt werden von den GKs'''. --> fixieren:
 
*LKs allein von Schiene#1#bis Schiene#2
 
*LKs allein von Schiene#1#bis Schiene#2
60

Bearbeitungen

Navigationsmenü