AttributesOSM

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: Dependent on the used combination, they have different meanings! The step length velocity correlation

s(v) = AttributesOSM#stepLengthIntercept + AttributesOSM#stepLengthSlopeSpeed * v + error (Eq. 6)

discussed in [1].

Related publications:
  1. Natural discretization of pedestrian movement in continuous space
  2. Simulating pedestrian dynamics: Towards natural locomotion and psychological decision making
  3. How update schemes influence crowd simulations
  4. Modellierung sozialpsychologischer Faktoren in Personenstromsimulationen - Interpersonale Distanz und soziale Identitäten
  5. Dynamic Stride Length Adaptation According to Utility And Personal Space


Field: stepLengthSlopeSpeed [double]

Used to compute the desired step length which is AttributesOSM#stepLengthIntercept + AttributesOSM#stepLengthSlopeSpeed * speed + error, i.e. Eq. 6 in [1].


Field: stepLengthIntercept [double]

Used to compute the desired step length which is AttributesOSM#stepLengthIntercept + AttributesOSM#stepLengthSlopeSpeed * speed, i.e. Eq. 6 in [1].


Field: stepCircleResolution [int]

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.


Field: seeSmallWalls [boolean]

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!


Field: movementThreshold [double]

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.


Field: varyStepDirection [boolean]

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


Field: pedestrianPotentialModel [java.lang.String]

---


Field: numberOfCircles [int]

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.


Field: stepLengthSD [double]

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]).


Field: updateType [UpdateType]

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


Field: minimumStepLength [boolean]

If true enables the use of AttributesOSM#minStepLength. This attribute could be removed.


Field: obstaclePotentialModel [java.lang.String]

---


Field: maxStepDuration [double]

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.


Field: targetPotentialModel [java.lang.String]

---


Field: optimizationType [OptimizationType]

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


Field: movementType [MovementType]

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.


Field: minStepLength [double]

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.


Field: dynamicStepLength [boolean]

SpeedAdjusters will only be active if this is true. For example this has to be true if the group model is active.


Field: submodels [String>]

---