Der Auto-Plan von innen
Teil III · Kapitel 12. Für alle, die genau wissen wollen, was der Auto-Plan tut. Das Grundbild — Muss und Wunsch, Strafpunkte, „nicht machbar“ — steht in Wie Prilog einen Stundenplan denkt; hier kommen die Einzelheiten.
Was macht der Auto-Plan?
Wenn Du Auto-Plan starten klickst:
- Prilog sammelt alles, was der Plan braucht — Klassen, Fächer, Räume, Lehrkräfte (auch vorgemerkte Stellen „N.N.“), Zeitraster, Stundentafel mit Teilgruppen, Regeln, Verfügbarkeiten, Kopplungen, fixierte Stunden und, mit Haken, den gültigen Plan als Startpunkt. Teilungsregeln wendet Prilog schon hier an: Eine Klasse, die laut Regel geteilt wird, kommt mit ihren Gruppen beim Auto-Plan an.
- Ein eigener Rechendienst (Google OR-Tools, CP-SAT) baut daraus ein mathematisches Modell: Variablen (welche Stunde liegt wann, bei wem, in welchem Raum?) und Regeln (was ist erlaubt?).
- Er sucht eine Lösung mit möglichst wenigen Strafpunkten, bis das Zeitbudget abläuft oder er die beste gefunden hat.
- Das Ergebnis kommt als Liste von Stunden zurück: Klasse, Fach, Gruppe, Lehrkraft, Raum, Zeit.
Harte und weiche Regeln
Hart heisst: verboten. Lieber findet der Auto-Plan gar keinen Plan als einen, der eine harte Regel bricht.
Weich heisst: erlaubt, kostet aber Strafpunkte. Der Auto-Plan hält die Summe so klein wie möglich.
Harte Regeln (Stand Oktober 2026)
| Regel | Was sie verbietet | |
|---|---|---|
| H1 | Klasse | Eine Klasse hat nicht zwei Stunden zur selben Zeit. |
| H2 | Gruppen | Eine Stunde der ganzen Klasse belegt alle Gruppen; Gruppen derselben Teilung dürfen gleichzeitig Unterricht haben, Gruppen verschiedener Teilungen nicht (es sind dieselben Kinder). |
| H3 | Lehrkraft | Eine Lehrkraft gibt nicht zwei Stunden gleichzeitig. |
| H4 | Raum | Ein Raum ist nicht doppelt belegt. |
| H5 | Befähigung | Nur befähigte Lehrkräfte (Fach-Qualifikationen, Stufe aus dem Jahrgang der Klasse). |
| H6 | Raum-Tags | Sport braucht einen Raum mit sporthalle und so fort. |
| H7 | Pausen | In Pausen liegt kein Unterricht. |
| H8 | Fixierte Stunden | Was fixiert ist, bleibt — jede Fixierung trifft eine eigene Stunde, eine Gruppen-Fixierung ihre Gruppe. |
| H9 | Voraus-Zuweisung | Eine fest zugeordnete Lehrkraft unterrichtet das Fach in dieser Klasse — ebenso die Klassenlehrkraft bei Fächern, die sie gibt. |
| H10 | Stammraum | Fächer mit Ort Klassenzimmer liegen im Stammraum der Klasse. Bei Teilung zur selben Zeit bleibt eine Gruppe dort, die andere geht in einen der erlaubten Räume (Fachraum des Fachs, Ausweichraum). |
| H11 | Deputat | Nicht mehr Stunden als Wochenstunden − Ermässigung. |
| H12 | Verfügbarkeit | Nie in einer gesperrten Stunde. |
| H13 | Klassen-Regelwerk | Jede Regel, die als Muss angelegt ist: Zeitfenster, Reihenfolge, Mindestabstand, Tagesfreistellung, Höchstzahl je Tag, mindestens n Tage, nicht in diesen Stunden, nicht nach langer Pause, keine Lücken, Kernzeit, Abwechslung. Die Teilungsregel wirkt schon vor dem Rechnen. |
| H14 | A/B-Wochen | A- und B-Stunden stossen sich nicht; „jede Woche“ belegt beide. |
| H15 | Kopplungen | Gleicher Kopplungs-Schlüssel → gleiche Zeit, die erste Stunde zur ersten, die zweite zur zweiten. |
| H16 | Vollständigkeit | Jede Stunde der Stundentafel wird gesetzt. |
| H17 | Doppelstunde | Fächer immer am Stück: Stunden paarweise direkt hintereinander, nie über eine Pause; nie am Stück: nie zwei hintereinander. |
| H18 | Nur Befähigte | Bei Fächern nur mit eingetragener Befähigung geben Lehrkräfte ohne jeden Eintrag das Fach nicht. |
| H19 | Wünsche als Muss | Wünsche einer Lehrkraft mit Häkchen Muss — freier Tag, Einsatzzeit, höchstens n Stunden am Tag, an höchstens n Tagen, höchstens n Hohlstunden, „geht nicht“ im Wochenbild — gelten wie eine Sperrzeit. |
| H20 | Nicht am selben Tag | Zwei Fächer (oder Fachbereiche) mit der Muss-Regel nicht am selben Tag liegen nie am selben Tag. |
Weiche Regeln (Strafpunkte)
| Feld | Punkte | Was gut ist | |
|---|---|---|---|
| S1 | free_periods | 3 je Lücke | wenig Hohlstunden für Klassen: ein freier Platz zwischen zwei Stunden desselben Tages (Pausen, späterer Beginn, früherer Schluss zählen nicht) |
| S2 | pref_grade_mismatch | 1 | Lehrkräfte in ihren Wunsch-Altersstufen |
| S3 | missing_preferred_tags | 1 | Fach im bevorzugten Raum-Tag |
| S4 | double_slot_misses | 2 | gewünschte Doppelstunden erfüllt |
| S5 | teacher_day_overload | — | Höchstzahl Stunden je Tag und Lehrkraft — noch nicht gebaut, bleibt 0 |
| S6 | room_changes | 1 | wenig Räume je Klasse und Tag |
| S7 | preferred_room_mismatch | 1 | Lehrkraft im Wunsch-Raum |
| S8 | Abweichung vom gültigen Plan | 4 je verschobene Stunde, 2 je andere Lehrkraft | nah am gültigen Plan (nur mit „Vom gültigen Stundenplan aus rechnen“) |
| S9 | ausweichraum | 1 bis 4 je Stunde | die zweite Gruppe einer geteilten Klasse in der richtigen Reihenfolge: Fachraum des Fachs 1, fester Ausweichraum der Klasse 2, Ausweichraum auf demselben Stockwerk 3, jeder andere 4 |
| S10 | tageslage | 1 je Stunde | Fächer in ihrer gewünschten Lage im Tag (früh, Mitte, spät) |
| S11 | regeln | Gewicht der Regel (1–10) je Abweichung | Regeln des Klassen-Regelwerks und der Fächer-Landkarten, die als Wunsch angelegt sind |
| S12 | lehrer_wuensche | Gewicht des Wunsches je Abweichung | Wünsche der Lehrkräfte — freie Tage, Einsatzzeiten, Wochenbild „gern“ und „lieber nicht“ (Lehrkräfte) |
| S13 | deputat_unterschritten | je fehlende Stunde | Jede Lehrkraft bekommt ihre Stunden bis zum Deputat (wie stark, sagt Vorrang beim Planen) |
| S14 | fairness_boden | Gewicht des Bodens | Die Person, deren Wünsche am meisten verletzt sind, so gut gestellt wie möglich (nur mit gestellter Waage) |
Die Summe ist der Score. Niedriger ist besser.
Die Score-Aufschlüsselung eines Laufs zeigt free_periods, pref_grade_mismatch, missing_preferred_tags, double_slot_misses, teacher_day_overload und die Abweichung vom gültigen Plan einzeln. room_changes, preferred_room_mismatch und ausweichraum zählen in der Summe mit, stehen dort aber nicht einzeln.
Die Waage verschiebt die Gewichte
Wie schwer Pädagogik (S1, S10, S11) und Personal (S12, S13) wiegen, stellt die Planungsleitung mit der Waage ein. Ist sie gestellt, rechnet der Auto-Plan die Gewichte daraus um: je Seite so, dass viele kleine Wünsche nicht von selbst gegen wenige grosse Regeln gewinnen; dazu die Nachgebe-Reihenfolge und der Fairness-Boden (S14). Wer dieses Jahr zu kurz kam, dessen Wünsche wiegen im nächsten Jahr schwerer (Ausgleichskonto). Ist die Waage nicht gestellt, rechnet er wie bisher.
Vom gültigen Plan aus rechnen
Mit dem Haken Vom gültigen Stundenplan aus rechnen bekommt der Auto-Plan jede feste Stunde des gültigen Plans als Startpunkt. Er beginnt dort und zahlt S8 für jede Stunde, die er verschiebt. So bleibt der Plan stabil, wenn sich wenig ändert — und der Lauf ist schneller, weil er nicht bei null beginnt. Was nicht mehr passt (ein Fach fehlt in der Tafel, eine Stunde gibt es nicht mehr), lässt er still weg. Stunden mit fixiertem Tag oder fixierter Stunde behalten ihre Fixierung.
Siehe Den Plan behutsam weiterentwickeln.
Was die Ergebnisse bedeuten
| Ergebnis | Bedeutet | Was tun? |
|---|---|---|
optimal | Die beste Lösung ist gefunden. | Vorschlag übernehmen. |
feasible | Eine gültige Lösung, vielleicht nicht die beste. | Prüfen; mit mehr Zeitbudget kann es besser werden. |
infeasible | Es gibt keine Lösung — Regeln widersprechen sich. | Siehe unten. |
timeout | Zeit abgelaufen, noch keine Lösung. | Zeitbudget erhöhen oder harte Regeln lockern. |
error | Das Modell liess sich nicht bauen (etwa kein befähigter Lehrer). | Bereitschaft prüfen. |
Wenn er keinen Plan findet
Bei infeasible sucht Prilog im Protokoll des Laufs nach den zwei häufigsten Ursachen:
Deputat reicht nicht. Die Summe der Deputate aller befähigten Lehrkräfte ist kleiner als der Bedarf:
Fach „Mathematik“: 24h Bedarf, qualifizierte Lehrer mit Cap-Summe 18h:
Frau Schmidt (12h), Herr Müller (6h). Deputat erhöhen oder Quali ergänzen.→ Deputat erhöhen, weitere Lehrkräfte befähigen oder die Stundentafel verkleinern.
Sperren lassen zu wenig Platz. Eine Lehrkraft hat mehr Stunden, als ihr nach den Sperren Platz bleibt:
Lehrer „Frau Müller“: Cap 24h/Woche, aber nur 20 Slots nach Sperren
verfügbar (15 blockiert). Sperren reduzieren oder Cap nachjustieren.→ Sperren in der Verfügbarkeitsmatrix lockern oder das Deputat anpassen.
Steht keine Ursache im Protokoll, sind es meist:
- Widersprüchliche Regeln — etwa „Hauptunterricht 1./2. Stunde“ und „Mathe nicht nach Hauptunterricht“: Mathe darf dann nie in die 3. Stunde, das wird schnell eng. → Regeln im Klassen-Regelwerk durchgehen, eine abschalten, neu rechnen.
- Widersprüchliche Fixierungen — drei fixierte Stunden mit Lehrkräften, die alle nur in derselben Stunde können. → Position fix statt Alles fix.
- Stundentafel grösser als das Raster — Klasse 5a braucht 34 Stunden, ihre Woche hat 30 Plätze. → Bereitschaft, Punkt Wochen-Plätze in Klassen.
- Kopplung unerfüllbar — eine gekoppelte Stunde soll in einer Stunde liegen, die in einer der Klassen schon fest belegt ist. → In der Klassen-Vorlage alle Zellen mit demselben Kopplungs-Schlüssel prüfen.
Was die Punkte bedeuten
Score 0 ist nie erreichbar. room_changes ist mindestens Klassen × Tage, weil jede Klasse jeden Tag mindestens einen Raum nutzt (an der Lindenschule 26 Klassen × 5 Tage = 130). preferred_room_mismatch bleibt hoch, wenn viele Lehrkräfte denselben Wunsch-Raum haben. Vergleiche Läufe deshalb an der Differenz, nicht am absoluten Wert.
Grobe Faustregeln, ab wann ein Feld auffällt:
| Feld | auffällig ab | heisst |
|---|---|---|
pref_grade_mismatch | mehr als 30 % der Stunden | Wunsch-Stufen oft verfehlt |
missing_preferred_tags | mehr als 5 | Raum-Wünsche oft verfehlt |
double_slot_misses | mehr als 2 × Zahl der Doppelstunden-Fächer | Doppelstunden selten möglich |
room_changes | mehr als 2 × Klassen × Tage | Klassen wechseln oft den Raum |
optimal ist immer in Ordnung — die Schwellen sagen nur „könnte besser sein“.
Zeitbudget
| Schulgrösse | Zeitbudget |
|---|---|
| bis 10 Klassen | 30 Sekunden |
| 10–25 Klassen | 60–120 Sekunden |
| 25–50 Klassen | 3–5 Minuten |
| mehr als 50 Klassen | 5–10 Minuten |
Faustregel: Ändert sich der Score über zwei Minuten nicht mehr, ist das Beste vermutlich gefunden.
Schneller wird es mit mehr fixierten Stunden, Stammräumen, genauen Befähigungen, dem Haken „Vom gültigen Stundenplan aus rechnen“ und einem Raster mit genug Luft. Langsamer mit vielen Halbgruppen im Wechsel, vielen Kopplungen und vielen Sperren.
Hinter den Kulissen
- Der Auto-Plan rechnet in einem eigenen Dienst (Python, Google OR-Tools CP-SAT). Ein Lauf durchläuft wartet → rechnet → fertig (oder fehlgeschlagen, abgebrochen); ein Hintergrunddienst holt wartende Läufe alle paar Sekunden ab.
- Kennt ein älterer Rechendienst die neuen Angaben (Teilgruppen, Startpunkt) noch nicht, rechnet Prilog ohne sie weiter und schreibt das ins Protokoll des Laufs.
- Vorschlag übernehmen schreibt das Ergebnis als Entwurfs-Stunden in Dein Schuljahr; jede Stunde behält ihre Gruppe.
Weiter: Nachschlagen