Skip to content
This repository has been archived by the owner. It is now read-only.
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Discrete Mode Choice for MATSim

Attention! This repository is only kept for historical reasons. The Discrete Mode Choice extension has been converted to the Discrete Mode Choice contrib in the main MATSim repository. It is further maintained there and can be used more easily as a part of MATSim.

The Discrete Mode Choice extension for MATSim makes it easy to define fine-grained and custom mode choice behaviour in MATSim simulations. Have a look at the Getting Started guide to dive right in or have a look at the existing Components if you are already familiar with the basic concepts.

The extensions offers three major pathways for improving mode choice in MATSim:

  • A fully functional replacement of SubtourModeChoice, but with the possibility to easily define custom constraints such as operating areas for certain mobility services or mode restrictions for specific user groups
  • An "importance sampler" for MATSim which samples choice alternatives with utility-based probabilities rather than purely at random and has the potential to speed up convergence
  • A "mode choice in the loop" setup, in which MATSim acts as a bare assignment model, which runs in a loop with a customizable discrete mode choice model

To learn more about these applications (and how you can implement "frozen randomness") into your simulation, have a look at the Getting Started guide.

For more customized applications and set-ups, have a look at Customizing the framework.

Available versions

The DMC extension is currently kept compatible with the following MATSim versions:

MATSim DMC version
Weekly SNAPSHOT 12.0-2019w49 1.0.9 Build Status
Release 11.0 1.0.9-matsim11 Build Status
Release 0.10.1 1.0.9-matsim10 Build Status

Alternatively, you can clone this repository and use the current development version from the develop branch. Currently, it is 1.0.10-dev and compatible with MATSim 12.0-2020w08. However, we recommend using the DMC extension with a stable version of MATSim.

To use the Discrete Mode Choice extension you first need to add the ETH MATSim Bintray repository to your pom.xml:


Add the following to your pom.xml dependencies to use the extension with version 1.0.9 and MATSim 11, for instance:


Repository structure

This repository makes use of the GitFlow repository model. This means that development is taking place in the develop branch, while the current production version can be found in the master branch. Note that, contrary to the basic model, we use multiple master branches to maintain versions of the code that are compatible with different releases of MATSim. For instance, master-11 is compatible with MATSim 11. The master branch is kept compatible with the master branch of the MATSim main repository. Backports are always derived from the master branch into the specific backport branches.

For creating the backports, the recommended workflow is as follows: Branch backport-X from master, add changes for compatibility, merge back backport-X into master-X.


The Discrete Mode Choice extension has been used in the following publications:


The Discrete Mode Choice extension for MATSim makes it easy to define fine-grained and custom mode choice behaviour in MATSim simulations.





No packages published

Contributors 4