11institutetext: Moscow Institute of Physics and Technology, Dolgoprudny, Russia
11email: [email protected], 11email: {sklonin.ilya, podlipnova.iv, yarmoshik.dv}@phystech.edu
22institutetext: Innopolis University, Innopolis, Russia
22email: [email protected]
33institutetext: Institute for Information Transmission Problems, Moscow, Russia 44institutetext: Caucasus Mathematical Center, Adyghe State University, Maikop, Russia

An Equilibrium Dynamic Traffic Assignment Model with Linear Programming Formulation

Victoria Guseva 11    Ilya Sklonin 11    Irina Podlipnova 11    Demyan Yarmoshik 1133    Alexander Gasnikov 223344
Abstract

In this paper, we consider a dynamic equilibrium transportation problem. There is a fixed number of cars moving from origin to destination areas. Preferences for arrival times are expressed as a cost of arriving before or after the preferred time at the destination. Each driver aims to minimize the time spent during the trip, making the time spent a measure of cost. The chosen routes and departure times impact the network loading. The goal is to find an equilibrium distribution across departure times and routes.

For a relatively simplified transportation model we show that an equilibrium traffic distribution can be found as a solution to a linear program. In earlier works linear programming formulations were only obtained for social optimum dynamic traffic assignment problems. We also discuss algorithmic approaches for solving the equilibrium problem using time-expanded networks.

Keywords:
Transportation modelling Dynamic models Linear programming User equilibrium

1 Introduction

The equilibrium traffic assignment problem is fundamental to transportation modelling. Essentially, the problem is to find the distribution of flows in a transportation network generated by the selfish route choices of drivers. Solving for such a distribution with various network parameters allows predicting network load and facilitates informed decision-making for better network design. There are two different approaches to traffic assignment: static and dynamic.

In this paper we develop a simple dynamic equilibrium model that reduces to a minimum cost multicommodity flow problem, similar to the static Stable Dynamics model [25]. It benefits from lower computational requirements compared to other dynamic models while avoiding the drawbacks of static models, such as relying on the contradictory notion of link performance functions in the Beckmann model [6] or the infeasibility of the Stable Dynamics model in peak hours.

1.1 Literature Review

Static traffic assignment. Static models assume that network flows do not depend on the time variable and thus can only capture the average characteristics of the network’s loading for a given period of time. The Beckmann model [6] with Bureau of Public Roads (BPR) functions representing the dependency between flow density and travel time on a road segment is probably the most popular model [7, 27]. Paper [25] presented the alternative Stable Dynamics static model, where the link flows are strictly limited by the capacities, motivated by the logical inconsistencies of the Beckmann model.

A significant advantage of static models is their computational efficiency. Static equilibrium models can be formulated as convex optimization problems [6] or variational inequalities if flow interactions are considered [10, 28]. Many highly performant algorithms were designed specifically for such problems [24, 5, 18, 15]. This allows for the development of combined travel demand models based on static models, which can still be solved within a reasonable time limit for decent accuracy in large networks [13, 19].

Dynamic traffic assignment. First dynamic traffic assignment models were suggested in [22, 23]. However, they were limited to searching only system optimum, which means that each single driver wants to reduce not his personal cost, but total expenses of all drivers in a system, according to Wardrop’s second principle. These first models were limited to single destination and single commodity due to computational complexity of dynamic models. In the work of Carey [9] it was shown that when models consider multicommodities and multiple destinations then we should also think about first-in-first-out (FIFO) condition. Independently of what type of equilibrium we search – user or system – there is non-convexity arise due to FIFO constraint. Author of the paper considers FIFO condition on average. This means that in reality some particular vehicles can pass each other and travel at different speed, but on average traffic which enter a road first will exit from it first.

Similar idea is highlighted in [32]. The authors conclude that FIFO is not a necessary constraint for building dynamic traffic assignment problem, however FIFO assumption can simplify building link and traffic dynamic models.

The study and analysis of traffic congestion during rush hours have a long-standing history, beginning with the pioneering work of Vickrey in 1969 [30]. In Vickrey’s fundamental model, it is assumed that a set of commuters, aim to reach a single destination using a single route that features a bottleneck with limited capacity at the desired time, which is evenly distributed over a closed interval. Each commuter decides on their departure time from home to minimize their total travel cost, which includes travel time, waiting time at the bottleneck, and the costs of arriving early or late at their destination. Several authors have extended this model. For example, [29] investigated the existence of equilibrium for a wider class of arrival cost functions. The follow-up work [11] described additional properties of the equilibrium in the model of [29]. Papers [4, 21] consider heterogeneities in the cost of travel time or delay in the schedule. There are also works (for example [11]) in which different types of user heterogeneities are assumed (work start times and value of times), but with a very stringent assumption about the piecewise linearity of the schedule function. However, in [26], the authors showed that there is no guaranteed convergence in the straightforward formulation of the equilibrium conditions. As noted earlier, all these works consider the simplest network design — the case of a single origin-destination pair connected by one route with a single bottleneck. In the articles [20] and [3] the authors decided to systematize the models of departure-time choice equilibrium (DTCE) for this type of road network; in the second work the authors additionally proposed a novel approach to modeling departure time equilibrium. They utilize continuous-time linear programming and optimal transport theory to achieve analytical solutions. Special attention is given to the Monge property, which determines sorting patterns of equilibrium, allowing models to account for multiple types of user heterogeneity.

There are also many studies focusing on other types of road networks. The paper by [2] considered a road system with several bottlenecks, while in [16], the authors examined a network with multiple origin-destination pairs and several roads between them, each containing a single bottleneck.

1.2 Paper Structure

In Section 2 we formulate an equilibrium departure time and route choice problem in continuous time, and provide a toy example which can be solved analytically. Then, in Section 3 we derive a formulation of a discrete variant of the problem as a minimum cost multicommodity flow problem. We show that the solution to the obtained optimization problem is a user equilibrium network loading. Last, in Section 4 we discuss numeric algorithms suitable for solving the discretized problem.

2 Problem Statement in Continuous Time

2.1 Transportation Model

Transportation Network. We consider the road network’s representation as a simple directed graph, where nodes correspond to junctions and centroids (artificial origin and destination nodes) and links correspond to road segments and centroid connectors.

We would like to represent the entire transportation network as a simple directed graph, where links are associated with capacities x^esubscript^𝑥𝑒\hat{x}_{e}over^ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT and free-flow times t¯esubscript¯𝑡𝑒\bar{t}_{e}over¯ start_ARG italic_t end_ARG start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT, without offloading any additional information, such as allowed turn directions, to other data structures. This can be achieved by splitting each node corresponding to a junction in the following way. For each input link (v1,v2)subscript𝑣1subscript𝑣2(v_{1},v_{2})( italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_v start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) adjacent to the intersection node v2subscript𝑣2v_{2}italic_v start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT, we replace this node in the link with an artificial input node v12subscript𝑣12v_{12}italic_v start_POSTSUBSCRIPT 12 end_POSTSUBSCRIPT. Similarly, we replace the first node in an output link (v2,v3)subscript𝑣2subscript𝑣3(v_{2},v_{3})( italic_v start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_v start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ) with a node v23subscript𝑣23v_{23}italic_v start_POSTSUBSCRIPT 23 end_POSTSUBSCRIPT. The splitting procedure is illustrated at Fig. 1. If the turn (v1,v2,v3)subscript𝑣1subscript𝑣2subscript𝑣3(v_{1},v_{2},v_{3})( italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_v start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_v start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ) is allowed at the junction, we add a link (v12,v23)subscript𝑣12subscript𝑣23(v_{12},v_{23})( italic_v start_POSTSUBSCRIPT 12 end_POSTSUBSCRIPT , italic_v start_POSTSUBSCRIPT 23 end_POSTSUBSCRIPT ) with capacity and free-flow time representing the turn capacity and the time required to make the turn. This results in that we have three disjoint subsets of links: E=EREJEC𝐸subscript𝐸𝑅subscript𝐸𝐽subscript𝐸𝐶E=E_{R}\cup E_{J}\cup E_{C}italic_E = italic_E start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT ∪ italic_E start_POSTSUBSCRIPT italic_J end_POSTSUBSCRIPT ∪ italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT, where ERsubscript𝐸𝑅E_{R}italic_E start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT consists of links corresponding to road segments such as (v1,v12)subscript𝑣1subscript𝑣12(v_{1},v_{12})( italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_v start_POSTSUBSCRIPT 12 end_POSTSUBSCRIPT ), EJsubscript𝐸𝐽E_{J}italic_E start_POSTSUBSCRIPT italic_J end_POSTSUBSCRIPT consists of links corresponding to junctions such as (v12,v23)subscript𝑣12subscript𝑣23(v_{12},v_{23})( italic_v start_POSTSUBSCRIPT 12 end_POSTSUBSCRIPT , italic_v start_POSTSUBSCRIPT 23 end_POSTSUBSCRIPT ) and ECsubscript𝐸𝐶E_{C}italic_E start_POSTSUBSCRIPT italic_C end_POSTSUBSCRIPT are centroid connectors. The resulting set of all nodes is denoted by V𝑉Vitalic_V, and the whole transportation graph is denoted by G=(V,E)𝐺𝑉𝐸G=(V,E)italic_G = ( italic_V , italic_E ). Sets of origin and destination centroids are denoted by IV𝐼𝑉I\subset Vitalic_I ⊂ italic_V and JV𝐽𝑉J\subset Vitalic_J ⊂ italic_V respectively.

