5.1 metodo branch and bound -...

40
E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 1 5.1 Metodo Branch and Bound Idea: Ricondurre la risoluzione di un problema difficile a quella di sottoproblemi più semplici effettuando una partizione (ricorsiva) della regione ammissibile. Si consideri il problema min{ c(x ) : x X } Applicabile ai problemi di ottimizzazione combinatoria e continua.

Upload: haminh

Post on 13-Mar-2019

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 1

5.1 Metodo Branch and Bound

Idea: Ricondurre la risoluzione di un problema difficile a quella di sottoproblemi più semplici effettuando una partizione (ricorsiva) della regione ammissibile.

Si consideri il problema min{ c(x) : x ∈ X }

Applicabile ai problemi di ottimizzazione combinatoria e continua.

Page 2: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 2

z = min{ c(x) : x ∈ X }

Suddivisione (“branching”):Sia X = X1 ∪ … ∪ Xk una partizione di X in k sottoinsiemi( Xi∩ Xj = ∅ per ogni coppia i ≠ j ) e zi = min{ c(x) : x ∈ Xi } per i =1,…, k

Chiaramente z = min{ c(x) : x ∈ X } = min{z1,…, zk}

Page 3: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 3

Tecnica di “bounding”:Per ogni sottoproblema zi = min{ c(x) : x ∈ Xi } i) determinare una soluzione ottima di min{ c(x) : x ∈ Xi }

(modo esplicito), oppureii) dimostrare che Xi = ∅ (modo esplicito), oppureiii) dimostrare che zi ≥ z’ ≡ migliore soluzione

ammissibile trovata in precedenza (modo implicito).

Se il sottoproblema non è “risolto” vengono generati nuovi sottoproblemi mediante suddivisione.

Page 4: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 4

“Branching”: Suddividere la regione ammissibile X in sottoregioniesaustive ed esclusive (partizione).

Sia un PLI min{ cTx : Ax = b, x ≥ 0 interi }

5.1.1 Branch and Bound per PLI

Risolvere il rilassamento continuo min{ cTx : Ax = b, x ≥ 0 }

e siano x una soluzione ottima e zPL = cTx il valore ottimo.

Page 5: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 5

“Bounding”: Determinare un “bound” (per difetto se PLI di min) sul valore ottimo zi di un sottoproblema di PLI risolvendo il relativo rilassamento continuo.

Se x intera, x è anche ottima per PLI, altrimenti ∃ xh frazionaria e si considerano i due sottoproblemi:

PLI1: min{ cTx : Ax = b, xh ≤ ⌊xh⌋, x ≥ 0 interi }

PLI2: min{ cTx : Ax = b, xh ≥ ⌊xh⌋+1, x ≥ 0 interi }

Page 6: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 6

654321x1

9

8

7

6

5

4

3

2

1

x2

z = 20

x = zPL = 41.2515/49/4

max z = 8x1 + 5x2

x1 + x2 ≤ 69x1 +5x2≤ 45x1, x2 ≥ 0 interi

PLI

Esempio:

zPL ≥ z*PLI

9x1 + 5x2 = 45

x1 + x2 = 6

x1

Poiché x1 e x2 frazionarie, sceglierne una per il passo di branching

Page 7: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 7

Regione ammissibile X suddivisa in X1 e X2 imponendo:

x1 ≤ ⌊x1⌋ = 3 o x1 ≥ ⌊x1⌋+1 = 4vincoli esaustivied esclusivi

654321x1

9

8

7

6

5

4

3

2

1

x2

z = 20

Sottoproblema S1sottoregione X1 Sottoproblema S2

sottoregione X2

sol. x = zPL2 = 4149/5

sol. x = zPL1 = 3933

intera! ⇒ z*PLI1 ≥ zPL1

Page 8: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 8

Dopo aver considerato X1, migliore soluzione ammissibile(intera) trovata finora:

x = con z = 3933

Visto che zPL2 = 41 > 39, X2 può contenere una soluzione ammissibile del PLI migliore.

⇒ Partizione di X2 in X3 e X4 imponendo:

x2 ≤ ⌊x2⌋=1 o x2 ≥ ⌊x2⌋+1=2

Page 9: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 9

z = 20

x2 = 2

x2 = 11

2

3

4

x2

1 2 3 4 5 6x1

Sottoproblema S3sottoregione X3

Sottoproblema S4 èinammissibile (X4 = ø)

sol. x = con zPL3 = 365/940/91

Page 10: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 10

Albero decisionale:(“branching tree”)

PL

S1S2

S3 S4

x1≥ 4x1 ≤ 3

