* <li><a href="https://mediatum.ub.tum.de/doc/1303742/1303742.pdf">Modellierung sozialpsychologischer Faktoren in Personenstromsimulationen - Interpersonale Distanz und soziale Identitäten</a></li>
* <li><a href="https://doi.org/10.1016/j.trb.2015.01.009">Dynamic Stride Length Adaptation According to Utility And Personal Space</a></li>
* </ol>
*/
@ModelAttributeClass
publicclassAttributesOSMextendsAttributes{
/**
* Parameter of the optimization solver method: the number of points on the most outer circle. The number of points on any other circle will be
* chosen based on the angle between two successive points on the most outer circle such that any angle between two successive points
* on any circle will be almost equal. Therefore the number of points on a circle decreases with its radius.
* The positioned points will be used in different ways which depends on the {@link OptimizationType}.
* <ul>
* <li><tt>OptimizationType.NELDER_MEAD</tt> (default): each neighbouring pair of points and the agent position is used as a starting simplex</li>
* <li><tt>OptimizationType.PSO</tt>: each point and the position of the agent is used as a starting position of a particle</li>
* <li><tt>OptimizationType.DISCRETE</tt>: each point and the position of the agent is used to directly evaluate the evaluation function (brute force)</li>
* </ul>
*/
privateintstepCircleResolution=4;
/**
* Parameter of the optimization solver method: the number of circles. Together with the {@link AttributesOSM#stepCircleResolution}
* this gives the number of points used by the optimization solver. If r is the radius of the most outer circle and k is the number
* of circles the radii of the circles are r/k, 2 * r/k, ... (k-1) * r/k, r.
*/
privateintnumberOfCircles=1;
/**
* Parameter of the optimization method: Specifies the concrete optimization solver.
* Used to compute the desired step length which is {@link AttributesOSM#stepLengthIntercept} + {@link AttributesOSM#stepLengthSlopeSpeed} * speed, i.e.
* Eq. 6 in [1].
*/
privatedoublestepLengthIntercept=0.4625;
/**
* Used to compute the desired step length which is {@link AttributesOSM#stepLengthIntercept} + {@link AttributesOSM#stepLengthSlopeSpeed} * speed + error, i.e.
* Eq. 6 in [1].
*/
privatedoublestepLengthSlopeSpeed=0.2345;
/**
* Used to compute the error term of the desired step length i.e. the standard deviation of the normal
* distribution which is the distribution of the error variable (see Eq. 6 in [1]).
*/
privatedoublestepLengthSD=0.036;
/**
* Only used if {@link OptimizationType} is equal <tt>DISCRETE</tt> or <tt>PSO</tt>. If the potential does not improve by this
* threshold, the agent will not move. This is in some sense similar to the effect of {@link AttributesOSM#minStepLength}.
*/
privatedoublemovementThreshold=0;
privatedoubleminStepLength=0.4625;
/**
* Only used if {@link AttributesOSM#minimumStepLength} is <tt>true</tt>. The agent will not move if the
* next improvement is less than {@link AttributesOSM#minStepLength} away from its current position.
* Furthermore, this will be ignored if an agent is on stairs.
*/
privatedoubleminStepLength=0.10;
/**
* If <tt>true</tt> enables the use of {@link AttributesOSM#minStepLength}. This attribute could be removed.
*/
privatebooleanminimumStepLength=true;
/**
* The maximum amount of time a foot step of an agent can take. If the foot step takes more time
* its duration is reduced to {@link AttributesOSM#maxStepDuration}.