29.10.2014 Views

Metodi e Modelli di Programmazione Lineare - Massimo Paolucci

Metodi e Modelli di Programmazione Lineare - Massimo Paolucci

Metodi e Modelli di Programmazione Lineare - Massimo Paolucci

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Meto<strong>di</strong></strong> e <strong>Modelli</strong> <strong>di</strong><br />

<strong>Programmazione</strong> <strong>Lineare</strong><br />

<strong>Massimo</strong> <strong>Paolucci</strong><br />

(paolucci@<strong>di</strong>st.unige.it)<br />

DIST – Università <strong>di</strong> Genova<br />

La <strong>Programmazione</strong> <strong>Lineare</strong> (LP)<br />

2<br />

Modello <strong>di</strong> programmazione matematica<br />

max f(x)<br />

s.t.<br />

x ∈ X ⊆ R n<br />

• x vettore delle variabili decisionali<br />

• X insieme delle soluzioni ammissibili<br />

• f(x) funzione obiettivo scalare<br />

Metodo decisionale = algoritmo <strong>di</strong> ottimizzazione


LP – richiami teorici<br />

3<br />

La definizione <strong>di</strong> un modello <strong>di</strong> programmazione<br />

matematica<br />

Definizione<br />

delle variabili<br />

Formulazione<br />

Matematica<br />

Definizione<br />

dell’obiettivo<br />

Definizione<br />

dei vincoli<br />

LP – richiami teorici<br />

Quando sia la funzione obiettivo che le relazioni che<br />

esprimono i vincoli sono lineari si ha un problema <strong>di</strong> PL<br />

4<br />

max<br />

x<br />

0<br />

x ∈R<br />

= c<br />

n<br />

T<br />

x<br />

Ax = b (1)<br />

x ≥ 0 (2)<br />

Problema in<br />

Forma<br />

Standard<br />

• x è il vettore nx1 delle variabili decisionali<br />

• c è il vettore nx1 dei coefficienti della funzione obiettivo<br />

• b è il vettore mx1 dei termini noti dei vincoli<br />

• A è la matrice mxn dei coefficienti dei vincoli; A=[a ij ],<br />

i=1,...,m, j=1,...,n


LP – richiami teorici<br />

5<br />

Ipotesi nella forma standard<br />

• b≥0 ⇒ b i ≥0 ∀i=1,...,m<br />

• m


LP – richiami teorici<br />

7<br />

X Politopo<br />

{<br />

n<br />

} x∈R<br />

: Ax ≤ ≠ ∅<br />

X = b<br />

X<br />

X Aperto<br />

X<br />

X Vuoto<br />

X 1<br />

X 2<br />

X = X 1 ∩ X2<br />

= ∅<br />

LP – richiami teorici<br />

8<br />

La soluzione ottima finita (se esiste) corrisponde ad uno o<br />

più punti estremi del poliedro.<br />

Tali punti estremi sono caratterizzati algebricamente dalle<br />

soluzioni <strong>di</strong> base ammissibili<br />

Una soluzione <strong>di</strong> base corrisponde alla scelta <strong>di</strong> m variabili<br />

su n, ossia alla scelta <strong>di</strong> una sottomatrice B (detta Base)<br />

mxm <strong>di</strong> A invertibile, e si calcola annullando le restanti n-m<br />

variabili fuori base.<br />

x<br />

=<br />

⎡x<br />

⎢<br />

⎣x<br />

B<br />

N<br />

⎤<br />

⎥<br />

⎦<br />

Vettore<br />

Vettore<br />

delle<br />

delle<br />

var<br />

var<br />

.<strong>di</strong> base (mx 1)<br />

. fuori base ((n −<br />

m)x1)


LP – richiami teorici<br />

Soluzione <strong>di</strong> base<br />

x<br />

−1<br />

xB<br />

B b<br />

= ⎡ ⎣ ⎢ ⎤<br />

x<br />

⎥<br />

N ⎦<br />

= ⎡ ⎣ ⎢<br />

⎤<br />

⎥<br />

0 ⎦<br />

9<br />

Soluzione <strong>di</strong> base ammissibile se<br />

x B b<br />

B =<br />

−1<br />

≥<br />

0<br />

Teorema<br />

Dato X={Ax=b, x≥0} insieme convesso, dove A è una<br />

matrice mxn <strong>di</strong> rango m con m


LP – L’algoritmo del simplesso (simplex)<br />

11<br />

Il simplesso cerca la soluzione ottima esplorando le soluzioni <strong>di</strong> base<br />

effettuando una ricerca locale: data una soluzione <strong>di</strong> base verifica se<br />

l’obiettivo può essere migliorato e se ciò è possibile determina una<br />

soluzione <strong>di</strong> base migliore a<strong>di</strong>acente a quella <strong>di</strong> partenza<br />

Geometricamente esplora la frontiera del poliedro dei vincoli (algoritmo<br />

esterno)<br />

x 2<br />

D (ottima)<br />

C<br />

f.obj<br />

B<br />

X<br />

A (iniziale)<br />

x 1<br />

LP – L’algoritmo del simplesso (simplex)<br />

12<br />

Problema in forma standard<br />

max<br />

x<br />

0<br />

x ∈R<br />

= c<br />

Ax = b<br />

x ≥ 0<br />

n<br />

T<br />

x<br />

max<br />

s.t.<br />

a<br />

M<br />

a<br />

x<br />

11<br />

m1<br />

1<br />

x<br />

x<br />

1<br />

1<br />

x ∈R<br />

c<br />

n<br />

1<br />

x<br />

1<br />

+ L+<br />

a<br />

+ L+<br />

a<br />

≥ 0,...,x<br />

+ L+<br />

c<br />

n<br />

1n<br />

x<br />

mn<br />

≥ 0<br />

n<br />

x<br />

n<br />

n<br />

x<br />

n<br />

= b<br />

1<br />

= b<br />

m<br />

Generica equazione (m equ. dei vincoli + 1 equ. obiettivo)<br />

x<br />

B i<br />

= y − ∑<br />

i0<br />

j∈R<br />

y<br />

ij<br />

x<br />

j<br />

∀i<br />

= 0,1, K,m


LP – L’algoritmo del simplesso (simplex)<br />

13<br />

Il Simplesso (in forma algebrica)<br />

1. Inizializzazione<br />

Determinare una soluzione <strong>di</strong> base ammissibile<br />

2. Verifica dell’ottimalità<br />

Se y 0j ≥0 ∀j∈R allora la soluzione corrente è ottima e l’algoritmo<br />

termina, altrimenti andare al passo 3<br />

3. Scelta della variabile entrante in base<br />

Scegliere una var. fuori base x k tale che y 0k 0<br />

⎫<br />

⎬<br />

⎭<br />

LP – L’algoritmo del simplesso (simplex)<br />

14<br />

Il Simplesso (in forma algebrica)<br />

5. Pivoting.<br />

Risolvere le equazioni<br />

x<br />

B i<br />

= y − ∑<br />

i0<br />

j∈R<br />

y<br />

ij<br />

x<br />

j<br />

∀i<br />

= 0,1, K,m<br />

ricavando x k e x Br i≠r, in funzione <strong>di</strong> x j ,j∈R-{k} e <strong>di</strong> x Br<br />

La nuova soluzione si ottiene ponendo x j =0, j∈R-{k} e x Br =0<br />

Andare al passo 2.


LP – L’algoritmo del simplesso (simplex)<br />

15<br />

Il Tableau<br />

Contiene i coeff. delle m+1 equazioni dei vincoli e f.ob. e permette <strong>di</strong><br />

effettuare i passi dell’algoritmo in maniera semplice<br />

xB i<br />

+ ∑ yijxj<br />

= yi0 ∀ i = 01 ,, K , m<br />

j∈R<br />

x L x L x L x L x L<br />

B1<br />

B r B m j k<br />

x 0 L 0 L 0 L y L y L y<br />

0 0j<br />

0k<br />

00<br />

x 1 L 0 L 0 L y L y L y<br />

B1 1j 1k<br />

10<br />

M M O M M M M M<br />

x 0 L 1 L 0 L y L y L y<br />

Br rj rk r0<br />

M M M O M M M M<br />

x 0 L 0 L 1 L y L y L y<br />

B m mj mk m0<br />

LP – L’algoritmo del simplesso (simplex)<br />

16<br />

Il Simplesso (sul tableau)<br />

1. Inizializzazione<br />

Costruire il tableau iniziale con una soluzione <strong>di</strong> base ammissibile<br />

2. Verifica dell’ottimalità<br />

Se nella riga <strong>di</strong> x 0 non esistono coefficienti negativi la soluzione<br />

corrente è ottima e l’algoritmo termina, altrimenti andare al passo 3<br />

3. Scelta della variabile entrante in base<br />

Scegliere una var. fuori base x k tale che y 0k 0, e scegliere la riga r-esima associata<br />

al rapporto più piccolo. Il coeff. y rk èilpivot


LP – L’algoritmo del simplesso (simplex)<br />

17<br />

Il Simplesso (sul tableau)<br />

5. Pivoting.<br />

Portare in base x k al posto <strong>di</strong> x Br <strong>di</strong>videndo la riga r-esima per il pivot,<br />

quin<strong>di</strong> sottraendo la nuova riga r alle altre righe del tableau, obiettivo<br />

incluso, dopo averla moltiplicata per il corrispondente coeff. della<br />

colonna k. In questo modo la nuova colonna k sarà formata da tutti<br />

coeff. nulli tranne il coeff. r-esimo uguale ad 1.<br />

Aggiornare l’etichetta della riga r-esima con x k.<br />

Andare al passo 2.<br />

LP – L’algoritmo del simplesso (simplex)<br />

18<br />

Trasformazione dei problemi in forma standard<br />

