Skip to content

Commit 7a28c8b

Browse files
committed
exclude that it divides by 0
1 parent 235f9f9 commit 7a28c8b

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/ruin/RuinTimeRelated.java

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,15 +121,15 @@ public Collection<Job> ruinRoutes(Collection<VehicleRoute> vehicleRoutes) {
121121
}
122122
final double maxT = maxTime;
123123
final double maxD = maxDistance;
124-
final double timeI = 10;
124+
final double timeInfluence = 10;
125125
final double distanceI;
126126
double distanceInfluence = 1;
127127
if (random.nextDouble() < 0.5) {
128128
distanceI = 0;
129129
} else distanceI = distanceInfluence;
130130
neighborActivities.sort((o1, o2) -> {
131-
double rO1 = relatedness(o1, maxD, maxT, timeI, distanceI);
132-
double rO2 = relatedness(o2, maxD, maxT, timeI, distanceI);
131+
double rO1 = relatedness(o1, maxD, maxT, timeInfluence, distanceI);
132+
double rO2 = relatedness(o2, maxD, maxT, timeInfluence, distanceI);
133133
return Double.compare(rO1, rO2);
134134
});
135135
int toRemove = getRuinShareFactory().createNumberToBeRemoved();
@@ -144,8 +144,20 @@ public Collection<Job> ruinRoutes(Collection<VehicleRoute> vehicleRoutes) {
144144
return unassignedJobs;
145145
}
146146

147-
private double relatedness(RelatednessToTourActivity o1, double maxDistance, double maxTime, double timeI, double distanceI) {
148-
return timeI * o1.time / maxTime + distanceI * o1.distance / maxDistance;
147+
private double relatedness(RelatednessToTourActivity o1, double maxDistance, double maxTime, double timeInfluence, double distanceInfluence) {
148+
double time;
149+
if (maxTime == 0) {
150+
time = 0;
151+
} else {
152+
time = o1.time / maxTime;
153+
}
154+
double distance;
155+
if (maxDistance == 0) {
156+
distance = 0;
157+
} else {
158+
distance = o1.distance / maxDistance;
159+
}
160+
return timeInfluence * time + distanceInfluence * distance;
149161
}
150162

151163
@Override

0 commit comments

Comments
 (0)