diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/io/VrpXMLWriter.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/io/VrpXMLWriter.java index 10a8043a..0608f188 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/io/VrpXMLWriter.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/io/VrpXMLWriter.java @@ -29,6 +29,8 @@ import com.graphhopper.jsprit.core.problem.solution.route.activity.TimeWindow; import com.graphhopper.jsprit.core.problem.solution.route.activity.TourActivity; import com.graphhopper.jsprit.core.problem.vehicle.Vehicle; import com.graphhopper.jsprit.core.problem.vehicle.VehicleType; +import com.graphhopper.jsprit.core.util.Solutions; + import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.XMLConfiguration; import org.apache.logging.log4j.LogManager; @@ -67,6 +69,14 @@ public class VrpXMLWriter { private Collection solutions; + private boolean onlyBestSolution = false; + + public VrpXMLWriter(VehicleRoutingProblem vrp, Collection solutions, boolean onlyBestSolution) { + this.vrp = vrp; + this.solutions = new ArrayList(solutions); + this.onlyBestSolution = onlyBestSolution; + } + public VrpXMLWriter(VehicleRoutingProblem vrp, Collection solutions) { this.vrp = vrp; this.solutions = solutions; @@ -102,6 +112,12 @@ public class VrpXMLWriter { writeShipments(xmlConfig, jobs); writeInitialRoutes(xmlConfig); + if(onlyBestSolution && solutions != null) { + VehicleRoutingProblemSolution solution = Solutions.bestOf(solutions); + solutions.clear(); + solutions.add(solution); + } + writeSolutions(xmlConfig);