Travel Cost. We assume that the travel cost, that each user strives to selfishly minimize, sums up from the travel time and a cost τ(t,T0)𝜏𝑡subscript𝑇0\tau(t,T_{0})italic_τ ( italic_t , italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) which is a function of the actual arrival time t𝑡titalic_t parametrized by the desired arrival time T0subscript𝑇0T_{0}italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT (desired arrival times an be different for different users). The arrival time cost represents the fact that most users aims to appear at some place at some specific time, and arriving late or too early is undesirable. The travel time sums from free-flow travel times of traversed links eE𝑒𝐸e\in Eitalic_e ∈ italic_E denoted by t¯esubscript¯𝑡𝑒\bar{t}_{e}over¯ start_ARG italic_t end_ARG start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT and time spent in queues.

This paper adopts the point queue link model to represent the queuing effect of congestion. In the point queue model, queue hold no physical space: vehicles that cannot live the link just accumulate at the end of the link and do not interfere with the other vehicles, which travels freely to the end of the link.

We assume that all road segments have constant flow limit for all of its sections, and all capacity constraints are posed only for junctions. Any change in link’s capacity can be modeled by introducing an artificial junction, possibly with single input and single output. We denote the capacity (in standardized vehicles per unit of time) of link eE𝑒𝐸e\in Eitalic_e ∈ italic_E by x^esubscript^𝑥𝑒\hat{x}_{e}over^ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT, setting it to infinity for edges in ERsubscript𝐸𝑅E_{R}italic_E start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT.

Demands. Traffic between origins and destinations is represented by the time-dependent matrix {dij}iI,jJsubscriptsubscript𝑑𝑖𝑗formulae-sequence𝑖𝐼𝑗𝐽\{d_{ij}\}_{i\in I,j\in J}{ italic_d start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i ∈ italic_I , italic_j ∈ italic_J end_POSTSUBSCRIPT, where dij(t)subscript𝑑𝑖𝑗𝑡d_{ij}(t)italic_d start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT ( italic_t ) is the total number/density of vehicles in zone i𝑖iitalic_i that aim to arrive to zone j𝑗jitalic_j at time t𝑡titalic_t.

Refer to caption
Figure 1: Scheme of processing junctions. a) Schematic picture of a junction with indicated allowed directions of movement. b) Graph representation of the junction. c) Processed graph. Nodes inside the dashed circle are artificial nodes which correspond to node v2subscript𝑣2v_{2}italic_v start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT. Blue links belong to subset EJsubscript𝐸𝐽E_{J}italic_E start_POSTSUBSCRIPT italic_J end_POSTSUBSCRIPT, while black links belong to subset ERsubscript𝐸𝑅E_{R}italic_E start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT.
Refer to caption
Figure 2: Let consider some part of a city divided on zones. For example, zones iO,jDformulae-sequence𝑖𝑂𝑗𝐷i\in O,j\in Ditalic_i ∈ italic_O , italic_j ∈ italic_D are showed in the figure. There are several paths pijPijsubscript𝑝𝑖𝑗subscript𝑃𝑖𝑗p_{ij}\in P_{ij}italic_p start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT ∈ italic_P start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT between these nodes, where Pijsubscript𝑃𝑖𝑗P_{ij}italic_P start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT is a set of all possible paths with origin i𝑖iitalic_i and destination j𝑗jitalic_j.

2.2 Toy Example

To provide intuition about dynamic models in continuous time here we derive an equilibrium solution for a simple single origin-single destination network. This example was shared with us by Yurii Nesterov. A similar model differing in assumption about the distribution of arrival time preferences was also proposed in [30].

In the morning, N𝑁Nitalic_N cars must leave a residential area to reach a work area. Each driver wants to arrive to the work area precisely at T0=subscript𝑇0absentT_{0}=italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 9 a.m.. If a driver arrives after T0subscript𝑇0T_{0}italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT, he may be late for work. Conversely, arriving before T0subscript𝑇0T_{0}italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT results in lost sleep and waiting time before starting the workday. We represent the costs of arriving later or earlier in the same units as travel costs. Costs of arriving later or earlier are proportional to the time difference with coefficients α𝛼\alphaitalic_α and β𝛽\betaitalic_β respectively: τ(t,T0)=αmax{0,tT0}+βmax{0,T0t}𝜏𝑡subscript𝑇0𝛼0𝑡subscript𝑇0𝛽0subscript𝑇0𝑡\tau(t,T_{0})=\alpha\max\left\{0,t-T_{0}\right\}+\beta\max\left\{0,T_{0}-t\right\}italic_τ ( italic_t , italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) = italic_α roman_max { 0 , italic_t - italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT } + italic_β roman_max { 0 , italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - italic_t }.

There is a single road between the residential and the work areas. The usual travel time on a free road is t¯¯𝑡\bar{t}over¯ start_ARG italic_t end_ARG minutes. However, there is a narrow section midway along the road where the throughput is limited to x^^𝑥\hat{x}over^ start_ARG italic_x end_ARG cars per hour.

We need to find the equilibrium distribution of cars depending on departure times from the residential area n(t)𝑛𝑡n(t)italic_n ( italic_t ).

It is impossible for all cars to arrive to the destination area at the same time. The driver arriving at exactly T0subscript𝑇0T_{0}italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT will be called a punctual driver. Let us denote his departure time as t2subscript𝑡2t_{2}italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT. Let also denote the time when the first car leaves the residential area by t1subscript𝑡1t_{1}italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT. The last car will depart at t3subscript𝑡3t_{3}italic_t start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT.

If we want to thoroughly describe the car distribution we need to find the densities of our two flows: before and after the punctual driver n1(t)subscript𝑛1𝑡n_{1}(t)italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_t ) and n2(t)subscript𝑛2𝑡n_{2}(t)italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_t ), as well as the time borders limiting those distributions (t1subscript𝑡1t_{1}italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, t2subscript𝑡2t_{2}italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT, t3subscript𝑡3t_{3}italic_t start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT).

First, let’s find the departure times of the first driver t1subscript𝑡1t_{1}italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and last driver t3subscript𝑡3t_{3}italic_t start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT. The first and the last driver don’t need to to be stuck at the traffic jam, because they can move in the very beginning of the traffic flow when the jam had not formed yet or move in the end when the jam has already finished. According to our task the travellers costs depend on the time difference between the desired and actual arrival times to the destination area. The arrival time for the first driver can be expressed as (t1+t¯subscript𝑡1¯𝑡t_{1}+\bar{t}italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + over¯ start_ARG italic_t end_ARG), hence for the last driver it will be (t3+t¯subscript𝑡3¯𝑡t_{3}+\bar{t}italic_t start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT + over¯ start_ARG italic_t end_ARG). The time difference between the desired and actual arrival time for the first driver (T0(t1+t¯)subscript𝑇0subscript𝑡1¯𝑡T_{0}-(t_{1}+\bar{t})italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - ( italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + over¯ start_ARG italic_t end_ARG )), and for the last driver ((t3+t¯)T0subscript𝑡3¯𝑡subscript𝑇0(t_{3}+\bar{t})-T_{0}( italic_t start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT + over¯ start_ARG italic_t end_ARG ) - italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT).

According to the first Wardrop principle, which is an application of the Nash’s rule to the transportation task, the costs should be the same for all drivers or someone will change his strategy in order to optimise his costs. In our case the strategy means the departure time that the drivers choose to start their journeys. The equilibrium requires the same costs for the drivers. We can write an equation balancing the costs per minute of arriving early β𝛽\betaitalic_β, and cost per minute of arriving late α𝛼\alphaitalic_α

t¯+β(T0(t1+t¯))=t¯+α((t3+t¯)T0).¯𝑡𝛽subscript𝑇0subscript𝑡1¯𝑡¯𝑡𝛼subscript𝑡3¯𝑡subscript𝑇0\bar{t}+\beta(T_{0}-(t_{1}+\bar{t}))=\bar{t}+\alpha((t_{3}+\bar{t})-T_{0}).over¯ start_ARG italic_t end_ARG + italic_β ( italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - ( italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + over¯ start_ARG italic_t end_ARG ) ) = over¯ start_ARG italic_t end_ARG + italic_α ( ( italic_t start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT + over¯ start_ARG italic_t end_ARG ) - italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) . (1)