• Vincoli <strong>di</strong> ≤ si introducono var. <strong>di</strong> slack (scarto)<br />

n<br />

∑ a<br />

j=<br />

1<br />

x<br />

b<br />

i<br />

∑ a<br />

≥ 0<br />

• Vincoli <strong>di</strong> ≥ si introducono var. <strong>di</strong> surplus (eccedenza)<br />

n<br />

∑ a<br />

j=<br />

1<br />

ij<br />

ij<br />

x<br />

j<br />

j<br />

≤<br />

≥<br />

b<br />

i<br />

→<br />

→<br />

n<br />

j=<br />

1<br />

n<br />

∑ a<br />

j=<br />

1<br />

ij<br />

ij<br />

x<br />

• Variabili libere si effettua la sostituzione x j = u j –v j con u j ≥0v j ≥0<br />

x<br />

j<br />

j<br />

+<br />

− s<br />

s<br />

i<br />

i<br />

=<br />

=<br />

b<br />

b<br />

i<br />

i<br />

s<br />

s<br />

i<br />

i<br />

≥ 0<br />

• Termini noti negativi (b i ≤0) si cambia il segno al vincolo<br />

• Problema <strong>di</strong> minimo si cambia segno alla f.ob. e si massimizza<br />

(oppure si inverte la con<strong>di</strong>zione <strong>di</strong> ottimalità dell’algoritmo)


LP – L’algoritmo del simplesso (simplex)<br />

19<br />

Inizializzazione<br />

• Base iniziale formata da var. <strong>di</strong> slack Ax + Is = b<br />

• Metodo delle due fase (Two-Phase Method)<br />

• Metodo del Big-M<br />

Soluzioni degeneri<br />

• Almeno una componente <strong>di</strong> x B è nulla<br />

• Possono causare loop nell’algoritmo (cycling)<br />

Criteri <strong>di</strong> scelta della var. entrante<br />

• Metodo del gra<strong>di</strong>ente<br />

• Metodo del massimo incremento<br />

LP – Il problema della produzione (Product Mix)<br />

Il problema<br />

Determinare quali e quanti prodotti produrre (in generale, quali attività<br />

eseguire ed a quale livello) in modo da massimizzare il profitto<br />

conseguente tenendo conto della <strong>di</strong>sponibilità limitata delle risorse<br />

necessarie alla produzione<br />

• Il problema si può affrontare in generale con l’Analisi Marginale (...)<br />

• Può essere modellato con la PL se le relazioni tecnologiche che<br />

legano prodotti e risorse possono essere approssimate in modo<br />

lineare<br />

x<br />

x<br />

20<br />

r<br />

r<br />

• Inoltre tutte le grandezze possono essere considerate<br />

deterministiche (in particolare, i ricavi dalla ven<strong>di</strong>ta dei prodotti)


LP – Il problema della produzione (Product Mix)<br />

21<br />

Formulazione ed interpretazione del problema<br />

• Si <strong>di</strong>spone <strong>di</strong> j=1,...,m risorse produttive (ad esempio, materie prime) in<br />

quantità limitata<br />

• La massima <strong>di</strong>sponibilità delle risorse è b 1 ,...,b m<br />

• Si possono produrre i=1,...,n <strong>di</strong>versi prodotti utilizzando con una data<br />

tecnologia le risorse <strong>di</strong>sponibili<br />

• Sono note le quantità <strong>di</strong> risorse necessarie per produrre una unità <strong>di</strong><br />

ciascun possibile prodotto: per produrre una unità del prodotto i-mo si<br />

utilizzano a ij unità della risorsa j-ma (nell’ipotesi <strong>di</strong> linearità questo<br />

coeff. resta costante)<br />

• Agli n prodotti sono associati i profitti unitari c 1 ,..., c n (profitto per unità<br />

<strong>di</strong> prodotto, ipotizzando tutta la produzione venga venduta, ovvero che<br />

vincolando la produzione ad una domanda supposta costante e nota)<br />

LP – Il problema della produzione (Product Mix)<br />

22<br />

Formulazione ed interpretazione del problema<br />

n<br />

i<br />

i=<br />

1<br />

n<br />

∑ aij<br />

i=<br />

1<br />

max ∑ c<br />

x<br />

x<br />

i<br />

i<br />

x<br />

x<br />

i<br />

i<br />

≤ b<br />

≥ 0i = 1,...,n<br />

∈ Ri<br />

= 1,...,n<br />

j<br />

j = 1,...,m<br />

Variabili<br />

• x i quantità <strong>di</strong> prodotto i-mo<br />

• continue (?) e positive<br />

Vincoli<br />

• la quantità totale <strong>di</strong> ogni<br />

risorsa utilizzata nella<br />

produzione non può superare<br />

la <strong>di</strong>sponibilità massima<br />

Obiettivo<br />

• il ricavo totale della<br />

produzione


LP – Il problema della produzione (Product Mix)<br />

Formulazione ed interpretazione del problema<br />

• E’ un PL in forma canonica <strong>di</strong> massimizzazione<br />

max<br />

x<br />

0<br />

Ax ≤ b<br />

x ≥ 0<br />

x ∈R<br />

= c<br />

n<br />

T<br />

x<br />

23<br />

• A è detta matrice tecnologica<br />

• All’ipotesi <strong>di</strong> con<strong>di</strong>zioni deterministiche (parametri costanti) si risponde con<br />

l’Analisi <strong>di</strong> Post-ottimalità<br />

• Esempi ed interpretazione:<br />

• 2 prodotti 3 risorse (simplesso sul tableau + analisi grafica nel piano dei<br />

prodotti)<br />

• Uso <strong>di</strong> pacchetti sw (Excel, Lindo, Lingo)<br />

• 4 prodotti e 3 risorse<br />

• 4 prodotti e 2 risorse (simplesso con sw + analisi grafica nel piano delle risorse)<br />

LP – Il problema della produzione (Product Mix)<br />

Esempio 1<br />

max<br />

(2)<br />

3<br />

B C<br />

2<br />

(3)<br />

D<br />

1<br />

x<br />

2x<br />

x<br />

1<br />

1<br />

x<br />

+ 2x<br />

1<br />

0<br />

+ x<br />

x<br />

= 3x<br />

2<br />

2<br />

2<br />

≥ 0,x<br />

≤ 8<br />

≤ 2<br />

≤ 6<br />

2<br />

1<br />

+ 2x<br />

≥ 0<br />

(1)<br />

(2)<br />

(3)<br />

2<br />

24<br />

x 2<br />

x 0 =0<br />

A<br />

1 2 3 4 5 6<br />

E<br />

(1)<br />

x 1


LP – Il problema della produzione (Product Mix)<br />

Esempio 1: Forma Standard<br />

max<br />

3<br />

B C<br />

2<br />

1<br />

D<br />

x<br />

2x<br />

x<br />

1<br />

i<br />

x<br />

+ 2x<br />

1<br />

0<br />

+ x<br />

x<br />

≥ 0<br />

= 3x<br />

2<br />

2<br />

2<br />

1<br />

+ x<br />

+ 2x<br />

3<br />

i = 1,...,5<br />

2<br />

+ x<br />

4<br />

+ x<br />

5<br />

= 6<br />

= 8<br />

= 2<br />

(1)<br />

(2)<br />

(3)<br />

25<br />

x 2<br />

x 0 =0<br />

(2) x 4<br />

(3) x 5<br />

(1) x 3<br />

A<br />

1 2 3 4 5 6<br />

E<br />

x 1<br />

LP – Il problema della produzione (Product Mix)<br />

Esempio 1: Il tableau<br />

• Base iniziale formata dalle slack<br />

• Il Tableau iniziale<br />

x<br />

B<br />

⎡x<br />

=<br />

⎢<br />

x<br />

⎢<br />

⎢⎣<br />

x<br />

3<br />

4<br />

5<br />

⎤ ⎡6⎤<br />

⎥<br />

=<br />

⎢<br />

8<br />

⎥<br />

⎥ ⎢ ⎥<br />

⎥⎦<br />

⎢⎣<br />

2⎥⎦<br />

26<br />

x<br />

x<br />

x<br />

x<br />

0<br />

3<br />

4<br />

x<br />

1<br />

− 3<br />

1<br />

2<br />

0<br />

x<br />

2<br />

− 2<br />

2<br />

1<br />

1<br />

5<br />

• 1 a iterazione: X 1 entra ed x 4 esce (dal vertice A al vertice ???;<br />

eseguire i calcoli ....)<br />

x<br />

3<br />

0<br />

1<br />

0<br />

0<br />

x<br />

4<br />

0<br />

0<br />

1<br />

0<br />

x<br />

5<br />

0<br />

0<br />

0<br />

1<br />

0<br />

6<br />

8<br />

2


LP – Il problema della produzione (Product Mix)<br />

Esempio 1: Il tableau<br />

27<br />

• Il Tableau dopo la prima iterazione<br />

x<br />

x<br />

x<br />

x<br />

0<br />

3<br />

1<br />

5<br />

x<br />

1<br />

0<br />

0<br />

1<br />

0<br />

x<br />

2<br />

−1/<br />

2<br />

3 / 2<br />

1/ 2<br />

1<br />

x<br />

3<br />

0<br />

1<br />

0<br />

0<br />

x<br />

4<br />

3 / 2<br />

−1/<br />

2<br />

1/ 2<br />

0<br />

x<br />

5<br />

0<br />

0<br />

0<br />

1<br />

12<br />

2<br />

4<br />

2<br />

• 2 a iterazione: X 2 entra ed x 3 esce (dal vertice ??? al vertice ???;<br />

eseguire i calcoli ....)<br />

LP – Il problema della produzione (Product Mix)<br />

Esempio 1: Il tableau<br />

