29-06-2006, Thursday-03:40:41
Ich hätte da ein mathematisches Modell anzubieten nach dem ich bisher baue (falls nötig formulier ichs dir auch soweit aus das es ein Gegenbeweis ist).
Ich teile ein in HalteBlöcke (mindestens 12 Felder, z.b. Bahnsteige)
Und in Wegblöcke (in denen Züge niemals halten dürfen)
Die HalteBlöcke werden dabei so plaziert, dass bei 2 blöcken. A B. niemals züge von A nach B und von B nach A wollen.
Diese Einteilung verhindert auf dieser ebene offensichtliche Deadlocks. Es können nur noch Überfüllungsdeadlocks auftreten.
Kreise bestehen aus mindestens 3 Blöcken können also 2 Züge fassen. Bei grösseren Kreisen ist nur darauf zu achten das genug "löcher" da sind um den eintritt und den austritt von zügen aus anderen "kreisen" zu ermöglichen.
Wegblöcke können theoretisch irgendwie dazwischen gelegt werden. (Eine Belegung von ihnen frisst Zeit und produziert zähflüssigen Verkehr aber niemals Deadlocks)
Nun kommen die bisherigen Einschränkungen von simutrans. Die folgende Regeln erzwingen:
1: Am eingang eines wegblocks muss ein Vorsignal stehen, damit geprüft wird ob ein Halteblock frei ist.
2: 2 Wegblöcke dürfe nicht aneinander grenzen. (da sonst das vorsignal nicht bis zu einem halteblock prüft und ein zug losfahren könnte ohne einen freien halteblock zu haben)
3: in einem wegblock darf kein Wegpunkt liegen. (ist eine Notwendigkeit aus dem verhalten von Vorsignalen)
und 4:
falls auf einen halteblock ein wegblock folgt, darf der halteblock nicht mit einem vorsignal beginnen. Weil sonst unkontrollierbar ob der Zug tatsächlich einfährt.
Was im wesentlichen der Grund für diesen Thread ist. Da mir das doppelte Vorsignal die möglichkeit nimmt halteblöcke mit einer Einausfahrrichtung und zusätzlicher Ausfahrrichtung zu Wegblöcken zu bauen.
(und falls mir wer die Theorie nicht glaubt, ich hab eine riesige Karte mit nem haufen Verkehr fast nur nach diesen Regeln deadlockfrei aufgebaut. Streng mathematisch nach ein Beispiel ist noch kein Beweis ;-) )
Das vorgeschlagene Signal an dem nicht gehalten werden kann würde die 2. Einschränkung aufheben. (vorrausgesetzt die Vorsignale betrachten 2 durch so ein Signal verknüpfte Blöcke als einen) (oder ohne verändertes verhalten der Vorsignale mit einer veränderten Regel 4: ein halteblock muss mit so einem signal beginnen)
Dein Angedachter weg mit dem wegstrecke checken würde die 2. Einschränkung ebenfalls praktisch bedeutungslos machen.
Und das Signal was in eine Richtung Vorsignal und in die andere Richtung normales Signal ist würde die 4. einschränkung "auflösen". und die 3. einschränkung (wie in wolfgangs beispiel leicht erfüllbar machen)
mein beispiel 2 ist so wie es ist übrigens deadlockfrei (aber vielleicht findet sich ja ein Informatiker :-) ).
Und falls du möchtest das züge von rechts nach rechts und von links nach links fahren können. brauchst du nur bei den Bahnhöfen die Vorsignale von einer Richtung auf beidseitig umbauen. (verursacht nur zähflüssigeren Verkehr weil die Gegenrichtung davor geblockt wird, bleibt aber deadlockfrei)
Und ja Einrichtungssignale sind der Grund warum ich simutrans und nicht transporttycoon spiele ;-)
Ich teile ein in HalteBlöcke (mindestens 12 Felder, z.b. Bahnsteige)
Und in Wegblöcke (in denen Züge niemals halten dürfen)
Die HalteBlöcke werden dabei so plaziert, dass bei 2 blöcken. A B. niemals züge von A nach B und von B nach A wollen.
Diese Einteilung verhindert auf dieser ebene offensichtliche Deadlocks. Es können nur noch Überfüllungsdeadlocks auftreten.
Kreise bestehen aus mindestens 3 Blöcken können also 2 Züge fassen. Bei grösseren Kreisen ist nur darauf zu achten das genug "löcher" da sind um den eintritt und den austritt von zügen aus anderen "kreisen" zu ermöglichen.
Wegblöcke können theoretisch irgendwie dazwischen gelegt werden. (Eine Belegung von ihnen frisst Zeit und produziert zähflüssigen Verkehr aber niemals Deadlocks)
Nun kommen die bisherigen Einschränkungen von simutrans. Die folgende Regeln erzwingen:
1: Am eingang eines wegblocks muss ein Vorsignal stehen, damit geprüft wird ob ein Halteblock frei ist.
2: 2 Wegblöcke dürfe nicht aneinander grenzen. (da sonst das vorsignal nicht bis zu einem halteblock prüft und ein zug losfahren könnte ohne einen freien halteblock zu haben)
3: in einem wegblock darf kein Wegpunkt liegen. (ist eine Notwendigkeit aus dem verhalten von Vorsignalen)
und 4:
falls auf einen halteblock ein wegblock folgt, darf der halteblock nicht mit einem vorsignal beginnen. Weil sonst unkontrollierbar ob der Zug tatsächlich einfährt.
Was im wesentlichen der Grund für diesen Thread ist. Da mir das doppelte Vorsignal die möglichkeit nimmt halteblöcke mit einer Einausfahrrichtung und zusätzlicher Ausfahrrichtung zu Wegblöcken zu bauen.
(und falls mir wer die Theorie nicht glaubt, ich hab eine riesige Karte mit nem haufen Verkehr fast nur nach diesen Regeln deadlockfrei aufgebaut. Streng mathematisch nach ein Beispiel ist noch kein Beweis ;-) )
Das vorgeschlagene Signal an dem nicht gehalten werden kann würde die 2. Einschränkung aufheben. (vorrausgesetzt die Vorsignale betrachten 2 durch so ein Signal verknüpfte Blöcke als einen) (oder ohne verändertes verhalten der Vorsignale mit einer veränderten Regel 4: ein halteblock muss mit so einem signal beginnen)
Dein Angedachter weg mit dem wegstrecke checken würde die 2. Einschränkung ebenfalls praktisch bedeutungslos machen.
Und das Signal was in eine Richtung Vorsignal und in die andere Richtung normales Signal ist würde die 4. einschränkung "auflösen". und die 3. einschränkung (wie in wolfgangs beispiel leicht erfüllbar machen)
mein beispiel 2 ist so wie es ist übrigens deadlockfrei (aber vielleicht findet sich ja ein Informatiker :-) ).
Und falls du möchtest das züge von rechts nach rechts und von links nach links fahren können. brauchst du nur bei den Bahnhöfen die Vorsignale von einer Richtung auf beidseitig umbauen. (verursacht nur zähflüssigeren Verkehr weil die Gegenrichtung davor geblockt wird, bleibt aber deadlockfrei)
Und ja Einrichtungssignale sind der Grund warum ich simutrans und nicht transporttycoon spiele ;-)