LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007....

28
LA PROGRAMMAZIONE LINEARE Franca Rinaldi Dipartimento di Matematica e Informatica Universit` a degli Studi di Udine A.A. 2005 / 2006

Transcript of LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007....

Page 1: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

LA PROGRAMMAZIONE LINEARE

Franca Rinaldi

Dipartimento di Matematica e Informatica

Universita degli Studi di Udine

A.A. 2005 / 2006

Page 2: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

1 Introduzione

In un problema di programmazione lineare (PL) si vuole ottimizzare, cioe

minimizzare o massimizzare, una funzione obiettivo lineare

cx =n∑j=1

cjxj

sotto il vincolo che il vettore di variabili x = (x1, . . . , xn) ∈ IRn soddisfi un

assegnato insieme finito di vincoli lineari

Aix =n∑j=1

Aijxj ≤ (=, ≥) bi i = 1, . . . ,m.

L’importanza della programmazione lineare nell’ambito dell’ottimizzazione

si deve a due aspetti fondamentali. Da un lato la PL offre un modello for-

male per una ampia varieta di problemi che emergono in ambito applicativo,

ed in particolare nel contesto della gestione dei sistemi di produzione, di

distribuzione, di trasporto ecc., dall’altro rappresenta un elemento centrale

nella definizione di approcci risolutivi per problemi di programmazione li-

neare intera, e quindi, in particolare, per una larga varieta di problemi di

ottimizzazione combinatoria NP -hard.

2 Forme canoniche

Un problema di PL puo essere espresso senza perdita di generalita in una

delle due forme

forma canonica : min cx (1)

Ax ≥ b (2)

x ≥ 0 (3)

forma standard min cx (4)

Ax = b (5)

x ≥ 0 (6)

dove A e una matrice m×n detta matrice dei vincoli, c ∈ IRn e il vettore dei

costi e b ∈ IRm il vettore dei termini noti.

La riformulazione di un generico problema di programmazione lineare P in

forma canonica utilizza le seguenti semplici operazioni:

1

Page 3: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

- ogni vincolo Aix ≤ bi viene riscritto nella forma −Aix ≥ −bi;

- ogni vincolo di eguaglianza Aix = bi viene sostituito con la coppia di

vincoli Aix ≥ bi e −Aix ≥ −bi;

- per ogni variabile xj libera, cioe non soggetta al vincolo di non negativita,

si introducono due nuove variabili x+j , x

−j ≥ 0 e si opera la sostituzione

xj = x+j − x−j .

E facile riconoscere che al variare di x+j , x

−j in IR+, xj puo assumere qualsiasi

valore reale.

Per esprimere un problema di programmazione lineare P in forma standard

e necessario riformulare eventuali vincoli di diseguaglianza come vincoli di

eguaglianza. A tale scopo, per ogni vincolo di diseguaglianza Aix ≤ bi (Aix ≥bi) viene introdotta una nuova variabile si ≥ 0 di costo nullo, detta variabile

di slack, ed il vincolo viene sostituito con Aix + si = bi (Aix − si = bi).

La variabile di slack si “misura” lo scostamento della soluzione x dal vincolo

corrispondente e la condizione di non negativita su si assicura l’ammissibilita

di x rispetto al vincolo originale. La variabile di slack si annulla se e solo se

tale vincolo e soddisfatto da x come eguaglianza.

Si noti che, sebbene le precedenti operazioni possano modificare il numero

di variabili e/o di vincoli del problema P , il problema P ′ che ne deriva risulta

equivalente a quello iniziale, nel senso che ogni soluzione ammissibile x di Pcorrisponde ad almeno una soluzione x′ di P ′ dello stesso costo e viceversa.

Quindi la soluzione x e ottima per P se e solo se x′ e ottima per P ′ ed i valori

ottimi dei due problemi sono uguali.

Infine, si noti che ogni problema di massimizzazione max{cx : x ∈ X} e

equivalente al problema di minimizzazione −min{−cx : x ∈ X}.

3 Geometria della PL

Ogni vincolo lineare Aix ≥ bi (Aix ≤ bi) definisce un semispazio chiuso di

IRn la cui frontiera e costituita dall’iperpiano Aix = bi. Tale iperpiano e

normale al vettore Ai ed Ai e diretto all’interno (all’esterno) del semispazio.

L’insieme di ammissibilita di un problema di PL, essendo intersezione di un

numero finito di semispazi e, per definizione, un poliedro. Si ricorda che un

punto di un poliedro P si dice un vertice se non puo essere espresso come

combinazione convessa propria di altri punti di P o, equivalentemente, se e

una faccia di dimensione 0 di P . Ancora, d ∈ Rn si dice una direzione di P

se x + αd ∈ P per ogni x ∈ P e α ≥ 0. Una direzione di P e una direzione

2

Page 4: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

estrema di P se non puo essere espressa come combinazione conica propria

di altre direzioni di P o, equivalentemente, se esiste uno spigolo S di P tale

che S = {x : x = x+ αd, α ≥ 0} per un opportuno x ∈ P .

Il teorema che segue fornisce una caratterizzazione dei vertici e delle dire-

zioni estreme di un poliedro.

Teorema 1 Sia P = {x ∈ IRn : Ax ≤ b}.i) Un punto x ∈ P e un vertice di P se e solo se la sottomatrice A0 formata

dalle righe Ai di A tali che Aix = bi ha rango n;

ii) d ∈ IRn e una direzione estrema di P se e solo se Ad ≤ 0 e la sottomatrice

formata dalle righe Ai di A tali che Aix = 0 ha rango n− 1.

E’ facile dimostrare che, nel caso piu generale di un poliedro della forma

P ′ = {x : A1x ≤ b1, A2x ≥ b2, A3x = b3}, la parte i) del precedente

teorema rimane invariata, mentre nella parte ii) la condizione Ad ≤ 0 deve

essere sostituita con le condizioni A1d ≤ 0, A2d ≥ 0 e A3d = 0.

Dal Teorema 1 segue che ogni vertice di P giace su almeno n degli iperpiani

che definiscono la frontiera di P . Inoltre, ogni direzione estrema di P e una

direzione di almeno n− 1 delle degli iperpiani che definiscono la frontiera di

P .

Nel caso di un problema scritto in forma standard, il Teorema 1 puo essere

riformulato come segue.

Teorema 2 Sia P = {x : Ax = b, x ≥ 0}. Un punto x di P e un vertice se

e solo se le colonne di A che corrispondono a componenti di x strettamente

maggiori di 0 sono linearmente indipendenti.

Dimostrazione La matrice dei vincoli che definiscono P e A′ =

A

I

,dove I e la matrice identica n×n. Sia J = {j : xj = 0} ed A0 la sottomatrice

formata dalle righe di A e dalle righe Ij, j ∈ J . Per il Teorema 1, x e un

vertice di P se e solo se A0 ha rango n e quindi, contenendo A0 n colonne, se

e solo se le colonne di A0 sono linearmente indipendenti. Sia∑nj=1 αjA

j0 = 0.

Poiche Aj0, j ∈ J , e l’unica colonna di A0 con componente (m + j)–esima

diversa da 0, deve essere αj = 0 per ogni j ∈ J . Quindi le colonne di A0 sono

linearmente indipendenti se e solo se lo sono le colonne Aj0, j /∈ J . Poiche le

componenti di indice maggiore di m di queste colonne sono nulle, esse sono

linearmente indipendenti se e solo se lo sono le corrispondenti colonne di A.

In particolare, per il terorema precedente, se A ha m righe, ci possono

essere al piu m colonne di A linearmente indipendenti. Quindi ogni vertice

3

Page 5: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

di P = {x : Ax = b, x ≥ 0} ha al piu m componenti strettamente maggiori

di 0.

Il seguente Teorema enuncia una proprieta fondamentale dei problemi di

PL.

Teorema 3 Teorema fondamentale della PL. Dato un problema di PL de-

finito in forma canonica o in forma standard, si verifica una delle seguenti

condizioni:

1. il problema e inammissibile;

2. il problema e illimitato;

3. esiste almeno un vertice di P ottimo.

Dimostrazione Sia P non vuoto. Poiche P e contenuto nell’ortante positi-

vo, P non contiene rette. In tal caso P = conv(vertex(P )) + cone(dext(P ))

e quindi ogni x in P risulta somma di una combinazione convessa di vertici

di P e di una direzione di P , cioe

x =∑i∈I

αivi + d

dove vi ∈ vertex(P ), αi ≥ 0 per ogni i ∈ I,∑i∈I αi = 1 e d e una direzione di

P . Se esiste una direzione d di P tale che cd < 0 il problema e illimitato. Sia

infatti x ∈ P . Allora x+αd ∈ P per ogni α ≥ 0 e risulta c(x+αd) = cx+αcd.

Per α → +∞ tale valore tende a −∞. In caso contrario cd ≥ 0 per ogni

direzione d di P e quindi cx ≤ c(x + d) per ogni x ∈ P e d direzione di P .

Dunque la ricerca di una soluzione ottima puo essere limitata al sottoinsieme

V = conv(vertex(P )). Poiche V e un insieme chiuso e limitato e la funzione

cx e continua, per il Teorema di Weierstrass il problema ammette ottimo su

V . Sia x =∑i∈I αivi una soluzione ottima. Da

cx =∑i∈I

αicvi ≥∑i∈I

αi mini∈I

cvi = mini∈I

cvi

segue che almeno un vertice vi, i ∈ I, e ottimo.

Per il teorema precedente un problema di PL, pur essendo un problema

continuo, puo essere risolto limitando la ricerca delle soluzioni ottime ad un

numero finito di punti, i vertici del suo insieme di ammissibilita. Ancora,

e necessario individuare eventuali direzioni di P lungo le quali la funzione

obiettivo tende a −∞. E facile riconoscere che una tale direzione esiste

se e solo se esiste una direzione estrema con la stessa proprieta, e quindi

uno spigolo del poliedro lungo il quale la funzione obiettivo assume valori

arbitrariamente bassi.

4

Page 6: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

4 Il metodo del simplesso

Il teorema fondamentale della PL e alla base di un metodo classico per la

risoluzione dei problemi di PL, detto Metodo del simplesso, proposto da Dan-

tzig nei primi anni 50. Benche la complessita dell’algoritmo sia esponenziale,

tale metodo e ancora uno dei metodi piu largamente utilizzati.

L’idea base del metodo del simplesso e la seguente. Un problema di PL viene

dapprima espresso in forma standard, cosicche il suo insieme di ammissibilita

P , se non vuoto, contiene almeno un vertice. In una prima fase, il metodo

determina un vertice di P (o che P e vuoto). Nelle iterazioni successive la

procedura visita vertici di P , lasciando ogni vertice lungo uno spigolo su cui

la funzione decresce strettamente. Se tale spigolo e illimitato il problema e

illimitato, in caso contrario lo spostamento termina in un nuovo vertice di P ,

adiacente a quello precedente e di valore strettamente inferiore. Se il vertice

non soddisfa opportune condizioni di ottimalita, l’iterazione viene ripetuta.

Il metodo termina quando individua o un vertice ottimo o una direzione

estrema di P lungo la quale la funzione obiettivo decresce strettamente.

Per realizzare questa idea generale in un algoritmo, e necessario esplicitare

i seguenti aspetti: caratterizzare i vertici di P algebricamente, individuare

delle condizioni di ottimalita e illimitatezza e definire il passaggio da un

vertice ad uno adiacente. Infine, e necessario determinare un vertice iniziale

o dimostrare che il problema e inammissibile.

Vediamo questi diversi aspetti in dettaglio.

4.1 Vertici e soluzioni di base

Il metodo del simplesso opera su problemi di PL scritti in forma standard

cioe della forma

min cx (7)

Ax = b

x ≥ 0.

dove A e una matrice m × n con m < n. Questa assunzione non e restrit-

tiva dato che, se m ≥ n, o il sistema Ax = b e inammissibile (caso rango

A 6= rango (Ab)) o almeno m− n vincoli risultano combinazione lineare dei

rimanenti e possono essere eliminati ottenendo un sistema con m ≤ n. Se

m = n il sistema ammette una unica soluzione che puo essere calcolata per

via elementare. Nel seguito supporremo A di rango m. Questa condizione

5

Page 7: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

puo essere sempre garantita eliminando eventuali vincoli linearmente dipen-

denti dagli altri (operazione che, se necessaria, viene effettuata durante la

prima fase del metodo del simplesso descritta in seguito).

Vediamo innanzitutto come i vertici di P vengano caratterizzati algebrica-

mente tramite il concetto di base e soluzione di base.

Si definisce base ogni sottoinsieme β ⊆ {1, . . . ,m}, |β| = m, tale che la

sottomatrice B formata dalle colonne di A con indice in β, detta matrice

di base, sia non singolare (e quindi invertibile). Data una particolare base

β, la matrice A puo essere partizionata in due sottomatrici B ed N dove

B e formata dalle colonne di A con indice in β, dette colonne in base, ed

N dalle colonne con indice in η = {1, . . . ,m} \ β, dette colonne fuori base.

Analogamente i vettori delle variabili e dei costi possono essere decomposti

in x = (xB, xN) e c = (cB, cN) in modo da evidenziare le componenti in base

e quelle fuori base.

Fissata una base, i vincoli Ax = b possono essere riscritti nella forma

BxB +NxN = b

ed ancora, essendo B invertibile, come

xB = B−1(b−NxN).

Di conseguenza il problema (7) puo essere riscritto come

min cBxB + cNxN (8)

xB = B−1(b−NxN) (9)

xB, xN ≥ 0. (10)

Dalla (9) risulta evidente che le variabili in base risultano univocamente

determinate dalle variabili fuori base. Si consideri la particolare la soluzione,

detta soluzione di base,

xB = B−1b, xN = 0

che si ottiene assegnando valore nullo a tutte le variabili fuori base. Tale

soluzione di base si dice ammissibile se xB ≥ 0. Inoltre si dice degenere se

(xB)i = 0 per qualche i = 1, . . . ,m, non degenere altrimenti.

Si noti che il numero di componenti non nulle di ogni soluzione di base e al

piu m ed e minore di m se e solo se la base e degenere.

Proposizione 1 i) Ogni soluzione di base ammissibile x e un vertice di P .

ii) Ogni vertice di P e soluzione di base per almeno una base.

6

Page 8: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

Dimostrazione i) L’affermazione segue dal Teorema 2 dato che le colonne

di A corrispondenti a variabili maggiori di zero di x sono colonne di B e

risultano quindi linearmente indipendenti.

ii) Per il Teorema 2, le colonne di A corrispondenti a componenti non nulle

di un vertice di P sono linearmente indipendenti. Poiche A ha rango m, e

sempre possibile integrare l’insieme di queste colonne con altre colonne di A

in modo da ottenere una base di Rm. Gli indici delle colonne finali formano

evidentemente una base.

Si noti che se un vertice ha esattamente n−m componenti uguali a 0, cioe

giace su esattamente n degli iperpiani che definiscono la frontiera di P (gli

m piani definiti dai vincoli Aix = bi ed altri n − m piani del tipo xj = 0)

allora e soluzione di base per esattamente una base contenente gli indici delle

variabili ¿ 0. Al contrario, vertici di P che giacciono su piu di n piani della

frontiera possono essere soluzioni di base (degeneri) per basi diverse. Questo

avviene perche al passo ii) della dimostrazione precedente le colonne iniziali

possono essere integrate ad una base di IRm in modi diversi.

4.2 Condizioni di ottimalita

Sia B una matrice di base ammissibile e x = (B−1b,0) la corrispondente

soluzione di base. Il costo di x e pari a cBB−1b + cN0 = cBB

−1b. Dalla (9)

segue che il costo di una qualsiasi soluzione ammissibile puo essere espresso

come

cBxB +cNxN = cBB−1b+(cN−cBB−1N)xN = cx+(cN−cBB−1N)xN (11)

e risulta quindi somma del costo della soluzione di base corrente e del termine

(cN − cBB−1N)xN .

Le componenti

cj = cj − cBB−1Aj

del vettore cN = cN − cBB−1N vengono detti costi ridotti.

Dal fatto che xN ≥ 0 per ogni soluzione ammissibile, si ottiene imme-

diatamente la seguente condizione di ottimalita per la soluzione di base

corrente.

Teorema 4 Se cj ≥ 0 per ogni j ∈ η, la soluzione di base corrente e ottima.

La condizione di non negativita dei costi ridotti e in generale una condizione

sufficiente ma non necessaria per l’ottimalita della soluzione di base. Come

7

Page 9: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

verra dimostrato nel paragrafo successivo, e anche necessaria se la soluzione

di base e non degenere.

Per capire il significato del costo ridotto di una variabile fuori base, si

immagini di poter aumentare una sola delle variabili fuori base, diciamo

xp, mantenendo tutte le altre a 0 e rimanendo in ammissibilita. Ponendo

xN = (0, . . . , xp, . . . , 0) nella espressione (9) si ottiene che, al crescere di xp,

la variazione nel valore della funzione obiettivo risulta pari a cpxp. Quin-

di il costo ridotto di una variabile rappresenta la variazione nel valore della

funzione obiettivo che si ottiene aumentando la relativa variabile fuori base

di una unita, mantenendo nulle tutte le altre variabili fuori base e facendo

variare le variabili in base in modo che il sistema Ax = b continui ad essere

soddisfatto.

Se tutti i costi ridotti delle variabili fuori base risultano non negativi, il

metodo termina fornendo in output la soluzione di base corrente che e ottima.

Osservazione Si noti che i costi ridotti possono essere definiti anche per le

variabili xj, j ∈ β. In questo caso si ottiene cB = cB − cBB−1B = 0. Quindi

i costi ridotti delle variabili in base sono sempre nulli.

4.3 Cambiamento di base

Si supponga che la condizione di ottimalita non sia soddisfatta e sia p ∈ ηun indice tale che cp < 0. Si consideri il problema di determinare il massimo

incremento della variabile xp che puo essere ottenuto mantenendo a zero le

altre variabili fuori base e l’ammissibilita della soluzione. Come visto nel

paragrafo precedente, un tale aumento comporta una variazione dei valori

delle variabili in base dato dalla

xB = B−1b−B−1Apxp (12)

ottenuta dalla (9) ponendo xj = 0 per ogni j ∈ η \ {p}. Si noti che una tale

variazione corrisponde ad un movimento lungo l’intersezione di n − 1 piani

della frontiera (i piani Ax = b ed i piani xj = 0, j ∈ η \ {p}), e quindi lungo

uno spigolo del poliedro uscente dalla soluzione di base corrente. Tale spigolo

ha direzione d = (−B−1Ap, 0, . . . , 1, . . .) dove la componente 1 compare in

corrispondenza alla variabile xp. In accordo con la (11), il costo del generico

punto y dello spigolo e dato da

cy = cx+ cpxp (13)

e, poiche cp < 0, il valore cx decresce strettamente lungo lo spigolo. Il punto

y e un punto ammissibile fin tanto che le variabili in base (12) rimangono

8

Page 10: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

non negative. Si possono verificare due situazioni: o lo spigolo e illimitato

oppure lo spostamento lungo lo spigolo viene bloccato dal fatto che qualche

variabile in base raggiunge il valore 0 e quindi viene raggiunto un nuovo

vertice di P . Dal punto di vista algebrico, per stabilire qual e il massimo

incremento di xp compatibile con l’ammissibilita della soluzione, e sufficiente

determinare il massimo incremento di xp che mantiene tutte le variabili in

base non negative. Questo e dato dal massimo valore di xp ≥ 0 tale che

risulti xB − B−1Apxp ≥ 0 o, equivalentemente, B−1Apxp ≤ xB o ancora,

posto a = B−1Ap,

aixp ≤ (B−1b)i = (xB)i i = 1, . . .m. (14)

Il problema puo essere risolto in modo elementare. Essendo (xB)i ≥ 0, se

ai ≤ 0 la condizione (14) e soddisfatta da ogni xp ≥ 0. Di conseguenza,

se a ≤ 0, la variabile xp puo crescere indefinitamente. In questo caso in

base alla (13) il problema di PL e illimitato. In caso contrario, il massimo

incremento di xp e dato da

xp = mini:ai>0

{(xB)iai

}=

(xB)qaq

.

Si noti in particolare che risulta xp > 0 se la soluzione di base x e non

degenere. In caso di degenerazione puo anche essere xp = 0.

Sia q un indice tale che risulti xp = (xB)q

aqe si consideri la soluzione x′

ottenuta dalla soluzione di base corrente aumentando xp del valore xp. Le

componenti di x′ sono

x′B = xB − xpa, x′p = xp, x′j = 0 se j ∈ η \ {p}.

Poiche (x′B)q = 0, la soluzione x′ ha almeno n−m componenti nulle. E facile

riconoscere che x′ e la soluzione di base corrispondente alla base β′ che si

ottiene da β eliminando l’indice β(q) e introducendo l’indice p. Per dimo-

strare che la corrispondente matrice di base B′, ottenuta da B sostituendo la

q-esima colonna con Ap, e non singolare e sufficiente dimostrare che B−1B′ e

non singolare. Ora B−1Bi = I i per ogni i 6= q, mentre B−1(Ap) = a. Poiche

aq 6= 0 la matrice B−1B′ e non singolare.

Per poter eseguire una nuova iterazione a partire dalla nuova soluzione di

base e necessario aggiornare l’inversa della matrice di base. Cio puo essere

fatto senza ricalcolare direttamente l’inversa di B′ (calcolo di costo O(m3))

tenendo conto del fatto che B′ differisce da B solo per una colonna. Deno-

tando con W = B−1 e W ′ = B′−1, W ′ puo essere calcolata in O(m2) in base

alla seguente formula di aggiornamento delle righe di W

W ′i =

Wi − ai

aqWq if i 6= q

1aqWq if i = q.

(15)

9

Page 11: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

4.4 Criteri per la scelta della variabile che entra in base

Per terminare la descrizione della generica iterazione del simplesso, vengono

elencati alcuni criteri utilizzabili nella scelta della variabile che entra in base

tra quelle che hanno costo ridotto negativo.

1. Si sceglie una variabile fuori base di costo ridotto minimo. Questo crite-

rio richiede di calcolare tutti i costi ridotti ed ha un costo computazio-

nale limitato. Si noti che tale criterio non comporta necessariamente il

decremento maggiore nel valore della funzione obiettivo. Infatti questo

e dato da cpxp e quindi dipende non solo dal valore del costo ridotto

ma anche dal massimo incremento possibile di xp.

2. Si sceglie la variabile che produce il piu alto decremento cpxp nella

funzione obiettivo. Questo criterio che sembra teoricamente attraente

e di fatto troppo oneroso dal punto di vista computazionale.

3. si sceglie la prima variabile fuori base il cui costo ridotto e negativo.

4.5 Prima fase del metodo del simplesso

Nei paragrafi precedenti e stata descritta la generica iterazione del metodo

del simplesso, basata sulla conoscenza di una particolare soluzione di base

ammissibile. Per completare la descrizione del metodo e ora necessario defi-

nire come determinare una soluzione di base ammissibile iniziale o stabilire

che il poliedro di ammissibilita e vuoto.

In alcuni casi particolari, una base ammissibile e immediatamente dispo-

nibile. Questo avviene, per esempio, quando si vuole risolvere un problema

P della forma {min cx : Ax ≤ b} con b ≥ 0. In questo caso la base che

contiene gli indici delle variabili di slack della forma standard di P e una

base ammissibile dato che risulta B = I = B−1 e quindi xB = Ib = b ≥ 0.

Quindi il problema artificiale e sempre ammissibile. Quando l’individuazione

di una base ammissibile non sia immediata e necessario eseguire una fase di

inizializzazione del metodo detta Prima fase del simplesso.

La prima fase del simplesso consiste nel risolvere un nuovo problema di

PL. Si riscriva il sistema Ax = b in modo che risulti b ≥ 0 e si consideri il

problema, detto problema artificiale,

PA : minm∑i=1

zi (16)

Ax+ Iz = b (17)

x, z ≥ 0 (18)

10

Page 12: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

definito nelle variabili originali x ed in m nuove variabili zi, i = 1, . . . ,m,

associate ai vincoli e dette variabili artificiali. Si noti che, essendo b ≥ 0, la

base che contiene gli indici delle variabili artificiali e una base ammissibile

per il problema artificiale. Inoltre, per i vincoli z ≥ 0, il valore ottimo del

problema artificiale e non negativo.

Proposizione 2 Il problema artificiale ha valore ottimo nullo se e solo se il

problema originale e ammissibile.

Dimostrazione Se x ∈ P , (x,0) e una soluzione ammissibile di PA di valore

0 e quindi ottima. Viceversa, se (x, z) e una soluzione (ammissibile) ottima

di valore 0, allora deve necessariamente essere z = 0. Cio implica Ax = b,

x ≥ 0 e quindi x ∈ P .

Rimane da stabilire come ottenere una base ammissibile del problema ori-

ginale dalla base ottima del problema artificiale. Se la base ottima di PA

non contiene indici di variabili artificiali, allora e una base ammissibile per il

problema originale. In caso di degenerazione, puo pero accadere che qualche

variabile artificiale sia in base (con valore nullo). In questo caso e necessario

sostituirla con una variabile originale fuori base da scegliersi in modo che

la corrispondente matrice di base risulti non singolare. Piu precisamente,

supponiamo che la q–esima colonna della matrice di base BA ottima per il

problema artificiale corrisponda ad una variable artificiale e siano B ed N

le sottomatrici formate dalle colonne di A che sono attualmente in base e

fuori base nella base ottima del problema artificiale. Si vuole sostituire BqA

con una colonna Aj di N sotto la condizione che la matrice risultante B′

sia non singolare. Questa circostanza si verifica se e solo se B−1A B′ e non

singolare. Quest’ultima matrice coincide con la matrice identica su tutte le

colonne tranne la q–esima, data da B−1A Aj, e risulta quindi non singolare se e

solo se (B−1A Aj)q 6= 0. La ricerca della colonna Aj puo quindi essere operata

calcolando il vettore

f = eqB−1A N

Se fj 6= 0 per qualche indice j, l’indice j puo essere sostituito al q-esimo

elemento della base corrente. In caso contrario, poiche B non contiene la

q-esima colonna di BA, valgono le condizioni

eqB−1A B = 0 eqB

−1A N = 0

cioe eqB−1A A = 0 e le righe di A risultano linearmente dipendenti dato che la

loro combinazione lineare con vettore dei coefficienti eqB−1A e il vettore nullo.

Una riga Ai tale che (eqB−1A )i 6= 0, risultando linearmente dipendente dalle

altre, puo allora essere eliminata.

11

Page 13: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

4.6 Complessita del metodo del simplesso

La complessita di ogni iterazione del metodo del simplesso e polinomiale ed e

dovuta al calcolo di u = cBB−1 (O(m2)), dei costi ridotti (O(m(n−m)), del-

l’incremento della variabile che entra in base (O(m2)) ed agli aggiornamenti

(O(m2)). Quindi il costo computazionale di queste operazioni e dominato

dal calcolo dei costi ridotti che richiede, nel caso peggiore, O(nm) operazioni

elementari.

La complessita finale dipende dal numero di passi richiesti per raggiungere

una condizione di terminazione. Come primo aspetto, consideriamo il pro-

blema della finitezza del metodo, cioe se sia vero che il metodo termina in

un numero finito di passi per qualsiasi istanza. La risposta e affermativa nel

caso di non degenerazione. Infatti, in questa ipotesi, iterazioni successive

corrispondono a soluzioni di base di costo strettamente decrescente e quindi

il metodo visita al piu una volta ogni soluzione di base. Poiche queste sono

in numero finito, il metodo termina in un numero finito di passi.

In caso di degenerazione, un vertice puo essere soluzione di base per basi

diverse e puo accadere che queste vengano visitate in iterazioni successive e

che il metodo torni su una base gia visitata. Questa circostanza viene detta

ciclaggio del metodo.

Per evitarla e necessario adottare delle opportune regole anticiclaggio. La

piu semplice e nota e la seguente regola di Bland che stabilisce un criterio

particolare per la scelta della variabile che entra in base e per quella della

variabile che esce dalla base.

Teorema 5 Si scelga l’indice p che entra in base con il criterio

p = min{j : cj < 0}

e l’indice β(q) che esce dalla base con il criterio

β(q) = min{β(i) :(xB)iai≤ (xB)k

akper ogni ak > 0}.

Allora il metodo del simplesso termina in un numero finito di passi.

Se vengono adottate regole anticiclaggio, il metodo del simplesso converge

in un numero finito di passi. In generale questo numero non e polinomiale.

Infatti sono state individuate istanze che vengono risolte dal simplesso in un

numero esponenziale di iterazioni.

12

Page 14: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

Esempio (Klee and Minty 1972) Si considerino le istanze di PL definite da

min −xkεxj−1 ≤ xj ≤ 1− εxj−1 ∀j = 2, . . . , k

Se ε > 0 l’insieme di ammissibilita e un cubo leggermente deformato (si dise-

gni nel caso m = 2). Si puo dimostrare che le basi della forma standard del

problema sono tutte non degeneri e che esiste una sequenza di base adiacenti

con costo strettamente decrescente che corrisponde ad una sequenza di tutti

i 2m vertici del cubo (che sono esponenenziali rispetto al numero di variabili

n = k e di vincoli m = 2k della forma standard).

A discapito di questo risultato teorico negativo, il metodo e tuttora uno dei

piu frequentemente utilizzati nelle applicazioni. Studi sperimentali hanno

evidenziato che, mediamente, il numero di passi e lineare nel numero m dei

vincoli e sublineare nel numero n delle variabili.

5 Complessita della programmazione lineare

Il problema della polinomialita (o meno) della programmazione lineare e ri-

masto aperto per diversi anni ed ha avuto una risposta definitiva nel 1979

ad opera del matematico russo Leonard Khachiyan. Il metodo proposto da

Khachiyan, detto metodo dell’elissoide, consente di risolvere una istanza di

PL in tempo polinomiale rispetto alla lunghezza della sua codifica. Tale al-

goritmo, benche di fondamentale importanza dal punto di vista teorico, non

risulta pero adottabile nella pratica per l’alto grado del polinomio che defi-

nisce la complessita del metodo. Comunque tale procedura ha avuto anche

un ruolo importante nella definizione di algoritmi approssimati randomizza-

ti basati sulla programmazione semidefinita per problemi di ottimizzazione

combinatorica NP-hard. Il primo algoritmo polinomiale competitivo con il

metodo del simplesso segue un approccio completamente diverso da esso ed e

stato proposto dal matematico indiano Narendra Karmarkar nel 1984. Tale

metodo e le sue varianti sviluppate in seguito vengono dette metodi a pun-

ti interni proprio perche convergono verso un vertice ottimo visitando una

sequenza di soluzioni interne al poliedro.

13

Page 15: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

6 Programmazione Lineare e Dualita

La teoria della dualita studia le importanti relazioni esistenti tra un problema

di ottimizzazione, detto problema primale, ed un problema ad esso correlato,

detto problema duale. Le variabili del problema duale hanno una interessante

interpretazione geometrica ed economica. In questo capitolo vengono presen-

tati i risultati di dualita nel caso in cui il problema primale sia un problema

di PL.

Si consideri un problema di PL della forma

P : v = min c1x1 + c2x2 (19)

A11x1 + A12x2 ≥ b1 (20)

A21x1 + A22x2 = b2 (21)

x1 ≥ 0 (22)

dove e stata evidenzata la decomposizione dei vincoli in vincoli di eguaglianza

e di diseguaglianza e delle variabili in variabili libere e non.

Il problema duale di P e il problema

D : d = max u1b1 + u2b2 (23)

u1A11 + u2A21 ≤ c1 (24)

u1A12 + u2A22 = c2 (25)

u1 ≥ 0. (26)

Il problema D e ancora un problema di PL ed ha una variabile per ogni

vincolo del primale ed un vincolo per ogni variabile del primale. Inoltre:

• il vettore dei costi del duale e il vettore dei termini noti del primale;

• il vettore dei termini noti del duale e il vettore dei costi del primale;

• la matrice dei vincoli del duale e la trasposta della matrice dei vincoli

del primale;

• una variabile duale e soggetta al vincolo di non negativita se e solo se

il corrispondente vincolo primale e di diseguaglianza;

• un vincolo duale e di diseguaglianza se e solo se la corrispondente

variabile primale e soggetta al vincolo di non negativita.

E facile verificare che il problema duale di D coincide con P .

14

Page 16: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

Nel seguito indicheremo con Ai, i = 1, 2, la sottomatrice (Ai1Ai2) e con Ai,

i = 1, 2, la sottomatrice

A1i

A2i

.Un primo risultato di dualita, noto come dualita debole, stabilisce che il

valore ottimo del problema duale e sempre una limitazione inferiore del valore

ottimo primale.

Teorema 6 Risulta d ≤ v. In particolare, se uno dei due problemi e illimi-

tato, l’altro e inammissibile.

Dimostrazione Dimostrariamo innanzitutto che se x = (x1, x2) e u =

(u1, u2) sono due soluzioni ammissibili per P e D, allora ub ≤ cx. L’ammissi-

bilita di x ed u garantisce le seguenti relazioni: b1 ≤ A1x, u1 ≥ 0, b2 = A2x,

x1 ≥ 0, c1 ≥ uA1 e c2 = uA2. Di conseguenza

ub = u1b1 + u2b2 ≤ u1A1x+ u2A2x = uAx

e

cx = c1x1 + c2x2 ≥ uA1x1 + uA2x2 = uAx

da cui si ottiene

ub ≤ uAx ≤ cx. (27)

Poiche la (27) vale per due generiche soluzioni primale e duale, risulta d ≤ v.

In particolare, se il problema P (il problema D) ammette una soluzione x

(u), il valore cx (ub) rappresenta una limitazione superiore (inferiore) per d

(v) e quindi D (P) non puo essere illimitato.

La differenza v − d viene detta scarto di dualita.

Corollario 7 Siano x e u soluzioni ammissibili, rispettivamente, per P e D.

Se cx = ub, allora x e u sono ottimi.

La dualita debole e una proprieta verificata da ogni coppia primale duale

di problemi di ottimizzazione. Nel caso della PL tale condizione puo essere

rafforzata per il seguente fondamentale risultato che inverte la condizione

espressa nel Corollario 7.

Teorema 8 Il problema P ammette ottimo se e solo se il problema D am-

mette ottimo. In questo caso risulta d = v.

15

Page 17: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

Dimostrazione Si consideri la forma standard P ′ del problema P . Il

problema P ammette ottimo se e solo P ′ ammette ottimo e questo avviene se e

solo se esiste una soluzione di base x = (B−1b,0) che soddisfa le condizioni di

ottimalita cN = cN−cBB−1N ≥ 0. Si consideri la soluzione duale u = cBB−1.

Essa e ammissibile per il problema duale D′ di P ′ se e solo se uA ≤ c. Poiche

risulta uB = cBB−1B = cB e uN = cBB

−1N ≤ cN per le condizioni di

ottimalita, u e ammissibile duale. Inoltre ub = cBB−1b = cBxB = cx. E ora

facile verificare che la soluzione u risulta ammissibile e quindi ottima anche

per D.

La non ammissibilita di uno dei due problemi non implica la illimitatezza

dell’altro. Infatti esistono istanze per cui sia il problema primale che il duale

sono non ammissibili e quindi lo scarto di dualita e infinito (si prenda ad

esempio A matrice nulla, b = 1 e c = −1).

Il Lemma di Farkas e la dualita forte

In questo paragrafo si considerano due problemi primale e duale scritti in

forma canonica

min cx (28)

Ax ≥ b (29)

x ≥ 0 (30)

ed il problema duale sia quindi

min ub (31)

uA ≤ c (32)

u ≥ 0. (33)

La dualita forte della PL puo essere dimostrata come conseguenza di un

importante risultato della teoria dei sistemi lineari noto come Lemma di

Farkas. Esistono diverse varianti di questo risultato, noti anche come Teoremi

dell’alternativa.

Teorema 9 Lemma di Farkas Data una matrice A ed un vettore b, esatta-

mente uno degli insiemi

- P = {x : Ax ≥ 0, cx < 0}- Q = {u : uA = c, u ≥ 0}e non vuoto.

16

Page 18: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

Dimostrazione Sia Q 6= ∅ e u ≥ 0 tale che uA = c. Allora cx = uAx

per ogni x e quindi, se Ax ≥ 0 risulta necessariamente cx ≥ 0 cioe P = ∅.Viceversa supponiamo Q = ∅ e consideriamo l’insieme Z = {z : z = uA, u ≥0} cioe l’insieme delle combinazioni coniche delle righe di A. Poiche per

ipotesi c /∈ Z e Z e un insieme chiuso e convesso esiste un iperpiano xx = α,

x ∈ Rn e α ∈ R, che separa strettamente Z da c cioe tale che xc < α e

xz ≥ α per ogni z ∈ Z per un opportuno vettore . Poiche lo 0 appartiene

a Z risulta α ≤ 0. Quindi cx < 0. D’altra parte uAx ≥ 0 per ogni u ≥ 0

e questo implica Ax ≥ 0. Infatti, se fosse Aix < 0 per qualche i, ponendo

ui = 1 e uj = 0 se j 6= i si otterrebbe uAx = uiAix < 0. Da questo segue

che x ∈ P .

Il Lemma di Farkas ha la seguente interpretazione geometrica. Il poliedro

definito dai vincoli Ax ≥ 0 e un cono convesso ed ogni sup elemento di-

verso dal vettore nullo e una direzione del cono. La funzione cx e limitata

inferiormente sul cono se e solo se P e vuoto e quindi se e solo se c e una

combinazione conica combinazione conica delle righe di A.

Dimostrazione del Teorema 8. Supponiamo che il problema primale

ammetta soluzione ottima x∗ di valore v∗ (il caso simmetrico puo essere

trattato in modo analogo). Dimostreremo che allora esiste u∗ ammissibile

per il problema duale e tale che u∗b ≥ cx∗ da cui, per la dualita debole,

u∗b = cx∗. Per l’ottimalita di x∗ risulta non ammissibile il sistema

Ax ≥ b (34)

x ≥ 0 (35)

cx < v∗ (36)

Come primo passo dimostriamo che questo sistema e non compatibile se e

solo se e non compatibile il sistema omogeneo

Ax− λb ≥ 0 (37)

cx− λv∗ < 0 (38)

x ≥ 0, λ ≥ 0 (39)

Infatti, se esiste una soluzione x del primo sistema allora (x, 1) e una soluzione

del secondo sistema. Viceversa sia (x, λ) una soluzione del secondo sistema.

Se λ > 0, allora xλ

e una soluzione del primo. Se λ = 0 si ha Ax ≥ 0,

cx < 0 ed e allora facile verificare che la soluzione x = x+x∗ e una soluzione

ammissibile del primo sistema.

Quindi possiamo assumere che il sistema (37) sia non ammissibile. Esso puo

17

Page 19: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

essere scritto nella formaA −bIn 0

0 1

x

λ

0m

0n

0

(40)

(cT −v∗

) x

λ

< 0 (41)

Per il Lemma di Farkas esiste quindi un vettore (u, y, w) ≥ 0 tale che

(u, y, w)

A −bIn 0

0 1

=

cT

−v∗

.Questi vincoli possono essere riscritti nella forma

uA+ Iny = cT (42)

−ub+ w = −v∗ (43)

u, y, w ≥ 0 (44)

da cui risulta che u e una soluzione ammissibile duale (uA ≤ cT , u ≥ 0), tale

che ub ≥ v∗. Per la dualita debole deve allora essere ub = v∗.

6.1 Condizioni di complementarita

La dualita forte stabilisce una relazione tra i valori ottimi di P e D. Consi-

deriamo ora un insieme di condizioni, dette condizioni di complementarita,

che stabiliscono delle relazioni tra le soluzioni ottime dei due problemi.

Teorema 10 Due soluzioni x e u ammissibili rispettivamente per i problemi

P e D sono ottime se e solo se soddisfano le condizioni

u(Ax− b) = 0 (45)

(uA− c)x = 0. (46)

Dimostrazione Necessita Per quanto provato nella dimostrazione del Teo-

rema 6 risulta ub ≤ uAx ≤ cx. Dalla dualita forte cx = ub si ottiene

allora

ub = uAx = cx, (47)

18

Page 20: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

da cui seguono le (45) e (46).

Sufficienza Le condizioni di complementarieta implicano la (47) e quindi le

due soluzioni sono ottime per il Corollario 7.

In ammissibilita, le condizioni di complementarita esprimono condizioni piu

forti rispetto alla semplice condizione di ortogonalita tra le coppie di vettori

u, Ax− b e uA− c, x. Si noti infatti che, per l’ammissibilita delle soluzioni x

e u, ogni termine della sommatoria u(Ax− b) =∑mi=1 ui(Aix− bi) risulta non

negativo. Infatti (Aix− bi) ≥ 0 e, se la diseguaglianza vale in senso stretto,

deve essere ui ≥ 0 per il vincolo di nonnegativita sulla variabile ui. Quindi

u(Ax − b), essendo una somma di termini non negativi, e nullo se e solo se

tutti i suoi termini sono nulli cioe se e solo se

ui(Aix− bi) = 0 ∀ i = 1, . . . ,m.

Analogamente si puo dimostrare che, in ammissibilita, la condizione (uA −c)x = 0 e equivalente alle n condizioni

(uAj − cj)xj = 0 ∀ j = 1, . . . , n.

In particolare, per il Teorema 10, in ottimalita valgono le seguenti implica-

zioni

Aix− bi > 0 → ui = 0 (48)

xj > 0 → uAj − cj = 0 (49)

uAj − cj < 0 → xj = 0 (50)

ui > 0 → Aix− bi = 0. (51)

Interpretazione geometrica delle variabili duali ottime

Quanto affermato ci consente di interpretare geometricamente le variabili

duali ottime. Si consideri un problema primale nella forma {max cx : Ax ≤ b}(in cui la matrice A comprende tutti i vincoli e i vettori Ai puntano all’e-

sterno del poliedro primale, vedi Fig. 1), il cui problema duale e {maxub :

uA = c, u ≥ 0}. E facile riconoscere che le soluzioni ammissibili duali sono

tutti e soli i vettori dei coefficienti di combinazioni coniche delle righe di A

che danno il vettore c. Sia u una soluzione ottima duale. Per le condizioni

di complementarieta (48) possono essere diverse da zero solo le componenti

ui corrispondenti a vincoli primali soddisfatti come uguaglianza in ogni solu-

zione ottima primale. Quindi x e una soluzione ottima primale se e solo se c

e una combinazione conica delle righe di A che corrispondono a vincoli attivi

in x. Le variabili ottime duali sono proprio i coefficienti di tale combinazione

conica. Inoltre, essendo ub = cx per la dualita forte, l’iperpiano di equazione

cx = cx risulta una combinazione conica dei vincoli attivi in x.

19

Page 21: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

A1

A2

A1

A2

cx*

A2

A2

A2

Figura 1: Cono dei vettori c per cui x∗ e soluzione ottima

6.2 Interpretazione economica delle variabili duali

Le variabili duali ottime di un problema di PL hanno anche una interessante

interpretazione economica.

Si consideri un problema in forma standard e siano β e x = (xB, xN) =

(B−1b,0) una base ottima e la corrispondente soluzione di base. Si supponga

ora di variare il q–esimo termine noto di una quantita ε, cioe si consideri un

nuovo vettore di termini della forma b′ = b+εeq, dove eq rappresenta il q-esimo

elemento della base canonica di Rm. Se la base β e non degenere, per valori

di ε sufficientemente piccoli, β e una base ammissibile anche per il problema

modificato e le variabili in base della corrispondente soluzione di base sono

x′B = B−1(b + εeq) ≥ 0. Poiche i costi ridotti non vengono modificati da

variazioni nel vettore b, β e ancora una base ottima. La variazione nel valore

ottimo dei due problemi e data da

cB(x′B − xB) = εcBB−1eq = εueq = εuq

dove u = cBB−1 e una soluzione duale ottima. Quindi uq rappresenta la va-

riazione nel valore ottimo conseguente ad una variazione unitaria del q-esimo

termino noto. Un valore uq < 0 (uq > 0) indica il decremento (aumento) nel

valore ottimo del problema corrispondente ad un incremento unitario del q–

esimo termine noto. Per tale motivo le variabili duali ottime possono essere

interpretate come prezzi connessi alla presenza dei vincoli e vengono anche

dette prezzi ombra.

Esempio Si consideri un problema di pianificazione della produzione. Una

azienda puo produrre n diversi prodotti utilizzando m risorse (materie prime,

ore lavoro ecc). Sia cj il profitto ottenibile da una unita del prodotto j, bi

la quantita di risorsa i e aij la quantita di risorsa i necessaria per produrre

una unita del prodotto j. Allora il problema di massimizzazione del profitto

totale puo essere espresso come

20

Page 22: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

max cx (52)

Ax ≤ b (53)

x ≥ 0. (54)

Immaginiamo ora che l’azienda possa investire nell’acquisto di nuove risorse,

e sia ri il costo unitario della risorsa i-esima. Quali sono le risorse che e

conveniente acquistare e in quali quantita?

Se u∗ e la soluzione ottima duale, la generica componente u∗i indica l’aumen-

to nel valore della funzione ottenibile per un incremento unitario del termine

noto bi. Quindi il guadagno netto per aumento unitario della risorsa i e dato

da gi = u∗i − ri. Evidentemente conviene investire in una o piu risorse q

con valore gq massimo. Il ragionamento puo essere applicato purche la base

continui a rimanere ottima. Poiche una variazione dei termini noti non inci-

de sull’ottimalita, e sufficiente che la base continui a rimanere ammissibile e

quindi la quantita ∆bq deve essere tale che

B−1b+B−1∆bqeq ≥ 0,

cioe

∆bqB−1q ≥ −x∗B.

Se B−1q ≥ 0 questo incremento puo essere a priori illimitato e quindi con-

viene investire completamente nella risorsa i, in caso contrario il valore ∆bq

massimo e dato da

mink:B−1

kq<0

−x∗β(k)

B−1kq

.

Ogni altro incremento di bq non porterebbe a nessun vantaggio e conviene

investire su una diversa risorsa.

6.3 Simplesso e dualita

Si consideri un problema di PL espresso in forma standard

min cx (55)

Ax = b (56)

x ≥ 0 (57)

ed il suo problema duale

min ub (58)

uA ≤ c (59)

21

Page 23: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

Ad ogni soluzione di base x = (xB,0) e associato il vettore

u = cBB−1

che, avendo dimensione m, puo essere interpretato come un vettore di varia-

bili duali.

Vediamo come si comporta questo particolare vettore u rispetto ai vincoli del

problema duale. Tali vincoli possono essere riscritti come u[BN ] ≤ [cBcN ]T

e quindi scomposti nei due gruppi

uB ≤ cB (60)

uN ≤ cN . (61)

Sostituendo a primo membro il vettore u = cBB−1 otteniamo che il primo

gruppo di vincoli e sempre soddisfatto con l’eguaglianza dato che cBB−1B =

cBI = cB, mentre il seconda gruppo di vincoli e equivalente a

cBB−1N ≤ cN ⇔ cN = cN − cBB−1N ≥ 0.

Quindi u e una soluzione ammissibile duale se e solo se i costi ridotti sono

tutti non negativi, cioe se e solo se e soddisfatta la condizione di ottimalita

richiesta dal simplesso. In generale, una soluzione duale u viene detta una

soluzione di base se risulta u = cBB−1 per una opportuna matrice di base B.

Da quanto detto si puo osservare che il metodo del simplesso lavora consi-

derando ad ogni passo una coppia di soluzioni primale e duale che soddisfano

le condizioni di complementarieta ed hanno lo stesso valore (si verifichi per

esercizio). Mentre la soluzione primale e ammissibile, la soluzione duale in

generale e non ammissibile e diventa ammissibile solo quando la soluzione

primale soddisfa le condizioni di ottimalita ed e quindi ottima.

7 Analisi di sensitivita o di post–ottimalita.

Molto spesso i parametri che intervengono nel modello matematico di un

problema reale contengono un certo grado di approssimazione rispetto ai

valori reali. Ha allora senso chiedersi quanto dell’informazione che si ottiene

risolvendo il modello matematico sia sensibile a possibili inaccuratezze del

modello, o, in altre parole, quanto la soluzione ottenuta sia robusta rispetto

a piccole modifiche dei dati. L’analisi di sensivita e una analisi a posteriori

che cerca di rispondere a queste domande.

I parametri che intervengono in un modello di PL sono: i costi, i termini

noti dei vincoli e gli elementi della matrice dei vincoli.

22

Page 24: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

Sia x = (xB, xN) una soluzione di base ottima di un problema in forma

standard.

Consideriamo dapprima una variazione in uno dei termini noti del problema,

assumendo che il vettore b venga modificato in b′ = b+ εeq. Poiche una tale

modifica non altera i costi, la soluzione di base x′ = (x′B = B−1b′, x′N = 0)

soddifa ancora la condizione di ottimalita cN ≥ 0. Quindi, se ammissibile,

essa e anche ottima. Essendo tutte le variabili fuori base nulle, la condizione

di ammissibilita, posto W = B−1, e data da

x′B = Wb′ = W (b+ εeq) = xB + εW q ≥ 0.

L’intervallo di valori di ε per cui tale condizione e soddisfatta e allora

max{−(xB)iWiq

: Wiq > 0} ≤ ε ≤ min{−(xB)iWiq

: Wiq < 0}. (62)

Si noti che, essendo xB ≥ 0, l’intervallo in (62) contiene lo 0, valore corri-

spondente al problema di partenza.

Si consideri ora una variazione nel costo della p-esima variabile, cioe una

variazione nel vettore dei costi del tipo c′ = c + εep. Tale variazione non

modifica l’insieme di ammissibilita del problema e quindi x e una soluzione

di base ammissibile per il problema modificato. Quali sono i valori di ε per

cui verifica ancora le condizioni di ottimalita cN ≥ 0? Si devono distinguere

i due casi p ∈ η e p ∈ β. Nel primo caso una variazione di cp altera il

costo ridotto della sola variabile xp e quindi le condizioni di ottimalita sono

soddisfatte se e solo se

c′p = cp + ε ≥ 0 ⇐⇒ ε ≥ −cp. (63)

Nel secondo caso, sia p = β(q) il q-esimo elemento in base. Le condizioni di

ottimalita richiedono

c′N = cN − (cB + εeq)B−1N = cN − εeqB−1N ≥ 0. (64)

Sia a = eqB−1N. La (64) e equivalente alle condizioni

c′j = cj − εaj ≥ 0 per ogni j ∈ η.

Quindi x soddisfa le condizioni di ottimalita per ogni valore di ε nell’intervallo

max{ cjaj

: j ∈ η, aj < 0} ≤ ε ≤ min{ cjaj

: j ∈ η, aj > 0}. (65)

Si noti che, essendo cN ≥ 0, l’intervallo contiene lo 0.

23

Page 25: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

Una analisi analoga puo essere condotta per studiare quali variazioni in un

termine della matrice dei vincoli A sono compatibili con l’ottimalita della

base corrente.

Si noti che modifiche nei termini noti e nei costi compatibili con le condizioni

(62), (63) e (65) , mantengono l’ottimalita della base corrente ma comportano

una variazione dei valori delle variabili ottime (nel primo caso) e del valore

ottimo del problema nel secondo caso. Cio che non varia e la base ottima.

Nel caso di variazioni dei parametri che non soddisfano tali condizioni sara

necessario eseguire una fase di riottimizzazione.

8 Algoritmo del simplesso duale

Si supponga di aver risolto un problema di PL in forma standard

min cx (66)

Ax = b (67)

x ≥ 0 (68)

con il metodo del simplesso determinando una soluzione di base ottima x∗ e

la corrispondente soluzione duale ottima u∗ date da

x∗ = (B−1b,0) u∗ = cBB−1

dove B e la matrice di base ottima.

Si assuma ora di modificare il problema in uno dei seguenti modi

a) variando il vettore dei termini noti b;

b) introducendo un nuovo vincolo;

e che questa variazione renda la soluzione x∗ inammissibile. Per risolvere il

nuovo problema con il metodo del simplesso si dovrebbe a questo punto far

ripartire la prima fase del metodo e quindi si perderebbe tutta l’informazione

precedentemente acquisita. Questo sembra poco sensato dato che una mo-

difica come quelle considerate probabilmente determina un problema la cui

soluzione ottima non e molto “distante” dalla soluzione ottima del problema

originale. Un metodo che consente di risolvere il nuovo problema a partire

dalla base corrente e il metodo del simplesso duale.

Si consideri dapprima una modifica del vettore dei termini noti b che renda

x∗ inammissibile. Tale modifica fa variare l’insieme ammissibile primale e

la funzione obiettivo duale, mentre non varia l’insieme ammissibile duale e

24

Page 26: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

la funzione obiettivo primale. In particolare, se anche la soluzione ottima

primale x∗ non e piu ammissibile, la soluzione duale ottima u∗ e ancora

ammissibile. Eventualmente, essendo variata la funzione obiettivo del duale,

u∗ non sara piu ottima.

Nel caso b) in cui venga introdotto un nuovo vincolo primale

gx ≤ h

l’insieme dei vincoli del problema primale diventa

A =

A 0

g 1

≤ b

h

dove l’ultima riga si riferisce al nuovo vincolo ed e stata introdotta una nuova

variabile (di slack) e quindi una colonna della matrice identica. In questo

caso, poiche B e non singolare, anche

B =

B 0

gB 1

e non singolare. Si puo allora considerare la soluzione di base (B−1(b, h)T , 0)

e la corrispondente soluzione duale di base (cB, 0)B−1 = (u∗, 0)T . E facile

verificare che (u∗, 0) risulta ammissibile per il nuovo problema duale.

Vediamo ora come, a partire da una soluzione di base duale ammissibile, sia

possibile risolvere il nuovo problema primale.

L’algoritmo del simplesso duale

Si e gia visto come il metodo del simplesso lavori mantenendo ad ogni passo

una coppia di soluzioni primale-duale x, u con le seguenti proprieta: 1) x e u

soddisfano le condizioni di complementarita, 2) x e ammissibile, 3) uB = cB

e 4) la condizione uN − cN ≤ 0, equivalente alla condizione di ottimalita

cN ≥ 0, risulta soddisfatta solo in ottimalita.

Il metodo del simplesso duale opera in modo simmetrico, cioe ad ogni passo

considera una coppia di soluzioni primale e duale che soddisfano le condizioni

di complementarita e di cui solo la soluzione duale e ammissibile. L’obiettivo

e quello di portare la soluzione primale verso l’ammissibilita dato che questa

condizione implica l’ottimalita per il Teorema 10.

Alla generica iterazione la soluzione di base duale u = cBB−1 e ammissibile

mentre la soluzione di base primale (B−1b,0) e non ammissibile. Poiche

tutte le variabili fuori base sono nulle, questo implica che una variabile in

25

Page 27: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

base deve avere un valore strettamente negativo. Sia essa la variabile di

indice β(q), cioe la q-esima variabile in base. Un modo per rendere questa

variabile non negativa e quello di portarla fuori base, sotto la condizione di

mantenere l’ammissibilita duale. Attualmente il vincolo duale corrispondente

alla colonna Bq risulta soddisfatto come uguaglianza. Portare la variabile

fuori base significa consentire che questo vincolo possa essere soddisfatto con

il ≤. L’obiettivo e allora quello di determinare una nuova soluzione duale u′

tale che risulti

u′B = cB − αeq (69)

u′N ≤ cN (70)

per un opportuno α ≥ 0. Inoltre, per ottenenere una nuova base, e necessario

individuare un valore di α per cui almeno uno dei vincoli corrispondenti alle

variabili fuori base risulti soddisfatto con l’eguaglianza. Per determinare un

tale valore si esplicitino le condizioni (70) sostituendo u′ = (cB − αeq)B−1

nel secondo blocco di disequazioni. Si ottiene

(cB − αeq)B−1N = cBB−1N − αeqB−1N ≤ cN .

Posto a = eqB−1N , il valore massimo di α e dato dalle condizioni

−αa ≤ cN − cBB−1N = cN .

Si noti che, essendo u = cBB−1 ammissibile, i costi ridotti cj, j ∈ η, sono

tutti ≥ 0. Ne segue che componenti aj ≥ 0 non pongono alcun impedimento

all’aumento di α. Quindi il valore massimo per α e dato da

α∗ = min{−cjaj

: j ∈ η, aj < 0}.

In particolare, se a ≥ 0, α∗ = +∞, cioe α puo tendere all’infinito mantenendo

la soluzione duale ammissibile. Il costo della nuova soluzione duale u′ e dato

da

u′b = cBB−1b− αeqB−1b = cBB

−1b− α∗xβq . (71)

Poiche xβq < 0, se α∗ = +∞ il valore della soluzione duale tende ad infinito

ed il problema duale e illimitato. Per il Teorema 6 si puo concludere che il

primale e inammissibile. In caso contrario, sia p una variabile fuori base per

cui risulta

α∗ =−cpap

.

Allora il vincolo u′Ap e soddisfatto con l’uguaglianza e la variabile p entra

in base. Considerando nuovamente la (71), si puo notare che, se α∗ > 0, il

valore duale e aumentato.

26

Page 28: LA PROGRAMMAZIONE LINEARE - Plone siteusers.dimi.uniud.it/~franca.rinaldi/PLdispensa2.pdf · 2007. 11. 13. · di slack, ed il vincolo viene sostituito con A ix+ s i = b i (A ix s

Analogamente a quanto fatto per il simplesso primale, si puo dimostrare

che la matrice di base ottenuta sostituendo la q–esima colonna di B con la

colonna Ap e non singolare, e che quindi u′ e una nuova soluzione di base.

Se le componenti della corrispondente soluzione di base primale sono tutte

non negative, allora la soluzioni di base primale corrente e ottima. In caso

contrario, si esegue una nuova iterazione.

Anche in questo caso, se vengono utilizzate regole anticiclaggio, il metodo

termina in un numero finito di passi o producendo una soluzione ottima o

determinando che il problema primale e inammissibile.

Bibliografia

Il materiale contenuto nella dispensa e ampiamente e liberamente tratto dal

testo: P. Serafini, Ottimizzazione, Zanichelli, 2000, (cap. 6 e 7).

Altri riferimenti bibliografici:

D. Goldfarb e M.J. Todd, Linear Programming, in Optimization, Handbooks

of Operations Research and Management Science, Vol. 1, North–Holland.

27