Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Programmazione Lineare i Parte, Appunti di Ricerca Operativa

Appunti di Programmazione Lineare

Tipologia: Appunti

2023/2024

Caricato il 04/02/2024

Utente sconosciuto
Utente sconosciuto 🇮🇹

8 documenti

1 / 22

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
1
Appunti di Programmazione Lineare
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16

Anteprima parziale del testo

Scarica Programmazione Lineare i Parte e più Appunti in PDF di Ricerca Operativa solo su Docsity!

Appunti di Programmazione Lineare

Introduzione ai problemi di ottimizzazione

1.1 - Sistemi e modelli

Quando si affronta un problema, la prima necessità è quello di definirlo opportunamente. In pratica la prima cosa da effettuare è delimitare l’oggetto della nostra analisi, ovvero definire il sistema oggetto di studio. Il termine sistema, pur largamente utilizzato nel linguaggio comune (es: sistema politico, sistema istituzionale, sistema giudiziario, sistema dei trasporti, sistema delle telecomunicazioni…) richiede una definizione precisa. In generale un sistema può essere definito come un insieme di elementi, in relazione tra loro, aventi una o più proprietà in comune. Ad esempio il sistema politico italiano è costituito da istituzioni, organismi ed organizzazioni che sono in relazione tra loro per organizzare e regolare la vita del paese. Il sistema dei trasporti italiano è costituito da infrastrutture, strutture, enti ed organizzazioni, in relazione tra loro, per soddisfare la domanda di trasporto esistente nel paese. Per affrontare problemi che riguardano un determinato sistema, oggetto di studio, è necessario rappresentare il problema attraverso un modello. La rappresentazione può avvalersi di strumenti o linguaggi diversi. Un modello matematico è uno strumento di rappresentazione di un sistema attraverso il linguaggio matematico. Il passaggio da un sistema oggetto di studio ad una sua rappresentazione attraverso un modello matematico non è un’operazione banale ed immediata. Poiché un modello è una rappresentazione necessariamente semplificata di un sistema, nella sua costruzione è necessario stabilire il numero e la tipologia di elementi, le relazioni tra loro esistenti, le ipotesi semplificative introdotte. Ad esempio, volendo rappresentare il sistema di trasporti nazionale, bisogna stabilire quali infrastrutture considerare, quali reti di trasporto includere, come descrivere il comportamento degli utenti del sistema di trasporto etc… E’ ovvio che, in generale, maggiore è il numero di elementi e di relazioni che si vanno a considerare, più complesso sarà il modello che ne deriva. Poiché la definizione di un modello viene effettuata allo scopo di analizzare e risolvere un problema, la sua complessità deve essere da un lato tale da consentire, più o meno agevolmente, di individuare una soluzione, da un altro lato tale da essere un’adeguata rappresentazione del sistema oggetto di interesse, in modo che le conclusioni che si dedurranno dall’analisi del modello, possono, con buona approssimazione, essere applicate alla realtà rappresentata. La scelta del livello di dettaglio e del grado di complessità di un modello dipende dalla disponibilità di opportuni metodi di risoluzione , ovvero di strumenti di risoluzione che consentono di fornire risposte a domande relative al modello.

1.2 - Modelli e metodi matematici per l’ottimizzazione

Ottimizzare significa adottare la decisione migliore tra un insieme di alternative possibili. Un processo di ottimizzazione, quindi, presuppone la presenza a) di soluzioni alternative da confrontare b) di uno o più criteri sulla base dei quali effettuare la scelta. Nel caso si adotti un solo criterio si parla di ottimizzazione mono-criterio o mono-obiettivo; in presenza di più criteri di valutazione si parla di ottimizzazione multi-criteria o multi-obiettivo. Risolvere un problema di ottimizzazione mono-obiettivo consiste nell’individuare la decisione, tra un insieme di decisioni possibili, che ottimizzi (massimizzi o minimizzi) l’obiettivo assunto che, nella maggior parte delle applicazioni, è rappresentato da un costo (da minimizzare) oppure da un beneficio (da massimizzare). Per affrontare e risolvere un problema di ottimizzazione si ricorre alla definizione di modelli e metodi di risoluzione. La Ricerca Operativa è una disciplina che si occupa dell’utilizzazione di modelli e metodi matematici per risolvere problemi di ottimizzazione.

