Prüfungsplaner 0.9.17.0

Benutzerhandbuch

Thomas Türk

12. Februar 2024



1. Einleitung

Prüfungsplaner dient dazu, automatisiert mündliche Abiturprüfungen zu planen. Es wurde für hessische Gymnasien entwickelt. Daher werden Schnittstellen zum Schulportal Hessen und LUSD (hessische Schüler / Lehrer DB) bereitgestellt. Im Detail unterscheidet sich die an verschiedenen hessischen Schulen stark und Prüfungsplaner ist hochgradig konfigurierbar, um solche unterschiedlichen Anforderungen entsprechen zu können. Dabei stehen zwar die Bedürfnisse hessischer Schulen im Vordergrund, Prüfungsplaner sollte aber dennoch auch für Schulen aus anderen Bundesländern nützlich sein.

1.1. Ein- / Ausgabe

Prüfungsplaner erhält eine Liste von Prüfungen, die Schülys bei bestimmten Lehrys in einem Fach ablegen müssen (diese Dokumentation ist, wie auch Prüfungsplaner selbst, nach Phettberg entgendert). Das Programm sucht dann automatisch gute Prüfungspläne. Ein Plan ordnet dabei jeder Prüfung

zu. Prüfy, Schüly und Fach der Prüfung ergeben sich aus der Eingabe. Ein Import von Daten aus dem hessischen Schulportal ist möglich. Ebenso können erstellte Pläne in ein Format, das vom Schulportal eingelesen werden kann, exportiert werden. Eine Ausgabe der erstellten Pläne in Excel-Tabellen oder HTML Seiten ist ebenfalls möglich.

1.2. Automatische Suche nach guten Pläne

Hauptfokus von Prüfungsplaner ist die automatische Suche nach guten Plänen. Pläne können zwar manuell bearbeitet werden, dies ist jedoch für kleinere Nachbearbeitung automatisch erzeugter Pläne gedacht. Es ist kompliziert, zu definieren, was ein guter Plan ist. Zu einem guten Teil ist dies subjektiv und die Anforderungen einzelner Schulen unterscheiden sich. Stark erschwerend kommt hinzu, dass für die automatische Optimierung Prüfungsplaner die Güte eines Plans als einen einfachen Zahlenwert darstellt. Eine genaue Erklärung, wie diese Bewertung eines Planes funktioniert und wie diese für die Anforderungen der eigenen Schule angepasst werden kann, bildet einen der Hauptteile dieses Dokumentes.

Pläne unterliegen offensichtlichen Einschränkungen, wie z.B. dass ein Lehry nicht an 2 Prüfungen gleichzeitig teilnehmen kann oder dass ein Raum nicht doppelt belegt sein darf. Für Fachfremdys weniger offensichtlich ist, dass ein Schüly maximal eine Prüfung pro Tag haben darf. Zudem werden Prüfungen zu Gruppen zusammengefasst. Prüfungen einer Gruppe müssen zeitlich sehr eng aneinander geplant werden. Dies erlaubt es, dass in einer Prüfungsgruppe das gleiche Thema geprüft wird. Schülys können sich aufgrund von Beaufsichtigung vor und nach den eigentlichen Prüfungen nicht über die Inhalte der Prüfungen abstimmen. Nicht alle Lehrys sind als Vorsitzendys oder Protokollantys für alle Prüfungen geeignet. Oft gibt es Einschränkungen wie z.B. dass Protokollantys das Fach selbst unterrichten müssen oder Vorsitzendys der Schulleitung angehören müssen.

1.3. Weitere Eingaben

Neben den zu planenden Prüfungen selbst werden weitere Eingaben benötigt:

Zudem können Einschränkungen und Vorlieben definiert werden, z.B. * Lehry kann zu bestimmtem Zeiten nicht prüfen * Raum zu bestimmten Zeiten nicht verfügbar * feste Teilplanung für eine Prüfung (z.B. fixes Protokollanty oder fixen Tag) * bestimmte Maximalanzahl an Prüfungen für einzelne Lehrys * Vorlieben eines Lehrys (bestimmte Zeiten bevorzugt, Zusammenarbeit mit anderen Lehrys, …) * …

1.4. Verwendete Optimierungsmethode

Ausgabe des Programms sind mehrere, hoffentlich gute Prüfungspläne. Die Prüfungspläne werden zufällig erzeugt. Jeder Aufruf des Programms liefert andere Pläne. Es wird nicht garantiert, dass die bestmöglichen Pläne gefunden werden. Ziel ist vielmehr, schnell gute Pläne zu finden.

Die Implementierung basiert auf einem genetischen Algorithmus. Idee ist, zunächst zufällig Pläne zu erzeugen. Dabei ist die Erzeugung nicht rein zufällig, sondern Wahrscheinlichkeiten werden so gewählt, dass die Entstehung guter Pläne wahrscheinlicher ist. Zum Beispiel wird für eine Prüfung ein Raum viel eher gewählt, wenn der Raum noch nicht belegt ist. Es werden nur die besten so erzeugten Pläne behalten. Schlechte Pläne werden entsorgt. Danach werden kleine zufällige Änderungen (sogenannte Mutationen) durchgeführt und immer nur die besten resultierenden Pläne behalten. Eine naive Implementierung dieses Ansatzes würde dazu führen, schnell in Plänen festzustecken, die lokal optimal sind, also über einzelne Mutationen nicht verbessert werden können, insgesamt gesehen aber dennoch relativ schlecht sind. Es werden verschiedene Maßnahmen getroffen, um dies zu verhindern. Die für den Nutzer offensichtlichste solche Maßnahme ist, Pläne in Gruppen zusammenzufassen. Pläne einer Gruppe sind aus dem gleichen Ursprungsplan entstanden und einander somit sehr ähnlich. Durch Gruppen von Plänen wird sichergestellt, dass nicht nur einander sehr ähnliche Pläne optimiert werden.

Die Implementierung ist in der Lage, relativ schnelle gute Pläne zu erzeugen. Diese sind aber im Allgemeinen nicht optimal und mehrfache Aufrufe des Programms resultieren in unterschiedlichen Plänen.

1.5. Manuelle Nachbarbeitung / interaktive Optimierung

Ausgabe des Programms sind mehrere, hoffentlich gute Prüfungspläne. Im Standardfall terminiert die Optimierung nicht automatisch. Es werden schnell erste Pläne erzeugt, die dann mit mehr Rechenzeit immer besser werden. Es ist jederzeit möglich, die automatische Generierung bzw. Optimierung von Plänen zu unterbrechen, Pläne und gegebenenfalls Parameter wie z.B. Vorlieben manuell zu bearbeiten und die Generierung bzw. Optimierung der Pläne fortzusetzen. Auch eine rein manuelle Erstellung von Plänen ist möglich (wobei allerdings nur ein Bruchteil der Möglichkeiten von Prüfungsplaner genutzt würde).

Statt mit einer Menge von Plänen, einem sogenannten Planpool, zu arbeiten, ist es zudem möglich, sich auf einen einzelnen Plan zu konzentrieren. Dies ist hauptsächlich für das Finetuning bereits sehr guter Pläne gedacht. Zunächst werden mit Hilfe eines Planpools mehrere gute Pläne erzeugt. Der beste dieser Pläne wird dann genauer untersucht, evtl. kleinere manuelle Änderungen an diesem guten Plan vorgenommen und dieser manuell geänderte Plan dann erneut automatisch optimiert.

2. Installation

2.1. Grafische Oberfläche vs. Kommandozeile

Prüfungsplaner gibt es als Kommandozeilen-Tool sowie mit grafischer Oberfläche. Beide Versionen verarbeiten die gleichen Eingabedateien auf die gleiche Weise und erzeugen die gleichen Ausgaben. Für die interaktive Benutzung, insbesondere die manuelle Bearbeitung von Plänen ist die grafische Oberfläche deutlich besser geeignet. Die Kommandozeilenversion ist besser automatisierbar, benötigt weniger Resourcen und kann einfacher auf verschiedene Systeme portiert werden. Allerdings ist sie hauptsächlich für vollautomatische Suchen geeignet und erfordert ein gewisses Maß an Einarbeitung und Vertrautheit. Die grafische Oberfläche ist intuitiver.

Da die meisten Nutzys Prüfungsplaner wohl nur selten (einmal pro Jahr vor Prüfungen) sowie interaktiv verwenden, bietet sich wahrscheinlich meist die Nutzung der grafischen Oberfläche an. Soll Prüfungsplaner dagegen (teil)automatisiert oder z.B. über eine Netzwerkverbindung auf einem anderen Rechner genutzt werden, ist die Kommandozeilenversion vorteilhaft. Auch ein kombinierter Einsatz kann sinnvoll sein. So ist z.B. das lokale Bearbeiten der Eingabedateien mittels grafischer Oberfläche auf einem relativ langsamen Rechner und danach die eigentliche Suche nach guten Plänen mittels Kommandozeilen-Tool über Nacht auf einem schnellen Rechner im Netzwerk denkbar.

2.2. Installation

Für Windows steht ein Installationsprogramm zur Verfügung. Dieses ist wie üblich zu nutzen und installiert je nach Auswahl die grafische Oberfläche, das Kommandozeilen-Tool, Dokumentation sowie Beispiel-Eingaben. Ebenso werden Start-Menüeinträge sowie ein Uninstaller-Eintrag angelegt. Sie finden Prüfungsplaner nach der Installation im Startmenü-Ordner Prüfungsplaner. Dort erhalten Sie auch Zugriff auf die Dokumentation sowie den Uninstaller. Standardmäßig wird der Win32-Theme verwendet. Dieser ist nicht so schön, wie der Standard-GTK Theme, aber viel schneller. Möchten Sie den Standard-Theme nutzen, ändern Sie bitte die Einstellungen in etc/gtk-3.0/settings.ini im Installationsverzeichnis.

Für Linux werden Binaries zur Verfügung gestellt.

Sollten Sie Probleme bei der Installation haben, die Sie auch nicht mit Hilfe von erfahrenen Computernutzys lösen können, kontaktieren Sie bitte den Autor Thomas Türk (kontakt@thomas-tuerk.de).

3. Ein- / Ausgabedateien

Prüfungsplaner benutzt Modelle, Einstellungen und die erstellte Planung. Diese können über bestimmte Dateien ein- und ausgeben werden.

3.1. Modelle

Modelle enthalten die komplette Beschreibung der Planungsaufgabe, d.h.

3.1.1. interne / externe Prüfungen

Prüfungen werden in interne und externe Prüfungen unterteilt. Bei externen Prüfungen handelt es sich um Prüfungen, die an einem nicht verwalteten Tag oder in einem nicht verwalteten Raum stattfinden. Alle anderen Prüfungen sind intern. Nur interne Prüfungen werden von Prüfungsplaner geplant und für die Bewertung berücksichtigt. Externe Prüfungen müssen bereits in der Eingabe vollständig geplant sein.

Da externe Prüfungen weder von Prüfungsplaner geplant, noch bewertet werden, könnten sie ohne große Probleme komplett aus den Eingaben entfernt werden. Für Prüfungsplaner ist dies meist sogar vorteilhaft. Hauptgrund für die Unterstützung externer Prüfungen ist, dass sie es erlauben aus dem Schulportal exportierte Prüfungslisten nicht nachbearbeiten zu müssen. Oft sind externe Prüfungen an einem nicht für die Planung verwendeten Tag. In diesem Fall sind sie wirklich nur wegen den einfacheren Exportes nützlich. Externe Prüfungen an einem verwalteten Tag müssen zu einer verwalteten Uhrzeit stattfinden. Prüfungsplaner benutzt dann die Information, dass die an einer solchen externen Prüfung beteiligten Lehrys und das Schüly nicht gleichzeitig für andere Prüfungen zur Verfügung stehen. Dies wäre jedoch genauso über Vorlieben möglich.

