Appunti su Metodo di Gomory, esercizi, Appunti di Ricerca Operativa
cla_88
cla_88

Appunti su Metodo di Gomory, esercizi, Appunti di Ricerca Operativa

38 pagine
7Numero di download
1000+Numero di visite
100%su 1 votiNumero di voti
Descrizione
Esercizi taglio di Gomory
20 punti
Punti download necessari per scaricare
questo documento
Scarica il documento
Anteprima3 pagine / 38
Questa è solo un'anteprima
3 pagine mostrate su 38 totali
Scarica il documento
Questa è solo un'anteprima
3 pagine mostrate su 38 totali
Scarica il documento
Questa è solo un'anteprima
3 pagine mostrate su 38 totali
Scarica il documento
Questa è solo un'anteprima
3 pagine mostrate su 38 totali
Scarica il documento
Ricerca Operativa

dsm

Ricerca Operativa

Marco Castellani

Università degli Studi di L’Aquila marco.castellani@univaq.it

PL intera

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 1 / 38

dsm

PLI Introduzione

Interessiamoci a problemi di PLI espressi in forma standard max cx

Ax = b

x ∈ Nn

dove ◦ c = (c1, c2, . . . , cn) è il vettore dei costi, ◦ A = (aij) è una matrice a coefficienti interi, ◦ b = (b1, b2, . . . , bm) è il vettore dei termini noti a coefficienti interi.

Indichiamo con S la regione ammisibile del problema di PLI.

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 2 / 38

dsm

PLI Introduzione

Associato al problema di PLI, consideriamo il seguente problema di PL (detto problema rilassato) ottenuto sostituendo il vincolo di interezza con quello di non negatività 

max cx

Ax = b

x 0

Indicando con Sr la regione ammissibile del problema rilassato, si osserva che S ⊆ Sr e quindi il valore di massimo del problema rilassato è sempre non inferiore al valore di massimo del problema originario.

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 3 / 38

dsm

PLI Introduzione

Esempio 1. Dato il seguente problema di PLI max 5x1 + 2x2 x1 + 2x2 ≤ 8 3x1 + x2 ≤ 10 x1, x2 ∈ N

il problema rilassato associato è max 5x1 + 2x2 x1 + 2x2 ≤ 8 3x1 + x2 ≤ 10 x1, x2 ≥ 0

La rappresentazione grafica dei due problemi è la seguente

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 4 / 38

dsm

PLI Introduzione

-

6

HH HHH

HHH HHH

B B B B B B B B B B B B B

c A

A = (0, 0)

cB

B = (103 , 0)

cC C = (125 , 145 )

cD

D = (0, 4)

q q q q q q q q q q q q q q q

L L L L L L L L L L L L L L L LL

!! *

L L L L L L L L L L L L L L L LL

!! *sP P = (3, 1)

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 5 / 38

dsm

PLI Introduzione

Esistono due classi di metodi di soluzione per generici problemi di PLI: quelli basati sull’uso di opportuni piani di taglio (analizzeremo quelli di Gomory); quelli basati su una enumerazione implicita delle soluzioni (branch and bound).

Inizialmente studiamo la relazione tra un problema di PLI ed il suo rilassamento.

Domanda: Quando possiamo affermare che la soluzione del problema rilassato coincide con quella del problema originario? Se questo avvenisse sarebbe sufficiente l’algoritmo del simplesso applicato al problema rilassato.

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 6 / 38

dsm

PLI Interezza della soluzione del rilassato

Sappiamo che le soluzioni di base ammissibili del problema rilassato hanno le componenti non in base nulle mentre quelle in base sono del tipo xB = A−1B b.

Se tutte le soluzioni di base ammissibili del problema rilassato fossero intere allora anche la soluzione ottima sarebbe intera.

Essendo b a valori interi, una condizione sufficiente che garantisce l’interezza di xB è l’interezza dei coefficienti della matrice A−1B .

Definizione Una matrice quadrata M con coefficienti interi si dice unimodulare se det M = ±1. Una matrice con coefficienti interi si dice totalmente unimodulare se ogni sua sottomatrice quadrata non singolare è unimodulare.

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 7 / 38

dsm

PLI Interezza della soluzione del rilassato

Teorema Ogni matrice quadrata con coefficienti interi ed unimodulare ammette inversa con coefficienti interi.

Importante! Conseguentemente se A fosse totalmente unimodulare allora ogni soluzione di base ammissibile del problema rilassato sarebbe ammissibile anche per il problema di PLI.

Determiniamo una condizione sufficiente che garantisce la totale unimodularità di A.

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 8 / 38

dsm

PLI Interezza della soluzione del rilassato

Teorema (Condizione sufficiente per la totale unimodularità) Sia A ∈M(m, n) con aij ∈ {−1, 0, 1} tale che ogni colonna possiede al più due elementi non nulli. Se l’insieme delle righe può essere partizionato in due insiemi tali che

se una colonna j contiene due elementi non nulli ahj e akj con lo stesso segno allora h e k non appartengono alla stessa partizione, se una colonna j contiene due elementi non nulli ahj e akj con segno opposto allora h e k appartengono alla stessa partizione,

