public GenericPlanStrategy<CarrierPlan, Carrier> createStrategy(){ GenericPlanStrategyImpl<CarrierPlan, Carrier> replanningStrat = new GenericPlanStrategyImpl<CarrierPlan, Carrier>( new BestPlanSelector<CarrierPlan, Carrier>() ) ; replanningStrat.addStrategyModule(vraModule) ; return replanningStrat;
@Override public Plan selectPlan(HasPlansAndId<Plan, Person> person) { if (delegate == null) { delegate = (PlanSelector) ((GenericPlanStrategyImpl) controler.getInjector().getBinding(Key.get(PlanStrategy.class, Names.named(delegateName))).getProvider().get()).getPlanSelector(); } if (MatsimRandom.getLocalInstance().nextDouble() <= this.selectionFrequency) { Plan plan = (Plan) delegate.selectPlan(person); if (slave != null) slave.addPlansForPsim(plan); return plan; } else return person.getSelectedPlan(); }
@Override public void finish() { if (this.firstModule != null) { // finish the first module this.firstModule.finishReplanning(); // now work through the others for (GenericPlanStrategyModule<T> module : this.modules) { module.prepareReplanning(replanningContext); for (T plan : this.plans) { module.handlePlan(plan); } module.finishReplanning(); } } this.plans.clear(); log.info("Plan-Strategy finished, " + this.counter + " plans handled. Strategy: " + this.toString()); this.counter = 0; }
private static CarrierPlanStrategyManagerFactory createStrategyManagerFactory(final CarrierVehicleTypes types, final MatsimServices controler) { return () -> { final GenericStrategyManager<CarrierPlan, Carrier> strategyManager = new GenericStrategyManager<>(); strategyManager.addStrategy(new GenericPlanStrategyImpl<>(new BestPlanSelector<>()), null, 0.95); strategyManager.addStrategy(new SelectBestPlanAndOptimizeItsVehicleRouteFactory(controler.getScenario().getNetwork(), types, controler.getLinkTravelTimes()).createStrategy(), null, 0.05); return strategyManager; }; }
strategyManager.setMaxPlansPerAgent(5); GenericPlanStrategyImpl<CarrierPlan, Carrier> strategy = new GenericPlanStrategyImpl<>(new ExpBetaPlanChanger<CarrierPlan, Carrier>(1.)); GenericPlanStrategyImpl<CarrierPlan, Carrier> strategy = new GenericPlanStrategyImpl<>(new KeepSelected<CarrierPlan, Carrier>()); strategy.addStrategyModule(new TimeAllocationMutator()); strategy.addStrategyModule(new ReRouteVehicles(router, network, modeTravelTimes.get(TransportMode.car), 1.)); strategyManager.addStrategy(strategy, null, 0.5);