Änderungen

Zur Navigation springen Zur Suche springen
12.654 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.
+
* 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=180).
+
* 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 exportieren.
+
* 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 52: Zeile 63:  
=== Jahrgänge Blocken ===
 
=== Jahrgänge Blocken ===
 
Die hier vorgestellten Regeln sind nur Beispiele einer Schule mit ihren jeweiligen schulspezifischen Anforderungen und können niemals 1:1 übernommen werden. Sie sollen Anregungen schaffen, wie man für seine Schule ein gutes Ergebnis erzielen kann.  
 
Die hier vorgestellten Regeln sind nur Beispiele einer Schule mit ihren jeweiligen schulspezifischen Anforderungen und können niemals 1:1 übernommen werden. Sie sollen Anregungen schaffen, wie man für seine Schule ein gutes Ergebnis erzielen kann.  
 +
 +
 +
----
    
'''Blockung der neuen EF mit Stamm-/Kerngruppen'''
 
'''Blockung der neuen EF mit Stamm-/Kerngruppen'''
Zeile 113: Zeile 127:        +
----
    
'''Blockung der neuen Q1'''
 
'''Blockung der neuen Q1'''
 +
 +
Es bietet sich wie üblich an, erst die LKs zu blocken, da ja z.B. nicht erhaltene LK-Wahlen Einfluss auf die GK-Wahlen haben. (Die LKs kann man auch mit Kurs42 blocken. Dort nach den Beratungen die GKs anpassen und das Ergebnis exportieren und wie unten beschrieben im CNF importieren).
 +
Sollen die LKs mit CNF geblockt werden, fängt man nach dem Import so an:
 +
*LKs allein von Schiene#1#bis Schiene#2
 +
Die LKs liegen exklusiv in Schiene 1 und 2. Für den GK-Bereich wählt man sehr weite Bedigungen bei den Umwählern und Kursgrößendifferenzen und/oder man kann auch weitere Schienen  hinzufügen, sodass das Programm für die Berechnung der GKs kaum Zeit benötigt. Die fertige Blockung geht zurück nach Kurs42. Dann müssen Umwähler beraten werden und die neue Blockung, mit den LKs und den neuen GK-Wahlen exportiert und dann in CNF importiert werden.
 +
 +
Beim Import in CNF die Regel
 +
*Fixiere#Schiene und Teilnehmer#aller#LKs
 +
anwenden.
 +
 +
Dann wird der GK-Bereich geblockt, z.B. mit diesem Satz an Regeln:
 +
 +
*Fach-Art#PL;GK#in Schiene (SuS optimal)#3
 +
*Fach-Art#REL;GK#in Schiene (SuS optimal)#3
 +
--> alle Religions- und Philosophie-Kurse werden parallel gelegt, damit Kurswechsel und eine Verschmelzung zur Q2 leicht möglich sind.
 +
 +
*Fach-Art#SP;GK#muss gewählt werden#-
 +
*Fach-Art#PL;GK#muss gewählt werden#-
 +
*Fach-Art#REL;GK#muss gewählt werden#-
 +
*Fach-Art#D;GK#muss gewählt werden#-
 +
*Fach-Art#M;GK#muss gewählt werden#-
 +
*Fach-Art#E5;GK#muss gewählt werden#-
 +
*Fach-Art#S0;GK#muss gewählt werden#-
 +
--> dieser Satz erzwingt, dass es keine Kurswechsler gibt, die eines der alternativlosen Fächer nicht bekommt
 +
 +
 +
*Kurs#VP-GK1#in Schiene#12
 +
*Kurs#IP-GK1#in Schiene#12
 +
*Schiene#12#max. Kursanzahl#2
 +
--> die Schine 12 ist den vokal- und instrumentalpraktischen Kursen vorbehalten
 +
 +
 +
*Kurs#SW-GK1#unbedingt zusammen mit#SW-GK2
 +
--> die Progonose zeigt, dass die beiden SoWi-Kurse vermutlich in der Q2 verschmolzen werden. Deshalb werden sie schon in der Q1 zusammengelegt.
 +
 +
*Kurs#PH-GK1#niemals zusammen mit#PH-GK2
 +
--> es gibt nur einen Physiklehrer, sodass die Physik-Kurse nicht parallel liegen dürfen.
 +
 +
 +
----
    
'''Blockung der Q2 (Zusatzkurse)'''
 
'''Blockung der Q2 (Zusatzkurse)'''
 +
 +
