Eine Tiefensuche sollte hier in linearer Zeit den Weg zum Ziel finden, tatsaechlich ist die Buchfahrplanroutine in etwa 2 Sekunden fertig.
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<Zusi>
<Info DateiTyp="Zug" Version="A.1" MinVersion="A.1"/>
<Zug Gattung="Test" Nummer="1_1" Prio="1500" Bremsstellung="2" Rekursionstiefe="5" FahrstrName="Obervellmar C -> Mönchehof G" Buchfahrplandll="_InstSetup\lib\timetable\Buchfahrplan_DB_1979.dll">
<Datei Dateiname="timetables\BuchfahrplanTest.fpn" NurInfo="1"/>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Mönchehof">
<FahrplanSignalEintrag FahrplanSignal="G"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Mönchehof">
<FahrplanSignalEintrag FahrplanSignal="B"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Immenhausen">
<FahrplanSignalEintrag FahrplanSignal="D"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Immenhausen">
<FahrplanSignalEintrag FahrplanSignal="B"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Grebenstein">
<FahrplanSignalEintrag FahrplanSignal="F"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Grebenstein">
<FahrplanSignalEintrag FahrplanSignal="B"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Hofgeismar">
<FahrplanSignalEintrag FahrplanSignal="F"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Hofgeismar">
<FahrplanSignalEintrag FahrplanSignal="P1"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Hümme">
<FahrplanSignalEintrag FahrplanSignal="F"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Hümme">
<FahrplanSignalEintrag FahrplanSignal="P2"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Lamerden">
<FahrplanSignalEintrag FahrplanSignal="F"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Lamerden">
<FahrplanSignalEintrag FahrplanSignal="P2"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Liebenau">
<FahrplanSignalEintrag FahrplanSignal="F"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Liebenau">
<FahrplanSignalEintrag FahrplanSignal="B"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Sbk 22">
<FahrplanSignalEintrag FahrplanSignal="Sbk 22"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Warburg">
<FahrplanSignalEintrag FahrplanSignal="F"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Warburg">
<FahrplanSignalEintrag FahrplanSignal="S4"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Warburg">
<FahrplanSignalEintrag FahrplanSignal="P14"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Sbk 18">
<FahrplanSignalEintrag FahrplanSignal="Sbk 18"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Sbk 16">
<FahrplanSignalEintrag FahrplanSignal="Sbk 16"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Bonenburg">
<FahrplanSignalEintrag FahrplanSignal="F"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Bonenburg">
<FahrplanSignalEintrag FahrplanSignal="P1"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Sbk 12">
<FahrplanSignalEintrag FahrplanSignal="Sbk 12"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Willebadessen">
<FahrplanSignalEintrag FahrplanSignal="F"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Willebadessen">
<FahrplanSignalEintrag FahrplanSignal="P1"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Sbk 10">
<FahrplanSignalEintrag FahrplanSignal="Sbk 10"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Neuenheerse">
<FahrplanSignalEintrag FahrplanSignal="F"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Neuenheerse">
<FahrplanSignalEintrag FahrplanSignal="P1"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Sbk 8">
<FahrplanSignalEintrag FahrplanSignal="Sbk 8"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Buke">
<FahrplanSignalEintrag FahrplanSignal="F"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Buke">
<FahrplanSignalEintrag FahrplanSignal="P2"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Altenbeken">
<FahrplanSignalEintrag FahrplanSignal="B"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Altenbeken">
<FahrplanSignalEintrag FahrplanSignal="S21"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Sbk 11">
<FahrplanSignalEintrag FahrplanSignal="Sbk 11"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Sbk 13">
<FahrplanSignalEintrag FahrplanSignal="Sbk 13"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Sbk 15">
<FahrplanSignalEintrag FahrplanSignal="Sbk 15"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Benhausen">
<FahrplanSignalEintrag FahrplanSignal="A"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Benhausen">
<FahrplanSignalEintrag FahrplanSignal="N1"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Paderborn Hbf">
<FahrplanSignalEintrag FahrplanSignal="A401"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Paderborn Hbf">
<FahrplanSignalEintrag FahrplanSignal="R10"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Paderborn Hbf">
<FahrplanSignalEintrag FahrplanSignal="N14"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Sbk 413">
<FahrplanSignalEintrag FahrplanSignal="413"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Sbk 715">
<FahrplanSignalEintrag FahrplanSignal="715"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Salzkotten">
<FahrplanSignalEintrag FahrplanSignal="A722"/>
</FahrplanEintrag>
<FahrplanEintrag Ank="2013-08-21 12:00:00" Abf="2013-08-21 12:01:00" Betrst="Salzkotten">
<FahrplanSignalEintrag FahrplanSignal="N702"/>
</FahrplanEintrag>
Liegt hier noch ungenutztes Optimierungspotenzial? Den Zusitreffen-Folien entnehme ich, dass die eigentliche Buchfahrplan-Routine als Eingabe nur eine Liste von Fahrstrassen nimmt, die zusammen einen Weg zum Ziel ergeben. Wenn das so ist, dann ist der erste gefundene Weg zum Ziel auch der richtige und die Suche kann danach abgebrochen werden. Das scheint derzeit noch nicht vollstaendig der Fall zu sein.