Initialization |
R: matrix (ri,1) 1 ≤ i ≤ n of requests size P: matrix (pi,j) 1 ≤ i ≤ n, 1 ≤ j ≤ 2 of pickup nodes coordinates D: matrix (di,j) 1 ≤ i ≤ n, 1 ≤ j ≤ 2 of drop-off nodes coordinates Tp: matrix (tpi,j) 1 ≤ i ≤ n, 1 ≤ j ≤ 2 of pickup time windows Td: matrix (tdi,j) 1 ≤ i ≤ n, 1 ≤ j ≤ 2 of drop-off time windows K: matrix (ki,1) 1 ≤ i ≤ m of vehicles capacities Kn: matrix (kni,j) 1 ≤ i ≤ m, 1 ≤ j ≤ 2 of vehicles depot nodes coordinates alpha: mark (oij) axis length beta: mark (oij) ordinate length lambda: estimated vehicle speed average Theta = root((2*alpha)2 + (2*beta)2)/lambda |
Create matrix R,P,D,Tp,Td |
while the termination criterion is not satisfied (1 ≤ i ≤ n) do ri,1←integerRamdomNumber (1, 10) pi,1←integerRamdomNumber (−alpha, alpha) pi,2←integerRamdomNumber (−beta, beta) di,1←integerRamdomNumber (−alpha, alpha) di,2←integerRamdomNumber (−beta, beta) tpi,1←(calculateDistance(Pi,o))/lambda tpi,2←(calculateDistance(Pi,o))/lambda+Theta tdi,1←(calculateDistance(Pi,o))/lambda tdi,2←(calculateDistance(Pi,o) + calculateDistance(Di,o))/lambda + Theta |
incrementation of i |
create matrix K and Kn |
while the termination criterion is not satisfied (1 ≤ i ≤ m) do |
ki,1←integerRamdomNumber(integerAverageOf(R),(maxElementOf(R) + integerTAverageOf(R))) Kni←chooseOneRamdomlyBetweenNode([0,0],[−alpha/2,0],[alpha/2,0],[0,−beta/2],[0,beta/2]) incrementation of i |