eqasim-org / ile-de-france

An open synthetic population of Île-de-France for agent-based transport simulation
GNU General Public License v2.0
47 stars 69 forks source link

Strict car access in activity chain matching #122

Open sebhoerl opened 2 years ago

sebhoerl commented 2 years ago

As noted by @diallitoz, the pipeline may match activity chains with car trips to people that have no car availability or that don't have a license. Technically, the matching process (see reference paper) matches (age, gender, SC) for 100% of the assigned chains, but only a certain percentage for the "any cars" attribute, due to the minimum number of source observations we enforce in the matching process. So far, the assumption was that the faulty modes will be fixed in the simulation afterwards, where those agents will not have car as an alternative to choose from.

We can think of a process to enforce the matching of car availability. The simplest would be to construct a "car allowed" attribute for the persons that combines the car availability attribute and the driving license attribute. The same can be done for the HTS observations. If "car allowed" is false for a target observation, we then only allow source samples with "car allowed" also false. The inverse is not true (people that theoretically can use a car may choose not to).

Related to #107.

diallitoz commented 2 years ago

Hi, @sebhoerl I would like to confirm that these use cases indeed disappear during simulation with eqasim (discrete mode choice extension) after 300 iterations. But, with the MATSim standard version Matsim, the reduction is few even after 500 iterations. It should also be noted for those who want to use MATSim standard, you must create a carAvail attribute (carAvailability in eqasim) with the value never and not none, so that the car availability is taken into account during the modal choice (see https://github.com/matsim-org/matsim-libs/blob/675d96bbd7333a50ebdde3af34bf53b5d6ed24d9/matsim/src/main/java/org/matsim/core/population/algorithms/ChooseRandomLegMode.java#L73).