# Traffic assignment.

## Presentation on theme: "Traffic assignment."— Presentation transcript:

Traffic assignment

Transit person trip table (O&D) Vehicle trip table (O&D)
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 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[] In the following algorithm, the code u := vertex in Q with smallest dist[], searches for the vertex u in the vertex set Q that has the least dist[u] value. That vertex is removed from the set Q and returned to the user. dist_between(u, v) calculates the length between the two neighbor-nodes u and v. The variable alt on line 13 is the length of the path from the root node to the neighbor node v if it were to go through u. If this path is shorter than the current shortest path recorded for v, that current path is replaced with this alt path. The previous array is populated with a pointer to the "next-hop" node on the source graph to get the shortest route to the source.

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 1 6 2 1 4 2 3 2 1 3 5 6

Example solution Step 1: 0 Step 4: 6 1 6 2 1 4 Step 3: 5 2 3 2 1 3 5 6
Solved node list Dist fr O. to node Solved arc set 1 3 2 1-3 5 3-2 4 6 2-4 7 4-6 8 4-5

Another example Find the shortest paths from node A to all other nodes
B C D E F G H 3 5 2 13 6 4

Another example Find the shortest paths from node 6 to all other nodes
2 1 2 5 3 5 3 4 3 4 6 3 3 3 8 5

Inputs to assignment O-D matrix Network

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 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 Step 4: update link travel times

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 Dest. Link 1 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