Zunächst müssen in Kurs42 ggf. Kurse verschmolzen und die Zusatzkurse eingerichtet werden. Die SuS haben AB3/AB4 festgelegt und beim Import aus LuPO wurde dies entsprechend mitübernommen. Dann besteht die grundsätzliche Schwierigkeit darin, die ZKs in die bestehende Blockung einzuarbeiten, ohne dass viele Schüler ihre Kurse wechseln müssen. Dazu gibt es mit Kurs42_to_CNF unterschiedliche Strategien. Zunächst wird die angepasste Blockungsdastei in Kurs42_to_CNF importiert.
 +
 +
''Strategie 1''
 +
 +
Beim Blockungsimport kann die Abfrage, ob alle Schüler/Kurse als Regeln fixiert weden sollen, bejaht werden.
 +
* Fach-Art#SW;ZK#muss gewählt werden#-
 +
* Fach-Art#GE;ZK#muss gewählt werden#-
 +
Dies führt dazu, dass es keine Umwähler gibt, die den ZK nicht bekommen haben, da logischerweise der ZK Pflicht ist.
 +
* Fixiere#Teilnehmer#der Kursart#AB4
 +
* Fixiere#Teilnehmer#der Kursart#AB3
 +
Dies führt dazu, dass die AB3/AB4-schüler definitiv in ihren bisherigen Kursen verbleiben, alle anderen können Kurse wechseln.
 +
Dies lässt sich erweitern, wenn man z.B. nicht möchte, dass die Mathe-Kurse grundsätzlich nicht angetastet wedern sollen:
 +
* Fixiere#Teilnehmer#der Kursart#M
 +
Nun kann man zusätzlich einschränken, wie viele Kursewechsel es geben darf und zwar mit diesen Regeln:
 +
*SchülerIn#...#hat definitiv Fach-Art#...", praktisch um Laufbahnen zu gewährleisten.
 +
*Fixiere#max. Kurswechsel (Summe aller SuS)#...#-, Beispiel: "Fixiere#max. Kurswechsel (Summe aller SuS)#101#-
 +
*Fixiere#max. Kurswechsel (je SchülerIn)#...#-", Beispiel: "Fixiere#max. Kurswechsel (je SchülerIn)#2#-"
 +
*Fixiere#max. Kurswechsel (bestimmte SchülerIn)#...#...", Beispiel: "Fixiere#max. Kurswechsel (bestimmte SchülerIn)#Mustermann;Max;01.01.2001;3#1
 +
*Fixiere#max. Abitur-Kurswechsel (Summe aller SuS)#...#-, Beispiel: "Fixiere#max. Abitur-Kurswechsel (Summe aller SuS)#76#-
 +
*Fixiere#max. Abitur-Kurswechsel (je SchülerIn)#...#-, Beispiel: "Fixiere#max. Abitur-Kurswechsel (je SchülerIn)#1#-
 +
*Fixiere#max. Abitur-Kurswechsel (bestimmte SchülerIn)#...#..., Beispiel: "Fixiere#max. Abitur-Kurswechsel (bestimmte SchülerIn)#Musterfrau;Maren;01.01.2001;4#1
 +
* Mit "Fixiere#max. 2er-Abitur-Kurswechsel (Summe aller SuS)#42#-" kann man nun die Anzahl an
 +
SchülerInnen begrenzen die von 2 Abitur-Kurswechsel betroffen sind.
 +
 +
 +
Eine Auflistung der Kurswechsler liefert das Ausgabefenster unten rechts.
 +
Format:
 +
Nachname;Vorname;01.01.2000;3;3;E-GK1#E-GK3#GKS;EK-GK1#EK-GK2#GKM;?#PL-GK1#GKM
 +
Dabei gilt:
 +
Nachname;Vorname;01.01.2000;Geschlecht;Anzahl Kurswechsel;alter Kurs#neuer Kurs#Kursart
 +
 +
Ist dabei (wie im Beispiel) ein ? aufgeführt, gab es dort noch keine Kurszuordnung (Zusatzkurse GE/SW) oder der Kurs existiert nicht mehr (nach Zusammenlegung "aus 2 mach 1"). Dort gibt es ja zwangsweise einen neuen Kurs. Diese Kurswechsel werden in der Auflistung (Ergebnis....txt) zwar gezählt, aber nicht im Rahmen der Regel gezählt. Dort wird die Begrenzung für die ECHTEN Kurswechsel festgelegt.
 +
 +