Ähnlich zu externen Prüfungen sind vollständig geplante interne Prüfungen. Auch diese werden von Prüfungsplaner nicht geplant und dienen hauptsächlich dazu, bestimmte Lehrys, Schülys und Räume zu bestimmten Zeiten als nicht verfügbar zu markieren. Im Gegensatz zu externen Prüfungen werden vollständig geplante interne Prüfungen aber in der Bewertung berücksichtigt. Bei der vollständigen Planung interner Prüfungen sollte vorsichtig vorgegangen werden, da es leicht möglich ist Einschränkungen zu machen, die die Erzeugung eines guten Plans verhindern.

3.1.2. Prüfungsgruppen / Prüfungsblöcke

Prüfungen können zu Gruppen zusammengefasst werden. Prüfungen einer Gruppe müssen im gleichen Fach beim gleichen Prüfy abgelegt werden. Sie müssen direkt nacheinander geplant werden. Zudem wird versucht, den gleichen Raum, das gleiche Vorsitzendy und das gleiche Protokollanty einzuplanen. Die maximale Anzahl von Prüfungen in einer Gruppe (und damit das Zeitfenster in dem alle Prüfungen einer Gruppe liegen müssen) kann in den Einstellungen hinterlegt werden. Prüfungsgruppen erlauben es, das gleiche Prüfungsthema für mehrere mündliche Prüfungen zu verwenden. Eine Abstimmung der Schülys zwischen den Prüfungen kann durch Beaufsichtigung vor und nach den Prüfungen und den engen zeitlichen Rahmen der Prüfungen einer Gruppe unterbunden werden.

Den Prüfungen einer Gruppe können Prioriäten zugewiesen werden. Hierdurch kann die Reihenfolge der Prüfungen beeinflusst werden. Prüfungen mit kleinerer Priorität werden zeitlich vor Prüfungen mit höherer Priorität eingeplant. Prüfungen, die über die gleiche Priorität werden in zufälliger Reihenfolge eingeplant.

In seltenen Fällen kann es wünschenswert sein, auch Prüfungen bei verschiedenen Prüfys oder verschiedenen Fächern zeitlich nahe beieinander zu planen. Hierfür können Prüfungen sogenannten Prüfungsblöcken zugeordnet werden. Alle Prüfungen einer Gruppe müssen dem gleichen Block zugeordnet sein. Prüfungen eines Blocks werden nahe beieinander geplant, allerdings nicht mit den starken Checks, die für Prüfungsgruppen benutzt werden. Da Prüfungsblöcke aus mehreren Prüfungsgruppen bestehen können werden im Allgemeinen die Prüfungen eines Blocks nicht so nahe aneinander geplant wie die Prüfungen einer Gruppe. Zudem sind Pausen zwischen Prüfungen eines Blocks erlaubt.

3.2. Einstellungen

Während ein Modell das Planungsproblem selbst beschreibt, enthalten die Einstellungen Parameter, wie die Planung ablaufen soll.

ACHTUNG: Bevor Sie Einstellungen, die die Bewertung von Plänen betreffen, ändern, sollten Sie genau verstanden haben, wie Planung, insbesondere Mutationen, sowie die Bewertung von Plänen funktioniert. Schlechte, insbesondere schlecht aufeinander abgestimmte Einstellungen, können dazu führen, dass keine guten Pläne gefunden werden.

Ich empfehle, zunächst mit den Standardeinstellungen zu arbeiten und erst nach einer gewissen Erfahrung mit Prüfungsplaner, Einstellungen zu verändern.

3.3. Planung

Ein Plan ist eine Zuordnung eines Vorsitzendys, eines Protokollantys, eines Raums und einer Zeit zu jeder Prüfung. Prüfy und Schüly einer Prüfung sind unveränderlich und bereits im Modell festgelegt. Jeder Plan besitzt eine Bewertung, die angibt, wie gut oder schlecht ein Plan ist. Diese Bewertung besteht aus einem Zahlenwert, der aus dem Plan selbst, den Vorlieben des Modells sowie in den Einstellungen festgelegten Gewichten berechnet wird. Es ist schwer, präzise festzulegen, was ein guter Plan ist. Bei der Abbildung dieser Güte auf einen einfachen Zahlenwert können zwangsläufig nicht alle Nuancen berücksichtigt werden. Dennoch oder gerade deswegen ist die Berechnung der Bewertung komplex und nicht einfach zu verstehen. Da die Bewertung jedoch zentral für die Planung ist und ein zumindest oberflächliches Verständnis wichtig für die effektive Nutzung von Prüfungsplaner ist, wird die Bewertung von Plänen unten in einem eigenen Abschnitt ausführlich erläutert.

3.3.1. Planpool

Eine Planung besteht hauptsächlich aus vielen erstellten Plänen, dem sogenannten Planpool. Ein Planpool besitzt eine Maximalgröße und ist in Gruppen, die ebenfalls eine Maximalgröße besitzen, unterteilt. Pläne einer Gruppe sind dabei aus dem gleichen Ursprungsplan entstanden und im Allgemeinen einander sehr ähnlich. Wird ein neuer Plan in den Planpool eingefügt, wird - sofern durch das Einfügen die Maximalgröße seiner Gruppe überschritten ist - zunächst der schlechteste Plan der Gruppe entfernt. Ist die Maximalgröße der Gruppe nicht überschritten, aber durch das Einfügen die Maximalgröße des gesamten Planpools, so wird der schlechteste Plan des Planpools entfernt. Dies kann bedeuten, dass der neue Plan auch selbst gelöscht wird, da er entweder zu schlecht für seine Gruppe oder den Planpool insgesamt ist.

3.3.2. manuelle Pläne

Zusätzlich zum Planpool gibt es eine Menge von manuellen Plänen. Diese sind vom Nutzy explizit angelegte Pläne, die auch vom Nutzy direkt bearbeitet werden können. Sie besitzen jeweils einen eindeutigen Namen. Im Gegensatz zu Plänen im Planpool werden manuelle Pläne nicht automatisch entfernt, wenn bessere Pläne gefunden wurden.

3.4. Überblick unterstützte Dateiformate

Hier soll zunächst ein Überblick über die wichtigsten Dateien, d.h. Zustandsdateien, Verzeichnisse und Plan-Dateien gegeben werden. Diese werden dann später im Detail erklärt.

ACHTUNG: Speichern und Öffnen bezieht sich im Zusammenhang mit Prüfungsplaner immer auf Zustandsdateien. Modell-Verzeichnisse werden Importiert und Exportiert. Auch nach Änderungen in der grafischen Oberfläche bspw. an Einstellungen wird ein Modell-Verzeichnis nicht automatisch aktualisiert. Hierfür ist ein expliziter Export nötig. Im Gegensatz dazu, gibt es eine Autospeichern-Funktionalität, die in regelmäßigen Abständen eine Zustandsdatei speichert.

3.4.1. Zustandsdateien

Intern werden von Prüfungsplaner sogenannte Zustandsdateien verwendet. Dies sind einzelne Binärdateien, die den gesamten Zustand, also Modell, Einstellungen und auch die Planung enthalten. Zustandsdateien können benutzt werden, um eine bereits gestartete Planung später fortzusetzen oder um ein Planungsproblem mit Kollegys zu teilen. Zustandsdateien sind jedoch nicht für die direkte Bearbeitung durch das Nutzy geeignet.

3.4.2. Modell-Verzeichnisse

Für die direkte Bearbeitung durch das Nutzy werden zusätzliche Modell-Verzeichnisse als Import / Export Format angeboten. Dies sind Verzeichnisse, die das Modell und die Einstellungen als Textdateien enthalten. Modell-Verzeichnisse sind geeignet, um ein Problem initial zu beschreiben und langfristig zu speichern. Dateien können direkt vom Nutzy bearbeitet werden und es ist leicht möglich, Teile des Modells anderer Planungen zu übernehmen. Zudem sind die Dateien im Modell-Verzeichnis notfalls auch ohne Prüfungsplaner lesbar. Zusätzlich zu den Textdateien (im CSV und YAML Format) wird auch eine XLSX Datei im Modell-Verzeichnis erstellt. Diese wird nicht für den Import benutzt, eine Bearbeitung ist daher nur sehr bedingt sinnvoll. Manche Nutzys bevorzugen jedoch die Betrachtung eines Modells in einer Tabellenkalkulation wie z.B. Microsoft Excel.

3.4.3. Pläne

Modell-Verzeichnisse enthalten keine Planung. Pläne können jedoch als CVS, HTML oder XLSX Datei exportiert werden. Die CSV Datei ist für maschinelle Weiterverarbeitung gedacht, während die HTML und XLSX Dateien für das Nutzy einfach lesbar sind. CVS Pläne können von Prüfungsplaner sowie (über den Umweg XLS) auch vom Schulportal importiert werden. Die HTML Datei ist für die detaillierte Analyse der Bewertung gedacht. Sie enthält den Gesamtplan als Tabelle sowie Pläne für einzelne Lehrys. Wichtiger jedoch ist, dass die Bewertung detailliert aufgeschlüsselt ist. Die XLSX Datei dagegen enthält keine Bewertung, sondern nur den Gesamtplan (als Tabelle und als rohe Daten) sowie Raum- und Lehrypläne. Sie ist für das Drucken einzelner Pläne geeignet. Beim Export eines Modell-Verzeichnisses, können alle Pläne in ein Unterverzeichnis exportiert werden. Ebenso ist es möglich, einzelne Pläne zu exportieren.

3.5. Modell-Verzeichnisse

Modell-Verzeichnisse sind Verzeichnisse, die einzelne Text-Dateien enthalten, die direkt vom Nutzy bearbeitet werden können. Die wichtigste dieser Dateien ist pruefungen.cvs, die Informationen zu allen Prüfungen enthält. Diese enthält aus dem Schulportal exportierte Prüfungen. Alternativ kann auch eine Datei mit dem Namensshema pruefungen-XXXX.cvs verwendet werden. Diese enthält die gleichen Informationen aber mit einer Struktur XXXX. So wird pruefungen-LUSD.cvs zum Beispiel für aus LUSD exportierte Prüfungen verwendet. Alle anderen Dateien in einem Modell-Verzeichnis sind optional. Unterstützt werden folgende Dateien:

Beim Export eines Modell-Verzeichnisses werden je nach Einstellung zusätzlich folgende Dateien erstellt. Diese werden jedoch nicht importiert:

Viele Teile eines Modells, wie z.B. die verwendeten Räume oder die Lehrys ändern sich kaum zwischen zwei Prüfungsjahren an einer Schule. Daher bietet es sich an, einzelne Dateien eines Modell-Verzeichnisses vom Vorjahr zu kopieren und über die grafische Oberfläche oder per Hand anzupassen.