Obviously, the time from the first to the last car will be spread among all the other cars to pass through the bottleneck.

Now lets calculate t3subscript𝑡3t_{3}italic_t start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT. The term Nx^𝑁^𝑥\frac{N}{\hat{x}}divide start_ARG italic_N end_ARG start_ARG over^ start_ARG italic_x end_ARG end_ARG denotes the total time taken by N𝑁Nitalic_N cars to pass through the bottleneck at a rate of x^^𝑥\hat{x}over^ start_ARG italic_x end_ARG cars per hour

t3t1=Nx^.subscript𝑡3subscript𝑡1𝑁^𝑥t_{3}-t_{1}=\frac{N}{\hat{x}}.italic_t start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = divide start_ARG italic_N end_ARG start_ARG over^ start_ARG italic_x end_ARG end_ARG . (2)

The previous two equations are resolved as a system to obtain t1subscript𝑡1t_{1}italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and t3subscript𝑡3t_{3}italic_t start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT:

t1=T0t¯αα+βNx^subscript𝑡1subscript𝑇0¯𝑡𝛼𝛼𝛽𝑁^𝑥t_{1}=T_{0}-\bar{t}-\frac{\alpha}{\alpha+\beta}\frac{N}{\hat{x}}italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - over¯ start_ARG italic_t end_ARG - divide start_ARG italic_α end_ARG start_ARG italic_α + italic_β end_ARG divide start_ARG italic_N end_ARG start_ARG over^ start_ARG italic_x end_ARG end_ARG (3)
t3=T0t¯+βα+βNx^.subscript𝑡3subscript𝑇0¯𝑡𝛽𝛼𝛽𝑁^𝑥t_{3}=T_{0}-\bar{t}+\frac{\beta}{\alpha+\beta}\frac{N}{\hat{x}}.italic_t start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT = italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - over¯ start_ARG italic_t end_ARG + divide start_ARG italic_β end_ARG start_ARG italic_α + italic_β end_ARG divide start_ARG italic_N end_ARG start_ARG over^ start_ARG italic_x end_ARG end_ARG . (4)

As drivers travel, they either arrive late, early, or on time. Let’s find the departure time t2subscript𝑡2t_{2}italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT of the driver who arrived on time. We will call this driver punctual. The time for the punctual driver balancing out the costs adjusted for travel costs of the other drivers. As before, we will use the first Wardrop principle and consider that the benefit to each driver is the same

t¯+β(T0(t1+t¯))=T0t2.¯𝑡𝛽subscript𝑇0subscript𝑡1¯𝑡subscript𝑇0subscript𝑡2\bar{t}+\beta(T_{0}-(t_{1}+\bar{t}))=T_{0}-t_{2}.over¯ start_ARG italic_t end_ARG + italic_β ( italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - ( italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + over¯ start_ARG italic_t end_ARG ) ) = italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT . (5)

Using previously found t1subscript𝑡1t_{1}italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT the solution for t2subscript𝑡2t_{2}italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT is:

t2=T0t¯αβ(α+β)Nx^.subscript𝑡2subscript𝑇0¯𝑡𝛼𝛽𝛼𝛽𝑁^𝑥t_{2}=T_{0}-\bar{t}-\frac{\alpha\beta}{(\alpha+\beta)}\frac{N}{\hat{x}}.italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - over¯ start_ARG italic_t end_ARG - divide start_ARG italic_α italic_β end_ARG start_ARG ( italic_α + italic_β ) end_ARG divide start_ARG italic_N end_ARG start_ARG over^ start_ARG italic_x end_ARG end_ARG . (6)

Now we can determine the distribution of cars that arrive before, after the punctual driver, and at the same time. All the cars that arrive before the punctual driver will form a car flow that value work time higher then rest time, on the other hand the cars that arrive after value their personal time higher than being at work at a certain time mark. This analysis focuses on the specific scenario when the road has a bottleneck with limited capacity.

The model is formulated based on the law of conservation of mass and Kirchhoff’s first law, which asserts that traffic entering a road link must equal the traffic exiting, given no sources or sinks in between. We can find n1subscript𝑛1n_{1}italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and n2subscript𝑛2n_{2}italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT which are the traffic flow rates in two successive time intervals before and after the punctual driver and x^^𝑥\hat{x}over^ start_ARG italic_x end_ARG is the capacity of the bottleneck. The number of cars leaving the departure area, moving in the first part of the flow before the punctual driver can be found by multiplying the first traffic density n1subscript𝑛1n_{1}italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT by the departure time difference between the first and the punctual driver. The number of cars of the same flow arriving to the destination area can be found by taking the multiplication of the bottleneck throughput by the time taken by the first part of the flow to come to the destination area from the first driver to the punctual driver. When we add the number of cars of our two flows we must get the total number of cars moving from the departure to the destination area. Lets resolve those equations as a system:

{n1(t2t1)=x^(T0t¯t1)n2(t3t2)+n1(t2t1)=N.casessubscript𝑛1subscript𝑡2subscript𝑡1^𝑥subscript𝑇0¯𝑡subscript𝑡1otherwisesubscript𝑛2subscript𝑡3subscript𝑡2subscript𝑛1subscript𝑡2subscript𝑡1𝑁otherwise\begin{cases}n_{1}(t_{2}-t_{1})=\hat{x}(T_{0}-\bar{t}-t_{1})\\ n_{2}(t_{3}-t_{2})+n_{1}(t_{2}-t_{1})=N.\\ \end{cases}\\ { start_ROW start_CELL italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) = over^ start_ARG italic_x end_ARG ( italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - over¯ start_ARG italic_t end_ARG - italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_t start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) + italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) = italic_N . end_CELL start_CELL end_CELL end_ROW (7)

Lets find the time which takes to the first part of the flow to leave the departure area (t2t1subscript𝑡2subscript𝑡1t_{2}-t_{1}italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT)

t2t1=T0t¯αβ(α+β)Nx^T0+t¯+αα+βNx^=α(α+β)Nx^(1β).subscript𝑡2subscript𝑡1subscript𝑇0¯𝑡𝛼𝛽𝛼𝛽𝑁^𝑥subscript𝑇0¯𝑡𝛼𝛼𝛽𝑁^𝑥𝛼𝛼𝛽𝑁^𝑥1𝛽{t_{2}-t_{1}}=T_{0}-\bar{t}-\frac{\alpha\beta}{(\alpha+\beta)}\frac{N}{\hat{x}% }-T_{0}+\bar{t}+\frac{\alpha}{\alpha+\beta}\frac{N}{\hat{x}}=\frac{\alpha}{(% \alpha+\beta)}\frac{N}{\hat{x}}(1-\beta).italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - over¯ start_ARG italic_t end_ARG - divide start_ARG italic_α italic_β end_ARG start_ARG ( italic_α + italic_β ) end_ARG divide start_ARG italic_N end_ARG start_ARG over^ start_ARG italic_x end_ARG end_ARG - italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + over¯ start_ARG italic_t end_ARG + divide start_ARG italic_α end_ARG start_ARG italic_α + italic_β end_ARG divide start_ARG italic_N end_ARG start_ARG over^ start_ARG italic_x end_ARG end_ARG = divide start_ARG italic_α end_ARG start_ARG ( italic_α + italic_β ) end_ARG divide start_ARG italic_N end_ARG start_ARG over^ start_ARG italic_x end_ARG end_ARG ( 1 - italic_β ) . (8)

To apply the conservation of mass law lets find the number of cars that will arrive to the destination area as the time needed for all the cars of the first part of the flow to arrive to the destination area times the capacity of the bottle neck

x^(T0t¯t1)=x^(T0t¯T0+t¯+αα+βNx^)=αNα+β.^𝑥subscript𝑇0¯𝑡subscript𝑡1^𝑥subscript𝑇0¯𝑡subscript𝑇0¯𝑡𝛼𝛼𝛽𝑁^𝑥𝛼𝑁𝛼𝛽{\hat{x}(T_{0}-\bar{t}-t_{1})}={\hat{x}(T_{0}-\bar{t}-T_{0}+\bar{t}+\frac{% \alpha}{\alpha+\beta}\frac{N}{\hat{x}})}=\frac{\alpha N}{\alpha+\beta}.over^ start_ARG italic_x end_ARG ( italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - over¯ start_ARG italic_t end_ARG - italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) = over^ start_ARG italic_x end_ARG ( italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - over¯ start_ARG italic_t end_ARG - italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + over¯ start_ARG italic_t end_ARG + divide start_ARG italic_α end_ARG start_ARG italic_α + italic_β end_ARG divide start_ARG italic_N end_ARG start_ARG over^ start_ARG italic_x end_ARG end_ARG ) = divide start_ARG italic_α italic_N end_ARG start_ARG italic_α + italic_β end_ARG . (9)

