Kurzanleitung

1. Einleitung
2. Eingabe der Stammdaten
3. Darstellungsformen
4. Eingabe der Problemstellung
5. Automatisches Lösen
6. Manuelles Verbessern
7. Drucken



 

1. Einleitung

Ultraplan ist ein Programm, das es emöglicht, Veranstaltungen mit bestimmten Ressourcenansprüchen Zeitslots so zuzuordnen, dass
diese Ansprüche erfüllt werden können. Klassisches Problem ist das der Stundenplanerstellung an Schulen. Das Programm befindet sich noch im Experimentalstatus, sollte aber für viele Anwendungen - und bei umsichtiger Bedienung -  bereits einsetzbar sein.
Ultraplan wird in dieser ersten Version als Freeware für den akademischen Bereich angeboten. Der Autor behät es sich vor, spätere
Versionen als Shareware oder in anderer Weise kommerziell anzubieten.

2. Eingabe der Stammdaten

I. Erzeugen von Objekttypen (Stammdaten-Obbjekttypen definieren)
Ultraplan ist nicht auf eine bestimmte Anwendung festgelegt. Sie können selber vorgeben, welche und wieviele Arten unterschiedlicher Objekte Sie verwalten wollen. Bei einem Schulstundenplan werden dies im allgemeinen Lehrer,Klassen und Räume sein. Es können aber ebenfalls Geräte oder Medien verwaltet werden.
Die Zeiteinheiten werden ebenfalls als Objekte betrachtet. Hierbei ist eine Unterscheidung zwischen verschiedenen Typen aber noch nicht implementiert. Um einen
Stundenplanerstellen zu können muß mindestens ein "Zeiteinheiten"-Typ erzeugt werden; bei einem Stundenplan werden dies im allgemeinen Schulstunden sein.
Zu jedem Objekttyp können mehrere Parameter vorgesehen werden. Bei Räumen z.B. die Größe, bei Lehrern die Fächer, die diese unterrichten etc. Diese können hier vorgesehen werden. Bitte beachten sie die für Sie gültigen Datenschutzrichtlinien.

II. Erzeugen von Objekten (Stammdaten-Objekte editieren)
Nun können die gewünschten Objekte erzeugt werden. Hierbei können die bei I vorgesehenen Attribute eingegeben werden. Bitte beachten Sie, daß die Zeitobjekte einzeln eingegeben werden müssen, d.h. Montag_1., Montag_2. , etc.. Ein Zusammenfassen erfolgt im nächsten Schritt.

Zeitablauf festlegen (Stammdaten-Zeitablauf angeben)
Hier kann angegeben werden, in welcher zeitlichen Reihenfolge die Zeitobjekte liegen. Dies ist nur wichtig für die sog. Springstundenminimierung, d.h. die Minimierung der Wartezeiten eines Objektes/einer person zwischen zwei Einsätzen. Die Pausen dienen dazu, z.B. Tagesgrenzen zu markieren, so daß diese überschreitende Springstunden nicht gewertet werden.

IV. Gruppieren von Objekten (Stammdaten-Gruppenstruktur editieren)
Dies ist mit Abstand der schwierigste Schritt bei der Eingabe. Hier können verschiedene Objekte zu Gruppen zusammengefasst werden. Hierbei gibt es zwei Arten von "Enthaltensein" in einer Gruppe: Als Teilmenge oder als Element. Teilmengen werden so interpretiert als wären alle ihre Elemente einzeln in die Übergeordnete Gruppe eingefügt worden. Bei "Elementen" hingegen ist die Gruppe als ganzes ein Objekt in der Obergruppe. Momentan wirkt sich dieser Unterschied aber nur bei der Darstellung aus (s.u.). Gruppen können auch automatisch erstellt werden. Hierzu dient der Knopf "Stammdaten". Im dann angezeigten Dialog kann eine Gruppe durch Vorgabe von Attributwerten erstellt werden.
Die Zusammenfassung zu Gruppen erlaubt es später,Vorgeben für alle Elemente einer Gruppe auf einmal zu machen, oder ein Element einer Gruppe beliebig bestimmen zu lassen. So kann man später mit einem Wert angeben, dass die Mitglieder der Gruppe "Rollstuhlfahrer" Mitglieder der Gruppe "Räume mit Rampe" bevorzugen. Für "herkömmliche Schul-Stundenpläne" wird empfohlen 
eine Menge "Tage", die die Mengen "Montag", "Dienstag" usw. als Elemente enthält, wobei diese die Objekte Mo_1.Mo_2 usw. (analog für Di) enthalten und eine Menge "Stunden" mit den Element-Mengen "1. ,2., 3., usw." wobei diese  die Objekte Mo_1.Di_1. usw (nalog für 2.) enthalten, zu erzeugen.

