/** * A pointer to material in TripStructureUtils * */ public static List<Activity> getActivities( Plan plan, StageActivityTypes stageActivities ) { return TripStructureUtils.getActivities(plan, stageActivities ) ; }
public static List<Trip> getTrips( final Plan plan, final StageActivityTypes stageActivities) { return getTrips( plan.getPlanElements(), stageActivities); }
/* package-private, for testing */ double similarity( Plan plan1, Plan plan2 ) { double simil = 0. ; { List<Activity> activities1 = TripStructureUtils.getActivities(plan1, stageActivities) ; List<Activity> activities2 = TripStructureUtils.getActivities(plan2, stageActivities) ; simil += PopulationUtils.calculateSimilarity(activities1, activities2, actTypeWeight, locationWeight, actTimeWeight ) ; if ( Double.isNaN(simil) ) { log.warn("simil is NaN; id: " + plan1.getPerson().getId() ) ; } } { List<Leg> legs1 = TripStructureUtils.getLegs(plan1 ) ; List<Leg> legs2 = TripStructureUtils.getLegs(plan2 ) ; simil += PopulationUtils.calculateSimilarity(legs1, legs2, network, this.sameModePenalty, this.sameRoutePenalty ) ; if ( Double.isNaN(simil) ) { log.warn("simil is NaN; id: " + plan1.getPerson().getId() ) ; } } return simil ; }
determineChoiceSet( homeLocation, TripStructureUtils.getTrips(plan, stageActivityTypes), TripStructureUtils.getSubtours( plan, stageActivityTypes
/** * A pointer to material in TripStructureUtils * */ public static List<Leg> getLegs( Plan plan ) { return TripStructureUtils.getLegs( plan ) ; }
public static Collection<Subtour> getSubtours( final Plan plan, final StageActivityTypes stageActivityTypes) { return getSubtours( plan.getPlanElements(), stageActivityTypes ); }
final List<Trip> trips = getTrips( planElements , stageActivityTypes ); final List<Trip> nonAllocatedTrips = new ArrayList<>( trips ); for (Trip trip : trips) { addSubtourAndUpdateParents( subtours, new Subtour( addSubtourAndUpdateParents( subtours, new Subtour(
public PlanElement removeActivity(MobsimAgent agent, int index, String mode) { Plan plan = WithinDayAgentUtils.getModifiablePlan(agent) ; List<PlanElement> planElements = plan.getPlanElements() ; checkIfNotInPastOrCurrent(agent, index); final Trip tripBefore = TripStructureUtils.findTripEndingAtActivity( (Activity) planElements.get(index),plan,tripRouter.getStageActivityTypes() ); final Trip tripAfter = TripStructureUtils.findTripStartingAtActivity( (Activity)planElements.get(index),plan,tripRouter.getStageActivityTypes() ); if ( mode==null ) { final String mainModeBefore = tripRouter.getMainModeIdentifier().identifyMainMode( tripBefore.getTripElements() ); final String mainModeAfter = tripRouter.getMainModeIdentifier().identifyMainMode( tripAfter.getTripElements() ); if ( mainModeBefore.equals( mainModeAfter ) ) { mode = mainModeBefore ; } else { throw new ReplanningException("mode not given and mode before removed activity != mode after removed activity; don't know which mode to use") ; } } PlanElement pe = planElements.remove(index) ; if ( checkIfTripHasAlreadyStarted( agent, tripBefore.getTripElements() ) ) { editTrips.replanCurrentTrip(agent, mobsim.getSimTimer().getTimeOfDay() , mode); } else { editTrips.insertEmptyTrip(plan, tripBefore.getOriginActivity(), tripAfter.getDestinationActivity(), mode ) ; } WithinDayAgentUtils.resetCaches(agent); this.mobsim.rescheduleActivityEnd(agent); return pe ; } public final void rescheduleActivityEndtime( MobsimAgent agent, int index, double newEndTime ) {
@Test public void testGetTripsWithoutSubSubtours() throws Exception { for (Fixture f : allFixtures( useFacilitiesAsAnchorPoint )) { final int nTrips = TripStructureUtils.getTrips( f.plan , CHECKER ).size(); final Collection<Subtour> subtours = TripStructureUtils.getSubtours( f.plan, CHECKER ); int countTrips = 0; for (Subtour s : subtours) { countTrips += s.getTripsWithoutSubSubtours().size(); } assertEquals( "[anchorAtFacilities="+f.useFacilitiesAsAnchorPoint+"] "+ "unexpected total number of trips in subtours without subsubtours", countTrips, nTrips); } }
public static List<Leg> getLegs(final Plan plan) { return getLegs( plan.getPlanElements() ); }
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; }
Trip tripBeforeAct = TripStructureUtils.findTripEndingAtActivity(newAct,plan,tripRouter.getStageActivityTypes()); Trip tripAfterAct = TripStructureUtils.findTripStartingAtActivity(origAct,plan,tripRouter.getStageActivityTypes());
private static Trip getTripWithLeg( final Plan plan, final Leg leg, final StageActivityTypes stages) { for ( Trip t : TripStructureUtils.getTrips( plan , stages ) ) { if ( t.getTripElements().contains( leg ) ) return t; } throw new RuntimeException( plan.getPlanElements() +" doesn't contain "+leg ); }
public static List<Activity> getActivities( final Plan plan, final StageActivityTypes stageActivities) { return getActivities( plan.getPlanElements(), stageActivities); }
for (int i = 0; i < 5; i++) { final Plan plan = f.createNewPlanInstance(); final int initNTrips = TripStructureUtils.getTrips( plan , stagesActivities ).size(); final Collection<Subtour> initSubtours = TripStructureUtils.getSubtours( plan , stagesActivities ); testee.run( plan ); final List<Trip> newTrips = TripStructureUtils.getTrips( plan , stagesActivities ); newTrips.size()); final Collection<Subtour> newSubtours = TripStructureUtils.getSubtours( plan , stagesActivities );
@Override public void handlePlan(Plan plan) { for (Leg leg : TripStructureUtils.getLegs(plan)) { if (leg.getRoute() instanceof NetworkRoute) { switch ( leg.getMode() ) { case TransportMode.car: case TransportMode.bike: case TransportMode.walk: break; default: Logger.getLogger(this.getClass()).warn( "route is of type=" + leg.getRoute().getClass() ) ; Logger.getLogger(this.getClass()).warn( "mode=" + leg.getMode() ) ; throw new RuntimeException("inconsistent"); } } } }
private static void performTest(final Fixture fixture) { final Collection<Subtour> subtours = TripStructureUtils.getSubtours( fixture.plan, CHECKER ); assertEquals( "[anchorAtFacilities="+fixture.useFacilitiesAsAnchorPoint+"] "+ "unexpected number of subtours in "+subtours, fixture.expectedSubtours.size(), subtours.size() ); assertEquals( "[anchorAtFacilities="+fixture.useFacilitiesAsAnchorPoint+"] "+ "uncompatible subtours", // do not bother about iteration order, // but ensure you get some information on failure new HashSet<Subtour>( fixture.expectedSubtours ), new HashSet<Subtour>( subtours ) ); }
@Override public void run(final Plan plan) { final List<PlanElement> planElements = plan.getPlanElements(); final List<Trip> trips = TripStructureUtils.getTrips( plan , blackList ); for ( Trip trip : trips ) { final List<PlanElement> fullTrip = planElements.subList( planElements.indexOf( trip.getOriginActivity() ) + 1, planElements.indexOf( trip.getDestinationActivity() )); final String mode = mainModeIdentifier.identifyMainMode( fullTrip ); fullTrip.clear(); fullTrip.add( PopulationUtils.createLeg(mode) ); if ( fullTrip.size() != 1 ) throw new RuntimeException( fullTrip.toString() ); } } }
@Override public void run(final Plan plan) { final List<Activity> activities = TripStructureUtils.getActivities( plan , stageTypes ); // we need at least two activities in addition to the first/last if ( activities.size() < 4 ) return; // first act: not first nor last final int firstActIndex = 1 + random.nextInt( activities.size() - 2 ); // second act: not first, last, nor first act final int secondActIndex = 1 + random.nextInt( activities.size() - 3 ); swap( plan, activities.get( firstActIndex ), activities.get( secondActIndex < firstActIndex ? secondActIndex : secondActIndex + 1 ) ); }
for (int i = 0; i < 5; i++) { final Plan plan = f.createNewPlanInstance(); final int initNTrips = TripStructureUtils.getTrips( plan , stagesActivities ).size(); final Collection<Subtour> initSubtours = TripStructureUtils.getSubtours( plan , stagesActivities ); testee.run( plan ); final List<Trip> newTrips = TripStructureUtils.getTrips( plan , stagesActivities ); newTrips.size()); final Collection<Subtour> newSubtours = TripStructureUtils.getSubtours( plan , stagesActivities );