public StageActivityTypes getStageActivities() { return tripRouter.getStageActivityTypes() ; }
@Inject final void setTripRouter( TripRouter val ) { // (not user settable) stageActivities = val.getStageActivityTypes() ; } @Override
public TripsToLegsAlgorithm(final TripRouter router) { this( router.getStageActivityTypes(), router.getMainModeIdentifier() ); }
public Trip findTripAfterActivity( Plan plan, Activity activity ) { return TripStructureUtils.findTripStartingAtActivity( activity, plan, tripRouter.getStageActivityTypes() ) ; }
@Override public void notifyStartup(final StartupEvent event) { this.minIteration = controlerConfigGroup.getFirstIteration(); TripRouter tripRouter = tripRouterFactory.get(); this.stageActivities = tripRouter.getStageActivityTypes() ; this.mainModeIdentifier = tripRouter.getMainModeIdentifier() ; }
@Override public PlanAlgorithm getPlanAlgoInstance() { PlanAlgorithm pmta; switch (this.activityDurationInterpretation) { case minOfDurationAndEndTime: pmta = new TripPlanMutateTimeAllocation(this.tripRouterProvider.get().getStageActivityTypes(), this.mutationRange, this.affectingDuration, MatsimRandom.getLocalInstance(), this.subpopulationAttribute, this.personAttributes, this.subpopulationMutationRanges, this.subpopulationAffectingDuration); break; default: pmta = new PlanMutateTimeAllocationSimplified( this.tripRouterProvider.get().getStageActivityTypes(), this.mutationRange, this.affectingDuration, MatsimRandom.getLocalInstance()); } return pmta; } }
private List<Subtour> getRootSubtoursWithMode(final Plan plan) { final Collection<Subtour> allSubtours = TripStructureUtils.getSubtours( plan , tripRouter.getStageActivityTypes() ); final List<Subtour> roots = new ArrayList<Subtour>(); for ( Subtour s : allSubtours ) { if ( s.getParent() != null ) continue; if ( !containsMode( s ) ) continue; roots.add( s ); } return roots; }
private void replanCurrentTripFromStageActivity(final List<PlanElement> tripElements, int tripElementsIndex, MobsimAgent agent, String mainMode) { // String mainMode = tripRouter.getMainModeIdentifier().identifyMainMode(tripElements) ; // yyyy I wonder what this will do if we are already at the egress stage. kai, oct'17 List<PlanElement> subTripPlanElements = tripElements.subList(tripElementsIndex,tripElements.size()-1) ; Trip subTrip = TripStructureUtils.getTrips(subTripPlanElements, tripRouter.getStageActivityTypes()).get(0) ; final double dpTime = agent.getActivityEndTime() ; this.replanFutureTrip(subTrip, WithinDayAgentUtils.getModifiablePlan(agent), mainMode, dpTime ) ; } // future:
public boolean isRealActivity(PlanElement pe) { return pe instanceof Activity && ! ( tripRouter.getStageActivityTypes().isStageActivity( ((Activity)pe).getType() ) ); }
@Override public PlanAlgorithm getPlanAlgoInstance() { TripPlanMutateTimeAllocation pmta = new TripPlanMutateTimeAllocation( tripRouterProvider.get().getStageActivityTypes(), this.mutationRange, affectingDuration, MatsimRandom.getLocalInstance()); pmta.setUseActivityDurations(this.useActivityDurations); return pmta; }
@Override public PlanAlgorithm getPlanAlgoInstance() { final TripRouter tripRouter = tripRouterProvider.get(); final ChooseRandomLegModeForSubtour chooseRandomLegMode = new ChooseRandomLegModeForSubtour( tripRouter.getStageActivityTypes(), tripRouter.getMainModeIdentifier(), this.permissibleModesCalculator, this.modes, this.chainBasedModes, MatsimRandom.getLocalInstance(), behavior, probaForChangeSingleTripMode); return chooseRandomLegMode; }
public Trip findTripAtPlanElement(MobsimAgent agent, PlanElement pe) { log.debug("plan element to be found=" + pe ) ; List<Trip> trips = TripStructureUtils.getTrips( WithinDayAgentUtils.getModifiablePlan(agent), tripRouter.getStageActivityTypes() ) ; for ( Trip trip : trips ) { for ( PlanElement te : trip.getTripElements() ) { log.debug("trip element to be compared with=" + te ) ; if ( te==pe ) { log.debug("found trip element") ; return trip; } } } throw new ReplanningException("trip not found") ; } public Trip findTripAtPlanElementIndex( MobsimAgent agent, int index ) {
public Activity findRealActBefore(MobsimAgent agent, int index) { Plan plan = WithinDayAgentUtils.getModifiablePlan(agent) ; List<PlanElement> planElements = plan.getPlanElements() ; Activity prevAct = null ; for ( int ii=0 ; ii<index ; ii++ ) { if ( planElements.get(ii) instanceof Activity ) { Activity act = (Activity) planElements.get(ii) ; if ( !this.tripRouter.getStageActivityTypes().isStageActivity( act.getType() ) ) { prevAct = act ; } } } return prevAct; } // private Facility asFacility(Activity activity) {
private void checkIfNotStageActivity(Activity origAct) { if( this.tripRouter.getStageActivityTypes().isStageActivity(origAct.getType()) ){ throw new ReplanningException("trying to replace a helper activity (stage activity) by a real activity; this is not possible") ; } } private static boolean checkIfTripHasAlreadyStarted(MobsimAgent agent, final List<PlanElement> currentTripElements) {
@Override public void run(final Plan plan) { final List<Trip> oldTrips = TripStructureUtils.getTrips( plan, getTripRouter().getStageActivityTypes() ); delegate.run( plan ); final List<Trip> newTrips = TripStructureUtils.getTrips( plan, getTripRouter().getStageActivityTypes() ); transmitVehicleInformation( oldTrips, newTrips); }
public static GenericStrategyModule<GroupPlans> createSynchronizerModule( final Config config, final Provider<TripRouter> tripRouterFactory) { return new JointPlanBasedGroupStrategyModule( new SynchronizeCoTravelerPlansModule( config.global().getNumberOfThreads(), tripRouterFactory.get().getStageActivityTypes() ) ); }
@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() ); } }
@Override public GenericPlanAlgorithm<GroupPlans> createAlgorithm(final ReplanningContext replanningContext) { return new PrismicLocationChoiceAlgorithm( (PrismicLocationChoiceConfigGroup) scenario.getConfig().getModule( PrismicLocationChoiceConfigGroup.GROUP_NAME ), scenario.getActivityFacilities(), (SocialNetwork) scenario.getScenarioElement( SocialNetwork.ELEMENT_NAME ), new CompositeStageActivityTypes( tripRouterProvider.get().getStageActivityTypes(), JointActingTypes.JOINT_STAGE_ACTS ) ); } }
@Override public boolean doReplanning(MobsimAgent withinDayAgent) { Plan executedPlan = WithinDayAgentUtils.getModifiablePlan(withinDayAgent); // If we don't have an executed plan if (executedPlan == null) return false; // Get the activity currently performed by the agent as well as the subsequent trip. Activity currentActivity = (Activity) WithinDayAgentUtils.getCurrentPlanElement(withinDayAgent); Trip trip = TripStructureUtils.findTripStartingAtActivity(currentActivity, executedPlan, this.tripRouter.getStageActivityTypes() ); // If there is no trip after the activity. if (trip == null) return false; String mainMode = this.tripRouter.getMainModeIdentifier().identifyMainMode(trip.getTripElements()); double departureTime = TripStructureUtils.getDepartureTime(trip); new EditTrips(this.tripRouter, scenario).replanFutureTrip(trip, executedPlan, mainMode, departureTime); return true; }