An einem leuchtenden Leuchttisch heben der Stundenplaner und eine junge Ingenieurin durchscheinende Blätter einzeln an: unten verstreute farbige Punkte, oben ein sauberes Raster farbiger Karten.
← Alle BeiträgeTechnik

Anatomie des Stundenplan-Motors: wie ein Plan wirklich entsteht

Wer Stundenplansoftware kauft, kauft eigentlich den Motor. Wir nehmen unseren Schicht für Schicht auseinander — von den Schuldaten bis zum beweisbar guten Plan.

BBildena-Team · · 9 Min. Lesezeit

Wer Stundenplansoftware auswählt, entscheidet sich eigentlich nicht für eine Oberfläche. Die Bildschirme ähneln sich, die Bedienung lernt man an einem Nachmittag. Wie viel von Ihrem August Sie zurückbekommen, entscheidet der Motor hinter der Schaltfläche „Generieren“ — und in fast jedem Produkt ist dieser Motor eine geschlossene Kiste.

Dieser Beitrag öffnet unsere. Der Bildena-Motor besteht aus fünf Schichten. Wir gehen der Reihe nach durch, was jede tut, wozu es sie gibt und woran wir merken würden, dass sie unbemerkt falsch arbeitet.

STUNDENPLAN-MOTOR 12345 SchuldatenEingabeUnterrichtskarten, Verfügbarkeiten, Räume, Klassenregeln.Nichts wird geraten: es gilt, was eingegeben wurde.ModellbauerTimetableProblemBuilderJede Unterrichtsstunde wird zur Variable, jede Regel zur Bedingung.Verlustfreie Übersetzung: Keine Regel fällt unter den Tisch.VorprüfungTimetableCapacityScanOffene Klassenzeiten werden mit freien Lehrerstunden abgeglichen.Unmöglich? Abbruch nach Millisekunden, mit benanntem Engpass.KernSolver-KernHarte Bedingungen gelten absolut, Wünsche werden gewichtet.Steigt die untere Schranke, ist „nichts Besseres“ bewiesen.Plan und PunktzahlPerfectionScoreVon 100: 80 für die Platzierung, 20 für messbare Qualität.Nicht die Strafsumme des Solvers — schulübergreifend vergleichbar.
Die fünf Schichten. Eingabe und Ausgabe liegen außerhalb; alles im gestrichelten Rahmen läuft, wenn Sie auf Generieren drücken.

1. Schuldaten werden verlustfrei in ein Modell übersetzt

Der Motor arbeitet nicht mit Unterrichtskarten, sondern mit Entscheidungsvariablen. Jede Karte wird nach ihrer Wochenstundenzahl in Blöcke zerlegt, und jeder Block erhält einen Tag, aufeinanderfolgende Stunden und, wo nötig, einen Raum. Die ganze Woche einer Schule ist eine widerspruchsfreie Kombination dieser Entscheidungen.

Für diese Übersetzung gilt genau eine Regel, und sie ist streng: Sie muss verlustfrei sein. Der Motor sagt nie: „Diese Bedingung habe ich nicht verstanden, ich überspringe sie.“ Kopplungen, Gruppenteilungen, Wahlpflichtbänder, A/B-Wochen, Schichtbetrieb — alles steht im selben Variablenraum und wird in derselben Mathematik ausgedrückt. Jedes Feld, nach dem die Oberfläche fragt, hat eine Entsprechung im Modell; ein Feld ohne Entsprechung wird gar nicht erst abgefragt.

Diese Zusage wiegt schwerer, als sie klingt. Eine Bedingung in der Oberfläche anzubieten, ohne sie ans Modell zu binden, ist Etikettenschwindel: Sie setzen den Haken, der Plan entsteht, die Regel wurde nie angewendet — und im September merkt es eine Lehrkraft.

2. Unmöglichkeit wird erkannt, bevor gerechnet wird

Der teure Weg, herauszufinden, dass ein Plan nicht aufgeht, heißt: ausprobieren. Klassische Prüfungen betrachten jede Dimension für sich — hat die Klasse genug offene Stunden, hat die Lehrkraft genug freie? Beide Prüfungen können mit Spielraum bestanden werden, und der Plan bleibt trotzdem unmöglich. Denn eine Stunde kann nur dort liegen, wo die Klasse offen und die Lehrkraft frei ist; sind beide Mengen groß, ihre Schnittmenge aber klein, bemerken reine Zähltests nichts.