allora A è totalmente unimodulare.

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 9 / 38

dsm

PLI Interezza della soluzione del rilassato

Esempio 2. La matrice

A =

 1 0 −1 −1 0 0 0 1 0 1 −1 0 −1 0 −1 1 −1 1 0 1 0 1 0 0 0 0 0 0 −1 0 0 0

 è totalmente unimodulare in quanto basta partizionare le righe nei due insiemi {1, 3, 4} e {2}.

Osservazione Quando faremo i grafi, vedremo che la matrice di incidenza di un grafo orientato è totalmente unimodulare.

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 10 / 38

dsm

PLI Tagli di Gomory

I primi algoritmi utilizzati per la PLI si basavano sul concetto di taglio. L’idea di base del metodo è la seguente.

1 Si calcola la soluzione ottima x del problema di PL ottenuto rilassando il problema di PLI.

2 Se x 6∈ Nn, si determina un iperpiano ax = b tale che I ax ≥ b per ogni x ∈ S (la disuguaglianza si dice valida), I ax < b.

3 Si aggiunge il vincolo ax ≥ b al problema di PLI e si ritorna al punto iniziale.

Il vincolo ax ≥ b (detto taglio) non modifica la regione ammissibile S del problema di PLI ma restringe quella del rilassamento. Ci sono vari modi per determinare un piano di taglio: noi studieremo quello introdotto da Gomory nel 1960.

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 11 / 38

dsm

PLI Tagli di Gomory

Richiamiamo i concetti di parte intera e parte decimale di un numero reale.

Definizione Dato un numero x ∈ R indichiamo

con bxc la parte intera (inferiore) di x, cioè il più grande numero intero non superiore a x, con {x} la parte decimale di x, cioè {x} = x − bxc.

Per definizione ogni numero x si può scrivere x = bxc+ {x}.

Se x = 135 allora b 13 5 c = 2 e {

13 5 } =

3 5 .

Attenzione ai numeri negativi: se x = −3, 2 allora

b−3, 2c = −4 e {−3, 2} = 0, 8

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 12 / 38

dsm

PLI Tagli di Gomory

Sia x = (b, 0) una soluzione ottima di base del problema rilassato determinata con il metodo del simplesso e supponiamo che x /∈ S. Allora esisterà i ∈ B tale che bi /∈ N. L’equazione relativa sarà

xi + ∑ j∈N

aijxj = bi

Decomponiamo i coefficienti aij e bi come somma delle loro parti intere e parti decimali

aij = baijc+ {aij} e bi = bbic+ {bi}

e sostituiamoli nell’equazione separando gli interi dai decimali

xi + ∑ j∈N baijcxj − bbic = {bi} −

∑ j∈N {aij}xj

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 13 / 38

dsm

PLI Tagli di Gomory Prendiamo un punto x ∈ S; allora, sostituendolo nell’equazione

xi + ∑ j∈N baijcxj − bbic︸ ︷︷ ︸

appartiene a Z

= {bi} − ∑ j∈N {aij}xj

Inoltre {bi} < 1 e ∑

j∈N{aij}xj ≥ 0 quindi

xi + ∑ j∈N baijcxj − bbic︸ ︷︷ ︸

appartiene a Z

= {bi} − ∑ j∈N {aij}xj︸ ︷︷ ︸

risulta <1

Mettendo assieme le due condizioni si ottiene la disuguaglianza∑ j∈N {aij}xj ≥ {bi}

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 14 / 38

dsm

PLI Tagli di Gomory

La disuguaglianza ottenuta risulta essere un piano di taglio (taglio di Gomory); infatti

per costruzione, ogni soluzione ammissibile del problema PLI la verifica, la soluzione ottima di base x del problema rilassato non la verifica in quanto x j = 0 per ogni j ∈ N.

A questo punto si aggiunge il vincolo al problema rilassato e si risolve il nuovo problema utilizzando l’algoritmo duale del simplesso.

I tagli di Gomory sono noti in letteratura anche come tagli frazionari.

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 15 / 38

dsm

PLI Tagli di Gomory

Esempio 1 (continua). Riprendiamo il problema iniziale il cui rilassamento ha la seguente tabella simpliciale

5 2 0 0 1 2 1 0 8 3 1 0 1 10

La tabella finale del simplesso è (determinatela)

0 0 −1/5 −9/5 1 0 −1/5 2/5 12/5 0 1 3/5 −1/5 14/5

con soluzione ottima x = (125 , 14 5 , 0, 0). La soluzione non è intera e la

prima componente è quella che maggiormente si allontana dall’interezza.

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 16 / 38

dsm

PLI Tagli di Gomory Il vincolo relativo alla prima componente di x è il primo

x1 − 1 5

x3 + 2 5

x4 = 12 5

.

Decomponiamo tutti i coefficienti in parte intera e parte decimale

x1 + ( −1 + 4

5

) x3 +

( 0 +

2 5

) x4 =

( 2 +

2 5

) e separiamo la parte decimale da quella intera

