https://www.transitwiki.org/TransitWiki/index.php?title=MATSim&feed=atom&action=historyMATSim - Revision history2024-03-29T02:15:29ZRevision history for this page on the wikiMediaWiki 1.35.1https://www.transitwiki.org/TransitWiki/index.php?title=MATSim&diff=5415&oldid=prevPatrick.mk: Added the "MATSim Overview" Section2019-12-13T18:51:09Z<p>Added the "MATSim Overview" Section</p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 18:51, 13 December 2019</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l26" >Line 26:</td>
<td colspan="2" class="diff-lineno">Line 26:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Open Source: You get the Java Source Code, which runs on all major operating systems</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Open Source: You get the Java Source Code, which runs on all major operating systems</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Active Development: The international MATSim community constantly adds new features and improves current ones</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*Active Development: The international MATSim community constantly adds new features and improves current ones</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">== MATSim Overview ==</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">In a single phrase, “MATSim is an activity-based, extendable, multi-agent simulation framework implemented in Java”<ref name=":0">Horni, A., Nagel, K., & Axhausen, K. W. (2016). Chapter 1: Introducing MATSim. In The Multi-Agent Transport Simulation MATSim (pp. 3-8). London: Ubiquity Press. DOI: <nowiki>http://dx.doi.org/10.5334/baw</nowiki></ref>. The software is open-source, and available free of charge from the internet. It is designed to model a 24-hour period, although it is also possible to model longer periods in MATSim. The primary advantage of the program is that it models all agents within the population as individuals, acting to maximize their personal utility. Simulation is performed in iterations, in which agents act to maximize their personal score.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">=== Optimization: Co-Evolutionary Algorithm ===</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">In the MATSim software, a co-evolutionary algorithm, as opposed to an evolutionary algorithm, is used to obtain equilibrium. This process leads to a stochastic user equilibrium<ref name=":0" />, as optimization is performed in terms of an individual scoring function. Alternatively, an evolutionary algorithm would lead to a system optimum, which would not be accurate since individual actors make decisions autonomously. As described in the MATSim documentation, “Every agent repeatedly optimizes their daily activity schedule while in competition for space-time slots with all other agents on the transportation infrastructure. This is somewhat similar to the route assignment iterative cycle, but goes beyond route assignment by incorporating other choice dimensions like time choice, mode choice, or destination choice”<ref name=":0" />. </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">=== MATSim Cycle ===</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">The MATSim cycle (often called the MATSim loop) is shown on the MATSim webpage[https://www.matsim.org/about-matsim]. The cycle requires the input of initial demand data (including population activity chains), which is typically gathered through empirical means such as a population survey. Three stages are traversed in each iteration of the simulation, including execution (through mobsim), scoring, and replanning. A configurable number of iterations are completed, and results are outputted for analysis.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">During each iteration, the initial demand values are optimized individually by each agent. Every agent stores a fixed number of daily plans in their memory, which includes a daily activity chain and associated score of economic utility <ref name=":0" />. Prior to simulation, each agent selects one of these plans from memory. A designated portion of agents (typically 10%) is allowed to clone the selected plan and modify it, through a process called replanning. This process includes three steps <ref name=":1">Nagel, K., Kickhofer, B., Horni, A., & Charypar, D. (2016). Chapter 3: A Closer Look at Scoring. In The Multi-Agent Transport Simulation MATSim (pp. 23-33). London: Ubiquity Press. DOI: <nowiki>http://dx.doi.org/10.5334/baw</nowiki>.</ref>: </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"># Agents with more plans than the maximum number have plans removed according to a plan selector, through the choice set reduction process. </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"># For the designated portion of agents engaged in replanning, a plan is copied, modified, and selected for the next iteration. </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"># All other agents choose between their current plans.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Replanning can take place along four dimensions, including departure time (which also influences activity duration), route choice, mode choice, and destination choice. MATSim offers different replanning strategies, which include random mutation, approximate suggestions, or best-response. Random mutation replanning typically involves changes in time of departure or mode used, while best-response includes changes in the chosen route. </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Each iteration is completed by evaluating agents’ experiences with their selected plans, through a process called scoring. The simulation is called “mobsim”, a process in which each agent takes one selected plan and executes it in a synthetic reality<ref name=":1" />. The scoring function (described in the next subsection) is applied to each agent to determine their score of economic utility. Plans may originally contain a utility score as an attribute, which is then calculated and stored in the plan after its execution by the mobility simulation<ref>Rieser, M. (2016). Chapter 16: Modeling Public Transport with MATSim. In The Multi-Agent Transport Simulation MATSim (pp. 105-110). London: Ubiquity Press. DOI: <nowiki>http://dx.doi.org/10.5334/baw</nowiki>.</ref>.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">This iterative process is repeated until the average score of the population stabilizes, converging to some asymptotic value.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">=== Details on the MATSim Scoring Function ===</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">When agents execute their plans through mobsim, the plans are scored according to their economic utility. Each individual agent learns by maintaining multiple plans, which are scored through execution, then selected according to score and sometimes modified<ref name=":1" />. The scoring function used may be configured along several parameters, or a custom function may be used. </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">The basic function used is derived from the Charypar-Nagel scoring function, based somewhat on the Vickery model for road congestion. The overall utility of a plan is based on the sum of all activity utilities, plus the sum of all travel disutilities.</ins></div></td></tr>
</table>Patrick.mkhttps://www.transitwiki.org/TransitWiki/index.php?title=MATSim&diff=4273&oldid=prevLeeor: Created page with "{{edit queue |editor = Leeor }} {{infobox |title = MATSim |image = matsim-logo.png |vendor = [http://www.matsim.org/about-us MATSim Community] |license = GNU General Public..."2017-06-23T18:40:43Z<p>Created page with "{{edit queue |editor = Leeor }} {{infobox |title = MATSim |image = matsim-logo.png |vendor = [http://www.matsim.org/about-us MATSim Community] |license = GNU General Public..."</p>
<p><b>New page</b></p><div>{{edit queue<br />
|editor = Leeor<br />
}}<br />
{{infobox<br />
|title = MATSim<br />
|image = matsim-logo.png<br />
|vendor = [http://www.matsim.org/about-us MATSim Community]<br />
|license = [[GNU General Public License]]<br />
|documentation = http://www.matsim.org/docs<br />
|data_in =<br />
|data_out =<br />
|website = http://www.matsim.org/<br />
}}<br />
<br />
From the [http://www.matsim.org/about-matsim MATSim about page]:<br />
<br />
==Agent-Based Transport Simulations==<br />
MATSim provides a framework to implement large-scale agent-based transport simulations. The framework consists of severel modules which can be combined or used stand-alone. Modules can be replaced by own implementations to test single aspects of your own work. Currently, MATSim offers a framework for demand-modeling, agent-based mobility-simulation (traffic flow simulation), re-planning, a controler to iteratively run simulations as well as methods to analyze the output generated by the modules.<br />
<br />
==Key Features of MATSim==<br />
*Fast Dynamic and Agent-Based Traffic Simulation: Simulate whole days within minutes<br />
*Private and Public Traffic: Both private cars and transit traffic can be simulated<br />
*Supports Large Scenarios: MATSim can simulate millions of agents or huge, detailed networks<br />
*Versatile Analyses and Simulation Output: E.g. compare simulated data to real-world counting stations<br />
*Modular Approach: Easily extended with your own algorithms<br />
*Open Source: You get the Java Source Code, which runs on all major operating systems<br />
*Active Development: The international MATSim community constantly adds new features and improves current ones</div>Leeor