obiettivo è rappresentata dal profitto realizzabile (da massimizzare) con la vendita delle quantità x 1 e x 2. Essa pertanto assume la forma

z= 1000 x 1 + 500 x 2 Max!

Per individuare l’insieme delle soluzioni ammissibili, non essendo noto esplicitamente, bisogna definire i vincoli del problema. I vincoli fanno riferimento alla disponibilità limitata delle risorse a che possono misurarsi in ore di lavoro settimanali di macchine e manodopera. Pertanto è possibile individuare le seguenti tre tipologie di risorse a disposizione:

Ore di lavoro macchine A: 240h settimanali Ore di lavoro macchine B: 160h settimanali Manodopera: 480h settimanali Ciascun vincolo esprime la necessità che le risorse utilizzate per la produzione di x 1 e x 2 non eccedano quelle a disposizione. Con riferimento alle ore di lavoro delle macchine A, poiché per produrre una unità di P 1 ne occorrono ½ ora mentre per produrre una unità di P 2 ne occorrono 2, il numero totale di ore di lavorazione su macchine di tipo A per produrre le quantità x 1 e x 2 è pari a

0.5 x 1 + 2 x 2

Pertanto il vincolo sulla disponibilità delle ore di lavorazione su macchine di tipo A può essere espresso come

0.5 x 1 + 2 x 2240 (vincolo disponibilità ore lavorazione su macchine di tipo A)

Applicando lo stesso ragionamento alle altre due tipologie di risorse a disposizione si ottiene:

x 1 + x 2160 (vincolo disponibilità ore lavorazione su macchine di tipo B) x 1 + x 2160 (vincolo disponibilità ore lavorazione su macchine di tipo B) 4 x 1 + 2 x 2480 (vincolo disponibilità ore di manodopera)

Ai vincoli descritti vanno aggiunte le condizioni x 1 ≥0 e x 2 ≥0 dal momento che valori negativi delle variabili non avrebbero alcun significato fisico. In sintesi il modello matematico rappresentativo del problema in esame risulta:

z= 1000 x 1 + 500 x 2 Max!

sottoposto ai vincoli

0.5 x 1 + 2 x 2240 x 1 + x 2160 4 x 1 + 2 x 2480 x 1 ≥0, x 2 ≥

1.5 - Modelli di programmazione matematica.

L’esempio illustrato suggerisce che, in generale, un problema di ottimizzazione può essere rappresentato nella seguente forma generale:

z= f ( x 1 ,…,xn ) Max o Min!

sottoposto a

hi ( x 1 ,…,xn) = ai i=1,…,s gh ( x 1 ,…,xn ) ≤ bn h=1,…,t ( x 1 ,…,xn ) Rn

che prende il nome di modello o problema di programmazione matematica in cui le variabili

x =( x 1 ,…, x n) sono dette variabili decisionali , la funzione z=f ( x 1 ,…,xn ) da massimizzare o

minimizzare è detta funzione obiettivo , le equazioni h i e le disequazioni g h sono dette relazioni vincolari o, semplicemente, vincoli del problema, mentre i valori a i e b h sono i termini noti. In un modello di programmazione matematica una soluzione è rappresentata dai valori che assumono le variabili decisionali. Essa è ammissibile se tali valori soddisfano tutti i vincoli (equazioni e disequazioni) del modello. L’insieme delle soluzioni ammissibili nello spazio delle variabili decisionali individua il dominio di ammissibilità. Un metodo di risoluzione è una tecnica che consente di trovare le soluzioni del problema. Esso può essere esatto , se permette di individuare la migliore soluzione ammissibile, oppure euristico , se è orientato alla ricerca di una buona soluzione ma non necessariamente ottima. La programmazione matematica (mathematical programming) si occupa dello studio degli aspetti teorici e dei metodi di risoluzione di modelli di programmazione matematica. Come già evidenziato la complessità dei metodi dipende dalle caratteristiche e dalle proprietà delle funzioni f, g e h. In tal senso è possibile distinguere tra modelli di programmazione matematica lineare se la f , le g e e le h sono tutte funzioni lineari. In caso contrario se la funzione obiettivo o qualcuna delle relazioni vincolari sono non lineari si parla di modello di programmazione non lineare.