V. Bewertungen vorgeben (Stammdaten - Bewertungsfenster)
Hier können Wünsche (soft Constraints) formuliert werden; ein Wunsch kann allerdings so "dringend" formuliert werden, daß er ähnliche Prioritäten genießt wi die physikalischen Notwendigkeiten (kein Lehrer an zwei Stellen gleichzeitig). Es gibt zwei Arten von Angaben: Individuelle Wünsche und relative Wünsche. Beide
können für Gruppen geäußert werden. Individuelle Wünsche betreffen Vorgaben die nur die jeweilige Gruppe betreffen wie z.B. daß keine Springstunden gewünscht werden (hier kann eine Priorität eingegeben werden, je höher desto stärker). Relative Wünsche geben an, wie sehr sich zwei Objekte "mögen", z.B. Rollstuhlfahrer und Räume mit Rampe, oder Klassen und Stunden am Montag etc.. Vorgaben für Gruppen werden auf alle Gruppenmiglieder übertragen. Bei Mitgliedschaft in mehreren Gruppen wird das Mittel über die dierekten Obergruppen (ohne egal - Einträge) verwandt. Die Einstellungen die manuell vorgenommen werden überschreiben die Gruppenvorgaben. So kann man mit zwei Werten angeben, daß Klassen allgemein den Montag nicht mögen, die Klassen der Erprobungsstufe aber doch.


3. Darstellungsformen

Die Erstellung eines Planes läuft im wesentlichen in Zwei Fenstertypen ab: Vorgabenfenstern und Ergebnisfenstern. Diese können farblich unterschieden werden. Die Darstellungen der Objekte Vorgaben bzw. Stunden (je nach Anwendung) in beiden Fenstern folgt den in 2.IV erstellten Gruppen. Hierzu dient das Fenster  "neue Ansicht", das durch Drücken eines Knopfes bzw. durch Ansicht - "Darstellung ändern" erreicht werden kann.
Im den linken beiden Feldern kann die Tabellenform gewählt werden. Die Tabellen können bis zu drei Stufen tief hierarchisch aufgebaut werden. Die Tabelle entsteht dann als cartesisches (kreuz-) Produkt der angegebenen Gruppen. Auf der Rechten Seite können bestimmte Gruppen ausgewählt (oben) oder eingefärbt (unten) werden. Wird eine der Boxen neben den Feldern aktiviert, so bilden Auswahl und Färbung eine dritte bzw. viete virtuelle Koordinatenachse, in der die einzelnen Felder bzw. Färbungen mit + und - bzw. p und m durchgeblättert werden können. Beim Ausdrucken wird jedes Blättern bezüglich der Auswahl durch eine neue seite bzw. durch eine neue Menge von Seiten realisiert. Wenn man einer Ansicht einen Namen gibt, so steht sie ab dann unter "basierend auf" als Schablone zur Verfügung. Diese können in Ansicht-Ansichten bearbeiten modifiziert bzw. gelöscht werden.

4.  Eingabe der Problemstellung

Die Eingabe eines neuen Problems wird im Vorgabenfenster durchgeführt. Hierzu wird zunächst die gewünschte Darstellung gewählt. Im Fall einer Schule z.B. eine Klassen x Lehrer Tabelle. Durch Doppelklick in ein leeres Fenster erhält man einen neuen Eintrag. Hierbei werden die Objekte, die der aktuellen Tabellenposition entsprechen automatisch eingefügt. Durch einen Doppelklick auf das neue Objekt kann dieses editiert werden. Auf Wunsch kann das Editierungsfenster automatisch geöffnet werden. Zum Umschalten zwischen den beiden Zuständen muss die "shift"- Taste gedrückt werden. Im Editierungsfenster kann man die Vielfachheit einer Anfrage (z.B. die Zahl der Stunden, die ein Lehrer in einer Klasse halten soll) und die Zahl der Angefragkten Objekte angeben. Hier werden z.Zt. Gruppen immer als Untergruppen gewertet, d.h. wenn man 4 "Tage" bestellt, wobei jeder Tag aus Stunden angibt, so erhält man 4 Stunden. Tatsächlich 4 Tage zu bekommen würde die Komplexität der Aufgabe erneut erhöhen. Kopieren, Ausschneiden und Einsetzen wird Relativ zur momentanen Tabelle vorgenommen, d.h. die automatisch hinzugefügten Objkete werden entsprechend korrigiert.

