Users are rational and selfish individuals. They try to maximize their individual utilities
Users have perfect information on network conditions
Operational conditions on the network are stable during the period of time under analysis
wardrop's equilibrium principle
In a transportation network, to go from origin to destination , travelers choose their routes unilaterally and flows split between different available routes , in a way such that, if a traveller would commute to another route, its own O-D trip time would be worse, while other users, also from , would benefit from this decision.
Consequently, travelers choose their routes such that all the chosen options result in a unique and minimum travel cost . Non-used routes from all have a travel cost .
This means that each user decides what route has the lowest cost for themselves. In the end, the total cost of the network will not be the minimum possible, but each user will have chosen their routes to minimize their own cost at the moment they chose the route.
Wardrop's equilibrium principle example
It is considered useful to visualize the problem through an example.
The simple network below is given:
There is a demand to go from node to node . There are 2 possible paths. The flows of the 2 paths are and .
We can try an intuitive visualization of the problem:
The #Wardrop's equilibrium principle is reached when both delay function are equal. At that point in fact, the last user could choose link indifferently, as its cost would be the same.
In this case, the condition is met for
And
Keep in mind that if this was a min-cost flow problem, the total cost would be lower. but there would be some users with a much higher cost and some with a much lower cost, going against the #Wardrop's equilibrium principle.
The traffic assignment problem
The Traffic Assignment Problem (TAP) can be written as follow:
Minimize the total cumulative cost in the network subject to the usual network constraints (those that define the links and the demand). In maths terms:
The following problem is given:
subjet to
from which we get the solution .
where:
The Frank-Wolfe is an iterative method to solve the problem with the following steps
0. Find a feasible solution
The first step is to find any feasible solution . In the first iteration, .
This solution has to meet the condition
1. Define the subproblem
The Frank-Wolfe method works generating a new problem, called a subproblem. This is still an optimization problem but is allegedly easier to solve.
In order to define the new problem, we first need to find the Gradient of . Then, the subproblem is:
subj to:
from which we get the value .
Calculate the descent direction
The, we need to calculate a new vector, called the direction, that will allow us to get the solution for the next step of the algorithm.
2. Stopping criteria
We need some sort of stopping criteria to know if the solution is close enough to the actual solution of the original problem.
We calculate a relative gap, as
We define a relative gap that we find suitable. This is going to be a very small value, ()
If than we stop and accept as a solution (). Otherwise, we go the next step
3. Line search
The new solution will be given by
where is the solution to the problem:
This can be solved finding the first derivative of , imposing it equal to 0 and then solving for . This last step is often impossible to do analitically, so we rely on numeric methods to find (like: Metodo di Newton o Il metodo delle Tangenti, Metodo di Bisezione, Il metodo delle Secanti).
In the particular case that all elements of are in the form , then can be taken equal to
where:
4. Update
After having found is time to update the solution to the next step: and repeat the method from step #0. Find a feasible solution