From 5307e65c10efd423ad754cde4e25b0f21c99ca6c Mon Sep 17 00:00:00 2001 From: oblonski Date: Mon, 18 Jul 2016 08:25:46 +0200 Subject: [PATCH] remove randomness from vehicle manager --- .../vehicle/VehicleFleetManagerImpl.java | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleFleetManagerImpl.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleFleetManagerImpl.java index f63f9be3..719951b7 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleFleetManagerImpl.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/problem/vehicle/VehicleFleetManagerImpl.java @@ -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 vehicleList; + private int index = 0; + TypeContainer() { super(); vehicleList = new ArrayList(); @@ -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 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