Bildena baut stattdessen für jede Klasse und jede Lehrkraft eine bipartite Zuordnung zwischen Unterrichtsstunden und zulässigen Zeitfenstern. Eine Klasse hat zu jeder Zeit nur einen Unterricht, eine Lehrkraft ist nur an einem Ort; jede Stunde braucht also ihr eigenes Zeitfenster. Gibt es keine vollständige Zuordnung, ist der Plan sicher unmöglich — keine Schätzung, sondern eine Folge der Hall-Bedingung.

Wir haben gemessen, was dieser Unterschied wert ist. An einer realen Schule liefen die Prüfungen sauber durch, und der Lauf meldete nach 186 Sekunden „nicht lösbar“, ohne den Grund nennen zu können. Heute wird derselbe Fall in Millisekunden erkannt, und der Engpass wird im Klartext benannt: „Diese fünf Fächer brauchen zusammen 22 Stunden, gemeinsam nutzbar sind nur 19.“

Eine Regel dieser Schicht steht nicht zur Verhandlung: sie liefert keine falschen Alarme. Die Kandidatenmengen werden bewusst großzügig gehalten. Meldet die Vorprüfung „machbar“, heißt das nur, dass dieser Test bestanden ist; meldet sie „unmöglich“, dann ist es unmöglich. Eine Stundenplanerin einem Engpass hinterherjagen zu lassen, den es gar nicht gibt, kostet mehr als eine späte Warnung.

3. Harte Bedingungen und Wünsche landen nie in derselben Schublade

Im Kern arbeitet ein Constraint-Solver auf Basis von Googles Optimierungstechnologie, von uns für die Schulplanung angepasst. Genau in dieser Anpassung liegt die Arbeit: über das Ergebnis entscheidet nicht der Kern selbst, sondern wie genau ihm eine Schule beschrieben wurde.

Im Zentrum dieser Beschreibung steht eine einzige Unterscheidung. Manches darf nicht verletzt werden, anderes ist bloß erwünscht, und beides landet nie in derselben Schublade.

Hart — nie verletztWeich — wird gegeneinander gewichtet
Kollisionen bei Lehrkraft, Klasse, Gruppe, RaumVerteilung eines Fachs über die Woche
Schülerkollisionen (bei schülerbezogener Planung)Springstunden der Lehrkräfte
Sperrzeiten und geschlossene TageGleichmäßige Tagesbelastung
Trennung von A- und B-WocheWeiche Reihenfolgewünsche
Tages- und Wochenlimits der LehrkraftNutzung markierter Stunden
Harte Reihenfolgeregeln, Vorbereitungsgrenzen
Der praktische Unterschied: Sie können per Schieberegler keine Kollision erzeugen. Bei heuristischen Motoren ist „Ich habe ein Gewicht zu weit hochgezogen und eine Kollision bekommen“ ein reales Ergebnis, weil alles im selben Punktetopf konkurriert. Hier ist eine harte Bedingung kein Punktwert, sondern eine Wand: Dieser Bereich des Lösungsraums existiert schlicht nicht.

4. „Nichts Besseres“ ist eine Schranke, kein Gefühl

Während der Suche führt der Solver zwei Zahlen mit: die Kosten des besten Plans, den er hat, und die theoretische untere Schranke, unter die keine Anordnung kommen kann. Im Verlauf sinkt die eine, die andere steigt. Treffen sie sich, ist die Arbeit fertig — und das Ergebnis ist nicht nur gut, seine Optimalität ist bewiesen.

Treffen sie sich nicht, erfahren Sie den verbleibenden Abstand. „Dieser Plan ist höchstens so weit vom bestmöglichen entfernt“ ist der Satz, mit dem Sie entscheiden, ob Sie den Plan annehmen oder den Motor weiterlaufen lassen. Eine Heuristik kann diesen Satz nicht liefern: Wer das Ideal nicht kennt, kann den Abstand dazu nicht messen. Sie weiß am Ende nur, dass sie aufgehört hat.

Diesen Unterschied haben wir in einem eigenen Beitrag behandelt: was es heißt, dass ein Stundenplan beweisbar optimal ist.

5. Das Ergebnis hat eine Kennzahl — aber nicht die des Solvers

Jeder Lauf bekommt eine Perfektionspunktzahl von höchstens 100. Achtzig Punkte entfallen auf die Platzierung: volle Punktzahl, wenn jede Unterrichtsstunde einen Platz gefunden hat. Die übrigen zwanzig bewerten messbare Qualität — Hohlstunden der Klassen, Springstunden der Lehrkräfte, bedingte Situationen und verletzte Planungsregeln.

