Initialization

R: matrix (ri,1) 1 ≤ in of requests size

P: matrix (pi,j) 1 ≤ in, 1 ≤ j ≤ 2 of pickup nodes coordinates

D: matrix (di,j) 1 ≤ in, 1 ≤ j ≤ 2 of drop-off nodes coordinates

Tp: matrix (tpi,j) 1 ≤ in, 1 ≤ j ≤ 2 of pickup time windows

Td: matrix (tdi,j) 1 ≤ in, 1 ≤ j ≤ 2 of drop-off time windows

K: matrix (ki,1) 1 ≤ im of vehicles capacities

Kn: matrix (kni,j) 1 ≤ im, 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 ≤ in) 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 ≤ im) 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