JDEQSim

Overview

JDEQSim (Java Deterministic Event Driven Queue Based Simulation) has the following properties and features:

  • it is based on a discrete event simulation model
  • traffic simulation is based on a queue model for streets (FIFO: first in first out)
  • deadlock prevention is achieved by squeezing vehicles
  • gaps generated at front of queue propagate backwards with a speed called 'gapTravelSpeed' resulting in a more realistic traffic model

Usage

Insert a new module called 'JDEQSim' into the config XML file. All parameters are optional and have default values (shown below), never the less it could be helpful to know their meaning and physical units.

	<module name="JDEQSim">
		<param name="endTime" value="00:00:00"   />
		<param name="flowCapacityFactor" value="1.0"   />
		<param name="storageCapacityFactor" value="1.0"   />
		<param name="minimumInFlowCapacity" value="1800"   />
		<param name="carSize" value="7.5"   />
		<param name="gapTravelSpeed" value="15.0"   />
		<param name="squeezeTime" value="1800"   />
	</module>

The 'endTime' defines the time of the last event of the simulation. If it is set to '00:00:00', no end time is defined and the simulation will stop, when the last event of the simulation has been processed. The (scaling) parameters  'flowCapacityFactor' and 'storageCapacityFactor' can be used as with mobSim and have no unit. The 'minimumInFlowCapacity' defines for all roads the minimum number of cars, which could enter the road per hour, for the congestion less case. The 'carSize' parameter allows to set the size of a car in meters. The 'gapTravelSpeed' parameter defines the speed of gaps in [m/s]. Finally the 'squeezeTime' is used for deadlock prevention and defines, how long a car should wait at maximum for entering the next road before deadlock prevention is turned on (unit: seconds).

The 'minimumInFlowCapacity' is a parameter, which was not published in the C++ DEQSim, but only used interally and was hardcoded to the value 1800 vehicles per hour. This value was estimated from literature assuming that independently from the speed limit of a road the minimum interval between two vehicles is 2 seconds (inverse of 1800 vehicles per hour). This factor does not need to be changed, when the 'flowCapacityFactor' is changed, as the scaling is automatically done internally. The reason for publishing this factor is to make it possible for users to adapt this factor, if they want to use a different minium inflow capacity based on their model estimations.

Hints

  • If the module 'JDEQSim' is present all parameters from module 'simulation' are ignored.
  • You might consider turning on the module 'parallelEventHandling' when using JDEQSim, as often JDEQSim can make much better use of this module than QueueSim (as JDEQSim is faster).
  • Use the the following controller for running the java DEQSim micro-simulation: org.matsim.controler.Controler (and not org.matsim.mobsim.cppdeqsim.DEQSimControler, which is used for C++ DEQSim)
  • If you are getting lots of breakdowns, consider using smaller squeezeTime (e.g. 10 seconds or lower)

Requirements for the Plans XML File

  • For each person the 'end_time' of the first act must be defined ('dur' is ignored).
  • For the other acts of a person either 'dur' or 'end_time' needs to be defined
  • If both 'dur' and 'end_time' are defined, then only the one which occurs earlier is considered

Details of the Model

Difference between MobSim and JDEQSim

  • QueueSim uses a simulation approach called 'fixed-increment time advance' instead of 'next-event time advance', which makes it much slower than JDEQSim for high resolution networks.
  • JDEQSim allows squeezing of vehicles to resolve possible deadlocks. Deadlock prevention in QueueSim is (traditionally) dealt with by removing vehicles from the network or squeezing.
  • JDEQSim models gap travel times more realistically than QueueSim, where this feature is missing.

 

Further Reading

This implementation is based on the micro-simulation described in the following paper:

Charypar, D., K. Nagel and K.W. Axhausen (2007) An event-driven queue-based microsimulation of traffic flow, Transportation Research Record, 2003, 35-40.Order here.

Some Java specific implementation aspects and performance tests of JDEQSim and parallelEventHandling are described in the following paper:

Waraich, R.,  D. Charypar, M. Balmer and K.W. Axhausen (2009) Performance improvements for large scale traffic simulation in MATSim, paper presented at the 9th Swiss Transport Research Conference, Ascona, September 2009. Download from here.