metodi e modelli di programmazione lineare · lp – l’algoritmo del simplesso (simplex) il...

42
Metodi e Modelli di Programmazione Lineare Massimo Paolucci ([email protected]) DIST – Università di Genova 2 La Programmazione Lineare (LP) Modello di programmazione matematica x vettore delle variabili decisionali X insieme delle soluzioni ammissibili f(x) funzione obiettivo scalare Metodo decisionale = algoritmo di ottimizzazione max f(x ) s.t. x X R n

Upload: phungkhanh

Post on 19-Feb-2019

228 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

Metodi e Modelli di Programmazione Lineare

Massimo Paolucci

([email protected])

DIST – Università di Genova

2

La Programmazione Lineare (LP)

Modello di programmazione matematica

• x vettore delle variabili decisionali

• X insieme delle soluzioni ammissibili

• f(x) funzione obiettivo scalare

Metodo decisionale = algoritmo di ottimizzazione

max f(x)s.t.x X R n∈ ⊆

Page 2: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

3

LP – richiami teorici

La definizione di un modello di programmazione matematica

FormulazioneMatematica

Definizionedelle variabili

Definizionedell’obiettivo

Definizionedei vincoli

4

LP – richiami teorici

Quando sia la funzione obiettivo che le relazioni che esprimono i vincoli sono lineari si ha un problema di PL

x è il vettore nx1 delle variabili decisionali

c è il vettore nx1 dei coefficienti della funzione obiettivo

b è il vettore mx1 dei termini noti dei vincoli

A è la matrice mxn dei coefficienti dei vincoli; A=[aij], i=1,...,m, j=1,...,n

n

T0

Rx

0x

bxA

xcxmax

≥==

Problema in Forma

Standard

(1)

(2)

Page 3: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

5

LP – richiami teorici

Ipotesi nella forma standard

b≥0 ⇒ bi≥0 ∀ i=1,...,m

m<n

m=rango(A)

Qualunque problema di PL può essere trasformato in un

problema equivalente in forma standard

Un vettore x° se soddisfa i vincoli (1) è detto soluzione, se

soddisfa (1) e (2) è soluzione ammissibile

Se x∈ Rn ⇒ PL a variabili continue

Se x∈ Zn ⇒ PL a variabili intere (IP)

Se alcune variabili sono reali ed altre intere ⇒ PL mista

(MIP)

6

LP – richiami teorici

Consideriamo i risultati fondamentali nel caso

di x∈ Rn

• L’insieme dei vincoli (in generale disuguaglianze)

rappresenta un Poliedro in Rn

• Dato un problema P di PL, se il Poliedro è:

chiuso e non vuoto (Politopo) P è ammissibile con soluzioni

ottime finite

aperto e non vuoto P può essere ammissibile con soluzioni

ottime finite oppure ammissibile senza soluzione ottime finite

(illimitato, o con ottimo all’infinito)

vuoto P è non ammissibile (senza soluzioni ammissibili)

• Un poliedro è un insieme convesso i cui vertici sono

detti Punti Estremi

Page 4: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

7

LP – richiami teorici

X Politopo

X Aperto

X Vuoto

{ } ∅≠≤∈= bxA:xX nR

X

X

X1

X2

∅=∩= 21 XXX

8

LP – richiami teorici

La soluzione ottima finita (se esiste) corrisponde ad uno o

più punti estremi del poliedro.

Tali punti estremi sono caratterizzati algebricamente dalle

soluzioni di base ammissibili

Una soluzione di base corrisponde alla scelta di m variabili

su n, ossia alla scelta di una sottomatrice B (detta Base)

mxm di A invertibile, e si calcola annullando le restanti n-m

