Skip to content

faq 69107734

Billy Charlton edited this page Sep 5, 2018 · 2 revisions

MATSim implementation advices for a framework development

by Jacopo de Berardinis on 2016-06-22 15:39:27


Hello all, 

we are a master students team from Italy and we are currently developing a MATSim-based framework for validating smart mobility solutions within a given scenario. Briefly, the idea consists in introducing a commuting paradigm based on the "hub" concept; we can envision such framework as a tool aimed to urban planners for geographically placing a number of hubs within the network. Each hub comes with a series of smart mobility services which can be individually configured in a modular manner. Even if it can seem a bit uncomfortable, a user commuting from activityA to activityB could reach the nearest hub (by a walk/bike/car/pt/... leg) and select a mobility service (depending on the hub registered services as well as its resources' availability) in order to reach the destination hub; finally, as for the first leg, the commuter will choose a last mile mobility service from the hub suggested alternatives to reach his very destination. This is the basic idea that we would like to further improve and we would appreciate to receive some design hints from you. We have already read the MATSim book as well as the programming tutorials and some contributions' code, but we still miss the whole picture due to the poor code documentation. 

We have elected two main agent types: the commuter, which uses the hubs' services according to his mobility needs and preferences, and the hub, offering different mobility services each time a commuter requests them. Since the hubs' resource availability is unpredictable, a commuter cannot perform a replanning phase before starting a new iteration; therefore, he will only select the best available mobility solution at each step of the multistage trip discussed above, according to his personal knowledge-base. On the other hand, a hub will perform a replanning phase by manipulating its own mobility services in order to improve the commuters' satisfaction. Therefore, we were thinking of implementing commuters as DynAgent(s) and we should find a proper agent type for hubs.

Thank you in advance.

Best Regards

Jacopo, Carlo, Giorgio


Comments: 1


Re: MATSim implementation advices for a framework development

by Michal Maciejewski on 2016-06-23 12:18:42

Hi,

You can use DynAgent for both passengers (who plan while on the trip) and vehicles provided at hubs (as they are dynamically routed). In a more complex scenario, some vehicles may be regular buses (with fixed schedules) – for these vehicles you do not need DynAgents.

There is a book chapter on the DVRP contrib (which offers the DynAgent functionality), but it refers to matsim 0.7. However, we have recently re-worked the DVRP contrib to make integration with with multi-day simulations (the standard Matsim approach) easier. So DVRP version 0.8 should be easier to use, but the chapter has not been updated yet. However, you will find a couple of examples in the DVRP contrib. Besides that, please have a look at the taxi contrib (which is a specialised version of DVRP for online taxi dispatching); there are also examples you can launch (e.g. RunTaxiScenario, RunTaxiBenchmark). There are also two playgrounds (michalm, jbischoff) where we test new concepts using DynAgents. There is also a PRT scenario in dhosse, where people are transported dynamically (no fixed routes) between PRT stations.

I would suggest starting with a very simple example (e.g. one taxi) and then gradually extend it by adding hubs etc. At the beginning, I would assume that passengers are just standard (static) agents who want to travel from hubA to hubB by "dynamic" mode (so only vehicles need to be DynAgents). Only at a later stage of development, passengers (simulated then as DynAgents) can choose their first/last mile service on the fly.

Whenever you have some questions, please let us know, we can try to answer them.

Best, Michal 

 

Clone this wiki locally