Bei den .yaml Dateien handelt es sich um UTF-8 kodierte Yaml-Dateien. YAML ist eine einfache, relativ gut lesbare Auszeichnungsprache. YAML-Dateien können mit einem geeigneten Text-Editor direkt vom Nutzy bearbeitet werden. Ein einfacher Text-Editor wie das Windows Nodepad genügt, komfortabler ist die Bearbeitung jedoch mit Editoren, wie Notepad++ oder Visual Studio Code, die speziellen Support für YAML bereitstellen. Auch die grafische Oberfläche von Prüfungsplaner enthält einen einfachen Text-Editor mit grundlegender Unterstützung für YAML.

Die .cvs Dateien sind UTF-8 kodierte CSV-Dateien. Für diese bietet sich zur Bearbeitung eine Tabellenkalkulation wie LibreOffice Calc oder Microsoft Excel an. pruefungen.csv kann aus dem Schulportal exportiert werden. Beachten Sie hierbei bitte, dass das Schulportal XLS Dateien exportiert, die ins CVS-Format konvertiert werden müssen. Diese ist leicht mit einer Tabellen-Kalkulation wie z.B. Libre-Office oder MS Excel möglich. Diese Programme können auch verwendet werden um pruefungen.cvs manuell zu bearbeiten. Dies sollte jedoch nur in Ausnahmefällen nötig sein. Zu beachten ist, dass für CVS Zeichen Komma oder Semikolon als Trennzeichen verwenden können. Welches Trennzeichen verwendet wird, hängt von der Tabellen-Kalkulation und bei MS-Excel von den Windows Länder-Einstellungen ab. Prüfungsplaner unterstützt sowohl Komma, also auch Semikolon-getrennte CVS-Dateien.

Während pruefungen.csv die Prüfungen selbst enthält, sollten alle evtl. gewünschten Zusatzinformationen in pruefungenextras.csv gespeichert werden. Bei diesen Zusatzinformationen handelt es sich um die Einteilung der Prüfungen in Gruppen, sowie um Vorgaben für die Planung, also bereits festgelegte Zeiten, Räume oder Lehrys für eine Prüfung. Es ist zwar möglich, pruefungenextras.csv händisch zu erstellen und zu bearbeiten. Eine Erstellung und Bearbeitung über die grafische Oberfläche - insbesondere mit Hinblick auf die Einteilung der Prüfungen in Gruppen - ist jedoch wesentlich komfortabler.

3.5.1. Demo-Version

In der Demo-Version von Prüfungsplaner werden Modelle direkt nach dem Import eines Modell-Verzeichnisses anonymisiert. Das bedeutet, dass die Namen von Schülys, Lehrys, Räumen und Klassen zufällig geändert werden. Zudem werden die Namen von Fächern zufällig miteinander vertauscht. Aus einer Prüfung von Max Mustermann bei Maria Musterfrau im Fach M kann so eine Prüfung von Vorname 32 Nachname 32 bei LK23 im Fach BIO werden.

Die Anonymisierung belässt die Eingabe aus Planungssicht also unverändert. So kann Prüfungsplaner ausgiebig getestet werden. Findet Planungsplaner gute Pläne, so sollten auch für das nicht anonymisierte Modell solche Pläne gefunden werden, da ja nur die Namen geändert sind. Allerdings ist es bewusst sehr schwer die erstellten Pläne zu verstehen. Zudem ist es zudem leider erschwert, Vorlieben für einzelne Lehrys einzutragen. Ein produktiver Einsatz der Demo-Version wird durch die Anonymisierung also deutlich erschwert. Für den Produktiv-Einsatz erwerben Sie bitte eine Vollversion, die keine solche Anonymisierung durchführt.

Nicht von der Anonymisierung betroffen ist das Öffnen von Zustandsdateien. Es ist also möglich (und auch ein intendierter Anwendungsfall), dass ein Kollegy mit Vollversion ein Modell-Verzeichnis importiert, die Planung teilweise durchführt und dann seine Zustandsdatei mit Kollegys teilt, die nur über die Demo-Version verfügen. Diese können dann weiter an der Planung arbeiten (z.B. erzeugte Pläne prüfen, weitere Vorlieben eintragen oder manuelle Änderungen an Plänen vornehmen).

3.6. Zustandsdatei

Zustandsdateien sind einzelne Binärdateien, die Modell, Einstellungen sowie den aktuellen Stand der Planung enthalten. Sie sind nicht für die direkte Bearbeitung durch das Nutzy gedacht. Statt dessen dienen sie dazu, den aktuellen Stand der Planung zu speichern und diese so einfach später oder auf einem anderen Rechner fortsetzen zu können. Die grafische Oberfläche erlaubt es, aus Zustandsdateien ein Modell-Verzeichnis sowie Pläne zu extrahieren. Speichern (und Autospeichern) aktualisiert immer nur die Zustandsdatei, nicht ein Modell-Verzeichnis, das evtl. importiert wurde.

Zustandsdateien sind nicht für langfristige Datensicherung geeignet, da sich das Binärformat zwischen Versionen von Prüfungsplaner ändern kann. Hier bieten sich stattdessen Modell-Verzeichnisse sowie der Export von Plänen an. Zustandsdateien sind jedoch gut für die Zusammenarbeit mit Kollegys geeignet.

Es wird garantiert, dass Versionen von Prüfungsplaner, die sich nur in der 4. Stelle der Versionsnummer unterscheiden, die gleichen Zustandsdateien verwenden können. So ist zum Beispiel Version 0.9.9.2 mit 0.9.9.4 garantiert kompatibel. Unterscheidet sich die Versionsnummer an anderen Stellen ist eine Kompatibilität in den allermeisten Fällen nicht gegeben. Im Gegensatz dazu können Modell-Verzeichnisse alter Versionen sowie als CVS Datei exportierte Pläne meist auch von neueren Versionen importiert werden. Es wird versucht möglichst zu vewährleisten, dass Modell-Verzeichnisse neuer Versionen auch von alten Versionen gelesen werden können. Dies ist jedoch nicht immer möglich und oft können nicht alle Daten und Einstellungen in alte Versionen eingelesen werden (z.B. weil bestimmte Einstellungen in der alten Version noch nicht vorhanden waren).

3.7. Exportierte Pläne

Erstellte Pläne können als CSV sowie HTML und XLSX exportiert werden. Die CSV Datei enthält alle Informationen und ist für den Import in das Schulportal sowie sonstige automatisierte Weiterverarbeitung geeignet. Die HTML Dateien sind für die Begutachtung der Pläne durch das Nutzy gedacht. Sie enthalten Übersichten wann welches Lehry eingeplant ist, die Raumbelegung, wie die Bewertung sich zusammensetzt, etc. Sie kann leicht an andere Lehrys weitergeleitet werden, die diese mit üblichen Browsern öffnen können. Die XLSX Dateien enthalten ebenfalls den erzeugten Plan, jedoch nicht die Bewertung. Sie werden erstellt, da viele Lehrys aktuell Microsoft Excel für die Planung verwenden. Es soll den Umstieg auf Prüfungsplaner zu erleichtern. Die XLSX Dateien ermöglichen das Drucken von Gesamt-, Raum- oder Lehryplänen (was jedoch über das Schulportal besser möglich ist), sowie manuelle Änderungen von Plänen (was jedoch mit Prüfungsplaner viel komfortabler und weniger fehleranfällig ist).

3.8. Intendierte Nutzung

Die angedachte Arbeitsweise mit den verschiedenen Ein- und Ausgabedateien ist wie folgt: Für jede durchzuführende Prüfungsplanung werden die Prüfungen als XLS Datei aus den Schulportal exportiert und mittels z.B. Microsoft Excel in pruefungen.csv umgewandelt. Steht Schulportal nicht zur Verfügung, kann auch alternativ eine pruefungen-XXXX.csv Datei verwendet werden.

Andere Dateien des Modell-Verzeichnisses werden entweder aus vorherigen Planungen übernommen und angepasst oder neu erstellt. Die Erstellung bzw. Anpassung kann dabei über die grafische Oberfläche oder durch direkte Bearbeitung der yaml Dateien erfolgen.

Während der Planung werden Zustandsdateien genutzt, um Zwischenstände zu speichern. Es wird davon ausgegangen, dass Zustandsdateien sich oft ändern. So wird die aktuelle Zustandsdatei durch die Autospeichern-Funktion bspw. automatisch überschrieben. Bei größeren Änderungen am Modell, z.B. der Eingabe von vielen Vorlieben, bietet es sich zur Datensicherung an, die neuen Informationen als Modell-Verzeichnis zu exportieren. Zusätzlich kann eine Sicherheitskopie der aktuellen Zustandsdatei erstellt werden. Dabei ist jedoch zu beachten, dass Zustandsdateien - im Gegensatz zu Modell-Verzeichnissen - meist nicht zwischen verschiedenen Versionen von Prüfungsplaner kompatibel sind. Zustandsdateien bieten sich auch an, um Planungen auf einem Rechner vorzubereiten und dann auf einem anderen Rechner auszuführen oder um Planungen mit Kollegys zu teilen. Zur längerfristigen Sicherung sollten jedoch Modell-Verzeichnisse verwendet werden.

Nach erfolgreicher Planung können erzeugte Pläne als CVS Datei exportiert und in das Schulportal importiert werden. Da die CVS Dateien jedoch nur schlecht direkt vom Menschen lesbar sind, wird zusätzlich zu der exportierten CVS Datei auch eine für das Nutzy gedachte HTML Datei exportiert. Dieser HTML Export kann auch - zusätzlich zu den Möglichkeiten der grafischen Oberfläche - während der Planung benutzt werden, um Pläne zu begutachten. Auch für die Weitergabe an Kollegys sind HTML-Dateien geeignet. Die XLSX Dateien bieten sich an, um einzelne Tages-, Lehry- oder Raumpläne manuell zu formatieren, evtl. Kommentare einzufügen und zu drucken. Es gibt auch Lehrys, die für die reine Betrachtung XLSX gegenüber HTML Dateien bevorzugen; dies ist besonders für Kollegys der Fall, die nur am Plan, nicht an seiner Bewertung interessiert sind.

4. Nutzung der grafischen Oberfläche

4.1. Laden eines Modell

Nach dem Start der grafischen Oberfläche wird zunächst nur ein einzelner Reiter Log angezeigt.

Vor dem Beginn der eigentlichen Arbeit, muss zunächst ein Modell geöffnet werden. Hierzu kann über das Menü Datei entweder ein Modell-Verzeichnis importiert oder eine Zustands-Datei geöffnet werden. Es steht auch ein Menüpunkt zum Öffnen eines Beispiel-Zustandes zur Verfügung. Nach dem Laden eines Modells stehen dann alle Reiter zur Verfügung.

4.2. Übersicht Reiter

4.2.1. Manuelle Planung

Der Reiter manuelle Planung erlaubt es, Pläne genauer zu betrachten, manuell zu bearbeiten, zu importieren und exportieren sowie einzelne Pläne automatisiert zu optimieren.

4.2.2. Planung

Der Reiter Planung erlaubt das Starten und Stoppen der Planung sowie die Inspektion des aktuellen Planpools.

4.2.3. Prüfungen

Unter Prüfungen können die zu planenden Prüfungen betrachtet, in Prüfungsgruppen und -blöcke eingeteilt und Planungen teilweise vorgegeben werden. Hier können die Teile des Modells, die in einem Modell-Verzeichnis in pruefungen.csv und pruefungsextras.csv gespeichert sind, bearbeitet werden.

4.2.4. Vorlieben, Lehrys, Räume, Zeiten, Einstellungen