variabili fuori base.

)1x)mn((basefuori.vardelleVettore

)1mx(basedi.vardelleVettore

x

xx

N

B

=

Page 5: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

9

LP – richiami teorici

Soluzione di base

Soluzione di base ammissibile se

xx

xB bB

N=

=

−1

0

x B bB = ≥−1 0

Teorema

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

matrice mxn di rango m con m<n,

xe è un punto estremo di X se e solo se xe è una

soluzione di base ammissibile.

10

LP – richiami teorici

Il numero di soluzioni di base è limitato dal massimo

numero di matrici B estraibili da A

Teorema Fondamentale della PL

Se un problema di PL ammette soluzione, allora esiste

una soluzione ammissibile di base.

Se un problema di PL ha soluzione ottima finita, allora

ha anche una soluzione di base ottima.

n

mn

m m

=−!

!(n )!

Page 6: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

11

LP – L’algoritmo del simplesso (simplex)

Il simplesso cerca la soluzione ottima esplorando le soluzioni di base

effettuando una ricerca locale: data una soluzione di base verifica se

l’obiettivo può essere migliorato e se ciò è possibile determina una

soluzione di base migliore adiacente a quella di partenza

Geometricamente esplora la frontiera del poliedro dei vincoli (algoritmo

esterno)

X

x1

x2

A (iniziale)

f.obj

B

C

D (ottima)

12

LP – L’algoritmo del simplesso (simplex)

Problema in forma standard

Generica equazione (m equ. dei vincoli + 1 equ. obiettivo)

nn1

mnmn11m

1nn1111

nn11

Rx

0x,...,0x

bxaxa

bxaxa

.t.s

xcxcmax

≥≥=++

=++

++

L

M

L

L

n

T0

Rx

0x

bxA

xcxmax

≥==

m,,1,0ixyyxRj

jij0iBiK=∀−= ∑

Page 7: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

13

LP – L’algoritmo del simplesso (simplex)

Il Simplesso (in forma algebrica)1. Inizializzazione

Determinare una soluzione di base ammissibile

2. Verifica dell’ottimalità

Se y0j≥0 ∀ j∈ R allora la soluzione corrente è ottima e l’algoritmo

termina, altrimenti andare al passo 3

3. Scelta della variabile entrante in base

Scegliere una var. fuori base xk tale che y0k<0 ed andare al passo 4

4. Scelta della variabile uscente dalla base

Scegliere la variabile xBr tale che

Se yik≤0 ∀ i=1,...m, allora la soluzione del problema è illimitata (nonesiste ottimo finito), e l’algoritmo termina

=

>= ik

0i

0yM,...,1irk

0ryy

minyy

ik

14

LP – L’algoritmo del simplesso (simplex)

Il Simplesso (in forma algebrica)

5. Pivoting.

Risolvere le equazioni

ricavando xk e xBr i≠r, in funzione di xj, j∈ R-{k} e di xBr

La nuova soluzione si ottiene ponendo xj=0, j∈ R-{k} e xBr =0

Andare al passo 2.

m,,1,0ixyyxRj

jij0iBiK=∀−= ∑

Page 8: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

15

LP – L’algoritmo del simplesso (simplex)

Il TableauContiene i coeff. delle m+1 equazioni dei vincoli e f.ob. e permette di

effettuare i passi dell’algoritmo in maniera semplice

x y x y i mBi ij jj R

i+ ∑ = ∀ =∈

0 0 1, , ,K

x x x x x

x y y y

x y y y

x y y y

x y y y

B Br Bm j k

j k

B j k

Br rj rk r

Bm mj mk m

1

0 0 0 00

1 1 1 10

0

0

0 0 0

1 0 0

0 1 0

0 0 1

L L L L L

L L L L L

L L L L L

M M O M M M M M

L L L L L

M M M O M M M M

L L L L L

16

LP – L’algoritmo del simplesso (simplex)

Il Simplesso (sul tableau)

1. Inizializzazione

Costruire il tableau iniziale con una soluzione di base ammissibile

2. Verifica dell’ottimalità

Se nella riga di x0 non esistono coefficienti negativi la soluzione

corrente è ottima e l’algoritmo termina, altrimenti andare al passo 3

3. Scelta della variabile entrante in base

Scegliere una var. fuori base xk tale che y0k<0 ed andare al passo 4.

4. Scelta della variabile uscente dalla base

Se tutti i coefficienti nella colonna di xk sono yik≤0 ∀ i=1,...,m, non

esiste ottimo finito e l’algoritmo termina, altrimenti calcolare i rapporti

yi0/ yik i=1,...,m, solo per gli yik>0, e scegliere la riga r-esima associata

al rapporto più piccolo. Il coeff. yrk è il pivot

Page 9: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

17

LP – L’algoritmo del simplesso (simplex)

Il Simplesso (sul tableau)

5. Pivoting.

Portare in base xk al posto di xBr dividendo la riga r-esima per il pivot,

quindi sottraendo la nuova riga r alle altre righe del tableau, obiettivo

incluso, dopo averla moltiplicata per il corrispondente coeff. della

colonna k. In questo modo la nuova colonna k sarà formata da tutti

coeff. nulli tranne il coeff. r-esimo uguale ad 1.

Aggiornare l’etichetta della riga r-esima con xk.

Andare al passo 2.

18

LP – L’algoritmo del simplesso (simplex)

Trasformazione dei problemi in forma standard

• Vincoli di ≤ si introducono var. di slack (scarto)

• Vincoli di ≥ si introducono var. di surplus (eccedenza)

• Variabili libere si effettua la sostituzione xj = uj – vj con uj ≥0 vj ≥0

• Termini noti negativi (bi ≤0) si cambia il segno al vincolo

• Problema di minimo si cambia segno alla f.ob. e si massimizza

(oppure si inverte la condizione di ottimalità dell’algoritmo)

0sbsxabxa iiin

1jjiji

n

1jjij ≥=+→≤ ∑∑

==

0sbsxabxa iiin

1jjiji

n

1jjij ≥=−→≥ ∑∑

==

Page 10: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

19

LP – L’algoritmo del simplesso (simplex)

Inizializzazione

• Base iniziale formata da var. di slack Ax + Is = b

• Metodo delle due fase (Two-Phase Method)

• Metodo del Big-M

Soluzioni degeneri

• Almeno una componente di xB è nulla

• Possono causare loop nell’algoritmo (cycling)

Criteri di scelta della var. entrante

• Metodo del gradiente

• Metodo del massimo incremento

20

LP – Il problema della produzione (Product Mix)

Il problema

Determinare quali e quanti prodotti produrre (in generale, quali attività eseguire ed a quale livello) in modo da massimizzare il profitto conseguente tenendo conto della disponibilità limitata delle risorse necessarie alla produzione

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

• Può essere modellato con la PL se le relazioni tecnologiche che legano prodotti e risorse possono essere approssimate in modo lineare

• Inoltre tutte le grandezze possono essere considerate deterministiche (in particolare, i ricavi dalla vendita dei prodotti)

r

x

r

x

Page 11: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

21

LP – Il problema della produzione (Product Mix)

Formulazione ed interpretazione del problema

• Si dispone di j=1,...,m risorse produttive (ad esempio, materie prime) in quantità limitata

• La massima disponibilità delle risorse è b1,...,bm

• Si possono produrre i=1,...,n diversi prodotti utilizzando con una data tecnologia le risorse disponibili

• Sono note le quantità di risorse necessarie per produrre una unità di ciascun possibile prodotto: per produrre una unità del prodotto i-mo si utilizzano aij unità della risorsa j-ma (nell’ipotesi di linearità questo coeff. resta costante)

• Agli n prodotti sono associati i profitti unitari c1,..., cn (profitto per unitàdi prodotto, ipotizzando tutta la produzione venga venduta, ovvero chevincolando la produzione ad una domanda supposta costante e nota)

22

LP – Il problema della produzione (Product Mix)

Formulazione ed interpretazione del problema

n,...,1ix

n,...,1i0x

m,...,1jbxa

xcmax

i

i

jn

1iiij

n

1iii

=∈=≥

=≤∑

=

=

R

Variabili

• xi quantità di prodotto i-mo

• continue (?) e positive

Vincoli

• la quantità totale di ogni risorsa utilizzata nella produzione non può superarela disponibilità massima

Obiettivo

• il ricavo totale della produzione

Page 12: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

23

LP – Il problema della produzione (Product Mix)Formulazione ed interpretazione del problema• E’ un PL in forma canonica di massimizzazione

• A è detta matrice tecnologica

• All’ipotesi di condizioni deterministiche (parametri costanti) si risponde con l’Analisi di Post-ottimalità

• Esempi ed interpretazione:2 prodotti 3 risorse (simplesso sul tableau + analisi grafica nel piano dei prodotti)

Uso di pacchetti sw (Excel, Lindo, Lingo)

4 prodotti e 3 risorse

4 prodotti e 2 risorse (simplesso con sw + analisi grafica nel piano delle risorse)

n

T0

Rx

0x

bxA

xcxmax

≥≤=

24

LP – Il problema della produzione (Product Mix)Esempio 1

0x,0x

2x

8xx2

6x2x

x2x3xmax

21

2

21

21

210

≥≥≤

≤+≤+

+=

(3)

(2)

(1)

x1

1 2 3 4 5 6

1

2

3

(2)

(3)

(1)A

E

D

B C

x2

x0=0

Page 13: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

25

LP – Il problema della produzione (Product Mix)Esempio 1: Forma Standard

5,...,1i0x

2xx

8xxx2

6xx2x

x2x3xmax

i

52

421

321

210

=≥=+=++=++

+=

(3)

(2)

(1)

x1

1 2 3 4 5 6

1

2

3

(2) x4

(3) x5

(1) x3

A

E

D

B C

x2

x0=0

26

LP – Il problema della produzione (Product Mix)Esempio 1: Il tableau• Base iniziale formata dalle slack

• Il Tableau iniziale

• 1a iterazione: X1 entra ed x4 esce (dal vertice A al vertice ???; eseguire i calcoli ....)

=

=

2

8

6

x

x

x

x

5

4

3

B

210010x

801012x

600121x

000023x

xxxxx

5

4

3

0

54321

−−

Page 14: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

27

LP – Il problema della produzione (Product Mix)Esempio 1: Il tableau

• Il Tableau dopo la prima iterazione

• 2a iterazione: X2 entra ed x3 esce (dal vertice ??? al vertice ???; eseguire i calcoli ....)

210010x

402/102/11x

202/112/30x

1202/302/10x

xxxxx

5

1

3

0

54321

−−

28

LP – Il problema della produzione (Product Mix)Esempio 1: Il tableau

• Il Tableau dopo la seconda iterazione

• Il tableau è ottimo

• La soluzione ottima

3/213/13/200x

3/1003/23/101x

3/403/13/210x

3/3803/43/100x

xxxxx

5

1

2

0

54321

−−

=

=

3/2

3/10

3/4

x

x

x

x

5

1

2*B 0

x

xx

4

3*N =

=

Page 15: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

29

LP – Il problema della produzione (Product Mix)Esempio 1: Domande

• Cosa succede alla soluzione se il poliedro fosse aperto?Provare con

• Come si riconosce il caso di più soluzioni ottime equivalenti?Provare con

0x,0x

2x

x3xxmax

21

2

210

≥≥≤

+=

0x,0x

2x

8x2x3

6x2x

x2x3xmax

21

2

21

21

210

≥≥≤

≤+≤+

+=

30

LP – Il problema della produzione (Product Mix)

Esempio 1: Uso di software per la soluzione di PL

• Excel (Solver)

• Esempi grafici (2D) (caso di sol. illimitata e problema non amm.)

• Lindo

• Lingo (formulazione simbolica)

Esempio 2: 4 prodotti e 3 risorse

4,...,1i0x

100x15x10x4x3

120x2x3x5x7

16xxxx

x11x9x5x4xmax

i

4321

4321

4321

43210

=≥≤+++

≤+++≤+++

+++=

Page 16: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

31

LP – Il problema della produzione (Product Mix)

Interpretazione economica• Funzione Obiettivo Curva Isoguadagno

• Vincoli Saturi (binding constraints) Risorse ScarseSlack nulleConverrebbe aumentarne la disponibilità e se sì cosa accadrebbe?

• Vincoli non saturi Risorse abbondantiSlack positiveConverrebbe aumentarne la disponibilità e se sì cosa accadrebbe?

• Domande di carattere economico/gestionale conseguenti alla soluzione:

Vi sono risorse non utilizzate? Posso diminuire lo spreco?Ci sono risorse che mi converrebbe acquisire ulteriormente? Quali e con che priorità?Di quanto ha senso aumentare la disponibilità delle risorse?Che accade se variano i ricavi per i miei prodotti, ovvero quanto è robusta la soluzione?

32

LP – L’analisi di sensitività (post-ottimalità)

L’analisi di sensitività consente di valutare gli effetti di piccole variazioni dei parametri rispetto la soluzione ottima del problema (variazioni marginali)

I casi che vedremo:

• Range di variazione della disponibilità delle risorseAumento di risorse scarseDiminuzione di risorse abbondanti

• Range di variazione dei coeff. di guadagno • Effetti causati dall’acquisizione di nuove risorse• Effetti causati da produzione diversa dall’ottimo (prodotto non

conveniente, nuovo prodotto)

Teoria necessaria: definizione di alcune grandezze e la teoria della dualità

Page 17: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

33

LP – Definizione di alcune grandezze

Coefficienti di costo ridotto r = (rj, j∈ R)• Sono i coeff. delle variabili fuori base nella riga della f.ob. nel

tableau = y0j j∈ R

• Consideriamo un tableau in forma matriciale ed il caso in cui la base iniziale è formata da slack

bAIs

0c0x

xsTT

0 −bNBIs

0cc0x

xxsTN

TB

T0

NB

−−

bBNBIBx

bBccNBc0Bcx

xxs

111B

1TB

TN

1TB

T1TB0

NB

−−−

−−− −

34

LP – Definizione di alcune grandezze

Coefficienti di costo ridotto r = (rj, j∈ R)

• Corrispondono a

e la condizione di ottimalità è rj≥0 j∈ R

Domanda: che significato ha la presenza di almeno un rj=0 nel tableau ottimo?

I moltiplicatori del simplesso π= (πj, j∈ R)

• Corrispondono a

Osservazioni sul tableau ottimo• I moltiplicatori del simplesso sono parte degli r e si riducono agli r

corrispondenti alle slack fuori base

• Se la base iniziale era costituita da slack, le colonne delle slack all’ottimo contengono B-1

jj1T

Bj caBcr −= −

1TBBc −=π

Page 18: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

35

LP – La Teoria della Dualità

Ad ogni problema di PL (Primale) è associato unproblema Duale

Problema Primale (P)

mnmn11m

1nn1111

nn11

bxaxa

bxaxa

.t.s

xcxcmax

≤++

≤++

++

L

M

L

L

Problema Duale (D)

nmmn1n1

1m1m111

mm11

cyaya

cyaya

.t.s

ybybmin

≥++

≥++

++

L

M

L

L

(n variabili, m vincoli) (m variabili, n vincoli)

36

Il problema D ha tante variabili quanti sono i vincolidi P e tanti vincoli quante sono le variabili di P.

In forma matriciale:

n

T

x

0x

bxA

xcmax)P(

R∈

≥≤

m

T

T

y

0y

cyA

ybmin)D(

R∈

≥≥

LP – La Teoria della Dualità

Page 19: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

37

Forma simmetrica della dualitàregole di trasformazione

(P) (D)

max ⇒ min vincoli ≥

min ⇒ max vincoli ≤

LP – La Teoria della Dualità

38

Duale di un Primale con vincoli di uguaglianza:

n

T

x

0x

bxA

xcmax)P(

R∈

≥=

m

T

T

y

libere.vary

cyA

ybmin)D(

R∈

LP – La Teoria della Dualità

Infatti: bxA = equivale a

−≤−⇒≥≤

bxAbxA

bxA

introducendo 2m variabili duali, u e ve sostituendo y= u - v si ottiene (D)

m

TT

TT

v,u

0v0u

cvAuA

)vbub(min

R∈

≥≥≥−

Page 20: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

39

Forma non simmetrica della dualità: regoledi trasformazione

(P) (D)

max ⇒ min vincoli ≥

min ⇒ max vincoli ≤

vincolo = ⇒ var. libera

var. libera ⇒ vincolo =

Le trasformazioni sono reversibili: il duale del duale è il primale.

LP – La Teoria della Dualità

40

La teoria della Dualità è importante perchè:

le soluzioni di P e D sono legate tra loro

le soluzioni duali hanno un’interpretazione economica utile

per l’analisi di sensitività (post-ottimalità);

sulla teoria della dualità sono basati algoritmi, quali il

Simplesso Duale e l’Algoritmo Primale-Duale, alternativi al

Simplesso (Primale) utili per certe classi di problemi;

può in certi casi essere conveniente risolvere D al posto di P

(conviene risolvere il problema con il minor numero di vincoli)

LP – La Teoria della Dualità

Page 21: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

41

LP – La Teoria della Dualità: risultati fondamentali

Consideriamo la coppia di problemi (P) e (D)

0x

bxA

xcmin)P( T

≥≥

0y

cyA

ybmax)D(

T

T

≥≤

1. Teorema (debole) della dualità

Siano x e y soluzioni ammissibili rispettivamente per (P) e (D),

alloraybxc TT ≥

42

Dimostrazione:

y soluzione A y c

x A y x c x

T

T T T

⇒ ≤

≥ ⇒ ≤0 ( )

x soluzione A x b

y A x y b yT T

⇒ ≥

≥ ⇒ ≥0 ( )

c x A y x x A y A x y b yT T T T T T T≥ = = ≥( ) ( )

LP – La Teoria della Dualità: risultati fondamentali

Corollario

Se (P) è illimitato ⇒ (D) non è ammissibile

Se (D) è illimitato ⇒ (P) non è ammissibile

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

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

Page 22: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

43

2. Teorema (forte) della dualità

Se (P) e (D) ammettono soluzione ottima finita, allora per ogni ottimo x* per (P) esiste una soluzione ottima y* per (D) tale che

*T*T ybxc =

Dal Teorema della dualità forte si ricava valore della soluzione

ottima di (D) corrispondente alla soluzione ottima di (P)

1TB

T* Bcy −=

=

=

0

bB

x

xx1

*N

*B*

bBcxcxc 1TB

*B

TB

*T −==

*T1TB ybbBc =−

LP – La Teoria della Dualità: risultati fondamentali

44

LP – La Teoria della Dualità: risultati fondamentali

Osservazioni• La base B è ottima per (P) e per (D).

• Una base B ammissibile per (P) corrisponde ad una base ammissibile per (D) solo se B è ottima.

0bBXx 1 ≥⇒∈ −

1TB

T Bcy −=

0x0x

bxNxB

xcxcmax

NB

NB

NTNB

TB

≥≥=+

+(P) (D)

libere.vary

cNy

cBy

ybmin

TN

T

TB

T

T

≥≥⇒∈ −

TN

1TB

TB

1TBT

cN)Bc()b

cB)Bc()aYy

