1
0
Fork 0
mirror of https://github.com/graphhopper/jsprit.git synced 2020-01-24 07:45:05 +01:00

remove randomness from vehicle manager

This commit is contained in:
oblonski 2016-07-18 08:25:46 +02:00
parent 070aef735f
commit 5307e65c10

View file

@ -16,11 +16,13 @@
******************************************************************************/ ******************************************************************************/
package com.graphhopper.jsprit.core.problem.vehicle; package com.graphhopper.jsprit.core.problem.vehicle;
import com.graphhopper.jsprit.core.util.RandomNumberGeneration;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.*; import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Random;
class VehicleFleetManagerImpl implements VehicleFleetManager { class VehicleFleetManagerImpl implements VehicleFleetManager {
@ -33,6 +35,8 @@ class VehicleFleetManagerImpl implements VehicleFleetManager {
private ArrayList<Vehicle> vehicleList; private ArrayList<Vehicle> vehicleList;
private int index = 0;
TypeContainer() { TypeContainer() {
super(); super();
vehicleList = new ArrayList<Vehicle>(); vehicleList = new ArrayList<Vehicle>();
@ -50,17 +54,19 @@ class VehicleFleetManagerImpl implements VehicleFleetManager {
} }
Vehicle getVehicle() { Vehicle getVehicle() {
return vehicleList.get(0); if(index >= vehicleList.size()) index = 0;
Vehicle vehicle = vehicleList.get(index);
return vehicle;
}
void incIndex(){
index++;
} }
boolean isEmpty() { boolean isEmpty() {
return vehicleList.isEmpty(); return vehicleList.isEmpty();
} }
void shuffle(Random random){
Collections.shuffle(vehicleList,random);
}
} }
private static Logger logger = LoggerFactory.getLogger(VehicleFleetManagerImpl.class); private static Logger logger = LoggerFactory.getLogger(VehicleFleetManagerImpl.class);
@ -73,7 +79,7 @@ class VehicleFleetManagerImpl implements VehicleFleetManager {
private Vehicle[] vehicleArr; private Vehicle[] vehicleArr;
private Random random = RandomNumberGeneration.getRandom(); private Random random;
VehicleFleetManagerImpl(Collection<Vehicle> vehicles) { VehicleFleetManagerImpl(Collection<Vehicle> vehicles) {
super(); super();
@ -155,11 +161,6 @@ class VehicleFleetManagerImpl implements VehicleFleetManager {
return vehicles; return vehicles;
} }
void shuffle(){
for(int i=0;i< vehicleTypes.length;i++){
vehicleTypes[i].shuffle(random);
}
}
@Override @Override
public Vehicle getAvailableVehicle(VehicleTypeKey vehicleTypeIdentifier) { public Vehicle getAvailableVehicle(VehicleTypeKey vehicleTypeIdentifier) {
@ -183,7 +184,6 @@ class VehicleFleetManagerImpl implements VehicleFleetManager {
else{ else{
locked[vehicle.getIndex()] = true; locked[vehicle.getIndex()] = true;
removeVehicle(vehicle); removeVehicle(vehicle);
if(random.nextDouble() < 0.1) shuffle();
} }
} }
@ -217,6 +217,9 @@ class VehicleFleetManagerImpl implements VehicleFleetManager {
unlock(vehicleArr[i]); unlock(vehicleArr[i]);
} }
} }
for(int i=0;i<vehicleTypes.length;i++){
vehicleTypes[i].incIndex();
}
} }
} }