28<br />

• Il Tableau dopo la seconda iterazione<br />

x<br />

x<br />

x<br />

x<br />

0<br />

2<br />

1<br />

5<br />

x<br />

1<br />

0<br />

0<br />

1<br />

0<br />

x<br />

2<br />

0<br />

1<br />

0<br />

0<br />

x<br />

3<br />

1/ 3<br />

2 / 3<br />

−1/<br />

3<br />

−<br />

2 / 3<br />

x<br />

4<br />

4 / 3<br />

−1/<br />

3<br />

2 / 3<br />

1/ 3<br />

x<br />

5<br />

0<br />

0<br />

0<br />

1<br />

38 / 3<br />

4 / 3<br />

10 / 3<br />

2 / 3<br />

• Il tableau è ottimo<br />

• La soluzione ottima<br />

x<br />

*<br />

B<br />

⎡x<br />

=<br />

⎢<br />

x<br />

⎢<br />

⎢⎣<br />

x<br />

2<br />

1<br />

5<br />

⎤<br />

⎥<br />

⎥<br />

⎥⎦<br />

⎡ 4/3 ⎤<br />

=<br />

⎢<br />

10/3<br />

⎥<br />

⎢ ⎥<br />

⎢⎣<br />

2/3 ⎥⎦<br />

x<br />

⎡x<br />

= ⎢<br />

⎣x<br />

⎤<br />

* 3<br />

N ⎥ =<br />

4⎦<br />

0


LP – Il problema della produzione (Product Mix)<br />

Esempio 1: Domande<br />

29<br />

• Cosa succede alla soluzione se il poliedro fosse aperto?<br />

• Provare con max x = x + 3x<br />

• Come si riconosce il caso <strong>di</strong> più soluzioni ottime equivalenti?<br />

• Provare con max<br />

x<br />

x<br />

x<br />

1<br />

1<br />

3x<br />

1<br />

0<br />

x<br />

2<br />

≥ 0,x<br />

x<br />

+ 2x<br />

1<br />

0<br />

+ 2x<br />

x<br />

1<br />

≤ 2<br />

2<br />

= 3x<br />

2<br />

2<br />

≥ 0,x<br />

2<br />

≤ 2<br />

≥ 0<br />

≤ 6<br />

2<br />

1<br />

≤ 8<br />

≥ 0<br />

2<br />

+ 2x<br />

2<br />

LP – Il problema della produzione (Product Mix)<br />

30<br />

Esempio 1: Uso <strong>di</strong> software per la soluzione <strong>di</strong> PL<br />

• Excel (Solver)<br />

• Esempi grafici (2D) (caso <strong>di</strong> sol. illimitata e problema non amm.)<br />

• Lindo<br />

• Lingo (formulazione simbolica)<br />

Esempio 2: 4 prodotti e 3 risorse<br />

max x0<br />

= 4x1<br />

+ 5x2<br />

+ 9x3<br />

+ 11x 4<br />

x1<br />

+ x2<br />

+ x3<br />

+ x4<br />

≤ 16<br />

7x1<br />

+ 5x2<br />

+ 3x3<br />

+ 2x4<br />

≤ 120<br />

3x1<br />

+ 4x2<br />

+ 10x3<br />

+ 15x4<br />

≤ 100<br />

xi<br />

≥ 0 i = 1,...,4


LP – Il problema della produzione (Product Mix)<br />

Interpretazione economica<br />

• Funzione Obiettivo Curva Isoguadagno<br />

31<br />

• Vincoli Saturi (bin<strong>di</strong>ng constraints) Risorse Scarse<br />

• Slack nulle<br />

• Converrebbe aumentarne la <strong>di</strong>sponibilità e se sì cosa accadrebbe?<br />

• Vincoli non saturi Risorse abbondanti<br />

• Slack positive<br />

• Converrebbe aumentarne la <strong>di</strong>sponibilità e se sì cosa accadrebbe?<br />

• Domande <strong>di</strong> carattere economico/gestionale conseguenti alla<br />

soluzione:<br />

• Vi sono risorse non utilizzate? Posso <strong>di</strong>minuire lo spreco?<br />

• Ci sono risorse che mi converrebbe acquisire ulteriormente? Quali e<br />

con che priorità?<br />

• Di quanto ha senso aumentare la <strong>di</strong>sponibilità delle risorse?<br />

• Che accade se variano i ricavi per i miei prodotti, ovvero quanto è<br />

robusta la soluzione?<br />

LP – L’analisi <strong>di</strong> sensitività (post-ottimalità)<br />

32<br />

L’analisi <strong>di</strong> sensitività consente <strong>di</strong> valutare gli effetti <strong>di</strong><br />

piccole variazioni dei parametri rispetto la soluzione ottima<br />

del problema (variazioni marginali)<br />

I casi che vedremo:<br />

• Range <strong>di</strong> variazione della <strong>di</strong>sponibilità delle risorse<br />

• Aumento <strong>di</strong> risorse scarse<br />

• Diminuzione <strong>di</strong> risorse abbondanti<br />

• Range <strong>di</strong> variazione dei coeff. <strong>di</strong> guadagno<br />

• Effetti causati dall’acquisizione <strong>di</strong> nuove risorse<br />

• Effetti causati da produzione <strong>di</strong>versa dall’ottimo (prodotto non<br />

conveniente, nuovo prodotto)<br />

Teoria necessaria: definizione <strong>di</strong> alcune grandezze e la<br />

teoria della dualità


LP – Definizione <strong>di</strong> alcune grandezze<br />

33<br />

Coefficienti <strong>di</strong> costo ridotto r = (r j , j∈R)<br />

• Sono i coeff. delle variabili fuori base nella riga della f.ob. nel<br />

tableau = y 0j j∈R<br />

• Consideriamo un tableau in forma matriciale ed il caso in cui la<br />

base iniziale è formata da slack<br />

s x<br />

x0 0<br />

T<br />

− c<br />

T<br />

s I A<br />

0<br />

b<br />

x0<br />

s<br />

s<br />

0<br />

T<br />

I<br />

xB<br />

− c<br />

T<br />

B<br />

B<br />

xN<br />

− c<br />

T<br />

N<br />

N<br />

0<br />

b<br />

x0<br />

xB<br />

s<br />

c<br />

T<br />

B<br />

−1<br />

B<br />

B<br />

−1<br />

xB<br />

0<br />

T<br />

I<br />

xN<br />

c<br />

T<br />

B<br />

−1<br />

N − c<br />

T<br />

B N<br />

B<br />

−1<br />

N<br />

c<br />

T<br />

B<br />

−1<br />

b<br />

B<br />

B<br />

−1<br />

b<br />

LP – Definizione <strong>di</strong> alcune grandezze<br />

34<br />

Coefficienti <strong>di</strong> costo ridotto r = (r j , j∈R)<br />

• Corrispondono a<br />

e la con<strong>di</strong>zione <strong>di</strong> ottimalità è r j ≥0j∈R<br />

Domanda: che significato ha la presenza <strong>di</strong> almeno un r j =0 nel<br />

tableau ottimo?<br />

I moltiplicatori del simplesso π = (π j , j∈R)<br />

• Corrispondono a<br />

rj<br />

= c<br />

T<br />

B<br />

−1<br />

a<br />

B j − c j<br />

π = c T 1<br />

B B −<br />

Osservazioni sul tableau ottimo<br />

• I moltiplicatori del simplesso sono parte degli r e si riducono agli r<br />

corrispondenti alle slack fuori base<br />

• Se la base iniziale era costituita da slack, le colonne delle slack<br />

all’ottimo contengono B -1


LP – La Teoria della Dualità<br />

35<br />

Ad ogni problema <strong>di</strong> PL (Primale) è associato un<br />

problema Duale<br />

Problema Primale (P)<br />

max<br />

s.t.<br />

c1x<br />

1 + L+<br />

cnxn<br />

a11x<br />

1 + L+<br />

a1n<br />

xn<br />

≤ b1<br />

M<br />

am1x<br />

1 + L+<br />

amnxn<br />

≤ bm<br />

Problema Duale (D)<br />

min<br />

s.t.<br />

b1y1<br />

+ L + bmym<br />

a11y1<br />

+ L + am1y<br />

m ≥ c1<br />

M<br />

a1n<br />

y1<br />

+ L + amnym<br />

≥ cn<br />

(n variabili, m vincoli) (m variabili, n vincoli)<br />

LP – La Teoria della Dualità<br />

36<br />

Il problema D ha tante variabili quanti sono i vincoli<br />

<strong>di</strong> P e tanti vincoli quante sono le variabili <strong>di</strong> P.<br />

In forma matriciale:<br />

(P)<br />

max<br />

T<br />

c<br />

x<br />

(D)<br />

min b<br />

T<br />

y<br />

Ax ≤ b<br />

x ≥ 0<br />

x ∈ R<br />

n<br />

A<br />

T<br />

y ≥ c<br />

y ≥ 0<br />

y ∈R<br />

m


LP – La Teoria della Dualità<br />

37<br />

Forma simmetrica della dualità<br />

regole <strong>di</strong> trasformazione<br />

(P)<br />

(D)<br />

max ⇒ min vincoli ≥<br />

min ⇒ max vincoli ≤<br />

LP – La Teoria della Dualità<br />

Duale <strong>di</strong> un Primale con vincoli <strong>di</strong> uguaglianza:<br />

Infatti:<br />

(P)<br />

max<br />

Ax = b<br />

x ≥ 0<br />

x ∈R<br />

n<br />

c<br />

T<br />

x<br />

A x = b equivale a<br />

min<br />

A<br />

u<br />

T<br />

≥<br />

0<br />

