appunti per il corso di ricerca operativa 1locatell/didattica/ro1/ro1.pdf · capitolo 1...

167
Appunti per il corso di Ricerca Operativa 1

Upload: phungnhu

Post on 19-Feb-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Appunti per il corso di Ricerca Operativa 1

Page 2: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Capitolo 1

Introduzione

La prima domanda da porsi riguarda gli scopi che si prefigge la RicercaOperativa. Possiamo definirla come uno strumento per prendere delle deci-sioni che siano le migliori possibili secondo un criterio dato. Ogni volta chedobbiamo prendere una decisione entrano in gioco le seguenti componenti:

DATI , che rappresentano tutti i valori noti a priori.

VARIABILI , che sono le entita controllate dal decisore; al variare diesse varia anche il valore del criterio e tra tutti i possibili valori chepossono assumere si devono scegliere quelli che forniscono il migliorvalore possibile del criterio.

VINCOLI , che limitano le possibili scelte del decisore (i possibili valoridelle variabili).

OBIETTIVO , che coincide con il criterio fissato per confrontare le di-verse possibili scelte del decisore.

Facciamo un esempio molto semplice di decisione. Dovete uscire di casa epotete prendere con voi al massimo uno dei seguenti tre oggetti: un libroche vale 10 Euro, una macchina fotografica che vale 100 Euro ed una borsada 25 Euro. Dovete decidere quale oggetto portare con voi, tenuto contoche vi interessa prendere un oggetto di valore massimo. L’esempio e moltobanale e non c’e bisogno di scomodare la Ricerca Operativa per capire cheoccorre prendere la macchina fotografica. Tuttavia in esso sono gia presentitutte le componenti tipiche di una decisione:

DATI : sono i valori dei tre oggetti.

1

Page 3: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Tabella 1.1:Farina Acqua Medicinali

TIPO I 10 10 30TIPO II 30 20 10TIPO III 20 40 5

Tabella 1.2:TIPO I 14TIPO II 5TIPO III 4

VARIABILI : per ogni oggetto il decisore (cioe voi) deve decidere seprenderlo oppure no.

VINCOLI : in questo caso e presente il vincolo che puo essere preso almassimo un oggetto.

OBIETTIVO : il criterio di scelta e rappresentato dal valore e quindil’obiettivo e quello di prendere l’oggetto di valore massimo.

Nel nostro esempio e molto semplice prendere la decisione migliore. Vedre-mo pero che in molte situazioni non e per nulla chiaro, a prima vista, capirequal e la decisione migliore. Ad esempio si consideri il seguente problema.Supponiamo di dover preparare dei pacchi per inviare degli aiuti. E pos-sibile realizzare tre diversi tipi di pacchi con diversi contenuti di sacchettidi farina, bottiglie d’acqua e medicinali. Piu precisamente la Tabella 1.1specifica i contenuti di ogni tipo di pacco. E stato inoltre assegnato unindice di utilita per un’unita di ogni tipo di pacco. Gli indici sono riportatinella Tabella 1.2. Infine e noto che la disponibilita di sacchetti di farina,bottiglie d’acqua e medicinali e limitata. Piu precisamente il numero mas-simo disponibile di farina, acqua e medicinali e riportata nella Tabella 1.3.La domanda che ci si pone e la seguente: quanti pacchi di ciascun tipo oc-corre preparare se si vuole rendere massimo l’indice di utilita complessivo?Rispetto all’esempio iniziale e ora piu difficile stabilire qual e la cosa giusta

Tabella 1.3:farina 5100acqua 8000

medicinali 1805

2

Page 4: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

da fare. Potrei realizzare solo pacchi del tipo I. In tal caso ne potrei rea-lizzare al massimo 60 per il limite di disponibilita sui medicinali. L’utilitacomplessiva risulterebbe pari a 60*14=840. Potrei realizzare solo pacchidel tipo II. In tal caso ne potrei realizzare al massimo 170 per il limite didisponibilita sui sacchetti di farina. L’utilita complessiva risulterebbe paria 170*5=850. Infine, potrei realizzare solo pacchi del tipo III. In tal casone potrei realizzare al massimo 200 per il limite di disponibilita sulle bot-tiglie d’acqua. L’utilita complessiva risulterebbe pari a 200*4=800. Delletre possibili soluzioni la migliore e la seconda. Ma queste tre decisioni noncoprono tutti i casi possibili. Infatti, potrei scegliere di fare un po’ di pacchidi ciascun tipo. Quindi, a differenza dell’esempio iniziale non e per nullaimmediato scegliere la decisione migliore.Un modo per risolvere problemi di decisione complessi e quello di rifor-mularli come problemi di Programmazione Matematica ed utilizzare quindidelle tecniche di risoluzione apposite per questi problemi. Come vedremoquesto sara proprio l’approccio che potremo utilizzare per il nostro esempio.Nei problemi di Programmazione Matematica sono date n variabili di deci-sione x1, . . . , xn, l’obiettivo e rappresentato da una funzione f(x1, . . . , xn)delle n variabili, detta appunto funzione obiettivo, mentre i vincoli sonorappresentati da disequazioni o equazioni di questo tipo:

gi(x1, . . . , xn) ≤ (o ≥ o =) 0.

Quindi la generica forma di un problema di Programmazione Matematicae la seguente:

max (o min) f(x1, . . . , xn)

gi(x1, . . . , xn) ≤ 0 i ∈ I1

gi(x1, . . . , xn) ≥ 0 i ∈ I2

gi(x1, . . . , xn) = 0 i ∈ I3

L’insieme dei punti che soddisfano tutti i vincoli viene chiamato regioneammissibile del problema e nel seguito verra indicato con Sa. Abbiamoquindi:

Sa = { (x1, . . . , xn) : gi(x1, . . . , xn) ≤ 0, ∀ i ∈ I1

gi(x1, . . . , xn) ≥ 0, ∀ i ∈ I2

gi(x1, . . . , xn) = 0, ∀ i ∈ I3}Risolvere il problema di Programmazione Matematica vuol dire determinareun punto (x∗

1, . . . , x∗n) ∈ Sa, che verra detto soluzione ottima del problema,

tale che

f(x∗1, . . . , x

∗n) ≤ f(x1, . . . , xn) ∀ (x1, . . . , xn) ∈ Sa,

3

Page 5: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

se il problema e di minimo, oppure

f(x∗1, . . . , x

∗n) ≥ f(x1, . . . , xn) ∀ (x1, . . . , xn) ∈ Sa,

se il problema e di massimo. La Programmazione Matematica comprendeun grande numero di problemi. Tra questi quelli di Programmazione Li-neare (in cui, come vedremo, rientra anche il nostro esempio precedente),della quale ci occuperemo ampiamente nei capitoli successivi.

4

Page 6: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Capitolo 2

La Programmazione

Lineare

La generica forma dei problemi di Programmazione Matematica comprendeuna grande varieta di problemi a cui corrispondono livelli di difficolta moltodiversi e anche tecniche risolutive molto diverse. Qui ci concentreremosu una importante sottoclasse di problemi di programmazione matematicache si incontra in molte applicazioni pratiche, la classe dei problemi diProgrammazione Lineare (abbreviata con PL nel seguito). Nei problemi diPL la funzione obiettivo e una funzione lineare, ovvero:

f(x1, . . . , xn) =

n∑

j=1

cjxj

e lo stesso vale per i vincoli, che avranno la seguente forma:

n∑

j=1

aijxj ≤ (o ≥ o =) bi.

Quindi, il generico problema di PL avra la seguente forma:

max (o min)∑n

j=1 cjxj∑n

j=1 aijxj ≤ bi i ∈ I1∑n

j=1 aijxj ≥ bi i ∈ I2∑n

j=1 aijxj = bi i ∈ I3

Da questa formulazione possiamo notare quali sono le tre principali carat-teristiche dei problemi di PL.

5

Page 7: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Proporzionalita Il contributo di ogni variabile xj nell’obiettivo e nei vin-coli e direttamente proporzionale al valore della variabile. Infatti,nell’obiettivo il contributo e pari a cjxj mentre nei vincoli e aijxj .

Additivita I contributi delle diverse variabili si sommano tra loro sia nel-l’obiettivo che nei vincoli (si vedano le sommatorie che definisconoobiettivo e vincoli).

Continuita Le variabili xj possono assumere tutti i valori reali.

I programmi lineari sono molto importanti per almeno due ragioni:

1. molti problemi reali (tra cui, come vedremo fra breve, quello intro-dotto in precedenza) hanno come modello matematico proprio unprogramma lineare;

2. sono piu semplici da risolvere rispetto ad altri modelli dove compaionotermini non lineari. Per i programmi lineari esistono delle procedu-re molto efficienti di risoluzione (come l’algoritmo del simplesso chedescriveremo in seguito).

Piu avanti vedremo un’altra importante classe di problemi, quelli di Pro-grammazione Lineare Intera, che si differenziano da quelli di PL solo perla rimozione della proprieta di continuita (in essi le variabili potrannoassumere solo valori interi).

2.1 Formulazione dell’esempio degli aiuti uma-

nitari come problema di PL

Cominciamo con l’individuare le quattro componenti della decisione.

DATI : sono i valori riportati nelle tre tabelle 1.1-1.3.

VARIABILI : per ogni tipo di pacco il decisore deve decidere quantipacchi di quel tipo realizzare.

VINCOLI : in questo caso sono presenti i vincoli sulla disponibilita difarina, acqua e medicinali.

OBIETTIVO : il criterio di scelta e rappresentato dall’utilita complessivadei pacchi, che si vuole massimizzare.

Un problema di questo tipo viene chiamato problema con vincoli di risorse.In tali problemi vi sono sempre delle risorse (in questo caso farina, acqua emedicinali) che vengono in qualche modo utilizzate (qui per fare i pacchi)

6

Page 8: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

e delle quali si ha una disponibilita limitata.Vediamo allora di procedere alla formulazione di un modello matematicoper questo problema. Indichiamo con:

x1 il numero di pacchi di tipo I da realizzare.

x2 il numero di pacchi di tipo II da realizzare.

x3 il numero di pacchi di tipo III da realizzare.

Queste sono le tre variabili del problema. Ora dobbiamo tradurre i vincoli el’obiettivo in formule matematiche. Abbiamo un vincolo sulla disponibilitadi sacchetti di farina. Come si puo tradurre in linguaggio matematico? Unpacco di tipo I contiene 10 sacchetti di farina. Quindi x1 pacchi di tipo Irichiedono

10x1

sacchetti di farina. Analogamente, un pacco di tipo II contiene 30 sacchettidi farina e quindi x2 pacchi richiedono

30x2

sacchetti di farina. Infine, un pacco di tipo III contiene 20 sacchetti difarina e quindi x3 pacchi richiedono

20x3

sacchetti di farina. La somma di questi tre valori restituisce il numerocomplessivo di sacchetti utilizzati. Piu precisamente, il valore

10x1 + 30x2 + 20x3

rappresenta il numero complessivo di sacchetti di farina utilizzati in corri-spondenza dei valori x1, x2 e x3 delle variabili. Noi sappiamo di non poterutilizzare piu di 5100 sacchetti di farina e tale vincolo si traduce quindinella seguente disequazione

10x1 + 30x2 + 20x3 ≤ 5100,

che e proprio la traduzione in linguaggio matematico del vincolo sulla dispo-nibilita di sacchetti di farina. In modo completamente analogo si procedeper tradurre i vincoli sulla disponibilita di bottiglie d’acqua

10x1 + 20x2 + 40x3 ≤ 8000,

e sulla disponibilita di medicinali

30x1 + 10x2 + 5x3 ≤ 1805.

7

Page 9: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Per essere precisi a questi tre vincoli ne dobbiamo aggiungere altri tre chenon abbiamo specificato in precedenza perche banali: le quantita di pacchidi ciascun tipo non possono essere negative (per esempio, non ha sensoparlare di -5 pacchi di tipo I). Mentre in una descrizione a voce del problemaquesto tipo di vincoli e del tutto scontato, da un punto di vista matematiconon lo e e tali vincoli sono essenziali nella definizione del modello. Inlinguaggio matematico essi si esprimono semplicemente in questo modo:

x1 ≥ 0 x2 ≥ 0 x3 ≥ 0.

L’insieme dei valori che si possono assegnare a x1, x2, x3 senza violare ivincoli introdotti rappresenta l’insieme ammissibile Sa del problema. Adesempio, x1 = 20, x2 = 20, x3 = 30 e una soluzione ammissibile, mentrex1 = 50, x2 = 60, x3 = 40 non lo e (viola il vincolo sulla disponibilita dimedicinali) e non lo e neppure x1 = −2, x2 = 20, x3 = 40 (viola il vincolodi non negativita del numero di pacchi di tipo I).Resta da definire l’obiettivo del problema. Un pacco di tipo I ha utilitapari a 14, quindi x1 pacchi hanno utilita pari a

14x1.

In modo del tutto analogo si vede che x2 pacchi di tipo II hanno utilita paria

5x2

e x3 pacchi di tipo III hanno utilita pari a

4x3.

Quindi, sommando le utilita di ciascun tipo di pacco si ottiene l’utilitacomplessiva pari a

14x1 + 5x2 + 4x3.

Il nostro obiettivo e massimizzare tale valore.Riassumendo, il modello matematico del nostro problema e il seguente:

massimizzare 14x1 + 5x2 + 4x3

tenuto conto che

10x1 + 30x2 + 20x3 ≤ 5100

10x1 + 20x2 + 40x3 ≤ 8000

30x1 + 10x2 + 5x3 ≤ 1805

x1 ≥ 0

x2 ≥ 0

x3 ≥ 0

8

Page 10: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Come si vede, abbiamo a che fare con un problema di PL. Per completezzanotiamo che ulteriori vincoli che si potrebbero introdurre sono quelli diinterezza delle variabili x1, x2, x3: il numero di pacchi realizzati di ciascuntipo deve essere un valore intero. In tal caso ci troveremmo di fronte adun problema di Programmazione Lineare Intera (si veda il capitolo 6). Quipero tralasceremo tali vincoli, ammettendo quindi anche la realizzazione diun numero frazionario di pacchi di ciascun tipo.

2.2 I problemi di PL in forma canonica

Un tipo particolare di problemi di PL e rappresentato dai problemi di PLin forma canonica, in cui l’obiettivo e sempre da massimizzare, i vincolisono tutti di ≤ e le variabili sono tutte vincolate ad assumere valori nonnegativi, cioe

max∑n

j=1 cjxj∑n

j=1 aijxj ≤ bi i = 1, . . . ,m

xj ≥ 0 j = 1, . . . , n

Possiamo anche scrivere il problema di PL in forma canonica in forma piucompatta introducendo vettori e matrici. Qui e nel seguito indicheremo ivettori con lettere minuscole in grassetto e le matrici con lettere maiuscolein grassetto. Indichiamo con:

• c ∈ Rn il vettore di dimensione n con componenti cj , j = 1, . . . , n,ovvero:

c = (c1 c2 · · · cn);

• x ∈ Rn il vettore di variabili di dimensione n con componenti xj ,j = 1, . . . , n, ovvero:

x = (x1 x2 · · · xn);

• ai ∈ Rn, i = 1, . . . ,m, gli m vettori di dimensione n con componentiaij , j = 1, . . . , n, ovvero:

ai = (ai1 ai2 · · · ain).

Recuperando alcune cose di algebra lineare, ricordiamo che dati due vettoridella stessa dimensione n, indicati con p = (p1 · · · pn) e q = (q1 · · · qn),

9

Page 11: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

il prodotto scalare tra questi vettori e definito come somma dei prodottidelle singole componenti, ovvero:

pq =n∑

j=1

pjqj .

Un’importante proprieta del prodotto scalare e la seguente. Siano p,q1,q2 ∈Rn e α, β ∈ R. Allora:

p(αq1 + βq2) = α(pq1) + β(pq2)

Possiamo anche generalizzare questa proprieta. Infatti, dati i vettori p,q1,q2, . . . ,qt ∈Rn e gli scalari α1, α2, . . . , αt ∈ R, si ha che

p[α1q1 + α2q2 + · · · + αtqt] = p

[t∑

i=1

αiqi

]

=

t∑

i=1

αi(pqi).

Si ricordano infine le definizioni di prodotto di matrice per vettore e divettore per matrice. Data una matrice A di ordine m × n (m righe e ncolonne)

a11 . . . a1n

......

...am1 . . . amn

ed un vettore p di dimensione n

p = (p1 · · · pn)

Il prodotto matrice-vettore e un vettore di dimensione m la cui componentei e il prodotto scalare tra la i-esima riga di A e il vettore p:

n∑

j=1

aijpj

Data una matrice A di ordine m × n (m righe e n colonne)

a11 . . . a1n

......

...am1 . . . amn

ed un vettore q di dimensione m

q = (q1 · · · qm)

10

Page 12: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Il prodotto vettore-matrice e un vettore di dimensione n la cui componentej e il prodotto scalare tra la j-esima colonna di A e il vettore q:

m∑

i=1

aijqi

Tenuto conto di tutto questo possiamo riscrivere il problema di PL in formacanonica nella seguente forma:

max cx

aix ≤ bi i = 1, . . . ,m

x ≥ 0

Possiamo ulteriormente compattare la rappresentazione con l’introduzionedella matrice A ∈ Rm×n che ha tante righe quanti sono i vincoli del proble-ma (m) e la cui i-esima riga e il vettore ai e del vettore b = (b1 · · · bm) ∈Rm di dimensione m con componenti bi, i = 1, . . . ,m. Con l’introduzione diquesti possiamo riscrivere il problema di PL in forma canonica nel seguentemodo:

max cx

Ax ≤ b

x ≥ 0

Se apparentemente i problemi di PL in forma canonica rappresentano unsottinsieme dei problemi di PL, e in realta possibile dimostrare che ogniproblema di PL ha un problema di PL in forma canonica ad esso equivalente,come dimostra la seguente osservazione.

Osservazione 1 Dato un problema di PL, esiste un problema di PL informa canonica ad esso equivalente.

Dimostrazione Si puo notare che

1. ogni problema di minimo puo essere trasformato in un problema dimassimo sfruttando la seguente relazione

min cx = −max−cx

2. ogni vincolo di ≥ puo essere trasformato in un vincolo di ≤ nel modoseguente

aix ≥ bi ⇒ −aix ≤ −bi

11

Page 13: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

3. ogni vincolo di = puo essere trasformato in due vincoli di ≤ nel modoseguente

aix = bi ⇒ aix ≤ bi, −aix ≤ −bi

4. se abbiamo una variabile xj ≤ 0 possiamo sostituirla nei vincoli enell’obiettivo con la variabile

x′j = −xj ≥ 0

5. se abbiamo una variabile xj libera in segno, possiamo sostituirla neivincoli e nell’obiettivo con una differenza di variabili non negative

xj = x′j − x′′

j x′j , x

′′j ≥ 0

Come esercizio, si trasformi il seguente problema di PL in un problema diPL in forma canonica

min x1 + x2 + x3

x1 + 2x2 − x3 ≤ 3

x1 + 4x2 + 5x3 = 5

x1 − 2x2 + x3 ≥ 3

x1 ≥ 0

x2 ≤ 0

x3 libera in segno

Il risultato appena citato ci consente di concentrare la nostra attenzione suisoli problemi di PL in forma canonica.

2.3 La regione ammissibile Sa

La regione ammissibile di un problema di PL in forma canonica e definitanel modo seguente:

Sa = {x ∈ Rn : aix ≤ bi, i = 1, . . . ,m, x ≥ 0}.

Dobbiamo ora introdurre alcune definizioni.

Definizione 1 Un insieme C ⊆ Rn si dice convesso se

∀ x1,x2 ∈ C ∀ λ ∈ [0, 1] : λx1 + (1 − λ)x2 ∈ C,

ovvero se dati due punti qualsiasi in C, il segmento che li congiunge eanch’esso completamente contenuto in C.

12

Page 14: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Definizione 2 Un insieme C si dice limitato se esiste un R > 0 tale che

∀ x ∈ C : ‖x‖ ≤ R,

ovvero l’insieme C e contenuto in una sfera di raggio R.

Definizione 3 Un insieme C si dice chiuso se contiene la sua frontiera.

Definizione 4 Si definisce semispazio in Rn l’insieme di punti che soddisfauna disequazione lineare in Rn:

n∑

j=1

wjxj ≤ v

(in forma vettoriale: wx ≤ v). Si definisce iperpiano in Rn l’insieme dipunti che soddisfa un’equazione lineare in Rn:

n∑

j=1

wjxj = v

(in forma vettoriale: wx = v).

Definizione 5 Si definisce poliedro l’intersezione di un numero finito disemispazi e/o iperpiani. Se il poliedro e limitato esso viene chiamato poli-topo.

Questo ci dice che la regione ammissibile Sa di un problema di PL e unpoliedro. Si noti che ogni iperpiano e ogni semispazio sono insiemi chiusi.Poiche un intersezione di un numero finito di insiemi chiusi e un insiemechiuso, ogni poliedro e un insieme chiuso. In problemi con 2 sole variabili epossibile rappresentare graficamente le regioni ammissibili Sa. Nel seguenteesempio, la rappresentazione grafica ci consentira di visualizzare le diverseforme possibili di Sa.

Esempio 1 Rappresentare graficamente le regioni ammissibili Sa per i se-guenti tre problemi e constatare che sono altrettanti esempi di regione am-missibile vuota, di politopo e di poliedro illimitato.

max x1 + x2

x1 ≤ −1

x1 + x2 ≤ 1

x1, x2 ≥ 0

13

Page 15: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

max x1 + x2

x1 + x2 ≤ 1

x1, x2 ≥ 0

max x1 + x2

x1 − x2 ≤ 0

x1, x2 ≥ 0

La seguente osservazione ci mostra anche che la regione ammissibile Sa di unproblema in forma canonica e un insieme convesso (il risultato e facilmenteestendibile ad ogni poliedro).

Osservazione 2 La regione ammissibile Sa di un problema di PL in formacanonica e un insieme convesso.

Dimostrazione Siano dati due generici punti x1,x2 ∈ Sa. Si avra:

aix1 ≤ bi i = 1, . . . ,m x1 ≥ 0,

e

aix2 ≤ bi i = 1, . . . ,m x2 ≥ 0.

Quindi, per ogni λ ∈ (0, 1) e per ogni i ∈ {1, . . . ,m} avremo:

ai[λx1 + (1 − λ)x2] = λaix1 + (1 − λ)aix2 ≤ λbi + (1 − λ)bi = bi,

e

λ︸︷︷︸

>0

x1︸︷︷︸

≥0

+(1 − λ)︸ ︷︷ ︸

>0

x2︸︷︷︸

≥0

≥ 0,

da cui

λx1 + (1 − λ)x2 ∈ Sa.

Cio equivale a dire che Sa e un insieme convesso.

Vediamo ora di introdurre la definizione di alcuni particolari punti di Sa, ivertici di Sa.

Definizione 6 Si definisce vertice di Sa un punto x ∈ Sa tale che nonesistono due punti distinti x1,x2 ∈ Sa, x1 6= x2, tali che

x =1

2x1 +

1

2x2.

14

Page 16: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

In problemi con 2 variabili i vertici sono facilmente identificabili, coinciden-do con la usuale definizione di vertice di una figura piana.

Esempio 2 Si verifichi che, dato il problema

max x1 + x2

x1 + x2 ≤ 1

−2x1 − 2x2 ≤ −2

x1, x2 ≥ 0

il punto (1/2, 1/2) non e un vertice di Sa mentre lo e il punto (1, 0)

Un primo importante teorema per la PL e il seguente.

Teorema 1 Dato un problema di PL in forma canonica, se Sa 6= ∅, alloraSa contiene almeno un vertice.

Si puo inoltre dimostrare la seguente osservazione.

Osservazione 3 Sa ha sempre un numero finito di vertici.

Nel caso Sa sia un poliedro illimitato possiamo anche introdurre le defini-zioni di raggio e raggio estremo.

Definizione 7 Si definisce raggio di Sa un vettore r tale che

∀ x0 ∈ Sa ∀ λ ≥ 0 : x0 + λr ∈ Sa,

cioe la semiretta con origine in x0 e direzione r e completamente contenutain Sa per qualsiasi punto x0 ∈ Sa. Un raggio r di Sa si definisce raggioestremo di Sa se non esistono altri due raggi r1 e r2 di Sa con direzionidistinte, ovvero

r1 6= µr2 ∀ µ ∈ R,

tali che

r =1

2r1 +

1

2r2.

Ovviamente i politopi non hanno alcun raggio. Infatti l’esistenza di unraggio implica che Sa contenga almeno una semiretta, che e un insiemeillimitato, mentre i politopi sono, per definizione, insiemi limitati. Anchein questo caso in problemi con 2 sole variabili e facile riconoscere i raggiestremi, che coincidono con le semirette che delimitano la figura piana.

15

Page 17: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Esempio 3 Si verifichi che dato il problema

max x1 + x2

x1 − x2 ≤ 0

x1, x2 ≥ 0

i vettori

(1/2, 1) (0, 1) (1, 1)

sono tutti raggi di Sa ma solo gli ultimi due sono raggi estremi.

Come per i vertici, anche per i raggi estremi si puo dimostrare che il loronumero e sempre finito.

Osservazione 4 Sa ha sempre un numero finito di raggi estremi.

Siamo ora pronti per enunciare un importante teorema che mostra che laregione ammissibile Sa di un problema di PL in forma canonica e com-pletamente caratterizzata dai suoi vertici e raggi estremi , il teorema dirapprsentazione per Sa.

Teorema 2 Sia dato un problema di PL in froma canonica con Sa 6=∅. Siano v1, . . . ,vk i vertici di Sa e, nel caso in cui Sa sia un poliedroillimitato, siano r1, . . . , rh i raggi estremi di Sa. Allora

x ∈ Sa

se e solo se

∃ λ1, . . . , λk ≥ 0,

k∑

i=1

λi = 1, ∃ µ1, . . . , µh ≥ 0

tali che

x =

k∑

i=1

λivi +

h∑

j=1

µjrj .

Il teorema ci dice che tutti e soli i punti di Sa sono ottenibili come sommadi una combinazione convessa (combinazione lineare con coefficienti nonnegativi e la cui somma e pari a 1) dei vertici di Sa e di una combinazionelineare con coefficienti non negativi dei raggi estremi di Sa.

16

Page 18: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

2.4 L’insieme delle soluzioni ottime Sott

Fino a questo momento ci siamo limitati a considerare la regione ammis-sibile Sa di un problema di PL. Ricordiamo pero che il nostro scopo edeterminare una soluzione ottima del problema di PL. Quindi dobbiamotrovare almeno un punto all’interno dell’insieme:

Sott = {x∗ ∈ Sa : cx∗ ≥ cx ∀ x ∈ Sa},detto insieme delle soluzioni ottime del problema. Notiamo immediata-mente che Sott ⊆ Sa, il che banalmente implica che se Sa = ∅, allora ancheSott = ∅. Inoltre, si dimostra la seguente osservazione.

Osservazione 5 Se Sott e un insieme finito e non vuoto, Sott contiene unsolo punto.

Dimostrazione Ragioniamo per assurdo. Supponiamo che Sott sia uninsieme finito e contenga piu di un punto. Siano x1,x2 ∈ Sott, x1 6= x2,due punti distinti di Sott. Si dovra avere cx1 = cx2. Per la convessita diSa si ha che tutti i punti:

λx1 + (1 − λ)x2 λ ∈ (0, 1),

(i punti lungo il segmento che congiunge x1 e x2), appartengono a Sa.Inoltre, la linearita della funzione obiettivo implica:

c[λx1+(1−λ)x2] = λcx1+(1−λ)cx2 = λcx1+(1−λ)cx1 = cx1 ∀ λ ∈ (0, 1).

Ma allora tutto il segmento che congiunge x1 e x2 e contenuto in Sott.Essendo tale insieme costituito da un numero infinito di punti, questo con-traddice l’ipotesi di finitezza dell’insieme Sott.

Prima di addentrarci nell’analisi di Sott introduciamo un metodo di tipografico che ci consentira di determinare Sott nel caso di problemi con duesole variabili. Nonostante la limitata applicabilita di questo metodo dirisoluzione (i problemi reali hanno tipicamente molto piu di due sole varia-bili), esso ci consentira di visualizzare facilmente le diverse possibili formedell’insieme Sott.

2.4.1 Metodo di risoluzione grafica

Per descrivere la risoluzione grafica consideriamo il seguente esempio:

max x1 + 2x2

x1 + x2 ≤ 1

x1, x2 ≥ 0

17

Page 19: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Per prima cosa disegniamo la regione ammissibile Sa. Poi prendiamo lafunzione obiettivo e poniamola uguale a 0, cioe consideriamo cx = 0 nelcaso generale e x1 +2x2 = 0 nell’esempio. Questa e una retta che passa perl’origine che contiene tutti i punti in R2 con valore della funzione obiettivopari a 0. Ora voglio individuare qual e la direzione di crescita del fascio dirette

cx = k, k ∈ R

parallele alla retta cx = 0 passante per l’origine. Nell’esempio avremo

x1 + 2x2 = k, k ∈ R

fascio di rette parallele a x1 + 2x2 = 0. Possiamo individuare la direzionedi crescita per esempio tracciando la retta cx = 1 (quindi x1 + 2x2 = 1nel nostro esempio) e la direzione di crescita sara quella che va dalla rettacx = 0 verso la retta cx = 1. In Figura 2.1 la direzione di crescita per ilnostro esempio e indicata con una freccia sulla retta x1 +2x2 = 0. A questo

@@

@@

@@

@@

@@

@@

@@

@@

HHHHHHHHHHHHHHHHHHHHH

­­

Sa

x1+2x2=0

O

A

B (0,1)

(1,0)

Figura 2.1:

punto sono possibili due casi:

18

Page 20: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Caso 1 Muovendomi dalla retta cx = 0 verso la direzione di crescita hoalmeno una retta del fascio con intersezione non vuota con Sa. In talcaso abbiamo due sottocasi possibili.

Caso 1.1 Esiste un valore k tale che la retta cx = k ha intersezionenon vuota con Sa mentre tutte le retta cx = k per k > k hannointersezione vuota con Sa. In tal caso k e il valore ottimo delproblema e l’intersezione della retta cx = k con Sa costituiscel’insieme Sott.

Caso 1.2 Esiste un K ≥ 0 tale che per ogni k ≥ K la retta cx = kha intersezione non vuota con Sa. In tal caso ci troviamo nellasituazione in cui Sott = ∅ in quanto il problema ha obiettivoillimitato.

Caso 2 Muovendomi dalla retta cx = 0 verso la direzione di crescita nonho alcuna retta del fascio con intersezione non vuota con Sa. In talcaso mi muovo nella direzione di decrescita e mi arresto con la primaretta cx = k (k < 0) che ha intersezione non vuota con Sa (quindiper ogni k > k si ha che la retta cx = k ha intersezione vuota conSa). Il valore k e il valore ottimo del problema e l’intersezione dellaretta cx = k con Sa rappresenta l’insieme Sott.

Nel nostro esempio si puo vedere che ci si trova nel Sottocaso 1.1 con k = 2e Sott ristretto al solo punto B di coordinate (0, 1).

2.4.2 Le diverse forme possibili di Sott

Siamo ora pronti a individuare tutte le forme possibili di Sott al variare diSa.

Caso 1 Sa = ∅. In tal caso, essendo Sott un sottinsieme di Sa, puo soloessere Sott = ∅.

Caso 2 Sa 6= ∅ e politopo. Un politopo e un insieme chiuso e limitato,mentre la funzione obiettivo e lineare e quindi certamente continua.Di conseguenza, il Teorema di Weierstrass garantisce l’esistenza dialmeno una soluzione ottima, ovvero Sott 6= ∅. Sono possibili duesottocasi.

Caso 2.1 Sott e costituito da un solo punto.

Caso 2.2 Sott e costituito da un insieme infinito e limitato di punti.

Si noti che l’Osservazione 5 esclude la possibilita di un numero finito emaggiore di 1 di punti in Sott, mentre la limitatezza di Sott e garantita

19

Page 21: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

dal fatto che e un sottinsieme di Sa che a sua volta e un politopo equindi e limitato.

Caso 3 Sa 6= ∅ e poliedro illimitato. Sono possibili quattro sottocasi.

Caso 3.1 Sott = ∅ in quanto l’obiettivo e illimitato, ovvero esisteuna sequenza infinita di punti {xk} di Sa lungo cui la funzioneobiettivo cresce a +∞. Formalmente:

∃ {xk} : xk ∈ Sa ∀ k e cxk → +∞ k → +∞.

Caso 3.2 Sott e costituito da un solo punto.

Caso 3.3 Sott e costituito da un insieme infinito e limitato di punti.

Caso 3.4 Sott e costituito da un insieme infinito e illimitato di punti.

Come esercizio si applichi ora la risoluzione grafica ai seguenti esempi rico-noscendo in essi molti dei casi possibili per Sott precedentemente elencati.

max x1 + x2

x1 + x2 ≤ 1

x1, x2 ≥ 0

max x1 + x2

−x1 + x2 ≤ 0

x1 − x2 ≤ 1

x2 ≥ 1

x1, x2 ≥ 0

max −x1

−x1 + x2 ≤ 0

x1 − x2 ≤ 1

x2 ≥ 1

x1, x2 ≥ 0

max −x2

−x1 + x2 ≤ 0

x1 − x2 ≤ 1

x2 ≥ 1

x1, x2 ≥ 0

20

Page 22: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

max x1 − x2

−x1 + x2 ≤ 0

x1 − x2 ≤ 1

x2 ≥ 1

x1, x2 ≥ 0

2.5 Il Teorema Fondamentale della PL

La risoluzione grafica dei precedenti esempi mostra anche che, quandoSott 6= ∅, tale insieme contiene sempre almeno un vertice. Non e un caso.Vale infatti un teorema molto importante noto come Teorema Fondamen-tale della Programmazione Lineare. Prima di dimostrare questo abbiamobisogno di dimostrare un lemma.

Lemma 1 Dato un problema di PL in forma canonica, se Sott 6= ∅, alloraper ogni raggio estremo r di Sa si ha:

cr ≤ 0.

Dimostrazione La dimostrazione e per assurdo. Supponiamo infatti cheesista un raggio estremo r tale che

cr > 0 (2.1)

Notiamo che Sott 6= ∅ implica Sa 6= ∅. Sia allora x0 ∈ Sa. Poiche r e unraggio, in base alla Definizione 7 di raggio avremo che

∀ λ ≥ 0 : x0 + λr ∈ Sa.

Calcoliamo ora il valore della funzione obiettivo nei punti x0 + λr:

c(x0 + λr) = cx0 + λcr

Ma, in base a (2.1) possiamo concludere che

c(x0 + λr) → +∞ λ → +∞,

cioe Sott = ∅ in quanto l’obiettivo e illimitato sulla regione ammissibile, ilche contraddice Sott 6= ∅.

Si noti che la dimostrazione del lemma ci dice anche che qualora esistaun raggio estremo r di Sa tale che cr > 0, allora il problema ha obietti-vo illimitato. Si puo dimostrare anche il viceversa, cioe se il problema haobiettivo illimitato, allora esiste sicuramente un raggio estremo r di Sa taleche cr > 0. Siamo ora pronti a dimostrare il Teorema Fondamentale dellaPL.

21

Page 23: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Teorema 3 Dato un problema di PL in forma canonica, se Sott 6= ∅, alloraSott contiene almeno un vertice di Sa.

Dimostrazione Indichiamo con v1, . . . ,vk i vertici di Sa e, nel caso in cuiSa sia un poliedro illimitato, indichiamo con r1, . . . , rh i raggi estremi diSa. Se Sott 6= ∅, sia x∗ ∈ Sott.Utilizzeremo una dimostrazione per assurdo. Per assurdo supponiamo che