5. Automatisches Lösen

Da das System als wissenschaftliches Experimentalsystem konzipiert wurde stehen mehrere Lösungsvarianten zur Verfügung von denen einige recht gut einige aber gar nicht funktionieren. Von allem was irgendwie "Trading" heißt, sollten Sie die Finger lassen. Sollten Sie ein mystisches Problem haben, das sich mit einem der "Handelsverfahren" lösen läßt, nicht aber nicht einem der anderen Verfahren, so schreiben Sie mir bitte eine Mail.
Das einfachste Verfahren ist "Zeitslot optimieren". Dies setzt voraus, dass die Stunden, die für das entsprechende Zeitslot vorgesehen sind, bereits gesetzt wurden. Es verändert nur diejenigen Stunden in denen eine Wahlmöglichkeit zwischen verschiedenen Objekten besteht. Diese werden gemäß den gegebenen Präferenzen optimal angepasst.
"Schnellplanung" setzt alle Stunden so, als ob jede Anforderung nur einen Lehrer und eine Klasse enthält. Hierfür sind gute Algorithmen bekannt. Differenzierungen (d.h mehrere Lehrer/Klassen etc.) können hier zu Widersprüchen führen, die nicht aufgehoben werden.
"Berechnung starten" läßt sie ein Verfahren auswählen - insbesondere die tabusuchen haben sich in Tests bewährt. Sie können den "Fortschitt" bei der Beseitigung von Kollisionen in einer Datei protokollieren lassen.
Im Feld "Iterationen" sollten Sie einen Wert in der Größenordung von 50000 eingeben. Sollte es Ihnen zu lange dauern, können sie die
Berechnung vorzeitig "beenden"
"Alles löschen" löscht OHNE WEITERE VORWARNUNG OHNE DASS MAN ES RÜCKGÄNGIG MACHEN KANN den GESAMTEN momentanen Stundenplan (sorry).

6. Manuelles Verbessern

Das manuelle Verbessern funktioniert im Prinzip wie die Eingabe von Vorgaben. Wenn die Zwischenablage eingeblendet ist, bewirkt ein Klick mit der rechten Maustaste ein "Ausschneiden" bzw. "Einfügen" je nachdem ob sich der Zeiger über einem belegten oder freien Feld befindet. Bei eingeblendeter Zwischenablage verhält diese sich wie ein "Stapel". Eine Hintergrund-Hilfestellung, die angibt, ob eine bestimmte Einfügunmg zu einem gültigen Stundenplan führen kann, kann durch das Drücken von "s" ein bzw. ausgeschaltet werden. Ein durchgestrichenes Feld bedeutet, daß nach dem Einfügen des letzten Eintrages der Zwischenablage kein gültiger Stundenplan erreicht werden kann, wenn die anderen Felder eingefügt werden müssen. Sollten die aktuell gestzten Stunden einen Widerspruch enthalten sind stets alle Felder durchgestrichen. Ein freies feld bedeutet nicht notwendigerweise eine sichere Lösung. es bedeutet nur, dass bei den nächsten paar Einfügungen keine Widersprüche auftreten werden. Je länger Sie zögern, desto genauer wird dieser ratschlag, da der Rechner Ihre Wartezeit nutzt, um das Problem genauer zu analysieren.

7. Drucken

Zum Ausdrucken stellt man zunächst ein der Ansicht den gewünschten Einzelplan ein. Dasnn wählt man bei Auswahl die Gruppe der Objekte für die der Plan gedruckt werden soll und aktiviert die entsprechenden Boxen. Ohne Aktivierung erhält man einen Plan für die gesamte Gruppe. S. Darstellung. Die Ausdrucke erfolgen z.Zt. leider noch in der Standartschrift und Pläne bei denen ein einzelnes Tabellenfeld größer ist als 1 Seite können nicht gedruckt werden.