Die Reiter Vorlieben, Lehrys, Räume, Zeiten und Einstellungen erlauben das Betrachten und Bearbeiten der entsprechenden Teile des Modells sowie der Einstellungen. Die dargestellten Informationen entsprechen den Dateien vorlieben.yaml, lehrysMitRollen.yaml, raeume.yaml, zeiten.yaml sowie einstellungen.yaml. Diese Reiter verfügen jeweils über eine grafische Ansicht sowie eine Text-Ansicht. Meist bietet sich wohl die Nutzung der grafischen Ansicht an, da diese intuitiver zu nutzen ist. Die Nutzung der Textansicht kann jedoch effizienter sein. Man kann zum Beispiel die Zeitvorlieben eines Raums in der grafischen Ansicht eintragen, dann in die Textansicht wechseln und diese Vorlieben schnell für mehrere andere Räume kopieren. Es ist in der Text-Ansicht auch einfach, verschiedene Einträge zu kombinieren. So könnte zum Beispiel ein Nutzy die Vorlieben aller Kollegys im Fachbereich A auf seinem Rechner eintragen, während ein anderes Nutzys die Vorlieben der Kollegys im Fachbereich B auf einem anderen Rechner erfasst. Anschließend kann man beide Vorlieben-Teile in der Text-Ansicht einfach zusammenfügen. Der Reiter Einstellungen ist dabei speziell: viele Einstellungen sowie die Text-Ansicht werden nur nach Aktivierung einer sogenannten Expertenansicht angezeigt. So wird es erschwert, versehentlich Einstellungen so zu ändern, die dazu führen, dass keine guten Pläne mehr gefunden werden können.

4.2.5. Fächer

Der Reiter Fächer zeigt an, welche Prüfungen, Lehrys und Räume es für die einzelnen Fächer gibt. Dieser Reiter erlaubt kein Bearbeiten der Fächer, da diese implizit über Prüfungen, Lehrys und Räume verwaltet werden. Die Fächer von Prüfungen können nicht geändert werden, die Fächer von Lehrys und Räumen werden in den entsprechenden Reiter angepasst.

4.2.6. Modell-Probleme

Wenn Probleme mit dem Modell bestehen, werden diese im Reiter Modell-Probleme angezeigt. Es wird zum Beispiel geprüft, ob für jede Prüfung mindestens ein Protokollanty, Vorsitzendy, Raum und Zeitslot geeignet ist. Sind Modell-Probleme vorhanden, so ist keine automatische Planung möglich. Es werden viele, jedoch nicht alle Probleme automatisch gefunden. Selbst wenn keine Modell-Probleme gefunden werden, bedeutet dies nicht, dass ein konfliktfreier Plan existiert. Insbesondere Konflikte, die sich aus der Kombination verschiedener Einschränkungen ergeben, werden nur schwer gefunden. Zudem ist zu beachten, dass es in Sonderfällen vorkommen kann, dass die automatische Planung keinen konfliktfreier Plan findet, selbst wenn ein solcher existiert.

4.2.7. Log

Der Reiter Log enthält ein Protokoll von wichtigen Ereignissen. Dieses Protokoll dient hauptsächlich der genauen Analyse des Verhaltens von Prüfungsplaner und insbesondere der Ausgabe von hoffentlich hilfreichen Zusatzinformationen bei Fehlern. Es kann eingestellt werden, wie detailliert das Protokoll sein soll. Bei Stufe 1 werden nur schwere Fehler angezeigt (die hoffentlich nie auftreten). Detailliertere Stufen erlauben es zum Beispiel zu protokollieren, wann welche Dateien gelesen oder geschrieben wurden und wie die Planung voranschreitet. Sehr hohe Detailstufen führen zusätzliche Tests aus, um eventuelle Fehler in der Implementierung von Prüfungsplaner zu entdecken. In diesen hohen Detailstufen arbeitet Prüfungsplaner daher deutlich langsamer.

4.3. Modell / Einstellungen bearbeiten

Die Bearbeitung des Modells sowie der Einstellungen erfolgt in jeweils 2 Stufen. Wird in einem der Reiter eine Änderung durchgeführt, so muss diese Änderung übernommen oder verworfen werden, bevor zu einem anderen Reiter gewechselt wird. Beim Übernehmen werden alle nötigen Änderungen am Modell, den Einstellungen und der Planung vorgenommen. Einige Änderungen erfordern, dass eine evtl. bereits bestehende Planung verworfen (d.h. gelöscht) wird. Andere Änderungen, insbesondere an den Vorlieben oder Einstellungen erfordern kein Verwerfen einer bestehenden Planung, machen aber eine Neubewertung aller Pläne nötig.

Werden Änderungen in der Text-Ansicht vorgenommen, muss der Text neu eingelesen werden, um evtl. Änderungen zu erkennen. Dies geschieht automatisch beim Wechsel zwischen Text-Ansicht und grafischer Ansicht. Zudem kann das Einlesen explizit über einen Check-Button in der Toolbar ausgeführt werden. Es empfiehlt sich, die Texteingabe regelmäßig neu einzulesen, um Probleme frühzeitig zu finden und damit einfacher beheben zu können. Über die Toolbar ist es auch möglich, Änderungen rückgängig zu machen, im Text zu suchen und den Text in die Zwischenablage zu kopieren.

4.4. Planung durchführen

Nachdem das Modell und die Einstellungen zur Zufriedenheit angepasst wurden, kann die Planung im Reiter Planung gestartet werden. Dies ist für die automatische Planung im Hintergrund gedacht. Es werden gleichzeitig viele Pläne erstellt und optimiert. Dies erfordert viel Rechenzeit, verhindert aber, dass lange versucht wird, einen sehr schlechten Plan zu optimieren und daher kein guter Plan gefunden wird. Möchten Sie schnell Ihr Modell testen, bietet sich evtl. die Nutzung der manuellen Planung an, bei der gleichzeitig nur an einem Plan gearbeitet wird.

Die Planung erfolgt in 2 Phasen: der Erzeugung zufälliger Pläne und der schrittweisen Verbesserung dieser zufällig erzeugten Pläne durch sogenannte Mutationen.

4.4.1. Erste Planungsphase: zufällige Generierung von Plänen

In der ersten Phase der Planung werden Pläne zufällig erzeugt. Das bedeutet, dass jeder Prüfung zufällig ein Vorsitzendy, ein Protokollanty, ein Raum und eine Zeit zugewiesen wird. Eine naive Umsetzung würde zu sehr, sehr vielen extrem schlechten Plänen führen, in denen z.B. Lehrys oft gleichzeitig für mehrere Prüfungen eingeteilt sind. Daher werden die Wahrscheinlichkeiten während der zufälligen Generierung so gewählt, dass halbwegs gute Pläne wahrscheinlicher sind. So wird ein Raum zum Beispiel viel eher für eine Prüfung gewählt, wenn er zum entsprechenden Zeitpunkt noch frei ist. Dennoch sind die allermeisten generierten Pläne recht schlecht.

Nur die besten generierten Pläne werden für die Mutations-Phase benutzt. Um gute Gesamtergebnisse zu erzielen, ist es sinnvoll, sehr viel mehr Pläne zu erzeugen als in der nächsten Phase benutzt werden. Wie viele Pläne erzeugt und für die nächste Phase benutzt werden ist dabei konfigurierbar. Diese Konfiguration wird im Abschnitt zu Planungseinstellungen genauer erläutert.

4.4.2. Zweite Planungsphase: Mutationen

In der Mutations-Phase werden Pläne schrittweise durch Mutationen verbessert. Eine Mutation besteht aus einer Aneinanderreihung einer oder mehrerer Teilmutationen. Eine Teilmutation ist dabei eine einzelne, kleine Änderung an einem Plan. Beispiele für Teilmutationen sind, einen anderen Raum für eine Prüfung zu wählen oder eine Prüfung auf eine andere Zeit zu verschieben. Einige Teilmututationen betreffen auch ganze Prüfungsgruppen oder sogar mehrere Prüfungsgruppen, die Prüfy und Fach gemeinsam haben. So ist es zum Beispiel auch eine einzelne Teilmutation, das Vorsitzendy einer ganzen Prüfungsgruppe zu ändern.

Für schon recht gute Pläne führt eine erste Teilmutation meist zu einer Verschlechterung des Plans. Ändert eine Teilmutation beispielsweise den Raum einer Prüfung, so ist es recht wahrscheinlich, dass der neue Raum bereits belegt ist. Eine weitere Teilmutation könnte dann die in Konflikt stehende Prüfung in den gerade freigewordenen Raum legen. Für eine Mutation werden daher mehrere Teilmutationen hintereinander ausgeführt und der beste dabei entstandene Zwischenplan als Ergebnis der Mutation benutzt. Die maximale Anzahl der Teilmutationen, aus denen eine Mutation bestehen darf, ist konfigurierbar. Sie kann auch leicht während einer laufenden Planung oder Optimierung geändert werden. Aus Geschwindigkeitsgründen kann es sinnvoll sein, relativ schlechte Pläne zunächst mit wenigen Teilmutationen zu verbessern und die Anzahl der Teilmutationen zu erhöhen, wenn kaum noch Verbesserungen gefunden werden.

Die angewendeten Teilmutationen sind zufällig, aber nicht blind. Teilmutationen werden so gewählt, dass die Wahrscheinlichkeit den Plan zu verbessern recht hoch ist. Dafür wird die Bewertung des Plans betrachtet und solche Teilmutationen bevorzugt, die besonders schlecht bewertete Teile des Plans verändern. Wurde bereits erfolglos versucht, einen bestimmten Teil eines Planes zu besseren, wird die Wahrscheinlichkeit für Mutationen, die diesen Teil ändern, verringert.

Ein Problem ist, dass durch Mutationen sehr viele, sehr ähnliche Pläne erzeugt werden. Ohne geeignete Gegenmaßnahmen kommt es leicht dazu, dass der gesamte Planpool nur aus sehr ähnlichen Variationen eines einzigen Plans besteht. Dies würde dazu führen, einen Plan zu erzeugen, der zwar nicht einfach durch einzelne Mutationen verbessert werden kann, insgesamt gesehen aber dennoch relativ schlecht ist. Man spricht hier von sogenannten lokalen Optima.

Um der Problematik lokaler Optima entgegenzuwirken, wird der Planpool in Gruppen von Plänen unterteilt. In einer Gruppe werden alle Pläne zusammengefasst, die durch Mutationen aus dem gleichen Plan entstanden sind. Es ist konfigurierbar, wie viele Pläne eine Gruppe maximal enthalten darf, d.h. wie viele Varianten eines Planes maximal vorgehalten werden. Eine andere Gegenmaßnahme ist, immer mindestens eine gewisse Anzahl von Mutationen eines Planes zu erzeugen, bevor dieser Plan verworfen wird, weil nun bessere Pläne gefunden wurden.

Die manuelle Optimierung verzichtet auf solche Gegenmaßnahmen. Es wird nur ein Plan optimiert und auch nur eine Variante dieses Plans vorgehalten. Dies führt dazu, dass der Plan sehr viel schneller verbessert wird, als während der Planung. Allerdings ist auch die Wahrscheinlichkeit, in lokalen Optima festzustecken, stark erhöht. Bei der Optimierung muss dem über manuelle Eingriffe entgegengewirkt werden.

4.4.3. Einstellungen für Planung