v1, . . . ,vk 6∈ Sott

cioe supponiamo che nessun vertice di Sa appartenga a Sott. In particolareavremo

cvi < cx∗ i = 1, . . . , k (2.2)

In base al Teorema 2, poiche x∗ ∈ Sa avremo che

∃ λ∗1, . . . , λ

∗k ≥ 0,

k∑

i=1

λ∗i = 1, ∃ µ∗

1, . . . , µ∗h ≥ 0 (2.3)

tali che

x∗ =

k∑

i=1

λ∗i vi +

h∑

j=1

µ∗jrj .

Quindi avremo

cx∗ = c

k∑

i=1

λ∗i vi +

h∑

j=1

µ∗jrj

e per la linearita della funzione obiettivo

cx∗ =

k∑

i=1

λ∗i (cvi) +

h∑

j=1

µ∗j (crj).

Nel Lemma 1 abbiamo dimostrato che:

crj ≤ 0 j = 1, . . . , h. (2.4)

Ora, in base a (2.3) e (2.4) avremo

cx∗ =

k∑

i=1

λ∗i (cvi) +

h∑

j=1

µ∗j

︸︷︷︸

≥0

(crj)︸ ︷︷ ︸

≤0

.

da cui

cx∗ ≤k∑

i=1

λ∗i (cvi).

22

Page 24: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Ma ora possiamo sfruttare (2.2):

cx∗ ≤k∑

i=1

λ∗i (cvi)︸ ︷︷ ︸

<cx∗

<k∑

i=1

λ∗i (cx

∗).

(si noti che lo strettamente minore vale perche almeno uno dei λ∗i e stret-

tamente positivo in quanto, in base a (2.3), la loro somma deve essere paria 1). Poiche cx∗ non dipende dall’indice i della sommatoria, lo possiamoportare fuori dalla stessa e quindi

cx∗ < (cx∗)k∑

i=1

λ∗i .

Ma ora in base a (2.3) abbiamo che∑k

i=1 λ∗i = 1, da cui

cx∗ < cx∗

il che e assurdo.

Questo risultato e alla base della procedura di risoluzione che descrive-remo, l’algoritmo del simplesso. Infatti, tale algoritmo ricerca la soluzioneottima cercando di spostarsi ad ogni iterazione in modo intelligente da unvertice all’altro di Sa. Per modo intelligente si intende che l’algoritmo ten-ta di spostarsi ad una data iterazione da un vertice a uno con valore dellafunzione obiettivo maggiore.

2.6 Preparazione al metodo del simplesso

Sappiamo che il nostro scopo e trovare almeno un punto in Sott oppurestabilire che Sott = ∅ in quanto anche Sa = ∅ oppure perche l’obiettivo delproblema di PL e illimitato. Dobbiamo allora individuare un metodo checi consenta di raggiungere il nostro scopo. Abbiamo gia incontrato un talemetodo, quello di risoluzione grafica, la cui applicabilita e pero ristretta aisoli problemi con due variabili. Quello che vogliamo ora e un metodo chepossa essere applicato con un numero qualsiasi di variabili. Questo metodosara il metodo del simplesso. Prima pero di arrivare a descriverlo avremobisogno di alcuni passaggi intermedi.

2.6.1 I problemi di PL in forma standard

I problemi di PL in forma standard hanno la seguente formulazione:

max cx

23

Page 25: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

aix = bi i = 1, . . . ,m

x ≥ 0

o, equivalentemente, in forma matriciale:

max cx

Ax = b

x ≥ 0

dove A e la matrice la cui i-esima riga e il vettore ai e b e il vettore la cuii-esima componente e bi. Rispetto alla forma canonica cambia solamenteil fatto che i vincoli non sono piu di ≤ ma sono di uguaglianza. Vale laseguente osservazione.

Osservazione 6 Ogni problema di PL in forma canonica puo essere tra-sformato in uno equivalente in forma standard.

Dimostrazione Sia dato il problema di PL in forma canonica

max cx

aix ≤ bi i = 1, . . . ,m

x ≥ 0

Con l’aggiunta di una nuova variabile yi per ogni vincolo aix ≤ bi, possiamoesprimere tale vincolo attraverso la seguente coppia di vincoli:

aix + yi = bi, yi ≥ 0.

Quindi, il problema di PL in forma canonica e equivalente al seguente:

max cx

aix + yi = bi i = 1, . . . ,m

x ≥ 0

yi ≥ 0 i = 1, . . . ,m

che e in forma standard (vincoli di uguaglianza e variabili non negative).

Avendo gia dimostrato in precedenza che ogni problema di PL puo es-sere ricondotto ad uno equivalente in forma canonica, l’osservazione sopraci dice anche che ogni problema di PL puo essere ricondotto ad uno equi-valente in forma standard.

24

Page 26: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Riguardo la matrice A ∈ Rm×n con i-esima riga ai, nel seguito faremosempre la seguente ipotesi: la matrice A ha rango pari a m, il numerodelle sue righe.

Si noti che deve necessariamente essere m ≤ n (per n < m il rango di A

potrebbe essere al piu n e non potrebbe essere pari a m). Si puo dimostrareche anche questa non e una condizione restrittiva e che ci si puo semprericondurre ad essa. Inoltre la condizione e equivalente alle seguenti:

• non ci sono righe di A ottenibili come combinazioni lineari di altrerighe di A;

• esistono m colonne della matrice A che formano una matrice quadratainvertibile.

NB: Si puo dimostrare che anche questa non e una condizione restrittiva eche ci si puo sempre ricondurre ad essa. La seguente matrice

A1 =

1 2 1 32 1 3 43 0 5 5

ha rango < m = 3, in quanto la terza riga puo essere ottenuta come combi-nazione lineare della prima e della seconda rispettivamente con coefficientipari a −1 e +2. Invece la matrice

A2 =

[1 2 2 1 −13 7 1 3 1

]

ha rango pari a m = 2 (le prime due colonne, ad esempio, formano unamatrice invertibile).

2.6.2 Basi e soluzioni di base

Un concetto importante e quello di base di un problema di PL in formastandard.

Definizione 8 Si definisce base di un problema di PL in forma standardun sottinsieme:

B = {xi1 , . . . , xim}

di m delle n variabili del problema di PL con la proprieta che la matri-ce AB ∈ Rm×m ottenuta considerando le sole colonne di A relative allevariabili xik

, k = 1, . . . ,m, sia invertibile. Le variabili dell’insieme B ver-ranno dette variabili in base, quelle al di fuori di B verranno raggruppatenell’insieme:

N = {xim+1, . . . , xin

}e verranno dette variabili fuori base.

25

Page 27: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Esempio 4 Sia dato il seguente problema di PL in forma standard:

max 3x1 + 4x2 + 2x3 + 2x4 + x5

x1 + 2x2 + 2x3 + x4 − x5 = 2

x1 + 2x2 + x3 + 4x4 − 2x5 = 2

x1, x2, x3, x4, x5 ≥ 0

In questo caso si hanno due vincoli e quindi m = 2. Se prendiamo B1 ={x1, x2} vediamo che B1 non e una base. Si ha infatti:

AB1=

[1 21 2

]

che non e invertibile. Invece, B2 = {x1, x3} e una base in quanto:

AB2=

[1 21 1

]

e invertibile. Allo stesso modo si verifichi che B3 = {x3, x4} e B4 ={x4, x5} sono basi.

Introduciamo ora il concetto di soluzione di base. Data una base B, indi-chiamo con

• xB ∈ Rm il vettore delle variabili in base;

• xN ∈ Rn−m il vettore delle variabili fuori base;

• cB ∈ Rm il vettore dei costi relativi alle variabili in base;

• cN ∈ Rn−m il vettore dei costi relativi alle variabili fuori base;

• AN ∈ Rm×(n−m) la matrice ottenuta da A considerando le solecolonne relative alle variabili fuori base.

Possiamo ora riscrivere il problema di PL in forma standard nella seguenteforma equivalente:

max cBxB + cNxN

ABxB + ANxN = b

xB ,xN ≥ 0

e quindi anche in questo modo:

max cBxB + cNxN

ABxB = b − ANxN

xB ,xN ≥ 0

26

Page 28: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Moltiplichiamo ora i vincoli per A−1B . Si ottiene:

max cBxB + cNxN

xB = A−1B b − A−1

B ANxN

xB ,xN ≥ 0

Infine, sostituendo xB nell’obiettivo si ottiene la seguente ulteriore riformu-lazione, sempre equivalente alle precedenti:

max cBA−1B b + (cN − cBA−1

B AN )xN

xB = A−1B b − A−1

B ANxN (2.5)

xB ,xN ≥ 0

Questa riformulazione viene detta riformulazione del problema di PL ri-spetto alla base B. Siamo ora pronti a dare la definizione di soluzione dibase.

Definizione 9 Si definisce soluzione di base associata alla base B, la se-guente soluzione ottenuta ponendo xN = 0 nei vincoli in (2.5):

xB = A−1B b xN = 0.

Se A−1B b ≥ 0 la soluzione di base si dice ammissibile. Se inoltre si ha

A−1B b > 0 si parla di soluzione di base non degenere, altrimenti si parla di

soluzione di base degenere.

Ma vediamo di tornare all’Esempio 4.

Esempio 5 Data la base B2 dell’Esempio 4, si ha

A−1B2

=

[−1 2

1 −1

]

AN2=

[2 1 −12 4 −2

]

cB2= (3 2) cN2

= (4 2 1)

b = (2 2)

da cui si ottiene la seguente riformulazione rispetto alla base B2:

max 6 − 2x2 − 13x4 + 8x5

x1 = 2 − 2x2 − 7x4 + 3x5

x3 = 0 + 3x4 − x5

x1, x2, x3, x4, x5 ≥ 0

27

Page 29: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Ponendo a 0 le variabili fuori base si ottiene la seguente soluzione di baseassociata a B2:

x1 = 2 x3 = 0 x2 = x4 = x5 = 0.

La soluzione di base e ammissibile (tutte le variabili hanno valore non ne-gativo) e degenere (la variabile in base x3 ha valore nullo). Il valore dell’o-biettivo in corrispondenza di tale soluzione di base e 6 (lo si vede ponendoa 0 le variabili fuori base nell’obiettivo).In modo analogo si dimostri che la soluzione di base associata a B3 ={x3, x4} e:

x3 = 6/7 x4 = 2/7 x1 = x2 = x5 = 0,

che e ammissiibile e non degenere e che la soluzione di base associata aB4 = {x4, x5} e:

x4 = −1 x5 = −3 x1 = x2 = x3 = 0,

che e non ammissibile.

Vale la seguente osservazione.

Osservazione 7 Data una soluzione di base ammissibile e non degene-re esiste un’unica base che la rappresenta, mentre una soluzione di baseammissibile e degenere e rappresentata da piu basi.

Si verifichi, ad esempio, che la base B5 = {x1, x4} ha come soluzione dibase associata:

x1 = 2 x4 = 0 x2 = x3 = x5 = 0,

che e la stessa associata alla base B2.

In precedenza abbiamo stabilito che, se Sott 6= ∅, allora almeno un pun-to di Sott e un vertice di Sa, il che ci consente di restringere la ricerca dellesoluzioni ottime ai soli vertici di Sa. Ma cosa ha a che fare tutto questo conle basi e le soluzioni di base associate? La risposta ci viene dalla seguenteosservazione.

Osservazione 8 L’insieme dei vertici di Sa coincide con l’insieme dellesoluzioni di base ammissibili del problema di PL.

Quindi questo ci dice che possiamo indifferentemente parlare di vertici edi soluzioni di base ammissibili e possiamo ricercare soluzioni ottime delproblema restringendo l’attenzione alle sole soluzioni di base ammissibili.Diamo ora la definizione di basi adiacenti.

Definizione 10 Due basi B′ e B′′ si definiscono adiacenti se hanno m−1variabili uguali e differiscono per una sola variabile.

28

Page 30: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Nell’esempio le basi B3 e B4, che differiscono per una sola variabile, sonoadiacenti. Il concetto di adiacenza si estende anche alle soluzioni di base.

Definizione 11 Due soluzioni di base distinte si definiscono adiacenti seesistono due basi B′ e B′′ che le rappresentano e che sono tra loro adiacenti.

Si noti che due basi adiacenti non corrispondono necessariamente a duesoluzioni di base adiacenti. Esse infatti possono corrispondere alla stessasoluzione di base come accade, ad esempio, con le basi B2 e B5.

2.6.3 L’operazione di cardine

Vogliamo ora introdurre una procedura, detta operazione di cardine, checi consenta di passare dalla riformulazione del problema di PL rispetto aduna base B alla riformulazione rispetto ad una base adiacente B′. Sia datala base:

B = {xi1 , . . . , xim}.

SiaN = {xim+1

, . . . , xin}

l’insieme delle variabili fuori base. Abbiamo visto che, data la base B, lariformulazione del problema di PL rispetto alla base B e data da (2.5).Indicando con:

• γ0 il valore cBA−1B b;

• γj , j = 1, . . . , n − m, le componenti del vettore

cN − cBA−1B AN ;

• βr, r = 1, . . . ,m, le componenti del vettore A−1B b;

• αrj , r = 1, . . . ,m, j = 1, . . . , n − m, le componenti della matrice−A−1

B AN

possiamo riscrivere la riformulazione (2.5) rispetto alla base B nel seguentemodo:

max γ0 +∑n−m

j=1 γjxim+j

xi1 = β1 +∑n−m

j=1 α1jxim+j

· · ·xik

= βk +∑n−m

j=1 αkjxim+j(2.6)

· · ·xim

= βm +∑n−m

j=1 αmjxim+j

x1, . . . , xn ≥ 0

29

Page 31: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Supponiamo ora di voler passare dalla base B alla base adiacente B′ otte-nuta rimuovendo da B la variabile xik

, 1 ≤ k ≤ m, e sostituendola con lavariabile fuori base xim+h

, 1 ≤ h ≤ n − m, ovvero:

B′ = {xi1 , . . . , xik−1, xim+h

, xik+1, . . . , xim

}.

La prima domanda che ci dobbiamo porre e quando B′ e effettivamente unabase. Perche lo sia si deve avere che AB′ e invertibile. Tuttavia il seguenterisultato ci consente una verifica molto piu rapida.

Osservazione 9 Si ha che AB′ e invertibile e quindi B′ e una base se esolo se nella riformulazione associata alla base B il coefficiente di xim+h

nell’equazione relativa a xike diverso da 0, ovvero se e solo se:

αkh 6= 0.

Supposto che αkh 6= 0, vediamo ora di passare dalla riformulazione rispettoalla base B a quella rispetto alla base B′. Per fare questo dovremo compierele seguenti operazioni.

• Ricavare xim+hdall’equazione relativa a xik

, cioe:

xim+h= − βk

αkh

+1

αkh

xik−

n−m∑

j=1, j 6=h

αkj

αkh

xim+j. (2.7)

• sostituire ogni occorrenza della variabile xim+hnelle restanti equazioni

e nell’obiettivo con la parte destra di (2.7).

Una volta eseguite queste operazioni si ha la seguente riformulazione rispet-to a B′:

max(

γ0 − γhβk

αkh

)

+ γh

αkhxik

+∑n−m

j=1, j 6=h

(

γj − γhαkj

αkh

)

xim+j

xi1 =(

β1 − α1hβk

αkh

)

+ α1h

αkhxik

+∑n−m

j=1, j 6=h

(

α1j − α1hαkj

αkh

)

· · ·xim+h

= − βk

αkh+ 1

αkhxik

− ∑n−mj=1, j 6=h

αkj

αkhxim+j

. (2.8)

· · ·xim

=(

βm − αmhβk

αkh

)

+ αmh

αkhxik

+∑n−m

j=1, j 6=h

(

αmj − αmhαkj

αkh

)

x1, . . . , xn ≥ 0

NOTA BENE Per poter recuperare dalle riformulazioni alcune informa-zioni (nel seguito vedremo, ad esempio, come sfruttare la riformulazione

30

Page 32: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

rispetto a una base B per poter ottenere la matrice A−1B ) e necessario

mantenere un ordine tra le variabili in una base. Quindi se nella base B′

la variabile xim+hsostituisce la variabile xik

a cui corrisponde la k-esimaequazione della riformulazione rispetto a B, nella riformulazione rispetto aB′ l’equazione relativa alla variabile xim+h

dovra ancora essere la k-esima,mentre la posizione delle equazioni relative a tutte le altre variabili deverimanere invariata rispetto alla precedente riformulazione.

Vediamo ora di chiarire meglio come si esegue l’operazione di cardine ope-rando sul nostro esempio. Consideriamo la base B2. Come gia visto, lariformulazione rispetto a questa base e la seguente:

max 6 − 2x2 − 13x4 + 8x5

x1 = 2 − 2x2 − 7x4 + 3x5

x3 = 0 + 3x4 − x5

x1, x2, x3, x4, x5 ≥ 0

Supponiamo ora di voler passare alla riformulazione rispetto alla base adia-cente B6 = {x1, x5} ottenuta rimuovendo da B2 la variabile x3 e sostituen-dola con x5. Per prima cosa notiamo che il coefficiente di x5 nell’equazione:

x3 = 0 + 3x4 − x5

relativa a x3 e pari a −1 6= 0 e quindi B6 e una base in base all’Osserva-zione 9. Per prima cosa dobbiamo ricavare un’equazione per x5 partendodall’equazione per x3 riportata appena sopra. Si ottiene:

x5 = 0 − x3 + 3x4.

Quindi, dobbiamo sostituire a x5 nelle equazioni restanti e nell’obiettivo laparte destra di tale equazione. Avremo quindi nell’unica equazione restante:

x1 = 2 − 2x2 − 7x4 + 3(0 − x3 + 3x4),

e nell’obiettivo:6 − 2x2 − 13x4 + 8(0 − x3 + 3x4).

Svolgendo i calcoli la riformulazione rispetto a B6 sara la seguente:

max 6 − 2x2 − 8x3 + 11x4

x1 = 2 − 2x2 −−3x3 + 2x4

x5 = 0 − x3 + 3x4

x1, x2, x3, x4, x5 ≥ 0

31

Page 33: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Si noti che la posizione dell’equazione relativa a x5 nelle nuova riformulazio-ne e la stessa dell’equazione relativa a x3 nella precedente riformulazione,mentre la posizione delle equazioni relative alle altri variabili (in questocaso la sola x1) rimane invariata.Una volta chiarita l’operazione di cardine siamo pronti ad addentrarci nelprossimo capitolo nella descrizione del metodo del simplesso per risolvereproblemi di PL.

32

Page 34: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Capitolo 3

Il metodo del simplesso

