Car path tracking in traffic flow networks with bounded buffers at junctions

This article deals with the modeling for an individual car path through a road network, where the dynamics is driven by a coupled system of ordinary and partial differential equations. The network is characterized by bounded buffers at junctions that allow for the interpretation of roundabouts or on‐ramps while the traffic dynamics is based on first‐order macroscopic equations of Lighthill‐Whitham‐Richards (LWR) type. Trajectories for single drivers are then influenced by the surrounding traffic and can be tracked by appropriate numerical algorithms. The computational experiments show how the modeling framework can be used as navigation device.


INTRODUCTION
Traffic flow modeling is a current and active research area since mathematical models help to get a deeper insight into the traffic mechanisms.Essentially, these models can be divided into microscopic and macroscopic depending on their individual characteristics.Microscopic models consider every vehicle as single agent with different properties specified by its position, speed, and acceleration, see, eg, Treiber and Kesting. 1 In contrast, macroscopic models include fewer specifications and are only characterized by aggregated variables such as traffic density, flow, and average speed, see, eg, Garavello et al 2 and Garavello and Piccoli. 3 More precisely, in the case of road networks, the macroscopic dynamics is typically given by hyperbolic conservation laws such that the traffic flow at junctions is distributed according to coupling conditions.Within this framework, also on-ramps or roundabouts can be modeled, cf. 4 In Goatin and Garavello 5 and Herty et al, 6 a novel type of intersection was introduced considering that junctions may have a storage capacity as buffers.][10] Unlike strongly coupled models, 9 a weakly coupled approach 8 assumes that the traffic influences the vehicle but not vice versa when the trajectory of the vehicle is given by an ordinary differential equation.In the case of congestion, the right-hand side of this ordinary differential equation becomes discontinuous, and we cannot expect a classical solution any more.The underlying theory of such kind of problems is considered in Colombo and Marson. 11,12In contrast to already existing models, we provide a formulation to track a car in a network with buffers at junctions, which leads to waiting times whenever a buffer is not empty.At junctions with more than one outgoing road, we introduce different methods to decide which road will be taken next.Moreover, a new numerical approach is presented and the tracking algorithm based on Bretti and Piccoli 8 is tailored to a network with buffers.The outline of the paper is as follows.Section 2 is devoted to the introduction of the weakly coupled network model assuming bounded buffers at junctions.The corresponding numerical analysis as well as a naive and complex tracking algorithm are presented in Section 3. Section 4 covers the numerical results.In particular, the performance of the developed algorithms at junctions is numerically investigated in several test networks.Additionally, the tracking algorithms are applied to compare different paths and the resulting arrival time.Conclusions and aspects for future research are outlined in Section 5.

WEAKLY COUPLED NETWORK MODEL
We start by presenting the traffic flow model of Herty, Lebacque, and Moutari. 6As the speed of a single car is assumed to depend on the traffic density, we refer to the approach in Colombo and Marson, 11,12 where only a single road is considered.In Section 2.2, a weakly coupled model to track the car's path in a network with buffers at junctions is developed.

Traffic flow model with bounded buffers
We consider a road network specified by a finite, connected, and directed graph  = (, ) in which the set of nodes  represents the junctions.The set of edges  denotes the finite collection of roads modeled by intervals I e = [a e , b e ] ⊆ R of length L e = b e − a e for all e ∈ .Further, the functions A ∶  →  and Ω ∶  →  provide the source and target node of an edge.For a given junction v ∈ , we call  + (v) the set of all incoming roads and  − (v) of all outgoing roads, respectively.
Remark 1.Note that different flux functions f e satisfying the assumptions from above could be also applied.As a consequence, following the ideas in Dal Santo et al, 15 the coupling conditions have to be defined more carefully.Therefore, to improve readability, we stick to the same flux function on every edge e.
In order to describe that a junction v ∈  has limited capacity r max v > 0, we introduce a bounded buffer r v (t) ∈ [0, r max v ] denoting the total number of cars in the buffer at time t.The buffer load can be modeled by an ordinary differential equation considering the inflow and outflow at a junction.We fix appropriate initial density functions  e,0 together with an initial buffer load r v,0 ∈ [0, r max v ] at time t 0 = 0 and formulate the Cauchy problem at an intersection v ∈  as e (x, 0) =  e,0 (x), (1b) ( e (a e , t)), (1c) with x ∈ (a e , b e ), t > 0 and for all e ∈  + (v) ∪  − (v).In Herty et al, 6 the existence of a weak entropy solution at junctions with one incoming and one outgoing road for constant initial data is ensured.Their approach has been extended to allow for an arbitrary number of incoming and outgoing roads and initial density functions of bounded total variation as in Goatin and Garavello. 5he remaining step concerns the exact inflow and outflow at junctions.More precisely, we have to prescribe coupling conditions to determine the flux and the corresponding density at both ends of each road q in e (t) =  ( e (a e , t)) and q out e (t) =  ( e (b e , t)).To simplify the notation, we use the so-called demand and supply function.For a strictly concave flux function demand and supply function.
Remark 2. The aim is to choose the inflow and outflow at a junction as high as possible to maximize the throughput.The demand d( e (b e , t)) gives the maximum flux that can come from a road e ∈  at time t whereas the supply s( e (a e , t)) denotes the maximum flux that can enter road e.We remark that flux maximization is not the only possibility to uniquely determine the flux at junctions.Alternatively, capacity drop assumptions might be used, see, eg, Dal Santo et al and Haut et al. 15,16 We only consider networks consisting of dispersing and merging junctions, see Figure 1.To model the flow at a junction v, we also introduce demand and supply functions for the buffer.The demand d B gives the maximum flux of cars that can leave the buffer and the supply s B expresses the maximum flux that can enter the buffer.
We assume that the buffer maximally increases and decreases at a fixed, constant rate  v .Since all incoming roads may provide a maximal flow of f(), the maximal incoming flow is given by | + (v)|f().Analogously, the maximal possible outgoing flow of the buffer is given by | − (v)|f().Therefore, we assume that , where the load might increase or decrease.For instance, a lower  v can be used to describe capacity restrictions of a roundabout.Summarizing, if the buffer is not completely full, the supply s B is constant, and the maximum flow entering the junction is bounded by  v .Similarly, provided that the buffer is not empty, the demand d B is constant, and the maximum flow leaving the junction cannot exceed  v .