Page 23: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

45

LP – La Teoria della Dualità: risultati fondamentali

Osservazioni• La base B è ottima per (P) e per (D).

• Una base B ammissibile per (P) corrisponde ad una base ammissibile per (D) sono se B è ottima.

≥⇒∈ −

TN

1TB

TB

1TBT

cN)Bc()b

cB)Bc()aYy

0cNBc)b

cc)a

TN

1TB

TB

TB

≥−

(vera sempre)

Rj0caBc jj1T

B ∈≥−−

sono le condizioni di ottimalità su costi ridotti di (P)

46

LP – La Teoria della Dualità: risultati fondamentali

Osservazioni

• Solo in corrispondenza dell’ottimo dalla base B

ammissibile per (P) si ottiene una soluzione ammissibile

per (D) (che è anche ottima).

• Ad una generica iterazione del simplesso dalla base di

(P) si può costruire il vettore dei moltiplicatori del

simplesso che non è soluzione di (D).

Qual è il significato economico del problema

duale? Cosa rappresentano le variabili duali?

Page 24: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

47

LP – La Dualità: interpretazione economica

Consideriamo:

• un problema (P)

• la soluzione (non degenere)

• ed una piccola variazione ∆b>0 di b non cambia la base

ottima B

0x

bxA

xcmax T

