@Deprecated // use methods of interface Person public static Plan createAndAddPlan(Person person, final boolean selected) { Plan p = PopulationUtils.createPlan(person); person.addPlan(p); if (selected) { person.setSelectedPlan(p); } return p; }
private static void select(final GroupPlans plans) { for (JointPlan jp : plans.getJointPlans()) { for (Plan p : jp.getIndividualPlans().values()) { p.getPerson().setSelectedPlan(p); } } for (Plan p : plans.getIndividualPlans()) { p.getPerson().setSelectedPlan(p); } }
public Person getPerson() { Person person = PopulationUtils.getFactory().createPerson(Id.createPersonId(id)); for (PlanSerializable planSer : plans) { Plan plan = planSer.getPlan(person); person.addPlan(plan); if(planSer.equals(selectedPlan)) person.setSelectedPlan(plan); } return person; } }
@Override public void notifyStartup(StartupEvent event) { masterLogger.warn(masterInitialLogString); startSlaveHandlersInMode(CommunicationsMode.TRANSMIT_SCENARIO); if (initialRoutingOnSlaves) { waitForSlaveThreads(); startSlaveHandlersInMode(CommunicationsMode.TRANSMIT_PLANS_TO_MASTER); waitForSlaveThreads(); mergePlansFromSlaves(); //this code is a copy of the replanning strategy for (Person person : matsimControler.getScenario().getPopulation().getPersons().values()) { // person.removePlan(person.getSelectedPlan()); Plan plan = newPlans.get(person.getId().toString()); person.addPlan(plan); person.setSelectedPlan(plan); } if (slaveHandlerTreeMap.size() > 1 || slavesHaveRequestedShutdown() || hydra.hydraSlaves.size() > 0) loadBalance(); if (SelectedSimulationMode.equals(SimulationMode.PARALLEL)) { waitForSlaveThreads(); startSlaveHandlersInMode(CommunicationsMode.CONTINUE); } } }
private void createPopulation() { TransitSchedule schedule = this.scenario.getTransitSchedule(); Population population = this.scenario.getPopulation(); PopulationFactory pb = population.getFactory(); TransitStopFacility[] stops = schedule.getFacilities().values().toArray(new TransitStopFacility[schedule.getFacilities().size()]); TransitLine tLine = schedule.getTransitLines().get(Id.create(1, TransitLine.class)); TransitRoute tRoute = tLine.getRoutes().get(Id.create(1, TransitRoute.class)); TransitStopFacility lastStop = schedule.getFacilities().get(Id.create(stops.length - 1, TransitStopFacility.class)); for (int i = 0; i < stops.length; i++) { TransitStopFacility stop = stops[i]; if (stop == lastStop) { continue; } for (int j = 0; j < nOfAgentsPerStop; j++) { Person person = pb.createPerson(Id.create(Integer.toString(i * nOfAgentsPerStop + j), Person.class)); Plan plan = pb.createPlan(); Activity act1 = pb.createActivityFromLinkId("home", stop.getLinkId()); act1.setEndTime(departureTime + j * agentInterval); Leg leg = pb.createLeg(TransportMode.pt); leg.setRoute(new ExperimentalTransitRoute(stop, tLine, tRoute, lastStop)); Activity act2 = pb.createActivityFromLinkId("work", Id.create(nOfLinks - 1, Link.class)); population.addPerson(person); person.addPlan(plan); person.setSelectedPlan(plan); plan.addActivity(act1); plan.addLeg(leg); plan.addActivity(act2); } } }
public TransitDriverAgentImpl(Umlauf umlauf, String transportMode, TransitStopAgentTracker thisAgentTracker, InternalInterface internalInterface) { super(internalInterface, thisAgentTracker); this.umlauf = umlauf; this.eventsManager = internalInterface.getMobsim().getEventsManager(); this.scenario = internalInterface.getMobsim().getScenario() ; // (yy AbstractTransitDriverAgent already keeps both of them. kai, dec'15) this.iUmlaufStueck = this.umlauf.getUmlaufStuecke().iterator(); Person driverPerson = PopulationUtils.getFactory().createPerson(Id.create("pt_" + umlauf.getId(), Person.class)); // we use the non-wrapped route for efficiency, but the leg has to return the wrapped one. PlanBuilder planBuilder = new PlanBuilder(); for (UmlaufStueckI umlaufStueck : umlauf.getUmlaufStuecke()) { NetworkRoute carRoute2 = umlaufStueck.getCarRoute(); Gbl.assertNotNull(carRoute2); planBuilder.addTrip(getWrappedCarRoute(carRoute2), transportMode); } Plan plan = planBuilder.build(); driverPerson.addPlan(plan); driverPerson.setSelectedPlan(plan); setDriver(driverPerson); iPlanElement = plan.getPlanElements().listIterator(); this.currentPlanElement = iPlanElement.next(); setNextLeg(); }
public void testSetSelectedPlan() { Person person = PopulationUtils.getFactory().createPerson(Id.create(11, Person.class)); Plan p1 = PersonUtils.createAndAddPlan(person, false); assertEquals(p1, person.getSelectedPlan()); Plan p2 = PersonUtils.createAndAddPlan(person, false); assertEquals(p1, person.getSelectedPlan()); Plan p3 = PersonUtils.createAndAddPlan(person, true); assertEquals(p3, person.getSelectedPlan()); person.setSelectedPlan(p2); assertEquals(p2, person.getSelectedPlan()); Plan p4 = PopulationUtils.createPlan(null); try { person.setSelectedPlan(p4); fail("expected Exception when setting a plan as selected that is not part of person."); } catch (IllegalStateException e) { log.info("catched expected exception: " + e.getMessage()); } }
person.setSelectedPlan(plan); plan.addActivity(act1); plan.addLeg(leg); person.setSelectedPlan(plan); plan.addActivity(act1); plan.addLeg(leg); person.setSelectedPlan(plan); plan.addActivity(act1a); plan.addLeg(leg1); person2.setSelectedPlan(plan2); plan2.addActivity(act2a); plan2.addLeg(leg2);
person.setSelectedPlan(plan); persons.add(person);
/** * Test that really the already selected plan is returned. * * @author mrieser */ public void testSelected() { Person person = PopulationUtils.getFactory().createPerson(Id.create(1, Person.class)); Plan plan1 = PersonUtils.createAndAddPlan(person, false); Plan plan2 = PersonUtils.createAndAddPlan(person, true); plan2.setScore(10.0); Plan plan3 = PersonUtils.createAndAddPlan(person, false); plan3.setScore(-50.0); KeepSelected selector = new KeepSelected(); // test default selected plan assertEquals(plan2, selector.selectPlan(person)); // test selected plan with negative score person.setSelectedPlan(plan3); assertEquals(plan3, selector.selectPlan(person)); // test selected plan with undefined score person.setSelectedPlan(plan1); assertEquals(plan1, selector.selectPlan(person)); }
plan.addActivity(act3); person.addPlan(plan); person.setSelectedPlan(plan); population.addPerson(person); plan.addActivity(act3); person.addPlan(plan); person.setSelectedPlan(plan); population.addPerson(person); plan.addActivity(act3); person.addPlan(plan); person.setSelectedPlan(plan); population.addPerson(person);
experiencedPerson.setSelectedPlan(plan);