One-to-two junction
In the case of a dispersing junction, see Figure 1 on the left, distribution rates  2,1 > 0and 3,1 > 0 have to be prescribed.These fixed coefficients are the percentages of drivers coming from the first road and continuing their path on road two or three.Thus, they represent the preferences of drivers.The condition  2,1 +  3,1 = 1 ensures that all drivers are distributed to an outgoing road.The demand of the buffer is given by The latter is constant and equal to  v , if the buffer is not empty and linked to the incoming flux of cars, if r v (t) = 0. To include that the maximum number of cars that can leave the junction is distributed to two roads, we restrict q in 2 (t) =  ( 2 (a 2 , t)) and q in 3 (t) =  ( 3 (a 3 , t)) by  2,1 d B (t) and  3,1 d B (t) instead of the total possible flux d B (t), ie, For the buffer supply s B (t), it must hold that if the buffer is full, ie, r v (t) = r max v , the flow entering the junction must not exceed the sum of the two outgoing fluxes or the maximum outflow  v .This implies In the case of an incompletely filled buffer, we assume that the supply is constant and equal to  v .These considerations lead to (5) Then, the actual outflow of an incoming road reads as which means that it is bounded by the supply of the buffer s B (t) and by the demand of the density on the first road d( 1 (b 1 , t)).The latter guarantees the correct wave speed, and the former that the capacity constraints of the buffer is not violated.

Two-to-one junction
For a merging junction, see Figure 1 on the right, we need to introduce so-called right-of-way priorities c 3,1 > 0, c 3,2 > 0 satisfying c 3,1 + c 3,2 = 1 to guarantee a unique solution at the junction.These parameters are needed to prescribe, which cars are allowed to enter whenever the buffer cannot take the total amount caused by restrictions r max v and  v .The actual outflow towards the buffer depends on the supply of the buffer and on the density at the end of the incoming roads, i.e., with buffer supply The demand of the buffer d B (t), which is the maximum flux that can leave the buffer, is bounded by the two incoming fluxes and  v .The actual flux towards road three is given by If r v (t) = 0, we obtain s B (t) =  v and Together with a constant flow of  v , if the buffer is not empty, we finally choose Note that in Herty et al, 6 the demand of the buffer is said to be The latter does not ensure a non-negative buffer load r v (t ) and s( 3 (a 3 , t)) sufficiently large since d B does not depend on the actual inflow to the buffer but only on the number of cars arriving at the end of the road.To illustrate this problem, we study an example in detail.
Lemma 1. Assuming d( 1 (b 1 , t)) ≠ 0 and d( 2 (b 2 , t)) ≠ 0 as well as time-dependent right-of-way priorities defined by Then, d Since d( 1 (b 1 , t)) > 0 and d( 2 (b 2 , t)) > 0, we obtain a contradiction.The same reasoning applies to the case c 3, We conclude that d Stand B always leads to a non-negative buffer load.
Proof.Since t  → r v (t) is continuous, we know that if r v (t) > 0, it follows r v (t + s) ≥ 0 for all s ∈ [0, t] and some t > 0 small enough.So, a negative buffer load might happen right after time t provided r v (t) = 0. Assume r v (t) = 0 at some time t ≥ 0, then we obtain for the slope This shows the positivity of the solution to the buffer equations.

Inflow and outflow
In a traffic network, we usually introduce some nodes v ∈ ,  ⊂ , with either only one incoming edge or only one outgoing edge.We call edges that are connected to one of these nodes, incoming or outgoing roads, since the cars enter or leave the network at these points.For nodes with only one outgoing edge, we prescribe desired inflow functions  in v (t).Additionally, we assume unlimited buffers r v (t) at these nodes, which means r max v = ∞.The load of this buffer will increase when the desired inflow is higher than the capacity of the following road at that time or higher than the maximum possible outflow  v .Hence, the inflow towards the first road is restricted to a reasonable value and even if the network is completely blocked, an admissible solution can be obtained.Similar to the buffers inside the network, the load decreases with rate  v when the traffic is less dense and the road is able to absorb a higher flux than  in v (t).The actual inflow and the demand of the buffer are set as Since  in v is the flux towards the buffer, the latter is given by On outgoing roads, we introduce the absorbing condition which prevents that backwards traveling waves emerge at outgoing nodes.In this case, the flux is not maximized at the end of the edge if  e (b e , t) > .

Comparison with a supply chain model
In the following, we remark that in the case of unbounded buffers r max v → ∞ and one-to-one junction, the traffic model with bounded buffers reduces to the well-known production model from D'Apice et al. 7 The latter model describes the flow of goods through a network of production lines, where each production step is characterized by a capacity  e > 0 and production velocity v e > 0. The flux function is then given by  prod e () = min{v e ,  e }, and the production density satisfies Together with the assumption of an unbounded buffer in front of every production step, the buffer size at the one-to-one junction is given by We state the following: Proof.We directly obtain s B (t) =  since r max v = +∞ and d( e ) = min{v e , }.Therefore, q out 1 (t) = min{, min{v 1 (b 1 , t), }} = q prod,out 1 (t).We also get This shows that the time evolution of the buffer coincides.It remains to argue that the transport along the edge is the same.Since we assume v e,0 ≤ , we recover a linear transport with velocity v in both cases.
Remark 3. Note that at junctions with more than one outgoing edge, the two models differ since the supply chain model assumes a buffer in front of each edge instead of a single buffer at the junction.

Car path
In the following, we extend the traffic flow model by a microscopic equation to track the path of a single car.We develop the mathematical formulation before discussing the choice of the next road in a network based on the car's scope of information about the current traffic situation.

Model equations
To track the position x(t) of a single car on every road e ∈  that the car passes on its way from an initial position to its destination, we need a set of initial value problems .
with an appropriate speed function v() and initial data (t * e , x * e ), which means that the car is located at x * e ∈ [a e , b e ] on road e at time t * e .The main challenge is the discontinuous right-hand side of Equation (16a).In case of congestion, which is described by a shock wave in the LWR model, the speed of the car v() is not continuous.Consequently, the Picard-Lindelöf theorem cannot be applied to prove existence and uniqueness of a solution.Therefore, in Colombo and Marson, 11,12 the wider class of Filippov solutions 17 are considered.Such a solution is defined at a discontinuity by the derivative, and a solution is no longer required to be continuously differentiable but an absolutely continuous function.The existence and uniqueness of a Filippov solution have been proven in Colombo and Marson. 11,12o far, the car's behavior at junctions is not obvious, and we do not know how to choose the initial data (t * e , x * e ) properly.Therefore, we take a closer look at the travel time on a road e ∈  and the waiting time at a junction v with e ∈  + (v).The definition of the travel time is based on the formulation in Göttlich and Harter. 10Figure 2 shows an illustration of the notation that will be utilized in the following.
Let us denote by t * e ∈ [0, T] the time at which the car is located at x * e ∈ [a e , b e ] on a road e ∈ .To simplify the following considerations, we assume without loss of generality that x * e = a e .This means that the car is located at the beginning of the considered road, ie, x(t * e ) = x * e = a e .Hence, the required travel time tt e (t * e ) on this road e can be described by the arrival time at the end of the road.Note that the travel time depends on the starting time t * e since the traffic density on the road varies over time.Let te be defined such that x( te ) = b e .Then, te is strictly greater than t * e since all roads have positive Due to the non-negative speed , x(t) is nondecreasing.However, it is possible that the car has zero speed in a traffic jam.Therefore, there might be more than one te satisfying x( te ) = b e .For this reason, we define the arrival time at the end of road e by at e (t * e ) = min{t ∈ (t * e , T] ∶ x(t) = b e }.Due to this consideration, the travel time on road e is given by tt e (t * e ) = at e (t * e ) − t * e .Now, we turn to the waiting time at junctions.The cars are assumed to behave according to the First-In-First-Out (FIFO) principle.The idea behind this concept is that if the buffer is non-empty, the considered car has to wait until all cars, which had arrived earlier, have left the buffer.If the buffer load at the junction v is empty when the car arrives at the end of road e, which means r v (at e (t * e )) = 0, the car leaves immediately, and the waiting time at node v is equal to zero, wt v (at e (t * e )) = 0. Since the buffer has no spatial dimension, the end of an incoming road e is the beginning of an outgoing road ẽ b e = a ẽ, for all e ∈  + (v), ẽ ∈  − (v).
For this reason, the starting time t * ẽ on the next road is equal to the arrival time at the end of the previous road t * ẽ = at e (t * e ), and the car must be located at the beginning of the new road x(t * ẽ ) = b e = a ẽ.Note that the road ẽ is only uniquely determined if the junction has only one outgoing road.In case of a dispersing junction, we will need a criteria to decide which road is taken by the driver.This issue is dealt with in the next subsection.
If the buffer is non-empty, ie, r v (at e (t * e )) > 0, the considered car has to wait, and the starting time t * ẽ on the new road ẽ is defined by the buffer load at the arrival time at e (t * e ) and the outflow  out v (t) while the car is inside the buffer.In fact, we have to solve out v (t) dt.
In the same manner as before, we can argue that t  out v (t) dt.(18)   Note that  out v (t) denotes the total outflow from node v towards all outgoing roads e ∈  − (v), ie, q in e (t).
This function is non-negative, and we are searching a t * ẽ that satisfies

Choice of the next road
Whenever a car arrives at a dispersing junction, the driver decides which outgoing road will be taken next.One possibility is the use of the road being part of the shortest path to the destination in terms of total road length.Another approach might consider travel and waiting times to obtain the fastest path.In the following, we apply Dijkstra algorithm, 18 where the definition of time-varying weights is the crucial point.

Complete information
In a first situation, the car has complete information on the traffic and on its own properties including the initial position, the destination, and the departure time.Clearly, following the shortest path generally does not correspond to the earliest arrival time at the destination.For this reason, we include the travel and waiting times defined previously to find the fastest path.Then, our aim is to find the earliest path arrival time such that The following lemma enables to apply classical methods to find the earliest arrival time path from the theory of static networks as described in Dreyfus. 20 satisfies the condition of a FIFO network.
Proof.We have to show that for all edges e ∈  and t < t, is valid.We begin by considering two cars starting at t and t with t < t.Additionally, we assume that the car, which started later, arrives earlier at the end of the road that means t + ttt e (t) > t + ttt e ( t).Then, this car needs to overtake the other car at some point.While the car is inside the buffer, this is not possible since the car has to wait in an ordered queue until the cars in front of it have left the buffer.Thus, t + wt v (t) ≤ t + wt v ( t) and overtaking must happen on the road.Then, there must exist a point (x o , t o ) with x o ∈ [a e , b e ] and t o ≥ t + wt v ( t).At this point, the speed of both cars is equal to ( e (x o , t o )).Consequently, they travel at the same speed until the end of the road and arrive at the same time.We obtain t + ttt e (t) = t + ttt e ( t), which leads to a contradiction.
The consideration of FIFO networks has the advantage that the concatenation property is valid.Hence, it is sufficient to assign only one label to each node representing the earliest arrival.Then, these labels can be successively updated similar to Dijkstra algorithm using the total travel times instead of distances between the nodes.

Departure time not available
We study the situation in which we know the aggregated densities and buffer loads over time, but the exact departure time of the car is unknown.Therefore, we use an aggregated measure to determine a path instead of requiring exact waiting and travel time functions.This approach has its origin in the field of optimization of traffic flow models. 2,3A possible target can be the minimization of the travel time for all cars in the network within a given time horizon as studied in Treiber and Kesting. 1 First, we consider the total number of cars on an edge e on the complete time horizon [0, T], which reads e (x, t) dxdt.
We know that the higher this quantity, the higher the total time spent by cars traveling along this road.Thus, we obtain a measure corresponding to the travel time.Next, we must include the waiting time at nodes in some way.The buffer load over the interval [0, T] is given by and provides an analogy to the waiting time.To compare these two measures, we normalize the quantities by their maximum value and obtain Now, we combine these single elements and define for parameters w  , w r ∈ [0, 1] with w  + w r = 1 the weights  e on each edge e ∈ , These time-independent weights enable to apply static methods, as for instance Dijkstra algorithm, to find a path with minimum weights from the target node of the initial edge s = (e * ) to the destination d.Instead of using the distance of each edge, we use these weights to find a path.Then, the car chooses the next edge in P at every junction.

Departure time and current information available
In general, having full information about the traffic is a strong assumption.Therefore, it might be reasonable to update the path of the car during its journey based on the current information.More precisely, at every dispersing junction, we restart a fastest path algorithm from the current node using only the information available at this time point.Hence, the waiting and travel times are not given as input functions but only for the fixed and current times t when the car is at a dispersing junction.Obviously, we cannot expect to obtain the exact travel and waiting times due to the lack of information, but the updating procedure provides the opportunity to change the path when the traffic on a road is suddenly more dense than somewhere else.
In contrast to the previous approach, we consider the total number of cars on the edge e only at a certain time t, ie, Likewise, the buffer load at this time is r v ( t).Again, we normalize and obtain the values Together with parameters w  , w r ∈ [0, 1] satisfying w  + w r = 1.Then, the weights of the Dijkstra algorithm on each edge e ∈  read as Doing so, we can apply Dijkstra algorithm to find a path from the current node to the destination that is followed by the car up to the next dispersing junction.

NUMERICAL DISCRETIZATION AND TRACKING ALGORITHMS
Before discussing the discretization of the car path trajectory, an appropriate scheme to approximate the solution of the traffic flow problem is presented.First, we introduce a spatial grid a e = x e,0 < x e,1 < … < x e,N e = b e of N e + 1, N e ∈ N, points on all roads of length L e = b e − a e , e ∈  with step size h e = x e,i − x e,i−1 , for alli ∈ {1, … , N e }.Additionally, we use M + 1, M ∈ N, time points t n to discretize the time interval [0, T], with time horizon T > 0, such that 0 = t 0 < t 1 < ... < t M = T.To achieve numerical convergence, the temporal step size  has to be linked to the spatial step size h e by the CFL-condition.On a road network, h e can vary due to different road lengths.To define coupling conditions at junctions, we need a uniform time discretization for all roads.For the flux function f() = 1 − , the choice where F G (u, v) denotes the numerical flux of the Godunov scheme.The fluxes at the boundary q in,n e and q out,n e are obtained by replacing the continuous variables in ( 2)-( 10) by their discrete versions.As approximation to r v (t n ), we use the first order explicit Euler method and obtain The presented approximation of the density and the buffer load allow for a discretization of the car's path.In Section 3.1, a naive algorithm to track a car on a single road is investigated before applying a more complex one in Section 3.2.Section 3.3 is aimed at approximating the travel and waiting times.For completeness, we give a brief description of the discrete versions of the edge weights to determine the next road of the car's path in Section 3.4.

Naive tracking algorithm
An intuitive approach to solve an ordinary differential equation numerically might be the explicit Euler method.We consider a car starting at time t 0 = 0 at position x 0 = x * and iteratively compute the position x n+1 at the next time t n+1 by The speed of the car is based on the average density  n i+0.5 of the cell in which the car is located at time t n .Note that we drop the index e here since we only consider a single road.We terminate the procedure above when the car either crosses the end of the road or the time horizon T is reached.
Apparently, we cannot completely avoid an error due to the underlying approximated cell averages.However, we expect this error to decline with decreasing step size.The naive algorithm does not adjust the car's speed when it reaches a new cell with a possibly different density within a time step.Additionally, waves are assumed to emerge at cell boundaries and to travel along the road, which should immediately influence the speed of the car when hit by a wave.Therefore, we also consider a more complex algorithm including interactions with waves.

