/** * Creates an instance filled with the components passed as parameter */ public CompositeStageActivityTypes( final StageActivityTypes... components) { for ( StageActivityTypes c : components ) { addActivityTypes( c ); } }
public SynchronizeCoTravelerPlansAlgorithm( final StageActivityTypes externalTypes) { final CompositeStageActivityTypes composite = new CompositeStageActivityTypes(); composite.addActivityTypes( externalTypes ); composite.addActivityTypes( JointActingTypes.JOINT_STAGE_ACTS ); this.stageTypes = composite; }
public JointTripRemoverAlgorithm( final Random random, final StageActivityTypes stages, final MainModeIdentifier mainModeIdentifier) { this.random = random; this.stages = stages; final CompositeStageActivityTypes compositeStages = new CompositeStageActivityTypes(); compositeStages.addActivityTypes( stages ); compositeStages.addActivityTypes( JointActingTypes.JOINT_STAGE_ACTS ); this.stagesWithJointTypes = compositeStages; this.mainModeIdentifier = mainModeIdentifier; }
@Override public PlanAlgorithm getPlanAlgoInstance() { final CompositeStageActivityTypes actualBlackList = new CompositeStageActivityTypes(); actualBlackList.addActivityTypes( tripRouterProvider.get().getStageActivityTypes()); if ( additionalBlackList != null ) { actualBlackList.addActivityTypes( additionalBlackList ); } return new ActivitySequenceMutatorAlgorithm( MatsimRandom.getLocalInstance(), actualBlackList ); } }
@Override public PlanAlgorithm getPlanAlgoInstance() { TripRouter router = tripRouterProvider.get(); StageActivityTypes blackListToUse = router.getStageActivityTypes(); if (additionalBlackList != null) { CompositeStageActivityTypes composite = new CompositeStageActivityTypes(); composite.addActivityTypes( blackListToUse ); composite.addActivityTypes( additionalBlackList ); blackListToUse = composite; } return new TripsToLegsAlgorithm( blackListToUse, router.getMainModeIdentifier() ); } }
/** * Sets the {@link RoutingModule} to use for the given (main) mode. * @param mainMode the mode * @param module the module to use with this mode * @return the previously registered {@link RoutingModule} for this mode if any, null otherwise. */ @Deprecated // use the Builder instead. kai, oct'17 /* package-private */ RoutingModule setRoutingModule( final String mainMode, final RoutingModule module) { RoutingModule old = routingModules.put( mainMode , module ); if (old != null) { final StageActivityTypes oldTypes = old.getStageActivityTypes(); final boolean removed = checker.removeActivityTypes( oldTypes ); if ( !removed ) { throw new RuntimeException( "could not remove "+oldTypes+" associated to "+old+". This may be due to a routing module creating a new instance at each call of getStageActivityTypes()" ); } } final StageActivityTypes types = module.getStageActivityTypes(); if ( types == null ) { // we do not want to accept that, this would risk to mess up // with replacement, and it generally makes code messy. throw new RuntimeException( module+" returns null stage activity types. This is not a valid value. Return EmptyStageActivityTypes.INSTANCE instead." ); } checker.addActivityTypes( types ); return old; }
private double getProbRemoval( final JointPlan plan, final List<Id<Person>> agentsToIgnore) { int countPassengers = 0; int countEgoists = 0; final CompositeStageActivityTypes stageTypes = new CompositeStageActivityTypes(); stageTypes.addActivityTypes( tripRouter.getStageActivityTypes() ); stageTypes.addActivityTypes( JointActingTypes.JOINT_STAGE_ACTS ); for (Plan indivPlan : plan.getIndividualPlans().values()) { if ( agentsToIgnore.contains( indivPlan.getPerson().getId() ) ) continue; // parse trips, and count "egoists" (non-driver non-passenger) and // passengers. Some care is needed: joint trips are not identified as // trips by the router! for ( Trip trip : TripStructureUtils.getTrips( indivPlan , stageTypes ) ) { if ( tripContainsOneOfThoseModes( trip , Collections.singleton( JointActingTypes.PASSENGER ) ) ) countPassengers++; if ( !tripContainsOneOfThoseModes( trip , JointActingTypes.JOINT_MODES ) ) countEgoists++; } } return ((double) countPassengers) / (countEgoists + countPassengers); }
public static GenericStrategyModule<GroupPlans> createJointTripAwareTourModeUnifierModule( final Config config, final Provider<TripRouter> tripRouterFactory) { final TripRouter router = tripRouterFactory.get(); final CompositeStageActivityTypes stageTypes = new CompositeStageActivityTypes(); stageTypes.addActivityTypes( router.getStageActivityTypes() ); stageTypes.addActivityTypes( JointActingTypes.JOINT_STAGE_ACTS ); return new IndividualBasedGroupStrategyModule( new TourModeUnifierModule( config.global().getNumberOfThreads(), stageTypes, new MainModeIdentifier() { @Override public String identifyMainMode( final List<? extends PlanElement> tripElements) { for ( PlanElement pe : tripElements ) { if ( pe instanceof Leg && ((Leg) pe).getMode().equals( JointActingTypes.PASSENGER ) ) { return TransportMode.pt; } if ( pe instanceof Leg && ((Leg) pe).getMode().equals( JointActingTypes.DRIVER ) ) { return TransportMode.car; } } return router.getMainModeIdentifier().identifyMainMode( tripElements ); } }) ); }
@Override public PlanAlgorithm getPlanAlgoInstance() { final CompositeStageActivityTypes blackList = new CompositeStageActivityTypes(); blackList.addActivityTypes( tripRouterFactory.get().getStageActivityTypes() ); blackList.addActivityTypes( JointActingTypes.JOINT_STAGE_ACTS ); final int iteration = getReplanningContext().getIteration(); final int firstIteration = config.controler().getFirstIteration(); final double nIters = config.controler().getLastIteration() - firstIteration; final double minTemp = 1; final double startMin = (2 / 3.) * nIters; final double progress = (iteration - firstIteration) / startMin; final double temp = minTemp + Math.max(1 - progress , 0) * (maxTemp - minTemp); log.debug( "temperature in iteration "+iteration+": "+temp ); final BlackListedTimeAllocationMutator algo = new BlackListedTimeAllocationMutator( blackList, config.timeAllocationMutator().getMutationRange() * temp, MatsimRandom.getLocalInstance() ); return algo; } }));
types.addActivityTypes( router.getStageActivityTypes() ); types.addActivityTypes( JointActingTypes.JOINT_STAGE_ACTS );
stageActs.addActivityTypes( tripRouterFactory.get().getStageActivityTypes() ); stageActs.addActivityTypes( JointActingTypes.JOINT_STAGE_ACTS ); strategy.addStrategyModule(