Skip to main content

Scenario Structure

Understanding the structure of a scenario is crucial for both using and customizing simulations. All scenarios reside within the src/envs directory. Here, we'll use the labor_market_matching_process scenario as an example to break down the typical structure.

Example: labor_market_matching_process

A scenario directory is organized as follows:

labor_market_matching_process/
├── __init__.py
├── actions.json
├── code/
│ ├── __init__.py
│ ├── Employer.py
│ ├── JobSeeker.py
│ ├── RecruitmentChannel.py
│ ├── SimEnv.py
│ └── ...
├── env_data.json
├── events/
├── log/
├── metrics_plots/
├── profile/
│ ├── data/
│ │ ├── Employer.json
│ │ └── JobSeeker.json
│ └── schema/
│ ├── Employer.json
│ └── JobSeeker.json
└── scene_info.json

Key Directories and Files

  • __init__.py: Makes the scenario directory a Python package.
  • actions.json: Defines the actions available to agents in the scenario.
  • code/: Contains the core logic of the simulation.
    • SimEnv.py: Implements the main environment class, controlling the simulation's flow and rules.
    • Employer.py, JobSeeker.py: Define the different types of agents in the scenario. Each file implements an agent's behavior, state, and interactions.
    • metrics/metrics.py: Defines the metrics of the scenario.
  • env_data.json: Stores environment-specific settings and initial state data.
  • events/: Contains event logs from previous simulation runs.
  • log/: Stores logs generated during scenario creation and execution for debugging purposes.
  • metrics_plots/: Saves the output of the simulation, including metric data (JSON) and visualizations (PNG), often organized by rounds or steps.
  • profile/: Holds the data and schemas for the agents and other entities in the scenario.
    • data/: Contains JSON files with the actual data for populating agents (e.g., a list of job seekers with their attributes).
    • schema/: Contains JSON schema files that define the structure and data types for the profiles.
  • scene_info.json: A metadata file containing a description, name, and other information about the scenario.