(b<br />

u −<br />

v<br />

T<br />

u,v ∈ R<br />

A<br />

u − b<br />

≥<br />

m<br />

T<br />

v<br />

0<br />

≥<br />

T<br />

c<br />

v)<br />

(D)<br />

⎧A x ≤ b<br />

⎨<br />

⎩A x ≥ b⇒−<br />

A x<br />

min b<br />

T<br />

y<br />

A<br />

T<br />

y ≥<br />

y<br />

var .libere<br />

y ∈R<br />

m<br />

≤ −b<br />

introducendo 2m variabili duali, u e v<br />

e sostituendo y= u -vsi ottiene (D)<br />

c<br />

38


LP – La Teoria della Dualità<br />

39<br />

Forma non simmetrica della dualità: regole<br />

<strong>di</strong> trasformazione<br />

(P)<br />

(D)<br />

max ⇒ min vincoli ≥<br />

min ⇒ max vincoli ≤<br />

vincolo = ⇒ var. libera<br />

var. libera ⇒ vincolo =<br />

Le trasformazioni sono reversibili: il duale del duale è il<br />

primale.<br />

LP – La Teoria della Dualità<br />

40<br />

La teoria della Dualità è importante perchè:<br />

• le soluzioni <strong>di</strong> P e D sono legate tra loro<br />

• le soluzioni duali hanno un’interpretazione economica utile<br />

per l’analisi <strong>di</strong> sensitività (post-ottimalità);<br />

• sulla teoria della dualità sono basati algoritmi, quali il<br />

Simplesso Duale e l’Algoritmo Primale-Duale, alternativi al<br />

Simplesso (Primale) utili per certe classi <strong>di</strong> problemi;<br />

• può in certi casi essere conveniente risolvere D al posto <strong>di</strong> P<br />

(conviene risolvere il problema con il minor numero <strong>di</strong> vincoli)


LP – La Teoria della Dualità: risultati fondamentali<br />

41<br />

Consideriamo la coppia <strong>di</strong> problemi (P) e (D)<br />

(P) min c<br />

T<br />

x (D) max b<br />

T<br />

y<br />

Ax ≥ b<br />

x ≥ 0<br />

A<br />

T<br />

y ≤ c<br />

y ≥ 0<br />

1. Teorema (debole) della dualità<br />

Siano x e y soluzioni ammissibili rispettivamente per (P) e (D),<br />

allora<br />

c<br />

x<br />

b<br />

T<br />

y<br />

T ≥<br />

42<br />

LP – La Teoria della Dualità: risultati fondamentali<br />

Dimostrazione:<br />

y soluzione ⇒ A y ≤ c<br />

T<br />

T T T<br />

x ≥ 0 ⇒ ( A y)<br />

x ≤ c x<br />

x soluzione ⇒ A x ≥ b<br />

T<br />

T<br />

y ≥ 0 ⇒ ( Ax)<br />

y ≥ b y<br />

T T T T T T T<br />

c x ≥ ( A y) x = x A y = ( Ax)<br />

y ≥ b y<br />

Corollario<br />

Se (P) è illimitato ⇒ (D) non è ammissibile<br />

Se (D) è illimitato ⇒ (P) non è ammissibile<br />

Se (P) ha soluzione ottima finita ⇒ (D) ha soluzione ottima finita<br />

Se (D) ha soluzione ottima finita ⇒ (P) ha soluzione ottima finita


LP – La Teoria della Dualità: risultati fondamentali<br />

43<br />

2. Teorema (forte) della dualità<br />

Se (P) e (D) ammettono soluzione ottima finita, allora per ogni<br />

ottimo x * per (P) esiste una soluzione ottima y * per (D) tale che<br />

c<br />

T<br />

x<br />

*<br />

= b<br />

T<br />

y<br />

*<br />

Dal Teorema della dualità forte si ricava valore della soluzione<br />

ottima <strong>di</strong> (D) corrispondente alla soluzione ottima <strong>di</strong> (P)<br />

x<br />

*<br />

⎡x<br />

* ⎤ ⎡B<br />

−1<br />

⎤<br />

= B b<br />

⎢ ⎥ = ⎢ ⎥<br />

⎢⎣<br />

x<br />

*<br />

N⎥⎦<br />

⎣ 0 ⎦<br />

c<br />

T<br />

B<br />

−1<br />

b = b<br />

T<br />

y<br />

*<br />

B<br />

c<br />

T<br />

x<br />

*<br />

*<br />

T<br />

y<br />

= c<br />

T<br />

x<br />

*<br />

B B<br />

= c<br />

T<br />

B<br />

−1<br />

B<br />

= c<br />

T<br />

B<br />

−1<br />

b<br />

B<br />

LP – La Teoria della Dualità: risultati fondamentali<br />

Osservazioni<br />

• La base B è ottima per (P) e per (D).<br />

• Una base B ammissibile per (P) corrisponde ad una<br />

base ammissibile per (D) solo se B è ottima.<br />

(P) max c<br />

T<br />

x c<br />

T<br />

B + x<br />

B N N<br />

BxB<br />

+ NxN<br />

= b<br />

xB<br />

≥ 0 xN<br />

≥ 0<br />

x ∈ X ⇒ B<br />

−1 b ≥ 0<br />

(D)<br />

min b<br />

T<br />

y<br />

y<br />

T<br />

B ≥ c<br />

T<br />

B<br />

y<br />

T<br />

N ≥ c<br />

T<br />

N<br />

y var .libere<br />

44<br />

y<br />

T<br />

= c<br />

T<br />

B<br />

−1<br />

B<br />

y<br />

T<br />

⎧a)<br />

∈ Y ⇒ ⎨<br />

⎩b)<br />

(c<br />

(c<br />

T<br />

B<br />

T<br />

B<br />

B<br />

B<br />

−1<br />

−1<br />

)B ≥ c<br />

)N ≥ c<br />

T<br />

B<br />

T<br />

N


LP – La Teoria della Dualità: risultati fondamentali<br />

Osservazioni<br />

• La base B è ottima per (P) e per (D).<br />

• Una base B ammissibile per (P) corrisponde ad una<br />

base ammissibile per (D) sono se B è ottima.<br />

45<br />

y<br />

T<br />

∈ Y ⇒<br />

⎧<br />

⎪a)<br />

⎨<br />

⎪⎩<br />

b)<br />

(c<br />

T<br />

B<br />

−1<br />

)B ≥ c<br />

T<br />

B B<br />

(c<br />

T<br />

B<br />

−1<br />

)N ≥ c<br />

T<br />

B N<br />

a)<br />

b)<br />

c<br />

T<br />

≥ c<br />

T<br />

B B<br />

c<br />

T<br />

B<br />

−1<br />

N − c<br />

T<br />

B N<br />

(vera sempre)<br />

≥ 0<br />

c<br />

T<br />

B<br />

−1<br />

a<br />

j<br />

B<br />

− c j ≥ 0 j ∈ R<br />

sono le con<strong>di</strong>zioni <strong>di</strong> ottimalità su costi ridotti <strong>di</strong> (P)<br />

LP – La Teoria della Dualità: risultati fondamentali<br />

Osservazioni<br />

• Solo in corrispondenza dell’ottimo dalla base B<br />

ammissibile per (P) si ottiene una soluzione ammissibile<br />

per (D) (che è anche ottima).<br />

• Ad una generica iterazione del simplesso dalla base <strong>di</strong><br />

(P) si può costruire il vettore dei moltiplicatori del<br />

simplesso che non è soluzione <strong>di</strong> (D).<br />

46<br />

Qual è il significato economico del problema<br />

duale? Cosa rappresentano le variabili duali?


LP – La Dualità: interpretazione economica<br />

Consideriamo:<br />

• un problema (P) max c<br />

T x<br />

Ax ≤ b<br />

x ≥ 0<br />

47<br />

• la soluzione (non degenere)<br />

x<br />

*<br />

B<br />

1<br />

b<br />

x<br />

* ⎡ ⎤ ⎡ − ⎤<br />

= B<br />

⎢<br />

x<br />

* ⎥ = ⎢ ⎥<br />

⎢⎣<br />

N⎥⎦<br />

⎣ 0 ⎦<br />

x<br />

*<br />

B<br />

> 0<br />

• ed una piccola variazione ∆b>0 <strong>di</strong> b non cambia la base<br />

ottima B<br />

⎡x<br />

*<br />

+ ∆x<br />

* ⎤ ⎡B<br />

−1<br />

(b + ∆b)<br />

⎤<br />

x<br />

*<br />

= B B<br />

⎢ ⎥ = ⎢ ⎥<br />

⎢⎣<br />

x<br />

*<br />

N ⎥⎦<br />

⎣ 0 ⎦<br />

LP – La Dualità: interpretazione economica<br />

48<br />

Come cambia il valore dell’obiettivo?<br />

x c<br />

T<br />

B<br />

1<br />

(b b) x c<br />

T<br />

B<br />

1<br />

T<br />

b x y<br />

*<br />

0 =<br />

−<br />

+ ∆ ⇒ ∆ 0 =<br />

−<br />

∆ ⇒∆ 0 = ∆b<br />

B<br />

B<br />

• Varia della variazione delle risorse per il valore della<br />

soluzione ottima duale !<br />

• Allora y * può essere interpretato come il prezzo (valore)<br />

marginale delle risorse (b) poichè in<strong>di</strong>ca qual è la<br />

variazione dell’obiettivo (guadagno) conseguente ad<br />

una maggior <strong>di</strong>sponibilità delle risorse.<br />

• I valori duali ottimi sono anche detti prezzi ombra


LP – La Teoria della Dualità: risultati fondamentali<br />

Lo scarto complementare (complementary<br />

slackness)<br />

• Consideriamo una coppia (P), (D)<br />

(P) max c<br />

T x<br />

Ax ≤ b<br />

x ≥ 0<br />