Wichtig ist dabei, dass den neuen Kursen (Zusatzkursen) noch keine Schüler zugewiesen sind, ansonsten zählt er sie ja mit.
 +
 +
 +
''Strategie 2''
 +
 +
Beim Blockungsimport kann die Abfrage, ob alle Schüler/Kurse als Regeln fixiert weden sollen, bejaht werden.
 +
...
 +
 +
 +
''Strategie 3''
 +
In der Regel geht es beim Blocken der ZKs in bestehende Schienen nicht ohne Umwahlen. Man gehe wie folgt vor.
 +
 +
In Kurs42 lade man aus LuPO die Kurswahlen der Q2 in die zuvor hochgesetzt Kurs42 Blockung der Q1 und richte dann ZKs ein, ohne sie ins Blockungsraster zu setzen.
 +
 +
Danach wird die Blockung in Textdateien exportiert und in CNF importiert. Dann werden für alle GK und LK die Kurse in Schienen und die Schüler in den Kursen fixiert (beim Import der Dateien wird die Abfrage bejaht). Nur die ZKs bleiben frei, also man nimmt die entsprechenden Regeln wieder raus. Dann fängt man mit kleiner Umwählerzahl an zu blocken. Bei UNSAT erhöht man sie um eins, bis man eine Lösung findet.
 +
 +
Wenn man dabei auf eine "Handvoll" Umwähler kommt, geht das Ganze zurück nach Kurs42 und man macht die restlichen Anpassungen von Hand. Sind es zu viele, kann man alle Schüler mit GKM zur Umverteilung freigeben und fängt wieder bei 0 Umwählern an.
    
=== Strategien und weitere Tipps ===
 
=== Strategien und weitere Tipps ===
Zeile 133: Zeile 239:  
''Auto-Optimierung''
 
''Auto-Optimierung''
   −
...
+
Sobald man eine Lösung gefunden hat (z.B. mit GK-Kursdifferenz 20). Es gibt einen Button, der automatisch (je nach Einstellung) mehrere parallele Berechnungen startet und dabei versucht, die GK-Kursdifferenz auf 19 zu verbessern. Wird eine Lösung gefunden, ist das Ziel die nächstkleinere GK-Kursdifferenz. Die Berechnung stoppt, wenn 100 verschiedene Szenarien nicht zum Erfolg führten oder eine optimale GK-Kursdifferenz gefunden wurde.
 +
Es bietet sich an, durchaus 8 Rechnungen gleichzeitg laufen zu lassen, dies hängt vom CPU (der Anzahl der Kerne) ab (siehe ''Technische Fragen'')
 +
PS: Wenn die Auto-Berechnung abbricht, dann nur, wenn KD1 (GK-Kursdifferenz von 1) gefunden wurde oder eine Reduzierung der Differenz (beweisbar) nicht möglich ist. Es ist manchmal sehr schwer zu erkennen, warum eine weitere Reduzierung nicht möglich ist. In dem Fall würde ich empfehlen in der Liste der Kurse - die nach Kursdifferenz sortiert sind - nach der Fach-Art zu suchen, welche die höchste Kursdifferenz hat.
 +
Zur Klärung der Strategien:
 +
K = Fixiert zu ... % Kurse in ihren Schienen ausgehend von einer vorhandenen Lösung und versucht die GK-Kursdifferenz um 1 zu reduzieren.
 +
S = Fixiert zu ... % Schüler in ihren Kursen ausgehend von einer vorhandenen Lösung und versucht die GK-Kursdifferenz um 1 zu reduzieren.
 +
KS = K uns S gemischt.
 +
Die % - Anteile werden dynamisch schrittweise reduziert, wenn eine Berechnung keine Lösung gefunden hat.
 +
Findet eine Berechnung dagegen eine Lösung, fängt alles von vorne an (ausgehend von dieser Lösung), außer es wurde eine GK-Kursdifferenz von 1 erreicht.
    +
'''Vorhandene Blockungen erneut öffnen'''
    +
Eine z.B. mit Kurs42_to_CNF gerechnete Blockung laden, um sie z.B. mit der Autooptimierung zu verbessern:
 +
*Import in CNF
 +
*Abfrage "Alle Schüler/Kurse fixieren" bejahen
 +
*Weite Einstellungen wählen
 +
*Berechnen
 +
