5.3 metodo dei piani di taglio - intranet...
TRANSCRIPT
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1
5.3 Metodo dei piani di taglio
Ipotesi: aij, cj e bi interi
Osservazione: La regione ammissibile di un PLI può essere descritta mediante dei vincoli più o meno stringenti
min cTxs.v.
Ax ≥ bx ≥ 0 interi
(PLI)X
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 2
Formulazioni equivalenti
Guscio convesso conv(X ) = più piccolo insieme convesso ⊇ regione ammissibile X
Formulazione “ideale”: solo vertici a coordinate intere e quindi z*
PL = z*PLI -- basterebbe PL!
Formulazioni tutte equivalenti con i vincoli di interezza ma i rilassamenti continui, x*
PL e z*PL possono essere molto diversi.
∞ formulazioni x*
PL
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 3
Proprietà: Per qualsiasi regione ammissibile X di un PLI, ∃ una formulazione ideale (descrizione di conv(X ) in termini di un # finito di vincoli lineari) ma può contenere un numero elevatissimo – esponenziale – di vincoli.
La risoluzione di un qualsiasi PLI si può (teoricamente) ricondurre a quella di un solo problema di PL!
Ma la formulazione ideale è spesso di dimensione esponenziale e/o molto difficile da determinare…
limitata o illimitata
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 4
Idea: Data una formulazione iniziale, aggiungere iterativamente nuovi vincoli finché il rilassamento continuo non fornisce una soluzione ottima intera
Def.: Un taglio è un vincolo non soddisfatto da x*PL ma
soddisfatto da tutte le sol. ammissibili (intere) del PLI.
Metodi dei piani di taglio
Non è necessaria la descrizione completa di conv(X ), basta nelle vicinanze di una soluzione ottima
x*PL
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 5
frazionario
Sia x*PL sol. ottima del rilassamento continuo della formulazione
corrente min{cTx : Ax = b, x ≥ 0} e x*B[r] una variabile di base
frazionaria.
(*)
Tagli di Gomory
⇒ taglio di Gomory:
fuori baser
xjjrjrB bxax
j
=+ ∑:
][
∑ (arj - ⌊arj⌋) xj ≥ (br - ⌊br⌋)j:xj fuori base
La riga corrispondente del tableau ottimo:
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 6
• Elimina sol. ottima frazionaria x*PL del rilassamento continuo
(br – ⌊br⌋) > 0 e xj = 0 ∀j t.c. xj fuori base
Verifichiamo che la disuguaglianza
è un taglio rispetto a x*PL
∑ (arj - ⌊arj⌋) xj ≥ (br - ⌊br⌋)j:xj fuori base
Chiaro poiché
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 7
Sottraendo (**) da (*) si ottiene che per tutte le sol. ammissibili intere:
• Non elimina nessuna sol. ammissibile intera
Per ogni sol. ammissibile del rilassamento continuo
xB[r] + ∑ ⌊arj⌋ xj ≤ xB[r] + ∑ arj xj = br
e, in particolare, per ogni sol. ammissibile intera
xB[r] + ∑ ⌊arj⌋ xj ≤ ⌊br⌋ (**)
j ∈ F
j ∈ F
j ∈ Fxj ≥ 0
∑ (arj - ⌊arj⌋) xj ≥ (br - ⌊br⌋)j ∈ F
xj interi
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 8
e la forma “frazionaria”
xB[r] + ∑ ⌊arj⌋ xj ≤ ⌊br⌋j ∈ F
∑ (arj - ⌊arj⌋) xj ≥ (br - ⌊br⌋)j ∈ F
La forma “intera”
del taglio sono chiaramente equivalenti.
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 9
max z = 8x1 + 5x2
x1 + x2 ≤ 69x1 +5x2≤ 45
x1, x2 ≥ 0 interi
Tableau ottimo:
0.25-1.25013.75x1
-0.252.25102.25x2
-1.25s1
-0.75s2
00-41.25-zx2x1
variabili di scarto
Esempio:
3.75 2.25sol. di base ottima x*
B = è frazionaria
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 10
Scegliere un vincolo del tableau in cui la variabile di base èfrazionaria:
x1 – 1.25 s1 + 0.25 s2 = 3.75
NB: Parte intera e frazionaria di un numero a
a = ⌊a⌋ + f con 0 ≤ f < 1
quindi -1.25 = -2 + 0.75 e 0.25 = 0 + 0.25
Taglio di Gomory corrispondente: 0.75 s1 + 0.25 s2 ≥ 0.75
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 11
Introducendo la variabile di scarto s3 ≥ 0 si aggiunge il taglio al tableau:
00.25-1.25013.75x1
0-0.252.25102.25x2
-0.75
-1.75s1
-0.25
-0.75s2
1
0s3
00-0.75s3
00-41.25-zx2x1
Si utilizza l’algoritmo del simplesso duale
⇐ -0.75s1 – 0.25s2 ≤ -0.75
Il nuovo vincolo “taglia” la sol. ottima frazionaria del rilassamento continuo del PLI
3.75 2.25
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 12
-1.670.670015x1
3-10100x2
1
0s1
0.33
-0.33s2
-1.33
-1.67s3
001s1
00-40-zx2x1
sol. ammissibile per primale e anche intera
Poiché il rilassamento continuo della nuova formulazione ha una sol. ottima intera x*=[5, 0, 1,0, 0]T con z* = 40, x* è ottima anche per il PLI e non bisogna generare altri tagli di Gomory.
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 13
s1 = 6 - x1 - x2
s2 = 45 - 9x1 - 5x2
⇒ 3x1 + 2x2 ≤ 15
Il taglio di Gomory
0.75 s1 + 0.25 s2 ≥ 0.75
si può esprimere in funzione delle variabili di decisione mediante sostituzione:
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 14
654321x1
9
8
7
6
5
4
3
2
1
x2
z*PLI = 40
9x1 + 5x2 = 15
3x1 + 2x2 ≤ 15 taglio di Gomory
sol. ottima PLI
x1 + x2 = 6
sol. ottima rilassamento continuo
In questo caso: vincoli originali + taglio ≡ formulazione “ideale”!
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 15
BEGINRisolvere il rilassamento cont. min{cTx : Ax ≥ b, x ≥ 0} e sia x* una soluzione di base ammissibile ottima;WHILE x* non intero DOscegliere una variabile di base con valore frazionario;generare il taglio di Gomory corrispondente;aggiungere il vincolo al tableau continuo;effettuare un’iterazione algoritmo del simplesso duale;
END-WHILEEND
Algoritmo dei tagli di Gomory
ma spesso elevatissimo
Se il PLI ammette una sol. ottima, il metodo dei piani di taglio ne individua una dopo aver inserito un # finito di tagli di Gomory.
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 16
Esistono altri tipi di tagli generici (diversi da quelli di Gomory) e numerose classi di tagli per problemi specifici
I tagli più “profondi” sono le facce di conv(X) !
Studiando la struttura combinatoria di vari problemi (ad es. TSP, set covering, set packing,…) sono state caratterizzate intere classi di facce.
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 17
La tecnica “mista” di “Branch and Cut” tenta di superare i limiti rispettivi dei metodi di B&B e dei piani di taglio:
Ad ogni nodo (sottoproblema) del B&B si generano alcuni tagli per tentare di trovare una soluzione intera o migliorare il “bound”. Quando i nuovi tagli diventano poco efficaci si effettua il “branching”.
Vantaggi: I tagli tendono a rafforzare le formulazioni dei vari sottoproblemi; le lunghe serie di tagli senza significativo rafforzamento possono essere contrastate con operazioni di “branching”.
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 18
Esempio:
(PLI)
min -x2
3x1 + 2x2≤ 6-3x1 +2x2≤ 0
x1, x2 ≥ 0 interi
Applicando l’algoritmo del simplesso primale al rilassamento contino si ottiene:
01236x3
102-30x4
0x3
0x4
-100-zx2x1
x3 = 6 – 3x1 – 2x2x4 = 3x1 – 2x2
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 19
-11066x3
-1/201-3/20x2
0x3
½x4
0-3/20-zx2x1
-1/61/6011x1
¼¼103/2x2
¼x3
¼x4
003/2-zx2x1
La soluzione ottima x*=[1, 3/2, 0, 0]T ha valore z*PL= -3/2
(vertice A). Generare il taglio di Gomory associato alla 2a riga:
x2 + ¼ x3 + ¼ x4 = 3/2 ⇒ x2 + 0x3 + 0x4 ≤ ⌊3/2⌋ovvero il vincolo x2 ≤ 1 (taglio 1). Aggiungendo alla forma frazionaria ¼ x3 + ¼ x4 ≥ ½ la variabile di surplus x5 ≥ 0 si ottiene: - ¼ x3 – ¼ x4 + x5 = - ½ .
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 20
Rappresentazione grafica
x2
x1
1
2
3
321
-3x1 + 2x2 ≤ 0
3x1 + 2x2 ≤ 6
1 x2 ≤ 1
2 x2 ≤ x1
A = (1, 3/2)
B = (2/3, 1)
C = (1, 1)
A
BC
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 21
Aggiungendo la riga corrispondente al tableau:
0-1/61/6011x1
0¼¼103/2x2
-1/4
¼x3
-1/4
¼x4
1
0x5
00-1/2x5
003/2-zx2x1
Per rappresentare i tagli ottenuti nello spazio delle sole variabili originali si procede per sostituzione: la nuova variabile di surplus x5 è espressa in funzione solo di x1 e x2.
x5 = -1/2 + ¼ x3 + ¼ x4= -1/2 + ¼ (6 – 3x1 – 2x2)
¼ (3x1 – 2x2)=1 – x2
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 22
Applicando il simplesso duale si ottiene il nuovo tableau ottimo:
2/3-1/30012/3x1
100101x2
1
0x3
1
0x4
-4
1x5
002x3
001-zx2x1
La soluzione ottima x* = [2/3, 1, 2, 0, 0]T è ancora frazionaria (vertice B). La forma intera del taglio di Gomory associato alla 1° riga è x1 – x4 ≤ ⎣2/3⎦ = 0 che sostituendo x4 = 3x1 – 2x2equivale a -2x1 + 2x2 ≤ 0 (taglio 2).
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 23
0-411002x3
-2/3
12/31x5
0-1/30012/3x1
000101x2
0
0x3
-2/3
0x4
1
0x6
00-2/3x6
001-zx2x1
x6 = -2/3 + 2/3x4 + 2/3x5= -2/3(3 x1 – 2x2)
+ 2/3(1 – x2)= 2x1 – 2x2
Poiché la forma frazionaria del taglio è 2/3x4 + 2/3x5 ≥ 2/3, basta aggiungere la variabile di surplus x6 ≥ 0 e inserire la riga corrispondente nel tableau “orlato”:
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 24
Applicando il simplesso duale si ottiene il tableau ottimo:
La sol. ottima del rilassamento continuo x* = [1, 1, 1, 1, 0, 0]T
corrisponde al vertice ammissibile C.
NB: La formulazione non è ideale (il polìtopo ha ancora un vertice frazionario), conv(X ) richiederebbe anche il vincolo x1 + x2 ≤ 2 che pero non è indispensabile per questa funzione obiettivo.
3/2-501001x3
1
111x5
-1/200011x1
000101x2
0
0x3
1
0x4
-3/2
0x6
001x4
001-zx2x1