Ax + Is = b<br />

x ≥ 0<br />

s ≥ 0<br />

n var .<br />

m var .<strong>di</strong> slack<br />

49<br />

(D)<br />

min b<br />

T<br />

y<br />

A<br />

T<br />

y ≥ c<br />

y ≥ 0<br />

A T y − Iv = c<br />

≥<br />

y ≥ 0<br />

v<br />

0<br />

m var .<br />

n var .<strong>di</strong> surplus<br />

Ad ogni variabile <strong>di</strong> (D) è associato un vincolo <strong>di</strong> (P) e quin<strong>di</strong> la<br />

corrispondente variabile <strong>di</strong> slack e viceversa.<br />

LP – La Teoria della Dualità: risultati fondamentali<br />

Lo scarto complementare (complementary<br />

slackness<br />

50<br />

3. Teorema della slackness complementare<br />

Data la coppia <strong>di</strong> soluzioni x e y rispettivamente ammissibili<br />

per (P) e (D), x e y sono ottime per (P) e (D) se e solo se<br />

s j ⋅ y j<br />

=<br />

(b j<br />

−<br />

a<br />

j<br />

x) ⋅ y j<br />

=<br />

0<br />

j<br />

= 1, K,m<br />

vi<br />

⋅ xi<br />

=<br />

(a<br />

T<br />

y<br />

i<br />

− ci)<br />

⋅ xi<br />

=<br />

0<br />

i<br />

= 1, K,n<br />

dove<br />

a j è il vettore riga j-esima <strong>di</strong> A<br />

a i è il vettore colonna i-esima <strong>di</strong> A


LP – La Teoria della Dualità: risultati fondamentali<br />

Lo scarto complementare (complementary<br />

slackness<br />

• Il teorema stabilisce che<br />

51<br />

a.<br />

b.<br />

c.<br />

d.<br />

x 0 a<br />

T<br />

i > ⇒ y = c<br />

i i<br />

a<br />

T<br />

y > ci<br />

⇒ xi<br />

= 0<br />

i<br />

y 0 a<br />

j<br />

j > ⇒ x = bj<br />

a<br />

j<br />

x < bj<br />

⇒ y j<br />

= 0<br />

(vincolo duale saturo: v i =0)<br />

(vincolo duale non saturo: v i >0)<br />

(vincolo primale saturo: s j =0)<br />

(vincolo primale non saturo: s j >0)<br />

LP – La Dualità: interpretazione economica<br />

Il problema del Product Mix<br />

• Stabilire i livelli ottimi <strong>di</strong> produzione per un insieme <strong>di</strong> prodotti in<br />

modo da massimizzare il profitto ricavato dalla loro ven<strong>di</strong>ta,<br />

rispettando la <strong>di</strong>sponibilità limitata delle risorse necessarie alla<br />

produzione<br />

(P) max c<br />

T x<br />

Ax ≤ b<br />

x ≥ 0<br />

x i<br />

c i<br />

b j<br />

a ij<br />

livello <strong>di</strong> produzione del prodotto i-mo<br />

profitto per unità <strong>di</strong> prodotto i-mo<br />

<strong>di</strong>sponibilità della risorsa j-ma<br />

quantità <strong>di</strong> risorsa j-ma necessaria per<br />

produrre un’unità <strong>di</strong> prodotto i-mo<br />

52<br />

j-mo vincolo <strong>di</strong> (P)<br />

a<br />

j<br />

x<br />

≤ bj<br />

il consumo totale <strong>di</strong> risorsa j-ma non<br />

supera la sua <strong>di</strong>sponibilità massima


LP – La Dualità: interpretazione economica<br />

Il duale del problema del Product Mix<br />

• Avendo scelto <strong>di</strong> vendere le risorse produttive, determinare il loro<br />

prezzo minimo, imponendo che la loro ven<strong>di</strong>ta sia almeno tanto<br />

conveniente che vendere i beni prodotti con le risorse<br />

53<br />

(D)<br />

min b<br />

T<br />

y<br />

A<br />

T<br />

y ≥ c<br />

y ≥ 0<br />

y j<br />

c i<br />

b j<br />

a ij<br />

prezzo minimo a cui vendere la j-ma risorsa<br />

profitto per unità <strong>di</strong> prodotto i-mo<br />

<strong>di</strong>sponibilità della risorsa j-ma<br />

quantità <strong>di</strong> risorsa j-ma necessaria per<br />

produrre un’unità <strong>di</strong> prodotto i-mo<br />

i-mo vincolo <strong>di</strong> (D)<br />

a<br />

T<br />

y ≥ c<br />

i i<br />

il valore <strong>di</strong> una unità <strong>di</strong> prodotto i-mo, calcolato<br />

considerando le risorse necessarie per produrlo e<br />

il loro prezzo minimo, deve superare il prezzo<br />

unitario <strong>di</strong> ven<strong>di</strong>ta del prodotto stesso<br />

LP – La Dualità: interpretazione economica<br />

54<br />

Interpretazione economica della slackness complementare<br />

• Primale:<br />

• Il valore delle risorse (il valore ottimo delle variabili duali) è positivo<br />

solamente quando le risorse sono utilizzate completamente (risorse<br />

scarse), ovvero quando sono nulle le variabili <strong>di</strong> slack associate ai<br />

vincoli corrispondenti<br />

• Duale<br />

s b a<br />

j<br />

j = j − x ⇒ s jy<br />

j = 0<br />

• Il livello <strong>di</strong> produzione dei prodotti (il valore ottimo delle variabili primali)<br />

è positivo solamente quando il profitto unitario che si ricava dalla loro<br />

ven<strong>di</strong>tà è pari a quanto si ricaverebbe vendendo le risorse necessarie<br />

alla produzione al loro prezzo minimo (con<strong>di</strong>zione <strong>di</strong> bilancio<br />

economico), ovvero quando il surplus <strong>di</strong> guadagno unitario della<br />

ven<strong>di</strong>ta delle risorse rispetto la produzione dei prodotti è nullo<br />

v a<br />

T<br />

i = y−<br />

ci<br />

⇒xivi<br />

= 0<br />

i


LP – La Dualità: interpretazione economica<br />

Il problema della Dieta (blen<strong>di</strong>ng)<br />

• Determinare la <strong>di</strong>eta bilanciata più economica avendo la possibilità<br />

<strong>di</strong> acquistare n <strong>di</strong>versi cibi. Una <strong>di</strong>eta è bilanciata se sod<strong>di</strong>sfa i livelli<br />

minimi giornalieri <strong>di</strong> calorie e <strong>di</strong> altri elementi nutrizionali (e.g.,<br />

proteine, calcio, ferro, vitamine). Quin<strong>di</strong> determinare la quantità che<br />

deve essere acquistata per ciascun cibo, minimizzando la spesa<br />

complessiva e sod<strong>di</strong>sfacendo i livelli nutrizionali minimi<br />

(P)<br />

min<br />

Ax<br />

x<br />

≥<br />

≥<br />

c<br />

T<br />

x<br />

0<br />

b<br />

j-mo vincolo <strong>di</strong> (P)<br />

a<br />

j<br />

x ≥ bj<br />

x i<br />

c i<br />

b j<br />

a ij<br />

quantità <strong>di</strong> cibo i-mo da acquistare<br />

costo per unità <strong>di</strong> cibo i-mo<br />

livello minimo per l’elemento nutriz. j-mo<br />

quantità <strong>di</strong> elemento nutrizionale j-mo<br />

presente in una unità <strong>di</strong> cibo i-mo<br />

la quantità complessiva dell’elemento nutriz. j-ma<br />

fornita dai cibi acquistati deve essere almeno<br />

pari al relativo livello minimo.<br />

55<br />

LP – La Dualità: interpretazione economica<br />

Il duale del problema della Dieta<br />

• Volendo acquistare singolarmente gli m elementi nutrizionali (e.g.,<br />

in pillole) per ottenere la <strong>di</strong>eta bilanciata, determinare il massimo<br />

prezzo per i singoli elementi in modo che il loro acquisto sia<br />

competitivo rispetto quello dei cibi contenenti tali elementi<br />

56<br />

(D)<br />

max b<br />

T<br />

y<br />

A<br />

T<br />

y ≤ c<br />

y ≥ 0<br />

y j<br />

c i<br />

b j<br />

a ij<br />

prezzo massimo a cui acquistare il j-mo<br />

elemento nutriz.<br />

costo per unità <strong>di</strong> cibo i-mo<br />

livello minimo per l’elemento nutriz. j-mo<br />

quantità <strong>di</strong> elemento nutriz. j-mo presente<br />

in una unità <strong>di</strong> cibo i-mo<br />

i-mo vincolo <strong>di</strong> (D)<br />

a<br />

T<br />

y ≤ c<br />

i i<br />

il prezzo unitario del cibo i-mo “sintetico” (il<br />

prezzo della quantità <strong>di</strong> elementi nutriz.<br />

forniti da una unità <strong>di</strong> cibo i-imo) deve non<br />

superare il prezzo reale del cibo i-mo


LP – L’analisi <strong>di</strong> post-ottimalità<br />

57<br />

Consideriamo un problema <strong>di</strong> PL con soluzione ottima x * e<br />

base ottima associata B, determinare con quali con<strong>di</strong>zioni<br />

possono variare certi coefficienti del problema lasciando<br />

invariata la base ottima.<br />

max c<br />

T x<br />

Ax = b<br />

x ≥ 0<br />

Considereremo tre casi:<br />

a) variazione <strong>di</strong> un coefficiente della funzione obiettivo associato ad<br />

una variabile fuori base (c N )<br />

b) variazione <strong>di</strong> un coefficiente della funzione obiettivo associato ad<br />

una variabile in base (c B )<br />

