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>
_______________________________________________
Talk-de mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/talk-de

Antwort per Email an