≥≤

0x0

bB

x

xx *B

1

*N

*B* >

=

=

∆+=

∆+=−

0

)bb(B

x

xxx1

*N

*B

*B*

48

LP – La Dualità: interpretazione economica

Come cambia il valore dell’obiettivo?

• Varia della variazione delle risorse per il valore della

soluzione ottima duale !

• Allora y* può essere interpretato come il prezzo (valore)

marginale delle risorse (b) poichè indica qual è la

variazione dell’obiettivo (guadagno) conseguente ad

una maggior disponibilità delle risorse.

• I valori duali ottimi sono anche detti prezzi ombra

byxbBcx)bb(BcxT*

01T

B01T

B0 ∆=∆⇒∆=∆⇒∆+= −−

Page 25: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

49

LP – La Teoria della Dualità: risultati fondamentali

Lo scarto complementare (complementary

slackness)

• Consideriamo una coppia (P), (D)

0x

bxA

xcmax T

≥≤

slackdi.varm0s

.varn0x

bsIxA

≥≥

=+

0y

cyA

ybmin

T

T

≥≥

surplusdi.varn0v

.varm0y

cvIyAT

≥≥

=−

(P)

(D)

Ad ogni variabile di (D) è associato un vincolo di (P) e quindi lacorrispondente variabile di slack e viceversa.

50

LP – La Teoria della Dualità: risultati fondamentali

Lo scarto complementare (complementary

slackness

3. Teorema della slackness complementare

Data la coppia di soluzioni x e y rispettivamente ammissibiliper (P) e (D), x e y sono ottime per (P) e (D) se e solo se

dove aj è il vettore riga j-esima di A

ai è il vettore colonna i-esima di A

n,,1i0x)cya(xv

m,,1j0y)xab(ys

iiTiii

jj

jjj

K

K

==⋅−=⋅

==⋅−=⋅

Page 26: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

51

LP – La Teoria della Dualità: risultati fondamentali

Lo scarto complementare (complementary

slackness

• Il teorema stabilisce che

(vincolo duale saturo: vi=0)

(vincolo duale non saturo: vi>0)

(vincolo primale saturo: sj=0)

(vincolo primale non saturo: sj>0)0ybxa.d

bxa0y.c

0xcya.b

cya0x.a

jjj

jj

j

iiTi

iTii

=⇒<

=⇒>

=⇒>

=⇒>

52

LP – La Dualità: interpretazione economica

Il problema del Product Mix• Stabilire i livelli ottimi di produzione per un insieme di prodotti in

modo da massimizzare il profitto ricavato dalla loro vendita,

rispettando la disponibilità limitata delle risorse necessarie alla

produzione

0x

bxA

xcmax T

≥≤

(P)xi livello di produzione del prodotto i-mo

ci profitto per unità di prodotto i-mo

bj disponibilità della risorsa j-ma

aij quantità di risorsa j-ma necessaria per

produrre un’unità di prodotto i-mo

j-mo vincolo di (P)

jj bxa ≤ il consumo totale di risorsa j-ma non

supera la sua disponibilità massima

Page 27: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

53

LP – La Dualità: interpretazione economica

Il duale del problema del Product Mix• Avendo scelto di vendere le risorse produttive, determinare il loro

prezzo minimo, imponendo che la loro vendita sia almeno tanto

conveniente che vendere i beni prodotti con le risorse

(D)

i-mo vincolo di (D) il valore di una unità di prodotto i-mo, calcolato

considerando le risorse necessarie per produrlo e

il loro prezzo minimo, deve superare il prezzo

unitario di vendita del prodotto stesso

0y

cyA

ybmin

T

T

≥≥

yj prezzo minimo a cui vendere la j-ma risorsa ci profitto per unità di prodotto i-mobj disponibilità della risorsa j-maaij quantità di risorsa j-ma necessaria per

produrre un’unità di prodotto i-mo

iTi cya ≥

54

LP – La Dualità: interpretazione economica

Interpretazione economica della slackness complementare

• Primale:

Il valore delle risorse (il valore ottimo delle variabili duali) è positivo

solamente quando le risorse sono utilizzate completamente (risorse

scarse), ovvero quando sono nulle le variabili di slack associate ai

vincoli corrispondenti

• Duale

Il livello di produzione dei prodotti (il valore ottimo delle variabili primali)

è positivo solamente quando il profitto unitario che si ricava dalla loro

vendità è pari a quanto si ricaverebbe vendendo le risorse necessarie

alla produzione al loro prezzo minimo (condizione di bilancio

economico), ovvero quando il surplus di guadagno unitario della

vendita delle risorse rispetto la produzione dei prodotti è nullo

0ysxabs jjj

jj =⇒−=

0vxcyav iiiTii =⇒−=

Page 28: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

55

LP – La Dualità: interpretazione economica

Il problema della Dieta (blending)• Determinare la dieta bilanciata più economica avendo la possibilità

di acquistare n diversi cibi. Una dieta è bilanciata se soddisfa i livelliminimi giornalieri di calorie e di altri elementi nutrizionali (e.g.,proteine, calcio, ferro, vitamine). Quindi determinare la quantità che deve essere acquistata per ciascun cibo, minimizzando la spesa complessiva e soddisfacendo i livelli nutrizionali minimi

(P)

j-mo vincolo di (P)

jj bxa ≥

0x

bxA

xcmin T

≥≥

xi quantità di cibo i-mo da acquistareci costo per unità di cibo i-mobj livello minimo per l’elemento nutriz. j-moaij quantità di elemento nutrizionale j-mo

presente in una unità di cibo i-mo

la quantità complessiva dell’elemento nutriz. j-ma fornita dai cibi acquistati deve essere almeno pari al relativo livello minimo.

56

LP – La Dualità: interpretazione economica

Il duale del problema della Dieta• Volendo acquistare singolarmente gli m elementi nutrizionali (e.g.,

in pillole) per ottenere la dieta bilanciata, determinare il massimo prezzo per i singoli elementi in modo che il loro acquisto sia competitivo rispetto quello dei cibi contenenti tali elementi

(D)

i-mo vincolo di (D)

0y

cyA

ybmax

T

T

≥≤

yj prezzo massimo a cui acquistare il j-mo elemento nutriz.

ci costo per unità di cibo i-mobj livello minimo per l’elemento nutriz. j-moaij quantità di elemento nutriz. j-mo presente

in una unità di cibo i-mo

iTi cya ≤

il prezzo unitario del cibo i-mo “sintetico” (il prezzo della quantità di elementi nutriz.forniti da una unità di cibo i-imo) deve non superare il prezzo reale del cibo i-mo

Page 29: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

57

LP – L’analisi di post-ottimalità

Consideriamo un problema di PL con soluzione ottima x* e

base ottima associata B, determinare con quali condizioni

possono variare certi coefficienti del problema lasciando

invariata la base ottima.

Considereremo tre casi:

a) variazione di un coefficiente della funzione obiettivo associato ad

una variabile fuori base (cN)

b) variazione di un coefficiente della funzione obiettivo associato ad

una variabile in base (cB)

c) variazione del termine noto di un vincolo (b)

