@Override public long getShortestTravelTime(Point from, Point to) { final Iterator<Point> path = roadModel.getShortestPathTo(from, to) .iterator(); long travelTime = 0L; Point prev = path.next(); while (path.hasNext()) { final Point cur = path.next(); final Measure<Double, Length> distance = Measure.valueOf( Point.distance(prev, cur), roadModel.getDistanceUnit()); travelTime += RoadModels.computeTravelTime(vehicleSpeed, distance, timeUnit); prev = cur; } return travelTime; }
/** * @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()); }
/** * @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()); }