1.6 - Modelli di programmazione matematica lineare

Un modello di programmazione lineare con m vincoli ed n variabili assume ala forma:

z = c 1 x 1 +…+cnxn Max o Min!

sottoposto a

1

1 1 1 1

1 1 1

11 1 1 1

n

m m m

i i n i

n n

x x

a x a x b

a x a x b

a x a x b

dove: ( x 1 ,…, x n) sono le variabili decisionali ;

( c 1 ,…, c n) sono i coefficienti di costo o di profitto ;

z=c 1 x 1 +…+cnxn è la funzione obiettivo ;

( b 1 ,…, b m) sono i termini noti ;

a ij ( i =1,, m ; j =1,.., n ) sono i tassi di assorbimento ;

x 1 ,…, x n≥ 0 sono i vincoli di non negatività delle variabili.

0

5

10

15

-5 0 5 10 x 1 15

x 2 Vincolo (3)

Figura xa – Semipiano individuato dal vincolo 1

Figura 2 – Insiemi di soluzioni che soddisfano ciascun vincolo

0

5

10

15

-5 0 5 10 x^1 15

x 2 Vincolo (2)

0

5

10

15

-5 0 5 10 x 1 15

x 2 Vincolo (1)

1.8 – Forma standard di un problema di programmazione lineare

Per poter risolvere un modello di programmazione lineare è necessario rappresentarlo in forma standard , ovvero in una forma in cui la funzione obiettivo è a massimizzare, i vincoli sono espressi in termini di equazioni lineari e le variabili decisionali sono vincolate ad assumere valori non negativi. In pratica un modello di programmazione lineare in forma standard assume la forma

Un modello di programmazione lineare con m vincoli ed n variabili assume ala forma:

z = c 1 x 1 +…+cnxn Max o Min!

sottoposto a

1

11 11

11 1

111 1 1

n

m m m

i i n i

n n

x x

a x a x b

a x a x b

a x a x b

Si assume, inoltre, che i termini noti ( b 1 ,…, b m) siano non negativi

Nel seguito si dimostra come un qualsiasi problema di programmazione lineare in forma generica può essere ricondotto ad un modello di programmaziyone lineare in forma standard. A tal fine bisogna mostrare che:  una qualsiasi disequazione lineare (del tipo ≤ o ≥) può essere trasformata in una equazione lineare;  eventuali vincoli sulle variabili decisionali del tipo ( x j ≤0 o x j=0) possono essere trasformati in vincoli di non negatività.

Trasformazione di una disequazione lineare in equazione lineare

Disequazione del tipo ≤

Si consideri la disequazione

a 11 (^) x 1  .....  a 1 nxnb 1 conb 1  0

Essa può essere trasformata in equazione attraverso la sua sostituzione con il sistema

11 1 .....^11

y

a x anxn y b

dove la variabile y ≥ 0 è detta variabile slack. Infatti riscrivendo l’equazione nella forma

y  b 1  a 11 x 1 ..... a 1 n xn 

si deduce che quando a 11 (^) x 1 .....  a 1 n xnb 1 si ha y ≥ 0.

Esempio 3 x 1 + 2 x 2 - 4 x 3 ≤ 12

Si trasforma nel sistema

3 x 1 + 2 x 2 - 4 x 3 + y = 12 y ≥ 0

Considerando le trasformazioni illustrate, un modello di programmazione lineare con m vincoli ed n variabili decisionali può essere espresso nella forma generica:

z = c 1 x 1 +…+cnxn Max o Min!

sottoposto a

1

11 11

11 1

111 1 1

n

m m m

i i n i