c) variazione del termine noto <strong>di</strong> un vincolo (b)<br />

LP – L’analisi <strong>di</strong> post-ottimalità<br />

58<br />

Casi (a) e (b): variazione dei prezzi <strong>di</strong> ven<strong>di</strong>ta dei prodotti<br />

• (a) – grafico nel piano dei prodotti<br />

• all’ottimo x 2<br />

è fuori base<br />

3<br />

x 2<br />

il coeff.angolare dell’obiettivo è<br />

c 1 <strong>di</strong>minuisce<br />

c<br />

− 1<br />

c2<br />

2<br />

B<br />

C<br />

c 2 aumenta<br />

1<br />

D<br />

E <strong>di</strong>venta sol. ottima<br />

⇒ x 2 entra in base<br />

A<br />

1 2 3 4 5 6<br />

E<br />

x 1


LP – L’analisi <strong>di</strong> post-ottimalità<br />

Casi (a) e (b): variazione dei prezzi <strong>di</strong> ven<strong>di</strong>ta dei prodotti<br />

• (a) – analitico<br />

• Sia c k , k∈R, il coefficiente che viene variato. Il coefficiente <strong>di</strong><br />

costo ridotto associato alla k-esima variabile fuori base è<br />

59<br />

positivo poichè la base è ottima e variando c k varia r k<br />

r c<br />

T<br />

B<br />

1<br />

k =<br />

−<br />

a<br />

B k<br />

c k<br />

− c k =<br />

← c k + δ⇒ rˆ k =<br />

y<br />

*<br />

y<br />

*<br />

T<br />

T<br />

a k − c k ≥ 0<br />

a k − (c k + δ )<br />

• Perchè la soluzione corrente resti ottima il nuovo valore <strong>di</strong> r k<br />

deve rimanere positivo (altrimenti la variabile fuori base<br />

associata sarebbe can<strong>di</strong>data ad entrare in base)<br />

rˆ k<br />

≥<br />

0<br />

⇒<br />

y<br />

*<br />

T<br />

a k<br />

−<br />

(c k<br />

+ δ)<br />

≥ 0<br />

⇒<br />

δ<br />

≤<br />

y<br />

*<br />

T<br />

a k<br />

−<br />

c k<br />

⇒<br />

δ<br />

≤<br />

r k<br />

LP – L’analisi <strong>di</strong> post-ottimalità<br />

60<br />

Casi (a) e (b): variazione dei prezzi <strong>di</strong> ven<strong>di</strong>ta dei prodotti<br />

3<br />

2<br />

1<br />

A<br />

• (b) – grafico nel piano dei prodotti<br />

x 2<br />

B<br />

• all’ottimo x 2<br />

è in base<br />

C<br />

E<br />

c 1 <strong>di</strong>minuisce<br />

c 2 aumenta<br />

D<br />

1 2 3 4 5 6<br />

il coeff.angolare dell’obiettivo è<br />

c 1 aumenta<br />

c 2 <strong>di</strong>minuisce<br />

x 1<br />

C <strong>di</strong>venta sol. ottima<br />

⇒ la base cambia<br />

D <strong>di</strong>venta sol. ottima<br />

⇒ x 2 esce <strong>di</strong> base<br />

c<br />

− 1<br />

c2


LP – L’analisi <strong>di</strong> post-ottimalità<br />

Casi (a) e (b): variazione dei prezzi <strong>di</strong> ven<strong>di</strong>ta dei prodotti<br />

• (b) – analitico<br />

• Sia c Bi , i=1,...,m , il coefficiente che viene variato. La variazione<br />

mo<strong>di</strong>fica tutti gli r k delle var. fuori base che devono restare<br />

positivi perché la base non cambi<br />

⎡0⎤<br />

⎢M⎥<br />

⎢ ⎥<br />

r c<br />

T<br />

B<br />

1<br />

k =<br />

−<br />

ak<br />

− ck<br />

k ∈ R<br />

e<br />

B<br />

i = ⎢1⎥(i<br />

− mo)<br />

⎢<br />

M<br />

⎥<br />

c B ← c B + δ⇒ c B ← c B + δe<br />

⎢ ⎥<br />

i i<br />

i<br />

⎢⎣<br />

0⎥⎦<br />

rˆ<br />

T 1<br />

T 1<br />

k = c B<br />

−<br />

a<br />

B k − c k + δe<br />

B<br />

−<br />

a<br />

T 1 1 i<br />

i k e B<br />

−<br />

= (B<br />

−<br />

)<br />

i<br />

61<br />

rˆ k<br />

=<br />

rk<br />

+<br />

δ(B<br />

−1<br />

)<br />

i<br />

a k<br />

≥<br />

0<br />

∀ k<br />

• Come si effettuano i casi (a) e (b) utilizzando il tableau ottimo?<br />

LP – L’analisi <strong>di</strong> post-ottimalità<br />

Caso (c): variazione della <strong>di</strong>sponibilità delle risorse<br />

• Due possibilità<br />

62<br />

(1) aumentare le risorse scarse per migliorare l’obiettivo<br />

(2) ridurre le risorse abbondanti lasciando invariato l’obiettivo<br />

• (c) – grafico nel piano dei prodotti<br />

x 2<br />

(1) x 3<br />

(2) x 4<br />

(3) x 5<br />

3<br />

b 2 (scarsa) aumenta<br />

2<br />

B<br />

C<br />

1<br />

A<br />

D<br />

1 2 3 4 5 6<br />

E<br />

D’<br />

L<br />

x 1


LP – L’analisi <strong>di</strong> post-ottimalità<br />

Caso (c): variazione della <strong>di</strong>sponibilità delle risorse<br />

• Due possibilità<br />

63<br />

(1) aumentare le risorse scarse per migliorare l’obiettivo<br />

(2) ridurre le risorse abbondanti lasciando invariato l’obiettivo<br />

• (c) – grafico nel piano dei prodotti<br />

(2) x 4<br />

(3) x 5<br />

3<br />

2<br />

B<br />

C<br />

x 2<br />

(1) x 3<br />

b 3 (abb.) <strong>di</strong>minuisce<br />

1<br />

D<br />

E<br />

x 1<br />

A<br />

1 2 3 4 5 6<br />

LP – L’analisi <strong>di</strong> post-ottimalità<br />

64<br />

Caso (c): variazione della <strong>di</strong>sponibilità delle risorse<br />

• (c) – analitico<br />

• Sia b i<br />

, i=1,...,m , il termine noto del i-mo vincolo che viene variato<br />

• A causa <strong>di</strong> tale variazione si mo<strong>di</strong>ficano i valori delle variabili <strong>di</strong> base<br />

b<br />

1<br />

1 1<br />

i ← bi<br />

+ δ⇒ xˆ B = B<br />

−<br />

(b + δei<br />

) = B<br />

−<br />

b + δ(B<br />

−<br />

) i<br />

⇒ xˆ<br />

1<br />

B = x B + δ(B<br />

−<br />

) i<br />

B<br />

−1<br />

ei<br />

= (B<br />

−1<br />

) i colonna i-ma <strong>di</strong> B -1<br />

xˆ B<br />

=<br />

xB<br />

+<br />

δ(B<br />

−1<br />

) i<br />

≥<br />

0<br />

• Come si effettua questa analisi usando il tableau ottimo (caso<br />

particolare)?


LP – L’analisi <strong>di</strong> post-ottimalità<br />

Un esempio<br />

65<br />

max<br />

x<br />

2x<br />

x<br />

1<br />

1<br />

x<br />

+ 2x<br />

1<br />

0<br />

+ x<br />

x<br />

= 3x<br />

2<br />

2<br />

2<br />

≥ 0,x<br />

≤ 8<br />

≤ 2<br />

≤ 6<br />

2<br />

1<br />

+ 2x<br />

≥ 0<br />

2<br />

max<br />

x<br />

2x<br />

x<br />

1<br />

i<br />

x<br />

+ 2x<br />

1<br />

0<br />

+ x<br />

x<br />

= 3x<br />

2<br />

2<br />

2<br />

1<br />

+ x<br />

+ 2x<br />

3<br />

≥ 0 i = 1,...,5<br />

2<br />

+ x<br />

4<br />

+ x<br />

5<br />

= 6<br />

= 8<br />

= 2<br />

x<br />

x<br />

x<br />

x<br />

0<br />

3<br />

4<br />

5<br />

il tableau iniziale<br />

x x x x<br />

1<br />

−3<br />

2<br />

− 2<br />

3<br />

0<br />

4<br />

0<br />

1 2 1 0<br />

2 1 0 1<br />

0 1 0 0<br />

x<br />

5<br />

0<br />

0<br />

0<br />

1<br />

0<br />

6<br />

8<br />

2<br />

x<br />

x<br />

x<br />

x<br />

0<br />

2<br />

1<br />

5<br />

x<br />

1<br />

0<br />

0<br />

1<br />

0<br />

il tableau ottimo<br />

x x x<br />

2<br />

0<br />

3<br />

1/3<br />

4<br />

4/3<br />

1 2/3 −1/3<br />

0 −1/3<br />

2/3<br />

0 −2/3<br />

1/3<br />

x<br />

5<br />

0<br />

0<br />

0<br />

1<br />

38/3<br />

4/3<br />

10/3<br />

2/3<br />

LP – L’analisi <strong>di</strong> post-ottimalità<br />

66<br />

Un esempio<br />

⎡2<br />

1 0⎤<br />

B = ⎢1<br />

2 0⎥<br />

⎢ ⎥<br />

⎢⎣<br />

1 0 1⎥⎦<br />

B -1<br />

x<br />

x<br />

x<br />

x<br />

0<br />

2<br />

1<br />

5<br />

x<br />

1<br />

0<br />

0<br />

1<br />

0<br />

x<br />

2<br />

0<br />

1<br />

0<br />

0<br />

x<br />

3<br />

1/3<br />

2/3<br />

−1/3<br />

−2/3<br />

x<br />

4<br />

4/3<br />

−1/3<br />

2/3<br />

1/3<br />

x<br />

5<br />

0<br />

0<br />

0<br />

1<br />

38/3<br />

4/3<br />

10/3<br />

2/3<br />

• in questo caso i coeff. c k che moltiplicano le var. fuori base sono<br />

tutti nulli, e le corrispondenti colonne a k della matrice N sono i<br />

vettori e k , i coeff. <strong>di</strong> costo ridotto nel tableau ottimo forniscono<br />

<strong>di</strong>rettamente il valore dell’ottimo duale<br />

T<br />

r<br />

T 1<br />

T 1 *<br />

k = c B<br />

−<br />

a<br />

B k − ck<br />

= c B<br />

−<br />

e<br />

B k = y ek<br />

=<br />

[ 1 3 4 3 0]<br />

y<br />

*<br />

k<br />

⇒ y<br />

*<br />

T<br />

=<br />

(... perché y 3*<br />

=0 ?)


LP – L’analisi <strong>di</strong> post-ottimalità<br />

67<br />

Un esempio<br />

• Caso (a) – coeff. dell’obiettivo <strong>di</strong> una var. fuori base<br />

• variazione <strong>di</strong> c 3<br />

: (inizialmente c 3<br />

=0 - slack) c 3<br />

← c 3<br />

+ δ<br />

1<br />

δ ≤ r3 ⇒ δ ≤ ⇒ − ∞ ≤ c 3 ≤<br />

3<br />

• variazione <strong>di</strong> c 4<br />

: (inizialmente c 4<br />

=0 - slack) c 4<br />

← c 4<br />

+ δ<br />

1<br />

3<br />

4<br />

δ ≤ r4 ⇒ δ ≤ ⇒ − ∞ ≤ c 4 ≤<br />

3<br />

• Interpretazione economica?<br />

4<br />

3<br />

x0<br />

x2<br />

x1<br />

x5<br />

x1<br />

0<br />

0<br />

1<br />

0<br />

x2<br />

0<br />

1<br />

0<br />

0<br />

x3<br />

1/ 3<br />

2/ 3<br />

−1/ 3<br />

− 2/ 3<br />

x4<br />

4/ 3<br />

−1/ 3<br />

2/ 3<br />

1/ 3<br />

x5<br />

0<br />

0<br />

0<br />

1<br />

38/ 3<br />

4/ 3<br />

10/ 3<br />

2/ 3<br />

LP – L’analisi <strong>di</strong> post-ottimalità<br />

Un esempio<br />

• Caso (b) – coeff. dell’obiettivo <strong>di</strong> una var. in base<br />

• variazione <strong>di</strong> c 1<br />

: (inizialmente c 1<br />

=3) c 1<br />

← c 1<br />

+ δ<br />

68<br />

rˆ<br />

rˆ<br />

3<br />

4<br />

=<br />

=<br />

1<br />

3<br />

3 4<br />

−<br />

+<br />

1<br />

3<br />

3 2<br />

δ<br />

δ<br />

≥<br />

≥<br />

0⇒ δ<br />

0⇒ δ<br />

≤ 1<br />

≥ −2<br />

⇒ 1 ≤ c1 ≤<br />

4<br />

x<br />

x<br />

x<br />

x<br />

0<br />

2<br />

1<br />

5<br />

x<br />

1<br />

0<br />

0<br />

1<br />

0<br />

x<br />

2<br />

0<br />

1<br />

0<br />

0<br />

x<br />

3<br />

1/3<br />

2/3<br />

−1/3<br />

−2/3<br />

x<br />

4<br />

4/3<br />

−1/3<br />

2/3<br />

1/3<br />

x<br />

5<br />

0<br />

0<br />

0<br />

1<br />

38/3<br />

4/3<br />

10/3<br />

2/3<br />

• Interpretazione economica?


LP – L’analisi <strong>di</strong> post-ottimalità<br />

Un esempio<br />

• Caso (b) – coeff. dell’obiettivo <strong>di</strong> una var. in base<br />

• variazione <strong>di</strong> c 2<br />

: (inizialmente c 2<br />

=2) c 2<br />

← c 2<br />

+ δ<br />

69<br />

rˆ<br />

rˆ<br />

3<br />

4<br />

=<br />

=<br />

3 1<br />

3 4<br />

+<br />

−<br />

3 2<br />

3 1<br />

δ ≥ 0⇒δ<br />

≥<br />

δ ≥ 0⇒δ<br />

≤<br />

−<br />

4<br />

2 1<br />

3<br />

⇒<br />

2<br />

≤<br />

c 2 ≤<br />

6<br />

x<br />

x<br />

x<br />

x<br />

0<br />

2<br />

1<br />

5<br />

x<br />

1<br />

0<br />

0<br />

1<br />

0<br />

x<br />

2<br />

0<br />

1<br />

0<br />

0<br />

x<br />

3<br />

1/3<br />

2/3<br />

−1/3<br />

−2/3<br />

x<br />

4<br />

4/3<br />

−1/3<br />

2/3<br />

1/3<br />

x<br />

5<br />

0<br />

0<br />

0<br />

1<br />

38/3<br />

4/3<br />

10/3<br />

2/3<br />

• Interpretazione economica?<br />

LP – L’analisi <strong>di</strong> post-ottimalità<br />

Un esempio<br />

• Caso (b) – coeff. dell’obiettivo <strong>di</strong> una var. in base<br />

• variazione <strong>di</strong> c 5<br />

: (inizialmente c 5<br />

=0 - slack) c 5<br />

← c 5<br />

+ δ<br />

70<br />

rˆ<br />

rˆ<br />

3<br />

4<br />

=<br />

=<br />

1<br />

3<br />

4<br />

3<br />

−<br />

+<br />

2<br />

3<br />

1<br />

3<br />

δ ≥ 0⇒δ<br />

≤<br />

δ ≥ 0⇒δ<br />

≥<br />

1<br />

2<br />

−4<br />

⇒− 4 ≤ c5 ≤<br />

1<br />

2<br />

x<br />

x<br />

x<br />

x<br />

0<br />

2<br />

1<br />

5<br />

x<br />

1<br />

0<br />

0<br />

1<br />

0<br />

x<br />

2<br />

0<br />

1<br />

0<br />

0<br />

x<br />

3<br />

1/3<br />

2/3<br />

−1/3<br />

−2/3<br />

x<br />

4<br />

4/3<br />

−1/3<br />

2/3<br />

1/3<br />

x<br />

5<br />

0<br />

0<br />

0<br />

1<br />

38/3<br />

4/3<br />

10/3<br />

2/3<br />

• Interpretazione economica?


LP – L’analisi <strong>di</strong> post-ottimalità<br />

Un esempio<br />

• Caso (c) – variazione della <strong>di</strong>sponibilità delle risorse<br />

Due possibilità:<br />

c.1) aumentare la <strong>di</strong>sponibilità delle risorse scarse (b 1<br />

e b 2<br />

)<br />

c.2) <strong>di</strong>minuire l’eccesso <strong>di</strong> risorse abbondanti (b 3<br />

)<br />

71<br />

• Caso (c.1)<br />

• variazione <strong>di</strong> b 1<br />

: (inizialmente b 1<br />

=6) b 1<br />

← b 1<br />

+ δ<br />

xˆ 2 = 0 2<br />

3 4 +<br />

3 2 δ ≥ ⇒δ ≥ −<br />

x1<br />

x2<br />

xˆ 10 0 10<br />

x0<br />

0 0<br />

1 = −<br />

3 1 δ ≥ ⇒δ ≤<br />

3<br />

x2<br />

0 1<br />

xˆ 5 = 0 1<br />

3 2 −<br />

3 2 δ ≥ ⇒δ ≤<br />

x1<br />

1 0<br />

⇒ 4 ≤ b 7 x5<br />

0 0<br />

1 ≤<br />

• Interpretazione economica?<br />

x<br />

3<br />

1/3<br />

2/3<br />

−1/3<br />

−2/3<br />

x<br />

4<br />

4/3<br />

−1/3<br />

2/3<br />

1/3<br />

x<br />

5<br />

0<br />

0<br />

0<br />

1<br />

38/3<br />

4/3<br />

10/3<br />

2/3<br />

(NB: possibile perché il tableau contiene B -1 )<br />

LP – L’analisi <strong>di</strong> post-ottimalità<br />

Un esempio<br />

• Caso (c) – variazione della <strong>di</strong>sponibilità delle risorse<br />

Due possibilità:<br />

c.1) aumentare la <strong>di</strong>sponibilità delle risorse scarse (b 1<br />

e b 2<br />

)<br />

c.2) <strong>di</strong>minuire l’eccesso <strong>di</strong> risorse abbondanti (b 3<br />

)<br />

72<br />

• Caso (c.1)<br />

• variazione <strong>di</strong> b 2<br />

: (inizialmente b 2<br />

=8) b 2<br />

← b 2<br />

+ δ<br />

xˆ 2 = 0 4<br />

3 4 −<br />

3 1 δ ≥ ⇒δ ≤<br />

x1<br />

x2<br />

xˆ 10<br />

1 = + 0 5<br />

x0<br />

0 0<br />

3 2 δ ≥ ⇒δ ≥ −<br />

3<br />

x2<br />

0 1<br />

xˆ 5 = 0 2<br />

3 2 +<br />

3 1 δ ≥ ⇒δ ≥ −<br />

x1<br />

1 0<br />

⇒ 6 ≤ b2 ≤ 12<br />

x5<br />

0 0<br />

• Interpretazione economica?<br />