Complex tracking algorithm
The more complex algorithm is based on the work of Bretti and Piccoli 8 to track a car in a classical traffic network without buffers at junctions.The idea of this algorithm is to exactly solve the coupled ordinary differential equation at every time step using the piecewise constant densities resulting from Godunov method to describe the speed of the car.We start by defining the shifted cells Since the cell averages used for the Godunov scheme are defined from x i to x i+1 , the emerging waves start exactly in the middle of these shifted cells C i .For a schematic illustration of the shifted cells, we refer to Figure 3. Proof.By the CFL condition  ≤ 1 2 h max | ′ ()| , two neighboring waves do not interact before , and the car can travel at most a distance of half a cell in one time step due to v() ≤ 1.Consequently, for x n ∈ [x i−0.5 , x i ], only a wave starting at x i can intersect the car trajectory before .
If x n ∈ [x i , x i+0.5 ), we take a closer look at the wave starting at x i .In case of a shock wave, ie,  i−0.5 <  i+0.5 , its speed can be calculated according to the Rankine-Hugoniot-condition.Since f() = v() with a strictly decreasing function v, we can write x.
In case of a rarefaction, the wave propagates at the speed x.
The inequality holds due to the decreasing velocity, v ′ < 0, and  n i+0.5 ≥ 0. In both cases, we see that the wave is never faster than the car.We conclude that a wave starting at x i has no intersection with the car trajectory if x n ∈ [x i , x i+0.5 ).
Then, the algorithm can be formulated in the following.We divide the cell C i = [x i−0.5 , x i+0.5 ) in half, ie, either and only study the case x n ∈ [x i−0.5 , x i ) since the procedure for x n ∈ [x i , x i+0.5 ) is similar.Further, we distinguish between no wave, shock, and rarefaction.For simplicity, we assume f() = v() = (1−), which allows for explicit representation.When no wave occurs at x i , the car is not deflected away from its original path, and its speed remains constant on [t n , t n+1 ].In particular, the new position at time t n+1 can be calculated by the explicit Euler method, similar to the naive algorithm, ie, 5 , the path of the car possibly consists of two parts with different velocities.Starting with v( n i−0.5 ), the car drives at a lower speed v( n i+0.5 ) after an interaction with the shock front.The cell C i together with the car trajectory and the shock front are depicted in Figure 4. Until the time t n + τ, when the car interacts with the wave, the car trajectory can be expressed by The velocity of a shock wave starting at x i at time t n satisfies .
When the car hits the shock front, which reads the point of the intersection (t n + τ, x) is given by We note that τ is well-defined since it can be shown that v( n i−0.5 ) ≠  i by employing f() = v() = (1−).Additionally, τ > 0 due to x n ∈ [x i−0.5 , x i ).Now, we distinguish: (i) τ ≥ , ie, the shock and the car do not interact before , and the car's position at time t n+1 is (ii) τ < , ie, we have an intersection at (t n + τ, x) and the new position at time t n+1 is If  n i−0.5 >  n i+0.5 , a rarefaction starts at x i at time t n and we need to consider three different elements of the car trajectory.First, the car will drive at speed v( n i−0.5 ).If it comes to an intersection with the rarefaction, the speed continually increases until the car possibly leaves the rarefaction.Figure 5 shows a schematic illustration of the trajectory.

FIGURE 4
Trajectory of a car that hits a shock front at the intersection (t n + τ, x)

FIGURE 5
Trajectory of a car that reaches a rarefaction at (t n + τ, x) and leaves at (t n + τ, x) With the choice v() = 1 − , the ODE to be solved in case of a rarefaction starting at (t n , x i ) becomes .

x(t) = v(𝜌(x(t), t))
The first intersection that is denoted again by (t n + τ, x) can be derived in the same manner as in the case of a shock.Instead of applying the Rankine-Hugoniot-condition to obtain the speed of the wave, we take the velocity at which the rarefaction propagates to the left, ie, Thus, we can compute the coordinates of this intersection according to Again, it can be shown that τ is well-defined and always positive.To describe the car trajectory while the car is in the rarefaction, we have to solve the inhomogeneous linear ordinary differential equation .
Applying the method variation of parameters, the solution reads Note that t n + τ defines the time at which the car leaves the rarefaction.However, τ is not necessarily smaller than infinity.It is also possible that the car never leaves the rarefaction.To find out if a final intersection at x at time t n + τ exists, compare Figure 5, we solve the equation where x(t n + is given by ( 27).Rearranging leads to It can be shown that ≠ 0 by using the explicit values for τ and x.If  n i+0.5 = 0, the unique solution to this non-linear equation is τ = 0.This means, that there is no final intersection point since the car is not fast enough to leave the rarefaction.To be more precise, the rarefaction propagates at speed  ′ ( n i+0.5 ) = 1 to the right.At the same time, the car becomes faster while driving through the rarefaction.However, it can reach at most the speed v max = 1.Hence, it cannot overtake the right rarefaction front.Otherwise, if  n i+0.5 ≠ 0, (29) has two solutions .
The second candidate is the desired τ, which is well-defined since  n i+0.5 ≠ 0 and τ > 0. By ( 27)-( 28), the position of the final intersection x is given by To calculate the new position of the car, we differentiate the following cases.
(i) τ ≥ , ie, no interaction takes place before  and the new position of the car at time t n is given by (ii) τ < , ie, the car interacts with the rarefaction before  and we need to further distinguish: (a) τ ≥ , ie, the car is still in the rarefaction at time t n+1 .Applying (27) yields (b) τ < , ie, the car has left the rarefaction before , and we also have to include the part of the trajectory when the car drives at speed v( n i+0.5 ).We obtain According to the described procedure, we would have to consider the wave starting at x N for a car located in the last cell is the endpoint of the road, we do not have a density  n N+0. 5 .A possible remedy is to extend the road artificially assuming the same density  n N−0.5 as in the last cell, see Figure 6.This implies that no wave emerges from x N and the car drives at constant speed v( n N−0.5 ) to the end of the road.

Travel and waiting time
For both approaches, ie, the naive and complex algorithm, we need to discretize the behavior at nodes.Let the car be located at time t n * ∈ {t 0 , ..., t M } at x * e on an edge e ∈ .For a sufficiently large time horizon T, our presented tracking algorithms terminate with n ∈ {n * , ..., M} such that condition x n ≥ b e is valid.For x n > b e , the car has driven too far and an intermediate step to calculate the arrival time exactly at the point b e is needed.
Since no wave emerges from b e , the car's speed can be assumed to be constant, and we are looking for the smallest n ∈ {n * , ..., M} and appropriate τ ∈ [0, ) such that which means that at time t n + τ, the car is located at b e .Note that v( n e,N e −0.5 ) ≠ 0, otherwise the car is waiting and must have already reached the end of the road in the time step before.Hence, τ is well-defined, and the travel time tt e (t n * e ) on road e can be approximated by tt n * e = (n − n * ) + τ.Since we know the arrival time t n + τ at the end of road e, we are able to approximate the buffer load r v (t n + τ) by rv with e ∈  + (v).For this purpose, we use linear interpolation between t n and t n+1 and define

FIGURE 6
Density at the end of a road with the total inflow and outflow at the node v at time t n denoted by  in, n v and  out, n v .Similar to the continuous formulation, we distinguish two cases rv = 0 and rv > 0.
If rv = 0, the car immediately passes the node and continues on the next road ẽ ∈  − (v) at a speed depending on the density in the first cell.That means the waiting time is zero, and the position of the car at the next time t n+1 is This case is illustrated in the left picture of Figure 7.
Otherwise, if rv > 0, we take a closer look at the discrete outflow  out,n v with n ≥ n.To obtain the outflow within two time steps, we use again linear interpolation.For a small buffer load and a sufficiently large outflow  out, n v , it is possible that the car enters and leaves the buffer within , as depicted in the center of Figure 7.Then, the leaving time t n + τ with τ ∈ ( τ, ) is given by As a consequence, the approximated waiting time at the node is wt n v = τ − τ and the car's position at time t n+1 can be computed by If the car has to wait longer inside the buffer, we look for the smallest n ∈ {n + 1, n + 2, ..., M} and τ ∈ [0, ) such that The right picture of Figure 7 shows a schematic illustration of this situation.Then, the approximated waiting time can be computed by For all n = n + 1, ..., n, the car is located at the end of the road, and its position is The first position on the new edge x ̂n+1 at the time t ̂n+1 is then Given the first position on the new edge, we can continue with one of our tracking algorithms using this point as initial datum.
We summarize the results in the following theorem, where the results follow from the derivation above for the generalization from v() = 1 −  to a general velocity function v() satisfying the stated assumptions from the beginning.Theorem 2. Let  n i+0.5 be the cell means of the cells . The solution of x ′ (t) = v((x(t), t)) for t ∈ (t n , t n+1 ), x(t n ) = x n at time t = t n+1 is then given by FIGURE 7 Trajectory of a car when the car can leave immediately (left), in the same time step (center), in the next time step (right) 1.No wave and shock where y solves  ′ (t) = v(( ′ ) −1 ( ) τ, and τ > τ is the solution to (t + τ) = x i +  ′ ( n i+0.5 ) τ.

At the end of road (x(t n+1
) ≥ b e ):

Choice of the next road
If the exact departure time is known, the car can drive along the fastest path calculated by an extended Dijkstra algorithm.Instead of requiring continuous input functions, which provide the travel and waiting times, we can integrate the calculation of these quantities into the algorithm.We use our tracking algorithms and the procedure described in the previous section to determine the waiting time as well as the travel time on the outgoing edges of already considered nodes.Then, we possibly update the labels in the same manner as in a static Dijkstra algorithm and obtain iteratively the path with the earliest arrival time to the destination.
To determine the aggregated path, the standard MATLAB function shortestpath can be applied using the discrete weights corresponding to (2.In the last considered scenario, the current traffic densities are only received at dispersing junctions.In this case, the car starts a new shortest path calculation at every junction with more than one outgoing road using the discrete weights depending on the time point t n defined in (30), when the car is almost at the end of the considered road.Summarizing, we have the following steps.First, the driver's trajectory is solved numerically by one of the presented tracking algorithms until the car reaches the end of the road.While the destination is not reached, the waiting time at the target node of the current edge is computed, and an outgoing edge is chosen according to the considered decision criteria.If it says that the car should follow the shortest, the aggregated or the fastest path, we provide these paths already as input variables since they can be calculated in advance.Then, the car simply chooses the next edge according to the appropriate path.Only in the scenario with incomplete information on the densities, the car updates its path at dispersing junctions since the densities are only available at certain time points.Then, we proceed until the destination node is reached.

COMPUTATIONAL RESULTS
This section deals with the numerical evaluation of the presented algorithms based on different types of networks.We start with linear networks to show the numerical behavior of the developed algorithms at nodes.Subsequently, the tracking algorithms are applied to compare different paths in a small network.Finally, a car is tracked in a large network of block structure while choosing its path based on different levels of information.

Behavior at nodes in linear networks
In this section, we investigate the behavior at nodes for different linear networks.First, we choose a small example such that the car faces constant traffic densities on the roads and the Godunov method provides the exact solution to the traffic flow problem.Hence, the car drives at constant speed v and our numerical tracking algorithms calculate the position on the road exactly since the updating rule provides the true values.This has the advantage that arising errors must be related to the behavior at nodes.We set the parameters The network together with the initial data are indicated in Figure 8.
The car starts at time t * 1 = 0 at the beginning of the first road x * 1 = 0.Although the densities on the roads are different, no wave occurs at a junction at the beginning of the simulation.This is due to the balance property of the buffers.In Figure 9, the characteristics together with the car trajectory as well as the buffer loads are depicted.At the second junction, the buffer decreases until it is completely empty.Then, a shock with positive speed emerges.However, the car is not affected since it has already passed the node at this time.The buffer at the third junction increases but does not reach r max 3 = 0.3 within T = 8.
For this small example, we are able to derive the analytical solution and hence the exact formulation of the car's trajectory can be described by The waiting times are wt 2 ( 10 7 ) ≈ 0.17 at the second node and wt 3 (3.6)≈ 0.69 at the third one.Using the step sizes h = 0.1 and  = 0.05, we obtain for both algorithms a truncation error of 2.35e-14, which is in the range of the computational accuracy of MATLAB, and the error is dominated by the round-off errors.
In a second example, we aim to study a non-linear case.More precisely, we compare two similar networks.In the first one, we consider a single road with length L 1 = 2 whereas the second network consists of two roads, L 1 = L 2 = 1, with an empty buffer in between.Both settings are depicted in Figure 10.Now, we choose initial data such that a rarefaction wave travels through the junction and the car can pass the buffer immediately.In fact, we set The remaining parameters are fixed to r max Assuming that the car starts at the beginning of the first edge x * 1 = 0 at time t * 1 = 0, the exact solution for the car's path up to the end of the single road is given by .
In the second setting, the buffer remains empty and the total flow traverses the junction without being kept back.Consequently, we assume the same car trajectory as in the first setting.For step sizes h = 0.1 • 2 −n , n = 0, 2, 4, 6, we calculate the truncation error The results are summarized in Table 1.
We observe that the resulting outcomes of the naive and complex algorithm are comparable.In both settings, the truncation error declines proportionally to the step sizes.The small difference between settings 1 and 2 is due to behavior at x = 1.In the first setting, the car can pass this point without any further calculations and at a speed corresponding to the density in the cell  1 .In the second setting, the car drives exactly up to the end of the first road and checks whether the buffer is empty or not.Then, it starts on the second road at a speed corresponding to cell  2 , which is higher than the speed corresponding to  1 since the traffic flow is described by a rarefaction.However, Table 1 shows that the difference between both settings tends to zero for decreasing step sizes.In both settings, the error is reasonably small, and evidence of convergence of the algorithms is observed.

Comparison of different paths
In this section, we consider a small network to study the different decision criteria of the car to choose the next edge.The network is depicted in Figure 11.All roads are of length L e = 1.The initial data are chosen such that the all fluxes are constant as long as the buffer load at junction 4 decreases.Therefore, we set a constant inflow  in 1 (t) = 0.2 and the following initial densities All buffers, except at junction 4, are initially empty: r 1,0 = r 2,0 = r 3,0 = r 5,0 = r 6,0 = 0 and r 4,0 = 0.5.

Trunc. Err. (Setting
The maximum buffer capacities are r max v = 0.5, v = 2, 3, 4, 5, and infinity at the incoming and outgoing nodes.Additionally, we choose  v = 0.25 and distribution rates in the way that more cars prefer road 2 to road 3 and road 6 to road 5.More precisely,  2,1 = 0.6,  3,1 = 0.4,  5,3 = 0.4 and  6,3 = 0.6. The right-of-way priorities are not fixed but time-dependent on the demand, and we consider a time horizon T = 15.We look at a car starting at different times t * 1 ∈ {0, 5} at the position x * 1 = 0.5 (triangle) with destination node 6.In Figure 11, the two possible paths P 1 and P 2 are depicted.Figure 12 shows the distances traveled depending on the time calculated by the complex tracking algorithm with step size h = 0.01.If the car starts at t * 1 = 0, it must wait at junction 4 since the buffer is not empty, wt P 2 tot ≈ 0.78.For this reason, the arrival times vary although the slope of the trajectories do not differ strongly.When the buffer is completely empty, the distribution rates ensure that the traffic is denser on the roads e ∈ {2, 4} than on the roads e ∈ {3, 5}.This effect makes P 2 preferable when the car starts at t * 1 = 5.Now, we study the choice of the path based on the different decision criteria introduced in Section 2.2.2.Since both paths are of length L = 4.5, the cars are indifferent whenever their decision is completely based on the path length.The application of the time-dependent Dijkstra algorithm with complete information provides the optimum path related to the arrival time, which is P 1 when the car starts at t * 1 = 0 and P 2 when it starts at t * 1 = 5.The same result is obtained assuming that accurate information on the densities is only available when the car is at a dispersing junction and when we successively update the path using the edge weights (32) with w  = w r = 0.5.Without knowing the exact departure time, the aggregated measure (3.4) with w  = w r = 0.5 provides the path P 2 .It includes the fact that from initial time t * 1 > 1, following P 2 leads to an earlier arrival time than P 1 .

Tracking a car in a block network
Now, we consider a bigger traffic network arranged in block structure and with road lengths of L e ∈ {1, 2} as depicted in Figure 13.The network has a single inflow node with  in 1 (t) =  (0.3) and two outflow nodes.We prescribe equal initial densities  e,0 = 0.3 on all roads e ∈  and r v,0 = 0 at each junction v ∈ .The maximum capacities at junctions inside the network are r max v = 0.3, and the inflow and outflow per time are restricted to  v = 0.25.The distribution rates are set to  i,j = 0.5 at all dispersing junctions, and the priority parameters are chosen according to (12).
The car starts at time t * 1 = 0 at the position of triangle and wants to reach the destination marked by the diamond in Figure 13.Note that the network is symmetric with an axis of reflection that connects the triangle to the diamond.Hence, for our chosen initial data, we have two shortest and two fastest paths.One shortest path is visualized by the light gray line in Figure 13.It has a total length of L short = 13 and the complex algorithm with h e = 0.01 yields an arrival time of 32.92.However, a faster path can be found, which is illustrated by the thick black line.Its total length L fast = 15 is higher, but the car arrives earlier at time t = 28.19.
In Figure 14, the distance traveled depending on the time is depicted for two cars following the shortest and fastest path, respectively.Since the paths overlap at the beginning and at the end, it is not surprising that the slopes are similar in these areas.However, the slope in case of the shortest path is steeper in the middle section due to the higher traffic density in this part of the network.Additionally, the total waiting times differ.By following the shortest path, the car must wait at two junctions, which leads to a higher waiting time of wt short tot ≈ 2.5 instead of wt  ast tot ≈ 1.1 following the fastest path.The algorithm based on complete information finds the fastest path.However, for w  = w r = 0.5, the algorithms aiming to find an optimum path for situations with imperfect information, lead to the shortest path but do not provide the earliest arrival time.

CONCLUSION
We considered the traffic flow model with buffers at junctions introduced in Herty et al. 6 We particularly presented a new approach to define the buffer demand preventing negative buffer loads.The link between the original and the new formulation is described in Lemma 1.
Built on the concepts of Bretti and Piccoli, 8 we successively extended two car path algorithms to networks with bounded buffers.Their numerical performance was evaluated by considering several test networks.Moreover, we investigated the possible paths and the corresponding arrival times at a given destination resulting from different choices to take the next road at junctions.
Future work may include the investigation of car path tracking in second order traffic flow models on networks.

CONFLICTS OF INTEREST
This work does not have any conflicts of interest.
which has a unique maximum at .If r max v = +∞ and v e,0 ≤ , then the solution of the traffic and production model coincide.

Lemma 3 .
The network of the presented coupled model together with the definition of the total travel time on an edge ttt e (t) = wt v (t) + tt e (wt v (t)), e ∈  − (v).

Lemma 4 . 2 h
Let x n ∈ C i be the position of the car at time t n .Further, the concave flux function f() = v() and cell averages approximated by the Godunov method are assumed.Then, under the condition  ≤ 1 max | ′ ()| , for x n ∈ [x i−0.5 , x i ) only the wave starting at x i , and similar for x n ∈ [x i , x i+0.5 ) only the wave starting at x i+1 can influence the car trajectory within a time step .

FIGURE 3
FIGURE 3Schematic illustration of the cells C i and average densities  n i+0.5

FIGURE 11 FIGURE 12
FIGURE 11Network together with the car's starting position (triangle) and the two possible paths P 1 and P 2 to reach the destination node 6

FIGURE 13 FIGURE 14
FIGURE 13Block network with start (triangle) and destination node (diamond), shortest path (light gray), and fastest path (dark gray) To achieve this, we prescribe the position of the car's departure x * e * ∈ [a e * , b e * ] on an initial edge e * ∈  at initial time t * e e ), T] ∶ r(at e (t * e )) = ∫ * ∈ [0, T].If the considered time horizon T is sufficiently large, the initial data for the remaining ODEs can be determined iteratively.At every junction v with incoming edge e ∈  + (v) and outgoing edge ẽ ∈  − (v), which are part of the car's path, we set t * ẽ = at e (t * e ) + wt v (at e (t * e )), x * ẽ = a ẽ.
19oke and Halsey19first dealt with the time-dependent shortest path problem.In general, a path can be written by a finite sequence of nodes and edges (v 0 , e 1 , v 1 , ..., e k , v k ) such that v 0 , ..., v k ∈  and e 1 , ..., e k ∈  with A(e i ) = v i−1 and (e i ) = v i for i = 1, ..., k.The set of all paths from a source s ∈  to a destination d ∈  is denoted by (s, d).For a given path P = (s, e 1 , v 1 , ..., e k , d) ∈ (s, d) and a departure time t ≥ 0, the path arrival time at P (t) is defined by the sum of the waiting time at nodes and the travel time on edges, ie, at P (t) =t + wt s (t) + tt e 1 (t + wt s (t)) + wt v 1 (t + wt s (t) + tt e 1 (t + wt s (t))) + ... + tt e k (...).
guarantees that waves emerging at the cell boundaries to be defined do not interact.For the discretization of the LWR equation on each road e ∈ , we use the Godunov method to approximate the cell averages G ( n e,i+0.5 ,  n e,i+1.5 ) − F G ( n e,i−0.5 ,  n e,i+0.5 )), Documentation: https://de.mathworks.com/help/matlab/ref/graph.shortestpath.html.Last checked: May 22, 2019.MATLAB Version R2017a.Car trajectory and characteristics (left) as well as buffer loads (right) *

TABLE 1 Truncation
error  for the settings depicted in Figure10