Eine wichtige Einstellung ist die Gesamtgröße des Planpools, d.h. die Anzahl der im Planpool vorgehaltenen und in jeder Mutations-Runde bearbeiteten Pläne. Große Planpools machen es wahrscheinlicher, auch global gute Pläne zu finden. Andererseits ist die für jede Mutations-Runde benötigte Zeit direkt proportional zur Planpoolgröße und der von Prüfungsplaner benötigte Arbeitsspeicher steigt bei großen Planpoolgrößen.

Eine andere wichtige, globale Einstellung ist die maximale Anzahl der Pläne pro Gruppe. Nur sehr wenige Pläne pro Gruppe führen dazu, dass eigentlich gute Pläne durch Mutationen leicht in Sackgassen geraten können. Viele Pläne pro Gruppe sorgen jedoch dafür, dass die Varianz innerhalb des Planpools relativ zu dessen Gesamtgröße recht gering ist und damit die Gesamtgröße des Pools recht groß gewählt werden muss.

Die letzte für die Planung wichtige, globale Einstellung ist die Anzahl der in der ersten Phase zufällig generierten Pläne. Diese Anzahl sollte viel höher als die Planpoolgröße gewählt werden. So werden die meisten generierten Pläne direkt in der ersten Phase wieder verworfen und nur relativ gute Pläne schaffen es in die zweite Phase.

Andere Einstellungen, die die Planung betreffen, können leicht während einer laufenden Planung geändert werden. Daher stehen diese auch direkt im Reiter Planung zur Verfügung. Dies sind vor allem die Einstellungen, aus wie vielen Teilmutationen eine Mutation maximal bestehen darf und wie viele Mutationen pro Plan pro Runde erstellt werden. Spät in der Planung, also wenn die Pläne bereits recht gut sind und nur noch schwer Verbesserungen gefunden werden können, kann es sinnvoll sein, die Anzahl der Teilmutation zu erhöhen. Ebenfalls kann es dann sinnvoll sein, sich nur noch auf einige wenige beste Pläne (d.h. Plangruppen) zu konzentrieren.

4.4.4. Threads

Ein wichtiger Parameter, der aber nicht in Einstellungen gespeichert wird, sondern nur im Reiter Planung zu finden ist, ist die Anzahl der zu benutzenden Threads. Threads sind gleichzeitig ausgeführte Teile des Programms. Viele Threads erhöhen zunächst die Geschwindigkeit der Planung bzw. Optimierung. Werden jedoch wesentlich mehr Threads verwendet als Prozessorkerne für deren Ausführung zur Verfügung stehen, sinkt die Geschwindigkeit wegen erhöhtem Verarbeitungsaufwand wieder. Zudem kann es bei vielen Threads passieren, dass der Computer nur noch verzögert auf Eingaben reagiert. Es ist empfehlenswert, zwischen 2 und der Anzahl der zur Verfügung stehenden Prozessorkerne Threads zu verwenden. Als Standard-Wert wird die Anzahl der Prozessorkerne verwendet. Sollen gleichzeit mit Prüfungsplaner viele oder rechenzeitintensive andere Anwendungen ausgeführt werden, empfiehlt es sich, eine niedrigere Threadanzahl zu verwenden.

Die Anzahl der zu verwendenden Threads ist für die Planung sowie die manuelle Optimierung von Plänen wichtig. Diese Einstellung betrifft jedoch die gesamte Ausführung von Prüfungsplaner. Es kann also passieren, dass auch die GUI wenig reaktiv wird, wenn eine nicht sinnvolle Anzahl von Thread konfiguriert wird. Es empfiehlt sich, nach Änderung der Threads eine evtl. laufende Planung zu stoppen und neu zu starten. So wird die Planung für die neue Anzahl von Threads angepasst.

4.4.5. Steuerung

In der unteren rechten Ecke, befindet sich ein Button, mit dem die Planung gestartet und gestoppt werden kann. Über diesem Button können einige Einstellungen geändert werden, die direkt während einer laufenden Planung Auswirkungen haben. Dort kann auch die Anzahl der zu verwendenden Threads geändert werden.

Über diesen Einstellungen finden Sie einen Überblick über den aktuellen Stand der Planung. Sie sehen, welche Plangruppen es im Planpool gibt, wie der beste und schlechteste Plan jeder Gruppe bewertet ist und wie viele Pläne die Gruppen enthalten.

Durch Auswählen einer Gruppe wird der beste Plan dieser Gruppe links angezeigt. Es wird angezeigt, wie sich die Bewertung des Plans zusammensetzt. Diese Bewertung zu verstehen ist kompliziert. Bewertung werden detailliert in einem eigenen Abschnitt beschrieben. Buttons unter der Bewertung erlauben es, Details zum aktuellen Plan als HTML anzuzeigen, die Anzeige zu aktualisieren, d.h. den aktuell besten Plan der gleichen Plangruppe anzuzeigen sowie den aktuell besten Plan anzuzeigen. Zudem wird dort die Bearbeitung des aktuell angezeigten Planes ermöglicht. Diese Aktion speichert den aktuellen Plan als manuellen Plan, so dass er im Reiter manuelle Planung bearbeitet werden kann.

4.4.6. Export von Plänen

Mittels des Button Details kann der aktuell angezeigte Plan als HTML angezeigt werden. Dieses Format ist für die Betrachtung durch das Nutzy geeignet, jedoch nicht für einen Export, da es nur schlecht automatisch verarbeitet werden kann. Im Menü Planung ist es möglich einen oder mehrere Pläne als CSV Datei zu exportieren. Diese ist für den Import ins Schulportal geeignet. Leider sind diese CSV Dateien schlecht geeignet, um einem Nutzy einen Überblick über den Plan zu verschaffen. Daher wird automatisch zu jeder exportierten CVS Datei auch eine zugehörige HTML Datei, sowie eine XLSX Datei exportiert. Sollen nicht die besten Pläne, sondern ein spezieller Plan exportiert werden, kann dieser Plan zunächst bearbeitet werden. Im Reiter manuelle Planung ist dann ein Export möglich.

4.5. Manuelle Planung

Über den Reiter manuelle Planung ist es möglich, manuell Änderungen an Plänen vorzunehmen, interessante Pläne zu speichern, Pläne zu importieren und exportieren sowie einzelne Pläne automatisch zu optimieren. Für die Anzeige und Bearbeitung eines Plans kann zwischen einer Tabellen- und einer graphischen Ansicht gewählt werden.

4.5.1. Liste der manuellen Pläne

In der linken oberen Ecke findet sich eine Liste aller bekannten manuellen Pläne. Der üblichste Weg, einen Plan zu dieser Liste hinzuzufügen, ist die Bearbeitung eines während der Planung automatisch erzeugten Planes im Reiter Planung. Es ist jedoch auch möglich, einen Plan zu importieren, einen neuen Plan zu erstellen oder einen existierenden manuellen Plan zu duplizieren. Möchte man größere Änderungen an einem Plan vornehmen, kann es sinnvoll sein, zunächst eine Sicherungskopie des Originalplans mittels Duplizieren anzulegen.

4.5.2. Manuelle Bearbeitung mittels Tabellen-Ansicht

Im Hauptfenster des Reiters manuelle Planung wird der in der Liste der manuellen Pläne ausgewählte Plan angezeigt. In der Tabellen-Ansicht wird der Plan als Liste aller Prüfungen des Plans dargestellt.

Es können Protokollanty, Vorsitzendy, Tag, Zeit und Raum jeder Prüfung geändert werden. Prüfungen, die einer Gruppe angehören, werden unterhalb dieser Prüfungsgruppe angezeigt. Die Werte eine Gruppe bestehen für Lehrys, Räume und Tage aus dem Wert der Prüfungen, wenn dieser für alle Prüfungen der Gruppe gleich ist, sowie der frühesten Zeit, falls alle Prüfungen am gleichen Tag geplant sind. Das Ändern des Wertes einer Gruppe ändert alle Prüfungen der Gruppe. Wird ein Wert geändert, wird der vorherige Wert in Klammern rechts neben dem neuen Wert angezeigt.

Für jeden Wert kann eingestellt werden, ob die automatische Planung und Optimierung diesen Wert ändern darf. Mit den Standardeinstellungen dürfen fast alle Werte geändert werden. Ausnahmen sind lediglich Werte, die fest in den Prüfungen hinterlegt sind oder für die nur ein einziger möglicher Wert zur Verfügung steht. Wird ein bereits recht guter Plan geändert und danach wieder optimiert, so ist es recht wahrscheinlich, dass die manuellen Änderungen sofort rückgängig gemacht werden. In solchen Fällen ist es daher sinnvoll, die manuellen Änderungen als nicht umplanbar zu markieren.

4.5.3. Manuelle Bearbeitung mittels graphischer Ansicht

In der graphischen Ansicht werden Kurzinformationen zu Prüfungen in einem Raster aus Räumen und Zeitpunkten angezeigt. So ist es leicht möglich, sich einen Überblick zu verschaffen, wann Räume belegt und Lehrys beschäftigt sind. Prüfungen bzw. ihre Gruppen können durch Anklicken ausgewählt und per Drag & Drop auf andere Räume oder Zeiten verschoben werden. Unterhalb dieser Darstellung des Plans, wird eine Tabellen-Ansicht angezeigt, in der nur die Prüfungen der in der graphischen Darstellung ausgewählten Gruppe von Prüfungen enthalten sind. Wie von der Tabellen-Ansicht bekannt, können hier neben Zeit und Raum auch Protokollanty, Vorsitzendy und der Umplanbar-Status geändert werden.

Je nach Status der Prüfung wird diese unterschiedlich graphisch dargestellt:

Darstellung Bedeutung
roter Hintergrund Prüfung ist an Konflikt beteiligt
gelber Hintergrund Gruppe der Prüfung ist aktuell ausgewählt
gelber Hintergrund, rote Schrift Gruppe der Prüfung ist aktuell ausgewählt und Prüfung ist an Konflikt beteiligt
hell-gelber Hintergrund Block der Prüfung ist aktuell ausgewählt
hell-gelber Hintergrund, rote Schrift Block der Prüfung ist aktuell ausgewählt und Prüfung ist an Konflikt beteiligt
ausgeblendet Prüfung ist gefiltert, nicht auswählbar und kein Drag&Drop
gepunkteter Rand Raum und Zeit der Prüfung fest geplant, Drag&Drop nicht möglich
gestrichelter Rand Raum oder Zeit der Prüfung fest geplant, Drag&Drop eingeschränkt möglich

4.5.4. Filter & Bewertung & Undo

Oberhalb der Liste der Prüfungen finden Sie die Bewertung des gesamten Plans, sowie die Änderung der Bewertung durch die letzte Änderung. Dort ist es auch möglich, die letzte Änderung rückgängig zu machen und wiederherzustellen. Ebenso kann die Liste der Prüfungen dort gefiltert werden, um einfacher einzelne Prüfungen zu finden.

4.5.5. Bewertungen

Links neben dem Plan wird unter der Liste der manuellen Pläne die detaillierte Gesamtbewertung des Plans auswählt. Ist eine Prüfung oder Prüfungsgruppe ausgewählt, werden alle Bewertungen, die die auswählte Prüfung bzw. Prüfungsgruppe betreffen, ganz unten links angezeigt. Ist eine Prüfung bzw. Prüfungsgruppe an einem Konflikt beteiligt, wird die zugehörige Zeile im Plan rot markiert.

4.5.6. Fixe Werte setzen

