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.