# Config File

Our up-to-date configuration file that holds all the stored parameters for the simulation is updated and maintained here:

<https://github.com/MetacitySuite/Metacity-MATSim/blob/main/matsim/data/matsim-files/config-prague.xml>

## Default Configuration File

The list of available parameters and valid parameter values may vary from release to release. For a list of all available settings available with the version you are working with, run "DefaultConfig.java" in the Metacity-MATSim module.

## Configuration File

The configuration file consists of *modules.* Each module represents a logical parameter group. Numerous MATSim modules can be added to MATSim and configured by specifying the respective configuration file section.

## Modules

List of modules to configure in our Prague scenario

### global

```
randomSeed
coordinateSystem
numberOfThreads - for parallel event handling
insistingOnDeprecatedConfigVersion
```

### controler

```
outputDirectory
firstIteration
lastIteration
compressionType
dumpDataAtEnd
routingAlgorithmType - the Fast versions takes up more memory
overwriteFiles
createGraphs
writeEventsInterval
writePlansInterval
writeSnapshotsInterval
writeTripsInterval
```

### qsim

```
startTime
endTime - should be specified so the simulation does not run forever for agents with faulty plans
flowCapacityFactor - scales the capacities of the routes accordingly
storageCapacityFactor - tested for flowCapacityFactor^(0.75)
snapshotperiod
mainMode - modes that use routing in qsim (usually car)
linkDynamics
trafficDynamics
usePersonIdForMissingVehicleId
numberOfThreads - for parallel QSim
vehiclesSource - specifies whether only vehicle types are used or more detailed type for each vehicle ID (see Vehicles)
insertingWaitingVehiclesBeforeDrivingVehicles
```

### network

```
inputNetworkFile - path to MATSim network
```

### plans

```
inputPlansFile - path to plans/population file
```

### transit

```
useTransit - specify whether PT should be simulated
transitScheduleFile - path to transit schedule file
vehiclesFile - path to vehicles file
routingAlgorithmType - the type of transit routing algorithm used (default: SwissRailRaptor)
transitModes - for public transit equals to "pt"
```

### facilities

```
todo
```

### households

```
todo
```

### vehicles

```
vehiclesFile - file specifying vehicle types (or more detailed their id)
```

### planCalcScore

```
writeExperiencedPlans
fractionOfIterationsToStartScoreMSA - 1 or 0, Forcing Scores to Converge

learningRate
BrainExpBeta
lateArrival
earlyDeparture
performing
marginalUtilityOfMoney
utilityOfLineSwitch
waiting
waitingPt

parameterset type="modeParams" - specifies parameters for each leg mode (e.g. car)
    mode
    constant
    dailyUtilityConstant
    marginalUtilityOfDistance_util_m
    marginalUtilityOfTraveling_util_hr
    monetaryDistanceRate
    dailyMonetaryConstant
    
parameterset type= "activityParams" - must be described for every activity in plans/population file (e.g. home, work, shop, leisure, ...). There are also activities specified by the simulation (e.g. car interaction), do not have to be defined explicitly.
    activityType
    priority
    typicalDuration
    openingTime
    latestStartTime
    earliestEndTime
    closingTime
```

### planscalcroute

```
networkModes - leg modes that will be reated by the network router (usually cars)

parameterset type="teleportedModeParameters" - leg modes using teleport (walk, ...)
    beelineDistanceFactor
    mode
    teleportedModeSpeed - uses beeline distance
    teleportedModeFreespeedFactor - uses distance from the route on network (not simulated!)
```

### travelTimeCalculator

```
analyzedModes - usually car
separateModes
```

### TimeAllocationMutator

```
mutationAffectsDuration
mutationRange - defines how many seconds a time mutation can maximally shift a time
```

### swissRailRaptor

```
useCapacityConstraints
```

### strategy

```
maxAgentPlanMemorySize
fractionOfIterationsToDisableInnovation - disables innovation stage after a % number of iterations

parameterset type="strategysettings" - various strategies for running the simulation
    strategyName - values [BestScore, ChangeExpBeta, ReRoute, SubtourModeChoice, TimeAllocationMutator_ReRoute]. *Some of these need their own module to further specify the usage.
    weight

*module: subtourModeChoice
    chainBasedModes - modes that preserve mass
    modes
    considerCarAvailability
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.metacity.cc/metacity/archives/amos/matsim/running-example/config-file.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
