Lkw-Routing mit benutzerdefinierten Routenwahlfunktionen

Mai 2023 – Technischer Hinweis #80

Dimitris Triantafyllos

Senior Product Specialist

Hintergrund

Verkehrsstaus sind nach wie vor einer der größten Problembereiche im Logistikmanagement. Für Logistikexperten verursachen stauungsbedingte Verspätungen zusätzliche Betriebskosten (übermäßiger Kraftstoffverbrauch, zusätzliche Arbeitsstunden usw.), eine geringere Zuverlässigkeit der Fahrzeiten, Unzufriedenheit der Kunden, einen größeren ökologischen Fußabdruck und eine geringere Sicherheit für Fahrer und Fracht.

Eine effiziente Planung der Routen von Nutzfahrzeugen kann dazu beitragen, die Auswirkungen von Staus auf die Lieferzeiten zu verringern. Logistikunternehmen stellen ihren Fahrern häufig Flottenleitsysteme zur Verfügung, die ihnen helfen, die beste Entscheidung bei der Routenwahl zu treffen. Sie können dieses Lkw-Verhalten in der Mobilitätsmodellierungssoftware Aimsun Next modellieren. Wir bieten Ihnen die Möglichkeit, eine benutzerdefinierte Routenwahlfunktion zu kodieren, die die Wahrscheinlichkeit der Wahl jeder der verfügbaren Routen liefert: diejenigen, die auf der Grundlage der Kosten während des/der vorhergehenden Intervalls/Intervalle berechnet wurden, diejenigen, die aus einer Eingabedatei gelesen wurden, z. B. mit einer DUE-Zuweisung (Dynamic User Equilibrium), oder sogar die im Aimsun Next-Dokument vordefinierten OD-Routen.

Beispiel

Ein Lkw-Transportunternehmen, das Dienstleistungen für den Transport von Spezialgütern anbietet, hat beschlossen, seine Lkw-Flotte von einem Basis-Navigations-System (Base NS), das nur eine feste OD-Route vorschlägt, auf ein fortschrittliches Navigations-System (Advanced NS) umzurüsten, das die Route mit den aktuell niedrigsten Kosten aus einer Auswahl möglicher Routen vorschlägt (vordefiniert in Aimsun Next).

Die Verkehrsnachfrage besteht aus 2 OD-Matrizen (Pkw, Lkw), die um 08:00 Uhr morgens beginnen und eine Dauer von 2 Stunden haben. Bezüglich der dynamischen Verkehrszuweisung (DTA) von Autos und Lastwagen:

  • Für den Fahrzeugtyp Pkw: In beiden Szenarien (Basis-NS und fortgeschrittenes NS) kann Car entweder die Wege aus der APA-Datei des dynamischen Benutzergleichgewichts (Wahrscheinlichkeit 70 %) oder aus der Berechnung der stochastischen Routenwahl (SRC) (Wahrscheinlichkeit 30 %) verwenden. Für weitere Einzelheiten siehe Dynamische Verkehrszuweisung – Aimsun Next Benutzerhandbuch.
  • Für den Fahrzeugtyp Lkw: Im Basis-NS-Szenario folgen schwere Fahrzeuge immer einer bestimmten vordefinierten OD-Route (Haupt-OD-Route), während im erweiterten NS-Szenario schwere Fahrzeuge unter einer Reihe von OD-Routen wählen können, indem sie eine benutzerdefinierte Routenwahlfunktion in der dynamischen Verkehrszuweisung anwenden. In diesem Fall vergleicht die Funktion die für jede der verfügbaren OD-Routen berechneten Fahrtkosten und weist die Lkw der Route mit den niedrigsten in den letzten 5 Minuten geschätzten Kosten zu. Costs for every route will be updated every route choice interval (5-min).

Im Falle eines unerwarteten Ereignisses wird sich die Lieferung der Waren mit der Base NS erheblich verzögern. Um 08:15 Uhr ereignet sich ein Zwischenfall mit einer Dauer von 60 Minuten auf der Strecke, die die Lkw befahren sollen. Bei dem Vorfall handelt es sich um eine Verkehrsmanagementstrategie > Section Incident, bei der 2 von 2 Fahrspuren der Autobahn gesperrt sind.

In diesem Beispiel konzentrieren wir uns auf eine einzige spezifische Start-Ziel-Route.

