![]() |
SUMO - Simulation of Urban MObility
|
Computes the shortest path through a network using the Dijkstra algorithm. More...
#include <DijkstraRouter.h>


Data Structures | |
| class | EdgeInfo |
| class | EdgeInfoByEffortComparator |
Public Types | |
| typedef double(* | Operation) (const E *const, const V *const, double) |
Public Member Functions | |
| void | buildPathFrom (const EdgeInfo *rbegin, std::vector< const E *> &edges) |
| Builds the path from marked edges. More... | |
| virtual SUMOAbstractRouter< E, V > * | clone () |
| virtual bool | compute (const E *from, const E *to, const V *const vehicle, SUMOTime msTime, std::vector< const E *> &into) |
| Builds the route between the given edges using the minimum effort at the given time The definition of the effort depends on the wished routing scheme. More... | |
| DijkstraRouter (const std::vector< E *> &edges, bool unbuildIsWarning, Operation effortOperation, Operation ttOperation=nullptr) | |
| Constructor. More... | |
| void | endQuery (int visits) |
| const EdgeInfo & | getEdgeInfo (int index) const |
| double | getEffort (const E *const e, const V *const v, double t) const |
| double | getTravelTime (const E *const e, const V *const v, const double t, const double effort) const |
| void | init () |
| double | recomputeCosts (const std::vector< const E *> &edges, const V *const v, SUMOTime msTime) const |
| void | setBulkMode (const bool mode) |
| void | startQuery () |
| virtual | ~DijkstraRouter () |
| Destructor. More... | |
Protected Attributes | |
| bool | myBulkMode |
| whether we are currently operating several route queries in a bulk More... | |
| Operation | myOperation |
| The object's operation to perform. More... | |
Private Member Functions | |
| DijkstraRouter (const std::vector< EdgeInfo > &edgeInfos, bool unbuildIsWarning, Operation effortOperation, Operation ttOperation) | |
Private Attributes | |
| EdgeInfoByEffortComparator | myComparator |
| std::vector< EdgeInfo > | myEdgeInfos |
| The container of edge information. More... | |
| MsgHandler *const | myErrorMsgHandler |
| the handler for routing errors More... | |
| std::vector< EdgeInfo * > | myFound |
| list of visited Edges (for resetting) More... | |
| std::vector< EdgeInfo * > | myFrontierList |
| A container for reusage of the min edge heap. More... | |
| Operation | myTTOperation |
| The object's operation to perform for travel times. More... | |
Computes the shortest path through a network using the Dijkstra algorithm.
The template parameters are:
| E | The edge class to use (MSEdge/ROEdge) |
| V | The vehicle class to use (MSVehicle/ROVehicle) |
| PF | The prohibition function to use (prohibited_withPermissions/noProhibitions) |
| EC | The class to retrieve the effort for an edge from |
The router is edge-based. It must know the number of edges for internal reasons and whether a missing connection between two given edges (unbuild route) shall be reported as an error or as a warning.
Definition at line 69 of file DijkstraRouter.h.
| typedef double(* DijkstraRouter< E, V, PF >::Operation) (const E *const, const V *const, double) |
Definition at line 72 of file DijkstraRouter.h.
|
inline |
Constructor.
Definition at line 128 of file DijkstraRouter.h.
|
inlinevirtual |
Destructor.
Definition at line 137 of file DijkstraRouter.h.
|
inlineprivate |
Definition at line 290 of file DijkstraRouter.h.
|
inline |
Builds the path from marked edges.
Definition at line 276 of file DijkstraRouter.h.
|
inlinevirtual |
Implements SUMOAbstractRouter< E, V >.
Definition at line 139 of file DijkstraRouter.h.
|
inlinevirtual |
Builds the route between the given edges using the minimum effort at the given time The definition of the effort depends on the wished routing scheme.
Implements SUMOAbstractRouter< E, V >.
Definition at line 162 of file DijkstraRouter.h.
|
inlineinherited |
Definition at line 95 of file SUMOAbstractRouter.h.
Referenced by DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::compute(), AStarRouter< MSEdge, SUMOVehicle, prohibited_withPermissions< MSEdge, SUMOVehicle > >::compute(), and CHRouter< E, V, PF >::compute().
|
inline |
Definition at line 285 of file DijkstraRouter.h.
|
inlineinherited |
Definition at line 86 of file SUMOAbstractRouter.h.
Referenced by DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::compute(), AStarRouter< MSEdge, SUMOVehicle, prohibited_withPermissions< MSEdge, SUMOVehicle > >::compute(), CHRouterWrapper< E, V, PF >::recomputeCosts(), DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::recomputeCosts(), AStarRouter< MSEdge, SUMOVehicle, prohibited_withPermissions< MSEdge, SUMOVehicle > >::recomputeCosts(), CHRouter< E, V, PF >::recomputeCosts(), and CHBuilder< E, V >::synchronize().
|
inline |
Definition at line 143 of file DijkstraRouter.h.
Referenced by DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::compute(), and DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::recomputeCosts().
|
inline |
|
inlinevirtual |
Implements SUMOAbstractRouter< E, V >.
Definition at line 261 of file DijkstraRouter.h.
|
inlineinherited |
Definition at line 100 of file SUMOAbstractRouter.h.
Referenced by ROMAAssignments::incremental().
|
inlineinherited |
Definition at line 90 of file SUMOAbstractRouter.h.
Referenced by DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::compute(), AStarRouter< MSEdge, SUMOVehicle, prohibited_withPermissions< MSEdge, SUMOVehicle > >::compute(), and CHRouter< E, V, PF >::compute().
|
protectedinherited |
whether we are currently operating several route queries in a bulk
Definition at line 109 of file SUMOAbstractRouter.h.
Referenced by DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::compute(), AStarRouter< MSEdge, SUMOVehicle, prohibited_withPermissions< MSEdge, SUMOVehicle > >::compute(), and SUMOAbstractRouter< E, IntermodalTrip< E, N, V > >::setBulkMode().
|
private |
|
private |
The container of edge information.
Definition at line 303 of file DijkstraRouter.h.
Referenced by DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::clone(), DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::compute(), DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::DijkstraRouter(), and DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::getEdgeInfo().
|
private |
the handler for routing errors
Definition at line 313 of file DijkstraRouter.h.
Referenced by DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::clone(), and DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::compute().
|
private |
list of visited Edges (for resetting)
Definition at line 308 of file DijkstraRouter.h.
Referenced by DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::compute(), and DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::init().
|
private |
A container for reusage of the min edge heap.
Definition at line 306 of file DijkstraRouter.h.
Referenced by DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::compute(), and DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::init().
|
protectedinherited |
The object's operation to perform.
Definition at line 106 of file SUMOAbstractRouter.h.
Referenced by CHRouterWrapper< E, V, PF >::clone(), DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::clone(), AStarRouter< MSEdge, SUMOVehicle, prohibited_withPermissions< MSEdge, SUMOVehicle > >::clone(), CHRouter< E, V, PF >::clone(), and SUMOAbstractRouter< E, IntermodalTrip< E, N, V > >::getEffort().
|
private |
The object's operation to perform for travel times.
Definition at line 300 of file DijkstraRouter.h.
Referenced by DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::clone(), and DijkstraRouter< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V >, prohibited_withPermissions< IntermodalEdge< E, L, N, V >, IntermodalTrip< E, N, V > > >::getTravelTime().