n n

x x

a x a x b

a x a x b

a x a x b

che può essere espresso, attraverso la notazione matriciale, nella forma z = c T^ x sottoposto a A x = b x 0 con x vettore colonna delle variabili decisionali di dimensione ( n x 1) ; c T^ vettore riga dei coefficienti di costo o di profitto di dimensione (1 x n); z funzione obiettivo ; b vettore colonna dei termini noti di dimensione ( m x 1) ; A matrice dei tassi di assorbimento di dimensione ( m x n ).

1.9 - Interpretazione geometrica delle variabili slack e di surplus

E’ possibile fornire un’interpretazione geometrica delle variabili slack e di surplus. A tal proposito, per semplicità di illustrazione, si farà riferimento al caso di vincoli espressi nello spazio a due dimensioni ( x 1 , x 2 ). L’interpretazione può essere poi estesa facilmente al caso generale ad n dimensioni. Si consideri la disequazione ax 1 + bx 2 ≤ c

In Figura 3 è rappresentata la retta di equazione ax 1 + bx 2 = c. Riscrivendo l’equazione con l’aggiunta della variabile slack

ax 1 + bx 2 + y = c

si può dedurre che:  le soluzioni aventi y = 0 corrispondono ai punti della retta ax 1 + bx 2 = c , ovvero ai punti che soddisfano la disequazione con il segno di uguaglianza.  le soluzioni aventi y > 0 corrispondono ai punti del semipiano ax 1 + bx 2 < c , ovvero ai punti del semipiano che soddisfano l’equazione con il segno “strettamente minore”;  le soluzioni aventi y < 0 corrispondono ai punti del semipiano ax 1 + bx 2 > c , ovvero ai punti del semipiano che non soddisfano l’equazione. Il valore assoluto della y può essere interpretato come un indicatore della distanza dalla condizione di uguaglianza.

Figura 3 – Interpretazione variabili slack

Si consideri la disequazione ax 1 + bx 2 ≥ c In Figura 4 è rappresentata la retta di equazione ax 1 + bx 2 = c. Riscrivendo l’equazione con l’aggiunta della variabile slack

ax 1 + bx 2 - y = c

si può dedurre che:  le soluzioni aventi y = 0 corrispondono ai punti della retta ax 1 + bx 2 = c , ovvero ai punti che soddisfano la disequazione con il segno di uguaglianza.  le soluzioni aventi y > 0 corrispondono ai punti del semipiano ax 1 + bx 2 > c , ovvero ai punti del semipiano che soddisfano l’equazione con il segno “strettamente minore”;  le soluzioni aventi y < 0 corrispondono ai punti del semipiano ax 1 + bx 2 < c , ovvero ai punti del semipiano che non soddisfano l’equazione. Il valore assoluto della y può essere interpretato come un indicatore della distanza dalla condizione di uguaglianza. In generale si può dire che il valore assoluto della y può essere interpretato come un indicatore della distanza dalla condizione di uguaglianza e che la condizione y ≥0, sia la y una variabile slack o di surplus, assicura il soddisfacimento della disequazione di partenza.

Figura 4 – Interpretazione variabili di surplus

ax 1 +bx 2 < c

y>

ax 1 +bx 2 > c

y<

ax 1 +bx 2 = c

y=

ax 1 +bx 2 < c

y<

ax 1 +bx 2 > c

y>

ax 1 +bx 2 = c

y=

1.13 - Interpretazione geometrica della classificazione delle soluzioni

Per interpretare geometricamente la classificazione delle soluzioni si utilizzerà l’esempio di problema di programmazione lineare illustrato in Figura 1.

1 2

1 2

1 2

1 2

1 2

x x

x x

x x

x x

sa

z x x Max

il cui dominio è nuovamente indicato in Figura 65

Figura 5 – Dominio di ammissibilità di un problema di PL