Basis NS

Das derzeitige Navigationssystem bietet dem Lkw-Fahrer eine einzige festgelegte OD-Route vom Herkunftsschwerpunkt namens: Vic zum Ziel-Schwerpunkt namens: Ribes, unabhängig von den aktuellen Verkehrsbedingungen auf dieser Route. Somit werden 100 % der Lastkraftwagen diesen Weg nehmen.

Abbildung 1 zeigt die OD-Matrizen in der Verkehrsnachfrage (08:00-10:00 Uhr) für die beiden Fahrzeugtypen Pkw und Lkw und für die OD-Matrix für den Fahrzeugtyp Lkw den Prozentsatz von 100 %, der der Haupt-OD-Route in der Registerkarte „Pfadzuweisung“ für den Ursprung Vic und das Ziel Ribes zugewiesen wurde. Weitere Informationen über die Definition von Prozentsätzen für verschiedene OD-Routen finden Sie im OD-Matrizen – Aimsun Next Benutzerhandbuch.

Abbildung 1

Um die OD-Hauptroute 100% der Lkw zuzuweisen:

  • Öffnen Sie das dynamische Experiment
  • Gehen Sie zur Registerkarte Dynamische Verkehrszuweisung
  • Setzen Sie unter Feste Routen die Option Folgende OD-Routen für Lkw auf 100 %.

Abbildung 2 zeigt, wie die 100% der OD-Routen im DTA definiert werden.

Abbildung 2

Wie bereits erwähnt, kommt es auf der Autobahn zwischen 08:15 und 09:15 Uhr zu einem Zwischenfall, bei dem 2 von 2 Fahrspuren gesperrt werden. Abbildung 3 zeigt die Hauptroute der Lkw für dieses OD-Paar und den Ort des Zwischenfalls.

Abbildung 3

Das Ergebnis ist:

  • 30 % der Fahrzeuge (die den SRC-Strecken folgen) können auf alternative Strecken umdisponiert werden.
  • 100 % der Lkw werden auf der Autobahn festsitzen und auf die Räumung der Veranstaltung warten.

Im folgenden Video können Sie sich die Ausbreitung der Warteschlange pro Pfadart ansehen. Lkws, die mit oranger Farbe angezeigt werden, sind einer einzigen OD-Route zugeordnet.

Advanced NS

Im Szenario des erweiterten Navigationssystems wurden zwei neue alternative OD-Routen hinzugefügt. Diese neuen OD-Routen wurden entwickelt, um die zuverlässigsten, konformsten, kosteneffizientesten und zeitsparendsten Wege für Lkw zu berechnen, damit sie im Falle eines unerwarteten Ereignisses auf der Route ihr Ziel erreichen. Alle diese Routen wurden in Aimsun Next als OD-Routenobjekte definiert. Vor der Abfahrt des Lastwagens empfiehlt das Advanced NS Navigationssystem eine der vorgesehenen Routen, und zwar die Route mit den niedrigsten Kosten in den letzten 5 Minuten (wir verwenden die Standard-Kostenfunktion in allen Verbindungen). Abbildung 4 zeigt die beiden alternativen OD-Routen von Vic nach Ribes.

Abbildung 4

In diesem Beispiel haben wir eine neue Funktion „Routenwahl“ erstellt:

  • Die Lkw werden der OD-Route zugewiesen, die in den letzten 5 Minuten die geringsten Kosten unter den 3 festgelegten OD-Routen verursacht.
  • Für die Autos, die SRC folgen werden (30 % Wahrscheinlichkeit), wird eine Logit-Funktion für dieses Herkunfts- und Zielpaar angewendet.
  • Die Fahrzeuge, die den DUE-APA-Strecken folgen (Wahrscheinlichkeit 70 %), werden weiterhin den DUE-Strecken in der APA-Datei folgen, wobei die Prozentsätze in jedem Intervall der Streckenwahl variieren.

Um die 3 vorgesehenen OD-Routen zu aktivieren:

  1. Öffnen Sie die OD-Matrix Truck
  2. Gehen Sie zur Registerkarte Pfadzuweisung
  3. Filter nach Ursprung (Vic) und Ziel (Ribes)
  4. Weisen Sie den 3 OD-Routen, für die Sie die Kosten bewerten wollen, den Wert > 0 zu. Der Wert spielt keine Rolle.

