@Override public void handleTimedEvent(AddVehicleEvent event, SimulatorAPI s) { s.register(new Truck(event.getVehicleDTO())); } }))
@Override public ImmutableList<AddVehicleEvent> generate(long seed, Point center, long scenarioLength) { rng.setSeed(seed); return ImmutableList .copyOf(nCopies(n, AddVehicleEvent.create(-1, vehicleDto))); } }
@Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof AddVehicleEvent) { AddVehicleEvent that = (AddVehicleEvent) o; return (this.time == that.getTime()) && (this.vehicleDTO.equals(that.getVehicleDTO())); } return false; }
@Override public void handleTimedEvent(AddVehicleEvent event, SimulatorAPI sim) { // add your own vehicle to the simulator here sim.register( new ExampleRouteFollowingVehicle(event.getVehicleDTO(), true)); } }
events.add(AddDepotEvent.create(-1, depotPosition)); for (int i = 0; i < vehicles; i++) { events.add(AddVehicleEvent.create(-1, VehicleDTO.builder() .startPosition(depotPosition)
@Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof AddVehicleEvent) { AddVehicleEvent that = (AddVehicleEvent) o; return (this.time == that.getTime()) && (this.vehicleDTO.equals(that.getVehicleDTO())); } return false; }
@Override public void handleTimedEvent(AddVehicleEvent event, SimulatorAPI sim) { sim.register(new Truck(event.getVehicleDTO())); } }
static FabriRechtScenario change(FabriRechtScenario scen, int numVehicles, int vehicleCapacity) { final List<TimedEvent> events = newArrayList(); for (int i = 0; i < numVehicles; i++) { events.add(AddVehicleEvent.create(0, VehicleDTO.builder() .use(scen.getDefaultVehicle()) .capacity(vehicleCapacity) .build())); } events.addAll(scen.getEvents()); return FabriRechtScenario.create(events, scen.getMin(), scen.getMax(), scen.getTimeWindow(), scen.getDefaultVehicle()); } }
@Override public void handleTimedEvent(AddVehicleEvent event, SimulatorAPI sim) { // add your own vehicle to the simulator here sim.register( new ExampleRouteFollowingVehicle(event.getVehicleDTO(), true)); } }
.availabilityTimeWindow(tw) .build(); builder.add(AddVehicleEvent.create(time, dto));
@Override public void handleTimedEvent(AddVehicleEvent event, SimulatorAPI s) { s.register(new Truck(event.getVehicleDTO())); } }))
static Gendreau06Scenario create(int numVehicles, long endTime, AddParcelEvent... parcelEvents) { final List<TimedEvent> events = newArrayList(); final Point depotPosition = new Point(2.0, 2.5); final double truckSpeed = 30; events.add(AddDepotEvent.create(-1, depotPosition)); for (int i = 0; i < numVehicles; i++) { events.add(AddVehicleEvent.create(-1, VehicleDTO.builder() .startPosition(depotPosition) .speed(truckSpeed) .capacity(0) .availabilityTimeWindow(TimeWindow.always()) .build())); } events.addAll(asList(parcelEvents)); events.add(TimeOutEvent.create(endTime)); return Gendreau06Scenario.create(events, 1000L, GendreauProblemClass.LONG_LOW_FREQ, 1, false, false); }
@Override public void handleTimedEvent(AddVehicleEvent event, SimulatorAPI sim) { sim.register(new Truck(event.getVehicleDTO())); } }
static Scenario createScenario(long... delays) { final long endTime = 15 * 60 * 1000; final VehicleDTO vehicle = VehicleDTO.builder() .startPosition(new Point(5, 5)) .availabilityTimeWindow(TimeWindow.create(0, endTime)) .build(); final Scenario.Builder scenario = Scenario.builder() .addEvent(AddDepotEvent.create(-1, new Point(5, 5))) .addEvent(AddVehicleEvent.create(-1, vehicle)) .addEvent(AddVehicleEvent.create(-1, vehicle)) .addEvent(TimeOutEvent.create(endTime)) .addModel(PDPRoadModel.builder(RoadModelBuilders.plane()) .withAllowVehicleDiversion(true)) .addModel(DefaultPDPModel.builder()) .addModel(TimeModel.builder().withTickLength(250)) .setStopCondition(StopConditions.and( StatsStopConditions.vehiclesDoneAndBackAtDepot(), StatsStopConditions.timeOutEvent())); final long[] dls = new long[3]; System.arraycopy(delays, 0, dls, 0, delays.length); scenario .addEvent(createParcel(0, dls[0], new Point(1, 1), new Point(9, 1))); scenario .addEvent(createParcel(1, dls[1], new Point(1, 2), new Point(9, 2))); scenario .addEvent(createParcel(2, dls[2], new Point(9, 9), new Point(1, 9))); return scenario.build(); }
@Override public void handleTimedEvent(AddVehicleEvent event, SimulatorAPI sim) { sim.register(new RouteFollowingVehicle(event.getVehicleDTO(), true)); }
static Simulator.Builder init( TimedEventHandler<AddVehicleEvent> vehicleHandler, Iterable<? extends TimedEvent> events) { final Scenario scenario = Scenario.builder() .addEvent(AddDepotEvent.create(-1, new Point(5, 5))) .addEvent(AddVehicleEvent.create(-1, VehicleDTO.builder().build())) .addEvent(AddVehicleEvent.create(-1, VehicleDTO.builder().build())) .addEvents(events) .build(); final ScenarioController.Builder sb = ScenarioController.builder(scenario) .withEventHandler(AddParcelEvent.class, AddParcelEvent.defaultHandler()) .withEventHandler(AddVehicleEvent.class, vehicleHandler) .withEventHandler(AddDepotEvent.class, AddDepotEvent.defaultHandler()) .withEventHandler(TimeOutEvent.class, TimeOutEvent.ignoreHandler()) .withOrStopCondition(StatsStopConditions.vehiclesDoneAndBackAtDepot()) .withOrStopCondition(StatsStopConditions.timeOutEvent()); return Simulator.builder() .addModel(PDPRoadModel.builder(RoadModelBuilders.plane()) .withAllowVehicleDiversion(true)) .addModel(DefaultPDPModel.builder()) .addModel(TimeModel.builder() .withRealTime() .withStartInClockMode(ClockMode.SIMULATED) .withTickLength(100)) .addModel(sb) .addModel(StatsTracker.builder()); }
@Override public void handleTimedEvent(AddVehicleEvent event, SimulatorAPI sim) { sim.register(new RouteFollowingVehicle(event.getVehicleDTO(), false)); }
.nCopies( 10, AddVehicleEvent.create(-1, VehicleDTO .builder() .startPosition(new Point(5, 5))
/** * Checks whether the vehicles defined for the specified scenario have the * same speed. If the speed is the same it is returned, otherwise an exception * is thrown. * @param s The {@link Scenario} to get the speed from. * @return The vehicle speed if all vehicles have the same speed. * @throws IllegalArgumentException if either: not all vehicles have the same * speed, or there are no vehicles. */ public static double getVehicleSpeed(Scenario s) { double vehicleSpeed = -1d; for (final TimedEvent te : s.getEvents()) { if (te instanceof AddVehicleEvent) { if (vehicleSpeed == -1d) { vehicleSpeed = ((AddVehicleEvent) te).getVehicleDTO().getSpeed(); } else { checkArgument( vehicleSpeed == ((AddVehicleEvent) te).getVehicleDTO().getSpeed(), "All vehicles are expected to have the same speed."); } } } checkArgument(vehicleSpeed > 0, "There are no vehicles in the scenario."); return vehicleSpeed; }