24
E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo dei piani di taglio Ipotesi : a ij , c j e b i interi Osservazione : La regione ammissibile di un PLI può essere descritta mediante dei vincoli più o meno stringenti min c T x s.v. Ax b x 0 interi (PLI) X

5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

  • Upload
    dinhtu

  • View
    217

  • Download
    1

Embed Size (px)

Citation preview

Page 1: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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

Page 2: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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

Page 3: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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

Page 4: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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

Page 5: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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:

Page 6: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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é

Page 7: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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

Page 8: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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.

Page 9: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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

Page 10: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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

Page 11: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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

Page 12: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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.

Page 13: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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:

Page 14: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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”!

Page 15: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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.

Page 16: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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.

Page 17: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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”.

Page 18: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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

Page 19: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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 = - ½ .

Page 20: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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

Page 21: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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

Page 22: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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).

Page 23: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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”:

Page 24: 5.3 Metodo dei piani di taglio - Intranet DEIBhome.deib.polimi.it/amaldi/LucidiFROD-06/PLI_Tagli_FROD-06.pdf · E. Amaldi – Fondamenti di R.O. – Politecnico di Milano 1 5.3 Metodo

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