[Talk-de] Fahrthäufigkeit bei Buslinien

Stefan Popp stefan at p0pp.de
Mi Nov 25 09:14:25 UTC 2009


Martin Koppenhoefer schrieb:
> Gerade in Gegenden, wo der ÖPNV nicht nur gewährleistet werden muss, 
> sondern sich die Frequenzen auch nach realem Verkehrsaufkommen richtet 
> (also größere Städte), sind allerdings öfters auch die Takte zu 
> Stoßzeiten (z.B. 7-9, 17-19h) dichter als in der übrigen Zeit.
Jetzt, wo du's erwähnst: Auch in meiner Gegend kann ich das brauchen, da 
bestimmte Buslinien zu verkehrsschwachen Zeiten zusammengelegt werden 
und dadurch bestimmte Bushaltestellen überhaupt nicht angefahren werden.

Was evtl. auch brauchbar wäre, ist ein Tag, dass den Prozentsatz an 
Niederflurfahrzeugen, oder Gelenk-/Doppelstockfahrzeugen angibt, z.B.:

    low_floor_vehicles = 50% (d.h. die Hälfte aller Fahrzeuge sind
    Niederflurfahrzeuge, und deren Frequenz ist ungefähr halb so groß
    wie die Gesamtfrequenz)
    articulated_vehicles = ... (Gelenkfahrzeug, wie oben)
    double_decker_vehicles = ... (Doppeldeckerfahrzug, w.o.)

Alternativ könnten sich diese Tags auch wie das vorher beschriebene 
frequency-Tag verhalten, frequency würde dann für /alle/ Fahrzeuge 
gelten, auch die, die durch die drei obigen Tags abgedeckt sind, 
low_floor, articulated, und double_decker könnten dann zur genaueren 
Spezifizierung dienen.

Über die Nötigkeit von articulated und double_decker kann man streiten, 
vom Blickwinkel der Behindertengerechtheit wäre low_floor meiner Meinung 
nach aber schon wichtig.

Sarah Hoffmann schrieb:
> Wie das Variantenproblem gelöst werden kann, weiss ich auch nicht.
> Kleinere zu ignorieren, finde ich jedenfalls ok.
Vielleicht, indem man Teilrouten definiert, die über eine 
"Meta-Relation" geordnet zusammengefasst sind? Die Frequenzen könnten in 
den Teilrouten angegeben werden, die Frequenz einer "Meta-Relation" 
ergäbe sich dann durch das Minimum der Teil-Relationen. Ein Beispiel von 
um die Ecke (ich hoffe, die Leerzeichen werden nicht gefressen)

    .<-(D)-.           .<-(C)-.
    |       \          |       \         .--(B)--<>-.
    |        \         |        \        |           \
    V         \        V         \       |            \
    .---->---->+--<>---+-->-(E)-->+--<>--+--(F)--<>----+---<>--(A)--<>---<>---[ZOB]

    Erläuterung:
    <,^,V,>:	Verkehr nur in Pfeilrichtung
    <>:		Vehrkehr in beide Richtungen
    .,-		Kante (nach Graphentheorie)
    +		Knoten (nach Graphentheorie)
    (X)		Benennung einer Kante
    [ZOB]		Zentraler Omnibusbahnhof
      

Soviel zur Grafik, nun zu den Linien:
ZOB>A>B>C>E>B>A>ZOB: Im folgenden "Linie B"
ZOB>A>F>C>E>B>A>ZOB: Im folgenden "Linie F"
ZOB>A>B>C>D>E>B>A>ZOB: Im folgenden "Linie BD"
ZOB>A>F>C>D>E>B>A>ZOB: Im folgenden "Linie FD"

Ich würde nun für A,B,...,F jeweils Teilrelationen aufstellen, und dort 
die jeweiligen Frequenzen angeben:
Ach ja, alle Zeitintervalle verstehe ich in der Form [x,y], also x und y 
sind Teil (Element) des Intervalls.
Kante B:
frequency:weekday_and_6h=1/hour            //*Ob dieser Spezialfall 
Aufnahmewürdig ist, wäre zu klären ;-)
frequency:weekday_and_8h-11h=1/hour
frequency:weekday_and_15h=2/hour         //siehe *
frequency:weekday_and_18h=2/hour         //siehe *
frequency:weekday_and_19h-22h=1/hour
frequency:weekday_and_default=none      //Der Vollständigkeit halber, 
default gibt alle Zeiten an, die nicht abgedeckt sind, hier also 
wochentags 23h-5h,7h.12h-14h,16h-17h

Kante F:
frequency:weekday_and_6h-8h=1.5/hour
frequency:weekday_and_12h-14h=1.5/hour
frequency:weekday_and_16h-17h=2/hour
frequency:weekday_and_default=none      //Der Vollständigkeit halber.

Kante D:
frequency:weekday_and_7h-18h=0.5/hour
frequency:weekday_and_default=none      //Der Vollständigkeit halber.

Wochenenden schenk ich mir, die Mail ist eh schon viel zu lange :-)  Wir 
stellen uns aber vor, ich hätte sie angegeben.
A,C,E lasse ich bewusst ungetaggt, sie sollen bei der Bestimmung der 
minimalen Frequenz einfach nicht berücksichtigt werden
Linie B hat nun nur Kante B spezifiziert, es gelten also die Frequenzen 
von Kante B.
Selbiges bei Linie F/Kante F.
Für die Linien BD und FD, bestimmen wir nun die Minima für die einzelnen 
Zeitintervalle, indem wir die Zeitintervalle passend zusammenfügen:
BD: (gemeinsames Intervall**; Intervall B & Intervall D **; Frequenz B & 
Frequenz D; => gemeinsame Frequenz***)

00h-05h; defaultB & defaultD; none , none;   none
06h    ; 6h       & defaultD; 1/hr , none;   none
07h    ; defaultB & 7h-18h;   none , 0.5/hr; none
08h-11h; 8h-11h   & 7h-18h;   1/hr , 0.5/hr; 0.5/hr
12h-14h; defaultB & 7h-18h;   none , 0.5/hr; none
15h    ; 15h      & 7h-18h;   2/hr , 0.5/hr; 0.5/hr
16h-17h; defaultB & 7h-18h;   none , 0.5/hr; none
18h    ; 18h      & 7h-18h;   2/hr , 0.5/hr; 0.5/hr
19h-22h; 19h-22h  & defaultD; 1/hr , none;   none
23h    ; defaultB & defaultD; none , none;   none

**Alle Schnittmengen der Intervalle von B und D werden berücksichtigt, 
leere Schnittmengen ignorieren wir (z.B. 6h & 7h-18h)
***  Die gemeinsame Frequenz ergibt sich auch der Minima der den 
Intervallen der Schnittmenge zugeordneten Frequenzen.

Nach Zusammenfassung bei einander liegender Intervalle gleichen Wertes 
erhalten wir:

19h-07h = none
08h-11h = 0.5/hr
12h-14h = none
15h     = 0.5/hr
16h-17h = none
18h     = 0.5/hr

Wer's noch einfacher haben will, definiert die (zeitlich) häufigste 
Frequenz als default:
( |x-y| : Betrag des Intervalls )

none:   |19h-07h|+|12h-14h|+|16h-17h| = 13h+3h+2h=18h
0.5/hr: |8h-11h| +|15h|    +|18h|     =  3h+1h+1h= 5h

==>

08h-11h = 0.5/hr
15h     = 0.5/hr
18h     = 0.5/hr
default = none


Der Vorteil wäre, dass man pro Kante nicht jede Linie extra 
berücksichtigen muss, sondern einfach die Gesamtfrequenz aller Linien 
angeben kann. Varianten sind damit auf (atomare) Teilstückchen 
herunterbrechbar.

Bevor ich das ganze zum Zerpflügen freigebe, hier noch ein Spezialfall, 
der mir gerade in den Kopf kam, der evtl. Probleme machen könnte:

        (N)
         |
         ^
         v
         | 
(W)--<>--+--<>--(O)
         |
         ^
         v
         |
        (S)

Nehmen wir nun an, dass alle möglichen Linien zwischen N,O,S, und W 
existieren****; so kann ich an Hand der Minima der Frequenzen von N,O,S, 
und W nicht mehr eindeutig auf die Frequenzen der einzelnen Linien 
schließen.
**** Also: NO,NS,NW,SO,WO,SW, sowie deren Rückfahrten
Hier müsste man dann virtuelle Teilrouten definieren, denen keine 
tatsächlichen Wege zugeordnet sind, die aber mit den notwendigen 
Frequenzen belegt sind:

           (N)
            |
            ^
            v
            |
            +
           /|\
      (NW)/ ¹ \(NO)
         /  |  \
(W)--<>-+---*-²-+-<>--(O)
         \  |  /
      (SW)\ | /(SO)
           \|/
            +   ¹(NS)
            ^   ²(WO)
            v
            |
           (S)

Diese virtuellen Teilrouten wären dann Relationen die wie die normalen 
Teilrouten als Member in der geordneten Lsite der Metarelation 
auftauchen, selbst aber über keine Wege oder Punkte besitzen. Für die 
Fahrzeitenberechnung haben sie auf Grund fehlender Wege die Länge 0.

So, jetzt bin ich fertig, vielen Dank an die, die bis hierhin 
Durchgehalten haben :-)

lg,
Stefan



.
<http://dict.leo.org/ende?lp=ende&p=DEdPgA&search=vehicle>
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.openstreetmap.org/pipermail/talk-de/attachments/20091125/7f8dcb8e/attachment.htm>


Mehr Informationen über die Mailingliste Talk-de