Abbildung 5

So erstellen Sie eine neue Routenwahlfunktion:

    1. Gehe zu Ordner Bedarfsdaten im Menü Projekt.
    2. Erstellen Sie eine neue Funktion im Ordner Funktionen>Klicken Sie mit der rechten Maustaste auf > Neue >Funktion.
    3. Wählen Sie unter Funktionstyp die Option „Routenwahl“.

Abbildung 6

Nachfolgend finden Sie die in diesem Beispiel verwendete Funktion „Routenwahl“. Für weitere Informationen, wie Sie Ihre eigenen Routenwahlfunktionen definieren können, lesen Sie Kostenfunktionen – Aimsun Next Benutzerhandbuch.

				
					import math 
def rcf( context, manager, origin, destination, pathsRC, pathsOD, pathsAPA, indexPath ): 
 
    # get the vehicle type name from GKFunctionCostContext and for Trucks 
    if context.getVehicle().getName() == "Truck": 
        print("indexPath: "+str(indexPath)+", vehicle: "+str(context.getVehicle().getName()) + ", origin: "+ str(origin.getId()) +", destination: "+str(destination.getId())+ ", pathsRC: "+str(len(pathsRC))+", pathsOD: "+str(len(pathsOD))+", pathsAPA: "+str(len(pathsAPA)) ) 
        # exclude all RC and APA file routes. The range of indexPath is 0 to the sum of the length of pathRC, pathOD, and pathAPA lists.  
        if indexPath < len(pathsRC) or indexPath>=len(pathsRC)+len(pathsOD): 
            return 0 
        indexPathOD = indexPath-len(pathsRC) 
        # number of the OD Routes 
        numPaths = len(pathsOD) 
        # path to assess 
        pIP = pathsOD[indexPathOD] 
        # calculate cost of the current path 
        costIP = -pIP.getSPCurrentCost(manager, context.userClass.getDTAVehicleType())/3600.0 
        # iterate through all paths except the current path 
        for j in range(numPaths): 
            if j!=indexPathOD: 
                # calculate cost of the rest of the paths 
                costJ = -pathsOD[j].getSPCurrentCost(manager, context.userClass.getDTAVehicleType())/3600.0 
                # examine if the new cost is greater than the cost of the main path 
                if costJ < costIP: 
                    # if yes, there is another path with lower cost, so this path should get a probability of 0 
                    return 0 
        # there is no other path with lower cost, so this path must be chosen by all trucks (probability of 1) 
        return 1 
 
    # for the rest of the vehicle types (Car), apply a logit as in the base scenario 
    else: 
        # set the scale factor equal to the scale factor in the base scenario 
        scaleFactor = 4 
        numPaths = len(pathsRC) 
        prob=0 
        if indexPath<numPaths: 
            aux = 0 
            pIP = pathsRC[indexPath] 
            # calculate cost of the current path 
            costIP = -pIP.getSPCurrentCost(manager, context.userClass.getDTAVehicleType())/3600.0 
            # iterate through all paths except the current path 
            for j in range(numPaths): 
                if j!=indexPath: 
                    # Calculate cost of the rest of the paths 
                    costJ = -pathsRC[j].getSPCurrentCost(manager, context.userClass.getDTAVehicleType())/3600.0 
                    # Apply the logit function 
                    aux = aux + math.exp((costIP-costJ)*scaleFactor) 
            # Calculate probabilities 
            prob = 1.0/(1.0+aux) 
            return prob 
        else: 
            return 0 
				
			

So aktivieren Sie die Funktion „Routenwahl“ im DTA:

  1. Offenes dynamisches Experiment.
  2. Gehen Sie zur Registerkarte Dynamische Verkehrszuweisung.
  3. Wählen Sie unter Stochastic Route Choice Model die Option: Benutzerdefiniert.
  4. Wählen Sie die Registerkarte Parameter.
  5. Wählen Sie unter Verfügbare Funktionen die Funktion „Routenwahl“.

Beachten Sie, dass im Fenster Feste Routen der Prozentsatz „Following OD Routes“ für die Lkw auf 0 % gesetzt werden sollte, da sonst die Lkw mit diesem Prozentsatz dem in der OD-Matrix zugewiesenen Prozentsatz folgen (in diesem Beispiel: 1%-1%-1%).