*Das Ergebnis ist die bisherige Blockung, die nun weiter optimiert werden kann
   −
'''Vorhandene Blockungen erneut öffnen'''
+
Falls in Kurs42 schon geblockt wurde und diese Blockung (teilweise) bei Kurs42_to_CNF unangestatet bleiben soll, gibt es z.B. folgende Regel:
...
+
*Fixiere#Schiene und Teilnehmer#aller#LKs
 +
*In diesem Beispiel wurden die LKs schon geblockt und werden nun in Kurs42_to_CNF nicht angetastet.
      Zeile 152: Zeile 274:  
# mit Kurs42 zwei Blockungen erstellen, einmal mit drei und einmal mit vier Grundkursen, diese jeweils exportieren und mit Kurs42_to_CNF blocken oder
 
# mit Kurs42 zwei Blockungen erstellen, einmal mit drei und einmal mit vier Grundkursen, diese jeweils exportieren und mit Kurs42_to_CNF blocken oder
 
# man erstellt in Kurs42 eine Blockung mit der höhere Kursanzahl (also drei), blockt diese in CNF und zum Vergleichen wendet man die Regel ''Kurs#D-GK3#max. SuS (ignoriert Kursdifferenzen)#0'' an. So steht der dritte Deutschkurs nicht zur Verfügung.
 
# man erstellt in Kurs42 eine Blockung mit der höhere Kursanzahl (also drei), blockt diese in CNF und zum Vergleichen wendet man die Regel ''Kurs#D-GK3#max. SuS (ignoriert Kursdifferenzen)#0'' an. So steht der dritte Deutschkurs nicht zur Verfügung.
 +
 +
'''Kurse über zwei Schinen verteilen'''
 +
*Kurs#TRVB-GK1#Schienenanzahl ist#2
 +
*Kurs#TRVB-GK1#in Schiene#4
 +
*Kurs#TRVB-GK1#in Schiene#5
 +
 +
 +
'''Huckepack-Leistungskurse blocken'''
 +
 +
Für den seltenen Ausnahmefall, dass ein LK, z.B. Phyisk, nur als sog. Huckepack-Kurs eingerichtet werden kann, kann man so vorgehen:
 +
*In Kurs42 wird eine Physik-Zusatzkurs eingerichtet.
 +
*Die Schüler des Physik-LKs wählen auch den ZK.
 +
*Der ZK muss parallel zum GK liegen: Kurs#PH-GK1#unbedingt zusammen mit#PH-ZK1
 +
 +
----
 +
 +
'''Weitere Tipps'''
 +
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'''
 +
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
 +
* Kurs#ER-GK1#niemals zusammen mit#ER-GK2
 +
oder besser
 +
* Fach-Art#ER;GK#maximale Anzahl pro Schiene#1
 +
 +
'''Beispiel 3: Sie wollen alle Religionskurse in einer Schiene, aber keine anderen Kurse --> fixieren'''
 +
*Kurs#ER-GK1#in Schiene#6
 +
*Kurs#ER-GK2#in Schiene#6
 +
*Kurs#KR-GK1#in Schiene#6
 +
*Kurs#PL-GK1#in Schiene#6
 +
*Schiene#6#max. Kursanzahl#4
 +
oder besser die zwei ER-Zeilen ersetzen durch:
 +
*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:
 +
*Kurs#S0-GK1#unbedingt zusammen mit#L0-GK1
 +
*Kurs#S0-GK1#unbedingt zusammen mit#F0-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:
 +
*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:
 +
*LKs allein von Schiene#1#bis Schiene#2
 +
*Kurs#M-LK1#in Schiene#1
 +
*Kurs#D-LK1#in Schiene#1
 +
*Kurs#E5-LK1#in Schiene#1
 +
*Schiene#1#max. Kursanzahl#3
 +
(andere LKs dadurch automatisch in Schiene 2)
    
=== Best Practice-Beispiele ===
 
=== Best Practice-Beispiele ===
Zeile 164: Zeile 337:     
'''[https://youtu.be/pBNSYI91eKc Video-Tutorial #1]:'''
 
'''[https://youtu.be/pBNSYI91eKc Video-Tutorial #1]:'''
 +
 +
<youtube>pBNSYI91eKc</youtube>
    
1) Vorbereitung in Kurs42 - Export der Blockung in Textdateien
 
1) Vorbereitung in Kurs42 - Export der Blockung in Textdateien
60

Bearbeitungen

Navigationsmenü