x2 ≤ 1 x2≥ 2zPL2 = 41

zPL3 = 365/9 inammissibile X4 = ø

zPL2 = 39sol. intera

migliore sol. ammissibile trovata finora

Page 11: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 11

Visto che zPL3 = 365/9 > 39, X3 può contenere una soluzione ammissibile del PLI migliore.

⇒ Partizione di X3 in X5 e X6 imponendo:

x1 ≤ ⌊x1⌋ = 4 o x1 ≥ ⌊x1⌋+1 = 5

40/91x =

Page 12: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 12

z = 20

Sottoproblema S5

sol. di S5: x = intera con zPL5 = 3741

1

2

3

4

x2

1 2 3 4 5 6x1

x1 = 4 x1 = 5 unica sol. ammissibile di S6

50x = intera

zPL6 = 40

Soluzione intera (anche ammissibile per PLI) ma con valore peggiore di x = con z = 393

3Migliore sol. trovata ⇒ soluzione ottima

Branch & Bound garantisce soluzione ottima (metodo esatto)

Page 13: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 13

Albero decisionale

49x

415x

4165z

PL

2

1

=

=

=

3x3x

39zS

2

1

1

===

59x

4x41z

S

2

1

2

=

==

1x9

40x9

365z

S

2

1

3

=

=

=

S4X4 = ø

1x4x

37zS

2

1

5

===

0x5x

40zS

2

1

6

===

radice

interaintera

inammissibile

x1 ≤ 3

x2 ≤ 1

x1 ≤ 4

x1≥ 4

x2≥ 2

x1≥ 5

sol. intera ottima

z*PLI = 40

Page 14: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 14

