[0001] Die Erfindung betrifft eine Vorrichtung und ein Verfahren zur Steuerung eines Verkehrsflusses
in einem Verkehrsnetz durch einen optimalen Signalphasenplan, wobei das Verkehrsnetz
durch einen Graphen mit Knoten, Kanten, Knoten-Beschriftungen, Kanten-Beschriftungen,
Knoten-Durchsatz und Kanten-Kapazitäten in Form eines mesoskopischen Verkehrsfluss-modells
beschrieben wird, und ein erster, zeitabhängiger Simulationsfluss von Fahrzeuganzahlen
sowie ein zweiter, zeitabhängiger Simulationsfluss von Signalphasen jeweils unter
Berücksichtigung von Rahmenbedinungen und einer Abfolge von Simulations-Schritten
bestimmt wird.
[0002] In der Verkehrsplanung für Verkehrsnetze kann es gewünscht sein, mehre Verkehrs-Beeinflussungsanlagen,
wie optische Signalanlagen, miteinander derart zu verknüpfen, sodass deren gemeinsame
Ansteuerung einzelne Verkehrsflüsse beispielsweise hinsichtlich einer angestrebten
maximalen Durchschnittsgeschwindigkeit optimiert.
[0003] Dabei kann aufgrund einer hohen Anzahl an Signalanlagen bei der Berechnung optimaler
Signalphasen unter verschiedenen Rahmenbedingungen ein exponentiell steigender Aufwand
entstehen, welcher entsprechende Rechenkapazitäten und Speicher benötigt.
[0004] Es ist die Aufgabe der Erfindung ein Verfahren bereitzustellen, welches den Rechenaufwand
zur Ermittlung von optimalen Signalphasen gegenüber einer "off-the-shelf"-Lösung in
einem mesoskopischen Model verringert.
[0005] Die erfindungsgemäße Aufgabe wird durch ein Verfahren eingangs genannter Art gelöst,
indem der optimale Signalphasenplan für das jeweilige mesoskopische Verkehrsfluss-Modell
durch Anwendung von ASP auf den Graphen, den ersten Simulationsfluss und den zweiten
Simulationsfluss durch eine Rechenvorrichtung ermittelt wird, und der optimalen Signalphasenplan
durch eine Steuervorrichtung mit Steuerelementen ausgeführt wird.
[0006] Dadurch wird erreicht, dass eine Kodierung des Verkehrsfluss-modells in "Answer Set
Programming (ASP)" generiert werden kann, mit welchem insbesondere abstrakte Situationen
konkreter Verkehrsflüsse in den "Answer Sets", die Modelle eines Programms, beschrieben
werden können.
[0007] Auf diese Weise ist es möglich, auf eine abstrakte Weise Verkehrsströme zu ermitteln.
[0008] Die Abfolge von Simulations-Schritten bezieht sich vorzugsweise auf die zeitliche
Abfolge.
[0009] Durch Anwendung von ASP bei der Bestimmung des optimalen Signalphasenplans mit einer
Rechenvorrichtung lässt sich mit deutlich weniger erforderlichem Speicher ausführen.
Die interne Arbeitsweise der Rechenvorrichtung kann dadurch erheblich verbessert werden
und daher kann eine einfachere und kostengünstigere Rechenvorrichtung eingesetzt werden.
Die Berechnung des optimalen Signalphasenplans kann folglich durch die Rechenvorrichtung
wesentlich effizienter, schneller und kostengünstiger durchgeführt werden.
[0010] Mit anderen Worten erfolgt durch die Erfindung das Berechnen des optimalen Signalphasenplanes
im mesoskopischen Modell unter der Berücksichtigung von einer definierten Optimierungsstrategie.
[0011] Außerdem erfolgt das Modellieren und Erfassen von solchen Strategien mit einer Regelsprache,
wobei bestehende Strategien leicht erweitert oder neue Strategien definiert werden
können.
[0012] In einer Weiterbildung der Erfindung ist es vorgesehen, dass eine Matrix, welche
die Rot/Grünphasen eines Signalphasenplans repräsentiert, gebildet wird und folgende
Schritte ausgeführt werden:
- a) Entnehmen aller verbundener grünen Signalphasen für jede Fahrspur eines Kreuzung-Knotens
aus der Matrix,
- b) Schätzen einer Kürzung oder einer Verlängerung aus einem gewählten Einstell-Parameter,
- c) Prüfen, ob die Schätzung die Bedingungen der Beziehungen erfüllt, falls ja, Anwenden
der geschätzten Werte auf die jeweilige Signalphase.
[0013] Bei der Prüfung der Matrix können sicherheitstechnische Bedingung berücksichtigt
werden, wie beispielsweise, dass gewisse Phasen nie gleichzeitig auf Grün geschalten
werden dürfen.
[0014] Dadurch wird auf eine einfache Weise eine Ausgangsmatrix für die Kodierung in ASP
erzeugt, welche in speziellen Fällen eine bessere Lösung für die Kodierung in ASP
erzielt, da sie speziell die Modellierungsleistung von ASP nützt.
[0015] Mit anderen Worten wird dadurch eine effiziente Optimierungs-Strategie angewendet.
[0016] In einer Weiterbildung der Erfindung ist es vorgesehen, dass zur Optimierung mittels
ASP zumindest ein Qualitätsindikator bezüglich einer Anzahl an Fahrzeugen im Verkehrsnetz
oder einer Anzahl von Zeitpunkten mit einem vorbestimmten Status, vorzugsweise mit
dem Wert 1 für den Verkehrsfluss berücksichtigt wird.
[0017] Qualitätsindikatoren im mesoskopischen Modell, wie den Verkehrsdurchsatz oder die
Anzahl Fahrzeug-Stopps, bilden die Grundlage für die Optimierung und können miteinander
kombiniert werden, um besonders gute Ergebnisse bei der Anwendung der Strategien zu
erreichen.
[0018] Die Erfindung wird auch durch eine Vorrichtung zur Steuerung eines Verkehrsflusses
in einem Verkehrsnetz durch einen optimalen Signalphasenplan gelöst, umfassend eine
Steuervorrichtung mit Steuerelementen und eine Rechenvorrichtung mit einem Speicher,
wobei die Rechenvorrichtung dazu eingerichtet ist den optimalen Signalphasenplan durch
das erfindungsgemäße Verfahren ermitteln und die Steuervorrichtung dazu eingerichtet
ist, den optimalen Signalphasenplan auszuführen.
[0019] In einer Weiterbildung der Erfindung ist es vorgesehen, dass die Steuerelemente Verkehrs-Beeinflussungsanlagen
wie Verkehrsampeln, dynamische Fahrspur-Sperranzeigen oder dynamischen Geschwindigkeitsbeschränkungsanlagen
sind.
[0020] In einer Weiterbildung der Erfindung ist es vorgesehen, dass der optimale Signalphasenplan
eine Konfiguration der Steuerelemente in Form von Verkehrsampeln betrifft, die im
Verkehrsnetz eine grüne Welle in einer Verkehrsrichtung für Verkehrsteilnehmer ist.
[0021] Verkehrs-Beeinflussungsanlagen können beispielsweise statt optisch auch elektronisch
signalisieren, beispielsweise durch Verwendung von Funktechnologie wie gemäß dem Standard
IEEE 802.11p (WAVE) für ITS-G5 Anwendungen.
[0022] Verkehrsnetze können beispielsweise neben Straßennetzen auch Bahnnetze im Nah- und
Fernverkehr sein.
[0023] Durch die Erfindung wird ein neues mesoskopisches Modell für den Verkehrsfluss bereitgestellt,
welches erlaubt folgende Merkmale für eine Verkehrs-Signalisierung zu berücksichtigen:
- Knoten verschiedener Typen (Quell-, Link-, Schnittpunkt- und Senken-/Zielknoten),
- Verteilung von eingehenden zu ausgehenden Kanten über individuelle Raten und
- Verweigerungsbeschränkungen für (Kantenpaare) hinsichtlich des möglichen Status (insbesondere
Signalphasen), um die Sicherheit zu gewährleisten.
[0024] Durch eine Codierung des Flussmodells in "Answer Set Programming" (ASP) können abstrakten
Läufe konkreter Verkehrsflüsse in den Antwortsätzen der ASP-Codierung generieren werden.
Auf diese Weise ist es möglich, sehr komplexe Verkehrsströme zu analysieren.
[0025] Für Konfigurationen von Signalphasenplänen (SPP) lassen sich mittels ASP-Codierung
verschiedene Optimierungsstrategien generieren.
[0026] Es ist klar, dass die zuvor genannten Merkmale untereinander kombinierbar sind.
[0027] Die Erfindung wird nachfolgend anhand eines in den beigeschlossenen Zeichnungen dargestellten
Ausführungsbeispiels näher erläutert. In den Zeichnungen zeigt:
- Fig. 1
- eine Darstellung eines Verkehrsmodells mit zwei Schnittpunkten im Simulationswerkzeug
"SUMO",
- Fig. 2
- ein mesoskopisches Verkehrsfluss-Modell der Fig. 1,
- Fig. 3
- ein Berechnungsbeispiel für ein Verkehrsnetz,
- Fig. 4
- ein Beispiel für einen Signalisierungsplan,
- Fig. 5
- eine Matrix einer Kreuzung,
[0028] Zunächst werden allgemein die Eigenschaften der verwendeten Merkmale erläutert.
1. Allgemeines
1.1. Answer Set Programming
[0029] Zur Problemlösung und Optimierung kann das deklarative ASP-Paradigma (Answer Set
Programming) eingesetzt werden, welches auf nicht-monotonen Logikprogrammen basiert,
deren Kernregeln in folgender Form definiert sind:
a ← b1,...,bn, not c1,..., not cm
[0030] Wobei
a und alle
bi, cj Atome in einer Prädikatssprache erster Ordnung sind und "not" eine "schwache Negation"
(engl. "negation as failure", NAF) ist.
[0031] Falls
a fehlt, ergibt sich eine Einschränkung. Intuitiv kann auf
a geschlossen werden, falls auf alle
bi und keine
cj gefolgert werden kann. Die stabilen Modelle, das heißt die "answer sets" eines Programms
sind spezielle Herbrand Modells, welche eine Fixpunkt Bedingung erfüllen.
[0032] In ASP werden Probleme zu Logikprogrammen
P codiert, sodass die "answer sets"
I deren Lösungen repräsentieren, beispielsweise durch "Raten und Prüfen", das heißt
"Erzeugen und Testen".
[0033] Ein Logikprogramm P weist folgende Eigenschaften auf:
- 1. nicht deterministische Regeln mit nicht geschichteter Negation (oder Disjunktion
in den Köpfen), um mögliche Lösungen zu generieren,
- 2. Einschränkungen, die prüfen, ob eine Kandidatenlösung geeignet ist, und
- 3. Hilfsregeln, die im ersten und zweiten Teil verwendet werden.
[0034] Optimale Lösungen können unter Verwendung spezieller Richtlinien bestimmt werden,
beispielsweise #
maximize V wählt eine Lösung, wobei
V den größten Wert hat.
1.2. Verkehrsfluss-Modelle
[0035] Der Straßenverkehr kann grob anhand eines Verkehrsflusskonzepts beschrieben werden,
welches anhand vordefinierter Variablen wie Geschwindigkeit und Dichte von Fahrzeugen
an einem vordefinierten Ort über einen vordefinierten Zeitraum gemessen wird.
[0036] Der Verkehrsfluss selbst wird häufig durch die qualitativen Zustände des freien Flusses,
des Staus und eines Zustands des synchronisierten Flusses beschrieben.
[0037] Vordefinierte Variablen können verwendet werden, um lokale (bzw. globale) Aspekte
zu beschreiben, und als lokale (bzw. globale) Variablen bezeichnet werden.
[0038] Lokale Variablen werden an bestimmten Straßensegmenten und Zeitintervallen der Länge
sd oder der Zeitpunkte
t gemessen, und können umfassen:
- Verkehrsfluss-Zähler:

