(Gendreau06ObjectiveFunction) builder.getObjectiveFunction(); checkState(Math.abs(state.getVehicles().get(0).getDto().getSpeed() - objFunc.getVehicleSpeed()) < MAX_SPEED_DIFF, "Speed of vehicle (%s) does not correspond with speed in objective" + " function (%s).", state.getVehicles().get(0).getDto().getSpeed(), objFunc.getVehicleSpeed());
vso.getDto(), vso.getLocation(), vso.getConnection(),
Point vehicleLocation = vso.getLocation(); final Measure<Double, Velocity> maxSpeed = Measure.valueOf(vso.getDto().getSpeed(), state.getSpeedUnit()); snapshot.getPathTo(vehicleLocation, vso.getDto().getStartPosition(), state.getTimeUnit(), maxSpeed, heuristic); stats.totalTravelTime += tt; if (vso.getDto().getAvailabilityTimeWindow().isAfterEnd(time)) { stats.overTime += time - vso.getDto().getAvailabilityTimeWindow().end();
final VehicleStateObject cur = iterator.next(); final Measure<Double, Velocity> speed = Measure.valueOf( cur.getDto().getSpeed(), state.getSpeedUnit());
void checkVehicles(List<? extends TestVehicle> expected, ImmutableList<VehicleStateObject> states) { assertEquals(expected.size(), states.size()); for (int i = 0; i < expected.size(); i++) { final TestVehicle vehicle = expected.get(i); final VehicleDTO dto = vehicle.dto; final VehicleStateObject vs = states.get(i); assertEquals(dto.getAvailabilityTimeWindow(), vs.getDto().getAvailabilityTimeWindow()); assertEquals(dto.getCapacity(), vs.getDto().getCapacity()); assertEquals(dto.getSpeed(), vs.getDto().getSpeed(), 0); assertEquals(dto.getStartPosition(), vs.getDto().getStartPosition()); assertEquals(rm.getPosition(expected.get(i)), vs.getLocation()); final Parcel dest = rm.getDestinationToParcel(vehicle); if (dest == null) { assertFalse(vs.getDestination().isPresent()); } else { assertEquals(dest, vs.getDestination().get()); } if (pm.getVehicleState(vehicle) == VehicleState.IDLE) { assertEquals(0, vs.getRemainingServiceTime()); } else { assertEquals(pm.getVehicleActionInfo(vehicle).timeNeeded(), vs.getRemainingServiceTime()); } } }
public Point getDepotLocation() { return vehicle.getDto().getStartPosition(); }
VehicleStateObject withRoute(ImmutableList<Parcel> route) { return create(getDto(), getLocation(), getConnection(), getContents(), getRemainingServiceTime(), getDestination().orNull(), route); }
Vehicle(VehicleStateObject vso, int ind) { vehicle = vso; endTime = Util.msToNs(vso.getDto().getAvailabilityTimeWindow()).end(); remainingServiceTime = vso.getRemainingServiceTime() > 0 ? Util.msToNs(vso.getRemainingServiceTime()) : 0; index = ind; }
public long computeTravelTime(Point from, Point to) { final double speedKMH = vehicle.getDto().getSpeed(); final double distKM = Point.distance(from, to); final double travelTimeH = distKM / speedKMH; // convert to nanoseconds return DoubleMath.roundToLong(travelTimeH * H_TO_NS, RoundingMode.HALF_DOWN); }