x1 − x3 − 2 = 2 5 − 4

5 x3 −

2 5

x4

Il taglio di Gomory si ottiene ponendo ≤ 0 la parte decimale

2x3 + x4 ≥ 1

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 17 / 38

dsm

PLI Tagli di Gomory

Se vogliamo rappresentare il vincolo

2x3 + x4 ≥ 1

nel piano x1 e x2, basta ricordare che

x1 + 2x2 + x3 = 8 e 3x1 + x2 + x4 = 10.

Mettendo in evidenza x3 e x4 e sostituendoli nella disequazione di taglio si ottiene l’equivalente vincolo ma questa volta espresso nelle variabili di partenza x1 e x2

x1 + x2 ≤ 5

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 18 / 38

dsm

PLI Tagli di Gomory

-

6

HH HHH

HHH HHH

B B B B B B B B B B B B B

q A

A = (0, 0)

cB

B = (103 , 0)

cC C = (125 , 145 )

qD

D = (0, 4)

q q q q q q q q q q q q q

P

P = (3, 1)

@ @ @ @ @ @ @ @ @

� cE

E = (52 , 5 2)

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 19 / 38

dsm

PLI Tagli di Gomory

Aggiungiamo il nuovo vincolo alla tabella finale del simplesso con l’aggiunta di una nuova variabile di scarto x5

0 0 −1/5 −9/5 0 1 0 −1/5 2/5 0 12/5 0 1 3/5 −1/5 0 14/5 0 0 2 1 −1 1

Moltiplicando l’ultima riga per −1, possiamo applicare l’algoritmo duale del simplesso alla terza riga facendo pivot in a33 = −2

0 0 −1/5 −9/5 0 1 0 −1/5 2/5 0 12/5 0 1 3/5 −1/5 0 14/5 0 0 −2 −1 1 −1

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 20 / 38

dsm

PLI Tagli di Gomory Attraverso operazioni di riga otteniamo la seguente tabella ottima

0 0 0 −17/10 −1/10 1 0 0 1/2 −1/10 5/2 0 1 0 −1/2 3/10 5/2 0 0 1 1/2 −1/2 1/2

con soluzione ottima x = (52 , 5 2 ,

1 2 , 0, 0). Poiché x /∈ S dobbiamo

effettuare un nuovo taglio relativo, ad esempio, all’ultimo vincolo

x3 + 1 2

x4 − 1 2

x5 = 1 2

Verificate che il nuovo piano di taglio è x4 + x5 ≥ 1 corrispondente a

4x1 + 3x2 ≤ 17.

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 21 / 38

dsm

PLI Tagli di Gomory

-

6

HH HHH

HHH HHH

B B B B B B B B B B B B B

q A

cB

cC

qD

q q q q q q q q q q q q q

P

@ @ @ @ @ @ @ @ @

� cE

S S S S S S S S S S S S

= c F

F = (135 , 11 5 )

e così via. . .

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 22 / 38

dsm

PLI Tagli di Gomory

Il metodo dei tagli di Gomory è scarsamente efficiente! Esistono alcuni espedienti che permettono di ottenere una maggiore efficienza; ad esempio, in presenza del vincolo

2x1 − 4x2 ≤ 3

potremmo riscriverlo

x1 − 2x2 ≤ 3 2 .

Essendo x1, x2 ∈ N segue che x1 − 2x2 ∈ Z e quindi potremmo riscrivere il vincolo in maniera equivalente

x1 − 2x2 ≤ 1

che è maggiormente aderente alla regione S.

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 23 / 38

dsm

PLI Il metodo Branch & Bound

Gli algoritmi maggiormente implementati nei software commerciali per la PLI sono quelli di enumerazione implicita. Tra questi, forse i più famosi, sono quelli di tipo Branch & Bound.

Il verbo TO BRANCH significa ramificare, il verbo TO BOUND significa limitare.

Il metodo determina sottoinsiemi disgiunti di soluzioni (branching) e li valuta sulla base di una stima della funzione obiettivo (bounding), eliminando quegli insiemi di soluzioni che non contengono la soluzione ottima.

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 24 / 38

dsm

PLI Il metodo Branch & Bound

Lo schema dell’algoritmo di Branch & Bound è il seguente. 1 Determiniamo la soluzione x0 del problema rilassato (P0) ed il

valore di massimo z0. 2 Se x0 /∈ S allora esiste i ∈ B tale che x i /∈ N e z0 è un limite

superiore del massimo del problema di PLI (upper bound). 3 Generiamo due problemi rilassati (branching)

(P1)

 max cx Ax = b xi ≤ bx ic x 0

& (P2)

 max cx Ax = b xi ≥ bx ic+ 1 x 0

4 Risolviamo i due problemi. Si presenteranno vari casi (analizziamo solamente quelli relativi a (P1) che ripeteremo per tutti i problemi che si presenteranno).

Marco Castellani (L’Aquila) Ricerca Operativa PL intera 25 / 38

non sono stati rilasciati commenti
Questa è solo un'anteprima
3 pagine mostrate su 38 totali
Scarica il documento