05-01-2013, Saturday-20:32:32
Ich setze das jetzt hier als konkreten Vorschlag rein:
Wie ich an dieser Stelle (hier nochmal englisch, etwas ausführlicher) bewiesen habe, gibt es ein Problem mit der Beladelogik.
"Gemacht" wurde sie dafür, dass ein zwischen zwei Punkten einige Züge (Schnellzüge) Haltepunkte auslassen, also vor dem Endpunkt. Wie die Berechnungen zeigen, geht das aber auf Kosten von Verbindungen, bei denen einige Züge einen weiteren Halt hinter dem Endpunkt der anderen Züge ansteuern sollen.
Die bestehende "first-stop-first-served"-Logik minimiert für den erstgenannten Fall den Overhead (theoretisch auf Null, d.h., unter Laborbedinungen richtig getaktet würde der Regionalzug nur noch Regionalreisende mitnehmen), und macht es damit unrealistisch einfach. Realistisch wäre, dass der Zug auch Fernreisende mitnimmt, denn auch in der Realität werden Regionalzüge von Fernreisenden benutzt (aus Kostengründen).
Im Gegenzug macht die Beladelogik Optimierungen in dem zweitgenannten Fall völlig unmöglich. Man kann dadurch, dass man einige Züge nicht bis zum hinteren Halt fahren lässt, keinerlei Kapazitäten sparen. Das ist aber unrealistisch, weil es eben eine naheliegende Standardmaßnahme der Verkehrsplanung ist, Verkehrsmittel zu weniger frequentierten Halten nicht durchfahren zu lassen, sondern am frequentierteren vorherigen Halt (manchmal) umzudrehen.
(Ich habe auch gezeigt: Mit last-stop-first-served wäre es natürlich genau umgekehrt: Der zweite Fall würde unrealistisch einfach und beim ersten könnte man nicht mehr sinnvoll planen.)
Realistisch ist: Wenn (für den ankommenden Zug zu viele) Passagiere auf einem Bahnsteig stehen, hat statistisch jeder die gleiche Chance, in den Zug zu kommen. Das bedeutet, dass proportional beladen wird.
Es gibt einen Fall, in dem die bestehende Beladelogik Sinn ergibt (besser wäre es, das über das Routing zu lösen, aber das wäre ein ganz anderes Projekt): Nämlich bei Ringlinien. Die proportionale Beladung würde den Overhead auf Ringlinien spürbar erhöhen. Die bestehende Beladelogik muss also für Ringlinien beibehalten werden.
Dazu zwei konkrete Vorschläge, die alternativ oder kumulativ gemacht werden könnten:
1.) In der GUI gibt es beim (Linien- und Fahrzeug-) Fahrplan eine Checkbox "Ringlinie", die statt der proportionalen Beladung für die Linie die bisherige Beladung einstellt. (Alternativ wäre ein Drop-Down-Menü denkbar, in dem man auch noch "last-stop-first-served" einfügt, aber das wäre mehr eine Spielerei.)
2.) Simutrans könnte "Ringlinien" automatisch erkennen. Die Beladelogik ergibt nicht nur auf "echten" Ringlinien Sinn, sondern auch auf unechten (z.B. Achten). Die abstrakte Definition solcher Linien ist: Linien, auf die die Beladelogik "first-stop-first-served" angewendet werden sollte, sind solche, bei denen entweder
- kein Stop mehrfach angefahren wird, oder
- bei denen genau 1 Stop mehrfach angefahren wird, oder
- bei denen Anfangs- und Endstation gleich sind
Diese Definition trifft zwar auch auf manche andere Linien zu (z.B. einfache Point-to-Point-Linien), bei denen ist die Beladelogik aber egal oder unschädlich. Das gefundene Ergebnis könnte Voreinstellung für die vorgenannte Option sein, oder die GUI-Lösung wäre verzichtbar.
Wie ich an dieser Stelle (hier nochmal englisch, etwas ausführlicher) bewiesen habe, gibt es ein Problem mit der Beladelogik.
"Gemacht" wurde sie dafür, dass ein zwischen zwei Punkten einige Züge (Schnellzüge) Haltepunkte auslassen, also vor dem Endpunkt. Wie die Berechnungen zeigen, geht das aber auf Kosten von Verbindungen, bei denen einige Züge einen weiteren Halt hinter dem Endpunkt der anderen Züge ansteuern sollen.
Die bestehende "first-stop-first-served"-Logik minimiert für den erstgenannten Fall den Overhead (theoretisch auf Null, d.h., unter Laborbedinungen richtig getaktet würde der Regionalzug nur noch Regionalreisende mitnehmen), und macht es damit unrealistisch einfach. Realistisch wäre, dass der Zug auch Fernreisende mitnimmt, denn auch in der Realität werden Regionalzüge von Fernreisenden benutzt (aus Kostengründen).
Im Gegenzug macht die Beladelogik Optimierungen in dem zweitgenannten Fall völlig unmöglich. Man kann dadurch, dass man einige Züge nicht bis zum hinteren Halt fahren lässt, keinerlei Kapazitäten sparen. Das ist aber unrealistisch, weil es eben eine naheliegende Standardmaßnahme der Verkehrsplanung ist, Verkehrsmittel zu weniger frequentierten Halten nicht durchfahren zu lassen, sondern am frequentierteren vorherigen Halt (manchmal) umzudrehen.
(Ich habe auch gezeigt: Mit last-stop-first-served wäre es natürlich genau umgekehrt: Der zweite Fall würde unrealistisch einfach und beim ersten könnte man nicht mehr sinnvoll planen.)
Realistisch ist: Wenn (für den ankommenden Zug zu viele) Passagiere auf einem Bahnsteig stehen, hat statistisch jeder die gleiche Chance, in den Zug zu kommen. Das bedeutet, dass proportional beladen wird.
Es gibt einen Fall, in dem die bestehende Beladelogik Sinn ergibt (besser wäre es, das über das Routing zu lösen, aber das wäre ein ganz anderes Projekt): Nämlich bei Ringlinien. Die proportionale Beladung würde den Overhead auf Ringlinien spürbar erhöhen. Die bestehende Beladelogik muss also für Ringlinien beibehalten werden.
Dazu zwei konkrete Vorschläge, die alternativ oder kumulativ gemacht werden könnten:
1.) In der GUI gibt es beim (Linien- und Fahrzeug-) Fahrplan eine Checkbox "Ringlinie", die statt der proportionalen Beladung für die Linie die bisherige Beladung einstellt. (Alternativ wäre ein Drop-Down-Menü denkbar, in dem man auch noch "last-stop-first-served" einfügt, aber das wäre mehr eine Spielerei.)
2.) Simutrans könnte "Ringlinien" automatisch erkennen. Die Beladelogik ergibt nicht nur auf "echten" Ringlinien Sinn, sondern auch auf unechten (z.B. Achten). Die abstrakte Definition solcher Linien ist: Linien, auf die die Beladelogik "first-stop-first-served" angewendet werden sollte, sind solche, bei denen entweder
- kein Stop mehrfach angefahren wird, oder
- bei denen genau 1 Stop mehrfach angefahren wird, oder
- bei denen Anfangs- und Endstation gleich sind
Diese Definition trifft zwar auch auf manche andere Linien zu (z.B. einfache Point-to-Point-Linien), bei denen ist die Beladelogik aber egal oder unschädlich. Das gefundene Ergebnis könnte Voreinstellung für die vorgenannte Option sein, oder die GUI-Lösung wäre verzichtbar.