You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi everyone, I am developing a simulation on two 10×40 grids separated by a “river”, with car/bus/bike/walk, fixed PT lines, and multi-firm autonomous taxis.
Currently failing with just one firm, but I'm trying for a multiModeTaxi fleet: each firm has its own vehicleType id="A", fleet file in module name="multiModeTaxi".
My target is 25 iterations, output post-processed externally (fleet re-sizing, PT frequency, etc.), updating the inputs and re-running to simulate long-term effects.
Scoring has three income sub-populations with their own scoringParameters; modes: walk, bike, pt, car, taxi (+ waiting & access/egress).
QSim uses has kinematic waves, start 0 s, end 30 h, onlyUseStarttime set because DynAgents require it, I also want to teleport walk/bike modes also for access/egress, but I am having difficulty aligning this properly on this version - Qsim or routing?
Here is my current java launcher: package org.thesis;
import org.matsim.api.core.v01.Scenario;
import org.matsim.core.config.*;
import org.matsim.core.controler.Controler;
import org.matsim.core.scenario.ScenarioUtils;
import org.matsim.contrib.dvrp.run.DvrpConfigGroup;
import org.matsim.contrib.dvrp.run.DvrpModule;
import org.matsim.contrib.taxi.run.MultiModeTaxiConfigGroup;
import org.matsim.contrib.taxi.run.MultiModeTaxiModule;
public class SimulationLauncher {
public static void main(String[] args) {
String cfg = "…/monopolysimpleconfig.xml";
Config config = ConfigUtils.loadConfig(
cfg,
new MultiModeTaxiConfigGroup(),
new DvrpConfigGroup());
Scenario scenario = ScenarioUtils.loadScenario(config);
Controler ctl = new Controler(scenario);
ctl.addOverridingModule(new DvrpModule());
ctl.addOverridingModule(new MultiModeTaxiModule());
ctl.run();
}
}
Everything parses until Guice wiring. I get this crash:
Exception in thread "main" com.google.inject.CreationException: Unable to create injector, see the following errors:
[Guice/JitDisabled]: Explicit bindings are required and PlanSelector<Plan, Person> is not explicitly bound.
at StrategyManager.setPlanSelectorForRemoval(StrategyManager.java:220)
…
If I try PRODUCTION stage I get 54 similar “explicit bindings required” messages (Scenario, Network, Population, Counts, …).
Switching to -Dguice.stage=DEVELOPMENT does not help either
I have tried:
DEV stage (-Dguice.stage=DEVELOPMENT) which still dies at PlanSelector<Plan,Person> missing
Bind core singletons myself (Scenario, Network, Pop, Vehicles, etc.) in a tiny Guice AbstractModule which removes 53/54, but PlanSelector complaint remains.
InjectorUtils.createMinimalMatsimInjector doesn't import
and finally using TaxiConfigGroup instead of multiModeTaxi fails earlier: “TaxiConfigGroup must not be defined at top level in multi-mode setup”
And a bunch of other things...
So, questions! Ideally just a clear solution or explanation where I am going wrong would be amaxing! But specifically... Is the PlanSelector binding supposed to be provided by ControlerDefaultsModule in 2024.0?
If yes, why is it not picked up when DVRP / multiModeTaxi is present?
What is the recommended minimal code snippet to launch DvrpModule + MultiModeTaxiModule?
Is my … block syntactically correct for 2024.0? (DTD still says only is required, but maybe the attribute names changed?)
Any known incompatibility between ChangeSingleTripMode / planSelectorForRemoval and the taxi contrib?
Any other ideas?! Thank you in advance. :)
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi everyone, I am developing a simulation on two 10×40 grids separated by a “river”, with car/bus/bike/walk, fixed PT lines, and multi-firm autonomous taxis.
Currently failing with just one firm, but I'm trying for a multiModeTaxi fleet: each firm has its own vehicleType id="A", fleet file in module name="multiModeTaxi".
My target is 25 iterations, output post-processed externally (fleet re-sizing, PT frequency, etc.), updating the inputs and re-running to simulate long-term effects.
Scoring has three income sub-populations with their own scoringParameters; modes: walk, bike, pt, car, taxi (+ waiting & access/egress).
QSim uses has kinematic waves, start 0 s, end 30 h, onlyUseStarttime set because DynAgents require it, I also want to teleport walk/bike modes also for access/egress, but I am having difficulty aligning this properly on this version - Qsim or routing?
Here is my current java launcher: package org.thesis;
And summary config:
Everything parses until Guice wiring. I get this crash:
Exception in thread "main" com.google.inject.CreationException: Unable to create injector, see the following errors:
at StrategyManager.setPlanSelectorForRemoval(StrategyManager.java:220)
…
If I try PRODUCTION stage I get 54 similar “explicit bindings required” messages (Scenario, Network, Population, Counts, …).
Switching to -Dguice.stage=DEVELOPMENT does not help either
I have tried:
DEV stage (-Dguice.stage=DEVELOPMENT) which still dies at PlanSelector<Plan,Person> missing
Bind core singletons myself (Scenario, Network, Pop, Vehicles, etc.) in a tiny Guice AbstractModule which removes 53/54, but PlanSelector complaint remains.
InjectorUtils.createMinimalMatsimInjector doesn't import
and finally using TaxiConfigGroup instead of multiModeTaxi fails earlier: “TaxiConfigGroup must not be defined at top level in multi-mode setup”
And a bunch of other things...
So, questions! Ideally just a clear solution or explanation where I am going wrong would be amaxing! But specifically... Is the PlanSelector binding supposed to be provided by ControlerDefaultsModule in 2024.0?
If yes, why is it not picked up when DVRP / multiModeTaxi is present?
What is the recommended minimal code snippet to launch DvrpModule + MultiModeTaxiModule?
Is my … block syntactically correct for 2024.0? (DTD still says only is required, but maybe the attribute names changed?)
Any known incompatibility between ChangeSingleTripMode / planSelectorForRemoval and the taxi contrib?
Any other ideas?! Thank you in advance. :)
Beta Was this translation helpful? Give feedback.
All reactions