* <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{

/**

* <p>

* Parameter of the optimization method: the number of points on the most outer circle.

* These points will be used in different ways which depends on the {@link OptimizationType}.

* <ul>

* <li>OptimizationType.NELDER_MEAD (default): each neighbouring pair of points and the agent position is used as a starting simplex</li>

* <li>OptimizationType.PSO: each point and the position of the agent is used as a starting position of a particle</li>

* <li>OptimizationType.DISCRETE: each point is and the position of the agent is used to directly evaluate the evaluation function</li>

* </ul>

* </p>

* 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;

/**

* <p>

* Parameter of the optimization method: the number of circles. Together with the {@link AttributesOSM#stepCircleResolution}

* this gives the number of points used by the optimization solver.

* </p>

* 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;

/**

* <p>

* Parameter of the optimization method: Specifies the concrete optimization solver.

* </p>

* 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.

* (see seitz-2016 page 71 or seitz-2012).

* 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

* (see seitz-2016 page 71 or seitz-2012).

* 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 seitz-2016 page 71 or seitz-2012).

* 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

* movementThreshold, the agent will not move. This is in some sense similar to the effect of {@link AttributesOSM#minStepLength}.

* threshold, the agent will not move. This is in some sense similar to the effect of {@link AttributesOSM#minStepLength}.

*/

privatedoublemovementThreshold=0;

...

...

@@ -124,7 +137,7 @@ public class AttributesOSM extends Attributes {

privatedoubleminStepLength=0.10;

/**

* If true enables the use of {@link AttributesOSM#minStepLength}. This attribute could be removed.

* If <tt>true</tt> enables the use of {@link AttributesOSM#minStepLength}. This attribute could be removed.

*/

privatebooleanminimumStepLength=true;

...

...

@@ -135,19 +148,18 @@ public class AttributesOSM extends Attributes {

privatedoublemaxStepDuration=Double.MAX_VALUE;

/**

* SpeedAdjusters will only be active if this is <tt>true</tt>. For example this has to be true if the group model is

* <tt>SpeedAdjusters</tt> will only be active if this is <tt>true</tt>. For example this has to be true if the group model is

* active.

*/

privatebooleandynamicStepLength=true;

/**

* Specifies which update schema is used. The OSM should use the event driven update schema

* (see seitz-2014b)

* Specifies which update schema is used. The OSM should use the event driven update schema, see [3].