Now we can find the density of the first part of the flow

n1=x^(T0t¯t1)t2t1=αα+βNα(α+β)Nx^(1β)=x^1β.subscript𝑛1^𝑥subscript𝑇0¯𝑡subscript𝑡1subscript𝑡2subscript𝑡1𝛼𝛼𝛽𝑁𝛼𝛼𝛽𝑁^𝑥1𝛽^𝑥1𝛽n_{1}=\frac{\hat{x}(T_{0}-\bar{t}-t_{1})}{t_{2}-t_{1}}=\frac{\frac{\alpha}{% \alpha+\beta}N}{\frac{\alpha}{(\alpha+\beta)}\frac{N}{\hat{x}}(1-\beta)}=\frac% {\hat{x}}{1-\beta}.italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = divide start_ARG over^ start_ARG italic_x end_ARG ( italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - over¯ start_ARG italic_t end_ARG - italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) end_ARG start_ARG italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG = divide start_ARG divide start_ARG italic_α end_ARG start_ARG italic_α + italic_β end_ARG italic_N end_ARG start_ARG divide start_ARG italic_α end_ARG start_ARG ( italic_α + italic_β ) end_ARG divide start_ARG italic_N end_ARG start_ARG over^ start_ARG italic_x end_ARG end_ARG ( 1 - italic_β ) end_ARG = divide start_ARG over^ start_ARG italic_x end_ARG end_ARG start_ARG 1 - italic_β end_ARG . (10)

Lets find the time taken by the second part of the flow to leave the departure area

t3t2=T0t¯+β(α+β)Nx^T0+t¯+αβα+βNx^=β(α+β)Nx^(1+α).subscript𝑡3subscript𝑡2subscript𝑇0¯𝑡𝛽𝛼𝛽𝑁^𝑥subscript𝑇0¯𝑡𝛼𝛽𝛼𝛽𝑁^𝑥𝛽𝛼𝛽𝑁^𝑥1𝛼{t_{3}-t_{2}}=T_{0}-\bar{t}+\frac{\beta}{(\alpha+\beta)}\frac{N}{\hat{x}}-T_{0% }+\bar{t}+\frac{\alpha\beta}{\alpha+\beta}\frac{N}{\hat{x}}=\frac{\beta}{(% \alpha+\beta)}\frac{N}{\hat{x}}(1+\alpha).italic_t start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - over¯ start_ARG italic_t end_ARG + divide start_ARG italic_β end_ARG start_ARG ( italic_α + italic_β ) end_ARG divide start_ARG italic_N end_ARG start_ARG over^ start_ARG italic_x end_ARG end_ARG - italic_T start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + over¯ start_ARG italic_t end_ARG + divide start_ARG italic_α italic_β end_ARG start_ARG italic_α + italic_β end_ARG divide start_ARG italic_N end_ARG start_ARG over^ start_ARG italic_x end_ARG end_ARG = divide start_ARG italic_β end_ARG start_ARG ( italic_α + italic_β ) end_ARG divide start_ARG italic_N end_ARG start_ARG over^ start_ARG italic_x end_ARG end_ARG ( 1 + italic_α ) . (11)

Adding together our two flows we should end up with a total number of cars. Using that principle allows find the density of the second part of the flow:

n2=Nn1(t2t1)t3t2=Nx^(1β)α(α+β)Nx^(1β)β(α+β)Nx^(1+α)=α+βα(α+β)β(α+β)(1+α)x^=x^1+α.subscript𝑛2𝑁subscript𝑛1subscript𝑡2subscript𝑡1subscript𝑡3subscript𝑡2𝑁^𝑥1𝛽𝛼𝛼𝛽𝑁^𝑥1𝛽𝛽𝛼𝛽𝑁^𝑥1𝛼𝛼𝛽𝛼𝛼𝛽𝛽𝛼𝛽1𝛼^𝑥^𝑥1𝛼n_{2}=\frac{N-n_{1}(t_{2}-t_{1})}{t_{3}-t_{2}}=\frac{N-\frac{\hat{x}}{(1-\beta% )}\frac{\alpha}{(\alpha+\beta)}\frac{N}{\hat{x}}(1-\beta)}{\frac{\beta}{(% \alpha+\beta)}\frac{N}{\hat{x}}(1+\alpha)}=\frac{\frac{\alpha+\beta-\alpha}{(% \alpha+\beta)}}{\frac{\beta}{(\alpha+\beta)}\frac{(1+\alpha)}{\hat{x}}}=\frac{% \hat{x}}{1+\alpha}.italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = divide start_ARG italic_N - italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) end_ARG start_ARG italic_t start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG = divide start_ARG italic_N - divide start_ARG over^ start_ARG italic_x end_ARG end_ARG start_ARG ( 1 - italic_β ) end_ARG divide start_ARG italic_α end_ARG start_ARG ( italic_α + italic_β ) end_ARG divide start_ARG italic_N end_ARG start_ARG over^ start_ARG italic_x end_ARG end_ARG ( 1 - italic_β ) end_ARG start_ARG divide start_ARG italic_β end_ARG start_ARG ( italic_α + italic_β ) end_ARG divide start_ARG italic_N end_ARG start_ARG over^ start_ARG italic_x end_ARG end_ARG ( 1 + italic_α ) end_ARG = divide start_ARG divide start_ARG italic_α + italic_β - italic_α end_ARG start_ARG ( italic_α + italic_β ) end_ARG end_ARG start_ARG divide start_ARG italic_β end_ARG start_ARG ( italic_α + italic_β ) end_ARG divide start_ARG ( 1 + italic_α ) end_ARG start_ARG over^ start_ARG italic_x end_ARG end_ARG end_ARG = divide start_ARG over^ start_ARG italic_x end_ARG end_ARG start_ARG 1 + italic_α end_ARG . (12)

Now we can describe our car flow as a set of inequalities for time borders and the densities of each part

