21 package org.matsim.core.replanning.strategies;
23 import org.apache.logging.log4j.LogManager;
24 import org.apache.logging.log4j.Logger;
41 class TimeAllocationMutatorModule
extends AbstractMultithreadedModule{
44 private static final Logger log = LogManager.getLogger( TimeAllocationMutatorModule.class );
45 private final double mutationRange;
46 private final boolean affectingDuration;
47 private final TimeAllocationMutatorConfigGroup timeAllocationMutatorConfigGroup;
50 TimeAllocationMutatorModule( TimeAllocationMutatorConfigGroup timeAllocationMutatorConfigGroup, GlobalConfigGroup globalConfigGroup) {
51 super(globalConfigGroup);
52 this.mutationRange = timeAllocationMutatorConfigGroup.getMutationRange();
53 this.affectingDuration = timeAllocationMutatorConfigGroup.isAffectingDuration();
54 this.timeAllocationMutatorConfigGroup = timeAllocationMutatorConfigGroup;
59 public PlanAlgorithm getPlanAlgoInstance() {
60 PlanAlgorithm pmta =
new MutateActivityTimeAllocation
61 (this.mutationRange, this.affectingDuration, MatsimRandom.getLocalInstance(),
62 timeAllocationMutatorConfigGroup.getLatestActivityEndTime(), timeAllocationMutatorConfigGroup.isMutateAroundInitialEndTimeOnly(),
63 timeAllocationMutatorConfigGroup.getMutationRangeStep());