Metodi e Modelli di Programmazione Lineare - Massimo Paolucci
Metodi e Modelli di Programmazione Lineare - Massimo Paolucci
Metodi e Modelli di Programmazione Lineare - Massimo Paolucci
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