0x

bxA

xcmax T

≥=

58

LP – L’analisi di post-ottimalità

Casi (a) e (b): variazione dei prezzi di vendita dei prodotti

• (a) – grafico nel piano dei prodotti

all’ottimo x2 è fuori base

x1

1 2 3 4 5 6

1

2

3

A

E

D

B C

x2

il coeff.angolare dell’obiettivo è2

1cc−

c1 diminuisce

c2 aumenta

E diventa sol. ottima ⇒ x2 entra in base

Page 30: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

59

LP – L’analisi di post-ottimalità

Casi (a) e (b): variazione dei prezzi di vendita dei prodotti• (a) – analitico

Sia ck, k∈ R, il coefficiente che viene variato. Il coefficiente dicosto ridotto associato alla k-esima variabile fuori base èpositivo poichè la base è ottima e variando ck varia rk

Perchè la soluzione corrente resti ottima il nuovo valore di rk

deve rimanere positivo (altrimenti la variabile fuori baseassociata sarebbe candidata ad entrare in base)

0caycaBcr kk*

kk1T

BkT

≥−=−= −

)c(ayr̂cc kk*

kkkT

δ+−=⇒δ+←

⇒−≤δ⇒≥δ+−⇒≥ kk*

kk*

k cay0)c(ay0r̂TT

kr≤δ

60

LP – L’analisi di post-ottimalità

Casi (a) e (b): variazione dei prezzi di vendita dei prodotti

• (b) – grafico nel piano dei prodotti

all’ottimo x2 è in base

x1

1 2 3 4 5 6

1

2

3

A

E

D

B C

x2

il coeff.angolare dell’obiettivo è2

1cc−

c1 diminuisce

c2 aumenta

c1aumenta

c2 diminuisce

C diventa sol. ottima ⇒ la base cambia

D diventa sol. ottima⇒ x2 esce di base

Page 31: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

61

LP – L’analisi di post-ottimalità

Casi (a) e (b): variazione dei prezzi di vendita dei prodotti• (b) – analitico

Sia cBi, i=1,...,m , il coefficiente che viene variato. La variazione modifica tutti gli rk delle var. fuori base che devono restare positivi perché la base non cambi

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

RkcaBcr kk1T

Bk ∈−= −

iBBBB eccccii

δ+←⇒δ+←

)moi(

0

1

0

ei −

=M

M

k1T

ikk1T

Bk aBecaBcr̂ −− δ+−= i11Ti )B(Be −− =

k0a)B(rr̂ ki1

kk ∀≥δ+= −

62

LP – L’analisi di post-ottimalitàCaso (c): variazione della disponibilità delle risorse• Due possibilità

(1)aumentare le risorse scarse per migliorare l’obiettivo

(2) ridurre le risorse abbondanti lasciando invariato l’obiettivo

• (c) – grafico nel piano dei prodotti

x1

1 2 3 4 5 6

1

2

3(2) x4

(3) x5

A

E

D

B C

x2

(1) x3

b2 (scarsa) aumenta

D’L

Page 32: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

63

LP – L’analisi di post-ottimalitàCaso (c): variazione della disponibilità delle risorse• Due possibilità

(1)aumentare le risorse scarse per migliorare l’obiettivo

(2) ridurre le risorse abbondanti lasciando invariato l’obiettivo

• (c) – grafico nel piano dei prodotti

x1

1 2 3 4 5 6

1

2

3(2) x4

(3) x5

A

E

D

B C

x2

(1) x3

b3 (abb.) diminuisce

64

LP – L’analisi di post-ottimalità

Caso (c): variazione della disponibilità delle risorse• (c) – analitico

Sia bi, i=1,...,m , il termine noto del i-mo vincolo che viene variato

A causa di tale variazione si modificano i valori delle variabili di base

• Come si effettua questa analisi usando il tableau ottimo (caso particolare)?

i11

i1

Bii )B(bB)eb(Bx̂bb −−− δ+=δ+=⇒δ+←

i1

i1 )B(eB −− = colonna i-ma di B-1

0)B(xx̂ i1

BB ≥δ+= −

i1

BB )B(xx̂ −δ+=⇒

Page 33: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

65

LP – L’analisi di post-ottimalità

Un esempio

0x,0x

2x

8xx2

6x2x

x2x3xmax

21

2

21

21

210

≥≥≤

≤+≤+

+=

5,...,1i0x

2xx

8xxx2

6xx2x

x2x3xmax

i

52

421

321

210

=≥=+=++=++

+=

210010x

801012x

600121x

000023x

xxxxx

5

4

3

0

54321

−−

3/213/13/200x

3/1003/23/101x

3/403/13/210x

3/3803/43/100x

xxxxx

5

1

2

0

54321

−−

il tableau iniziale il tableau ottimo

66

LP – L’analisi di post-ottimalità

Un esempio

• in questo caso i coeff. ck che moltiplicano le var. fuori base sono tutti nulli, e le corrispondenti colonne ak della matrice N sono ivettori ek, i coeff. di costo ridotto nel tableau ottimo forniscono direttamente il valore dell’ottimo duale

3/213/13/200x

3/1003/23/101x

3/403/13/210x

3/3803/43/100x

xxxxx

5

1

2

0

54321

−−

−B-1

=

101

021

012

B

*kk

T*k

1TBkk

1TBk yeyeBccaBcr ===−= −−

[ ]03431yT* =⇒ (... perché y3

*=0 ?)

Page 34: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

67

LP – L’analisi di post-ottimalità

Un esempio

• Caso (a) – coeff. dell’obiettivo di una var. fuori base

variazione di c3: (inizialmente c3=0 - slack) c3 ← c3+ δ

variazione di c4: (inizialmente c4=0 - slack) c4 ← c4+ δ

Interpretazione economica?

3/213/13/200x

3/1003/23/101x

3/403/13/210x

3/3803/43/100x

xxxxx

5

1

2

0

54321

−−

31

c31

r 33 ≤≤∞−⇒≤δ⇒≤δ

34

c34

r 44 ≤≤∞−⇒≤δ⇒≤δ

68

LP – L’analisi di post-ottimalità

Un esempio• Caso (b) – coeff. dell’obiettivo di una var. in base

variazione di c1: (inizialmente c1=3) c1 ← c1+ δ

Interpretazione economica?

3/213/13/200x

3/1003/23/101x

3/403/13/210x

3/3803/43/100x

xxxxx

5

1

2

0

54321

−−

20r̂

10r̂

32

34

4

31

31

3

−≥δ⇒≥δ+=

≤δ⇒≥δ−=4c1 1 ≤≤⇒

Page 35: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

69

LP – L’analisi di post-ottimalità

Un esempio• Caso (b) – coeff. dell’obiettivo di una var. in base

variazione di c2: (inizialmente c2=2) c2 ← c2+ δ

Interpretazione economica?

3/213/13/200x

3/1003/23/101x

3/403/13/210x

3/3803/43/100x

xxxxx

5

1

2

0

54321

−−

40r̂

0r̂

31

34

4

21

32

31

3

≤δ⇒≥δ−=

−≥δ⇒≥δ+=6c

23

2 ≤≤⇒

70

LP – L’analisi di post-ottimalità

Un esempio• Caso (b) – coeff. dell’obiettivo di una var. in base

variazione di c5: (inizialmente c5=0 - slack) c5 ← c5+ δ

Interpretazione economica?

3/213/13/200x

3/1003/23/101x

3/403/13/210x

3/3803/43/100x

xxxxx

5

1

2

0

54321

−−

40r̂

0r̂

31

34

4

21

32

31

3

−≥δ⇒≥δ+=

≤δ⇒≥δ−=

21

c4 5 ≤≤−⇒

Page 36: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

71

LP – L’analisi di post-ottimalità

Un esempio• Caso (c) – variazione della disponibilità delle risorse

Due possibilità:

c.1) aumentare la disponibilità delle risorse scarse (b1 e b2)