Il problema nella sua forma standard presenta m =3 vincoli ed n =5 variabili e risulta pertanto caratterizzato da ∞^2 soluzioni. In questo caso, quindi, una soluzione di base è caratterizzata da m = variabili di base che devono risultare diverse da 0 ed n-m =2 variabili non di base pari a zero. Si considerino quindi i punti indicati in Figura 6 e, in particolare i punti: E: generico punto interno al dominio di ammissibilità (in verde); F: generico punto esterno al dominio di ammissibilità (in arancione); A, B, C, D: vertici del dominio di ammissibilità (in giallo); G,H,I,L,O: intersezioni di due vincoli, esterni al dominio di ammissibilità, (in grigio);

Il punto E è caratterizzato dal presentare tutte le variabili >0 dal momento che le x 1 e x 2 sono > e le y 1 , y 2 e y 3 sono anch’esse >0 perché il punto soddisfa tutti i vincoli senza saturarli. Il punto F presenta le variabili x 1 , x 2 , y 2 e y 3 >0 perché il punto soddisfa tutti i vincoli di non negatività e i vincoli 2 e 3 senza saturarli; la y 1 risulta, invece, <0 perché il vincolo 1 non risulta soddisfatto.

I punti A, B, C, D, vertici del dominio di ammissibilità, presentano m =3 variabili >0 e n-m = variabili =0 la cui individuazione dipende dai vincoli che si intersecano nel vertice. In particolare A presenta y 2 = y 3 =0, B presenta y 1 = y 2 =0, C presenta x 2 = y 1 =0, D presenta x 2 = y 3 =0. I punti G, H, I, L, O, esterni al dominio di ammissibilità, intersezioni di due vincoli, presentano n-m =2 variabili =0 la cui individuazione dipende dai vincoli che si intersecano nel vertice e le restanti m =3 non tutte >0, ovvero almeno una variabile risulta <0. Ad esempio il punto M ha x 2 = y 2 =0, y 1 >0 e x 1 , y 3 < 0.

E

F B I

L

A C D

G

H

O

Vincolo 2

Vincolo 1 Vincolo 3

Le considerazioni effettuate sul segno delle variabili sono sintetizzate in Tabella 1 nella quale si riporta, per ciascun punto, il segno delle variabili.

Variabili Punti x 1 x 2 y 1 y 2 y 3 A > > > 0 0 B > > 0 0 > C >^0 0 >^ > D >^0 >^ >^0 E > > > > > F > > < > > G < 0 > 0 < H^0 >^ >^0 < I^0 >^ >^ <^0 L < < < 0 0 O 0 0 > > < Tabella 1 – Caratterizzazione delle soluzioni indicate nell’esempio di Figura 1

Sulla base di queste considerazioni, sviluppate per un dominio di ammissibilità nello spazio R^2 ma facilmente estendibili al caso più generale, si può dedurre che dato un sistema

A x = b x 0

di m equazioni in n variabili a rango massimo pari a mle soluzioni ammissibili, dal momento soddisfano il sistema A x =b e x0 , fanno parte del dominio di ammissibilità;le soluzioni non ammissibili, poiché presentano almeno una variabile negativa, sono esterne al dominio di ammissibilità ;  Le soluzioni di base, che sono soluzioni del sistema A x=b con n-m variabili =0 ed m variabili ≠0. Se le m variabili (variabili di base) sono >0, esse sono dette soluzioni di base ammissibili e corrispondono a vertici del dominio di ammissibilità ; se almeno una delle m variabili di base risulta <0, esse sono dette soluzioni di base non ammissibili e sono esterne al dominio di ammissibilità corrispondenti ad intersezioni di n-m vincoli ;  Le soluzioni di base degeneri, che sono soluzioni del sistema A x=b con più di n-m variabili =0 e, quindi meno di m variabili ≠0. Anche in questo caso se le variabili ≠0 sono tutta >0, si parla di soluzioni di base ammissibili degeneri mentre se almeno una delle variabile risulta <0, esse sono dette soluzioni di base non ammissibili degeneri.

