... problem.4.1
In C, this would be done via malloc.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... here.4.2
For experts: The main reason why we do not use it is because constructors are not inherited. For templatized classes, as will be useful for the network construction (Sec. 10), this means that each change of the constructor arguments in the template methods necessitates corresponding changes in all derived classes. We found that rather inconvenient.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... etc.:7.1
Again, there are specific commands in the STL to achieve the same thing. We leave that to the experts.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... vector.7.2
One could use allocate, but the use of push_back preserves at least somewhat the look and feel of a traditional array.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... skipped.9.1
If this token is not zero, then the following numbers are not only NodeIDs, but also passenger IDs. We do not want to treat this case.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... obtained.12.1
Earlier versions, by Transims and also by ourselves, aggregated the event information into the time bins either directly in the traffic simulation, or by some external module, and wrote the result into a file. The typical information given in that file was a time, say ``900 sec'', and a corresponding link travel time. In implementations, there was then always confusion if this referred to a time bin going from 1 to 900, or to a time bin going from 900 to 1799. The intention was the first, but unfortunately time%900 (where % is the modulo function) puts 0 to 899 into one time bin and 900 to 1799 into another one, resulting in many errors. Clearly, this is a trivial problem, but one that continuously caused problems.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... them.13.1
This is truly awkward. In our research, we put the new plans into a data base, which keeps track of all plans. Then we dump out the plans we want. That solution is much cleaner, but besides being more difficult to implement, it is also slow, so it is not the final answer.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... 100.14.1
We are looking for the departure time distribution of the whole population, not just of the replanned population. This is best retrieved from the events file.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... priority.18.1
Note that the winning links are not the ones that come first, but the ones that come first after the outgoing link was treated. For example, assume a configuration where links 1 and 3 are incoming into link 2, and assume that they are processed in sequence 1, 2, 3. [[fig?]] Also assume that under congested conditions initially all links are completely full. Then link 1 is processed first, but link 2 is full, so no vehicle can move. Then link 2 is processed, and some vehicles move out, opening up some space. Finally, link 3 is processed, and since there is some space on link 2, some vehicles can move.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... iteration.19.1
To be entirely precise, one would have to say that the route is best based on the time-averaged information that the router uses.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...fig:parallel):25.1
Instead of ``split links'', the terms ``boundary links'', ``shared links'', or ``distributed links'' are sometimes used. As is well known, some people use ``edge'' instead of ``link''.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... CPUs.25.2
For simplicity, we do not differentiate between CPUs and computational nodes. Computational nodes can have more than one CPU -- an example is a network of coupled PCs where each PC has Dual CPUs.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... Mbit/s.25.3
Our measurements have consistently shown that node bandwidths are lower than network bandwidths. Even CISCO itself specifies 148000 packets/sec, which translates to about 75 Mbit/sec, for the 100 Mbit switch that we use.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... small.25.4
An event-driven simulation could be a counter-example: Depending on the implementation, it could be extremely fast on a single CPU up to medium problem sizes, but slow on a parallel machine.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... CPUs.25.5
This is possible because of the specific purpose Transims is designed for. In real time applications, where absolute speed between request and response matters, the situation is different (27).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
....27.1
From a theoretical perspective, it is questionable if this averaging is a good idea. It is however necessary to compare with field data.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... complicated.27.2
Assume that $(v_i)_i$ is a sequence of speed measurements of different vehicles for the space-mean speed. The probability of a vehicle of veloctiy $v_i$ to cross a sensor within a given time period is proportional to $v_i$. Thus, in order to obtain spot speed from $(v_i)_i$, each $v_i$ has to be weighted by $w_i=v_i$:
\begin{displaymath}
v_{spot} = {\sum w_i v_i \over \sum w_i}
= {\sum v_i^2 \over...
...verline{v}}
= \overline{v} + {\sigma^2 \over \overline{v}} \ ,
\end{displaymath} (27.3)

where $\sigma$ is the variance of the velocity measurement. This confirms that spot speed is larger than space-mean speed, and the difference increases with increasing velocity fluctuations. - An alternative derivation is, for example, in (48).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... used.27.3
``Gap'' denotes the space from my front bumper to the rear bumper of the car ahead, sometimes minus some safety space one would like to have. Space headway is used less uniformly; for example, it sometimes denotes the front-bumper-to-front-bumper space, thus including the length of the car ahead.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... ahead.27.4
Car-following models have a tendency to not distinguish cleanly between $g$ (which is space between cars) and $\Delta x$ (which is usually front-bumper-to-front-bumper distance). As long as vehicles do not pass each other, these differences are indeed irrelevant.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...27.5
Note that this formulation includes the effect of different velocities, but it assumes that acceleration of the follower is zero ().
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... minutes.27.6
There are several elements:

  • The notation using the complex number $i$ essentially means an equation of type

    \begin{displaymath}