c.2) diminuire l’eccesso di risorse abbondanti (b3)

• Caso (c.1)

variazione di b1: (inizialmente b1 =6) b1 ← b1 + δ

Interpretazione economica?

3/213/13/200x

3/1003/23/101x

3/403/13/210x

3/3803/43/100x

xxxxx

5

1

2

0

54321

−−

−10x̂

100x̂

20x̂

32

32

5

31

310

1

32

34

2

≤δ⇒≥δ−=

≤δ⇒≥δ−=

−≥δ⇒≥δ+=

7b4 1 ≤≤⇒(NB: possibile perché il tableau contiene B-1)

72

LP – L’analisi di post-ottimalità

Un esempio• Caso (c) – variazione della disponibilità delle risorse

Due possibilità:

c.1) aumentare la disponibilità delle risorse scarse (b1 e b2)

c.2) diminuire l’eccesso di risorse abbondanti (b3)

• Caso (c.1)

variazione di b2: (inizialmente b2 =8) b2 ← b2 + δ

Interpretazione economica?

3/213/13/200x

3/1003/23/101x

3/403/13/210x

3/3803/43/100x

xxxxx

5

1

2

0

54321

−−

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

20x̂

50x̂

40x̂

31

32

5

32

310

1

31

34

2

−≥δ⇒≥δ+=