Es steht ein Button fixe Werte setzen zur Verfügung. Hiermit ist es möglich, alle Werte, für die es nur eine Wahlmöglichkeit gibt, automatisch zu setzen und als nicht umplanbar zu markieren. Meist führt diese Aktion zu keinerlei Änderungen am Plan, da bei automatisch erstellten oder Optimierten Plänen diese fixen Werte bereits gesetzt sind. Durch manuelle Bearbeitung, Änderungen am Modell während der Planung oder durch Import von Plänen können allerdings Pläne entstehen, bei denen diese fixen Werte nicht gesetzt sind.

4.5.7. Automatisches Optimieren / Zufällige Änderungen / Einplanen

Ein typisches Szenario für den Einsatz der manuellen Planung ist, zunächst über die Planung einen guten Plan automatisch erzeugen zu lassen. Dieser wird dann manuell nachbearbeitet. Beispielsweise könnte das Nutzy bei der genaueren Prüfung des Plans feststellen, dass ein Lehry übermäßig oft eingeplant ist. Die Nachbearbeitung könnte dann darin bestehen, für einige Prüfungen dieses Lehrys andere Lehrys einzuplanen. Nachbearbeitungen führen oft zunächst zu einer Verschlechterung des Plans, außerdem eröffnen Nachbearbeitungen oft Möglichkeiten für weitere Verbesserungen. Um einen manuellen Plan zu verbessern, stehen die Funktionen Optimieren und Einplanen zur Verfügung. Hierbei ist zu überlegen, bestimmte manuelle Änderungen als nicht umplanbar zu markieren.

Die Funktion Optimieren erlaubt es, den aktuellen manuellen mit den gleichen Methoden zu verbessern, die während der Mutationsphase der Planung verwendet werden. So können nach Änderungen Pläne schnell automatisiert optimiert werden. Im Gegensatz zur Mutationsphase wird nur ein einzelner Plan optimiert. Es gibt keine Gruppe von ähnlichen Plänen und gefundene Verbesserungen werden sofort übernommen anstatt mehrere Mutationen durchzuführen und nur die beste Mutation zu übernehmen. Dies führt dazu, dass das automatische Optimieren Pläne zwar viel schneller als die Mutationsphase verbessert, dafür aber auch eher in lokalen Optima feststeckt. Nach Abschluss der Optimierung kann das Nutzy die vorgenommenen Änderungen begutachten und gegebenenfalls rückgängig machen.

Die Optimierung ist dafür gedacht, um bereits gute Pläne schnell zu verbessern. Das Nutzy sollte die Ergebnisse der Optimierung prüfen. Sollen mehrere Pläne gleichzeitig mit relativ viel Rechenzeit und unter Vermeidung lokaler Optima optimiert werden, bietet es sich an, einen manuellen Plan einzuplanen, d.h. zum Planpool hinzuzufügen. So kann der Plan im Rahmen der normalen Planung verbessert werden. Ein anderes Hilfsmittel für die vermeidung Lokaler Optima ist die Funktion Zufällige Änderungen. Diese zufälligen Änderungen verschlechtern den Plan meist deutlich, eine anschließende Optimierung kann aber evtl. zu besseren Ergebnissen führen als eine Optimierung des Originalplans.

5. Nutzung Kommandozeilen-Tool

Um das Kommandozeilentool einfach nutzen zu können, sollte es über die PATH-Variable zu finden sein. Anschließend started pplan-cmd eingabe-verzeichnis die Verarbeitung des Planungsproblems, das im Verzeichnis eingabe-verzeichnis gespeichert ist. Es wird erwartet, dass dieses Eingabe-Verzeichnis ein Modell-Verzeichnis ist. Ist dort zusätzlich eine Zustandsdatei state.ppl zu finden, so wird diese statt des Modell-Verzeichnisses geladen. So ist es möglich, bereits gestartete Bearbeitungen fortzusetzen. Nach der in settings.yaml festgelegten Anzahl von Mutationsrunden beendet sich das Tool automatisch und exportiert die besten Pläne. Während der Ausführung können über Tastenkürzel Aktionen ausgeführt werden:

Weitere Kommondozeilenoptionen erlauben es unter anderem, eine bereits angefangene Bearbeitung neu zu starten, zustätzliche Mutationsrunden auszuführen, nur die besten Pläne zu bearbeiten etc. Die Liste aller Optionen erhalten Sie mittels pplan-cmd --help.

Diese Liste enthält jedoch nicht Parameter des Haskell-Runtime-Systems. Diese können nach dem Parameter +RTS angegeben werden. Die am meisten benutzte dieser Optionen ist vermutlich die Wahl der Anzahl der zu verwendenden Threads. Dies geschieht mittels +RTS -N n wobei n die Anzahl der Threads ist. Für das Parsen der Kommandozeilenparameter wird intern das Haskell-Paket optparse-applicative verwendet. Dieses bietet verschiedene Hilfestellungen für Autovervollständigung an. Das versteckte Argument --bash-completion-script erzeugt zum Beispiel ein Script, dass in der Bash-Shell für Autovervollständigung genutzt werden kann. Für eine Beschreibung dieser Feature siehe bitte die Dokumentation von optparse-applicative.

6. Bewertung von Plänen

Zentral für das Verständnis von Prüfungsplaner ist, wie Pläne bewertet werden. Grundsätzlich wird zwischen Konflikten und Vorlieben unterschieden. Ein Konflikt ist ein schweres Problem, das die Umsetzung eines Plans verhindert. Beispielsweise kann kein Lehry gleichzeitig an zwei Orten sein. Vorlieben drücken Wünsche aus. Auch wenn ein Plan eine schlechte Vorliebenbewertung hat, kann er umgesetzt werden. Ein Beispiel für eine Vorliebe ist, dass ein Lehry keine langen Pausen zwischen Prüfungen haben sollte.

Die Bewertung eines Planes besteht aus zwei Zahlen: einer Konfliktbewertung (KB) und einer Vorliebenbewertung (VB). Kleinere Werte sind hierbei besser. Der KB Wert ist immer größer oder gleich 0. Ein KB Wert von 0 bedeutet, dass kein Konflikt vorliegt. VB kann positiv oder negativ sein. Beim Vergleich von Bewertungen zweier Pläne werden zunächst die KB Werte verglichen. Nur wenn diese gleich sind, werden die VB Werte betrachtet. Hier einige Beispiele, die Bewertungen werden dabei immer besser:

Bewertung Kommentar
KB: 218950, VB: 24485 Sehr schlechte Bewertung, z.B. für einen zufällig erzeugten Plan
KB: 24700, VB: 55277 Plan nach kurzer Optimierung, Konflikte wurden wesentlich besser, aber Vorlieben schlechter
KB: 3100, VB: 57855 Plan nach weiterer Optimierung
(KB: 0,) VB: 51947 konfliktfreier Plan nach weiterer Optimierung
(KB: 0,) VB: 8015 besserer konfliktfreier Plan
(KB: 0,) VB: -8571 noch besserer konfliktfreier Plan, Vorliebenbewertungen können negative Werte annehmen

Die Bewertung eines Planes setzt sich aus einer Summe von Einzelbewertungen zusammen. Einzelbewertungen sind immer reine Konflikt- oder reine Vorliebenbewertungen. Im Folgenden werden diese Einzelbewertungen beschrieben. Die Gewichte der Einzelbewertungen können in settings.yaml im Abschnitt Bewertungen konfiguriert werden. Einige Einzelbewertungen sind dabei zwingend Konfliktbewertungen, während andere als Vorliebe oder Konflikt konfiguriert werden können.

6.1. Warnung vor unvorsichtigen Einstellungsänderungen

Wie Pläne bewertet werden, ist kompliziert und es erfordert Zeit und Aufwand ein Verständnis hierfür zu erwerben. Ein solches Verständnis ist aber essentiell, bevor Sie die Gewichte der Einzelbewertungen ändern. Schlecht aufeinander abgestimmte Einstellungen können dazu führen, dass keine guten Pläne erzeugt werden können. Weniger kritisch ist das Erstellen von Vorlieben. Dennoch sollten Sie auch hierfür ein grobes Verständnis der Bewertung besitzen, um unliebsame Überraschungen zu vermeiden.

Um das unüberlegte Ändern von Einstellungen zu verhindern, ist der Großteil der Einstellungen in der grafischen Oberfläche nur nach Aktivierung einer Expertenansicht veränderbar.

Eine Mutation besteht aus wenigen, direkt hintereinander ausgeführten Teilmutationen. Es gibt viele unterschiedliche Teilmutation. Für die Wahl guter Einstellungen genügt es zu wissen, dass eine Teilmutation üblicherweise ein Planungsmerkmal einer Prüfung oder einer Prüfungsgruppe ändert. Eine Teilmutation kann beispielsweise den Raum aller Prüfungen einer Prüfungsgruppe oder die Zeit einer einzelnen Prüfung ändern. Im Allgemeinen ändert eine Teilmutation nicht mehrere Merkmale oder viele Prüfungen. Es ist extrem wichtig, dass durch wenige Teilmutationen ein Plan besser werden kann. Große Verbesserungen müssen über Zwischenschritte, also mehrere kleine Verbesserungen erreichbar sein.

6.1.1. Beispiel

Pläne sollten nicht unnötig lange Pausen für Lehrys enthalten. Prüfungsplaner erlaubt es, Pausen nach Ihrer Länge (in Zeitfenstern) zu bewerten. Eine naive (nicht wirklich schlechte, aber auch keine gute) Einstellung wäre z.B. eine Vorliebenbewertung von 50 x Länge. Betrachten wir nun folgendes Beispiel: Es finden an einem Tag 3 Blöcke von Prüfungen statt, die ein Lehry involvieren: P1, P2, P3. Zwischen P1 und P2 liegt eine Pause der Länge l1 und zwischen P2 und P3 eine Pause der Länge l2. Die Bewertung hiervon wäre also 50 x l1 + 50 x l2. Pausenzeiten sollen minimiert werden. Wird P3 um c Zeitfenter früher eingeplant, klappt auch alles, und wir erhalten ein Gewicht von 50 x l1 + 50 x (l2 - c). Ähnliches gilt, wenn P1 verschoben wird. Komplizierter ist das Verschieben der mittleren Prüfung P2. Angenommen wir verschieben P2 um c Zeitfenster. Dann wird die Pause zwischen P2 und P1 zwar kleiner, die Pause zwischen P2 und P3 aber größer: 50 x (l1 - c) + 50 x (l2 + c). Die Gesamtbewertung bleibt also gleich. Für eine Verbesserung sind 2 Teilschritte nötig: erst P2 verschieben und danach P3. Die implementierten Mutationen führen diese 2 Schritte aus; die Wahrscheinlichkeit hierfür ist aber wesentlich geringer, als das Verschieben von P2 und P3 einzeln zu finden. In der Praxis bedeutet dies, dass die Pläne langsamer optimiert werden, als wenn die Zwischenschritte bereits Verbesserung bedeuten.

Wir hätten also gerne Pausenbewertungen, die idealerweise folgende Kriterien erfüllen:

Dies wird zum Beispiel durch folgende Einstellungen halbwegs erreicht, die mit einem Basiswert von 150 beginnt, diesen dann initial um 100 erhöht, wobei die Schrittweite aber immer um 5 verringert wird, also 0 : 0, 1 : 150, 2 : 250, 3 : 345, 4: 435, ...

Für l1 := 3, l2 := 2 und c = 2 ergibt sich zum Beispiel:

B(l1) + B(l2) = B(3) + B(2) = 345+250 = 595 >
B(l1-c) + B(l2+c) = B(1) + B(4) = 150 + 435 = 585

6.1.2. Negativbeispiel

Ein Nutzy möchte unbedingt Pläne erhalten, in denen ein Lehry alle Prüfungen eines Tages in einem Raum hat. Ein Raumwechsel ist also selbst mit Pausen nicht erlaubt. Das Nutzy ändert daher die Einstellung Lehry Raumwechsel mit Pause von einer Vorliebe auf einen Konflikt und ändert den Wert auf KB 500. Gleichzeitig ist ein Raum-Konflikt, also eine Doppelbelegung eines Raumes, mit KB 100 bewertet. Diese Einstellungen führen dazu, dass Pläne erzeugt werden, die wenig Raumwechsel, dafür aber viele Raum-Konflikte enthalten. Dies ist selbst dann der Fall, wenn Pläne ohne Raumwechsel und Raum-Konflikte existieren. Das Problem ist, dass Zwischenschritte zu deutlichen Verschlechterungen führen und viele geeignete Teilmutationen direkt hintereinander für eine Verbesserung nötig ist.

Angenommen, ein Lehry hat einem Tag zunächst Prüfungen in Raum R1 und dann (mit Pause) in Raum R2. Diese Situation führt zu einer Bewertung von KB 500 für den Raumwechsel. Werden nun die Prüfungen in R2 in Raum R1 umgelegt führt dies wahrscheinlich zu einer Verbesserung, selbst wenn Raum R1 bereits belegt ist (andere Lehrys und andere Bewertungen mal ausgenommen), da wahrscheinlich weniger als 5 Raumkonflikte entstehen und ein Raumkonflikt mit KB 100 bewertet wird. Es ist also recht wahrscheinlich Raumkonflikte einzuführen.

Umgekehrt, angenommen alle Prüfungen eines Lehrys an einem Tag finden in Raum R1 statt. Es gibt aber einen Raum-Konflikt für einige der Prüfungen. Werden diese nun in Raum R2 umgelegt, so entstehen wahrscheinlich 2 Raumwechsel mit Pause: der Wechsel in R2 und zurück nach R1. Da vermutlich weniger als 10 Prüfungen in Konflikt standen, führt dies zu einer deutlichen Verschlechterung und die Raumkonflikte bleiben erhalten.

6.1.3. Generelle Empfehlungen

Einstellungen nach dem Prinzip viel hilft viel anzupassen, führt - wie obiges Negativbeispiel zeigt - oft zu Problemen. Dies gilt auch für Vorlieben. Ich empfehle mit den Standardeinstellungen zu starten, einige schnelle Probeplanungen durchzuführen und die resultierenden Pläne genau zu untersuchen. Je nach Ergebnis dieser Untersuchung können die Einstellungen vorsichtig angepasst werden. Meist genügt aber eine Anpassung der Vorlieben. Evtl. helfen auch Experimente mit manueller Planung dabei, ein Verständnis für die Bewertung zu erhalten.

Die Standard-Einstellungen funktionieren und sind nach meiner persönlichen Einschätzung generell brauchbar. Sie sind aber nicht für die speziellen Anforderungen einzelner Schulen optimiert. Ich unterstütze gerne bei der Anpassung der Einstellungen auf die Bedürfnisse einer einzelnen Schule.

6.2. Implizite Konflikte

Für manche grundlegenden Konflikte gibt es keine Bewertung, da Prüfungsplaner diese immer bei der Planung vermeidet. Dabei handelt es sich um ganz einfache, grundlegende Bedingungen:

Auch über die manuelle Planung ist es nicht möglich, solche Konflikte einzuführen.

6.3. Resourcenkonflikte

Resourcenkonflikte sind Konflikte, die die mehrfache Einplanung einer Resource beschreiben, die nur einmal zu Verfügung steht. Resourcen sind hierbei Räume, Lehrys und Schülys.

Die Schwere dieser Konflikte kann in den Einstellungen konfiguriert werden. Es handelt sich aber zwingend um Konflikte.

6.4. Lokale Einzelbewertungen

Lokale Einzelbewertungen sind Einzelbewertungen, die für die Planung einer einzelnen Prüfung ohne Kenntnis der Planung anderer Prüfungen erstellt werden können. Beispiele sind:

6.4.1. Lokale Vorlieben

Die allermeisten lokalen Einzelbewertungen entstehen aus lokalen Vorlieben. Eine lokale Vorliebe besteht aus der Kombination eines oder mehrerer Teile der Planung einer einzelnen Prüfung sowie einem Gewicht für diese Kombination. Als Gewicht können die Werte …, ---, --, -, o, +, ++, +++, … oder x verwendet werden. o bedeutet, dass diese Kombination weder gut noch schlecht ist; dies ist der Vorgabewert, wenn nichts explizit eingetragen wird. x verbietet die Kombination; sie wird als Konflikt gewertet. Bei den anderen Werten, wird die Kombination als Vorliebe gewertet, - ist eine negative Vorliebe, + eine positive Vorliebe, je mehr Zeichen kombiniert werden, umso stärker.

Ein Beispiel für eine typische lokale Vorliebe ist, dass ein Lehry an einem Tag nicht an Prüfungen teilnehmen kann. Dies ist Kombination eines Lehry mit den Zeitslots dieses Tages und dem Gewicht x.

Die Bewertung einer lokalen Vorliebe ergibt sich aus dem Gewicht, sowie einem Basiswert, der für jede Art von Kombination konfiguriert werden kann. Für das Gewicht x wird der dort eingestellte Konfliktwert gewählt. Für Vorlieben-Gewichte wird die Anzahl der - oder + Zeichen gezählt und exponentiell mit Basis 5 bewertet. Gewicht -- zählt zum Beispiel als (5 ^ (2-1)) = 5 multipliziert mit dem Basiswert. Gewicht ++++ zählt als - (5 ^ (4-1)) = -125 und - als 5 ^ (1-1) = 1.

Die Standard-Einstellungen sind für die hauptsächliche Verwendung von -, +, o und x konzipiert. Andere Vorlieben, also z.B. --- oder +++, sollten mit Bedacht verwendet werden.

Folgende Kombinationen von Teile des Plans einer einzelnen Prüfung können bewertet werden:

6.4.1.1. Lokale Lehry - Vorlieben

Für Kombinationen, die einen oder zwei Lehrys enthalten, kann zusätzlich die Rolle, die die Lehrys in der Prüfung einnehmen, eingestellt werden. Es kann jeweils zwischen “beliebige Rolle”, “Prüfy”, “Vorsitzendy” und “Protokollanty” gewählt werden.

6.4.1.2. Lokale Zeit - Vorlieben

Kombinationen mit Zeiten betreffen meist sehr viele Zeitslots. Wenn z.B. ein Lehry an einem Tag nicht für Prüfungen zur Verfügung steht, ist dies eigentlich eine Menge von Vorlieben für das Lehry und alle Zeitslots des betreffenden Tages. Es wäre sehr umständlich, alle Zeitslots explizit anzugeben oder sogar für jeden Zeitslot eine eigene lokale Vorliebe zu erstellen. Daher benutzen lokale Vorlieben für Zeiten sogenannte Zeitbeschreibungen und Prioritäten.

Zeitbeschreibungen sind kurze Texte, die Mengen von Zeitslots beschreiben. Unterstützt werden folgende Formen von Zeitbeschreibungen:

Beispiele:

Da es oft überlappende Zeitbeschreibungen gibt, erhalten Vorlieben mit Zeiten zusätzlich eine Priorität. Je höher die Priorität (bzw. je später eine Vorliebe in der YAML Datei auftaucht), umso eher wird die Vorliebe verwendet. Gibt es z.B. eine Vorliebe < 10:00 mit Gewicht + und Priorität 1 und eine Vorliebe 28.06.2022 mit Gewicht x und Priotität 2, so haben am 28.06. die Zeitslots vor 10 Uhr Gewicht x, da die 2. Vorliebe eine höhere Priorität besitzt.

6.4.2. Unvollständige Planung

Unvollständig geplante Prüfungen, also Prüfungen ohne Protokollanty, Vorsitzendy, Raum oder Zeit werden als Konflikt bewertet, dessen Schwere einstellbar ist. Er sollte sehr hoch bewertet werden. So wird sichergestellt, dass unvollständig geplante Prüfungen sehr schnell geplant werden. Generell treten unvollständig geplante Prüfungen aber nur selten auf. Sie können durch Änderungen am Modell bei bestehender Planung, explizit durch manuelle Planung oder bei Problemen während des Imports von Plänen entstehen.

6.4.3. Ungeeignete Planung

Ist ein Protokollanty, Vorsitzendy oder Raum nicht für das Fach einer Prüfung geeignet, so ist dies ein Konflikt, dessen Schwere konfigurierbar ist. Der Konflikt sollte sehr hoch bewertet werden. So wird sichergestellt, dass ungeeignete Planungen sehr schnell geändert werden. Generell treten diese Probleme aber nur selten auf. Sie können durch Änderungen am Modell bei bestehender Planung oder bei Problemen während des Imports von Plänen entstehen.

6.4.4. Empfehlungen

Die Standard-Einstellungen sind auf die Vorlieben-Gewichte o, x, - und + ausgelegt. Stärkere Gewichte wie --, ---, … sollten nur mit Bedacht benutzt werden.

Die Bedeutung von Vorlieben kann leicht missverstanden werden. Angenommen ein Lehry hält gern Prüfungen in einem bestimmten Raum ab. Erstellt man eine Lehry / Raum Vorliebe + so könnte man leicht davon ausgehen, dass dies bedeutet: Wenn das Lehry an der Prüfung beteiligt ist, versuche die Prüfung in den Raum zu legen. Tatsächlich deutet diese Vorliebe jedoch, dass die Kombination von Lehry und Raum vor anderen Lehry / Raum Kombinationen bevorzugt wird. Dies führt dazu, dass das Lehry vermutlich für mehr Prüfungen als ohne die Vorliebe eingeteilt wird.

Ich empfehle, hauptsächlich negative Vorlieben zu nutzen und diese nicht zu stark zu gewichten.

6.5. Lehry Einzelbewertungen

Lehry Einzelbewertungen sind Bewertungen, die sich aus dem Prüfungsplan für ein Lehry ergeben.

6.5.1. Anzahl Prüfungstage

Statt an vielen Tagen an wenigen Prüfungen teilzunehmen, bevorzugen es viele Lehrys, die Prüfungen auf wenige Tagen zu konzentrieren. Für jede Anzahl von Prüfungstagen wird eine eigene Bewertung konfiguriert. Die Idee ist, dass es relativ egal ist, ob ein Lehry an 3 oder 4 Tagen Prüfungen hat. Es ist wichtiger, ob ein Lehry an keinem Tag Prüfungen hat (also nicht an den mündlichen Abiturprüfungen teilnimmt) oder an einem Tag.

Die Optimierung dieser Einzelbewertung kann dazu führen, dass für ein Lehry evtl. sehr viele Prüfungen an einem Tag geplant werden oder dass wenige Lehrys insgesamt sehr viele Prüfungen haben, während Kollegys kaum eingeplant sind. Dieser Tendenz sollte über entsprechende Bewertungen der Anzahl von Prüfungen pro Tag und der Gesamtzahl der Prüfungen entgegengewirkt werden.

