3Shortest 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)
5Dijkstra’s algorithm function Dijkstra(Graph, source): for each vertex v in Graph: // Initializationsdist[v] := infinity // Unknown distance function from source to vprevious[v] := undefined // Previous node in optimal path from sourcedist[source] := 0 // Distance from source to sourceQ := the set of all nodes in Graph // All nodes in the graph are unoptimized - thus are in Qwhile Q is not empty: // The main loopu := vertex in Q with smallest distif dist[u] = infinity:break // all remaining vertices are inaccessible from sourceremove u from Qfor 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] := altprevious[v] := ureturn distIn 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.
6Dijkstra’s algorithm in plain words 1. to initializethe 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 setdistance to the newly solved node is the candidate distanceadd the corresponding arc to the arc set4. 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.
7An exampleFind the shortest paths from node 1 to all other nodes in the network162142321356
12Terminology (1)Trip assignment: “loading the network”; volumes are assigned to linksFree flow speed: speed under no congestionFree flow travel time: travel time under no congestionPath finding: finding the path with the minimum impedancePath loading: loading vehicles to links comprising a pathLevel of service: a qualitative measure describing the operation conditionsCapacity restraint: the volume loading process is constrained by the capacity of the link
13Assignment methods Non-equilibrium (heuristic) assignments All or nothing: link travel times are determined beforehand and trips are assigned at onceIncremental assignment: link travel times are updated through fixed proportions and trips are assigned iterativelyCapacity constraint: link travel times depend on link volumes and final assignment is the average of the last several iterations
14All or nothing assignment Simple all-or-nothing method is the fundamental building block intraffic assignment procedures.Step 1: find shortest paths between origin and destination zonesStep 2: assign all trips to links comprising the shortest routes
15Incremental assignment A simple but inconsistent way to account for capacity andcongestion effects.Step 1: identify shortest paths between origin and destination zonesStep 2: assign a fixed portion of the trips to links comprising the shortest routesStep 3: if all assigned, stop, otherwise, continue to step 4Step 4: update link travel times
16ExampleConsider 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?
17All or nothing assignment Link 1capacity: 4000 vehicles; speed = 55 mph; distance = 7.5 milesFree-flow travel time = 7.5/55 = 8.18 minutesDest.Link 1originLink 2Link 2capacity: 2000 vehicles; speed = 35 mph; distance = 5 milesFree-flow travel time = 5/35 = 8.57 minutesAll-or-nothing suggests that link 1 is the shortest path from origin to destination and willbe assigned with all 5000 vehicles and link 2 will be assigned 0 vehicles
18Incremental assignment Link 1capacity: 4000 vehicles; speed = 55 mph; distance = 7.5 milesFree-flow travel time = 7.5/55 = 8.18 minutesLink 1Dest.originLink 2Link 2capacity: 2000 vehicles; speed = 35 mph; distance = 5 milesFree-flow travel time = 5/35 = 8.57 minutesLet us first assign 1000 vehicles to link 1 and then update link travel time, whichwill 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:
19Example: do all-or-nothing and incremental assignment 2Link 44Link 11Link 3Link 5Link 23From\to123410050Observed O-D flowLink characteristicslink12345t0l1015Cl300500150200