private Start(Start start) { this.location = start.getLocation(); theoretical_earliestOperationStartTime = start.getTheoreticalEarliestOperationStartTime(); theoretical_latestOperationStartTime = start.getTheoreticalLatestOperationStartTime(); endTime = start.getEndTime(); setIndex(-1); }
System.out.println("skillConstraintViolatedOnRoute: " + analyser.hasSkillConstraintViolation(route)); System.out.println("dist@" + route.getStart().getLocation().getId() + ": " + analyser.getDistanceAtActivity(route.getStart(), route)); System.out.println("timeWindowViolation@" + route.getStart().getLocation().getId() + ": " + analyser.getTimeWindowViolationAtActivity(route.getStart(), route)); for (TourActivity act : route.getActivities()) { System.out.println("--");
public double getCosts(JobInsertionContext insertionContext) { double delta_access = 0.0; double delta_egress = 0.0; VehicleRoute currentRoute = insertionContext.getRoute(); Vehicle newVehicle = insertionContext.getNewVehicle(); Driver newDriver = insertionContext.getNewDriver(); double newVehicleDepartureTime = insertionContext.getNewDepTime(); if (!currentRoute.isEmpty()) { double accessTransportCostNew = routingCosts.getTransportCost(newVehicle.getStartLocation(), currentRoute.getActivities().get(0).getLocation(), newVehicleDepartureTime, newDriver, newVehicle); double accessTransportCostOld = routingCosts.getTransportCost(currentRoute.getStart().getLocation(), currentRoute.getActivities().get(0).getLocation(), currentRoute.getDepartureTime(), currentRoute.getDriver(), currentRoute.getVehicle()); delta_access = accessTransportCostNew - accessTransportCostOld; if (newVehicle.isReturnToDepot()) { TourActivity lastActivityBeforeEndOfRoute = currentRoute.getActivities().get(currentRoute.getActivities().size() - 1); double lastActivityEndTimeWithOldVehicleAndDepartureTime = lastActivityBeforeEndOfRoute.getEndTime(); double lastActivityEndTimeEstimationWithNewVehicleAndNewDepartureTime = Math.max(0.0, lastActivityEndTimeWithOldVehicleAndDepartureTime + (newVehicleDepartureTime - currentRoute.getDepartureTime())); double egressTransportCostNew = routingCosts.getTransportCost(lastActivityBeforeEndOfRoute.getLocation(), newVehicle.getEndLocation(), lastActivityEndTimeEstimationWithNewVehicleAndNewDepartureTime, newDriver, newVehicle); double egressTransportCostOld = routingCosts.getTransportCost(lastActivityBeforeEndOfRoute.getLocation(), currentRoute.getEnd().getLocation(), lastActivityEndTimeWithOldVehicleAndDepartureTime, currentRoute.getDriver(), currentRoute.getVehicle()); delta_egress = egressTransportCostNew - egressTransportCostOld; } } return delta_access + delta_egress; }
private XYSeriesCollection makeSolutionSeries(VehicleRoutingProblem vrp, Collection<VehicleRoute> routes) throws NoLocationFoundException { Map<String, Coordinate> coords = makeMap(vrp.getAllLocations()); XYSeriesCollection coll = new XYSeriesCollection(); int counter = 1; for (VehicleRoute route : routes) { if (route.isEmpty()) continue; XYSeries series = new XYSeries(counter, false, true); Coordinate startCoord = getCoordinate(coords.get(route.getStart().getLocation().getId())); series.add(startCoord.getX() * scalingFactor, startCoord.getY() * scalingFactor); for (TourActivity act : route.getTourActivities().getActivities()) { Coordinate coord = getCoordinate(coords.get(act.getLocation().getId())); series.add(coord.getX() * scalingFactor, coord.getY() * scalingFactor); } Coordinate endCoord = getCoordinate(coords.get(route.getEnd().getLocation().getId())); series.add(endCoord.getX() * scalingFactor, endCoord.getY() * scalingFactor); coll.addSeries(series); counter++; } return coll; }
private Start(Start start) { this.location = start.getLocation(); theoretical_earliestOperationStartTime = start.getTheoreticalEarliestOperationStartTime(); theoretical_latestOperationStartTime = start.getTheoreticalLatestOperationStartTime(); endTime = start.getEndTime(); setIndex(-1); }
log.debug("start-location: " + route.getStart().getLocation() + " endTime: " + route.getDepartureTime() + "(" + route.getStart().getEndTime() + ")"); for(TourActivity act : route.getActivities()){ log.debug("act: " + act);
public double getCosts(JobInsertionContext insertionContext) { double delta_access = 0.0; double delta_egress = 0.0; VehicleRoute currentRoute = insertionContext.getRoute(); Vehicle newVehicle = insertionContext.getNewVehicle(); Driver newDriver = insertionContext.getNewDriver(); double newVehicleDepartureTime = insertionContext.getNewDepTime(); if (!currentRoute.isEmpty()) { double accessTransportCostNew = routingCosts.getTransportCost(newVehicle.getStartLocation(), currentRoute.getActivities().get(0).getLocation(), newVehicleDepartureTime, newDriver, newVehicle); double accessTransportCostOld = routingCosts.getTransportCost(currentRoute.getStart().getLocation(), currentRoute.getActivities().get(0).getLocation(), currentRoute.getDepartureTime(), currentRoute.getDriver(), currentRoute.getVehicle()); delta_access = accessTransportCostNew - accessTransportCostOld; if (newVehicle.isReturnToDepot()) { TourActivity lastActivityBeforeEndOfRoute = currentRoute.getActivities().get(currentRoute.getActivities().size() - 1); double lastActivityEndTimeWithOldVehicleAndDepartureTime = lastActivityBeforeEndOfRoute.getEndTime(); double lastActivityEndTimeEstimationWithNewVehicleAndNewDepartureTime = Math.max(0.0, lastActivityEndTimeWithOldVehicleAndDepartureTime + (newVehicleDepartureTime - currentRoute.getDepartureTime())); double egressTransportCostNew = routingCosts.getTransportCost(lastActivityBeforeEndOfRoute.getLocation(), newVehicle.getEndLocation(), lastActivityEndTimeEstimationWithNewVehicleAndNewDepartureTime, newDriver, newVehicle); double egressTransportCostOld = routingCosts.getTransportCost(lastActivityBeforeEndOfRoute.getLocation(), currentRoute.getEnd().getLocation(), lastActivityEndTimeWithOldVehicleAndDepartureTime, currentRoute.getDriver(), currentRoute.getVehicle()); delta_egress = egressTransportCostNew - egressTransportCostOld; } } return delta_access + delta_egress; }
private XYSeriesCollection makeSolutionSeries(VehicleRoutingProblem vrp, Collection<VehicleRoute> routes) throws NoLocationFoundException { Map<String,Coordinate> coords = makeMap(vrp.getAllLocations()); XYSeriesCollection coll = new XYSeriesCollection(); int counter = 1; for (VehicleRoute route : routes) { if (route.isEmpty()) continue; XYSeries series = new XYSeries(counter, false, true); Coordinate startCoord = getCoordinate(coords.get(route.getStart().getLocation().getId())); series.add(startCoord.getX() * scalingFactor, startCoord.getY() * scalingFactor); for (TourActivity act : route.getTourActivities().getActivities()) { Coordinate coord = getCoordinate(coords.get(act.getLocation().getId())); series.add(coord.getX() * scalingFactor, coord.getY() * scalingFactor); } Coordinate endCoord = getCoordinate(coords.get(route.getEnd().getLocation().getId())); series.add(endCoord.getX() * scalingFactor, endCoord.getY() * scalingFactor); coll.addSeries(series); counter++; } return coll; }
tourBuilder.scheduleStart(Id.create(route.getStart().getLocation().getId(), Link.class)); for (TourActivity act : tour.getActivities()) { if(act instanceof ServiceActivity || act instanceof PickupService){