Research Collection
Presentation
DEDALO
DEtector of stationary Distributions for AB Large scenariO
Author(s):
Penazzi, Stefano Publication Date:
2020-03-16 Permanent Link:
https://doi.org/10.3929/ethz-b-000407088
Rights / License:
In Copyright - Non-Commercial Use Permitted
This page was generated automatically upon download from the ETH Zurich Research Collection. For more information please consult the Terms of use.
ETH Library
DEDALO
DEtector of stationary Distributions for AB Large
scenariO
Brown Bag, 16 March 2020
What is an equilibrium? How to describe it? How to find equilibrium points?
Vector field
What is an equilibrium? How to describe it? How to find equilibrium points?
Vector field
Brown Bag, 16 March 2020
Traffic equilibrium
User equilibrium (UE). Wardrop's first principle of route choice states that the journey times in all
routes actually used are equal and less than those that would be experienced by a single vehicle on any unused route. The traffic flows that satisfy this principle are usually referred to as "user equilibrium" (UE) flows, since each user chooses the route that is the best.
Stochastic user equilibrium (SUE) no driver can unilaterally change routes to improve his/her
perceived, rather than actual, travel times.
Traffic equilibrium models
Variational Inequality models
Nonlinear Complementarity models
Fixed Points models
How to study the user equilibrium using mathematical models. Properties of equilibrium solution can
be studied by using these models e.g. Existence and uniqueness of equilibrium solution
Brown Bag, 16 March 2020
User equilibrium through the steady state traffic assignment model
Fixed point model
Suppose that a set K of OD pairs is given and that there is a fixed (positive) demand for travel between each of these OD pairs. A route is defined to be any acyclic path connecting an OD pair. Denote the flow on route r by Xr and the route flow vector by X = (X1, X2, . . . , XN ) where N is the number of routes in the network. Then the set of feasible route flow vectors, denoted D, is given by
R
kis the set of all routes joining origin-destination pair k
Route-link incidence matrix
The link flow vector, denoted x, can be specified in terms of the route flow vector by x = AX.
The link cost vector c(x) = (c1(x), c2(x), . . . , cn(x)) where n is the number of links in the network
Route cost vector
Given a route flow vector X, it is natural to define the route swap vector ⲫ(X) by
δ
rsis the swap vector from route r to route s, i.e. has −1 in the rth place and 1 in the sth place and zeros elsewhere
User equilibrium through the steady state traffic assignment model
Fixed point model
Brown Bag, 16 March 2020
Let τ represent day-to-day time, and view this as a continuous non-negative variable.
Then, for X
0∈ D, consider the dynamical system
By Picard’s existence theorem the dynamical system has a unique solution trajectory provided that the route swap vector ⲫ(X) is a Lipschitz continuous function of the route flow vector X.
Theorem. (Schauder, 1930) Let E be a normed space. Let K be a convex subset of E. Let C be a compact, non-empty subset of K. Then every continuous map A : K → C has at least one fixed point.
T(X) = X + αⲫ(X)
T has at least one fixed point X* by Schauder. By definition T(X* ) = X* , or equivalently ⲫ(X* ) = 0, and therefore X* is an equilibrium of the dynamic system.
User equilibrium through the steady state traffic assignment model
Fixed point model
Theorem. Let ⲫ(X) be a continuously differentiable function of X. Then the dynamical system is globally convergent to equilibrium if there is a continuously differentiable scalar function V , defined throughout D, such that:
● V (X) ≥ 0 for all X ∈ D,
● V (X) = 0 if and only if X is an equilibrium route flow vector
● grad V (X) ⲫ(X) < 0 if X is not an equilibrium route flow vector
Discrete route swap processes
User equilibrium through the steady state traffic assignment model
Fixed point model
Brown Bag, 16 March 2020
User equilibrium
Vector field
Agents current states (plans) Swap vector
It represents the agents' desire to change the plan in order to improve their utility functions.
● Departure time
● Transport mode
● Path
● Activity duration
● Activity initial time
● ...
Step size
Stochastic dynamic user equilibrium (SDUE) conditions
SDU equilibrium conditions
Demand feasibility conditions
r
s
At each instant no traveller believes that he or she can improve his or her Perceived travel cost
Unique equilibrium solution
Continuous quantity
Brown Bag, 16 March 2020
Stochastic dynamic user equilibrium discrete quantities
r
s
Discrete quantity
Stationary distribution
Stochastic dynamic user equilibrium in MATSIm
Choice model
Learning process plans set
N. of paths in a
complete graph
Brown Bag, 16 March 2020
Paths enumeration
Home
1
2
3
Total number paths between two nodes in a complete graph
Example: how many paths are in a complete graph with 60 nodes?
Number of protons in the observable universe (Eddington number)
15 747 724 136 275 002 577 605 653 961 181 555 468 044 717 914 527 116 709 366 231 425 076 185 631 031 296
Stochastic dynamic user equilibrium in MATSIm
Choice model
Iteration k-1 Iteration ...
Iteration i
Iteration k Learning
process
Learning rate
Brown Bag, 16 March 2020
Stochastic dynamic user equilibrium in MATSIm
Choice model
When C
nalternatives are very different from those considered in the real world, it is unlikely that the simulation will display correct aggregated quantities.
Mutation and innovation constitute sampling techniques serving the computational purpose of reducing the universal choice set to a small, representative subset.
METROPOLIS-HASTINGS:
● f(x) α P(x) particularly useful, because calculating the necessary normalization factor is often extremely difficult in practice.
● generating a sequence of sample values in such a way that, as more and more sample
values are produced, the distribution of values more closely approximates the desired
distribution P(x). These sample values are produced iteratively, with the distribution of the
next sample being dependent only on the current sample value (MARKOV CHAIN)
Stochastic dynamic user equilibrium in MATSIm
Choice model
α α
Best response considering the last iteration Proposal distribution:
Transition probability:
Acceptance rate:
Brown Bag, 16 March 2020
DEDALO
18
Uncoupling Stochastic Dynamic User Plans Stationary Distribution research:
● Warm up (deterministic equilibrium research)
The first phase uses the SUPERNETWORK to find the optimal plan changes at each iteration for each agent and an optimal model for the step size (GREEDO) until an acceptable approximation of the deterministic equilibrium is reached.
● Stationary distributions research
The second phase starts from the deterministic equilibrium, it uses a nested logit model to obtain iteration after iteration the probability of a set of plans for each agent.
The nested logit model doesn’t rely on paths enumeration and use the super network
to generate the most likely plan accordingly with
DEDALO
Agent plan
New Agent plan
Mobility simulation Supernetwork
Clusterization Sub-network, Middle-network,
Super-node generation
New travel time, service costs, congestion
Agents best plan computation based on super-networks
NLM-WPE
Generate pre-selected plans
First phase (deterministic eq.)
Second phase (stochastic eq.)
Agents super-networks generation
GREEDO Select candidate
Stability evaluation
Super-network data container update Estimate NLM for pre-selected plans
Brown Bag, 16 March 2020
DEDALO
Super-network
Agent plan
New Agent plan
Mobility simulation Supernetwork
Clusterization
Sub-network, Middle-network, Super-node generation
New travel time, service costs, congestion
Agents best plan computation based on super-networks NLM-WPE
Generate pre-selected plans
First phase (deterministic eq.)
Second phase (stochastic eq.)
Agents super-networks generation
GREEDO Select candidate
Stability evaluation
Super-network data container update
Estimate NLM for pre-selected plans
Activities clustering
The activities clusterization follow these steps: Road network regions clustering and Agglomerative hierarchical clustering
Road network regions clustering.
This first clusterization groups the activities inside a road network region.
A region is a closed polygon
whose sides are roads of the
road network.The agents
moving inside a region are
teleported while if they move
outside they can use car, bus
Brown Bag, 16 March 2020
Activities clustering
Road network regions clustering
1. Given a road network transform it in a PLAN GRAPH 2. Finding all the wedges
a. Duplicate each undirected edge to form a two directed edges
b. Complement each directed edge (vi,vj) with the angle Ɛ of (vi,vj) with respect to the horizontal line passing through vi . This returns the list ((vi,vj),Ɛ).
c. Sort the list into ascending order using vi,Ɛ as primary and secondary key.
d. Scan the group in the sorted list. A group consists of entries ((vi,vj),Ɛ) of equal vi. Within each group, combine each pair of consecutive entries ((vi,vj),Ɛ1) and ((vi,vk),Ɛ2) to build a wedge (vk,vi,vj). Within each group combine also the last and the first.
3. Grouping the wedges into regions
a. Sort the wedges using vi,vj as primary and secondary key.
b. Mark all wedges as unused.
c. Find the next unused wedge W1 = (v1,v2,v3). Record the initial region list W1 and initialize i to 1. Mark W1 as used. If W1 cannot be found the algorithm terminate and all the regions have been extracted.
d. Search for the wedge Wi+1 = (vi+1,vi+2,vi+3) following Wi = (vi,vi+1,vi+2) by means of a binary search in the sorted wedge list using vi+1 and vi+2 as primary and secondary key. Append Wi+1 to the region list.
e. If Wi+1 and W1 are contiguous, that is vi+2 = v1 and vi+3 = v2 then the region has been extracted. Go to step c. Otherwise increment i by 1. go to step d
4. Insert the activities in the regions
a. Using a Kd-tree generated by the centroid of the regions, assign each activity, using its coordinates, to a single region.
Activities clustering
Agglomerative hierarchical clustering
Agglomerative hierarchical clustering
Regions generated in a non-dense road network are too large and
don’t guarantee accuracy. A second clustering algorithm allows
generating clusters based on the distances of the activities in the
cluster.
Brown Bag, 16 March 2020
Super-node Middle-link
Sub-network
SUPERNETWORK
Super-node, Middle-link, Sub-network
SUPER-NETWORK
New agents plans algorithm
super_network_data_container
for super_node in super_network.nodes do for time_slot in super_node.time_slots do for subpop in subpopulations do
res = compute_shortest_tree(super_node,super_node.sub_network,time_slot,subpop) super_networ_data_container.insert(res)
super_network_data_container.update() for person in population do
compute_new_plan(person,super_networ_data_container)
Proc compute_new_plan(person,super_networ_data_container)
psn = generate_person_super_network(person.plan,super_networ_data_container) res = compute_shortest_path(psn)
new_plan_update(person,res)
Brown Bag, 16 March 2020
SUPERNETWORK
super_network_data_container.update()
super_node_id time_slot subpopulation shortest tree per mode
1 8:00 - 8:30 A --
1 8:31 - 8:45 A --
1 8:46 - 8:50 A --
1 8:51 - 8:53 A --
1 8:54 - 9:15 A --
... ... ... --
2 8:00 - 8:30 B --
2 8:31 - 9:00 B --
2 9:01 - 9:30 B --
... ... --
3 8:54 - 9:15 C --
... ... ... --
super_node_id time_slot subpopulation shortest tree per mode
1 8:31 - 8:38 A --
1 8:39 - 8:45 A --
2 8:31 - 8:40 A --
2 8:41 - 9:00 A --
... ... ... ...
for super_node in super_network_data_container do for time_slot in super_node.time_slots do
if super_node.sub_network[time_slot].change compute_shortest_tree()
for super_node in super_network_data_container do for time_slot in super_node.time_slots do
if time_slot != time_slot + 1 insert_new_time_slot()
Mobility simulation New travel time, service costs, congestion
super_network_data_container
SUPERNETWORK
generate_person_super_network(person.plan,super_networ_data_container)
super_node_id time_slot subpopulation shortest tree per mode
1 8:00 - 8:30 A --
1 8:31 - 8:45 A --
1 8:46 - 8:50 A --
1 8:51 - 8:53 A --
1 8:54 - 9:15 A --
... ... ... --
2 8:00 - 8:30 B --
2 8:31 - 9:00 B --
2 9:01 - 9:30 B --
... ... --
3 8:54 - 9:15 C --
... ... ... --
The weight of the arc depend on the duration of the activity,start/end time of the activity and the agent’s parameters.
t t
Activity arc weight
start time
end time duration
Super-link activity
Super-link travel
super_network_data_container for person in population do
super_network sn = new super_network() for activity in person.plan do
super_node = find_super_node(activity)
List<super_link_travel> slt = generate_super_links_travel(super_node,person.plan) super_network.add_links(slt)
List<super_link_activity> sla = generate_super_links_activity(super_node,person.plan) super_network.add_links(sla)
person.set_super_network(sn)
for person in population do
plan p = person.get_super_network().get_best_plan() person.set_plan(p)
Brown Bag, 16 March 2020
First results
N. of activities: 7884106 N. of clusters: 136846 Cut: 1000
116990 supernode can manage 7506733 activities (95% managed by 1.7% with an approximation between 100 and 200 meters )