Diese Wahl ist bewusst: die Strafsumme des Solvers wird nicht als Punktzahl verwendet. Sie ist eine einzige Summe, zwischen Schulen nicht vergleichbar, und ihre Bedeutung verschiebt sich, sobald Sie ein Gewicht ändern — die 1.240 von letzter Woche und die 980 von dieser Woche messen nicht dasselbe. Die Punktzahl wird deshalb am Plan selbst neu gemessen, und auf dem Server läuft dieselbe Formel wie im Browser: Verschieben Sie eine Stunde im Plan, ändert sich der Wert noch vor dem Speichern.

Wer prüft den Motor?

Der gefährlichste Fehler eines Planungsmotors ist kein Absturz, sondern unbemerkt falsch zu rechnen. Der Plan entsteht, alles steht auf Grün, und eine Bedingung wurde nie angewendet. Diese Fehlerklasse findet man nicht durch Hinsehen — man findet sie mit Tests. Allein auf der Motorseite laufen über 2.800 automatisierte Tests, und drei Gruppen davon zielen genau auf dieses Risiko:

  • Bindungstests. Für jede harte Bedingung bauen wir eine Eingabe, die sie absichtlich verletzt, und verlangen vom Motor die Antwort nicht lösbar. Zu bestätigen, dass ein Plan „richtig aussieht“, genügt nicht: nur so zeigt sich, ob eine Regel aus dem Code wirklich im Modell angekommen ist.
  • Regression an echten Schulen. Läufe auf importierten Daten realer Schulen mit festem Startwert. Verschlechtert eine Verbesserung am Motor den Plan einer anderen Schule, sieht man es vor dem Release.
  • Äquivalenz der Formulierung. Dasselbe Problem wird auf zwei Arten beschrieben und die Ergebnisse werden auf Gleichwertigkeit geprüft — der Beweis, dass ein geändertes Modell seine Bedeutung behalten hat.
Warum wir darauf bestehen. Nimmt eine Schule einen Plan an, hängen daran gut tausend Unterrichtsstunden und der Wochenalltag von Hunderten Menschen. Stellt sich dann heraus, dass „die Bedingung gar nicht angewendet wurde“, kostet das keine Softwarekorrektur, sondern einen zweiten August.

Die Aufsichtsplanung nutzt denselben Motor, aber ein eigenes Modell

Auch die Aufsichtsplanung läuft über denselben Kern und bildet sowohl Pausenaufsichten als auch tageweise Aufsichtsdienste ab. Entscheidend ist die architektonische Grenze: Der Aufsichtsplaner liest die Stundenplatzierungen und schreibt sie nie. Ein neu erzeugter Aufsichtsplan verändert Ihren Stundenplan nicht. Diese Regel wird im Code-Review durchgesetzt, nicht dem guten Willen überlassen.

Was wir nicht versprechen

Die Grenzen vorab zu nennen ist billiger, als sie später zu erklären.

  • Optimalität gilt für das Ziel, das Sie definiert haben. Gewichten Sie Springstunden mit null, erzeugt der Motor bereitwillig einen Plan voller Springstunden und beweist dessen Optimalität. Die Mathematik hält sich an Ihre Prioritäten — auch an Ihre Fehler.
  • Er erfindet keine Ressourcen. Kein Solver schafft einen Raum, den Sie nicht haben, oder eine Stunde, die es nicht gibt. Er kann nur früh und präzise sagen, dass sie fehlen.
  • Der Beweis gelingt nicht immer innerhalb des Zeitlimits. Bei sehr großen Schulen oder solchen mit sehr wenig Spielraum kann der Motor mit einem kleinen Restabstand anhalten. Der Unterschied: Er nennt diesen Abstand, statt eine abgebrochene Suche als fertige Antwort auszugeben.

Die Zusage, die wir geben

Am Ende eines Laufs wissen Sie, welcher von drei Fällen eingetreten ist: dieser Plan ist optimal; dieser Plan ist zulässig und höchstens so weit vom Optimum entfernt; oder diese Anforderungen sind nicht alle gleichzeitig erfüllbar, und hier ist die Gruppe, die sich widerspricht.

„Mehr habe ich nicht geschafft“ bekommen Sie nie. Das ist der Unterschied.


Bildena Scheduler ist ein webbasiertes System für die Schulstundenplanung auf Basis von Googles Optimierungstechnologie und eigenen Planungsalgorithmen, in Deutschland entwickelt und gehostet. In der kostenlosen Testphase können Sie einen vollständigen Lauf mit Ihren eigenen Daten starten — importiert aus aSc TimeTables, Untis oder Excel — und das Ergebnis mit Ihrem heutigen Plan vergleichen.

Stundenplan-MotorOptimierungStundenplanung