wobei n die Anzahl an Fahrzeugen ist, die eine Kreuzung S während einer Zeitdauer sd passieren.
- Durchschnittliche Geschwindigkeit:

Wobei o die durchschnittliche Geschwindigkeit aller Fahrzeuge auf einem Segment X zu einem bestimmten Zeitpunkt t ist.
[0039] Globale Variablen beschreiben das gesamte Netzwerk. Sie werden über einen längeren
Zeitraum extrahiert und dienen als Grundlage für die Messung der Gesamtleistung, beispielsweise
die Durchschnittsgeschwindigkeit aller Fahrzeuge für einen Simulationslauf.
[0040] Ein leistungsfähigerer Ansatz, um Einblicke in die Verkehrskontrolle zu erhalten
und Optimierung sind Verkehrsflussmodelle.
[0041] Eine gemeinsame Klassifizierung basiert auf der Repräsentationsdimension (Fahrzeug-
oder Fluss-basiert) und der Granularität der Verhaltensregeln (mikroskopisch oder
makroskopisch) .
Mesoskopische Verkehrsfluss-Modelle
[0042] Solche Modelle wurden entwickelt, um die Lücke zwischen makroskopischen und mikroskopischen
Modellen zu schließen, in denen unterschiedliche Aggregationsebenen eingeführt werden,
aber auch das Verhalten einzelner Fahrzeuge oder Verkehrssteuerungssysteme dargestellt
werden.
[0043] Headway-Verteilungs-, Cluster- und Gas-Kinetik-Modelle können angewendet werden,
um den mesoskopischen Fluss darzustellen.
2. Symbolisches Mesoskopisches Verkehrsfluss-Modell
[0044] Das weitere Modell umfasst die Elemente eines mikroskopischen und eines makroskopischen
Verkehrsfluss-Modells, wie beispielsweise:
- 1) das statische Verkehrsnetz und die Kreuzungstopologien,
- 2) dynamische Zustände wie Fahrzeugzählungen und Signalphasenzustände sowie die Transformation
von dynamischen Zuständen. Es besteht dementsprechend aus einer statischen Komponente,
die das Straßennetz und die lokalen Topologien definiert, und einer dynamischen Komponente,
die den Verkehrsfluss definiert, basierend auf
- a) einem Zeitmodell unter Verwendung einer Zeitachse, Datenelementen von Aggregationen
und Datenströmen,
- b) Verkehrsflusserzeugung für verschiedene Knotentypen, um die Anzahl der zu verschiedenen
Zeitpunkten vorhandenen Fahrzeuge zu erfassen; und
- c) Signalphasenpläne, um die Erzeugung von Signalphasen zu verschiedenen Zeitpunkten
zu erfassen.
[0045] Das Verkehrsfluss-Modell, sowie ein erfindungsgemäß ermittelter dynamischer Verkehrssteuerplan
wie ein Signalphasenplan kann in einer entsprechenden Verkehrsfluss-Steuerungsvorrichtung,
wie einer Ampel-Steuerung, in Form einer Software zur Ermittlung und Ansteuerung von
Verkehrs-Beeinflussungsanlagen, beispielsweise für Ampeln, dynamische Fahrspur-Sperranzeigen
oder dynamischen Geschwindigkeitsbeschränkungsanlagen eingesetzt werden.
2.1. Statischer Anteil
[0046] Das statische Verkehrsmodell beschreibt die Struktur des Straßennetzes einschließlich
der Straßen, Fahrspuren, Kreuzungen, Kreuzungstopologien und Verkehrssteuerungsinstallationen
wie Ampeln (engl. "traffic light", TL).
[0047] Verkehrssteuerungs-Installationen umfassen eine oder mehrere TL-Signalgruppen, welche
von einer Ampelsteuerung verwaltet werden, die Signalphasen "
rot" (für Stopp) und
"grün" (für Start) ausgibt und zuweist.
[0048] Es ist sinnvoll, eine globale Ampelsteuerung einzusetzen, welche alle Kreuzungen
verwaltet, wie in
Fig. 1 dargestellt.
[0049] Mehrere Ampeln TL1, TL2 in einem Straßennetz RN werden von einer Ampelsteuerung TLC
(engl. "traffic light controller") angesteuert. Die Berechnung der Signalphasen erfolgt
durch eine Rechenvorrichtung CD (engl. "calculation device") mit einem Speicher.
[0050] Die Signalphasen für jede Signalgruppe werden in einem "Standard" -Signalplan kodiert,
in dem die
grün/
rot-Aufteilung einer vollen Phasenlänge definiert ist. Vereinfachenderweise ist jeder
von zwei benachbarten eingehenden Fahrspuren eine Signalgruppe zugeordnet.
[0051] Für ein Straßennetz
N mit mehreren Kreuzungen
S kann für dessen statischen Anteil ein beschrifteter Graph
GN angegeben werden:

mit
- V...
- Knoten (engl. "vertex"): beschreiben reale (Kreuzungen) oder künstliche (Verbindungspunkte
zu Gebieten außerhalb der Straßen) Kreuzungspunkte. Jeder Knoten v ∈ V ist einem festen Typ tp ∈ {src,snk,ins,lnk} zugeordnet, bezeichnet durch v:tp, mit
src... Quellknoten (engl. "source")
snk... Zielknoten (engl. "sink")
ins... Kreuzungsknoten (engl. "intersection")
lnk... Verbindungsknoten (engl. "link")
- E...
- Kante (engl. "edge"): entspricht ganzen Fahrspuren oder Segmenten von Fahrspuren und
beschriebt den (möglichen) Verkehrsfluss im Straßennetz N durch Verbinden von Knoten.
- lV...
- Knoten-Beschriftung (engl. "label"): stellt Kontext-Information bereit. Eine Funktion

weist jedem Knoten eine "Flaschenhals"- oder "Engpass"-Kapazität zu und definiert
dadurch den höchstmöglichen Durchfluss an Fahrzeugen zu einem einzelnen Zeitschritt.
- lE...
- Kanten-Beschriftung: stellt Kontext-Information bereit. Eine Funktion

weist jeder Kante eine "Aufnahme"-Kapazität zu und definiert dadurch eine höchstmögliche
Kapazität an Fahrzeugen, die gleichzeitig an der Kante vorhanden sein können.
- RV...
- Knoten-Beziehung (engl. "relation"): Eine Funktion