L’albero non contiene necessariamente tutti i nodi possibili(2d # foglie)

intera

Un nodo non ha figli -- è chiuso -- se• vincoli iniziali + quelli sugli archi dalla radice sono

incompatibili (S4)• soluzione del rilassamento continuo è intera (S1)• soluzione ottima xPL del rilassamento continuo ha un

valore cTxPL peggiore di quello della migliore soluzione ammissibile del PLI trovata finora.

≡ criterio di “bounding”

Page 15: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 15

NB: Nel terzo caso la sottoregione ammissibile del sottoproblema associato a quel nodo non può contenere una soluzione intera migliore della migliore soluzione del PLI trovata finora!

Criterio di “bounding” permette spesso di “eliminare” gran parte dei nodi (sottoproblemi).

Page 16: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 16

Scelta del nodo (sottoproblema) da elaborare:

• Prima nodi più profondi (tecnica “depth first”)

procedimento ricorsivo semplice ma costoso in caso di scelta sbagliata

• Prima nodi più promettenti (“best bound first”)

con valore del rilassamento continuo migliore

Si generano tipicamente meno nodi ma problemi poco vincolati ⇒ si aggiorna raramente la migliore soluzione ammissibile corrente

Page 17: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 17

Scelta variabile (frazionaria) di branching

Scegliere la variabile xh con parte frazionaria più vicina a 0,5 così il nuovo vincolo è più significativo per i due sottoproblemi.

Page 18: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 18

Struttura dati Branch & Bound: problema di min

• m = ultimo nodo• xopt = migliore soluzione intera trovata finora• zopt = cTxopt = costo migliore soluzione intera trovata finora

• Q = coda dei nodi foglia attivi (quelli che possono avere nodi figli)

• Padre[t] = ±pp = indice nodo padre di t

+/- figlio di sinistra o di destra

Page 19: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 19

• LB[t] = “lower bound” associato a t• Vbranch[t] = indice h della variabile xh di branching• Valore[t] = valore x*

h della variabile di branching

NB: Se PL inammissibile, x* fittizio e cTx* = +∞Se c intero, LB[m] = ⌈cTx*⌉

Page 20: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 20

BEGINm:=1; Padre[1]:=0; Q:= ∅;zopt:= valore soluzione euristica (eventualmente +∞);risolvi il rilassamento continuo min{cTx : Ax = b, x ≥ 0} e siax* la soluzione ottima trovata;LB[1]:= cTx*;IF (x* intera) AND (cTx* < zopt) THEN

xopt:= x*; zopt:= cTx*

END-IFIF LB[1] < zopt THEN

scegli la variabile frazionaria x*h di branching;Vbranch[1]:= h; Valore[1]:= x*h;Q := {1}

END-IFWHILE Q ≠ 0 DO /* elabora i nodi figli attivi */

scegli un nodo t ∈ Q; poni Q:= Q \ {t};h:= Vbranch[t]; val:= Valore[t];...

Algoritmo Branch & BoundEl

abor

azio

ne ra

dice

Page 21: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 21

FOR figlio:= 1 TO 2 DO /*genera i figli del nodo t */m:= m+1;IF figlio = 1 THEN Padre[m]:= t;ELSE Padre[m]:= -t; END-IFdefinisci il problema PLm associato al nodo m(vincoli di PLt più xh ≤ ⌊val⌋ se figlio = 1, o xh ≥ ⌈val⌉ se figlio = 2);

risolvi il problema PLm e sia x* la soluzione ottima trovata;LB[m]:= cTx*;IF (x* intera) AND (cTx* < zopt) THEN

xopt:= x*; zopt:= cTx*; /* aggiorna la soluzione ottima */ Q:= Q \ {j∈Q : LB[j] ≥ zopt};

END-IFIF LB[m] < zopt THEN

scegli la variabile frazionari x*k di branching;Vbranch[m]:= k; Valore[m]:= x*k;Q:= Q ∪ {m};

END-IFEND-FOR

END-WHILEEND

Page 22: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 22

Branch & Bound applicabile anche a PLI misti:considerare solo per “branching” le variabili frazionarie con vincolo di interezza.

In realtà metodo generale per problemi di ottimizzazione combinatoria

Ad es. sequenziamento, commesso viaggiatore,…

# finito (ma elevatissimo) di sol. ammissibili

Page 23: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 23

Basta

• Tecnica per suddividere un insieme di sol. ammissibili in sottoinsieme mutualmente esclusivi (“branch”)

• Procedura per determinare un limite sul costo di qualsiasi soluzione ammissibile in un dato sottoinsieme (“bound”)

NB: Branch-and-Bound (B & B) anche utilizzabile come metodo approssimato (imponendo un limite su tempo o nodi esplorati)

Page 24: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 24

5.1.2 B & B per problemi di ottimizzazione combinatoria

Esempio: problema di sequenziamento ( NP-difficile )

n lavori (jobs) da eseguire su una macchina

n = 4861

16841253442

scadenzatempo di lavorazionejobs

fine giorno 8

Tempi di lavorazioni e le date limite di consegna:in giorni

Page 25: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 25

Per sequenza 1 – 2 – 3 – 4, ritardo totale = 0 + 6 + 3 + 7 = 16

definiamo xij =

Idea: suddividere l’insieme di tutte le soluzioni ammissibili a seconda del job eseguito per ultimo.

Chiaramente x14 = 1 o x24 = 1 o x34 = 1 o x44 = 1

1 se job i è il j-esimo eseguito0 altrimenti

giorni

Determinare una sequenza che minimizza il ritardo totale.

Page 26: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 26

D = ritardo totale

se x44 = 1, job 4 è completato alla fine del giorno 6 + 4 + 5 + 8 = 23 cioè con ritardo di 23 – 16 = 7

1D ≥ 15

2D ≥ 19

3D ≥ 11

4D ≥ 7

5D ≥ 14

6D ≥ 18

7D ≥ 10

8D = 12

9D = 16

× ×

×

x14 = 1x24 = 1

x44 = 1

x34 = 1

x13 = 1

x23 = 1

x33 = 1

x12 = 1 x22 = 1

“Branching” effettuato sul nodo con limite inferiore su D più piccolo.nodo 4; nodo 7; nodo 8;…

× ×

Page 27: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 27

Per nodo 7: job 4 per ultimo con ritardo di 7job 3 per penultimo con ritardo di

6 + 4 + 5 – 12 = 3 giorni15

⇒ D ≥ 7 + 3 = 10

nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata con ritardo totale = 12.

NB: nodi 1, 2, 5 e 6 possono essere “chiusi”!

Page 28: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 28

1D ≥ 15

2D ≥ 19

3D ≥ 11

4D ≥ 7

10D ≥ 21

11D ≥ 25

12D ≥ 13

× ×

x14 = 1x24 = 1

x44 = 1

x34 = 1

x13 = 1

x23 = 1

x43 = 1⋮

× × ×11 + (6 + 4 + 8 – 16) = 1311 + (6 + 4 + 8 – 8) = 21

job 1 penultimo

⇒ sequenza ottima: 2 – 1 – 3 – 4 con D =12

job 3 ultimo

job 4 penultimo

Page 29: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 29

Nel Branch and Bound per PLI come aggiornare in modo efficiente un tableau ottimo quando si aggiunge un vincolo ?

max yTb

yTA ≤ cT

y ∈ m(D)

min cTx

Ax = bx ≥ 0

(P)

Page 30: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 30

5.2 Algoritmo del simplesso duale

Sia

NIbxB[1]⋮

xB[n]

cTN0 … 0-z0-z

xm+1 … xnx1 … xm

con c ≥ 0 ⇔yT = cT

B B-1

sol. ammiss. di (D)

• Simplesso primale mantiene ammiss. (P) e cerca ammiss. (D)• Simplesso duale mantiene ammiss. (D) e cerca ammiss. (P)

Page 31: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 31

Scelta indice s della variabile fuori base da fare entrare nella base e indice r di quella in base da fare uscire in modo da mantenere l’ammissibilità di (D) , ovvero c ≥ 0

per cs e sottrarla alla riga 0 della funzione obiettivo

∑∈

=+Nj

rjrs

rj

rs

r bxaa

ax

Se ars < 0, dividendo la r-esima riga per ars si ottiene un ar0 ≥ 0 (si fa un “passo” verso una soluzione di base ammissibile di (P)). Per ottenere cs= 0 bisogna inoltre moltiplicare la corrispondente r-esima riga

Page 32: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 32

~rs

rjsjj a

accc −=Poiché

di (D) è necessario che jc j ∀≥ 0~

rs

rjs

rs

rjsj a

ac

aa

cc−

=≥e quindi si deve imporre

dato che .0<rsa

0>rja

0<rja

Se

(*)

vale certamente (*)

Se deve valere rs

s

rj

j

ac

ac

per mantenere l’ammissibilità

j∀

Page 33: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 33

Se b ≥ 0 tableau ottimo (test di ottimalità)

altrimenti

• scegliere xB[r] uscente dalla base con br < 0

• scegliere fra xj con arj < 0 quella entrante xs t.c.

+ regola di Bland

⎪⎭

⎪⎬⎫

⎪⎩

⎪⎨⎧

<= 0: min rjrj

j

rs

s aac

ac

Page 34: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 34

Esempio:min -x1 – 4x2

x1 + x2 ≤ 2x1 +3x2≤ 3

x2 ≤ 2/3x1, x2 ≥ 0

Tralasciando gli ultimi due vincoli si ha il tableau: 1

0x3

112x3

-4-10-zx2x1

Con un’operazione di pivot del simplesso primale: 1

4x3

112x2

038-zx2x1

Page 35: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 35

La soluzione di base ottima x* = [0, 2, 0]T corrisponde al punto A che viola entrambi i vincoli tralasciati.Aggiungendo le variabili di scarto x4 ed x5 e inserendo le due equazioni nel tableau corrente si ottiene:

001112x2

010313x4

0

4x3

0

0x4

1

0x5

102/3x5

038-zx2x1

Page 36: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 36

1

21

2

C

A

B

2/3

z = -x1 – 4x2

x1 + x2 ≤ 2

x1 + 3x2 ≤ 3

x1

x2

x2 ≤ 2/3

Rappresentazione grafica dell’introduzione di nuovi vincoli

Page 37: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 37

Per mettere il tableau in forma canonica (eliminare la variabiledi base x2 dalle ultime due righe – dalle espressioni di x4 e x5) basta la seguente operazione di pivot:

001112x2

010313x4

0

4x3

0

0x4

1

0x5

102/3x5

038-zx2x1

Page 38: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 38

001112x2

01-30-2-3x4

-1

4x3

0

0x4

1

0x5

0-1-4/3x5

038-zx2x1

NB: i valori negativi delle nuove variabili di base x4= -3e x5= -4/3 esprimono il fatto che questa soluzione viola i vincoli appena aggiunti.

soluzione di base associata è ancora x* = [0, 2, 0]T

Page 39: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 39

Dato che i costi ridotti sono tutti non negativi, si può applicare l’algoritmo del simplesso duale.

Con l’operazione di pivot su -3 si ottiene il tableau associato al punto x = [0, 1, 1, 0, -1/3]T -- punto B

01/3011/31x2

0-1/3102/31x3

0

0x3

-1/3

4/3x4

1

0x5

0-1/3-1/3x5

01/34-zx2x1

Page 40: 5.1 Metodo Branch and Bound - home.deib.polimi.ithome.deib.polimi.it/amaldi/LucidiFRODE-06-07/PLI_BandB+simplesso... · nodo 8 (sequenza 2 – 1 – 3 – 4) sol. ammissibile candidata

E. Amaldi – Fondamenti di R. O. – Politecnico di Milano 40

Operazione di pivot su -1/3 porta al tableau ottimo associato al vertice ottimo x* = [1, 2/3, 1/3, 0, 0]T -- punto C

100102/3x2

2-11001/3x3

0

0x3

1

1x4

-3

1x5

011x1

0011/3-zx2x1