Si può dimostrare inoltre che ad una soluzione di base ammissibile corrisponde una soluzione di vertice e che ad un vertice del dominio di ammissibilità corrisponde una soluzione di base ammissibile. Dal punto di vista geometrico tale circostanza si comprende per il fatto che se rappresentiamo il dominio di ammissibilità in uno spazio ad n-m dimensioni spazio delle variabili decisionali), un vertice in questo spazio sarà individuato dalla intersezione di n-m iperpiani. Ad esempio nel caso n-m=2, un vertice sarà individuato dalla intersezione di n.2 rette; nel caso n-m=3, un vertice sarà individuato dalla intersezione di n.3 piani e così via. Quest’ultima corrispondenza, come si vedrà in seguito, non è soddisfatta in presenza di soluzioni di base cosiddette degeneri.

Da questo risultato si può desumere che la soluzione ottima di un problema di programmazione lineare si trova in corrispondenza di una soluzione di base ammissibile. Pertanto la ricerca della soluzione ottima può essere limitata all’interno dell’insieme delle soluzioni di base ammissibili.

1.16 – Risoluzione geometrica di un problema di programmazione lineare

Si indichi con A il dominio di ammissibilità del problema di programmazione lineare e con x o un punto appartenente ad A. Si definisce direzione ammissibile a partire da x o una qualsiasi direzione d caratterizzata dal fatto che esiste almeno uno scalare α>0 tale che il punto

x ’= x o + α d

appartienga ancora ad A. In altri termini a partire da x o è possibile effettuare uno spostamento, comunque “piccolo”, lungo la direzione d senza uscire dall’insieme A. Considerando la funzione obiettivo z , e un punto x oA, una direzione d risulta

 crescente se  z ( x o) d >0;  decrescente se  z ( x o) d <0;  costante se  z ( x o) d =0; In pratica se si considera l’angolo formato tra la direzione del gradiente calcolato nel punto x o e la direzione d , la direzione risulta crescente se l’angolo è inferiore a 90o, decrescente se l’angolo è superiore a 90o, costante se l’angolo è di 90o. Nel caso di funzione obiettivo lineare, poiché il gradiente della funzione obiettivo è costante, si può affermare che:  in corrispondenza di un punto interno ad A tutte le direzioni sono ammissibili e possono essere crescenti, decrescenti o costanti in funzione dell’angolo formato con la direzione del gradiente;  in corrispondenza di un punto della frontiera si individuano direzioni ammissibili e non ammissibili;  in corrispondenza di un vertice le direzioni ammissibili sono comprese in un cono individuato dalle direzione degli spigoli.

Considerando un problema a massimizzare (minimizzare) si può, inoltre, facilmente dedurre che:  un punto del dominio di ammissibilità in corrispondenza del quale esistono direzioni ammissibili crescenti (decrescenti) non è soluzione ottima del problema;

Da queste considerazioni si può dedurre che la soluzione ottima di un problema si troverà in corrispondenza di un punto di frontiera e, in particolare, in corrispondenza di un vertice. Pertanto nella individuazione della soluzione ottima possono verificarsi i seguenti casi.

Dominio di ammissibilità vuoto → Non esistono soluzioni ammissibili e il problema si dice inconsistente.

Dominio di ammissibilità limitato a) Soluzione ottima unica corrispondente ad un vertice del dominio di ammissibilità. b) Infinite soluzioni ottime corrispondenti ad uno spigolo del dominio di ammissibilità; questa circostanza si verifica quando la funzione obiettivo è parallela ad uno dei vincoli.

Dominio di ammissibilità illimitato a) Soluzione ottima unica corrispondente ad un vertice del dominio di ammissibilità. b) Soluzione ottima illimitata.

Sulla base delle definizioni e delle considerazioni sviluppate è possibile individuare una procedura geometrica per la risoluzione del problema. Si supponga di dover risolvere un problema di programmazione lineare a massimizzare (minimizzare) e di aver individuato un primo vertice del dominio di ammissibilità (vertice corrente). Se in corrispondenza di tale vertice non esistono direzioni crescenti (decrescenti) il vertice in questione è soluzione ottima. In caso contrario, ovvero in presenza di soluzioni migliorative, si