erfasst eine Verkehrsfluss-Verteilung, wobei RV = {(v,e,w)|vE V,v:ins,e = (v,v') ∈ E, β < w ≤ 1}. Falls w nicht definiert ist, gibt es keinen Verkehrsfluss nach Außen zum Knoten
e, und falls w = 1, so fließt der gesamte Verkehr zum Knoten e.
Beispielsweise weist eine Kreuzung v1 mit einer eingehenden Fahrspur e1 = (s1, v1) und zwei ausgehenden Fahrspuren e2 = (v1,s2) und e3 = (v1,s3) eine gerade Auftrennungdes Verkehrsflusses auf, welcher durch RV = {(v1,e2,0.5), (v1,e3,0.5)} definiert ist.
Die Beziehung RC ⊆×E erfasst implizite Verweigerungsbeschränkungen (aus Sicherheitsgründen) für eine Kreuzung,
um sicherzustellen, dass sich orthogonale Kreuzungsspuren nicht zum gleichen Zeitpunkt
in einer grünen Phase befinden.
- CV...
- Kanten-Kapazität (engl. "capacity")
Segmentierung.
[0052] Die statische Komponente wird durch Segmentierung aus einem bestimmten mikroskpischen
Verkehrssimulationsmodell (wie z.B. das Simulationswerkzeug "SUMO") extrahiert, welches
die Granularität des mesoskopischen Modelles und die Verlässlichkeit des berechneten
Signalplanes beeinflusst.
[0053] Fig. 1 und
Fig. 2 stellen einen einfachen Segmentierungsalgorithmus graphisch dar, welcher die folgenden
Schritte umfasst:
- a) Gleichmäßiges Segmentieren des Straßennetzes, wie ganze Fahrspuren in einzelne
Segmente gleicher Länge teilen,
- b) Reduzieren des Netzes auf gleich entfernte Kanten und Knoten, die den Graphen GN darstellen,
- c) Erzeugen von Quell-/Senkenknoten (src, snk) für die Grenze des Netzwerks.
[0054] Der Schritt b) reduziert die Komplexität des Simulationsmodells wie folgt:
b1) Reduziere jede Kreuzung ins zu einem einzelnen Knoten,
b2) Generieren der Beziehung RV aus der Schnittpunkttopologie mit einer (Offline-) Verkehrsverteilungsstatistik zur
Schätzung der Gewichte, und
b3) Zusammenführen benachbarter eingehender bzw. ausgehender Fahrspuren zu einer einzelnen
eingehenden bzw. ausgehenden Kante.
[0055] Die Fahrspuraufteilung in Schritt b1) ermöglicht es jeder Kante sowohl eine Basis-Kapazität,
aber auch die aktuelle Verkehrsflusszahl für ein einheitliches Zeitintervall
sd zuzuweisen.
[0056] Die einheitliche Segmentierung ist diesen Ansatz von zentraler Bedeutung, da sie
die Weitergabe des Datenverkehrs durch das Netzwerk in der dynamischen Komponente
erheblich vereinfacht.
[0057] Fig. 1 zeigt dabei eine Darstellung von zwei Schnittpunkten in einem mikroskopischen
Simulationswerkzeug SUMO und Fig. 2 ein mesoskopisches Verkehrsfluss-Modell der Fig.
1.
2.2. Dynamischer Anteil
[0058] Die Wirkung der dynamischen Komponente des Modells ist in
Fig. 3 dargestellt. Sie erweitert die statische Komponente um zeitliche Informationen
bezogen auf einzelne Simulationsschritte, auch Zeitpunkte genannt.
[0059] Das Beispiel zeigt für drei Berechnungsschritte für die Zeitpunkte
T1,
T2 und
T3.
[0060] Datenelemente mit der durchschnittlichen Geschwindigkeit
o = 3 werden im Knoten
src1 generiert und über den Knoten
lnk1 zum Knoten
lnk2 weitergegeben, wo sie aufgrund einer Engpasskapazität von 0 bis zur Belastbarkeitsgrenze
von 10 gesammelt werden.
[0061] Die Weitergabe erfolgt über Kanten
src1-
lnk1_
l1 beziehungsweise
lnk1-
lnk2_
l1, für welche jeweilige maximale Kapazitäten definiert sind, die innerhalb eines rautenförmigen
Symbols angegeben sind.
[0062] Ferner ist für jeden Knoten ein durchschnittlicher Durchsatz definiert, welcher jeweils
innerhalb eines kreisförmigen Symbols angegeben ist.
[0063] Außerdem ist für jede Kante eine Anzahl an Fahrzeugen in einem Verkehrsfluss zu einem
Zeitpunkt t festgelegt, welcher jeweils innerhalb eines rechteckförmigen Felds angegeben
ist. Mehrere Felder bilden eine Liste.
[0064] Die zeitliche Information besteht aus zwei Arten von Datenelementen, die sich in
jedem Simulationsschritt ändern können. Zum einen sind die Anzahl der Fahrzeuge (
NrV), das heißt die Anzahl der Fahrzeuge an einer bestimmten Kante, und zum anderen sind
die Signalphasenzustände (engl. "signal phase states",
SPS), das heißt der TL-Status bestimmter eingehender Fahrspuren auf (Kreuzungs-) Knoten
zu einem bestimmten Zeitpunkt relevant.
Zeitmodell
[0065] Das zugrunde liegende Zeitmodell ist intervallbasiert und erfasst die Intervalllänge
sd (Dauer) eines einzelnen Simulationsschritts, die durch die Endzeit
ti des Simulationsschritts begrenzt ist.
[0066] Das verwendete Datenmodell ist jedoch punktbasiert und erfasst nur Zeitpunkte
ti wodurch ausgedrückt wird, dass ein Datenelement zwischen
ti-1 und
ti gültig ist, wobei die Differenzdauer
sd =
ti -
ti-1 die Dauer ist.
[0067] Die Verwendung eines punktbasierten Modells führt nicht zu einem Informationsverlust,
da eine einheitliche Segmentierung der Zeitachse angewandt wird, die nach Zeitpunkten
erfasst werden kann.
[0068] Um die vollständige Verkehrssituation zu erfassen wird eine Zeitleiste

eingeführt, welche ein geschlossenes Intervall der Länge
l ist, also sich auf eine Simulationslänge
tl bezieht.
[0069] Ein Simulationsfluss ist ein Paar
D = (
T,f) der Zeitleiste
T und einer Funktion
f:
T → 2°, welches zu jedem Element (Zeitpunkt)
t ∈
T eine Menge
f(
t) ⊆
0 von Datenpositionen zuweist, wobei
0 die Menge von Tupeln der Form 〈
o,
x〉 ist, und

