Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Problemi di PLI
Esempio
x1 , x2 0
x1 , x2 Z
x1
Problemi di PLI
Possibili approcci risolutivi:
Arrotondamento: si possono rilassare i vincoli di interezza, risolvere il
problema continuo e approssimare ciascuna componente della soluzione
ottenuta con l’intero più vicino
Nessuna garanzia, né di ottimalità né di ammissibilità
Formulazione in PL01
Problemi di PLI
Enumerazione implicita per un problema di zaino
Problemi di PLI
Enumerazione implicita per un problema di zaino
LB=40 UB=35
Problema Infeasible
Problemi di PLI
Enumerazione implicita per un problema di zaino
LB=40 UB=35
Problema Infeasible
Soluzione Ottima
Soluzione Infeasible
Metodo Branch and Bound
Enumerazione implicita: idee di base
Partizionare l’insieme delle soluzioni in sottoinsiemi (sotto-problemi) più facili
da risolvere
……
Metodo Branch and Bound
Tecniche di branching:
Metodo Branch and Bound
Osservazioni:
È un algoritmo esatto, cioè garantisce, dato tempo sufficiente di trovare l’ottimo
se esso esiste
L’evoluzione dell’algoritmo (come visto nell’esempio dello zaino) è
rappresentabile come la visita di un albero detto albero di branching
Occorre risolvere un gran numero di rilassamenti lineari
Migliori formulazioni portano a bound migliori : il metodo Branch and Cut
aggiunge vincoli (tagli validi) ad ogni sotto-problema per rafforzare la
formulazione iniziale.
L’utilizzo di euristiche consente di ottenere ottimi correnti (lower bound in un
problema a massimizzare) più vicini alla soluzione ottima
In generale esiste un trade-off tra qualità dei bound calcolati e dimensione
dell’albero di enumerazione:
Bound migliori riducono le dimensioni dell’albero di enumerazione ma richiedono
tempi di calcolo maggiori, viceversa, bound scadenti possono essere calcolati
velocemente a spese di una crescita del numero di nodi da ispezionare.
Metodo Branch and Bound
Elementi di scelta:
P12 P11
Metodo Branch and Bound
Strategia di esplorazione best bound first
P0
Ad ogni iterazione seleziona il
UB0=45
nodo attivo più promettente ovvero
con il bound migliore P1 UB1=43 P2 UB2=42.8
x2
y 3 ,5
0
2 2
T
U0 7
2
x1
Metodo Branch and Bound
Esempio:
x2
S1 max x1 2 x2
4 x1 6 x2 9
x1 x2 4
x1 1
y1 1,13
6
T
x1 , x2 0
x1 , x2 Z U 1 10
3
x1
x2
S 2 max x1 2 x2
4 x1 6 x2 9
y 2 2,2
T
x1 x2 4
x1 2 Opt 2 2
x1 , x2 0
x1 , x2 Z
x1
Metodo Branch and Bound
Esempio:
S 4 max x1 2 x2
4 x1 6 x2 9
x1 x2 4
infeasible
x1 1
x2 3
x1 , x2 0
x1 , x2 Z
S 3 max x1 2 x2 x2
4 x1 6 x2 9
x1 x2 4
x1 1
y 3 ,2
4
3
T
x2 2
U 3 13
x1 , x2 0 4
x1 , x2 Z x1
Metodo Branch and Bound
Esempio:
x2
x1
y 5 0,3 / 2
T
U5 3
Metodo Branch and Bound
Esempio:
x2
x1
y 6 1,2
T
Opt 6 3
Metodo Branch and Bound
Esempio:
x2
Soluzione Ottima
x1
Formulazione in PL01
Metodo Branch and Bound
Rilassamento continuo del problema dello zaino
I singoli oggetti possono essere partizionionati cioè si possono
considerare frazioni di oggetti
Algoritmo risolutivo
4. Se l’oggetto prelevato non entra per intero nello zaino, viene calcolata la
massima porzione dell’oggetto che può essere inserita nello zaino
5. Stop
Metodo Branch and Bound
Esempio di soluzione di un problema di zaino continuo
Oggetto V/P V P
B 4 36 9
Soluzione ottima: xB xC xD 1 x A 10 xE 0
16
Valore della Soluzione ottima: 91
Metodo Branch and Bound
Lower ed upper bound per un problema di zaino
Albero di enumerazione:
Sottoproblema S1 Sottoproblema S2
Metodo Branch and Bound
Problema dello zaino:
Albero di enumerazione:
Sottoproblema S11
Metodo Branch and Bound
Problema dello zaino:
Albero di enumerazione:
Albero di enumerazione:
Albero di enumerazione:
Soluzione ottima
X A = 1 XD = 0 XE
= 0 XB = 1
XC = 1
Un problema di P.L. intera
x2 z
Max z = 2x1 + 3x2
s.a P z*c = 23.89
1.3x1 + 3x2 9 x*1 = 4.51
3x1 + 0.9x2 18 x*2 = 4.95
x1 , x2 0 interi
x1
(S1) (S2)
Max z = 2x1 + 3x2 Max z = 2x1 + 3x2
s.a s.a
1.3x1 + 3x2 9 1.3x1 + 3x2 9
3x1 + 0.9x2 18 3x1 + 0.9x2 18
x1 4 x1 5
x1 , x2 interi x1 , x2 interi
Sottoinsiemi S1 e S2 esaminati dall’algoritmo
(S1) (S2)
Max z = 2x1 + 3x2 Max z = 2x1 + 3x2
s.a s.a
1.3x1 + 3x2 9 1.3x1 + 3x2 9
3x1 + 0.9x2 18 3x1 + 0.9x2 18
x1 4 x1 5
x1 , x2 interi x1 , x2 interi
x2 x2
z
P P
S1
S2
x1 x1
Sottoinsiemi S1 e S2 esaminati dall’algoritmo
(S1) (S2)
Max z = 2x1 + 3x2 Max z = 2x1 + 3x2
s.a s.a
1.3x1 + 3x2 9 1.3x1 + 3x2 9
3x1 + 0.9x2 18 3x1 + 0.9x2 18
x1 4 x1 5
x1 , x2 interi x1 , x2 interi
(S1) (S2)
x1* = 4 x2 x1* = 5
x2* = 4.73 4. x2* = 3.3
P
z* = 22.2 7 z* = 20.0
3. z
3 S1
S2
x1
Sottoinsiemi S11 e S12 esaminati dall’algoritmo
(S1) Max z = 2x1 + 3x2 x2
s.a
P z
1.3x1 + 3x2 9
3x1 + 0.9x2 18
x1 4 S11
x1 , x 2 interi
4 x1
(S11) (S12)
Max z = 2x1 + 3x2 Max z = 2x1 + 3x2
s.a s.a
1.3x1 + 3x2 9 1.3x1 + 3x2 9
3x1 + 0.9x2 18 3x1 + 0.9x2 18
x1 4 x1 4
x2 4 x2 5
x1 , x2 interi x1 , x2 interi
Sottoinsiemi S11 e S12 esaminati dall’algoritmo
(S11) (S12)
Max z = 2x1 + 3x2 Max z = 2x1 + 3x2
s.a s.a
1.3x1 + 3x2 9 1.3x1 + 3x2 9
3x1 + 0.9x2 18 3x1 + 0.9x2 18
x1 4 x1 4
x2 4 x2 5
x 1 , x2 interi x 1 , x2 interi
(S11) (S12)
x2
x1 = 4
*
5 Non ammette soluzioni
P ammissibili perché il suo
x 2* = 4 4 dominio di definizione è vuoto
z
z* = 20
S11
4 x1
La soluzione di S11 è soluzione
del problema generale
(S11) Max z = 2x1 + 3x2 x2
s.a
P
1.3x1 + 3x2 9
3x1 + 0.9x2 18 z
x1 4 S11
x2 4
x1
x1 , x 2 interi
S0 LS =
23.89
LS = S1 S2 LS =
22.2 20.0
=
LS = S11 S12
20.0
Soluzione =
ammissibile
LI = 20.0