Per la coincidenza tra vertici e soluzioni di base ammissibili, abbiamo vistoche possiamo restringere la ricerca delle soluzioni ottime alle sole soluzionidi base ammissibili. Per questa ragione il metodo del simplesso procede pas-sando ad ogni iterazione da una base ammissibile ad una adiacente ancoraammissibile fino a quando e sodisfatta una qualche condizione di termina-zione. Il passaggio da una base all’altra viene fatto in modo intelligente:dal momento che vogliamo massimizzare il nostro obiettivo, desideriamopassare da una base ammissibile con una certa soluzione di base associataad un’altra base ammissibile con una soluzione di base che ha valore del-l’obiettivo milgliore (piu elevato) o quanto meno non peggiore rispetto aquella precedente.Vedremo nel seguito come questo sia verificato. Supponiamo ora di avereuna base ammissibile B con la relativa riformulazione (2.6). Si noti che pro-blemi non banali sono stabilire se esiste una base ammissibile (o, equivalen-temente, stabilire se Sa 6= ∅) e, nel caso esista, determinarne una. Di questiproblemi ci occuperemo in seguito. Per il momento supponiamo di averegia a disposizione una base ammissibile B (ovvero βk ≥ 0, k = 1, . . . ,m, in(2.6).

Verifica di ottimalita

La prima domanda che ci poniamo e la seguente: quando possiamo direche la soluzione di base ammissibile associata a B e una soluzione ottimadel nostro problema? A questo proposito una particolare rilevanza han-no i coefficienti delle variabili fuori base nell’obiettivo della riformulazione(2.6). Questi vengono detti anche coefficienti di costo ridotto delle variabilifuori base e sono interpretabili come indicazione della variazione dell’obiet-

33

Page 35: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

tivo in corrispondenza dell’incremento di un’unita della variabile fuori ba-se corrispondente. Infatti, se consideriamo l’obiettivo della riformulazione(2.6):

γ0 +

n−m∑

j=1

γjxim+j,

supponiamo di tenere a 0 il valore di tutte le variabili fuori base trannela variabile xim+h

il cui valore viene incrementato a 1. Il nuovo valoredell’obiettivo e γ0 +γh con una variazione rispetto al valore γ0 pari proprioal valore γh del coefficiente di costo ridotto γh. Ma in che modo i coefficientidi costo ridotto ci possono dire se la soluzione di base associata alla base B euna soluzione ottima? Una condizione sufficiente per garantire l’ottimalitae la seguente:

γj ≤ 0 j = 1, . . . , n − m. (3.1)

Si richiede quindi che i coefficienti di costo ridotto delle variabili fuori basesiano tutti non positivi. Ricordando che γj sono le componenti del vettorecN − cBA−1

B AN (detto anche, per questa ragione, vettore dei coefficientidi costo ridotto), in forma vettoriale la condizone sufficiente di ottimalita(3.1) si esprime nel modo seguente:

cN − cBA−1B AN ≤ 0. (3.2)

Ma vediamo di capire perche la condizione (3.1) ci garantisce che la solu-zione di base associata a B e una soluzione ottima del problema. Sappiamoche il valore dell’obiettivo in corrispondenza di questa soluzione di base eγ0. Notiamo inoltre che in Sa si ha xim+j

≥ 0, j = 1, . . . , n − m. Quindiper il valore dell’obiettivo in Sa si avra:

γ0 +n−m∑

j=1

γj︸︷︷︸

≤0

xim+j︸ ︷︷ ︸

≥0

≤ γ0, (3.3)

ovvero in Sa il valore dell’obiettivo non puo mai superare il valore γ0. Es-sendo questo anche il valore dell’obiettivo per la nostra soluzione di base,tale soluzione di base e anche soluzione ottima del nostro problema.E importante sottolineare che la condizione e solo sufficiente, cioe puo suc-cedere che la soluzione di base sia gia una soluzione ottima ma la condi-zione (3.1) non sia soddisfatta. Cio pero puo accadere solo nel caso di unasoluzione di base degenere.

Esempio 6 Sia data la seguente riformulazione rispetto alla base {x3, x4}di un problema di PL:

max x1

34

Page 36: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

x3 = 1 − x2

x4 = −x1

x1, x2, x3, x4 ≥ 0

La soluzione di base corrispondente e:

x3 = 1 x4 = 0 x1 = x2 = 0.

Si noti che e degenere. La condizione (3.1) non e soddisfatta (il coefficientedi x1 nell’obiettivo e pari a 1). Ma passiamo ora, con l’operazione di car-dine, alla base adiacente {x1, x3}. La riformulazione rispetto a questa basee la seguente:

max −x4

x3 = 1 − x2

x1 = −x4

x1, x2, x3, x4 ≥ 0

Ora la condizione sufficiente e soddisfatta e quindi la soluzione di baseassociata e ottima. Ma se osserviamo la soluzione di base associata, questacoincide esattamente con la precedente.

Si puo comunque dimostrare che data una soluzione di base ottima esistesempre almeno una base corrispondente per la quale la condizione (3.1) esoddisfatta. Nell’esempio abbiamo visto come la stessa soluzione di base siarappresentata sia dalla base {x3, x4} che dalla base {x1, x3}. La prima basenon soddisfa la condizione (3.1), ma questa e soddisfatta dalla seconda base.Torneremo in seguito su un’altra questione e cioe quando possiamo dire cheil problema ammette un’unica soluzione ottima o piu soluzioni ottime.

Verifica di illimitatezza

Supponiamo ora che la condizione di ottimalita (3.1) non sia soddisfatta.Un’altra domanda che possiamo porci e la seguente: quando il problema havalore dell’obiettivo illimitato? Una condizione sufficiente perche questo siverifichi e la seguente:

∃ γh > 0 : αrh ≥ 0 r = 1, . . . ,m. (3.4)

Vediamo perche questa condizione ci garantisce che il problema ha obiettivoillimitato. Prendiamo la riformulazione (2.6) ed in essa poniamo a zero tutte

35

Page 37: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

le variabili fuori base tranne la variabile xim+h. Cio che rimane e:

max γ0 + γhxim+h

xi1 = β1 + α1hxim+h

· · ·xim

= βm + αmhxim+h

x1, . . . , xn ≥ 0

Cosa succede se faccio crescere il valore della variabile xim+h? Si ha che per

ogni r ∈ {1, . . . ,m}:

xir= βr

︸︷︷︸

≥0

+ α1h︸︷︷︸

≥0

xim+h︸ ︷︷ ︸

≥0

≥ 0,

quindi per ogni possibile valore non negativo di xim+hle variabili in base

continuano ad avere valore non negativo e quindi rimaniamo all’interno diSa. Ma vediamo ora cosa succede all’obiettivo:

γ0 + γh︸︷︷︸

>0

xim+h→

︸︷︷︸

xim+h→+∞

+∞,

e quindi facendo crescere xim+hall’infinito non si esce mai da Sa ed il valore

dell’obiettivo cresce anch’esso all’infinito. Ne consegue che il problema haSott = ∅ in quanto il valore dell’obiettivo e illimitato.

Esempio 7 Sia data la seguente riformulazione rispetto alla base {x1, x2}di un problema di PL:

max 2 + x3 − x4

x1 = 2 + x3 + x4

x2 = 1 + 2x3 + x4

x1, x2, x3, x4 ≥ 0

Il coefficiente di x3 nell’obiettivo e positivo e non negativi sono anche icoefficienti di x3 nelle equazioni dei vincoli. Quindi la condizione (3.4) esoddisfatta e possiamo concludere che il problema ha obiettivo illimitato.Infatti, se poniamo x4 = 0 il problema diventa:

max 2 + x3

x1 = 2 + x3

x2 = 1 + 2x3

x1, x2, x3, x4 ≥ 0

36

Page 38: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

da cui si nota che facendo crescere x3 i valori di x1 e x2 continuano a man-tenersi positivi (e quindi non si esce da Sa), mentre il valore dell’obiettivocresce a +∞.

Scelta della variabile da far entrare in base

Se, data la base ammissibile B, non possiamo concludere che la soluzione dibase associata e ottima (cioe non e soddisfatta la condizione (3.1)) e neppureche il problema ha obiettivo illimitato (cioe non e soddisfatta la condizione(3.4)), come possiamo procedere? Passeremo dalla base ammissibile Bad una nuova base ammissibile B′ ma facendo in modo che la soluzionedi base associata a B′ abbia valore dell’obiettivo migliore o quantomenonon peggiore rispetto al valore della soluzione di base associata a B. Perprima cosa individuiamo una regola per decidere come scegliere la variabilexim+h

fuori base che dovra entrare nella nuova base. Ricordiamo la formuladell’obiettivo:

γ0 +

n−m∑

j=1

γjxim+j.

Nella soluzione di base associata a B tutte le variabili xim+j, j = 1, . . . , n−

m, sono fissate a 0. Se vogliamo incrementare il valore dell’obiettivo, qualidi queste variabili dovremo far crescere dal valore 0? Dovremo far crescerequelle con coefficiente di costo ridotto γj positivo (facendo crescere le altreil valore dell’obiettivo diminuisce oppure non cambia). Quindi dobbiamorestringere l’attenzione alle sole variabili xim+j

tali che γj > 0. Qui adotte-remo la regola di scelta tra queste variabili che consiste nel scegliere quellache fa crescere piu rapidamente il valore dell’obiettivo e cioe la variabilexim+h

tale che:γh = max

j=1,...,n−mγj , (3.5)

tenendo comunque presente che questa non e l’unica regola possibile. Nelcaso il massimo sia raggiunto da piu variabili adottiamo (come pura conven-zione) la regola di selezionare la variabile con indice piu piccolo. Vediamoora un esempio.

Esempio 8 Sia data la seguente riformulazione rispetto alla base {x1, x2}di un problema di PL:

max 2 + 2x3 + 2x4 + x5

x1 = 1 − x3 + x4 + x5

x2 = 2 − x3 − x4 − x5

x1, x2, x3, x4, x5 ≥ 0

37

Page 39: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

In questo caso tutte le variabili fuori base hanno coefficiente di costo ridottopositivo. Tra queste considero quelle il cui coefficiente di costo ridotto emassimo (la x3 e la x4). Tra le due scelgo quella con indice minore e quindila x3. Quindi scegliamo la variabile fuori base x3 come nuova variabile dafar entrare in base.

Scelta della variabile uscente dalla base

Una volta scelta la variabile xim+hche dovra entrare in base, dobbiamo

stabilire quale variabile in base dovra farle posto, ovvero quale sara la va-riabile in base xik

che dovra uscire dalla base. Se la scelta della variabileche entra in base e guidata dal desiderio di far crescere il valore dell’obiet-tivo, la scelta della variabile uscente dalla base sara motivata dal desideriodi non uscire dalla regione ammissibile. Supponiamo come in precedenzadi fissare a 0 tutte le variabili fuori base tranne la xim+h

. Si avra dunque:

max γ0 + γhxim+h

xi1 = β1 + α1hxim+h

· · ·xim

= βm + αmhxim+h

x1, . . . , xn ≥ 0

Fino a quando possiamo far crescere il valore di xim+h? Abbiamo due casi:

Caso 1 Per tutti gli r ∈ {1, . . . ,m} tali che αrh ≥ 0 vediamo che:

xir= βr + αrh

︸︷︷︸

≥0

xim+h︸ ︷︷ ︸

≥0

≥ βr ≥ 0.

Quindi in questo caso non abbiamo alcuna restrizione sulla crescitadi xim+h

.

Caso 2 Per gli r tali che αrh < 0, allora vediamo che il valore di xim+h

puo crescere al massimo fino a:

− βr

αrh

e oltre questo valore la variabile xirassume valori negativi (si esce

quindi dalla regione ammissibile Sa).

Se vogliamo rimanere in Sa, ci dovremo arrestare non appena una variabilexir

con αrh < 0 si annulla al crescere di xim+h. Questa sara la variabile xik

tale che

αkh < 0 e − βk

αkh

= minr : αrh<0

{

− βr

αrh

}

. (3.6)

38

Page 40: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Nel caso il minimo sia raggiunto da piu variabili la scelta ricade, per con-venzione, su quella con indice piu piccolo. La variabile xik

sara quella cheuscira dalla base. Va ribadito come questa scelta garantisca che la nuova ba-se B′ ottenuta scambiando xik

con xim+hsia ancora ammissibile. Vediamo

ora quale sara la variabile uscente dalla base nell’esempio precedente.

Esempio 9 Ricordiamo la riformulazione rispetto alla base {x1, x2} delproblema di PL dell’esempio:

max 2 + 2x3 + 2x4 + x5

x1 = 1 − x3 + x4 + x5

x2 = 2 − x3 − x4 − x5

x1, x2, x3, x4, x5 ≥ 0

In precedenza abbiamo visto che la regola di scelta della variabile fuori baseche dovra entrare in base ci porta a scegliere la x3. Quale variabile dovrauscire dalla base? Sia la x1 che la x2 sono candidate (per entrambe ilcoefficiente di x3 nelle rispettive equazioni e negativo). Andiamo ora aprendere i rapporti, cambiati di segno, tra i termini noti delle equazioni e icoefficienti della x3. Abbiamo:

x1 → − 1

−1= 1 x2 → − 2

−1= 2.

Il minimo dei rapporti (pari a 1) e raggiunto in corrispondenza della va-riabile x1 e quindi questa sara la variabile che dovra uscire dalla base. Aconferma di cio notiamo che fissando a 0 tutte le variabili fuori base trannela x3 si ottiene:

max 2 + 2x3

x1 = 1 − x3

x2 = 2 − x3

x1, x2, x3, x4, x5 ≥ 0

e si puo vedere che per mantenersi in Sa (cioe per mantenere non negativele variabili in base x1 e x2) possiamo far crescere x3 al massimo fino alvalore 1. In corrispondenza di tale valore si annulla la variabile x1 e talevariabile sara quella che dovra uscire di base.

A questo punto, una volta selezionata la variabile entrante in base (la xim+h)

e quella uscente di base (la xik) con le regole viste, non resta che compiere

l’operazione di cardine nel modo gia descritto in precedenza. Vediamo diillustrare tale operazione per il nostro esempio.

39

Page 41: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Esempio 10 Nell’esempio x3 deve entrare in base e deve uscire x1. L’o-perazione di cardine porta alla seguente riformulazione rispetto alla nuovabase {x2, x3}:

max 4 − 2x1 + 4x4 + 3x5

x3 = 1 − x1 + x4 + x5

x2 = 3 + x1 − 2x4 − 2x5

x1, x2, x3, x4, x5 ≥ 0

Una volta eseguita l’operazione di cardine e passati alla nuova base B′

non si dovra fare altro che ripetere le operazioni viste sopra (verifica diottimalita, verifica di illimitatezza, scelta della variabile entrante in base,scelta della variabile uscente dalla base, operazione di cardine) sulla nuovabase B′. Possiamo quindi riassumere il metodo del simplesso attraverso ilseguente schema.

METODO DEL SIMPLESSO

Inizializzazione Sia B0 una base ammissibile e k = 0.

Passo 1- verifica ottimalita Se e soddisfatta la condizione (3.1) , la so-luzione di base associata a Bk e una soluzione ottima del problema eci si arresta. Altrimenti si vada al Passo 2.

Passo 2 - verifica di illimitatezza Se e soddisfatta la condizione (3.4),allora si ha Sott = ∅ in quanto l’obiettivo del problema e illimitato eci si arresta. Altrimenti si vada al Passo 3.

Passo 3 - scelta variabile entrante in base Si selezioni la variabile xim+h

che dovra entrare in base attraverso la regola (3.5).

Passo 4 - scelta variabile uscente dalla base Si selezioni la variabilexik

che dovra uscire dalla base attraverso la regola (3.6).

Passo 5 - operazione di cardine Si generi la nuova base Bk+1 sosti-tuendo in Bk la variabile xik

con la variabile xim+he si esegua la

corrispondente operazione di cardine. Quindi, si ponga k = k + 1 e siritorni al Passo 1.

Come esercizio si proceda nella risoluzione del problema dell’esempio.

Commenti sul metodo del simplesso

Vediamo ora di fare alcuni commenti sul metodo del simplesso.

40

Page 42: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Per prima cosa va puntualizzato che, anche se ampiamente utilizzato, ilmetodo del simplesso non e l’unico metodo per risolvere problemi di PL.Qui ci limitiamo a citare altri metodi di risoluzione per i problemi di PL,gli algoritmi del punto interno.

Notiamo poi, come gia fatto in precedenza, che abbiamo bisogno di partirecon una base ammissibile B0. Vedremo in seguito un metodo (il metododue fasi) che ci permettera di stabilire se esiste una base ammissibile per ilproblema e, nel caso esista, come ottenerla.

Partendo da una base B, abbiamo visto che la riformulazione rispetto al-la base B′ ottenuta attraverso l’operazione di cardine e data in (2.8). Daquesta si vede immediatamente che il valore dell’obiettivo nella soluzionedi base associata alla nuova base B′ e

γ0 − γh

βk

αkh

.

Quando applichiamo il metodo del simplesso abbiamo che:

• βk ≥ 0 per l’ammissibilita della soluzione di base associata a B.

• γh > 0 per la regola di scelta (3.5) della variabile entrante in base.

• αkh < 0 per la regola di scelta (3.6) della variabile uscente dalla base.

Quindi si ha:

γ0 − γh︸︷︷︸

>0

≥0︷︸︸︷

βk

αkh︸︷︷︸

<0

≥ γ0.

Questo ci conferma che il valore dell’obiettivo nella nuova soluzione di baseassociata a B′ e non peggiore rispetto al valore γ0 nella soluzione di baseassociata a B. Inoltre, nel caso βk > 0, il che si verifica sempre nel caso disoluzioni di base non degeneri, il nuovo valore dell’obiettivo e strettamentemigliore rispetto al precedente. Nel caso degenere puo invece succedereche i due valori siano uguali. In questo caso si puo dimostrare che le duebasi B e B′ rappresentano la stessa soluzione di base. Quanto visto ci dicequalcosa riguardo la finitezza del metodo del simplesso, come stabilito nellaseguente osservazione.

Osservazione 10 Se tutte le soluzioni di base ammissibili in un problemadi PL sono non degeneri, allora il metodo del simplesso termina in unnumero finito di iterazioni.

41

Page 43: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Dimostrazione Come abbiamo visto nel caso non degenere ad ogni ite-razione la nuova soluzione di base ammissibile ha un valore strettamentemigliore rispetto alla precedente e quindi e diversa da tutte quelle che lahanno preceduta, cioe tutte le soluzioni di base ammissibili associate allebasi B0, B1, B2, . . . sono distinte tra loro. Essendo il numero di soluzionidi base ammissibili finito (si ricordi che queste coincidono con i vertici chesono in numero finito), il metodo dovra arrestarsi dopo un numero finitodi iterazioni o restituendo una soluzione ottima oppure stabilendo che ilproblema ha obiettivo illimitato.

Ma cosa succede se ci sono delle soluzioni di base ammissibili degeneri?Nel caso ci siano vertici degeneri si puo verificare la situazione di ciclaggio.Trovandoci in un vertice degenere, l’algoritmo del simplesso puo generarela seguente sequenza di basi che rappresentano tutte questo stesso verticedegenere:

Bt → Bt+1 → · · · → Bt+r−1 → Bt+r = Bt.

Una volta tornato nella base Bt questa sequenza di basi verra di nuovoripetuta all’infinito senza che l’algoritmo termini. Anche se non le vedre-mo, esistono comunque delle regole particolari per la scelta delle variabilida far entrare e uscire di base, dette regole anticiclaggio, che consentonoall’algoritmo di terminare in un numero finito di iterazioni.

Soluzioni ottime uniche e multiple

Sia data la solita base B con la riformulazione (2.6). Nel caso in cui valgauna condizione piu forte rispetto alla condizione di ottimalita (3.1) e cioese vale:

γj < 0 j = 1, . . . ,m,

allora possiamo dire con certezza che la soluzione di base associata a B nonsolo e soluzione ottima del problema ma e anche l’unica soluzione ottimadel problema. Infatti, per il valore dell’obiettivo in Sa si avra:

γ0 +n−m∑

j=1

γj︸︷︷︸

<0

xim+j︸ ︷︷ ︸

≥0

≤ γ0,

ovvero in Sa il valore dell’obiettivo non puo mai superare il valore γ0 e puoessere uguale a γ0 solo se tutte le variabili xim+j

, j = 1, . . . , n − m, hannovalore nullo e cioe in corrispondenza della nostra soluzione di base. Quinditale soluzione di base e la sola soluzione ottima.Ma cosa succede se esiste un qualche γh = 0? Non possiamo conclude-re immediatamente che esistono piu soluzioni ottime. Esistono diversi casi

42

Page 44: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

possibili che ci apprestiamo a descrivere. Prima pero riscriviamo la riformu-lazione rispetto alla base B tenendo a 0 tutte le variabili fuori base trannela xim+h

con γh = 0. Avremo:

max γ0

xi1 = β1 + α1hxim+h

· · · (3.7)

xim= βm + αmhxim+h

x1, . . . , xn ≥ 0

Vediamo ora quali sono i casi possibili.

Caso 1 Se esiste h tale che γh = 0 e

αrh ≥ 0 r = 1, . . . ,m,

allora esiste certamente un insieme illimitato di soluzioni ottime. In-fatti, se in (3.7) facciamo crescere all’infinito xim+h

, vediamo che ilvalore dell’obiettivo resta quello ottimo γ0, mentre le variabili xir

continuano a mantenersi non negative e quindi non si esce da Sa.

Caso 2 Se esiste h tale che γh = 0 e

∀ r : αrh < 0 si ha che βr > 0,

allora esiste certamente un insieme limitato di soluzioni ottime. In-fatti, in (3.7) possiamo far crescere xim+h

fino al valore positivo

− βk

αkh

= minr : αrh<0

{

− βr

αrh

}

mantenendo il valore dell’obiettivo pari a quello ottimo γ0. Quindi,un’operazione di cardine che scambi la variabile xik

con la variabilexim+h

conduce in questo caso ad una nuova soluzione di base ammis-sibile ed anch’essa ottima. Risulteranno ottimi anche tutti i puntilungo il segmento che congiunge le due soluzioni di base ammissibili(o vertici) ottime.

Caso 3 Se per ogni h tale che γh = 0 si ha che:

∃ r : αrh < 0 e βr = 0,

allora non possiamo dire se esiste un’unica soluzione ottima o se visono soluzioni ottime multiple. In quest caso infatti, per poter restarein Sa in (3.7) possiamo solo mantenere il valore di xim+h

pari a 0 equindi rimanere nella soluzione di base corrente.

43

Page 45: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

I diversi casi saranno ora illustrati attraverso alcuni esempi.

Esempio 11 Sia data la riformulazione rispetto alla base {x3, x4} di unproblema di PL.

max 4 − x1 − x2

x3 = 2 + x1 − x2

x4 = 1 − 2x2

x1, x2, x3, x4 ≥ 0

In questo caso tutti i coefficienti di costo ridotto sono strettamente negativi,quindi la soluzione di base e ottima ed e l’unica soluzione ottima.Sia data la riformulazione rispetto alla base {x3, x4} di un problema di PL.

max 4 − x2

x3 = 2 + x1 − x2

x4 = 1 − 2x2

x1, x2, x3, x4 ≥ 0

Qui ci troviamo nel Caso 1: il coefficiente di costo ridotto di x1 e nullo ei coefficienti di x1 nelle equazioni sono tutti non negativi. Quindi tutti ipunti del seguente insieme:

(t, 0, 2 + t, 1) ∀ t ≥ 0,

sono soluzioni ottime del problema (si noti che t = 0 coincide con la solu-zione di base associata a {x3, x4}).Sia data la riformulazione rispetto alla base {x3, x4} di un problema di PL.

max 4 − x2

x3 = 2 + x1 − x2

x4 = 1 − x1 + 2x2

x1, x2, x3, x4 ≥ 0

Qui ci troviamo nel Caso 2: il coefficiente di costo ridotto di x1 e nulloe nelle equazioni in cui il coefficiente di x1 e negativo, il termine noto epositivo. Quindi tutti i punti del seguente insieme:

(t, 0, 2 + t, 1 − t) 0 ≤ t ≤ 1,

sono soluzioni ottime del problema (si noti che t = 0 coincide con la solu-zione di base associata a {x3, x4} e t = 1 con quella adiacente {x1, x3}).

44

Page 46: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Sia data la riformulazione rispetto alla base {x3, x4} di un problema di PL.

max 4 − x2

x3 = 2 + x1 − x2

x4 = −x1 − x2

x1, x2, x3, x4 ≥ 0

Qui ci troviamo nel Caso 3: il coefficiente di costo ridotto di x1 e nullo ein una equazione in cui il coefficiente di x1 e negativo, il termine noto enullo. In questo particolare esempio esiste una sola soluzione ottima. Piuprecisamente esiste una sola soluzione ammissibile. Infatti, l’equazione

x4 = −x1 − x2

puo essere soddisfatta in Sa solo se le variabili x1 e x2 sono entrambe nulle,ovvero in corrispondenza della soluzione di base associata a {x3, x4}.Sia data la riformulazione rispetto alla base {x4, x5} di un problema di PL.

max 2 − x3

x4 = x1 − x2 − x3

x5 = −x1 + x2 + x3

x1, x2, x3, x4, x5 ≥ 0

Qui ci troviamo ancora nel Caso 3: il coefficiente di costo ridotto di x1 ex2 e nullo, in almeno una equazione in cui il coefficiente di x1 e negativosi ha che il termine noto e nullo e lo stesso vale per x2. Si puo dimostrarepero che in questo caso tutte le soluzioni:

x3 = x4 = x5 = 0 x1 = x2 = α ∀ α ≥ 0,

sono ammissibili e ottime (il caso α = 0 coincide con la soluzione di baseassociata alla base {x4, x5}).

Come individuare la matrice A−1B

Come vedremo e importante conoscere, data una base B e la relativa ma-trice AB , l’inversa A−1

B di tale matrice. Non e pero sempre necessariocalcolare da zero tale inversa. In alcuni casi la riformulazione rispetto allabase B ci fornisce gia la matrice A−1

B .Supponiamo che alcune colonne della matrice A formino la matrice iden-tica I, ovvero che esistano m variabili [xt1 , . . . , xtm

] le cui corrispondenticolonne nella matrice A formano la matrice identica di ordine m×m. que-ste variabili formano una base per il problema di PL (in particolare una

45

Page 47: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

base ammissibile se tutti i termini noti delle equazioni sono non negativi).Vediamo un esempio di cio.

Esempio 12 Sia dato il problema di PL:

max x1 − x3 − 2x4 − 2x5

x1 + x2 + x4 = 8

x1 − x2 + x3 = 4

x1 + 2x2 + x5 = 12

x1, x2, x3, x4, x5 ≥ 0

Se prendiamo le m = 3 variabili [x4, x3, x5], possiamo vedere che le colonnecorrispondenti:

x4 →

100

x3 →

010

x5 →

001

formano la matrice identica di ordine 3×3 e che queste 3 variabili formanouna base (in questo caso ammissibile) per il nostro problema.

Supponiamo ora di essere arrivati tramite una serie di operazioni di cardinealla riformulazione rispetto alla base B = {xi1 , . . . , xim

} del problema diPL:

max cBA−1B b + (cN − cBA−1

B AN )xN

xB = A−1B b − A−1

B ANxN

xB ,xN ≥ 0

Riscriviamo questa portando tutte le variabili fuori base nella parte sinistradelle equazioni dei vincoli, ovvero:

max cBA−1B b + (cN − cBA−1

B AN )xN

xB + A−1B ANxN = A−1

B b (3.8)

xB ,xN ≥ 0

A questo punto l’inversa A−1B si legge in (3.8) nel modo seguente: la prima

colonna di A−1B e la colonna relativa a xt1 in (3.8), la seconda colonna di

A−1B e la colonna relativa a xt2 in (3.8), eccetera fino alla m-esima colonna

di A−1B che e la colonna relativa a xtm

in (3.8) (si noti che l’ordine dellevariabili xtr

, r = 1, . . . ,m e qui essenziale). Ma vediamo di chiarire megliola cosa attraverso il nostro esempio.

46

Page 48: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Esempio 13 Possiamo partire proprio dalla base {x4, x3, x5} che risultaammissibile. La riformulazione rispetto a questa base e la seguente:

max −44 + 6x1 + 3x2

x4 = 8 − x1 − x2

x3 = 4 − x1 + x2

x5 = 12 − x1 − 2x2

x1, x2, x3, x4, x5 ≥ 0

Con una prima operazione di cardine scambiamo x1 e x3 nella base. Lariformulazione rispetto alla nuova base {x4, x1, x5} e la seguente:

max −24 − 6x3 + 9x2

x4 = 4 + x3 − 2x2

x1 = 4 − x3 + x2

x5 = 8 + x3 − 3x2

x1, x2, x3, x4, x5 ≥ 0

Poi, con una seconda operazione di cardine scambiamo x2 e x4 nella base.La riformulazione rispetto alla nuova base {x2, x1, x5} e la seguente:

max −6 − 3/2x3 − 9/2x4

x2 = 2 + 1/2x3 − 1/2x4

x1 = 6 − 1/2x3 − 1/2x4

x5 = 2 − 1/2x3 + 3/2x4

x1, x2, x3, x4, x5 ≥ 0

A questo punto ci chiediamo: data la base B = {x2, x1, x5} con la relativamatrice:

AB =

1 1 0−1 1 0

2 1 1

qual e l’inversa di tale matrice? Come detto, questa si puo ottenere os-servando la riformulazione rispetto alla base B in cui pero nelle equazionispostiamo tutti i termini relativi alle variabili fuori base a sinistra, cioe nelnostro esempio:

max −6 − 3/2x3 − 9/2x4

x2 − 1/2x3 + 1/2x4 = 2

x1 + 1/2x3 + 1/2x4 = 6

x5 + 1/2x3 − 3/2x4 = 2

x1, x2, x3, x4, x5 ≥ 0

47

Page 49: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Si avra che la prima colonna di A−1B e la colonna della variabile x4 in

quest’ultima formulazione, ovvero

1/21/2

−3/2

la seconda quella relativa a x3:

−1/21/21/2

e la terza quella relativa a x5:

001

Avremo quindi:

A−1B =

1/2 −1/2 01/2 1/2 0

−3/2 1/2 1

3.1 Il metodo due fasi

Descriveremo ora un metodo, detto metodo due fasi, che, dato un problemadi PL, ci consente di stabilire se Sa = ∅ o, in caso contrario, ci restituisceuna base ammissibile del problema.Sia dato il problema di PL in forma standard:

max cx

aix = bi i = 1, . . . ,m

xj ≥ 0 j = 1, . . . , n

Chiameremo questo problema problema di II fase. Ad esso associamo ilseguente problema, detto problema di I fase:

ξ∗ = max −∑mi=1 si

aix + si = bi i ∈ {1, . . . ,m} : bi ≥ 0

aix − si = bi i ∈ {1, . . . ,m} : bi < 0

xj ≥ 0 j = 1, . . . , n

si ≥ 0 i = 1, . . . ,m

48

Page 50: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Quindi aggiungiamo o sottraiamo (a seconda del segno del termine noto)una variabile non negativa si in ogni vincolo del problema originario el’obiettivo del problema e la somma, cambiata di segno, di tali variabili.Per prima cosa notiamo che si ≥ 0, i = 1, . . . ,m, implica che

−m∑

i=1

si ≤ 0

e quindi l’obiettivo del problema di I fase non puo essere illimitato. Inoltre,la soluzione di base associata alla base {s1, . . . , sm} e ammissibile. Infatti,si ha la seguente riformulazione del problema di I fase rispetto a questabase:

ξ∗ = max −∑

i: bi≥0(bi − aix) − ∑

i: bi<0(−bi + aix)

si = bi − aix i ∈ {1, . . . ,m} : bi ≥ 0

si = −bi + aix i ∈ {1, . . . ,m} : bi < 0

xj ≥ 0 j = 1, . . . , n

si ≥ 0 i = 1, . . . ,m

da cui si ottiene la soluzione di base:

si = bi i : bi ≥ 0, si = −bi i : bi < 0, xj = 0 j = 1, . . . , n,

che e ammissibile. Quindi il problema di I fase ha regione ammissibile nonvuota e obiettivo non illimitato. Ne consegue che esso ammette soluzioneottima. Vale la seguente osservazione.

Osservazione 11 Il problema di I fase ha valore ottimo ξ∗ pari a 0 se esolo se il problema di II fase ha regione ammissibile Sa non vuota.

Dimostrazione Supponiamo dapprima che ξ∗ = 0 e dimostriamo che Sa 6=∅. Ma ξ∗ = 0 vuol dire che esiste una soluzione del problema di I fase cheindichiamo con (s,x) con tutte le variabili si = 0, cioe s = 0. Se sostituiamoquesta soluzione nei vincoli del problema di I fase otteniamo:

si = bi − aix i ∈ {1, . . . ,m} : bi ≥ 0

si = −bi + aix i ∈ {1, . . . ,m} : bi < 0

xj ≥ 0 j = 1, . . . , n

si = 0 i = 1, . . . ,m

o, equivalentemente:

aix = bi i = 1, . . . ,m x ≥ 0,

49

Page 51: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

da cui si ricava che x ∈ Sa.Supponiamo ora invece che Sa 6= ∅ e dimostriamo che questo implica cheξ∗ = 0. Dato x ∈ Sa, si verifica facilmente che la soluzione (s,x) con

si = 0 i = 1, . . . ,m,

e ammissibile per il problema di I fase e ha valore dell’obiettivo:

−m∑

i=1

si = 0.

Poiche, come gia osservato, il valore dell’obiettivo del problema di I fase nonpuo essere superiore a 0, questa soluzione ammissibile e anche ottima peril problema di I fase e il valore ottimo ξ∗ e pari a 0 come si voleva dimostrare.

Risolviamo ora il problema di I fase utilizzando il metodo del simplesso.Si noti che qui abbiamo gia a disposizione una base ammissibile (la base{s1, . . . , sm}). Avremo le seguenti due possibilita per il valore ottimo ξ∗

del problema:

ξ∗ < 0 Allora, in base all’Osservazione 11, possiamo concludere che Sa = ∅,cioe la regione ammissibile del problema di II fase e vuota.

ξ∗ = 0 Allora Sa 6= ∅ (la soluzione ottima del problema di I fase e gia unasoluzione ammissibile per il problema di II fase) e abbiamo due casipossibili:

Caso 1 tutte le variabili si sono al di fuori della base ottima delproblema di I fase. In tal caso la base ottima del problema diI fase e gia una base ammissibile del problema di II fase. Lariformulazione del problema di II fase rispetto a questa base sipuo ottenere semplicemente dalla riformulazione del problema diI fase rispetto a questa base, eliminando da quest’ultima tuttele variabili si e sostituendo l’obiettivo del problema di I fase conquello del problema di II fase (si vedano gli esempi successivi perchiarire meglio il procedimento).

Caso 2 Alcune variabili si sono nella base ottima del problema diI fase. In tal caso si operano, fino a quando e possibile, delleoperazioni di cardine per far uscire di base le variabili si attual-mente in base facendo entrare al loro posto solo variabili xj . Sesi riesce a far uscire dalla base tutte le variabili si ci si ritrovainfine nella stessa situazione del Caso 1 e si procede nello stessomodo. Puo pero succedere che non si riescano a far uscire di

50

Page 52: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

base alcune variabili si. Questo, come vedremo, accade quandovi sono vincoli ridondanti, ovvero vincoli ottenibili come combi-nazioni lineari di altri e che quindi possono essere semplicementeeliminati. Se ci si ritrova in questa situazione, possiamo elimina-re le variabili si in base e i relativi vincoli. Una volta procedutoa tale eliminazione ci si ritrova nella stessa situazione del Caso1 e si procede come in quel caso (anche qui si vedano gli esempisuccessivi per chiarire meglio il procedimento).

Vediamo ora alcuni esempi che serviranno a chiarire quanto visto sopra.

Esempio 14 Si consideri il seguente problema di PL.

max x1 + 2x2

−x1 − x2 + x3 = −1

x1 + x2 + x4 = 2

x1, x2, x3, x4 ≥ 0

Chiameremo questo problema di II fase. Il problema di I fase associato e ilseguente:

max −s1 − s2

−x1 − x2 + x3 − s1 = −1

x1 + x2 + x4 + s2 = 2

x1, x2, x3, x4 ≥ 0 s1, s2 ≥ 0

che riformulato rispetto alla base {s1, s2} diventa:

max −3 + 2x1 + 2x2 − x3 + x4

s1 = 1 − x1 − x2 + x3

s2 = 2 − x1 − x2 − x4

x1, x2, x3, x4 ≥ 0 s1, s2 ≥ 0.

Teniamo traccia, per ragioni che chiariremo nel seguito, anche dell’obiettivodel problema di II fase espresso tramite le variabili fuori base:

x1 + 2x2.

In base alle regole viste per il metodo del simplesso, dovremo far entrarein base x1 e farne uscire s1. La riformulazione rispetto alla nuova base{x1, s2} e la seguente:

max −1 − 2s1 + x3 + x4

51

Page 53: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

x1 = 1 − s1 − x2 + x3

s2 = 1 + s1 − x3 − x4

x1, x2, x3, x4 ≥ 0 s1, s2 ≥ 0.

L’obiettivo del problema di II fase espresso tramite le variabili attualmentefuori base e il seguente:

1 − s1 + x2 + x3.

In base alle regole viste per il metodo del simplesso, dovremo far entrarein base x3 e farne uscire s2. La riformulazione rispetto alla nuova base{x1, x3} e la seguente:

max −s1 − s2

x1 = 2 − x2 − s2 − x4

x3 = 1 + s1 − s2 − x4 (3.9)

x1, x2, x3, x4 ≥ 0 s1, s2 ≥ 0.

L’obiettivo del problema di II fase espresso tramite le variabili attualmentefuori base e il seguente:

2 − s2 + x2 − x4. (3.10)

A questo punto abbiamo una soluzione ottima per il problema di I fase convalore ottimo ξ∗ = 0. Quindi il problema di II fase ha regione ammissi-bile non vuota. Inoltre, ci troviamo nel Caso 1, dal momento che tutte levariabili si sono fuori dalla base ottima {x1, x3}. Possiamo quindi usarequesta base come base ammissibile iniziale per il problema di II fase. Lariformulazione rispetto a questa base si ottiene dalla riformulazione (3.9)da cui si scartano tutte le variabili si e si sostituisce l’obiettivo con quellodi II fase (3.10), anch’esso ripulito dalle variabili si. Avremo quindi laseguente riformulazione:

max 2 + x2 − x4

x1 = 2 − x2 − x4

x3 = 1 − x4

x1, x2, x3, x4 ≥ 0

A questo punto si puo procedere con il metodo del simplesso per risolvere ilproblema di II fase.

Si consideri il seguente problema di PL.

max 2x1 + x2 + 1/2x3

52

Page 54: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

x1 + x2 + x3 = 3

x1 − x2 + x3 = 1

x1 + x3 = 2

x1, x2, x3 ≥ 0

Al solito, chiameremo questo problema di II fase. Il problema di I faseassociato e il seguente:

max −s1 − s2 − s3

x1 + x2 + x3 + s1 = 3

x1 − x2 + x3 + s2 = 1

x1 + x3 + s3 = 2

x1, x2, x3 ≥ 0 s1, s2, s3 ≥ 0

che riformulato rispetto alla base {s1, s2, s3} diventa:

max −6 + 3x1 + 3x3

s1 = 3 − x1 − x2 − x3

s2 = 1 − x1 + x2 − x3

s3 = 2 − x1 − x3

x1, x2, x3 ≥ 0 s1, s2, s3 ≥ 0.

L’obiettivo del problema di II fase espresso tramite le variabili fuori base eil seguente:

2x1 + x2 + 1/2x3.

In base alle regole viste per il metodo del simplesso, dovremo far entrarein base x1 e farne uscire s2. La riformulazione rispetto alla nuova base{s1, x1, s3} e la seguente:

max −3 − 3s2 + 3x2

s1 = 2 + s2 − 2x2

x1 = 1 − s2 + x2 − x3

s3 = 1 + s2 − x2

x1, x2, x3 ≥ 0 s1, s2, s3 ≥ 0.

L’obiettivo del problema di II fase espresso tramite le variabili fuori base eil seguente:

2 − 2s2 + 3x2 − 3/2x3.

53

Page 55: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

In base alle regole viste per il metodo del simplesso, dovremo far entrarein base x2 e farne uscire s1. La riformulazione rispetto alla nuova base{s1, x1, s3} e la seguente:

max −3/2s2 − 3/2s1

x2 = 1 + 1/2s2 − 1/2s1

x1 = 2 − 1/2s2 − 1/2s1 − x3 (3.11)

s3 = 1/2s2 + 1/2s1

x1, x2, x3 ≥ 0 s1, s2, s3 ≥ 0.

L’obiettivo del problema di II fase espresso tramite le variabili fuori base eil seguente:

5 − 1/2s2 − 3/2s1 − 3/2x3. (3.12)

Abbiamo una soluzione ottima del problema di I fase e si ha ξ∗ = 0. Quindiil problema di II fase ha regione ammissibile non vuota. Ci troviamo peroora nel Caso 2, con una variabile (la s3) che fa parte della base ottima{x1, x2, s3}. Per prima cosa dobbiamo tentare di far uscire s3 di base fa-cendo entrare una variabile xi fuori base. Ma l’unica possibile candidata,la variabile x3, ha coefficiente nullo ( e quindi non appare) nell’equazionerealtiva a s3, cioe

s3 = 1/2s2 + 1/2s1.

La stessa equazione ci dice anche che il vincolo relativo alla variabile s3

(cioe x1 + x3 = 2) e ottenibile come combinazione lineare con coefficientientrambi pari a 1/2 dei vincoli relativi alle variabili s1 (x1 + x2 + x3 = 3)e s2 (x1 − x2 + x3 = 1). Ne consegue che questo vincolo e ridondante epossiamo scartarlo insieme alla relativa variabile s3. Una volta soppressa lavariabile s3 e l’equazione ad essa relativa, la riformulazione (3.11) diventa:

max −3/2s2 − 3/2s1

x2 = 1 + 1/2s2 − 1/2s1

x1 = 2 − 1/2s2 − 1/2s1 − x3 (3.13)

x1, x2, x3 ≥ 0 s1, s2 ≥ 0.

A questo punto abbiamo la base ottima {x1, x2} per il problema di I faseche non contiene variabili si. Questa base e ammissibile per il problema diII fase e la riformulazione rispetto ad essa si ottiene sopprimendo in (3.13)le variabili si e sostituendo l’obiettivo con quello in (3.12), anche questoripulito delle variabili si:

max 5 − 3/2x3

54

Page 56: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

x2 = 1

x1 = 2 − x3

x1, x2, x3 ≥ 0 (3.14)

Possiamo quindi risolvere il problema di II fase utilizzando il metodo delsimplesso.

Si consideri il seguente problema di PL.

max x1 + x2

x1 + x2 = 3

x1 + x3 = 1

x2 + x4 = 1

x1, x2, x3, x4 ≥ 0

Al solito, chiameremo questo problema di II fase. Il problema di I faseassociato e il seguente:

max −s1 − s2 − s3

x1 + x2 + s1 = 3

x1 + x3 + s2 = 1

x2 + x4 + s3 = 1

x1, x2, x3, x4 ≥ 0 s1, s2, s3 ≥ 0

che riformulato rispetto alla base {s1, s2, s3} diventa:

max −5 + 2x1 + 2x2 + x3 + x4

s1 = 3 − x1 − x2

s2 = 1 − x1 − x3

s3 = 1 − x2 − x4

x1, x2, x3, x4 ≥ 0 s1, s2, s3 ≥ 0

L’obiettivo del problema di II fase espresso tramite le variabili fuori base eil seguente:

x1 + x2.

In base alle regole viste per il metodo del simplesso, dovremo far entrarein base x1 e farne uscire s2. La riformulazione rispetto alla nuova base{s1, x1, s3} e la seguente:

max −3 − 2s2 + 2x2 − x3 + x4

55

Page 57: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

s1 = 2 − 3s2 − x3 − x2

x1 = 1 − s2 − x3

s3 = 1 − x2 − x4

x1, x2, x3 ≥ 0 s1, s2, s3 ≥ 0.

L’obiettivo del problema di II fase espresso tramite le variabili fuori base eil seguente:

1 − s2 − x3 + x2.

In base alle regole viste per il metodo del simplesso, dovremo far entrarein base x2 e farne uscire s3. La riformulazione rispetto alla nuova base{s1, x1, x2} e la seguente:

max −1 − 2s2 − 2s3 − x3 − x4

s1 = 1 − 3s2 − x3 + s3 + x4

x1 = 1 − s2 − x3

x2 = 1 − s3 − x4

x1, x2, x3 ≥ 0 s1, s2, s3 ≥ 0.

L’obiettivo del problema di II fase espresso tramite le variabili fuori base eil seguente:

1 − s2 − s3 − x3 − x4.

Abbiamo una soluzione ottima del problema di I fase e si ha ξ∗ = −1 < 0.Possiamo quindi immediatamente concludere che il problema di II fase haregione ammissibile vuota.

56

Page 58: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Capitolo 4

Dualita

Dato un problema di PL in forma standard

max cx

Ax = b (4.1)

x ≥ 0

che chiameremo problema primale, possiamo associare ad esso un altroproblema di PL, detto problema duale, definito come segue (u e il vettoredi variabili duali con m componenti)

min ub

uA ≥ c (4.2)

o, in forma scalare:

min∑m

i=1 uibi∑m

i=1 uiaij ≥ cj j = 1, . . . , n (4.3)

Indichiamo conDa = {u ∈ Rm : uA ≥ c}

la regione ammissibile del problema duale e con

Dott = {u∗ ∈ Da : u∗b ≤ ub ∀ u ∈ Da}

l’insieme delle sue soluzioni ottime. Si puo notare che esiste una strettarelazione tra

• variabili del primale e vincoli del duale;

57

Page 59: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

• vincoli del primale e variabili del duale.

In particolare notiamo che

1. nel primale ci sono n variabili esattamente come nel duale vi sono nvincoli. Inoltre, i coefficienti del j-esimo vincolo del duale coincidonocon i coefficienti della variabile xj nei vincoli del primale, mentre iltermine noto del j-esimo vincolo del duale coincide con il coefficientedi xj nell’obiettivo del primale.

2. Nel primale vi sono m vincoli esattamente come nel duale vi sonom variabili. Inoltre, i coefficienti dell’i-esima variabile ui del dualecoincidono con i coefficienti dell’i-esimo vincolo del primale, mentre ilcoefficiente di ui nell’obiettivo del duale coincide con il termine notodell’i-esimo vincolo del primale.

Come esercizio si mostri che il duale del seguente problema di PL in formastandard:

max x1 + x2

3x1 + 2x2 + x3 = 5

4x1 + 5x2 + x4 = 4

x2 + x5 = 2

x1, x2, x3, x4, x5 ≥ 0

e il seguente problema:

min 5u1 + 4u2 + 2u3

3u1 + 4u2 ≥ 1

2u1 + 5u2 + u3 ≥ 1

u1 ≥ 0

u2 ≥ 0

u3 ≥ 0.

Le soluzioni dei due problemi primale e duale sono fortemente legate traloro come dimostra una serie di risultati.

Osservazione 12 Per ogni x0 ∈ Sa e per ogni u0 ∈ Da si ha che

cx0 ≤ u0b.

Dimostrazione x0 ∈ Sa implica

Ax0 = b (4.4)

58

Page 60: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Moltiplicando entrambi i membri di (4.4) per u0 si ottiene

u0b = u0Ax0 = (u0A)x0. (4.5)

Ma u0 ∈ Da implicau0A ≥ c

da cui, moltiplicando entrambi i membri per x0 (che e ≥ 0 per l’apparte-nenza di x0 a Sa), si ottiene

(u0A)x0 ≥ cx0

che, combinato con (4.5), dimostra il risultato.

Osservazione 13 Se x∗ ∈ Sa e u∗ ∈ Da ed inoltre

cx∗ = u∗b

allora x∗ ∈ Sott e u∗ ∈ Dott.

Dimostrazione In base all’Osservazione 12 si ha che

∀ x ∈ Sa cx ≤ u∗b.

Ma essendo cx∗ = u∗b si ha anche

∀ x ∈ Sa cx ≤ cx∗

il che equivale a dire che x∗ ∈ Sott. In modo del tutto analogo si dimostrache u∗ ∈ Dott.

Osservazione 14 Se uno dei due problemi ha obiettivo illimitato, alloral’altro ha regione ammissibile vuota.

Dimostrazione Dimostriamo che se l’obiettivo primale e illimitato, alloraDa = ∅ (la dimostrazione che l’obiettivo duale illimitato implica Sa = ∅ edel tutto analoga). Supponiamo per assurdo che Da 6= ∅ e sia u0 ∈ Da. Inbase all’Osservazione 12 si ha che

∀ x ∈ Sa cx ≤ u0b

e quindi l’obiettivo del primale e limitato dal valore u0b, il che contraddicel’illimitatezza di tale obiettivo.

59

Page 61: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Data una base B sappiamo che a questa e associata la soluzione di base delproblema primale:

xB = A−1B b xN = 0.

Ma a questa base possiamo associare anche la seguente soluzione di basedel duale:

uB = cBA−1B .

Vediamo quando questa soluzione di base del duale e ammissibile per ilduale. Per essere ammissibile deve soddisfare i vincoli:

uBA ≥ c

o, equivalentemente:

uBAB ≥ cB (4.6)

uBAN ≥ cN (4.7)

Ma:uBAB = cBA−1

B AB = cB,

e quindi i vincoli (4.6) sono certamente soddisfatti, mentre

uBAN = cBA−1B AN ,

e quindi i vincoli (4.7) sono equivalenti a:

cN − cBA−1B AN ≤ 0

(si noti la coincidenza con la condizione di ottimalita (3.2) per il problemaprimale). In particolare se

cN − cBA−1B AN < 0

la soluzione di base del duale uB ammissibile verra detta non degenere,altrimenti verra detta degenere. Si noti che le due soluzioni di base rispetti-vamente del primale e del duale associate alla base B hanno lo stesso valoredell’obiettivo:

cBxB = cBA−1B b = uBb,

e quindi, in base all’Osservazione 13, se entrambe sono ammissibili per irispettivi problemi, sono anche soluzioni ottime degli stessi problemi.

Fino a questo punto abbiamo definito solo il duale di un problema in formastandard. Ma sappiamo che ogni problema di PL puo essere ricondotto alla

60

Page 62: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

forma standard. Tra questi anche il duale (4.2) del nostro problema primale(4.1). Quindi ci si puo porre la seguente domanda: una volta ricondotto ilduale (4.2) in forma standard, quale forma avra il suo duale? La risposta civiene data dalla seguente Osservazione di cui omettiamo la dimostrazione.

Osservazione 15 Il duale del problema duale (4.2) coincide con il proble-ma primale (4.1).

Questa osservazione ci mostra la totale simmetria esistente tra problemaprimale e duale. Siamo ora pronti per dimostrare il I teorema della dualita.

Teorema 4 Uno dei due problemi ha soluzioni ottime se e solo se anchel’altro ha soluzioni ottime. Formalmente, Sott 6= ∅ se e solo se Dott 6= ∅.Inoltre, i valori ottimi dei due problemi coincidono.

Dimostrazione Supponiamo di avere Sott 6= ∅ e sia B∗ una base ottimaper il problema primale. Avremo quindi che la soluzione di base del primaleassociata a B∗, cioe:

xB∗ = A−1B∗b xN∗ = 0,

e ammissibile per il primale ed inoltre e soddisfatta la condizione di otti-malita:

cN∗ − cB∗A−1B∗AN∗ ≤ 0.

Ma questo ci dice anche che la soluzione di base del duale associata a B∗,cioe:

uB∗

= cB∗A−1B∗ ,

e ammissibile per il duale. Come gia osservato in precedenza le due solu-zioni di base del primale e del duale associate a B∗ hanno lo stesso valoredell’obiettivo ed essendo ammissibili rispettivamente per il primale e per ilduale, l’Osservazione 13 ci permette di concludere che sono soluzioni ottimedei rispettivi problemi. Quindi abbiamo dimostrato che Sott 6= ∅ implicaDott 6= ∅ e i due valori ottimi coincidono. Il viceversa, cioe che Dott 6= ∅implica Sott 6= ∅, e una conseguenza immediata della proprieta di simmetriatra primale e duale esppressa dall’Osservazione 15. Infatti, in base a quantoappena dimostrato, se il duale ha soluzioni ottime anche il suo duale ne hae i valori ottimi dei due problemi coincidono. Ma in base all’Osservazione15, il duale del duale coincide proprio con il problema primale.

Riassumiamo ora tutte le possibili relazioni tra primale e duale.

• In base al I teorema della dualita

Sott 6= ∅ ⇔ Dott 6= ∅In base allo stesso teorema si ha anche che i valori ottimi coincidono.

61

Page 63: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

• Se Sott = ∅ in quanto l’obiettivo primale e illimitato, allora Da =∅ (per l’Osservazione 14). Cio implica anche per la simmetria traprimale e duale espressa nell’Osservazione 15, che se Dott = ∅ inquanto l’obiettivo duale e illimitato, allora Sa = ∅.

• Se Sa = ∅, allora Da = ∅ oppure l’obiettivo duale e illimitato. Cioimplica anche per la simmetria tra primale e duale espressa nell’Os-servazione 15, che se Da = ∅, allora Sa = ∅ oppure l’obiettivo primalee illimitato.

Il seguente e un esempio in cui sia Sa che Da sono insiemi vuoti.

Esempio 15 Si consideri il seguente problema primale

max 2x1 − x2

x1 − x2 = 1

−x1 + x2 = −2

x1, x2 ≥ 0

Si noti che Sa = ∅. Si trovi ora il duale di tale problema:

min u1 − 2u2

u1 − u2 ≥ 2

−u1 + u2 ≥ −1

in cui si puo notare che anche Da = ∅.Introduciamo ora il II teorema della dualita.

Teorema 5 Si ha che x∗ ∈ Sott e u∗ ∈ Dott se e solo se x∗ e u∗ appartengo-no rispettivamente a Sa e Da e soddisfano le condizioni di complementarita,cioe

(u∗A − c)x∗ = 0. (4.8)

o, in forma scalare:

n∑

j=1

(m∑

i=1

u∗i aij − cj

)

x∗j = 0. (4.9)

Dimostrazione Se vale (4.8), si ha

u∗Ax∗ = cx∗.

Ma x∗ ∈ Sa implica Ax∗ = b e quindi

u∗b = u∗Ax∗ = cx∗.

62

Page 64: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

In base all’Osservazione 13, cio implica che le due soluzioni sono ottime peri rispettivi problemi.Vediamo ora di dimostrare il viceversa, ovvero che se le due soluzioni sonoottime soddisfano le condizioni di complementarita. Per il I teorema delladualita sappiamo che

u∗b = cx∗.

Ora, sommiamo e sottraiamo u∗Ax∗ ed otteniamo

u∗b − u∗Ax∗ + u∗Ax∗ − cx∗ = 0

che possiamo riscrivere come segue

u∗(b − Ax∗) + (u∗A − c)x∗ = 0. (4.10)

Ora, x∗ ∈ Sa implica Ax∗ = b e quindi (4.10) si riduce a:

(u∗A − c)x∗ = 0,

che e quanto volevamo dimostrare.

Ma vediamo di capire meglio quanto ci dicono le condizioni di comple-mentarita. Ricordiamo che

(u∗A − c)x∗ = 0,

in forma scalare equivale a:

n∑

j=1

(m∑

i=1

u∗i aij − cj

)

x∗j = 0.

Dal momento che u∗ ∈ Da e x∗ ∈ Sa, si avra che:

m∑

i=1

u∗i aij − cj ≥ 0, x∗

j ≥ 0 ∀ j = 1, . . . , n.

e quindi(

m∑

i=1

u∗i aij − cj

)

x∗j ≥ 0.

Ne consegue che:n∑

j=1

(m∑

i=1

u∗i aij − cj

)

x∗j = 0.

63

Page 65: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

se e solo se: (m∑

i=1

u∗i aij − cj

)

x∗j = 0 ∀ j = 1, . . . , n.

(una somma di addendi non negativi puo essere nulla se e solo se ciascunaddendo e nullo). Cio equivale alle seguenti condizioni:

x∗j > 0 ⇒

m∑

i=1

u∗i aij − cj = 0,

cioe se una variabile x∗j ha valore positivo in una soluzione ottima del proble-

ma primale, le soluzioni ottime u∗ del duale devono soddisfare come ugua-glianza il vincolo del duale

∑mi=1 u∗

i aij ≥ cj corrispondente alla variabilex∗

j ;m∑

i=1

u∗i aij − cj > 0 ⇒ x∗

j = 0,

cioe se una soluzione ottima del duale u∗ non soddisfa come uguaglianza ilvincolo del duale

∑mi=1 u∗

i aij ≥ cj , il valore della corrispondente variabilex∗

j nelle soluzioni ottime del primale deve essere nullo.Vediamo ora come queste condizioni possono essere utilizzate per ottenereuna soluzione ottima del duale una volta che e data una soluzione ottimadel primale. Sia dato il problema primale:

max x1 − x2

x1 + 2x2 + x3 = 6

2x1 + x2 + x4 = 4

x1, x2, x3, x4 ≥ 0.

Si puo dimostrare che la soluzione ottima di questo problema e la seguente:

x∗1 = 2 x∗

2 = 0 x∗3 = 4 x∗

4 = 0.

Si consideri ora il duale del problema:

min 6u1 + 4u2

u1 + 2u2 ≥ 1

2u1 + u2 ≥ −1

u1 ≥ 0

u2 ≥ 0

64

Page 66: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

La condizione di complementarita e la seguente :

(u∗1 + 2u∗

2 − 1)x∗1 + (2u∗

1 + u∗2 + 1)x∗

2 + (u∗1 − 0)x∗

3 + (u∗4 − 0)x∗

4 = 0

o, equivalentemente:

(u∗1 + 2u∗

2 − 1)x∗1 = 0 (2u∗

1 + u∗2 + 1)x∗

2 = 0 (u∗1 − 0)x∗

3 = 0 (u∗4 − 0)x∗

4 = 0

In base a tali condizioni si ha che:

x∗1 > 0 ⇒ u∗

1 + 2u∗2 = 1

x∗3 > 0 ⇒ u∗

1 = 0.

Quindi una soluzione ottima del duale deve soddisfare il sistema

u∗1 + 2u∗

2 = 1

u∗1 = 0

da cui si ricava immediatamente la soluzione ottima del duale:

u∗1 = 0 u∗

2 = 1/2.

4.1 Il simplesso duale

In precedenza abbiamo descritto il metodo del simplesso che, per distin-guerlo dal metodo che descriveremo ora, chiameremo simplesso primale. Ilmetodo del simplesso primale segue il seguente schema:

• cominciamo con una base B la cui soluzione di base associata del pri-male e ammissibile, ma con la soluzione di base associata del dualetipicamente non ammisibile (si ricordi che l’ammissibilita dellla so-luzione di base associata del duale e equivalente alla condizione diottimalita (3.2) per il primale);

• passiamo ad altre basi con le soluzioni di base associate del primalesempre ammissibili ma con le corrispondenti soluzioni di base delduale non ammissibili;

• se esistono soluzioni ottime, ci arrestiamo quando arriviamo ad unabase B∗ la cui soluzione di base associata del primale e ammissi-bile come al solito, ma per la quale e soddisfatta la condizione diottimalita:

cN∗ − cB∗A−1B∗AN∗ ≤ 0,

che equivale anche all’ammissibilita della solzuione di base associataa B∗ del duale.

65

Page 67: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Quindi, nel simplesso primale si genera una successione di basi ammissibiliper il primale ma non per il duale fino a raggiungere una base che sia ancheammissibile per il duale (a patto che una tale base esista , a patto cioeche il primale ammetta soluzioni ottime e non abbia obiettivo illimitato).In alcuni casi succede che e semplice avere una base la cui soluzione dibase associata del duale e ammissibile ma non lo e quella del primale. Ilsimplesso duale non e altro che il simplesso applicato al problema duale, incui seguiremo quindi il seguente schema:

• cominciamo con una base B la cui soluzione di base associata delduale e ammissibile, ma con la soluzione di base associata del primaletipicamente non ammisibile;

• passiamo ad altre basi con le soluzioni di base associate del dualesempre ammissibili ma con le corrispondenti soluzioni di base delprimale non ammissibili;

• se esistono soluzioni ottime, ci arrestiamo quando arriviamo ad unabase B∗ la cui soluzione di base associata del duale e ammissibilecome al solito, ma per la quale e soddisfatta anche la condizione diammissibilita per la soluzione di base associata a B∗ del primale:

A−1B∗b ≥ 0.

Quindi, nel simplesso duale si genera una successione di basi ammissibiliper il duale ma non per il primale fino a raggiungere una base che siaanche ammissibile per il primale (a patto che una tale base esista , a pattocioe che il duale ammetta soluzioni ottime e non abbia obiettivo illimitato).Vediamo ora di descrivere i singoli passi in un’iterazione del simplesso duale.Supporremo di avere una base B con soluzione di base associata del dualeammissibile. La riformulazione del problema primale rispetto alla baseB = {xi1 , . . . , xik

, . . . , xim} e la seguente:

max γ0 +∑n−m

j=1 γjxim+j

xi1 = β1 +∑n−m

j=1 α1jxim+j

· · ·xik

= βk +∑n−m

j=1 αkjxim+j(4.11)

· · ·xim

= βm +∑n−m

j=1 αmjxim+j

x1, . . . , xn ≥ 0

66

Page 68: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Si noti che la condizione di ammissibilita per la soluzione di base del dualee equivalente a

γj ≤ 0 j = 1, . . . , n − m. (4.12)

4.1.1 Verifica di ottimalita

Se

A−1B b ≥ 0,

o, equivalentemente:

βi ≥ 0 i = 1, . . . ,m

allora la base B e ottima, la soluzione di base del primale

xB = A−1B b xN = 0

e ottima per il primale, mentre la soluzione di base

uB = cBA−1B

e ottima per il duale.

4.1.2 Verifica di illimitatezza del duale

Se esiste un r ∈ {1, . . . ,m} tale che

βr < 0 αrj ≤ 0 j = 1, . . . , n − m,

allora si ha Sa = ∅. Infatti, dall’equazione:

xir= βr

︸︷︷︸

<0

+

n−m∑

j=1

αrj︸︷︷︸

≤0

xim+j︸ ︷︷ ︸

≥0

< 0,

si vede come la variabile xirnon possa mai essere non negativa se le variabili

xim+j, j = 1, . . . , n−m, sono non negative. Ne consegue anche che il duale

ha obiettivo illimitato. Infatti, abbiamo visto che con Sa = ∅ sono possibilidue casi: Da = ∅ e duale con obiettivo illimitato. Ma il primo dei due casi(Da = ∅) non si puo verificare qui in quanto la soluzione di base del dualeassociata a B e per ipotesi ammissibile e quindi Da non puo essere vuoto.

67

Page 69: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

4.1.3 Scelta della variabile uscente dalla base

Rispetto al simplesso primale qui scegliamo prima la variabile uscente dallabase. La regola di scelta e la seguente: si seleziona la variabile xik

tale che

βk = min{βi} < 0

(per convenzione quella con indice piu piccolo se il minimo e raggiunto dapiu variabili).

4.1.4 Scelta della variabile entrante in base

La variabile entrante in base viene scelta tra quelle con αkj > 0. Inparticolare si sceglie la variabile xim+h

tale che

− γh

αkh

= min

{

− γj

αkj

: αkj > 0

}

. (4.13)

(nel caso il minimo sia raggiunto da piu variabili si sceglie, per conven-zione, quella con indice piu piccolo). A questo punto possiamo eseguirel’operazione di cardine facendo uscire di base xik

e facendo entrare in basexim+h

.

4.1.5 Mantenimento dell’ammissibilita e miglioramen-

to dell’obiettivo

Vogliamo far vedere che le scelte fatte preservano l’ammissibilita duale, cioela soluzione di base del duale associata alla nuova base e ancora ammissibileper il duale, ed inoltre la nuova soluzione ha un valore dell’obiettivo migliore(o quantomeno non peggiore) rispetto alla precedente. Mostriamo dappri-ma che le scelte fatte preservono l’ammissibilita duale. Con l’operazione dicardine avremo:

xim+h= − βk

αkh

+1

αkh

xik−

n−m∑

j=1, j 6=h

αkj

αkh

xim+j,

da cui, sostituendo nell’obiettivo si ottiene:

[

γ0 − γh

βk

αkh

]

+γh

αkh

xik−

n−m∑

j=1, j 6=h

(

γj − γh

αkj

αkh

)

xim+j.

Si ha ammissibilita per il duale se i coefficienti delle variabili xike xim+j

,j = 1, . . . , n−m, j 6= h sono non positivi. Per quanto riguarda il coefficiente

68

Page 70: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

di xik, abbiamo

≤0︷︸︸︷γh

αkh︸︷︷︸

>0

≤ 0.

Per quanto riguarda i coefficienti di xim+j, j = 1, . . . , n − m, j 6= h

distinguiamo due casi: αkj ≤ 0 e αkj > 0. Se αkj ≤ 0, allora:

γj − γh︸︷︷︸

≤0

≤0︷︸︸︷αkj

αkh︸︷︷︸

>0

≤ γj ≤ 0.

Se αkj > 0, allora:

γj − γh

αkj

αkh

= αkj︸︷︷︸

>0

(γj

αkj

− γh

αkh

)

︸ ︷︷ ︸

≤0

≤ 0,

doveγj

αkj

− γh

αkh

≤ 0

e una conseguenza della regola (4.13) per la scelta della variabile da farentrare in base.Per quanto riguarda il nuovo valore dell’obiettivo, esso e pari a:

γ0 − γh︸︷︷︸

≤0

<0︷︸︸︷

βk

αkh︸︷︷︸

>0

≤ γ0,

e quindi il valore dell’obiettivo per la nuova soluzione di base e migliore oquantomeno non peggiore rispetto alla precedente. Si noti che il duale e unproblema di minimo e quindi per valore dell’obiettivo migliore si intendeun valore inferiore rispetto al precedente. Si noti anche che se γh < 0 (cosacertamente vera nel caso non degenere) possiamo anche garantire che ilnuovo valore dell’obiettivo sia strettamente minore rispetto al precedente.

Esempio 16 Vediamo ora di risolvere un problema di PL utilizzando ilsimplesso duale. Si consideri il seguente problema di PL in forma standard:

max −3x1 − 2x2 + x3

−2x1 + x2 + x3 = −1

x1 + 2x2 + x4 = 2

x1, x2, x3, x4 ≥ 0

69

Page 71: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Prendiamo la riformulazione di tale problema rispetto alla base {x3, x4}. Siottiene:

max −1 − x1 − 3x2

x3 = −1 + 2x1 − x2

x4 = 2 − x1 − 2x2 (4.14)

x1, x2, x3, x4 ≥ 0

Si nota che la soluzione di base del primale associata alla base {x3, x4} e:

x1 = x2 = 0 x3 = −1 x4 = 2,

e quindi non e ammissibile, mentre la soluzione di base del duale associataalla stessa base e ammissibile in quanto i coefficienti delle variabili fuo-ri base x1 e x2 nell’obiettivo di (4.14) sono non positivi (rispettivamentepari a -1 e -3: essendo strettamente negativi possiamo anche dire che lasoluzione di base del duale e non degenere). Quindi possiamo applicare ilsimplesso duale. Per prima cosa dobbiamo fare la verifica di ottimalita, chenel simplesso duale si riduce a controllare se i termini noti dei vincoli dellariformulazione sono non negativi. Nel nostro caso cio non e vero in quantoil termine noto del vincolo relativo alla variabile x3 in (4.14) e pari a -1.Successivamente dobbiamo verificare se l’obiettivo del problema duale e illi-mitato o, equivalentemente, se il problema primale ha regione ammissibilevuota. Perche questo accada si deve avere che in almeno una delle equa-zioni in cui il termine noto e negativo, i coefficienti delle variabili fuoribase sono tutti non positivi. Ma in (4.14) l’unica equazione con terminenoto negativo e quella relativa a x3 e in questa equazione la variabile x1 hacoefficiente positivo pari a 2.A questo punto dobbiamo scegliere la variabile da far uscire dalla base. Lascelta ricade su quella con termine noto piu piccolo e quindi sulla x3.Ora dobbiamo scegliere la variabile da far entrare in base. Utilizzando laregola (4.13), la scelta e ristretta alla sola variabile x1, la sola ad averecoefficiente positivo nell’equazione relativa alla variabile x3.Infine dobbiamo eseguire l’operazione di cardine facendo uscire dalla base x3

e facendovi entrare x1. La riformulazione rispetto alla nuova base {x1, x4}e la seguente:

max −3/2 − 1/2x3 − 7/2x2

x1 = 1/2 + 1/2x3 + 1/2x2

x4 = 3/2 − 1/2x3 − 3/2x2

x1, x2, x3, x4 ≥ 0

70

Page 72: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Come previsto, si mantiene l’ammissibilita duale. Ma ora si ha anche chela nuova base soddisfa la condizione di ottimalita (tutti i termini noti nonnegativi). Quindi la nuova base e ottima e il problema primale ha soluzioneottima:

x∗1 = 1/2 x∗

4 = 3/2 x∗2 = x∗

3 = 0,

con valore ottimo pari a −3/2.

Come esercizio si provi a risolvere il seguente problema di PL con il sim-plesso duale, partendo dalla base {x3, x4, x5}:

max −3x1 − 2x2 + x3

2x1 + x2 + x3 = 2

x1 + 2x2 + x4 = 2

−x1 − x2 + x5 = −2

x1, x2, x3, x4, x5 ≥ 0

4.2 Duale di un problema di PL generico

Abbiamo visto sino ad ora come si determina il duale di un problema di PLin forma standard. E possibile pero determinare il duale anche di proble-mi di PL in forma piu generale. Si puo fare cio riconducendo dapprima ilproblema in forma standard, come gia accennato in precedenza per l’indi-viduazione del duale del problema duale (4.2). Tuttavia qui daremo alcuneregole per determinare in modo diretto il duale di un problema di PL informa generica, senza doversi ricondurre alla forma standard. Come per iproblemi in forma standard, vi sara una stretta relazione tra le variabili diun problema ed i vincoli dell’altro. Piu precisamente avremo, come per laforma standard, che:

1. nel primale ci sono n variabili esattamente come nel duale vi sono nvincoli. Inoltre, i coefficienti del j-esimo vincolo del duale coincidonocon i coefficienti della variabile xj nei vincoli del primale, mentre iltermine noto del j-esimo vincolo del duale coincide con il coefficientedi xj nell’obiettivo del primale.

2. Nel primale vi sono m vincoli esattamente come nel duale vi sonom variabili. Inoltre, i coefficienti dell’i-esima variabile ui del dualecoincidono con i coefficienti dell’i-esimo vincolo del primale, mentre ilcoefficiente di ui nell’obiettivo del duale coincide con il termine notodell’i-esimo vincolo del primale.

71

Page 73: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Tabella 4.1:min max

variabile ≥ 0 vincolo ≤variabile ≤ 0 vincolo ≥

variabile libera vincolo =vincolo ≥ variabile ≥ 0vincolo ≤ variabile ≤ 0vincolo = variabile libera

Rispetto alla forma standard quello che puo cambiare sono i versi delledisequazioni ed i segni delle variabili. Per stabilire questi ci si puo rifareallo specchietto nella Tabella 4.1. Lo specchietto ci dice, per esempio, chese il primale e un problema di massimo ed una variabile e nel primale ≥ 0,allora il vincolo corrispondente del duale e di ≥, oppure che se il primale eun problema di minimo ed un vincolo del primale e di =, allora la variabilecorrsipondente del duale e libera in segno (puo assumere sia valori negativiche positivi). Come esercizio, si usi lo specchietto per verificare che il dualedel seguente problema di PL

min x1 + 2x2 + 3x3

x1 + x2 − x3 ≤ 1

x1 − 2x2 + x3 ≥ 2 (4.15)

x1 − x2 − x3 = 4

x1 ≥ 0, x2 ≤ 0, x3 libera

e il seguente

max u1 + 2u2 + 4u3

u1 + u2 + u3 ≤ 1

u1 − 2u2 − u3 ≥ 2 (4.16)

−u1 + u2 − u3 = 3

u1 ≤ 0, u2 ≥ 0, u3 libera

I risultati delle Osservazioni 12-15 e quelli del I e II teorema della dualitapossono essere estesi anche a problemi di PL in forma piu generale e ai loroduali. Ad esempio, a conferma della validita dell’Osservazione 15 si calcoliil duale del duale del problema (4.16) e si verifichi che coincide proprio con(4.16).

72

Page 74: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Capitolo 5

Analisi di sensitivita

I coefficienti cha appaiono in un problema di PL non sono sempre dei va-lori esatti ma piuttosto delle stime. Inoltre, anche quando si tratta di datiesatti succede spesso che dopo aver ottenuto la soluzione ottima del pro-blema ci si chiede che cosa succederebbe modificando un qualche dato delproblema. Questo ci spinge a porci la seguente domanda: se i coefficientivengono modificati, come cambiano la soluzione ottima e il valore ottimodel nostro problema? In altre parole, la soluzione ottima e il valore ottimodel nostro problema quanto sono sensibili a modifiche dei valori dei coef-ficienti? L’analisi di sensitivita si occupa della risposta a tali domande.Supponiamo di avere il nostro problema di PL in forma standard:

max cx

Ax = b

x ≥ 0

e di aver stabilito che una base ottima del problema e B∗. Avremo quindila seguente riformulazione rispetto alla base B∗:

max cB∗A−1B∗b + (cN∗ − cB∗A−1

B∗AN∗)xN∗

xB∗ = A−1B∗b − A−1

B∗AN∗xN∗ (5.1)

xB∗ ,xN∗ ≥ 0

Avremo inoltre che una soluzione ottima del primale e:

xB∗ = A−1B∗b xN∗ = 0,

mentre per il duale si ha la soluzione ottima:

uB∗

= cB∗A−1B∗ .

73

Page 75: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Entrambi i problemi hanno valore ottimo:

cB∗A−1B∗b.

A questo punto vediamo cosa succede modificando diversi tipi di coefficien-ti. Ci limiteremo ad analizzare l’effetto di modifiche di singoli coefficientima l’analisi puo essere estesa anche alla modifica in contemporanea di piucoefficienti.

5.1 Modifica di un termine noto

Supponiamo che il termine noto br di un dato vincolo venga modificatoin br + ∆br, dove ∆br e un certo valore reale (puo essere sia positivo chenegativo). Avremo quindi al posto del vettore b il vettore b le cui compo-nenti sono tutte uguali a quelle del vettore b, tranne la r-esima che diventabr + ∆br. Andando a sostituire nella riformulazione (5.1), si ottiene:

max cB∗A−1B∗b + (cN∗ − cB∗A−1

B∗AN∗)xN∗

xB∗ = A−1B∗b − A−1

B∗AN∗xN∗

xB∗ ,xN∗ ≥ 0

Si possono avere due casi:

Caso 1 Il vettore A−1B∗b ha delle componenti negative. Cio vuol dire che

la modifica del termine noto ha reso la soluzione di base del primaleassociata a B∗ non ammissibile. Tuttavia, la condizione

cN∗ − cB∗A−1B∗AN∗ ≤ 0,

che non dipende dai termini noti, continua ad essere soddisfatta equindi la soluzione di base del duale associata a B∗ continua ad es-sere ammissibile. E importante sottolineare come non sia necessariorisolvere il nuovo problema da zero, visto che, sfruttando l’ammis-sibilita della soluzione di base del duale associata a B∗, possiamoapplicare il simplesso duale con base iniziale proprio B∗. In questomodo si arriva tipicamente ad una soluzione del problema modificatoin tempi molto piu rapidi che non risolvendolo da zero.

Caso 2 Si ha che:A−1

B∗b ≥ 0.

Quindi la soluzione di base del primale associata a B∗ continua adessere ammissibile. Come nel Caso 1, la soluzione di base del duale

74

Page 76: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

associata a B∗ resta ammissibile. Poiche entrambe le soluzioni dibase sono ammissibili, si ha che la base B∗ e ancora ottima. Lanuova soluzione ottima del primale diventa

xB∗ = A−1B∗b xN∗ = 0,

mentre quella del duale resta invariata e cioe pari a cB∗A−1B∗ . Vediamo

ora come cambia il valore ottimo rispetto a prima. Il nuovo valoreottimo e cB∗A−1

B∗b e quindi la differenza rispetto al precedente e paria:

cB∗A−1B∗b − cB∗A−1

B∗b = uB∗

(b − b) =

m∑

i=1

uB∗

i (bi − bi).

Poiche:bi = bi ∀ i 6= r br = br + ∆br,

avremo:

cB∗A−1B∗b − cB∗A−1

B∗ = uB∗

r (br − br) = uB∗

r ∆br.

Questo ci da una interpretazione della soluzione ottima del duale: ilvalore della r-esima variabile nella soluzione ottima del duale misurala rapidita con cui cambia il valore ottimo del problema al variare deltermine noto br del vincolo r-esimo del primale. Se il valore di uB∗

r

e elevato, anche piccole modifiche di br possono portare a consistentivariazioni del valore ottimo. Se invece il valore di uB∗

r e piccolo,il valore ottimo del problema non e molto sensibile a variazioni deltermine noto br.

5.2 Modifica del coefficiente di costo di una

variabile al di fuori della base ottima

Supponiamo che venga modificato il coefficiente di costo di una delle va-riabili fuori base xim+j

, j = 1, . . . , n − m, ad esempio la variabile xim+t.

Avremo quindi al posto del vettore cN∗ il vettore cN∗ le cui componen-ti sono tutte uguali a quelle del vettore cN∗ , tranne quella relativa allavariabile xim+t

. Andando a sostituire nella riformulazione (5.1), si ottiene:

max cB∗A−1B∗b + (cN∗ − cB∗A−1

B∗AN∗)xN∗

xB∗ = A−1B∗b − A−1

B∗AN∗xN∗

xB∗ ,xN∗ ≥ 0

Si possono avere ancora due casi:

75

Page 77: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Caso 1 Il vettorecN∗ − cB∗A−1

B∗AN∗ ,

ha delle componenti positive. Questo vuol dire che la soluzione dibase del duale associata a B∗ non e piu ammissibile. Resta inveceammissibile la soluzione di base del primale associata a B∗

xB∗ = A−1B∗b, xN∗ = 0,

che non e influenzata dalla modifica introdotta. Quindi, anche quinon e necessario risolvere il nuovo problema da zero, ma, sfruttandol’ammissibilita della soluzione di base del primale associata a B∗,possiamo applicare questa volta il simplesso primale con base inizialeproprio B∗. Si puo anche dimostrare che la prima variabile che entrerain base sara proprio la variabile xim+t

. Perche?

Caso 2 Si ha che:cN∗ − cB∗A−1

B∗AN∗ ≤ 0,

Quindi la soluzione di base del duale associata a B∗ continua adessere ammissibile. Come nel Caso 1, la soluzione di base del primaleassociata a B∗ resta ammissibile. Poiche entrambe le soluzioni dibase sono ammissibili, si ha che la base B∗ e ancora ottima. Lesoluzioni ottime del primale e del duale restano invariate in quantonon dipendono dalla modifica introdotta. Lo stesso vale per il valoreottimo comune dei due problemi.

5.3 Modifica del coefficiente di costo di una

variabile appartenente alla base ottima

Supponiamo che venga modificato il coefficiente di costo di una delle va-riabili in base xir

, r = 1, . . . ,m, ad esempio la variabile xis, che passa da

cisa cis

+ ∆cis. Avremo quindi al posto del vettore cB∗ il vettore cB∗

le cui componenti sono tutte uguali a quelle del vettore cB∗ , tranne quellarelativa alla variabile xis

. Andando a sostituire nella riformulazione (5.1),si ottiene:

max cB∗A−1B∗b + (cN∗ − cB∗A−1

B∗AN∗)xN∗

xB∗ = A−1B∗b − A−1

B∗AN∗xN∗

xB∗ ,xN∗ ≥ 0

Si possono avere ancora due casi:

76

Page 78: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Caso 1 Il vettorecN∗ − cB∗A−1

B∗AN∗ ,

ha delle componenti positive. Questo vuol dire che la soluzione dibase del duale associata a B∗ non e piu ammissibile. Resta inveceammissibile la soluzione di base del primale associata a B∗

xB∗ = A−1B∗b, xN∗ = 0,

che non e influenzata dalla modifica introdotta. Quindi, al solito,non e necessario risolvere il nuovo problema da zero, ma, sfruttandol’ammissibilita della soluzione di base del primale associata a B∗,possiamo applicare il simplesso primale con base iniziale proprio B∗.

Caso 2 Si ha che:cN∗ − cB∗A−1

B∗AN∗ ≤ 0,

Quindi la soluzione di base del duale associata a B∗ continua adessere ammissibile. Come nel Caso 1, la soluzione di base del primaleassociata a B∗ resta ammissibile. Poiche entrambe le soluzioni di basesono ammissibili, si ha che la base B∗ e ancora ottima. La soluzioneottima del primale, che non dipende dalla modifica introdotta, restainvariata, mentre la nuova soluzione ottima del duale e

uB∗

= cB∗A−1B∗ .

Vediamo anche come cambia il valore ottimo comune dei due proble-mi.

cB∗A−1B∗b−cB∗A−1

B∗b = (cB∗−cB∗)A−1B∗b = (cB∗−cB∗)xB∗ = ∆cis

x∗is

.

Quindi la variazione e data dal prodotto tra la perturbazione ∆cisdel

coefficiente di costo della variabile xised il valore della stessa variabile

xisin corrispondenza della soluzione ottima del primale.

5.4 Modifica di un coefficiente della matrice

AN∗

Supponiamo ora che venga modificato un coefficiente della matrice AN∗ ,la matrice ottenuta da A considerando le sole colonne relative a variabilifuori base. Sia AN∗ la nuova matrice ottenuta dopo la modifica. Andandoa sostituire nella riformulazione (5.1), si ottiene:

max cB∗A−1B∗b + (cN∗ − cB∗A−1

B∗AN∗)xN∗

xB∗ = A−1B∗b − A−1

B∗AN∗xN∗

xB∗ ,xN∗ ≥ 0

77

Page 79: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Si possono avere ancora due casi:

Caso 1 Il vettorecN∗ − cB∗A−1

B∗AN∗ ,

ha delle componenti positive. Questo vuol dire che la soluzione dibase del duale associata a B∗ non e piu ammissibile. Resta inveceammissibile la soluzione di base del primale associata a B∗

xB∗ = A−1B∗b, xN∗ = 0,

che non e influenzata dalla modifica introdotta. Quindi, anche quinon e necessario risolvere il nuovo problema da zero, ma, sfruttandol’ammissibilita della soluzione di base del primale associata a B∗,possiamo applicare il simplesso primale con base iniziale proprio B∗.

Caso 2 Si ha che:cN∗ − cB∗A−1

B∗AN∗ ≤ 0,

Quindi la soluzione di base del duale associata a B∗ continua adessere ammissibile. Come nel Caso 1, la soluzione di base del primaleassociata a B∗ resta ammissibile. Poiche entrambe le soluzioni dibase sono ammissibili, si ha che la base B∗ e ancora ottima. Lesoluzioni ottime del primale e del duale restano invariate in quantonon dipendono dalla modifica introdotta. Lo stesso vale per il valoreottimo comune dei due problemi.

5.5 Modifica di un coefficiente della matrice

AB∗

Supponiamo ora che venga modificato un coefficiente della matrice AB∗ ,la matrice ottenuta da A considerando le sole colonne relative a variabilinella base B∗. A questo caso accenniamo solo brevemente solo per farnotare che e il piu complicato tra quelli visti. Sia AB∗ la nuova matriceottenuta dopo la modifica. Il primo inconveniente che si puo verificare eche AB∗ non sia invertibile. A questo punto B∗ non e piu neppure unabase. Ma vediamo cosa puo succedere anche nel caso fortunato in cui AB∗

sia invertibile. Andando a sostituire nella riformulazione (5.1), si ottiene:

max cB∗A−1

B∗b + (cN∗ − cB∗A−1

B∗AN∗)xN∗

xB∗ = A−1

B∗b − A−1

B∗AN∗xN∗

xB∗ ,xN∗ ≥ 0

78

Page 80: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Si puo avere che il vettore:

A−1

B∗b

ha componenti negative, mentre il vettore

cN∗ − cB∗A−1

B∗AN∗

ha componenti positive. In altre parole, ne la soluzione di base del primaleassociata a B∗, ne quella del duale sono ammissibili. Di conseguenza, nonpossiamo applicare ne il simplesso duale ne quello primale con base inizialeB∗.

5.6 Un esempio

Si consideri il problema di PL

max −x1 − x2 + 2x3 + 3x4

2x1 + x2 + 2x3 = 1

x1 + 2x2 + x3 + x4 = 1

x1, x2, x3, x4 ≥ 0

Si puo vedere che la base ottima e B∗ = {x3, x4}. Quindi avremo N∗ ={x1, x2},

AB∗ =

[2 01 1

]

A−1B∗ =

[1/2 0

−1/2 1

]

AN∗ =

[2 11 2

]

cB∗ = (2 3) cN∗ = (−1 − 1) b = (1 1).

La soluzione ottima del primale e:

(x∗3 x∗

4) = A−1B∗b = (1/2 1/2) (x∗

1 x∗2) = (0 0).

Quella del duale e:

(u∗1 u∗

2) = cB∗A−1B∗ = (−1/2 3).

Il valore ottimo comune dei due problemi e

cB∗A−1B∗b = 5/2.

Vediamo ora di apportare alcune modifiche nei coefficienti del problema edi studiare gli effetti di queste modifiche.

79

Page 81: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Modifica di un termine noto

Introduciamo la perturbazione ∆b2 = −3/4 del termine noto della secondaequazione. Quindi il valore b2 diventa pari a 1/4 e il nuovo vettore deitermini noti e:

b = (1 1/4).

Si ha che:A−1

B∗b = (1/2 − 1/4)

e quindi la soluzione di base del primale associata a B∗ non e piu ammissi-bile. Ma la soluzione di base del duale uB∗

associata a B∗ resta invariatae continua ad essere ammissibile. Quindi possiamo applicare il simplessoduale con base iniziale B∗.

Introduciamo ora la perturbazione ∆b2 = 1/4 del termine noto della se-conda equazione. Quindi il valore b2 diventa pari a 5/4 e il nuovo vettoredei termini noti e:

b = (1 5/4).

Si ha che:A−1

B∗b = (1/2 3/4).

La soluzione di base del primale associata a B∗ e ancora ammissibile. Restainvariata la soluzione di base del duale uB∗

associata a B∗ e quindi continuaad essere ammissibile. Quindi le due soluzioni sono ottime per i rispettiviproblemi. La nuova soluzione ottima del primale e:

x∗3 = 1/2 x∗

4 = 3/4 x∗1 = x∗

2 = 0.

Il valore ottimo dei due problemi viene modificato della quantita:

u∗2∆b2 = 3 × 1/4 = 3/4,

e quindi il valore ottimo passa da 5/2 a 13/4.

Modifica del coefficiente di costo di una variabile fuori base

Introduciamo la perturbazione ∆c1 = 4 del coefficiente di costo della va-riabile fuori base x1. Quindi il valore c1 diventa pari a 3 e il nuovo vettoredei costi delle variabili fuori base e:

cN∗ = (3 − 1).

Si ha che:

cN∗ − cB∗A−1B∗AN∗ = (3 − 1) − (2 11/2) = (1 − 13/2).

80

Page 82: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

e quindi la soluzione di base del duale associata a B∗ non e piu ammissibile.Ma la soluzione di base del primale associata a B∗ resta invariata e continuaad essere ammissibile. Quindi possiamo applicare il simplesso primale conbase iniziale B∗. Possiamo anche dire che la prima variabile ad entrare inbase sara certamente la x1. Perche?

Introduciamo ora la perturbazione ∆c1 = 2 del coefficiente di costo del-la variabile fuori base x1. Quindi il valore c1 diventa pari a 1 e il nuovovettore dei costi delle variabili fuori base e:

cN∗ = (1 − 1).

Si ha che:

cN∗ − cB∗A−1B∗AN∗ = (1 − 1) − (2 11/2) = (−1 − 13/2).

La soluzione di base del duale associata a B∗ e ancora ammissibile. Restainvariata la soluzione di base del primale associata a B∗ e quindi continuaad essere ammissibile. Quindi le due soluzioni sono ottime per i rispet-tivi problemi. Le due soluzioni ottime ed il valore ottimo non subisconomodifiche.

Modifica del coefficiente di costo di una variabile appartenente

alla base

Introduciamo la perturbazione ∆c3 = −4 del coefficiente di costo dellavariabile in base x3. Quindi il valore c3 diventa pari a −2 e il nuovo vettoredei costi delle variabili in base e:

cB∗ = (−2 3).

Si ha che:

cN∗ − cB∗A−1B∗AN∗ = (−1 − 1) − (−2 7/2) = (1 − 9/2).

e quindi la soluzione di base del duale associata a B∗ non e piu ammissibile.Ma la soluzione di base del primale associata a B∗ resta invariata e continuaad essere ammissibile. Quindi possiamo applicare il simplesso primale conbase iniziale B∗.

Introduciamo ora la perturbazione ∆c3 = −1 del coefficiente di costo dellavariabile in base x3. Quindi il valore c3 diventa pari a 1 e il nuovo vettoredei costi delle variabili in base e:

cB∗ = (1 3).

81

Page 83: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Si ha che:

cN∗ − cB∗A−1B∗AN∗ = (−1 − 1) − (1 5) = (−2 − 6).

La soluzione di base del duale associata a B∗ e ancora ammissibile. Restainvariata la soluzione di base del primale associata a B∗ e quindi continuaad essere ammissibile. Quindi le due soluzioni sono ottime per i rispettiviproblemi. Le nuova soluzione ottima del duale e:

uB∗

= cB∗A−1B∗ = (−1 3).

Il valore ottimo dei due problemi viene modificato della quantita:

x∗3∆c3 = 1/2(−1) = −1/2,

e quindi il valore ottimo passa da 5/2 a 2.

Modifica di un coefficiente della matrice AN∗

Introduciamo la perturbazione ∆a11 = 8 del coefficiente associato alla va-riabile fuori base x1 nel primo vincolo. Quindi il valore a11 diventa pari a10 ed avremo la seguente nuova matrice:

AN∗ =

[10 11 2

]

Si ha che:

cN∗ − cB∗A−1B∗AN∗ = (−1 − 1) − (−2 11/2) = (1 − 13/2).

e quindi la soluzione di base del duale associata a B∗ non e piu ammissibile.Ma la soluzione di base del primale associata a B∗ resta invariata e continuaad essere ammissibile. Quindi possiamo applicare il simplesso primale conbase iniziale B∗.

Introduciamo ora la perturbazione ∆a11 = 2 del coefficiente associato allavariabile fuori base x1 nel primo vincolo. Quindi il valore a11 diventa paria 4 ed avremo la seguente nuova matrice:

AN∗ =

[4 11 2

]

Si ha che:

cN∗ − cB∗A−1B∗AN∗ = (−1 − 1) − (1 11/2) = (−2 − 13/2).

82

Page 84: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

La soluzione di base del duale associata a B∗ e ancora ammissibile. Restainvariata la soluzione di base del primale associata a B∗ e quindi continuaad essere ammissibile. Quindi le due soluzioni sono ottime per i rispet-tivi problemi. Le due soluzioni ottime ed il valore ottimo non subisconomodifiche.

Modifica di un coefficiente della matrice AB∗

Introduciamo la perturbazione ∆a24 = −1 del coefficiente associato allavariabile in base x4 nel secondo vincolo. Quindi il valore a24 diventa pari a0 ed avremo la seguente nuova matrice:

AB∗ =

[2 01 0

]

Come si vede la nuova matrice non e invertibile e quindi B∗ non e piu unabase.

5.7 L’esempio del problema degli aiuti uma-

nitari

Nelle prime lezioni abbaimo introdotto il problema degli aiuti umanitari,che ha la seguente formulazione come problema di PL:

max 14x1 + 5x2 + 4x3

10x1 + 30x2 + 20x3 ≤ 5100

10x1 + 20x2 + 40x3 ≤ 8000

30x1 + 10x2 + 5x3 ≤ 1805

x1, x2, x3 ≥ 0

Il problema e in forma canonica ma con l’aggiunta delle variabili nonnegative y1, y2, y3 lo si puo ricondurre alla forma standard:

max 14x1 + 5x2 + 4x3

10x1 + 30x2 + 20x3 + y1 = 5100

10x1 + 20x2 + 40x3 + y2 = 8000 (5.2)

30x1 + 10x2 + 5x3 + y3 = 1805

x1, x2, x3, y1, y2, y3 ≥ 0

Partendo dalla base ammissibile B0 = {y1, y2, y3} si puo applicare il metododel simplesso e si giunge alla base ottima B∗ = {y1, x3, x1} con la seguente

83

Page 85: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

riformulazione rispetto ad essa:

max 1164 − 123y2 − 52

115y3 − 923x2

y1 = 960 + 423y3 + 11

23y2 − 43023 x2

x3 = 193 + 1115y3 − 3

115y2 − 1023x2 (5.3)

x1 = 28 − 4115y3 + 1

230y2 − 623x2

x1, x2, x3, y1, y2, y3 ≥ 0

Da qui si vede immediatamente che la soluzione ottima (unica) del primalee:

y∗1 = 960 x∗

3 = 193 x∗1 = 28 x∗

2 = y∗2 = y∗

3 = 0.

Essendo partiti con la base B0 le cui variabili formano la matrice identicanella formulazione originaria (5.2), posso, con il metodo visto in precedenza,leggere la matrice A−1

B∗ dalla riformulazione (5.3):

A−1B∗ =

1 − 1123 − 4

230 3

115 − 1115

0 − 1230

4115

La soluzione di base del duale uB∗

associata a B∗ sara soluzione ottima delduale:

uB∗

= cB∗A−1B∗ = (0 4 14)A−1

B∗ =

(

01

23

52

115

)

(per esercizio si ricavi la stessa soluzione anche attraverso le condizioni dicomplementarita).

5.7.1 Modifiche nei dati del problema

Tra i dati del problema degli aiuti umanitari alcuni sono esatti mentre altrisono delle stime. In particolare, la disponibilita di farina, acqua e medici-nali e i contenuti di ciascun tipo di pacco sono dati esatti, mentre i valoridi utilita sono stime. Ora, se ho a che fare con dati stimati e importantechiedersi quanto la mia soluzione sia sensibile al valore di tali dati. Peresempio, il valore stimato dell’utilita del pacco di tipo I e 14 ma mi possochiedere come cambiano la soluzione ottima e il valore ottimo del problemase il valore di utilita passa da 14 a 13 oppure a 15. Se queste modifichelasciano sostanzialmente invariata la soluzione ottima del mio problema,allora vuol dire che questa e poco sensibile a modifiche del dato stimato edi conseguenza possiamo aspettarci conclusioni corrette anche usando unastima non troppo precisa. Viceversa, se le modifiche comportano notevo-li cambiamenti nella soluzione ottima, allora vuol dire che questa e molto

84

Page 86: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

sensibile a modifiche del dato ed in tal caso per avere conclusioni corretteoccorre avere una stima molto precisa del dato. Quindi, in presenza di datistimati e importante riuscire a capire che cosa succede quando apporto adessi delle modifiche.

Ma non e questo l’unico caso in cui voglio sapere cosa succede se modi-fico un qualche dato. Nel nostro esempio degli aiuti umanitari posso, dopoaver risolto il problema, chiedermi cosa succede se riesco a procurarmi, adesempio, altri 100 sacchi di farina portando quindi la disponibilita di questada 5100 a 5200 sacchi. Anche in questo caso vogliamo vedere quale impattoavrebbe sulla soluzione ottima del nostro problema la modifica di un datodel problema stesso.

L’analisi di sensitivita si occupa proprio di studiare gli effetti di modifichenei dati del problema e vedremo ora come funziona modificando singolar-mente alcuni dati del nostro problema.

Modifica di un termine noto

Vediamo cosa succede se modifico la disponibilita di acqua (che attualmen-te e b2 = 8000) prima incrementandola di 1150 unita (∆b2 = 1150) e poi di2300 unita (∆b2 = 2300).

∆b2 = 1150 Il nuovo vettore di termini noti sara:

b = (5100 9150 1805).

Nella riformulazione rispetto a B∗ le uniche parti che vengono modificatesono i termini noti dei vincoli che diventeranno:

A−1B∗b = (410 223 23)

e il valore dell’obiettivo, che viene modificato della quantita:

u∗2∆b2 =

1

231150 = 50,

e quindi passa da 1164 a 1214. La soluzione di base del primale associataa B∗ e ancora ammissibile. Resta invariata la soluzione di base del dualeuB∗

associata a B∗ e quindi continua ad essere ammissibile. Quindi le duesoluzioni sono ottime per i rispettivi problemi. La nuova soluzione ottimadel primale e:

x∗1 = 223 x∗

3 = 23 y∗1 = 410 x∗

2 = y∗2 = y∗

3 = 0.

85

Page 87: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Il valore ottimo dei due problemi e ora 1214.

∆b2 = 2300 Il nuovo vettore di termini noti sara:

b = (5100 10300 1805).

Nella riformulazione rispetto a B∗ le uniche parti che vengono modificatesono i termini noti dei vincoli che diventeranno:

A−1B∗b = (−140 253 18)

e il valore dell’obiettivo, che viene modificato della quantita:

u∗2∆b2 =

1

232300 = 100,

e quindi passa da 1164 a 1264. La riformulazione rispetto a tale base sarala seguente:

max 1264 − 123y2 − 52

115y3 − 923x2

y1 = −140 + 423y3 + 11

23y2 − 43023 x2

x3 = 253 + 1115y3 − 3

115y2 − 1023x2

x1 = 18 − 4115y3 + 1

230y2 − 623x2

x1, x2, x3, y1, y2, y3 ≥ 0

La soluzione di base del primale associata a B∗ non e piu ammissibile. Mala soluzione di base del duale uB∗

associata a B∗ resta invariata e continuaad essere ammissibile. Quindi possiamo applicare il simplesso duale conbase iniziale B∗.

Vediamo anche che cosa succede se apporto la modifica ∆b1 = 100, ov-vero incremento di 100 unita la disponibilita di sacchi di farina. Si puoverificare che il nuovo vettore di termini noti sara:

b = (5200 8000 1805).

Nella riformulazione rispetto a B∗ le uniche parti che vengono modificatesono i termini noti dei vincoli che diventeranno:

A−1B∗b = (1060 193 28)

Quindi la base B∗ e ancora ottima. Il valore dell’obiettivo viene modificatodella quantita:

u∗1∆b1 = 0 ∗ 100 = 0,

86

Page 88: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

e quindi resta invariato. Cio ci dice che avere 100 sacchi di farina in piu nonmigliora le cose. Questo lo si poteva intuire anche analizzando quello chesuccedeva in corrispondenza della soluzione ottima trovata. Mentre in talesoluzione acqua e medicinali venivano usati in modo completo, restavanoinvece inutilizzati 960 sacchi di farina. Ne consegue che, se gia con 5100sacchi di farina si avevano delle eccedenze, non e aumentando il numero ditali sacchi che possiamo sperare di migliorare il valore ottimo, ma piuttso-sto dovremo incrementare il numero di bottiglie d’acqua e/o di scatole dimedicinali.

Modifica del coefficiente di costo di una variabile fuori base

Vediamo cosa succede se modifico delle quantita ∆cx2= −1 e ∆cx2

= 1il valore di utilita della variabile fuori base x2 (e quindi dei pacchi di tipoII). La nuova riformulazione rispetto a B∗ e identica a (5.3) con la soladifferenza che nell’obiettivo si deve aggiungere il termine ∆cx2

x2.

∆cx2= −1 La nuova riformulazione rispetto a B∗ e la seguente:

max 1164 − 123y2 − 52

115y3 −(

923 + 1

)x2

y1 = 960 + 423y3 + 11

23y2 − 43023 x2

x3 = 193 + 1115y3 − 3

115y2 − 1023x2

x1 = 28 − 4115y3 + 1

230y2 − 623x2

x1, x2, x3, y1, y2, y3 ≥ 0

La soluzione di base del duale associata a B∗ e ancora ammissibile. Restainvariata la soluzione di base del primale associata a B∗ e quindi continuaad essere ammissibile. Quindi le due soluzioni sono ottime per i rispettiviproblemi. Le due soluzioni ottime ed il valore ottimo non subiscono modi-fiche.

∆cx2= 1 La nuova riformulazione rispetto a B∗ e la seguente:

max 1164 − 123y2 − 52

115y3 +(1 − 9

23

)x2

y1 = 960 + 423y3 + 11

23y2 − 43023 x2

x3 = 193 + 1115y3 − 3

115y2 − 1023x2

x1 = 28 − 4115y3 + 1

230y2 − 623x2

x1, x2, x3, y1, y2, y3 ≥ 0

La soluzione di base del duale associata a B∗ non e piu ammissibile. Ma lasoluzione di base del primale associata a B∗ resta invariata e continua ad

87

Page 89: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

essere ammissibile. Quindi possiamo applicare il simplesso primale con baseiniziale B∗. Possiamo anche dire che la prima variabile ad entrare in basesara certamente la x2 (e l’unica con coefficiente di costo ridotto positivo).

Modifica del coefficiente di costo di una variabile appartenente

alla base

Vediamo cosa succede se modifico delle quantita ∆cx1= 1 e ∆cx1

= −2 ilvalore di utilita della variabile in base x1 (e quindi dei pacchi di tipo I). Lanuova riformulazione rispetto a B∗ e identica a (5.3) con la sola differenzache nell’obiettivo si deve aggiungere il termine

∆cx1x1 = ∆cx1

(

28 − 4

115y3 +

1

230y2 −

6

23x2

)

.

∆cx1= 1 La nuova riformulazione rispetto a B∗ e la seguente:

max 1192 − 9230y2 − 56

115y3 − 1523x2

y1 = 960 + 423y3 + 11

23y2 − 43023 x2

x3 = 193 + 1115y3 − 3

115y2 − 1023x2

x1 = 28 − 4115y3 + 1

230y2 − 623x2

x1, x2, x3, y1, y2, y3 ≥ 0

La soluzione di base del duale associata a B∗ e ancora ammissibile. Restainvariata la soluzione di base del primale associata a B∗ e quindi continuaad essere ottima. Il nuovo valore dell’obiettivo varia rispetto al precedentedella quantita ∆cx1

x∗1 = 1 ∗ 28 = 28. La nuova soluzione ottima del duale

sara data da

cB∗A−1B∗ =

(

09

230

56

115

)

∆cx1= −2 La nuova riformulazione rispetto a B∗ e la seguente:

max 1108 − 12230y2 − 44

115y3 + 323x2

y1 = 960 + 423y3 + 11

23y2 − 43023 x2

x3 = 193 + 1115y3 − 3

115y2 − 1023x2

x1 = 28 − 4115y3 + 1

230y2 − 623x2

x1, x2, x3, y1, y2, y3 ≥ 0

88

Page 90: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

In tal caso B∗ non e piu ammissibile per il duale. Ma la soluzione di basedel primale associata a B∗ resta invariata e continua ad essere ammissibile.Quindi possiamo applicare il simplesso primale con base iniziale B∗.

Modifica di un coefficiente della matrice AN∗

Vediamo cosa succede se modifico il numero di bottiglie d’acqua nei pacchidi tipo II (attualmente pari a 20) delle quantita ∆a22 = −10 e ∆a22 = 10.Quindi modifico il coefficiente della variabile x2 nel secondo vincolo (quel-lo dell’acqua) delle quantita indicate. Nella nuova riformulazione rispettoa B∗ l’espressione dell’obiettivo viene modificato come segue: si prende ilvalore ottimo della variabile duale associata al vincolo in cui si e apportatala modifica (qui uB∗

2 = 123 ); si moltiplica tale valore per la modifica ap-

portata (∆a22) e per la variabile il cui coefficiente e stato modificato (quix2); si sottrae il risultato uB∗

2 ∆a22x2 nell’espressione dell’obiettivo. Nellariformulazione dovro anche modificare i coefficienti di x2 nei vincoli (tut-ti gli altri coefficienti restano invariati). I nuovi coefficienti sono dati dalseguente prodotto:

−A−1B∗

3020 + ∆a22

10

∆a22 = 10 Si ha

−uB∗

2 ∆a22x2 = −10

23x2

e

−A−1B∗

303010

=

− 32023

− 80115

− 25115

Quindi la riformulazione rispetto a B∗ e la seguente:

max 1164 − 123y2 − 52

115y3 − 1923x2

y1 = 960 + 423y3 + 11

23y2 − 32023 x2

x3 = 193 + 1115y3 − 3

115y2 − 80115x2

x1 = 28 − 4115y3 + 1

230y2 − 25115x2

x1, x2, x3, y1, y2, y3 ≥ 0

La base B∗ e ancora ottima. Le soluzioni ottime del primale e del dualerimangono invariate e lo stesso accade al valore ottimo.

89

Page 91: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

∆a22 = −10 Si ha

−uB∗

2 ∆a22x2 =10

23x2

e

−A−1B∗

301010

=

− 54023

− 20115

− 35115

Quindi la riformulazione rispetto a B∗ e la seguente:

max 1164 − 123y2 − 52

115y3 + 123x2

y1 = 960 + 423y3 + 11

23y2 − 54023 x2

x3 = 193 + 1115y3 − 3

115y2 − 20115x2

x1 = 28 − 4115y3 + 1

230y2 − 35115x2

x1, x2, x3, y1, y2, y3 ≥ 0

La base B∗ non e piu ottima ma e ancora ammissibile per il primale. Quindiposso applicare il simplesso primale a partire da tale base.

90

Page 92: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Capitolo 6

Programmazione Lineare

Intera

Fino ad ora abbiamo affrontato problemi in cui le variabili potevano assu-mere valori reali. Ora invece ci concentreremo su problemi in cui le variabilipossono assumere solo valori interi. Questi problemi vengono chiamati pro-blemi di Programmazione Lineare Intera (abbreviata con PLI nel seguito).Nel seguito ci occuperemo di alcuni risultati teorici sulla PLI e introdurremodue approcci di risoluzione per questo tipo di problemi.

6.1 Relazione tra un problema lineare intero

e il suo rilassamento lineare

Si consideri un problema di PLI in forma standard:

w∗ = max cx

Ax = b

x ≥ 0, x ∈ In

dove I denota l’insieme degli interi. Si indichera con Za la regione ammis-sibile di questo problema, e quindi

Za = {x ∈ In : Ax = b, x ≥ 0},

e con Zott l’insieme delle sue soluzioni ottime:

Zott = {x∗ ∈ Za : cx∗ ≥ cx ∀ x ∈ Za}.

91

Page 93: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Chiameremo rilassamento lineare del problema di PLI, il problema di PLottenuto dal problema di PLI omettendo la richiesta che le variabili sianointere, e quindi

z∗ = max cx

Ax = b

x ≥ 0

Esempio 17 Si consideri il seguente problema di PLI:

max x1 + x2

x1 + 2x2 ≤ 4

2x1 + x2 ≤ 4

x1, x2 ≥ 0, x1, x2 ∈ I.

Si determinino per via grafica la soluzione del problema di PLI e del suorilassamento lineare.

Come al solito, indicheremo con Sa e Sott rispettivamente la regione ammis-sibile e l’insieme delle soluzioni ottime del rilassamento lineare del problemadi PLI. Possiamo notare che

Za ⊆ Sa

e che i due problemi hanno la stessa funzione obiettivo cx. Da cio conse-guono le seguenti relazioni tra il problema di PLI e il problema di PL suorilassamento lineare.

1. Se Sa = ∅, allora Za = ∅.2. Se l’obiettivo del problema di PLI e illimitato, allora lo e anche quello

del suo rilassamento lineare.

3. Se Sott 6= ∅ e Zott 6= ∅, allora il valore ottimo w∗ del problema diPLI non puo essere superiore al valore ottimo z∗ del suo rilassamentolineare, ovvero

w∗ ≤ z∗

4. Se Sott 6= ∅ contiene un punto x∗ a coordinate tutte intere, allorax∗ ∈ Zott e w∗ = z∗, come accade nel seguente esempio

max x2

x1 + 2x2 ≤ 4

2x1 + x2 ≤ 4

x1, x2 ≥ 0, x1, x2 ∈ I.

92

Page 94: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Altri casi possibili nelle relazioni tra un problema di PLI e il suo rilassa-mento lineare sono i seguenti.

1. Za = ∅ ma Sott 6= ∅, come nel seguente esempio:

max x2

x1 ≥ 14

x1 ≤ 34

x2 ≤ 2

x1, x2 ≥ 0, x1, x2 ∈ I.

2. Za = ∅ ma l’obiettivo del rilassamento lineare e illimitato, come nelseguente esempio:

max x2

x1 ≥ 14

x1 ≤ 34

x1, x2 ≥ 0, x1, x2 ∈ I.

3. Se A,b e c contengono solo valori razionali, allora Zott 6= ∅ implicaSott 6= ∅. Se vi sono coefficienti irrazionali allora puo accadere cheZott 6= ∅ ma il rilassamento lineare ha obiettivo illimitato, come nelseguente esempio:

max x2

x2 =√

2x1

x1, x2 ≥ 0, x1, x2 ∈ I.

dove Za (e quindi Zott) contiene la sola origine, ma l’obiettivo delrilassamento lineare e illimitato.

Un’importante osservazione e la seguente.

I problemi di PL sono in generale molto piu semplici e rapidi da risolveredei problemi di PLI 1. In particolare il rilassamento lineare di un problemadi PLI e tipicamente molto piu facile da risolvere del problema di PLI stes-so.

Questa osservazione puo spingere a risolvere i problemi di PLI con laseguente procedura:

1Nella teoria della complessita i problemi di PL sono classificati tra quelli risolvibiliin tempo polinomiale, mentre quelli di PLI sono verosimilmente solo risolvibili in tempoesponenziale

93

Page 95: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

• risolvo il rilassamento lineare del problema di PLI;

• arrotondo le variabili nella soluzione ottima che non hanno valoreintero ma decimale (se ne esistono: nel caso in cui non ne esistano lasoluzione del rilassamento lineare e anche soluzione del problema diPLI).

In realta questa procedura rischia di restituire risultati molto inesatti. Adesempio, in precedenza abbiamo visto un caso dove il rilassamento linea-re ha soluzione ottima mentre il problema di PLI ha regione ammissibilevuota. In tal caso, applicando la procedura vista sopra, restituiremmo unasoluzione ottima per un problema che non ha neppure una soluzione ammis-sibile. Va detto comunque che una procedura di questo tipo e accettabilequando si ha a che fare con variabili che assumono valori molto elevati. Senella soluzione ottima del rilassamento lineare ho una variabile con valorepari a 20000.4 e la arrotondo a 20000, posso introdurre un errore ma essen-do la parte decimale (0.4) quasi irrilevante rispetto al valore 20000.4 dellavariabile, tale errore e tipicamente trascurabile. Al contrario, con variabiliintere che assumono valori piccoli, ad esempio 1.4, l’arrotondamento a 1del valore di tale variabile puo causare errori non trascurabili, come conse-guenza del fatto che la parte decimale (0.4) non e affatto irrilevante rispettoal valore di 1.4. Questo e in particolare vero quando si ha a che fare convariabili binarie, con le quali la procedura vista sopra va certamente evitata.

Restano allora da indicare procedure di risoluzione per i problemi di PLIapplicabili in tutti i casi. Nel seguito introdurremo due metodologie di ri-soluzione per problemi di PLI: gli algoritmi di taglio e gli algoritmi branch-and-bound.

6.1.1 Un’importante osservazione: trasformazione di

un problema di PLI in forma standard

Come per i problemi di PL, e sempre possibile ricondurre un problema diPLI in forma standard. Le regole per effettuare questa trasformazione sonole stesse gia viste per i problemi di PL ma occorre prestare attenzione adun ulteriore aspetto. Vediamo di illustrare questo su un semplice esempio.Si consideri il seguente problema di PLI:

max x2

x1 ≤ 12

x2 ≤ 12

x1, x2 ≥ 0, x1, x2 ∈ I.

94

Page 96: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Se avessimo a che fare con un problema di PL potremmo trasformarlo moltosemplicemente nella forma standard con l’aggiunta di due variabili y1 e y2:

max x2

x1 + y1 = 12

x2 + y2 = 12

x1, x2, y1, y2 ≥ 0, x1, x2 ∈ I.

In questo modo ci ritroveremmo pero con un problema in cui alcune varia-bili (x1 e x2) possono assumere solo valori interi e altre possono assumereanche valori non interi. Infatti, ad esempio, se scelgo x1 = x2 = 0, valoriammissibili per il nostro problema di PLI, il corrispondente valore di y1 e y2

e pari a 1/2. Per ovviare a questo inconveniente e fare in modo che anche lenuove variabili possano assumere solo valori interi quando quelle originariehanno valori interi, e sufficiente trasformare i vincoli in modo tale che inessi compaiano solo coefficienti e termini noti interi. Nel nostro esempiobasta moltiplicare entrambi i vincoli per 2:

max x2

2x1 ≤ 1

2x2 ≤ 1

x1, x2 ≥ 0, x1, x2 ∈ I.

e solo a questo punto aggiungere le due variabili y1 e y2:

max x2

2x1 + y1 = 1

2x2 + y2 = 1

x1, x2, y1, y2 ≥ 0, x1, x2, y1, y2 ∈ I.

In questo modo le variabili aggiunte y1, y2 assumono sempre valori interiquando quelle originarie x1, x2 hanno valori interi e quindi nella forma stan-dard possiamo imporre l’interezza anche delle variabili y1, y2. Si noti che ilfunzionamento dei successivi algoritmi di risoluzione e garantito solo se siprocede alla trasformazione in forma standard nel modo sopra indicato.

6.2 Algoritmi di taglio

Per introdurre gli algoritmi di taglio dobbiamo prima introdurre il concettodi taglio valido per un problema di PLI. Sia dato un problema di PLI con

95

Page 97: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

il suo rilassamento lineare. Sia x∗ una soluzione ottima del rilassamentolineare, che si suppone abbia almeno una coordinata non intera (se tutte lesue coordinate fossero intere allora x∗ ∈ Zott).

Definizione 12 Una disequazione wx ≤ v si definisce taglio valido per ilproblema di PLI se non e soddisfatta da x∗ ma e soddisfatta da tutti i puntinella regione ammissibile del problema di PLI, ovvero

wx∗ > v, wx ≤ v ∀ x ∈ Za

Il concetto di taglio valido conduce alla definizione degli algoritmi di taglio.In essi si comincia risolvendo il rilassamento lineare del problema di PLI.Se questo ha soluzione a coordinate tutte intere, essa e soluzione anche delproblema di PLI. Altrimenti si genera (in modi che vedremo in seguito) untaglio valido, si aggiunge questo taglio ai vincoli del rilassamento linearee si risolve il nuovo problema di PL ottenuto con questa aggiunta. Sela soluzione ottima ha coordinate tutte intere, essa e soluzione anche delproblema di PLI. Altrimenti si genera un nuovo taglio valido che escludala soluzione ottima del nuovo problema di PL, si aggiunge anche questotaglio ai vincoli del rilassamento lineare e si risolve il nuovo problema diPL ottenuto con questa ulteriore aggiunta. Si itera questa procedura finoa quando non si ottiene una soluzione intera (o si stabilisce che Za = ∅).Dato il problema di PLI

max cx

aix = bi i = 1, . . . ,m

xj ≥ 0, xj ∈ I j = 1, . . . , n

formalmente, lo schema di un algoritmo di taglio e il seguente.

Inizializzazione Si risolva il rilassamento lineare

max cx

aix = bi i = 1, . . . ,m

xj ≥ 0 j = 1, . . . , n

del problema di PLI. Se Sa = ∅, allora Za = ∅. Tralasceremo il casodi obiettivo illimitato del rilassamento lineare e quindi l’unica altrapossibilita e che esista una soluzione ottima, indicata con x∗1. Siponga k = 1.

Passo 1 Se x∗k ha coordinate tutte intere, allora si restituisca x∗k ∈ Zott.Altrimenti si vada al Passo 2.

96

Page 98: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Passo 2 Si generi un taglio valido wkx ≤ vk che non sia soddisfatto dax∗k ma sia soddisfatto da tutti i punti in Za, ovvero

wkx∗k > vk, wkx ≤ vk ∀ x ∈ Za.

Passo 3 Si aggiunga il nuovo taglio valido ai vincoli originari del problemae ai tagli validi generati in precedenza e si risolva il problema di PL

max cx

aix = bi i = 1, . . . ,m (6.1)

wrx ≤ vr r = 1, . . . , k

xj ≥ 0 j = 1, . . . , n

Se tale problema ha regione ammissibile vuota possiamo concludereche Za = ∅. Altrimenti sia x∗(k+1) la sua soluzione ottima.

Passo 4 Si ponga k = k + 1 e si ritorni al Passo 1.

Si noti che il problema di PL (6.1) non e in forma standard. Tuttavia bastala semplice aggiunta di una variabile yr ≥ 0 in ciascuno dei vincoli wrx ≤ vr

per ricondursi al formato standard. Con tale aggiunta il problema di PL(6.1) viene trasformato in quello equivalente (in forma standard):

max cx

aix = bi i = 1, . . . ,m

wrx + yr = vr r = 1, . . . , k (6.2)

xj ≥ 0 j = 1, . . . , n

yr ≥ 0 r = 1, . . . , k

Resta ancora da chiarire come si genera un taglio valido. Ci sono moltimodi per generare tagli validi. Qui descriveremo un tipo di tagli detti taglidi Gomory.

6.2.1 Tagli di Gomory

Supponiamo di avere una base ottima B∗ = {xi1 , . . . , xim} per il rilassa-

mento lineare del problema di PLI. La riformulazione rispetto a tale basee la seguente:

max γ0 +∑n−m

j=1 γjxim+j

xi1 = β1 +∑n−m

j=1 α1jxim+j

97

Page 99: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

· · ·xik

= βk +∑n−m

j=1 αkjxim+j

· · ·xim

= βm +∑n−m

j=1 αmjxim+j

x1, . . . , xn ≥ 0

Si suppone che almeno uno dei valori βr, r = 1, . . . ,m, sia non intero (sefossero tutti interi la soluzione di base associata a B∗ sarebbe non soloottima per il rilassamento lineare ma anche per il problema di PLI). Sia βk

un tale valore non intero. Scriviamo l’equazione relativa a xik:

xik= βk + αk1xim+1

+ αk2xim+2+ · · · + αk,n−mxin

. (6.3)

Si consideri ora il seguente taglio, detto taglio di Gomory:

−fk + fk1xim+1+ fk2xim+2

+ · · · + fk,n−mxin≥ 0

dove fkj , j = 1, . . . , n − m, e la mantissa di −αkj , cioe

fkj = −αkj − ⌊−αkj⌋ ≥ 0

(⌊a⌋ rappresenta la parte intera di a ovvero il piu grande intero ≤ a), mentrefk e la mantissa di βk, cioe

fk = βk − ⌊βk⌋ > 0,

dove fk > 0 e una conseguenza della non interezza di βk. Per mantenere ilformato standard, possiamo aggiungere una nuova variabile y1 e riscrivereil taglio attraverso la seguente coppia di vincoli:

y1 = −fk + fk1xim+1+ fk2xim+2

+ · · · + fk,n−mxin(6.4)

y1 ≥ 0.

Vogliamo dimostrare la seguente osservazione.

Osservazione 16 Il taglio di Gomory e un taglio valido.

Dimostrazione Per prima cosa dimostriamo che la soluzione ottima delrilassamento lineare non soddisfa questo vincolo. Notiamo che per tale so-luzione ottima si ha xim+1

= · · · = xin= 0 (tutte le variabili fuori base sono

nulle) e quindi, in corrispondenza della soluzione ottima del rilassamentolineare si ha:

y1 = −fk < 0.

98

Page 100: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Quindi la soluzione ottima del rilassamento lineare non soddisfa, come de-siderato, il nostro taglio. Resta da far vedere che il taglio e soddisfatto daogni punto in Za. Prendiamo un generico punto

(xi1 , . . . , xin)

in Za. Sostituiamo le coordinate di tale punto in (6.3) e (6.4) ed otteniamorispettivamente

xik= βk + αk1xim+1

+ αk2xim+2+ · · · + αk,n−mxin

. (6.5)

y1 = −fk + fk1xim+1+ fk2xim+2

+ · · · + fk,n−mxin. (6.6)

Cio che si vuole dimostrare e che il valore di y1 e ≥ 0 e cioe che la genericasoluzione ammissibile in Za

xi1 , . . . , xin(6.7)

soddisfa il taglio. Per prima cosa dimostriamo che in corrispondenza diogni punto (6.7) in Za si ha che il valore di y1 e intero. Per dimostrarequesto sommiamo (6.5) e (6.6). Ricordando la definizione delle fkj e di fk,la somma ha come risultato

y1 = ⌊βk⌋ − xik− ⌊−αk1⌋xim+1

− ⌊−αk2⌋xim+2− · · · − ⌊−αk,n−m⌋xin

Questo mostra che in corrispondenza di ogni punto in Za il valore y1 e unvalore intero (le parti intere sono tutti valori interi e le variabili xik

e xim+j,

j = 1, . . . , n − m in Za assumono valori interi).Da (6.6) abbiamo anche che

y1 + fk = fk1︸︷︷︸

≥0

xim+1︸ ︷︷ ︸

≥0

+ fk2︸︷︷︸

≥0

xim+2︸ ︷︷ ︸

≥0

+ · · · + fk,n−m︸ ︷︷ ︸

≥0

xin︸︷︷︸

≥0

.

Questo ci dice che, in corrispondenza di ogni punto (6.7) di Za, si ha chey1 + fk e ≥ 0 ed inoltre sappiamo che 0 < fk < 1. Infine, in precedenzaabbiamo dimostrato che y1 assume valori interi in corrispondenza di ognipunto di Za. Tutto questo e possibile soltanto se y1 ≥ 0 in corrispondenzadi ogni punto di Za, come si voleva dimostrare.

La coppia di vincoli

y1 = −fk + fk1xim+1+ fk2xim+2

+ · · · + fk,n−mxin

y1 ≥ 0.

99

Page 101: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

che esprime il taglio viene aggiunta alla riformulazione rispetto alla baseottima B∗ e si ottiene quindi:

max γ0 +∑n−m

j=1 γjxim+j

xi1 = β1 +∑n−m

j=1 α1jxim+j

· · ·xik

= βk +∑n−m

j=1 αkjxim+j(6.8)

· · ·xim

= βm +∑n−m

j=1 αmjxim+j

y1 = −fk + fk1xim+1+ fk2xim+2

+ · · · + fk,n−mxin

x1, . . . , xn, y1 ≥ 0

Si noti come (6.8) sia gia la riformulazione del nuovo problema di PL ri-spetto alla base B∗ ∪ {y1}. La soluzione di base del primale associata aquesta base e non ammissibile (la variabile y1 ha valore −fk < 0), comedeve essere visto che il taglio deve rendere non ammissibile la soluzionedel rilassamento lineare. Tuttavia la soluzione di base del duale associataa B∗ ∪ {y1} e ammissibile (i valori γj continuano ad essere non positivivisto che non sono stati modoficati dall’introduzione del taglio). Questo ciconsente di risolvere il nuovo problema di PL con il simplesso duale e conbase iniziale B∗ ∪ {y1}. Si avra anche che la prima variabile ad uscire dibase sara la y1. Perche?Si noti anche come durante la dimostrazione dell’Osservazione 16 abbiamoanche dimostrato che la nuova variabile che viene introdotta (la y1) assu-me sempre valori interi in corrispondenza di ogni punto di Za. In praticail risultato di interezza su y1 ci consente di dire che (6.8) con l’ulterioreimposizione

x1, . . . , xn, y1 ∈ I

e una riformulazione equivalente del problema di PLI iniziale (dove perequivalente si intende che Za e Zott restano invariati). Piu in generale,iterando quanto visto, si ha che (6.2) con l’ulteriore imposizione

x1, . . . , xn, y1, . . . , yk ∈ I

e sempre una riformulazione equivalente del problema di PLI iniziale. Que-sto consente di iterare la procedura, cioe se dopo l’aggiunta del primo taglioe la risoluzione del nuovo problema di PL (6.8) non si ha ancora una solu-zione intera, possiamo generare un nuovo taglio utilizzando la stessa regoladi generazione.Ma vediamo ora di chiarire meglio il funzionamento di un algoritmo di ta-glio che utilizza tagli di Gomory applicandolo ad un problema di esempio.

100

Page 102: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Si consideri il seguente problema di PLI:

max x1 + x2

2x1 + x3 = 3

2x2 + x4 = 3

x1, x2, x3, x4 ≥ 0

x1, x2, x3, x4 ∈ I.

Una base otttima per il rilassamento lineare di questo problema di PLI ela base B∗ = {x1, x2}. La riformulazione del rilassamento lineare rispettoa questa base e la seguente:

max 3 − 1/2x3 − 1/2x4

x1 = 3/2 − 1/2x3 (6.9)

x2 = 3/2 − 1/2x4

x1, x2, x3, x4 ≥ 0

Come si vede c’e un termine noto non intero quindi la soluzione del rilas-samento lineare:

x∗1 = x∗

2 = 3/2 x∗3 = x∗

4 = 0

non risolve il problema di PLI. A questo punto aggiungo un taglio diGomory. Considero l’equazione

x1 = 3/2 − 1/2x3

e da questa, in base alle regole viste, si ricava il seguente taglio:

−1/2 + 1/2x3 ≥ 0.

Aggiungendo una variabile y1 il taglio viene espresso dalla seguente coppiadi vincoli:

y1 = −1/2 + 1/2x3, y1 ≥ 0.

Aggiungiamo ora questi alla riformulazione (6.9) rispetto alla base ottimaB∗.

max 3 − 1/2x3 − 1/2x4

x1 = 3/2 − 1/2x3

x2 = 3/2 − 1/2x4

y1 = −1/2 + 1/2x3

x1, x2, x3, x4, y1 ≥ 0

101

Page 103: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Possiamo notare che questa e gia la riformulazione del nuovo problema ri-spetto alla base B∗ ∪ {y1} = {x1, x2, y1}. La soluzione di base del primaleassociata a questa base e non ammissibile (il valore di y1 e −1/2) ma lasoluzione di base del duale associata alla stessa base e ammissibile (i coef-ficienti delle variabili fuori base nell’obiettivo non sono stati modificati econtinuano ad essere negativi). Quindi possiamo applicare il simplesso dua-le con base iniziale {x1, x2, y1}. Si verifica immediatamente che non sonosoddisfatte ne la condizione di ottimalita, ne la condizione di illimitatezzadell’obiettivo duale. Chiaramente, la prima variabile che dovra entrare inbase sara l’unica con un valore negativo e quindi dovra essere la y1. In basealle regole viste, l’unica variabile che potra entrare in base e la x3. Pas-seremo quindi alla base {x1, x2, x3} rispetto alla quale avremo la seguenteriformulazione:

max 5/2 − 2y1 − 1/2x4

x1 = 1 − 2y1

x2 = 3/2 − 1/2x4 (6.10)

x3 = 1 + 2y1

x1, x2, x3, x4, y1 ≥ 0

La base e ottima per il nuovo problema di PL ma purtroppo abbiamo ancoraun termine noto non intero e quindi non abbiamo ancora una soluzioneottima del problema di PLI. Allora, dobbiamo aggiungere un ulteriore tagliodi Gomory. La regola di generazione e la solita. Per prima cosa selezioniamoun’equazione con termine noto non intero. Qui la sola possibile e:

x2 = 3/2 − 1/2x4.

Da questa si genera, in base alle regole viste, il seguente taglio:

−1/2 + 1/2x4 ≥ 0.

Aggiungendo una nuova variabile y2 il taglio viene espresso dalla seguentecoppia di vincoli:

y2 = −1/2 + 1/2x4, y2 ≥ 0.

Aggiungiamo ora questi alla riformulazione (6.10) rispetto alla base ottima{x1, x2, x3}.

max 5/2 − 2y1 − 1/2x4

x1 = 1 − 2y1

x2 = 3/2 − 1/2x4

102

Page 104: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

x3 = 1 + 2y1

y2 = −1/2 + 1/2x4

x1, x2, x3, x4, y1, y2 ≥ 0

Possiamo notare che questa e gia la riformulazione del nuovo problema ri-spetto alla base {x1, x2, x3, y2}. La soluzione di base del primale associataa questa base e non ammissibile (il valore di y2 e −1/2) ma la soluzione dibase del duale associata alla stessa base e ammissibile (i coefficienti dellevariabili fuori base nell’obiettivo non sono stati modificati e continuano adessere negativi). Quindi possiamo applicare il simplesso duale con base ini-ziale {x1, x2, x3, y2}. Si verifica immediatamente che non sono soddisfattene la condizione di ottimalita, ne la condizione di illimitatezza dell’obietti-vo duale. Chiaramente, la prima variabile che dovra entrare in base saral’unica con un valore negativo e quindi dovra essere la y2. In base alleregole viste, l’unica variabile che potra entrare in base e la x4. Passere-mo quindi alla base {x1, x2, x3, x4} rispetto alla quale avremo la seguenteriformulazione:

max 2 − 2y1 − 2y2

x1 = 1 − 2y1

x2 = 1 − 2y2

x3 = 1 + 2y1

x4 = 1 + 2y2

x1, x2, x3, x4, y1, y2 ≥ 0

La base e ottima per il nuovo problema di PL e tutte le variabili hannovalore intero. Abbiamo quindi la seguente soluzione ottima del problemadi PLI:

x∗1 = x∗

2 = x∗3 = x∗

4 = 1.

Ci si puo chiedere se siamo stati solo fortunati oppure con i tagli di Gomoryl’algoritmo di taglio termina sempre in un numero finito di iterazioni. Valela seguente osservazione.

Osservazione 17 Se ad ogni iterazione il taglio di Gomory viene realizzatoa partire dalla prima equazione con un termine noto βk non intero, alloral’algoritmo termina in un numero finito di iterazioni.

103

Page 105: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

6.3 Approccio Branch-and-Bound per la Pro-

grammazione Lineare Intera

Fino a questo momento abbiamo considerato la risoluzione dei problemidi PLI attraverso l’introduzione successiva di piani di taglio. Ora con-sidereremo un nuovo approccio di risoluzione basato sulla suddivisione delproblema originale in sottoproblemi. L’approccio prende il nome di Branch-and-Bound. I concetti fondamentali di tale approccio verranno dapprimaillustrati su un particolare problema di PLI ed in seguito generalizzati atutti i problemi di PLI.

6.3.1 Branch-and-Bound: un esempio

Si consideri il seguente problema di PLI che verra indicato nel seguito comeproblema P0

P0 : max x1 + 3x2

(u1) x1 ≥ 1

2

(u2) x1 +7

5x2 ≤ 13

2(u3) −5x1 + 3x2 ≤ 5

x1, x2 ≥ 0

x1, x2 ∈ I

Vediamo di risolvere il rilassamento lineare di P0, indicato con P ′0, ovvero

il problema ottenuto rimuovendo da P0 i vincoli di interezza sulle variabilix1 e x2

P ′0 : max x1 + 3x2

(u1) x1 ≥ 1

2

(u2) x1 +7

5x2 ≤ 13

2(u3) −5x1 + 3x2 ≤ 5

x1, x2 ≥ 0

Essendo il problema in due sole variabili, la risoluzione viene fatta gra-ficamente. Per problemi con piu di due variabili si ricorre all’algoritmodel simplesso. Dalla Figura 6.1 si vede che la regione ammissibile di P ′

0 e

104

Page 106: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

u1

u2

A

B

CD

+

-

z

u3

1

1

2 3 4 5 6

2

4

3

Figura 6.1: Il rilassamento lineare P ′0 di P0, con regione ammissibile ABCD.

rappresentata dal politopo ABCD i cui vertici sono i punti

A

(5

4,15

4

)

B

(1

2,5

2

)

C

(1

2, 0

)

D

(13

2, 0

)

E immediato verificare che l’unica soluzione ottima di P ′0 e il vertice A

dove la funzione obiettivo ha valore pari a 504 . Se il vertice A avesse coor-

dinate intere sarebbe anche un punto di ottimo per il problema P0, manel nostro esempio cio non accade. Fino a questo punto non abbiamo so-stanziali differenze rispetto agli algoritmi di taglio visti in precedenza. Aquesto punto un algoritmo di taglio procederebbe introducendo un nuovovincolo che non e soddifatto dal vertice ottimo di P ′

0, il vertice A, ma e

105

Page 107: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

soddisfatto da tutte le soluzioni ammissibili di P0. Qui pero adottiamo unapproccio diverso. Suddividiamo il problema P0 in due sottoproblemi P1 eP2 ottenuti aggiungendo in ciascuno un vincolo di forma semplice (ovverouna limitazione sui valori di una singola variabile) che esclude il vertice A.In P1 si aggiunge il vincolo che una delle variabili a valore frazionario in Asia non superiore alla parte intera di tale valore, mentre in P2 si aggiunge ilvincolo che la stessa variabile sia non inferiore alla parte intera dello stessovalore incrementata di uno. Nel nostro esempio in A sono frazionari i va-lori di entrambe le variabili. Come regola di scelta si adotta qui quella diprendere la variabile con indice minimo e quindi, nel nostro caso, x1 (si notiche tale regola non e l’unica possibile ed altre piu sofisticate possono essereadottate, ad esempio scegliere quella con parte frazionaria piu elevata). Inbase a quanto detto in P1 si aggiungera il vincolo x1 ≤

⌊54

⌋= 1, mentre in

P2 verra aggiunto il vincolo x1 ≥⌊

54

⌋+1 = 2. I due sottoproblemi saranno

quindi i seguenti:

P1 : max x1 + 3x2

(u1) x1 ≥ 1

2

(u2) x1 +7

5x2 ≤ 13

2(u3) −5x1 + 3x2 ≤ 5

(u′4) x1 ≤

⌊5

4

= 1

x1, x2 ≥ 0

x1, x2 ∈ I

P2 : max x1 + 3x2

(u1) x1 ≥ 1

2

(u2) x1 +7

5x2 ≤ 13

2(u3) −5x1 + 3x2 ≤ 5

(u′′4) x1 ≥

⌊5

4

+ 1 = 2

x1, x2 ≥ 0

x1, x2 ∈ I

In Figura 6.2 e rappresentato il rilassamento lineare P ′1 di P1, ottenuto

rimuovendo i vincoli di interezza da P1. In Figura 6.3 e rappresentato il

106

Page 108: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

rilassamento lineare P ′2 di P2. Le regioni ammissibili di P ′

1 (il politopoCBEF ) e P ′

2 (il politopo GHD) sono parti (disgiunte) della regione am-missibile di P ′

0. La loro unione contiene tutte le soluzioni ammissibili di P0

ma non coincide con la regione ammissibile di P ′0 in quanto manca la zona

1 < x1 < 2 nella quale si trova il vertice ottimo A di P ′0.

������������������������������������������������������

������������������������������������������������������

u1

u2

u3

B

CD

+

-

z

A

E

F

1

1

2 3 4 5 6

2

3

4

u′

4

Figura 6.2: Il rilassamento lineare P ′1 di P1, con regione ammissibile ABEF .

L’unica soluzione ottima di P ′1 e il vertice E

(1, 10

3

)con valore ottimo pari

a 1 + 3 103 = 11. Si noti che E non ha coordinate intere e quindi non e

una soluzione ammissibile per il problema originario P0. L’unica soluzio-ne ottima del problema P ′

2 e il vertice H(2, 45

14

)con valore ottimo pari a

2 + 3 4514 = 163

14 . Anche in questo caso H non e soluzione ammissibile delproblema P0.

107

Page 109: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

u1

u2

A

B

CD

+

-

z

H

G

u′′

4

u31

1

2 3 4 5 6

2

3

4

Figura 6.3: Il rilassamento lineare P ′2 di P2, con regione ammissibile GHD.

Possiamo rappresentare quanto fatto sino ad ora attraverso un albero, det-to albero di Branch-and-Bound, mostrato in Figura 6.4. I due archi che sidiramano dal nodo radice P0 indicano la suddivisione del problema P0 neidue sottoproblemi P1 e P2, ottenuti aggiungendo rispettivamente i vincolix1 ≤ 1 e x1 ≥ 2 (riportati lungo gli archi) al problema originario P0. Alfianco dei due nodi P1 e P2 sono indicati i valori U(P1) e U(P2) che indicanoi valori di upper bound, o limitazione superiore, per tali nodi. Per upperbound del nodo Pi (i = 1, 2) si intende che tutte le soluzioni ammissibilidel sottoproblema Pi non possono avere valore della funzione obiettivo su-periore all’upper bound. Se si riflette su come sono stati ottenuti i valoriU(Pi), (i = 1, 2) si capisce che questo e vero. Infatti i valori U(Pi) sono

108

Page 110: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

&%'$

&%'$

&%'$

""

""

""

""

QQ

QQ

QQ

QQ

x1 ≤ 1 x1 ≥ 2

P0

P1

P2 U(P2) = 163

14

LB = −∞

U(P1) = 11

Figura 6.4: L’albero di Branch-and-Bound dopo la prima iterazionedell’algoritmo.

i valori ottimi dei rilassamenti lineari P ′i dei Pi. Quindi tutte le soluzioni

ammissibili di P ′i ed in particolare quelle a coordinate intere (ammissibili

per Pi) avranno valore della funzione obiettivo che non supera U(Pi). Peril momento non e ancora chiaro che cosa faremo con i valori U(Pi). Questoverra specificato nel seguito.Oltre ai valori di upper bound associati a ciascun nodo, si definisce an-che un valore unico di lower bound, o limitazione inferiore, LB che indicail valore della miglior soluzione ammissibile a coordinate intere tra quelleottenute come soluzioni ottime dei sottoproblemi. Nel nostro esempio nonabbiamo fino ad ora determinato nessuna soluzione ottima di sottoproblemia coordinate intere (il vertice ottimo E di P ′

1 ed il vertice ottimo H di P ′2

non sono a coordinate intere). In questo caso il valore LB viene posto paria −∞.

A questo punto possiamo ripetere il ragionamento fatto fino ad ora: do-po aver suddiviso il problema P0 nei due sottoproblemi P1 e P2, possiamoselezionare uno dei due sottoproblemi (o, equivalentemente, uno dei nodifoglia dell’albero) e suddividere questo a sua volta. Per stabilire quale no-do selezionare esistono diverse regole. Qui ne vedremo una soltanto, ovveroselezionare un nodo con upper bound massimo. L’idea su cui si basa questaregola e che ci si aspetta di trovare piu facilmente la soluzione ottima delproblema in un nodo con un valore di upper bound elevato. Nel nostroesempio il nodo con upper bound piu elevato e il nodo P2. Il sottoproble-ma P2 verra suddiviso in due sottoproblemi P3 e P4 ottenuti aggiungendo

109

Page 111: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

rispettivamente il vincolo x2 ≤⌊

4514

⌋= 3 ed il vincolo x2 ≥

⌊4514

⌋+ 1 = 4.

Nella determinazione dei vincoli di forma semplice da aggiungere a quellidi P2 per ottenere P3 e P4 la scelta ricade sulla variabile x2 in quanto el’unica a coordinate non intere nel vertice ottimo H di P ′

2. Avremo dunque

P3 : max x1 + 3x2

(u1) x1 ≥ 1

2

(u2) x1 +7

5x2 ≤ 13

2(u3) −5x1 + 3x2 ≤ 5

(u′′4) x1 ≥ 2

(u′5) x2 ≤

⌊45

14

= 3

x1, x2 ≥ 0

x1, x2 ∈ I

P4 : max x1 + 3x2

(u1) x1 ≥ 1

2

(u2) x1 +7

5x2 ≤ 13

2(u3) −5x1 + 3x2 ≤ 5

(u′′4) x1 ≥ 2

(u′′5) x2 ≥

⌊45

14

+ 1 = 4

x1, x2 ≥ 0

x1, x2 ∈ I

Le regioni ammissibili di P ′3 (il politopo GKJD) e P ′

4 (l’insieme vuoto)sono illustrate nelle Figure 6.5 e 6.6. Come in precedenza l’unione delleregioni ammissibili di P ′

3 e P ′4 contiene tutte le soluzioni ammissibili di P2

ma esclude tutte le soluzioni ammissibili di P ′2 nella zona 3 < x2 < 4, dove

si trova il vertice ottimo H di P ′2.

L’ottimo di P ′3 si trova nel punto J

(2310 , 3

)con valore ottimo 113

10 . Per quelche riguarda P ′

4 si vede subito che la regione ammissibile e vuota ed in talcaso il nodo viene cancellato e non verra ulteriormente esplorato. Infat-ti esso, non contenendo soluzioni ammissibili per P ′

4, non puo certamentecontenere soluzioni ammissibili per P4.Il nostro albero si presentera ora nella forma di Figura 6.7. Anche la so-luzione ottima J di P ′

3 non e a coordinate intere e quindi il valore LB

110

Page 112: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

u1

u2

A

B

CD

+

-

z

G

u′

5

H

JK

u3

u′′

4

1

1

2 3 4 5 6

2

3

4

Figura 6.5: Il rilassamento lineare P ′3 di P3, con regione ammissibile GKJD.

continuera ad essere pari a −∞.

A questo punto si ripete nuovamente il ragionamento suddividendo un sot-toproblema relativo ad uno dei nodi foglia dell’albero in Figura 6.7 nonancora cancellato. I nodi foglia sono 3 (P1, P3 e P4) ma P4 e gia statocancellato. La scelta quindi si restringe a P1 e P3. Come in preceden-za, si seleziona quello con upper bound maggiore e quindi il nodo P3. Ilsottoproblema P3 viene suddiviso nei due sottoproblemi P5 e P6 ottenutiaggiungendo ai vincoli di P3 rispettivamente il vincolo x1 ≤

⌊2310

⌋= 2 ed

il vincolo x1 ≥⌊

2310

⌋+ 1 = 3. La scelta della variabile x1 nella definizione

di questi vincoli semplici e l’unica possibile, essendo x1 la sola variabile

111

Page 113: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

u1

u3

A

B

CD

+

-

z u′′

4

H

G

u2 u′′

5

1

1

2 3 4 5 6

2

3

4

Figura 6.6: Il rilassamento lineare P ′4 di P4, con regione ammissibile vuota.

frazionaria nella soluzione ottima J di P ′3.

P5 : max x1 + 3x2

(u1) x1 ≥ 1

2

(u2) x1 +7

5x2 ≤ 13

2(u3) −5x1 + 3x2 ≤ 5

(u′′4) x1 ≥ 2

(u′5) x2 ≤ 3

112

Page 114: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

&%'$

&%'$

&%'$

&%'$

&%'$

""

""

""

""

QQ

QQ

QQ

QQ

©©©©©©©©

PPPPPPPPPQ

QQ

QQ

QQ

¡¡

¡¡

¡¡

¡

x1 ≤ 1 x1 ≥ 2

P0

P1

P2

LB = −∞

P3P4

U(P3) = 113

10

x2 ≤ 3 x2 ≥ 4

U(P1) = 11

Figura 6.7: L’albero di Branch-and-Bound dopo la seconda iterazionedell’algoritmo.

(u′6) x1 ≤

⌊23

10

= 2

x1, x2 ≥ 0

x1, x2 ∈ I

P6 : max x1 + 3x2

(u1) x1 ≥ 1

2

(u2) x1 +7

5x2 ≤ 13

2(u3) −5x1 + 3x2 ≤ 5

(u′′4) x1 ≥ 2

(u′5) x2 ≤ 3

(u′′6) x1 ≥

⌊23

10

+ 1 = 3

x1, x2 ≥ 0

x1, x2 ∈ I

113

Page 115: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

I rilassamenti lineari P ′5 (con regione ammissibile il segnento KG) e P ′

6 (conregione ammissibile il politopo LMD) di P5 e P6 sono illustrati nelle Figu-re 6.8 e 6.9. Il problema P ′

5 ha soluzione ottima nel vertice K (2, 3) con

u1

u2

u3

A

B

CD

+

-

z u′′

4

G

u′

5

H

J

u′

6

K

1

1

2 3 4 5 6

2

3

4

Figura 6.8: Il rilassamento lineare P ′5 di P5, con regione ammissibile KG.

valore ottimo 2 + 3 ∗ 3 = 11. Il problema P ′6 ha soluzione ottima L

(3, 5

2

)

con valore ottimo 3 + 352 = 21

2 .L’albero di Branch-and-Bound si presenta ora nella forma di Figura 6.10.Notiamo che la soluzione K di P ′

5 e a coordinate intere ed e dunque unasoluzione ammissibile per P0. Questo ci permette di aggiornare il valoreLB che sara ora pari al valore della funzione obiettivo nel punto K, ovveropari a 11.A questo punto osserviamo che il nodo P5 puo essere cancellato. Infatti

114

Page 116: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

u1

u2

A

B

CD

+

-

z u′′

4

G

u′

5

H

JK

L

M

u′′

6

u31

1

2 3 4 5 6

2

3

4

Figura 6.9: Il rilassamento lineare P ′6 di P6, con regione ammissibile LMD.

il punto K, a coordinate intere, e soluzione ottima di P ′5 e quindi e an-

che soluzione ottima di P5 e non possiamo sperare di trovare, nella regioneammissibile di P5, soluzioni ammissibili di P0 con un valore della funzioneobiettivo piu elevato rispetto al valore in K.Ma anche gli altri nodi foglia non ancora cancellati (P1 e P6) possono esserecancellati. Consideriamo, ad esempio, P1. L’upper bound per le soluzioniammissibili di P1 e il valore 11. Non possiamo quindi sperare di trova-re in P1 delle soluzioni ammissibili di P0 che superino il valore LB = 11.Quindi possiamo evitare di esplorare ulteriormente il nodo P1 e possiamocancellare tale nodo. Analogo discorso vale per il nodo P6 dove si ha cheU(P6) = 21

2 < 11 = LB. Quindi anche questo nodo puo essere cancellato.

115

Page 117: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

&%'$

&%'$

&%'$

&%'$

&%'$

&%'$

&%'$

""

""

""

""

QQ

QQ

QQ

QQ

©©©©©©©©

PPPPPPPPPQ

QQ

QQ

QQ

¡¡

¡¡

¡¡

¡!!!!!!!!!

aaaaaaaa

x1 ≤ 1 x1 ≥ 2

P0

P1

P2

P3P4

P5 P6

U(P6) = 21

2

U(P5) = 11

LB = 11

x2 ≤ 3 x2 ≥ 4

x1 ≤ 2x1 ≥ 3

U(P1) = 11

Figura 6.10: L’albero di Branch-and-Bound dopo la terza iterazionedell’algoritmo.

Aggiornando l’albero con le nuove cancellazioni, si ottiene l’albero in Figura6.11. Notando che tutti i nodi foglia sono stati cancellati, ci possiamo ar-restare e restituire come soluzione ottima del problema la miglior soluzioneammissibile trovata, ovvero il punto K (2, 3) con valore ottimo pari a 11.Come ultima osservazione si noti che il nodo P1 ha upper bound esatta-mente pari a LB. Quindi, pur non potendo sperare di trovare in P1 unasoluzione ammissibile di P0 che sia strettamente superiore a LB = 11, po-tremmo comunque sperare di trovarne una con valore uguale a 11. In realtaabbiamo gia osservato che il rilassamento lineare P ′

1 di P1 ha come unicasoluzione ottima il vertice, a coordinate non intere, E e quindi tutte le altresoluzioni ammissibili di P ′

1, comprese quelle a coordinate intere ammissibiliper P1, hanno valore della funzione obiettivo strettamente minore di 11.

116

Page 118: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

&%'$

&%'$

&%'$

&%'$

&%'$

&%'$

&%'$

""

""

""

""

QQ

QQ

QQ

QQ

©©©©©©©©

PPPPPPPPPQ

QQ

QQ

QQ

¡¡

¡¡

¡¡

¡!!!!!!!!!

aaaaaaaa@@

@@

@@

%%

%%

%%

%

bb

bb

bb

b

¶¶

¶¶

¶¶

@@

@@

@@

%%

%%

%%

x1 ≤ 1 x1 ≥ 2

P0

P1

P2

P3P4

P5 P6

U(P6) = 21

2

U(P5) = 11

LB = 11

x2 ≤ 3 x2 ≥ 4

x1 ≤ 2 x1 ≥ 3

U(P1) = 11

Figura 6.11: L’albero di Branch-and-Bound al momento in cui l’algoritmoviene fermato.

6.3.2 Cancellazione dei nodi

Prima di formalizzare l’algoritmo di Branch-and-Bound rivediamo attra-verso l’esempio considerato i modi con cui e possibile cancellare i nodifoglia in un albero di Branch-and-Bound. Dato un nodo P , esso puo esserecancellato se almeno una delle seguenti condizioni e soddisfatta.

1. Il corrispondente rilassamento lineare P ′ ha regione ammissibile vuotae quindi nel nodo P non vi possono essere soluzioni ammissibili per ilproblema di PLI originario, cioe il nodo radice P0. Nel nostro esempioquesto si verifica nel nodo P4.

2. Il rilassamento lineare P ′ di P ha soluzione ottima intera. Talesoluzione e la migliore soluzione ammissibile del problema di PLI

117

Page 119: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

originario P0 che sia possibile trovare nel nodo P (vedi il nodo P5

nell’esempio).

3. Si ha che U(P ) ≤ LB. In tal caso l’upper bound U(P ) nel nodo P ,ovvero il valore ottimo del rilassamento lineare P ′ di P , non supera illower bound LB (il valore della miglior soluzione ammissibile trovatadall’algoritmo) e quindi nessuna soluzione ammissibile del problemaP0 che sia contenuta in P puo superare il valore LB. Se, in particolare,si ha U(P ) < LB si ha che nessuna soluzione ammissibile del problemaP0 che sia contenuta in P non solo non puo superare il valore LB manon lo puo neppure eguagliare. Il caso U(P ) = LB si verifica nelnostro esempio nel nodo P1, mentre il caso U(P ) < LB si verifica nelnodo P6.

6.3.3 Branch-and-Bound: l’algoritmo generale

Siamo ora pronti a generalizzare quanto visto nell’esempio e a formalizzarel’algoritmo Branch-and-Bound. Il generico problema di PLI P0 si presentanella seguente forma

P0 : max∑n

i=1 cixi∑n

i=1 aijxi ≤ bj j = 1, . . . ,m

xi ≥ 0 i = 1, . . . , n

xi ∈ I i = 1, . . . , n

L’algoritmo di Branch-and-Bound e il seguente.

Inizializzazione Si inizializzi l’insieme F dei nodi foglia con il problemaoriginario P0, cioe si ponga F = {P0}. Si risolva il rilassamento li-neare P ′

0 di P0 e sia (x∗1(P0), . . . , x

∗n(P0)) la soluzione ottima trovata

e U(P0) il corrispondente valore ottimo.Se tutti i valori x∗

i (P0), i = 1, . . . , n sono interi, STOP: la soluzione(x∗

1(P0), . . . , x∗n(P0)) e soluzione ottima anche per P0 ed il valore ot-

timo di P0 e pari a U(P0).Altrimenti si ponga LB = −∞ e si vada al Passo 1.

Passo 1 Si selezioni nell’insieme F un nodo Q ∈ F . Anche se esistono altreregole per effettuare la selezione, qui adotteremo quella di scegliere ilnodo Q ∈ F con valore dell’upper bound massimo, ovvero

U(Q) = maxP∈F

U(P )

e sia (x∗1(Q), . . . , x∗

n(Q)) una soluzione ottima del rilassamento lineareQ′ di Q.

118

Page 120: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Passo 2 Si selezioni una variabile x∗i (Q) a valore frazionario. Nel caso

vi siano piu variabili x∗i (Q) con valore frazionario, esistono diverse

regole per effettuare la scelta. Qui, per semplicita, si adottera quelladi scegliere la variabile con indice i minimo.

Passo 3 Si rimuova il nodo Q da F (cioe F = F \{Q}) e lo si suddivida indue nuovi nodi Q1 e Q2 ottenuti aggiungendo ai vincoli di Q rispetti-vamente il vincolo xi ≤ ⌊x∗

i (Q)⌋ (in Q1) ed il vincolo xi ≥ ⌊x∗i (Q)⌋+1

(in Q2).

Passo 4 Per ciascuno dei due nuovi nodi Qi, i = 1, 2 si risolva il rilassa-mento lineare Q′

i.Se Q′

i ha regione ammissibile vuota, si cancella il nodo Qi e non lo siaggiunge a F , altrimenti lo si aggiunge a F .Altrimenti se la soluzione ottima (x∗

1(Qi), . . . , x∗n(Qi)) e a coordina-

te intere si cancelli il nodo Qi senza aggiungerlo a F ed inoltre, seU(Qi) > LB si ponga

LB = U(Qi) e y1 = x∗1(Qi), . . . , yn = x∗

n(Qi).

Altrimenti, se la soluzione ottima di Q′i non e a coordinate intere, si

aggiunga Qi a F , ovvero si ponga F = F ∪ {Qi}.

Passo 5 Si cancellino tutti i nodi in F con valore dell’upper bound nonsuperiore a LB, ovvero si ponga

F = F \ {P ∈ F : U(P ) ≤ LB}.

Passo 6 Se F = ∅, STOP: se LB ha valore pari a −∞, allora il problemaP0 non ha soluzioni ammissibili, altrimenti il valore LB e il valoreottimo del problema P0 e (y1, . . . , yn) e una soluzione ottima di taleproblema.Altrimenti si ritorni al Passo 1.

6.3.4 Alcuni esercizi significativi

Soluzioni ottime multiple trovate in nodi diversi.

P0 : max 2x1 + x2

x2 ≤ 112

x1 ≤ 2

x1 + x2 ≤ 234

92x1 + x2 ≤ 11

119

Page 121: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

x1, x2 ≥ 0

x1, x2 ∈ I

Soluzioni ottime multiple trovate nello stesso nodo.

P0 : max z = 2x1 + x2

2x1 + x2 ≤ 7

−2x1 + x2 ≤ 1

x1, x2 ≥ 0

x1, x2 ∈ I

Regione ammissibile vuota.

P0 : max z = x1 + 3x2

x1 ≥ 12

x1 ≤ 52

x2 ≥ 12

x2 ≤ 34

x1, x2 ≥ 0

x1, x2 ∈ I

120

Page 122: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Capitolo 7

Introduzione ai grafi

Per prima cosa diamo la definizione di grafo.

Definizione 13 Un grafo G e costituito da una coppia di insiemi (V,A)dove V e detto insieme dei nodi e A e detto insieme di archi ed e unsottinsieme di tutte le possibili coppie di nodi in V . Se le coppie di nodisono ordinate, il grafo e detto orientato, se non sono ordinate e detto nonorientato.

Esempio 18 Consideriamo un grafo G con insieme di nodi

V = {a, b, c, d, e},

mentre l’insieme di archi e il seguente sottinsieme di coppie di nodi in V

A = {(a, b); (a, c); (b, c); (b, e); (c, d); (d, b)}

Se tali coppie sono ordinate (e quindi, ad esempio, la coppia (a, b) e diversadalla coppia (b, a)) il grafo e orientato, altrimenti (e quindi, ad esempio,la coppia (a, b) e la coppia (b, a) sono equivalenti tra loro) il grafo e nonorientato.

Diamo ora un’altra definizione.

Definizione 14 Dato un grafo orientato G = (V,A) e un arco (i, j) ∈ Adiremo che il nodo i e predecessore del nodo j e che il nodo j e successoredel nodo i. Nel caso di un grafo non orientato G = (V,A), dato un arco(i, j) ∈ A diremo che il nodo i e il nodo j sono tra loro adiacenti.

Nel grafo dell’esempio, supposto orientato, il nodo a e predecessore delnodo b, mentre b e successore di a. Se il grafo fosse non orientato diremmo

121

Page 123: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

semplicemente che i nodi a e b sono adiacenti. Abbiamo definito un grafoG attraverso la coppia di insiemi V e A. E possibile pero rappresentare ungrafo anche nei modi seguenti.

Rappresentazione grafica Ad ogni nodo corrisponde un pallino sul pia-no e ogni arco (i, j) corrisponde ad una linea che congiunge il pallinoche rappresenta il nodo i con il pallino che rappresenta il nodo j. Se ilgrafo e orientato sulla linea si aggiunge anche una freccia da i verso j(per grafi non orientati la freccia si omette). Nella figura sottostante emostrata la rappresentazione grafica del grafo dell’esempio, suppostoorientato (nel caso non orientato si devono solo omettere le frecce).

a

b

c d

e

Liste di adiacenza Ad ogni nodo si affianca una lista (eventualmentevuota) contenente tutti i suoi successori nel caso di grafo orientato,o tutti i nodi adiacenti nel caso di grafo non orientato. Per il nostroesempio, supposto orientato, le liste di adiacenza sono le seguenti:

a : (b, c) b : (c, e) c : (d) d : (b) e : ∅

mentre se lo si suppone non orientato le liste di adiacenza sono leseguenti:

a : (b, c) b : (a, c, d, e) c : (a, b, d) d : (b, c) e : (b)

Matrice incidenza nodo-arco Si costruisce una matrice con una rigaper ogni nodo e una colonna per ogni arco. Per grafi orientati nellacolonna relativa all’arco (i, j) si mette +1 in corrispondenza della rigai, -1 in corrispondenza della riga j e 0 in corrispondenza di tutte lealtre righe. Per il nostro esempio, supposto orientato, la matrice diincidenza nodo-arco e data in Tabella 7.1 Per grafi non orientati nellacolonna relativa all’arco (i, j) si mette +1 in corrispondenza della rigai e della riga j e 0 in corrispondenza di tutte le altre righe. Per il nostroesempio, supposto non orientato, la matrice di incidenza nodo-arco edata in Tabella 7.2

122

Page 124: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Tabella 7.1:(a, b) (a, c) (b, c) (b, e) (c, d) (d, b)

a 1 1 0 0 0 0b -1 0 1 1 0 -1c 0 -1 -1 0 1 0d 0 0 0 0 -1 1e 0 0 0 -1 0 0

Tabella 7.2:(a, b) (a, c) (b, c) (b, e) (c, d) (d, b)

a 1 1 0 0 0 0b 1 0 1 1 0 1c 0 1 1 0 1 0d 0 0 0 0 1 1e 0 0 0 1 0 0

Introduciamo ora alcune definizioni.

Definizione 15 Due archi che hanno un nodo in comune sono detti adia-centi.

Nell’esempio gli archi (a, b) e (a, c) sono adiacenti.

Definizione 16 Sia dato un grafo G = (V,A). Una sequenza di m+1 nodi

s0 → s1 → s2 → · · · → sm

tali che per ogni i = 1, . . . ,m si ha:

(si−1, si) ∈ A oppure (si, si−1) ∈ A

(l’alternativa e superflua nel caso non orientato) e detto cammino nel gra-fo. Il numero m di archi del cammino e detto lunghezza del cammino.Possiamo vedere anche un cammino di lunghezza m come una sequenza diarchi a due a due adiacenti. Un cammino e detto semplice se nessun arcoe percorso piu di una volta, elementare se nessun nodo viene toccato piu diuna volta.

Nell’esempio, il cammino a → b → d → c e un cammino elementare dilunghezza 3; il cammino a → b → c → d → b → e e semplice ma nonelementare (il nodo b e toccato piu di una volta); il cammino a → b → c →d → b → a → c non e ne semplice ne elementare (l’arco (a, b) e attraversatodue volte).

123

Page 125: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Definizione 17 Un cammino semplice

s0 → s1 → s2 → · · · → sm

in cui primo e ultimo nodo coincidono (cioe sm = s0) viene detto ciclodi lunghezza m. Se omettendo l’ultimo nodo sm si ottiene un camminoelementare, si parla di ciclo elementare.

Nell’esempio a → b → c → a e un ciclo elementare di lunghezza 3.

Definizione 18 In un grafo orientato un cammino o un ciclo

s0 → s1 → s2 → · · · → sm

(sm = s0 nel caso di un ciclo) in cui tutti gli archi sono percorsi secondo illoro orientamento, ovvero si ha che per ogni i = 1, . . . ,m:

(si−1, si) ∈ A

viene detto orientato, altrimenti si dice non orientato.

Nell’esempio il cammino a → b → c e orientato mentre il cammino b →a → c e non orientato. il ciclo a → b → c → a e non orientato, mentre ilciclo b → c → d → b e orientato.

Definizione 19 Dati due nodi i e j di un grafo G, se esiste un camminoda i a j allora si dice che j e accessibile da i.

La relazione tra i nodi ”e accessibile da” e una relazione di equivalenza, ov-vero soddisfa le tre proprieta riflessiva, simmetrica e transitiva. Come tale,induce classi di equivalenza nell’insieme dei nodi. Tali classi di equivalenzavengono dette componenti connesse del grafo. Ogni componente connessa eformata da nodi tutti accessibili tra loro ma non accessibili da nodi in altrecomponenti.

Definizione 20 Se il grafo contiene una sola componente connessa vienedetto connesso.

La seguente procedura consente di individuare le componenti connesse diun grafo e quindi anche di stabilire se un grafo e connesso.

Inizializzazione Si ponga W = V e r = 1.

Passo 1 Si selezioni un nodo i ∈ W e si ponga S = {i} e Tr = ∅.

124

Page 126: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Passo 2 Si selezioni un nodo j ∈ S. Si rimuova j da S e si aggiungano inS tutti i nodi che non siano gia contenuti in Tr di cui j e predecessoreo successore, cioe

S = (S \ {j}) ∪ {k 6∈ Tr : (k, j) ∈ A o (j, k) ∈ A}.

Si ponga Tr = Tr ∪ {j}.

Passo 3 Se S = ∅, allora si vada al Passo 4. Se Tr ∪ S = W , si pongaTr = Tr ∪ S e si vada al Passo 4. Altrimenti si ritorni al Passo 2.

Passo 4 Si ponga W = W \ Tr. Se W = ∅, allora T1, T2, . . . , Tr sono gliinsiemi di nodi delle componenti connesse del grafo. Altrimenti siponga r = r + 1 e si ritorni al Passo 1.

Come esercizio si applichi la procedura per verificare che il grafo dell’esem-pio e connesso.

Definizione 21 Un nodo j e detto fortemente accessibile da i se esiste uncammino orientato da i a j.

Si noti che la relazione tra nodi ”e fortemente accessibile da” non e unarelazione di equivalenza. In particolare non vale per essa la proprieta disimmetria (nell’esempio e e fortemente accessibile da b ma il viceversa none vero).

Definizione 22 Un grafo in cui ogni nodo e fortemente accessibile da tuttigli altri e detto fortemente connesso.

Si noti che l’esistenza in un grafo di un ciclo orientato che tocca tutti i nodidel grafo garantisce che il grafo sia fortemente connesso. Il grafo del nostroesempio non e fortemente connesso (come gia osservato b e anche tutti glialtri nodi del grafo non sono fortemente accessibili da e).

Definizione 23 Un grafo si dice completo se esiste un arco tra ogni coppiadi nodi distinti.

Il nostro grafo non e completo. Ad esempio, non c’e alcun arco tra a ed e.Lo e invece il grafo G = (V,A) con

V = {a, b, c, d}

e

A = {(a, b); (c, a); (a, d); (b, c); (d, b); (c, d)}

125

Page 127: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Definizione 24 Dato un grafo G = (V,A) e un sottinsieme A′ ⊆ A, ungrafo G′ = (V,A′) e detto grafo parziale di G. Dati V ′′ ⊆ V e

A′′ ⊆ A(V ′′) = {(i, j) ∈ A : i ∈ V ′′, j ∈ V ′′}

il grafo G′′ = (V ′′, A′′) viene detto sottografo di G. In particolare, seA′′ = A(V ′′) il sottografo viene detto sottografo indotto da V ′′.

Nell’esempio G′ = (V,A′) con

A′ = {(a, b); (b, c); (b, e); (c, d); (d, b)}

e un grafo parziale di G, mentre G′′ = (V ′′, A′′) con V ′′ = {a, b, d} e

A′′ = {(a, b)}

e un sottografo di G. Se invece si considera G′′ = (V ′′, A′′) con V ′′ ={a, b, d} e

A′′ = {(a, b); (d, b)}questo e il sottografo di G indotto da V ′′.

Definizione 25 Un grafo G = (V,A) si dice bipartito se l’insieme V puoessere partizionato in due sottinsieme V1 e V2 (quindi V1 ∪ V2 = V e V1 ∩V2 = ∅) tali che

∀ (i, j) ∈ A : i ∈ V1, j ∈ V2 oppure i ∈ V2, j ∈ V1.

Un grafo bipartito si dice completo se per ogni coppia di nodi in V1 e V2

esiste un arco che li congiunge.

Vale la seguente osservazione.

Osservazione 18 Un grafo e bipartito se e solo se non contiene cicli dilunghezza dispari.

La seguente procedura consente di stabilire se un grafo e bipartito.

Passo 0 Si ponga W = V , C1 = C2 = ∅.

Passo 1 Si selezioni un nodo i ∈ W e si ponga T1 = {i}, C1 = C1 ∪ T1.

Passo 2 Si ponga

T2 = {k ∈ V \ C2 : ∃ i ∈ T1 tale che (i, k) ∈ A oppure (k, i) ∈ A}

Sia C2 = C2 ∪ T2.

126

Page 128: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Passo 3 Si ponga

T1 = {k ∈ V \ C1 : ∃ i ∈ T2 tale che (i, k) ∈ A oppure (k, i) ∈ A}

Sia C1 = C1 ∪ T1.

Passo 4 Se C1 ∩C2 6= ∅, allora il grafo non e bipartito. Altrimenti si vadaal Passo 5.

Passo 5 Si ponga W = W \ (C1 ∪ C2). Se W = ∅ e T1 = ∅, allora il grafoe bipartito con V1 = C1 e V2 = C2. Altrimenti, se T1 = ∅, si ritornial Passo 1, se T1 6= ∅ si ritorni al Passo 2.

Nel nostro esempio selezionando inizialmente il nodo a e ponendolo in T1 eC1 avremo

C1 a

C2

con T1 = {a}. Al Passo 2 avremo

C1 a

C2 b c

con T2 = {b, c} e C2 = {b, c}. Al Passo 3 avremo

C1 a e d c

C2 b c

con T1 = {e, d, c, b} e C1 = {a, e, d, c, b}. Al Passo 4 notiamo che C1 ∩C2 ={b, c} 6= ∅ e quindi possiamo concludere che il grafo non e bipartito.

Definizione 26 Sia dato un grafo G = (V,A) con card(V ) = n dovecard(V ) denota la cardinalita (il numero di elementi) dell’insieme V . Sidice che G e un albero se soddisfa le seguenti condizioni (equivalenti traloro)

1. G e privo di cicli e connesso;

2. G e privo di cicli e card(A) = n − 1;

3. G e connesso e card(A) = n − 1;

4. esiste un unico cammino elementare che congiunge ogni coppia dinodi.

127

Page 129: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Ad esempio, il grafo G = (V,A) con

V = {a, b, c, d, e} A = {(a, b); (b, c); (c, e); (e, d)}

illustrato nella figura sottostante e un albero.

a

b

c

d

e

Definizione 27 Sia dato un grafo generico G = (V,A). Si definisce alberodi supporto o spanning tree di G un grafo parziale T = (V,AT ) di G (quindicon AT ⊆ A) che e un albero.

Si noti che un albero di supporto di G deve contenere tutti i nodi di G eche in virtu del punto 2. (o del punto 3.) della Definizione 26, si dovraavere card(AT ) = card(V ) − 1.

Esempio 19 Sia dato il grafo G = (V,A) con

V = {a, b, c, d} A = {(a, b); (b, c); (b, d); (a, d); (c, d)}

illustrato in Figura 7.1. Un albero di supporto di G e il sottografo T1 =(V,AT1

) conAT1

= {(b, c); (b, d); (a, d)}un altro e il sottografo T2 = (V,AT2

) con

AT2= {(a, b); (b, c); (c, d)}

I due alberi di supporto di G sono illustrati in Figura 7.1.

Vale la seguente osservazione.

Osservazione 19 Dato un albero, l’aggiunta di un solo arco crea esatta-mente un ciclo.

Definiamo ora una funzione

w : A → R

che ad ogni arco e ∈ A del grafo associa un peso w(e) (in Figura 7.1 talevalore e riportato sopra ciascun arco). Nel problema dell’albero di supporto

128

Page 130: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

EEEEEE ,

,,

,,

,,

,ZZ

ZZ

ZZ

Z

ZZ

ZZ

ZZ

Z,

,,

,,

,,

,, E

EEEEE#

##

##

##

##

#£££££££

a

b

c

d

a

b

c

d

a

b d

c

3 53

2

2

4

4

3

3 54

G

T1T2

Figura 7.1: Un grafo G e due suoi alberi di supporto T1 e T2.

a peso minimo vogliamo trovare tra tutti i possibili alberi di supporto delgrafo G, quello con peso totale minimo, dove il peso di un albero di supportoT = (V,AT ) e definito dalla somma dei pesi dei suoi archi, ovvero:

e∈AT

w(e).

Nella Figura 7.1 i due alberi di supporto hanno pesi rispettivamente paria 9 e 12. Abbiamo il seguente algoritmo greedy (goloso) per il problema dialbero di supporto a peso minimo.

Passo 1 Si ordinino tutti gli m = card(A) archi del grafo in ordine nondecrescente rispetto al peso, cioe

w(e1) ≤ w(e2) ≤ · · · ≤ w(em−1) ≤ w(em).

Si parta con un insieme AT di archi vuoto, cioe AT = ∅. Sia k = 1

Passo 2 Se card(AT ) = card(V ) − 1 ci si arresta e si restituisce l’alberoT = (V,AT ) come soluzione. Altrimenti si vada al Passo 3.

129

Page 131: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Passo 3 Se ek non forma cicli con gli archi in AT , lo si aggiunga ad AT ,cioe si ponga AT = AT ∪ {ek}. Altrimenti si lasci AT invariato.

Passo 4 Si ponga k = k + 1 e si ritorni al Passo 2.

Come esercizio si puo applicare tale algoritmo all’esempio in Figura 7.1. Lastrategia greedy appare al Passo 3. Infatti, tra tutti gli archi non ancoraconsiderati si va a considerare quello che tra essi ha peso minimo e lo siaggiunge se non forma cicli con quelli gia inseriti in AT . Faccio dunqueuna scelta greedy che e la migliore possibile per la particolare situazionein cui mi trovo (ovvero per il particolare insieme di archi AT che ho giainserito nell’albero). Non sempre questo tipo di scelta e opportuna (puoaccadere che la scelta migliore in un dato momento non lo sia in generale)ma nel caso particolare del problema dell’albero di supporto a peso minimosi puo dimostrare che e una scelta vincente, cioe che conduce effetivamentead individuare un albero di supporto a peso minimo.Ma l’algoritmo greedy non e l’unico possibile per risolvere il problema del-l’albero di supporto a peso minimo. Vogliamo ora proporre un algoritmoalternativo e ”migliore” rispetto a quello greedy, in particolare per grafidensi, ovvero con un numero elevato di archi. Per ”migliore” si intende unalgoritmo che richiede in generale un numero di operazioni (e quindi untempo di esecuzione) inferiore rispetto all’algritmo greedy. L’algoritmo e ilseguente.

Inizializzazione Fissato un nodo v1 ∈ V , si ponga

U = {v1} AT = ∅.

Inoltre, per ogni v ∈ V \ U si ponga:

ev =

{(v, v1) se w(v, v1) ≤ w(v1, v)(v1, v) altrimenti

Passo 1 Se U = V , allora STOP: l’albero di supporto (V,AT ) e quello apeso minimo. Altrimenti si consideri un nodo v tale che:

w(ev) = minv∈V \U

w(ev)

(si noti che nel caso ev 6∈ A il suo peso w(ev) viene considerato pari a+∞).

Passo 2 Si ponga:U = U ∪ {v} AT = AT ∪ {ev}.

130

Page 132: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Passo 3 Per ogni v ∈ V \ U , si lasci invariato ev se

w(v, v), w(v, v) ≥ w(ev),

altrimenti si ponga:

ev =

{(v, v) se w(v, v) ≤ w(v, v)(v, v) altrimenti

Si ritorni al Passo 1.

Ma vediamo ora di applicare l’algoritmo al nostro esempio. InizializziamoU con il nodo a. Quindi avremo inizialmente:

U = {a} AT = ∅ V \ U = {b, c, d}.

Inoltre avremo:

eb = (a, b) ec = (a, c) ed = (a, d).

Non abbiamo U = V , quindi al Passo 1 scegliamo il nodo d in quanto:

w(ed) = min{w(eb), w(ec), w(ed)}.

Si noti che avremmo potuto scegliere anche il nodo b in quanto w(eb) =w(ed). Si noti inoltre che, essendo ec = (a, c) 6∈ A, avremo w(ec) = +∞.Al Passo 2 avremo:

U = {a, d} AT = {(a, d)} V \ U = {b, c}.

Al Passo 3 abbiamo w(ec) > w(c, d) e quindi avremo il seguente aggiorna-mento:

ec = (c, d);

inoltre, abbiamo w(eb) > w(b, d) e quindi avremo anche il seguente aggior-namento:

eb = (b, d).

A questo punto ritorniamo al Passo 1. Non abbiamo U = V , quindi alPasso 1 scegliamo il nodo b in quanto:

w(eb) = min{w(eb), w(ec)}.

Al Passo 2 avremo:

U = {a, b, d} AT = {(a, d); (b, d)} V \ U = {c}.

131

Page 133: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Al Passo 3 abbiamo w(ec) > w(b, c) e quindi avremo il seguente aggiorna-mento:

ec = (b, c).

A questo punto ritorniamo al Passo 1. Non abbiamo U = V , quindi alPasso 1 scegliamo il nodo c in quanto:

w(ec) = min{w(ec)}.

Al Passo 2 avremo:

U = {a, b, c, d} AT = {(a, d); (b, d); (b, c)} V \ U = ∅.

Al Passo 3 non abbiamo aggiornamenti da eseguire e possiamo ritornare alPasso 1. Ora si ha U = V e quindi l’albero di supporto (V,AT ) con:

AT = {(a, d); (b, d); (b, c)}

e quello a peso minimo (con peso pari a 9).

132

Page 134: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Capitolo 8

Il problema di flusso a

costo minimo

8.1 Definizione del problema

Sia data una rete (grafo orientato e connesso) G = (V,A) come quellamostrata in Figura 8.1. Si consideri il seguente problema:

min∑

(i,j)∈A cijxij∑

j:(i,j)∈A xij −∑

j:(j,i)∈A xji = bi ∀ i ∈ V

xij ≥ 0 interi ∀ (i, j) ∈ A

con bi interi e tali che∑

i∈V bi = 0. Il problema viene interpretato comesegue. Dovete inviare un flusso (di prodotti, di informazione, eccetera)attraverso la rete. Un’unita di flusso inviata lungo l’arco (i, j) ha costo paria cij . La variabile xij rappresenta la quantita di flusso inviata lungo l’arco(i, j). La somma

j:(j,i)∈A

xji

rappresenta il flusso complessivo entrante nel nodo i, la somma∑

j:(i,j)∈A

xij

rappresenta il flusso complessivo uscente dal nodo i e quindi il vincolo∑

j:(i,j)∈A

xij −∑

j:(j,i)∈A

xji = bi

133

Page 135: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

dice che la differenza tra flusso uscente e flusso entrante nel nodo i deveessere pari a bi. Se bi > 0 il flusso uscente supera quello entrante e quindiil nodo viene detto nodo sorgente. Se bi < 0 il flusso entrante supera quellouscente ed il nodo viene detto nodo destinazione. Se bi = 0 i due flussientrante ed uscente si equivalgono ed il nodo viene detto di transito. Inpratica ci sono nodi in cui il flusso viene prodotto (i nodi sorgente), altri incui transita (i nodi transito) ed altri ancora verso cui viene convogliato (inodi destinazione). Inviare un flusso xij lungo il generico arco (i, j) ha uncosto pari a cijxij . Il problema da risolvere consiste nel trasportare attra-verso la rete il flusso realizzato nei nodi sorgente (pari complessivamente a∑

i∈V : bi>0 bi) facendolo giungere ai nodi destinazione (che, in virtu dellacondizione

∈V bi = 0, richiedono esattamente la stessa quantita prodottanei nodi sorgente) ed eseguire tale operazione in modo tale da avere un co-sto complessivo del flusso inviato lungo i diversi archi che sia il piu piccolopossibile.

Esempio 20 Sia data la rete in Figura 8.1. I valori bi sono riportati di

¡¡

¡¡

¡¡

¡¡

@@

@@

@@

@@

cc

cc

cc

cc

cc

½½

½½

½½

½½

½½

1

2

3 4

5

b1=2

b2=5

b4=-4

b5=-4

b3=1

5

-2

2

0

6-4

34

Figura 8.1: Una rete con i relativi valori bi associati ai nodi ed i costi unitaridi trasporto lungo gli archi.

fianco ai nodi mentre lungo gli archi sono riportati i valori cij. I nodi 1,2e 3 sono nodi sorgente mentre i nodi 4 e 5 sono nodi destinazione (non vi

134

Page 136: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

sono nodi transito). Il problema corrispondente e il seguente

min 5x12 − 4x23 + 6x42 − 2x13 + 0x34 + 2x15 + 4x53 + 3x45

x12 + x13 + x15 = 2

x23 − x12 − x42 = 5

x34 − x13 − x23 − x53 = 1

x42 + x45 − x34 = −4

x53 − x15 − x45 = −4

x12, x23, x42, x13, x34, x15, x53, x45 ≥ 0 interi

Vale la seguente importante osservazione (non dimostrata) che ci consentedi trattare il problema di flusso a costo minimo come un problema di PLanche se si tratta di un problema di PLI.

Osservazione 20 Il rilassamento lineare di un problema di flusso a costominimo, ovvero il problema ottenuto eliminando i vincoli di interezza dellevariabili, ammette sempre una soluzione ottima a coordinate tutte intere.

8.2 La matrice dei vincoli

Analizziamo ora la matrice dei vincoli per questi problemi. In essa avremotante righe quanti sono i nodi della rete e tante colonne quanti sono gliarchi della rete. Tale matrice e la matrice di incidenza nodo-arco della rete.Essa avra nella colonna relativa all’arco (i, j) due soli elementi diversi da0, un +1 nella riga i relativa al nodo da cui l’arco esce e un -1 nella riga jrelativa al nodo in cui l’arco entra.

Esempio 21 Nel nostro esempio la matrice di incidenza nodo-arco e laseguente:

A =

1 1 1 0 0 0 0 0−1 0 0 1 −1 0 0 0

0 −1 0 −1 0 1 −1 00 0 0 0 1 −1 0 10 0 −1 0 0 0 1 −1

(8.1)

Se sommiamo tra loro tutte le | V | righe della matrice otteniamo il vettorenullo. Infatti in ogni colonna ci sono esattamente un +1 e un -1 (si facciala verifica sull’esempio). Quindi le | V | righe sono tra loro linearmentedipendenti ed il rango della matrice di vincoli non potra essere superiore a| V | −1. Si puo dimostrare (ma non lo faremo) che il rango e esattamente

135

Page 137: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

pari a | V | −1. Il fatto che∑

i∈V bi = 0 (e quindi non solo le righe dellamatrice sono linearmente dipendenti ma anche le equazioni stesse dei vincolisono tra loro linearmente dipendenti) ci mostra che uno (ed un solo) vincolodel problema puo essere eliminato in quanto ridondante. Non importa qualevincolo si elimina. Come convenzione si puo fissare di eliminare l’ultimaequazione. Nel seguito quindi l’ultimo vincolo si intendera soppresso equando si parlera di matrice dei vincoli si intendera la matrice di incidenzanodo-arco privata dell’ultima riga. Nel nostro esempio quindi la matricedei vincoli sara

A =

1 1 1 0 0 0 0 0−1 0 0 1 −1 0 0 0

0 −1 0 −1 0 1 −1 00 0 0 0 1 −1 0 1

ovvero la matrice (8.1) in cui e stata soppressa l’ultima riga.

8.2.1 Basi per il problema di flusso a costo minimo

Dal momento che il problema di flusso a costo minimo puo essere risoltocome problema di PL, possiamo utilizzare per risolverlo uno dgli algoritmiche abbiamo studiato in precedenza. In effetti quello che faremo e utilizzarel’algoritmo del simplesso ma in una forma particolare che sfrutta la struttu-ra dei problemi di flusso a costo minimo. Di seguito vedremo quindi comeil simplesso possa essere adattato ai problemi di flusso a costo minimo sureti. Cominceremo con lo stabilire il legame esistente tra basi del simplessoed alberi di supporto della rete.Si noti che, essendo il numero di righe (ed il rango) della matrice dei vincolipari a | V | −1, le basi sono sempre formate da | V | −1 variabili. Manon tutti gli aggregati di | V | −1 variabili danno origine ad una base. Performare una base devono anche soddisfare la proprieta che la matrice otte-nuta considerando le sole colonne relative ad esse nella matrice dei vincolisia invertibile. Nel nostro esempio, se si considera l’albero di supporto inFigura 8.2 si ha che le colonne ad esso relativo nella matrice dei vincoliformano la seguente matrice

1 0 0 00 1 0 00 −1 1 00 0 −1 1

che e invertibile e quindi le variabili corrispondenti formano una base.

136

Page 138: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

@@

@@

@@

@@

½½

½½

½½

½½

½½

1

2

3 4

5

b1=2

b2=5

b4=-4

b5=-4

b3=1

2

0

-4

3

Figura 8.2: Un albero di supporto per la rete del nostro esempio.

8.2.2 Relazioni tra basi ed alberi di supporto

Si consideri un generico albero di supporto della rete. Esso sara formatoda | V | −1 archi. Si puo dimostrare (ma non lo faremo) che la soluzioneottenuta mettendo le variabili relative agli archi dell’albero di supportoin base e tutte le altre fuori base si ottiene una soluzione di base (nonnecessariamente ammissibile e quindi non necessariamente un vertice) delproblema. Abbozzeremo invece una dimostrazione del viceversa e cioe chedata una qualsiasi base, i | V | −1 archi relativi alle variabili in baseformano un albero di supporto. Per dimostrarlo ragioniamo per assurdoe supponiamo che gli archi non formino un albero di supporto. Poichegli archi sono | V | −1, se non formano un albero di supporto devonoformare almeno un ciclo. Vediamo cosa succede in presenza di un ciclo sulnostro esempio, precisando che quanto vedremo su tale esempio puo esseregeneralizzato a tutti i casi in cui compaia un ciclo. Supponiamo che le| V | −1 = 4 variabili in base siano quelle relative agli archi

(1, 2) (2, 3) (5, 3) (1, 5)

che formano il ciclo mostrato in Figura 8.3. Fissiamo un arco del ciclo,ad esempio (1, 2) ed imponiamo che il verso di percorrenza del ciclo siaquello dell’arco (1, 2). Per ogni colonna nella matrice dei vincoli relativaad un arco del ciclo la moltiplichiamo per +1 se il ciclo attraversa l’arco

137

Page 139: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

@@

@@

@@

@@

,,

,,

,,

,,

,

1

2

3 4

5

b1=2

b2=5

b4=-4

b5=-4

b3=1

Figura 8.3: Un insieme di archi che formano un ciclo non possono dareorigine ad una base.

nel suo verso, per -1 se lo attraversa nel verso opposto. Poi sommiamo ivettori ottenuti in questo modo. Nel nostro caso moltiplicheremo per +1le colonne relative agli archi (1, 2) e (2, 3) e per -1 quelle relative agli archi(5, 3) e (1, 5). Quindi avremo

+1

1−100

+ 1

01−10

− 1

00−10

− 1

1000

=

0000

Cio dimostra che esiste una combinazione lineare non nulla delle colonneche restituisce il vettore nullo. Quindi tali colonne non formano una ma-trice invertibile e non rappresentano una base. Come detto, e possibilegeneralizzare questo risultato: ogni qualvolta gli archi relativi ad un insie-me di variabili formano un ciclo, le corrispondenti colonne della matrice deivincoli sono linearmente dipendenti e quindi le variabili non formano unabase. L’unica possibilita per avere una base e che gli archi non forminoalcun ciclo. Ma in base alla definizione di albero, in un grafo con | V |nodi, | V | −1 archi che non formino alcun ciclo rappresentano un alberodi supporto.Abbiamo quindi mostrato il seguente importante risultato.

138

Page 140: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Osservazione 21 In un problema di flusso su rete a costo minimo vi euna corrispondenza uno a uno tra basi ed alberi di supporto, ovvero ad ogniinsieme di | V | −1 variabili che formano una base corrisponde un alberodi supporto e viceversa.

Quindi, per i problemi di flusso su reti a costo minimo sara indifferenteparlare di basi o di alberi di supporto.

8.2.3 Alberi di supporto e soluzione di base corrispon-

dente

Supponiamo ora di avere un albero di supporto (vedi Figura 8.2) nel nostroesempio e poniamoci la seguente domanda: in corrispondenza di tale alberoe quindi di tale soluzione di base, qual e il valore delle variabili? Perprima cosa le variabili associate ad archi che non appartengono all’albero disupporto avranno associato un valore pari a 0. Quindi nel nostro esempio:

x12 = x13 = x42 = x53 = 0.

A questo punto sostituiamo tali valori nulli nei vincoli del problema. Quelloche si ottiene e un sistema di | V | −1 variabili (quelle relative agli archidell’albero di supporto) e | V | −1 equazioni. L’unica soluzione di talesistema fornisce i valori delle variabili in base. Nel nostro esempio ponendoa 0 i valori delle variabili relative ad archi che non appartengono all’alberodi supporto, otteniamo il seguente sistema:

x15 = 2

x23 = 5

x34 − x23 = 1

x45 − x34 = −4

la cui soluzione e:

x15 = 2 x23 = 5 x34 = 6 x45 = 2

Quindi la soluzione relativa all’albero di supporto dell’esempio e data da

x15 = 2 x23 = 5 x34 = 6 x45 = 2 x12 = x13 = x42 = x53 = 0

Si noti che tutte le variabili sono non negative e quindi in questo caso siparla di soluzione di base o albero di supporto ammissibile ( e quindi sitratta di un vertice della regione ammissibile).NOTA BENE Nel caso in cui una o piu delle variabili relative all’alberodi supporto fossero uguali a 0 avremmo una soluzione degenere.

139

Page 141: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

8.2.4 Calcolo dei coefficienti di costo ridotto

Come avete visto in precedenza, una condizione sufficiente per stabilire se,data una soluzione di base ammissibile (un vertice), ci troviamo in una so-luzione ottima in un problema di PL, e controllare se tutti i coefficienti dicosto ridotto sono tutti non positivi in un problema di massimo oppure tuttinon negativi in un problema di minimo. Nella riformulazione di un proble-ma di PL rispetto ad una base data i coefficienti di costo ridotto appaiononell’obiettivo della riformulazione. Nel simplesso su rete non abbiamo alcu-na riformulazione e dobbiamo quindi vedere come calcolare tali valori. Perprima cosa ricordiamo che vanno calcolati per le sole variabili fuori base.Quindi i coefficienti vanno calcolati per le sole variabili associate ad archiche non fanno parte dell’albero di supporto. La procedura per tale calcoloverra illustrata sul nostro esempio. Prendiamo una qualsiasi variabile fuoribase e quindi un qualsiasi arco che non faccia parte dell’albero di supporto,ad esempio l’arco (1, 3). Per prima cosa aggiungiamo l’arco all’albero. Siformera esattamente un ciclo che verra orientato nel verso dell’arco (1, 3) equindi il ciclo sara

1 → 3 → 4 → 5 → 1

come si vede da Figura 8.4. Si noti che il ciclo attraversa gli archi (1, 3),

@@

@@

@@

@@

½½

½½

½½

½½

½½

1

2

3 4

5

b1=2

b2=5

b4=-4

b5=-4

b3=1

2

0

-4

3

Figura 8.4: Il ciclo che si forma aggiungendo l’arco (1, 3).

(3, 4) e (4, 5) nel loro verso, mentre attraversa l’arco (1, 5) nel suo verso

140

Page 142: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

opposto. Il coefficiente di costo ridotto relativo all’arco (1, 3), indicatocon c13 verra calcolato sommando tra loro tutti i costi relativi agli archiattraversati dal ciclo nel loro stesso verso e sottraendo al risultato i costidegli archi attraversati dal ciclo in senso opposto al loro verso. Quindi

c13 = c13 + c34 + c45 − c15 = −2 + 0 + 3 − 2 = −1.

Si noti che il coefficiente di costo ridotto e negativo e questo ci dice imme-diatamente che non possiamo concludere che la soluzione di base correntee ottima. Possiamo ripetere la procedura per tutti gli archi fuori base percalcolare tutti i coefficienti di costo ridotto. Si ottengono i seguenti risultati:

c42 = 2 c12 = 2 c53 = 7.

Come gia osservato, la presenza di un coefficiente di costo ridotto negativo(c13) ci impedisce di concludere che la soluzione di base corrente e ottima.In questi casi nel metodo del simplesso si procede ad un cambio di baseattraverso un’operazione di cardine sulla tabella. Vediamo ora come questoviene fatto nel simplesso su rete.

8.2.5 Cambio di base ovvero l’operazione di cardine

nel simplesso su rete

Per il cambio di base dovremo dare una regola per stabilire quale variabilefuori base far entrare in base e quale in base dovra uscire dalla base. Perquanto riguarda la variabile fuori base da far entrare in base, la scelta eristretta alle sole variabili con coefficiente di costo ridotto negativo (le soleincrementando le quali si puo far diminuire il costo complessivo del flusso).Tra queste fisseremo come regola di scegliere quella (o una di quelle, sesono piu di una) con il coefficiente di costo ridotto il piu negativo possibile.Nel nostro esempio non abbiamo alcuna scelta da fare visto che la solavariabile fuori base con coefficiente di costo ridotto negativo e quella relativaall’arco (1, 3). Aggiungiamo tale arco all’albero e riotteniamo la Figura 8.4.Inizialmente il flusso lungo l’arco (1, 3) e nullo (x13 = 0). Incrementiamo a∆ il valore di tale flusso. Quindi avremo un nuovo flusso pari a ∆ in uscitadal nodo 1 ed in entrata al nodo 3. Per poter continuare a rispettare i vincolirelativi al nodo 1 e 3 dovremo diminuire di ∆ il flusso lungo l’arco (1, 5) edaumentare di ∆ il flusso lungo l’arco (3, 4). A questo punto per soddisfareil vincolo relativo al nodo 4 dobbiamo incrementare di ∆ il flusso lungol’arco (4, 5). Si noti che il vincolo relativo al nodo 5 e ancora soddisfattopoiche nel nodo 5 arriva un flusso pari a ∆ in piu dal nodo 4 ma ancheun flusso ancora pari a ∆ in meno dal nodo 1. Gli archi relativi al nodo 2non subiscono variazioni e quindi il vincolo relativo al nodo 2 continua ad

141

Page 143: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

essere soddisfatto. Si puo riassumere quanto visto nel modo seguente. Unavolta aggiunto l’arco (1, 3) si forma un ciclo che viene orientato nel versodell’arco (1, 3) stesso. Il flusso viene incrementato di ∆ lungo ogni arco cheil ciclo attraversa nel suo stesso verso e decrementato di ∆ lungo gli archiche vengono attraversati in verso opposto. Quindi nel nostro esempio:

x13 = ∆ x34 = 6 + ∆ x45 = 2 + ∆ x15 = 2 − ∆.

A questo punto possiamo incrementare il valore di ∆ arrestandoci nel mo-mento in cui un flusso lungo un arco del ciclo si annulla. Nel nostro casopossiamo incrementare ∆ fino a 2 ma non oltre in quanto incrementandolooltre il flusso relativo all’arco (1, 5) diventerebbe negativo. La prima varia-bile che diventa nulla incrementando ∆ corrispondera alla variabile da faruscire di base. Se piu variabili diventano nulle contemporaneamente incre-mentando ∆ (caso degenere) se ne seleziona una di esse arbitrariamente.L’albero di supporto corrispondente alla nuova base sara quello ottenutoinserendo l’arco relativo alla variabile fatta entrare in base (l’arco (1, 3)nel nostro esempio) e rimuovendo l’arco della variabile fatta uscire di base(l’arco (1, 5) nel nostro esempio). Per il nostro esempio la nuova base equella riportata in Figura 8.5 ed i nuovi valori delle variabili sono i seguenti

x13 = 2 x23 = 5 x34 = 8 x45 = 4 x12 = x15 = x42 = x53 = 0

NOTA BENE Se il ciclo ottenuto aggiungendo all’albero di supportol’arco relativo alla variabile fuori base avesse tutti gli archi orientati nel-lo stesso verso del ciclo stesso (vedi Figura 8.6) allora potrei far crescere∆ all’infinito senza che nessun flusso si annulli (tutti i flussi lungo il ciclovengono incrementati). Cio corrisponde al caso di problema con obiettivoillimitato.

Possiamo ora concludere il nostro esempio andando a calcolare i nuovicoefficienti di costo ridotto. I risultati sono i seguenti.

c42 = 2 c15 = 1 c12 = 3 c53 = 7.

Essendo tutti non negativi si conclude che la soluzione corrente e otti-ma. Piu precisamente, essendo tutti non solo non negativi ma anche stret-tamente positivi, si conclude che la soluzione e anche l’unica soluzioneottima.

8.2.6 Determinazione di una soluzione di base ammis-

sibile iniziale

Nella descrizione del simplesso su rete siamo partiti assumendo di avere giaa disposizione un albero di supporto ammissibile. Non sempre pero questo

142

Page 144: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

½½

½½

½½

½½

½½

1

2

3 4

5

b1=2

b2=5

b4=-4

b5=-4

b3=1

Figura 8.5: La nuova base (albero di supporto) del problema.

e vero e non e neppure detto che una soluzione ammissibile esista. Avremoquindi bisogno di una procedura che ci dica se ci sono soluzioni ammissibilie, nel caso esistano, ce ne restituisca una. Utilizzeremo, come gia fatto per igenerici problemi di PL, una tecnica due fasi. Nella prima fase aggiungiamoalla nostra rete un nuovo nodo q e congiungiamo tale nodo con ogni nodoi della rete tale che bi < 0 attraverso l’arco (q, i), mentre lo congiungiamocon ogni nodo i della rete tale che bi ≥ 0 attraverso l’arco (i, q). I valori bi

vengono lasciati invariati, mentre si pone bq = 0. I costi dei flussi unitarisaranno posti uguali a 1 per tutti gli archi incidenti sul nodo q e 0 per tuttigli archi della rete originaria. Per il nostro esempio la nuova rete sara quellain Figura 8.7. Per questo problema si ha immediatamente a disposizione unalbero di supporto ammissibile, quello formato da tutti gli archi incidentisu q, con i seguenti valori delle variabili:

xqi = −bi ∀ i : bi < 0

xiq = bi ∀ i : bi ≥ 0

mentre tutte le altre variabili sono nulle. A questo punto risolviamo questoproblema con il simplesso su rete nel modo gia visto in precedenza. Sela soluzione ottima di tale problema e maggiore di 0, allora il problemaoriginario ha regione ammissibile vuota. Se invece la soluzione ottima epari a 0 e l’albero di supporto ottimo contiene solo uno dei nuovi archi

143

Page 145: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

½½

½½

½½

½½

½½

ll

ll

ll

ll

1

2

3 4

5

b1=2

b2=5

b4=-4

b5=-4

b3=1

Figura 8.6: Tutti gli archi del ciclo hanno lo stesso orientamento: ilproblema ha obiettivo illimitato.

(quelli incidenti su q), eliminando tale arco si ottiene un albero di supportoammissibile per il problema originario. A questo punto possiamo eliminareil nodo q e tutti gli archi incidenti su di esso, ripristinare gli originari costidegli archi e cominciare a risolvere il problema (seconda fase del metodo).Non illustreremo la prima fase del metodo sul nostro solito esempio inquanto ci sarebbero troppi calcoli da fare. La illustreremo su un esempiodi piu piccole dimensioni.

Esempio 22 Si consideri la rete in Figura 8.8. Nella prima fase aggiun-giamo il nodo q e gli archi incidenti su di esso ed aggiorniamo i costi deiflussi come indicato in Figura 8.9. Per il problema della prima fase unalbero di supporto ammissibile e quello formato dagli archi incidenti su q,ovvero (1, q), (2, q) e (q, 3). La soluzione iniziale e

xq3 = 4 x2q = 3 x1q = 1,

tutte le altre variabili nulle. Il calcolo dei coefficienti di costo ridotto resi-tuisce

c12 = 0 c13 = −2 c23 = −2.

La soluzione non e ottima in quanto abbiamo coefficienti di costo ridottonegativi. Scelgo una delle variabili fuori base con coefficiente di costo ri-dotto piu negativo, ad esempio quella associata all’arco (1, 3). Applicando

144

Page 146: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

¡¡

¡¡

¡¡

¡¡

@@

@@

@@

@@

cc

cc

cc

cc

cc

½½

½½

½½

½½

½½

1

2

3 4

5

b1=2

b2=5

b4=-4

b5=-4

b3=10

q

bq=0

1

1

1

1

1

0 00

00

0

0

Figura 8.7: Il problema di prima fase per determinare una soluzioneammissibile iniziale.

la procedura per il cambio di base ottengo il nuovo albero di supporto (1, 3),(2, q) e (q, 3). La nuova soluzione e

xq3 = 3 x2q = 3 x13 = 1,

tutte le altre variabili nulle. Il calcolo dei coefficienti di costo ridotto resi-tuisce

c12 = 2 c1q = 2 c23 = −2.

La soluzione non e ottima in quanto abbiamo coefficienti di costo ridottonegativi. Scelgo una delle variabili fuori base con coefficiente di costo ridottopiu negativo, in tal caso c’e solo quella associata all’arco (2, 3). Applicandola procedura per il cambio di base ottengo il nuovo albero di supporto (1, 3),(2, 3) e (q, 3). La nuova soluzione e

xq3 = 0 x23 = 3 x13 = 1,

tutte le altre variabili nulle. Il calcolo dei coefficienti di costo ridotto resi-tuisce

c12 = 0 c1q = 2 c2q = 2.

145

Page 147: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

©©©©©©©

HHHHHHHH

1

2

3

b1=1

b2=3

b3=-4

2

3

5

Figura 8.8: Una rete.

©©©©©©©

HHHHHHHH

1

2

3 q

b1=1

b2=3

b3=-4

0

0

0

1

1

1

Figura 8.9: La rete ausiliaria per determinare un flusso ammissibile inizialeper la rete di Figura 8.8.

La soluzione e ottima ed e pari a 0. Quindi il problema ammette soluzioniammissibili. Inoltre, poiche la soluzione ottima contiene un solo arco inci-dente sul nodo q, eliminando tale arco ottengo immediatamente un alberodi supporto ammissibile per il problema originario (quello formato dagli ar-chi (1, 3) e (2, 3)) e con tale albero di supporto ammissibile sono pronto adentrare nella seconda fase e risolvere il problema originario.

146

Page 148: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Capitolo 9

Il problema di flusso

massimo

In questo capitolo prenderemo in esame un particolare esempio di problemasu grafi, il problema del flusso massimo.Si consideri una rete, ovvero un grafo orientato G = (V,A). Attraverso talerete si fa viaggiare quello che chiameremo genericamente un flusso che puoessere, a seconda delle applicazioni, un flusso di prodotti se la rete e unarete stradale, di informazione se e una rete di comunicazione, di acqua se euna rete idraulica e cosi via. Tra i nodi della rete si riconoscono:

• un nodo sorgente, che nel seguito indicheremo con S, da cui il flussoparte;

• un nodo destinazione, che nel seguito indicheremo con D, a cui ilflusso arriva.

Tutti gli altri nodi vengono detti intermedi e sono caratterizzati dal fattoche in essi la quantita di flusso entrante e sempre pari a quella uscente(vincoli di equilibrio). Gli archi della rete hanno una capacita limitata cherappresenta la quantita massima di flusso che puo attraversare tali archi. Ilproblema di massimo flusso consiste nel determinare la quantita massimadi flusso che partendo dal nodo sorgente si puo far giungere fino al nododestinazione, tenuto conto dei vincoli di capacita sugli archi e di quelli diequilibrio nei nodi intermedi.NB Abbiamo parlato di un solo nodo sorgente e di un solo nodo desti-nazione nella rete. In problemi reali il flusso puo essere generato da piusorgenti e/o essere ricevuto da piu destinazioni. Tali casi si possono facil-mente ricondurre a quello di una sola sorgente e di una sola destinazione

147

Page 149: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

attraverso l’introduzione di una sorgente fittizia collegata tramite archi fit-tizi a capacita infinita a ciascuna sorgente reale e, analogamente, attraversol’introduzione di una destinazione fittizia alla quale si giunge tramite ar-chi fittizi a capacita infinita a partire da ciascuna destinazione reale (vediFigura 9.1).

´´

´´

´´

´

bbbbbb

»»»»»»

QQ

QQ

QQ

Q

½½

½½

½½

½

TTTTTTTTTTTT

­­­­­­­­­­­

©©©©©©©

aaaaaa

bbbbbbb """""

AAAAAAAAAAA

%%

%%

%

ZZ

ZZ

Sorgentefittizia

Destinazionefittizia

S1

S2

n1

n2

n3

n4

n5

D1

D2

D3Sorgentireali

Destinazionireali

Figura 9.1: La riduzione al caso di una sola sorgente e una sola destinazione.

9.1 Modello matematico del problema

Vediamo ora di introdurre un modello matematico che rappresenti il nostroproblema. Associamo ad ogni arco della rete (i, j) ∈ A una variabile:

xij = flusso inviato lungo l’arco (i, j)

Tali variabili saranno vincolate ad essere non negative (non ha senso parlaredi un flusso negativo). Se indichiamo con cij la capacita dell’arco (i, j) si

148

Page 150: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

dovra anche avere

xij ≤ cij ∀ (i, j) ∈ A,

cioe il flusso lungo ogni arco non ne puo superare la capacita. In molticasi le variabili possono assumere solo valori interi ma, come vedremo inseguito, non sara necessario imporre esplicitamente il vincolo di interezzasulle variabili. Il nostro obiettivo e quello di massimizzare la quantita diflusso uscente dal nodo sorgente S:

j: (S,j)∈A

xSj

o, equivalentemente, quella entrante nel nodo destinazione D:

j: (j,D)∈A

xjD

(le due quantita sono uguali). Restano ancora da esprimere i vincoli diequilibrio nei nodi intermedi. Questi possono essere tradotti nelle seguentiequazioni:

j: (k,j)∈A

xkj

︸ ︷︷ ︸

flusso uscente da k

=∑

j: (j,k)∈A

xjk

︸ ︷︷ ︸

flusso entrante in k

∀ k ∈ V \ {S,D}.

Riassumendo, il modello matematico del problema di massimo flusso e ilseguente:

max∑

j: (S,j)∈A xSj∑

j: (k,j)∈A xkj =∑

j: (j,k)∈A xjk ∀ k ∈ V \ {S,D} (9.1)

0 ≤ xij ≤ cij ∀ (i, j) ∈ A

Abbiamo detto in precedenza che non e necessario imporre i vincoli diinterezza sulle variabili. Infatti, vale il seguente teorema.

Teorema 6 Se le capacita cij degli archi sono tutti valori interi, alloratutti i vertici ottimi del problema di flusso massimo (9.1) sono a coordinateintere.

Esempio 23 Sia data la rete in Figura 9.2. I numeri sugli archi ne indica-no le capacita. Il modello matematico del problema e il seguente problema di

149

Page 151: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

¡¡

¡¡

¡¡

¡

@@

@@

@@

JJJJJJJJJJJJJJJJ­

­­­­­­­­­­­­­­­

@@

@@

@@

@@

,,

,,

,,

,,

S D

n1

n2

n3

n4

3

2

4

1

1

1

1

7

Figura 9.2: Una rete con le capacita degli archi indicati al loro fianco.

PL (essendo le capacita valori interi non avremo bisogno di imporre vincolidi interezza sulle variabili):

max xS1 + xS2

x13 + x14 = xS1

x23 + x24 = xS2

x3D = x13 + x23

x4D = x14 + x24

0 ≤ xS1 ≤ 3

0 ≤ xS2 ≤ 2

0 ≤ x13 ≤ 1

0 ≤ x14 ≤ 4

0 ≤ x23 ≤ 1

0 ≤ x24 ≤ 1

0 ≤ x3D ≤ 1

0 ≤ x4D ≤ 7

150

Page 152: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

9.2 Tagli e problema del taglio minimo

Prima di descrivere un algoritmo per risolvere il problema di flusso massimoaccenniamo ad un altro problema che, come vedremo, e strettamente legatoa quello del flusso massimo. Si consideri U ⊂ V con la proprieta che:

S ∈ U D 6∈ U.

L’insieme di archi

SU = {(i, j) ∈ A : i ∈ U, j 6∈ U},

ovvero gli archi con il primo estremo in U e l’altro al di fuori di U , vienedetto taglio della rete. Si noti che eliminando tutti gli archi di un tagliodalla rete rendo impossibile raggiungere D a partire da S in quanto cioequivale ad eliminare tutti gli archi che vanno da U (contenente S) al suocomplementare U = V \U (contenente D). Ad un taglio si associa un costopari alla somma delle capacita degli archi del taglio, cioe:

C(SU ) =∑

(i,j)∈SU

cij .

Nell’esempio in Figura 9.2, l’insieme U = {S, n1, n2} induce il taglio SU ={(n1, n3), (n1, n4), (n2, n3), (n2, n4)} con capacita C(SU ) = 7. Si puo notareche, dato un taglio SU qualsiasi, il valore del flusso massimo nella rete nonpuo superare quello del costo del taglio. Infatti, per poter passare dall’insie-me di nodi U contenente la sorgente S al suo complementare U contenentela destinazione D il flusso puo solo passare attraverso gli archi del taglioSU e quindi il flusso non puo superare la somma delle capacita di tali archi,ovvero il costo del taglio. Quindi il costo di ogni taglio rappresenta un limi-te superiore per il valore del flusso massimo (nel nostro esempio sappiamoquindi gia che il flusso massimo non puo superare il valore 7, ovvero il costodel taglio indotto da U = {S, n1, n2}). Possiamo anche spingerci piu in la edire che tra tutti i tagli ve ne e almeno uno il cui costo e esattamente pari aquello del flusso massimo. Piu precisamente, consideriamo il problema deltaglio di costo minimo che consiste nel determinare, tra tutti i tagli possibiliall’interno di una rete, quello il cui costo sia il piu piccolo possibile, ovvero

minU⊂V : S∈U, D 6∈U

C(SU ). (9.2)

Avremo modo di dimostrare che i valori ottimi del problema di flusso mas-simo (9.1) e quello di taglio a costo minimo (9.2) sono uguali tra loro. Nonsolo, l’algoritmo con cui risolveremo il problema di flusso massimo ci dara

151

Page 153: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

immediatamente anche una soluzione per il problema di taglio a costo mi-nimo. Richiamando le nozioni di dualita nella PL, possiamo dire che ilproblema di taglio a costo minimo e un problema duale del problema diflusso massimo.

9.3 Algoritmo di Ford-Fulkerson

Ci occuperemo ora di descrivere un possibile algoritmo di risoluzione peril problema di flusso massimo, chiamato algoritmo di Ford-Fulkerson. Pri-ma di descrivere l’algoritmo abbiamo bisogno di introdurre alcuni concetti.Supponiamo di avere un flusso ammissibile:

X = (xij)(i,j)∈A,

ovvero un flusso che soddisfa i vincoli di equilibrio e quelli di capacita degliarchi. Se xij = cij diremo che l’arco (i, j) e saturo. Si consideri ora uncammino orientato nella rete dal nodo S al nodo D:

S = q0 → q1 → · · · → qr → qr+1 = D,

privo di archi saturi, ovvero nesuno degli archi

(qi, qi+1) ∈ A i = 0, . . . , r

e saturo. In tal caso il flusso X non e ottimo. Infatti, posso aumentareil flusso lungo ciascun arco del cammino di una quantita ∆ definita nelseguente modo:

∆ = mini=0,...,r

[cqiqi+1− xqiqi+1

],

senza violare i vincoli di capacita degli archi. Si noti anche che i vincoli diequilibrio continuano ad essere rispettati in quanto in ogni nodo intermediodel grafo facente parte del cammino si ha che il flusso in entrata aumenta di∆ ma contemporaneamente aumenta di ∆ anche quello in uscita. Essendogli archi del cammino non saturi si ha che ∆ > 0 e il flusso totale da S a Dviene aumentato proprio di questa quantita. Per illustrare questa situazionesi consideri l’esempio in Figura 9.3 dove di fianco agli archi sono riportatidue numeri, il primo corrispondente al flusso attuale xij lungo l’arco, l’altrocorrispondente alla capacita cij dell’arco. Attuamente il flusso in uscita dalnodo S e pari a 2 (1 unita lungo l’arco (S, n1) e 1 lungo l’arco (S, n2)).Questo flusso non e ottimo. Notiamo infatti che esiste almeno un camminoorientato da S a D con archi non saturi, ad esempio il cammino

S → n1 → n2 → D

152

Page 154: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

´´

´´

´´

´bbbbbbbbb

´´

´´

´´

´´

´

ZZ

ZZ

ZZ

ZZ

S

n1

n2

D

1/21/2

0/1

1/21/2

Figura 9.3: I numeri a fianco di ogni arco rappresentano rispettivamente ilflusso lungo di esso e la sua capacita.

Lungo tale cammino si ha

∆ = min{cSn1− xSn1

, cn1n2− xn1n2

, cn2D − xn2D} = 1.

Quindi posso incrementare di 1 unita il flusso lungo gli archi del cammino,cioe avro il seguente aggiornamento del flusso:

xSn1= xSn1

+ ∆ xSn2= xSn2

xn1n2= xn1n2

+ ∆

xn1D = xn1D xn2D = xn2D + ∆

La nuova situazione e illustrata in Figura 9.4. Ora il flusso totale uscenteda S e salito anch’esso della quantita ∆ passando da 2 a 3. Possiamonotare che ora tutti i cammini orientati da S a D contengono almeno unarco saturo. Possiamo allora concludere che il flusso attuale e il massimopossibile? La risposta e no e lo dimostreremo nel seguito. Prima definiamoun nuovo grafo orientato G(X) = (V,A(X)) detto grafo associato al flussoX. Il nuovo grafo ha gli stessi nodi della rete originaria e ha il seguenteinsieme di archi:

A(X) = {(i, j) : (i, j) ∈ A, xij < cij}︸ ︷︷ ︸

Af (X)

∪{(i, j) : (j, i) ∈ A, xji > 0}︸ ︷︷ ︸

Ab(X)

,

ovvero A(X) contiene tutti gli archi di A non saturi (l’insieme Af (X), dettoinsieme degli archi forward) e tutti gli archi di A lungo cui e stata inviata

153

Page 155: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

´´

´´

´´

´bbbbbbbbb

´´

´´

´´

´´

´

ZZ

ZZ

ZZ

ZZ

S

n1

n2

D

1/2

1/2

2/2

1/1

2/2

Figura 9.4: La nuova situazione dopo l’incremento del flusso.

una quantita positiva di flusso, cambiati pero di verso (l’insieme Ab(X),detto insieme degli archi backward). Vediamo di generare il grafo associatoal flusso attuale X del nostro esempio. Si ha che:

Af (X) = {(S, n2), (n1,D)}

Ab(X) = {(n1, S), (n2, S), (n2, n1), (D,n1), (D,n2)}.Il grafo e rappresentato in Figura 9.5. Poniamoci ora la seguente domanda:

ZZ

ZZ

ZZ

ZZ

HHHHHHHHH

!!!!!!!!

´´

´´

´´

´´

S

n1

n2

D

Figura 9.5: Il grafo associato al flusso corrente.

esiste sul nuovo grafo orientato G(X) un cammino orientato da S a D? La

154

Page 156: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

risposta e affermativa. Esiste infatti il cammino orientato:

S → n2 → n1 → D.

Indichiamo con P = {(S, n2), (n2, n1), (n1,D)} l’insieme degli archi ditale cammino. Possiamo a questo punto modificare il nostro flusso nelmodo seguente. Per ogni arco (i, j) del cammino P si calcoli il seguentevalore:

αij =

{cij − xij se (i, j) ∈ Af (X) ∩ Pxji se (i, j) ∈ Ab(X) ∩ P

e quindi sia∆ = min

(i,j)∈Pαij

il minimo di tali valori. Per gli archi forward il valore αij rappresenta quantoflusso posso ancora inviare lungo l’arco (i, j) ∈ A della rete originaria, pergli archi backward il valore αij rappresenta quanto flusso posso rispedireindietro lungo l’arco (j, i) ∈ A della rete originaria. Nel nostro caso si ha:

(S, n2) ∈ Af (X) → αSn2= 2 − 1 = 1 (n2, n1) ∈ Ab(X) → αn2n1

= 1

(n1,D) ∈ Af (X) → αn1D = 2 − 1 = 1

Il minimo tra questi tre valori e ∆ = 1. Ora il flusso viene aggiornato nelmodo seguente:

xij =

xij + ∆ se (i, j) ∈ Af (X) ∩ Pxij − ∆ se (j, i) ∈ Ab(X) ∩ Pxij altrimenti

(9.3)

Quindi nel nostro esempio avremo:

xSn1= 2 xSn2

= 1 + 1 = 2 xn1n2= 1 − 1 = 0

xn1D = 1 + 1 = 2 xn2D = 2.

La nuova situazione e illustrata in Figura 9.6. In pratica sulla rete origi-naria incrementiamo di ∆ il flusso lungo gli archi corrispondenti ad archiforward del grafo associato al flusso attuale appartenenti al cammino P ,rispediamo indietro ∆ unita di flusso lungo gli archi che, cambiati di verso,corrispondono ad archi backward del grafo associato appartenenti al cam-mino P , e quindi decrementiamo il flusso della stessa quantita lungo taliarchi. Infine, lungo gli archi che non fanno parte del cammino P il flussorimane invariato. Si puo verificare che il nuovo flusso e ammissibile. Inparticolare, per come e stato scelto il valore ∆ il nuovo flusso lungo ciascun

155

Page 157: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

´´

´´

´´

´bbbbbbbbb

´´

´´

´´

´´

´

ZZ

ZZ

ZZ

ZZ

S

n1

n2

D

2/2

2/2

0/1

2/2

2/2

Figura 9.6: La nuova situazione dopo l’aggiornamento del flusso.

arco e non negativo e non supera la capacita dell’arco. Inoltre, continuanoanche ad essere soddisfatti i vincoli di equilibrio nei nodi intermedi. Laquantita di flusso uscente da S e anch’essa aumentata proprio della quan-tita ∆ e quindi passa da 3 a 4, il che dimostra che il flusso precedente nonera ottimo. Con il nuovo flusso possiamo ripetere quanto visto. Costruiamoil grafo G(X) associato al nuovo flusso X. Ora avremo:

Af (X) = {(n1, n2)} Ab(X) = {(n1, S), (n2, S), (D,n1), (D,n2)}.

Il grafo e illustrato in Figura 9.7. Possiamo ora chiederci se il nuovo flusso

!!!!!!!!

ZZ

ZZ

ZZ

ZZ

bb

bb

bb

bb

½½

½½

½½

½½

S

n1

n2

D

Figura 9.7: Il grafo associato al nuovo flusso.

156

Page 158: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

e quello ottimo. La risposta la possiamo dare sulla base della seguentefondamentale osservazione.

Osservazione 22 Dato un flusso X, esso e ottimo se e solo se nel grafoassociato G(X) non esiste alcun cammino orientato da S a D.

Dalla Figura 9.7 si puo notare che per il grafo associato al nostro nuovoflusso non esiste alcun cammino orientato dal nodo S al nodo D e quindi ilflusso attuale e ottimo. Quanto visto rappresenta la base dell’algoritmo diFord-Fulkerson. In pratica, ad ogni iterazione di tale algoritmo si eseguonoi seguenti passi.

Passo 1 Si costruisca il grafo G(X) associato al flusso attuale X.

Passo 2 Se non esiste alcun cammino orientato da S a D in G(X), alloraSTOP: il flusso attuale X e ottimo. Altrimenti, si individui un talecammino P e si aggiorni il flusso X come indicato in (9.3) e si ritornial Passo 1.

Se quella sopra e la struttura dell’algoritmo, vediamo ora di entrare nei suoidettagli.

ALGORITMO DI FORD-FULKERSON

Passo 0 Si parta con un flusso ammissibile X. Si noti che e semprepossibile partire con il flusso nullo X = 0.

Passo 1 Si associ alla sorgente S l’etichetta (S,∞). L’insieme R dei no-di analizzati e vuoto, ovvero R = ∅, mentre l’insieme E dei nodietichettati contiene il solo nodo S, ovvero E = {S}.

Passo 2 Si verifichi se E \ R 6= ∅, ovvero se vi sono nodi etichettati nonancora analizzati. Se non ne esistono il flusso attuale X e ottimo.Altrimenti si selezioni un nodo i ∈ E\R, cioe etichettato, con etichetta(k,∆), ma non ancora analizzato e lo si analizzi. Analizzare il nodo ivuol dire compiere le seguenti operazioni. Per ogni nodo j 6∈ E, cioenon ancora etichettato, e tale che (i, j) ∈ A(X), si etichetti j con laseguente etichetta:

(i,min(∆, cij − xij)) se (i, j) ∈ Af (X)

(i,min(∆, xji)) se (i, j) ∈ Ab(X)

157

Page 159: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Quindi si ponga:

E = E ∪ {j 6∈ E : (i, j) ∈ A(X)} R = R ∪ {i}.

Se D ∈ E, cioe se la destinazione e stata etichettata, si vada al Passo3, altrimenti si ripeta il Passo 2.

Passo 3 Si ricostruisca un cammino orientato da S a D in G(X) proce-dendo a ritroso da D verso S ed usando le prime componenti del-le etichette. Piu precisamente, si cominci col considerare l’etichetta(qr,∆) di D. Allora nel cammino orientato da S a D il nodo D epreceduto da qr. Per conoscere da quale nodo e preceduto qr se neconsideri la prima componente dell’etichetta, indicata qui con qr−1.Si ripeta quindi la stessa procedura con qr−1. Ci si arresta non appe-na si arriva ad un nodo q1 la cui prima componente dell’etichetta e ilnodo sorgente S. A questo punto il cammino

S → q1 → · · · → qr−1 → qr → D

con insieme di archi

P = {(S, q1), . . . , (qr−1, qr), (qr,D)}

e un cammino orientato da S a D in G(X). Ora possiamo aggior-nare X come indicato in (9.3), dove il valore ∆ e dato dalla secondacomponente dell’etichetta del nodo D, e ritornare al Passo 1.

Quando l’algoritmo termina abbiamo gia anche una soluzione del problemadi taglio minimo, come dimostra il seguente teormema.

Teorema 7 Se si pone U = E, dove E e l’insieme dei nodi etichettati almomento della terminazione dell’algoritmo, si ha anche che il taglio SU

indotto da U e soluzione ottima del problema di taglio minimo (9.2).

Dimostrazione Per prima cosa si noti che al momento della terminazionedell’algoritmo si ha S ∈ E (il nodo S viene sempre etichettato al Passo 1)e D 6∈ E (altrimenti dovremmo andare al Passo 3 ed aggiornare il flussoattuale). Quindi l’insieme E induce effettivamente un taglio. Vediamo oraqual e il valore di questo taglio. Se riusciamo a dimostrare che esso coincidecon il valore del flusso uscente da S, avendo gia osservato che il costo di ognitaglio e non inferiore al valore del flusso massimo, possiamo concludere cheesso e il taglio a costo minimo. Per prima cosa valutiamo il flusso uscenteda S ed entrante in D. Esso coincide con tutto il flusso che dai nodi in Eviene spostato verso i nodi nel complemento E = V \E di E meno il flusso

158

Page 160: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

E

E

E

E

Flusso da E verso

Flusso da verso E

Figura 9.8: Il flusso totale dalla sorgente alla destinazione e pari alla dif-ferenza tra il flusso totale da E verso E e il flusso totale da E verso E.

che va in senso opposto, cioe quello dai nodi nel complemento E verso i nodiin E (si veda la Figura 9.8). In formule il flusso uscente da S ed entrantein D e quindi pari a:

(i,j) : (i,j)∈A, i∈E, j∈E

xij −∑

(j,i) : (j,i)∈A, i∈E, j∈E

xji. (9.4)

Ma vediamo ora come devono essere i valori xij per (i, j) ∈ A, i ∈ E, j ∈ Ee i valori xji per (j, i) ∈ A, i ∈ E, j ∈ E. Si deve avere che

∀ (i, j) ∈ A, i ∈ E, j ∈ E xij = cij . (9.5)

Infatti, per assurdo si supponga che esista un (i1, j1) ∈ A, i1 ∈ E, j1 ∈E con xi1j1 < ci1j1 . In tal caso (i1, j1) ∈ Af (X) e quindi al Passo 2dovremmo assegnare un’etichetta a j1, il che contraddice l’ipotesi che j1 6∈E. Analogamente, si deve avere che

∀ (j, i) ∈ A, i ∈ E, j ∈ E xji = 0. (9.6)

Infatti, per assurdo si supponga che esista un (j1, i1) ∈ A, i1 ∈ E, j1 ∈ Econ xj1i1 > 0. In tal caso (i1, j1) ∈ Ab(X) e quindi al Passo 2 dovremmo

159

Page 161: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Tabella 9.1:

E R S n1 n2 n3 n4 D

Passo 1 S ∅ (S,∞) - - - - -

Passo 2 S, n1, n2 S (S,∞) (S, 3) (S, 2) - - -

Passo 2 S, n1, n2, n3, n4 S, n1 (S,∞) (S, 3) (S, 2) (n1, 1) (n1, 3) -

Passo 2 S, n1, n2, n3, n4 S, n1, n2 (S,∞) (S, 3) (S, 2) (n1, 1) (n1, 3) -

Passo 2 S, n1, n2, n3, n4, D S, n1, n2, n3 (S,∞) (S, 3) (S, 2) (n1, 1) (n1, 3) (n3, 1)

assegnare un’etichetta a j1, il che contraddice ancora l’ipotesi che j1 6∈ E.Sostituendo (9.5) e (9.6) in (9.4) si ottiene che il valore del flusso e pari a

(i,j) : (i,j)∈A, i∈E, j∈E

cij = C(SE),

cioe e pari al costo del taglio indotto da E, il che conclude la dimostrazione.

Se al Passo 2 il nodo i ∈ E \ R da analizzare viene scelto secondo unadisciplina FIFO (cioe i nodi vengono analizzati nell’ordine in cui vengo-no etichettati) allora l’algoritmo di Ford-Fulkerson richiede un numero dioperazioni dell’ordine di | A || V |2. Va precisato che l’algoritmo di Ford-Fulkerson non e l’unico algoritmo possibile per risolvere il problema di flussomassimo. Esistono anche altri algoritmi piu sofisticati che richiedono an-che un numero di operazioni inferiore rispetto a quello di Ford-Fulkerson(dell’ordine di | V |3).

9.4 Un esempio di applicazione del problema

di massimo flusso

Vediamo ora di risolvere il problema di flusso massimo in Figura 9.2 utiliz-zando l’algoritmo di Ford-Fulkerson. Cominciamo con il flusso nullo X. Intal caso si ha che il grafo associato a tale flusso nullo coincide con il grafooriginario, ovvero G(X) ≡ G. Il primo ciclo dell’algoritmo e descritto nellaTabella 9.1. Il valore ∆ e pari a 1 ed il cammino orientato in G(X) da Sa D e il seguente:

S → n1 → n3 → D.

Cio porta al seguente aggiornamento del flusso:

xSn1= 1 xSn2

= 0 xn1n3= 1 xn1n4

= 0

160

Page 162: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

xn2n3= 0 xn2n4

= 0 xn3D = 1 xn4D = 0

161

Page 163: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Il grafo G(X) associato al nuovo flusso e illustrato in Figura 9.9. A

¡¡

¡¡

¡¡

¡

@@

@@

@@

JJJJJJJJJJJJJJJJ­

­­­­­­­­­­­­­­­

,,

,,

,,

,,

@@

@@

@@

@@

S D

n1

n2

n3

n4

Figura 9.9: Il grafo associato al nuovo flusso.

questo punto si ripete la procedura con i passi indicati in Tabella 9.2. Ilvalore ∆ e pari a 2 ed il cammino orientato in G(X) da S a D e il seguente:

S → n1 → n4 → D.

Cio porta al seguente aggiornamento del flusso:

xSn1= 3 xSn2

= 0 xn1n3= 1 xn1n4

= 2

xn2n3= 0 xn2n4

= 0 xn3D = 1 xn4D = 2

Il grafo G(X) associato al nuovo flusso e illustrato in Figura 9.10. A questopunto si ripete la procedura con i passi indicati in Tabella 9.3. Il valore∆ e pari a 1 ed il cammino orientato in G(X) da S a D e il seguente:

S → n2 → n4 → D.

Cio porta al seguente aggiornamento del flusso:

xSn1= 3 xSn2

= 1 xn1n3= 1 xn1n4

= 2

xn2n3= 0 xn2n4

= 1 xn3D = 1 xn4D = 3

162

Page 164: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

Tabella 9.2:

E R S n1 n2 n3 n4 D

Passo 1 S ∅ (S,∞) - - - - -

Passo 2 S, n1, n2 S (S,∞) (S, 2) (S, 2) - - -

Passo 2 S, n1, n2, n4 S, n1 (S,∞) (S, 2) (S, 2) - (n1, 2) -

Passo 2 S, n1, n2, n3, n4 S, n1, n2 (S,∞) (S, 2) (S, 2) (n2, 1) (n1, 2) -

Passo 2 S, n1, n2, n3, n4, D S, n1, n2, n4 (S,∞) (S, 2) (S, 2) (n2, 1) (n1, 2) (n4, 2)

Tabella 9.3:

E R S n1 n2 n3 n4 D

Passo 1 S ∅ (S,∞) - - - - -Passo 2 S, n2 S (S,∞) - (S, 2) - - -Passo 2 S, n2, n3, n4 S, n2 (S,∞) - (S, 2) (n2, 1) (n2, 1) -Passo 2 S, n2, n3, n4, n1 S, n2, n3 (S,∞) (n3, 1) (S, 2) (n2, 1) (n2, 1) -Passo 2 S, n2, n3, n4, n1, D S, n2, n3, n4 (S,∞) (n3, 1) (S, 2) (n2, 1) (n2, 1) (n4, 1)

Tabella 9.4:

E R S n1 n2 n3 n4 D

Passo 1 S ∅ (S,∞) - - - - -Passo 2 S, n2 S (S,∞) - (S, 1) - - -Passo 2 S, n2, n3 S, n2 (S,∞) - (S, 1) (n2, 1) - -Passo 2 S, n2, n3, n1 S, n2, n3 (S,∞) (n3, 1) (S, 1) (n2, 1) - -Passo 2 S, n2, n3, n1, n4 S, n2, n3, n1 (S,∞) (n3, 1) (S, 1) (n2, 1) (n1, 1) -Passo 2 S, n2, n3, n1, n4, D S, n2, n3, n1, n4 (S,∞) (n3, 1) (S, 1) (n2, 1) (n1, 1) (n4, 1)

163

Page 165: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

@@

@@

@@

JJJJJJJJJJJJJJJJ­

­­­­­­­­­­­­­­­

,,

,,

,,

,,

@@

@@

@@

@@¡

¡¡

¡¡

¡¡

S D

n1

n2

n3

n4

Figura 9.10:

Tabella 9.5:

E R S n1 n2 n3 n4 DPasso 1 S ∅ (S,∞) - - - - -Passo 2 S S (S,∞) - - - - -

Il grafo G(X) associato al nuovo flusso e illustrato in Figura 9.11. A questopunto si ripete la procedura con i passi indicati in Tabella 9.4. Il valore∆ e pari a 1 ed il cammino orientato in G(X) da S a D e il seguente:

S → n2 → n3 → n1 → n4 → D.

Cio porta al seguente aggiornamento del flusso:

xSn1= 3 xSn2

= 2 xn1n3= 0 xn1n4

= 3

xn2n3= 1 xn2n4

= 1 xn3D = 1 xn4D = 4

Il grafo G(X) associato al nuovo flusso e illustrato in Figura 9.12. A questopunto si ripete la procedura con i passi indicati in Tabella 9.5. Arriviamo

164

Page 166: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

@@

@@

@@

JJJJJJJJJJJJJJJJ­

­­­­­­­­­­­­­­­

,,

,,

,,

,,

@@

@@

@@

@@¡

¡¡

¡¡

¡¡

S D

n1

n2

n3

n4

Figura 9.11:

a E \ R = ∅ e quindi possiamo fermarci ed affermare che il flusso attuale equello ottimo. Non solo, sappiamo che il taglio indotto dal sottinsieme dinodi E = {S} e quello a costo minimo. Si puo infatti verificare che il valoredel flusso uscente da S e il costo del taglio indotto da {S} sono entrambipari a 5.

165

Page 167: Appunti per il corso di Ricerca Operativa 1locatell/didattica/ro1/ro1.pdf · Capitolo 1 Introduzione La prima domanda da porsi riguarda gli scopi che si prefigge la Ricerca Operativa

JJJJJJJJJJJJJJJJ

,,

,,

,,

,,

@@

@@

@@

@@¡

¡¡

¡¡

¡¡

@@

@@

@@

­­

­­

­­

­­

­­

­­

­­

­­

S D

n1

n2

n3

n4

Figura 9.12:

166