und
x ∈
E ist.
[0070] Datenpositionen sind eine mögliche Abstraktionsform, wobei die Fahrzeuganzahl
NrV oder Signalphasen (ausgedrückt durch Zahlen) über die Dauer
sd aggregiert werden.
[0071] Ein erster Simulationsfluss
DNrV = (
T,f1) von Fahrzeuganzahlen weist für jede Funktion
f1(
i) Kantendatenpositionen auf. Auf diesem Weg wird die Fahrzeuganzahl
NrV mit Kanten verbunden.
[0072] Ein zweiter Simulationsfluss
DSPS = (
T,
f2) von Signalphasenzuständen weist für jede Funktion
f2(
i) dementsprechend Kantendatenpositionen auf, wobei im Gegensatz zum ersten Simulationsfluss
die beobachteten Werte o binäre Kodierungen der Signalzustände sind.
[0073] So entspricht "
rot" dem Wert 0 und
"grün" dem Wert 1.
[0074] Die Funktion
f2(
i) weist Datenpositionen (o,e) auf, wobei eine eingehende Kante e = (
v',v) zu einem Kreuzungsknoten
v weist. Daher werden SPS Daten nur zu eingehenden Kanten einer Kreuzung zugewiesen,
was die Absicht von Signalphasenplänen erfasst.
[0075] Zur Vereinfachung kann für die Bezeichnung der Funktion
fi die Notation
x@
t verwendet werden, falls
x ∈
fi(
t), wie beispielsweise 〈
o1,
e1〉@t
1 und 〈
o2,
e2〉@
t2.
Berechnung des Verkehrsflusses
[0076] Die Berechnung des Verkehrsflusses (TF) dient dazu, Dynamik in das Modell zu bringen,
indem der Fahrzeugfluss erfasst wird. Es werden NrV-Datenpositionen basierend auf
den genannten Knoten generiert und zum nächsten Zeitpunkt Kanten im Netzwerk zugewiesen.
[0077] Abflussknoten spielen eine besondere Rolle und akkumulieren die eingehenden Datenelemente,
generieren jedoch keine Datenelemente selbst.
[0078] Zu jedem Zeitpunkt
ti wird eine TF-Berechnung durchgeführt und für jede Kante
ej ∈
E im Netzwerk werden die neuen Datenpositionen für den erster Simulationsfluss
DNrV hinzugefügt.
[0079] Es basiert entweder auf den eingehenden Kanten (für Kreuzungs- und Verbindungsknoten)
oder auf einer vordefinierten Generierungsfunktion (für Quellknoten).
[0080] Das Ergebnis der Berechnung jedes Knotens sind neue Datenpositionen, die an die ausgehenden
Kanten weitergegeben werden und deren Status aktualisieren.
[0081] Der Zustand einer Kante wird durch die Menge von Datenpositionen erfasst, die zu
einem bestimmten Zeitpunkt
ti an sie angehängt sind.
[0082] In der Fig. 2 ist das Verkehrsnetz
RN der Fig. 1 als gerichteter Graph gezeigt, wobei Kreuzungen jun1, jun2, sowie Verkehrs-Eingänge
i1, i2, i3, i4 und Verkehrs-Ausgänge o1, o4, o5 abgebildet sind.
[0083] Die Elemente sind über gerichtete Kanten gneE0, gneE0i, gneE1, gneE1i, gneE11, gneE11_b,
gneE12i, gneE12i_b, gneE13, gneE14, gneE14i, gneE15i verbunden.
[0084] Fig. 3 zeigt drei Berechnungsschritte für drei Zeitpunkte, die durch die gepunkteten Pfeile
dargestellt werden. Am einfachsten ist die Berechnung von Verbindungsknoten, da eine
eingehende NrV-Datenposition eine einzelne ausgehende Datenposition generiert.
[0085] Kreuzungsknoten sind schwieriger zu handhaben, da eingehende Datenpositionen entsprechend
den ausgehenden Kanten in mehr ausgehende Datenpositionen aufgeteilt werden müssen.
Quellknoten
[0086] Ein Quellknoten
v:src erzeugt für jeden Zeitpunkt
NrV-Datenpositionen gemäß folgender Funktion:

wobei e = (
v,v') eine ausgehende Kante ist, und eine Werterzeugungsfunktion
fD(
tj+1) eine stochastische Funktion ist, welche basierend auf einem vordefinierten Verteilungsmodelles
einen neuen Wert für jeden Zeitpunkt
tj+1 erzeugt.
[0087] Der Zweck der Werterzeugungsfunktion
fD(
tj+1) ist die Replikation der Anforderungsmodellierungsfunktionalität von Verkehrssimulationen
mit beispielsweise konstanter Erzeugung der gleichen NrV-Datenposition für jeden Zeitpunkt
ti.
Verbindungsknoten
[0088] Ein Verbindungsknoten
v:lnk leitet, ausgehend von einer Quellkante
e1 = (
v1,
v) zu einer Zielkante
e2 = (
v,
v2), eine
NrV-Datenposition für jeden Simulationsschritt wie folgt weiter:

[0089] Wobei die Funktion
flnk'(
e1,
tj) den Wert o in 〈
o,e〉@
t zurückgibt, welcher aus dem ersten Simulationsfluss
DNrV entnommen wurde.
[0090] Für Verbindungsknoten sind nur eingehende und ausgehende Kanten zulässig, ansonsten
würde die Segmentierung eine Kreuzungsknoten erzeugen.
Kreuzungsknoten
[0091] Ein Kreuzungsknoten
v:ins aggregiert verschiedene
NrV-Datenpositionen von eingehenden Kanten und verteilt diese zu ausgehenden Kanten gemäß
vordefinierter Verhältnisse der Beziehung
RV.
[0092] Für jede ausgehende Kante e = (
v,v') des Kreuzungsknotens
v kann angegeben werden:

mit

wobei
wv,e durch
RV(
v,e,wv,e) gegeben ist.
[0093] Die Funktion
fins' wird angewandt, obwohl die Tupel 〈
oi,
ei〉 nicht zusammengefasst und multipliziert werden, sondern lediglich ihre Werte
oi.
[0094] Die Funktion
fSPS gibt das Signalzustands-Tupel mit
o'i = 0 oder
o'i = 1 für die Kante
ei zum Zeitpunkt
tj zurück und ignoriert somit eingehende Fahrspuren, die sich im Zustand 0 befinden.
[0095] Die Beziehung
RV ist wichtig, da sie die "Gewichte" für ausgehenden Werte definiert, die summiert
werden. Es könnte auch zum temporären Schließen von Fahrspuren verwendet werden, indem
die jeweiligen Gewichte auf 0 gesetzt werden.
Senkenknoten/Zielknoten
[0096] Ein Senkenknoten
v:snk generiert keine eigenen Werte, sondern sammelt zu jedem Zeitpunkt alle NrV-Datenposition
eingehender Kanten. Ziel ist es, die Anzahl der Fahrzeuge zu erfassen, die das Netzwerk
verlassen haben.
[0097] Der Zielknoten erzeugt folgende Ergebnistupel:

mit

[0098] Zielknoten spielen eine zentrale Rolle zur Berechnung von Modell-Qualitätsindikatoren,
da der Nutzen eines verbesserten Signalplans unter Verwendung der akkumulierten Zielknoten
bestimmt werden kann.
Erzeugung der Signalphasen
[0099] Ströme von Signalphasenzuständen (SPS) sind TF-Strömen ähnlich, berücksichtigen jedoch
nur SPS-Datenelemente, das heißt von

[0100] Signalphasenzustände, kurz Signalzustände, werden für alle Ampeln in Signalphasenplänen
definiert, wobei jeder Kreuzung ein einzelner Plan zugewiesen ist, der alle Signalgruppen
und Fahrspuren der Kreuzung abdeckt.
[0101] Fig. 4 zeigt ein Beispiel für einen Signalisierungsplan, wie dieser im Simulationswerkzeug
SUMO verwendet wird.
[0102] Ein Plan bestimmt die Länge eines vollständigen Zyklus, welcher die Summe der Dauern
ist, in diesem Beispiel 60.
[0103] Jeder Signalgruppenzustand wird in einem Zustand angezeigt, in dem "r" bzw. "G" steht
für rote bzw. grüne Phasen für die Dauer.
[0104] Es ist zu beachten, dass bei dieser Codierung jede Position einem Index entspricht
und den Zustand einer Signalgruppe zuweist, das heißt die erste Position definiert
den Zustand der Signalgruppe für Fahrspur eins.
[0105] Der Plan zeigt auch implizite Einschränkungen, wie die Gruppen an den Positionen
1-4 und 5-12 nicht gleichzeitig grün sein sollten.
[0106] Daraus kann geschlossen werden, dass ein formaler Signalplan die folgenden Komponenten
enthalten muss, wie eine feste Zykluslänge und eine Zeitleiste, die die Phasenzeit
für jede Signalgruppe abdeckt, wobei die rot/grün-Zustände abwechselnde Zeitschlitze
und eine Liste mit Paaren von Verweigerungsbeschränkungen (Fahrspurwechsel) aufweisen.
[0107] Formell kann ein Signalplan durch eine
n×
m Matrix
S repräsentiert werden, wobei die Spalten
n Zeitpunkte und die Zeilen m Fahrspuren sind. Zustände
si,j können entweder 0 (rote Phase) oder 1 (grüne Phase) sein.
[0108] Fig. 5 zeigt eine Matrix
Sv einer Kreuzung
v mit
m eingehenden Fahrspuren über eine Simulationslänge
n, wobei
t1..,
tn Zeitpunkte und
l1...
lm Fahrspuren sind.
[0109] Der zur Kreuzung
v dazugehörige Signalplanmatrix
Sv kann auch durch eine Funktion dargestellt werden, welche die Kreuzung
v mit irgendeiner eingehenden Kante
e = (
v',v) mit einem Signalzustand zu einem spezifischen Zeitpunkt verknüpft:

wobei die Funktion
fSPS(
Sv,t,e) den Zustand (0 oder 1) von der Matrix
Sv entnimmt, abhängig von der Position, das heißt der Lage des Zeitpunkts
t und der Kante
e in der Matrix
Sv.
2.3. Rahmenaxiom und Reihenfolge der Auswertung
[0110] Die obigen Definitionen decken die Fälle ab, in denen "freier" Fluss von Fahrzeugen
vorliegt.
[0111] Sie decken jedoch nicht den Fall ab, in dem aufgrund einer roten Signalphase oder
einer in
lV definierten geringen Engpasskapazität keine oder weniger Bewegungen (in
NrV-Datenposition) vorliegen.
[0112] Wenn dieser Fall nicht berücksichtigt wird, würden im nächsten Zeitschritt ein Verlust
an
NrV-Datenpositionen auftreten. Daher müssen auch
NrV-Datenpositionen für Nichtbewegungen generiert werden.
[0113] Zu diesem Zweck werden zwei Funktionen
ffr1 und
ffr2 eingeführt, welche nicht verschobene NrV-Datenpositionen beibehalten.
[0114] Die Funktion
ffr1 ist für einen ausgehenden Knoten
e(
v',
v) einer Kreuzung
v und einer NrV-Datenposition 〈
oN,e〉@
tk wie folgt definiert:

[0115] Im ersten Fall ist die Signalphase grün, so wird die maximale
NrV-Datenpositionen, die sich bewegen könnte, das heißt die Engpasskapazität, von der
NrV-Datenposition bei
tk subtrahiert, um die verbleibende
NrV-Datenposition bei
tk+1 zu berechnen.
[0116] Im zweiten Fall ist die Signalphase rot, daher liegt keine Bewegung vor und die vorhandene
NrV-Datenposition an der Kante
e bei
tk ist immer noch an der Kante e bei
tk.
[0117] Die Funktion
ffr2 ist geht in dieselbe Richtung für einen ausgehenden Knoten
e = (
v',v) mit einem Kreuzungsknoten
v und einer
NrV-Datenposition 〈
oN,e〉@
tk definiert:

[0118] Die oben genannten Funktionen ähneln Rahmenaxiomen in der logikbasierten KI-Planung:
Sie decken die Fälle ab, in denen die Engpasskapazität von
lV den maximalen Fluss begrenzt.
[0119] Wenn der tatsächliche Durchfluss kleiner ist, da die Aufwärtsströmungskanten zum
nächsten Zeitpunkt bereits gesättigt sind, gehen
NrV-Datenposition verloren.
[0120] Dieser Verlust ist ein Effekt der Abstraktion in unserem mesoskopischen Modell, bei
dem eine Sättigung nicht auf Abwärtskanten zurückfließt.
[0121] Das Hinzufügen des letzteren, das in mikroskopischen Modellen berücksichtig wird
kann, ist insbesondere bei zyklischen Verkehrsströmen eine Herausforderung.
[0122] Eine Anwendung der Funktionen
fsrc, flnk, fins, ffr1 und
ffr2 über alle Knoten in
V und Zeitpunkte in
T, welche durch die Simulationslänge
tl begrenzt sind, führt zu einem Datenstrom:

[0123] Dementsprechend führt die Funktion
fSPS über alle Knoten in
V und Zeitpunkte bis zu
tl zu einem Datenstrom:

[0124] Die einzige Anforderung in der Bewertungsreihenfolge der obigen Funktionen ist die
zeitliche Reihenfolge, in der alle Funktionen des Zeitpunkts
ti ausgewertet werden, bevor die Funktionen von
ti+1 beginnen.
3. ASP-basierte Problemlösung und Optimierung
[0125] Das mesoskopische Flussmodell beschreibt die Qualität eines Netzwerks mit einem festen
Signalphasenplan (SPP), bei dem die Qualität über eine vordefinierte Anzahl von Zeitschritten
berechnet wird, indem die Ziel-/Senkenknoten zum letzten Zeitpunkt zusammengefasst
werden.
[0126] Dieses abstrakte Flussmodell enthält jedoch keine Strategie zur Verbesserung solcher
Pläne, was zu unserem Hauptziel führen sollte, den Verkehrsfluss durch Anpassung der
SPPs zu optimieren.
3.1. Allgemeine Strategien zur Problemlösung
[0127] Ein vollständiger Satz zugewiesener Zustände in der Matrix
Sv für eine Kreuzung
v wird als "SPP-Konfiguration" bezeichnet, wobei alle Zustände entweder 0 für Rot oder
1 für Grün sind. Lösungsstrategien zielen darauf ab, "gute" Kandidaten für SPP-Konfigurationen
basierend auf der Matrix
Sv unter den Bedingungen der Beziehungen
RC aus dem statischen Anteil zu finden.
S1: SPP Kürzung/Verlängerung
[0128] In der Strategie S1 wird davon ausgegangen, dass bereits vorhandene, von Benutzer
erstellte SPPs vorhanden sind, jedoch aufgrund von Änderungen in den Verkehrsmustern
zeitliche Anpassungen erforderlich sind.
[0129] Das generischste SPP ist eine gleichmäßige Verteilung der Signalphasen über die eingehenden
Fahrspuren.
[0130] Ausgehend von einer gefüllten Matrix
Sv, einem Basis-SPP, welches den aktuellen Plan für den Kreuzung v erfasst, werden die
folgenden Schritte ausgeführt, unter der Annahme, dass
c = [
cn,cp] ein vorgegebener Einstell-Parameter ist:
S1.1) Entnehmen aller verbundener grünen Signalphasen GPlj = {gp1,...,gpk} für jede Fahrspur lj der Kreuzung v aus der Matrix Sv,
S1.2) Schätze aus dem Einstell-Parameter c zwei Werte

und

für jede Phase gpi, beginnend mit dem Wert

und endend mit dem Wert

wobei ein negativer Wert Kürzung und ein positiver Wert Verlängerung bedeutet,
S1.3) Prüfe, ob die Schätzung die Bedingungen der Beziehungen RC erfüllt, falls ja, dann wende die Werte

und

auf die Phase gpi an.
[0131] Es ist zu beachten, dass die Strategie S1 einen vernünftigen Bereich für das Intervall
von c benötigt, da sie die Anzahl an Konfigurationen doppelt betrifft, nämlich zu
Beginn und am Ende der Phase
gpi.
S2: Vorlagen mit SPP Kürzung/Erweiterung
[0132] Die Strategie S1 funktioniert nicht gut, wenn der zugrunde liegende SPP ineffizient
ist. Eine Möglichkeit, dies zu überwinden, besteht darin, die Strategie S2 mit SPP-Vorlagen
unterschiedlicher Struktur zu erweitern.
[0133] Ausgehend von einer vorgegebenen Vorlagen-Menge
ST = {
st1,...,
stk} wird eine Vorlage
sti aus der Menge
ST ausgewählt und die Länge der Vorlage
sti entsprechend der Simulationslänge
l angepasst. Anschließend wird gemäß der Strategie S1 fortgefahren.
3.2. Problemgröße und Optimierung
[0134] Die Problemgröße
size(
S) einer Strategie
S ist die Anzahl aller möglichen Konfigurationskandidaten, die von
S erzeugt werden.
[0135] Die Parameter sind die SPP-Matrix
M =
n ×
m, der Zustandsraum von |{0,1}| = 2 und weitere, je nach Strategie.
[0136] Für die genannten Strategien gilt:
- size(PS1) = 2(2·|c|·m), wobei c = [cn,cp] der Einstell-Parameter für Signalphasen ist, beispielsweise c = [-1,1] mit |c| = 3 und zwei Fahrspuren zu 2(2·3·2) = 4,096 Kandidaten führt,
- size(PS2) = lst · 2(2·|c|·m) wobei |c| = 3 und lst die Anzahl an Vorlagen ist, ergeben sich 8,192 Kandidaten.
[0137] In Kombination mit der zuvor ausgeführten ASP Lösung lässt die jeweils gewählte Strategie
daher einen Signalphasenplan entscheidend schneller und mit deutlich weniger erforderlichem
Speicher in der Rechenvorrichtung bei der Berechnung bestimmen, indem die möglichen
Signal-Kombinationen signifikant reduziert werden können.
[0138] Dadurch kann die interne Arbeitsweise der Rechenvorrichtung erheblich verbessert
werden. Die Berechnung kann insgesamt wesentlich effizienter und schneller durchgeführt
werden.
[0139] In der Gesamtstruktur des Graphen durch Knoten und Kanten, dessen Eigenschaften und
Zuständen zum Konfigurieren des Signalphasenplans verwendet werden, stellt ein Knoten
eine Signalisierungs-Funktion mit verschiedenen Zuständen im Verkehrsnetz dar.
[0140] Eine Kante bildet einen aktuellen, aber auch einen virtuellen, durch eine Simulation
gebildeten Verkehrszustand ab. Daher repräsentieren Knoten und Kanten konkrete Realisierungen
beziehungsweise Zustände im Verkehrsnetz.
[0141] Eine entsprechende Simulation kann von einer Rechenvorrichtung mit einem Speicher
durchgeführt werden, wobei die Anzahl an Simulationsläufen für jeweilige Konfigurationen
beziehungsweise Signalphasenpläne so gering als möglich gehalten werden soll. Dies
wird durch die Anwendung von ASP bei der Berechnung der optimalen Lösung erreicht.
[0142] Ein optimaler Signalphasenplan kann für eine Verbesserung des Verkehrsflusses, kürzere
Verkehrszeiten, geringere Stauzeiten, eine Reduktion des Treibstoffverbrauchs und
umweltschädlicher Emissionen sorgen.
Optimierungen
[0143] Selbst mit der effizientesten Strategie S2 ist es nicht möglich, alle Konfigurationskandidaten
aufzulisten, um die optimale Lösung für ein bestimmtes mesoskopisches Modell zu finden.
[0144] Qualitätsindikatoren können daher verwendet werden, um zum einen die Suche zu leiten,
um Lösungen mit nicht-zwingenden (engl. "weak") Einschränkungen (engl. "constraints")
schneller zu finden, und zum anderen den Suchraum mithilfe zwingender (engl. "hard")
Einschränkungen einzuschränken.
[0145] Wie zuvor erwähnt, behalten die Ziele im mesoskopischen Verkehrsfluss-Modell die
NrV-Datenpositionen für alle Zeitpunkte bei. Ein Qualitätsindikator
QNrV für den Verkehrsfluss ist somit definiert als:

[0146] Ein weiterer Indikator, der aus der SPP-Matrix
M =
n ×
m erhalten wird, ist die Anzahl der Zeitpunkte mit dem SP-Status 1, das heißt grün.
[0147] Dieser misst die Länge aller grünen SPs, deren Maximierung beispielsweise den Verkehrsfluss
erhöhen kann.
[0148] Der Qualitätsindikator
QSPS für eine Matrix
S ist definiert als:

[0149] Die beiden Indikatoren können mithilfe von Optimierungsanweisungen und starken Einschränkungen
(für den Cut-Off) wie folgt kombiniert werden:
- a. QNrV maximieren, dann QSPS maximieren,
- b. QSPS maximieren, dann QNrV maximieren,
- c. Maximieren von QNrV und Abschneiden von QSPS, und
- d. Maximieren von QSPS und Abschneiden von QNrV.
[0150] In den Fällen a. und b. können Gewichte verwendet werden, um einen der Indikatoren
zu priorisieren (nicht-zwingende Einschränkung), und in den Fällen c. und d. muss
ein angemessener Grenzwert für die zwingenden Einschränkungen geschätzt werden damit
nicht zu viele Lösungskandidaten a-priori wegfallen.
3.3. ASP Codierung von Strategie S2
[0151] Die Kodierung ist in zwei Unter-Programme unterteilt, nämlich eine Datenkodierung
PI und eine Problemkodierung
PG, welches die Kodierung für das Schätzen und Prüfen enthält.
Datenkodierung (PI)
[0152] Das Programm
PI muss für jedes Szenario einer mikroskopischen Verkehrssimulation angepasst werden
und umfasst die statischen Komponenten des Flussmodells, die Materialisierung aller
generierten NrV-Datenpositionen im Zeitverlauf und die Materialisierung der Matrix
M, das den anfänglichen SPP über die Zeit hält.
[0153] Die ASP-Codierung sieht eine Abbildung des (Verkehrs-) Netzwerkgraphen
GN=(
V,E,lv,lE,RV,RC) vor, wobei
V durch die Prädikate
node_src (für Quelle), Senke, Verbindung und Kreuzungsknoten dargestellt wird.
[0154] Dabei definiert das Prädikat
edge die Kanten von
E, und das Prädikat
link den Graphen basierend auf den Kanten, welche die Knoten verbinden.
[0155] Als Beispiel kann eine Kodierung für fünf Knoten
n1, ...,
n5 und vier Kanten, die linear verbunden sind:
node_src(n1). node_ins(n2). node_lnk(n3). node_snk(n4).
node_snk(n5). link(n1, n2, we). link(n2, n3, we).
link(n3, n3, we). link(n2, n5, we)
[0156] Die Beschriftungsfunktionen
lV und
lE werden vereinfacht so angegeben, dass die Flaschenhals- und Last-Kapazitäten gleichförmig
sind, beispielsweise
lV( )=16 und
le( ) = 10. Dies kann durch Konstanten in ASP ausgedrückt werden:
#const maxflow = 10
Und
#const maxcap = 16
[0157] Die Beziehung
RV beschreibt die Verkehrsverteilung der Kreuzungen in Verkehrsnetz, wozu das Prädikat
link_ratio(
n1,
n2,
r) verwendet wird, mit
n1 als Kreuzungsknoten und
n2 eine ausgehende Kante
e = (
n1,
n2) mit
n1 bildet, sowie r die Perzentile von Fahrzeugen, welche sich auf der Kante e entfernen.
[0158] Beispielsweise ist eine gleichmäßige Verteilung von ausgehenden Fahrspuren von
n2 definiert durch:
link_ratio(
n2,
n3, 50).
link_ratio(
n2,
n5, 50).
[0159] Die Beziehung
RC ist als
conflict_tl(J,X,Y) kodiert, wobei sie aussagt, dass zwei Kanten (J,X) und (J,Y) es nicht zulassen,
dass sie gleichzeitig grüne Phasen haben. Sollen beispielsweise (
n2,
n3) und (
n2,
n5) zueinander im Konflikt stehen, so lautet die Kodierung:
conflict_tl(n1, e2, n3).
conf lict_tl(J, X, Y) ← conflict_tl(J, X, Y).
[0160] Die zweite Regel wird verwendet um sicherzustellen, dass die Beziehung
RC symmetrisch ist.
[0161] Neben statischen Fakten wird im Programm
PI auch der zeitliche Horizont durch Zeit
time(0 ...
tl) definiert, wobei 0 ...
tl für alle Zeitpunkte zwischen 0 und der Simulationslänge
tl steht.
[0162] Zum Beispiel setzt
time(0 ... 15) die Simulationslänge auf 15.
[0163] Ein weiteres wichtiges zeitliches Prädikat ist
tl_plan_red(
X, Y, T1,
T2), welches alle roten Phasen bis zur Simulationslänge
tl materialisiert.
[0164] Das Tupel (
X,Y) ist eine eingehende Kante zu einer Kreuzung
Y, und (
T1,
T2) ist ein (maximales) Intervall roter Phasen.
[0165] In Beispiel können für den Schnittpunkt
n2 und seine eingehende Kante (
n1,
n2) rote Phasenintervalle der Länge 5 definiert werden durch:
tl_plan_red(n1,n2,1,5).tl_plan_red(n1,n2,11,15).
[0166] Dies impliziert, dass zwischen 6 und 10 eine grüne Signalphase vorliegt.
Problemkodierung (PG)
[0167] Das Programm
PG ist generisch und ändert sich nur, wenn Parameter angepasst oder eine neue Strategie
entwickelt werden müssen.
[0168] Im Weiteren wird der "Guess and Check" Problemlösungsansatz von ASP für SPP-Konfigurationen
nach der Strategie S1, sowie die Codierung des dynamischen Teils des mesoskopischen
Verkehrsfluss-Modells beschrieben.
[0169] Zunächst werden mit einer nicht deterministischen Regel alle möglichen SPP-Konfigurationen
erzeugt, welche gemäß der Strategie S1 die Intervalle c = [
cn,
cp] zum Kürzen/Verlängern einer roten Signalphase auf einer eingehenden Spur sind.
[0170] Das folgende Beispiel veranschaulicht dies für c = [-1,1], wobei eine eingehende
Spur als Tupel (
X,Y) angegeben wird:
{
change_red(
X, Y, -1 ... 1, -1... 1)} = 1 ←
tl_plan_red(
X,
Y,_,_)
[0171] Die Intervalle von c werden so verwendet, dass der Anfang mit
cn und das Ende mit
cp eines SP verkürzt/verlängert werden können.
[0172] Diese "Guess"-Regel ist eine ASP-spezifische Codierung für Nichtdeterminismus, welche
angibt, dass für eine Kante (X,Y), die durch den
tl_plan_red(
X,Y,_,_) gespeichert ist (beispielsweise (
n2,
n3) alle möglichen Kombinationen (
c1,
c2) von {-1,0,1} × {-1,0,1} generiert werden.
[0173] Da viele der oben generierten SPP-Konfigurationen ungültig sind, kann eine "Check"-Regel
eingeführt werden, die über die Beziehung
RC definierten zwingenden (Fahrspurwechsel-) Einschränkungen festlegt.
[0174] Eingehende Fahrspuren werden für Kreuzungen J als (
X,J) und (
Y,J) definiert, was zu der folgenden Einschränkung führt:
←
conflict_tl(J,X,Y),
time(
T)
, not tl-calc-red(
X,J,T),
not tl-calc-red(
Y,J,T)
[0175] In den vorher genannten Einschränkungen wird das Prädikat
tl_calc_red(
X,J,T) zum Materialisieren des Effekts von
change_red auf den SPP wie folgt verwendet:
tl_calc_red(X,J,T) ← tl-plan-red(X,J,T1,T2), time(T),
change_red(X,J, V1,V2),T ≥ (T1 + V1), T ≤ (T2 + V2)
[0176] Die weiteren Regeln zur Berechnung des Verkehrsflusses lauten nun wie folgt, wobei
der Term
on(
x,y) ausdrückt, dass das Datenelement x am Knoten y liegt.
[0177] Das Prädikat
move(
X,Z,D,T) wird dazu verwendet, um die nächste Verschiebung von Datenelementen unter Berücksichtigung
des SPP zu generieren, wobei
X ein Datenelement,
Z ein neu zugewiesener Knoten,
D die Flussrichtung und
T der aktuelle Zeitpunkt ist.
move(X,Z,D,T) ← pos(on(X,Z),D,T-1),link(Y,Z,D),
not tl_calc_red(Y,Z,T),time(T)
[0178] Das Prädikat
pos(
on(X
,Y)
,D,T) stellt jenen Zustand dar, nachdem das Datenelement
D bewegt wurde oder auf dem Ort verbleibt, wobei
on(
X,Y) das Datenelement mit dem neuen oder demselben Ort verknüpft:
pos (on(X, Y), D, T) ← move(X, Y, D, T), T ≤ steps
pos(on(X,Z),D,T) ← pos(on(X,Z),D, T - 1), not moved(X,D, T),T ≤ steps
[0179] Das Prädikat
load(
on(
X,Y),
V,T) kodiert die Verkehrsfluss-Funktionen
flnk, fins und
ffr1.
[0180] Die definierenden Funktionen sind extern berechnete Funktionen, wie sie beispielsweise
von fortgeschrittenen ASP-Solvern wie Clingo bereitgestellt werden. Solche Funktionen,
die einen @-Präfix aufweisen, erlauben die Verwendung von Phython-Programmcode zur
Nutzung noch komplexerer Funktionen des Verkehrsfluss-Modells.
[0181] Jedes Fluss-Modell kann durch eine einfache Regel mit
load am Kopf der Regel dargestellt werden, wobei die Funktion
@fIns die Funktion
fins implementiert.
load(on(X, Z), @fIns(V, Y, Z, T, maxflow, maxcap), T) ← moved(X,D, T),
load(on(X,Y),V,T - 1), link(Y,Z,D), pos(on(X,Y), D, T - 1),
link_ratio(Y,Z,D,_), T ≤ steps,
Optimierungen
[0182] Optimierungen basierend auf den Indikatoren
QNrV und
QSPS können direkt in ASP mithilfe von Aggregations-, Maximierungsanweisungen und Grenzwerten
über zwingende Einschränkungen realisiert werden.
[0183] Die Prädikate
sum_traffic und
sum_tl_red werden für die Aggregation wie folgt verwendet:
sum_traffic(
M) ←
M = #sum{
V,X:load_end(
X, V, T),
T == steps}
[0184] Die Aggregationsregel für die
sum_tl_red ist ähnlich. Die Maximierung und der Grenzwert für die obigen Aggregationen sind
wie folgt definiert:
#maximize M: sum_traffic(M)
← sum_tl_red(M), M ≥ threshold_red
[0185] Die erste Anweisung bewirkt eine geordnete Aufzählung der Antwortsätze durch Erhöhen
des Werts von M, während die harte Einschränkung alle Antwortsätze fallen lässt, bei
denen M unter dem Schwellenwert
threshold_red liegt.
[0186] Die Regeln zur Maximierung der
sum_tl_red und zur Einschränkung des
sum_traffic sind sehr ähnlich.