Traffic assignment Trip generation Trip distribution Mode split Transit person trip table (O&D) Vehicle trip table (O&D) Trip assignment Loaded transit network Loaded highway network 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 Dijkstra’s algorithm 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. function Dijkstra(Graph, source): for each vertex v in Graph: // Initializations dist[v] := infinity // Unknown distance function from source to v previous[v] := undefined // Previous node in optimal path from source dist[source] := 0 // Distance from source to source Q := the set of all nodes in Graph // All nodes in the graph are unoptimized - thus are in Q while Q is not empty: // The main loop u := vertex in Q with smallest dist[] if dist[u] = infinity: break // all remaining vertices are inaccessible from source remove u from Q for each neighbor v of u: // where v has not yet been removed from Q. alt := dist[u] + dist_between(u, v) if alt < dist[v]: // Relax (u,v,a) dist[v] := alt previous[v] := u return dist[] Dijkstra’s 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 6 1 2 2 1 3 3 4 2 5 1 6 Example solution Step 1: 0 6 1 2 Step 4: 6 4 1 Step 3: 5 2 3 2 3 Step 2: 2 5 Step 6: 8 Solved node list Dist fr O. to node Solved arc set 1 0 3 2 1-3 2 5 3-2 4 6 2-4 6 7 4-6 5 8 4-5 1 6 Step 5: 7 Another example Find the shortest paths from node A to all other nodes 13 B F 2 3 6 3 H 5 A 2 D 2 4 2 C 5 6 3 E G 6 Another example Find the shortest paths from node 6 to all other nodes 1 2 2 5 5 3 3 4 6 4 3 3 3 3 8 5 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 Simple all-or-nothing method is the fundamental building block in traffic assignment procedures. Step 1: find shortest paths between origin and destination zones Step 2: assign all trips to links comprising the shortest routes Incremental assignment A simple but inconsistent way to account for capacity and congestion effects. Step 1: identify shortest paths between origin and destination zones Step 4: update link travel times Step 2: assign a fixed portion of the trips to links comprising the shortest routes 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 Link 1 capacity: 4000 vehicles; speed = 55 mph; distance = 7.5 miles Free-flow travel time = 7.5/55 = 8.18 minutes Link 1 Dest. origin Link 2 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 V Link 1 t t01[1 1.1492( 1 ) 6.8677 ] C1 capacity: 4000 vehicles; speed = 55 mph; distance = 7.5 miles Free-flow travel time = 7.5/55 = 8.18 minutes Link 1 Dest. origin Link 2 t t01[1 1.03( Link 2 capacity: 2000 vehicles; speed = 35 mph; distance = 5 miles Free-flow travel time = 5/35 = 8.57 minutes V1 5.5226 ) ] C1 Let us first assign 1000 vehicles to link 1 and then update link travel time, which will be: t 8.18[1 1.1492( 1000 )6.8677] 8.18 4000 The next 1000 vehicles will still be assigned to link 1, which gives a travel time of 8.26. 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: 1000 5.5226 t 8.57[1 1.03( 2000 ) ] 17.39 Example: do all-or-nothing and incremental assignment 2 Link 1 Link 4 4 Link 3 1 Link 2 Link 5 3 From\to 1 2 3 4 1 0 100 100 100 2 0 0 50 50 3 0 0 0 100 4 0 0 0 0 Link characteristics link 1 2 3 4 5 t0l 10 15 3 5 4 Cl 300 500 150 200 200 Observed O-D flow Vl tl t0 /[1 ] Cl