−≥δ⇒≥δ+=

≤δ⇒≥δ−=

12b6 2 ≤≤⇒

Page 37: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

73

LP – L’analisi di post-ottimalità

Un esempio• Caso (c) – variazione della disponibilità delle risorse

Due possibilità:

c.1) aumentare la disponibilità delle risorse scarse (b1 e b2)

c.2) diminuire l’eccesso di risorse abbondanti (b3)

• Caso (c.2)

variazione di b3: (inizialmente b3 =2) b3 ← b3 + δ

Interpretazione economica?

3/213/13/200x

3/1003/23/101x

3/403/13/210x

3/3803/43/100x

xxxxx

5

1

2

0

54321

−−

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

34

b3 ≥⇒

32

032

x̂5 −≥δ⇒≥δ+=

74

LP – L’analisi di post-ottimalità

Un esempio – Il valore delle risorse• Per i vincoli sul consumo delle risorse si ha

• Conviene aumentare le risorse scarse

• Marginalmente la f.ob. cresce del valore delle risorse (il valore delle var. duali ottime yj

*)

• Il valore delle risorse abbondanti è nullo (yj*=0)

• Conviene aumentare per prima la risorsa scarsa a cui è associatoil valore maggiore

Vincolo saturo Risorsa scarsa(slack nulla) (var.duale ottima positiva)