Es ist relativ schwer (d.h. unwahrscheinlich), die Anzahl der Prüfungstage eines Lehrys in nur einer Mutation zu verringern. Es kann daher sinnvoll sein, bereits Zwischenschritte positiv zu werten. Hat ein Lehry zum Beispiel an einem Tag 4 Prüfungen und an einem anderen Tag 3 Prüfungen, so ist es relativ schwer, in einer einzigen Mutation 3 Prüfungen auf einen anderen Tag zu legen ohne den Plan anderweitig zu verschlechtern. Wird ein Plan, der an einem Tag 5 Prüfungen und an einem anderen nur 2 Prüfungen hat, bereits besser und ein Plan, der 6 / 1 Prüfungen besitzt, sogar noch besser bewertet, so sind Zwischenschritte möglich. Es werden dann eher Pläne mit wenigen Prüfungstagen erzeugt. Dies kann durch geschickte Wahl der Bewertungen der Anzahl der Prüfungen eines Lehrys an einem Tag erreicht werden.

Andererseits ist es den meisten Lehrys wahrscheinlich lieber an einem Tag 4 und an einem andere 3 Prüfungen zu haben, anstatt 6 Prüfungen am ersten Tag und nur eine Prüfung am anderen Tag. Dies ist daher ein gutes Beispiel dafür, dass das Nutzy abwägen muss, welche Eigenschaften eines Planes dem Nutzy wie wichtig sind.

6.5.2. Viele Prüfungen pro Tag

Sehr viele Prüfungen an einem Tag sollten vermieden werden. Für jede Anzahl von Prüfungen pro Tag kann eine eigene Bewertung hinterlegt werden. Zudem kann zwischen Prüfungen, an denen das Lehry als Prüfy teilnimmt und anderen Prüfungen unterschieden werden.

6.5.3. Viele Prüfungen / Verteilung von Prüfungen auf Lehrys

Prüfungen sollten sinnvoll auf die zur Verfügung stehenden Lehrys verteilt werden. Es sollte also vermieden werden, dass ein Lehry für sehr viele Prüfungen eingeteilt ist, während ein Kollegy kaum Prüfungen hat. Allerdings sind große Unterschiede in der Anzahl der Prüfungen oft unvermeidlich. Oft sind beispielsweise einige Lehrys für viele Prüfungen als Prüfy eingeteilt, während andere Lehrys nur Fächer unterrichten, für die es nur wenige Prüfungen gibt. Um solchen Unterschieden gerecht werden zu können, kann für jedes Lehry einzeln eingestellt werden, wie die Gesamtzahl der Prüfungen des Lehrys bewertet wird. Neben der Gesamtzahl der Prüfungen können auch die Zahl der Prüfungen als Protokollanty und als Vorsitzendy getrennt bewertet werden.

Die Bewertung der Anzahl der Prüfungen eines Lehrys ergibt sich aus einer globalen Vorliebe sowie einem einstellbaren Basiswert. Dies gilt sowohl für die Gesamtzahl der Prüfungen als auch für die Anzahl der Prüfungen als Vorsitzendy und die Anzahl als Vorsitzendy. Aus der globalen Vorliebe wird berechnet, ob die Anzahl als Konflikt oder Vorliebe gewertet wird und mit welchem Faktor. Dann wird die konfigurierbare Konflikt- bzw. Vorlieben-Basisbewertung mit dem berechneten Faktor multipliziert.

Es gibt verschiedene Arten von globalen Vorlieben für die Anzahl von Prüfungen. Die wahrscheinlich üblichste ist die maximal zulässige Anzahl von Prüfungen festzulegen. Diese Einstellung besteht aus 3 Werten: dem Maximalwert selbst, einer Abweichung in Prozent und einem Gewicht in Prozent. Der Maximalwert ist die gerade noch erlaubte Anzahl von Prüfungen. Diese wird mit der Vorlieben-Bewertung gewertet. Alle größeren Werte werden als Konflikt gewertet. Auch kleinere Werte werden noch als Vorliebe negativ gewertet. Erst wenn der Wert die eingestellte Abweichung in Prozent unter dem eingestellten Maximalwert liegt, wird dies nicht mehr negativ bewertet. Die resultierende Bewertung wird mit dem Gewicht in Prozent gewichtet, d.h. multipliziert. Meist ist es sinnvoll, dieses bei 100% zu belassen. Neben der Maximalanzahl der Prüfungen kann in der Vorliebe auch eine Minimalanzahl konfiguriert werden. Hierbei werden alle Werte kleiner dem Minimalwert als Konflikt gewertet. Ebenso ist es möglich, einen optimalen Wert einzustellen. Hierbei erhalten alle Abweichungen nach oben oder unten eine negative Vorliebenbewertung.

6.5.4. Lange Pausen

Lange Pausen zwischen Prüfungen sollten vermieden werden. Für jede Länge von Pausen kann eine eigene Bewertung konfiguriert werden. Es wird empfohlen, Pausen der Länge 1 nur leicht negativ zu werten, da solche kurzen Pausen für z.B. Raumwechsel und zur Pufferung von Prüfungen, die länger als erwartet dauern, wichtig sind. Pausen der Länge 1 sollten aber negativ bewertet werden, da sonst leicht unnötige Pausen in Plänen erzeugt werden.

6.5.5. Viele Prüfungen ohne Pause

Viele Prüfungen eines Lehrys am Stück sollten vermieden werden. Dies dient der Pufferung von unerwartet langen Prüfungen. Für jede Anzahl von Prüfungen kann eine eigene Bewertung konfiguriert werden. Zudem kann zwischen Prüfungen als Prüfy und anderen Prüfungen unterschieden werden. Nimmt ein Lehry an mindestens einer der Prüfungen als Prüfy teil, wird dabei die Bewertungen für Prüfungen als Prüfy ohne Pause verwendet. Es wird empfohlen, zumindest alle Prüfungen einer Gruppe ohne negative Bewertung zuzulassen.

Diese Einzelbewertung hat ähnliche Effekte wie Einzelbewertungen für Lehry / Prüfy - Raumwechsel ohne Pause. Diese Einzelbewertung greift jedoch auch, wenn die Prüfungen alle im gleichen Raum stattfinden.

6.5.6. Lehry / Prüfy - Raumwechsel ohne Pause

Vor dem Wechsel eines Lehrys in einen Raum sollte das Lehry eine Pause haben. Dabei ist es wichtiger, dass das Prüfy eine Pause hat als dass das Protokollanty oder das Vorsitzendy eine Pause hat. Bleibt ein Lehry im gleichen Raum, wechselt aber seine Rolle (ist also zum Beispiel für eine Prüfung Prüfy und die nächste Prüfung Protokollanty), wird dies nicht als Raumwechsel gewertet. Die Schwere eines Raumwechsels ohne Pause kann getrennt nach Prüfys und anderen Rollen konfiguriert werden.

Eine Pause erlaubt es, ohne Hast Räume zu wechseln und Vorbereitungen treffen zu können. Dafür muss auch der Raum, in den gewechselt wird, vorher frei sein. Dies wird über eine Raum-Einzelbewertung bewertet.

6.5.7. Lehry Raumwechsel mit Pause

Idealerweise sollte auch bei einer Pause ein Lehry den Raum nicht wechseln müssen und der Raum in der Pause des Lehrys frei sein. So kann das Lehry sich länger im Raum aufhalten und Unterlagen im Raum gelagert lassen. Eine Bewertung für Raumwechsel mit Pause kann konfiguriert werden. Dies sollte aber deutlich schwächer gewichtet sein als Raumwechsel ohne Pause.

6.6. Prüfungsgruppe Einzelbewertungen

Für Prüfungen innerhalb einer Gruppe kann das gleiche Prüfungsthema verwendet werden. Daher müssen die Prüfungen einer Gruppe innerhalb eines engen Zeitfensters geplant werden. So kann durch Beaufsichtigung vor und nach den Prüfungen sichergestellt werden, dass sich Schülys nicht über das Thema der mündlichen Prüfung abstimmen können.

6.6.1. Prüfung außerhalb Gruppenzeit

Eine außerhalb des Zeitfensters für ihre zugehörige Gruppe geplante Gruppe ist zwingend ein Konflikt. Die Schwere dieses Konflikts kann konfiguriert werden. Dies ist ein sehr seltener Konflikt; während der automatischen Planung erzeugte Pläne weisen diesen Konflikt normalerweise nicht auf. Der Konflikt kann aber bei manueller Planung auftreten oder wenn die Prüfungsgruppen geändert werden, während eine Planung bereits im Gange ist.

6.6.2. Mehrere Vorsitzendys / Protokollantys

Nach Möglichkeit sollte für alle Prüfungen einer Gruppe das selbe Vorsitzendy und das selbe Protokollanty eingeplant werden. Dies kann als Vorliebe oder Konflikt konfiguriert werden.

6.6.3. Pausen zwischen Prüfungen einer Gruppe

Pausen innerhalb einer Gruppe von Prüfungen sollten nach Möglichkeit vermieden werden. Hierfür gibt es eine eigene Einstellung. In der Standard-Einstellung werden Pausen als Konflikt gewertet.

Trotz der anderen Einstellungen für Prüfungsgruppen kann es ohne eine spezielle Bewertung für Pausen in Prüfungsgruppen schnell zu solchen Pausen kommen. Angenommen, ein Prüfy prüft 3 Gruppen von Prüfungen im gleichen Fach mit je 4, 4 und 3 Prüfungen. Ein Gruppe darf maximal 4 Prüfungen enthalten; es sollen maximal 6 Prüfungen am Stück stattfinden. Man könnte nun die Gruppe mit 3 Prüfungen mit einer Pause trennen, d.h. aufteilen in 6 Prüfungen, Pause, 5 Prüfungen. Ohne eine negative Bewertung für Pausen in Gruppen, ist dies vermutlich besser bewertet als 4 Prüfungen, Pause, 3 Prüfungen, Pause, 4 Prüfungen.

6.6.4. (Raumwechsel in Prüfungsgruppen)

Es gibt keine spezielle Bewertung für die Verwendung mehrerer Räume innerhalb einer Prüfungsgruppe. Da jedoch Raumwechsel, besonders ohne Pausen, ebenso wie Pausen negativ bewertet werden, werden Prüfungsgruppen normalerweise im gleichen Raum geplant

6.7. Raum Einzelbewertungen

Raum Einzelbewertungen sind Bewertungen, die sich aus dem Prüfungsplan für einen Raum ergeben.

6.7.1. Anzahl Prüfungstage

Wenn möglich sollte ein Raum an wenigen Tagen genutzt werden. So wird der normale Unterrichtsablauf weniger eingeschränkt. Für jede Anzahl von Tagen, an denen der Raum für Prüfungen genutzt wird, kann eine eigene Bewertung konfiguriert werden.

6.7.2. Viele Prüfungen ohne Pause

Viele Prüfungen in einem Raum am Stück ohne Pause sollten vermieden werden. Dies dient der Pufferung von unerwartet langen Prüfungen. Für jede Anzahl von Prüfungen kann eine eigene Bewertung eingestellt werden. Es wird empfohlen, zumindest alle Prüfungen einer Gruppe ohne negative Bewertung zuzulassen.

6.7.3. Lehry- / Prüfy-Wechsel ohne Pause

Vor dem Wechsel eines Lehrys in einen Raum sollte der Raum frei sein. Dies kann getrennt nach Prüfys und anderen Rollen konfiguriert werden.