Shortest path-min. tree building what is a tree? – If for each origin node h, at the completion of a pass through the algorithm all other nodes in the network are arrived at by one link only, the set of paths from h to the nodes is called a tree. The process of determining the minimum cost path is called tree building. The tree together with the minimum path costs from the origin node to all destination nodes is referred to as skimmed tree (giving rise to the term skim table in TDF)
An example tree
Dijkstras algorithm 1.function Dijkstra(Graph, source): 2.for each vertex v in Graph: // Initializations 3.dist[v] := infinity // Unknown distance function from source to v 4.previous[v] := undefined // Previous node in optimal path from source 5.dist[source] := 0 // Distance from source to source 6.Q := the set of all nodes in Graph // All nodes in the graph are unoptimized - thus are in Q 7.while Q is not empty: // The main loop 8.u := vertex in Q with smallest dist 9.if dist[u] = infinity: 10.break // all remaining vertices are inaccessible from source 11.remove u from Q 12.for each neighbor v of u: // where v has not yet been removed from Q. 13.alt := dist[u] + dist_between(u, v) 14.if alt < dist[v]: // Relax (u,v,a) 15.dist[v] := alt 16.previous[v] := u 17.return dist
Dijkstras algorithm in plain words 1. to initialize – the origin is the only solved node. – The distance to the origin is 0. – The solved set is empty except the origin node. 2. find all the unsolved nodes that are directly connected by a single arc to any solved node. For each unsolved node, calculate all of the candidate distances (there may be several of these for one unsolved node because it may directly connect to more than one solved node): – choose an arc connecting the unsolved node directly to a solved node. – The candidate distances is (the distance to solved node) + (length of arc directly connecting the solved and the unsolved node). 3. choose the smallest candidate distance: – add the corresponding unsolved node to the solved set – distance to the newly solved node is the candidate distance – add the corresponding arc to the arc set 4. if the newly solved node is not the destination node, then go to step 2. Else, stop and recover the solution. – length of the shortest route from origin to destination is the distance to the destination node. – Shortest route is found by tracing backwards from the destination node to the origin (or the reverse) using the arcs in the arc set. It is usually easiest to trace backwards because each node is reached from exactly one other node, but may have outwards arcs to several other nodes.
An example Find the shortest paths from node 1 to all other nodes in the network
Example solution Step 2: 2 Step 3: 5 Step 4: 6 Step 5: 7 Step 6: 8 Step 1: 0 Solved node listDist fr O. to nodeSolved arc set
Another example A B C D E F G H Find the shortest paths from node A to all other nodes
Another example Find the shortest paths from node 6 to all other nodes
Inputs to assignment O-D matrix Network
Terminology (1) Trip assignment: loading the network; volumes are assigned to links Free flow speed: speed under no congestion Free flow travel time: travel time under no congestion Path finding: finding the path with the minimum impedance Path loading: loading vehicles to links comprising a path Level of service: a qualitative measure describing the operation conditions Capacity restraint: the volume loading process is constrained by the capacity of the link
Assignment methods Non-equilibrium (heuristic) assignments – All or nothing: link travel times are determined beforehand and trips are assigned at once – Incremental assignment: link travel times are updated through fixed proportions and trips are assigned iteratively – Capacity constraint: link travel times depend on link volumes and final assignment is the average of the last several iterations
All or nothing assignment Step 1: find shortest paths between origin and destination zones Step 2: assign all trips to links comprising the shortest routes Simple all-or-nothing method is the fundamental building block in traffic assignment procedures.
Incremental assignment Step 1: identify shortest paths between origin and destination zones Step 2: assign a fixed portion of the trips to links comprising the shortest routes Step 4: update link travel times A simple but inconsistent way to account for capacity and congestion effects. Step 3: if all assigned, stop, otherwise, continue to step 4
Example Consider a simple transportation network that has one origin and one destination and two links/paths that provide access from the origin to the destination. One link is 7.5 miles long and has a capacity of 4000 vehicles per hour and a speed limit of 55 miles per hour. The other link is 5 miles long and has a capacity of 2000 vehicles per hour and a speed limit of 35 miles per hour. Assuming that 5000 drivers wish to make the trip from the origin to the destination, find the loaded network?
All or nothing assignment origin Dest. Link 1 Link 2 Link 1 capacity: 4000 vehicles; speed = 55 mph; distance = 7.5 miles Free-flow travel time = 7.5/55 = 8.18 minutes Link 2 capacity: 2000 vehicles; speed = 35 mph; distance = 5 miles Free-flow travel time = 5/35 = 8.57 minutes All-or-nothing suggests that link 1 is the shortest path from origin to destination and will be assigned with all 5000 vehicles and link 2 will be assigned 0 vehicles
Incremental assignment origin Dest. Link 1 Link 2 Link 1 capacity: 4000 vehicles; speed = 55 mph; distance = 7.5 miles Free-flow travel time = 7.5/55 = 8.18 minutes Link 2 capacity: 2000 vehicles; speed = 35 mph; distance = 5 miles Free-flow travel time = 5/35 = 8.57 minutes Let us first assign 1000 vehicles to link 1 and then update link travel time, which will be: The next 1000 vehicles will still be assigned to link 1, which gives a travel time of The next 1000 vehicles will still be assigned to link 1, which results in 9.48 min. Thus, link 2 now becomes the shortest path, and therefore, the next 1000 vehicles to link 2, which gives 8.76 min. Thus, the last 1000 vehicles will be loaded on link 2, which will give a travel time of:
Example: do all-or-nothing and incremental assignment Link 1 Link 2 Link 4 Link 3 Link 5 From\to Observed O-D flow link12345 t 0l ClCl Link characteristics