\rho' = A \, \cos(\omega t - kx) \ . \qquad(*)
\end{displaymath}

    What is missing in this simplification is the so-called phase information.

  • Eq. ($*$) is a wave equation. As one can easily verify, it has wave length $2\pi/k$, that is, the function is periodic under additions of $2\pi/k$ to $x$. $k$ is called the wave number. Similarly, the function is periodic under additions of $2\pi/\omega$ to $t$; $\omega$ is called the frequency.

  • One can also verify that, say, a wave crest travels with velocity $c := \omega/k$. In Eq. $(*)$, at time $t=0$ there is a wave crest at position $x=0$. At time $t$, the wave crest is where $\omega
t - kx = 0$, which means a velocity $x/t = \omega/k$.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... measured.27.7
Linearization yields
\begin{displaymath}
V(\rho(\Delta x/2)) = V(\rho(0))
+ {\Delta x \over 2} \, {dV \over d\rho} \, \partial_x \rho + ...
\end{displaymath} (27.37)

The second term (``anticipation term'') is usually approximated by
\begin{displaymath}
- {c_0^2 \over \rho} \, \partial_x \rho
\end{displaymath} (27.38)

in analogy to the sound wave solution of the Navier-Stokes equations. [[fig for this?]]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
....28.1
Conventionally, one uses $x$ here; I will use $q$ because that's what we have used in traffic flow theory.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... slow.28.2
The intuitive reason both for convergence and for slowness is that $\sum_{n=m}^\infty 1/n$ always diverges, no matter what $m$ is. This means that any initial contributions to $\vec q$ can always be fully corrected by later iterations. However, it is also clear that such late corrections take very many iteration steps.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... learn).31.1
More precisely: The agent cannot assume that the probabilities are constant since the other agents also learn. However, in the long run all probabilities will become constant.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... data.32.1
Bluntly, one can always fit a straight line to a data cloud.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... set.32.2
Note, though, that it is certainly desirable to have reasonable microscopic rules.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...$ possible$32.3
If this rule would ask for a negative velocity, then $v=0$ is chosen.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...)32.4
Weights are used because of extensibility towards ``lane changing for plan following''. See below.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... change32.5
In the current version, the lane change is actually still rejected with a probability of 0.01 even when all the rules are fulfilled. This is in order to break the following artifact or variations of it: Assume one lane is completely occupied and one is completely empty. The above rule set will result in these vehicles just changing back and forth between the lanes--the vehicles will never get smeared out across the lanes. See Ref. (101) for more details.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... situation.32.6
In a deeper sense, the problem is caused by the fact that the underlying decision making dynamics has a time scale which is smaller than the time resolution of the simulation. The simulation thus must resolve the conflict by other means (8).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... link.32.7
Vehicles may accelerate or slow down before they actually reach the intersection. See below.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... them.32.8
Again, technically the vehicles only reserve cells on the destination links. The actual move through the intersection happens later and can also be postponed if after the velocity update the vehicle actually does not make it to the intersection.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... vehicle,32.9
I.e. there is a probability of $1-p_{noise}$ that the vehicle will not accelerate in the given time step.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... conditions.32.10
Note that the situation slightly different when the speed of the vehicle on the major link is zero - see below.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... simulations.32.11
Route plans are simply necessary to be consistent with the way the simulation is normally used; for the test cases we use very few types of generic route plans (like ``enter the microsimulation and keep on driving in a circle indefinitely'') and replicate them with different starting times to fulfill our needs. This is not much different from departure rates.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... m.32.12
The ``magical'' number of $L=5$ sites is equal to the maximum velocity of $v_{max}=5$ sites/update. This ensures that each vehicle is counted at least once.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... discrepancies.32.13
This explains the differences to the TRB preprint version of this paper, which contained results from the experimental code.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... times.36.1
Since the whole travel of each traveller in our simulation consists of exactly one trip, ``trip time'' and ``travel time'' will be used synonymously.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
....36.2
In contrast to the routing module, no time-dependence was used here although future implementations should do so.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... area.36.3
This really depends on the cost function which is used. Most cost functions set link speed $v$ to a very low number (but not to zero) at high volumes. Since link costs are proportional to $L/v$, where $L$ link length, one has that congested links do not contribute much to the cost of a route as long as these links are short and rare. In consequence, much too high volumes can be assigned to such links.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... 31\%.36.4
This number is larger than one would expect from Fig. 36.5. The reason is that many high volume streets were not counted in both years, thus leading to a smaller mean, which leads to a larger relative error.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... close.36.5
For certain -much simpler- systems, one can show that many plausible iteration schemes converge towards the same state (Hofbauer and Sigmund, 1998).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.