polaris.runs.convergence.workplace_stabilization_config.WorkplaceStabilizationConfig#

pydantic model polaris.runs.convergence.workplace_stabilization_config.WorkplaceStabilizationConfig#

Bases: BaseModel

Configuration class for the POLARIS workplace stabilization process.

Workplace stabilization in POLARIS is the process by which long-term decisions regarding work location are introduced to an overall iterative process. Work places are allowed to be updated based on current congestion conditions on specified iterations, a number of iterations are then run using those updated choices to allow the congestion to stabilize before repeating the process.

Show JSON schema
{
   "title": "WorkplaceStabilizationConfig",
   "description": "Configuration class for the POLARIS workplace stabilization process.\n\nWorkplace stabilization in POLARIS is the process by which long-term decisions regarding work location\nare introduced to an overall iterative process. Work places are allowed to be updated based on current\ncongestion conditions on specified iterations, a number of iterations are then run using those updated\nchoices to allow the congestion to stabilize before repeating the process.",
   "type": "object",
   "properties": {
      "enabled": {
         "default": false,
         "title": "Enabled",
         "type": "boolean"
      },
      "schedule": {
         "$ref": "#/$defs/IterationSchedule",
         "default": {
            "first_iteration": 1,
            "last_iteration": 31,
            "every_x_iter": 5,
            "pattern": [
               true,
               false,
               false,
               false,
               false,
               true,
               false,
               false,
               false,
               false,
               true,
               false,
               false,
               false,
               false,
               true,
               false,
               false,
               false,
               false,
               true,
               false,
               false,
               false,
               false,
               true,
               false,
               false,
               false,
               false,
               true
            ],
            "on_abm_init": false
         }
      }
   },
   "$defs": {
      "IterationSchedule": {
         "properties": {
            "first_iteration": {
               "default": 1,
               "title": "First Iteration",
               "type": "integer"
            },
            "last_iteration": {
               "title": "Last Iteration",
               "type": "integer"
            },
            "every_x_iter": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "title": "Every X Iter"
            },
            "pattern": {
               "items": {
                  "type": "boolean"
               },
               "title": "Pattern",
               "type": "array"
            },
            "on_abm_init": {
               "default": false,
               "title": "On Abm Init",
               "type": "boolean"
            }
         },
         "required": [
            "last_iteration",
            "every_x_iter",
            "pattern"
         ],
         "title": "IterationSchedule",
         "type": "object"
      }
   }
}

Fields:
field enabled: bool = False#

Flag which controls if any workplace stabilization will be undertaken during the model run

field schedule: IterationSchedule = IterationSchedule(first_iteration=1, last_iteration=31, every_x_iter=5, pattern=[True, False, False, False, False, True, False, False, False, False, True, False, False, False, False, True, False, False, False, False, True, False, False, False, False, True, False, False, False, False, True], on_abm_init=False)#
should_choose_workplaces(iteration)#
number_of_prior_workplaces_iteration(i: int) float#