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:
parent
070aef735f
commit
5307e65c10
1 changed files with 17 additions and 14 deletions
|
|
@ -16,11 +16,13 @@
|
|||
******************************************************************************/
|
||||
package com.graphhopper.jsprit.core.problem.vehicle;
|
||||
|
||||
import com.graphhopper.jsprit.core.util.RandomNumberGeneration;
|
||||
import org.slf4j.Logger;
|
||||
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 {
|
||||
|
|
@ -33,6 +35,8 @@ class VehicleFleetManagerImpl implements VehicleFleetManager {
|
|||
|
||||
private ArrayList<Vehicle> vehicleList;
|
||||
|
||||
private int index = 0;
|
||||
|
||||
TypeContainer() {
|
||||
super();
|
||||
vehicleList = new ArrayList<Vehicle>();
|
||||
|
|
@ -50,17 +54,19 @@ class VehicleFleetManagerImpl implements VehicleFleetManager {
|
|||
}
|
||||
|
||||
Vehicle getVehicle() {
|
||||
return vehicleList.get(0);
|
||||
if(index >= vehicleList.size()) index = 0;
|
||||
Vehicle vehicle = vehicleList.get(index);
|
||||
return vehicle;
|
||||
}
|
||||
|
||||
void incIndex(){
|
||||
index++;
|
||||
}
|
||||
|
||||
boolean isEmpty() {
|
||||
return vehicleList.isEmpty();
|
||||
}
|
||||
|
||||
void shuffle(Random random){
|
||||
Collections.shuffle(vehicleList,random);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static Logger logger = LoggerFactory.getLogger(VehicleFleetManagerImpl.class);
|
||||
|
|
@ -73,7 +79,7 @@ class VehicleFleetManagerImpl implements VehicleFleetManager {
|
|||
|
||||
private Vehicle[] vehicleArr;
|
||||
|
||||
private Random random = RandomNumberGeneration.getRandom();
|
||||
private Random random;
|
||||
|
||||
VehicleFleetManagerImpl(Collection<Vehicle> vehicles) {
|
||||
super();
|
||||
|
|
@ -155,11 +161,6 @@ class VehicleFleetManagerImpl implements VehicleFleetManager {
|
|||
return vehicles;
|
||||
}
|
||||
|
||||
void shuffle(){
|
||||
for(int i=0;i< vehicleTypes.length;i++){
|
||||
vehicleTypes[i].shuffle(random);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vehicle getAvailableVehicle(VehicleTypeKey vehicleTypeIdentifier) {
|
||||
|
|
@ -183,7 +184,6 @@ class VehicleFleetManagerImpl implements VehicleFleetManager {
|
|||
else{
|
||||
locked[vehicle.getIndex()] = true;
|
||||
removeVehicle(vehicle);
|
||||
if(random.nextDouble() < 0.1) shuffle();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -217,6 +217,9 @@ class VehicleFleetManagerImpl implements VehicleFleetManager {
|
|||
unlock(vehicleArr[i]);
|
||||
}
|
||||
}
|
||||
for(int i=0;i<vehicleTypes.length;i++){
|
||||
vehicleTypes[i].incIndex();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue