Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Modelli ed Algoritmi
Daniele Vigo
D.E.I.S. - Universita di Bologna
Vehicle Routing Problem 1
Problemi di Routing
Componenti fondamentali:
rete stradale
clienti
depositi
veicoli
autisti
vincoli operativi sui viaggi e globali
obiettivi dell'ottimizzazione
Rete stradale:
Grafo (sparso)
vertici incroci, sedi di clienti, depositi ...
archi tratti stradali
{ orientati, non orientati
{ \costo" di transito (lunghezza, tempo ...)
j6 - j6
1 2 j
-3
}ZZ
-
ZZ
?j -5j? j
-~Z6?
6 > 6
4
j
7 j
- 8?= 9? j
matrice dei percorsi minimi ) (grafo completo)
Algoritmo di Floyd-Warshall (O(n3))
0 1 2 3 4 5 0 1 2 3 4 5
0 @@@@@@@@@ @@@@@@ 0 @@@
1 @@@@@ @ @@@ 1 @
2 @@@@@@ @ @ ) 2 @@@
3 @ @@ @@@@@ 3 @
4 @@@@@ @@ @@ 4 @@
5. @ @ @ @ @ 5. @@
. .
Clienti:
Depositi:
Veicoli:
Autisti:
dipendenti o \padroncini"
vincoli sindacali: (orario di lavoro, numero e durata pause,
straordinario,: : :)
Vincoli operativi:
Obiettivi:
Altre caratteristiche:
Esempi di applicazioni
Capacitated VRP
a) Modello a 2 indici
8
:= 10 (altrimenti
i; j ) nella soluzione ottima
>
<
xij >
:
(ACVRP1) min X X
cij xij (1)
i2V j 2V
con i vincoli
X
=1
xij per ogni j 2 V n f0g (2)
i2V
X
xij = 1 per ogni i 2 V n f0g (3)
j 2V
X
xi0 = K (4)
i 2V
X
x0 j = K (5)
j 2V
X X
xij
(S ) per ogni S V n f0g; jS j 2 (6)
i62S j 2S
xij 2 f0; 1g per ogni i; j 2 V: (7)
per (2){(5) si ha
X X
xij =X X
xij per ogni S V n f0g; S 6= ; (8)
i62S j 2S i2S j 62S
X X
xij
(V n S ) per ogni S V; 0 2 S: (9)
i62S j 2S
Alternativa ai capacity-cut:
1) generalized subtour elimination constraints (GSEC):
X X
xij jS j
(S ) per ogni S V n f0g; S 6= ;; (10)
i 2S j 2S
b) Modello a 3 indici
8
>
>
< 1 (i; j ) nella sol. ottima, percorso dal veicolo k
ijk := >
: 0 altrimenti
8
< 1 cliente i assegnato al veicolo k
>
yik := >
: 0 altrimenti
>
K
(ACVRP2) min X X
cij
X
ijk (13)
i2V j 2V k =1
subject to
K
X
yik = 1 per ogni i 2 V n f0g (14)
k =1
K
X
=K
y0k (15)
k =1
X X
ijk = jik = yik per ogni i 2 V; k = 1; : : : ; K (16)
j 2V j 2V
X
diyik C per ogni k = 1; : : : ; K (17)
i2V
X X
ijk yhk per ogni S V n f0g;
i2
=S j 2 S
k = 1; : : : ; K; h 2 S (18)
yik 2 f0; 1g per ogni i 2 V; k = 1; : : : ; K (19)
ijk 2 f0; 1g per ogni i; j 2 V; k = 1; : : : ; K: (20)
(GSEC):
X
xe jS j
(S ) per ogni S V n f0g; jS j 2 (27)
e2 (S )
1: K+SSA
ACVRP: AP relaxation
(Laporte, Mercure, Nobert, '86)
Branch-and-bound algorithm:
Extension of the subtour elimination branching rule
reduction, feasibility checks, dominance procedures ...
Results: (Vax 11/780, up to 5000 sec.)
random problems with n 90 and K = Kmin = 2 (n 20 if K = 4)
random problems with n 260 and K = Kmin + 2 or Kmin + 4.
random Euclidean problems with n 30
LP := #1 + #2
X
(R1) #2 = min cij xij (28)
(i;j )2A2
subject to
8
X
xij 1K for
>
< for all j 2 V n f0g; (29)
i2V :(i;j )2A2
>
: j = 0;
8
X
xij 1K for
>
< for all i 2 V n f0g; (30)
j 2V :(i;j )2A2
>
: i = 0;
8
((VS n) Sh) for h = 1;
X X X X >
<
xij = xij >
: for h = 2; : : : ; m; (31)
= Sh j 2Sh
i2 i2Sh j 2
= Sh h
xij 2 f0; 1g for all (i; j ) 2 A2: (32)
0,jS1 j + k 1 (V n S1)
@@
@
> @@
+
Z
Z-~Z
1 1
Z R@
- 0,k
0,k
a 1 b
ZZ~Z
1
0,1 Z >
0,1
CC
0,1
CCC 0,1
::: 0, Sh j j (S ) :::
C
h
@
j 1j
0, S + k 1 @@ C j 1j
CC
0, S + k 1
0,1 -
*
H H
@@
HjHR@ CC
C
-
0,1
a + b C
J Z
i i
h
0,1 Z J >
0,1
A
h
CC
JJ Z~Z 0,1 J
J
AA C
0,1
CC
j j JJ^J J
J
A
j jAA CC
0,1
0, Sh
c ,1
J
i;j
J
J
0,1 0, Sh
A C
AAU
WC
JJ
7
::: :::
n+k 1 s
S
SSj j
J
J j j
t n+k 1
J
0, Sm
3
J Q 0, Sm
SS QQ
0,1 0,1
J
^ sQ
w - + -
3
0,1 0,1
a j j b
@QQQ
m m
0,1
0,1
@@ sQ +
n
@@
n
@ 0,jSm j (S )
m
Branch-and-bound algorithm
Extended subtour elimination branching rule
X X
(CVRP1') min
x2 X
cij xij (33)
i2Vj>i
subject to
X X
(ui) xhi +
j>i
= 2 8i 2 V n f0g
xij (34)
h<i
X X
(vS ) xij + xij 2 (S ) 8S V n f0g; jS j 2 (35)
i2S<j 62S i62S<j 2S
by removing (34) and (35) we obtain the d.c. K-tree relaxation which
is generally poor (55-85%).
HHHHH
aaaa
a
aa(((((((((
aaa
@@
HHH
HH
HH
HHH
degree constrained K-tree relaxation (K = 2)
QQQ
QQ
QQ
aaaa
a
aaa
aa
BB
@@
B
BB
B
BB
HHH BB
HH
HH
HHH BB
b-matching relaxation (K = 2)
Daniele Vigo D.E.I.S. - Universita di Bologna
Vehicle Routing Problem 20
X
where cij = cij ui uj
S : 2
i S < j 26 S
vS
or 62
i S < j 2 S
Results:
the CMT problem with n = 100 solved
6 new real-world problems with n = 25 71 solved
lower bounds within 82-97% wrt the best UB for CE problems with
n = 50 199.
real cost matrices were used
Algoritmi costruttivi :
uno o piu viaggi vengono iterativamente estesi in modo ammissibile.
a) modalita di costruzione dei viaggi:
{ sequenziali: un viaggio alla volta
{ paralleli: piu di uno alla volta
b) criterio di espansione dei viaggi:
quale cliente inserire? dove inserirlo ?
Criteri di espansione:
score (punteggio) per ciascun clienti non inserito
Algoritmo di Clarke-Wright
1. si calcola il saving per ogni coppia (i; j );
2. si parte con ogni cliente servito da solo in un viaggio;
3. si considerano le coppie (i; j ) sec. sij decrescenti;
4. se i e j sono estremi di viaggi parziali e
se i due viaggi possono essere uniti
) inserisce l'arco (i; j ) in soluzione
5. se sono state esaminate tutte le coppie stop;
altrimenti considera la prossima e vai a 4.
j
4 2
1 3 j
C = 4, K = 3
j
2
0
j
2
j j
6
5 2
1 1
3
1 2 3 4 5 6 i j sij i j sij
0 4.5 4.1 3.6 7.1 7.3 4.2 5 6 7.4 2 6 1.1
1 3.6 7.0 11.4 9.2 5.1 4 5 7.1 1 3 1.1
2 4.5 10.8 11.0 7.3 1 6 3.6 3 5 0.6
3 7.3 10.3 7.8 3 4 3.4 2 4 0.4
4 7.3 8.2 2 3 3.3 2 5 0.4
5 4.1 4 6 3.1 3 6 0.0
non garantisce di trovare una soluzione con K viaggi
Daniele Vigo D.E.I.S. - Universita di Bologna
Vehicle Routing Problem 26
X X K
X
min cij ijk (45)
i 2V j 2V k =1
con i vincoli
X
diyik C per ogni k = 1; : : : ; K (46)
i 2V
K
X
yik = 1 per ogni i 2 V n f0g (47)
k =1
K
X
=K
y0k (48)
k =1
yik 2 f0; 1g per ogni i 2 V; k = 1; : : : ; K (49)
X X
ijk = = yik per ogni i 2 V; k = 1; : : : ; K
jik (50)
j 2V j 2V
X X
ijk yhk per ogni S V n f0g;
= S j 2S
i2
k = 1; : : : ; K; h 2 S (51)
ijk 2 f0; 1g per ogni i; j 2 V; k = 1; : : : ; K: (52)
j
4 2
1 3 j
C = 4, K = 3
j
2
0
j
2
j j
6
5 2
1 1
3
1 2 3 4 5 6
seed = f1; 4; 5g
1 2 3 4 5 6
Ricerca locale
ee
a e
e
ZZZ """ b e a eZZ "" e
(b)
Z "
( )
0 0