This class contains all parameters for the Optimal Steps Model with the exception of parameters for the three different potential functions (pedestrian-, target- and obstacle-potential) and without any submodel paraemters such as the Centroid Group Model which have their own attributes class such as AttributesCGM. Most of the parameters are used to configure the algorithm which computes the next position of an agent.
There exist different versions of the Optimal Steps Model which use different parameters such that not every parameter is used for every version and some parameters are only used if some other parameter has a specific value. These different versions can be found in the PhD thesis of Isabella von Sivers [4] and Michael Seitz [2].
Each version of the OSM searches for the optimal next step by using different search algorithms / optimizers:The default version of the Optimal Steps Model is the one using the optimization on the disc and potential functions representing the personal spaces see [1] or [5]. We deviate from [4] only in the concept of a minimal step length: In this implementation an agent will not move if its next position is closer than its minimal step length (AttributesOSM#minStepLength).
Parameters for the configuring the optimization method are:s(v) = AttributesOSM#stepLengthIntercept + AttributesOSM#stepLengthSlopeSpeed * v + error (Eq. 6)
discussed in [1].Parameter of the optimization solver method: the number of circles. Together with the 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.
Only used if OptimizationType is equal DISCRETE or PSO. If the potential does not improve by this threshold, the agent will not move. This is in some sense similar to the effect of AttributesOSM#minStepLength.
---
Specifies which update schema is used. The OSM should use the event driven update schema, see [3].
If true this avoids agent jumping over small walls. However, this does not fix the problem that the target potential computation fails due to small obstacles. Since this is a quick fix and the test is very expensive the default should be false!
---
Used to compute the desired step length which is AttributesOSM#stepLengthIntercept + AttributesOSM#stepLengthSlopeSpeed * speed + error, i.e. Eq. 6 in [1].
SpeedAdjusters will only be active if this is true. For example this has to be true if the group model is active.
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]).
---
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 angle3D between two successive points on the most outer circle such that any angle3D 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 OptimizationType.
Only used if AttributesOSM#minimumStepLength is true. The agent will not move if the next improvement is less than AttributesOSM#minStepLength away from its current position. Furthermore, this will be ignored if an agent is on stairs.
If true enables the use of AttributesOSM#minStepLength. This attribute could be removed.
---
Parameter of the optimization method: Specifies the concrete optimization solver.
If true, introduced for every optimization process a noise term by which points will be shifted (on their circle). See Eq. 4 in [1]. If false, there will be no noise term which might lead to artifacts, especially in case of OptimizationType.DISCRETE. In that case and with AttributesOSM#movementType not DIRECTIONAL, the first point of each circle will at (r * cos(0), r * sin(0)).
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 AttributesOSM#maxStepDuration.
Used to compute the desired step length which is AttributesOSM#stepLengthIntercept + AttributesOSM#stepLengthSlopeSpeed * speed, i.e. Eq. 6 in [1].
This has only an effect if OptimizationType is equal DISCRETE or PSO, since all other optimization (on the disc) do not use this parameter. Reduces the circles of the optimization to a segments lying inside a cone (see [2], page 76). This does not effect the number of used points. The shape of the cone is computed by Eq. 4.6, 4.7 which depends on the current velocity of the agent.