@Override public Iterable<Id<Clique>> getGroups(final Person person) { return Arrays.asList( personIdToGroupId.get( person.getId() ), fullGroupId); } }
public static boolean containsAllIds( final List<PersonRecord> persons, final Set<Id<Person>> ids) { final Collection<Id<Person>> remainingIds = new HashSet< >( ids ); for ( PersonRecord p : persons ) { remainingIds.remove( p.person.getId() ); if ( remainingIds.isEmpty() ) return true; } return false; }
public static boolean containsAllIds( final List<PersonRecord> persons, final Set<Id<Person>> ids) { final Collection<Id<Person>> remainingIds = new HashSet< >( ids ); for ( PersonRecord p : persons ) { remainingIds.remove( p.person.getId() ); if ( remainingIds.isEmpty() ) return true; } return false; }
@Override public void startPerson(final Person person, final BufferedWriter out) throws IOException { out.write("\t<person"); out.write(" id=\"" + person.getId() + "\""); out.write(">\n"); }
@Override public double getLinkTravelTime(Link link, double time, Person person, Vehicle vehicle) { Double personSpeed = this.personSpeeds.get(person.getId()); if (personSpeed == null) { throw new RuntimeException("No speed was found for person " + person.getId().toString() + ". Aborting!"); } else return link.getLength() / personSpeed; } }
public static List<PersonRecord> filter( final List<PersonRecord> toFilter, final JointPlan jointPlan) { List<PersonRecord> newList = new ArrayList<PersonRecord>(); for (PersonRecord r : toFilter) { if (!jointPlan.getIndividualPlans().containsKey( r.person.getId() )) { newList.add( r ); } } return newList; }
public int getPersonPreference( final Person person, Config config ) { checkConsistency(config); final int personalSeed = seed + person.getId().toString().hashCode(); final Random random = new Random( personalSeed ); // AH argues this is necessary to be closer to random... for ( int i=0; i < 5; i++ ) random.nextLong(); return minPref + ((maxPref != minPref) ? random.nextInt( maxPref - minPref ) : 0); } }
@Override public void handleActivity(Activity act) { activityIndex++ ; this.score += destinationChoiceScoring.getDestinationScore(act, BestReplyDestinationChoice.useScaleEpsilonFromConfig, activityIndex, person.getId()); }
public static boolean intersects( final Collection<Id<Person>> ids1, final PlanAllocation alloc) { for ( PlanRecord p : alloc.getPlans() ) { if ( ids1.contains( p.person.person.getId() ) ) return true; } return false; }
@Override public void handleLastActivity(Activity act) { activityIndex++ ; this.score += destinationChoiceScoring.getDestinationScore(act, BestReplyDestinationChoice.useScaleEpsilonFromConfig, activityIndex, person.getId()); } }
private void init() { for (Person person : this.population.getPersons().values()) { ScoringFunction data = this.scoringFunctionFactory.createNewScoringFunction(person); this.agentScorers.put(person.getId(), data); this.partialScores.put(person.getId(), new TDoubleArrayList()); this.tripRecords.put(person.getId(), PopulationUtils.createPlan()); } }
@Override public boolean areLinked( final Plan p1, final Plan p2) { final boolean areLinked = containsCoTraveler( p1 , p2.getPerson().getId() ); assert areLinked == containsCoTraveler( p2 , p1.getPerson().getId() ) : "inconsistent plans "+p1+" "+(areLinked ? "contains " : "does not contains ")+p2.getPerson().getId()+ " and "+p2+" "+(!areLinked ? "contains " : "does not contains ")+p1.getPerson().getId(); return areLinked; }
private static Map<Id<Person>, Plan> getPlansMap(final GroupPlans plan) { final Map<Id<Person>, Plan> planPerAgent = new LinkedHashMap<>(); for ( Plan p : plan.getAllIndividualPlans() ) { planPerAgent.put( p.getPerson().getId() , p ); } return planPerAgent; }
private boolean areAltersTabu( final Iterable<PlanRecord> records ) { for ( PlanRecord r :records ) { final Set<Id<Person>> alters = socialNetwork.getAlters( r.getPlan().getPerson().getId() ); for ( Id<Person> alter : alters ) { if ( tabuAgents.contains( alter ) ) { return true; } } } return false; } }
private void writeIndividualPlan(final Plan plan) { final List<Tuple<String, String>> atts = new ArrayList<Tuple<String, String>>(); atts.add( createTuple( PERSON_ATT , plan.getPerson().getId().toString() ) ); final int index = plan.getPerson().getPlans().indexOf( plan ); assert index >= 0; atts.add( createTuple( PLAN_NR_ATT , index+"" ) ); writeStartTag( PLAN_TAG , atts , true ); }
@Override public void handleEvent(PersonMoneyEvent event) { List<String> legTypes = new ArrayList<>() ; final Population pop = this.scenario.getPopulation(); Person person = pop.getPersons().get( event.getPersonId() ) ; legTypes.add( this.getSubpopName(person)) ; double item = - event.getAmount() ; this.addItemToAllRegisteredTypes(legTypes, StatType.personPayments, item); // (this is not additive by person, but it is additive by legType. So if a person has multiple money events, they // are added up in the legType category. kai, feb'14) add(person.getId(), item, PAYMENTS); }
private void assignKValuesPersons() { for (Person p : this.scenario.getPopulation().getPersons().values()) { this.personsKValues.putAttribute(p.getId().toString(), "k", rnd.getUniform(1.0)); } // write person k values ObjectAttributesXmlWriter attributesWriter = new ObjectAttributesXmlWriter(this.personsKValues); attributesWriter.writeFile(config.controler().getOutputDirectory() + pkValuesFile); } private void assignKValuesAlternatives() {
@Override public void processEvent() { Road road = (Road) this.getReceivingUnit(); Event event = null; event = new LinkLeaveEvent(this.getMessageArrivalTime(), Id.create(vehicle.getOwnerPerson().getId(), org.matsim.vehicles.Vehicle.class), road.getLink().getId()); eventsManager.processEvent(event); }
public void testWriteReadXml() { Person person = PopulationUtils.getFactory().createPerson(Id.create(1, Person.class)); VehicleType vehicleType = new VehicleTypeImpl(Id.create("testVehType", VehicleType.class)); Vehicle vehicle = new VehicleImpl(Id.create(80, Vehicle.class), vehicleType); PersonLeavesVehicleEvent event = new PersonLeavesVehicleEvent(5.0 * 3600 + 11.0 * 60, person.getId(), vehicle.getId()); PersonLeavesVehicleEvent event2 = XmlEventsTester.testWriteReadXml(getOutputDirectory() + "events.xml", event); assertEquals("wrong time of event.", 5.0 * 3600 + 11.0 * 60, event2.getTime(), EPSILON); assertEquals("wrong vehicle id.", "80", event2.getVehicleId().toString()); } }