Vincolo non saturo Risorsa abbondante(slack positiva) (var.duale ottima nulla)

Page 38: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

75

LP – L’analisi di post-ottimalità

Un esempio – Il valore delle risorse• Nell’esempio i valori duali si possono leggere direttamente sul

tableau ottimo

questo è caso particolare, ... perché?

3/213/13/200x

3/1003/23/101x

3/403/13/210x

3/3803/43/100x

xxxxx

5

1

2

0

54321

−−

76

LP – L’analisi di post-ottimalità

Esempi con software• Excel

• Lindo

Page 39: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

77

LP – L’analisi di post-ottimalità

Osservazioni finali

• Se si diminuisce (entro i limiti calcolati) una risorsa

abbondante la soluzione non cambia

• Cosa succede se invece si scoprisse di avere una

disponibilità inferiore di una risorsa scarsa?

• Quali valutazioni possiamo fare nel caso di:

introduzione di un nuovo prodotto

variazione della tecnologia

...?

• L’analisi di post-ottimalità è un processo locale (la sua

validità è limitata ad un intorno della soluzione ottima)

78

LP – I problemi a numeri interi e misti

Molti problemi decisionali richiedono l’uso di variabili

intere per rappresentare alternative discrete

Questo tipo di problemi si chiamano combinatorici

In qualche caso può essere ragionevole “rilassare” il

problema considerando le variabili come reali

Attraverso l’uso di variabili binarie (0-1) è possibile

modellare condizioni logiche

• XA=1 si verifica l’evento A (e.g., compro il prodotto, affitto una

macchina, passo per la strada A, ...)

• XA=0 non si verifica l’evento A

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

Page 40: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

79

LP – I problemi a numeri interi e misti

Esempi di formulazioni con variabili binarie

• Knapsack Problem

n possibili progetti possibili da realizzare

b budget massimo disponibile

aj investimento necessario al progetto j

cj guadagno ricavato dal progetto j

i progetti non possono essere realizzati parzialmente (o tutto o nulla)

problema: cosa finanziare per massimizzare il guadagno?

Knapsack binario

(xj=1 finanzio il progetto j)

{ } n,...,1j1,0x

bxa

xcmax

j

n

1jjj

n

1jjj

=∀=∈

≤∑

=

=

B

80

LP – I problemi a numeri interi e misti

Esempi di formulazioni con variabili binarie

• Matching Problem (assegnazione)

m attività da assegnare ad n processori (macchine, persone,...)

ogni processore può eseguire una sola attività

l’attività non è interrompibile

cij costo dell’assegnazione di i a j

problema: assegnare tutte le attività a costo minimo

Matching binario

(xij=1 assegno i a j)

{ } n,...,1jm,...,1i1,0x

n,...,1j1x

m,...,1i1x

xcmin

ji

m

1iij

n

1jij

n

1jijij

m

1i

=∀=∀=∈

=∀≤

=∀=

∑∑

=

=

==

B

Page 41: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

81

LP – I problemi a numeri interi e misti

Esempi di formulazioni con variabili binarie

• Trattamento di vincoli disgiuntivi (il caso del Sequencing Problem)

sequenziare un insieme di task su un singolo processore

il processore esegue un task alla volta senza interruzione

pi processing time del task i

problema: come scrivere i vincoli che garantiscono una sequenza ammissibile?

ti∈ R+, l’istante inizio esecuzione di i.

Dati due task i e j, si possono verificare due casi:

1. i precede j ⇒ tj ≥ ti + pi

2. j precede i ⇒ ti ≥ tj + pj

Sono vincoli mutuamente esclusivi (disgiuntivi) ....

82

LP – I problemi a numeri interi e misti

Esempi di formulazioni con variabili binarie

• Trattamento di vincoli disgiuntivi (il caso del Sequencing Problem)

si introduce una variabile binaria e si utilizza il big-M

in questo modo si è condizionato reciprocamente il comportamento di una variabile binaria con delle variabili continue

=iprecedej0

jprecedei1yij

ijjji

ijiij

Myptt

)y1(Mptt

−+≥

−−+≥

Page 42: Metodi e Modelli di Programmazione Lineare · LP – L’algoritmo del simplesso (simplex) Il Simplesso (in forma algebrica) 1. Inizializzazione Determinare una soluzione di base

83

LP – I problemi a numeri interi e misti

La soluzione dei problemi a numeri interi (Integer

Programming, IP)

• I problemi IP e MIP sono generalmente difficili (NP-hard)

• In alcuni (pochi) casi la soluzione “rilassata” è intera

• In generale si possono usare tre tipi di metodi di soluzione:

1. Metodi basati su una enumerazione implicita delle soluzioni

(Branch and Bound Methods)

2. Metodi basati sull’uso di “piani di taglio” (Cutting Planes Methods)

3. Metodi specifici per particolari classi di problemi