The bi-directional model has several sub-types. Either passing is allowed on both lanes, one or the other of the lanes, or no passing is allowed. Our model allows us to consider mixtures of these sub-types in which one type of rule is applied on a given section of roadway, and other sub-type on an adjacent section.
Consider a sub-type in which passing is allowed. An algorithm
which controls passing must account for a number of
circumstances.
First, a vehicle must have a constant acceleration
while passing;
is set to 0 during the pass.
Moreover, if an on-coming car is detected, the passing car
must immediately return to its own lane. In reality
vehicles generally do not attempt to pass unless
the pass can be completed; a model should reflect this.
We let each vehicle measure the "local density": the density of
cars in front the vehicle it would like to pass.
If the local density is sufficiently low, the vehicle has a good
chance of completing a pass, and we allow it to try.
Few passes will occur
when the global density is high,
even if the density is low on the opposite lane. The lanes
become effectively de-coupled,
and the bi-directional model reduces to a simple one-lane model.
Three different kind of jams can appear on a bi-directional road. The first and most common is a start-stop wave on one of the two lanes. The second is due to the an audacious driver who tries to pass though there is no space to return to the home lane. This happens rarely. Finally, a jam may occur when each of an adjacent pair of drivers, one on each lane, tries to pass simultaneously. This "super jam" halts all traffic on both lanes, since vehicles in our model do not have reverse gear. Our update algorithm has been designed to eliminate super jams, as described below.
Our CA rule set operates on a lattice with
two lanes in opposite directions (see figure 1). Each site has a state
, where 0 represents the
absence of a vehicle,
a stopped vehicle,
a vehicle moving
with speed 1 in the positive, resp. negative direction and so on.
Thus, both vehicles and lanes can be labeled "+" and "
",
A "+" vehicle on the "+" lane, is in its home lane, and
a "+" vehicle on the "
" lane, is in the passing lane. Home
and passing lanes are defined symmetrically for "
" vehicles.
Vehicle movement is calculated in a two-step process, following [2]. First vehicles change lanes, then they advance.
In addition to the functions and variables introduced above,
we will need the following:
: floor;
: sign;
: logical negation;
: the velocity of the vehicle
ahead on the (same, opposite) lane.
: true iff the vehicle is on its home lane;
: true iff
;
: if
AND
then a
pass may be attempted.
: if
AND
then
the vehicle returns immediately to its home lane.
: local density: the fraction of the
sites in front of the given
vehicle which are occupied;
: the maximum local density for a safe pass,
In our simulations we use the following values throughout:
,
,
=
,
= 0.7, and
=0.5.
Lane changes are determined by the following steps:
AND (
) AND
(
) AND
(
) AND
(
)) THEN change lane
AND (
OR
) THEN change lane
The first condition affects vehicles on the home lane. If the
vehicle in from of them is at a distance less than
,
then they would like to pass that vehicle. However, a pass will
only be initiated if there is room far enough ahead on the
passing lane, and the number of cars in front of the vehicle
it would like to pass is small. Passing occurs
randomly, even if all these conditions are met,
the probability of changing lanes is
denoted
. The second condition concerns
vehicles in the midst of passing. They return to their home lane
if forced to by an oncoming vehicle, or if there is
space enough on the home lane that they can return without
braking.
Suppose that two opposite vehicles want to pass simultaneously, then according to the previous conditions, each car which is on the passing lane will keep its velocity (no randomization) and each car on the home lane will see its velocity reduce by one. This will create a free site for each passing car to come back on its home lane.
Forward motion of a vehicle is determined as follows:
) THEN
AND (
))
THEN
) AND (
)) THEN
AND (
) AND (
) AND
) THEN
AND
AND (
) )
This part of the algorithm has the effect of (1) accelerating the vehicle to maximum velocity, (2) rapidly decelerating the vehicle if there is an oncoming car too close, (3) decelerating the vehicle if it is closing in on another, both in their home lane, and (4) randomly decelerating the vehicle if it is on its home lane; if it is passing, it never decelerates randomly.(5) breaks the symmetry between the lanes, and thus prevents the emergence of a super jam.
Figure: A typical space-time diagram
Figure: passing and no-passing zones
Figure 4: Contour plot of flow on the home lane