scelga una direzione migliorativa corrispondente ad uno spigolo del dominio di ammissibilità e la si percorra fino all’individuazione di un vertice adiacente che rappresenterà il nuovo vertice corrente. La procedura si itera fino a quando in corrispondenza del vertice corrente vi sono direzioni crescenti (decrescenti). Se in corrispondenza del vertice corrente esistono più spigoli le cui direzioni risultano migliorative è ragionevole (ma non necessario) scegliere di percorrere lo spigolo che produce il maggior incremento della funzione obiettivo, ovvero la direzione che forma l’angolo minore (maggiore) con la direzione del gradiente. La procedura è illustrata schematicamente in Figura 6.

Figura 6 – Procedura geometrica per la risoluzione di un problema di PL

1.17 - Passaggio tra vertici adiacenti.

Si considerino due vertici adiacenti, ovvero due vertici uniti da uno spigolo del dominio di ammissibilità (es: A-B). Dal punto di vista geometrico per passare da un vertice ad uno adiacente bisogna, pertanto, percorrere lo spigolo che li unisce. Volendo realizzare questa operazione analiticamente si tratterebbe di passare da una soluzione ammissibile ad un’altra che risulti adiacente. A tal fine si può sfruttare un’interessante proprietà, deducibile dall’analisi della Tabella

  1. Analizzando il segno delle variabili associate a vertici adiacenti, si può osservare che la composizione della base, ovvero l’insieme delle variabili >0, differisce per una sola variabile. Si consideri, ad esempio il vertice A caratterizzato da una composizione della base ( x 1 , x 2 , y 1 ). Spostandosi da A lungo lo spigolo AB la variabile y 3 assume valore >0. Una volta raggiunto il punto B la variabile y 1 diventa pari a 0 e la composizione della base di B ( x 1 , x 2 , y 3 ). Pertanto per passare in generale da una soluzione di vertice S cui corrisponde la base B S ad una soluzione adiacente T cui corrisponde la base B T, bisogna individuare una variabile che non appartiene alla base B S (variabile entrante) che andrà a sostituire una variabile della base B S (variabile uscente).

Individuazione di un primo vertice corrente

Test di ottimalità Il vertice corrente è ottimo?

Stop

Passaggio ad un vertice adiacente migliore ( vertice corrente )

Si analizzano le direzioni degli spigoli che partono dal vertice corrente

Se non esistono direzioni migliorative la soluzione è ottima; altrimenti si percorre uno spigolo corrispondente ad una direzione migliorativa

si

no

m mnm nm m

i inm nm i

nm nm

a x a x b

a x a x b

a x a x b

 

 

 

11 ,

11 ,

111 1 , 1

Trasformando il sistema in forma standard con l’aggiunta di m variabili slack e riportando anche l’espressione della funzione obiettivo si ottiene una forma canonica del sistema ad m+1 equazioni, compresa la funzione obiettivo.

11

11 ,

11 ,

111 1 , 1 1

 

 

 

 

cx c x z

a x a x y b

ax a x y b

a x a x y b

nm n m

m mnm nm m m

i inm nm i i

nm nm

e quindi, annullando le variabili x 1 = ……… = x n-m= 0, si ottiene la soluzione di base ammissibile

1 1

z

y b

y b

y b

m m

i i

Test di ottimalità Si supponga di avere un sistema in forma canonica rispetto alle variabili di base x B1, x B2, ….. x Bm e la funzione obiettivo cui corrisponde la soluzione di base ammissibile xB1= b ’ 1 , xB2= b ’ 2 , (^) …..xBm= b ’m e z = z ’. Per verificare se la soluzione corrente è ottima si valuta se l’ingresso in base una nuova variabile x NBs possa produrre un miglioramento del valore della funzione obiettivo. A tal fine si può calcolare la variazione che la funzione obiettivo subirebbe per effetto del passaggio della variabile x NBs dal valore 0 al valore 1. Poiché il sistema risulta in forma canonica la funzione obiettivo è espressa in funzione delle sole variabili non in base, ovvero

