...

Il problema dello zaino: dalla gita in montagna ai trasporti

by user

on
Category: Documents
11

views

Report

Comments

Transcript

Il problema dello zaino: dalla gita in montagna ai trasporti
Il problema dello zaino: dalla gita in
montagna ai trasporti internazionali
Luca Bertazzi
0
Il problema dello zaino
Zaino:
- capacità B
Oggetti (items):
- numero n
- indice i = 1,2,..., n
- valore pi
wi
- peso
Quali oggetti inserire nello zaino al fine di
massimizzare il valore totale?
Applicazioni classiche
Gita in montagna
Sbarco sulla luna
Applicazioni finanziarie
B.
Un investitore ha un capitale
p
Può sottoscrivere progetti di investimento.
O i progetto i :
Ogni
- richiede un capitale wi
- ha un rendimento pi
Quali progetti sottoscrivere al fine di massimizzare
ill rendimento
d
totale?
l
Applicazioni alla Logistica
1) Gestione della produzione
Un produttore ha a disposizione una
barra di ferro di una data lunghezza B.
La barra può essere tagliata in pezzi.
Ogni pezzo i :
-ha
ha una lunghezza wi
-ha un prezzo di vendita pi
Quali pezzi tagliare al fine di massimizzare il ricavo
totale?
2) Gestione magazzini e scorte
Area di ricezione
Area di stoccaggio remoto
Area ad accesso rapido
A
Area
di spedizione
di i
Area ad accesso rapido
- Dimensione dell’area: B
- Ogni prodotto:
- occupa un volume wi
- implica un time saving pi
se collocato nell’area
Quali prodotti collocare
nell’area
nell
area per massimizzare
il time saving totale?
3) Gestione dei trasporti
Trasporti nell’e-business
Un veicolo di capacità B ,
durante il viaggio di ritorno,
può
ò scegliere
li
di servire
i
alcuni clienti.
Ogni cliente:
- occupa
p un volume wi
- fornisce un profitto pi
Quali clienti servire per
massimizzare il profitto totale?
Backhauling
kh l
Trasporti internazionali
Un gestore di cargo ha a
disposizione un aereo merci
di capacità
i à B.
Ha una lista di carichi
carichi. Ogni
carico:
- occupa
p un volume wi
- fornisce un profitto pi
Quali carichi scegliere al fine di massimizzare
il profitto totale?
4) Logistica integrata
1
0
3
Strategie di
produzione e
spedizione che
ottimizzino:
• Produzione
• Trasporto
• Scorte
sistemi integrati di produzione e distribuzione
Problema dello zaino: soluzioni intuitive
Algoritmo pi - greedy
- Ordinare gli oggetti
sulla base di pi in
modo non crescente
B = 15
n=5
i
pi
wi
4Î1Î2Î5Î3
1
2
3
4
5
4
2
1
10
2
12
2
1
4
1
- Inserire gli oggetti
fino al raggiungimento
della capacità
4
z
pi −greedy
greedy
= 10
Esiste una soluzione migliore?
B = 15
n=5
i
pi
wi
1
2
3
4
5
4
2
1
10
2
12
2
1
4
1
Se inseriamo nello
zaino gli oggetti
2-3-4-5 otteniamo:
Profitto totale: 15
Peso totale:
8
Î Esiste!!
Conclusione:
L’algoritmo pi-greedy non è esatto (non assicura
di ottenere una soluzione ottima)
Qual è il limite di questo algoritmo?
Non tener conto del peso degli oggetti
e quindi del profitto per unità di peso
Un secondo algoritmo
Profitto per
unità di peso
B = 15
n=5
i
pi
wi
pi / wi
1
2
3
4
5
4
2
1
10
2
12
2
1
4
1
00,33
33
1
1
2,5
2
Algoritmo Greedy
- Ordinare gli oggetti
sulla base di pi / wi in
modo non crescente
4Î5Î2Î3Î1
- Inserire gli oggetti
fino al raggiungimento
gg
g
della capacità
4Î 5 Î 2 Î 3
z Greedy = 15
L’algoritmo Greedy è esatto?
Greedy:
B = 200
n=3
1Î2
i
pi
wi
pi / wi
1
2
3
2
100
100
1
100
100
2
1
1
z Greedy = 102
Altra soluzione:
inserire 2 e 3
Profitto totale: 200
• Profitto totale del Greedy: 102
• Esiste una soluzione con p
profitto 200
Î Il profitto ottimo è almeno 200
Conclusione:
•L
L’algoritmo
algoritmo Greedy non è esatto
• Esiste almeno un caso in cui il profitto del
Greedy è il 51% del profitto ottimo
E’ il caso peggiore?
Greedy:
B = 200
n=2
1
i
pi
wi
pi / wi
1
2
2
200
1
200
2
1
z Greedy = 2
Altra soluzione:
inserire 2
Profitto totale: 200
L’algoritmo Greedy può generare soluzioni
con profitto
fitt molto
lt basso
b
rispetto
i
tt all’ottimo
ll’ tti
Esiste un algoritmo
g
con p
profitto minimo
garantito?
L’algoritmo Ext-Greedy
Scegliere la migliore fra:
- la soluzione del Greedy
- la soluzione che contiene solo l’oggetto
con profitto
fitt massimo
i
L’algoritmo
’ l
Ext-Greedy
d genera un
profitto pari ad almeno il 50% del
profitto
f
ottimo
Alla ricerca della soluzione ottima
Come determinare una soluzione ottima?
Algoritmo di completa enumerazione
- Generare tutte le soluzioni
- Scegliere la soluzione ammissibile con il
p ofitto maggiore
profitto
maggio e
B = 200
n=3
i
pi
wi
1
2
3
2
100
100
1
100
100
1
SI
2
3 profitto peso
NO NO 2
1
SI
SI
SI
NO
NO
NO
NO
NO
SI
SI
N0
NO
SI
SI
SI
NO
SI
NO
SI
NO
SI
102
102
202
0
100
100
200
101
101
201
0
100
100
200
3 oggetti Î 8 soluzioni
L’algoritmo di completa enumerazione genera
sempre una soluzione ottima
ottima, ma…
ma
Numero di soluzioni:
n oggetti
2n soluzioni
oggetti
numero di soluzioni
3
8
60
1.152.921.500.000.000.000
90
1.23794 E 27
Come varia il tempo di calcolo al variare di n?
n
Tempo di calcolo
3
< 1 secondo
d
60
19 ore
90
392 secoli
un milione
ili
di miliardi
ili di di operazioni
i i all secondo
d
ÎL
L’algoritmo
algoritmo di completa enumerazione
può essere impraticabile
Non solo brutte notizie…
Èp
possibile ottenere la soluzione ottima di
problemi con migliaia di oggetti in
pochi secondi su un PC
p
n
5000
15000
25000
t
tempo
15 sec
1 min
1 min e 25 sec
Come è possibile
ottenere questo
risultato?
Solver: CoinMP 1.3
PC: AMD Athlon 64 X2 Dual Core Processor 5600+ 3.4 GB RAM
Ricerca operativa
metodi quantitativi e scientifici nei
processi decisionali
O
Operations
ti
Research:
R
h
The Science of Better
Ricerca operativa
Applicazioni:
Logistica
Fi
Finanza
Telecomunicazioni
Data Mining
Bio-informatica
Gestione delle Risorse Umane
Gestione dei Servizi Sanitari
…
What-if?
What-is-best?
Metodo:
PROBLEMA
MODELLO
ALGORITMI
software
1) Definizione del problema
PROBLEMA
MODELLO
Quali oggetti inserire
nello zaino al fine di
massimizzare il profitto
totale?
ALGORITMI
software
Dati:
B : capacità
p
dello zaino
n : numero di oggetti
pi : profitto dell
dell'oggetto i
wi : peso dell'oggetto i
2) Formulazione di un modello
1) Variabili decisionali:
L’oggetto
gg
i viene inserito
nello zaino?
PROBLEMA
MODELLO
Variabile binaria xi ∈ {0,1}
xi
0 Î i non viene
i
inserito
1 Î i viene inserito
ALGORITMI
software
2) Funzione obiettivo:
PROBLEMA
massimizzare il profitto totale
0 se xi = 0
MODELLO
Profitto oggetto i
pi se xi = 1
Profitto totale:
n
∑ p i xi
i =1
ALGORITMI
software
Funzione obiettivo:
PROBLEMA
massimizzare il profitto totale
MODELLO
n
max ∑ pi xi
i =1
i=1
ALGORITMI
software
3) Vincoli:
PROBLEMA
Vincolo di capacità
Peso oggetti inseriti < capacità
n
∑ wi xi ≤ B
i =1
MODELLO
ALGORITMI
software
Modello:
PROBLEMA
n
max ∑ pi xi
i =1
n
∑ wi xi ≤ B
MODELLO
i=1
xi ∈{0,1} i = 1,2,...,n
modello di programmazione
lineare intera (binaria)
ALGORITMI
software
3) Applicazione di algoritmi
a) Esatti
PROBLEMA
soluzione ottima
MODELLO
x12 = 0 x12 = 1
Completa enumerazione
Branch-&-Bound
Branch & Cut
Branch-&-Cut
…
x =1 x = 0 x =1
x13 = 0
13
14
14
ALGORITMI
software
b) Euristici
PROBLEMA
soluzione buona
pi -greedy
Greedy
Ext-Greedy
PTAS
FPTAS
…
MODELLO
ALGORITMI
software
Obiettivo ideale:
- Soluzione ottima
- Tempo polinomiale
PROBLEMA
MODELLO
soluzione
ottima
euristica
ALGORITMI
software
0
profitto
tempo
polinomiale
Es: pi - greedy e Greedy
esponenziale
Es: Completa
enumerazione
tempo
Per il problema dello zaino:
Tempo/Sol
Tempo/Sol.
Ottima
Polinomiale
Euristica
pi-greedy
g
y
Greedy
…
Esponenziale
Completa enumerazione
Branch-&-Bound
Branch-&-Cut
…
Algoritmi esatti polinomiali
Non è mai stato ottenuto un algoritmo
in grado di fornire la soluzione ottima
del problema dello zaino in tempi polinomiali
(algoritmo esatto polinomiale)
Inoltre:
Il problema dello zaino è NP-hard
Il problema dello zaino è NP-hard
Appartiene ad una classe di problemi per i quali:
- non è mai stato trovato un algoritmo esatto
p
polinomiale
- se si trovasse un algoritmo esatto polinomiale
per uno di q
p
questi p
problemi,, ogni
g p
problema
della classe avrebbe un algoritmo esatto
p
polinomiale
Teoria della complessità computazionale
È altamente probabile
che un algoritmo
esatto polinomiale
per il problema dello zaino
non esista
PROBLEMA
MODELLO
Potenziare gli
algoritmi esatti
algoritmi euristici
ALGORITMI
software
Algoritmi esatti:
Risolvere all’ottimo
istanze sempre più
grandi
Soluzione ottima in
meno di un secondo!
PROBLEMA
MODELLO
ALGORITMI
software
Algoritmi euristici:
Trovare soluzioni
sempre più
iù vicine
i i
all’ottimo
Garanzie sulla bontà
della soluzione!
PROBLEMA
MODELLO
ALGORITMI
software
4) Utilizzo di software
Gli algoritmi esatti ed
euristici sono implementati
in software
Esatti general purpose:
- Risolutore di Excel
- MPL
- LINGO
PROBLEMA
MODELLO
ALGORITMI
software
PROBLEMA
MODELLO
ALGORITMI
software
Il problema dello zaino e la Logistica
Il problema dello zaino è uno dei sottoproblemi
della logistica
La vera sfida consiste nel trovare la soluzione
migliore per l’intero sistema
13.000 componenti
20.000 fornitori
164 impianti
11.000 rivenditori
PROBLEMA
MODELLO
Risparmio del 26%
g
del costo logistico!
ALGORITMI
software
0
Conclusione
Un antico proverbio recita:
Se un problema non ha
soluzioni, perchè preoccuparsi?
Se un problema ha soluzioni,
perchè preoccuparsi?
Un problema dello zaino con
60 oggetti ha
h
1.152.921.500.000.000.000
soluzioni…
soluzioni
PROBLEMA
MODELLO
ALGORITMI
Fly UP