x<br />

3<br />

1/3<br />

2/3<br />

−1/3<br />

x<br />

4<br />

x<br />

5<br />

4/3 0 38/3<br />

−1/3<br />

0 4/3<br />

2/3 0 10/3<br />

−2/3<br />

1/3 1 2/3<br />

(NB: possibile perché il tableau contiene B -1 )


LP – L’analisi <strong>di</strong> post-ottimalità<br />

Un esempio<br />

• Caso (c) – variazione della <strong>di</strong>sponibilità delle risorse<br />

Due possibilità:<br />

c.1) aumentare la <strong>di</strong>sponibilità delle risorse scarse (b 1<br />

e b 2<br />

)<br />

c.2) <strong>di</strong>minuire l’eccesso <strong>di</strong> risorse abbondanti (b 3<br />

)<br />

73<br />

• Caso (c.2)<br />

• variazione <strong>di</strong> b 3<br />

: (inizialmente b 3<br />

=2) b 3<br />

← b 3<br />

+ δ<br />

xˆ 5<br />

=<br />

2<br />

3<br />

+ δ ≥ 0 ⇒ δ ≥ −<br />

4<br />

⇒ b 3 ≥<br />

3<br />

2<br />

3<br />

• Interpretazione economica?<br />

x<br />

x<br />

x<br />

x<br />

0<br />

2<br />

1<br />

5<br />

x<br />

1<br />

x<br />

2<br />

0 0<br />

0 1<br />

1 0<br />

x<br />

3<br />

1/3<br />

2/3<br />

−1/3<br />

4/3 0 38/3<br />

−1/3<br />

0 4/3<br />

2/3 0 10/3<br />

0 0 −2/3<br />

1/3 1 2/3<br />

(NB: possibile perché il tableau contiene B -1 )<br />

x<br />

4<br />

x<br />

5<br />

LP – L’analisi <strong>di</strong> post-ottimalità<br />

Un esempio – Il valore delle risorse<br />

• Per i vincoli sul consumo delle risorse si ha<br />

74<br />

Vincolo saturo<br />

(slack nulla)<br />

Risorsa scarsa<br />

(var.duale ottima positiva)<br />

Vincolo non saturo<br />

(slack positiva)<br />

Risorsa abbondante<br />

(var.duale ottima nulla)<br />

• Conviene aumentare le risorse scarse<br />

• Marginalmente la f.ob. cresce del valore delle risorse (il valore<br />

delle var. duali ottime y j* )<br />

• Il valore delle risorse abbondanti è nullo (y j *=0)<br />

• Conviene aumentare per prima la risorsa scarsa a cui è associato<br />

il valore maggiore


LP – L’analisi <strong>di</strong> post-ottimalità<br />

Un esempio – Il valore delle risorse<br />

• Nell’esempio i valori duali si possono leggere <strong>di</strong>rettamente sul<br />

tableau ottimo<br />

• questo è caso particolare, ... perché?<br />

75<br />

x<br />

x<br />

x<br />

x<br />

0<br />

2<br />

1<br />

5<br />

x<br />

1<br />

0<br />

0<br />

1<br />

0<br />

x<br />

2<br />

0<br />

1<br />

0<br />

0<br />

x<br />

3<br />

1/3<br />

2/3<br />

−1/3<br />

−2/3<br />

x<br />

4<br />

4/3<br />

−1/3<br />

2/3<br />

1/3<br />

x<br />

5<br />

0<br />

0<br />

0<br />

1<br />

38/3<br />

4/3<br />

10/3<br />

2/3<br />

LP – L’analisi <strong>di</strong> post-ottimalità<br />

Esempi con software<br />

• Excel<br />

• Lindo<br />

76


LP – L’analisi <strong>di</strong> post-ottimalità<br />

77<br />

Osservazioni finali<br />

• Se si <strong>di</strong>minuisce (entro i limiti calcolati) una risorsa<br />

abbondante la soluzione non cambia<br />

• Cosa succede se invece si scoprisse <strong>di</strong> avere una<br />

<strong>di</strong>sponibilità inferiore <strong>di</strong> una risorsa scarsa?<br />

• Quali valutazioni possiamo fare nel caso <strong>di</strong>:<br />

• introduzione <strong>di</strong> un nuovo prodotto<br />

• variazione della tecnologia<br />

• ...?<br />

• L’analisi <strong>di</strong> post-ottimalità è un processo locale (la sua<br />

vali<strong>di</strong>tà è limitata ad un intorno della soluzione ottima)<br />

LP – I problemi a numeri interi e misti<br />

78<br />

Molti problemi decisionali richiedono l’uso <strong>di</strong> variabili<br />

intere per rappresentare alternative <strong>di</strong>screte<br />

Questo tipo <strong>di</strong> problemi si chiamano combinatorici<br />

In qualche caso può essere ragionevole “rilassare” il<br />

problema considerando le variabili come reali<br />

Attraverso l’uso <strong>di</strong> variabili binarie (0-1) è possibile<br />

modellare con<strong>di</strong>zioni logiche<br />

• X A =1 si verifica l’evento A (e.g., compro il prodotto, affitto una<br />

macchina, passo per la strada A, ...)<br />

• X A =0 non si verifica l’evento A<br />

• Esempi: scheduling, location problems, routing ...


LP – I problemi a numeri interi e misti<br />

79<br />

Esempi <strong>di</strong> formulazioni con variabili binarie<br />

• Knapsack Problem<br />

• n possibili progetti possibili da realizzare<br />

• b budget massimo <strong>di</strong>sponibile<br />

• a j investimento necessario al progetto j<br />

• c j guadagno ricavato dal progetto j<br />

• i progetti non possono essere realizzati parzialmente (o tutto o<br />

nulla)<br />

• problema: cosa finanziare per massimizzare il guadagno?<br />

max<br />

n<br />

∑ c jx<br />

j<br />

j=<br />

1<br />

n<br />

∑ a jx<br />

j ≤<br />

j=<br />

1<br />

x j ∈<br />

b<br />

Knapsack binario<br />

{ 0,1} = B∀<br />

j = 1,..., n<br />

(x j =1 finanzio il progetto j)<br />

LP – I problemi a numeri interi e misti<br />

80<br />

Esempi <strong>di</strong> formulazioni con variabili binarie<br />

• Matching Problem (assegnazione)<br />

• m attività da assegnare ad n processori (macchine, persone,...)<br />

• ogni processore può eseguire una sola attività<br />

• l’attività non è interrompibile<br />

• c ij costo dell’assegnazione <strong>di</strong> i a j<br />

• problema: assegnare tutte le attività a costo minimo<br />

m<br />

min∑<br />

i=<br />

1<br />

n<br />

∑ cijxij<br />

j=<br />

1<br />

n<br />

∑ xij<br />

= 1∀<br />

i = 1,...,m<br />

j=<br />

1<br />

m<br />

∑xij<br />

≤ 1∀<br />

j = 1,...,n<br />

i=<br />

1<br />

x ji ∈<br />

Matching binario<br />

{ 0,1 } = B∀i<br />

= 1,...,m∀<br />

j = 1,..., n<br />

(x ij =1 assegno i a j)


LP – I problemi a numeri interi e misti<br />

81<br />

Esempi <strong>di</strong> formulazioni con variabili binarie<br />

• Trattamento <strong>di</strong> vincoli <strong>di</strong>sgiuntivi (il caso del Sequencing Problem)<br />

• sequenziare un insieme <strong>di</strong> task su un singolo processore<br />

• il processore esegue un task alla volta senza interruzione<br />

• p i processing time del task i<br />

• problema: come scrivere i vincoli che garantiscono una<br />

sequenza ammissibile?<br />

t i ∈R + , l’istante inizio esecuzione <strong>di</strong> i.<br />

Dati due task i e j, si possono verificare due casi:<br />

1. i precede j ⇒ t j ≥ t i + p i<br />

2. j precede i ⇒ t i ≥ t j + p j<br />

Sono vincoli mutuamente esclusivi (<strong>di</strong>sgiuntivi) ....<br />

LP – I problemi a numeri interi e misti<br />

82<br />

Esempi <strong>di</strong> formulazioni con variabili binarie<br />

• Trattamento <strong>di</strong> vincoli <strong>di</strong>sgiuntivi (il caso del Sequencing Problem)<br />

• si introduce una variabile binaria e si utilizza il big-M<br />

y ij<br />

=<br />

⎧1<br />

⎨<br />

⎩0<br />

i<br />

j<br />

precede<br />

precede<br />

j<br />

i<br />

t j ≥ ti<br />

ti<br />

≥ t j<br />

+ pi<br />

− M(1 −<br />

+ p j − My ij<br />

yij<br />

)<br />

• in questo modo si è con<strong>di</strong>zionato reciprocamente il<br />

comportamento <strong>di</strong> una variabile binaria con delle variabili<br />

continue


LP – I problemi a numeri interi e misti<br />

83<br />

La soluzione dei problemi a numeri interi (Integer<br />

Programming, IP)<br />

• I problemi IP e MIP sono generalmente <strong>di</strong>fficili (NP-hard)<br />

• In alcuni (pochi) casi la soluzione “rilassata” è intera<br />

• In generale si possono usare tre tipi <strong>di</strong> meto<strong>di</strong> <strong>di</strong> soluzione:<br />

1. <strong>Meto<strong>di</strong></strong> basati su una enumerazione implicita delle soluzioni<br />

(Branch and Bound Methods)<br />

2. <strong>Meto<strong>di</strong></strong> basati sull’uso <strong>di</strong> “piani <strong>di</strong> taglio” (Cutting Planes<br />

Methods)<br />

3. <strong>Meto<strong>di</strong></strong> specifici per particolari classi <strong>di</strong> problemi

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!