21 package org.matsim.core.replanning.conflicts;
23 import java.util.Collections;
24 import java.util.LinkedList;
26 import org.apache.commons.lang3.tuple.Pair;
27 import org.jboss.logging.Logger;
33 import com.google.inject.Inject;
46 public static final String
SELECTOR_NAME =
"WorstPlanForRemovalSelectorWithConflicts";
59 LinkedList<Pair<Plan, Double>> sorter =
new LinkedList<>();
60 int nonConflictingCount = 0;
63 double score = plan.
getScore() == null ? Double.NEGATIVE_INFINITY : plan.getScore();
64 sorter.add(Pair.of(plan, score));
67 nonConflictingCount++;
71 if (nonConflictingCount == 0) {
72 logger.error(String.format(
"No non-conflicting plan found for agent %s", person.
getId()));
75 Collections.sort(sorter, (a, b) -> Double.compare(a.getRight(), b.getRight()));
83 if (sorter.size() > 0) {
84 return sorter.getFirst().getLeft();
WorstPlanForRemovalSelectorWithConflicts(ConflictManager conflictManager)
final ConflictManager conflictManager
static final String SELECTOR_NAME
boolean isPotentiallyConflicting(Plan plan)
Plan selectPlan(HasPlansAndId< Plan, Person > person)
abstract List<? extends T > getPlans()