@Deprecated public final void addStrategyForDefaultSubpopulation( final PlanStrategy strategy, final double weight) { addStrategy(strategy, null, weight); }
@Deprecated public final boolean changeWeightOfStrategyForDefaultSubpopulation( final GenericPlanStrategy<Plan, Person> strategy, final double newWeight) { return changeWeightOfStrategy(strategy, null, newWeight); }
@Deprecated public final List<GenericPlanStrategy<Plan, Person>> getStrategiesOfDefaultSubpopulation() { return getStrategies(null); }
setMaxPlansPerAgent(strategyConfigGroup.getMaxAgentPlanMemorySize()); setSubpopulationAttributeName(plansConfigGroup.getSubpopulationAttributeName()); for (Map.Entry<StrategyConfigGroup.StrategySettings, PlanStrategy> entry : planStrategies.entrySet()) { PlanStrategy strategy = entry.getValue(); StrategyConfigGroup.StrategySettings settings = entry.getKey(); addStrategy(strategy, settings.getSubpopulation(), settings.getWeight()); addChangeRequest(maxIter + 1, strategy, settings.getSubpopulation(), 0.0); } else { changeWeightOfStrategy(strategy, settings.getSubpopulation(), 0.0);
StrategyManager manager = new StrategyManager(); PlanStrategy str1 = new PlanStrategyImpl(new RandomPlanSelector()); PlanStrategy str2 = new PlanStrategyImpl(new RandomPlanSelector()); PlanStrategy str3 = new PlanStrategyImpl(new RandomPlanSelector()); manager.addStrategyForDefaultSubpopulation(str1, 1.0); manager.addStrategyForDefaultSubpopulation(str2, 2.0); manager.addStrategyForDefaultSubpopulation(str3, 0.5); manager.addChangeRequestForDefaultSubpopulation(5, str2, 3.0); manager.addChangeRequestForDefaultSubpopulation(10, str3, 1.0); manager.run(pop, 1, null); List<Double> weights = manager.getWeightsOfDefaultSubpopulation(); Assert.assertEquals(3, weights.size()); Assert.assertEquals(0.5, weights.get(2), 1e-8); manager.run(pop, 5, null); weights = manager.getWeightsOfDefaultSubpopulation(); Assert.assertEquals(3, weights.size()); manager.run(pop, 10, null); weights = manager.getWeightsOfDefaultSubpopulation(); Assert.assertEquals(3, weights.size());
@Test public void testStrategiesAreExecutedOnlyForGivenSubpopulation() { final StrategyManager manager = new StrategyManager(); manager.setSubpopulationAttributeName(SUBPOP_ATT_NAME); manager.addStrategy(new PlanStrategy() { @Override public void run(HasPlansAndId<Plan, Person> person) { null, 1 ); manager.addStrategy(new PlanStrategy() { @Override public void run(HasPlansAndId<Plan, Person> person) { POP_NAME_1, 1 ); manager.addStrategy(new PlanStrategy() { @Override public void run(HasPlansAndId<Plan, Person> person) { 1 ); manager.run( population , 1 , null ); counter.printCounter();
@Test public void testSetPlanSelectorForRemoval() { StrategyManager manager = new StrategyManager(); manager.addStrategyForDefaultSubpopulation(new PlanStrategyImpl(new RandomPlanSelector()), 1.0); manager.setMaxPlansPerAgent(plans.length - 2); manager.run(pop, null); manager.setPlanSelectorForRemoval(new BestPlanSelector<Plan, Person>()); manager.setMaxPlansPerAgent(plans.length - 4); manager.run(pop, null);
StrategyManager manager = new StrategyManager(); StrategyCounter strategy1 = new StrategyCounter(new RandomPlanSelector()); StrategyCounter strategy2 = new StrategyCounter(new RandomPlanSelector()); manager.addStrategyForDefaultSubpopulation(strategy1, 0.10); manager.addStrategyForDefaultSubpopulation(strategy2, 0.20); manager.run(population, 1, null); manager.removeStrategyForDefaultSubpopulation(strategy2); manager.run(population, 2, null); manager.removeStrategyForDefaultSubpopulation(strategy2); manager.run(population, 3, null);
for (GenericPlanStrategy<Plan, Person> strategy : event.getServices().getStrategyManager().getStrategies(null)) { event.getServices().getStrategyManager().changeWeightOfStrategy(strategy, null, 0.0); for (GenericPlanStrategy<Plan, Person> strategy : event.getServices().getStrategyManager().getStrategies(null)) { event.getServices().getStrategyManager().changeWeightOfStrategy(strategy, null, originalValue);
population.addPerson(person); StrategyManager manager = new StrategyManager(); PlanStrategyImpl strategy = new PlanStrategyImpl(new TestPlanSelector()); manager.addStrategyForDefaultSubpopulation(strategy, 1.0); manager.run(population, i, null); Plan plan = person.getSelectedPlan(); assertNull("plan has not undefined score in iteration " + i, plan.getScore()); manager.run(population, 5, null); fail("expected UnsupportedOperationException.");
StrategyManager strategyManager = new StrategyManager(); strategyManager.setMaxPlansPerAgent(5); PlanStrategyImpl strategy = new PlanStrategyImpl(new RandomPlanSelector()); strategyManager.addStrategyForDefaultSubpopulation(strategy, 1.0); StrategyManager strategyManager2 = new StrategyManager(); strategyManager2.setMaxPlansPerAgent(5); PlanStrategyImpl strategy2 = new PlanStrategyImpl(new RandomPlanSelector()); strategyManager2.addStrategyForDefaultSubpopulation(strategy2, 1.0);
/** * Randomly chooses for each person of the population a strategy and uses that * strategy on the person, after adapting the strategies to any pending change * requests for the specified iteration. * * @param iteration the current iteration we're handling */ public final void run(final Population population, final int iteration, final ReplanningContext replanningContext) { // (this is not directly delegated since the run method of this StrategyManager includes two "hooks"). delegate.handleChangeRequests(iteration); run(population, replanningContext); }
StrategyManager strategyManager = new StrategyManager(); strategyManager.addStrategyForDefaultSubpopulation(strategy, 1.0); StrategyManager strategyManager2 = new StrategyManager(); strategyManager2.addStrategyForDefaultSubpopulation(strategy2, 1.0);
@Test( expected=IllegalStateException.class ) public void testAddTwiceStrategy() { final StrategyManager manager = new StrategyManager(); final PlanStrategy s = new PlanStrategyImpl.Builder( new RandomPlanSelector() ).build(); manager.addStrategy( s , null , 1 ); manager.addStrategy( s , null , 10 ); }
@Test public void testGetStrategies() { // init StrategyManager StrategyManager manager = new StrategyManager(); PlanStrategy str1 = new PlanStrategyImpl(new RandomPlanSelector()); PlanStrategy str2 = new PlanStrategyImpl(new RandomPlanSelector()); PlanStrategy str3 = new PlanStrategyImpl(new RandomPlanSelector()); manager.addStrategyForDefaultSubpopulation(str1, 1.0); manager.addStrategyForDefaultSubpopulation(str2, 2.0); manager.addStrategyForDefaultSubpopulation(str3, 0.5); List<GenericPlanStrategy<Plan, Person>> strategies = manager.getStrategiesOfDefaultSubpopulation(); Assert.assertEquals(3, strategies.size()); Assert.assertEquals(str1, strategies.get(0)); Assert.assertEquals(str2, strategies.get(1)); Assert.assertEquals(str3, strategies.get(2)); }
@Test public void testGetWeights() { // init StrategyManager StrategyManager manager = new StrategyManager(); PlanStrategy str1 = new PlanStrategyImpl(new RandomPlanSelector()); PlanStrategy str2 = new PlanStrategyImpl(new RandomPlanSelector()); PlanStrategy str3 = new PlanStrategyImpl(new RandomPlanSelector()); manager.addStrategyForDefaultSubpopulation(str1, 1.0); manager.addStrategyForDefaultSubpopulation(str2, 2.0); manager.addStrategyForDefaultSubpopulation(str3, 0.5); List<Double> weights = manager.getWeightsOfDefaultSubpopulation(); Assert.assertEquals(3, weights.size()); Assert.assertEquals(1.0, weights.get(0), 1e-8); Assert.assertEquals(2.0, weights.get(1), 1e-8); Assert.assertEquals(0.5, weights.get(2), 1e-8); }
@Deprecated public final void addChangeRequestForDefaultSubpopulation( final int iteration, final PlanStrategy strategy, final double newWeight) { addChangeRequest(iteration, strategy, null, newWeight); }
StrategyManager manager = new StrategyManager(); StrategyCounter strategy1 = new StrategyCounter(new RandomPlanSelector<Plan, Person>()); StrategyCounter strategy2 = new StrategyCounter(new RandomPlanSelector<Plan, Person>()); StrategyCounter strategy4 = new StrategyCounter(new RandomPlanSelector<Plan, Person>()); manager.addStrategyForDefaultSubpopulation(strategy1, 0.10); manager.addStrategyForDefaultSubpopulation(strategy2, 0.20); manager.addStrategyForDefaultSubpopulation(strategy3, 0.30); manager.addStrategyForDefaultSubpopulation(strategy4, 0.40); manager.addChangeRequestForDefaultSubpopulation(11, strategy2, 0.0); manager.addChangeRequestForDefaultSubpopulation(11, strategy3, 0.0); manager.addChangeRequestForDefaultSubpopulation(12, strategy4, 0.1); manager.run(population, 1, null); manager.run(population, 10, null); manager.run(population, 11, null); manager.run(population, 12, null);
@Override public void notifyReplanning(final ReplanningEvent event) { strategyManager.run(population, event.getIteration(), replanningContextProvider.get()); }
StrategyManager strategyManager = new StrategyManager(); strategyManager.addStrategyForDefaultSubpopulation(strategy, 1.0); StrategyManager strategyManager2 = new StrategyManager(); strategyManager2.addStrategyForDefaultSubpopulation(strategy2, 1.0);