Die Forschungsabteilung der Siemens AG hat für die Deutsche Bundesbahn den Prototypen eines Scheduling Systems geschrieben, der es ermöglicht, täglich neue, sich ändernde Fahrpläne für einen grossen deutschen Hauptbahnhof zu erstellen. Als Versuchsbahnhof wurde ein Hauptbahnhof mit 14 Gleisen und 6 Besucherplattformen gewählt, der eine durchschnittliche Leistung von 68 Zügen pro Stunde hat.

Das Computersystem reagiert auf Echtzeit-Scheduling-Probleme, die z.B. dadurch entstehen, dass Züge Verspätung haben oder Wartungsarbeiten an Gleisen oder Bahnsteigen vorgenommen werden müssen, die die Schliessung dieser Bereiche für bestimmte Stunden erfordern.

Es wird ein neuer Fahrplan mit berichtigten Ankunftszeiten generiert, wobei Änderungen zum alten Fahrplan minimiert werden sollen.

Teil eines korrigierten Fahrplans

Interaktiv wird dem Benutzer die Möglichlkeit gegeben, das System so abzuändern, dass Anschlüsse zu anderen Bahnhöfen priorisiert werden, bzw. nicht geplante Züge in das System eingepasst werden können.

Das obige Bild zeigt einen Ausschnitt aus dem Fahrplan des Bahnhofs. Die Nummern der Bahngleise mit den dazugehörigen Bahnsteige sind auf der X-Achse dargestellt. Die Zeit wurde an der Y-Achse dargestellt. Die Züge können auf jedem Gleis von einer der beiden Richtungen kommen, was durch die Zeichen "von rechts nach links" oder umgekehrt dargestellt ist; ausserdem hat jeder Zug einen bestimmten Code.
Bekannte Verspätungen von bestimmten Zügen sind hinter der Ankunftszeit der Züge vermerkt.

Das System erstellt den neuen Fahrplan basierend auf den Verspätungen der Züge und den Zusätzen des zuständigen Personals. Diese Zeit- und Kapazitätsengpässe begrenzen den Fahrplan; das System muss diese durch Zeitersparnisse durch kürzere Stops der Züge im Bahnhof, durch Anhalten anderer Züge oder im schlechtesten Fall durch Umleitung der Passagiere auf einen anderen Bahnsteig kompensieren. Hierbei muss eine Umleitung auf die andere Seite des gleichen Bahnsteigs vor allen anderen Möglichkeiten priorisiert werden.

In der Realität sind drei Bahnhoftangestellte verantwortlich für die Verteilung der ankommenden Züge auf Gleise und Bahnsteige. Ihre Aufgabe ist es, die Wege der Bahnbenutzer, die durch Umdisponierung entstehen, zu minimieren, die Prioritäten der Züge festzulegen und alle Sicherheitsrichtlinien einzuhalten.

Das Computersystem stellt alle Aspekte des Bahnhofs dar und soll den Verantwortlichen zur Unterstützung Ihrer Arbeit dienen. Durch die Verwendung von Constraints, sucht das System nach einer besonders guten Lösung.

Viele vordefinierte Regeln und Sicherheitsbestimmungen definieren feste Constraints, die nicht aufgehoben werden dürfen, wie z.B. die Zeit, die eine Kreuzung bzw. Weiche frei bleiben muss, um sicher zu gehen, dass der Zug Sie auch wirklich passiert hat.

Andere, eher flexible Einschränkungen spezifizieren z.B. die minimale Zeit, die ein Zug an einer Benutzerplattform anhalten soll, die jedoch kürzer ist, als die im Fahrplan festgelegte Zeit.

Sicherlich gibt es für Probleme dieser Art nicht eine optimale Lösung; daher wurde ein interaktives System geschrieben, dass auch auf eher subjektive Optimierungsgründe reagieren kann.

Der für den Fahrplan Zuständige kann immer eingreifen und die Vorgeben des Systems ändern.
Der dann erforderliche neue Start des Systemdurchlaufs benötigt weniger als 20 Sekunden auf einer kleinen UNIX Workstation oder einem PC, was ausreichend ist, um die Bedürfnisse eines grossen, oft frequentierten Bahnhofs unter Echtzeitdruck abzudecken.

Im Ganzen umfasst das System 15 000 lines of code, die in 2 Mann-Jahren entwicklet wurden. Ungefähr 1/3 dieses Codes sind Motif basierte Graphiken, die ebenfalls in Prolog geschrieben wurden. Das Constraint Technologie Paket von IF/Prolog wurde dazu benutzt, das Problem in einer lesbaren Form bequem und effektiv zu formulieren.

IF/Prolog vereinigt die unterschiedlichsten Datentypen und spezifiziert Regeln und Einschränkungen in einer lesbaren und modifizierbaren Form. Die Lösung mit der Standard Constraint Technologie begrenzt das Problem auf eine handhabbaren Anzahl von Alternativen, die dann durch einen zuständigen Beamten ausgewählt oder angepasst werden können.
Dies führt zu einer Entlastung des Personals von der mühsamen Kleinarbeit hin zu anspruchsvolleren Entscheidungen, die das System nicht treffen kann oder soll.

Hardware: UNIX Workstation
Software: IF/Prolog 5.0 mit Constraint Technologie Paket und
OSF/Motif Programmier-Schnittstelle