n(t)={0,t<t1n1,t1t<t2n2,t2t<t30,t3t.𝑛𝑡cases0𝑡subscript𝑡1otherwisesubscript𝑛1subscript𝑡1𝑡subscript𝑡2otherwisesubscript𝑛2subscript𝑡2𝑡subscript𝑡3otherwise0subscript𝑡3𝑡otherwisen(t)=\begin{cases}0,t<t_{1}\\ n_{1},t_{1}\leqslant t<t_{2}\\ n_{2},t_{2}\leqslant t<t_{3}\\ 0,t_{3}\geqslant t.\end{cases}\\ italic_n ( italic_t ) = { start_ROW start_CELL 0 , italic_t < italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ⩽ italic_t < italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ⩽ italic_t < italic_t start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL 0 , italic_t start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ⩾ italic_t . end_CELL start_CELL end_CELL end_ROW (13)

3 Mathematical Formulation in Discrete Time

We discretize time into small intervals of length ΔtΔ𝑡\Delta troman_Δ italic_t. These intervals must be sufficiently small to ensure that no vehicle traverses more than one link in a single interval. Typically, a value in the range of 5–10 seconds is suitable for ΔtΔ𝑡\Delta troman_Δ italic_t. We normalize the time axis by a time quant ΔtΔ𝑡\Delta troman_Δ italic_t, therefore t𝒯={1,,T}𝑡𝒯1𝑇t\in{\mathcal{T}}=\{1,\ldots,T\}italic_t ∈ caligraphic_T = { 1 , … , italic_T }.

To formulate the discrete equilibrium problem, we define a time-expanded transportation graph [7], where each node of the original transportation graph is multiplied by the number of timepoints and links are multiplied with account of minimum time required to travel through a link. Specifically, we make a copy of each regular node (not centroid) for each timepoint 𝒱~=(V(IJ))×𝒯~𝒱𝑉𝐼𝐽𝒯\tilde{\mathcal{V}}=\left(V\setminus(I\cup J)\right)\times{\mathcal{T}}over~ start_ARG caligraphic_V end_ARG = ( italic_V ∖ ( italic_I ∪ italic_J ) ) × caligraphic_T, and define the road segments Rsubscript𝑅{\mathcal{E}}_{R}caligraphic_E start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT and junctions link sets Jsubscript𝐽{\mathcal{E}}_{J}caligraphic_E start_POSTSUBSCRIPT italic_J end_POSTSUBSCRIPT by

R={((v1,t1),(v2,t2)):(v1,v2)ER,t2t1t¯(v1,v2)}subscript𝑅conditional-setsubscript𝑣1subscript𝑡1subscript𝑣2subscript𝑡2formulae-sequencesubscript𝑣1subscript𝑣2subscript𝐸𝑅subscript𝑡2subscript𝑡1subscript¯𝑡subscript𝑣1subscript𝑣2{\mathcal{E}}_{R}=\left\{\left((v_{1},t_{1}),(v_{2},t_{2})\right):(v_{1},v_{2}% )\in E_{R},\,t_{2}-t_{1}\geq\bar{t}_{(v_{1},v_{2})}\right\}caligraphic_E start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT = { ( ( italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) , ( italic_v start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) ) : ( italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_v start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) ∈ italic_E start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ≥ over¯ start_ARG italic_t end_ARG start_POSTSUBSCRIPT ( italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_v start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_POSTSUBSCRIPT } (14)

and

J={((v1,t),(v2,t+t¯(v1,v2))):(v1,v2)EJ,t{0,1,,Tt¯(v1,v2)}}.subscript𝐽conditional-setsubscript𝑣1𝑡subscript𝑣2𝑡subscript¯𝑡subscript𝑣1subscript𝑣2formulae-sequencesubscript𝑣1subscript𝑣2subscript𝐸𝐽𝑡01𝑇subscript¯𝑡subscript𝑣1subscript𝑣2{\mathcal{E}}_{J}=\left\{\left((v_{1},t),(v_{2},t+\bar{t}_{(v_{1},v_{2})})% \right):(v_{1},v_{2})\in E_{J},\,t\in\{0,1,\ldots,T-\bar{t}_{(v_{1},v_{2})}\}% \right\}.caligraphic_E start_POSTSUBSCRIPT italic_J end_POSTSUBSCRIPT = { ( ( italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_t ) , ( italic_v start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_t + over¯ start_ARG italic_t end_ARG start_POSTSUBSCRIPT ( italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_v start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_POSTSUBSCRIPT ) ) : ( italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_v start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) ∈ italic_E start_POSTSUBSCRIPT italic_J end_POSTSUBSCRIPT , italic_t ∈ { 0 , 1 , … , italic_T - over¯ start_ARG italic_t end_ARG start_POSTSUBSCRIPT ( italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_v start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_POSTSUBSCRIPT } } . (15)

This means that vehicles can spend arbitrary time waiting in point queue on a link, but times for passing junctions are fixed. For each link ((v1,t1),(v2,t2))subscript𝑣1subscript𝑡1subscript𝑣2subscript𝑡2\left((v_{1},t_{1}),(v_{2},t_{2})\right)( ( italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) , ( italic_v start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) ) its cost is set to t2t1subscript𝑡2subscript𝑡1t_{2}-t_{1}italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT.

We connect each origin centroid iI𝑖𝐼i\in Iitalic_i ∈ italic_I to each copy of each node it was connected to in graph G𝐺Gitalic_G. To embed the arrival costs in the time-expanded graph, we make time copies for each destination centroid, redefining J𝐽Jitalic_J as J=J×𝒯𝐽𝐽𝒯J=J\times{\mathcal{T}}italic_J = italic_J × caligraphic_T for users that aim to arrive at different moments of time. We also make another copies of destinations J=J×𝒯superscript𝐽𝐽𝒯J^{\prime}=J\times{\mathcal{T}}italic_J start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = italic_J × caligraphic_T for users who actually arrived at different moments of time and connect them to all corresponding copies of junction nodes and to all copies of same centroids in J𝐽Jitalic_J. Travel costs t¯esubscript¯𝑡𝑒\bar{t}_{e}over¯ start_ARG italic_t end_ARG start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT on links ((j,t),(j,t))superscript𝑗superscript𝑡𝑗𝑡\left((j^{\prime},t^{\prime}),(j,t)\right)( ( italic_j start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT , italic_t start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) , ( italic_j , italic_t ) ), jJsuperscript𝑗superscript𝐽j^{\prime}\in J^{\prime}italic_j start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∈ italic_J start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT, jJ𝑗𝐽j\in Jitalic_j ∈ italic_J represent cost of arrival at zone j𝑗jitalic_j in time tsuperscript𝑡t^{\prime}italic_t start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT for users who aimed to arrive at time t𝑡titalic_t.

We denote the time-expanded transportation graph described above as 𝒢=(𝒱,)𝒢𝒱{\mathcal{G}}=({\mathcal{V}},{\mathcal{E}})caligraphic_G = ( caligraphic_V , caligraphic_E ).

Refer to caption
Figure 3: Example of time-expanded graph. Node i𝑖iitalic_i is a source node with different departure times. Node jsuperscript𝑗j^{\prime}italic_j start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT is a destination zone witth different arrival times. Node j𝑗jitalic_j shows aimed arrival time. Edges between i𝑖iitalic_i and jsuperscript𝑗j^{\prime}italic_j start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT are physical edges and have some travel costs, however edges between jsuperscript𝑗j^{\prime}italic_j start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT and j𝑗jitalic_j does not exists in reality and used to introduce arrival costs.

3.1 Mathematical Formulations

Complementarity. By the first Wardrop’s principle, the equilibrium time and route choice problem formulates as the problem of assigning a departure time and a path in the spatial transportation network for each user in such a way that no user can change his strategy (departure time and spatial path) to strictly decrease travel cost. If we embed the departure time in the definition of path, we can say that in equilibrium each user is assigned to a shortest path.

For single spatial path, time spent in queue may depend on the network loading. But in time-expanded graph, each path has fixed travel cost. The way, in which users affect each other choices, from the time-expanded graph point of view, is that some paths may be prohibited to use, because they are already occupied by other agents so that their capacity limit is reached. Therefore, we need to distinguish available and fully occupied paths.

Mathematically, the equilibrium problem can be stated as a nonlinear complementarity problem:

(TpTp)xpsubscript𝑇superscript𝑝subscript𝑇𝑝subscript𝑥𝑝\displaystyle(T_{p^{\prime}}-T_{p})x_{p}( italic_T start_POSTSUBSCRIPT italic_p start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT - italic_T start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ) italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT 0absent0\displaystyle\geq 0≥ 0 pPij,pPijavail(x),iI,jJformulae-sequencefor-all𝑝subscript𝑃𝑖𝑗formulae-sequencefor-allsuperscript𝑝subscriptsuperscript𝑃avail𝑖𝑗𝑥formulae-sequencefor-all𝑖𝐼𝑗𝐽\displaystyle\;\forall p\in P_{ij},\,\forall p^{\prime}\in P^{\text{avail}}_{% ij}(x),\,\forall i\in I,~{}j\in J∀ italic_p ∈ italic_P start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT , ∀ italic_p start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∈ italic_P start_POSTSUPERSCRIPT avail end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT ( italic_x ) , ∀ italic_i ∈ italic_I , italic_j ∈ italic_J (16)
xpsubscript𝑥𝑝\displaystyle x_{p}italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT 0absent0\displaystyle\geq 0≥ 0 pP,for-all𝑝𝑃\displaystyle\forall p\in P,∀ italic_p ∈ italic_P , (17)
pP,pexpsubscriptformulae-sequence𝑝𝑃𝑒𝑝subscript𝑥𝑝\displaystyle\sum_{p\in P,p\ni e}x_{p}∑ start_POSTSUBSCRIPT italic_p ∈ italic_P , italic_p ∋ italic_e end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT x¯eabsentsubscript¯𝑥𝑒\displaystyle\leq\bar{x}_{e}≤ over¯ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT e,for-all𝑒\displaystyle\forall e\in{\mathcal{E}},∀ italic_e ∈ caligraphic_E , (18)
pPijxpsubscript𝑝subscript𝑃𝑖𝑗subscript𝑥𝑝\displaystyle\sum_{p\in P_{ij}}x_{p}∑ start_POSTSUBSCRIPT italic_p ∈ italic_P start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT =dijabsentsubscript𝑑𝑖𝑗\displaystyle=d_{ij}= italic_d start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT iI,jJ,formulae-sequencefor-all𝑖𝐼𝑗𝐽\displaystyle\forall i\in I,~{}j\in J,∀ italic_i ∈ italic_I , italic_j ∈ italic_J , (19)

where Pijsubscript𝑃𝑖𝑗P_{ij}italic_P start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT is the set of all paths from origin node iI𝑖𝐼i\in Iitalic_i ∈ italic_I to destination node jJ𝑗𝐽j\in Jitalic_j ∈ italic_J of the ij𝑖𝑗ijitalic_i italic_j-th demand in the time-expanded graph; Pijavail(x)subscriptsuperscript𝑃avail𝑖𝑗𝑥P^{\text{avail}}_{ij}(x)italic_P start_POSTSUPERSCRIPT avail end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT ( italic_x ) is the set of paths pPij𝑝subscript𝑃𝑖𝑗p\in P_{ij}italic_p ∈ italic_P start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT such that flow xpsubscript𝑥𝑝x_{p}italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT can be increased by a δp>0subscript𝛿𝑝0\delta_{p}>0italic_δ start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT > 0 without violating capacity constraints (18); P=iI,jJPij𝑃subscriptformulae-sequence𝑖𝐼𝑗𝐽subscript𝑃𝑖𝑗P=\bigcup_{i\in I,j\in J}P_{ij}italic_P = ⋃ start_POSTSUBSCRIPT italic_i ∈ italic_I , italic_j ∈ italic_J end_POSTSUBSCRIPT italic_P start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT; x𝑥xitalic_x is the path flows vector with components xp,pPsubscript𝑥𝑝𝑝𝑃x_{p},\,p\in Pitalic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT , italic_p ∈ italic_P; Tpsubscript𝑇𝑝T_{p}italic_T start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT is the travel cost for path p𝑝pitalic_p; The meaning of the inequalities is as follows: (17) ensures that flows are non-negative; (16) stands for either xp=0subscript𝑥𝑝0x_{p}=0italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT = 0 or the travel cost for path p𝑝pitalic_p is less or equal than the cost of the shortest available path for ij𝑖𝑗ijitalic_i italic_j-th demand (thus the problem is called complementarity problem); and (18),(19) express capacity and demand constraints respectively.

Variational Inequality. Let X𝑋Xitalic_X denote the set of all feasible path flows vectors, i.e. path flows vectors satisfying (17)-(19). Then, the nonlinear complementarity problem can be reformulated as the following variational inequality problem (VI) on x𝑥xitalic_x:

xX,pPTp(xpxp)0xX.formulae-sequence𝑥𝑋subscript𝑝𝑃subscript𝑇𝑝superscriptsubscript𝑥𝑝subscript𝑥𝑝0for-allsuperscript𝑥𝑋x\in X,\quad\sum_{p\in P}T_{p}(x_{p}^{\prime}-x_{p})\geq 0\;\forall x^{\prime}% \in X.italic_x ∈ italic_X , ∑ start_POSTSUBSCRIPT italic_p ∈ italic_P end_POSTSUBSCRIPT italic_T start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT - italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ) ≥ 0 ∀ italic_x start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∈ italic_X . (16’)
Lemma 1.

Any solution to VI (16) is an equilibrium assignment (16)-(19)

Proof.

Since xX𝑥𝑋x\in Xitalic_x ∈ italic_X simply denotes (17)-(19), we only require to show that (16) follows from the inequality in (16). Assume the opposite, that there exist iI,jJformulae-sequence𝑖𝐼𝑗𝐽i\in I,~{}j\in Jitalic_i ∈ italic_I , italic_j ∈ italic_J and pPij,pPijavailformulae-sequence𝑝subscript𝑃𝑖𝑗superscript𝑝subscriptsuperscript𝑃avail𝑖𝑗p\in P_{ij},p^{\prime}\in P^{\text{avail}}_{ij}italic_p ∈ italic_P start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT , italic_p start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∈ italic_P start_POSTSUPERSCRIPT avail end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT such that xp>0subscript𝑥𝑝0x_{p}>0italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT > 0 and Tp<Tpsubscript𝑇superscript𝑝subscript𝑇𝑝T_{p^{\prime}}<T_{p}italic_T start_POSTSUBSCRIPT italic_p start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT < italic_T start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT. Then we can simply define xsuperscript𝑥x^{\prime}italic_x start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT by setting xπ=xπsubscriptsuperscript𝑥𝜋subscript𝑥𝜋x^{\prime}_{\pi}=x_{\pi}italic_x start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_π end_POSTSUBSCRIPT = italic_x start_POSTSUBSCRIPT italic_π end_POSTSUBSCRIPT for all πP{p,p}𝜋𝑃𝑝superscript𝑝\pi\in P\setminus\{p,p^{\prime}\}italic_π ∈ italic_P ∖ { italic_p , italic_p start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT }, xp=xp+min{δp,xp}subscriptsuperscript𝑥superscript𝑝subscript𝑥superscript𝑝subscript𝛿superscript𝑝subscript𝑥𝑝x^{\prime}_{p^{\prime}}=x_{p^{\prime}}+\min\left\{\delta_{p^{\prime}},x_{p}\right\}italic_x start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_p start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT = italic_x start_POSTSUBSCRIPT italic_p start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT + roman_min { italic_δ start_POSTSUBSCRIPT italic_p start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT , italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT } and xp=xpmin{δp,xp}subscriptsuperscript𝑥𝑝subscript𝑥𝑝subscript𝛿superscript𝑝subscript𝑥𝑝x^{\prime}_{p}=x_{p}-\min\left\{\delta_{p^{\prime}},x_{p}\right\}italic_x start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT = italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT - roman_min { italic_δ start_POSTSUBSCRIPT italic_p start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT , italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT }. It gives us pPTp(xpxp)=(TpTp)min{δp,xp}<0subscript𝑝𝑃subscript𝑇𝑝superscriptsubscript𝑥𝑝subscript𝑥𝑝subscript𝑇superscript𝑝subscript𝑇𝑝subscript𝛿superscript𝑝subscript𝑥𝑝0\sum_{p\in P}T_{p}(x_{p}^{\prime}-x_{p})=(T_{p^{\prime}}-T_{p})\min\left\{% \delta_{p^{\prime}},x_{p}\right\}<0∑ start_POSTSUBSCRIPT italic_p ∈ italic_P end_POSTSUBSCRIPT italic_T start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT - italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ) = ( italic_T start_POSTSUBSCRIPT italic_p start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT - italic_T start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ) roman_min { italic_δ start_POSTSUBSCRIPT italic_p start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT , italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT } < 0, what contradicts (16). ∎

Linear Programming. One can note that (16) coincides with the first-order optimality criteria for a problem of minimizing a convex function f(x)𝑓𝑥f(x)italic_f ( italic_x ) on a convex set X𝑋Xitalic_X if f(x)/xp=Tp𝑓𝑥subscript𝑥𝑝subscript𝑇𝑝\partial f(x)/\partial x_{p}=T_{p}∂ italic_f ( italic_x ) / ∂ italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT = italic_T start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT [8, Propositon 1.3]. The set X𝑋Xitalic_X defined above is indeed convex, and the convex function f(x)=pPxpTp𝑓𝑥subscript𝑝𝑃subscript𝑥𝑝subscript𝑇𝑝f(x)=\sum_{p\in P}x_{p}T_{p}italic_f ( italic_x ) = ∑ start_POSTSUBSCRIPT italic_p ∈ italic_P end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT italic_T start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT, which is equal to total travel cost, satisfies the equality for partial derivatives. Therefore, the following convex optimization problem

minxXpPxpTp,subscript𝑥𝑋subscript𝑝𝑃subscript𝑥𝑝subscript𝑇𝑝\min_{x\in X}\sum_{p\in P}x_{p}T_{p},roman_min start_POSTSUBSCRIPT italic_x ∈ italic_X end_POSTSUBSCRIPT ∑ start_POSTSUBSCRIPT italic_p ∈ italic_P end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT italic_T start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT , (20)

which, in fact, is a linear programming problem, is equivalent to VI (16). Let us assume that X𝑋Xitalic_X is nonempty. Due to (17) and (18), X𝑋Xitalic_X is bounded. This implies that problem (20) has a solution. Together with Lemma 1 this gives us the following theorem.

Theorem 3.1.

Let X𝑋Xitalic_X be nonempty set of path flows vectors x𝑥xitalic_x defined by (17)-(19). Then, the equilibrium time and route problem (16)-(19) has a solution. This solution is a solution to the linear programming problem (20).

4 Algorithmic Approaches

The linear programming problem (20) can further be classified as a minimum cost multicommodity flow (MCMF) problem [1]. Depending on the network size, number of timepoints |𝒯|𝒯|{\mathcal{T}}|| caligraphic_T | and the desired solution accuracy, different algorithmic approaches can be preferred for solving the MCMF problem. Here we discuss several methods appropriate to the specifics of the problem related with the properties of time-expanded graph. For comprehensive review of algorithms for multicommodity flow problems we refer to [31].

4.1 Link-Based

Problem (20) is defined for the path flows vector variable. The problem can also be reformulated for link flows variables [1]:

minxei0,e,iIet¯exesubscriptsubscript𝑥𝑒𝑖0formulae-sequence𝑒𝑖𝐼subscript𝑒subscript¯𝑡𝑒subscript𝑥𝑒\displaystyle\min_{\begin{subarray}{c}x_{ei}\geq 0,\\ e\in{\mathcal{E}},i\in I\end{subarray}}\sum_{e\in{\mathcal{E}}}\bar{t}_{e}x_{e}roman_min start_POSTSUBSCRIPT start_ARG start_ROW start_CELL italic_x start_POSTSUBSCRIPT italic_e italic_i end_POSTSUBSCRIPT ≥ 0 , end_CELL end_ROW start_ROW start_CELL italic_e ∈ caligraphic_E , italic_i ∈ italic_I end_CELL end_ROW end_ARG end_POSTSUBSCRIPT ∑ start_POSTSUBSCRIPT italic_e ∈ caligraphic_E end_POSTSUBSCRIPT over¯ start_ARG italic_t end_ARG start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT (21)
s.t. xe=iIxeieformulae-sequencesubscript𝑥𝑒subscript𝑖𝐼subscript𝑥𝑒𝑖for-all𝑒\displaystyle x_{e}=\sum_{i\in I}x_{ei}\quad\forall e\in{\mathcal{E}}italic_x start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT = ∑ start_POSTSUBSCRIPT italic_i ∈ italic_I end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_e italic_i end_POSTSUBSCRIPT ∀ italic_e ∈ caligraphic_E (22)
xex¯eeformulae-sequencesubscript𝑥𝑒subscript¯𝑥𝑒for-all𝑒\displaystyle x_{e}\leq\bar{x}_{e}\quad\forall e\in{\mathcal{E}}italic_x start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT ≤ over¯ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT ∀ italic_e ∈ caligraphic_E (23)
eOut(v)xeieIn(v)xei={0,if vJ and vi,jJdij,if v=i,div,if vJ,v𝒱,iI,formulae-sequencesubscript𝑒Out𝑣subscript𝑥𝑒𝑖subscript𝑒In𝑣subscript𝑥𝑒𝑖cases0if 𝑣𝐽 and 𝑣𝑖otherwisesubscript𝑗𝐽subscript𝑑𝑖𝑗if 𝑣𝑖otherwisesubscript𝑑𝑖𝑣if 𝑣𝐽otherwisefor-all𝑣𝒱𝑖𝐼\displaystyle\sum_{e\in\text{Out}(v)}x_{ei}-\sum_{e\in\text{In}(v)}x_{ei}=% \begin{cases}0,\;\text{if }v\notin J\text{ and }v\neq i,\\ \sum_{j\in J}d_{ij},\;\text{if }v=i,\\ -d_{iv},\;\text{if }v\in J,\end{cases}\forall v\in{\mathcal{V}},~{}i\in I,∑ start_POSTSUBSCRIPT italic_e ∈ Out ( italic_v ) end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_e italic_i end_POSTSUBSCRIPT - ∑ start_POSTSUBSCRIPT italic_e ∈ In ( italic_v ) end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_e italic_i end_POSTSUBSCRIPT = { start_ROW start_CELL 0 , if italic_v ∉ italic_J and italic_v ≠ italic_i , end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL ∑ start_POSTSUBSCRIPT italic_j ∈ italic_J end_POSTSUBSCRIPT italic_d start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT , if italic_v = italic_i , end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL - italic_d start_POSTSUBSCRIPT italic_i italic_v end_POSTSUBSCRIPT , if italic_v ∈ italic_J , end_CELL start_CELL end_CELL end_ROW ∀ italic_v ∈ caligraphic_V , italic_i ∈ italic_I , (24)

where xeisubscript𝑥𝑒𝑖x_{ei}italic_x start_POSTSUBSCRIPT italic_e italic_i end_POSTSUBSCRIPT denotes flow on edge e𝑒eitalic_e originating from origin iI𝑖𝐼i\in Iitalic_i ∈ italic_I; xesubscript𝑥𝑒x_{e}italic_x start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT denotes total flow on edge e𝑒eitalic_e; In(v)In𝑣\text{In}(v)\subset{\mathcal{E}}In ( italic_v ) ⊂ caligraphic_E and Out(v)Out𝑣\text{Out}(v)\subset{\mathcal{E}}Out ( italic_v ) ⊂ caligraphic_E denote sets of links coming in and out of node v𝒱𝑣𝒱v\in{\mathcal{V}}italic_v ∈ caligraphic_V respectively. Equation (24) imposes flow continuity constraint in form of Kirchhoff’s current law.

In this form MCMF problem has O(mT|I|)𝑂𝑚𝑇𝐼O(mT|I|)italic_O ( italic_m italic_T | italic_I | ) variables and O(nT|I|)𝑂𝑛𝑇𝐼O(nT|I|)italic_O ( italic_n italic_T | italic_I | ) constraints. Constraint (24) can be written in a matrix form using the incidence matrix of the time-expanded graph. This allows to apply existing linear programming solvers [14, 12], but for larger networks or finer time discretization this approach may not work due to the problem’s size.

4.2 Column Generation

The column generation approach [1, Section 17.5] can be applied to solve the MCMF problem in the path-flows form (20). Basically, it is a specific variant of simplex method, which tackle the problem of huge dimension of P𝑃Pitalic_P by operating only on a limited subset of paths from P𝑃Pitalic_P which carry nonzero flow. Column generation simplex method at each iteration solves the shortest paths problem for each demand and then solves a linear system of equations to distribute path flows between previously used paths and newly found shortest paths. Dual variable’s values are updated to satisfy a condition that all active paths for given demand have the same travel costs (with respect to the additional costs introduced by the dual variables). The primal variables in the linear system, also called basic variables, are nonzero path flows and nonzero slack variables for constraint (23). The number of basic variables is the number of paths with nonzero flow plus the number of not fully loaded link, and it is equal to |K|+||𝐾|K|+|{\mathcal{E}}|| italic_K | + | caligraphic_E |. Since ||=O(mT)𝑂𝑚𝑇|{\mathcal{E}}|=O(mT)| caligraphic_E | = italic_O ( italic_m italic_T ), the system can be prohibitively large.

However, it is likely that only a small subset of links will carry nonzero flow at each iteration: for every t𝒯,u,vVformulae-sequence𝑡𝒯𝑢𝑣𝑉t\in{\mathcal{T}},~{}u,v\in Vitalic_t ∈ caligraphic_T , italic_u , italic_v ∈ italic_V links ((u,t),(v,t))𝑢𝑡𝑣superscript𝑡\left((u,t),(v,t^{\prime})\right)( ( italic_u , italic_t ) , ( italic_v , italic_t start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) ) can be expected to be used only for ttsuperscript𝑡𝑡t^{\prime}\geq titalic_t start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ≥ italic_t in a small subset of 𝒯𝒯{\mathcal{T}}caligraphic_T, corresponding to limited variation of waiting time between users in the same queue. After solving the shortest path subproblem, unused links can be removed from consideration for the linear system solving step, greatly reducing number of variables in the system. With this optimization in mind, we can expect each step of the column generation simplex method require solving linear system on O(m+|K|)𝑂𝑚𝐾O(m+|K|)italic_O ( italic_m + | italic_K | ) variables and solving the shortest path problem on network with O(Tn)𝑂𝑇𝑛O(Tn)italic_O ( italic_T italic_n ) nodes and O(Tm)𝑂𝑇𝑚O(Tm)italic_O ( italic_T italic_m ) links for each demand, what can be done by |I|𝐼|I|| italic_I | invocations of Dijkstra’s algorithm.

4.3 Dual Subgradient Methods

By using Lagrangian duality to handle the capacity constraints (18) in problem (20), one can obtain the following primal-dual problem [1, Section 17.4]:

maxye0,eminxp0,pPpPijxp=dij{et¯epexp+eye(pexpx¯e)},subscriptsubscript𝑦𝑒0𝑒subscriptformulae-sequencesubscript𝑥𝑝0𝑝𝑃subscript𝑝subscript𝑃𝑖𝑗subscript𝑥𝑝subscript𝑑𝑖𝑗subscript𝑒subscript¯𝑡𝑒subscript𝑒𝑝subscript𝑥𝑝subscript𝑒subscript𝑦𝑒subscript𝑒𝑝subscript𝑥𝑝subscript¯𝑥𝑒\max_{\begin{subarray}{c}y_{e}\geq 0,\\ e\in{\mathcal{E}}\end{subarray}}\min_{\begin{subarray}{c}x_{p}\geq 0,p\in P\\ \sum\limits_{p\in P_{ij}}x_{p}=d_{ij}\end{subarray}}\left\{\sum_{e\in{\mathcal% {E}}}\bar{t}_{e}\sum_{p\ni e}x_{p}+\sum_{e\in{\mathcal{E}}}y_{e}\left(\sum_{p% \ni e}x_{p}-\bar{x}_{e}\right)\right\},roman_max start_POSTSUBSCRIPT start_ARG start_ROW start_CELL italic_y start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT ≥ 0 , end_CELL end_ROW start_ROW start_CELL italic_e ∈ caligraphic_E end_CELL end_ROW end_ARG end_POSTSUBSCRIPT roman_min start_POSTSUBSCRIPT start_ARG start_ROW start_CELL italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ≥ 0 , italic_p ∈ italic_P end_CELL end_ROW start_ROW start_CELL ∑ start_POSTSUBSCRIPT italic_p ∈ italic_P start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT = italic_d start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT end_CELL end_ROW end_ARG end_POSTSUBSCRIPT { ∑ start_POSTSUBSCRIPT italic_e ∈ caligraphic_E end_POSTSUBSCRIPT over¯ start_ARG italic_t end_ARG start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT ∑ start_POSTSUBSCRIPT italic_p ∋ italic_e end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT + ∑ start_POSTSUBSCRIPT italic_e ∈ caligraphic_E end_POSTSUBSCRIPT italic_y start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT ( ∑ start_POSTSUBSCRIPT italic_p ∋ italic_e end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT - over¯ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT ) } , (25)

where dual variables yesubscript𝑦𝑒y_{e}italic_y start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT penalize usage of congested links. As in column generation approach, one iteration of a subgradient method for solving the dual problem (by variable y𝑦yitalic_y) require finding shortest paths for all demands with respect to additional costs introduced with dual variables. Demands are then distributed over the shortest paths what induces the so-called all-or-nothing traffic assignment on links. Comparing to column generation, the linear system solving step is replaced with a much simpler operation: the flow distribution from the previous iteration is averaged with the obtained all-or-nothing assignment. Dual variables values yesubscript𝑦𝑒y_{e}italic_y start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT are increased for congested links and decreased for links with available capacity (proportionally to the difference pexpx¯esubscript𝑒𝑝subscript𝑥𝑝subscript¯𝑥𝑒\sum_{p\ni e}x_{p}-\bar{x}_{e}∑ start_POSTSUBSCRIPT italic_p ∋ italic_e end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT - over¯ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT in case of classical subgradient method). Again, only variables, corresponding to active (used) links are updated at each iteration.

In [18] a detailed discussion of this approach is given for general MCMF problem (referred to by the alias of the stable dynamic model) with convergence analysis of adaptive primal-dual subgradient methods.

Since practically efficient simplex method has unsatisfying worst-case complexity [17], we cannot make informative analytical comparison of complexities of above mentioned approaches. However, one can expect link-based approach 4.1 only work for small networks, while column generation 4.2 and dual subgradient 4.3 methods can be applied for large networks with the latter have computationally more affordable but less effective iteration.

5 Conclusion

The proposed dynamic model has relatively low computational complexity, and suitable solution algorithms for various scenarios were proposed. It has no guarantees for the uniqueness of the equilibrium, but the system optimum solution is always an equilibrium and significant differences in travel costs for different equilibria may indicate inefficient system design. More physical modelling of link flows than in the Beckmann model and broader application range than that of the Stable Dynamics model (e.g. peak hours) give the potential to use the proposed model as a compromise between static and more complex dynamic approaches e.g. in combined travel-demand models.

{credits}

5.0.1 Acknowledgements

The research is supported by the Ministry of Science and Higher Education of the Russian Federation (Goszadaniye) No. 075-03-2024-117, project No. FSMG-2024-0025.

References

  • [1] Ahuja, R.K., Magnanti, T.L., Orlin, J.B.: Network flows. Cambridge, Mass.: Alfred P. Sloan School of Management, Massachusetts … (1988)
  • [2] Akamatsu, T., Wada, K., Hayashi, S.: The corridor problem with discrete multiple bottlenecks. Transportation Research Procedia 7, 474–498 (2015)
  • [3] Akamatsu, T., Wada, K., Iryo, T., Hayashi, S.: A new look at departure time choice equilibrium models with heterogeneous users. Transportation Research Part B: Methodological 148, 152–182 (2021)
  • [4] Arnott, R., De Palma, A., Lindsey, R.: Route choice with heterogeneous drivers and group-specific congestion costs. Regional Science and Urban Economics 22(1), 71–102 (1992)
  • [5] Babazadeh, A., Javani, B., Gentile, G., Florian, M.: Reduced gradient algorithm for user equilibrium traffic assignment problem. Transportmetrica A: Transport Science 16(3), 1111–1135 (2020)
  • [6] Beckmann, M., McGuire, C.B., Winsten, C.B.: Studies in the economics of transportation. Tech. rep. (1956)
  • [7] Boyles, S.D., Lownes, N.E., Unnikrishnan, A.: Transportation Network Analysis, vol. 1 (2023), edition 0.91
  • [8] Bubeck, S.: Convex optimization: Algorithms and complexity. arXiv preprint arXiv:1405.4980 (2014)
  • [9] Carey, M.: Nonconvexity of the dynamic traffic assignment problem. Transportation Research Part B: Methodological 26(2), 127–133 (1992)
  • [10] Dafermos, S.: Traffic equilibrium and variational inequalities. Transportation science 14(1), 42–54 (1980)
  • [11] Daganzo, C.F.: The uniqueness of a time-dependent equilibrium distribution of arrivals at a single bottleneck. Transportation science 19(1), 29–37 (1985)
  • [12] Diamond, S., Boyd, S.: CVXPY: A Python-embedded modeling language for convex optimization. Journal of Machine Learning Research 17(83),  1–5 (2016)
  • [13] Florian, M., Wu, J.H., He, S.: A multi-class multi-mode variable demand network equilibrium model with hierarchical logit structures. In: Transportation and Network Analysis: Current Trends: Miscellanea in Honor of Michael Florian, pp. 119–133. Springer (2002)
  • [14] Huangfu, Q., Hall, J.J.: Parallelizing the dual revised simplex method. Mathematical Programming Computation 10(1), 119–142 (2018)
  • [15] Ignashin, I., Yaramoshik, D.: Modifications of the frank-wolfe algorithm in the problem of finding the equilibrium distribution of traffic flows. Mathematical Modeling and Numerical Simulation 10(1), 10–25 (2024)
  • [16] Iryo, T., Yoshii, T.: Equivalent optimization problem for finding equilibrium in the bottleneck model with departure time choices. In: 4th IMA International Conference on Mathematics in TransportInstitute of Mathematics and its Applications (2007)
  • [17] Klee, V., Minty, G.J.: How good is the simplex algorithm. Inequalities 3(3), 159–175 (1972)
  • [18] Kubentayeva, M., Gasnikov, A.: Finding equilibria in the traffic assignment problem with primal-dual gradient methods for stable dynamics model and beckmann model. Mathematics 9(11),  1217 (2021)
  • [19] Kubentayeva, M., Yarmoshik, D., Persiianov, M., Kroshnin, A., Kotliarova, E., Tupitsa, N., Pasechnyuk, D., Gasnikov, A., Shvetsov, V., Baryshev, L., et al.: Primal-dual gradient methods for searching network equilibria in combined models with nested choice structure and capacity constraints. Computational Management Science 21(1),  15 (2024)
  • [20] Li, Z.C., Huang, H.J., Yang, H.: Fifty years of the bottleneck model: A bibliometric review and future research directions. Transportation research part B: methodological 139, 311–342 (2020)
  • [21] Liu, Y., Nie, Y.M., Hall, J.: A semi-analytical approach for solving the bottleneck model with general user heterogeneity. Transportation research part B: methodological 71, 56–70 (2015)
  • [22] Merchant, D.K., Nemhauser, G.L.: A model and an algorithm for the dynamic traffic assignment problems. Transportation science 12(3), 183–199 (1978)
  • [23] Merchant, D.K., Nemhauser, G.L.: Optimality conditions for a dynamic traffic assignment model. Transportation Science 12(3), 200–207 (1978)
  • [24] Mitradjieva, M., Lindberg, P.O.: The stiff is moving—conjugate direction frank-wolfe methods with applications to traffic assignment. Transportation Science 47(2), 280–293 (2013)
  • [25] Nesterov, Y., De Palma, A.: Stationary dynamic solutions in congested transportation networks: summary and perspectives. Networks and spatial economics 3, 371–395 (2003)
  • [26] Nie, Y.M., Zhang, M.H.: Numerical solution procedures for the morning commute problem. Mathematical and computer modelling 49(7-8), 1295–1310 (2009)
  • [27] Reeder, P., Bhat, C., Lorenzini, K., Hall, K., et al.: Positive feedback: exploring current approaches in iterative travel demand model implementation. (2012)
  • [28] Smith, M.J.: The existence, uniqueness and stability of traffic equilibria. Transportation Research Part B: Methodological 13(4), 295–304 (1979)
  • [29] Smith, M.J.: The existence of a time-dependent equilibrium distribution of arrivals at a single bottleneck. Transportation science 18(4), 385–394 (1984)
  • [30] Vickrey, W.S.: Congestion theory and transport investment. The American economic review 59(2), 251–260 (1969)
  • [31] Wang, I.L.: Multicommodity network flows: A survey, part ii: Solution methods. International Journal of Operations Research 15(4), 155–173 (2018)
  • [32] Zhang, H.M., Nie, X.: Some consistency conditions for dynamic traffic assignment problems. Networks and Spatial Economics 5, 71–87 (2005)