Stochasticity is an important aspect of reprducing reality in a simulation scenario. There are multiple ways of adding stochasticity to a simulation. They are described below.
Random number generation (RNG)
Sumo implements the Twister algorithm for generating random numbers. This rando number generator (RNG) is initialized with a seed value which defaults to the (arbitrary) value 23423. This setup makes all applications deterministic by default as the sequence of random numbers is fixed for a given seed. The seed may be changed using the option --seed <INT>. When using the option --random the seed will be chosen based on the current system time resulting in truly random behavior.
The default car-following model Krauss supports stochastic driving behavior through the vType-attribute sigma (default 0.5). When this value is non-zero drivers will randomly vary their speed based on the RNG described above. Other car-following models also use this attribute.
The departure times of all vehicles may be varied randomly by using the option --random-depart-offset<TIME>. When this option is used each vehicle receives a random offset to its departure time, equidistributed on [0, <TIME>].
Flows with a fixed number of vehicles
The DUAROUTER application supports the option --randomize-flows. When this option is used, each vehicle defined by a <flow>-element will be given a random departure time which is equidistributed within the time interval of the flow. (By default vehicles of a flow are spaced equally in time).
Flows with a random number of vehicles
Both DUAROUTER and SUMO support loading of <flow> elements with attribute probability. When this attribute is used (instead of vehsPerHour,number or period), a vehicle will be emitted randomly with the given probability each second. This results in a binomially distributed flow (which approximates a Poison Distribution for small probabilities. When modelling such a flow on a multi-lane road it is recommended to define a <flow for each individual lane.