DefaultTravelTimes(RoadModel rm, Unit<Duration> tu, Iterable<? extends AddDepotEvent> depots, Iterable<? extends AddVehicleEvent> vehicles) { roadModel = rm; double max = 0; for (final AddVehicleEvent ave : vehicles) { max = Math.max(max, ave.getVehicleDTO().getSpeed()); } vehicleSpeed = Measure.valueOf(max, roadModel.getSpeedUnit()); final ImmutableList.Builder<Point> depotBuilder = ImmutableList.builder(); for (final AddDepotEvent ade : depots) { depotBuilder.add(ade.getPosition()); } depotLocations = depotBuilder.build(); timeUnit = tu; }
/** * @return A {@link StatisticsDTO} with the current simulation stats. */ @Override public StatisticsDTO getStatistics() { final int vehicleBack = theListener.lastArrivalTimeAtDepot.size(); long overTime = 0; if (theListener.simFinish) { for (final Long time : theListener.lastArrivalTimeAtDepot.values()) { if (time - theListener.scenarioEndTime > 0) { overTime += time - theListener.scenarioEndTime; } } } long compTime = theListener.computationTime; if (compTime == 0) { compTime = System.currentTimeMillis() - theListener.startTimeReal; } return new StatisticsDTO(theListener.totalDistance, theListener.totalTime, theListener.totalPickups, theListener.totalDeliveries, theListener.totalParcels, theListener.acceptedParcels, theListener.pickupTardiness, theListener.deliveryTardiness, compTime, clock.getCurrentTime(), theListener.simFinish, vehicleBack, overTime, theListener.totalVehicles, theListener.distanceMap.size(), clock.getTimeUnit(), roadModel.getDistanceUnit(), roadModel.getSpeedUnit()); }
@OverridingMethodsMustInvokeSuper @Override public void initRoadPDP(RoadModel pRoadModel, PDPModel pPdpModel) { super.initRoadPDP(pRoadModel, pPdpModel); final Set<Depot> depots = getRoadModel().getObjectsOfType(Depot.class); checkArgument(depots.size() == 1, "This vehicle requires exactly 1 depot, found %s depots.", depots.size()); checkArgument(getRoadModel() instanceof PDPRoadModel, "This vehicle requires the PDPRoadModel."); isDiversionAllowed = ((PDPRoadModel) getRoadModel()) .isVehicleDiversionAllowed(); depot = Optional.of(depots.iterator().next()); speed = Optional.of(Measure.valueOf(getSpeed(), getRoadModel() .getSpeedUnit())); }
/** * @return A {@link StatisticsDTO} with the current simulation stats. */ @Override public StatisticsDTO getStatistics() { final int vehicleBack = theListener.lastArrivalTimeAtDepot.size(); long overTime = 0; if (theListener.simFinish) { for (final Long time : theListener.lastArrivalTimeAtDepot.values()) { if (time - theListener.scenarioEndTime > 0) { overTime += time - theListener.scenarioEndTime; } } } long compTime = theListener.computationTime; if (compTime == 0) { compTime = System.currentTimeMillis() - theListener.startTimeReal; } return new StatisticsDTO(theListener.totalDistance, theListener.totalTime, theListener.totalPickups, theListener.totalDeliveries, theListener.totalParcels, theListener.acceptedParcels, theListener.pickupTardiness, theListener.deliveryTardiness, compTime, clock.getCurrentTime(), theListener.simFinish, vehicleBack, overTime, theListener.totalVehicles, theListener.distanceMap.size(), clock.getTimeUnit(), roadModel.getDistanceUnit(), roadModel.getSpeedUnit()); }
@OverridingMethodsMustInvokeSuper @Override public void initRoadPDP(RoadModel pRoadModel, PDPModel pPdpModel) { super.initRoadPDP(pRoadModel, pPdpModel); final Set<Depot> depots = getRoadModel().getObjectsOfType(Depot.class); checkArgument(depots.size() == 1, "This vehicle requires exactly 1 depot, found %s depots.", depots.size()); checkArgument(getRoadModel() instanceof PDPRoadModel, "This vehicle requires the PDPRoadModel."); isDiversionAllowed = ((PDPRoadModel) getRoadModel()) .isVehicleDiversionAllowed(); depot = Optional.of(depots.iterator().next()); speed = Optional.of(Measure.valueOf(getSpeed(), getRoadModel() .getSpeedUnit())); }