Abbildung 7 zeigt, wie Sie die Verwendung der Routenwahlfunktion aktivieren.

Abbildung 7

Prüfen Sie, wie die Lkw im Falle eines Zwischenfalls auf der Autobahn auf die Route mit den geringsten Kosten unter den 3 verfügbaren OD-Routen verteilt werden.

Abbildung 8 zeigt, wie die Umleitung von Lkw auf alternative ausgewiesene OD-Routen die Länge der Warteschlangen erheblich reduzieren und gefährliche Verkehrsbedingungen im Netz verhindern kann.

Abbildung 8

Sobald die Simulation beendet ist, können Sie das Ergebnis der Pfadzuordnung auf der Registerkarte Replication >Path Assignment im Detail überprüfen.

  • Hast du eine Frage? Nimm Kontakt auf.

    Wir sind hier um zu helfen!

  • Hast du eine Frage? Nimm Kontakt auf.

    Wir sind hier um zu helfen!

TEILEN

Zitieren Aimsun Next

Aimsun Next 23

Aimsun (2023). Aimsun Next 23 User's Manual, Aimsun Next Version 23.0.0, Barcelona, Spanien. Zugriff am: July. 19, 2023. [Online].
Verfügbar: https://docs.aimsun.com/next/23.0.0/


Aimsun Next 20.0.5

Aimsun (2021). Aimsun Next 20.0.5 User's Manual, Aimsun Next Version 20.0.3, Barcelona, Spanien. Accessed on: May. 1, 2021. [In software].
Available: qthelp://aimsun.com.aimsun.20.0/doc/UsersManual/Intro.html

Aimsun Next 23

@manual {​​​​​​​​AimsunManual,

title = {​​​​​​​​Aimsun Next 23 User's Manual}​​​​​,
author = {​​​​​​​​Aimsun}​​​​​​​​,
edition = {​​​​​​​​​​​​​​​Aimsun Next 23.0.0}​​​​​​​​​​​​​​​,
address = {​​​​​​​​​​​​​​​Barcelona, Spain}​​​​​​​​​​​​​​​,
year = {​​​​​​​​​​​​​​​2023. [Online]}​​​​​​​​​​​​​​​,
month = {​​​​​​​​​​​​​​​Accessed on: Month, Day, Year}​​​​​​​​​​​​​​​,
url = {​​​​​​​​​​​​​​​https://docs.aimsun.com/next/23.0.0/}​​​​​​​​​​​​​​​,
}​​​​​​​​​​​​​​​


Aimsun Next 20.0.5

@manual {​​​​​​​​AimsunManual,

title = {​​​​​​​​Aimsun Next 20.0.5 User's Manual}​​​​​​​​,
author = {​​​​​​​​Aimsun}​​​​​​​​,
edition = {​​​​​​​​​​​​​​​Aimsun Next 20.0.5}​​​​​​​​​​​​​​​,
address = {​​​​​​​​​​​​​​​Barcelona, Spain}​​​​​​​​​​​​​​​,
year = {​​​​​​​​​​​​​​​2021. [In software]}​​​​​​​​​​​​​​​,
month = {​​​​​​​​​​​​​​​Accessed on: Month, Day, Year}​​​​​​​​​​​​​​​,
url = {​​​​​​​​​​​​​​​qthelp://aimsun.com.aimsun.20.0/doc/UsersManual/Intro.html}​​​​​​​​​​​​​​​,
}​​​​​​​​​​​​​​​

Aimsun Next 23

TY - COMP
T1 - Aimsun Next 23 User's Manual
A1 - Aimsun
ET - Aimsun Next Version 23.0.0
Y1 - 2023
Y2 - Accessed on: Month, Day, Year
CY - Barcelona, Spain
PB - Aimsun
UR - [In software]. Verfügbar: https://docs.aimsun.com/next/23.0.0/


Aimsun Next 20.0.5

TY - COMP
T1 - Aimsun Next 20.0.5 User's Manual
A1 - Aimsun
ET - Aimsun Next Version 20.0.5
Y1 - 2021
Y2 - Accessed on: Month, Day, Year
CY - Barcelona, Spanien
PB - Aimsun
UR - [In software]. Available: qthelp://aimsun.com.aimsun.20.0/doc/UsersManual/Intro.html