c ' (^) NB 1 xNB 1  ......  cNBs ' xNBs ...... c ' NBnmxNBnmzz '

Ovvero zc ' NB 1 xNB 1 ......  cNBs ' xNBs ...... c ' NBnmxNBnmz '

Ne consegue che

( 1 ) ( 0 ) '^ ' ' '  zzxNBs   zxNBs   cNBszzcNBs

In pratica il coefficiente di costo ridotto della generica variabile non di base x NBs rappresenta la variazione che la funzione obiettivo subirebbe nel caso in cui la variabile x NBs passasse dal valore 0 al valore 1. Ne consegue che il test di ottimalità consiste nell’analizzare i coefficienti di costo ridotti. Se in un problema a massimizzare (minimizzare) i coefficienti di costo ridotti delle variabili non di base risultano tutti non positivi (non negativi) la soluzione di base ammissibile corrente è soluzione ottima del problema.

Passaggio ad una nuova soluzione di base ammissibile migliore Nel caso in cui il test di ottimalità non risulti soddisfatto significa che è possibile migliorare il valore della funzione obiettivo con l’ingresso in base di una nuova variabile x s. All’ingresso in base x s dovrà succedere l’uscita dalla base di una variabile x r della base corrente: in questo modo si perviene ad una nuova soluzione di base ammissibile. Per individuare la variabile entrante x s, nel caso di problema a massimizzare (minimizzare) si sceglie quella cui è associato un valore c’s>0 (c’s<0). Per cercare di ridurre il numero di iterazioni necessario al raggiungimento della soluzione ottima, in particolare si sceglie quella cui è associato il valore massimo c’s>0 (valore minimo c’s<0). L’ingresso in base di una nuova variabile x s, produce una variazione nei valori delle variabili di base x B1,…, x Bm. Infatti nel sistema in forma canonica in cui è stata evidenziata la presenza della variabile x s

11

11 ,

11 ,

11 1 1 1 , 1 1

cx c x c x z z

a x a x a x x b

a x a x a x x b

a x a x a x x b

s s nm n m

m ms s mnm nm Bm m

i is s inm nm Bi i

s s nm nm B

 

 

 

 

annullando le variabili di non di base, ad eccezione della x s, si ottiene

ms s Bm m

is s Bi i

s s B

a x x b

a x x b

a x x b

ovvero

Bm m ms s

Bi i is s

B s s

x b a x

x b a x

x b a x

Le espressioni indicano il comportamento delle variabili in base per effetto dell’ingresso in base di una nuova variabile x s. In particolare per la generica variabile xBi , si possono distinguere tre casi

a ’is>0  la variabile xBi tende a diminuire annullandosi in corrispondenza del valore x s tale che b ’i- a ’is x s=0  x s= b ’i/ a ’is; a ’is=0  la variabile xBi resta costante; a ’is<0  la variabile xBi tende ad aumentare.

Poiché le variabili xBi devono rispettare il vincolo di non negatività si possono distinguere due casi:

a) Tutti i coefficienti a ’is risultano  0 In questo caso la condizione di ammissibilità è sempre soddisfatta per tutte le variabili in base xBi. Pertanto il valore della variabile entrante xs può crescere in definitivamente senza mai violare i vicoli di non negatività e ci si trova in corrispondenza di un problema con soluzione ottima illimitata.

b) Esiste almeno un coefficiente a ’is> In questo caso la corrispondente variabile in base xBi. si annulla per x s= b ’i/ a ’is. Pertanto la variabile uscente xr è quella che si annulla “per prima”, in corrispondenza del valore minimo del rapporto

'

' ' : 0

' min' is

i rs ra

r a

b a

b is

Una volta individuata la variabile entrante x s e la variabile uscente x r si provvede a trasformare il sistema al fine di metterlo in forma canonica rispetto alle variabili x B1,… x Br-1, x Bs, x Br+1…, x Bm, ovvero rispetto all’insieme delle variabili in base con la sola sostituzione della variabile entrante x s al posto della variabile uscente x r. Tale trasformazione viene realizzata con la cosiddetta operazione del pivot.