caricato da trampolo-06-risposte

Ricerca operativa

annuncio pubblicitario
Frederick S. Hillier
Gerald J. Lieberman
Ricerca operativa
Ottava edizione
McGraw-Hill
i.':
..._______
:li
. ,_ "'!eb ~-r?
s1te ~
,
l
Frederick S. Hillier
Gerald J. Lieberman
Ricerca operativa
Ottava edizione
Edizione italiana a cura di
Renato De Leone
Traduzione a cura di
Mario Bisignano
Saul Giarratana
Marzia Rivi
McGraw-Hill
Milano • New York • San Francisco • Washington D. C . • Auckland
Bogota • Lisboa • London • Madrid • Mexico City • Montreal
New Delhi • San Juan • Singapore • Sydney • Tokyo • Toronto
Alla memoria dei nostri genitori
E alla memoria del mio amatissimo mentore,
Gera /dJ Lieberman,
uno dei veri giganti nel nostro campo.
Indice
Prefazione all'edizione originale
Prefazione all'edizione italiana
1
l
2
Xl
xv
Introduzione
1
1.1
1.2
1.3
2
Le origini della ricerca operativa
La natura della ricerca operativa
L'influenza della ricerca operativa
3
Riferimenti bibliografici
5
Una panoramica sui modelli nella ricerca operativa
6
2.1
2.2
2.3
2.4
2.5
2.6
2.7
Definizione del problema e raccolta dei dati
Formulazione del modello matematico
Determinazione delle soluzioni del modello
Test e validazione del modello
Predisposizione di un sistema di supporto all' applicazione pratica
del modello
Implementazione del sistema
Conclusioni
6
lO
13
15
17
18
19
Riferimenti bibliografici
20
Problemi
20
,i) Introduzione alla programmazione lineare
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
Un primo esempio di problema di programmazione lineare
Il modello di programmazione lineare
Le ipotesi della programmazione lineare
Esempi aggiuntivi
Alcuni classici casi di studio
Formulare e risolvere modelli di programmazione lineare mediante un
foglio elettronico
Formulare modelli di programmazione lineare di grandi dimensioni
Conclusioni
22
23
28
33
40
56
61
68
71
Riferimenti bibliografici
71
Problemi
72
Risoluzione di problemi di programmazione lineare:
il metodo del simplesso
76
4.1
76
L' essenza del metodo del simplesso
4.2
4.3
4.4
4.5
4.6
4. 7
4.8
4.9
4.10
Determinazione della soluzione iniziale per il metodo del simplesso
L' algebra del metodo del simplesso
Il metodo del simplesso in forma tabellare
La scelta delle variabili entranti e uscenti nel metodo del simplesso
Problemi di programmazione lineare non in forma standard
Analisi postottimale
Implementazione al computer
L' approccio a punti interni per risolvere problemi di
programmazione lineare
Conclusioni
Riferimenti bibliografici
Problemi
8
La teor;a del metodo del slmplesso
5. 1
5.2
5.3
5.4
Fondamenti del metodo del simplesso
II metodo del simplesso rivisitato
Un concetto fondamentale
Conclusioni
Riferimenti bibliografici
Problemi
6
Teoria della dualità e analisi della sensitività
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
7
123
127
128
128
134
134
145
153
160
161
161
165
165
173
176
181
185
187
194
214
228
Riferimenti bibliografici
229
Problemi
229
l problemi di trasporto e assegnamento
7.1
7.2
7.3
7.4
7.5
r
L' essenza della teoria della dualità
Interpretazione economica della dualità
Relazioni primale-duale
Le altre forme del problema primale
Il ruolo della teoria della dualità nell'analisi della sensitività
L 'essenza dell'analisi della sensitività
Applicazione dell'analisi della sensitività
Analisi della sensitività mediante foglio elettronico
Conclusioni
81
84
89
93
97
114
121
II problema di trasporto
Una versione specializzata del metodo del simplesso per il problema
di trasporto
II problema di assegnamento
Un algoritmo specifico per il problema di assegnamento
Conclusioni
234
235
248
262
271
274
Riferimenti bibliografici
275
Problemi
275
-).._"'
,...8 / Modelli di ottimizzazione su rete
8.1
8.2
8.3
8.4
Un primo esempio
La terminologia delle reti
Il problema di cammino minimo
Il problema di minimo albero ricoprente
(minimum spanning tree)
280
281
282
285
28 9
IX
INDICE
8.5
8.6
8.7
8.8
8.9
9
Il problema di massimo flusso
Il problema di flusso a costo minimo
Il simplesso su rete
Tecniche reticolari per la gestione di progetti
Conclusioni
294
301
309
319
331
Riferimenti bibliografici
331
Problemi
331
La programmazione intera
9.1
9.2
9.3
9.4
9.5
9.6
336
Un primo esempio di problema di programmazione binaria
Alcune applicazioni di programmazione lineare con variabili binarie
Uso innovativo delle variabili binarie nella formulazione di modelli
Alcune fonnulazioni di problemi di PLI
La risoluzione di problemi di programmazione intera
L'algoritmo di branch-and-bound e la sua applicazione alla
programmazione binaria
Un algoritmo di branch-and-bound per la programmazione intera mista
9.7
Il metodo di branch-and-cut per risolvere problemi di
9.8
programmazione binaria
9.9
La programmazione con vincoli
9 .l O Conclusioni
337
339
344
350
358
Riferimenti bibliografici
390
Problemi
391
l O Programmazione non lineare
l 0.1
10.2
l 0.3
l 0.4
l 0.5
10.6
362
372
378
384
390
396
Alcune applicazioni della programmazione nonlineare
Illustrazione grafica di problemi di programmazione nonlineare
Classi di problemi di programmazione nonlineare
Ottimizzazione nonvinco lata in una sola variabile
Ottimizzazione nonvincolata in più variabili
Le condizioni di Karush-Kuhn-Tucker (KKT) per l'ottimizzazione
vincolata
l O. 7 La programmazione quadrati ca
l 0.8 Programmazione separabile
10.9 Programmazione convessa
l 0.1 O Programmazione non convessa (con l'uso di Ex ce l)
l 0.11 Conclusioni
421
425
430
436
444
446
Riferimenti bibliografici
447
Problemi
447
11 Metaeuristiche
11 .1
11.2
11.3
11.4
11.5
La natura delle metaeuristiche
Tabu Search
Simulated annealing
Algoritmi genetici
Conclusioni
397
400
405
41 O
415
453
454
460
471
479
487
Riferimenti bibliografici
488
Problemi
489
x
INDICE
12 Teoria delle decisioni
12.1
12.2
12.3
12.4
12.5
12.6
12.7
Esempio
Decisione senza sperimentazione
Decisione con sperimentazione
L ' albero delle decisioni
Teoria dell 'utilità
L'applicazione pratica della teoria delle decisioni
Conclusioni
491
492
492
497
503
507
513
516
Riferimenti bibliografici
516
Problemi
517
13 Teoria delle code
13 .l
13 .2
13 .3
13.4
13 .5
13.6
13.7
13 .8
13 .9
13.10
13 .Il
Esempio
Le componenti fondamentali dei modelli di coda
Esempi di sistemi reali di file di attesa
Il ruolo della distribuzione esponenziale
Il processo di nascita e morte
Modelli di code basati sul processo di nascita e morte
Modelli di coda con distribuzioni non esponenziali
Modelli di coda con differenti discipline di priorità
Reti di code
Applicazione della teoria delle code
Conclusioni
521
522
522
527
530
536
540
551
559
564
567
571
Riferimenti bibliografici
571
Problemi
572
Appendice 1 - Convessità
577
Appendice 2 - Metodi classici di ottimizzazione
582
Appendice 3 - Le matrici e le operazioni con le matrici
585
Risposte parziali di problemi proposti
591
Indice analitico
597
Prefazione all'edizione originale
Quando Jerry Lieberman e io abbiamo cominciato a lavorare alla prima edizione di questo
libro, 40 anni fa, ci eravamo prefissati l'obiettivo di sviluppare un libro di testo innovativo che fosse d'aiuto nella costruzione del futuro indirizzo della didattica nel campo, allora
emergente, della Ricerca Operativa. Con il susseguirsi delle edizioni, è diventato sempre
meno chiaro il modo migliore di raggiungere tale obiettivo mentre è apparso, con evidenza sempre maggiore, che la richiesta del libro stava superando le nostre stesse aspettative.
Nessuno di noi avrebbe mai immaginato che le richieste da tutto il mondo sarebbero continuate per un periodo di tempo tanto lungo.
L'entusiastica accoglienza tributata alle prime sette edizioni è stata per noi molto gratificante. Abbiamo, inoltre, guardato con orgoglio alla menzione, ricevuta nel 1995, dalla
sesta edizione del libro nell'ambito del premio INFORMS Lanchester (premio riservato
alla migliore pubblicazione dell'anno in lingua inglese nel campo della Ricerca
Operativa), e in particolare alla seguente frase : "Questa è l'ultima edizione del libro di testo che ha introdotto circa un milione e mezzo di studenti ai metodi e ai modelli della
Ricerca Operativa. Nonostante l' introduzione di parecchio materiale riguardante diversi
nuovi argomenti, la sesta edizione mantiene un elevato standard di chiarezza e quella eccellenza espositiva a lungo riconosciuta agli autori. Nell' onorare questo lavoro, la commissione giudicatrice riconosce l'enorme impatto che il testo di Hillier e Lieberman ha
avuto nel nostro campo, non soltanto negli Stati Uniti D ' America ma anche in tutto il
mondo grazie alle numerose traduzioni di cui è stato oggetto".
Quando abbiamo iniziato a lavorare a questo libro, 40 anni fa, Jerry era già un esponente di spicco del suo campo, un accreditato scrittore di libri di testo e il direttore di un celebre
progetto di Ricerca Operativa alla Stanford University. Io ero un giovane assistente all'inizio della carriera. Lavorare e apprendere con un simile maestro è stata per me una straordinaria occasione. Sarò sempre in debito con Jerry per avermi concesso tale opportunità.
Oggi, purtroppo, Jerry non è più tra noi. Durante la malattia che lo ha progressivamente condotto alla morte quasi cinque anni fa, ho deciso di dedicarmi alla successiva
edizione di questo libro, mantenendo uno standard che avrebbe fatto pienamente onore a
Jerry. Ho, pertanto, deciso di ritirarmi dalle responsabilità dell'insegnamento a Stanford
per dedicarmi completamente alla stesura del libro. Ciò mi ha permesso di riservare molto
più tempo alla preparazione di questa nuova edizione. Mi ha, inoltre, consentito di osservare le nuove tendenze e i nuovi sviluppi nel campo della ricerca operativa in modo da aggiornare questa edizione.
L'uso del libro
L'obiettivo di questa edizione è il miglioramento della qualità rispetto alle precedenti edizioni per meglio andare incontro alle necessità degli studenti di oggi. I nuovi argomenti
qui trattati e i numerosi aggiornamenti rendono questo libro ancor più adatto a un moderno corso che voglia prendere in esame le attuali tecniche impiegate nel settore. La diminuzione del numero di pagine rende questo testo più pratico per un corso introduttivo.
Xli
PREFAZIONE ALL'EDIZIONE ORIGINALE
Il team editoriale della McGraw-Hill e io pensiamo che la revisione abbia reso questa edizione qualcosa di più di un " libro per studenti" -chiaro, interessante e ben organizzato
con molti utili esempi e illustrazioni, buone motivazioni e prospettive, importante materiale facile da reperire e divertenti esercitazioni, e senza troppe notazioni, te1minologie e
concetti matematici. Siamo convinti che i numerosi docenti che già hanno utilizzato le
precedenti edizioni concorderanno sul fatto che questa sia l'edizione migliore. Questa sensazione è stata rafforzata dalle entusiastiche recensioni delle bozze.
I prerequisiti per un corso che voglia utilizzare questo libro sono relativamente modesti. Come per le precedenti edizioni, i concetti matematici sono stati mantenuti a un livello
relativamente elementare.
La maggior parte dei capitoli (introduzione, programmazione lineare e programmazione matematica) non richiedono nozioni matematiche superiori a quelle fomite nella
scuola secondaria. Concetti di analisi matematica sono stati utilizzati solamente nel
Capitolo l O (Programmazione nonlineare ). La notazione matriciale è stata impiegata nel
Capitolo 5 (La teoria del metodo del simplesso), nel Capitolo 6 (Teoria della dualità e analisi della sensibilità). Per quanto riguarda il capitolo 13 (Teoria delle code) viene assunta
una certa conoscenza della teoria della probabilità mentre l'analisi matematica viene utilizzata di rado.
Il contenuto di questo libro è indirizzato principalmente agli studenti uni versitari degli ultimi anni (inclusi gli studenti del secondo anno particolarmente preparati) e agli studenti del primo anno dei corsi di master. Grazie alla grande flessibilità del libro, esistono
vari modi di confezionare un corso. I Capitoli l e 2 costituiscono un ' introduzione alla ricerca operativa. I capitoli dal 3 al l O (programmazione lineare programmazione matematica) possono essere essenzialmente inclusi in maniera indipendente rispetto agli ultimi 3
capitoli. Inoltre, i singoli capitoli dal 3 al 14 sono quasi indipendenti , a eccezione per tutti
quelli che utilizzano il materiale di base presentato nel Capitolo 3 e nel Capitolo 4. Il
Capito lo 6 opera a partire dal Capitolo 5. Il Paragrafo 8.6 assume la conoscenza dei problemi formulati nei Paragrafi 7 .l e 7.3.
Un elementare corso introduttivo sulla programmazione lineare, la programmazione
matematica e alcuni modelli probabilistici può essere presentato in un trimestre (circa 40
ore) o un semestre, traendo selettivamente del materiale dal libro . I capitoli da l a 7 (e forse parte del Capitolo 8) formano una base eccellente per un corso (da un trimestre) di programmazione lineare. Il materiale nei capitoli dal 8 al 12 copre gli argomenti per un altro
corso (da un trimestre) su alcuni modelli deterministici. Infine, il materiale nel capitolo 13
fornisce una ottima introduzione alla teoria delle code e alle sue applicazioni.
Ringraziamenti
Sono debitore nei confronti di un eccellente gruppo di assistenti che hanno fornito saggi
consigli durante le varie fasi del processo di revisione. Tale gruppo comprende:
Erin Backer, University ofMassachusetts (Amherst)
Richard Bernhard, North Carolina State University (Raleigh)
Joseph Domblesf..y, Marquette University
Richard Feldman, Texas A&M University
Jill Hardin, Virginia Commonwealth University
Kathy Hoke, University ofRichmond
Cerry Klein, University ofMissouri (Columbia)
Emanuel Melachrinoudis, Northeastern University
Robert Molzon, University ofKentucky
John Mullen, New Mexico State University
Joseph Pignatiello, Florida A&M University and Florida State University
Pakize Simin Pulat, University of Oklahoma
Jayant Rajgopal, University ofPittsburgh
PREFAZIONE ALL'EDIZIONE ORIGINALE
Xlii
Christopher Rump, State University ofNew York (Buffalo)
Pau! Savory, University ofNebraska (Lincoln)
James Simpson, Florida State University
Reha Tutunca , Carnegie Mellon University
Jose Ventura , Pennsylvania State University
John Wu, Kansas State University
Un ringraziamento particolare va, inoltre, a lrv Lustig, Fred Glover e Sven Axsater per i
loro competenti pareri sulle bozze dei nuovi paragrafi e capitoli rispettivamente sulla programmazione vincolata, le metauristiche e altre parti del testo. Ed Rothberg ha fornito le
informazioni aggiornate sui valori presentati nei problemi risolti. Voglio, inoltre, ringraziare i molti docentie studenti che mi hanno inviato dei messaggi di posta elettronica in
merito alla settima edizione.
Questo libro è stato più che mai un lavoro di squadra. I nostri autori dei casi, Karl
Schmedders e Molly Stephens (entrambi laureati alla Stanford) hanno scritto numerosi casi elaborati per la settima edizione che sono stati interamente inseriti nella nuova edizione.
Uno dei nostri studenti di dottorato, Che-Lin Su, ha compiuto un eccellente lavoro nella
preparazione delle risoluzioni manuali.
È stato un vero piacere lavorare con l'intero staff editoriale della McGraw-Hill, che
comprende Suzanne Jeans (Senior Sponsoring Editor), Lisa Kalner Williams
(Developmental Editor), Debra Matteson (Managing Developmental Editor), Katie White
(Developmental Editor) e Mary Powers (Senior Project Manager).
In considerazione del fatto che molti singoli individui hanno dato un notevole contributo alla realizzazione di questa edizione, vorrei invitare ciascuno di voi a contribuire alla
realizzazione della prossima edizione del libro, utilizzando l'indirizzo di posta elettronica
sottostante, per inviare i vostri commenti, suggerimenti e la presenza di eventuali errori,
per aiutarmi nel miglioramento del futuro libro. Nel fornire il mio indirizzo di posta elettronica, assicuro ai docenti che proseguirò nella politica di non fornire le soluzioni dei
problemi e dei casi presenti nel libro a nessuno (inclusi i vostri studenti) di quelli che mi
contatteranno.
Godetevi il libro.
Febbraio 2004
Frederick S.Hillier
Stanford Univerity
([email protected])
Prefazione all'edizione italiana
L'obiettivo primario di questa versione italiana del "classico" testo di Ricerca operativa
di Hillier e Lieberman è quello di fornire a studenti e docenti un testo che sia allo stesso
tempo agile e snello ma anche completo con numerosi esempi applicativi ed esercizi proposti. I capitoli da l a 9 possono essere utilizzati in un primo corso di Ricerca operativa e
coprono in buon dettaglio tutti gli aspetti più importanti della programmazione lineare,
dell'ottimizzazione su rete e della programmazione lineare intera. I successivi capitoli
possono servire sia a integrare il materiale incluso sempre rivolto agli studenti di un primo
corso o di un successivo secondo corso di Ricerca operativa. Gli aspetti più importanti
della programmazione nonlineare sono presentati nel Capitolo l O. Il successivo Capitolo
11 presenta alcune delle più moderne tecniche euristiche per la risoluzione di programmi
di ottimizzazione combinatoria. L'ultimo capitolo fornisce un'ottima introduzione alla
teoria delle code presentandone i concetti fondamentali e gli aspetti sia teorici sia pratici.
Nella traduzione si è privilegiato il rispetto del testo originario eccetto quando questa
fedeltà poteva originare qualche confusione terminologica nel lettore, soprattutto in quello
al primo incontro/scontro con la Ricerca operativa. Per esempio si è deciso di non introdurre i concetti (presenti nella versione inglese) di "corner point" e "feasible corner
point" , utilizzando invece i termini più usati di "vertice" e " vertice ammissibile", dando
comunque una prima definizione intuitivo/geometrica nel Capitolo 3 e successivamente
una più precisa definizione.
Relativamente al metodo del simplesso, esso viene introdotto dapprima presentandone le sue caratteristiche geometriche e solo in un secondo momento viene presentata l'algebra del metodo del sirnplesso e la forma gabellare di questo metodo. Alla teoria del metodo del simplesso è dedicato un intero capitolo (Capitolo 5) dove viene discussa la forma
matriciale (metodo del simplesso rivisitato o rivisto). Questo capitolo può anche essere
omesso senza creare difficoltà nella comprensione dei capitoli successivi.
I problemi di trasporto e assegnamento sono trattati nel Capitolo 7, mentre la teoria e
i metodi dell'ottimizzazione su rete sono presentati in dettaglio nel successivo Capitolo 8.
I problemi di ottimizzazione intera sono presentati nei Capitoli 9 e 11 . Quest'ultimo
fornisce un'introduzione alle metaeuristiche e presenta in dettaglio Tabu Search,
Simulated Annealing e Algoritmi Genetici.
La programmazione nonlineare è l'oggetto del Capitolo 10; le Appendici l e 2 contengono un utile background per questo capitolo.
Gli ultimi due capitoli sono dedicati rispettivamente alla teoria delle decisioni e alla
teoria delle code. Risulta naturalmente impossibile una trattazione completa di questi due
argomenti (ciascuno di essi richiederebbe un testo dedicato) ma vengono qui presentati i
risultati fondamentali fornendo un'utile e completa introduzione a questi due argomenti.
Ogni capitolo è corredato di una soluzione di esercizi. Di quelli contrassegnati con *
viene fornita la soluzione in fondo allibro.
XVI
PREFAZIONE All'EDIZIONE ITALIANA
Ringraziamenti
Desidero ringraziare Emilia Marchitto e Cinzia Lazzari, che mi hanno aiutato nella revisione delle bozze.
Vorrei ringraziare inoltre per il loro contributo alla realizzazione del progetto: Paolo
Bortot (Università Ca' Foscari di Venezia); Raffaele Cernili (Università degli Studi di
Salerno); Enza Messina (Università degli Studi di Milano - Bicocca); Giovanni Righini
(Università degli Studi di Milano); Chiara Rossignoli (Università " Carlo Cattaneo" Liuc di Castellanza); Fabio Schoen (Università degli Studi di Firenze).
Settembre 2005
Renato De Leone
Università degli Studi di Camerino
CAPITOLO
Introduzione
1.1
LE ORIGINI DELLA RICERCA OPERATIVA
Fin dall'avvento della Rivoluzione Industriale, il mondo ha assistito a un rimarcabile aumento delle dimensioni e della complessità delle organizzazioni. Le piccole botteghe degli artigiani delle epoche passate si sono evolute nelle grandi imprese multimiliardarie di
oggi. Parte integrante di questo rivoluzionario cambiamento sono stati il formidabile incremento della divisione del lavoro e la ripartizione delle responsabilità manageriali nelle
organizzazioni. Il risultato è stato spettacolare. La specializzazione ha tuttavia portato, oltre ai benefici, nuovi problemi che ancora oggi affliggono molte organizzazioni. Tra questi problemi si può individuare la tendenza delle varie parti di una organizzazione a crescere in maniera autonoma, con obiettivi e scale di valori propri, perdendo coscienza di
come le proprie attività e i propri scopi si intrecciano con quelli dell'intera organizzazione. Ciò che è bene per una parte è spesso dannoso per un 'altra; le varie componenti finiscono con l 'agire secondo finalità differenti. Un problema correlato ali 'incremento della
complessità e delle specializzazioni di una organizzazione, è il sensibile aumento della
difficoltà nella allocazione delle risorse disponibili alle varie attività nella maniera più
funzionale per l' intera organizzazione. Questo tipo di problemi e la necessità di trovare il
miglior modo di risolverli hanno creato le condizioni per la nascita della ricerca operativa (comunemente indicata anche con l'acronimo RO).
Le origini della RO possono essere fatte risalire a parecchi decenni fa, con i primi tentativi di utilizzare un approccio scientifico alla gestione delle organizzazioni. Tuttavia, la
nascita del settore denominato ricerca operativa è generalmente attribuito alle forze armate al tempo della Seconda Guerra Mondiale. A causa degli sforzi bellici, ci fu un impellente bisogno di gestire le poche risorse disponibili assegnandole alle diverse operazioni militari e alle varie attività ali 'intemo di ciascuna operazione nella maniera più efficace possibile. Così, gli alti dirigenti delle forze armate britanniche e statunitensi riunirono un gran
numero di scienziati affinché venisse applicato un approccio scientifico a questo e ad altri
problemi di strategia e tattica. I militari chiesero, in effetti, di sviluppare una ricerca nelle
operazioni (militari). Questi gruppi di scienziati costituirono i primi team di ricerca operativa. Sviluppando metodi più efficaci per l'utilizzo dei nuovi strumenti radar, questi team
furono essenziali nella vittoria della battaglia aerea nei cieli della Gran Bretagna.
Attraverso le loro ricerche sulla gestione ottimale dei trasferimenti dei convogli e delle
operazioni antisommergibili, essi giocarono, inoltre, un ruolo fondamentale nella vittoria
della battaglia del Nord Atlantico.
Alla fine della guerra, i successi della ricerca operativa nelle vicende belliche suscitarono un grande interesse nella sua applicazione anche al di fuori degli ambienti militari.
Durante il boom industriale nel dopoguerra, i problemi causati dall'aumento della com-
2
CAPITOLO l
INTRODUZIONE
plessità e delle specializzazioni delle organizzazioni vennero alla luce. Risultò evidente a
un sempre crescente numero di persone, e fra queste i consulenti delle industrie che durante la guerra avevano collaborato con i team di ricerca operativa, che questi problemi erano, in linea di principio, del tutto simili a quelli affrontati dai militari ma in un contesto
differente. Dagli inizi degli anni Cinquanta, è stato introdotto l'utilizzo della ricerca operativa in svariate organizzazioni operanti nel campo imprenditoriale, dell'industria e della
pubblica amministrazione e si assistette in breve a una rapida espansione della RO.
Possono essere identificati almeno altri due fattori che hanno giocato un ruolo di primo
piano nel rapido accrescimento dell ' uso della ricerca operativa durante questo periodo. n
primo consiste nel considerevole progresso subito dalle tecniche di 1icerca operativa.
Dopo la guerra, molti degli scienziati che parteciparono ai team di ricerca operativa o che,
in qualche modo, ne vennero a conoscenza furono incoraggiati a effettuare importanti ricerche in questo campo; si ebbero come risultati importanti avanzamenti nello stato dell'arte. Un primo esempio è il metodo del simplesso (simplex method) per la risoluzione di
problemi di programmazione lineare, sviluppato da George Dantzig nel 1947. Molti degli
strumenti standard di RO, come la programmazione lineare, la programmazione dinamica,
la teoria delle code e la gestione ottima delle scorte furono sviluppati prima della fme del
1950.
Un secondo fattore che diede un'imponente spinta allo sviluppo di questo campo di
studio, fu l' imperioso avvento della rivoluzione informatica. Infatti, notevoli risorse di
calcolo sono normalmente necessarie quando si ha a che fare con i complessi problemi tipicamente considerati dalla ricerca operativa. Effettuare a mano tali operazioni è spesso
fuori discussione. Lo sviluppo dei calcolatori elettronici, con la loro capacità di eseguire
operazioni aritmetiche migliaia o persino milioni di volte più velocemente di quanto possa mai fare un essere umano, ha dato, quindi, un enorme impulso alla RO . Un nuovo aiuto arrivò nel 1980 con l' incremento delle potenzialità dei personal computer, accompagnato dallo sviluppo di efficienti pacchetti software specifici per la ricerca operativa. Ciò
permise l'utilizzo degli strumenti di ROda parte di un sempre maggiore numero di persone. Al momento, milioni di individui hanno rapido accesso ai software di ricerca operativa e una grande varietà di computer, dai mainframe ai laptop, vengono abitualmente utilizzati per risolvere problemi di ricerca operativa.
(ti 1.2
LA NATURA DELLA RICERCA OPERATIVA
Come lo stesso nome sembra suggerire, la ricerca operativa è la disciplina che si occupa
della "ricerca nelle operazioni". La ricerca operativa è, quindi , applicata a problemi che
riguardano le metodologie di gestione e di coordinamento delle operazioni (in altre parole, le attività) nell 'ambito di un'organizzazione. La natura specifica delle operazioni è essenzialmente ininfluente e, di fatto, la ricerca operativa ha trovato applicazione in differenti aree come quella manifatturiera, dei trasporti, delle costruzioni, delle telecomunicazioni, della finanza, della sanità, della difesa e dei pubblici servizi, solo per citarne alcune.
La varietà di applicazioni risulta, di fatto, insolitamente ampia.
La parola ricerca nel nome evidenzia il fatto che la ricerca operativa adotta un approccio simile a quello usato negli altri campi scientifici. Il metodo scientifico è usato, in larga
misura, come metodologia di indagine per il problema in esame (il termine scienza del
management, management science, è utilizzato, infatti, come sinonimo di ricerca operativa). In particolare, il processo inizia con un'accurata osservazione del problema, la realizzazione di una sua precisa formulazione e la raccolta di tutti i dati relativi. Il passo successivo consiste nella costruzione di un modello (tipicamente matematico) che realizzi, in
qualche modo, un 'astrazione dell'essenza stessa del problema reale. Viene poi ipotizzato
che tale modello costituisca una rappresentazione sufficientemente precisa delle caratteristiche peculiari della situazione in modo che le conclusioni (le soluzioni) dedotte dal modello risultino valide anche per il problema reale. In seguito, vengono realizzati opportuni
1.3
L'INFLUENZA DELLA RICERCA OPERATIVA
3
esperimenti con lo scopo di controllare la veridicità di tale ipotesi, modificandola se necessario ed eventualmente testandone alcune varianti. Questo passo va sotto il nome di validazione del modello (mode! validation). Così, in un certo senso, la ricerca operativa può
essere vista come una ricerca scientifica creativa delle proprietà fondamentali delle operazioni. Tuttavia, c'è molto più di questo. In particolar modo, la ricerca operativa riguarda
la gestione dell 'organizzazione. Di conseguenza, per raggiungere il successo, la RO deve
inoltre fornire, al momento opportuno, delle conclusioni concrete e comprensibili a chi
dovrà poi prendere delle decisioni.
Un'altra caratteristica della ricerca operativa è costituita dalla prospettiva ampia che
utilizza. Come anticipato nel paragrafo precedente, la ricerca operativa adotta il punto di
vista dell'organizzazione. Essa tenta, quindi, di risolvere i conflitti di interesse tra le diverse parti di una organizzazione nel miglior modo possibile per l'organizzazione stessa pensata nella sua interezza. Questo non implica affatto che lo studio di ogni problema deve
necessariamente considerare in modo esplicito tutti gli aspetti dell 'organizzazione; gli
obiettivi devono, piuttosto, essere in armonia con quelli dell ' intera organizzazione.
Una caratteristica aggiuntiva consiste nel fatto che la ricerca operativa tenta frequentemente di determinare una soluzione ottima per il problema in esame (si è volutamente
scritto " una" soluzione invece che "la" soluzione perché possono esserci più soluzioni
che possono essere definite come ottime). Invece di migliorare semplicemente lo status
quo, l'obiettivo è di identificare la direzione migliore verso cui procedere. Sebbene ciò
debba essere attentamente interpretato in funzione delle necessità pratiche della gestione
dell 'organizzazione, questa "ricerca deli' ottimalità" risulta essere un tema molto importante nella ricerca operativa. 1
Tutte queste caratteristiche conducono in maniera naturale a un'altra ancora. È evidente che non si può pretendere che un singolo individuo sia un esperto in tutti i molteplici
aspetti del lavoro di ricerca operativa o dei problemi tipicamente considerati; questo richiede, invece, una varietà di persone con abilità e capacità differenti. Quindi, quando si
intraprende un studio completo di ricerca operativa è necessario utilizzare un approccio di
gruppo. Un team di ricerca operativa ha bisogno di annoverare tra le sue fila individui che
collegialmente garantiscano elevate conoscenze in matematica, probabilità e statistica,
economia, amministrazione finanziaria, informatica, ingegneria e fisica, scienze comportamentali e specifiche tecniche di ricerca operativa. Il team deve, inoltre, possedere la necessaria esperienza e capacità per affrontare nella maniera più corretta le molteplici ramificazioni del problema in tutte le parti dell 'organizzazione.
L'INFLUENZA DELLA RICERCA OPERATIVA
La ricerca operativa ha avuto una influenza impressionate nel migliorare l'efficienza di
numerose organizzazioni in tutto il mondo . Nel corso del tempo, essa ha dato un significativo contributo all'incremento delle capacità produttive delle economie di svariati paesi.
Al momento, oltre 45 associazioni nazionali di ricerca operativa partecipano alla Federazione Internazionale delle Associazioni di Ricerca Operativa (International Federation of
Operational Research Societies - IFORS). Sia l 'Europa sia l'Asia posseggono federazioni
delle associazioni di ricerca operativa per il coordinamento di conferenze internazionali e
attività editoriali per la pubblicazione di riviste internazionali nei rispettivi continenti. In
aggiunta, l'Institute for Operations Research and the Management Sciences, INFORMS, è
un'associazione internazionale per la ricerca operativa. Tra le sue varie pubblicazioni va
menzionata Inteifaces che pubblica regolarmente articoli in cui vengono descritti le prin-
n numero di dicembre 2003 di OR!MS Today, il bimensile di INFORMS (lnstitute for Operations
Research and the Management Sciences) dava il via a una ambiziosa campagna di propaganda per favorire
la conoscenza delle possibilità delle tecniche della Ricerca Operativa. Lo slogan usato era " Operations
Research: The science of better" (N dC).
1
4
CAPITOLO l
INTRODUZIONE
cipali applicazioni di ricerca operativa e le conseguenze che tali studi hanno avuto nelle
organizzazioni in cui sono stati app licati.
Al fine di fornire una migliore idea della vasta applicabilità della ricerca operativa, viene proposto nella Tabella 1.1 un elenco di alcune recenti applicazioni di maggior successo. Si noti la varietà delle organizzazioni e delle applicazioni nelle prime due colonne. Il
lettore potrà trovare l'articolo comp leto che descrive ciascuna delle applicazione nella
pubblicazione della rivista Interfaces relativa al bimestre gennaio-febbraio dell 'armo indicato nella terza colonna della tabella. La quarta colonna elenca i capitoli di questo libro in
cui saranno descritte le tecniche di ricerca operativa utilizzate (si noti che molte applicazioni combinano tecniche differenti). Infine, l' ultima colonna indica il risparmio derivato
dall 'applicazione dello studio in termini di milioni (e persino di decine di milioni) di dollari all'anno. Inoltre, ulteriori vantaggi che non sono stati indicati nella tabella (come per
esempio miglioramenti nei servizi verso i clienti e controlli di gestione più efficaci) possono talvolta essere considerati più importanti degli stessi benefici economici.
Il riferimento bibliografico l alla fi ne del cap itolo descrive l'impatto strategico a lungo
termine che molte di queste applicazioni hanno avuto sulle rispettive organizzazioni. Il riferimento bibliografico 3 descrive alcune altre applicazioni e il ruolo chiave che la ricerca
operativa gioca nell' aumento della redditività e della produttività di numerose compagnie.
Sebbene la maggior parte delle applicazionie della ricerca operativa producano vantaggi considerevolmente più modesti di quelli riassunti nella Tabella 1.1 , i valori posti nella
colonna di destra di questa tabella rendono certamente l'idea del sensazionale impatto che
grandi e ben progettati studi di ricerca operativa possono avere.
Nel corso del Capitolo 2 verranno brevemente descritte alcune di queste applicazioni e
due di queste saranno discusse, come casi di studio, con maggiori dettagli nel Paragrafo 3.5.
TABELLA 1.1 Alcune applicazioni di ricerca operativa
Organizzazione
Olanda R.
Monsanto Corp.
United Airlines
Ci tg o
San Francisco
Texaco
IBM
Yellow
Dipartimento di
Sanità di New
Haven
(Connecticut)
Tipo di applicazione
Annodi
pubblicazione 2
Capitoli
correlati 3
Risparmio
annuo
Sviluppare una politica naziona le della
gestione idrica, incluse nuove procedure
operative e prezzi
Ottimizzare la produzione negli impianti
chimici al fine di raggiungere gli
obiettivi di produzione al minimo
costo possibile
Schedulare i turni di lavoro presso gl i
uffici di prenotazione e aeroporti con
l'obiettivo di forn ire il miglior servizio
per i clienti al minimo costo
Ottimizzare la raffinazione,
l'approwig ionamento, la distribuzione
e la vend ita dei suoi prodotti
Determinare un sistema computerizzato
per ottimizzare l'utilizzo deg li agenti
di polizia
Defin ire la miscelazione ottima di
prodotti petroliferi per soddisfare
specifici livelli di qualità del prodotto
finale e rich ieste di vendita
Integrare il sistema nazionale di
rifornimento di parti di ricambio per
migliorare il livello di servizio offerto
Ottimizzare il sistema nazionale di
trasporto e distribuzione
Progettare un sistema per un efficace
scambio di aghi per combattere la
diffusione del virus che causa
l'AIDS (HIV)
1985
2-8, 12,20
15 milioni di
dollari
1985
2, 11
5 milioni di dollari
1986
2-9, 11 , l 7,
26,27
6 milioni di dol lari
1987
2-9, 27
70 milioni di
dollari
1989
2-4, 11 , 27
11 milioni di
dollari
1989
2,12
30 milioni di
dollari
1990
2, 18, 20
1992
2, 9, 12, 20, 27
1993
2
20 mil ion i di
dollari+ 250
milioni di dol lari
17.3 milioni di
dol lari
33% less HIV/AIDS
(segue)
5
RIFERIMENTI BIBLIOGRAFICI
(continua)
AT&T
Delta Airlines
Digitai
Cina
Forze di difesa del
Sud Africa
Proctor
Taco Beli
HP
SEARS
IBM
Merill Lynch
Samsung
Continental
Sviluppare un sistema basato su Personal
Computer di ausilio ai clienti nella
realizzazione di un cali center
Massimizzare il profitto nell'assegnazione
di varie tipologie di aerei per 2500
voli interni
Ristrutturare il sistema di gestione delle
scorte
Selezionare e schedulare temporalmente
vari progetti per fare fronte alla future
necessità energetiche della nazione
Ridisegnare dimensione e modalità
delle forze di difesa e del sistema
di armamenti
Ridisegnare il sistema di produzione e
distribuzione nel Nord America con
l'obiettivo di ridurre i costi e diminuire
i tempi di approvvigionamento
Determinare una schedulazione ottima
dei dipendenti per offrire un livello
desiderato di servizio all'utenza al
minimo costo
Ridisegnare dimensione e locazione dei
buffer nella linea di produzione delle
stampanti per ottenere uno specifico
livello di produzione
Sviluppare un sistema di schedulazione
e instradamento per i veicoli
Reingegnerizzazione del sistema di
gestione delle scorte per rispondere più
rapidamente alle richieste dell'utenza
con un livello più basso di magazzino.
Progettare un sistema di costi per i vari
servizi finanziari offerti
Sviluppare metod i di riduzione dei tempi
di produzione e diminuzione dei livelli
di magazzino
Ottimizzare la rassegnazione di personale
ai voli in caso di emergenza.
1993
17, 20,26
750 mil ioni di
dollari
1994
11
l 00 milioni di
dollari
1995
11
800 milioni di
1995
11
425 mil ioni di
dollari
dollari
1997
11
l .l miliardi di
dollari
1997
8
200 milioni di
dollari
1998
11, 20,27
l 3 milioni di
dollari
1998
17, 26
280 milioni di
dollari
1999
11
42 milioni di
2000
18
750 milioni di
dollari
dollari
2002
2,20
80 milioni di
2002
2-7
200 milioni di
dollari
dollari
2003
2,11
40 milioni di
dollari
2
Anno di pubblicazione su lnterfaces (mesi gennaio-febbraio); nel relativo volume è possibile trovare l'articolo completo che descrive
l'applicazione.
3
Rimanda ai capitoli di questo libro in cui sono descritte le tipolog ie di tecniche di ricerca operativa usate nell'applicazione .
•
RIFERIMENTI BIBLIOGRAFICI
l. Beli, P.C. , C.K. Anderson e S.P. Kaiser: " Strategie Operations Research and the Edelman Prize
Finalist Applications 1989-1998", Operations Research, 51(1 ): 17-31, Jan.-Feb. 2003.
2. Gass, S.I. e C.M. HaiTis (eds.): Encyclopedia ofOperations Research and Management Science,
2d ed. , Kluwer Academic Publishers, Boston, 2001.
3. Homer, P. (ed.): " Special Issue: Executive' s Guide to Operations Research ", OR!MS Today,
Institute for Operations Research and the Management Sciences, 27(3), June 2000.
4. Kirby, M.W.: "Operations Research Trajectories: The Anglo-American Experience from the
1940s to the 1990s", Operations Research, 48(5): 661 -670, Sept. -Oct. 2000.
S. Miser, H.J.: "The Easy Chair: What OR!MS Workers Should Know About the Early Formative
Years ofTheir Professi o n", lnteifaces, 30(2): 99-1 l l , March-April 2000.
6. Wein, L.M. (ed.): " 50th Anniversary Issue", Operations Research (a special issue featuring personalized accounts of some of the key early theoretical an d practical developments in the field) ,
50( l), Jan. -Feb. 2002.
Una panoramica sui modelli
nella ricerca operativa
Q
uesto libro è dedicato in larga misura ai metodi matematici della ricerca operati>
(RO). Ciò è giustificato dal fatto che tali tecniche quantitative costituiscono la pane
principale di quello che è noto come ricerca operativa. Tuttavia, questo non implica che l
applicazioni di ricerca operativa siano principalmente esercitazioni matematiche. In realtà
l'aspetto matematico rappresenta, spesso, solamente una parte relativamente piccola dell'intero processo coinvolto. L'obiettivo di questo capitolo è quello di presentare il processo in prospettiva, descrivendo tutte le principali fasi di un tipico studio di RO.
Le fasi tipiche di uno studio di ricerca operativa possono essere riassunte nel seguente
elenco:
l.
3.
4.
4.
S.
6.
definizione del problema e raccolta dei dati;
formulazione del modello matematico che rappresenta il problema;
sviluppo di un software che determini le soluzioni del problema partendo dal modello:
test del modello ed eventuali affinamenti;
predisposizione di un sistema di supporto all'applicazione pratica del modello;
implementazione.
Ognuna di queste fasi sarà discussa nei paragrafi successivi.
Le applicazioni di ricerca operativa descritte nella Tabella 1.1 forniscono eccellenti
esempi del modo di procedere attraverso le varie fasi . Nel resto del capitolo se ne darà, talvo lta, un accenno, rimandando ai riferimenti bibliografici per ulteriori approfondimenti.
2.1
DEFINIZIONE DEL PROBLEMA E RACCOLTA DEl DATI
Diversamente dagli esempi che si trovano nei libri di testo, la maggior parte dei problemi
reali che si incontrano nella ricerca operativa sono inizialmente descritti in modo vago e
impreciso. Di conseguenza, la prima cosa è studiare il relativo sistema e sviluppare una
precisa formulazione del problema in esame. Ciò comporta la determinazione di ciò che si
deve includere tra gli obiettivi, delle limitazioni su ciò che può essere fatto , delle relazioni
tra il settore in esame e gli altri a esso collegati, delle possibili alternative di sviluppo, dei
limiti di tempo per prendere una decisione e così via. Il processo di definizione del problema è di fondamentale ìrnportanza perché influenza l'esito stesso dello studio. È difficile
ottenere una risposta corretta da un problema mal posto.
La prima cosa da osservare è che un team di ricerca operativa opera, normalmente, prestando un 'attività di consulenza: al team non viene chiesto di risolvere un dato problema,
ma di consigliare il management (quasi sempre un singolo decisore), sulla base di una det-
2.1
DEFINIZIONE DEl PROBLEMA E RACCOLTA DEl DATI
7
tagliata analisi tecnica. La relazione prodotta identifica, di solito, una serie di proposte alternative la cui attrattività dipende dalle ipotesi formulate sul sistema, o dai valori assegnati a determinati parametri strategici, che possono essere valutati soltanto dal management (per esempio il compromesso tra costi e benefici). Il management valuta lo studio e i
suggerimenti in esso contenuti, considera vari fattori e prende, di conseguenza, le decisioni finali. È quindi di vitale importanza, che il team di ricerca operativa stia sulla stessa
lunghezza d'onda del management e individui il "giusto" problema dal punto di vista di
quest'ultimo, costruendosi, altresì, il supporto del management stesso nel percorso intrapreso.
Individuare gli obiettivi appropriati è un aspetto molto importante della definizione
del problema. Per fare ciò è nec.essario, prima di tutto, identificare la persona (o le persone) che prenderanno le decisioni finali e, quindi, sondame l'opinione sugli obiettivi primari (coinvolgere sin dall'inizio il personale responsabile è essenziale per avere il suo appoggio nella successiva implementazione).
Per sua natura, la ricerca operativa è interessata alla prosperità de li 'intera organizzazione piuttosto che di alcune sue parti. Più che ricercare la migliore soluzione per una solo
componente (soluzioni subottimali), la ricerca operativa mira a determinare le soluzioni
ideali per l'intera organizzazione (soluzioni ottime). Idealmente, gli obiettivi formulati dovrebbero essere quelli dell'intera organizzazione. Tuttavia questo non è sempre conveniente. Molti problemi riguardano principalmente una parte specifica dell 'organizzazione.
L'analisi diventerebbe troppo complicata se gli obiettivi dichiarati fossero troppo generali
e se venissero considerati esplicitamente tutti gli effetti sul resto dell'organizzazione.
Invece, gli obiettivi usati devono essere specifici quanto possibile, ma, comunque, in linea
con gli scopi principali del decisiore mantenendo un ragionevole grado di coerenza con
gli obiettivi di più alto livello de li' organizzazione.
Per le organizzazioni con fini di lucro (profit-making), un modo per aggirare il problema di soluzioni subottime è la massimizzazione come unico obiettivo del profitto a lungo
termine (long-nm profit maximization) che tiene in conto del valore nel tempo del denaro. Il tennine long-run indica la flessibilità di questo obiettivo nel considerare tutte quelle
attività che non si traducono immediatamente in profitto (per esempio progetti di ricerca e
sviluppo) ma che producono comunque valore nel tempo. Questo approccio ha un considerevole merito: è abbastanza specifico, se utilizzato nella maniera più opportuna, e, tuttavia, appare sufficientemente generale da inglobare il fondamentale obiettivo delle società
profit-making. Alcuni ritengono addirittura che tutti gli altri legittimi obiettivi possano essere tradotti in questo.
Nonostante ciò, in pratica, molte aziende profit-making non usano questo approccio.
Alcuni studi di organizzazioni americane hanno evidenziato che il gruppo dirigente tende
ad adottare come fine l'adeguatezza dei profitti (satisfactory profìts) combinata con altri
obiettivi, invece di concentrarsi sulla massimizzazione del profitto a lungo termine.
Tipicamente, alcuni di questi altri obiettivi consistono nel mantenere profitti stabili, nell'accrescere (o mantenere) una fetta di mercato, nel diversificare i prodotti, nel mantenere
prezzi stabili, nel migliorare il morale dei lavoratori, e nell'aumentare il prestigio della
compagnia. Tutti questi obiettivi potrebbero essere raggiunti con la massimizzazione del
profitto a lungo termine, ma le loro relazioni potrebbero non essere molto chiare e, così,
raggruppare tutti questi obiettivi in uno soltanto potrebbe non essere conveniente.
Ci sono, inoltre, delle considerazioni aggiuntive che riguardano le responsabilità sociali e che sono distinte dal tema del profitto. Le cinque parti interessate in un sistema commerciale di un 'azienda localizzata in una sola nazione sono: (l) i proprietari (azionisti
ecc.) che desiderano alti profitti (dividendi, aumento del valore delle proprie azioni e così
via), (2) gli impiegati che aspirano a un lavoro stabile con uno stipendio adeguato, (3) i
clienti che cercano un prodotto affidabile a un prezzo ragionevole, (4) ifornitori che desiderano onestà e prezzi di vendita adeguati per i loro beni, (5) il go verno e quindi la nazione che esige tasse eque e attenzione agli interessi nazionali. Tutte e cinque le parti danno
un contributo essenziale ali 'azienda, che non dovrebbe essere vista a servizio esclusivo di
8
CAPITOLO 2
UNA PANORAMICA SUl MODELLI NELLA RICERCA OPERATIVA
una parte per lo sfruttamento delle altre. Analogamente, le società internazionali acquisiscono ulteriori obblighi di operare in maniera eticamente consapevole. Quindi, benché l
principale responsabilità di una classe dirigente sia quella di produrre profitti (cosa che in
definitiva gioverebbe a tutte le cinque parti), deve anche essere riconosciuta una sua pill
ampia responsabilità sociale.
I team di ricerca operativa spendono, normalmente, una grande quantità di tempo per
la raccolta dei dati rilevanti per un determinato problema. La maggior parte di questi dati
sono necessari sia per ottenere una più accurata conoscenza del problema sia per fornire
gli input necessari alla formulazione del modello matematico, nella successiva fase dello
studio. Spesso, però, nella fase iniziale dello studio molti dati non sono disponibili. perché le informazioni non sono mai state raccolte o perché i dati raccolti non sono più validi
oppure perché si trovano in un formato inutilizzabile. Così, è spesso necessario implementare un nuovo sistema automatizzato per la gestione delle informazioni in modo da raccogliere via via i dati necessari nella forma appropriata. Il team di ricerca operativa normalmente ha bisogno di ottenere l'appoggio di altri individui chiave all'interno dell 'organizzazione per rintracciare tutti i dati vitali. Ma anche in questo caso, molti dei dati pos ono
essere piuttosto "soft", cioè grossolane stime basate su ipotesi. Un team di ricerca operativa dovrà spendere un tempo considerevole nel tentativo di migliorare la precisione d
dati e, alla fine, si dovrà comunque accontentare del meglio che è riuscito a ottenere.
Negli ultimi anni, la sempre maggiore diffusione di database e la crescita delle loro dimensioni, ha fatto sì che il più maggior problema non consista più nella scarsa disponibilità di dati ma, al contrario, nell'eccessiva abbondanza. Ci possono essere migliaia di fon
di dati e la quantità totale di valori può essere misurata in gigabyte o addirittura in terabyte. In questo contesto, localizzare dei dati particolarmente importanti e isolare tra di loro
dei campioni utili può diventare un compito molto oneroso.
Una recente tecnica che va sotto il nome di data mining (estrazione di dati) è usata per
affrontare tale problema. I metodi di questa tecnica perlustrano i grossi database alla ricerca dei dati utili per le scelte da compiere (il riferimento bibliografico l alla fine del capitolo fornisce maggiori dettagli sulla tecnica di data mining).
Esempi. Uno studio di ricerca operativa effettuato per il Dipartimento di Polizia di
San Francisco 1 ha avuto come risultato lo sviluppo di un sistema computerizzato per ottimizzare la schedulazione (scheduling) e l'utilizzo degli agenti di polizia. Il nuovo sistema
ha permesso un risparmio annuo di Il milioni di dollari, un incremento di 3 milioni dollari degli introiti derivanti dalle contravvenzioni stradali e un miglioramento del 20\% dei
tempi di risposta. Nella stima degli obiettivi appropriati in questo specifico caso, ne sono
stati identificati tre fondamentali:
l. mantenere un elevato livello della sicurezza dei cittadini;
2. mantenere un elevato livello del morale degli agenti;
3. minimizzare il costo operativo.
Per raggiungere il primo obiettivo, il dipartimento di polizia e il governo della città hanno
stabilito di comune accordo il livello di protezione desiderata. Il modello matematico doveva, quindi, garantire il raggiungimento di tale livello. Allo stesso modo, il modello imponeva un bilanciamento del carico di lavoro in modo da raggiungere il secondo obiettivo. Infine, il terzo obiettivo è stato inglobato nell 'obiettivo a lungo termine di minimizzare il numero di agenti necessari al raggiungimento dei primi due obiettivi.
1
P.E. Taylor e S.J. Huxley, " A Break fì·om Tradition for the San Francisco Police: Patrol Officer Scheduling
Usi ng an Optimization-Based Decision Supp01t System ", InteJfaces . 19(1 ): 4-24, gen.-feb. 1989. Consultare ir
particolare le pp. 4-11.
2.1
DEFINIZIONE DEL PROBLEMA E RACCOLTA DEl DATI
9
Il Dipartimento della Sanità di New Haven, Connecticut ha chiesto a un team di ricerca operativa2 di progettare un programma per un efficace scambio di aghi per combattere
la diffusione del virus che causa l'AIDS (HIV) riuscendo così a ridurre del 33% la percentuale delle infezioni da HIV tra i destinatari del programma. La chiave di volta in questa
applicazione è stato l'utilizzo di un programma innovativo di raccolta dei dati necessari
in input per i modelli matematici della trasmissione del virus HIV. Questo programma ha
permesso di tenere traccia di ogni ago (e siringa) scambiato, incluse la località, la data e
persino l'identità della persona che ha preso parte allo scambio, permettendo di verificare
la positività dell'ago restituito al virus HIV.
Alla fine degli anni '90, ci fu una forte offensiva commerciale ai danni di alcune società di servizi finanziari da parte di aziende che facevano uso di brokeraggio online e che
fornivano transazioni commerciali a basso costo. Merrill Lynch 3 rispose promuovendo
uno studio di ricerca operativa che portò a una completa revisione dei costi per i suoi servizi, che variavano dall'opzione che prevedeva un servizio completo basato sul valore dell' asset (facendo pagare una percentuale fissa piuttosto che una percentuale su quanto
scambiato in una singola transazione) a una opzione a basso costo per quei clienti che volevano investire direttamente on line. La raccolta e il trattamento dei dati hanno giocato
un ruolo chiave. Per analizzare il comportamento individuale del cliente in risposta alle
differenti opzioni, il team ha dovuto creare un database con i dati di 5 milioni di clienti,
l O milioni di account, l 00 milioni di informazioni sulle transazioni, 250 milioni di informazioni sui libri contabili, per un totale di 200 gigabyte di dati. Tutto ciò ha richiesto la
raccolta e la normalizzazione dei dati provenienti dai numerosi database già esistenti.
L' adozione delle indicazioni contenute nello studio ha portato a un incremento in un anno
vicino ai 50 miliardi di dollari in asset dai clienti e quasi 80 milioni di dollari in maggiori
entrate.
Uno studio di ricerca operativa fatto per la Citgo Petroleum Corporation4 ha ottimizzato la raffinazione e l'approvvigionamento, la distribuzione e la vendita dei suoi prodotti, ottenendo un miglioramento del profitto di circa 70 milioni di dollari all'anno. Anche
in questo studio, la raccolta dei dati ha giocato un ruolo fondamentale. È stato sviluppato
un sistema tecnologicamente avanzato di gestione di basi di dati e installato su un mainframe. Per ottenere i dati mancanti, furono create delle schermate LOTUS 1-2-3 per age- .
volare le operazioni di inserimento dati . In questo modo i dati furono trasferiti dai personal computer al mainframe. Prima che i dati venissero immessi nel modello matematico, è
stato utilizzato un programma per controllare la presenza di eventuali errori o incoerenze
nei dati. Inizialmente il programma generò un blocco di fogli di carta contenente messaggi d'errori alto due centimetri e mezzo. Alla fine il numero di messaggi di errore e warning fu ridotto a meno di IO per ogni nuova esecuzione del programma. L' intero studio
della Citgo sarà descritto in maniera più dettagliata nel Paragrafo 3.5.
2
E.H. Kaplan e E. O' Keefe, " Let the Needles Do the Talking! Evaluating the New Haven Needle Exchange",
lnteljaces . 23(1): 7-26, gen.-feb. 1993. Consultare in particolare le pp. 12-14.
3
S. Altschuler, D. Batavia, J. Bennett, R. Labe, B. Liao, R. Nigam e J. Oh , " Pricing Analysis for Merrill
Lynch lntegrated Choice", !ntelj'aces. 32(1 ): 5-19, gen.-feb. 2002. Consu ltare in particolare p. l O.
4
D. Klingman, N. Philips, D. Steiger, R. Wirth e W. Young, " The Challenges and Success Factors in
lmplementing an lntegrated Products Planning System for Citgo" , !nteljaces. 16(3): 1-19, mag.-giu. 1986.
Consultare in patticolare pp. 11-14. D. Klingman, N. Philips, D. Steiger e W. Young, " The Successful
Deployment of Management Science throughout Citgo Petroleum Corporation ", lnte1jaces. 17(1 ): 4-25 , gen.feb. 1987. Consultare in particolare pp. 13-15. Questa applicazione vetTà trattata più avanti nel Paragrafo 3.5.
10
CAPITOLO 2
2.2
UNA PANORAMICA SUl MODELLI NELLA RICERCA OPERATIVA
FORMULAZIONE DEL MODELLO MATEMATICO
Una volta definito il problema in esame, occorre riformularlo in una maniera più adatta a
essere analizzato. L'approccio comunemente usato in ricerca operativa, consiste nel costruire un modello matematico che rappresenti l'essenza del problema stesso. Prima di discutere su come costruire un simile modello, esploriamo la natura dei modelli in generale
e, in particolare, di quelli matematici.
I modelli , o rappresentazioni astratte, sono parte integrante della vita di ogni giorno.
Esempi comuni sono i modellini di aeroplani, i ritratti, i mappamondo e così via. I modelli giocano un ruolo molto importante anche nelle scienze e negli affari così come illustrato
dai modelli dell 'atomo, i modelli della struttura genetica, le equazioni matematiche che
descrivono le leggi fisiche del moto o le reazioni chimiche, i grafici, i diagrammi organizzativi e i sistemi di contabilità industriale. Tali modelli sono strumenti preziosi per astrarre l'essenza del soggetto dell ' indagine, mostrare le interrelazioni tra le varie parti e agevolare l'analisi .
Anche i modelli matematici sono rappresentazioni astratte, ma sono espressi mediante
simboli ed espressioni matematiche. Le leggi della fisica come F = ma e E = mc 2 sono
esempi ben noti. Allo stesso modo, il modello matematico di un problema commerciale è
il sistema di equazioni e relative espressioni matematiche che descrivono la natura intrinseca del problema. Così, se n indica il numero di valutazioni quantitative che devono essere compiute, queste possono essere rappresentate mediante n variabili decisionali,
x 1 ,x2 , ... ,x 11 , i cui valori devono essere determinati. L'appropriata misura delle prestazioni (per esempio il profitto) è espressa mediante una funzione matematica delle variabili
decisionali (per esempio P= 3x 1 + 2x2 + ... + 5x11 ) . Questa funzione è chiamata funzione obiettivo. Anche le eventuali restrizioni sui valori che possono essere assegnati alle variabili sono espresse in forma matematica per mezzo di equazioni e/o disequazioni (per
esempio x 1 + 3x 1x 2 + 2x 2 ::; l O) chiamate vincoli. Le costanti (i coefficienti e i termini
noti a destra) che figurano nei vincoli e nella funzione obiettivo sono dette parametri del
modello. Il problema è determinare i valori delle variabili decisionali in modo da massimizzare la funzione obiettivo, soggetta ai vincoli specificati. Tale schema, con alcune sue
varianti, è tipico dei modelli utilizzati in ricerca operativa.
Determinare gli appropriati valori da assegnare ai parametri di un modello (un valore
per ciascun parametro) è un passo cruciale e molto complicato del processo di costruzione
del modello stesso. A differenza dei problemi da libro di testo, dove i valori sono già assegnati, detenninare i valori dei parametri per problemi reali richiede la raccolta dei dati
pertinenti. Come discusso nel precedente paragrafo, il reperimento di questi dati è spesso
difficile. Per di più, il valore assegnato è molto spesso solo una stima. Poiché il valore del
parametro è incerto, è importante analizzare come la soluzione ottenuta dal modello cambi al variare dei valori assegnati ai parametri. Questo procedimento è noto come analisi
della sensitività e sarà discusso con maggiori dettagli nel paragrafo successivo (e ancora
di più nel Capitolo 6).
Sebbene si sia fatto riferiamo "al" modello matematico di un problema, i problemi
reali non hanno di norma un unico modello " corretto". Nel Paragrafo 2.4 verrà descritto
come la procedura di collaudo di un modello conduca, tipicamente, alla costruzione di
una serie di modelli che migliorano progressivamente la rappresentazione del problema. È
persino possibile che due o più tipi di modelli, completamente differenti tra loro, possano
essere sviluppati per l'analisi dello stesso problema.
Numerosi esempi di modelli matematici saranno illustrati nel resto del libro. Un modello particolarmente importante, che sarà studiato in diversi capitoli, è il modello di programmazione lineare, dove le funzioni matematiche che compaiono sia nella funzione
obiettivo sia nei vincoli sono lineari. Nel Capitolo 3 verranno presentati alcuni specifici
modelli di programmazione lineare per diversi problemi come (l) la determinazione della
combinazione (mix) dei prodotti che massimizza il profitto, (2) la progettazione di una ra-
2.2
FORMULAZIONE DEL MODELLO MATEMATICO
11
dioterapia che attacchi efficacemente un tumore minimizzando i danni ai tessuti vicini ancora sani, (3) la ripartizione del numero di acri tra differenti tipi di coltivazione così da
massimizzare il guadagno netto totale, (4) la scelta della combinazione delle procedure
per l'abbattimento dell'inquinamento in modo da raggiungere gli standard di qualità dell'aria al minimo costo.
I modelli matematici offrono parecchi vantaggi rispetto alla descrizione verbale di un
problema. Un vantaggio consiste nel fatto che il modello matematico descrive un problema in maniera molto più concisa. Questo rende l' intera struttura del problema più comprensibile e permette di scoprire le relazioni causa-effetto. In questo modo risulta più semplice individuare quali altri elementi siano importanti per l'analisi. Inoltre, semplifica la
gestione del problema nella sua interezza e la valutazione di tutte le sue interrelazioni simultaneamente. Infine, un modello matematico costituisce un ponte tra l'uso delle tecniche matematiche avanzate e i computer per l'analisi del problema. Infatti, pacchetti software sviluppati per personal computer e mainframe sono ormai largamente disponibili per
risolvere molti modelli matematici.
Tuttavia, ci sono alcune insidie che devono essere evitate quando si usano modelli matematici. Questi ultimi sono un'astrazione ideale del problema, per cui approssimazioni e
ipotesi semplificative sono necessarie affinché i modelli siano trattabili (cioè siano effettivamente risolvibili). Particolare attenzione deve, perciò, essere adottata al fine di garantire
che il modello rimanga una rappresentazione valida del problema. Il giusto criterio per
giudicare la validità di un modello è la sua capacità di predire gli effetti di azioni alternative in maniera sufficientemente accurata da consentire una valida scelta. Di conseguenza,
non è necessario considerare dettagli poco importanti o fattori che sostanzialmente hanno
gli stessi effetti per tutte le possibili azioni considerate. Non è nemmeno importante che i
valori assoluti della misura delle prestazioni siano approssimativamente corretti per tutte
le possibili alternative, purché i loro valori relativi (cioè la differenza tra i loro valori) siano sufficientemente precisi. Quindi, quello che è richiesto è che ci sia un'elevata corrispondenza tra quanto è predetto dal modello e ciò che dovrebbe accadere nel mondo reale. Per assicurare ciò, è importante verificare e di conseguenza modificare il modello.
Questo sarà l'oggetto del Paragrafo 2.4. Anche se la fase di testing è inserita nel seguito
del capitolo, la maggior parte del lavoro di validazione del modello è condotta durante la
sua fase di costruzione proprio per essere di aiuto nella formulazione del modello matematico stesso.
Nello sviluppo di un modello, un buon approccio è sicuramente quello di partire da
una versione semplificata per poi muoversi verso modelli più elaborati che possano rispecchiare più fedelmente la complessità del problema reale. Questo processo di raffinamento del modello va avanti finché il modello continua a essere trattabile: il compromesso da raggiungere è tra la precisione e la trattabilità del modello (si veda il riferimento bibliografico 8 per una descrizione dettagliata di questa procedura).
Un passo cruciale nella formulazione di un modello di ricerca operativa è la costruzione della funzione obiettivo. Questo richiede lo sviluppo di una misura quantitativa delle
prestazioni relativamente a ciascuno degli obiettivi fmali, identificati nella fase di definizione del problema. Se ci sono obiettivi multipli, le loro misure relative sono trasformate
e combinate in una misura composita, chiamata misura complessiva della prestazione.
Tale misura potrebbe essere qualcosa di tangibile (per esempio il profitto) corrispondente
all'obiettivo principale dell 'organizzazione, o potrebbe essere astratto (per esempio l'utilità). In quest'ultimo caso, il compito di determinare tale misura tende a essere complesso e
richiede un'attenta comparazione degli obiettivi e della loro relativa importanza. Dopo
aver sviluppato la misura complessiva della prestazione, la funzione obiettivo si ottiene
traducendo tale misura in una funzione matematica delle variabili decisionali. Sono comunque delle metodologie specifiche per considerare simultaneamente più obiettivi
(programmazione multiobiettivo ).
12
CAPITOLO 2
UNA PANORAMICA SUl MODELLI NELLA RICERCA OPERATIVA
Esempi. Uno studio di ricerca operativa fatto per la Monsanto Corp. 5 riguardava l'ottimizzazione delle procedure di produzione negli stabilimenti chimici Monsanto in modo di
minimizzare il costo fmale per la produzione di un certo composto chimico (anidride maleica) in un dato mese. Era necessario determinare le configurazioni per ognuno dei reattori catalitici usati per la produzione da cui seguono sia le quantità prodotte sia il costo del
reattore in uso. Il modello matematico è il seguente:
Determinare il valore delle variabili decisionali Ru, con i = 1, 2, .. . , r ej = 1,2, . . . , s
che minimizzano la funzione:
r
s
L L cuRu
i= l ) = l
soggetta ai vincoli:
,.
"
i= l
J5Y
2:/):.,PuRu ~ T
s
L Ru = l ,
per i
= l, 2, ... , r
}= l
Ru = O oppure
dove Ru
= {~
se il reattore i opera nella configurazione j ,
altrimenti
eu = il costo del reattore i in configurazione j
Pu = produzione del reattore i in configurazione j
T = livello di produzione
r = numero di reattori
s = numero di configurazioni (incluso lo stato spento) .
Lafim zione obiettivo per questo modello è 2.:::: 2.:::: cuRu. I vincoli sono espressi nelle tre righe che seguono la fun zione obiettivo. I parametri sono cu, Pu e T. Per l'applicazione della Monsanto, questo modello aveva oltre l 000 variabili decisionali Ru (cioè rs > l 000).
Lo studio ha consentito un risparmio annuale di circa 2 milioni di dollari.
Uno dei più impegnativi problemi affrontati dalle compagnie aeree consiste nella ricerca di un metodo che permetta di assegnare rapidamente gli equipaggi agli aeroplani quando vi siano ritardi o cancellazioni dei voli a causa di avverse condizioni meteorologiche,
problemi meccanici ai velivoli o mancanza di personale. Un team di ricerca operativa
presso la Continental Airlines 6 ha sviluppato un dettagliato modello matematico per l'attribuzione del personale ai voli non appena si presenti un 'emergenza. Poiché le compagnie aeree gestiscono migliaia di equipaggi e di voli giornalieri, il modello doveva essere
abbastanza ampio da comprendere tutti i possibili abbinamenti (pairing) tra gli equipaggi
e i velivoli. Tale modello presenta, quindi, milioni di vatiabili decisionali e molte migliaia
di vincoli. Il primo anno in cui fu utilizzato (principalmente nel 200 l), il modello è stato
applicato quattro volte per far fronte a grandi variazioni della schedualzione prevista (due
tempeste di neve, un'alluvione e l'attacco terroristico dell ' Il settembre). Ciò ha permesso
un risparmio di circa 40 milioni di dollari. Successive applicazioni sono state portate
avanti per variazioni della schedulazione ordinaria dovute a cause meno gravi.
5
R.F. Boykin, " Optimi zing Chemical Production at Monsanto " , JnteJj aces. 15(1 ): 88-95 , gen. -feb. 1985.
Consultare in particolare pp. 92-93.
6
G. Yu, M. Arguello, G. Song, S.M. McGowan e A. White, " A new Era for Crew Recovery at Continental
Airlines", Jnter /(Jces, 33(1 ): 5-22 , gen.-feb. 2003. Consultare in particolare pp. 18-19.
2.3
DETERMINAZIONE DELLE SOLUZIONI DEL MODELLO
13
L'agenzia governativa olandese responsabile per il controllo delle acque e i lavori pubblici, la Rijkswaterstaat , ha commissionato un fondamentale studio di ricerca operativa 7 di
supporto allo sviluppo di una nuova politica nazionale per la gestione idrica. La nuova politica ha permesso di risparmiare centinaia di milioni di dollari in spese per investimenti e
ridotto i danni per l'agricoltura di circa 15 milioni di dollari all'anno, mentre è diminuito
l'inquinamento termico e delle alghe. Piuttosto che formulare un unico modello matematico, questo studio di ricerca operativa ha sviluppato un esauriente sistema integrato di 50
modelli! Per alcuni di questi modelli sono state inoltre sono state sviluppate delle versioni
semplificate e versioni più complesse. La versione semplificata è stata utilizzata per ottenere informazioni di base, incluse analisi di tipo trade-off. La versione più complessa è
stata invece usata nella fase finale del! 'analisi oppure ogni qual volta erano richiesti una
maggiore precisione o output più dettagliati. L'intero studio di ricerca operativa ha richiesto l'impegno di 125 anni-uomo (piu di un terzo di questi per la raccolta dei dati), creato
diverse dozzine di software e stmtturato un enorme quantità di dati.
2.3
DETERMINAZIONE DELLE SOLUZIONI DEL MODELLO
Una volta fmmulato il modello matematico per un dato problema, la successiva fase è
quella di sviluppare una procedura (normalmente un software) che determini le soluzioni
del problema. Si potrebbe pensare che questa fase costituisca la parte predominante, ma
non sempre ciò corrisponde al vero: talvolta, infatti , è un compito relativamente semplice,
come nel caso in cui si applicano algoritmi standard di ricerca operativa utilizzando uno
o più dei pacchetti software largamente diffusi. Per i professionisti della ricerca operativa,
trovare le so luzioni è un compito divertente, mentre il vero lavoro consiste nelle fasi -precedenti e successive, che comprendono, tra le altre, l'analisi postottimale discussa nel seguito del paragrafo.
Poiché gran parte di questo libro è dedicata alle metodologie per ottenere soluzioni per
varie classi di modelli matematici, non occorre per il momento dilungarsi su questo argomento. È utile, tuttavia, una dissertazione sulla natura delle soluzioni.
Un tema comune in 1icerca operativa è quello di ricercare le soluzioni migliori o ottime
per un dato problema. Svariate procedure sono state sviluppate al fine di ottenere tali soluzioni per certe tipologie di problemi e verranno presentate in questo libro. È necessario,
tuttavia, tenere presente che queste soluzioni sono ottime solo in relazione al modello per
il quale sono state ottenute. Poiché il modello ha necessariamente una natura astratta piuttosto che essere una esatta riproduzione del problema reale, non può esistere alcuna garanzia che la soluzione ottima per il modello sia effettivamente la migliore possibile anche
nel caso reale. Gli imprevisti nel caso reale sono così tanti che una corretta valutazione è
pressoché impossibile. Tuttavia, se il modello è ben formulato e testata, la soluzione determinata costituirà una buona approssimazione di quella reale. Piuttosto che richiedere
l'impossibi le, la verifica del successo di uno studio di ricerca operativa è nella capacità di
fornire una guida sulle azioni da intraprendere.
L'eminente scienziato e premio Nobel per l'economia Herbert Simon ha evidenziato
come, nella pratica attuale, la satisflcing sia molto più diffusa dell'ottimizzazione.
Coniando il termine satisflcing come unione delle parole satisfactmy (soddisfacente) e
optimizing (ottimizzare), Simon vuole descrivere la tendenza dei manager alla ricerca di
soluzioni che siano "abbastanza buone" per il problema da risolvere. Piuttosto che tentare di sviluppare una misura generale delle prestazioni per armonizzare i differenti obiettivi
richiesti (includendo ben definiti criteri di valutazione per le prestazioni dei differenti seg7
B.F. Goeller e il team PAWN: "Planning the Netherlands' Water Resources", Interfàces, 15(1): 3-33, gen.feb. 1985. Vedere in particolare pp. 7-18.
14
CAPITOLO 2
UNA PANORAMICA SUl MODELLI NELLA RICERCA OPERATIVA
menti dell'organizzazione), può essere utilizzato un approccio più pragmatico: l'obiettivo
può essere quello di stabilire livelli minimi soddisfacenti di prestazione nelle varie aree, in
funzione magari dei livelli raggiunti nel passato, oppure di ciò che la concorrenza sta realizzando. Se viene determinata una soluzione che permette di raggiungere tutti gli obiettivi prefissati, essa verrà verosimilmente adottata senza ulteriori discussioni. Questo è il
senso della satisficing.
La distinzione tra ottimizzazione e satisficing riflette le differenze tra la teoria e la realtà che frequentemente ci si ritrova davanti nel tentativo di mettere in pratica quella teoria.
Samuel Eilon, uno tra i massimi esperti inglesi di ricerca operativa, diceva:
"L'ottimizzazione è la scienza dell'ideale; la satisficing è l'arte del fattibile." 8
I team di ricerca operativa tentano di portare, per quanto possibile, la "scienza dell'ideale" nel processo decisionale. Nondimeno, i team più esperti hanno ben presente l'impellente necessità di chi deve prendere le decisioni di avere un soddisfacente supporto in
un ragionevole periodo di tempo. Lo scopo della ricerca operativa dovrebbe pertanto essere quello di condurre lo sviluppo in modo ottimale, anche se questo dovesse significare
trovare una soluzione non ottimale per il modello. Così, in aggiunta al perseguimento della scienza dell'ideale, il team dovrebbe considerare il costo dello studio e gli svantaggi
che derivino dal ritardo della sua conclusione e quindi massimizzare i benefici che ne deriveranno. Seguendo questi concetti, i team di ricerca operativa adoperano occasionalmente procedure euristiche (procedure progettate in maniera intuitiva che non garantiscono
la determinazione di soluzioni ottime) per trovare buone soluzioni subottime. Questo è
molto spesso il caso in cui il tempo e il costo richiesti per trovare una soluzione ottima per
un adeguato modello di un problema risultino troppo elevati. Negli ultimi anni sono stati
compiuti grandi progressi nello sviluppo di efficienti procedure metaeuristiche che forniscono strutture generali e linee guida strategiche per la progettazione di specifiche procedure euristiche da adattare a una particolare classe di problemi. L'utilizzo di procedure
metaeuristiche (che verranno trattare nel Capitolo 11) è in continua crescita.
Dalla discussione fatta fin qui sembra evincersi che uno studio di ricerca operativa tenti
di trovare una sola soluzione che può o no essere ottima. Nella realtà ciò non si verifica
quasi mai: una soluzione ottima per il modello originale può essere molto diversa da quella ideale per il problema reale e tale da richiedere un'ulteriore analisi. Quindi l'analisi postottimale (effettuata dopo aver determinato una soluzione ottima) è una parte molto importante della ricerca operativa. Questo tipo di analisi è talvolta indicata con il termine
analisi what-if perché coinvolge domande del tipo: cosa (what) succede alla soluzione
ottima se (if) si assumono ipotesi differenti sulle condizioni future? Tali questioni vengono spesso sollevate dai manager, a cui spetta la decisione finale, piuttosto che dal team di
ricerca operativa.
L'avvento dei potenti fogli elettronici (spreadsheet) ha fornito strumenti molto efficaci
per l'analisi postottimale. Uno dei principali punti di forza di un foglio elettronico è la facilità con la quale può essere usato in maniera interattiva da chiunque, inclusi i manager,
per osservare ciò che accade alla soluzione ottima quando vengono effettuate delle modifiche al modello. Sperimentare i cambiamenti nel modello risulta molto utile per la comprensione del comportamento del modello e pennette di aumentare la fiducia nella sua validità.
In parte, l'analisi postottimale consiste nel condurre una analisi della sensitività
(sensitivity analysis) al fme di determinare quali parametri del modello siano critici (i
"parametri sensibili") per la determinazione della soluzione. Una comune definizione di
parametro sensibile (usata in questo libro) è la seguente:
per un modello matematico con specifici valori per i suoi parametri, i parametri sensibili sono tutti quelli il cui valore non può cambiare senza che si modifichi la soluzione ottima.
8
S. Ei lon, " Goals and Constraints in Decision-making", Operational Research Quarterly. 23: 3-15, 1972.
Riferimento dato nel 1972 alla Conferenza Annuale della Canadian Operational Research Society.
2.4
TEST E VALIDAZIONE DEL MODELLO
15
Identificare i parametri sensibili è molto importante, perché attribuire valori a tali parametri richiede un 'attenzione speciale, per evitare distorsioni nell'output del modello.
Il valore assegnato comunemente a un parametro è solo una stima di una certa quantità
(per esempio il profitto unitario) il cui esatto valore diventerà noto solo dopo che la soluzione ottima è stata effettivamente implementata. Così, dopo aver identificato i parametri
sensibili, occorrerà porre un'attenzione particolare nella stima di questi valori in modo
che siano i più accllrati possibili, o almeno determinare un intervallo di probabili valori.
Si cercherà allora una soluzione che risulti soddisfacente per tutte le varie combinazioni
di probabili valori per i parametri sensibili.
Se la soluzione è implementata in maniera iterativa, ogni successivo cambiamento nei
valori dei parametri sensibili renderà necessario un cambiamento della soluzione.
A volte, alcuni parametri del modello rappresentano delle scelte legate a una sp ecifica
politica (per esempio l'allocazione di risorse). In questi casi, i valori assegnati a tali parametri godono frequentemente di una certa flessibilità. Qualcuno di questi può essere aumentato diminuendo gli altri. L'analisi postottimale comprende l 'indagine su tali compromessi.
Congiuntamente con lo studio della fase discussa nel Paragrafo 2.4 (test del modello)
l'analisi postottimale cerca una sequenza di soluzioni che costituiscano approssimazioni
sempre più accurate della soluzione ideale. Così, gli apparenti difetti della soluzione iniziale vengono utilizzati per suggerire i successivi miglioramenti del modello, i dati in input e forse la stessa procedura risolutiva. Una nuova soluzione è allora ottenuta e il ciclo
si ripete. Questo processo continua finché il miglioramento in due soluzioni successive diventa troppo piccolo perché ne giustifichi il proseguimento. Un numero di soluzioni alternative (per esempio, soluzioni che sono ottimali per una delle diverse versioni del modello e dei suoi dati in input) può, quindi, essere presentata al management per una selezione
finale. Come suggerito nel Paragrafo 2.1, la presentazione di soluzioni alternative dovrebbe normalmente essere fatta se la scelta finale è basata su considerazioni che è meglio lasciare al giudizio della direzione.
Esempi. Si consideri ancora lo studio commissionato da Rijkswaterstaat per la gestione delle acque in Olanda, introdotto alla fine del Paragrafo 2.2. Questo studio non si è
concluso con la raccomandazione di una singola soluzione. Diverse possibili alternative
sono state invece identificate, analizzate e comparate. La scelta finale è stata dei politici
olandesi e l' iter si è concluso con l'approvazione da parte del Parlamento. L'analisi della
sensitività ha svolto un ruolo fondamentale in questo studio. Per esempio, alcuni parametri del modello rappresentavano caratteristiche ambientali. L' analisi della sensitività ha
permesso di valutare l' impatto sul problema della gestione delle acque al variare di questi
parametri. Tale analisi è stata anche utilizzata per determinare l ' influenza dovuta a cambiamenti nelle ipostesi del modello, per effetto di future trattative internazionali sulla
quantità di inquinamento consentito in Olanda. Una varietà di scenari (per esempio un anno particolarmente piovoso e uno con poche precipitazioni) è stata analizzata con l'appropriato livello di probabilità per ciascuno di essi.
2.4
TEST E VALIDAZIONE DEL MODELLO
Lo sviluppo di un complesso modello matematico è simile, per certi aspetti, a quello di un
software. La prima versione del programma conterrà inevitabilmente molti errori che, attraverso un'accurata fase di verifica (testing) sarà possibile, in parte, eliminare. Solo in seguito a una lunga serie di migliorie, il programmatore (o il team di programmatori) potrà
ritenere ragionevolmente validi i risultati ottenuti. Sebbene qualche errore rimanga indubbiamente celato all ' interno del codice (e potrebbe non essere mai scoperto), la maggior
parte di questi sarà stata eliminata garantendo un soddisfacente utilizzo del programma.
16
CAPITOLO 2
UNA PANORAMICA SUl MODELLI NELLA RICERCA OPERATIVA
In maniera analoga, la prima versione di un complicato modello matematico presenterà diversi difetti. Certamente alcuni elementi rilevanti saranno stati trascurati e qualche parametro non sarà stato stimato correttamente. Ciò è inevitabile, data la difficoltà di comunicare e comprendere tutti gli aspetti di un complesso problema e di raccogliere dati attendibili. Prima che un modello possa essere utilizzato, dovrà essere, quindi, completamente testato per cercare e correggere quanti più errori possibile. Dopo una lunga serie di migliorie, il team di ricerca operativa potrà eventualmente stabilire che il modello ottenuto fornisce risultati ragionevolmente validi. Nonostante alcuni difetti minori rimangano senza alcun dubbio nascosti nel modello (e potrebbero non essere mai evidenziati), la maggior
parte delle imperfezioni saranno state eliminate e il modello potrà quindi essere utilizzato
con tranquillità.
Questo processo di collaudo e miglioramento del modello al fine di incrementarne la
validità è comunemente chiamato validazione del modello (mode! validation).
È difficile descrivere come effettuare la validazione di un modello poiché tale processo
dipende, in larga misura, dalla natura del problema in esame e dal modello utilizzato.
Sono tuttavia possibili alcune osservazioni generali e fornire qualche esempio (si veda il
riferimento bibliografico 3 per una dettagliata discussione).
Dal momento che un team di ricerca operativa può impiegare anche alcuni mesi per lo
sviluppo di tutti gli aspetti del modello, non è raro il caso in cui si finisca per preoccuparsi
degli aspetti specifici perdendo di vista la struttura più generale. Non appena i dettagli della versione iniziale del modello sono completati, un buon metodo per iniziare la validazione del modello consiste nel dare uno sguardo complessivo al modello stesso alla ricerca di
errori o sviste ovvie. Il team che effettua questa revisione dovrebbe preferibilmente includere, tra i propri membri, almeno una persona che non abbia partecipato alla formulazione
del modello. Riesaminare la definizione del problema e compararlo con il modello può
aiutare a individuare eventuali malintesi. È inoltre utile controllare che tutte le espressioni
matematiche siano dimensionalmente consistenti e le unità di misura considerate siano
corrette. Ulteriori informazioni sulla validità del modello possono, talvolta, essere ottenute variando i valori dei parametri e/o le variabili decisionali e controllando se i risultati del
presentano un comportamento plausibile. Spesso si ottengono informazioni utili quando i
parametri o le variabili assumono valori estremi vicini ai propri massimi o minimi.
Un approccio più sistematico alla fase di verifica del modello è il metodo denominato
test retrospettivo. Quando applicabile, tale test consiste nell 'utilizzo dei dati storici per
ricostruire il passato e determinare, quindi, l'accuratezza del modello e delle relative soluzioni in condizioni già note. Il confronto tra le ipotetiche prestazioni ottenute e quelle realmente avute indica, quindi, se l' utilizzo del modello conduce a un significativo miglioramento delle procedure correnti. Questo metodo può inoltre indicare le aree in cui il modello presenta dei difetti e richiede, pertanto, delle modifiche. Inoltre, utilizzando le diverse
soluzioni fornite dal modello e stimandone le ipotetiche prestazioni sulle situazioni passate, si possono ottenere importanti indicazioni sulle effettive capacità predittive del modello e sul relativo impatto delle differenti tipologie di intervento.
D 'altra parte, uno svantaggio del test retrospettivo è che esso utilizza gli stessi dati che
hanno condotto alla formulazione del modello. La questione cruciale è se il passato sia
realmente rappresentativo del futuro. Se ciò non è, il modello potrebbe operare piuttosto
diversamente per il futuro di quanto non faccia per il passato.
Per aggirare questa limitazione del test retrospettivo, è utile talvolta proseguire temporaneamente con le condizioni preesistenti. Ciò fornisce nuovi dati che non erano disponibili al momento della costruzione del modello. Questi dati saranno utilizzati in modo analogo a quanto precedentemente descritto per valutare l'efficienza del modello.
Documentare il procedimento impiegato per la validazione del modello è essenziale.
Ciò permette di migliorare la conoscenza nel modello per gli utenti successivi . Inoltre, se
in futuro dovessero presentarsi dei problemi riguardanti il modello, tale documentazione
costituirebbe un valido supporto alla ricerca del punto in cui tali problemi possono annidarsi .
2.5
PREDISPOSIZIONE DI UN SISTEMA DI SUPPORTO All'APPLICAZIONE
17
Esempi. Si consideri ancora lo studio di ricerca operativa Rijkswaterstaat relativo alla
politica nazionale per la gestione delle acque in Olanda, discusso alla fine dei Paragrafi
2.2 e 2.3. In questo caso, il processo di validazione del modello è stato suddiviso in tre
parti principali. Primo, il team di RO ha controllato il comportamento generale dei modelli verificando se i risultati ottenuti da ogni modello siano accettabili nel momento in cui
sono stati apportati cambiamenti nei valori dei parametri del modello. Secondo, è stato effettuato il test retrospettivo. Terzo, è stata condotta un'accurata revisione dei modelli, della metodologia e dei risultati da esterni al progetto, compreso esperti olandesi. Questo processo ha condotto a un numero di nuove importanti idee e miglioramenti nei modelli.
Il seguente esempio riguarda uno studio di RO fatto per la IBM 9 per coordinare la propria rete nazionale delle scorte dei pezzi di ricambio al fine di migliorare il servizio di supporto ai clienti dell'azienda. Questo studio ha avuto come risultato un nuovo sistema per
la gestione delle scorte di magazzino che ha migliorato il servizio clienti riducendo allo
stesso tempo il valore delle scorte di oltre 250 milioni di dollari e risparmiando ulteriori
20 milioni di dollari l'anno grazie al miglioramento dell 'efficienza operativa. In questo
sh1dio, un aspetto particolarmente interessante della fase di validazione del modello è stato il modo in cui i futuri utenti del sistema per la gestione delle scorte sono stati inclusi
nel processo di verifica. Poiché questi fuh1ri utenti (dirigenti IBM responsabili per l' implementazione del sistema di gestione delle scorte di magazzino) erano scettici sul sistema
appena sviluppato, alcuni rappresentanti furono designati come gruppo di utenti da utilizzare come consulenti al team di RO. Dopo che una versione iniziale del sistema fu sviluppata (basata su un modello di gestione per le scorte multilivello ), venne condotto un test
di pre-implementazione. Approfonditi feedback dal gruppo utente portarono a considerevoli miglioramenti nel sistema proposto.
PREDISPOSIZIONE DI UN SISTEMA DI SUPPORTO
ALL'APPLICAZIONE PRATICA DEL MODELLO
Cosa accade dopo il completamento della fase di verifica e lo sviluppo di un modello accettabile? Se questo deve essere utilizzato più volte, il passo successivo consiste nel predisporre un ben documentato sistema di supporto del modello nella maniera richiesta dal
management. Questo sistema comprende il modello, i processi per ottenere le soluzioni
(inclusa l'analisi postottimale) e le procedure operative per l'implementazione dei risultati
ottenuti.
Questo sistema è normalmente automatizzato e utilizza svariati software. Database e
sistemi per la gestione delle informazioni possono fornire dati aggiornati al modello ogni
qualvolta questo venga impiegato e in quei casi è necessario l'utilizzo di un programma di
interfaccia. Dopo l 'applicazione di una procedura risolutiva per il modello (un altro software), altri programmi possono procedere automaticamente all ' implementazione dei risultati ottenuti . In altri casi, viene creato e reso disponibile un sistema di supporto alle decisioni (decision suppor! system) talora interattivo per coadiuvare (piuttosto che rimpiazzare) i manager nel prendere le loro decisioni . Altri programmi possono produrre relazioni
per i manager (scritte "nel linguaggio dei manager") per spiegare i risultati del modello e
le relative implicazioni.
Nella maggior parte degli studi di ricerca operativa, molti mesi (o più) possono essere
impiegati per lo sviluppo, il collaudo e l ' istallazione di questo sistema. Parte di questo
sforzo riguarda lo sviluppo e l'implementazione di un processo per la manutenzione del
9
M. Cohen, P.V. Kamesam, P. Kleindorfer, H. Lee e A. Tekerian, " Optimizer: IBM 's Multi-Echelon
lnventoiy System for Managing Service Logistics", !ntelj aces, 20(1): 65-82, gen .-feb. 1990. Fare rife rimento
in partico lare alle pp. 73-76.
CAPITOLO 2
18
UNA PANORAMICA SUl MODELLI NELLA RICERCA OPERATIVA
sistema durante il suo utilizzo futuro . Non appena si presentino, nel corso del tempo, delle
variazione nelle condizioni, questo processo dovrebbe modificare, in corrispondenza, il sistema incluso il modello.
Esempi. Lo studio di RO della IBM introdotto alla fine del Paragrafo 2.4 fomisce un
buon esempio di un sistema computerizzato particolarmente grande per l'applicazione di
un modello. Il sistema sviluppato, chiamato Optimizer, fomisce un controllo ottimale dei
livelli di servizio e delle scorte in magazzino dei pezzi di ricambio in tutta la rete di distribuzione americana della IBM, che comprende due magazzini centrali automatizzati, dozzine di centri di distribuzione e parti di stazioni e parecchie migliaia di ubicazioni esterne.
La parte di scorte di magazzino conservata in questa rete è valutata in miliardi di dollari.
Il sistema è costituito da quattro moduli principali. Il modulo di previsione contiene alcuni programmi per preventivare l'indice dei guasti di singoli tipi di pezzi. Il modulo di distribuzione dei dati è costituito approssimativamente da l 00 programmi che processano
oltre 15 gigabyte di dati per fornire l'ingresso al modello. Il modulo di decisione risolve
quindi il modello su una base settimanale in modo da ottimizzare il controllo delle scorte.
Il quarto modulo comprende sei programmi che integrano l'Optimizer all'interno del
Sistema per la Gestione delle Parti Inventariate (PIMS). PIMS è un sofisticato sistema di
informazione e di controllo che contiene milioni di linee di codice.
2.6
IMPLEMENTAZIONE DEL SISTEMA
Dopo lo sviluppo di un sistema di supporto per l'applicazione del modello, l'ultima fase
di uno studio di ricerca operativa consiste nell'implementazione di tale sistema come richiesto dal management. Questa è una fase critica in quanto è in questo momento. e
tanto in questo, che i benefici di una studio di ricerca operativa appaiono chiari. Per
team di ricerca operativa è, quindi , molto importante partecipare al varo di questa fase.
certando l'accurata traduzione delle soluzioni fomite dal modello in procedure operati,·e ~
correggendo le eventuali imperfezioni delle soluzioni che venissero eventualmente :
perte.
Il successo della fase di implementazione dipende, in larga misura, dal supporto fo ·
dall ' alta dirigenza e dal medio management. Il team di ricerca operativa può ottenere ~·::.
facilmente tale supporto se ha mantenuto ben informato il management e ha incorag_
un suo ruolo di guida attiva durante l' intero corso dello studio. Una buona comunicazi
aiuta ad assicurare che gli studi effettuati rispondano alle effettive aspettative della
zione fornendo, inoltre, alla direzione un maggior senso di proprietà nei confronti
studio stesso, incentivandone così la partecipazione durante l' implementazione.
La fase di implementazione si divide in diversi passi. Primo, il team di ricerca o
va deve fornire alla direzione operativa un' accurata descrizione del nuovo i
adottare e di come questo si relazioni con le preesistenti realtà operative. In seguito.
due gruppi dovranno condividere le responsabilità dello sviluppo delle procedure ri ·
per la "posa in opera" del sistema. La direzione operativa dovrà provvedere alla :
zione del personale coinvolto così che la nuova linea di azioni possa avere inizio. di successo, il nuovo sistema potrà essere adottato per gli anni a venire. Con ciò ·
il team di ricerca operativa esaminerà le esperienze iniziali della nuova linea di COIDC:::
intrapresa e cercherà di individuare le eventuali modifiche da effettuare nel futuro.
Durante l' intero periodo nel quale il nuovo sistema è in uso, è molto importa.nre _
nuare a raccogliere informazioni sul sistema stesso e controllare se le ipotesi fonn
modello continuino a essere soddisfatte. Qualora si presentassero significative ~.,..,'>1"".,....,,....
sui presupposti iniziali, il modello dovrà essere sottoposto a nuova verifica al fine
minare eventuali modifiche da apportare al sistema. L'analisi postottimale P•o.·'-"'c.:J...-
2.7
CONCLUSIONI
19
mente effettuata (così come descritto nel Paragrafo 2.3) può essere di guida in questo processo di revisione.
In conclusione dello studio, è consigliabile per un team di ricerca operativa documentare la metodologia adottata in maniera sufficientemente chiara e accurata da rendere il proprio lavoro riproducibile. Tale caratteristica dovrebbe essere parte dell'etica professionale
di chi si occupa di ricerca operativa. Tale condizione è, inoltre, essenziale quando si è in
procinto di studiare controversi argomenti di pubblico interesse.
Quest'ultimo punto sulla documentazione di uno studio di RO è illustrato con
lo studio Rijkswaterstaat sulla politica nazionale olandese per la gestione dell'acqua, discusso alla fine dei Paragrafi 2.2, 2.3 e 2.4. Il management ha richiesto in via eccezionale
un'ampia e minuziosa documentazione, da usare sia come supporto alla nuova politica sia
per l'addestramento di nuovi analisti o per lo svolgimento di nuovi studi. Questa documentazione ha richiesto diversi anni per il suo completamento e ha raggruppato 4000 pagine a interlinea singola e 21 volumi!
Il seguente esempio riguarda lo studio di RO della IBM discusso alla fine dei Paragrafi
2.4 e 2.5. Un 'accurata progettazione è stata richiesta per implementare il complesso sistema Optimizer per il controllo delle scorte in magazzino dei pezzi di ricambi della rete nazionale IBM. Tre fattori si sono dimostrati estremamente importanti nel realizzare con
successo l' implementazione. Come discusso nel Paragrafo 2.4, il primo è stato l' introduzione di un gruppo di utenti (costituito da manager) come consulenti del team di RO in
ogni momento dello studio. Durante la fase di implementazione, questi manager operativi
hanno dimostrato uno spiccato senso di padronanza e così sono diventati ferventi sostenitori deli ' installazione del sistema nelle proprie aree funzionali. Un secondo fattore di successo è stato un massiccio test di gradimento del/ 'utenza con il quale gli utenti potevano
identificare i problemi delle aeree che necessitavano di essere corretti prima di una completa implementazione. Il terzo punto chiave è stato· che il nuovo sistema è stato suddiviso
in fasi graduali, con accurati test a ogni fase , in modo che la maggior parte dei bug potesse essere eliminata prima che il sistema venisse avviato in tutta la nazione.
Esempi.
2.7
CONCLUSIONI
Sebbene il resto del libro sia indirizzato principalmente verso la costruzione e la risoluzione dei modelli matematici, in questo capitolo si è tentato di far notare che ciò costituisce
solamente una parte di tutto il processo coinvolto in un tipico studio di ricerca operativa.
Le altre fasi qui descritte sono, in eguale maniera, molto importanti per il successo dello
studio. Occorre sempre tenere presente, nei successivi capitoli, il ruolo del modello e delle
procedure risolutive. Una volta acquisita una profonda conoscenza dei modelli matematici, è consigliabile rileggere questo capitolo per affinare questo punto di vista.
La ricerca operativa è intimamente intrecciata con l'uso dei computer. Negli anni passati questi erano principalmente costituiti da mainframe ma, attualmente, personal computer e workstation vengono ampiamente utilizzati per la risoluzione di modelli di ricerca
operativa.
Per concludere questa discussione sulle fasi di maggior interesse di uno studio di ricerca operativa, occorre sottolineare che esistono numerose eccezioni alle "regole" descritte
in questo capitolo. Per sua natura, la ricerca operativa richiede una considerevole capacità
di inventiva e innovazione. È impossibile elencare tutte le procedure standard che dovrebbero essere seguite dai team di ricerca operativa. Le procedenti descrizioni possono, piuttosto, essere viste come un modello che indichi approssimativamente la maniera di condurre a termine uno studio di ricerca operativa.
CAPITOLO 2
20
•
UNA PANORAMICA SUl MODELLI NELLA RICERCA OPERATIVA
RIFERIMENTI BIBLIOGRAFICI
l. Bradley P.S. , U.M. Fayyad e O.L. Mangasarian : "Mathemat ical Programming for Data
Mining: Fonnulations and Challenges", JNFORMS Journal on Computing, 11(3): 217-238,
Summer 1999.
2. Fortuin, L., P. van Beek e L. van Wassenhove (eds.): OR at wORk: Practical Experiences of
Operational Research, Taylor & Francis, Bristol, PA, 1996.
3. Gass, S.I.: " Decision-Aiding Models: Validation, Assessment, and Related Issues for Policy
Analysis" , Operations Research, 31: 603-631, 1983.
4. Gass, S.I.: " Mode! World: Danger, Beware the User as Modeler", lnterfaces, 20(3) : 60-64,
May-June 1990.
S. Hall , R.W.: "What's So Scientific about MS/OR?" , lnterfaces, 15(2): 40-45 , March-April
1985.
6. Howard, R.A.: "The Ethical ORIMS Professional" , lnteJfaces, 31(6): 69-82, Nov.-Dec. 2001.
7. Miser, H.J.: "The Easy Chair: Observation and Experimentation", !nteJfaces, 19(5): 23-30,
Sept.-Oct. 1989.
8. Mon·is, W. T.: "On the Art ofModeling", Management Science, 13: 8707-717, 1967.
9. Murphy, F.H.: "The Occasionai Observer: Some Simple Precepts for Project Success",
Jnteifaces, 28(5) : 25-28, Sept.-Oct. 1998.
10. Pidd, M.: "Just Modeling Through: A Rough Guide to Modeling" , lnteljàces, 29(2): 11 8-132,
March-April 1999 .
11. Simon, H .A.: "Prediction and Prescription in Systems Modeling", Operations Research, 38:
7-14, 1990.
12. Williams, H.P.: Mode/ Building in Mathematical Programming, 4th ed., Wiley, New York,
1999.
12. Williams, H.P.: Mode/ Building in Mathematical Programming, 4th ed. , Wiley, New York,
1999 .
•
PROBLEMI
2.1-1. Leggere l'articolo a piè di pagina del Paragrafo 2.1 che
descrive lo studio di RO per il Dipartimento di Polizia di San
Francisco .
(a) Riassumere il background che ha condotto a intraprendere
questo studio.
(b) Definire la parte del problema di interesse identificando le
sei direttive per il sistema di pianificazione che deve essere
sviluppato.
(c) Descrivere come sono stati raccolti i dati necessari.
(d) Elencare i vari benefici tangibili e non tangibili che sono derivati dallo studio.
2.1 -2. Leggere l'aiiicolo a piè di pagina del Paragrafo 2.1 che
descrive lo studio di RO fatto per il Dipartimento della Sanità di
New Haven, Connecticut.
(a) Riassumere il background che ha condotto a intraprendere
questo studio.
(b) Descrivere il sistema sviluppato per rintracciare e esaminare
ogni ago e siringa al fine di raccogliere i dati necessari.
(c) Riassumere i risultati iniziali ottenuti con questo sistema di
tracciamento e di esame.
(d) Descrivere l'impatto e il potenziale impatto di questo studio
sulla politica pubblica.
2.2-1. Leggere l'articolo a piè di pagina del Paragrafo 2.2 che
descrive lo studio di RO fatto per il Rijkswaterstaat olandese
(focalizzare l'attenzione soprattutto sulle pagine 3-20 e 30-32).
(a) Riassumere il background che ha condotto a intraprendere
questo studio.
(b) Riassumere lo scopo di ciascuno dei cinque modelli matematici descritti nelle pagine l 0-18.
(c) Riassumere le " misure dell ' impatto" (misure delle prestazioni) per confrontare le politiche che sono descritte nelle
pag ine 6-7 di questo aiiicolo.
(d) Elencare i vari benefici tangibili e non tangibili che sono deri vati dallo studio.
2.2-2. Leggere il riferimento bibliografico 5.
(a) Identificare l'esempio dell'autore di un modello nelle scienze naturali e di un modello in RO .
(b) Descrivere il punto di vista dell'autore su come i precetti
fondamentali dell'uso dei modelli per fare la ricerca nelle
scienze naturali può essere usato anche per condun·e la ricerca su operazioni (RO).
2.3-1. Considerare il riferimento bibliografico 5.
(a) Descrivere il punto di vista dell 'autore nel caso in cui il solo
obiettivo di usare un modello dovrebbe essere quello di trovare la relativa soluzione ottima.
(b) Riassumere il punto di vista dell 'autore sui ruoli complementari del modeling, la valutazione delle informazioni dal
modello e quindi l'applicazione del giudizio del responsabile
quando viene decisa una linea di condotta.
PROBLEMI
2.4-l. Fare riferimento alle pagine 18-20 dell ' articolo a piè di
pagina del Paragrafo 2.2 che descrive uno studio di RO fatto per
la Rijkswaterstaat olandese. Descrivere una lezione importante
recepita dalla validazione del modello in questo studio.
2.4-2. Leggere il riferimento bibliografico 7. Riassumere il punto di vista dell ' autore sui ruoli dell ' osservazione e della sperimentazione nel processo di validazione del modello.
2.4-3. Leggere le pagine 603-617 del riferimento bibliografico 3.
(a) Cosa afferma l' autore se un modello può essere completamente validato?
(b) Riassumere le distinzioni fatte tra la validità del modello, la
validità dei dati, la validità logico/matematica, la validità
preventiva, la validità operativa e la validità dinamica.
(c) Descrivere il ruolo dell'analisi della sensitività nel verificare
la validità operativa di un modello.
(d) Cosa affe1ma l'autore se c' è una metodologia di validazione
che è adatta per tutti i modelli?
(e) Citare la pagina nell'articolo che elenca i passi principali
della va lidazione.
21
2.6-1. Leggere l'articolo a piè di pagina del Paragrafo 2.4 che
descrive lo studio di RO fatto per la IBM e il sistema Optimizer.
(a) Riassumere il background che ha condotto a intraprendere
questo studio.
(b) Elencare le complicazioni che i membri del team di RO hanno affrontato quando hanno iniziato a sviluppare un modello
e un algoritmo risolutivo.
(c) Descrivere brevemente il test di pre-implementazione dell ' Optimizer.
(d) Descrivere brevemente il test del campo di implementazione.
(e) Descrivere brevemente l' implementazione nazionale.
(f) Elencare i vari benefici tangibili e non tangibili che sono derivati dallo studio.
2.7-1. Leggere il rife1imento bibliografico 4. L'autore descrive
13 fasi dettagliate di tutto lo studio di RO che sviluppa e applica
un modello software, mentre questo capitolo descrive ampiamente sei fasi . Per ciascuna di queste fasi, elencare le fasi dettagliate che ricadono parzialmente o interamente nella fase più ampia.
Introduzione alla
programmazione lineare
L
o sviluppo della programmazione lineare è stato annoverato tra i più importanti progressi scientifici della seconda metà del ventesimo secolo e gli autori di questo libro
concordano con questa valutazione. Il suo impatto sin dal 1950 è stato straordinario.
Oggigiorno, è uno strumento standard che ha permesso di risparmiare diverse migliaia o
milioni di dollari a molte società e imprese anche di piccole dimensioni, in vari paesi industrializzati del mondo; il suo utilizzo in altri settori della società è in rapida espansione.
Una parte significativa del calcolo scientifico sui calcolatori elettronici è dedicata alla programmazione lineare. Dozzine di libri di testo sono stati scritti sulla programmazione lineare e gli articoli pubblicati che descrivono importanti applicazioni possono essere contati a centinaia.
Qual è la natura di questo straordinario strumento e quale tipo di problemi è in grado di
affrontare? Attraverso lo studio degli esempi dei paragrafi successivi sarà possibile fornire
una risposta dettagliata. Una descrizione sommaria può, tuttavia, essere d'aiuto per abbozzarne l'idea di base. Il più comune tipo di applicazione della programmazione lineare riguarda il problema generale della allocazione di risorse limitate tra attività concorrenti
nel modo migliore possibile (cioè in modo ottima/e). Più precisamente, questo problema
affronta la scelta del livello per attività che competono tra loro per l'utilizzo delle poche
risorse disponibili, indispensabili alla realizzazione delle attività stesse. La scelta dei livelli delle attività determina, allora, quanta parte di ogni risorsa verrà utilizzata per ciascuna
attività. La varietà di situazioni alle quali è possibile applicare questa descrizione è ampia
e, in effetti, spazia dalla gestione della produzione alla distribuzione delle risorse nazionali, dalla scelta del portafoglio ottimo alla logistica della distribuzione, dalla pianificazione
in agricoltura al progetto di cure radioterapiche ottimali e così via. Tuttavia, l'elemento
comune in ognuna di queste situazioni è la necessità di distribuire delle risorse alle varie
attività determinandone i livelli.
La programmazione lineare utilizza un modello matematico per descrivere il problema
in esame. L'aggettivo lineare indica che tutte le funzioni matematiche del modello devono essere funzioni lineari. La parola programmazione non si riferisce, in questo caso, a
quella dei computer ma è, piuttosto, un sinonimo per pianificazione. La programmazione
lineare riguarda, quindi , la pianificazione delle attività al fine di ottenere un risultato ottimale, cioè il raggiungimento dell'obiettivo prefissato nella migliore maniera (in base al
modello matematico) tra le possibili alternative.
Sebbene la distribuzione delle risorse tra le varie attività sia il tipo di applicazione più
comune, la programmazione lineare ha anche numerose altre importanti applicazioni. Di
fatto , un qualunque problema il cui modello matematico si adatti al generico formato della programmazione lineare è un problema di programmazione lineare (per questa ragione
si fa spesso riferimento ai problemi di programmazione lineare e i loro modelli semplice-
3.
3.1
UN PRIMO ESEMPIO DI PROBLEMA DI PR()GRAMMAZIONE LINEARE
23
mente come programmazione lineare). Una procedura risolutiva estremamente efficiente,
denomi-nata metodo del simplesso (simplex method), permette la risoluzione di problemi
di programmaz.ione lineare di notevoli dimensioni. Queste sono alcune delle ragioni della
formidabile influenza ché 'la programmàzione lineare ha avuto nell'ultimo decennio.
A causa quindi della sua grande importanza, gli autori hanno dedicato questo e i prossimi cinque capitoli proprio alla programmazione lineare. Dopo questo capitolo che ne introduce le caratteristicp~ principali, i Capitoli 4 e 5 si concentrano sul metodo del simplesso. Il Capitolo 6 discute l'analisi da effettuare dopo l'applicazione del metodo del simplesso. I Capitoli 7 e 8 consideraÌio alcuni casi ·particolari di problemi di programmazione lineare la cui importanza giustifica uno studio particolareggiato.
Il lettore può, inoltre, dare uno sguardo ai successivi capitoli per osservare applicazioni
di programmazione lineare in altre aree della ricerca operativa.
Questo capitolo inizia con la presentazione di un problema di programmazione lineare
di piccole dimensioni. Questo esempio è abbastanza piccolo da essere risolto graficamente in modo diretto. I Paragrafi 3.1 e 3.2 presentano il generico modello di programmazione lineare e le sue ipotesi di base. I Paragrafi 3.4 e 3.5 forniscono altri esempi di applicazioni di programmazione lineare, inclusi tre casi di studio. Il Paragrafo 3.6 descrive come
i modelli di programmazione lineare con un numero limitato di variabili e vincoli possano
essere facilmente visualizzati e risolti mediante l'utilizzo di un foglio elettronico
(spreadsheet). Tuttavia, alcuni problemi di programmazione lineare incontrati nella pratica richiedono l'adozione di modelli di grandi dimensioni. Il Paragrafo 3.7 illustra come
può presentarsi un modello di grandi dimensioni e come può ulteriormente essere rifonnulato con successo mediante !'!liuto di uno speciale linguaggio di modellazione come MPL
oppure UNGO.
3.1
UN PRIMO ESEMPIO DI PROBLEMA DI PROGRAMMAZIONE LINEARE
La WYNDOR GLASS CO. realizza prodotti in vetro di alta qualità, come finestre e porte
in vetro. Essa è organizzata in tre stabilimenti. I telai in alluminio e gli articoli in metallo
vengono prodotti nello Stabilimento l , i telai in legno nello Stabilimento 2 mentre lo
Stabilimento 3 produce il vetro e assembla i prodotti.
A causa di una diminuzione dei guadagni, i dirigenti della società hanno deciso di rinnovare la linea di produzione. Sono stati cancellati alcuni articoli non redditizi in modo da
liberare risorse produttive per il lancio di due nuovi prodotti con un alto potenziale di vendita:
Prodotto l: una porta in vetro con intelaiatura in alluminio
Prodotto 2: una finestra con intelaiatura in legno
Il Prodotto l richiede le risorse produttive degli Stabilimenti l e 3 ma non dello Stabilimento 2. Il Prodotto 2 necessita soltanto degli Stabilimenti 2 e 3. La divisione marketing
ha verificato che l'azienda può vendere tutta la quantità prodotta di entrambi. Tuttavia,
poiché ambedue i prodotti concmrono per l'utilizzo delle medesime capacità produttive
dello Stabilimento 3, non è chiaro quale combinazione dei due prodotti sia la più redditizia. Un team di ricerca operativa è stato, quindi, costituito per studiare il problema.
Il team ha incominciato incontrando i massimi vertici dirigenziali dell'azienda per
identificare gli obiettivi dello studio. Al termine si è giunti alla seguente formulazione del
problema:
Determinare il tasso di produzione di ciascuno dei due prodotti al fine di massimizzare il profitto totale, con i vincoli imposti dalle limitate capacità produttive dei tre stabilimenti (ogni articolo sarà prodotto in lotti da venti, e il tasso di produzione del prodotto è definito come il
numero di lotti realizzati in una settimana). Ogni combinazione dei tassi di produzione soddisfacente queste condizioni è permessa, inclusa la produzione di uno solo dei due prodotti.
24
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
-
Il team di ricerca operativa ha, quindi, identificato i dati da raccogliere:
l. il tempo, espresso in ore, disponibile settimanalmente in ciascuno dei tre stabilimenti
per la produzione dei nuovi prodotti (gli stabilimenti sono, infatti, già impegnati nella
produzione degli altri articoli e le capacità produttive realmente disponibili per i nuovi
prodotti sono, perciò, piuttosto limitate);
2. il tempo, espresso in ore, che ciascuno dei tre stabilimenti impiega nella produzione di
un lotto di ogni nuovo prodotto;
3. l' utile per lotto per ciascuno dei nuovi prodotti (l 'utile per lotto è stato scelto come misura appropriata a seguito della considerazione, da parte del team, che l'incremento dei
profitti determinato da ogni lotto supplementare è approssimativamente costante e indipendente dal numero totale dei lotti realizzati. Poiché le fasi iniziali della produzione e
della vendita dei nuovi prodotti non richiedono costi aggiuntivi considerevoli, il rendimento totale di ciascuno di questi è approssimativamente l 'utile per lotto moltiplicato
per il numero di lotti effettivam ente realizzati).
l
Per ottenere delle stime ragionevoli di tali grandezze è stato necessario il supporto di personale chiave nei vari settori produttivi della società. Lo staff della divisione manifatturiera ha fornito le informazioni per il primo gruppo di dati. La determinazione delle stime
per il secondo gruppo di dati ha richiesto alcune analisi da parte degli ingegneri addetti allo sviluppo del processo produttivo dei nuovi prodotti. Dall'analisi dei dati relativi ai costi
effettuate dagli stessi ingegneri e dalla divisione marketing, insieme alle valutazioni riguardo la detenninazione del prezzo da parte della divisione marketing, il reparto contabilità ha realizzato le stime per il terzo gruppo di dati.
La Tabella 3.l riassume i dati così ottenuti.
Il team di ricerca operativa ha immediatamente riconosciuto il problema in esame come un problema di programmazione lineare del classico tipo di combinazione di prodotti, e ha quindi intrapreso la formulazione del corrispondente modello matematico.
Formulazione come problema di programmazione lineare
Per formu lare il modello matematico (di programmazione lineare) per il problema in questione, si definiscano:
x1
=
x2 =
Z
=
il numero di lotti di Prodotto l realizzati in una settimana
il numero di lotti di Prodotto 2 realizzati in una settimana
il profitto totale per settimana (in migliaia di dollari) ottenuto dalla produzione di
questi due prodotti.
Le incognite x 1 e x 2 sono le variabili decisionali del modello. Utilizzando l' ultima riga
della Tabella 3.1 si ottiene una stima del profitto totale per settimana:
Z
L'area<
mostra
permes
x2 2:: O,
= 3x 1 + Sxz
Tabella 3.1 Dati per il problema della Wyndor Glass Co.
Tempo di produzione
per lotto (espresso in ore)
Stabilimento
Prodotto
l
2
Tempo di produzione
disponibile
settimanalmente
(espresso in ore)
l
2
rr
l
o
4
3
3
2·
2'
12
18
$3000
$5000
Profitto per lotto
• FigL
3.1
UN PRIMO ESEMPIO DI PROBlEMA DI PROGRAMMAZIONE liNEARE
25
L'obiettivo è di scegliere i valori delle variabili x 1 e x 2 in modo da massimizzare la funzione Z = 3x 1 + 5x2 , rispettando le restrizioni imposte dalle limitate capacità produttive dei
tre stabilimenti. La Tabella 3.1 indica che ogni lotto di Prodotto l realizzato necessita di
un 'ora di lavorazione nello Stabilimento l , dove sono disponibili 4 ore settimanali .
Questa restrizione è espressa matematicamente dalla disuguaglianza
4. In maniera
analoga, lo Stabilimento 2 impone la condizione 2x2 ::; 12. Il numero di ore di lavorazione settimanale impiegati nello Stabilimento 3 per la produzione dei nuovi prodotti è dato
dall 'espressione 3x 1 + 2x 2 . La disequazione matematica che esprime il vincolo imposto
dallo Stabilimento 3 è, quindi, 3x 1 + 2x 2 ::; 18. Infine, poiché il tasso di produzione non
può certo essere negativo dovrà anche essere x 1 ~ Oe xz ~ O.
Riassumendo, nel linguaggio matematico della programmazione lineare, il problema
consiste nella scelta dei valori di x 1 e x 2 in modo da
x, ::;
massimizzare
Z
= 3x 1 + Sx2
soggetto ai vincoli
x,
::; 4
\
2x2 ::; 12
3x 1 + 2x2
e
x,~
::;
18
o,
Si noti come lo schema dei coefficienti di x 1 e x 2 in questo modello di programmazione lineare riproduca essenzialmente le infonnazioni raccolte nella Tabella 3.1.
Risoluzione grafica
Questo semplice problema ha solamente due variabili decisionali ed è quindi possibile risolverlo graficamente. La risoluzione per via grafica consiste nella costruzione di un grafico bidimensionale con x 1 e x 2 come assi coordinati. Il primo passo è individuare le coppie
(x 1, x 2 ) che sono ammissibili tenuto conto dei vincoli. Ciò viene fatto tracciando tutte le
rette che delimitano la regione dei valori permessi da ciascun vincolo. Per iniziare, si osservi che le condizioni x 1 ~ O e x 2 ~ O implicano che il punto (x 1, x 2 ) deve stare dalla
parte degli assi positivi (inclusi gli assi stessi), la coppia appartiene, cioè, al primo quadrante. Successivamente, si noti che il vincolo x 1 ::; 4 significa che (x 1, x 2 ) non può trovarsi alla destra della retta x 1 = 4. Questi risultati sono mostrati nella Figura 3 .l , dove l 'area ombreggiata contiene solo le coppie (x 1, x 2 ) permesse.
• Figura 3.1
L'area ombreggiata
mostra i valori di (x1 , x2 )
permessi da x1 ~ O e
x2 ~ O, x1 :::; 4.
Xz
54 -
3-
2l l
o
l
l
2
3
4
l
L
l
5
6
7
x,
26
CAPITOLO 3
INTRODUZIONE AllA PROGRAMMAZIONE LINEARE
10
4
Regione
ammissibile
• Figu
Il va lore
massimi
(2, 6).
2
• Figura 3.2
L'a rea ombreggiata
mostra l'insieme dei valori
permessi per (x1 , x2 )
chiamata regione
ammissibile.
o
In maniera simile, il vincolo 2x2 :::; 12 (o, equivalentemente, x 2 :::; 6) implica che la retta
2x2 = 12 fa parte della frontiera della regione permessa. L'ultimo vincolo
3x 1 + 2x 2 :::; 18, richiede di disegnare i punti (x 1 , x2 ) del piano in modo che la retta
3x 1 + 2x 2 = 18 completi la frontiera (si osservi che i punti soddisfacenti la condizione
3x 1 + 2x2 :::; 18 sono quelli che si trovano al di sotto della retta 3x 1 + 2x2 = 18, cosicché
essa rappresenta la retta limite al di sopra della quale i punti non soddisfano le condizioni
imposte). La regione risultante, costituita dai valori permessi per le coppie (x 1, x2), chiamata regione ammissibile (jeasible region) è visualizzata nella Figura 3.2.
Il passo finale consiste nello scegliere i punti della regione ammissibile che massimizzano il valore della funzione Z = 3x 1 + 5x 2 . Per scoprire come realizzare ciò in maniera
efficace, si procederà inizialmente con alcuni tentativi.
Si provi inizialmente il valore Z = l O = 3x 1 + 5x2 per vedere se esistono valori
(x 1, x2 ) che appartengono alla regione ammissibile e per i quali Z risulti uguale a l O.
Tracciando la retta 3x 1 + 5x 2 = lO (Figura 3.3) è possibile osservare che esistono molti
punti di tale retta che appartengono alla regione ammissibile. Dopo avere ottenuto un ' idea generale della situazione per mezzo di questa scelta arbitraria del valore Z = 10, si
può tentare di aumentare arbitratariamente tale valore; per esempio, si può provare con
Z = 20 = 3x 1 + 5x2 • Dalla Figura 3.3 è possibile evincere che un segmento della retta
3x 1 + 5x2 = 20 appartiene ancora alla regione ammissibile, cosicché il massimo valore
per Z è almeno pari a 20.
Osservando ancora la Figura 3.3, è possibile notare che le due rette appena tracciate sono parallele. Questa non è affatto una coincidenza, poiché una qualunque retta costruita in
questo modo è del tipo Z = 3x 1 + 5x2 al variare del parametro Z, che può essere scritta
equivalentemente come 5x2 = -3x 1 + Z o ancora
3
5
x2 = - - x ,
l
5
+- Z
L'ultima equazione è la funzione obiettivo in forma esplicita e mostra che la pendenza
della retta è -
2_ (ogni incremento unitario di x 1 cambia x 2 di - 2_), mentre l' intersezione
5
5
3.1
UN PRIMO ESEMPIO DI PROBLEMA DI PROGRAMMAZIONE liNEARE
27
xz
Z = 20 = 3x 1
+ Sx2
• Figura 3.3
Il valore di (x1 , x2 ) che
massim izza 3x, + 5xz è
(2, 6).
o
della retta con l 'asse x 2
è_!_ Z (in quanto x 2
5
~~ ~~~~ ~~:~o~~a ;~~l~:~:. e uguale a - ~
=
_!_ Z quando x 1 =
5
0). Il fatto che la penden-
implica che tutte le rette costruite in questo mo-
Confrontando ancora le rette lO = 3x 1 + 5x 2 e 20 = 3x 1 + 5x 2 della Figura 3.3 , si può
notare come la retta che fornisce il più grande valore per Z (Z = 20) si trovi più in alto e a
una distanza maggiore dall'origine rispetto all'altra retta (Z = 10). Ciò è ancora una volta
evidenziato dalla funzione obiettivo in forma esplicita, dove si può notare che l' intersezione con l 'asse x 1 è proporzionale al valore di Z e cresce al crescere di Z.
Da queste osservazioni si deduce che il precedente metodo " per tentativi" per la costruzione delle rette della Figura 3.3 altro non è che il disegno di una famiglia di rette parallele
comprendenti almeno un punto della regione ammissibile e successivamente la scelta, tra
gli elementi di questa famiglia, della retta corrispondente al maggiore valore di Z. La
Figura 3.3 mostra che tale retta passa per il punto (2, 6), il che indica che la soluzione ottima è x 1 = 2 e x 2 = 6. L'equazione di questa retta è 3x 1 + 5x 2 = 3(2) + 5(6) = 36 = Z
da cui si ricava che il valore ottimo di Z è Z = 36. Il punto (2, 6) si trova nell'intersezione delle due rette 2x2 = 12 e 3x 1 + 2x 2 = 18, mostrate nella Figura 3.2, così tale
punto può essere calcolato algebricamente come soluzione del sistema di queste due
equazioni.
Dopo avere presentato il metodo per tentativi successivi per la ricerca del punto ottimo
(2, 6), è possibile adesso esemplificare questo approccio per altri problemi. Piuttosto che
tracciare diverse rette parallele, è sufficiente disegnarne una sola con un righello per stabilire la pendenza. Infine, basterà muovere il righello attraverso la regione ammissibile,
mantenendo invariata l'inclinazione, nella direzione in cui Z aumenta (quando l' obiettivo
è quello di minimizzare Z, occorre muovere il righello nella direzione in cui Z diminuisce). Occorre bloccare il righello all'ultimo istante in cui passa ancora per un punto di
questa regione. Questo punto rappresenta la soluzione ottima cercata.
Questa procedura è nota come metodo grafico per la programmazione lineare. Essa
può essere utilizzata per la risoluzione di un qualunque problema di programmazione lineare con due variabili decisionali. Con considerevoli difficoltà, è possibile estendere il
metodo al caso di tre variabili decisionali, ma non più di tre (il prossimo capitolo si occuperà del metodo del simplesso per la risoluzione di problemi di dimensioni maggiori).
28
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
Conclusioni
Il team di ricerca operativa ha utilizzato questo approccio per determinare che la soluzione ottima è x 1 = 2 e x 2 = 6, con Z = 36. Questa soluzione indica che la Wyndor Glass
Co. dovrebbe produrre il Prodotto l e il Prodotto 2 rispettivamente nella misura di 2 e 6
lotti alla settimana, con un profitto totale di 36 000 dollari alla settimana. Nessun altra
combinazione dei due prodotti sarà così conveniente secondo il modello.
Tuttavia, si è sottolineato nel Capitolo 2. che gli studi di ricerca operativa ben fatti non
si limitano semplicemente alla ricerca di una soluzione per il primo modello fonnulato .
Tutte le sei fasi descritte nel Capitolo 2 sono importanti, incluso un accurato test del modello (Paragrafo 2.4) e l'analisi postottimale (Paragrafo 2.3).
Nella piena conoscenza di queste realtà pratiche, il team di ricerca operativa è ora pronto a verificare la validità del modello in maniera più critica (questo aspetto venà sviluppato nel Paragrafo 3.3) e a effettuare l'analisi della sensitività sugli effetti dei cambiamenti
delle stime della Tabella 3.1 causate da imprecise valutazioni, modifica delle circostanze
ecc. (questo sarà illustrato nel Paragrafo 6.7).
IL MODELLO DI PROGRAMMAZIONE LINEARE
Il problema della Wyndor Glass Co. è servito per illustrare un tipico problema di programmazione lineare (in versione ridotta). Tuttavia, la programmazione lineare è fin troppo versatile per essere completamente rappresentata da un singolo esempio. In questo paragrafo venanno discusse le caratteristiche generali dei problemi di programmazione lineare, inclusi i rispettivi modelli.
È utile fornire, per iniziare, alcune notazioni e te1minologie di base. La prima colonna
della Tabella 3.2 raggmppa le varie parti del problema della Wyndor Glass Co. La seconda colonna introduce, invece, per le stesse una terminologia più generale che può essere
riscontrata in molti problemi di programmazione lineare. Le parole chiave sono risorse e
attività, dove m denota il numero di differenti risorse che possono essere uti lizzate e n denota il numero di attività che si sta considerando. Alcune tipiche risorse sono il denaro,
particolari tipi di macchine, l'equipaggiamento, i veicoli e il personale. Tra gli esempi delle attività si possono includere investimenti in determinati progetti, la pubblicità in particolari media e la spedizione di beni da uno specifica località alla destinazione.
In una qualunque applicazione di programmazione lineare, tutte le attività devono essere di un unico tipo (come uno qualunque dei tre esempi precedenti), e, di conseguenza, la
singola attività sarà una particolare alternativa all ' interno di quella categoria generale.
Come descritto nell'introduzione di questo capitolo, il tipo più comune di applicazione
di programmazione lineare riguarda l'allocazione ottima delle risorse alle varie attività. La
quantità delle risorse disponibili è limitata, così questa allocazione delle risorse alle varie
attività deve essere effettuata con attenzione. Determinare l'allocazione ottima delle risorse alle varie attività richiede di scegliere i livelli delle attività così da ottenere il miglior
valore possibile della misura globale di rendimento.
Tabella 3.2 Usuale terminologia per la programmazione lineare
Esempio Wyndor Glass Co.
Problema generale
Capacità produttiva degli stabilimenti
3 stabilimenti
m risorse
Realizzazione dei prodotti
2 prodotti
Tasso di produzione del prodotto j, xi
Attività
n attività
Livello di attività j,
Profitto Z
Misura globale di rendimento Z
Risorse
Xj
3.2
IL MODELLO DI PROGRAMMAZIONE LINEARE
29
Un particolare simbolismo è comunemente utilizzato per rappresentare le varie parti di un
modello di programmazione lineare. Questi simboli sono di seguito elencati insieme al loro sign~f1.9ato nell'ambito del problema generale di allocazione ottima delle risorse alle attività.
Z = valore della misura globale di rendimento.
x1 = livello di attività} (per j = l , 2, ... n).
c1 = variazione del valore di Z determinata da ogni incremento unitario del livello di
attività}.
b; = quantità della risorsa i disponibile per l 'allocazione alle varie attività (per i = l ,
2, .. . m).
au = quantità della risorsa i consumata da una unità di attività}.
Il modello esprime il problema in termini di scelta dei livelli di attività; le variabili x 1, x 2 ,
... , X 11 sono denominate variabili decisionali. Come riassunto nella Tabella 3.3 , i valori di
c1, b; e au (per i= l, 2, ... m e perj = l , 2, ... n) sono delle costanti in input al modello.
Esse sono anche indicate come i parametri del modello.
Si noti la corrispondenza tra la Tabella 3.3 e la Tabella 3.1.
Una forma standard del modello
Procedendo come per il problema della Wyndor Glass Co. è possibile formulare il modello
matematico per il problema generale del! 'allocazione delle risorse alle attività. Questo modello consiste, in particolare, nella s celta dei valòri delle variabili x 1, x 2 , ... , X 11 in modo da
massimizzare
con i vincoli
+ a12X:ì + ... + a,nxn :::; b,
a 21X 1 + an x2 + ... + a2nXn :S b 2
a,,x,
e
Questa è detta forma standard 1 del problema di programmazione lineare. Una qualunque
situazione la cui formulazione matematica può essere rappresentata da questo modello si
chiamerà problema di programmazione lineare.
Tabella 3.3 Dati necessari per il modello di programmazione lineare di
allocazione delle risorse alle attività
Risorse per unità di attività
1
...
...
l
On
0] 2
021
022
.. .
.. .
Om]
Om2
(]
(2
Contributo a Z
per unità di attività
1
2
2
m
Quantità di
risorsa disponibile
Attività
Risorse
Altri autori possono adottare forme standard diverse.
.. .
n
01 n
bl
02 n
b2
.. .
Omn
..
Cn
bm
30
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
Si osservi che il modello per il problema della Wyndor Glass Co. può essere rappresentato in forma standard ponendo m = 3 e n = 2.
È possibile, ora, riassumere la terminologia comunemente utilizzata nei modelli di programmazione lineare. La funzione da massimizzare, c 1x 1 + c 2x 2 + .. . + C11 X 11 , è chiamata
funzione obiettivo.
I primi m vincoli (quelle disuguaglianze che presentano al primo membro una funzione
di tutte le variabili, anx 1 + ai2x2 + ... + a;,x,) sono talvolta chiamati vincoli funzionali
(o vincoli strutturali). Similmente, le restrizioni x1 ;=:: O sono chiamate vincoli di nonnegatività (o condizioni di nonnegatività ).
Altre forme
Si osservi che il modello precedente potrebbe non essere adàtto alla forma naturale di
qualche problema di programmazione lineare. Le variazioni legittime sono le seguenti.
l. Minimizzazione piuttosto che massimizzazione della funzione obiettivo:
minimizzare Z = C1X1
+ c2x2 + ... + c,x
11 •
2. Alcuni vincoli funzionali con un differente verso della disuguaglianza:
anx1
+ ai2x2 + ... + a;
11
X11 ;=:: b;
per qualche valore di i.
3. Alcuni vincoli funzionali in forma di uguaglianza:
anx 1 + ai2x2
+ ... + a;,x, = b;
per qualche valore di i.
4. Elimazione dei vincoli di nonnegatività per qualche variabile decisionale:
x1 senza limitazioni di segno
per qualche valore di j.
Un qualunque problema che presenti alcune o tutte queste variazioni al modello precedente è ancora un problema di programmazione lineare. L'interpretazione del problema data
in termini di allocazione delle risorse disponibili tra attività concorrenti potrebbe in seguito non essere applicabile in maniera completa; tuttavia, indipendentemente dall'interpretazione o dal contesto, tutto ciò che è richiesto è che le espressioni matematiche del
problema siano del tipo appena descritto .
Figur
Terminologia per le soluzioni del modello
Normalmente si è portati a utilizzare il termine soluzione per indicare la risposta fmale a
un problema, ma la convenzione nella programmazione lineare (e nelle sue estensioni) è
piuttosto differente. Qui, infatti, una qualunque assegnazione di valori alle variabili decisionali (x 1, x2 , •.. , x11 ) è chiamata soluzione, indipendentemente dal fatto che sia oppure
no una buona scelta, permessa e non permessa. Differenti tipi di soluzioni sono, poi, identificati dall'uso dell 'aggettivo appropriato.
Una soluzione ammissibile è una soluzione che soddisfatta tutti i vincoli.
Una soluzione non ammissibile è una soluzione che viola almeno un vincolo.
Nell'esempio, i punti (2, 6) e (4, l) in Figura 3.2 sono soluzioni ammissibili, mentre i punti (- l , 3) e (4, 4) sono soluzioni non ammissibili.
La regione ammissibile è l'insieme di tutti le soluzioni ammissibili.
La regione ammissibile dell'esempio è l'area ombreggiata della Figura 3.2.
È possibile che un problema non abbia soluzioni ammissibili. È quello che sarebbe
successo nell'esempio precedente se fosse stato richiesto, per i nuovi prodotti, un ricavo
netto di almeno 50 000 dollari alla settimana. Il vincolo corrispondente, 3x 1 + 5x 2 ;=:: 50,
avrebbe eliminato l'intera regione ammissibile, cosicché nessuna combinazione dei nuo-
=.ggiung
3xl - 5x
oroblem
Glass Co
esistereb
ammissil
3.2
31
IL MODELLO DI PROGRAMMAZIONE LINEARE
vi prodotti avrebbe migliorato la situazione preesistente. Questo caso è illustrato nella
Figura 3.4.
Una volta determinato che esistono soluzioni ammissibili, lo scopo della programmazione lineare è di determinare una soluzione ammissibile ottima,sulla base del valore della
funzione obiettivo nel modello.
Una soluzione ottima è una soluzione ammissibile che fornisce il valore più vantaggioso per la funzione obiettivo.
Il valore più vantaggioso è il valore più grande se la funzione obiettivo è da massimizzare, mentre è il valore più piccolo se occorre minimizzare tale funzione .
-' Molti problemi ammettono un'unica soluzione ottima. Tuttavia, è possibile che ne esistano più di una. Nell'esempio, questo accadrebbe se l'utile realizzato per lotto per il
Prodotto 2 fosse cambiato in 2000 dollari. In questo modo, la funzione obiettivo diventerebbe Z = 3x 1 + 2x2 e, di conseguenza, tutti i punti del segmento di estremi (2, 6) e (4, 3)
sarebbero soluzioni ottime. Questo caso è illustrato nella Figura 3.5. Come in questo esempio, un qualunque problema con soluzioni ottime multiple ha infinite soluzioni ottime.
Un altra possibilità è che il problema non abbia soluzioni ottime. Ciò può accadere soltanto se (l) non esistono soluzioni ammissibili oppure (2) i vincoli non impediscono al valore della funzione obiettivo (Z) di crescere indefmitamente nella direzione vantaggiosa
(positiva o negativa). In quest'ultimo caso si dice che il problema ammette una Z illimitata oppure che la funzione obiettivo è illimitata. Nell'esempio, questo caso si presenterebbe se gli ultimi due vincoli funzionali fossero erroneamente eliminati, come illustrato nella Figura 3.6.
Successivamente verrà introdotto un particolare tipo di punto ammissibile che gioca un
ruolo chiave nella ricerca delle soluzioni ottime con il metodo del simplesso.
Un vertice ammissibile è una soluzione che si trova in un angolo della regione ammissibile.
La Figura 3.7 evidenzia i cinque vertici per l'esempio considerato.
Nei Paragrafi 4.1 e 5.1 verranno trattate le proprietà dei vertici per problemi di varie dimensioni, inclusa la seguente relazione con le soluzioni ottime.
figura 3.4
__ ngendo il vincolo
- Sx2 2: 50, per il
_ ema della Wyndor
- as.s Co. non
erebbero soluzioni
-- issibili .
Massimizzare Z = 3x 1 + 5x2 ,
s0ggetto a
x1
::; 4
2x2 ::; 12
3x 1 + 2x2 ::; 18
3x 1 + 5x2 2: 50
e
x 1 2: O,
x 2 2: O
10
3x 1 + 5x2
2:
50
8
4
2
o
2
4
6
8
10
32
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
Mass imi zzare
soggetto a
Z=3x 1 + 2r2,
x1
3x ,
+
::s 4
2x2 :::; J2
2x2 ::s 18
x 1 ~0.
e
x 2 ~0
Ogni punto s ul segmento più sc uro
è una solu zione ottima co n Z = 18.
Regione
ammissibile
• Figura 3.5
Cambiando la funzione
obiettivo in Z = 3x1 + 2x2,
il problema della Wyndor
Glass Co . ammetterebbe
più soluzioni ottime.
o
2
4
6
8
10
3.3
(4, co), Z = co
• Figura 3.6
Il problema della Wyndor
Glass Co. non avrebbe
soluzioni ottime se ci fosse
il solo vincolo funzionale
x1 ::; 4, poiché x2
potrebbe, in questo
modo, crescere
indefinitamente all 'interno
della regione ammissibile
senza mai raggiungere il
valore massimo della
funzione obiettivo
Z = 3x1 + Sx2.
l
10 1-
• (4, 10), z = 62
8 1-
• (4, 8), z = 52
(4, 6),
z=
41-
(4, 4),
z = 32
2 1-
(4, 2), z = 22
6 1-
Mass imi zzare Z = 3x 1 + Sx2,
soggetto a
x 1 ::s 4
e
x1 ~ O,
x 2 ~O
42
Regione
ammissibile
l
o
2
4
• Figur~
l cinq ue p
vertici per
della Wyn
l
l
l
6
8
10
3.3
33
LE IPOTESI DELLA PROGRAMMAZIONE LINEARE
(0, 6) ...__
_____ (2, 6)
Regione
anunissibile
• Figura 3.7
l cinque punti sono i
vertici per il problema
della Wyndor Glass Co .
(0, O)
(4, 3)
(4, Q)
XJ
Relazione tra soluzioni ottime e vertici ammissibili: si consideri un qualunque problema di
progranunazione lineare che anunetta soluzioni anunissibili e abbia regione ammissibile limitata. Il problema deve avere almeno un vertice e almeno una soluzione ottima. Inoltre, il migliore vertice deve essere una soluzione ottima. Così, se un problema ha esattamente una soluzione ottima, essa deve essere un vertice. Se il problema ha soluzioni ottime multiple, almeno
due di queste devono essere vertici.
L'esempio ha esattamente una soluzione ottima, (x 1, x2 ) = (2, 6), che è un vertice (si
pensi a come il metodo grafico conduca all'unica soluzione ottima che è un vertice).
Quando l'esempio viene modificato per produrre soluzioni ottime multiple, come mostrato in Figura 3.5, due di queste soluzioni ottime, (2, 6) e (4, 3), sono vertici.
3.3
LE IPOTESI DELLA PROGRAMMAZIONE LINEARE
Tutte le ipotesi della programmazione lineare sono contenute, in modo implicito, nella
formulazione del modello data nel Paragrafo 3.2. In particolare, da un punto di vista matematico, le ipotesi consistono semplicemente nel fatto che il modello ha una funzione
obiettivo lineare ed è soggetto a vincoli lineari. Tuttavia, da un punto di vista di modellazione, queste proprietà matematiche di un modello di progranm1azione lineare implicano
che alcune ipotesi riguardanti le attività e i dati del problema modellato devono essere valide, comprese le ipotesi sull'effetto della variazione dei livelli di attività. È bene evidenziare queste ipotesi in modo da potere più facilmente valutare se la programmazione lineare si applica bene a uno specifico problema. Inoltre, è necessario analizzare la conclusione, a cui è giunto il team di ricerca operativa della Wyndor Glass Co., che la formulazione
mediante la programmazione lineare fomisce una rappresentazione soddisfacente del problema.
Proporzionalità
La proporzionalità è un'ipotesi che riguarda sia la funzione obiettivo che i vincoli funzionali, così come di seguito descritto.
Ipotesi di proporzionalità: il contributo di ogni attività al valore della funzione
obiettivo Z è proporzionale allivello di attività x1, come indicato dal termine c1x1 nella funzione obiettivo. Allo stesso modo, il contributo di ogni attività alla quantità a
sinistra in ogni vincolo funzionale è proporzionale allivello di attività x1, come indicato dal termine aux1 nel vincolo stesso. Di conseguenza, in un modello di program-
34
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
mazione lineare, questa ipotesi non permette nessun esponente, tranne che l'esponente l, per qualunque variabile in qualunque termine di una qualunque funzione
(sia la funzione obiettivo sia la funzione a sinistra in un vincolo funzionale). 2
Per analizzare meglio questa assunzione, si consideri il primo termine (3xi) della funzione
obiettivo (Z = 3xi + 5x2 ) per il problema della Wyndor Glass Co. Questo termine rappresenta il profitto generato per settimana (in migliaia di dollari) producendo il Prodotto l al
tasso di Xi lotti per settimana. La colonna Proporzionalità Soddisfatta della Tabella 3.4
mostra il caso ipotizzato nel Paragrafo 3 .l, ovvero, che questo profitto è effettivamente
proporzionale a Xi, cosicché, 3xi è il tetmine appropriato per la funzione obiettivo. Al
contrario, le tre colonne successive mostrano differenti casi ipotetici dove l'ipotesi di proporzionalità verrebbe violata.
Si faccia riferimento alla colonna Caso l nella Tabella 3.4.
Questo caso potrebbe presentarsi se sono presenti costi di start-up associati alla produzione iniziale del Prodotto l. Per esempio, ci potrebbero essere dei costi iniziali di produzione. Ci potrebbero essere anche costi associati alla distribuzione del nuovo prodotto.
Poiché questi costi sono sostenuti una sola volta, è necessario ammortizzarli su base settimanale in modo da renderli confrontabili con Z (profitto per settimana in migliaia di dollari) . Si assuma che questo ammortamento sia fatto e che il costo totale di start-up comporti
la riduzione di l del valore di Z, mentre se non si considera il costo di start-up, il profitto
dovrebbe essere 3xi. In altre parole, il contributo del Prodotto l a Z dovrebbe essere
3xi - l per Xi > O, mentre tale contributo dovrebbe essere 3xi = O quando Xi = O
(nessun costo di start-up ). Questa funzione del profitto 3 , che è rappresentata dalla curva in
neretto nella Figura 3.8, sicuramente non è proporzionale a Xi·
A prima vista, potrebbe sembrare che il Caso 2 nella Tabella 3.4 sia del tutto simile al
Caso l. In realtà, il Caso 2 si presenta in modo differente. Non c'è più qui un costo di
start-up e il profitto per settimana della prima unità del Prodotto l è effettivamente 3, come ipotizzato originariamente. Tuttavia, in questo caso, c'è un incremento del guadagno
marginale, cioè la pendenza della funzione di profitto per il Prodotto l (curva in neretto
in Figura 3.9) cresce all'aumentare di Xi.
Tabella 3.4 Esempi in cui l'assunzione di proporzionalità è soddisfatta o violata
Profitto dal Prodotto l
Proporzionalità violata
Proporzionalità
soddisfatta
Caso l
Caso2
Caso 3
o
o
o
o
o
l
2
3
2
Q
5
3
7
3
5
9
8
11
12
18
6
6
X1
3
4
12
2
Quando la funzione include dei prodotto di va1iab ili , la proporzionalità deve essere interpretata nel senso che
che, fissati i valori per tutte le altre variabili, i cambiamenti nei valori della funzione sono proporzionali ai cambiamenti in ogn i variabile singolarmente. Di conseguenza, un prodotto soddisfa la proporzionalità se ogni variabile nel termine ha esponente l (si noti che un termine che contenga il prodotto di più variabili viola l'assunzione
di additività discussa dopo).
Se il contributo del Prodotto l a Z fosse 3x 1 - l per tutti i valori x 1 2: O, compreso x 1 = O allora la costante - l
potrebbe essere cancellata dalla funzione obiettivo senza influenzare la so luzione ottima e la proporzionalità.
Tuttavia, questo " trucco " non può essere adoperato in questo caso perché quando x 1 = O la costante - l non è
presente.
3
Figu1
La curva
l'assunzi
proporzi
costi di s
è maggi•
rapprese
nella col•
Tabella:
Figur
La curva
r assunzic
proporzic
sua pend
ma rginai
cresce ali
l punti ra
valori nel
nella Tab
3.3
35
LE IPOTESI DELLA PROGRAMMAZIONE LINEARE
Contributo
dix 1 aZ
/
/
/
12
/
/
/
/
/
/
/
Soddisfa
/
l'assunzione di
//
proporzionalità //
~/
Viola
l'assunzione
di proporzionalità
/
/
/
/
• Figura 3.8
La curva in neretto viola
l'assunzione di
proporzionalità a causa di
costi di start-up quando x1
è maggiore di O. l punti
rapprese ntano i valori
nella colonna Caso l nella
Tabel la 3.4.
/
/
/
/
/
/
/
Costo di start-up
Contributo
dix 1 aZ
18
Viola
l'assunzione
di proporzionalità
15
/
/
/
/
/
/
12
/
/
/
/
• Figura 3.9
La curva in neretto viola
l'assunzione di
proporzionalità poiché la
sua pendenza (guadagno .
margi nale dal Prodotto l)
cresce all'aumentare di x1 •
l pu nti rappresentano i
valori nella colonna Caso 2
nel la Tabella 3.4.
/
9
/
//'
//
6
/
/
/
3
o
9'
"'
2
Soddisfa
l'assunzione di
proporzionalità
3
4
Questa violazione della proporzionalità potrebbe verificarsi a causa di economie di scala
che possono essere raggiunte con alti livelli di produzione, per esempio, attraverso l'uso
di macchinari più efficienti per alti volumi di produzione, più lunghi periodi di produzione, sconti per l'acquisto di grandi quantità di materie prime e l'effetto della curva di apprendimento per cui i lavoratori diventano più efficienti non appena acquisiscono esperienza con una particolare forma di produzione. Quando il costo incrementate scende, il
profitto incrementate salirà (assumendo costante il guadagno marginale).
Facendo riferimento nuovamente alla Tabella 3.4, l'opposto del Caso 2 è il Caso 3, dove si verifica un decremento del guadagno marginale. In questo caso, la pendenza della
funzione profitto per il Prodotto l (rappresentata dalla curva in neretto in Figura 3.1 O) decresce all'aumentare di x 1 • Questa violazione della proporzionalità potrebbe verificarsi
perché i costi di marketing aumentano in modo più che proporzionale per ottenere incrementi del livello delle vendite.
36
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
Contributo
di x 1
az
• Figura 3.1 O
La curva in neretto viola
l'assunzione di
proporzionalità poiché la
sua pendenza (guadagno
marginale dal Prodotto 1)
diminu isce all'aumentare
di x1 . l punti
rappresentano i valori
nella colonna Caso 3 nella
Tabella 3.4.
12
Viola
//
l'assunzione
di proporzionalità / /
""'
9
/
/ /
/
/
/
6
/
/
/
-?
Soddisfa
l'assunzione di
\
3
o
2
3
4
Per esempio, potrebbe essere possibile vendere, senza pubblicità, il Prodotto l al tasso di
l per settimana (x 1 = 1), mentre raggiungere il livello di vendita per sostenere un tasso di
produzione di x 1 = 2 potrebbe richiedere una modica quantità di pubblicità, x 1 = 3 potrebbe necessitare di una vasta campagna pubblicitaria e x 1 = 4 potrebbe richiedere anche
un abbassamento dei prezzi.
Tutti e tre i casi sono esempi ipotetici dei modi in cui l'ipotesi di proporzionalità potrebbe essere violata. Qual è la situazione reale? L'effettivo profitto dalla produzione del
prodotto l (o un qualunque altro prodotto) è ottenuto dal guadagno delle vendite meno vari costi diretti e indiretti. Per uno dei motivi illustrati sopra, può darsi che alcuni di questi
costi non siano strettamente proporzionali al tasso di produzione. Tuttavia, la vera questione è se, dopo che tutti le componenti che costituiscono il profitto sono considerate, la
proporzionalità è ancora un ' approssimazione ragionevole per gli scopi della modellazione. Per il problema della Wyndor Glass Co. , il team di ricerca operativa ha verificato sia
la funzione obiettivo che i singoli vincoli funzionali. La conclusione è stata che la proporzionalità potrebbe essere effettivamente ipotizzata senza importanti distorsioni.
Per gli altri problemi, cosa accade quando l' ipotesi di proporzionalità non è valida o
nemmeno approssimativamente valida? In molti casi, questo significa che deve essere
usata la programmazione non lineare (presentata nel Capitolo l 0). Tuttavia, nel Paragrafo
l 0.8, l'attenzione viene posta sul fatto che un importante tipo di non proporzionalità può
essere ancora gestita con la programmazione lineare riformulando opportunamente il problema. Inoltre, se l'ipotesi è violata solamente a causa dei costi di start-up, può essere usata un ' estensione della programmazione lineare (la programmazione intera mista), come
discusso nel Paragrafo 9.3 (Problema delfixed-charge).
Additività
Sebbene l' ipotesi di proporzionalità non ammette esponenti tranne che l' esponente l , essa
non vieta l'uso di termini comprendenti il prodotto di 2 o più variabili. L'ipotesi di additività non ammette quest'ultima possibilità, come viene descritto di seguito.
Ipotesi di additività: in un modello di programmazione lineare ogni funzione (sia
essa la funzione obiettivo che la funzione a sinistra di un vincolo funzionale) è la
somma dei contributi individuali delle rispettive attività.
Per rendere questa definizione più reale e chiarire perché è necessario preoccuparsi di questa ipotesi, vengono illustrati alcuni esempi. La Tabella 3.5 mostra alcuni possibili casi
per la funzione obiettivo del problema della Wyndor Glass Co. In ciascun caso, i contributi individuali dei prodotti sono quelli assunti nel Paragrafo 3.1 , cioè, 3x 1 per il prodotto l
e 5x 2 per il prodotto 2. La differenza risiede nel! 'ultima riga, la quale indica il valore del-
3.3
37
LE IPOTESI DELLA PROGRAMMAZIONE LINEARE
lafimzione Z quando i due prodotti sono realizzati congiuntamente. La col01ma Additività
soddisfatta mostra il caso in cui questo valore della fimzione è ottenuto semplicemente
sommando le prime due righe (3 + 5 = 8) cosicché Z = 3x 1 + 5x2 come assunto Ln precedenza. Al contrario, le due colonne successive mostrano i casi ipotetici in cui l'ipotesi
di additività è violata (ma non l'ipotesi di proporzionalità).
Facendo riferimento alla colonna Caso l della Tabella 3.5, questo caso coiTisponde a una
funzione obiettivo Z = 3x 1 + 5x2 + x 1x 2 , cosicché Z = 3 + 5 + l = 9 per (x 1, x 2 ) = (l, l),
violando, quindi, l' ipotesi di additività Z = 3 + 5 (l ' ipotesi di proporzionalità è ancora
soddisfatta dato che, quando il valore di una variabile è fissato, l' incremento del valore di
Z a causa dell ' altra variabile è proporzionale al valore di quella variabile). Questo caso potrebbe presentarsi se i due prodotti sono complementari in modo tale che il profitto è più
alto. Per esempio, si può ipotizzare che per immettere sul mercato uno dei due nuovi prodotti sia richiesta una intensa campagna pubblicitaria. La stessa campagna pubblicitaria
potrebbe essere usata per promuovere entrambi i prodotti qualora la decisione fosse quella
di produrli entrambi. Poiché un maggiore costo è risparmiato per il secondo prodotto, il
profitto congiunto dei due prodotti è qualcosa in più che la semplice somma dei profitti
quando i prodotti sono considerati singolannente.
Anche il Caso 2 nella Tabella 3.5 vio la l'ipotesi di additività a causa di termini aggiuntivi nella funzione obiettivo, Z = 3x 1 + 5x2 - x 1x 2 , cosicché Z = 3 + 5 - l = 7 per (x 1,
x 2 ) = (1, 1). Al contrario del primo caso, il Caso 2 potrebbe presentarsi se i due prodotti
sono concorrenti in modo tale che si decrementa ii loro profitto congiunto. Per esempio,
si supponga che entrambi i prodotti hanno la necessità di usare lo stesso macchinario o la
stessa attrezzatura. Se uno solo dei due prodotti è messo in produzione, tali macchinari e
attrezzature veiTanno destinati a questo unico utilizzo. Tuttavia, la produzione di entrambi
i prodotti richiede di passare da un processo di produzione a un altro, con tempi e costi dovuti alla terminazione della produzione di un prodotto e all'attivazione dell 'altro. A causa
di questo costo aggiuntivo, il profitto congiunto dei due prodotti è qualcosa in meno che
la somma dei loro profitti individuali quando uno solo di essi è prodotto.
Gli stessi tipi di interazione tra le attività possono influenzare l'additività dei vincoli
funzionali. Per esempio, si consideri il terzo vincolo funzionale del problema della
Wyndor Glass Co.: 3x 1 + 2x2 :::; 18. (Questo è l' unico vincolo riguardante entrambi i prodotti.) Questo vincolo riguarda la capacità produttiva dello Stabilimento 3, in cui, per i
due nuovi prodotti, è disponibile un tempo di produzione pari a 18 ore per settimana e la
funzione a sinistra (3x 1 + 2x 2 ) rappresenta il numero di ore di produzione per settimana
che può essere usato per questi prodotti. La colonna Additività soddisfàtta della Tabella
3.6 mostra questo caso, mentre le due colonne successive visualizzano i casi in cui la funzione ha un termine aggiuntivo prodotto delle due variabili che viola l 'additività. Per tutte
le tre colonne, i contributi individuali dei prodotti che usano la capacità dello
Stabilimento 3 sono come ipotizzati precedentemente, cioè, 3x 1 per il Prodotto l e 2x2 per
il Prodotto 2, o 3(2) = 6 per x 1 = 2 e 2(3) = 6 per x 2 = 3. Così come per la Tabella 3.5,
la differenza risiede nell ' ultima riga, che adesso fornisce il valore totale dei tempo di produzione usato quando i due prodotti sono creati congiuntamente.
TABELLA 3.5 Esempi in cui l'ipotesi di additività per la funzione obiettivo
è soddisfatta o violata
Valore di Z
Additività violata
(x1, x2)
Additività soddisfatta
Caso 1
Caso2
(1, O)
(0, l)
3
3
3
5
5
5
(l, l)
8
9
7
38
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
TABELLA 3.6 Esempi in cui l'ipotesi di additività per un vincolo funzionale
è soddisfatta o violata
Quantità di risorse usate
Additività violata
(x1, x2)
Additività soddisfatta
Caso3
Caso4
(2, O)
(0, 3)
6
6
6
6
6
6
(2, 3)
12
15
10.8
Per il Caso 3 (si veda la Tabella 3.6), il tempo di produzione usato per i due prodotti è dato dalla funzione 3x 1 + 5x 2 + 0.5x 1x 2 , cosicché il valore totale della funzione è
6 + 6 + 3 = 15 quando (x 1, x 2 ) = (2, 3), che viola l'ipotesi di additività in base alla quale
il valore è 6 + 6 = 12. Questo caso può presentarsi nello stesso modo come descritto per
il Caso 2 nella Tabella 3.5; ovvero, un tempo aggiuntivo è speso nel passare dalla produzione di un prodotto alla produzione del! 'altro. Questo termine aggiuntivo (0.5x 1x 2) povrebbe indicare il tempo di produzione speso in questo modo (occorre notare che questa
perdita di tempo nel passaggio da un prodotto all ' altro durante la produzione conduce a
un coefficiente positivo se la funzione totale è una misura del tempo di produzione usato,
mentre conduce a un coefficiente negativo per il Caso 2 perché in questo caso la funzione
totale misura il profitto).
Per il Caso 4 nella Tabella 3.6, la funzione che misura il tempo di produzione usato è
3x 1 + 2xz - O . lx~ x 2 , cosicché il valore della fimzion e per (x 1, x 2 ) = (2, 3) è
6 + 6 - 1.2 = 10.8. Come nel Caso 3, si supponga che i due prodotti richiedano lo stesso
tipo di macchinario e attrezzatura. Si assuma, però, che il tempo per passare da un prodotto a un altro sia trascurabile. Poiché ogni prodotto passa attraverso una sequenza di operazioni di produzione, alcuni specifici macchinari dedicati a quel prodotto potrebbero incorrere in periodi di inattività. Durante questi periodi di inattività, tali macchinari potrebbero
essere utilizzati da altri prodotti. Di conseguenza, il tempo totale di produzione usato
(compreso i periodi di inattività) quando si avvia la produzione dei i due prodotti in maniera congiunta potrebbe essere inferiore alla somma dei tempi di produzione necessari
per i singoli prodotti quando prodotti separatamente.
Dopo l'analisi dei possibili tipi di interazione tra i due prodotti illustrati attraverso questi quattro casi, il gruppo di ricerca operativa ha concluso che nessuno di questi ha giocato
un ruolo importante nell'attuale problema della Wyndor Glass Co. Quindi, si è valutato
che l'ipotesi di additività è valida con una ragionevole approssimazione.
Per altri problemi, se l' additività non è un'ipotesi accettabile, cosicché alcune o tutte le
funzioni matematiche del modello necessitano di essere non lineari (a causa di termini
con prodotti di variabili), si entra in modo nel regno della programmazione non lineare
(Capitolo 10).
Divisibilità
L'ipotesi successiva è relativa ai valori possibili per le variabili decisionali.
Ipotesi di divisibilità: le variabili decisionali di un modello di programmazione lineare possono assumere un qualunque valore, inclusi quelli non interi, che soddisfino i vincoli funzionali e quelli di nonnegatività. Pertanto, i valori di queste variabili
non sono limitati ai soli numeri interi. Poiché ogni variabile decisionale rappresenta
il livello di una qualche attività, si sta assumendo che le attività possono fun zionare
a livelli frazionari.
Per il problema della Wyndor Glass Co., le variabili decisionali rappresentano il tasso di
produzione (il numero di lotti prodotti alla settimana). Poiché questi tassi di produzione
3.3
LE IPOTESI DELLA PROGRAMMAZIONE LINEARE
39
possono assumere un qualunque valore frazionario all'interno della regione ammissibile,
l'ipotesi di divisibilità è verificata.
In alcune situazioni, tale ipotesi può non valere perché alcune, oppure tutte le variabili
decisionali devono assumere soltanto valori interi. I modelli matematici con queste restrizioni prendono il nome di modelli di programmazione intera, e saranno trattati nel
Capitolo 9.
Certezza
L'ultima ipotesi riguarda i parametri del modello, vale a dire, i coefficienti c1 della funzione obiettivo e i coefficienti au e b; dei vincoli funzionali .
Ipotesi di certezza: i valori assegnati a ogni parametro di un modello di programmazione lineare sono costanti note.
Nelle applicazioni reali, l'ipotesi di certezza è di rado soddisfatta completamente. I modelli di programmazione lineare sono normalmente formulati per determinare un qualche corso di azioni futuro . I valori dei parametri usati devono, quindi, essere basati su una previsione delle condizioni future, il che introduce inevitabilmente un qualche grado di incertezza.
Per questa ragione è quasi sempre importante condurre un'analisi della sensitività dopo aver determinato una soluzione ottima con i valori dei parametri fissati al valore corrente. Come discusso nel Paragrafo 2.3, l'intento è quello di identificare i parametri sensibili (i cui valori non possono mutare senza modificare la soluzione ottima), poiché ogni
successivo cambiamento nel valore di un parametro sensibile segnala la necessita di dover
cambiare la soluzione ottima che si sta utilizzando.
L'analisi della sensitività gioca un importante ruolo nell 'analisi del problema della
Wyndor Glass Co., come si vedrà nel Paragrafo 6.7. Tuttavia, è necessario acquisire qualche altra conoscenza prima di discutere a fondo questo aspetto.
Occasionalmente, il grado di incertezza è troppo grande per essere gestito dall 'analisi
della sensitività. In questi casi, è necessario trattare i parametri esplicitamente come variabili casuali.
Le ipotesi in prospettiva
Nel Paragrafo 2.2 si è enfatizzato che un modello matematico è soltanto una rappresentazione astratta del problema reale. Generalmente, per poter trattare il problema sono necessarie semplificazioni e approssimazioni. L'aggiunta di troppi dettagli e di un'eccessiva
precisione può rendere il modello troppo complicato per effettuare una proficua analisi
del problema. Tutto quello che è realmente necessario è che ci sia una correlazione ragionevolmente elevata tra le previsioni del modello e quello che effettivamente accade nel caso reale.
Questa raccomandazione è certamente applicabile alla programmazione lineare. È molto comune nelle applicazioni di problemi di programmazione lineare che quasi nessuna
delle quattro ipotesi sia verificata completamente, eccezion fatta, forse, per l 'ipotesi di divisibilità .
Questo è vero specialmente per l'ipotesi di certezza, così che l'analisi della sensitività
deve essere eseguita per compensare la violazione di quest'ipotesi.
Tuttavia, è importante per un team di ricerca operativa considerare le quattro ipotesi
per il problema ed esaminare in quale misura queste siano, oppure no, soddisfatte. Se
qualcuna di queste fosse violata in maniera significativa, allora si potranno utilizzare altri
modelli alternativi, come esposto nei capitoli successivi del libro.
Uno svantaggio nell'uso di questi differenti modelli è che, generalmente, gli algoritmi
risolutivi non sono altrettanto potenti come quelli per la programmazione lineare, anche
se, in qualche caso, questa discrepanza è stata quasi annullata. In alcune applicazioni, si
40
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
effettua un 'analisi preliminare con i potenti strumenti della programmazione lineare e,
successivamente, un modello più complesso viene utilizzato per rifinire questa analisi.
Attraverso gli esempi del Paragrafo 3.4 è possibile acquisire una buona pratica nell'applicazione delle quattro ipotesi della programmazione lineare.
3.4
ESEMPI AGGIUNTIVI
Il problema della Wyndor Glass Co. è un prototipo di problema di progranunazione lineare per diversi aspetti: esso riguarda l'allocazione di risorse limitate tra attività concorrenti,
il suo modello segue la forn1a standard e il suo contesto è quello tradizionale del miglioramento della pianificazione aziendale. Tuttavia, l 'applicabilità della programmazione lineare è molto più vasta. Ciò che rende gli esempi presentati in questo paragrafo problemi di
programmazione lineare non è il contesto in cui sono inseriti, bensì il modello matematico
sottostante. Si noti come lo stesso modello matematico compare in contesti disparati cambiando semplicemente il nome delle attività.
Questi esempi sono delle versioni ridotte di applicazioni reali (due di questi sono tra i
casi di studio presentati nel paragrafo successivo). Come il problema Wyndor, il primo di
questi esempi ha solo due variabili decisionali e, quindi, può essere risolto mediante il metodo grafico. La novità è rappresentata dal fatto che si tratta di un problema di minimizzazione e i vincoli funzionali sono espressi in forme diverse. Gli esempi successivi hanno
molto più di due variabili decisionali e, di conseguenza, sono molto più stimolanti da formulare. Anche se si accennerà al fatto che le loro soluzioni ottime sono ottenute con il metodo del simplesso, l'attenzione sarà focalizzata su come formulare il modello di programmazione lineare per questi problemi di maggiori dimensioni . I paragrafi successivi e il
prossimo capitolo ruoteranno attorno alla questione degli strumenti software e dell'algoritmo (metodo del simplesso) da utilizzare per risolvere tali problemi.
Progetto di radioterapia
A MARY è stato appena diagnosticato un tumore a uno stato piuttosto avanzato. Nello
specifico, ha un grosso tumore maligno alla vescica.
Mary deve ricevere la più avanzata assistenza medica disponibile in modo da avere
ogni possibile chance di sopravvivenza. La cura comprenderà una lungafase di radioterapia.
La radioterapia consiste nell ' uso di un macchinario che dall 'esterno invia un fascio di
radiazione ionizzante nel corpo della paziente, danneggiando sia i tessuti cancerosi che
quelli sani. Normalmente, diversi raggi sono diretti con precisione da differenti angoli in
un piano bidimensionale. A causa dell'attenuazione, ogni raggio rilascia più radiazione ai
tessuti vicini al punto di ingresso rispetto a quelli vicini al punto di uscita. La dispersione
provoca anche il rilascio di radiazioni su tessuti che si trovano all'esterno della traiettoria
del fascio. Poiché le cellule tumorali sono tipicamente sparse in modo microscopico tra le
cellule sane, il dosaggio della radiazione su tutta la regione tumorale deve essere abbastanza forte da uccidere le cellule maligne, che sono leggennente più sensibili alle radiazioni, ma abbastanza debole da non recare danno alle cellule sane. Allo stesso tempo, la
dose associata ai tessuti ctitici non deve superare i livelli di tolleranza stabiliti, in modo da
impedire complicazioni che possono essere più dannose del male stesso. Per la stessa ragione, la dose totale per l' intera struttura anatomica sana deve essere minimizzata.
A causa della necessità di bilanciare attentamente tutti questi fattori, il progetto di cura
radioterapica è un processo molto delicato. L'obiettivo è selezionare la combinazione di fasci di radiazione da utilizzare e l' intensità di ognuno di essi, in modo da generare la migliore distribuzione possibile della dose. (L ' intensità della dose in un qualunque punto del corpo è misurata in unità chiamate ki/01-ad.) Una volta che il progetto è stato sviluppato, la terapia è somministrata con parecchi trattamenti distribuiti nel corso di diverse settimane.
FIGUf
Sezione t
more d
:Jall'alto),
· in i e i f
- e veng
Raggi
----...
C§
l. Re1
2,3. T
3.4
•
FIGURA 3.11
Sezione trasversale del
tumore di Mary (vista
dall'alto), i tessuti c~itici
vicini e i fasc i di radiazione
che vengono usati.
Raggio 2
Raggio l
l. Regione tumorale
2,3. Tessuti critici
ESEMPI AGGIUNTIVI
41
Nel caso di Mary, la dimensione e la localizzazione del tumore rende la progettazione del
trattamento un processo addirittura più delicato del nonnale. La Figura 3.11 mostra un
diagramma di una sezione trasversale del tumore vista dali 'alto e i tessuti critici vicini da
evitare. Per i due soli raggi che possono essere utilizzati con un po ' più di sicurezza in
questo caso, sono mostrati sia il punto di ingresso che la relativa direzione (questo rappresenta una semplificazione, dato che, normalmente, devono essere considerati una dozzina
di possibili fasci).
Per ogni raggio di una data intensità, l' analisi di quale dovrebbe essere l'assorbimento
della radiazione risultante dalle varie parti del corpo, è un processo complesso. In breve,
basandosi su un 'attenta analisi anatomica, la distribuzione dell 'energia in una sezione trasversale bidimensionale del tessuto può essere tracciata su una mappa isodose dove le curve di livello rappresentano l'intensità della dose come percentuale dell'intensità nel punto
di ingresso. Inoltre, una griglia fine è sovrapposta alla mappa isodose. Sommando la radiazione assorbita nei quadrati contenenti i vari tipi di tessuto, può essere calcolata la dose
media che è assorbita dal tumore, dalla struttura anatomica sana e dai tessuti critici. Con
più di un raggio (somministrato in modo sequenziale), l'assorbimento della radiazione è
additivo.
Un'analisi completa di questo tipo permette ai medici di stimare i dati necessari per
progettare il trattamento per Mary, come riassunto nella Tabella 3.7. La prima colonna
elenca le aree del corpo che devono essere considerate, mentre le altre due colonne indicano, in media, la frazione della dose di radiazione al punto di ingresso assorbita dalle diverse aree per ciascun raggio. Per esempio, se il livello di dose al punto di ingresso per il raggio l è di l kilorad, allora una media di 0.4 kilorad sarà assorbita dall'intera anatomia sana nel piano bi-dimensionale, una media di 0.3 kilorad sarà assorbita dai vicini tessuti critici, una media di 0.5 kilorad sarà assorbita da varie parti del tumore e 0.6 kilorad saranno
assorbiti dal nucleo del tumore. L'ultima colonna fornisce i vincoli sul dosaggio totale, di
entrambi i raggi, che è assorbito in media dalle rispettive aree del corpo. In particolare
l'assorbimento medio da parte della struttura anatomica sana deve essere il più piccolo
possibile, i tessuti critici non devono superare i 2.7 kilorad, la media sull'intero tumore
deve essere uguale a 6 kilorad e il nucleo del tumore deve essere almeno 6 kilorad.
Formulazione come problema di programmazione lineare. Le due variabili decisionali x, e xz rappresentano la dose (in kilorad) al punto di ingresso rispettivamente per
il raggio l e il raggio 2. Poiché il dosaggio totale che raggiunge la parte sana del corpo deve essere minimizzato, questa quantità viene indicata come Z. I dati della Tabella 3. 7 possono essere usati direttamente per fotmulare il seguente modello di programmazione lineare.4
mmtmtzzare
Z = 0.4x 1 + 0.5xz
soggetto ai vincoli
0.3x 1 + O.lx2
::;
2.7
+ 0.5x2 = 6
0.6x 1 + 0.4x2 :::: 6
0.5x,
e
xz:::: O
4
La Tabella 3.7 semplifica la situazione reale. Il modello reale dovrebbe, infatti , essere più complicato di questo
e dovrebbe avere una dozzina di variabili e di vinco li. Per maggiori dettagli sul caso generale, consu ltare D.
Sonderman and P.G. Abrahamson, " Radiotherapy Treatment Design Using Mathematical programming
Models", Operations Research, 33:705-725, 1985, e il riferimento bibliografico l. Il professor Eva K. Lee del
Georgia lnstitute of Technology è un leader nella ricerca per estendere ulteriom1ente l'applicazione della programmazione lineare e altre aree della programmazione matematica alla progettazione ottima di radioterapia.
42
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
TABELLA 3.7 Dati per il progetto della terapia a radiazioni di Mary
Frazione della dose di
ingresso assorbita
dall'area
(in media)
Area
Restrizioni sul dosaggio
totale medio, kilorad
Raggio 1
Raggio2
0.4
0.3
0.5
0.6
0.5
0.1
0.5
0.4
Anatomia sana
Tessuti critici
Regione tu mora le
Nucleo del tumore
Minimizzare
"5. 2.7
= 6
2: 6
Si possono notare le differenze tr·a questo modello e quello del Paragrafo 3.1 relativo
al problema della Wyndor Glass Co. In quel caso il modello richiedeva la massimizzazione di Z, e tutti i vincoli funzionali erano nella forma ::::;. Questo nuovo modello non
è in forma standard, ma incorpora tre altre fonne legittime descritte nel Paragrafo 3.2,
ovvero, la minimizzazione di Z, vincoli funzionali nella fonna = e vincoli funzionali
nella forma ~ .
Tuttavia, entrambi i modelli hanno due sole variabili e così anche questo nuovo problema può essere risolto attraverso il metodo grafico illustrato nel Paragrafo 3 .l. La Figura
3.12 mostra la soluzione grafica. La regione ammissibile è composta dal segmento più
• FIGURA 3.12
Soluzione grafica per il
progetto dell a terapia a
radiazio ni di Mary.
15
'-..
'-..
'-..
'-..
'-..
'-..
'-..
'-..
'-..
'-..
'-..
'-..
'-..
'-..
'-..
'-..
(7.5 , 4.5)
"' :-._ '-, Z = 5.25 = 0.4x 1 + 0.5x2
'-..
'-..
'-..
'-..
'-..
0.3x 1 + O.lx2 ::S 2.7
'-..
0.5x 1 + 0.5x2 = 6
o
3.4
ESEMPI AGGIUNTIVI
43
scuro tra i punti (6, 6) e (7.5, 4.5): i punti su questo segmento sono gli unici che, simultaneamente, soddisfano tutti i vincoli (si può notare che il vincolo di uguaglianza limita la
regione ammissibile alla retta contenente questo segmento, mentre gli altri due vincoli
funzionali determinano i due punti estremi del segmento). La linea tratteggiata che passa
attraverso la soluzione ottima (x 1, x 2 ) = (7.5, 4.5) con Z = 5.25 è la retta che rappresenta
la funzione obiettivo. Questa è la soluzione ottima, anziché il punto (6, 6), perché decrementando Z (per valori positivi di Z) la retta che rappresenta la funz ione obiettivo viene
spinta verso l'origine (dove Z =O) e, inoltre, Z = 5.25 in corrispondenza di (7.5, 4.5) è
minore di Z = 5.4 in corrispondenza di (6, 6).
Di conseguenza, il progetto ottimale è quello di usare, al punto di ingresso, una dose
totale di 7.5 kilorad per il fascio l e 4.5 kilorad per il fascio 2.
Un problema di pianificazione regionale
La CONFEDERAZIONE MERIDIONALE DEL KIBBUTZIM è un gruppo di tre kibbutzim (comunità agricole municipali) in Israele. La pianificazione completa per questo gruppo è svolta dal competente Ministero che sta pianificando la produzione agricola per l'anno futuro.
Il rendimento agricolo di ogni kibbutz è limitato sia dalla quantità di terra irrigabile disponibile, sia dalla quantità di acqua destinata all'irrigazione. Questi dati sono riportati
nella Tabella 3.8.
TABELLA 3.8 Risorse dei dati per la Confederazione Meridionale del Kibbutzim
Kibbutz
Terra usabile (acri)
Allocazione di acqua (acro-piede 5 )
l
400
600
300
600
800
375
2
3
I raccolti possibili per questa regione comprendono barbabietole da zucchero, cotone e
sorgo, e questi sono i tre prodotti che vengono considerati per la stagione futura. Questi
raccolti differiscono principalmente per il guadagno netto atteso per acro e per il consumo
di acqua. Inoltre, il Ministro dell'Agricoltura ha fissato una quota massima per il numero
totale di acri che possono essere destinati a questi raccolti dalla Confederazione
Meridionale del Kibbutzim, come mostrato nella Tabella 3.9.
A causa della limitata disponibilità di acqua per l 'irrigazione, la Confederazione
Meridionale del Kibbutzim non è in grado di utilizzare tutte le sue terre irrigabili nella stagione futura. Per garantire equità tra i tre kibbutzim, è stato convenuto che ogni kibbutz
potrà usare la stessa proporzione della propria terra irrigabile. Per esempio, se il kibbutz l
pianta 200 dei suoi 400 acri disponibili, allora il kibbutz 2 deve piantare 300 dei suoi 600
acri, mentre il kibbutz 3 pianta 150 dei suoi 300 acri. Tuttavia, in ogni kibbutz può essere
fatta crescere una qualunque combinazione dei raccolti.
TABELLA 3.9 Dati del raccolto per la Confederazione Meridionale del Kibbutzim
Raccolto
Barbabietole da zucchero
Cotone
Sorgo
5
Quota massima
(acri)
Consumo di acqua
(acro-piede/ acro)
600
500
325
3
2
l
Guadagno
netto
(dollaro/acro)
1000
750
250
Questa è una misura di volume utilizzata per riserve di acque. Corrisponde a circa 1233.482 metri cubi (NdC).
44
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
Il problema che si vuole risolvere è quello di pianificare quanti acri destinare a ogni raccolto nel rispettivo kibbutz, soddisfacendo simultaneamente le specifiche restrizioni.
L' obiettivo è massimizzare il guadagno totale netto della Confederazione Meridionale del
Kibbutzim nel suo complesso.
Formulazione come problema di programmazione lineare. Le quantità che devono essere determinate sono il numero di acri da destinare a ognuno dei tre raccolti in
ciascuno dei tre kibbutzim. Le variabili decisionali x1U = l , 2, ... , 9) rappresentano queste nove quantità, come mostrato in Tabella 3 .l O.
Dato che la misura dell 'efficacia è il guadagno totale netto Z, il modello di programmazione lineare risultante per questo problema è
massimizzare
Z = lOOO (xi
+ x 1 + x 3) + 750(x4 + xs + x6) + 250(x7 + xs + x9)
soggetto ai seguenti vincoli:
l. terra utilizzabile per ogni kibbutz:
XI
Xl
+ X4 + X7 :::; 400
+ Xs + Xg :S 600
X3 +x6 +x9:::; 300
2. allocazione di acqua per ogni kibbutz:
+ 2x4 + X7
3xl + 2xs + xs
3x3 + 2x6 + X9
3xi
:::; 600
:::; 800
:::; 375
3. acri totali per ogni raccolto:
XI +x1 +x3:::; 600
X4 +xs +x6:::; 500
X7
+ Xg + X9
:::; 325
4. uguale proporzione di terra coltivata:
XI +x4 +x1
400
x2 + xs + xs
600
X3 + X6 +x9
300
x2 +xs +xs
600
X3 +x6 +x9
300
XI +x4 +x1
400
5. non negatività:
x1 2:: O,
per} =l, 2, ... , 9
TABELLA 3.1 O Variabili decisionali per il problema della Confederazione
Meridionale del Kibbutzim
Allocazione (acri)
kibbutz
Raccolto
Barbabietole da zucchero
Cotone
Sorgo
1
2
3
Xl
Xz
X3
X4
X5
X6
X7
Xs
Xg
3.4
ESEMPI AGGIUNTIVI
45
TABELLA 3.11 Soluzione ottima per il problema della Confederazione
Meridionale del Kibbutzim
Migliore allocazione (acri)
kibbutz
Raccolto
Barbabietole da zucchero
Cotone
Sorgo
l
2
3
133.3
100
100
250
25
150
o
o
o
Questo completa il modello, ma i vincoli di uguaglianza non sono, tuttavia, in una fonna
appropriata per un modello di programmazione lineare poiché alcune delle variabili si trovano a destra del simbolo = . Quindi, la loro forma finalé è
3(xl +x4 +x7)- 2(x2 + xs +xs) = O
(x2 +xs +xs)- 2(x3 +x6 +x9) = O
4(x3 +x6 +x9)- 3(xl +x4 +x7) = O
L'Ufficio per la Coordinazione Tecnica ha fonnulato questo modello e ha applicato il metodo del simplesso (sviluppato nel Capitolo 4) per detenninare una soluzione ottima
(x 1, x2, X3,
X4,
x5, x6, x7, xs, x9)
=
( 133.3, 100, 25, 100, 250, 150, O, O, 0),
come mostrato nella Tabella 3.11. Il valore ottimale della funzione obiettivo che ne risulta
Z = 633 333.3, cioè, un guadagno totale netto di 633 333.33 dollari.
~
Controllo dell'inquinamento atmosferico
La NORI & LEETS CO., uno dei maggiori produttori di acciaio, ha sede nella città di
SteelTown dove è considerata l'unico grosso datore di lavoro. Steeltown è cresciuta e prosperata con l'azienda, che adesso impiega circa 50000 residenti. Di conseguenza, l'atteggiamento degli abitanti della città è stato sempre; "Ciò che è bene per la Nori & Leets è
bene per la città". Tuttavia, adesso, questo atteggiamento sta cambiando. Un incontrollato
inquinamento atmosferico proveniente dalle fornaci dell'azienda sta rovinando l'aspetto
della città e mettendo in pericolo la salute dei suoi residenti.
Una recente protesta degli azionisti ha avuto come risultato l'elezione di un nuovo consiglio di amministrazione della società. I nuovi dirigenti sono detenninati a perseguire politiche di responsabilità sociale, e hanno discusso con gruppi di funzionari e di abitanti
della città cosa fare in merito al problema dell'inquinamento atmosferico. Essi hanno collaborato per trovare una soluzione e definire standard stringenti di qualità dell 'aria per la
città di Steeltown.
I tre principali tipi di inquinamento sono materiale in polvere, ossido di zolfo e idrocarburi. I nuovi standard richiedono che la società riduca le proprie emissioni annuali di questi inquinanti come riportato nella Tabella 3.12. Il consiglio di amministrazione ha chiesto
al management di impiegare uno staff di ingegneri per detenninare come raggiungere queste riduzioni nel modo più economico.
6
Una qualunque di queste equazioni è ridondante e, se desiderato, può essere eliminata. Inoltre, a causa di queste equazioni, due qualunque dei vi ncoli relativi alla terra utilizzabile potrebbero essere el iminati perché essi risultano automaticamente soddisfatti quando il rimanente vincolo e queste equazioni sono soddisfatti. Tuttavia,
l'inclusione di vincoli ridondanti non genera alcun danno (eccetto un piccolo sforzo computazionale in più), così
non è necessario preoccuparsi di andarli a identificare e cancellare dal modello fotmulato.
46
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
• TABELLA 3.12 Standard di aria pulita per la Nori & Leets Co.
Richiesta della riduzione del tasso di emissioni annuo
(milioni di libbre)
Sostanza inquinante
Polveri
Ossido di zolfo
idrocarburi
60
150
125
• TABELLA 3.13 Riduzione del tasso di emissione (in milioni di libbre per anno)
con il massimo uso possibile di un metodo per l'abbattimento
per la Nori & Leets Co.
Camini alti
Sostanza
inquinante
Polveri
Ossido di zolfo
idrocarburi
Filtri
Migliori combustibili
Fornaci
di
fusione
Fornaci
a crogiolo
aperto
Fornaci
di
fusione
Fornaci
a crogiolo
aperto
Fornaci
di
fusione
Fornaci
a crogiolo
aperto
12
35
37
9
42
53
25
18
28
20
31
24
17
56
29
49
20
13
Le acciaierie hanno due sorgenti primarie di inquinamento: le fornaci di fusione per la
produzione della ghisa e le fornaci a crogiolo aperto per la trasformazione del ferro in acciaio. In entrambi i casi gli ingegneri hanno deciso che i metodi di abbattimento più efficaci sono (l) aumentare l'altezza dei camine, (2) usare dispositivi di filtro (compreso
trappole per i gas) nei camini e (3) utilizzare combustibili di alta qualità per le fornaci.
Come usare ciascuno di questi metodi dipende dal limite tecnologico del metodo stesso
(per esempio l'aumento massimo possibile dell'altezza dei camini). Tuttavia, esiste una
considerevole flessibilità perché questi metodi possono essere usati anche a una frazio ne
del loro limite dovuto alla tecnologia.
La Tabella 3.13 mostra quante emissioni (in milioni di libbre per anno) possono essere
eliminate da ogni tipo di fornace usando ciascun metodo di abbattimento al suo limite tecnologico. Ai fini dell 'analisi , si è assunto che ogni metodo può essere usato anche in modo non completo (non al suo limite tecnologico) per raggiungere una qualunque frazione
della riduzione dei tassi di emissione mostrati in questa tabella. Per di più, le frazioni possono essere diverse per le fornaci di fusione e per quelle a crogiolo aperto. Per entrambi i
tipi di fornace, la riduzione delle emissioni raggiunta attraverso ciascun metodo non è sostanzialmente influenzata se vengono usati anche altri metodi.
Dopo che questi dati sono stati valutati, fu chiaro che nessun singolo metodo, da solo,
poteva soddisfare tutte le restrizioni richieste . D'altronde, la combinazione di tutti i tre
metodi alla massima capacità su entrambi i tipi di fornace (che dovrebbe essere economicamente proibitivo se i prodotti della società devono restare a un prezzo competitivo) è
molto più che adeguata. Di conseguenza gli ingegneri hanno concluso che si dovrebbe utilizzare qualche combinazione dei metodi possibili, eventualmente in una misura frazionaria, basandosi sui relativi costi. Inoltre, a causa delle differenze tra la fornace di fusione e
quella a crogiolo aperto, i due tipi, probabilmente, non dovranno utilizzare la medesima
combinazione.
Per stimare il costo annuo totale che dovrebbe essere sostenuto per ogni metodo di abbattimento, è stata condotta un'opportuna analisi. Tale costo comprende l'aumento delle
7
Successivamente a questo studio, questo particolare metodo di abbattimento ha generato una polemica. Poiché
il suo effetto è quello di ridurre l 'inquinamento a livello del suolo diffondendo le emissioni su grandi distanze, i
gruppi ambientalisti affermano che questo metodo genera più p~ge acide mantenendo più a lungo nell'aria ossido di zolfo. Di conseguenza, nel 1985, l' Agenzia Americana per La Protezione Ambientale ha adottato nuove
regole per la rimozione degli incentivi sul! ' uso di camini alti.
3.4
47
ESEMPI AGGIUNTIVI
spese per la gestione e il mantenimento come pure la riduzione delle entrate dovuta alla
perdita dell'efficienza nel processo di produzione per l'utilizzo del metodo stesso. L'altro
principale costo è il costo di start-up (l 'investimento iniziale di capitale) richiesto per installare il metodo. Per rendere il costo di start-up confrontabile con i costi annui, è stato
usato il valore nel tempo del denaro al fine di calcolare la spesa annua equivalente
(rispetto alla vita attesa del metodo).
Usando i metodi alle rispettive capacità massime di abbattimento, questa analisi ha
condotto ai costi totali annui stimati (in milioni di dollari) indicati nella Tabella 3.14. È
stato inoltre determinato che il costo di un metodo usato a un livello più basso è all'incirca proporzionale alla frazione della capacità di abbattimento che è raggiunta e indicata in
Tabella 3.14.
La fase successiva è stata quella di sviluppare il piano societario generale per l'abbattimento dell'inquinamento. Questo piano specifica quali metodi di abbattimento saranno
usati e a quale frazione della loro capacità di abbattimento per (l) le fornaci di fusione e
per (2) le fornaci a crogiolo aperto. A causa della natura combinatoria del problema di determinare un piano che soddisfi le richieste con il costo più basso possibile, fu costituito
un team di ricerca operativa per risolvere il problema. Il team adottò un approccio di programmazione lineare, formu lando il modello che viene riassunto di seguito.
Formulazione come problema di programmazione lineare. Questo problema
ha sei variabili decisionali x1 (j = l, 2, ... , 6) ognuna delle quali rappresenta l'uso di uno
dei tre metodi di abbattimento per ciascuno dei due tipi di fornace, espresso come frazio ne della capacità di abbattimento (e pertanto x1 non può essere maggiore di 1). Il significato di queste variabili è mostrata nella Tabella 3.15.
Poiché l'obiettivo è minimizzare il costo totale soddisfacendo allo stesso tempo la richiesta di riduzione delle emissioni, i dati delle Tabelle 3.12, 3.13 e 3.14 producono il seguente modello:
mmimizzare
Z = 8x 1 + lOx2 + 7x3
+ 6x4 +
llx 5 + 9x6
soggetto ai seguenti vincoli:
l. riduzione delle emissioni:
+ 9x2 + 25x3 + 20x4 + 17xs + 13x6 2::
35xl + 42x2 + l8x3 + 3lx4 + 56xs + 49x6 2::
37xl + 53x2 + 28x3 + 24x4 + 29xs + 20x6 2::
12xl
60
150
125
2. limite tecnologico:
x1 ::; l ,
per} = l , 2, .. ., 6
x1 ?: 0,
perj = l , 2, ... ,6
3. non negatività:
Il team di ricerca operativa ha usato questo modello per determinare un piano a costo minimo.
(x l, X2 , X3, X4, X5, X6) = ( l , 0.623 , 0.343, l , 0.048, l )
TABELLA 3.14 Costo totale annuo per il massimo uso possibile di un metodo
di abbattimento per la Nori & Leets Co. (milioni di dollari)
Metodo di abbattimento
Camini alti
Filtri
Carburanti migliori
Fornaci di f~sione
Fornaci a crogiolo aperto
8
7
11
lO
6
9
48
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
TABELLA 3.15 Variabili decisionali (frazione del massimo uso possibile di un
metodo di abbattimento) (milioni di dollari) per la Nori & Leets Co.
Metodo di abbattimento
Fornaci a crogiolo aperto
Fornaci di fusione
Camini alti
Filtri
Carburanti migliori
con Z = 32.16 (costo totale annuo di 32.16 milioni di dollari). Un 'analisi della sensitività
è stata poi condotta per valutare l'effetto del! 'applicazione di possibili aggiustamenti negli
standard dell 'aria indicati nella Tabella 3.12, come pure verificare l'effetto di qualunque
inesattezza nel costo indicato nella Tabella 3.14. Successivamente venne dettagliata la
pianificazione e sottoposta alla revisione dei dirigenti. Questo programma per il controllo
dell ' inquinamento atmosferico è stato implementato in pieno dalla società, e gli abitanti di
Steeltown fecero profondi (più puliti) respiri di sollievo.
Rigenerazione di rifiuti solidi
La SAVE-IT COMPANY gestisce un centro che raccoglie quattro tipi di materiali di rifiuti solidi e li tratta in modo che essi possano essere mescolati per dar vita a un prodotto
vendibile. (Il trattamento e la miscelatura sono processi separati.) A seconda della miscela
dei materiali usati, possono essere creati tre differenti categorie di prodotto (si veda la prima colonna della Tabella 3.16). Sebbene per ogni categoria esista una qualche flessibilità
nella composizione della miscela, gli standard di qualità possono specificare la proporzione minima o massima di materiale permessa nella particolare categoria del prodotto
(questa proporzione è il peso del materiale espresso come percentuale del peso totale del
prodotto). Per ciascuna delle due categorie di qualità superiore, la percentuale di uno dei
materiali è fissa. Queste specifiche sono fornite nella Tabella 3.16 as ieme al costo della
miscelatura e al prezzo di vendita per ogni categoria.
Il centro raccoglie i rifiuti solidi con regolarità e così è in grado di garantirne una percentuale costante per il trattamento. La Tabella 3.17 mostra le quantità di ponibili ogni settimana per la raccolta e il trattamento e il costo del tranarnemo per o_ ·tipo di materiale.
La Save-It Co. è posseduta dalla Green Earth. un'organivazione ri,·olta alla soluzione
di problemi ambientali , così i profitti della Save-It Yengono - ti per finanziare le attività
della Green Earth. La Green Earth ha raccolto donaziorn e finanzi:unenri . per un ammontare di 30 000 dollari a settimana, da usare esclu ivamen e per -o rire il o to del trattamento dei materiali da rifiuti solidi. Il consiglio d'arnrninisrr:uio d lla Green Earth ha
ordinato al management della Save-lt di dividere que o d
m m o tale che almeno
la metà dei totale di ogni materiale disponibile sia realme strizioni aggiuntive sono elencate nella Tabella 3.1 - .
TABELLA 3.16 Dati per i prodotti per la Save-lt Co.
Prezzo di
vendita
per libbra ($)
Categoria Descrizione
A
Materiale l:
Materiale 2:
Materiale 3:
Materiale 4:
non più del 30% del totale
non meno del 40% del totale
non più del 50% del totale
esattamente il 20% del totale
8
Materiale l: non più del 50% del totale .y
Materiale 2: non meno del l 0% del totale
Materiale 4: esattamente il l 0% del totale
7.00
c
Materiale l: non più del 70% del totale
5.50
3
8.50
3.4
49
ESEMPI AGGIUNTIVI
TABELLA 3.17 Dati materiali rifiuti solidi per la Save-lt Co.
Materiale
Libbre
disponibili
per settimana
Costo
trattamento
per libbra ($)
l
2
3
4
3000
2000
4000
1000
3.00
6.00
4.00
5.00
Restrizioni aggiuntive
l . Per ogni materiale, almeno metà
della quantità disponibile per settim ana
dovrebbe essere raccolta e trattata.
2. 30 000 dollari a settimana devono
essere uti lizzati per tratta re questi materiali.
Con i vincoli specificati nelle Tabelle 3.16 e 3.17, il management vuole determinare la
quantità da produrre per ogni categoria di prodotto e l'esatta combinazione dei materiali
che devono essere usati per ogni categoria. L' obiettivo è quello di massimizzare il profitto
netto settimanale (totale delle entrate per vendite meno il costo totale della miscelatura),
non considerando il costo fisso settimanale di 30 000 dollari per il trattamento che viene
coperto attraverso le donazioni e i finanziamenti .
Formulazione come problema di programmazione lineare. Prima di tentare di
costruire un modello di programmazione lineare, è opportuno considerare con attenzione
quale sia la definizione più appropriata per le variabili decisionali. Sebbene questa definizione sia spesso ovvia, essa costituisce, talvolta, il punto cruciale dell ' intera formulazione. Dopo avere chiaramente identificato quale è l' informazione realmente desiderata e la
forma più adatta per rappresentare questa informazione tramite le variabi li decisionali, si
può sviluppare la funzione obiettivo e i vincoli sui valori di queste variabili.
In questo particolare problema, le decisioni che devono essere prese sono ben definite,
ma il modo più adeguato per rappresentare questa infonnazione può richiedere particolare
attenzione.
Poiché va determinata la quantità da produrre di ogni categoria di prodotto, viene naturale definire un insieme di variabi li decisionali secondo questo schema. Procedendo in
questa direzione, si può definire
y ; = numero di libbre della categoria di prodotto i per settimana
(i = A, B, C).
Le altre decisioni riguardavano la combinazione dei materiali per ogni categoria di prodotto. Questa combinazione è identificata dalla proporzione di ogni materiale nella categoria del prodotto. Ciò suggerisce la definizione di un altro insieme di variabili deci sionali come
zu =
proporzione del materiale j nella categoria i
(i =A, B, C; j
= l, 2, 3, 4).
Tuttavia, la Tabella 3.17 esprime sia il costo del trattamento sia la disponibilità dei materiali in quantità (libbre) anziché in proporzione, così è di questa informazione sulla quantità che occorre tenere in conto nei vincoli. Per il materiale j (j = l , 2, 3, 4),
numero di libbre del materiale) usate per settimana = ZAJYA + zs1y 8 + zq y c
Per esempio, dato che la Tabella 3.1 7 indica che per il materiale l sono disponibili 3000
libbre per settimana, un vincolo nel modello è
ZA IYA + zBI YB + zc iYC:::; 3000
Sfortunatamente, questo non è vincolo legittimo di programmazione lineare. L'espressione
a sinistra della disequazione non è una funzione lineare perché contiene prodotti di variabili . Di conseguenza, un modello di prog~azione lineare non può essere costruito con
queste variabili deci sionali.
Fortunatamente, esiste un altro modo per definire le variabili decisionali così da ottenere un problema di programmazione lineare. È sufficiente sostituire ogni prodotto delle
50
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
vecchie variabili decisionali con una singola variabile! In altre parole, si definisca
xu =zuy;
(per i= A, B, C;j = l , 2, 3, 4)
= numero di libbre del matetiale j assegnati al prodotto della categoria i per settimana
e siano quindi xu le variabili decisionali. Combinando opportunamente le xu si ottiene che
nel modello sono necessarie le seguenti quantità (per i= A, B, C,j = l , 2, 3, 4).
xii + Xi2 + X;3 + x;4 = numero di libbre del prodotto della categoria i prodotti
per settimana
XAJ
+ xa1 +xq =
x··
_ _ _ _IJ,__ _ _ _
Xi! + X;2 + X;3 + X;4
=
numero di libbre del materiale j usate per settimana.
proporzione del materiale j nel prodotto della categoria i.
Il fatto che quest'ultima espressione sia una funzione non lineare non comporta nessuna
complicazione. Per esempio, si consideri la prima descrizione per il prodotto della categoria A nella Tabella 3.16 (la proporzione del materiale l non dovrebbe superare il 30 percento). Questa restrizione è espressa dal vincolo non lineare come
XAl
- ---- - - < 0.3
XAJ +XA2 +XA3 +XA4 -
Tuttavia, moltiplicando entrambi i membri di questa disequazione per il denominatore si
ottiene un vincolo equivalente
e quindi
0.7XAJ - 0 .3XA2 - 0 .3XA3 - 0.3XA4 ::; Q
che è un vincolo legittimo di programmazione lineare.
Con questo aggi ustamento, le tre quantità menzionate prima conducono direttamente a
tutti vincoli funzionali del modello. La funzione obiettivo è basata sull ' intenzione del management di massimizzare il profitto netto settimanale (totale delle entrate per vendite meno il costo totale della miscelatura) delle tre categorie di prodotto. Così, per ogni categoria
di prodotto, il profitto per libbra è ottenuto sottraendo il costo della miscelatura indicato
nella terza colonna della Tabella 3.16 dal prezzo di vendita indicato quarta colonna.
Queste differenze forniscono i coefficienti per la funzione obiettivo.
Di conseguenza, il modello di programmazione lineare completo è
masstmtzzare
Z = 5.5 (xAI + XA2 + XA3 + XA4) + 4.5 (xat + xm + xa3 + xa4)
+ 3.5 (xcl
...LxC2 -"-Xc3
+xc4)
soggetto ai seguenti vincoli:
l. descrizione della miscela (seconda colonna della Tabella 3.16):
XAJ ::; 0.3(XAJ + xA2 +xA3 +xA4)
(categoria A, materiale l)
XA2 ~ 0.4 (XA J + xA2 +XA3 +XA4)
(categoria A, materiale 2)
XA3 ::; O.S(xAI + XA2 + XA3 + XA4)
(categoria A. materiale 3)
XA4 = 0.2(XAJ +xA2 + XA3 +xA4)
(categoria A , materiale 4)
xa1 ::; O.S(xal + xa2 +xa3 +xa4)
(categoria B. materiale l)
xa2 ~ O.l(xBI +xa2 +xa3 +xa4)
(categoria B. materiale 2)
XB4 = 0.1 (xBI + XB2 + XB3 + XB4)
(categoria B. materiale 4)
xc1::; 0.7(xcl +xe2 +xC3 +xc4)
(categoria C. materiale l)
3.4
ESEMPI AGGIUNTIVI
51
2. disponibilità dei materiali (seconda colonna della Tabella 3.17):
XA I + xal +xci
~
3000
(materiale l )
XA2 + xaz + xcz
XA3 + XB3 + XC3
XA4 + XB4 + XC4
~ 2000
(materiale 2)
~ 4000
(materiale 3)
~ 1000
(materiale 4)
3. restrizioni sulle quantità trattate (parte destra della Tabella 3.17):
XA I +xBI +xc i 2: 1500
(materiale l )
XAz + xsz + xcz 2: l 000
XA3 + XB3 + XC3 2: 2000
XA4 + XB4 + XC4 2: 500
(materiale 2)
(materiale 3)
(materiale 4)
4. restrizioni sul costo del trattamento (parte destra della Tabella 3. 17):
3(xAl +xa 1 +xc i)+ 6(xA2 + xaz + xcz) + 4(xA3 + xs3 +xC3)
+ 5(XA4 + XB4 + XC4) = 30 000
5. vincoli di nonnegatività:
XA l 2: O,
XA2 2: O,
XC4 2: 0
Questa formulazione completa il modello, ma i vincoli relativi alla miscelazione devono
essere riscritti nella-foffna appropriata per un modello di programmazione lineare portando tutte le variabili nella parte sinistra delle espressioni e raggruppando i tennini nel modo seguente:
miscelazione:
0.7xA1 - 0.4xAl +
- 0.5xA 1 -0.2xA 1 -
0.3xA2 0.6xAz0.5xA 2 +
0.2XA2 -
0.3xA3 0.4xA3 0.5xA 3 0.2XA3 +
0.3xA4 ~ O
0.4xA4 2: O
0.5xA 4 ~ O
(categoria A , materiale 2)
0 .8xA4 = O
(categoria A, materiale 4)
0.5xal - 0.5xaz - 0.5xa3 - 0.5xa4 ~
(categoria A, materiale l)
(categoria A, materiale 3)
O
(categoria B, materiale l )
- O.lxa , + 0 .9xaz - O.lxa3 - O. lxa4 2: O
(categoria B, materiale 2)
- O.lxa i - O.lxaz - O.l xa3 + 0.9xa4 = O
(categoria B, materiale 4)
~ O
(categoria C, materiale l)
0.3xc 1
-
0.7xc2 - 0.7xC3 - 0.7xc4
Una soluzione ottima per questo modello è mostrata nella Tabella 3 .18, e questi valori di
Il valore
ottimo risultante per la funzione obiettivo è Z = 35 109.65 (con un profitto totale settimanale di 35 109.65 dollari).
xu sono utilizzati per calcolare le altre quantità di interesse indicate nella tabella.
TABELLA 3.18 Soluzione ottima per il problema della Save-lt Co.
Libbre usate per settimana
Materiale
Categoria
Quantità prodotta
per settimana
(libbre)
1
2
3
4
A
412 .3
(19.2%)
859.6
(40%)
447.4
(20.8%)
429.8
(20%)
2149
8
2587.7
(50%)
517.5
(10%)
1552.6
(30%)
517.5
(10%)
5175
c
Tota le
o
o
o
o
3000
13 77
2000
947
o
52
CAPITOLO 3
INTRODUZIONE AllA PROGRAMMAZIONE liNEARE
Quello della Save-It Co. è un esempio di un problema di miscelazione (blending).
L'obiettivo per un problema di blending è quello di determinare la migliore miscela degli
ingredienti nei prodotti fmali soddisfacendo detenninati requisiti. Alcune delle prime applicazioni di programmazione lineare hanno riguardato la miscelazione di idrocarburi, in
cui i componenti petroliferi venivano mescolati per ottenere varie categorie di benzina. Lo
studio di ricerca operativa relativo alla Texaco vincitore del premio e discusso alla fine
del Paragrafo 2.5 si è occupato della miscelazione della benzina (sebbene Texaco ha uti lizzato un modello di prograrnn1azione nonlineare) . Altri problemi di miscelazione riguardano prodotti finali come acciaio, fertilizzante e cibo per animali.
Scheduling del personale
La UNION AIRWA YS sta aumentando i voli da e verso il proprio aeroporto centrale, e
così ha la necessità di assumere ulteriori agenti per il servizio clienti. Tuttavia, non è chiaro quanti ulteriori agenti dovrebbero essere assunti. Il management riconosce la necessità
di avere un controllo dei costi continuando, però, a fornire ai clienti un livello di servizio
soddisfacente. Di conseguenza, un team di ricerca operativa ha avuto l'incarico di studiare il problema di schedulare gli agenti per fornire un livello di servizio soddisfacente al
minor costo possibile del personale.
Basata sulla nuova schedulazione dei voli, è stata effettuata un'analisi del numero minimo di operatori del servizio clienti necessari nelle diverse ore del giorno per fornire un livello di servizio soddisfacente. La colonna più a destra della Tabella 3.1 9 riporta il numero di agenti necessari per gli intervalli di tempo indicati nella prima colonna. Le altre voci
in questa tabella riflettono una clausola del contratto della compagnia con il sindacato che
rappresenta gli operatori del servizio clienti che prevede che ogni operatore lavori in turni
di 8 ore per 5 giorni la settimana, e i turni pennessi sono
Turno 1:
Turno 2:
Turno 3:
Turno 4:
Turno 5:
dalle 6:00 alle 14:00
dalle 8:00 alle 16:00
da mezzogiorno alle 20:00
dalle 16:00 a mezzanotte
dalle 22:00 alle 6:00
La parte centrale della Tabella 3.19 mostra le ore coperte tramite i vari turni. Poiché alcuni turni sono meno desiderabili rispetto ad altri, i relativi costi specificati nel contratto differiscono per turno. Per ogni turno, il costo giornaliero unitario è mostrato nella riga in
basso.
TABELLA 3.19 Dati per il problema di scheduling del personale
della Union Airways
Periodi di tempo coperti
Intervallo
di tempo
Turno
l
Dalle 6:00 alle 8:00
Dalle 8:00 alle l 0:00
Da lle l 0:00 a mezzog iorno
Da mezzogiorno alle 14:00
Dal le 14:00 alle 16:00
Dalle 16:00 alle 18:00
Dalle 18:00 alle 20:00
Dalle 20:00 alle 22:00
Dalle 22:00 a mezzanotte
Da mezzanotte aile 6:00
Totale
.l
.l
.l
.l
$170
2
.l
.l
.l
.l
$160
3
.l
.l
.l
.l
$175
4
.l
.l
.l
.l
$180
5
.l
.l
$195
Numero minimo
necessario
di agenti
48
79
65
87
64
73
82
43
52
15
3.4
53
ESEMPI AGGIUNTIVI
Il problema è determinare quanti agenti devono essere assegnati ogni giorno ai vari turni
con l' obiettivo di minimizzare il costo totale per gli operatori, riportato per ciascun turno
nell 'ultima riga in basso, soddisfacendo (o superando) i fabbisogni del servizio come indicati nella colonna più a destra.
Formulazione come problema di programmazione lineare. I problemi di programmazione lineare consistono sempre nel determinare la migliore combinazione dei livelli di attività . La chiave per formulare questo particolare problema è quella di riconoscere la natura di queste attività.
Le attività corrispondono ai turni, mentre il livello di ogni attività è il numero di agenti
assegnati a quel turno. Così, questo problema consiste nel determinare la migliore combinazione delle dim ensioni dei turni. Dato che le variabili decisionali rappresentano sempre
i livelli di attività, in questo caso le cinque variabili decisionali sono
x1 = numero di operatori assegnati al turno} per} = l , 2, 3, 4, 5.
Il vincolo principale per i possibili valori di queste variabili decisionali è che il numero
degli operatori presenti durante ogni periodo di tempo deve soddisfare i requisiti indicati
nella colonna più a destra della Tabella 3. 19. Per esempio, dalle 14:00 alle 16:00, il numero totale degli agenti assegnati ai turni che coprono questo intervallo di tempo (turni 2 e
3) devono essere almeno 64, così
è il vincolo fun zionale per questo intervallo temporale.
Dato che l'obiettivo è minimizzare il costo totale degli agenti assegnati ai cinque turni,
i coefficienti della funzione obiettivo sono indicati nel! 'ultima riga della Tabella 3.19.
Il modello di programmazione lineare completo è quindi
mimmizzare
Z = 170x 1 + 160x2 + 175x3 + 180x4 + 195xs
soggetta ai vincoli
XJ
;::::: 48
(6 :00-8 :00)
x1 +x2
;::::: 79
(8:00-1 0:00)
+ x2
;::::: 65
(l 0:00-mezzogiorno)
+ x2 +x3
;::::: 87
(mezzogiorno-14: 00)
XJ
XJ
;::::: 64
(14:00-16:00)
X3 + x4
;: : : 73
(16:00- 18:00)
X3 +x4
;::::: 82
(18:00-20:00)
;::::: 43
(20:00-22:00)
x2 +x3
X4
x4 +x5 ;::::: 52
xs;::::: 15
(22 :00-mezzanotte)
(mezzanotte-6: 00)
e
xJ
>o
-
per} = 1, 2,3 , 4, 5
Si può notare che il terzo vincolo, x 1 + x 2 ;::::: 65 , non è necessario perché il secondo vincolo, x 1 + x 2 ;::::: 79 assicura che x 1 + x 2 sarà comunque maggiore di 65. Così, x 1 + x 2 ;::::: 65
è un vincolo ridondante che può essere eliminato. Allo stesso modo, il sesto vincolo,
x 1 + x 2 ;::::: 73 , è anch ' esso un vincolo ridondante a causa del settimo vincolo
x 1 + x 2 ;::::: 82. Di fatto , tre dei vincoli di nonnegatività (x 1 ;::::: O, x 4 ;::::: O, x 5 ;::::: O) sono vincoli ridondanti a causa del primo, ottavo, e decimo vincolo funzionale: x 1 ;::::: 48 , x4 ;::::: 43 ,
x 5 ;::::: 15. In ogni caso, eliminando questi tre vincoli di nonnegatività non si ottiene nessun
vantaggio in termini computazionali.
La soluzione ottima per questo modello è (x 1, x2, x 3, x 4, x 5) = (48 , 31 , 39, 43 , 15). Ciò
pennette di ottenere Z = 30 61 O, ovvero, un costo personale totale giornaliero di 30 61 O dollari.
54
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
Questo problema è un caso in cui l'ipotesi di divisibilità della programmazione lineare
non è soddisfatta. Il numero di agenti assegnati a ogni turno de,·e essere intero. In realtà,
il modello dovrebbe avere vincoli aggiuntivi per ogni variabile d · ionale. specificando
che la variabile deve assumere valori interi. Aggiungendo questi \in oli il modello di programmazione lineare diviene un modello di programmazione intera be sarà trattata nel
Capitolo 9).
Non includere questi vincoli comporta solo che la soluzione ottima determinata precedentemente non assume valori interi. Se qualcuna delle variabili assume valori non interi,
l'approccio più semplice sarebbe quello di arrotondare a valori interi (per questo esempio
l 'arrotondamento è possibile perché tutti i vincoli funzionali ono nella forma 2: con coefficienti nonnegativi). L'arrotondamento non garantisce di ottenere una oluzione ottima
per il modello di programmazione intera, ma l'errore introdotto per via del! 'arrotondamento su numeri così grandi è trascurabile per la maggior parte dei casi pratici. In alternativa, per determinare esattamente la soluzione ottima con valori interi. potrebbero essere
usate le tecniche di programmazione intera descritte nel Capitolo 9.
Il Paragrafo 3.5 descrive come la United Airlines abbia u ato la programmazione lineare per sviluppare un sistema per lo scheduling del personale su una cala molto più vasta
rispetto a questo esempio.
Distribuzione dei beni attraverso una rete di distribuzione
Il problema. La DISTRlBUTION UNLIMITED CO. ha intenzione di produrre un
nuovo prodotto in due differenti stabilimenti. Tale prodotto deve essere quindi spedito a
due depositi e questi possono essere riforniti da entrambi gli stabilimenti. La rete di distribuzione disponibile per la spedizione di questo prodotto è mostrata in Figura 3.13, dove
Fl e F2 sono i due stabilimenti, Wl e W2 sono i due depositi, e DC è il centro di distribuzione. Le quantità che devono essere spedite da Fl e da F2 sono indicate alla loro sinistra,
mentre le quantità che devono essere ricevute da W l e da W2 sono indicate alla loro destra. Ogni arco rappresenta una possibile via di spedizione. Così, Fl può spedire direttamente a Wl mentre può utilizzare tre possibili itinerari per spedire a W2 (F l -. DC -.W2,
F l --> F2 --> DC --> W2, e F l -> W l-> W2). Il costo per unità spedita lungo ciascun percorso è indicato accanto all'arco. Inoltre, accanto a Fl--> F2 e DC --> W2 sono indicate le
quantità massime che possono essere spedite. Gli altri percorsi possiedono, invece, una
sufficiente capacità da permettere di gestire qualunque quantità gli stabilimenti inviano.
Bisogna decidere quanto spedire lungo ciascun percorso. L'obiettivo è minimizzare il
costo totale di spedizione.
Formulazione come problema di programmazione lineare. Con sette modi di
spedizione, sono necessarie sette variabili decisionali (xFJ -Fz, XFJ -oc, xF 1-w 1, XFz-oc, Xocw2, xwi-wz, Xwz-w 1) per rappresentare le quantità spedite nei rispettivi modi.
Ci sono diverse restrizioni sui valori di queste variabili. In aggiunta ai soliti vincoli di
nonnegatività, sono presenti due vincoli di limite superiore (upper-bound), XF I-FZ :::; l O e
xoc-wz :::; 80, imposti dalle limitate capacità di spedizione dei due percorsi F l -> F2 e
DC--> W2. Tutte le altre restrizioni derivano da cinque vincoli di conservazione del flusso
(netflow constraints), uno per ognuno delle cinque locazioni. Questi vincoli hanno la seguente forma.
Vincolo di conservazione del flusso per ogni locazione:
quantità spedita- quantità ricevuta = quantità necessaria.
Come indicato nella Figura 3.13, queste quantità sono 50 per Fl , 40 per F2, -30 per Wl,
e -60 per W2.
Qual è la quantità necessaria per DC? Poiché tutte le unità prodotte negli stabilimenti
sono necessari ai depositi, tutte le unità spedite dagli stabilimenti al centro di distribuzio-
3.4
55
ESEMPI AGGIUNTIVI
ne devono essere inoltrate ai depositi. Di conseguenza, la quantità totale spedita dal centro
di distribuzione ai depositi deve uguagliare la quantità totale spedita dagli stabilimenti al
centro di distribuzione. In altre parole, la differenza tra queste due quantità spedite (la
quantità richiesta nel vincolo di conservazione del flusso) deve essere uguale a zero.
Dato che la funzione obiettivo richiede di minimizzare il costo totale di spedizione, i
coefficienti per tale funzione derivano direttamente dai costi di spedizione per unità indicati in Figura 3 . 13 . Utilizzando in questa funzione obiettivo come unità le centinaia di
dollari, il modello di programmazione lineare completo è
mmumzzare
Z =
+ 4XFI -DC + 9XFI -WI + 3XF2-DC + XDC-W2
+3xwi-W2 + 2xw2-WI
2Xfl.f2
soggetta ai seguenti vincoli:
l. vincoli conservazione del flusso:
XFJ-F2
+ Xfl-DC + XFJ -Wl
+xF2 -DC
-XF J-F2
-XFJ-DC
- XF2-DC
50
(stabilimento l)
40
(stabilimento 2)
(centro di distribuzione)
(deposito l)
o
+ XDC -W2
+xwi -W2 -
- XDC-W2 -
XWI-W2
XW2 -W I
= - 30
+ Xw2-W I =
-60
(deposito 2)
2. vincoli di limite superiore (upper-bound):
XFJ-F2:::::
10,
XDC-W2:::::
80
3. vincoli di nonnegatività:
XFJ-F2
2 O,
XFJ -DC
2 O,
Xwi -W2
FIGURA 3.13
La rete di distribuzione
per la Distribution
Unlimited Co.
50 unità
prodotte
$200/un ità
40 unità
prodotte
XFJ-Wl
2 O,
2 O,
XF2-DC
XW2-WI
XDC-W2
2 O,
2 0
$900/unità
30 unità
necessarie
Fl
10 unità max
2 O,
$200/unità
$300/unità
60 unità
necessarie
56
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
Questo problema sarà trattato nuovamente nel Paragrafo 8.6, in cui saranno studiati problemi di programmazione lineare di questo tipo (chiamati problemi di flusso a costo minimo). Nel Paragrafo 8.7, verrà determinata la soluzione ottima per questo problema:
XfJ -F2
= O,
Xfi -DC
= 40,
XW !-W2
XFJ -WI
= O,
= IO,
Xw2-WI
XF2-DC
= 40,
XDC-W2
= 80,
= 20
Il costo totale di spedizione risultante è 49 000 dollari.
Alla fine del Paragrafo 3.5 sarà mostrato un caso di studio riguardante un problema di
questo stesso tipo ma di dimensioni molto maggiori.
3.5
ALCUNI CLASSICI CASI DI STUDIO
Per mettere in evidenza il grande impatto che la programmazione lineare può avere, vengono ora presentati tre casi di studio relativi ad applicazioni che hanno avuto un sensazionale impatto sul profitto delle aziende coinvolte. Ognuna di queste è una applicazione
classica, iniziata intorno al 1980, e divenuta uno standard per le successive applicazioni
di programmazione lineare. La prima delle applicazioni presenta delle similitudini molto
marcate con il problema della Wyndor Glass Co., ma è adattata su scala reale. Allo stesso
modo, la seconda e la terza sono delle versioni realistiche degli ultimi due esempi presentati nel Paragrafo 3.4.
Scelta del mix ottimo di prodotto alla Ponderosa lndustrial 8
Fino al momento della sua vendita nel 1988, la PONDEROSA INDUSTRIAL era un produttore di legno compensato con lo stabilimento principale in Anhuac, Chihuahua, e ha
prodotto il 25 percento del legno compensato del Messico. Come per tutti i produttori di
legno compensato, molti dei prodotti della Ponderosa erano differenziati per spessore e
qualità del legno. In Messico, la concorrenza nel mercato del legno compensato è alta e di
conseguenza è il mercato a stabilire i prezzi dei prodotti. Questi possono fluttuare considerevolmente di mese a mese, e questa variazione può essere molto differente per i vari prodotti anche tra un mese e il successivo. Come risultato, il contributo di ogni prodotto al
profitto totale della Ponderosa variava continuamente e in maniera di ersa per i differenti
prodotti. Proprio a causa del suo pronunciato effetto sul profitto. un problema ctitico affrontato dal management fu la scelta della mix di prodotto - quanto produrre di ogni prodotto - su base mensile.
Questa era una scelta molto complessa, dato che i dovevano fare i conti con le quantità disponibili delle varie risorse necessarie per realizzare il prodono finale. La risorsa più
importante era il legno differenziato in quattro categorie r qualità e capacità di produzione per le operazioni di pressatura e lucidatura.
All'inizio del 1980, la programmazione lineare venne usata per guidare la scelta della
ello di programmazione lineacombinazione ottima di produzione su base mensile. n
re aveva come obiettivo quello di massimizzare il profi o rale onenuto da tutti i prodotti. Come vincoli del modello vennero inclusi quelli
e -- rse come pure altre limitazioni quali la quantità minima di prodotto che deve e sere •o - ai lienti abituali e la massi· --cazione dell'approvvigionama quantità che può essere venduta. (Per fornire
a o della scelta della commento delle materie prime, il modello inoltre consi era _ r
binazione ottima di produzione per il mese corren
vo.) Il modello aveva 90 variabili decisionali e -t.:
Questo modello era usato ogni mese per dete
inazione ottima di produe i valori previsti per i
zione per il mese corrente. Tale combinazione
8
A. Roy, E.E. DeFalomir e L. Lasdon: "An Optimization-&5
Problem", lnteJfaces, 12(2):26-33, apri le 1982.
n System for a Product Mix
3.5
ALCUNI CLASSICI CASI DI STUDIO
57
vari parametri del modello si fossero dimostrati precisi. Tuttavia, dato che alcuni valori
dei parametri potevano cambiare rapidamente (ad esempio i prof1tti per unità di prodotto),
venne sviluppata un'analisi della sensitività per determinare quale fosse l'effetto se i valori previsti fossero stati lontani dall'essere precisi. I risultati indicarono quando dovevano
essere eseguiti aggiustamenti sulla combinazione ottima di produzione (se il tempo lo permetteva) nel caso di cambiamenti inaspettati del mercato in grado di produrre variazioni
del prezzo (e quindi del profitto per unità) di certi prodotti.
Una decisione chiave per ciascun mese era il numero di tronchi di legno da acquistare
per ognuna delle quattro diverse qualità. Le quantità disponibili per la produzione mensile
corrente erano i parametri del modello. Dopo che la decisione di acquistare era stata presa
e quindi la corrispondente combinazione ottima era stata determinata, veniva condotta
un'analisi postottimale (postoptimality ana/ysis) per investigare gli effetti di aggiustamenti nella decisione di acquisto. Per esempio, con la programmazione lineare è molto
semplice controllare quale sia l' impatto sul profitto totale se s i fossero acquistati ulteriori
tronchi di legno di una certa qualità per aumentare la produzione per il mese corrente.
Il sistema di programmazione lineare della Ponderosa era di tipo interattivo, così che il
management riceveva un'immediata risposta alle domande del tipo "what-if' sull'impatto della variazione di alcuni parametri rispetto alloro valore nel modello originario.
L' impatto della programmazione lineare per la Ponderosa è stato " tremendo " e ha portato a un sostanziale cambiamento dei tipi di prodotti di legno compensato della società.
Si può stimare che i miglioramenti dovuti alla scelta del mix ottimo di produzione abbiano portato a un incremento generale del 20% della redditività dell 'azienda. Altri contributi positivi della programmazione lineare furono una migliore gestione dei materiali, del capitale e del personale.
Due fattori hanno influito sul successo di questa applicazione di programmazione lineare. Uno dei fattori è stato l'utilizzo di un sistema di pianificazione finanziaria basato su
un linguaggio naturale per determinare la soluzione ottima per il modello di programmazione lineare. Usando un linguaggio naturale anziché simboli matematici per mostrare i
componenti e gli output del modello di programmazione lineare, il processo viene reso
più comprensibile e significativo per i dirigenti che devono prendere le decisioni. Riferire
nello stesso linguaggio dei manager è necessario per un'applicazione di programmazione
lineare di successo.
L'altro fattore è la caratteristica interattiva del sistema di programmazione lineare che
venne usato. Come detto prima, dopo che una soluzione ottima era stata ottenuta per una
specifica versione del modello, questa caratteristica permettevaai manager di ricevere immediatamente le risposte alle domande di tipo "what-if' che essi fommlavano. Spesso
erano ottenute soluzioni migliori esplorando scenari ammissibili altemativi; questo processo rende i manager più confidenti che le soluzioni proposte fomiscano buoni risultati
in vari scenari che possono con buona probabilità presentarsi.
In qualunque applicazione, l'abilità di rispondere velocemente alle necessità e alle richieste del management attraverso un'analisi per ottimizzazioni successive (sia interattiva
o no) è una parte vitale di uno studio di programmazione lineare.
Scheduling del personale alla United Airlines 9
Nonostante una concorrenza senza precedenti nel 1983 e 1984, la UNITED AIRLINES è
riuscita a raggiungere una sostanziale crescita servendo 48 nuovi aeroporti. Nel 1984 era
la sola compagnia aerea che serviva città in tutti i 50 stati degli USA. Nel 1984 il suo profitto ha raggiunto i 564 milioni di dollari, con entrate per 6,2 miliardi di dollari, con un incremento del6% rispetto al 1983, e un incremento dei costi inferiore al2%.
9
T.J. Holloran e J.E. Bryn, "United Airlines Station Manpower Planning System ", lnteJfaces, 16(1):39-50,
gen .-feb . 1986.
58
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
Il controllo dei costi è essenziale per competere con successo nell'industria delle compagnie aeree. Nel 1982 il management della United Airlines ha iniziato ad applicare metodologie di ricerca operativa allo scheduling del proprio personale come parte delle misure
per il controllo dei costi legati all'espansione della compagnia nel periodo 1983-1984.
L ' obiettivo era quello di schedulare il personale destinato agli aeroporti e agli uffici di
prenotazione in modo da minimizzare il costo per fornire il necessario servizio ai clienti.
All'epoca, la United Airlines impiegava più di 4000 impiegati e personale di supporto
per i suoi Il uffici prenotazioni e circa l 000 agenti per il servizio clienti nei l O aeroporti
più grandi. Alcuni dei dipendenti lavorava part-time in turni da 2 a 8 ore; la maggior parte
dei dipendenti erano a tempo pieno, con turni di 8-1 O ore. I turni iniziavano a orari differenti e, nei principali aeroporti, ogni ufficio prenotazioni era aperto (almeno il centralino)
24 ore al giorno. Tuttavia, il numero di impiegati necessari a ogni postazione per fornire il
livello di servizio richiesto variava molto durante le 24 ore, e poteva fluttuare in modo
considerevole da una mezzora ali 'altra.
Provare a progettare lo scheduling di tutti gli impiegati per una data postazione di lavoro soddisfacendo in maniera efficiente questi requisiti di servizio è estremamente complesso.
Una volta che inizia il turno, l' impiegato è presente per tutta la sua durata (da 2 a lO
ore, a seconda del! ' impiegato), eccetto che per la pausa pranzo o per una breve pausa
ogni 2 ore. Una volta determinato il numero minimo di impiegati che devono essere in servizio in ogni intervallo di mezzora nell ' arco delle 24 ore (e questi fabbisogni cambiano a
seconda del giorno della settimana), quanti impiegati per ciascun tipo di turno devono
iniziare a lavorare e a quale ora nel! 'arco delle 24 ore in ogni giorno della settimana?
Diverse tecniche di ricerca operativa, descritte in questo libro, sono state usate nel sistema di pianificazione sviluppato per affrontare questo problema. La teoria delle code
(Capitolo 13) è stata usata per determinare il numero minimo di impiegati necessari in servizio per ogni intervallo di mezzora. La Programmazione a numeri imeri (Capitolo 9) è
stata utilizzata per determinare le ore del giorno in cui i turni potevano iniziare. Tuttavia,
il cuore del sistema di pianificazione è stata la programmazione lineare. che approntò lo
scheduling per fornire il necessario servizio con il minor co to po ibile del lavoro. Uno
scheduling completo dei turni venne sviluppato per la prima enimana del mese, e poi riutilizzato per il resto del mese. Questo processo fu ripetuto ogni mese in modo da tenere
conto di condizioni variabili.
Nonostante che i dettagli del modello di programmazione lineare non iano stati pubblicati, è chiaro che l' approccio di base usato è quello d 11" -empio dello cheduling del
personale della Union Airways illustrato nel Paragrafo 3. . La funzione obietti o da minimizzare rappresenta il costo totale del personale per ciascuna stazio e. I principali vincoli impongono che il numero di impiegati in servizio durane _
"odo di tempo non
scenda sotto i livelli minimi accettabili.
L' esempio della Union Airways ha solamente cinque\
il modello della United Airlines anche per poche po tazio sionali! La differenza è che un ' applicazione reale deYe COJ[l511L!-e:-a.-e
che possono essere, invece, ignorati in un esempio da United Airlines prende in considerazione tra l'altro il tem
gato per il pranzo e per la pausa, la diversa lunghezza
giorni di riposo settimanali, oltre ovviamente ad altri ~ ~'- ~
Questa applicazione ha avuto " un travolgente imp
il gruppo di progettazione, ma anche per molti che non ..~'"'~........~.,.
parlare di Management Science o modelli mate mari i.··_ del management a tutti i livelli e ha avuto un effeno
tangibili, grazie a questa applicazione si è stimato un !l-isp;~a:ID
tre 6 milioni di dollari l'anno solo in stipendi e co · _
efici furono il mi- - -- supporto. Dopo alglioramento del servizio ai clienti e la riduzione del :.::
::- -;;i benefici .
cune modifiche fatte nel 1990, il sistema ha continuar
3.5
ALCUNI CLASSICI CASI DI STUDIO
59
Un fattore che ha influito a rendere un successo questa applicazione di programmazione
lineare è stato "il supporto dei manager e del loro staff'. Questa è stata una lezione, poiché in un primo tempo il team di ricerca operativa fallì nello stabilire un buon canale di
comunicazione con i manager, che si opposero alle loro raccomandazioni iniziali. I responsabili del team definirono il loro malinteso come segue:
La regola cardinale per guadagnarsi la fiducia e il rispetto dei manager e degli staff di supporto - "coinvolgerli nel processo di sviluppo" - è stata violata. 10
Il gruppo lavorò quindi molto più strettamente con i manager operativi raggiungendo risultati straordinari.
Pianificazione dell'approvvigionamento, distribuzione e vendita alla
Citgo Petroleum Corporation 11
La CITGO PETROLEUM CORPORATION è una industria specializzata nella raffinazione e nella vendita di prodotti petroliferi. A metà del 1980, ha avuto vendite annuali per diversi miliardi di dollari, posizionandosi tra le prime 150 industrie degli Stati Uniti.
Dopo diversi anni di perdite fmanziarie, nel 1983 la Citgo fu acquisita dalla Southland
Corporation, proprietaria di una catena di grandi magazzini (che, tra l'altro, vende carburanti). Per circoscrivere le perdite finanziarie della Citgo, la Southland creò una task force
composta da personale della Southland, personale della Citgo e da consulenti esterni. Un
eminente consulente di ricerca operativa fu nominato direttore della task force e doveva riferire direttamente al presidente della Citgo e al presidente del consiglio direttivo della
Southland.
Durante il 1984 e il 1985, questa task force ha applicato varie tecniche di ricerca operativa (come pure tecnologie dell'Information System) a ogni parte dell'azienda. Queste applicazioni di ricerca operativa " hanno cambiato il modo della Citgo di fare business e hanno
prodotto come risultato un incremento del profitto annuo di 70 milioni di dollari." 12
Le due più importanti applicazioni erano entrambe basate sulla programmazione lineare e fornivano al management potenti sistemi di supporto alla pianificazione. Uno,
chiamato Refinery LP System, ha portato a grandi miglioramenti nel rendimento della raffineria, riduzioni sostanziali del costo del lavoro e altri importanti rispanni. Questo sistema contribuì nel 1985 a un incremento del profitto di circa 50 milioni di dollari. Alla fine
del Paragrafo 2.4 è discusso il ruolo chiave che la verifica del modello ha giocato nello
sviluppo di questo sistema.
Tuttavia, l'attenzione verrà qui centrata sull'altro sistema di programmazione lineare,
chiamato sistema di modellazione dell 'approvvigionamento, distribuzione e vendita (o
semplicemente sistema SDM Supply, Distribution, Marketing). Il sistema SDM è particolarmente interessante perché è basato su un tipo di modello di programmazione lineare
che usa le reti, come il modello nell'esempio della Distribution Unlimited presentato alla
fine del Paragrafo 3.4. Il modello per il sistema SDM fornisce una rappresentazione dell'intera rete di vendita e di distribuzione della Citgo.
Al tempo in cui la task force ha condotto lo studio di ricerca operativa, la Citgo possedeva o prendeva in affitto 36 terminali di stoccaggio che venivano riforniti da cinque centri di distribuzione attraverso condotte, autocisterne e chiatte. Inoltre La Citgo vendeva
prodotti in oltre 350 terminali di scambio che erano condivisi con altri venditori di prodotti petroliferi. Per rifornire i propri clienti, la Citgo poteva far arrivare il prodotto dalla sua
raffineria situata a Lake Charles, in Lousiana, o da punti di acquisto in uno dei 5 maggiori
punti vendita, con scambi di prodotto e permute con altre raffinerie. Le decisioni su come
acquisire il prodotto erano prese giornalmente. Tuttavia, dal momento in cui veniva presa
IO
Ibid, pag. 47.
11
Consultare il riferimento citato nella nota 4 del Capitolo 2.
12
Consu ltare il secondo riferimento citato nella nota 4 del Capitolo 2, in particolare la p. 4.
60
CAPITOLO 3
INTRODUZIONE AllA PROGRAMMAZIONE LINEARE
la decisione e il momento in cui il prodotto giungeva ai clienti potevano trascorrere anche
11 settimane. Di conseguenza, il modello di programmazione lineare usò un intervallo di
pianificazione di 11 settimane.
Il sistema SDM veniva usato per coordinare l'approvvigionamento, la distribuzione e la
vendita di ognuno dei maggiori prodotti della Citgo (originariamente 4 categorie di combustibili per motore e due tipi di oli combustibili) in ogni parte degli Stati Uniti. Il management usava il sistema per prendere importanti decisioni quali: dove vendere, a quale prezzo, dove comprare o scambiare, quanto comprare o scambiare, quanto mantenere in scorta
(inventory) e quanto trasferire con ciascun mezzo. La programmazione lineare guida queste
decisioni e suggerisce quando attuarle in modo da minimizzare il costo totale o massimizzare il profitto totale. Il sistema SDM è usato anche nelle sessioni " what-if ', dove il management formula quesiti su scenari che differiscono da quelli assunti nel modello originale.
Il modello di programmazione lineare usato nel sistema SDM è simile al modello proposto nell'esempio della Distribution Unlimited presentato alla fine del Paragrafo 3.4. Di
fatto , entrambi affrontano un importante e speciale tipo di problema di programmazione
lineare, chiamato problema di flusso a costo minimo, che sarà discusso nel Paragrafo 8.6.
I principali vincoli funzionali per tali modelli sono vincoli di uguaglianza, e ciascuno di
questi determina quale deve essere il flusso netto in ogni nodo della rete.
Il modello della Distribution Unlimited ha sette variabili decisionali e cinque vincol i di
uguaglianza. Invece, per ciascuno dei maggiori prodotti, il modello della Citgo ha circa
15 000 variabili decisionali e 3000 vincoli di uguaglianza!
Alla fine del Paragrafo 2.1, è stato descritto il ruolo fondamentale che la raccolta dei
dati e la verifica dei dati ha giocato nello svi luppo dei modelli per la Citgo. Con modelli
di grandi dimensioni, per detenninare i valori dei parametri deve essere raccolta un'imponente quantità di dati. Per questo motivo fu sviluppato un sistema tecnologicamente avanzato di gestione di basi di dati . Prima che i dati venissero usati, uno specifico programma
controllava la presenza di eventuali errori o incoerenze nei dati. L'importanza di avere
agito in questo modo fu compresa dalla task force quando, come accennato nel Paragrafo
2.1, inizialmente il programma generò un blocco di fogli di carta, contenente messaggi
d'errori, alto due centimetri e mezzo. Fu chiaro che per garantire la validità del modello
era necessario eliminare del tutto gli eiTori nel processo di raccolta dei dati.
Il sistema di programmazione lineare SDM ha migliorato notevo lmente le operazioni
di approvvigionamento, distribuzione e vendita della Citgo, consentendo una grande riduzione dei livelli di scorta ma senza un abbassamento dei livelli del servizio.
Durante il primo anno di utilizzo del sistema, il valore dei prodotti petroliferi mantenuti in scorta fu ridotto di 116.5 milioni di dollari. Questa forte riduzione di capitale bloccato ha permesso un risparmio annuo di circa 14 milioni di dollari altrimenti spesi in interessi per il capitale preso in prestito, incrementando così il profitto annuale della Citgo di 14
milioni di dollari. Si è stimato che i miglioramenti connessi a un maggior coordinamento
dei prezzi e a decisioni di acquisto più precise ha portato un ulteriore incremento dei profitti annui pari a 2.5 milioni di dollari. A questa applicazione di programmazione lineare
sono stati attribuiti anche molti benefici indiretti, tra cui dati più precisi, strategie migliori
per i prezzi ed eliminazione dei terminali dei prodotti non necessari , come pure miglioramenti nella comunicazione e nella coordinazione dell 'approvvigionamento, distribuzione
e vendita tra i gruppi di raffinerie.
Alcuni dei fattori che hanno contribuito al successo di questo studio di ricerca operativa sono gli stessi visti per i due precedenti casi. Come per la Ponderosa Industriai, un fattore importante è stato lo sviluppo dei report di output in un linguaggio comprensibile ai
manager per andare incontro realmente alle loro esigenze. Questi report sono progettati
per essere facilmente usati e compresi dai manager e affrontano i problemi che sono importanti da affrontare. Come nel caso Ponderosa, un altro fattore è stato quello di dare la
possibilità al management di rispondere velocemente alle dinamiche dell'industria usando
molto il sistema di programmazione lineare con sessioni di tipo "what-if'. Così come in
altre applicazioni di programmazione lineare, l'analisi post-ottmale ha permesso di giun-
3.6
3.6
FORMULARE E RISOLVERE MODELLI MEDIANTE UN FOGLIO ELETTRONICO
61
gere a una soluzione ottima iniziale ottenuta per una singola versione del modello. Come
per il caso della United Airlines, un altro fattore è stato il fervido supporto dei manager
durante lo sviluppo e l'implementazione di questo sistema di programmazione lineare.
Tuttavia, il fattore più importante è stato il supporto continuo fornito dai vertici dell'azienda alla task force. Come detto prima, il direttore della task force (un eminente consulente di ricerca operativa) riferiva direttamente sia al presidente della Citgo sia al presidente del consiglio di amministrazione della Southland. Questo appoggio da parte dei vertici
era completato anche da un forte suppmio organizzativo e finanziario.
Il supporto organizzativo assumeva varie forme. Un esempio fu la creazione della posizione di vicepresidente per il coordinamento delle operazioni in modo da valutare e coordinare le raccomandazioni provenienti dai modelli sviluppati.
Discutendo sia di questo sistema di programmazione lineare che di altre applicazioni di
ricerca operativa implementate dalla unità operativa, i membri del team descrivevano il
supporto finanziario del ve1iice amministrativo come segue:
Il costo totale del sistema implementato, da 20 a 30 milioni di dollari, era l'ostacolo più grande per questo progetto. Tuttavia, a causa della grande quantità di informazioni nell'industria
petrolifera, il vertice del! 'azienda si è reso conto che per raccogliere, memorizzare e analizzare i dati erano essenziali numerosi sistemi informativi. Il costo per l'aggi unta delle tecnologie
della scienza della gesti one (ricerca operativa) a questi computer e a questi sistemi fu piccola,
di fatto molto piccola in luce agli enormi benefici che tali tecnologie hanno fomito. 13
3.6
FORMULARE E RISOLVERE MODELLI DI PROGRAMMAZIONE
LINEARE MEDIANTE UN FOGLIO ELETTRONICO
Un foglio elettronico, come Excel, è un tool popolare per analizzare e risolvere problemi
di programmazione lineare di piccole din1ensioni. Le principali caratteristiche di un modello di programmazione lineare, compresi tutti i suoi parametri, possono essere facilmente inseriti su un foglio elettronico. Tuttavia, un foglio elettronico può fare molto di più che
semplicemente visua lizzare dei dati . Se vengono inserite delle informazioni aggiuntive, il
foglio elettronico può essere usato per analizzare rapidamente le possibili soluzioni. Per
esempio, una potenziale soluzione può essere esaminata per vedere se è ammissibile e
quale valore di Z (profitto o costo) si può ottenere. La grande potenza del foglio elettronico risiede nella sua capacità di fornire immediatamente i risultati di qualunque modifica
fatta nella soluzione.
Inoltre, il Risolutore incluso in Excel può velocemente applicare il metodo del simplesso per determinare una soluzione ottima per il modello. Come ciò viene fatto verrà descritto nell'ultima parte di questa sezione. Per illustrare questo processo di formulazione e risoluzione di un modello di programmazione lineare su un foglio elettronico, ritorniamo all 'esempio Wyndor introdotto nel Paragrafo 3.1.
Formulare il modello su un foglio elettronico
La Figura 3.14 mostra il foglio elettronico dopo che vi sono stati inseriti i dati del problema
Wyndor dalla Tabella 3 .l. (Le colonne E e F sono riservate per valori che saranno descritti
in seguito). Alle celle che mostrano i dati ci si riferisce come celle di dati. Queste celle sono leggermente ombreggiate per distinguerle dalle altre celle del foglio. 14
VeiTà illustrato successivamente che il foglio elettronico è più semplice da interpretare
usando i cosiddetti intervalli di celle. A un intervallo di celle può essere assegnato un
13
14
lbid, pag. 21.
l bordi e le ombreggiature delle celle possono essere aggi unte o usando il pulsante per i bordi e il pulsante di
riempimento colore presenti sulla barra degli strumenti di fonnattazione, oppure scegliendo Celle dal menu
Fom1ato e quindi selezionando il tab Bordo e/o il tab Motivo.
62
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
c
B
A
G
Problema Wyndor Glass
Profitto per lotto
Porte
Finestre
3000
5000
Ore
Utilizzate
Ore
Disponibili
Ore per lotto Prodotto
•
1
FIGURA 3.14
Il fogl io elettronico iniziale
per il problema Wyndor
dopo il trasferim ento dei
dati dalla Tabella 3. 1 nell e
celle.
2
3
Numero lotti prodotti
1
o
3
2
2
4
12
18
Porte
Finestre
Profitto
Totale
2
6
36000
o
nome descrittivo che permette di identificare immediatamente cosa tali celle rappresentano. Così, alle celle dei dati nel problema Wyndor sono assegnati i nomi ProfitPerBetch
(C4:D4), HoursUsedPerBatchProduced (C7 :D9), e HoursAvailable (G7:G9). Nei nomi
non sono ammessi spazi e ogni nuova parola inizia con la lettera maiuscola. Anche se opzionale, il blocco delle celle a cui un nome si riferisce può essere specificato tra parentesi
dopo il nome. Per esempio, l'intervallo C7:D9 è la notazione ridotta di Excel per l'intervallo da C7 a D9; cioè, l'intero blocco di celle delle colonne C e D e riga 7, 8 o 9. Per inserire un nome per un intervallo di celle, occorre prima selezionare l'intervallo delle celle,
quindi scegliere Nome\Definisci dal menu Inserisci e digitare un nome (oppure cliccare
sulla casella nome alla sinistra della barra per la formula posta in alto sul foglio elettronico e digitare il nome.
Prima di iniziare a utilizzare il foglio elettronico per formulare un modello di programmazione lineare è opportuno rispondere a tre quesiti.
l. Quali sono le decisioni che devono essere prese? Per questo problema, le decisioni necessarie sono i tassi di produzione (numero di lotti prodotti per settimana) per i due
nuovi prodotti.
2. Quali sono i vincoli? In questo caso, il numero di ore per settimana usate per produrre i
due prodotti nei rispettivi stabilimenti non può superare il numero di ore disponibili.
3. Quale è la misura della prestazione complessiva per queste decisioni? La misura della
prestazione complessiva nel problema Wyndor è il profitto totale per settimana dei due
prodotti, così l 'obiettivo è massùnizzare questa quantità.
La Figura 3.15 mostra come queste risposte possono essere incluse in un foglio elettronico. Basandosi sulla prima risposta, i tassi di produzione dei due prodotti sono stati inseriti
nelle celle C 12 e D 12 al di sotto delle celle dei dati dei prodotti. Dato che non è ancora
possibile conoscere quali potrebbero essere questi tassi di produzione, essi sono posti a
zero. In questa fase, potrebbe essere inserita una qualunque soluzione di prova, escludendo ovviamente tassi di produzione negativi che sono impossibili. Successivamente, questi
numeri saranno modificati durante la ricerca della migliore combinazione dei tassi di produzione. Quindi, queste celle contengono le decisioni che devono essere prese e sono
chiamate celle modificabili Per evidenziare le celle modificabili, esse sono ombreggiate.
Alle celle modificabili è assegnato il nome LottiProdotti (Cl2:Dl2).
Basandosi sulla riposta alla domanda 2, il numero totale di ore per settimana usato per
la produzione dei due prodotti nei rispettivi impianti è inserito nelle celle E7, E8 ed E9, a
destra delle celle dei dati corrispondenti. Le equazioni Excel per queste tre celle sono
E7 = C7*Cl2
E8 = C8*Cl2
E9 = C9*Cl2
+ D7*Dl2
+ D8*Dl2
+ D9*Dl2
F1GURJ
=aglio ele
pleto
dar cc
:: prova ir
:assi di p r
i ug ua
-.:.le celle
Cl2 e Dl
3.6
FORMULARE E RISOLVERE MODELLI MEDIANTE UN FOGLIO ELETTRONICO
A
c
B
63
G
Problema Wyndor Glass
l
a
• FIGURA 3.15
Il foglio elettronico
completo per il problema
Wyndor con una soluzione
di prova iniziale (entrambi
i tassi di produzione sono
posti uguali a zero) inserita
nelle celle modificabili
(C12 e D12)
Profitto per lotto
Porte
Finestre
3000
5000
Ore per lotto Prodotto
1
2
3
1
o
3
2
2
o
Ore
Utilizzate
,.
.,
.,
o
o
o
Ore
Disponibili
s;
s;
s;
4
12
18
Profitto
Porte
Numero lotti prodotti
o
dove ogni asterisco denota la moltiplicazione. Dato che queste celle contengono valori
che dipendono dalle celle modificabili (Cl2 e Dl2), esse vengono chiamate celle di output. Ognuna delle equazioni per le celle di output contiene la somma di due prodotti. In
Excel esiste una funzione chiamata MATR.SOMMA.PRODOTTO che somma i prodotti
dei singoli termini di due differenti intervalli di celle quando i due intervalli hanno lo stesso numero di righe e lo stesso numero di colonne. In particolare viene eseguita la somma
del prodotto tra un termine del primo intervallo e il termine con la posizione corrispondente nel secondo intervallo. Per esempio, i due intervalli C7:D7 e Cl2:Dl2 sono tali che
ogni intervallo è costituito da una riga e due colonne. In questo caso,
MATR.SOMMA.PRODOTTO (C7:D7, Cl2:Dl2) moltiplica ogni singolo termine dell'intervallo C7:D7 per il termine corrispondente dell ' intervallo Cl2 :Dl2, e quindi esegue
la somma dei singoli prodotti, come mostrato nella prima equazione in alto. Usando il nome BatchsProduced (Cl2:Dl2), la formula diventa MATR.SOMMA.PRODOTTO
(C7:D7, BatchsProduced). Questo modo di operare è particolannente utile nell ' inserimento di equazioni con molti termini.
Inoltre, i simboli ::; sono inseriti nelle celle F7, F8 e F9 per indicare che ogni valore totale presente alla sinistra di ciascuna di queste celle non può superare il corrispondente numero nella colonna G. Il foglio elettronico permette anche di inserire soluzioni di prova
che violano la disuguaglianza ::; . Tuttavia, in questo caso i simboli ::; servono a ricordare
che tali soluzioni di prova devono essere scartate qualora nessun cambiamento venga apportato ai numeri della colonna G.
Infine, dato che la risposta alla terza domanda è che la misura della prestazione complessiva è il profitto totale dei due prodotti, tale profitto (per settimana) è inserito nella cella G 12. Come i numeri della colonna E, anche questa cella è somma di prodotti,
]
a
a
]
Gl2 = MATR.SOMMA.PRODOTTO (C4:D4, Cl2:Dl2)
Utilizzando i nomi TotalProfit (G 12), ProfitPerBatch(C4:D4),
e LottiProdotti(Cl2:Dl2), questa equazione diventa
TotalProfit = MATR.SOMMA.PRODOTTO(ProfitPerBatch, BatchsProduced)
D
'[
a
Questo è un buon esempio del vantaggio di usare i nomi per gli intervalli di celle per rendere le equazioni risultanti più semplici da interpretare. Invece di riferirsi necessariamente
al foglio elettronico per conoscere il contenuto delle celle Gl2, C4:D4 e Cl2:Dl2, i nomi
rivelano immediatamente cosa sta operando l'equazione.
La cella TotalProfit (G12) è uno speciale tipo di cella di output. Questa è la cella il cui
valore deve essere reso il più grande possibile scegliendo opportunamente i tassi di produzione. Di conseguenza, TotalProfit (G 12) è chiamata cella target (o cella obiettivo).
CAPITOLO 3
64
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
8
H
Profitto per lotto
Utili zzate
Disponibili
Ore per lotto Prodotto
1
o
o
2
3
3
2
2
Porte
Finestre
1
o
Numero lotti prodotti
o
o
o
o
Celle
C12:012
G7:G9
E7:E9
C7:09
C4:04
4
12
20
Profitto
Totale
o
E
5
6
Ore
Utilizzate
7 =MATR. SOMMA. PRODOTTO(C7:07; BatchesProduced)
8 =MATR. SOMMA. PRODOTTO(CB:DB;BatchesProduced)
9 =MATR .SOMMA. PRODOTTO(C9:09;8atchesProduced)
GURJ
- _esta ma
o de
· ca ct
G12
izzat
G
10
Profitt o
11
Totale
12 =MATR. SOMMA. PRODOTTO(ProfitPerBatch; BatchesProduced)
•
FIGURA 3.16
Il modello con fog lio elettro nico per il problema Wyndor, comprese le formule per la cella obiettivo Total Profit (Gl2) e le
alt re celle d i output nel la colonna E; l'obiettivo è massimizzare la cella obiettivo.
La parte inferiore della Figura 3.16 riasswne tutte le formule che è necessario inserire nella colonna Ore Usate e nella cella Profitto Totale. È anche mostrato un sommario dei nomi
(in ordine alfabetico) e i corrispondenti indirizzi delle celle.
Ciò completa la formulazione del modello con foglio elettronico del problema
Wyndor. Con questa formulazione, diventa facile analizzare qualunque soluzione di prova per i tassi di produzione. Ogni qual volta i tassi di produzione sono inseriti nelle celle
Cl2 e Dl2, Excel calcola immediatamente le celle di output per le ore usate e il profitto
totale. In seguito sarà descritto come il Risolutore di Excel può essere usato per trovare
velocemente la soluzione ottima.
Uso del Risolutore Excel
Excel include un tool chiamato Risolutore che usa il metodo del simplesso per determinare una soluzione ottima.
Per accedere al R isolutore è necessario innanzitutto installarlo. Una volta installato esso sarà presente nel menu Strumenti di Excel.
Inizialmente, è stata inserita una soluzione arbitraria (Figura 3.16) ponendo a zero le
celle modificabili. Dopo aver risolto il problema. il Ri olutore sostituirà queste soluzioni
con i valori ottimi.
Questa procedura inizia scegliendo Risolutore dal menu Strumenti. La maschera di dialogo del Risolutore (Parametri del Risolutore) è mostrata in Figura 3.17.
3.6 FORMULARE E RISOLVERE MODELLI MEDIANTE UN FOGLIO ELETTRONICO
65
·~·~----~----~-~--
p~r~~~~~-~i,W~,~;~~~ìr.\.{;;~-~"ili);/.1''"';:~••_,~·~
-
0
Ma~
O [1in
O ~alore dì: '-lo_ _ __,
Cambiango le celle:
l satchesProduced
;h
~-------------------------------->--
r ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::l
Questa maschera di
dialogo del Risolutore
specifica che le celle in fig.
3.1 6 sono la cella obiettivo
e le celle modificabili. Essa
·ndica inoltre che la cella
obiettivo deve essere
11inim izzata .
~
Chiudi
Ipotif_za
Vinç_oli:
FIGURA 3.17
. . Ri~_olvi
!mposta cella obiettivo:
Uguale a:
- > __ ,
Qpzioni
Aggiungi
Cam~a
i
[ &eimposta
~limin a
Prima che il Risolutore possa iniziare a operare, è necessario conoscere con esattezza la
posizione di ogni componente del modello all'interno del foglio elettronico. Questa informazione viene inserita attraverso la maschera di dialogo Parametri del Risolutore. Si può
scegliere di scrivere i nomi degli intervalli, immettere dati nelle celle, o cliccare sulle celle
del foglio elettronico. 15 La Figura 3.17 mostra il risultato nel caso si proceda con la prima
scelta, così per la cella obiettivo è stato inserito TotalProfit (invece che G 12) e
BatchsProduced (anziché l'intervallo C12:D12) è stato inserito come celle modificabili.
Inoltre, dato che lo scopo è massimizzare la cella obiettivo, è stato selezionato Max. Il
passo successivo consiste nell 'andare a specificare le celle che contengono i vincoli funzionali. Questo viene fatto cliccando sul pulsante Aggiungi della maschera di dialogo
Appare quindi la maschera di dialogo Aggiungi Vincolo mostrata in Figura 3.18. I segni
::; nelle celle F7, F8 e F9 della Figura 3.16 servono a ricordare che i valori delle celle
HoursUsed (E7:E9) devono essere minori o uguali dei valori delle corrispondenti celle
HoursAvailable (G7:G9). Questi vincoli vengono specificati al Risolutore inserendo
HoursUsed (o E7:E9) sulla parte sinistra e HoursAvailable (o G7:G9) sulla parte destra
della maschera di dialogo Aggiungi Vincolo. Per inserire il segno tra questi due gruppi di
celle esiste un menu che permette di scegliere tra <= (minore o uguale), = , o >=
(maggiore o uguale). Nel nostro caso è stato scelto il segno < =. Anche se i segni <=sono stati precedentemente inseriti nella colonna F del foglio elettronico, questa scelta è necessaria perché il Risolutore usa solamente i vincoli funzionali specificati attraverso la
maschera di dialogo Aggiungi Vincolo. Se ulteriori vincoli funzionali devono essere aggiunti, basta cliccare sul pulsante Aggiungi per fare aprire una nuova maschera di dialogo
Aggiungi Vincolo. Tuttavia, in questo esempio ciò non è necessario e il passo successivo
è cliccare su OK per ritornare alla maschera di dialogo del Risolutore.
Tale maschera riassume quindi il modello completo (si veda la Figura 3.19) sulla base
del foglio elettronico in Figura 3. 16. Prima di chiedere al Risolutore di risolvere il modello deve essere eseguito, tuttavia, un ulteriore passo. Cliccando sul pulsante Opzioni, appare la maschera di dialogo mostrata in Figura 3.20. Questa maschera permette di specificare un numero di opzioni su come il problema sarà risolto. Le più importanti di queste so15
Se le celle vengono selezionate cliccando su di esse, apparirà la maschera di dialogo con i relativi indirizzi di
cella e con il segno dollaro (es. $C$9:$ D$9). Il segno dollaro può essere ignorato. Alla fine il Risolutore sostituirà sia gli indirizzi di cella sia i segn i dollaro con il corrispondente nome di intervallo (se un nome di intervallo è
stato definito per tali celle), ma solo dopo l'aggiunta di un vincolo o la chiusura e l' apertura della maschera di
dialogo.
66
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
no l'opzione "Presupponi modello lineare" e l'opzione "Presupponi nonnegativo".
Entrambe le opzioni devono essere selezionate come mostrato nella Figura 3.20. Queste
opzioni comunicano al Risolutore che si tratta di un problema di programmazione lineare
e che i vincoli di nonnegatività sono necessari alle celle modificabili per non accettare tassi di produzione negativi 16 . Per quanto riguarda le altre opzioni, i valori di default mostrati in figura sono accettabili per piccoli problemi. Cliccando su pulsante OK si ritorna alla
maschera di dialogo del Risolutore.
Adesso si è pronti per cliccare sul pulsante Risolvi della maschera di dialogo del
Risolutore, che farà partire in background il processo di risoluzione del problema. Dopo
pochi secondi (per un piccolo problema), il Risolutore indicherà il risultato. Tipicamente,
verrà indicato che è stata determinata una soluzione ottima, così come specificato nella
maschera di dialogo Risultato del Risolutore mostrata in Figura 3.21. Se il modello non
ha soluzioni ammissibili o non ha soluzione ottima, la maschera di dialogo indicherà in
modo specifico che "Il Risolutore non è in grado di trovare una soluzione fattibile " oppure che "I valori in 'Imposta la cella' non convergono". La maschera di dialogo presenta
inoltre delle opzioni per la generazione di vari report.
Dopo aver risolto il modello, il Risolutore sostituisce i numeri originali nelle celle modificabili con i valori ottimi, come mostrato in Figura 3.22. Di conseguenza, la soluzione
ottima è produrre due lotti di porte e sei lotti di finestre per settimana, così come era stato
trovato con il metodo grafico nel Paragrafo 3 .l. Il foglio elettronico indica inoltre il corrispondente numero nella cella obiettivo (un profitto totale di 36 000 dollari per settimana),
così come i numeri delle celle di uscita OreUsate (E7:E9).
A questo punto, sarebbe interessante verificare cosa succederebbe alla soluzione ottima
se i numeri delle celle dei dati fossero sostituiti con altri possibili valori. Ciò può essere
fatto facilmente perché il Risolutore memorizza gli indirizzi della cella obiettivo, delle celle modificabili, i vincoli, e così via quando il file viene salvato. Quello che è necessario
fare è modificare i valori delle celle dei dati e cliccare nuovamente sul pulsante Risolvi
nella maschera di dialogo del Risolutore. I Paragrafi 4.7 e 6.8 si focalizzeranno su questo
tipo di analisi della sensitività, e su come usare il Report di Sensibilità del Risolutore per
accelerare questo tipo di analisi what-if.)
• FIGURA 3.18
La maschera di dialogo
Add Constraint dopo
l'inserimento dell'insieme
dei vincoli, HoursUsed ::::;
HoursAvailable (G7:G9), il
quale specifica che le celle
E7, E8 ed E9 in Figura 3.16
devono essere minori o
uguali rispettivamente alle
cel le G7,G8 e G9.
-~~~"'~"'"""'"'"W~~
Aggjun~i ·vincolò::·:~·
··~
-- ·.
~~ ~
Riferimento:
yjncolo:
HoursUsed
1HoursAvailables
OK
m
16
-':.. ,· · ·, · ,-.. ~'''~ -
An ulla
~giu gi
FIGUI
masd
·solutor
specifica l
m odello
' ogl io ele
L<l
FIGUR
La maschc
Opzioni d
dopo aver
opzioni Pr
Modello L
Presuppor
nonnegat
ch e si desi
modello d
programn
che ha vin
non negati
(
Nella versione di Excel precedente a Excel 97 , l'opzione Assunzione nonnegativa non era di sponibi le, così i
vincoli di nonnegativ ità dovevano essere aggiunti con la maschera di dialogo Aggiungi Vincoli. Non tutti i modelli di programmazione lineare hanno dei vincoli di nonnegati,iti. ma quasi rutti. Per quei modelli in cui alcune
delle celle modificabili hanno vincoli di nonnegatività mentre al:re no. detti vincoli dovevano essere aggiunti
usando la maschera di dialogo Aggiungi Vincoli anziché scegliere l'opzione Assunzione nonnegativa.
• FIGURJ
La mascher
Risultato dc
quale indie
soluzione c
trovata.
3.6
FORMULARE E RISOLVERE MODELLI MEDIANTE UN FOGLIO ELETTRONICO
Imposta cella obiettivo:
Uguale a :
0
0
rvta~
o ~alore
~in
o_____
di:
._l
Chiudi
Cambiançto le celle:
BatchesProduced
Ipoti~za
Vinç_oli :
Qpzioni
HoursUsed
<= HoursAvailable
!lggiungi
CamQ.ia
FIGURA3.19
[ B.eimposta
La maschera di dialogo del
Risolutore dopo aver
specificato l'intero
modello in termini d i
f og lio elettronico.
FIGURA 3.20
La maschera di dialogo
Opzioni del Risolutore
dopo avere selezionato le
opzioni Presupponi
M odello Lineare e
Presupponi Modello
non negativo per indicare
che si desidera risolvere un
modello di
programmazione lineare
che ha vincoli di
nonnegatività.
!;limina
Iempo massimo:
~
J.terazioni:
1100
App[ossimazione:
lo,OOOOOl
Toll~ranza:
!s
Con~ergenza:
10,0001
secondi
Annulla
çarica modello ...
1%
~ eresupponi modello lineare
~ f..r.~.s.~·P.P.·?.·~·:.6.~~.'.'6.~9.~~-~?.!
Stima
OK
?.
O !J.sa scala automatica
0 Mostra arisultato delle iter azioni
Derivate
0 Tg_ngente
O Quadratica
s_alva modello ...
0 Qiretta
O Centrale
Cerca
0
Ne!{!ton
O Gradienti CQ.niugati
Il Risolutore ha trovato una soluzione. Tutti i vincoli e le
condizioni di ottimalizzazione sono stati soddisfatti .
FIGURA 3.21
maschera di dialogo
ltato del Risolutore la
e indica che una
. - ...:zio ne ottima è stata
rata.
.3.
Valori
Sensibilità
limiti
0 !ci~-~~~-6i.'i.~.--~.?i.~-~·?.·~·~·:.~-~f.~.~-?.I~·f?.~.'~·j
O Ripristina i y_a!ori originali
OK
Annulla
B.apporti
s_alva Scenario ...
67
CAPITOLO 3
68
A
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
c
B
D
G
E
H
Problema Wyndor Glass
Profitto per lotto
Porte
Finestre
3000
5000
Ore per lotto Prodotto
1
o
o
Ore
Ore
Utilizzate
Oispombih
2
12
3
2
2
Porte
Finestre
Profit1o
Totale
2
6
36000
Numero lotti prodotti
18
E
Celle
C12D12
G7·G9
E7:E9
C7D9
C4:D4
12
20
5
6
Ore
Utilizzate
7 =MAiR SOMMAPRODOTIO(C7 D7 .BatchesProduced)
8 =MATR SOMMAPRODOTIO(C8 08 BatchesProduced)
9 =MAiR SOMMA.PRODOTIO(C9 D9.BatchesProduced)
G12
•
FIGURA 3.22
G
Il foglio elettronico
ottenuto dopo aver risolto
il problema Wyndor.
3.7
~
Profitto
Totale
12 =MATR SOMMAPRODOTIO!ProfitPerBatch:BatchesProduced)
r------!J
FORMULARE MODELLI DI PROGRAMMAZIONE LINEARE
DI GRANDI DIMENSIONI
La dimensione dei modelli di programmazione lineare possono variare grandemente. Per
gli esempi dei Paragrafi 3.1 e 3.4, le dimensioni del modello vanno da tre v incoli funzionali e due variabili decisionali (per i problemi Wyndor e radioterapia) fino a 17 vincoli
funzionali e 12 variabili decisiona li (per il problema dell'azienda Save-lt). L'u ltimo caso
può sembrare un modello di grandi dimensioni. Infatti, tale problema richiede una quantità di tempo considerevole per la stesura del relativo modello. Tuttavia, i modelli presentati nel Paragrafo 3.5 per i casi di studio, sono molto ma molto più grandi. Per esempio, i
modelli del problema della Citgo hanno tipicamente circa 3000 vincoli funzionali e
15 000 variabili di scelta.
Le dimensioni del modello Citgo non sono del tutto inusuali. Generalmente, nella pratica, i modelli di programmazione lineare hanno centinaia o migliaia di vincoli funzionali e,
in alcuni casi, i vincoli funzionali sono addirittura milioni. Il numero delle variabili decisionali è spesso anche maggiore del numero dei vincoli funzionali.
La formulazione di modelli così straordinariamente grandi può essere un compito scoraggiante. Un modello "di dimensioni medie" con un migliaio di vinco li funzionali e un migliaio di variabili decisionali ha oltre un milione di parametri. Per un simile modello non
è pensabile scrivere per esteso la formulazi one algebrica o addirittura riempire un foglio
elettronico con i parametri.
Come vengono allora formulati questi modelli così grandi nella pratica? È richiesto l'uso di un linguaggio di modellazione.
Linguaggio di modellazione
Un linguaggio di modellazione matematico è un oftware che è specificatamente progettato per la formulazione efficiente di modelli matematici grand ini grandi dimensioni, compresi i modelli di programmazione lineare. Sebbene po ano esserci migliaia di vincoli
3.7
FORMULARE MODElli DI PROGRAMMAZIONE DI GRANDI DIMENSIONI
69
funzionali, questi possono essere suddivisi in poche tipologie e i vincoli dello stesso tipo
si presentano nella stessa forma. Allo stesso modo, anche le variabili decisionali possono
essere suddivise in un piccolo numero di categorie.
Per aumentare l'efficienza nella formulazione di un modello di grandi dimensioni, un
linguaggio di modellazione dovrà eseguire velocemente una serie di compiti per la gestione del modello, quali accedere ai dati, trasformare i dati in parametri del modello, modificare il modello tutte le volte che è richiesto, e analizzare le soluzioni del modello. Il linguaggio di modellazione può produrre dei report riepilogativi nello stesso linguaggio di
chi deve prendere le decisioni, così come documentare il contenuto del modello.
Negli ultimi due decenni sono stati sviluppati diversi eccellenti linguaggi di modellazione. Tra questi sono AMPL, MPL, GAMS e UNGO.
MPL (Linguaggio di Programmazione Matematica) è un prodotto della Maximal
Software lnc. Una caratteristica di MPL è l'ampio supporto per Excel. È infatti possibile
da MPL importare ed esportare dati di Excel. Attraverso OptiMax 2000 viene fornito pieno supporto alle macro del linguaggio VBA di Excel. Questo prodotto permette di integrare pienamente i modelli MPL all ' interno di Excel e di risolverli usando i potenti solver
supportati dallo stesso MPL, tra cui CPLEX.
LINGO è un prodotto della Lindo Systems Inc., la quale vende sul mercato anche un
software di ottirnizzazione tradizionale chiamato LINDO e un software di ottimizzazione
per Excel chiamato " What's Best" progettato per problemi industriali. Le ultime versioni
demo di tutti e tre i pacchetti software possono essere scaricati dal sito web
www.lindo.com. Come MPL, LINGO è un potente e generico linguaggio di modellazione. Una rilevante caratteristica di LINGO è la sua grande flessibilità nell ' affrontare
un'ampia varietà di problemi di ricerca operativa oltre alla programmazione lineare. Per
esempio, quando si affrontano problemi di programmazione nonlineare abbastanza complicati, il suo software di ottimizzazione globale (What's Best) determinerà una soluzione
ottima globale.
Adesso, con un esempio, verrà mostrato come può presentarsi un modello di programmazione lineare di grandi dimensioni .
Un esempio di problema di grandi dimensioni
Il management della WORLDWIDE CORPORATION ha la necessità di risolvere un problema di determinazione del mix ottimo di produzione che è molto più complesso rispetto
al problema della Wyndor introdotto nel Paragrafo 3 .l. Questa società possiede l O stabilimenti in varie parti del mondo. Ognuno di questi stabilimenti produce gli stessi lO prodotti e Ii vende all ' interno della propria zona. La domanda (vendite potenziali) per ognuno di
questi prodotti da ogni stabilimento è nota per ciascuno dei lO mesi successivi. Anche se
la quantità di un prodotto venduta da uno stabilimento non può superare la domanda, la
quantità prodotta può essere maggiore, e in questi casi la quantità in eccesso dovrebbe essere immagazzinata (con un costo per unità per mese) da vendere nel mese successivo.
Ogni unità di ciascun prodotto richiede la stessa quantità di spazio in magazzno, e ogni
stabilimento ha dei limiti sul numero totale di unità che possono essere immagazzinate (la
capacità di magazzino).
Ogni stabilimento possiede gli stessi l O processi di produzione (ci si riferirà a essi come macchine), ognuno dei quali può essere usato per produrre uno qualunque dei lO prodotti. Sia il costo unitario di produzione di un prodotto sia il tasso di produzione del prodotto (numero di unità prodotte per giorno) dipendono dalla combinazione degli stabilimenti e delle macchine utilizzate (ma non dal mese). Il numero di giorni lavorativi (giorni
disponibili per la produzione) variano da mese a mese.
Dato che alcuni stabilimenti e macchine possono produrre un particolare prodotto più
velocemente o a un minor prezzo rispetto ad altri stabilimenti e macchine, è utile, a volte,
trasferire alcune unità di prodotto da uno stabilimento a un altro per effettuare la vendita
in quest'ultimo. Per ogni combinazione di stabilimento da cui si è trasferito il prodotto
70
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
(jromplant) e di stabilimento a cui si è trasferito il prodotto stesso (toplant) c'è un costo
per unità di prodotto trasferita che è lo stesso per tutti i prodotti.
Il management ha la necessità di determinare quanto produrre di ciascun prodotto da
ogni macchina in ogni stabilimento durante ogni mese, come pure quanto, di ciascun prodotto, dovrebbe essere venduto da ogni stabilimento in ogni mese e quanto dovrebbe essere trasferito da uno stabilimento agli altri in ogni mese. Considerando per ogni prodotto
un prezzo unico, l'obiettivo è determinare lo stabilimento che permette di massimizzare il
profitto totale (ricavi totali di vendita meno la somma dei costi totali di produzione, dei
costi di inventario e di trasferimento).
Si deve comunque sottolineare che questo problema è semplificato in molti aspetti. È
stato assunto che il numero degli stabilimenti, macchine, prodotti e mesi siano esattamente gli stessi (l 0). Nella maggior parte delle situazioni reali, il numero dei prodotti sarà probabilmente molto più grande e l 'intervallo di programmazione sarà più lungo di l O mesi,
mentre il numero di "macchine" (tipi di processi di produzione) possono essere inferiori
a 10. Si è fatta l'assunzione che ogni stabilimento ha gli stessi tipi di macchine (processi
di produzione) e ogni macchina può produrre qualunque prodotto. In realtà, gli stabilimenti possono presentare differenze sui tipi di macchine e sui prodotti che sono in grado
di produrre. La conclusione è che, per alcune aziende, il modello può essere più piccolo
di quello in questo esempio, mentre per altre aziende può essere più grande (e anche molto più grande).
La struttura del modello risultante
A causa delle limitate capacità di magazzino e dei costi di quest'ultimo, è necessario tenere traccia della quantità di ogni prodotto in magazzino per ciascun stabilimento durante
ogni mese. Di conseguenza, il modello di programmazione lineare ha quattro tipi di variabili decisionali : quantità da produrre, quantità immagazzinata, quantità venduta e quantità
trasferita. Con l O stabilimenti, l O macchine, l O prodotti e l O mesi, si ottiene un totale di
21 000 variabili decisionali, come descritto di seguito.
Variabili decisionali
l O000 variabili di produzione: una per ogni combinazione stabilimento, macchina, prodotto e mese
l 000 variabili di magazzino: una per ogni combinazione stabilimento, prodotto e mese
l 000 variabili di vendita: una per ogni combinazione stabilimento, prodotto e mese
9000 variabili di trasferimento: una per ogni combinazione prodotto, mese, stabilimento
di partenza e stabilimento di arrivo del prodotto.
3.8
Moltiplicando ognuno di queste variabili decisionali per il conispondente costo unitario o
ricavo unitario e sommando per ogni tipo, può essere calcolata la seguente funzione obiettivo:
Funzione obiettivo
Massimizzare
profitto = ricavo totale - costo totale,
dove
costo totale = costo totale di produzione , costo totale di inventario
trasferimento.
+ costo totale di
Quando si massimizza questa funzione obiettivo, le 21 000 variabili decisionali devono
soddisfare i vincoli di nonnegatività e quattro tipi di vincoli funzionali - vincoli sulla capacità produttiva, vincoli di bilanciamento per gli tabilimenti (vincoli di uguaglianza che
impongono opportuni valori alle variabili di magazzino), vincoli di massima disponibilità
di magazzino e vincoli di massima vendita. Co-i come è elencato di seguito, sono presenti
3100 vincoli funzionali, ma tutti i vincoli dello ~esso tipo hanno la medesima fmma.
RIFER
3.8
CONCLUSIONI
71
Vincoli funzionali
l 000 vincoli di capacità produttiva (uno per ogni combinazione stabilimento, macchina e
mese):
giorni usati per la produzione ::; giorni disponibili per la produzione
dove a sinistra vi è la somma di l O frazioni, una per ogni prodotto, in cui ogni frazione
è la quantità di produzione (una variabile decisionale) diviso il tasso di produzione del
prodotto (una costante prefissata).
1000 vincoli di bilanciamento per gli stabilimenti (uno per ogni combinazione stabilimento, prodotto e mese):
quantità prodotta + quantità in magazzino nell 'ultimo mese+ quantità ricevuta = vendite + quantità in magazzino + quantità trasferita
dove la quantità prodotta è la somma delle variabili decisionali che rappresentano le
quantità di produzione delle macchine, la quantità ricevuta è la somma delle variabili
decisionali che rappresentano le quantità ricevute da altri stabilimenti, e la quantità trasf erita è la somma delle variabili decisionali che rappresentano le quantità trasferite ad
altri stabilimenti.
l 00 vincoli di massimo dimensione del magazzino (uno per ogni combinazione stabilimento e mese):
quantità totale in magazzino ::=; capacità del magazzino,
dove a sinistra vi è la somma delle variabili decisionali che rappresentano le quantità di
magazzino per i singoli prodotti.
l 000 vincoli di massima vendita (uno per ogni combinazione stabilimento, prodotto e mese):
vendite ::=; domanda.
Tutti i vari software di modellazione algebrica (AMPL, MPL, GAMS, LINDO ecc.) hanno la possibilità di formulare il modello in modo chiaro e conciso, definendo le variabili
decisionali, la funzione obiettivo e i vincoli funzionali. Questo è realizzato mediante un
linguaggio di modellazione algebrica.
3.8
CONCLUSIONI
La programmazione lineare è una potente tecnica per affrontare il problema dell'allocazione di risorse limitate tra attività concorrenti o altri problemi con una simile formulazione
matematica. Essa è ormai diventata un tool standard di grande importanza per numerose
organizzazioni commerciali e industriali. Per di più, quasi tutte le organizzazioni sociali
sono interessate all'allocazione delle risorse in svariati contesti, e c'è un sempre più crescente riconoscimento della vasta applicabilità di questa tecnica.
Tuttavia, non tutti i problemi di allocazione di risorse limitate possono essere formulate
utilizzando un modello di programmazione lineare. Quando una o più ipotesi della programmazione lineare vengono violate in maniera significativa, è possibile applicare un
differente modello matematico di programmazione, come per esempio, i modelli di programmazione intera (Capitolo 9) o di programmazione nonlineare (Capitolo 10).
RIFERIMENTI BIBLIOGRAFICI
l. Anderson, D.R. , D.J. Sweeney e T.A. W illiams: An Introduction to Management Science, l Oth
ed. , W est, St. Pau!, MN, 2003 , chaps. 2, 4.
72
CAPITOLO 3
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
2. Gass, S.: An 1/lustrated Guide to Linear Programming, Dover Publications, New York, 1990.
3. Hillier, F.S. e M .S. Hillier: lntroduction to Managem ent Science: A Modeling and Case
Studies Approach with Spreadsheets, 2nd ed., McGraw-Hill/lrwin, Burr Ridge, IL, 2003 ,
chaps. 2, 4.
4. UNGO User's Guide, LINDO SystelJis Inc., Chicago, IL, 2003.
S. MPL Modeling System (Release 5.0) manual, Maximal Software Inc., Arlington, VA, e-mail:
[email protected], 2004.
6. Schrage, L.: Optimization Modeling with UNGO, LINDO Systems Press, Chicago, IL, 2003.
7. Williams, H. P.: Mode! Building in Mathematical Programming, 4th ed. , Wiley, New York,
1999.
::cOIIIlulaJ
blem<
:..-sare il1
pro fi tte
Consi<
e tato at
~.
simizz
:.= rto ai vi
2: O,
l' anali ~
Xt,
•
_.1-7. Consid
:: _ ro ancora
PROBLEMI
3.1-1. * Per ciascuno dei seguenti vincoli, tracciare un grafico separato per mostrare le soluzioni non negative che soddisfano
questo vincolo.
+ 3xz :S 6
(b) 4xt + 3xz :S 12
(c) 4xt + xz :S 8
(a)
Xt
(d) Rappresentare questi vincoli in un unico grafico per mostrare la regione ammissibile defmita da tutti questi vincoli fun zionali più i vincoli di nonnegatività.
3.1-2. Considerare la seguente funzione obiettivo per un modello di programmazione lineare:
massimizzare
Z = 2x 1 + 3xz
(a) Tracciare un grafico che mostra le rette cotTispondenti ai valori della funzione obiettivo Z = 6, Z = 12 e Z = 18.
(b) Trovare l' equazione della pendenza per ciascuna di queste
tre funzioni rette. Confrontare la pendenza di queste tre linee
e confrontare l'intercetta con l'asse x 2 .
3.1-3. Usare il metodo grafico per riso lvere il problema:
massimizzare
Z = 2xt
+ xz
soggetto ai vincoli
xz :S IO
2x 1 + 5xz :S 60
Xt
3Xt
+
+
Xz
Xz
:S 18
:S 44
e
Xt
2: O,
xz ) al
xz 2: O.
3.1-4. La Whitt Window Company è un'azienda con solo tre impiegati che produce in modo artigianale due differenti tipi di finestre: una finestra con telaio in legno e una finestra con telaio
in alluminio. L 'azienda guadagna 60 dollari per ogni finestra
con telaio in legno e 30 dollari per ogni finestra con telaio in alluminio. I telai in legno sono costruiti da Doug che ne può pro-
durre 6 al giorno. Linda fa i telai in alluminio e ne può produrre
4 al giorno. Bob forma e taglia il vetro e può produrre 48 metri
quadrati di vetro al giorno. Ogni finestra con telaio in legno richiede 0.6 metri quadrati di vetro mentre ogni finestra con telaio
in allum inio rich iede 0.8 metri quadrati di vetro .
L 'azienda desidera determinare quante finestre di ogni tipo ocCOtTe produrre al giorno per massimizzare il profitto totale.
(a) Descrivere l'analogia fra questo problema e il problema
Wyndor Glass Co. discusso nel Paragrafo 3. 1. Per questo
problema costruire una tabella come la Tabella 3.1 , identificando sia le attività che le risorse.
(b) Formulare un modello di programmazione lineare per questo
problema.
(c) Usare il metodo grafico per risolvere questo problema.
(d) In città, anche un nuovo concorrente ha iniziato a produrre fi nestre con telaio in legno. Questo può obbligare l'azienda ad
abbassare il prezzo di vendita e quindi ad abbassare il profitto
realizzato per ogni finestra con telaio in legno. Come cambia
la soluzione ottima se il profitto per la finestra con telaio in
legno diminuisse da 60 a 40 dollari? Da 60 a 20 dollari?
(e) Doug sta considerando la possibilità di ridurre le proprie ore
lavorative. Ciò comporterebbe una diminuzione del numero
di telai in legno prodotti giornalmente. Come cambia la soluzione ottima se venissero prodotti soltanto 5 telai in legno al
giorno?
3.1-5. La WorldLight Company produce due dispositivi di luce
(prodotti l e 2) che richiedono sia pezzi con stmttura in metallo
che componenti elettrici. Il management desidera determinare
quante unità di ogni prodotto occorre prodmTe per mass imizzare
il profitto. Per ogni unità del prodotto l , sono richieste l unità in
metallo e 2 componenti elettrici. Per ogni unità del prodotto 2,
sono richieste 3 unità in metallo e 2 componenti elettrici.
L'azienda ha a di po izione 200 unità in metallo e 300 componenti elettrici. Ogni unità del prodotto l permette di avere un
profitto pari a l dollaro e ogni unità del prodotto 2, fino a 60 unità, un profitto di 2 dollari. Qualunque eccesso oltre 60 unità del
prodotto 2 non pona benefici.
_ !assimizza
=getto ai vit
.:.x-1
+ X z :S
xz :S
ht + xz :S
_a soluzione a
:.ererminare i '
3..2-1. Nel seg
-egione ammis
- cui funzione
Quali delle seg
risposta con il 1
di una funzione
(a) Se (3 , 3) dc
giore di qm
essere una s
(b) Se (3 , 3) è L
multiple, ali
ne ottima.
(c) Il punto (0, 1
73
PROBLEMI
(a) Fmmulare un modello di programmazione lineare per questo
problema.
(b) Usare il metodo grafico per risolvere questo modello. Qual è
il profitto totale risultante?
3.2-2. Usare il metodo grafico per trovare tutte le soluzioni ottime per il seguente modello:
massimizzar'e
Z = 500x 1 + 300xz
soggetto ai vi ncoli
3.1-6. Co nsiderare il seguente problema in cui il va lore di c 1
non è stato ancora determinato.
Mass imizzare
.TJ
!Ox1
Z = c 1x 1 + x 2
8x1
+ Sxz::; 300
+ 6xz ::; 240
+ 12xz ::; 450
e
soggetto ai vincoli
Xi+
ISx1
Xz::; 6
+ 2xz::; IO
x1 ~O,
3.2-3. Usare il metodo grafico per dimostrare che il seguente
modello non ha soluzioni ammissibili .
xz ~O.
--sare l'analisi grafica per determinare la(e) soluzione(i) ottima
" r (x 1, x2 ) al variare di c 1 ( - oo < c 1 < oo) .
Mass imizzare
2xl -
3.1-7. Considerare il seguente problema in cui il valore di k non
e tato ancora determinato.
Massimizzare
Z = x1
Z = Sx1
+ 7xz
soggetto ai vincoli
Xz::; - 1
-xl+ 2xz::; - l
e
+ 2x2
- ggetto ai vincoli
3.2-4. Supporre che per un modello di programmazione lineare
siano stati fomiti i seguenti vincoli.
2x1 + xz::; 2
xz ::; 3
kx 1 + xz ::; 2k + 3,
dove k
~
-xl+ 3xz::; 30
O
-3xl
+
xz ::; 30
e
La sol uzione attuale è x 1 = 2, x 2 = 3. Usare l'analisi grafica per
.: terminare i valori di k tali che questa soluzione sia ottima.
.:'.2-1. Nel seguente grafico la zona ombreggiata rappresenta la
;-egione ammissibile di un problema di programmazione lineare
ui funzione obiettivo deve essere massimizzata.
(3, 3)
_....._ _ _ _ _ ___,. (6, 3)
. 2)
.0) .--------------------------*--~
(6, O)
xl
li delle seguenti affermazioni è vera o falsa e giustificare la
sta con il metodo grafico. In ogni caso, forn ire un esempio
una funz ione obiettivo che illustra la risposta data.
· Se (3 , 3) determina un valore della funzione obiettivo maggiore di quello ottenuto per (0, 2) e (6, 3), allora (3, 3) deve
essere una soluzione ottima.
Se (3, 3) è una soluzione ottima ed esistono soluzioni ottime
multiple, allora anche (0, 2) o (6, 3) deve essere una soluzione ottima.
TI punto (0, O) non può essere una soluzione ottima.
(a) Dimostrare che la regione ammissib ile è illimitata .
(b) Se l'obiettivo del modello è quello di massimizzare
Z = 2xl + xz, esiste una soluzione ottima? In caso affermativo, trovarla. In caso negativo, spiegare perché.
(c) Ripetere il punto (b) quando l' obiettivo è massimizzare
Z =Xl - Xz.
(d) Il fatto che per queste funzioni obiettivo il modello non ha
una soluzione ottima sign ifica che non ci sono soluzioni
valide per il modello? Dare una giustificazione. Cosa non
ha funzionato probabilmente durante la formulazione del
modello?
3.3-1. Considerare un problema con due variabili decisionali, x 1
e x 2 , che rappresentano i livelli delle attività l e 2. Per ciascuna
variabile, i valori ammissibili sono O, l e 2 e le combinazioni
ammissibi li di questi valori per le due variabili sono determinate
a partire da una varietà di vincoli. L ' obiettivo è massirnizzare
una determinata misura della prestazione denotata con Z. I valori
di Z ottenuti per valori di (x 1, x 2 ) ammissibili sono quelli indicati
nella seguente tabella:
o
1
2
o
o
l
2
3
6
4
8
8
13
18
12
CAPITOLO 3
74
INTRODUZIONE ALLA PROGRAMMAZIONE LINEARE
Sulla base di queste informazioni, indicare se questo problema
soddisfa completamente ciascuna delle quattro ipotesi della programmazione lineare. Giustificare le risposte.
(a) Formulare un modello di programmazione lineare per questo
problema.
(b) Risolvere questo modello con Excel.
3.4-1. Usare il metodo grafico per risolvere questo problema:
3.4-4.* La Medequip Company produce apparecchiatura diagnostica medica di precisione in due stabilimenti . Per il mese
corrente sono stati ricevuti ordini da tre centri medici. La tabella
a destra mostra quale costo verrebbe sostenuto per spedire ogni
unità a ciascuno di questi clienti da ogni stabilimento. Inoltre è
indicato il numero di unità che saranno prodotte in ogni stabilimento e il numero di unità ordinate da ogni cliente.
Z = 15x,
mmnmzzare
+ 20x2
soggetto ai vincoli
x 1 + 2x2 2: IO
2x,- 3x2 ~ 6
X!
+
X2
2: 6
e
Costo di spedizione per unità
Cliente 1
Cliente 2
Cliente 3
Unità
prodotte
Stabilimento l
Stabilimento 2
$600
$400
$800
$900
$700
$600
400 unità
500 unità
Unità ordinate
300 unità
200 unità
400 unità
Da\A
3.4-2. Considerare il seguente modello:
Z = 40x,
minimizzare
+ 50x2
soggetto ai vincoli
2x,
X!
2x!
+ 3x2 2: 30
+ X2 2: 12
+ X2 2: 20
Occorre adesso prendere una decisione su quante unità spedire a
ciascun cliente da ogni stabilimento.
e
X!
2:
o,
X2
2: O.
(a) Usare il metodo grafico per risolvere questo modello.
(b) Come cambia la soluzione ottima se la funzione obiettivo diventa Z = 40x 1 + 70x 2 ?
(c) Come cambia la soluzione ottima se il terzo vincolo funzionale diventa 2x 1 + x 2 2: 15?
3.4-3. Larry Edison è il direttore del Centro di Calcolo del
Buckly College. Egli deve pianificare l'assunzione del personale
del centro che è aperto dalle 8 di mattina fmo a mezzanotte.
Larry ha monitorato l' uso del centro in varie ore del giorno e ha
determinato che il numero di consulenti informatici necessario è
il seguente:
Ora del giorno
08:00 - mezzogiorno
Mezzogiorno - 16:00
16:00- 20:00
20:00 - mezzanotte
Numero minimo di consulenti
che è necessario siano in servizio
4
8
lO
6
Possono essere assunti due tipi di consulenti informatici: a tempo pieno e a part-time. I consulenti a tempo pieno lavorano per 8
ore consecutive in uno qualunque dei seguenti turni: mattina
(08:00 - 16:00), pomeriggio (mezzogiorno - 20:00 ) e sera
(16:00- mezzanotte) e sono pagati 14 dollari l'ora.
I consulenti part-time possono essere assunti per lavorare in
uno qualunque dei quattro turni elencati nella suddetta tabella e
sono pagati 12 dollari l'ora. Una condizione supplementare è
che devono essere sempre in servizio almeno 2 consulenti a tempo pieno per ogni consulente part-time in servizio.
Larry vorrebbe determinare quanti lavoratori a tempo pieno e
quanti a part-time devono lavorare in ogni turno per far fronte alle suddette richieste con il minimo costo possibile.
(a) Formulare un modello di programmazione lineare per questo
problema.
(b) Risolvere questo modello con Excel.
3.4-5. La Metalco Company desidera creare una nuova lega
composta dal 40 percento di stagno, dal 35 percento di zinco e
dal 25 percento di piombo da diverse leghe disponibili aventi le
seguenti proprietà:
Lega
Proprietà
1
2
3
4
5
Percentuale di stagno
Percentuale di zinco
Percentuale di piombo
60
45
45
lO
20
50
30
50
40
30
25
15
60
Costo (dollaro/libra)
22
20
25
24
27
lO
lO
L'obiettivo è detenninare le proporzioni di queste leghe che devono essere mescolate per produrre la nuova lega a un costo mimmo.
(a) Formulare un modello di programmazione lineare per questo
problema.
(b) Risolvere questo modello con Excel.
3.4-6. Joyce e Marvin gestiscono un asilo nido per bambini in
età prescolastica. Stanno provando a decidere cosa dare da mangiare ai bambini a pranzo. Von·ebbero mantenere i loro costi bassi, ma nello stesso tempo devono fare fronte ai fabbisogni nutrizionali dei bambini. Già hanno deciso di provare con tramezzini
con mannellata e burro di arachidi e una certa combinazione di
cracker, latte e succo di arancia. Il contenuto nutrizionale di ogni
alimento scelto e il relativo costo sono indicati nella tabella di
seguito. I fabbisogni nutrizionali sono i seguenti. Ogni bambino
deve ricevere fra 400 e 600 calorie e non più del 30 percento del-
le calorie te
deve consu
grammi (g)
bino ha bisc
zino), almer
meno l tazz
Alimento
Pane (l fetta
Burro di arac
(l cucchiaie
Marmellata
gola
(l cucchiaie
Cracker (l cr
Latte (l tazz;
Spremuta (l
Joyce e M~
bambino eh
suddetti fabl
(a) Formula
problem
(b) Risolver
75
PROBLEMI
:.: calorie totali dovrebbero provenire da grasso. Ogni bambino
- Ye consumare almeno 60 milligrammi (mg) di vitamina C e 12
parruni (g) di proteina. Per di più, per motivi pratici, ogni bam: · o ha bisogno esattamente di 2 fette di pane (per fare il tramezo), almeno il doppio di burro di arachide e di marmellata e alo l tazza di latte e/o spremuta.
3.6-1.* Sono fomiti i seguenti dati per un problema di programmazione lineare in cui l'obiettivo è massimizzare il profitto dell 'assegnazione di tre risorse a due attività non negative.
Risorsa
ento
-
e (l fetta)
o di arachidi
cucchiaio)
ellata di fra
a
" cucchiaio)
-:acker (l cracker)
_ e (l tazza)
:cremuta (l tazza)
Calorie
da
Calorie Vitamina Proteina Costo
totali C (mg)
(g) (dollari)
grasso
lO
70
o
3
5
75
100
o
4
4
o
50
60
150
100
7
8
15
35
20
70
o
3
o
o
l
2
120
8
f ce e Marvin vorrebbero selezionare gli alimenti per ogni
bino che minimizzano il costo continuando a soddisfare i
detti fabbisogni nutrizionali.
Formulare un modello di programmazione lineare per questo
problema.
Risolvere questo modello con Excel.
l
2
3
Contributo
per unità
Uso della risorsa per unità
di ogni attività
Quantità
di risorsa
disponibile
Attività 1
Attività 2
2
3
2
l
lO
3
4
20
20
$20
$30
(a) Formulare un modello di programmazione lineare per questo
problema.
(b) Usare il metodo grafico per risolvere questo modello.
(c) Visualizzare il modello su un foglio Excel.
(d) Utilizzare il foglio elettronico per controllare le seguenti soluzioni:
(XJ , X2) = (2 , 2), (3 , 3), (2, 4), (4, 2), (3 , 4), (4, 3)
Quale di queste soluzioni sono ammissibili? Quale di queste
soluzioni ammissibili hanno il valore della funzione obiettivo migliore?
(e) Risolvere questo modello con Excel.
Risoluzione di problemi
di programmazione lineare:
il metodo del simplesso
uesto capitolo affronta lo studio del metodo del simplesso: un procedimento generale per la soluzione di problemi di programmazione lineare. Sviluppato da George
Dantzig nel 1947, tale metodo ha dimostrato di essere molto efficiente ed è frequentemente utilizzato nei moderni computer per la risoluzione di problemi di grandi dimensioni. A
eccezione di problemi di ridotte dimensioni, questo metodo viene sempre eseguito mediante computer e sofisticati pacchetti software sono, oggi, ampiamente disponibili.
Estensioni e varianti del metodo del simplesso vengono, inoltre, utilizzati per portare a termine l' analisi postottimale (compresa l'analisi di sensitività) sui modelli.
Questo capitolo descrive e spiega le principali caratteristiche del metodo del simplesso.
Il primo paragrafo ne introduce gli aspetti generali compresa l'interpretazione geometrica.
I tre paragrafi successivi sviluppano, il procedimento per la risoluzione di un qualunque
modello di programmazione lineare espresso in forma standard (massimizzazione, tutti i
vincoli funzionali nella forma :::; e vincoli di nonnegatività per tutte le variabili) e avente
tutti i tennini b;, nella parte destra dei vincoli funzionali, nonnegativi. Alcuni dettagli legati alla risoluzione sono rimandati al Paragrafo 4.5 mentre il Paragrafo 4.6 descrive come adattare il metodo del simplesso ad altre forn1e di problemi. Successivamente verrà discussa l' analisi postottimale (Paragrafo 4.7) e verrà descritta l' implementazione su computo del metodo del simplesso (Paragrafo 4.8). Il Paragrafo 4.9 introduce, quindi, un metodo alternativo a quello del simplesso (l'approccio a punti interni) per risolvere problemi
di programmazione lineare di grandi dimensioni.
Q
4.1
L'ESSENZA DEL METODO DEL SIMPLESSO
Il metodo del simplesso è una procedura algebrica. Tuttavia, i concetti che stanno alla base di tale metodo sono di natura geometrica. La conoscenza di questi concetti geometrici
permette di comprendere meglio come opera il metodo del simplesso e cosa lo renda tanto
efficiente. Di conseguenza, prima di addentrarsi nei dettagli algebrici, questo paragrafo si
concentrerà sugli aspetti generali da un punto di vista geometrico.
Per illustrare questi concetti geometrici, si farà riferimento all'esempio Wyndor Glass
Co. presentato nel Paragrafo 3.1 (i Paragrafi 4.2 e 4.3 usano l'algebra del metodo del simplesso per risolvere questo stesso e empio). Il Paragrafo 5.1 approfondirà ancora di più
questi concetti geometrici.
Il modello matematico e il grafico della regione ammissibile per questo esempio sono
riportati nella Figura 4.1. Le frontiere dei cinque vincoli e i cinque i loro punti di intersezione sono evidenziati in questa figura poiché e si costituiscono la chiave dell'analisi . In
questo esempio, la frontiera di un vincolo è una retta che traccia il confine tra i punti che
4.1
77
L'ESSENZA DEL METODO DEL SIMPLESSO
xz
Xt
Massimizzare Z = 3x 1 + 5xz
soggetto a
::;; 4
Xt
2x2 ::;; 12
3x 1 + 2x2 ::;; 18
e
XJ 2: O, x 2 2: O
= 0
(0, 9)
3x 1 + 2x2 = 18
(4, 6)
(0, 6)
Xt
2x2 = 12
= 4
Regione
ammissibile
FIGURA4.1
=rontiera dei vincoli e
e rtici per il problema
Vyndor Glass Co.
x 2 =O
(0, O)
(4, O)
(6, 0)
Xt
soddisfano il vincolo stesso e quelli che non lo soddisfano. I punti di intersezione costituiscono i \ler.ticj della regione anunissibile. Quelli che appartengono alla regione ammissibile- (0, 0), (0, 6), (2, 6), (4, 3) e (4, O) - sono detti vertici ammissibili [gli altri tre - (0,
9), (4, 6) e (6,0) - sono chiamati vertici non ammissibili].
In questo esempio ogni vertice è all'intersezione della frontiera di due vincoli (per un
problema di progranunazione lineare con n variabili decisionali, ciascuno dei vertici si trova all ' intersezione della frontiera di n vincoli 1). Alcune coppie di vertici della Figura 4.1
condividono una stessa frontiera, mentre ciò non accade per altre coppie. Sarà importante
distinguere tra questi casi utilizzando le seguenti definizioni generali.
Per un generico problema di programmazione lineare con n variabili decisionali, due vertici si
dicono adiacenti se condividono le frontiere di n - l vincoli. Due vertici adiacenti sono collegati attraverso un segmento che giace sulla stessa frontiera comune. Tale segmento viene
detto spigolo della regione ammissibile.
Dato che nell'esempio si ha n = 2, allora due vertici sono adiacenti se condividono la
frontiera di un singolo vincolo; per esempio, (0, O) e (0, 6) sono adiacenti perché condividono la frontiera data da x 1 = O. La regione anunissibile nella Figura 4.1 ha cinque spigoli, costituiti dai 5 segmenti che fotmano la frontiera di questa regione. Si può notare che
da ogni vertice partono due spigoli. Così, ogni vertice ha due vertici adiacenti (questi si
trovano dalla parte opposta di ciascuno dei due spigoli), come riportato nella Tabella 4.1
(in ogni riga di questa tabella il vertice nella prima colonna è adiacente a ciascuno degli
altri due vertici riportati della seconda colonna, ma i due vertici nella seconda colonna
non sono adiacenti tra loro.
Uno dei motivi di interesse per i vertici adiacenti è la seguente proprietà generale che
riguarda tali punti e che fornisce un utile metodo per verificare se un determinato vertice è
una soluzione ottima.
1
Sebbene un vertice sia defini to in tenn ini della frontiera di n vincoli la cui intersezione forni sca tale soluzione, è anche possibile esso appartenga alla fro ntiera di uno o più ulteriori vincoli.
78
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
TABELLA 4.1 Vertici adiacenti per il problema
Wyndor Glass Co.
Vertice
(0,
(0,
(2,
(4,
(4,
O)
6)
6)
3)
O)
Vertici adiacenti
(O,
(2,
(4,
(4,
(0,
6)
6)
3)
O)
O)
e (4,
e (0,
e (O,
e (2,
e (4,
O)
O)
6)
6)
3)
Test di ottimalità. Si consideri un qualunque problema di programmazione lineare
che possieda almeno una soluzione ottima. Se un particolare vertice non ha vertici
adiacenti migliori rispetto a essa (valutati attraverso il valore della funzione obiettivo Z), allora esso deve essere una soluzione ottima.
Così, per esempio, (2, 6) è una soluzione ottima semplicemente perché il suo valore
Z = 36 è più grande di Z = 30 ottenuto per (0, 6) e Z = 27 ottenuto per (4, 3) (nel
Paragrafo 5.1 verrà spiegato in dettaglio perché vale tale proprietà). Questo test di ottimalità è quello utilizzato dal metodo del simplesso per determinare quando una soluzione ot- ·
tima è stata raggiunta.
Si è pronti, adesso, per applicare il metodo del simplesso ali 'esempio Wyndor Glass Co.
Risoluzione del problema
Ecco una descrizione a grandi linee di come opera il metodo del simplesso (da un punto
di vista geometrico) per risolvere il problema Wyndor Glass Co. A ogni passo, viene inizialmente specificata la conclusione mentre la motivazione viene indicata tra parentesi
(fare riferimento alla Figura 4.1 per una visualizzazione dei vari passi eseguiti).
Jnizializzazione: scegliere (0, O) come vertice iniziale da esaminare (questa scelta è
conveniente dato che nessun calcolo è richiesto per identificare questo vertice).
Test di ottimalità: verificare che (0, O) non è una soluzione ottima (esiste un vertice
ammissibile adiacente migliore).
Iterazione I: spostarsi verso un vertice ammissibile adiacente migliore, (0, 6), effettuando i seguenti 3 passi:
l. considerare i due spigoli della regione ammissibile che partono dal punto (0, O) e scegliere di muoversi lungo l'asse x 2 (poiché la funzione obiettivo è Z = 3x 1 + Sx2, muovendosi lungo l'asse x 2 il valore di Z cresce più rapidamente di quanto avvenga spostandosi lungo l 'asse x 1);
2. fermarsi quando si incontra la frontiera di un vincolo : 2x 2 = 12 [muovendosi oltre nella direzione scelta al passo l si abbandonerebbe la regione ammissibile; per esempio,
proseguendo in quella direzione fino a incontrare la frontiera di un secondo vincolo si
giungerà al punto (0, 9), che è un vertice non ammissibile];
3. determinare l' intersezione delle frontiere del nuovo insieme di vincoli. Si otterrà il punto (0, 6) (le equazioni per le frontiere di questi vincoli, x 1 = O e 2x2 = 12, forniscono
immediatamente questa soluzione).
Test di ottimalità: verificare che (0. 6) non è una soluzione ottima (esiste un vertice
ammissibile adiacente migliore).
Iterazione 2: Muoversi verso un \·ertice ammissibile adiacente migliore, (2, 6), eseguendo i seguenti tre passi:
l. considerare i due spigoli della regione ammissibile che partono dal punto (0, 6) e scegliere di muoversi lungo lo spigolo che conduce alla destra (muovendosi lungo questo
bordo si incrementa il valore della Z, mentre ritornando indietro lungo l'asse x2 si decrementa il valore di Z);
• FIGURJ
Questo gr<
sequenza c
G), 0 ) esa
metodo dE
il problem;
Co. La soiL
(2,6) è trm
sono state
esattamen
4.1
79
l'ESSENZA DEL METODO DEL SIMPLESSO
/ z=
(0, 6)
30 (2, 6)
.....__2 = 36
CD 0
,
FIGURA4.2
Questo grafico mostra la
sequenza dei vertici (@,
~' @) esaminati dal
metodo del simplesso per
il problema Wyndor Glass
Co. La soluzione ottima
(2,6) è trovata dopo che
sono state esaminate
esattamente tre soluzioni.
Regione
ammissibile
(4, 3)
'\Z= 27
Z = 12
2. fermarsi quando si incontra la frontiera di un vincolo procedendo in tale direzione:
3x 1 + 2x2 = 12 (muovendosi oltre nella direzione selezionata al passo l si abbandonerebbe nuovamente la regione ammissibile);
3. dete1minare l' intersezione delle frontiere del nuovo insieme di vincoli: (2, 6) (le equazioni 3x 1 + 2x2 = 18 e 2x2 = 12, forniscono immediatamente questa soluzione).
Test di ottimalità: verificare che (2, 6) è una soluzione ottima e terminare l'algoritmo
(nessuno dei vertici ammissibili adiacenti è migliore).
La sequenza di vertici esaminati è riassunta nella Figura 4.2 , ove ogni numero cerchiato identifica l'iterazione in cui quel vertice è stato considerato.
Adesso verranno esaminate le sei idee risolutive chiave del metodo del simplesso, che
forniscono il fondamento logico dei passi precedenti (questi concetti sono applicati anche
alla risoluzione di problemi con più di due variabili decisionali dove un grafico simile a
quello in Figura 4.2 non è disponibile per aiutare a determinare velocemente una soluzione ottima).
Le idee risolutive chiave
La prima idea risolutiva è basata direttamente sulla relazione tra soluzioni ottime e vertici
ammissibili espressa alla fine del Paragrafo 3.2.
Idea risolutiva l: il metodo del simplesso concentra la sua attenzione esclusivamente su vertici. Per trovare la soluzione per un qualunque problema che abbia almeno una soluzione ottima è sufficiente trovare un vertice ammissibile ottimo. 2
Dato che il numero delle soluzioni ammissibili è generalmente infinito, ridurre il numero
di soluzioni che è necessario esaminare a un numero finito è una semplificazione considerevole.
La successiva idea risolutiva definisce i passi del metodo del simplesso.
Idea risolutiva 2: il metodo del simplesso è un algoritmo iterativo (una procedura
che ripete sistematicamente una serie stabilita di passi, chiamata iterazione, fino a
quando non si ottiene il risultato desiderato) come mostrato di seguito:
2
La sola restrizione è che il problema deve possedere almeno un vertice. Ciò è certamente vero se la regione
ammissibile è limitata.
80
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE liNEARE
Inizializzazione:
l
Test di ottimalità:
Seno
l
Iterazione:
Determinare un vertice iniziale
Il vertice corrente è ottimo?
Se sì ------.Fermarsi.
Eseguire una iterazione per determinare un vertice migliore.
Occorre notare come, durante la risoluzione del problema precedente, questo sequenza di
passi sia stata eseguita due volte fino a quando una soluzione ottima non è stata trovata.
\
L'attenzione viene adesso focalizzata su come inizializzare la procedura.
Idea risolutiva 3: ogni qual volta è possibile, come vertice iniziale per il metodo
del simplesso viene scelta l'origine (tutte le variabili decisionali uguali a zero).
Questa scelta evita il ricorso a procedure algebriche per determinare un vertice iniziale nel caso in cui il numero di variabili decisionali sia tanto elevato da sconsigliare una ricerca per via grafica di tale soluzione.
Normalmente è possibile scegliere l' origine quando tutte le variabili decisionali sono vincolate ad assumere solo valori nonnegativi, poiché l 'intersezione delle frontiere dei rispettivi vincoli rende l'origine un vertice. Questo punto è un vertice ammissibile a meno che
esso non violi uno o più vincoli funzionali . Se è non ammissibile, sono necessarie speciali
procedure, descritte nel Paragrafo 4.6, per determinare un vertice iniziale.
La successiva idea risolutiva riguarda la scelta di un vertice ammissibile migliore
ogni iterazione.
a
Idea risolutiva 4: per un vertice qualsiasi risulta molto più veloce, da un punto di
vista computazionale, ottenere informazioni sui vertici adiacenti che sugli altri vertici . Di conseguenza, ogni volta che il metodo del simplesso esegue un'iterazione per
muoversi dal vertice corrente verso uno migliore, esso sceglie sempre un vertice ammissibile adiacente a quello corrente. Nessun altro vertice viene considerato. Conseguentemente l'intero percorso seguito per raggiungere una eventuale soluzione ottima si snoda lungo gli spigoli della regione ammissibile.
È ora importante considerare quale vertice adiacente scegliere a ogni iterazione.
Idea risolutiva 5: dopo avere identificato il vertice ammissibile corrente, il metodo
del simplesso esamina ciascuno degli spigoli della regione ammissibile che si originano da questo punto. Ognuno di questi spigoli conduce a un vertice adiacente situato all'altra estremità del segmento. Il metodo del simplesso non calcola esplicitamente il vertice adiacente; esso identifica, invece, semplicemente il tasso di miglioramento di Z che potrebbe essere ottenuto muovendosi lungo lo spigolo. Tra gli spigoli che presentano un tasso positivo di incremento di Z, esso sceglie di muoversi lungo quello con il tasso di miglioramento maggiore. L'iterazione è completata determinando il vertice ammissibile adiacente alla parte opposta di questo spigolo e quindi rinominando questo vertice adiacente come il vertice corrente cui applicare il test
di ottimalità e (se necessario) come punto di partenza per l' iterazione successiva.
Alla prima iterazione dell'esempio considerato, lo spostamento dal punto (0, O) lungo lo
spigolo corrispondente all 'asse x 1 comporta un tasso di miglioramento in Z pari a 3 (Z cresce di 3 unità per ogni incremento unitario di x 1) , mentre muovendosi lungo lo spigolo
corrispondente all 'asse x 2 si ottiene un tas o di incremento per Z pari a 5 (Z cresce di 5
unità per ogni incremento unitario di x 2 ), co ì la decisione è di spostarsi lungo il secondo
spigolo. Alla seconda iterazione, l'unico spigolo uscente dal punto (0, 6), che produce un
tasso positivo di miglioramento per Z, è quello che onduce al punto (2, 6), così la successiva decisione è di spostarsi lungo questo spigolo.
4.2
4.2
SOLUZIONE PER Il METODO DEL SIMPLESSO
81
L' ultima idea risolutiva chiarisce come il test di ottimalità può essere eseguito in maniera
efficiente.
Idea risolutiva 6: l'idea risolutiva 5 descrive la maniera in cui il metodo del simplesso esamina ognuno degli spigoli della regione anunissibile che si originano dal
vertice con·ente. Questo esame porta velocemente alla detenninazione del tasso di
miglioramento per Z che si otterrebbe spostandosi lungo tale spigolo nella direzione
che porta a vertice ammissibile adiacente che si trova all'altra estremità. Un tasso di
miglioramento positivo per Z implica che il vertice adiacente è migliore di quello
corrente, mentre un tasso negativo indica che il vertice adiacente è peggiore. Di
conseguenza, il test di ottimalità consiste semplicemente nel controllare se esiste
uno spigolo per il quale, spostandosi lungo di esso, si produce un tasso positivo di
miglioramento per Z. Se nessuno degli spigoli soddisfa tale condizione, allora il vertice corrente è una soluzione ottima.
Nell ' esempio, spostandosi lungo entrambi gli spigoli che partono dal punto (2 , 6) si ottiene una diminuzione dei valore di Z. Dato che si vuole massimizzare la funzione Z, questo
porta immediatamente alla conclusione che (2 , 6) è la soluzione ottima.
4.2
DETERMINAZIONE DELLA SOLUZIONE INIZIALE PER IL METODO
DEL SIMPLESSO
Il Paragrafo 4. 1 ha messo in evidenza i concetti geometrici su cui si fonda il metodo del
simplesso. Questo algoritmo viene normalmente eseguito con l'ausilio di un computer e,
di conseguenza, è necessario tradurre le procedure concettualmente geometriche in procedure algebriche. In questo paragrafo viene introdotto il linguaggio algebrico dei metodo
del simplesso mettendolo in relazione con i concetti espressi nel precedente paragrafo.
La procedura algebrica si basa sulla risoluzione di un sistema di equazioni. Di conseguenza il primo passo nell ' inizializzazione del metodo del simplesso è guello di convertire i vincolifunzionali di disuguaglianza in equivalenti vincoli di uguaglianza. (I vincoli
di nonnegatività restano espressi come disuguaglianze in quanto sono trattati separatamente). Questa conversione è realizzata introducendo le variabili slack (scarto) . Per
esemplificare il concetto, si consideri il primo vincolo funzionale nell ' esempio Wyndor
Glass Co. del Paragrafo 3 .l
Xt :::;
4
La variabile slack per questo vincolo è definita come
X3
=
4 - x1
che rappresenta lo scarto tra la quantità a sinistra e i) tennine noto a destra nella disuguaglianza. Così,
Data questa equazione, x 1 :::; 4 se e solo se 4 - x 1 = x 3 ~ O. Pertanto, il vincolo originale
x 1 :::; 4 è comp letamente equivalente alla coppia di vincoli
Xt
+ X3
= 4
e
X3 ~
0
Dopo l'introduzione delle variabili slack per gli altri vincoli funzionali , il modello originario di progranunazione lineare (mostrato sulla sinistra a pagina successiva) può essere
adesso sostituito dal modello equivalente (chiamato forma aumentata dei modello) mostrato sulla destra:
82
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE liNEARE
Forma originale del modello
Forma aumentata del modello
Mass imizzare Z = 3x 1 + 5x2
soggetto a
3x 1
Massimi zzare
soggetto a
:s 4
( l)
2r2 :s !2
(2)
+ 2 r2 :s 18
(3)
e
+ XJ
xl
2xz
3xl
+ 2rz
4
12
+x.
+X;= 18
e
.r2 2:
O
.\j 2:
o
per j = l , 2, 3, 4, 5
Anche se entrambe le forme rappresentano esattamente lo stesso problema, la nuova forma è molto più conveniente ai fini della manipolazione algebrica e per la ricerca di vertici. Questa viene denominata forma aumentata (augmentedform) del problema perché la
forma originale è stata aumentata introducendo variabili supplementari necessarie per
l'applicazione del metodo del simplesso.
Se una variabile slack è uguale a zero nella soluzione corrente, allora questa soluzione
si trova sulla frontiera per il vincolo funzionale corrispondente. Un valore maggiore di zero indica che la soluzione si trova nella zona ammissibile rispetto alla frontiera di tale vincolo, mentre un valore minore di zero indica che la soluzione si trova nella zona non ammissibile.
Alla forma originale del problema si applica la terminologia usata nel Paragrafo 4.1
(vertici ecc). Introduciamo ora la corrispondente terminologia per la forma aumentata.
Una soluzione aumentata (augmented solution) è una soluzione per la quale alle
variabili originali (le variabili decisionali) sono aggiunte le variabili slack.
Per esempio, aumentando la soluzione (3 , 2) nell 'esempio si ottiene la soluzione aumentata (3 , 2, l , 8, 5) poiché che i valori corrispondenti delle variabili slack sono x 3 = l,
X4 = 8 e xs = 5.
Una soluzione di base (basic solution) è un vertice cui sono aggiunti i corrispondenti valori delle variabili slack.
Si consideri, per esempio, il vertice non ammissibile (4, 6) nella Figura 4.1. Aumentando
tale punto con i valori risultanti delle variabili scarto x 3 = O, x 4 = O e x 5 = -6 si ottiene
la soluzione di base corrispondente (4, 6, O, O, -6).
Il fatto che i vertici (e quindi le so luzioni di base) possano essere sia ammissibili sia
non ammissibili implica la seguente definizione:
Una soluzione di base ammissibile (Basic Feasible Solution , BFS) è un vertice ammissibile cui sono aggiunti i corrispondenti valori delle variabili slack.
Così, il vertice (0, 6) nell 'esempio corrisponde alla BFS (0, 6, 4, O, 6) per il problema nella forma aumentata.
L'unica differenza tra le soluzioni di base e vertici (o tra BFS e vertici ammissibili)
consiste nel fatto che i valori delle variabili slack siano inclusi o meno.
Per ogni soluzione di base, il corrispondente vertice è ottenuto semplicemente eliminando le variabili slack. Di conseguenza, le relazioni geometriche e algebriche tra queste
due soluzioni sono molto strette come descritto nel Paragrafo 5.1.
Poiché i termini "soluzione di base" e "soluzione di base ammissibile" giocano un
ruolo estremamente importante nel Yocabolario tradizionale della programmazione lineare, risulta necessario chiarire le loro proprietà algebriche. Per la forma aumentata dell'esempio si può notare che il sistema dei \incoli funzionali è costituito da 5 variabili e tre
equazioni e
numero di variabili - numero di equazioni= - - 3 = 2.
4.2
SOlUZIONE PER Il METODO DEl SIMPlESSO
83
Il sistema presenta, quindi, 2 gradi di libertà dato che a due delle variabili possono essere
assegnati valori arbitrari in modo da risolvere un sistema di tre equazioni in tre incognite 3 .
Come valore arbitrario il metodo del simplesso usa zero. In questo modo due delle variabili (chiamate variabili non di base) sono poste uguale a zero e la soluzione per il sistema
di tre equazioni e tre variabili (chiamate variabili di base) è una soluzione di base. Queste
proprietà sono riassunte nelle seguenti definizioni generali.
Una soluzione di base gode delle seguenti proprietà.
l. Ogni variabile è una variabile di base oppure una variabile non di base.
2. Il numero delle variabili di base è uguale al numero di vincoli funzionali (ora equazioni). Di conseguenza, il numero delle variabili non di base è uguale al numero delle variabili meno il numero dei vincoli funzionali .
3. Le variabili non di base sono poste uguali a zero.
4. I valori delle variabili di base sono le soluzioni del sistema di equazioni (vincoli funzionali nella forma aumentata). L'insieme delle variabili di base è spesso indicato come base.
5. Se la variabili di base soddisfano i vincoli di non negatività, la soluzione di base è una
BFS.
Per comprendere meglio queste definizioni, si consideri nuovamente la BFS (0, 6, 4, O,
6). Questa soluzione è stata ottenuta in precedenza a partire dal vertice ammissibile (0, 6).
Tuttavia, un altro modo per ottenere la stessa soluzione è quello di scegliere x 1 e x 4 come
variabili non di base il cui valore viene quindi posto uguale a zero. Le tre equazioni determinano, quindi, i valori per le tre variabili di base rispettivamente x 3 = 4, x 2 = 6 e
xs = 6, come mostrato di seguito (con le variabili di base in grassetto):
X!
(l)
(2)
(3)
XJ
2x2
3x1 + 2x2
=
+xJ
+ x4
4
= 12
+ x s = 18
O e x 4 = O e quindi
X3 = 4
X2 = 6
xs = 6
=
Poiché ciascuna delle tre variabili di base risulta non negativa, la soluzione di base (0, 6,
4, O, 6) è una BFS.
Così come certe coppie di vertici sono adiacenti, anche le coppie di BFS corrispondenti sono dette adiacenti. Inoltre esiste un semplice metodo per determinare quando due
BFS sono adiacenti .
Due BFS sono adiacenti se tutte le variabili non di base tranne una sono uguali. Questo implica, naturalmente, che le variabili di base tranne una sono le stesse, anche se con valori numerici differenti.
Di conseguenza, spostarsi dalla BFS corrente verso una adiacente implica che una variabile non di base diviene di base e una variabile non di base diviene una variabile di base
(aggiustando ovviamente i valori delle variabili di base per continuare a soddisfare il sistema di equazioni).
Per illustrare il concetto di BFS adiacenti, si consideri una coppia di vertici ammissibili
adiacenti in Figura 4.1: (0, O) e (0, 6). Le loro soluzioni aumentate, (0, O, 4, 12, 18) e (0,
6, 4, O, 6) sono automaticamente BFS adiacenti. Tuttavia, non è necessario fare riferimento alla Figura 4.1 per giungere a questa conclusione. Un altro indicatore è che le loro variabili non di base, (x 1, x 2) e (x 1, x 4) sono le stesse tranne una: x2 è stata sostituita da x4 .
Di conseguenza, lo spostamento da (0,.0, 4, 12, 18) a (0, 6, 4, O, 6) comporta il passaggio
di x 2 da variabili non di base a variabile di base e viceversa per x4 .
3
Questo metodo per la determinazione del numero dei gradi di libertà per un sistema di equazioni è valido fin
tanto che il sistema non includa equazioni ridondanti. Questa condizione è sempre verificata per sistemi di
equazioni formati da vincoli funzionali nella forma aumentata di un modello di programmazione lineare.
CAPITOLO 4
84
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
Quando si afrrontano problemi nella forma aumentata è conveniente considerare e manipolare allo stesso tempo l'equazione che definisce la funzione obiettivo e i nuovi vincoli
funzionali. Quindi, prima di iniziare il metodo del simplesso, è necessario tradurre il problema nell a forma equivalente:
massimizzare Z,
soggetto a
(O)
Z- 3x 1 - Sxz
( l)
(2)
(3)
x,
o
+ x3
2x 2
4
=
+ x4
3x 1 + 2xz
+xs
12
= 18
e
x1
~
O, per j = l, 2, ... , 5
Come si può notare è come se l' equazione (O) fosse, in realtà, uno dei vincoli originali,
ma poiché si trova già nella forma di uguaglianza non è richiesta nessuna variabile slack
aggiuntiva. L'aggiunta di una equazione in più implica l' introduzione di una incognita in
più (Z) al sistema di equazioni. Quindi, quando si usano le equazioni (l), (2) e (3) per ottenere, come descritto in precedenza, una soluzione di base, allo stesso tempo viene usata
l'equazione (O) per determinare il valore di Z.
Fortunatamente, il modello per il problema Wyndor Glass Co. è già nellaforma standard prevista e tutti i suoi vincoli funzionali sono caratterizzati, nella parte destra, da termini b; nonnegativi. Nel caso in cui ciò non si verifichi, sarà necessario apportare le necessarie modifiche prima che il metodo del simplesso possa essere applicato. Questi dettagli sono rimandati nel Paragrafo 4.6 mentre adesso l'attenzione viene focalizzata sul metodo del simplesso vero e proprio.
4.3
L'ALGEBRA DEL METODO DEL SIMPLESSO
In questo paragrafo si continuerà a fare riferimento all'esempio del Paragrafo 3.1 rielaborato alla fine del Paragrafo 4 .2. Per analizzare le relazioni tra i concetti geometrici e quelli
algebrici del metodo del simplesso, nella Tabella 4.2 viene descritto come il metodo del
simplesso risolva l'esempio in questione sia da un punto di vista geometrico sia da un
punto di vista algebrico. Il punto di vista geometrico (presentato nel Paragrafo 4.1) è basa"
to sullaforma originale del modello (senza variabili slack), così, esaminando la seconda
colonna della tabella, si può fare riferimento alla Figura 4.1. Occorre, invece, fare riferimento alla forma aumentata del modello presentata alla fine del Paragrafo 4.2 quando si
esamina la terza colonna della tabella.
Vengono adesso descritti i dettagli contenuti nella terza colonna della Tabella 4.2.
lnizializzazione
La scelta di x 1 e x 2 come variabili 11011 di base (le variabili poste uguali a zero) per la BFS
iniziale è basata sull 'idea risolutiva 3 del Paragrafo 4.1. Questa scelta permette di determinare senza fatica una soluzione per le mriabili eli base (x 3 , x 4 , x 5 ) nel seguente sistema di
equazioni (dove le variabili di base sono mostrate in grassetto):
(!)
(2)
(3)
x 1 = O e x 2 = Oquindi
x,
+ x3
2x z
3x 1 + 2x2
+ x4
+ x-
= -l
= 12
=l
Per cui, la BFS iniziale è (0, O, 4, 12. l 1.
=
=
4
12
x - = 18
X3
X4
4.3
85
L'ALGEBRA DEL METODO DEL SIMPLESSO
TABELLA 4.2 Interpretazione geometrica e algebrica del metodo del
simplesso per il problema Wyndor Glass Co.
Sequenza
del passi
Interpretazione geometrica
Interpretazione algebrica
lnizializzazione
Scegliere (0,0) come vertice iniziale
Test di ottimalità
Il punto corrente non è ottimo perché
Scegliere x1 e x2 come variabili non di
base(= O) per la BFS iniziale (0, O, 4,
12, 18).
Il punto corrente non è ottimo poiché
incrementando una variabile non di
base (x 1 o x2 ) il valore di Z cresce.
muovendosi lungo lo spigolo
partendo da (0,0) il valo re di Z cresce.
lterazione l
Passo l
Muoversi lungo lo spigolo
corrispondente all'asse x2
Passo 2
Fermarsi quando viene raggiunta la
frontiera di un vincolo (2x2 = 12).
Passo 3
Trovare l'intersezione della nuova
coppia di vincoli: (0, 6)
è il nuovo vertice ammissibile.
Test di ottimalità
Il punto corrente non è ottimo poiché
muovendosi lungo il bordo da (0, 6)
a destra il valore di Z cresce
lterazione 2
Passo l
Muoversi a destra lungo questo
spigolo.
Pa sso2
Passo 3
Test di ottimalità
Fermarsi quando viene raggiunta la
frontiera di un vincolo
(3xl + 2x2 = 18).
Trovare l'intersezione della nuova
coppia di vi ncoli: (2, 6) è il nuovo
vertice ammissibile.
Il punto (2, 6) è ottimo, perché
muovendosi lungo il bordo da (2, 6)
il valore di Z decresce.
Incrementare x2 aggiustando nel
frattempo i va lori delle altre variabili in
modo da soddisfare il sistema di
equazioni.
Fermarsi quando la prima variabile di
base (x 3 , x4 , o x5 ) diminuisce fino a
raggiungere zero (x.).
Considerando x2 come variabile di base
e x4 come variabile non di base,
risolvere il sistema di equazioni: (0, 6,
4, O, 6) è la nuova BFS.
Il punto corrente non è ottimo perché
incrementando una va riabile non di
base (x1 ) il valore di Z cresce.
Incrementare x1 aggiustando nel
frattempo i valo ri delle altre variab ili in
modo da soddisfare il sistema di
equazioni.
Fermarsi quando la prima variabile di
base Cx2, X3, o xs) diminuisce fino a
zero (x 5 ).
Considerando x1 come variabi le di base
e x5 come variabile non di base,
risolvere il sistema di equazioni: (2, 6,
2, O, O) è la nuova BFS.
(2, 6, 2, O, O) è una soluzione ottima
perché aumentando una delle variabili
non di base (x4 o x5 ) il valore di Z
decresce.
Si può notare che questa soluzione può essere letta immediatamente dato che ogni equazione ha una sola variabile di base, il cui coefficiente è uguale a l e questa non appare in
nessuna altra equazione. Si vedrà successivamente che quando l' insieme delle variabili di
base cambia, il metodo del simplesso utilizza una procedura algebrica (metodo di eliminazione di Gauss) per convertire le equazioni in questa stessa forma in modo da leggere facilmente ogni successiva BFS. Questa forma è chiamata forma canonica.
Test di ottimalità
La funzione obiettivo è Z = 3x 1 + 5x2 così Z = O per la BFS iniziale. Poiché, in questa
funzione, nessuna delle variabili di base (x 3 , x 4 , x 5 ) ha coefficiente diverso da zero, i coefficiente delle variabili non di base (x 1, x2 ) indicano il tasso di miglioramento in Z prodotto da un aumento, eventuale, del valore di tali variabili dal valore zero corrente (i valori
delle variabili di base sono determinati in modo da soddisfare il sistema di equazioni). 4
4
Si noti che tale interpretazione dei coefficienti delle variabili x1 è basata su l fatto che queste variabili figurino
sulla parte destra, Z = 3xl + Sx2 . Quando queste variabili sono portate nella parte sinistra dell 'equazione (0),
Z - 3xl - Sx2 = O, il segno dei coefficienti cambia.
86
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
Questi tassi di miglioramento (3 e 5) sono positivi. Quindi, basandosi sull'idea risolutiva
6 del paragrafo 4.1 , si può concludere che (0, O, 4, 12, 18) non è una soluzione ottima.
Per ogni BFS esaminata nelle iterazioni successive, almeno una variabile di base avrà
un coefficiente diverso da zero nella funzione obiettivo. Di conseguenza, il test di ottimalità userà la nuova equazione (O) per riscrivere la funzione obiettivo mediante le variabili
non di base, come sarà mostrato in seguito.
Stabilire la direzione dello spostamento
(passo 1 di una singola iterazione)
Incrementare il valore di una variabile non di base rispetto al valore zero corrente
(adattando i valori delle variabili di base in modo da continuare a soddisfare il sistema di
equazioni) corrisponde a muoversi lungo lo spigolo che si origina dal vertice corrente.
Basata sulle idee risolutive 4 e 5 del Paragrafo 4.1, la scelta di quale variabile non di base
aumentare è fatta come segue:
aumentare x 1?
tasso di miglioramento per Z = 3.
aumentare x 2 ?
tasso di miglioramento per Z = 5.
5
> 3, così si sceglie di incrementare x2 .
Come indicato in seguito, l'incognita x 2 viene chiamata variabile entrante in base pet l' iterazione l.
Per una qualunque iterazione del metodo del simplesso, l'obiettivo del passo l è quello di scègliere una variabile non di base da incrementare rispetto al valore zero (i valori delle variabili
di base sono determinati in modo da continuare a soddisfare il sistema di equazioni). Tale incremento farà sì che questa variabile non di base diventi una variabile di base per la successiva BFS. Per tale motivo questa variabi le è chiamata variabile entrante (in base).
Criterio di arresto (passo 2 di una singola iterazione)
Fino a che punto incre~entare la variabile entrante x 2 è l'oggetto del passo 2. All'incremento di x 2 corrisponde un aumento di Z, per cui l'obiettivo è procedere quanto più possibile, senza uscire dalla regione ammissibile. Il requisito di soddisfare i vincoli funzionali
nella forma aumentata (mostrata sotto) implica che, incrementando x 2 (mantenendo la va= 0), cambiano i valori di alcune delle variabili di base, come moriabile non di base
strato sulla destra.
x,
x, =O e quindi
(l)
Xi
+x3
(2)
2x2
(3)
3x 1 + 2xz
+x4
= 4
= 12
+ x s = 18
X3
·=
4
X4 = 12- 2xz
xs = 18 - 2xz
>
L'altro requisito per l'ammissibilità è che tutte le variabili siano nonnegative. Le variabili
(compresa la variabile entrante) sono nonnegative, ma è necessario verificare firio a che
punto x 2 può essere aumentato senza violare i vincoli di nonnegatività per le variabili di
5
base.
X3 =
4
2:: 0
==? nessun limite superiore su x 2
12
=* xz :::; 2 = 6 Xs = 18 - 2xz 2:: O
5
..
rrurumo valore
18
=?xz -<-=9
2
Ovviamente la variabile Z può assumere valori po ili\i o negati>i.
4.3
l'ALGEBRA DEL METODO DEL SIMPLESSO
Così, x 2 può essere incrementata fino al valore 6, e a quel punto x4 si è ridotta a O.
Aumentare x 2 oltre 6 rende x 4 negativo, violando in tal modo l'ammissibilità.
Questi calcoli costituiscono quello che è noto come il test del minimo rapporto.
L'obiettivo di questo test è determinare quale variabile di base assume per prima il valore
zero all'aumentare del valore della variabile entrante. Si può immediatamente escludere la
variabile di base in tutte quelle equazioni in cui il coefficiente della variabile entrante sia
zero o negativo, dato che una simile variabile non diminuirebbe all'aumentare della variabile entrante (questo è quello che accade con x 3 nell'equazione(!) dell'esempio). Tuttavia, per ogni equazione in cui il coefficiente della variabile entrante è strettamente positivo, questo test calcola il rapporto tra la quantità a destra e il coefficiente della variabile entrante. La variabile di base nell 'equazione con il minimo rapporto è quella che raggiunge
per prima il valore Oali 'aumentare del valore della variabile entrante.
A ogni iterazione del metodo del simplesso, il passo 2 usa il test del minimo rapporto per determinare quale variabile di base raggiunge per prima il va lore O all 'aumentare del valore della variabile entrante. Riducendosi il va lore a zero, questa variabile di base diventerà una variabile non di base per la successiva BFS. Dunque, questa variabile è chiamata la variabile
uscente (dalla base) per l'iterazione con·ente (poiché essa lascia la base).
Nell'esempio, x 4 è la variabile di base uscente all'iterazione l.
ri/J
Ottenere la nuova BFS (passo 3 di una singola iterazione}
Aumentare x2 = O fino a ottenere x 2 = 6 detennina lo spostamento dall a BFS iniziale sulla sinistra verso la nuova BFS sulla destra.
Nuova BFS
BFS iniziale
Variabili non di base
Xl=
Variabili di base
X3
O,
X2
=o
= 4,
X4
= 12,
Xs
= 18
XJ
=O,
X4
= o
X3
= ?,
X2
= 6,
Xs
= 7
L'obiettivo del passo 3 è di trasformare il sistema di equazioni in una forma più conveniente (forma canonica) in modo da condurre il test di ottimalità e (se necessario) l'iterazione successiva a partire da questa nuova BFS. Durante il procedimento, questa forma
permetterà di individuare i valori di x 3 e x 5 .
Il sistema originale completo delle equazioni in cui le nuove variabili di base sono mostrate in grassetto (con Z che gioca il ruolo di variabile di base nell 'equazione relativa alla
funzione obiettivo): è riportato di seguito
(O)
(!)
Z - 3xl - Sx2
(3)
+x3
XJ
(2)
2x2
3xl
=
+ 2x2
o
4
=
= 12
+x4
+xs
= 18
Così, nell 'equazione (2), x 2 ha sostituito x 4 come variabile di base. Per riso lvere il sistema
di equazioni rispetto alle incognite Z, x 2 , x 3 e x 5 è necessario eseguire alcune operazioni
algebriche elementari in modo da avere la sequenza attuale dei coefficienti di x 4 (0, O, l,
O) come nuovi coefficienti di x 2 . Si può utilizzare uno dei due tipi di operazioni algebriche elementari:
l. moltiplicare (o dividere) un'equazione per una costante diversa da zero;
2. aggiungere (o sottrarre) un multiplo di un'equazione a (da) un'altra equazione.
Nella fase di preparazione all'esecuzione di queste operazioni, si può notare che i coefficienti di x2 nel suddetto sistema di equazioni sono, -5, O, 2 e 2, mentre si vuole che questi coefficienti siano, rispettivamente, O, O, l e O. Per trasformare nel! 'equazione (2) il
88
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
coefficiente 2 in l, si usa il primo tipo di operazione algebrica elementare dividendo
l'Equazione (2) per 2 in modo da ottenere
l
(2)
X2
+ 2 x4
= 6
Per trasformare i coefficienti -5 e 2 in O è necessario usare il secondo tipo di operazione
algebrica elementare. In particolare, la nuova equazione (2) viene moltiplicata per 5 e
sommata all'equazione (O) mentre la nuova equazione (2) viene moltiplicata per 2 e sottratta dali 'equazione (3). Il nuovo sistema di equazioni risultante è
(O)
(l)
Z-
= 30
+-x4
2
Xi
(2)
(3)
5
3xi
4
+ x3
l
+-x4
2
X2
6
x4 +xs =
3xi
6
Dato che Xi = O e x4 = O, le equazioni in questa forma forniscono immediatamente la
nuova BFS (xi , x2, x3, x 4 , xs) = (0, 6, 4, O, 6) e Z = 30.
Questa procedura per ottenere la soluzione di un sistema di equazioni lineari è chiamata
metodo di eliminazione di Gauss-Jordan, o eliminazione gaussiana. 6 Il concetto chiave
per questo metodo è l'uso di operazioni algebriche elementari per ridurre il sistema di
equazioni alla forma canonica, dove ogni variabile di base è stata eliminata da tutte le equazioni tranne una (la "sua" equazione) e in quella equazione ha coefficiente + l.
Test di ottimalità per la nuova BFS
L'equazione (O) fornisce il valore della funzione obiettivo in termini delle attuali variabili
non di base
Incrementando a partire dal valore zero ciascuna di queste variabili non di base .
(aggiustando nello stesso tempo il valore delle variabili in modo da continuare a soddisfare il sistema di equazioni) si avrà come risultato lo spostamento verso una delle due BFS
adiacenti. Poiché Xi ha coefficiente positivo, l'incremento di Xi porterà a una BFS adiacente migliore della BFS attuale e, pertanto, la soluzione corrente non è ottima.
lterazione 2 e soluzione ottima risultante
D ato che Z = 30 + 3Xi
-
5
Z puo' essere aumentata mcrementan
.
do
2 x 4,
Xi,
ma non x4 . D.1
conseguenza, il passo l sceglie X i come variabile entrante.
Per il passo 2, il sistema di equazioni attuale fornisce le seguenti informazioni che specificano qual è il massimo incremento possibile per xi (lasciando fisso x 4 = 0):
4
l
=}Xi< -
-
=
4
'* nessun limite
xs =
6
6 - 3Xi 2 O
=* Xi
::::;
6
3
= 2-
uperiore u Xi
. .
l
mmuno "a ore
In realtà ci sono alcune differenze tecniche tra il metOdo
gaussiana, ma questa distinzione non sarà qui fana
eliminazione di Gauss-Jordan e l'eliminazione
4.4
4.4
Il METODO DEL SIMPLESSO IN FORMA TABELLARE
89
Quindi, il test del minimo rapporto indica che x 5 è la variabile di base uscente.
Nel passo 3, con x 1 che sostituisce x 5 come variabile di base, vengono eseguite le necessarie operazioni algebriche elementari sull ' attuale sistema di equazioni per riprodurre
il corrente schema dei coefficienti di x 5 (0, O, O, l) come nuovi coefficienti di x,. Ciò genera il seguente nuovo sistema di equazioni:
(O)
r
z
l
(l)
l
X3 + - x4 - - xs =
3
3
(2)
(3)
xs = 36
+ 2./4 +
xz
x,
l
6
+ - x4
2
l
2
l
--x4 + - xs =
3
3
2
Quindi, la successiva BFS è (x 1, x 2, x 3, x 4, x 5) = (2, 6, 2, O, 0), in corrispondenza della
quale si ottiene Z = 36. Per applicare il test di ottimalità a questa nuova BFS, l'equazione
(O) viene usata per esprimere Z in termini delle correnti variabili non di base
3
Z = 36- -X4
2
- X5
Aumentando x 4 o di x 5 si avrebbe un decremento di Z, così nessuna BFS adiacente è migliore di quella corrente. Di conseguenza, basandosi sull ' idea risolutiva 6 del Paragrafo
4.1 , si può concludere che la BFS attuale è una soluzione ottima.
In termini della forma originale del problema (senza variabili slack), la soluzione ottima è x 1 = 2, x 2 = 6 in corrispondenza della quale si ottiene Z = 3x 1 + 5x2 = 36.
Il prossimo paragrafo contiene una ricapitolazione del metodo del simplesso in una più
conveniente forma tabellare.
4.4
IL METODO DEL SIMPLESSO IN FORMA TABELLARE
La forma algebrica del metodo del simplesso presentata nel Paragrafo 4.3 può essere la
migliore per comprendere la logica che sta alla base dell'algoritmo. Tuttavia, essa non
rappresenta modo più conveniente per eseguire i calcoli richiesti. Quando si ha la necessità di risolvere un problema a mano, è raccomandata la forma tabellare descritta in questo
paragrafo. 7
La forma tabellare del metodo del simplesso memorizza solamente le informazioni necessarie, vale a dire, (l) i coefficienti delle variabili, (2) i termini noti delle equazioni e (3)
le variabili di base presenti in ciascuna equazione. Ciò permette di non dover scrivere le
variabili in ognuna delle equazioni, ma ciò che è più importante è che questa forma permette di evidenziare i valori coinvolti nei calcoli aritmetici e di annotare in modo compatto le operazioni fatte.
La Tabella 4.3 confronta la forma algebrica (sulla sinistra) e la forma tabellare (sulla
destra) del sistema di equazioni iniziale per il problema Wyndor Glass Co.; la tabella sulla
destra è chiamata tableau. La variabile di base per ciascuna equazione è mostrata in grassetto sulla sinistra nella prima colonna del tableau [sebbene solo le variabili x1 possano essere variabili di base o non di base, Z gioca il ruolo di variabile di base per l'equazione
(0)]. Tutte le variabili non elencate in questa colonna, detta delle variabili di base (x 1, x 2 ) ,
sono automaticamente variabili non di base. Dopo aver posto x 1 =O e xz =O, l'ultima
colonna a destra fornisce la soluzione per le variabili di base, cosicché la BFS iniziale è
(x 1, x 2 , x 3 , x4 , x 5 ) = (0, O, 4, 12, 18) in corrispondenza della quale Z = O.
7
Nel Paragrafo 5.2 verrà presentata una fo rma più pratica per l'esecuzione automatica su computer.
90
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
TABELLA 4.3 Sistema iniziale di equazioni per il problema Wyndor Glass Co.
(a) Forma algebrica
(b) Forma tabellare
Variabili
di base
(O) Z - 3x1
(l)
xl
(2)
(3)
-
Sx2
2x2
3x1 + 2x2
+
XJ
= o
= 4
= 12
+ x4
+ x 5 = 18
l
XJ
x4
x5
Coefficiente di:
Eq.
(O)
(l)
(2)
(3)
,Z
Xt
Xz
X3
x4
Xs
l
-3
l
-5
o
o
o
o
2
2
o
o
o
o
o
o
3
o
l
o
o
l
o
l
Termini
noti
o
4
12
18
La forma tabellare del metodo del simplesso utilizza un tableau (tabella) per mostrare in maniera compatta il sistema di equazioni da cui si ottiene la BFS corrente. Per tale soluzione,
ogni variabile nella colonna più a si nistra è uguale al corrispondente valore nella colonna più
a destra e le variabi li non elencate sono uguali a zero. Quando viene eseguito il test di ottimalità o una iterazione, gli unici va lori importanti sono quelli sulla destra della colonna Z. 8 Il termine riga indica una 1iga di valori alla destra della colonna Z (compreso il valore nell'ultima
colmma) e la riga i corrisponde all'equazione (i).
La forma tabellare del metodo del simplesso v iene riassunta di seguito e, allo stesso tempo, viene descritta brevemente la sua applicazione al prob lema Wyndor Glass Co.
Occorre tenere presente che la logica è quella usata nella fom1a algebrica presentata nel
precedente paragrafo. La sola cosa che è stata modificata è la modalità di rappresentazione tanto del sistema di equazioni attuale quanto delle successive iterazioni (in più, il test
di ottimalità e i passi l e 2 di una singola iterazione potranno esser svolti con maggiore
semplicità).
Riassunto del metodo del simplesso (e iterazione 1 per l'esempio)
Inizializzazione. Introdurre le variabili slack. Selezionare le variabili decisionali da considerare come variabili non di base iniziali (da porre uguali a zero) e le variabili slack come variabili di base iniziali (fare riferimento al Paragrafo 4.6 per gli aggiustamenti necessari se il modello non è in forma standard - massimizzazione, solo vincoli funzionali del
tipo :::; e vincoli di nonnegatività- o se vi sono valori di bi negativi).
Per l 'esempio considerato : questa selezione genera il tableau iniziale mostrato nella
parte (b) della Tabella 4.3, in cui la BFS iniziale è (0, O, 4, 12, 18).
Test di ottimalità. La BFS attua le è ottima se e solo se tutti i coefficiente nella riga O sono non negativi (2: 0). Se questa condizione è verificata, l'algoritmo si arresta; altrimenti
bisogna procedere con l'iterazione successiva per ottenere una nuova BFS; questo comporta la trasformazione di una variabile non di base in una variabile di base (passo l) e viceversa (passo 2) e quindi la determinazione della nuova soluzione (passo 3).
Per l'esempio considerato: così come da Z = 3x 1 + 5x2 si ricava che incrementando
oppure x2, aumenta anche Z e, pertanto, la BFS corrente non è ottima, la stessa conclusione può essere ottenuta dall'equazione Z- 3x 1 - 5x 2 = O. Questi coefficienti -3 e - 5
sono indicati nella riga O della parte (b) nella Tabella 4.3.
x,
""~azione t:PàsoJ' determinare la variabile ~ntrante_st;:lezionando, nell'equazione (0),
la variabile (automaticamente una variabile non di base) con il coefficiente negativo più
grande in valore assoluto (cioè il coefficiente ' ·più negativo"). Mettere in un riquadro la
colonna sotto questo coefficiente (que ta colonna viene detta colonna pivot).
8
Per questo motivo è lecito eliminare l'equazione e le colonne di Z per ridurre la dimensione della tabella del
me un promemoria del fatto che la tabella del
simplesso. Gli autori preferiscono utilizzare queste ro
simplesso mostra il sistema di equazioni corrente e che Z è una delle variabili nell 'equazione (0).
4.4
IL METODO DEL SIMPLESSO IN FORMA TABELLARE
91
Per l 'esempio considerato: il coefficiente più negativo è - 5 corrispondente a x 2 (5 > 3),
per cui la variabile x2 entra in base (questa scel.ta è indicata nella Tabella 4.4 dal riquadro
attorno la colonna x2 sotto - 5).
Passo 2: Determinare la variabile uscente applicando. il test del minimo rapporto.
Test del minimo rapporto:
l.
2.
3.
4.
individuare, nella colonna pivot, ogni coefficiente che è strettamente positivo (> O);
calcolare il rapporto tra i termini noti a destra e questi coefficienti positivi;
identificare la riga con il più piccolo di questi rapporti;
la variabile di base per quella riga è la variabile uscente; sostituire, perciò, tale variabile con quella entrante nella colonna delle variabili di base della successiva tabella del
simplesso.
Inserire questa riga in un riquadro (questa riga viene chiamata la riga pivot). L'elemento
che è contemporaneamente nella riga e nella colonna pivot è detto elemento pivot (o pivot).
Per l 'esempio: i calcoli per il test del minimo rapporto sono mostrati alla destra della
Tabella 4.4. La riga 2 è la riga pivot e x4 è la variabile uscente. Nel successivo tableau
(fare riferimento alla parte inferiore della Tabella 4.5), x 2 sostituisce x4 come variabile di
base per la riga 2.
Passo 3: calcolare la nuova BFS: utilizzando operazioni elementari di riga costruire
un nuovo tableau in forma canonica al di sotto di quello attuale, e quindi ritornare al test
di ottimalità. Le specifiche operazioni elementari di riga che è necessario eseguire sono
elencate di seguito:
"~.
l. dividere la riga pivot per l'elemento pivot..Usare questa nuova riga pivot nei passi 2 e 3;
/\ 2. per ogni altra riga (compresa la riga O) che ha un coefficiente negativo nella colonna pivot, aggiungere a questa riga il prodotto tra questo coefficiente (in valore assoluto) e la
nuova riga pivot;
3. per ogni altra riga che ha un coefficiente positivo nella colonna pivot, sottrarre da questa riga il prodotto di questo coefficiente e la nuova riga pivot.
l
Per l 'esempio : dato che x 2 sta sostituendo x4 come variabile di base, è necessario ricopiare lo schema di coefficienti per x4 (0, O, l , O) presente nel primo tableau come seconda colonna nel nuovo tableau. Per iniziare, dividere la riga pivot (riga 2) per l'elemento pivot
(2), che determina la nuova riga 2 mostrata in Tabella 4.5. Successivamente, aggiungere
alla riga O la nuova riga 2 moltiplicata per 5. Quindi sottrarre dalla riga 3 la nuova riga 2
moltiplicata per 2 (o in modo equivalente, sottrarre dalla riga 3 la vecchia riga 2). Questi
calcoli determinano il nuovo tableau per l'iterazione l mostrata nella Tabella 4.6. La nuova BFS è (0, 6, 4, O, 6), con Z = 30. Quindi si ritorna al test di ottimalità per verificare se
la nuova BFS ottenuta è ottima. Dato che la nuova riga O ha ancora un coefficiente negativo (- 3 per x 1) , la soluzione non è ottima e quindi è necessaria almeno una ulteriore iterazione.
TABELLA 4.4 Applicazione del test del minimo rapporto per determinare la
prima variabile di base uscente per il problema Wyndor Glass Co.
Variabili
di base
Coefficiente di:
Eq.
Rapporto
z
x,
x2
x3
x4
Xs
l
-3
-5
o
l
o
o
o
l
o
o
o
12
-->
o
o
l
18
...... ~
=9
2
x3
(O)
{l)
x4
(2)
o
o
Xs
(3)
o
l
Termini
noti
l
o
3
~
o
4
12
..
2 = 6 <-- m1n1mo
92
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
TABELLA 4.5 Tableau del. simplesso per il problema Wyndor Glass Co. dopo
che la prima riga pivot è divisa dal primo elemento pivot
Iter azione
Variabili
di base
z
o
x4
(O)
(1)
(2)
Xs
(3)
X3
z
Xz
(O)
(1)
(2)
Xs
(3)
x3
1
Coefficiente di:
Eq.
z
x,
x2
x3
x4
Xs
1
-3
-5
o
IO
1
o
o
o
o
o
o
o
o
1
lo
o
o
~[2
~\
G.tM. 'fl~gr
3
1
o
o
o
o
1
o
Termini
noti
o
4
12 ~
18 Q
1
y
~1v 00
COLO"''"A
1
2
o
1
()
o
6
TABELLA 4.6 l primi due tableau per il problema Wyndor Glass Co.
lterazione
Variabili
di base
z
o
z
x,
x2
x3
-5
o
1
-3
1
l o
3
c2_
-3
o
o
x4
(O)
(1)
(2)
Xs
(3)
o
o
o
z
(O)
1
x3
(1)
xz
(2)
xs
(3)
o
o
o
X3
1
Coefficiente di:
Eq.
'()
o
o
G:t
o
o
o
o
1
o
2
1
o
o
o
1
2 - 1
o
4
12
18
1
5
o
1
Xs
o
o
1
2
.: cl
x4
Termini
noti
o
o
o
-1
-- --
l
30
4
'6
-~
6
lterazione 2 per l'esempio considerato e soluzione ottima risultante
La seconda iterazione parte dal secondo tableau (Tabella 4.6) per determinare la BFS successiva. Seguendo le istruzioni per i passi l e 2, x 1 è la variabile entrante e x 5 è la variabile uscente, come mostrato nella Tabella 4.7.
Per il passo 3, si inizia dividendo la riga pivot (riga 3) nella Tabella 4.7 per l'elemento
pivot (3). Successivamente si aggiunge alla riga O la nuova riga 3 moltiplicata per 3.
Quindi si sottrae la nuova riga 3 dalla riga l.
TABELLA 4.7 Passo 1 e 2 dell'iterazione 2 per il problema Wyndor Glass Co.
lterazione Variabili
di base
Coefficiente di:
Eq.
Termini
noti
z
x,
x2
X3
x4
Xs
- 3
o
o
5
2
o
30
l
o
o
4
o
6
l
6
z
(O)
l
X3
(1)
o
11 o
Xz
(2)
o
o
1
o
l
2
Xs
(3)
o
31
o
o
-l
l
Rapporto
± =4
l
l
. .
36 = 2 .- mtmmo
4.5
-5 --s o
()
()
- 7
-1
G
a
i;v o
o
01
o
b
4.5 l LA SCElTA DEllE VARIABili ENTRANTI E USCENTI NEl SIMPlESSO
o. -\-
-~
o
-c;
::.
o ~ o u
lterazione
-)
o
Q
r::r
(}!
93
TABELLA 4.8 Insieme completo dei tableaux per il problema Wyndor Glass Co,.
Variabili
di base
o
z
l
')
z
xl
x2
X3
l
- 3
l
-5
o
Xs
(O)
(l)
(2)
(3)
o
o
o
z
(O)
l
x3
(l)
x3
x4
o
Coefficiente di:
Eq.
x2
(2)
Xs
(3)
o
o
o
z
(O)
x3
o
101
12 1
3
L1J
- 3
o
o
,...-
l
o
o
x4
o
o
l
o
o
5
l
o
2
l
2
- l
Xs
o
o
o
l
o
o
o
Termini
noti
o
4
12
18
30
4
o
l
3
o
o
o
l
o
o
o
(l)
o
o
o
l
3
-3
2
x2
(2)
o
o
l
o
l
2
o
6
x,
(3)
o
l
o
o
-3
l
l
:3
2
2
3
2
l
l
l
l
6
61
36
l
La situazione corrente è mostrata nella Tabella 4.8. La nuova BFS è (2, 6, 2, O, O) con
Z = 36. Procedendo con il test di ottimalità, si trova che questa soluzione è ottima perché
nessuno dei coefficienti nella riga O è negativo, determinando in questo modo la terminazione dell 'algoritmo. Ne risulta che la soluzione ottima per il problema Wyndor Glass Co.
(prima che le variabili slack siano introdotte) è x 1 = 2, x 2 = 6.
Adesso, per verificare che queste due forme del metodo del simplesso sono realmente
equivalenti, si può confrontare la Tabella 4.8 con il lavoro svolto nel Paragrafo 4.3 . Si nota
quindi che la forma algebrica è superiore per apprendere la logica che sta dietro il metodo
del simplesso, ma la forma tabellare organizza il lavoro che deve essere fatto in una forma
considerevolmente più pratica e compatta. Da ora in poi ve!Tà usata la forma tabellare.
4.5
LA SCELTA DELLE VARIABILI ENTRANTI E USCENTI NEL METODO
DEL SIMPLESSO
Nei precedenti paragrafi il lettore può aver notato che nulla si è detto su cosa fare se le varie regole di scelta del metodo del simplesso non conducono a una decisione univoca.
Adesso verranno discussi questi dettagli .
Scelta della variabile entrante
Il passo l di ogni iterazione sceglie, come variabile entrante, la variabile non di base avente il coefficiente negativo con il massimo valore assoluto nell 'equazione (O) cmTente. Si
supponga adesso che due o più variabili non di base abbiano coefficiente negativo uguale
e massimo in valore assoluto. Per esempio, questo potrebbe accadere nella prima iterazione per il problema Wyndor Glass Co. se la sua funzione obiettivo fosse cambiata in
Z = 3x 1 + 3x2, in modo che l' equazione iniziale (O) diventi Z- 3x 1 - 3x2 = O. Come
dovrebbe essere risolta questa difficoltà?
La risposta è che la scelta tra questi concorrenti può essere fatta in modo del tutto arbitrario. L'eventuale soluzione ottima sarà raggiunta, indipendentemente dalla variabile
scelta, e non esiste un metodo per prevedere in anticipo quale scelta condurrà alla soluzio-
94
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
ne in un minor numero di iterazioni. In questo esempio, il metodo del simplesso raggiunge la soluzione ottima (2, 6) in tre iterazioni con x: come prima variabile entrante e in due
iterazioni con la scelta di x 2 come prima variabile entrante
Scelta delle variabili uscenti - Degeneratezza
Si supponga adesso che due o più variabili di base possano essere scelte come variabili
uscenti nel passo 2 di un'iterazione. Questo accade quando due o più dei quozienti considerati sono uguali e uguali al minimo valore. È importante quale sia la variabile scelta?
Dal punto di vista teorico, ciò è molto importante a causa della seguente catena di eventi
che può verificarsi. In primo luogo, tutte le variabili di base che possono essere scelte raggiungono il valore zero simultaneamente al crescere del valore della variabile entrante. Di
conseguenza, quella o quelle non scelte come variabili uscenti assumeranno un valore pari a zero nella nuova BFS (le variabili di base con un valore pari a zero sono chiamate degeneri, e lo stesso termine è applicato alla BFS corrispondente). In secondo luogo, se una
di queste variabili di base degeneri mantiene il suo valore zero fino a quando essa viene
scelta come variabile uscente in una iterazione successiva, anche la variabile entrante corrispondente deve rimanere zero (dato che non può essere aumentata senza rendere negativa la variabile uscente) e pertanto il valore di Z deve rimanere invariato. Terzo, se è possibile per Z rimanere invariata e non aumentare a ogni iterazione, il metodo del simplesso
può entrare in un ciclo ripetendo periodicamente la stessa sequenza di soluzioni anziché
procedere aumentando il valore di Z fino a raggiungere una soluzione ottima. Di fatto, sono stati costruiti artificialmente esempi in cui si può restare intrappolati in cicli di questo
tipo.
Fortunatamente, anche se un ciclo ripetuto infinite volte è teoricamente possibile, è raro che ciò succeda nei problemi reali. Qualora un ciclo dovesse verificarsi, se ne potrebbe
sempre venir fuori cambiando la scelta della variabile uscente. Inoltre, sono state definite
regole speciali9 per risolvere i casi di non univocità della scelta in modo tale che simili cicli possano essere sempre evitati. Tuttavia, queste regole sono frequentemente ignorate
nelle applicazioni reali e non saranno pertanto qui descritte. Sarà sufficiente risolvere questo non univocità in maniera arbitraria senza preoccuparsi delle variabili di base degeneri
che dovessero, eventualmente, risultare.
Nessuna variabile di base uscente - Z illimitata
Nel passo 2 di una generica iterazione esiste un altro risultato che non è stato ancora discusso, ovvero, che non si trovi nessuna variabile idonea per essere una variabile di base
uscente. 10 Questo risultato potrebbe verificarsi se la variabile di base entrante può essere
incrementata all'infmito senz.a che questo comporti valori negativi per nessuna delle variabili di base correnti. Nella forma tabellare questo significa che tutti i coefficienti nella
colonna pivot (escludendo la riga O) sono negativi oppure uguali a zero.
Come illustrato nella Tabella 4.9, questa situazione si presenta nell'esempio mostrato
in Figura 3.6. In questo esempio gli ultimi due vincoli funzionali del problema Wyndor
Glass Co. sono stati eliminati d.al modello. In Figura 3.6 si può notare come x2 può essere
incrementata indefinitamente (aumentando in tal modo la variabile Z indefinitamente)
senza mai lasciare la regione ammi sibile. ella Tabella 4.9 si può notare allora che x 2 è
la variabile entrante ma l'unico coefficiente nella colonna pivot è uguale a zero. Poiché il
test del minimo rapporto usa solo coefficienti che sono maggiori di zero non esiste un metodo per determinare una variabile di base uscente.
Si veda R. Bland, " New Finite Pivoting R ~ for tbe Simplex Method", Mathematics of Operations
Research , 2: 103-107, 1977.
10
Si noti che il caso analogo (nessuna variabil di ozse emronte) non può verificarsi nel passo l di un'iterazione perché il test di ottimalità permetterebbe di t=inare ··algorinno indicando che una so luzione ottima è stata
raggiunta.
9
4.5
95
LA SCELTA DELLE VARIABILI ENTRANTI E USCENTI NEL SIMPLESSO
TABELLA 4.9 Tableau iniziale per il problema Wyndor Glass Co. senza i due
ultimi vincoli funzionali
Variabili
di base
z
x3
Coefficiente di:
Eq.
(O)
(l)
Termini Rappo rto
noti
z
x1
Xz
x3
l
-3
-5
o
o
l
4
o
[Q]
l
Lasciando fisso x1 = O e
incrementando x2 si ha
nessuno
X3
= 4 - l · Xl
-
0 · Xz
=4>0
L'interpretazione di un tableau del tipo mostrato nella Tabella 4.9 è che i vincoli non impediscono che il valore della funzione obiettivo Z possa aumentare all'infinito e il metodo
del simplesso deve arrestarsi con l'indicazione che Z è illimitato. Poiché nella programmazione lineare non è stato ancora scoperto un modo per creare profitti infiniti, il messaggio (per problemi reali) è che è stato commesso un errore! Probabilmente il problema è
stato mal posto omettendo vincoli importanti o dichiarandoli in modo incorretto. Oppure,
può essersi verificato un errore computazionale.
Il caso di soluzioni ottime multiple
Nel Paragrafo 3.2 è stato accennato (in merito alla definizione di soluzione ottima) che
un problema può avere più di una soluzione ottima. Questo fatto è stato illustrato nella
Figura 3.5 cambiando la funzione obiettivo del problema Wyndor Glass Co. in
Z = 3x 1 + 2x2 , cosicché ogni punto del segmento di estremi (2, 6) e (4, 3) è una soluzione ottima. In questo modo, tutte le soluzioni sono una media pesata dei due vertici ottimi
dove i pesi w 1 e w 2 sono valori che soddisfano le relazioni
w1
+ w2 =
l
e
w1
2:: O,
w2
2:: O
.
l
2 fì .
Per esempto, w 1 =
e w2 =
omtscono
3
3
che è una soluzione ottima.
In generale, qualsiasi media pesata di due o più soluzioni in cui i pesi sono non negativi e la cui somma è l viene detta combinazione convessa delle soluzioni. Così, ogni soluzione ottima nell'esempio è una combinazione convessa di (2, 6) e (4, 3).
Questo esempio è tipico dei problemi con più soluzioni ottime.
Come indicato alla fine del Paragrafo 3.2, qualunque problema di programmazione lineare
con più soluzioni ottime (e regione ammissibile limitata) possiede almeno due vertici ottimi .
Ogni soluzione ottima è combinazione convessa di questi vertici. Di conseguenza, nella forma aumentata, ogni soluzione ottima è combinazione convessa di BFS.
(
Il metodo del simplesso termina automaticamente dopo che viene determinata una BFS.
Tuttavia, per molte applicazioni di programmazione lineare, ci sono fattori intangibili non
inclusi nel modello che possono essere usati per scegliere tra soluzioni ottime alternative.
In simili casi, anche queste altre soluzioni ottime dovrebbero essere identificate. Come indicato prima, ciò richiede che vengano determinate le altre BFS ottime così che ogni soluzione ottima è combinazione convessa di queste BFS ottime.
Dopo che il metodo del simplesso ha trovato una BFS ottima, è possibile scoprire se ne
esistono altre e, in questo caso, tali soluzioni possono essere trovate come segue:
96
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
Ogni qual volta un problema ha più di una BFS ottima, almeno una delle variabili non di base
ha un coefficiente nullo nella riga O finale; l'incremento di una qualunque di queste variabili
non cambierà il valore di Z. Dunque, queste altre BFS ottime possono essere identificate (se
lo si desidera) eseguendo iterazioni aggiuntive del metodo del simplesso, scegliendo come variabile entrante una variabile non di base con coefficiente nullo. 11
Per illustrare ciò, si consideri di nuovo il caso appena menzionato, in cui la funzione
obiettivo del problema Wyndor Glass Co. è cambiata in Z = 3x 1 + 2x2 • Il metodo del
simplesso ottiene le prime tre tabelle mostrate nella Tabella 4.1 O e termina con una BFS
ottima. Tuttavia, poiché una variabile non di base (x3 ) ha un coefficiente nullo nella riga
O, per identificare ulteriori BFS ottime vengono eseguite una o più iterazioni nella Tabella
4.10. In questo caso, le due BFS ottime sono (4, 3, O, 6, O) e (2, 6, 2, O, 0), per ciascuna
delle quali si ha Z = 18. Si noti che l'ultima tabella del simplesso ha anche una variabile
non di base (x4 ) con coefficiente nullo nella riga O. Questa situazione è inevitabile poiché
l'iterazione supplementare non modifica la riga O e così la variabile di base uscente mantiene necessariamente il suo coefficiente nullo. Fare diventare x 4 una variabile di base entrante ricondurrebbe soltanto alla terza tabella del simplesso. Di conseguenza, queste due
sono le uniche BFS ottime mentre tutte le altre soluzioni ottime sono una loro combinazwne convessa.
w1
W}~
+w2 = l,
O,
TABELLA 4.10 Insieme completo dei tableau per ottenere tutte le BFS ottime per
il problema Wyndor Glass Co. senza i due ultimi vincoli funzionali
lterazione
o
1
2
Variabili
di base
Coefficiente di:
Eq.
z
(O)
x3
(1)
(2)
x4
Xs
(3)
z
(O)
xl
(1)
(2)
x4
xs
(3)
z
(O)
xl
(1)
(2)
z
x,
Xz
1
-3
- 2
1
o
o
o
o
1
2
2
o
- 2
o
o
o
IO
1
o
Xz
(3)
o
o
o
z
(O)
1
x4
o
2_
1
o
1
rQ
x3
o
1
o
o
3
1
o
x4
o
o
1
o
o
o
o
o
o
1
o
o
o
12
4
12
-3
o
o
o
o
r-T3
o
o
o
1
- 1
o
1
o
1
o
o
o
3
~
xl
(1)
o
1
o
o
x3
(2)
o
o
o
1
Xz
(3)
o
o
1
o
Extra
o
41
12
18
2
2
IO
1
Xs
Termini Soluzione
noti
ottima?
1
1
18
4
1
1
18
1
3
3
1
1
2
1
Sì
61
3
3
No
61
2
o
No
Sì
2
-3
2
o
6
11
Se una tale iterazione non ha variabile di base usceme. ·ò indica che la regione ammissibile è illimitata e la
variabile di base entrante può essere incrementata alrinfinito senza cambiare il valore di Z.
4.~
4.6
4.6
PROBLEMI DI PROGRAMMAZIONE LINEARE NON IN FORMA STANDARD
97
PROBLEMI DI PROGRAMMAZIONE LINEARE NON IN FORMA
STANDARD
Finora sono stati presentati i dettagli del metodo del simplesso assumendo che il problema si trovi nella forma standard (massimizzare Z soggetto ai vincoli funzionali nella forma :::; e vincoli di nonnegatività per tutte le variabili) e che bi 2: O per i = l, 2, ... , m. In
questo paragrafo verrà messo in evidenza come eseguire gli opportuni aggiustamenti per
le altre forme legittime di modelli di programmazione lineare. Tutti questi aggiustamenti
possono essere fatti durante la fase si inizializzazione cosicché il resto del metodo del simplesso potrà essere applicato nel modo già visto.
L'unico problema veramente importante introdotto dalle altre forme per i vincoli funzionali (le forme = oppure 2: o con termini noti negativi) consiste nell ' identificazione di
una BFS iniziale. Prima, questa soluzione veniva determinata scegliendo le variabili slack
come variabili di base iniziali in modo tale che ciascuna di essa fosse uguale al termine
noto nonnegativo della propria equazione. Adesso, è necessario operare in modo diverso.
L'approccio standard usato per tutti questi casi è una tecnica basata sull ' introduzione di
variabili artificiali (artificial-variable technique). Questa tecnica costruisce un appropriato problema artificiaJe introducendo una nuova variabile (chiamata una variabile artificiale) in ogni vincolo per il quale questo sia necessario. Questa nuova variabile è introdotta proprio con lo scopo di diventare la variabile di base iniziale per quella equazione.
Le variabili artificiali sono soggette agli usuali vincoli di nonnegatività e la funzione
obiettivo viene modificata in modo tale da penalizzare il fatto che possano assumere valori strettamente maggiori di zero .
Le iterazioni del metodo del simplesso portano automaticamente le variabili artificiali a
diventare zero una alla volta e solo dopo che tutte queste variabili sono scomparse si procede alla risoluzione del problema originario.
Per illustrare questa tecnica, si consideri prima il caso in cui l'unica forma non standard nel problema è la presenza di uno o più vincoli di uguaglianza.
Vincoli di uguaglianza
Qualsiasi vincolo di uguaglianza
è in realtà equivalente a una coppia di vincoli di disuguaglianza:
anx1
an xl
+ ai2X2 + · · · + ainXn :::; bi
+ ai2X2 + · · · + ainXn 2: bi
Tuttavia, anziché operare questa sostituzione che aumenta il nwnero di vincoli, è più conveniente usare la tecnica basata sulle variabili artificiali. Questa tecnica verrà illustrata
con l'esempio seguente.
Esempio. Si supponga di modificare il problema Wyndor Glass Co. nel Paragrafo 3.1
in modo da richiedere che lo stabilimento 3 venga usato al massimo livello. L'unico cambiamento nel modello di programmazione lineare è che il terzo vincolo, 3x 1 + 2x2 :::; 18,
diventa un vincolo di uguaglianza
3xl
+ 2x2 =
18
di modo che il modello completo risultante sia quello mostrato nel riquadro in alto a destra della Figura 4.3. Questa figura mostra, in neretto, anche la regione ammissibile composta esattamente del segmento che congiunge (2, 6) e (4, 3).
Dopo che sono state introdotte le variabili slack necessarie per i vincoli di disuguaglianza, il sistema di equazioni nella forma aumentata diventa
98
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
10
Massimizzare Z = 3x 1 + Sx2
soggetto a
x1
~ 4
2x2 ~ 12
3x 1 + 2x2 = 18
e
x 1 ~O x2 ~O
8
4
• FIGURA4.3
Quando il terzo vincolo
funzionale diventa un
vincolo di uguaglianza, la
regione ammissibile per il
problema Wyndor Glass
Co. diventa il segmento
tra (2, 6) e (4, 3).
2
o
(O) Z- 3x,- Sx2
(l)
(2)
(3)
x,
+x3
2x2
3x 1
+
4
2
2x2
=
o
=
4
6
8
x,
+ x4 = 12
= 18
Sfortunatamente queste equazioni non hanno una BFS iniziale evidente perché non c'è
più una variabile slack da usare come variabile di base iniziale per l'Equazione (3). Per
poter avviare il metodo del simplesso è necessario determinare una BFS iniziale.
Calcolo di una BFS iniziale. La procedura consiste nel costruire un problema artificiale che ha le stesse soluzioni ottime del problema originario, apportando due modifiche:
l. introdurre una variabile artificiale nonnegativa x5 :2 0 12 nell ' equazione (3) esattamente
come se si trattasse di una variabile slack
(3)
2. modificare la funzione obiettivo introducendo un termine che penalizzi
zione obiettivo Z = 3x 1 + 5x2 diviene
Z
= 3x 1 + Sx2
x5 > O; la fun-
- M.Xs
dove M rappresenta simbolicamente un numero positivo molto grande. Questo metodo
consistente nel forzare :X5 a essere :X5 = O ali' ottimo è chiamato metodo del Big M.
Adesso si può applicare il metodo del sirnplesso al problema artificiale partendo con la seguente BFS iniziale:
12
Le variabili artificiali saranno etichettate con una barra sopra esse.
4.6
PROBLEMI DI PROGRAMMAZIONE LINEARE NON IN FORMA STANDARD
BFS iniziale
Variabili non di base:
Variabili di base:
Xt
X3
=0
=4
99
:Xs = 18
Dato che nel problema artificiale :X5 gioca 'ii ruolo di variabile slack per il terzo vincolo,
quest'ultimo è equivalente a 3x 1 + 2x2 :::; 18 (proprio come per il problema originale
Wyndor Glass Co. nel Paragrafo 3.1). Di seguito viene mostrato il problema artificiale risultante (prima della forma aumentata) accanto al problema originario.
11 problema originario
Il problema artificiale
x5 =
Definire
Massimizzare
Z = 3x 1
+ 5x2
Massimizzare
18- 3x 1 - 2r2
Z = 3x 1 + 5.r2
-
Mx5
soggeno a
soggetto a
s: 4
s: 4
x,
s: 12
3x 1
+ 2 r 2 = 18
s: 18
(quindi 3x 1 + 2r2
e
x,;;::
o
è
te
;e-
x2 <:: O
Conversione dell'equazione (O) nella forma opportuna. Dopo che il problema
artificiale è stato espresso nella forma aumentata, il sistema di equazioni diventa
(l)
(2)
(3)
jo
o
Come nel Paragrafo 3 .l, la regione ammissibile per (x 1, x 2 ) relativamente al problema artificiale è quella mostrata in Figura 4.4. L'unica porzione di questa regione ammissibile che
coincide con la regione arrunissibile per il problema reale è dove :X5 = O (e quindi
3xt + 2x2 = 18).
La Figura 4.4 mostra inoltre l'ordine con cui il metodo del simplesso esamina i vertici
(o le BFS nella forma aumentata), e viene indicata l'iterazione in corrispondenza della
qua lP. è ottenuta quella data soluzione. Si può notare che in questo caso il metodo del simplcsso si muove in senso antiorario mentre per il problema Wyndor Glass Co. lo spostamento avviene in senso orario (si faccia riferimento alla Figura 4.2). La ragione di tale differenza è dovuta alla presenza del termine aggiuntivo -Mx5 nella funzione obiettivo per
il problema artificiale.
Prima dell'applicazione del metodo del simplesso e la dimostrazione che esso segue il
percorso mostrato in Figura 4.4, è necessario il seguente passo preliminare.
(0)
o-
= 18)
e
x,;;::
~[
+ x5
Z - 3xl- Sx2
Xl
+x3
2x2
3xt
+ 2x2
+ x4
+Mxs =
o
=
4
= 12
+ xs = 18
in cui le variabili di base iniziali (x 3 , x4 , x5 ) sono mostrate in grassetto. Questo sistema,
tuttavia, non è ancora in forma canonica perché una variabile di base :X5 ha un coefficiente
non nullo nell'equazione (0). Si ricordi che tutte le variabili di base devono essere eliminate dall'equazione (O) prima che il metodo del simplesso possa applicare il test di ottimalità o trovare la variabile entrante. Questa eliminazione è necessaria per fare 'in modo che
il coefficiente negativo della variabile non di base indichi il tasso a cui Z cresce all'aumentare del valore di questa.
Per eliminare algebricamente la variabile :X5 dall 'equazione (O) è necessario sottrarre
dall' equazione (O) l'equazione (3) moltiplicata per M.
100
CAPITOlO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
Definire
.Xs = 18 - 3xl - 2x2
Massimizzare Z = 3x 1 + Sx 2 - MXs
soggetto a
x1
::s 4
2x2 ::s 12
3x 1 + 2x2 ::s 18
e
x 1 2:: O x 2 2:: O x5 2:: O
•
Regione
ammissibile
Flgura4.4
Questo grafico mostra la
regione ammissibile e la
sequenza dei vertici
ammissibili (@, G), @, @)
esaminati dal metodo del
simplesso per il problema
artificiale corrispondente
al problema in Figura 4.3.
(O, O)
@
Z= 12 - 6M
..-0 __.__..___.___.~_L..____j__..L___L__..
Z =O - 18M
(4, O)
Z - 3xl - Sx2 +Mis = O
- M (3x 1 + 2x2 + .Xs = 18)
nuova (O)
Z- (3M+ 3)x 1
-
(2M+ S)x2 = - 18M
\
l
J
l
Applicazione del metodo del simplesso. Questa nuova equazione (O) esprime Z in
termini delle appropriate variabili non di base (x 1, x 2 ),
Z = -18M+ (3M+ 3)xl + (2M+ S)x2
Dato che 3M + 3 > 2M+ 5 (si ricordi che M rappresenta un numero molto grande), incrementando x 1, il valore di Z aumenta più velocemente rispetto a quanto accade se venisse incrementata x 2 , così x 1 è scelta come variabile entrante. Ciò determina, nell'iterazione
l , lo spostamento da (0, O) a (4, O) mostrato in Figura 4.4 con un conseguente aumento di
Z pari a 4(3M + 3).
Le quantità relative a M non appaiono mai nel sistema di equazioni tranne che per l'equazione (O) ; pertanto, tali quantità sono utilizzate solo nel test di ottimalità e quando viene determinata una variabile entrante. Un modo di considerare queste quantità è quello di
assegnare specifici valori numerici (molto grandi) a M e usare i coefficienti risultanti nell'equazione (O) nel modo usuale. Tuttavia, questo approccio può portare come risultato a
significativi errori di arrotondamento che invalidano il test di ottimalità. Di conseguenza,
è meglio operare come è stato mostrato, ovvero, esprimere ogni coefficiente nell'equazione (O) come una funzione lineare nella forma aM + b in cui compare la quantità simbolica M e registrare e aggiornare separatamente il valore numerico corrente del fattore moltiplicativo a e del termine additivo b. Poiché quando a =j:. O il termine b può essere sempre
trascurato rispetto all'altro termine, dato che M è per ipotesi un valore molto grande, le decisioni nel test di ottimalità e la scelta della variabile di base entrante sono prese usando
proprio il fattore moltiplicativo nel modo usuale tranne che nel caso di coefficienti moltiplicativi uguali in cui si valutano i fattori additivi.
Usando questo approccio si ottengono i tableau mostrati in Tabella 4.11. Si può notare
che la variabile artificiale x5 è una mriabile di base (x 5 > O) nei primi due tableaux e una
variabile non di base (x 5 = O) negli ultimi due. Di conseguenza, le prime due BFS per
questo problema artificiale non sono ammi sibili per il problema originario mentre le ultime due sono anche BFS per il problema originario.
4.6
PROBLEMI DI PROGRAMMAZIONE liNEARE NON IN FORMA STANDARD
101
Questo esempio ha coinvolto un solo vincolo di uguaglianza. Se in un modello di programmazione lineare vi è più di un vincolo di uguaglianza, ciascuno di essi è gestito esattamente nello stesso modo (se il termine noto è negativo, occorre moltiplicare prima entrambi i membri dell'equazione per - l).
TABELLA 4.11 Insieme completo di tableau per il problema mostrato in Figura 4.4
lterazione Variabili
di base
o
z
(0)
x3
x4
(l)
iis
l
2
Coefficiente di:
Eq.
(2)
(3)
z
xl
x2
l
- 3M - 3
- 2M - 5
o
o
o
l
o
o
-
x3
o
l
o
o
3
2
2
o
- 2M - 5
3M + 3
'O
l
z
(O)
l
xl
(l)
x4
Xs
(2)
(3)
o
o
o
z
(0)
l
o
xl
(l)
x4
(2)
x2
(3)
o
o
o
o
o
z
(O)
l
o
xl
(l)
o
x3
(2)
x2
(3)
l
o
o
2
2
o
x4
o
o
l
o
o
o
l
Xs
o
o
o
l
o
o
o
- 3
o
9
o
o
M + J..
l
- l
o
o
o
-2
'l
l
-2
o
o
o
2
l
o
o
-3
o
o
o
l
o
o
l
o
l
Termini
noti
3
3
Extra
3
l
l
3
l
2
l
2
o
l
2
M+ l
l
3
l
- 18M
4 1
12
18
- 6M + 12
4
12
61
27
4
6 1
3
36
2
-3
2
o
6
"T ermin i noti negativi
La tecnica menzionata precedentemente per la gestione di un vincolo di uguaglianza con
termine noto negativo (ovvero, moltiplicare entrambi i membri dell 'equazione per -1)
può essere utilizzata anche per gestire un vincolo di disuguaglianza con termine noto negativo. Moltiplicando entrambi i membri di una disuguaglianza per - l si inverte anche il
senso della disuguaglianza; cioè, :::; diventa ?: e viceversa. Per esempio, applicando quanto detto al vincolo
x 1 - xz:::; - l
(cioè, x 1 :::; xz - l )
si ottiene il vincolo equivalente
-x 1 + xz?: l
(cioè, xz - l :::; x 1)
ma adesso il termine noto è positivo. Avere termini noti nonnegativi per tutti i vincoli funzionali permette di determinare una soluzione iniziale per il metodo del simplesso dato
che (dopo aver ottenuto la forma aumentata) questi termini noti diventano i rispettivi valori delle variabili di base iniziali (che devono soddisfare i vincoli di non negatività).
Di seguito si focalizzerà l'attenzione su come aumentare vincoli del tipo ?:, come
-x 1 +x2 ?: l , con l'ausilio di variabili artificiali.
102
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROG
E UNEARE
Vincoli funzionali nella forma ;::::
Per illustrare come la tecnica basata sull'aggiunta di Yarianili
·ficiali possa gestire vincoli funzionali nella forma ;::::, si farà riferimento al moèe o per la progettazione della radioterapia, come presentato nel Paragrafo 3.4. Per convenienza. questo modello è riportato di seguito evidenziando in un riquadro il vincolo di
~ -ore interesse.
Esempio di radioterapia
Massimizzare
Z =
0.4.~ 1 -
G.:ir=
soggetto a
0.3x 1 + O. lx2 :s - ·O.Sx, + O.Sx2 = 6
l0.6.r
1
+ 0Ax2 ;;,: 6;
e
x,""' o
La soluzione grafica per questo esempio (presentata originariamente in Figura 3 .12) è ripetuta in una forma leggermente differente nella Figura _- _Le tre rette nella figura, insieme ai due assi, costituiscono la frontiera dei cinque 'incoli del problema. I punti che si
trovano all'intersezione di ogni coppia di queste rette ono i vertici. Gli unici due vertici
ammissibili sono (6, 6) e (7.5, 4.5) e la regione amrni ibile è il egmento che congiunge
questi due punti. La soluzione ottima è (xi, x 2 ) = ( .5. 4. -)- con Z = 5.25 .
Il metodo del simplesso permette di determinare una soluzione per questo problema risolvendo il problema artificiale corrispondente. Tuttavia occorre prima descrivere come
deve essere gestito il terzo vincolo.
L'approccio proposto comporta l'introduzione sia di una variabile surplus x 5 (definita
come xs = 0.6xi + 0.4x 2 - 6) sia di una variabile artificiale x6 come mostrato di seguito.
0.6XI
---+
0.6XI
+ 0.4X2
+ 0.4x2 -
;:::: 6
X5
=
6
(x 5
;::::
O)
Qui x 5 è chiamata variabile surplus perché essa sottrae il valore in eccesso a sinistra della
disuguaglianza rispetto al termine noto così da trasformare il vincolo di disuguaglianza in
un equivalente vincolo di uguaglianza. Una volta che tale trasformazione è stata realizzata,
viene introdotta la variabile artificiale proprio come per qualunque vincolo di uguaglianza.
Dopo che nel primo vincolo è stata inserita una variabile slack x 3 , una variabile artificiale x4 viene introdotta nel secondo vincolo e quindi viene applicato il metodo del Big
M. Così facendo il problema artificiale completo (nella forma aumentata) diventa
mmtmtzzare
soggetto a
e
XI;:::: O,
+ 0.5x2 + Mx4 + Mx6
= 2.7
0.3x i + O.lx2 + x3
0.5XI + 0.5X2
=6
+x4
0.6xi + 0.4xz
-xs+:X6 = 6
Z = 0.4x i
X2;:::: O,
X};:::: O,
:X4;:::: O,
xs ;:::: O,
x6;:::: O
Poiché in questo caso si sta minimizzando Z, i coefficienti delle variabili artificiali nella
funzione obiettivo sono +M invece che -M. Così, anche se nel problema artificiale può
accadere che per una soluzione ammissibile :X4 > O e/o x6 > O, il termine di penalizzazione +M non permette che questo accada in una soluzione ottima.I 3
13
Eccetto quando la regione ammissibile del problema originario è vuota, come indicato più avanti in questo
paragrafo.
• Figura4.5
Illustrazione grafi<
dell'esempio sulla
radioterapia e relc
vertici.
4.6
PROBLEMI DI PROGRAMMAZIONE LINEARE NON IN FORMA STANDARD
103
::tz
15
Punti = vertici
Segmento in neretto = regione ammissibile
Soluzione ottima= (7.5, 4.5)
a
• Figura4.5
Illustrazione grafica
dell'esempio sulla
radioterapia e relativi
vertici.
o
n
l,
1-
o
o
Come al solito, l'introduzione di variabili artificiali estende la regione ammissibile. Di seguito vengono confrontati i vincoli per il problema originario con i corrispondenti vincoli
per (x 1, x2 ) nel problema artificiale.
Vincoli su (x 1, x2)
per il problema originario
0.3x 1 + O.lx2 ::; 2.7
O.Sx1
+ O.Sx2 =
la
lÒ
o-
>10
O,
0.3x 1 + O.lx2 2 2.7
(= quando x4 = O)
6
0.6x 1 + 0.4x2 2 6
Xj::::
Vincoli su (x1 , x2)
per il problema artificiale
Questo vincolo non è presente (tranne quando
Xj
:::: O,
X2::::
x6 =
O)
o
L'introduzione della variabile artificiale x4 come variabile slack nel secondo vincolo permette valori di (x 1, x2) al di sotto della retta 0.5x 1 + O.Sx2 = 6 in Figura 4.5.
Introducendo x 5 e x6 nel terzo vincolo del problema reale e spostando queste variabili a
destra, si ottiene
Poiché sia x 5 e
x6
hanno come vincolo solo quello di nonnegatività, la loro differenza
104
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
x 5 - x6 può assumere un qualsiasi valore positivo o negativo. Di conseguenza,
0.6x 1 + 0.4xz può assumere qualsiasi valore con l'effetto di eliminare il terzo vincolo dal
problema artificiale e permettere punti al di sopra e al di sotto della retta
0.6x1 + 0.4xz = 6 in Figura 4 .5. Il terzo vincolo viene mantenuto nel sistema di equazioni
solo perché esso diventerà importante successivamente, dopo che il metodo del Big M imporrà che .X6 sia zero. Ne risulta che la regione ammissibile per il problema artificiale è
l'intero poliedro in Figura 4.5 i cui vertici sono (0, 0), (9, 0), (7.5 , 4.5) e (0, 12).
Dato che adesso l' origine è ammissibile per il problema artificiale, il metodo del simplesso inizia con (0, O) come vertice iniziale, cioè, con (x 1, x 2 , x 3 , x4 , x 5 , x6 ) = (0, O, 2.7,
6, O, 6) come BFS iniziale (rendere l'origine come possibile soluzione iniziale per il metodo del simplesso è il punto cruciale della creazione del problema artificiale). Nel seguito
verrà tracciato l' intero percorso seguito dal metodo del simplesso dall'origine alla soluzione ottima sia per il problema reale che per quello artificiale. Prima, però, va chiarito come
viene gestita la minimizzazione dal metodo del simplesso.
Minimizzazione
Un modo semplice di minimizzare Z con il metodo del simplesso è quello di scambiare i
ruoli dei coefficienti positivi e negativi nella riga O nel test di ottimalità e nel passo l di
ogni singola iterazione. Tuttavia, per evitare di modificare le istruzioni del metodo del
simplesso, viene presentato il seguente semplice modo di convertire un problema di minimizzazione in un equivalente problema di massimizzazione:
n
minimizzare
Z= L
CJ Xj
J= i
è equivalente a
n
massimizzare
-Z
=L
(- cj)xi
J= l
TABELLA 4
cioè le due fonnulazioni producono la stessa soluzione ottima (o le stesse soluzioni ottime).
Le due formulazioni sono equivalenti perché più è piccolo il valore di Z, più è grande
il valore - Z, così che la soluzione che fornisce il più piccolo valore Z nell ' intera regione
ammissibile deve anche fornire il più grande valore di - Z in tale regione.
Di conseguenza, nell'esempio della radioterapia devono essere fatti i seguenti cambiamenti nella formulazione:
minimizzare
-->
massimizzare
Z =
- Z
=
OAx1
erazlone Vari
dii
o
+ 0 .5xz
- OAx1 - 0.5xz
x
Dopo l'introduzione delle variabili artificiali .X4 e X6 e l'applicazione del metodo del Big
M , la conversione corrispondente è
mmimizzare
massimizzare
Z =
OAx1
x.
+ 0 .5xz + Mx4 + Mx6
x,
-Z = -OAx1 - 0.5xz - M.X4 - Mx6
2
Risolvere l'esempio sulla radioterapia
x,
Ora si è quasi pronti per applicare il metodo del simplesso all ' esempio sulla radioterapia.
Usando la forma di massimizzazione appena ottenuta, l' intero sistema di equazioni è
adesso
(O)
(!)
(2)
(3)
- Z
+ OAx1 + 0.5xz
0.3x 1 + O.lxz + x 3
0.5x 1 + 0.5xz
0.6x 1 + 0.4xz
- }vfx~
2
+ Mx6 =o
= 2.7
= 6
- X.l
-x-+
X6 = 6
z
3
4.6
PROBLEMI DI PROGRAMMAZIONE LINEARE NON IN FORMA STANDARD
105
Le variabili di base (x 3 , :X4 , x6 ) per la BFS iniziale (per questo problema artificiale) sono
mostrate in grassetto .
Si può notare che questo sistema di equazioni non è ancora nella forma canonica, come
richiesto dal metodo del simplesso, dato che le variabili di base :X4 e x6 necessitano, ancora, di essere eliminate dall'equazione (0). Poiché sia :X4 che X6 hanno un coefficiente pari a
M, è necessario sottrarre M volte l'equazione (2) e M volte l'equazione (3) dall'equazione
(0). I calcoli per tutti i coefficienti (e i termini noti) sono riassunti sotto, dove i vettori corrispondono alle principali righe del tableau del simplesso corrispondente al precedente sistema di equazioni .
:a,
.al
tta
m
o
Jl-
:è
m-
.7,
to.ito
:iome
Riga 0:
Nuova riga O= [- l . lM
O,
O,
O,
0.5 ,
0.5 ,
0.4,
[0.4,
-M[0.5,
-M[0.6,
+ 0.4, -0.9M + 0.5,
O,
M,
l,
O,
O,
M,
O]
O,
O,
-l,
l,
6]
6]
O,
O,
M,
-12M]
Il tableau iniziale risultante è mostrato in alto nella Tabella 4.12. Applicando il metodo
del simplesso nel modo usuale si ottengono le sequenze di tableaux mostrati nel resto della Tabella 4.12. Per il test di ottimalità e la selezione della variabile entrante a ogni iterazione, le quantità riguardanti M sono trattate proprio come discusso in relazione con la
Tabella 4.11. In particolare, ogni qualvolta è presente M viene usato solo il suo fattore
moltiplicativo, a meno che non siano presenti coefficienti identici e in tal caso si considerano i corrispondenti termini additivi. Proprio un caso simile si presenta nell'ultima selezione di una variabile entrante (penultimo tableau), in cui i coefficienti di x 3 e di x 5 nella
re 1
. di
del
lUI-
.
5
nga O hanno entrambi lo stesso fattore moltiplicativo - - . Il confronto tra i termini addi. . 11
7
3
tiVI,
< conduce alla scelta di x 5 come variabile entrante.
6
3
TABELLA 4.12 Il metodo del Big M per l'esempio di radioterapia
nde
lterazlone Variabili
di base
o ne
bia-
xl
x2
x3
- l
- l.lM + 0.4
0.3
0.5
0.6
- 0.9M + 0.5
0.1
0.5
0.4
o
x4
x6
(O)
(l)
(2)
(3)
l
(O)
- l
16
11
- 30M + 30
l
_!_!_M _ ±
3
3
lO
3
3
x3
o
o
o
o
,....--
Big
tpia.
ni è
X]
(l)
o
l
x4
(2)
o
o
x6
(3)
o
l
(O)
xl
(l)
x4
l
o
o
l
o
o
l
~M
"&_
o
l
5
x6
Xs
o
- l
o
M
~
o
o
1.5
l
0.6
0.2
- 2
o
- l
o
o
o
_ J_M + ..!..!_
o
l
o
3
(2)
o
o
o
3
x2
(3)
o
o
l
l
(O)
(l)
(2)
(3)
o
o
o
o
o
o
l
X]
Xs
x2
- l
o
o
o
l
3
3
20
5
- lO
0.5
5
l
-5
- 2.1 M- 3.6
9
o
o
l
o
M - 1.1
-l
0.6
3
3
6
~
3
5
§_M - ..!..!_
3
6
5
-3
5
3
cJ...
-3
o
o
M
l
- l
o
l
o
o
l
_ J_M + !_
l
'--.....__
- 12M
2.7
6
6
o
-3
- l
o
o
o
Termini
noti
o
3
2
3
x4""' ~
z
z
o
Coefficiente di:
Eq.
5
o
o
l
- 0.5M - 4.7
8
0.5
3
- 5.25
7.5
0.3
4.5
l
106
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
Nella Tabella 4.12 è riportata la sequenza dei valori delle variabili artificiali .X4, x6 e di Z.
Si inizia con valori grandi, .X4 = 6 e x6 = 6, con Z = 12M (- Z = -12M) . La prima iterazione riduce notevolmente questi valori. Il metodo del Big M riesce a portare x6 a zero
(nuova variabile non di base) alla seconda iterazione e lo stesso accade con x4 all'iterazione successiva. Con entrambi x4 = O e X6 =O, la soluzione di base riportata nell'ultimo tableau è ammissibile per il problema originario. Dato che essa supera il test di ottimalità, è
anche ottima.
In Figura 4.6 vengono adesso mostrati graficamente i vari passi eseguiti. La regione
ammissibile per il problema artificiale ha, inizialmente, quattro vertici (0, 0), (9, 0), (0,
12) e (7.5, 4.5) ; successivamente i primi 3 vertici sono rimpiazzati da due nuovi vertici (8,
3), (6, 6) quando x6 viene fatto decrescere a .X6 = O in modo che 0.6x 1 + 0.4x 2 ~ 6 diventa un vincolo addizionale. (Si può notare che i 3 vertici - (0, 0), (9, O) e (0, 12) - in realtà
sono non ammissibili per il problema originario mostrato in Figura 4. 5). Con l'origine come vertice iniziale per il problema artificiale, il metodo del simplesso si muove lungo la
frontiera in tre altri vertici - (9, 0), (8, 3) e (7.5, 4.5). L ' ultimo di questi è anche il primo
che è ammissibile per il problema originario. Fortunatamente, questa prima soluzione ammissibile è anche ottima rendendo così non necessarie ulteriori iterazioni.
Per altri problemi con variabili artificiali, può essere necessario eseguire iterazioni aggiuntive in modo da raggiungere una soluzione ottima dopo che per il problema originario
sia stata ottenuta la prima soluzione ammissibile (questo è il caso per l'esempio risolto nella Tabella 4.11 ). In questo modo il metodo del Big M può essere pensato come costituito
da due fasi. Nella prima fase, tutte le variabili artificiali sono portate a zero (a causa del termine di penalità M per le variabili ausiliarie con un valore maggiore di zero) in modo da
giungere a una BFS iniziale per il problema originario. Nella seconda fase, tutte le variabili artificiali sono mantenute a zero (a causa di questa stessa penalizzazione) e il metodo
del simplesso genera una sequenza di BFS per il problema originario fino a giungere a una
soluzione ottima. Il metodo delle due fasi descritto di seguito è una procedura semplificata
per eseguire queste due fasi direttamente senza introdurre M in modo esplicito.
Il metodo delle due fasi
Si faccia riferimento alla funzione originaria per l'esempio della radioterapia appena risolto nella Tabella 4.12
Problema originario:
mmimizzare
Il metodo del Big M usa la seguente funzione obiettivo (o la sua forma equivalente di
massimizzazione) durante tutta l'intera procedura:
Metodo del Big M:
mmimizzare
Dato che i primi due coefficienti sono trascurabili rispetto a M, il metodo delle due fasi è
in grado di omettere M usando invece le seguenti due funzioni obiettivo con definizioni
completamente differenti.
Metodo delle due fasi:
+ x6
fase l :
mmumzzare Z = X4
fase 2:
minimizzare Z = 0.4x 1 + 0.5x2
(fino a ottenere x4 = O, x6 = O)
(con.X4 = O,x6 = O)
La funzione obiettivo nella fase l è ottenuta dividendo per M la funzione obiettivo del metodo del Big M e omettendo i termini trascurabili. Dato che la fase l si conclude ottenendo una BFS per il problema originario (in cui x4 = O e x6 = 0), questa soluzione è quindi
usata come la BFS iniziale per l'applicazione del metodo del simplesso al problema originario (con la relativa funzione obiettivo nella fase 2.
Prima di risolvere l'esempio in que to modo viene riportato un riepilogo del metodo in
generale.
Figura4.
Questo grafi(
egione amrr
sequenza dei
J), @,@) es
metodo del s
il metodo del
oroblema art
corrisponden
oroblema in l
PROBLEMI DI PROGRAMMAZIONE LINEARE NON IN FORMA STANDARD
4.6
x2
-z= 6 +
l.2M
107
Vincoli per il problema artificiale:
0.3x 1 + O. lx2 :S 2.7
0.5x 1 + 0.5x2 :S 6 (=quando x4 =O)
(0.6x 1 + OAx2 2: 6 quando x6 = O)
x 1 ;::: O, x 2 ;::: O
(x4 ;::: O, x6 ;::: O)
Z= 5.4
(6, 6) /
Il segmento più scuro rappresenta la
regione ammissibile per il problema
originario (x4 = O, x6 = 0).
(7 .5, 4.5) soluzione ottima
Figura4.6
Questo grafico mostra la
·egione ammissibile e la
seq uenza dei vertici (@,
'j), <i), @) esaminati dal
m etodo del simplesso (con
metodo del Big M) per il
oroblema artificiale
corrispondente al
oroblema in Figura 4.5.
Regione ammissibile per il problema artificiale
®
(0, O)
/ z = 3.6 + 2.1M
t
(9, 0)
XJ
Z =O+ 12M
Riepilogo del metodo delle due fasi
li
Jnizializzazione: modificare i vincoli del problema originale introducendo variabili artificiali come richiesto per ottenere una BFS per il problema artificiale.
fase 1: l'obiettivo per questa fase è quello di determinare una BFS per il problema originario. Per fare questo,
minimizzare Z =
è
ti
1-
L
variabili artificiali soggetto ai vincoli modificati.
La soluzione ottima ottenuta per questo problema (quando Z = O) sarà una BFS per il problema originario.
fase 2: l'obiettivo per questa fase è quello di determinare una soluzione ottima per il
problema originario. Dato che le variabili artificiali non fanno parte del problema originario, queste variabili possono essere omesse (sono a ogni modo tutte uguali a zero). 14
Partendo dalla BFS ottenuta alla fine della fase l, usare il metodo del simplesso per risolvere il problema originario.
Per l'esempio considerato, i problemi che devono essere risolti con il metodo del simplesso nelle rispettive fasi sono riassunti di seguito.
Fase l
:li
;l-
in
14
Non sono qui considerate altre tre possibilità: ( l ) variabili artificiali > O (discusso nel successivo sottoparagrafo), (2) variabili artificiali che sono variabili di base degeneri e (3) variabili artificiali mantenute come variabili non di base nella fase 2 (non permettendo quindi loro di diventare di base) come un aiuto nella analisi postottimale.
108
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
mmim1zzare
soggetto a
+ O.l xz + x3
0.5x 1 + 0.5xz
+x4
0.6x 1 + OAx2
= 2. 7
0.3x ,
=6
-xs
+x6
= 6
e
XJ
2 O,
xs 2 O,
Fase 2
mtmm1zzare
soggetto a
0.3x 1 + O.l xz
+ 0.5xz
0.6x 1 + 0.4xz
0.5x ,
+ XJ
= 2.7
=6
- xs = 6
e
Xl
2 O,
XJ
2 O,
Le uniche differenze tra questi due problemi risiedono nella funzione obiettivo e nell'inclusione (fase l ) o esclusione (fase 2) delle variabili artificiali :X4 e x6 . Senza le variabili
artificiali, la fase 2 del problema non avrebbe una BFS iniziale semplice da determinare.
L'unico scopo della fase l del problema è quello di ottenere una BFS con .X4 = O e x6 = O
in modo tale che questa soluzione (senza le variabili artificiali) possa essere usata come
BFS iniziale per la fase 2.
La Tabella 4.13 mostra il risultato ottenuto applicando il metodo del simplesso a questa
fase l del problema. La riga O nel tableau iniziale è ottenuta convertendo minimizzare
Z = x4 + x6 in massimizzare ( - Z) = - x4 - X6 e usando le operazioni elementari di riga
per eliminare le variabili x4 e x6 da -Z + x4 + x6 = O. Nel penultimo tableau, vi sono due
possibile scelte (x 3 e x 5 ) per la variabile entrante e viene scelto in questo caso la variabile
x 3 . La soluzione ottenuta alla fine della fase l è, quindi, (x 1, x 2 , x 3 , x4 , x 5 , x6 ) = (6, 6, 0.3 ,
O, O, O) o, dopo che x4 e x6 vengono eliminati, (x 1, x 2 , x 3 , x 5 ) = (6, 6, 0.3, 0).
La Tabella 4.14 mostra i passi necessari per iniziare la fase 2 dopo il completamento
della fase l. Partendo dal tableau finale nella Tabella 4.13 , si eliminano le variabili artificiali (x4 e x6 ) , si sostituisce la funzione obiettivo della fase 2 ( -Z = - 0.4x 1 - 0.5x2 nella
forma di massimizzazione) nella riga O e, quindi, si ripristina la forma canonica
(eliminando algebricamente le variabili di base x 1 e x2 dalla riga 0). In questo modo, nell'ultimo tableau la riga O è ottenuta eseguendo le seguenti operazioni elementari di riga
nel penultimo tableau: dalla riga O si sottrae sia 0.4 volte la riga l sia 0.5 volte la riga 3. Si
può notare che a parte l'eliminazione delle due colonne, le righe l e 3 non cambiano. Le
uniche modifiche si verificano nella riga O al fine di sostituire la funzione obiettivo della
fase l con quella della fase 2.
· L ' ultimo tableau nella Tabella 4.14 costituisce anche il tableau iniziale per l'applicazione della fase 2 del metodo del simplesso al problema in esame. , come mostrato in alto nella Tabella 4. 15. Una singola iterazione porta alla soluzione ottima mostrata nel secondo
tableau: (x 1, x 2 , x 3 , x 5 ) = (7.5, 4.5. O, 0.3). Questa soluzione è la soluzione ottima desiderata per il problema originario .
In Figura 4.7, sono mostrati graficamente i vari passi eseguiti. Partendo dall 'origine, la
fase l esamina un totale di quattro venici ammissibili per il problema artificiale. I primi
tre sono in realtà vertici non ammi ibili per il problema originario mostrato in Figura 4.5.
Il quarto vertice (6, 6), è anche ammi ibile per il problema originario, così esso diventa il
vertice iniziale per la fase 2. Una iterazione nella fase 2 porta al vertice ottimo (7 .5, 4.5).
- - - - --
---
'l
4.6
PROBlEMI DI PROGRAMMAZIONE liNEARE NON IN FORMA STANDARD
109
TABELLA 4.13 Fase l del metodo delle due fasi per l'esempio sulla radioterapia
lterazione
Variabili
di base
o
Coefficiente di:
Eq.
z
xl
Xz
- l
- 1.1
0 .3
0 .5
~
- 0.9
0.1
0.5
0.4
o
16
- 30
z
(O)
x3
(l)
x4
x6
(2)
(3)
z
(O)
Xl
(l)
o
1
x4
(2)
o
o
3
0.2
o
o
o
- l
l
l
5
3
- 2
(0)
- 1
o
o
X]
(l)
o
1
o
x4
(2)
x2
o
o
o
(3)
o
o
o
2
3
(O)
x3
(2)
x2
(3)
- l
o
o
o
o
o
o
-l
1
- 12
2.7 !
6
6
o
l
o
- 2.1
o
o
o
9
o
o
1.5
l
0.6 !
1
5
-3
20
3
o
o
o
l
o
o
o
- l
o
-3
o
5
3
5
5
8
- 0.5
3
5
8
-3
5
5
3
- 10
1
3
-3
o
-5
5
3
o
o
o
o
o
1
o
l
o
-4
-5
5
6
l
- 1
0.3
l
o
5
- 5
6
l
l
lO
Termini
noti
x6
Xs
l
11
3
z
(l)
o
o
3
(3)
z
l
-,--
x6
xl
o
3
o
o
x4
o
o
x3
3
5
6
1
o.5 j
TABELLA 4.14 Preparazione all'inizio della fase 2 per l'esempio sulla radioterapia
Variabili
di base
Tableau finale
della fase 1
Eliminazione di
x4 e x6
z
(O)
(1)
x3
(2)
x2
(3)
- l
o
Xl
o
l
o
o o
o
z
(O)
xl
(l)
o
x3
(2)
(3)
o o
o o
z
(O)
xl
(l)
x3
(2)
(3)
x2
Ripristino della
forma canonica
z
X]
x2
Sostituzione della funzione
obiettivo della fase 2
Coefficiente di:
Eq.
z
(0)
Xl
(l)
X3
x2
(2)
(3)
-l
- 1
o
1
0.4
Xz
x3
x4
o
o
o
o
o
1
o
-4
-5
1
5
l
-l
0.3
1
o
3
5
6
5
- 5
6
o
o
o
o
l
0.5
l
o
l
o
o
o l
o o
o o
o
o
l
o
o
o l
o o
o o
o
o
o
o
o
-l
x6
Termini
noti
l
o
l
l
o
Xs
o
6
o
o
-5
6
1
5
0.3
6
o
o
-5
1
5
- 0.5
-5
1
5
6
0.3
6
•.
.
- 5.4
6
0.3
6
110
CAPITOlO 4
RISOlUZIONE DI PROBlEMI DI PROGRAMMAZIONE liNEARE
Se una scelta diversa della variabile entrante fosse stata effettuata nel penultimo tableau
della Tabella 4.13, allora nella fase l dopo il punto (8, 3) sarebbe stato scelto il punto
(7.5, 4.5). Dopo aver costruito il tableau iniziale per la fase 2 per il punto (7.5, 4.5), il test
di ottimalità avrebbe rivelato che questa soluzione è ottima e nessuna altra iterazione sarebbe stata necessaria.
È interessante confrontare il metodo del Big M e il metodo delle due fasi. Per quanto riguarda la funzione obiettivo si ha:
metodo del Big M:
minimizzare
TABELLA 4.15 Fase 2 del metodo delle due fasi per l'esempio sulla radioterapia
lterazlone
o
Variabili
di base
z
(O)
xl
(l)
(2)
(3)
x3
Xz
z
l
Coefficiente di:
xl
Xs
Xz
Termini
noti
Eq.
(O)
(l)
(2)
(3)
z
xl
x2
x3
Xs
- l
o
o
o
o
o
o
~5
- 5
o
o
o
- l
o
o
o
l
IO
o
o
l
o
o
l
l
o
o
o
o
0.5
5
l
- 5
l
- 5.4
6
0.3
6
l
_i_
o
o
- 5.25
7.5
0.3
4.5
l
o
(0, 12)
Il segmento più scuro rappresenta
la regione ammissibile per il
problema originario (fase 2)
-......_ (7 .5, 4.5) soluzione ottima
• Figura4.7
Questo grafico mostra la
regione ammissibile e la
sequenza dei vertici per la
fase l e quindi per la fase
2 ([Q], II]) quando il
metodo delle due fasi è
applicato all'esempio sulla
radioterapia.
Regione ammissibile
per il problema artificiale (fase l)
(0, O ) . - - - - - - - - - - - - - - - - - - + - - -- (9, O)
xl
l
4.6
PROBLEMI DI PROGRAMMAZIONE liNEARE NON IN FORMA STANDARD
111
metodo delle due fasi :
fase l:
fase 2:
mtrumtzzare
mtmmtzzare
z = x4 +x6
Z = 0.4x l + O.Sx2
Poiché nella funzione obiettivo del metodo del Big M i termini 0.4x 1 e 0.5x 2 sono trascurabili rispetto ai termini Mx4 e M x 6 , questa funzione obiettivo è essenzialmente equivalente alla funzione obiettivo della fase l quando :X4 e/o x6 sono maggiori di zero. Quando
:X4 = O e x6 = O, la funzione obiettivo per il metodo del Big M diventa completamente
equivalente alla funzione obiettivo della fase 2.
A causa di questa equivalenza delle funzioni obiettivo, il metodo del Big M e il metodo
delle due fasi visitano la stessa sequenza di BFS. L'unica possibile eccezione si verifica
quando più di una scelta alternativa è possibile per la determinazione della variabile entrante nella fase l del metodo delle due fasi, come capita nel terzo tableau della Tabella
4.13. Si può notare che i primi tre tableaux delle Tabelle 4.12 e 4.13 sono quasi identici,
con la sola differenza che i fattori moltiplicativi di M nella Tabella 4.12 diventano le sole
quantità nelle corrispondenti posizioni della Tabella 4.13. Di conseguenza, i termini additivi che vengono utilizzati per scegliere la variabile entrante nel terzo tableau della
Tabella 4.12 non sono presenti nella Tabella 4.13. Ciò che è accaduto per questo esempio
è un ' iterazione aggiuntiva per il metodo delle due fasi . Generalmente, tuttavia, il vantaggio di tenere in conto i fattori additivi è minimo.
Il metodo delle due fasi semplifica il metodo del Big M usando solamente i fattori moltiplicativi nella fase l ed eliminando le variabili artificiali nella fase 2 (il metodo del Big
M potrebbe combinare i fattori moltiplicati vi e additivi assegnando un numero reale molto
grande a M , ma questo potrebbe creare problemi di instabilità numerica). Per questi motivi, il metodo delle due fasi è usato nei software più comuni.
Soluzioni non ammissibili
Finora, in questo paragrafo, l' interesse è stato focalizzato principalmente sul problema
fondamentale dell ' identificazione di una BFS iniziale quando una soluzione semplice non
è disponibile. Si è pure visto come la tecnica basata sull'utilizzo di variabili artificiali può
essere usata per costruire un problema artificiale e come ottenere una BFS iniziale per
questo problema artificiale. L'uso del metodo del Big M o del metodo delle due fasi consente al metodo del simplesso di iniziare il suo "pellegrinaggio" verso soluzioni di base,
infme, verso una soluzione ottima per il problema originario.
Tuttavia, nell 'adottare questo approccio si deve fare attenzione a una insidia. La scelta
per la BFS iniziale può non essere ovvia per il semplice fatto che non ci sono soluzioni
ammissibili! Ciò nonostante, costruendo una soluzione artificiale ammissibile, nulla impedisce al metodo del simplesso di procedere come di consueto terminando, infine, con una
soluzione apparentemente ottima.
Fortunatamente, la tecnica basata sulle variabili artificiali fornisce la seguente regola
per indicare quando questo caso si verifica:
se il problema originale non ha soluzioni ammissibili, allora sia il metodo del Big M che la
Fase l del metodo delle due fasi forniscono una soluzione fina le che ha almeno una variabile
artificiale maggiore di zero. Altrimenti, esse sono tutte uguali a zero.
Per illustrare ciò, si modifichi il primo vincolo nell'esempio sulla radioterapia (con riferimento alla Figura 4.5) come segue:
0.3XJ
+ 0.1x2
:::; 2.7
-t
0.3x 1 + O.lx2 2: 1.8
in modo tale che il problema non abbia più soluzioni ammissibili. Applicando il metodo
del Big M esattamente come prima (si veda la Tabella 4.12) si ottengono i tableau mostrati nella Tabella 4.16. (La fase l del metodo delle due fasi fornisce gli stessi tableau tranne
che ogni espressione contenente M è sostituita proprio dal fattore moltiplicativo ).
CAPITOLO 4
112
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
TABELLA 4.16 Il metodo del Big M per l'esempio rivisto sulla radioterapia (non sono presenti soluzioni
ammissibili)
lterazione
Variabili
di base
z
x1
x2
- l
x4
x6
(O)
(l)
(2)
(3)
-l .lM + 0.4
0.3
0.5
0.6
- 0.9M + 0.5
0.1
0.5
0.4
z
(O)
- l
x,
(l)
o
l
x4
(2)
o
o
x6
(3)
o
z
(O)
(l)
(2)
(3)
z
o
Coeffidente di:
Eq.
XJ
o
o
o
o
l
2
x,
Xz
x6
- l
o
o
o
X3
o
l
o
o
_..!_§_M + ..!...!_
30
30
l
_!_!_M - .i
3
3
3
3
lO
l
j4
Xs
j6
o
o
M
o
o
o
l
o
o
o
- l
l
o
M
o
Termini
noti
- 12M
1.8
6
6
- 5.4M - 2.4
o
o
o
6
o
o
3
5
l
l
""'\
-""'l
l
o
....Q2
- 2
o
- l
l
2.4
o
o
o
o
o
1.6M - 1.1
- l
3
- 0.6
o
o
o
o
M+ 0.5
5
- 5
- l
M
l
-0.6M - 5.7
3
9
0 .6
l
o
o
- l
l
Quindi, il metodo del Big M indica che la soluzione ottima è (3 , 9, O, O, O, 0.6). Tuttavia,
dato che una variabile artificiale .X6 = 0.6 > O, l'informazione, in questo caso, è che il
problema originario non ha soluzioni ammissibili. 15
Variabili che possono assumere valori negativi
Nella maggior parte dei problemi pratici, valori negativi per le variabili decisionali non hanno un significato fisico, così è necessario includere vincoli di nonnegatività nelle formulazioni dei relativi modelli di programmazione lineare. Tuttavia, non è sempre così. Per illustrare ciò, si supponga che il problema Wyndor Glass Co. venga modificato in modo che il
Prodotto l sia già in produzione e la prima variabile decisionale x 1 rappresenti l'incremento
del suo tasso di produzione. Di conseguenza, un valore negativo di x 1 indica che il tasso di
produzione del Prodotto l viene diminuito di quella quantità. Tali riduzioni potrebbero essere ben accette per consentire un tasso di produzione maggiore per il nuovo, più redditizio
Prodotto 2 e così, nel modello, potrebbero essere permessi anche valori negativi per x 1 •
Dato che la procedura per la determinazione della variabile uscente richiede che tutte
le variabili abbiano vincoli di nonnegatività, prima che il metodo del simplesso venga applicato, qualunque problema contenente variabili a cui è permesso avere anche valori negativi deve essere convertito in un problema equivalente contenente solo variabili nonnegative. Per fortuna, questa conversione può essere fatta facilmente. La modifica richiesta
per ogni variabile dipende se esiste o non esiste un limite inferiore (negativo) per i valori
che essa può assumere. Ciascuno dei due casi viene discusso di seguito.
Variabili con un limite inferiore sui valori possibili. Si consideri una variabile decisionale x1 a cui è permesso avere valori negativi ma per la quale si abbia
Xj
2: Li
15
Sono state sviluppate tecniche (incluse nei software di progr:nnmazione lineare) per analizzare cosa provoca
l'assenza di soluzioni ammissibili in un problema di pmgr.munazione lineare di grandi dimensioni in modo tale che tutti gli errori nella formulazione del problema
essere corretti. Per approfondimenti si consu lti
Chinneck J.W.: "Feasibility and viability ", chapter G:!.l T. e H.J. Greenberg (eds).: Advances in
Sensitivity Analysis and Parametric Programming, Klm A
· Publishers, Boston, MA, 1997.
4.6
PROBLEMI DI PROGRAMMAZIONE LINEARE NON IN FORMA STANDARD
113
dove L1 è una costante negativa. Questo vincolo può essere convertito in un vincolo di
nonnegatività con il cambio di variabili
x; = x1 -
quindi
L1
x; ;::: O
Così, xj + L1 può essere sostituito al posto di x1 in ogni parte del modello e la variabile decisionale xj è non negativa. Questa stessa tecnica può essere usata quando L1 è positivo
per convertire un vincolo funzionale x1 ;::: L1 in un vincolo di nonnegatività xj ;::: O.
Per illustrare ciò, si supponga che l'attuale tasso di produzione per il Prodotto l nel
problema Wyndor Glass Co. sia 10. Con la definizione di x 1 appena data, il modello completo, a questo punto, è lo stesso di quello riportato nel Paragrafo 3 .l eccetto che il vincolo di non negatività x 1 ;::: O è sostituito da
XJ
2: -10
Al fine di ottenere il modello equivalente nella forma necessaria per il metodo del simplesso, la variabile decisionale deve essere ridefinita come il tasso totale di produzione
del Prodotto l
x; =x
1
+ IO
che genera le modifiche nella funzione obiettivo e nei vincoli come mostrato:
Z
= 3xl + Sx2
X;
::;
x'1 - IO
2-.:2 ::; 12
3xl
XJ
+ 2x2
= 3(x'1 -
Z
4
IO)+ Sx2
::; 4
__,
2x2::; 12
3(x'1 - IO)+ 2x2::; 18
x~ - l O 2 - l O
x2 2 O
::; 18
2 - IO
Z = -30 + 3x~
+ Sx2
~ 14
x'1
2~2
::; 12
3x'1 + 2Y2 ::; 48
Variabili senza esplicito limite inferiore sui valori permessi. Nel caso in cui, nel
modello formulato, x1 non ha un esplicito limite inferiore, è necessario un altro approccio: x1 è sostituito in ogni parte del modello dalla differenza di due nuove variabili nonnegative
X;
J
=
x1+- x1:-
dove
x+
> O, x:>O
J J -
Dato che xJ e x1- possono assumere qualunque valore nonnegativo, la differenza
può avere qualsiasi valore (positivo o negativo) e pertanto è lecito sostituire nel
modello tale differenza al posto di x1. Soltanto dopo queste sostituzioni il metodo del simplesso può procedere con le giuste variabili nonnegative.
Le nuove variabili xJ e x1- hanno una semplice interpretazione. Come verrà chiarito
nel paragrafo successivo, ogni BFS per la nuova forma del modello ha la proprietà che
xJ = O oppure x1- = O (oppure entrambe). Di conseguenza, alla soluzione ottenuta con il
metodo del simplesso (una BFS),
xJ - x1-
+
x.
J
= {Xj
o
se x1 ;::: O,
altrimenti;
se x1 :::; O,
altrimenti;
cosicché xJ rappresenta la parte positiva della variabile decisionale x1 e x1- la sua parte
negativa (come suggerito dall'apice).
Per esempio, se x1 = lO, l'espressione precedente fornisce xJ = IO e x1- =O. Questo
stesso valore di x1 = xJ - x1- = lO può essere ottenuto con valori più grandi di xJ e x1a patto che xJ = x1- + 10. Riportando questi valori di xJ e x1- su un grafico bidimensionale si ottiene una serniretta con un estremo a xJ = 10, x1- = O per evitare violazioni dei
vincoli di nonnegatività. Questo estremo è un vertice sulla linea. Di conseguenza, solo
CAPITOLO 4
114
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
questo punto può far parte di un vettice o di una BFS comprendente tutte le variabili del
modello. Questo mostra perché ogni BFS ha necessariamente xf = O o xi- = O (oppure
entrambe).
Per illustrare l'uso di xf e xi- si ritorni all'esempio della pagina precedente in cui XI è
ridefinito come l'incremento rispetto al valore attuale pari a lO dell 'attuale tasso di produzione per il Prodotto l nel problema Wyndor Glass Co.
Tuttavia, si supponga che il vincolo XI ;:::: -l O non sia incluso nel modello originale
perché evidentemente non cambia la soluzione ottima. (In alcuni problemi, per alcune variabili non vi è bisogno di indicare un limite inferiore esplicitamente perché già i vincoli
funzionali non permettono valori troppo piccoli). Di conseguenza, prima che il metodo
del simplesso venga applicato, XI viene sostituito dalla differenza
XI
=xi- x;-
dove
xi ;: :
O,
x;- ;:::: O
come mostrato:
Massimizzare Z = 3x,
soggetto a
+ Sxz
< 4
2xz :5 I 2
3x, + 2xz :5 18
x1
Massimizzare Z = 3xi - 3x J"
xi - xl
soggetto a
xi ;: :
xz :2: O (solo)
+ Sxz
:5 4
2xz :5 12
3x i - 3x i +2~2 :5 18
O xJ" ;:::: O xz :2: O
Da un punto di vista computazionale, gli svantaggi di questo approccio sono che il nuovo
modello equivalente ha più variabili rispetto al modello originale. Di fatti, se tutte le variabili originali non hanno un limite inferiore, il nuovo modello avrà un numero di variabili
doppio. Fortunatamente, l'approccio può essere leggermente modificato in modo che il
numero di variabili aumenti solo di uno, indipendentemente da quante variabili originali
necessitano di essere sostituite. Questa modifica è fatta sostituendo ogni variabile x1 con
xi =x; -x"
dove
x; ;: :
O,
x" ;: : O
dove x" è la stessa variabile per tutti le componenti) per cui è necessaria la sostituzione.
L'interpretazione di x" in questo caso è che - x" è il valore attuale della pitì grande (in
termini assoluti) variabile originale negativa, in modo che xj rappresenta di quanto xi eccede questo valore. In questo modo, il metodo del simplesso può rendere alcune delle variabili xj maggiori di zero perfino quando x" > O.
4.7
ANALISI POSTOTTIMALE
Nei Paragrafi 2.3, 2.4 e 2.5 è stato sottolineato che l'analisipostottimale, - l'analisi dopo
avere ottenuto una soluzione per la versione iniziale del modello - costituisce una parte
considerevole e molto importante nelle più importanti applicazioni di ricerca operativa. Il
fatto che l'analisi postottimale sia molto importante è particolarmente vero nel caso della
programmazione lineare. In questo paragrafo, l'attenzione verrà focalizzata sul ruolo del
metodo del simplesso nell'esecuzione di questa analisi.
La Tabella 4.17 riassume i pa si fondamenta li nell'analisi postottimale per la programmazione lineare. La colonna più a destra identifica alcune tecniche algoritmiche relative al
metodo del simplesso. Qui. i fornirà olo una breve descrizione introduttiva di tali tecniche mentre per maggiori dettagli i rimanda ai capitoli successivi.
Riottimizzazione
Come discusso nel Paragrafo 3./. i modelli di programmazione lineare che si presentano
comunemente hanno dimensioni molto grandi. con centinaia, migliaia, o addirittura milioni di vincoli funzionali e di variabili d · ionali. In questi casi, al fme di considerare sce-
4.7
ANALISI POSTOTTIMALE
115
TABELLA 4.17 Analisi postottimale per la programmazione lineare
o
l-
li
il
ll.i
e_
00
Task
Obiettivo
Tecnica
Debugg ing del modello
Trovare errori e debolezze nel model lo
Riottimizzazione
Validazione del modello
Dimostrare la va lidità del modello finale
Vedere Paragrafo 2.4
Decisioni fina li del
management
sull'allocazione delle
risorse (i valo ri di b;)
Attuare un'adeg uata divisione delle risorse
dell'organizzazione tra le attività in esame
e altre importanti attività
Prezzi ombra
Valutazione delle stime
dei parametri del modello
Determinare le stime cruciali che possono
influenzare la soluzione ottima
Analisi della sensitività
Valutazione del trade-off
tra i parametri del modello
Determinare il trade-off migliore
Programmazione
lineare para metrica
nari differenti può essere necessario esaminare e risolvere parecchie varianti al modello
base. Di conseguenza, dopo aver detenninato una soluzione ottima per una versione di un
modello di programmazione lineare, per trovare la soluzione di una versione del modello
leggermente differente, il sistema deve essere risolto nuovamente (spesso molte volte).
Quasi sempre si deve procedere alla risoluzione svariate volte sia durante la fase di debugging (eliminazione di errori e incoerenze) del modello (descritta nei Paragrafi 2.3 e 2.4)
sia durante le fasi dell 'analisi postottimale.
Un possibile approccio è semplicemente quello di riapplicare il metodo del simplesso
per ogni nuova versione del modello, anche se, per problemi molto grandi, ogni esecuzione può richiedere centinaia o addirittura migliaia di iterazioni. Tuttavia, un approccio molto più efficiente è quello di riottimizzare. La riottimizzazione consiste nel dedurre come i
cambiamenti nel modello vengano riportati nel tableau (come descritto nei Paragrafi 5.3 e
6.6). Questo tableau modificato e la soluzione ottima per il modello precedente sono usati
come tableau iniziale e soluzione di base iniziale per la risoluzione del nuovo modello.
Se questa soluzione è ammissibile per il nuovo modello, allora il metodo del simplesso
viene applicato nel modo usuale partendo da questa BFS iniziale. Se la soluzione non è
ammissibile, può essere utilizzata una versione leggermente differente del metodo del
simplesso chiamato metodo duale del simplesso per determinare la nuova soluzione ottima, 16 partendo da questa soluzione di base iniziale.
Il principale vantaggio di questa tecnica di riottimizzazione rispetto alla soluzione del
problema dall'inizio è che una soluzione ottima per il modello modificato è molto più vicina alla soluzione ottima precedente rispetto a una BFS costruita nel solito modo per il
metodo del simplesso . Se sono state effettuate poche modifiche al modello, per la fase di
riottimizzazione sono in genere sufficienti solo poche iterazioni rispetto alle centinaia o
migliaia che possono essere richieste quando si ricominci da zero . Di fatto, le soluzioni ottime per i modelli precedenti e per quelli modificati sono spesso le stesse, nel qual caso la
tecnica di riottimizzazione richiede solo una verifica del test di ottimalità e nessuna iterazwne.
Prezzi ombra
m-
I problemi di programmazione lineare possono essere interpretati in termini di allocazione
di risorse ad attività. In particolare, quando i vincoli funzionali sono nella forma :::;, le
quantità b; (i termini noti) sono interpretate come le quantità delle varie risorse che sono
disponibili per le attività in esame. In molti casi, ci può essere una certa libertà d'azione
nello stabilire le quantità che saranno disponibili. In questo caso, i valori di b; usati realmente nel modello iniziale possono rappresentare una decisione iniziale provvisoria del
16
In questo caso, l'unico requisito per l' utilizzo del metodo del simplesso duale è che il test di ottimalità continui a essere soddisfano quando viene applicato all a riga O del tableau finale modificato. Altrimenti, può essere usato un altro algoritmo chiamato metodo prima/e-duale (primal-dual method).
116
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
management su quanto delle risorse dell'azienda verrà fornito alle attività considerate nel
modello invece che alle altre importanti attività che essi gestiscono. Da questo punto di vista, alcuni dei valori b; possono essere aumentati se al management viene fornito una indicazione dei benefici ottenibili.
Da ciò risulta come l'informazione sul contributo dato da ciascuna risorsa al rendimento totale (Z) sia estremamente utile. Il metodo del simplesso fornisce questa informazione
nella forma di prezzi ombra per le risorse.
Il prezzo ombra per la risorsa i (denotata da y;) misura il valore marginale di questa risorsa,
cioè il tasso a cui Z aumenta incrementando (di poco) la quantità disponibile di questa risorsa
18
(b;) 17 • Il metodo del simplesso identifica questo prezzo ombra come y7 =coefficiente della
i-esima variabile scarto nella riga O del tableau finale.
A titolo di esempio, per il problema Wyndor Glass Co. ,
risorsa i = capacità di produzione dello stabilimento i (i = l , 2, 3) resa disponibile
per i due nuovi prodotti considerati,
b; = ore di produzione (per settimana) disponibili nello stabilimento i per questi due nuovi prodotti.
Fornire una notevole disponibilità di tempo per la produzione dei nuovi prodotti richiede
l'adeguamento dei tempi di produzione per i prodotti correnti, così la scelta dei valori di
b;.diventa una difficile decisione manageriale. La decisione iniziale è stata
come indicato nel modello base del Paragrafo 3 .l e in questo capitolo. Tuttavia, adesso, il
management desidera valutare l'effetto del cambiamento di uno qualsiasi dei valori di b;.
I prezzi ombra per queste tre risorse forniscono proprio l'informazione di cui il management ha bisogno. Dal tableau finale nella Tabella 4.8 si ricava che
y 7 = O = prezzo ombra per la risorsa l ,
y; = ~
yj
= prezzo ombra per la risorsa 2,
= l = prezzo ombra per la risorsa 3.
Con appena due variabili decisionali, questi valori possono essere verificati controllando
graficamente che, andando a incrementare individualmente ciascun b; di l , il valore ottimo di Z cresce effettivamente di una quantità pari a y 7. Per esempio, la Figura 4.8 mostra
questo incremento per la Risorsa 2 riapplicando il metodo grafico presentato nel
Paragrafo 3.1. La soluzione ottima, (2, 6) con Z = 36, diventa (
~
,
~)
con Z = 37.5
quando b2 viene aumentata di l (da 12 a 13 ), cosicché
*
A
y 2 = D.Z = 37.5- 36 =
Dato che Z è espressa in migliaia di dollari,
y; = ~
23
indica che aggiungendo l ora in più
al tempo di produzione per settimana per questi due nuovi prodotti nello stabilimento 2, il
profitto totale aumenterà di l -oo dollari per settimana. Questo è vantaggioso? Tutto dipende dalla redditività degli altri prodotti che usano lo stesso tempo di produzione. Se è
17
L' incremento in b; deve essere sufficiemememe piccolo in modo tale che l'attuale insieme delle variabi li di
base si mantenga ottimo dato che questo tasso valore marginale) cambia se cambia l' insieme delle variabili di
base.
18
Nel caso di un vincolo funzional e nella forma ~ o nella forma =, il suo prezzo ombra è definito ancora come il tasso a cui Z aumenta incrementando 1di poco il \"3lore di b;, sebbene, adesso, la quantità b; non possa
essere generalmente interpretata come la quantità
di una risorsa.
• Figura·
Questo gra
il prezzo or
per la risors
problema V
Co. l due P
soluzioni ot
b2 = 12 o t
aumentand
va lore di Z;
*
3
Y2
=-y-
4.7
ANALISI POSTOTTIMALE
117
• Figura4.8
Questo grafico mostra che
il prezzo ombra è YÌ =
~
per la risorsa 2 per il
problema Wyndor Glass
Co. l due punti sono le
soluzioni ottime per
b2 = l 2 o bz = 13, e
au mentando b2 di l il
valore di Z aumenta di
*
3
Yz
=T
o
presente un prodotto tra quelli correnti che contribuisce per meno di 1500 dollari di profitto settimanale nello stabilimento 2, allora riservare parte del tempo di produzione ai nuovi
prodotti è vantaggioso.
Questi concetti verranno ripresi nel Paragrafo 6.7, dove il gruppo di RO della Wyndor
usa i prezzi ombra come parte della sua analisi della sensitività per il modello.
La Figura 4.8 mostra che
y; = ~
è il tasso a cui Z aumenta, incrementando di poco b 2 .
Tuttavia, essa indica pure come questa interpretazione ha senso solo per piccoli incrementi di b 2 • Una volta che b 2 oltrepassa il valore 18, la soluzione ottima rimane (0, 9) senza
successivi incrementi in Z (a quel punto, l'insieme delle variabili di base nella soluzione
ottima è stato modificato e si otterrà un nuovo tableau finale con nuovi prezzi ombra in
cuiy; = 0).
Si noti che yj = O in Figura 4.8. Poiché il vincolo sulla risorsa l, x 1 ::; 4, non è soddisfatto come uguaglianza (binding) nela soluzione ottima (2, 6), c'è un surplus di questa
risorsa. Di conseguenza, l'incremento di b 1 oltre il valore 4 non può fornire una differente
soluzione ottima con un valore maggiore di Z.
Al contrario, i vincoli sulle risorse 2 e 3, 2x2 ::; 12 e 3x 1 + 2x2 ::; 18, sono vincoli attivi, cioè vincoli soddisfatti come uguaglianza (binding). Dato che la limitatezza di queste
risorse (b 2 = 12, b 3 = 18) vincola Z da ulteriori incrementi, le risorse hanno prezzi ombra
positivi. Gli economisti si riferiscono a tali risorse come beni rari (scarce goods), mentre
le risorse disponibili in abbondanza (come la risorsa l) sono beni free (risorse con prezzo
ombra uguale a zero).
Il tipo di informazione fornita dai prezzi ombra è chiaramente valutabile dal management nel momento in cui questo deve prendere decisioni sulla riallocazione delle risorse
all'interno dell'organizzazione. Tale informazione è anche molto utile quando un incremento di bi può essere raggiunto solo acquisendo altre risorse ali' esterno dell 'organ izzazione. Per esempio, si supponga che Z misuri il profitto totale e che i profitti unitari (i valori di c1) includano i costi (ai prezzi attuali) di tutte le risorse consumate. Allora, un prezzo ombra positivo di
per la risorsa i significa che il profitto totale Z può essere aumentato di
acquistando una ulteriore unità di questa risorsa al suo prezzo abituale.
Alternativamente, se per acquistare la risorsa nel mercato deve essere pagato un sovrapprezzo, allora
rappresenta il massimo sovrapprezzo (il prezzo in eccesso rispetto al
y;
y;
y;
118
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
prezzo abituale) che conviene pagare. 19 Il fondamento teorico dei prezzi ombra è fornito
dalla teoria della dualità descritta nel Capitolo 6.
Analisi della sensitività
Quando alla fine del Paragrafo 3.3 si è discusso dell'ipotesi di certezza , è stato evidenziato che i valori usati per i parametri del modello (i termini au, b; e c1 identificati nella
Tabella 3.3) sono generalmente delle stime. Uno dei principali obiettivi dell'analisi della
sensitività è quello di identificare i parametri sensibili (cioè quelli che non possono essere modificati senza un cambiamento della soluzione ottima). I parametri sensibili sono i
parametri che necessitano di essere stimati con particolare attenzione per minimizzare il
rischio di ottenere una soluzione ottima non corretta. È inoltre necessario che essi vengano monitorati molto attentamente non appena la soluzione venga implementata. Se viene
rilevato che il valore reale di un parametro sensibile differisce dal suo valore stimato nel
modello è necessario modificare la soluzione.
Come vengono identificati i parametri sensibili? Nel caso di b;, è stato appena visto
che questa informazione è data dai prezzi ombra fomiti dal metodo del simplesso. In particolare, se
> O, allora la soluzione ottima cambia se b; viene modificato e b; è un pa= O implica che la soluzione ottima non è risente di piccorametro sensibile. Tuttavia,
li cambiamenti di b;. Di conseguenza, se il valore usato per b; è una stima della quantità
di risorsa disponibile, allora i valori di b; che necessitano di essere monitorati più attentamente sono quelli con prezzi ombra positivi - specialmente quelli con prezzi ombra
grandi.
Quando sono presenti esattamente due variabili, la sensitività dei vari parametri può
essere analizzata graficamente. Per esempio, in Figura 4.9, c 1 = 3 può essere cambiato a
un qualunque altro valore compreso tra O e 7.5 senza che la soluzione ottima cambi dalla
soluzione ottima corrente (2, 6). Il motivo è che qualunque valore di c 1 all'interno di questo intervallo mantiene la pendenza di Z = c 1x 1 + 5x2 tra le pendenze delle linee
2x2 = 12 e 3x 1 + 2x2 = 18. Allo stesso modo, se c 2 è l' unico parametro modificato, esso
può assumere un qualunque valore maggiore di 2 senza influenzare la soluzione ottima.
Quindi, né c 1 né c 2 sono parametri sensibili.
Il modo più semplice per analizzare graficamente la sensitività di ognuno dei parametri au è verificare se il vincolo corrispondente è legato alla soluzione ottima. Poiché
x 1 ::::; 4 non è un vincolo attivo, qualsiasi piccolo cambiamento nei suoi coefficienti
(a 11 = l , a 12 =O) non va a modificare la soluzione ottima, così questi non sono parametri sensibili. D'altro canto, sia 2x 2 ::::; 12 che 3x 1 + 2x2 ::::; 18 sono vincoli attivi, così la
modifica di uno qualunque dei loro coefficienti (a 21 = O, a22 = 2, a3 1 = 3, a32 = 2) porta
a cambiamenti nella soluzione ottima e di conseguenza questi sono parametri sensibili.
Tipicamente, una maggiore attenzione è dedicata all'esecuzione dell'analisi della sensitività per i parametri b; e c1 rispetto a quella sui parametri au. In problemi reali concentinaia o migliaia di vincoli e variabili, l'effetto del cambiamento del valore di un singolo
coefficiente au è normalmente trascurabile, mentre il cambiamento del valore di b; o di c1
può avere un forte impatto. Per di più, in molti casi, i valori di au sono determinati dalla
tecnologia usata (i valori di au sono talvolta chiamati coefficienti tecnologici), così ci possono essere incertezze relativamente piccole (o nessun dubbio) sui loro valori. Ciò è positivo poiché nei problemi di grandi dimensioni ci sono molti più parametri au che parametri b; e c1.
Per problemi con più di due (o tre) ...-ariabili decisionali, l'analisi della sensitività sui parametri non può essere eseguita grafi ameme così come fatto per il problema Wyndor
Glass Co. Tuttavia, lo stesso tipo di intòrmazione può essere estratta dal metodo del simplesso.
y;
19
y;
Se le unità di profitto non includono i costi d e ris
totale per unità che conviene pagare per incremem:u
~ ronsumate. allora Y7 rappresenta il massimo prezzo
• Figura
Questo gn
l'a nalisi de
c1 e c2 per
WyndorG
Partendo c
definisce le
obiettivo o
c1 = 3, c2 ,
ottima (2,
rette mostr
estremi cio
cambiare lé
della retta<
la funzione
(2, 6). ance
ottima. Per
l'intervallo 1
0 S: C1 S: 7.
l'intervallo i
Figura4.·
Il report di ser
fo rnito dal Ris
per il problerr
Glass Co.
l19
• Figura 4.9
Questo grafico dimostra
l'ana lisi della sensitività per
c1 e c2 per il problema
Wyndor Glass Co.
Partendo con la retta che
definisce la funz ione
obiettivo orig inale [con
c1 = 3, c2 = 5, e soluzione
ottima (2, 6)], le altre due
rette mostrano i va lori
estremi cioè di quanto può
cambiare la pendenza
della retta che rappresenta
la fu nzione obiettivo con
(2, 6). ancora soluzione
otti ma. Per c2 = 5,
l'intervallo per c1 è
O :s; c1 :s; 7.5 . Per c1 = 3,
l'intervallo è c2 2: 2.
Z
= 45 = 7.5x 1 + Sx2
(o Z = 18 = 3x 1 + 2x2 )
Regione
ammissibile
o
2
4
L'ottenimento di questa informazione richiede l'uso dell'osservazione riportata nel
Paragrafo 5.3 per dedurre i cambiamenti che si presenteranno nel tableau finale come risultato del cambiamento del valore di un parametro nel modello originale. La procedura è
descritta e illustrata nei Paragrafi 6.6 e 6.7.
Uso di Excel per generare l'analisi della sensitività
Normalmente, l 'analisi di sensitività è inclusa ali 'interno dei pacchetti software basati sul
metodo del simplesso. Per esempio, il Risolutore di Excel genera l'informazione necessaria all ' analisi della sensitività, qualora richiesto. Come è stato mostrato in Figura 3.21 ,
quando il risolutore visualizza il messaggio che è stata determinata una soluzione ottima,
esso visualizza pure sulla destra una lista dei tre report che possono essere forniti .
Selezionando il secondo (etichettato "Sensibilità") dopo aver risolto il problema Wyndor
Glass Co. , si ottiene il report mostrato in Figura 4.10. In questo report la tabella superiore
fornisce l'infmmazione ottenuta dall'analisi di sensitività relativamente alle variabili decisionali e ai loro coefficienti nella funzione obiettivo. La tabella in basso fa lo stesso per i
vincoli funzionali e i termini noti.
Celle modificabili
Cella
$C$12
$0$12
Nome
Lotti di porte prodotti
Lotti di finestre prodotti
Valore Ridotto Oggettivo Consentito Consentito
finale costo coefficiente incremento decremento
2
6
o
o
3000
5000
4500
l E+30
3000
3000
Vincoli
Cella
Figura4.10
report di sensitività
=ornito dal Risolutore Excel
:>er il problema Wyndor
Glass Co.
$E$7
$E$8
$E$9
Nome
Stabilimento impiegato l
Stabilimento impiegato 2
Stabilimento impiegato 3
Valore Ombra
finale prezzo
2
12
18
o
1500
1000
Vincolo
a destra
o
o
o
Consentito Consentito
incremento decremento
1E+30
2
6
6
6
6
120
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
Si esamini per prima la tabella in alto in questa figura. La colonna "Valore finale" indica
il valore della soluzione ottima. La colonna successiva fornisce i costi ridotti. (Per adesso
questi non verranno presi in considerazione dato che l'informazione che essi possono fornire può essere ricavata dal resto della tabella superiore). Le tre colonne successive forniscono, per ogni coefficiente c1 della funzione obiettivo, l' informazione necessaria a identificare l' intervallo di ottimalità.
Per qualunque c1, il relativo intervallo di ottimalità è l'intervallo di valori assegnab ili a tale
coefficiente così che la soluzione ottima corrente resti ottima, assumendo che gli altri coefficienti non siano stati modificati.
La colonna "Oggettivo coefficiente" indica il valore corrente di ciascun coefficiente mentre le due colonne successive forniscono il massimo incremento e decremento possibile.
Il modello risolto mediante foglio elettronico (Figura 3.22) esprime i profitti in unità di
dollari, mentre i termini c1 nella versione algebrica del modello di programmazione lineare sono espressi in migliaia di dollari, così che le quantità presenti in queste tre colonne
necessitano di essere divise per l 000 in modo da usare le stesse unità di misura usate per
c1. Di conseguenza,
3000- 3000
3000 + 4500
< c l < ---..,.----,---1000
1000
e
è l'intervallo di ottimalità per c 1 entro il quale la corrente soluzione ottima resterà ottima
(assumendo c2 = 5), proprio come è stato determinato graficamente in Figura 4.9. Allo
stesso modo, ricordando che Excel usa lE+ 30 (10 30 ) per rappresentare +oo, si ha che
5000-3000
5000 + 00
<c2 < -- - -1000
1000
e
è l'intervallo di ottimalità per c2 . Il fatto che per i coefficienti di entrambe le variabili decisionali, sia l'incremento ammissibile che il decremento ammissibile siano maggiori di zero, fornisce un altro pezzo di informazione utile, come descritto di seguito.
Quando la tabella in alto del report di sensitività generato dal Risolutore di Excel indica che
per ogni coefficiente dell a fun zione obiettivo sia l' incremento ammissibile sia il decremento
ammissibile sono maggiori di zero, questo è indice che la soluzione ottima riportata nella colonna "Valore finale" è unica. Viceversa, un incremento o decremento uguale a zero è indice
che si è in presenza di soluzioni ottime multiple. Modificando il corrispondente coefficiente
di una quantità anche molto piccola e risolvendo nuovamente si ottiene un altro vertice per il
modello originale.
Si consideri adesso la tabella in basso in Figura 4.10 che focalizza l'attenzione sull'analisi
di sensitività per i tre vincoli funzionali. La colonna " Valore finale " indica il valore della
quantità a sinistra del vincolo all'ottimo. Le due colonne successive forniscono il prezzo
ombra e il valore corrente del termine noto (b;) per ogni vincolo. Questi prezzi ombra sono qui espressi in dollari e pertanto, per usare la stessa unità di misura del modello algebrico, occorre dividere per 1000. Quando un solo valore di b; viene modificato, le ultime
due colonne forniscono il mas imo incremento e decremento possibile in modo da rimanere all'interno del suo interYallo di ammissibilità.
Per un singolo termine noto b;. il orri pondente intervallo di ammissibilità è l'intervallo di valori per questo termine noto per i quali la BFS ottima corrente (con valori opportunamente adeguati20 per le variabili di base) rimane ammissib ile, assumendo che non vi sia nessun cambia-
mi come sol uzione di un sistema di equazioni (i vincoli fun. valori cambia se cambia il valore dei termini noti.
Tuttavia, i nuovi valori per il corrente · ·
negatività e, così, questo punto sarà
ra ==,.,u
il nuovo valore del termine noto rimane all'interno
- luzione di base modificata è ancora ammissibile, essa
del corrispondente intervallo di ammj--~
4.8
4.8
121
IMPLEMENTAZIONE AL COMPUTER
mento per i rimanenti termini noti. Una proprietà fondamentale di questo intervallo di valori è
che il corrente prezzo ombra per b; resta valido ai fini della valutazione dell'effetto dei cambiamenti di b; su Z solo fino a quando b; rimane ali ' interno de li ' intervallo di ammissibilità.
Così, usando la tabella in basso nella Figura 4.1 O, sulla base delle informazioni contenute
nelle ultime due colonne e dei valori correnti dei termini noti, si hanno i seguenti intervalli di ammissibilità:
2
~
b,
6 ~ b2 ~ 18
12
~
b3
~
24
Questo report generato dal Risolutore di Excel è un esempio tipico delle informazioni ne·cessarie per questa analisi fomite dai pacchetti software per la programmazione lineare.
Programmazione lineare parametrica
L 'analisi della sensitività consiste nel cambiamento di un singolo parametro nel modello
originario al fine di verificare l'effetto di tale cambiamento sulla soluzione ottima. Al contrario, la programmazione lineare parametrica (o, in breve, la programmazione parametrica) riguarda lo studio sistematico di come cambia la soluzione ottima quando più
parametri cambiano simultaneamente in un intervallo. Questo studio può fornire una
estensione molto utile dell'analisi della sensitività, per esempio verificando l'effetto di parametri "correlati" che cambiano contemporaneamente a causa di fattori esogeni come lo
stato dell 'economia. Tuttavia, un 'applicazione molto più importante è investigare l'effetto
di trade-off tra i valori dei parametri. Per esempio, se i valori di c1 rappresentano i profitti
unitari per ciascuna attività, può essere possibile aumentare qualcuno dei valori di c1 a scapito del decremento di altri per mezzo di un appropriato spostamento del personale e delle
attrezzature tra le attività. Allo stesso modo, se i valori di b; rappresentano le quantità di
risorse disponibili, può essere possibile incrementare alcuni dei valori di b; convenendo di
accettare decrementi in qualcuno degli altri. L'analisi di tali possibilità è discussa e illustrata alla fine del Paragrafo 6.7.
In alcune applicazioni, il principale obiettivo dello studio è determinare il trade-off più
appropriato tra due fattori di base, come costi e benefici. L'approccio usuale consiste nell'esprimere uno di questi fattori nella funzione obiettivo (per esempio, minimizzare il costo totale) e incorporare l'altro all'interno dei vincoli (per esempio, benefici 2: minimo livello accettabile), come è stato fatto per il problema dell'inquinamento atmosferico Nori
& Leets Co. nel Paragrafo 3.4. La programmazione lineare parametrica permette, allora,
un'indagine sistematica di cosa succede quando la decisione iniziale sul trade-off (per
esempio il livello minimo accettabile per i benefici) è modificata cambiando un fattore a
spese dell'altro.
La tecnica algoritmica per la programmazione lineare parametrica è una naturale estensione di quella per l'analisi di sensitività ed è basata sul metodo del simplesso.
4.8
IMPLEMENTAZIONE AL COMPUTER
Se il computer non fosse stato inventato, con molta probabilità nessuno avrebbe mai sentito parlare di programmazione lineare e di metodo del simplesso. Anche se il metodo del
simplesso può essere eseguito a mano per risolvere problemi di programmazione lineare
di piccole dimensioni, è sicuramente noioso eseguire ripetutamente i calcoli richiesti per
la risoluzione del problema. In ogni caso, il metodo del simplesso si adatta perfettamente
all'esecuzione su un computer. È proprio la rivoluzione informatica che ha reso possibile
la grande diffusione della programmazione lineare negli ultimi decenni .
122
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
Implementazione del metodo del simplesso
Un'ampia gamma di codici che implementano il metodo del simplesso è oggi disponibile
per tutti i moderni sistemi informatici. Normalmente, questi codici fanno parte di un sofisticato pacchetto software per la programmazione matematica che include molte delle procedure che saranno descritte nei capitoli successivi (compresa quella usata per l'analisi
postottimale).
Questi codici non seguono petfettamente né la forma algebrica né la forma tabellare
del metodo del simplesso presentate nei Paragrafi 4.3 e 4.4. ma usano unajòrma matriciale (comunemente chiamata metodo del simplesso rivisitato) che si adatta molto bene a
una implementazione al computer. Questa forma produce gli stessi risultati ottenuti con la
forma algebrica o con la forma tabellare, ma in questo caso il procedimento consiste nell'elaborazione e nella memorizzazione dei soli dati che sono realmente necessari all'iterazione corrente; in questo modo i soli dati essenziali vengono rappresentati in una forma
più compatta. Il metodo del simplesso modificato è descritto nel Paragrafo 5.2.
Il metodo del simplesso viene usato per risolvere problemi di programmazione lineare
di grandi dimensioni. Problemi con svariate migliaia di vincoli funzionali e un numero anche maggiore di variabili decisionali sono comunemente risolti utilizzando desktop e
workstation. Problemi con centinaia di migliaia di vincoli funzionali e milioni di variabili
decisionali sono stati anche risolti con successo. 21 Per alcuni speciali classi di problemi di
programmazione lineare (problemi di trasporto, assegnazione e flusso a costo minimo che
verranno descritti successivamente) problemi di dimensioni perfino maggiori possono essere risolti con versioni specializzate del metodo del simplesso.
Diversi fattori influiscono sul tempo necessario per risolvere un problema di programmazione lineare con il metodo del simplesso. Il più importante di questi fattori è il numero di vincoli funzionali. Di fatto , il costo computazionale tende a essere all'incirca proporzionale al cubo di questo numero, così se questo numero raddoppia, il tempo di computazione viene moltiplicato per un fattore approssimativamente pari a 8. Al contrario, il numero di variabili è un fattore di minore importanza.22 Così, anche se il numero di variabili
raddoppia non è detto che anche il tempo di computazione diventi il doppio.
Un terzo fattore di una certa importanza è la densità della matrice dei coefficienti dei
vincoli (cioè la proporzione di coefficienti diversi da zero), poiché essa influenza il tempo
di computazione per una singola iterazione. (Per i problemi di grandi dimensioni è comune avere una densità sotto il 5 percento o addirittura sotto l' l percento e tale sparsità può
essere sfruttata per accelerare significativamente il metodo del simplesso). Va infine notato che, nella maggioranza dei casi, il numero di iterazioni richieste dal metodo del simplesso è all'incirca pari al doppio del numero dei vincoli funzionali .
Per problemi di programmazione lineare di grandi dimensioni è inevitabile che vengano commessi errori e adottate decisioni sbagliate nella fonnulazione iniziale del modello e
nel suo inserimento al computer. Di conseguenza, come discusso nel Paragrafo 2.4, è necessario un completo processo di testing e di validazione del modello. Il risultato fmale
non è il solito singolo modello statico risolto una sola volta con il metodo del simplesso.
Il team di RO e il management, invece, esaminano una lunga serie di varianti del modello
base (qualche volta persino migliaia di varianti) per considerare differenti scenari come
parte dell 'analisi postottimale. Questo intero processo risulta essere fortemente accelerato
nel caso in cui esso possa essere eseguito in modo interattivo. Questo oggi, grazie a linguaggi di modellazione algebrica e ali 'utilizzo di nuove tecnologie con computer sempre
più potenti, è una realtà.
21
Affrontare un problema si tali dimensioni richiede un sofi ticato software per la programmazione lineare che
usi le tecniche più recenti per sfruttare la sparsità della matrice dei coefficienti come pure altre speciali tecniche (quali tecniche di crashing per determinare velocemente una BFS iniziale).
22
Questo è vero per il metodo del simplesso rivisitato.
4.9
4.9
L'APPROCCIO A PUNTI INTERNI
123
Fino alla metà degli anni Ottanta, i problemi di programmazione lineare venivano risolti
quasi esclusivamente su mainframe. Oggi problemi di programmazione lineare sono risolti su workstation e desktop. Per riso lvere problemi di programmazione lineare di grandi
dimensioni si utilizzano singole workstation o cluster di workstation che operano in parallelo. l personal computer più veloci non sono di certo inferiori, sebbene la risoluzione di
modelli di grandi dimensioni richieda una notevole quantità di memoria aggiuntiva.
4.9
L'APPROCCIO A PUNTI INTERNI PER RISOLVERE PROBLEMI
DI PROGRAMMAZIONE LINEARE
Il più sensazionale nuovo sviluppo nella ricerca operativa durante gli anni Ottanta fu la
scoperta del metodo a punti interni per la risoluzione di problemi di programmazione lineare. Questa scoperta fu fatta nel 1984 da un giovane matematico della AT &T, Narendra
Karmarkar, che sviluppò un nuovo algoritmo per la programmazione lineare basato su tale di approccio. Sebbene questo specifico algoritmo mostrò solo un limitato successo come antagonista del metodo del simplesso, la sua caratteristica fondamentale descritta di
seguito mise in evidenza l'enorme potenziale del metodo per la risoluzione di problemi di
programmazione lineare di grandi dimensioni addirittura superiore alle potenzialità offerte
dal metodo del simplesso. Molti importanti ricercatori hanno lavorato successivamente a
modifiche dell'algoritmo di Karmarkar per sfruttarne pienamente questo potenziale e sono
stati sviluppati numerosi algoritmi che usano un approccio a punti interni. Attualmente, i
più potenti pacchetti software che sono progettati per risolvere problemi di programmazione lineare di grandi dimensioni (per esempio CPLEX) includono almeno un algoritmo
che usa un approccio a punti interni insieme al metodo del simplesso e alle sue varianti.
Parallelamente alla ricerca teorica su questi algoritmi, nuove e migliori implementazioni
sono anche sviluppate. Questo ha rinnovato l'interesse verso il metodo del sirnplesso e
pertanto migliori e più sofisticate implementazioni di quest'ultimo metodo sono state sviluppate. La competizione tra i due approcci per la supremazia nella risoluzione di problemi di grandi dimensioni è ancora in corso.
Adesso verrà dato uno sguardo all'idea chiave dell'algoritmo di Karmarkar e alle sue
varianti successive che usano un approccio a punti interni.
L'idea fondamentale dei metodi a punti interni
Anche se radicalmente diverso dal metodo del simplesso, l'algoritmo di Karmarkar ne
condivide alcune delle caratteristiche. Esso è un algoritmo iterativo. Inizia identificando
una soluzione iniziale ammissibile. A ogni iterazione, si muove dalla soluzione corrente
verso una soluzione migliore all'interno della regione ammissibile. Il processo continua fino a quando l'algoritmo non trova una soluzione che è (essenzialmente) ottima.
La principale differenza risiede nella natura di queste soluzioni generate. Per il metodo
del simplesso, le soluzioni sono vertici (o BFS nella forma aumentata), così che tutti gli
spostamenti avvengono lungo gli spigoli della frontiera della regione ammissibile. Per
l'algoritmo di Karmarkar, le soluzioni sono punti interni, cioè punti all'interno della regione ammissibile. Per questo motivo, all'algoritmo di Karmarkar e alle sue varianti ci si
riferisce come algoritmi a punti interni.
A volte, tale algoritmo viene chiamato anche metodo a barriera (barrier method). Il
termine barriera è usato perché, dal punto di vista della ricerca di soluzioni che sono punti
interni, ogni vincolo che definisce la frontiera è trattato come una barriera insuperabile.
Attualmente, la maggior parte dei pacchetti software usano il termine barriera quando si
riferiscono al solutore basato su un approccio a punti interni. Sia le API di CPLEX che
quelle di LINDO includono un "metodo a barriera" che può essere usato per risolvere sia
problemi di programmazione lineare sia problemi di programmazione quadratica (discussi
nel Paragrafo l 0.7).
124
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
Xz
(2, 6) soluzione ottima
6
( 1.56, 5.5)
(1.38, 5)
(1.27,4)
4
2
• Figura 4.11
La curva da (l, 2) a (2, 6)
mostra un tipico cammino
seguito da un algoritmo a
punti interni attraverso
l'in terno della reg ion e
amm issibile per il
problema Wyndor
Glass Co.
(1, 2)
o
4
2
Al fine di illustrare l' approccio a punti interni , si consideri la Figura 4. 11 che mostra i passi effettuati da un algoritmo a punti interni quando esso viene applicato al problema
Wyndor Glass Co. partendo dalla soluzione iniziale (l , 2). Si può notare come tutte le soluzioni generate (i punti nella Figura 4.11) si trovano all'interno strettamente della regione ammissibile così come il cammino che porta alla soluzione ottima (2, 6). Anche tutte le
soluzioni successive non mostrate esplicitamente in Figura 4 .11 si trovano all ' interno della frontiera della regione ammissibile. Questo cammino si contrappone a quello seguito
dal metodo del simplesso lungo la fro ntiera della regione ammissibile da (0, O) a (2 , 6).
TABELLA 4.18 Output dell'algoritmo del punto interno per il problema
Wyndor Glass Co.
lterazlone
xl
x2
z
1.27298
1.37744
1.56291
1.80268
1.9213 4
1.96639
1.98385
1.99197
1.99599
1.99799
1.999
1.9995
1.99975
1.99987
1.99994
2
4
5
5.5
5.71816
5.82908
5.90595
5.95199
5.97594
5.98796
5.99398
5.99699
5.9985
5 .99925
5.99962
5 .99981
13
23.8189
29.1323
32 .1887
33 .9989
34.9094
35.429
35.7115
35.8556
35.9278
35 .96 39
35 .9819
35 .991
35 .9955
35.9977
35.9989
o
l
2
3
4
5
6
7
8
9
lO
11
12
13
14
15
4.9
L'APPROCCIO A PUNTI INTERNI
125
Confronto con il metodo del simplesso
Un modo significativo di confrontare gli algoritmi a punti interni con il metodo del simplesso consiste nell'esaminare, per entrambi gli algoritmi, le proprietà teoriche relative alla complessità computazionale. Karmarkar ha dimostrato che la versione originale del suo
algoritmo è un algoritmo di tipo polinomiale cioè il tempo richiesto per risolvere un
qualsiasi problema di programmazione lineare è limitato da una funzione polinomiale nella dimensione del problema. Per dimostrare che il metodo del simplesso non gode di questa proprietà sono stati costruiti controesempi specifici che mostrano che esso risulta essere un algoritmo di tipo esponenziale (cioè il tempo richiesto può essere limitato solo da
una funzione esponenziale nella dimensione del problema). Questa differenza, nel caso
peggiore, è notevole. Tuttavia, questo non dice nulla sulla performance media per problemi reali, che è, di fatto, la questione più importante.
I due fattori base che determinano la performance di un algoritmo relativamente a un
problema sono il tempo medio per iterazione (average computer time per iteration) e il
numero di iterazioni. I confronti successivi riguardano proprio questi fattori.
Gli algoritmi a punti interni sono molto più complessi rispetto al metodo del simplesso.
Per determinare il successivo punto è richiesto un maggior sforzo computazionale. Di
conseguenza, il tempo impiegato per una singola iterazione nell'algoritmo a punti interni
è maggiore di quello impiegato nel metodo del simplesso.
Per problemi di piccole dimensioni, il numero di iterazioni richiesto dali' algoritmo a
punti interni e dal metodo del simplesso tende a essere comparabile. Per esempio, per un
problema con 10 vinco li funzionali , per entrambi i tipi di algoritmi sono necessari approssimativamente 20 iterazioni. Di conseguenza, il tempo totale impiegato per l'esecuzione
dell 'algoritmo a punti interni tenderà a essere maggiore di quello impiegato per il metodo
del simplesso.
Un vantaggio fondamentale degli algoritmi a punti interni è che i problemi di grandi dimensioni non richiedono molte più iterazioni di quelle necessarie per risolvere problemi
di piccole dimensioni. Per esempio, un problema con lO 000 vincoli funzionali richiederà,
probabilmente, molto meno di 100 iterazioni. Anche a voler considerare un tempo periterazione molto lungo, poiché il numero di iterazioni è così piccolo, il problema risulta perfettamente trattabile nonostante le sue grandi dimensioni. Al contrario, il metodo del simplesso potrebbe richiedere anche 20 000 iterazioni o più e di conseguenza una tempo di
esecuzione non accettabile. Quindi, per problemi di dimensioni molto grandi gli algoritmi
a punti interni sono spesso più veloci del metodo del simplesso.
La ragione di questo enorme divario nel numero di iterazioni nel caso di problemi di
grandi dimensioni risiede nella differenza dei cammini seguiti. A ogni iterazione, il metodo del simplesso si muove dal vertice corrente verso un vertice adiacente lungo uno spigolo sulla frontiera della regione ammissibile. I problemi di grandi dimensioni hanno un numero astronomico di vertici. Il percorso dal vertice iniziale verso una soluzione ottima
può essere quindi molto tortuoso effettuando solo un piccolo passo alla volta verso il successivo vertice adiacente; in tal modo per raggiungere una soluzione ottima potrebbe essere richiesto un numero elevato di iterazioni. Al contrario, un algoritmo a punti interni supera questa difficoltà muovendosi velocemente all'interno della regione ammissibile nella
direzione della soluzione ottima. L'aggiunta di ulteriori vincoli funzionali rende più complessa la frontiera della regione ammissibile, ma produce solo un piccolo effetto sul numero di punti interni generati dal metodo. Ciò rende possibile agli algoritmi a punti interni di
risolvere problemi con un numero elevato di vincoli funzionali.
Un'ultima importante differenza tra i due metodi riguarda l'abilità di eseguire i vari tipi
di analisi postottimale descritti nel Paragrafo 4.7. Il metodo del simplesso e le sue estensioni si adattano molto bene per questo tipo di analisi e per tale motivo viene largamente
usato. Sfortunatamente, in questo contesto, l'approccio a punti interni ha una limitata capacità. Data la grande importanza dell 'analisi postottimale, questo è uno svantaggio cruciale degli algoritmi a punti interni. Di seguito verrà messo in evidenza come il metodo
126
CAPITOLO 4
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
del simplesso può essere combinato con l'approccio a punti interni per superare questo inconveniente.
l ruoli complementari del metodo del simplesso e dell'approccio
a punto interno
La ricerca in corso continua a fornire sostanziali miglioramenti relativamente alle implementazioni del metodo del simplesso (compreso le sue varianti) e degli algoritmi a punti interni. Di conseguenza, qualsiasi previsione sui loro futuri ruoli è rischiosa. Tuttavia,
di seguito si vuole riassumere la valutazione attuale dei loro ruoli complementari.
Il metodo del simplesso (e le sue varianti) continua a essere l'algoritmo standard d'uso
ordinario per la programmazione lineare. Esso continua a essere il più efficiente algoritmo
per problemi con qualche centinaia di vincoli funzionali. Esso è anche il più efficiente per
alcuni (ma non per tutti) problemi con migliaia di vincoli funzionali e un numero quasi illimitato di variabili decisionali e pertanto la maggior parte degli utenti continua a usarlo
per la risoluzione di tali problemi. Tuttavia, non appena il numero di vincoli funzionali
cresce ulteriormente, diventa sempre più probabile che un approccio a punti interni risulti
molto più efficiente e quest'ultimo metodo è preferito al metodo del simplesso. Quando il
problema è caratterizzato da decine di migliaia di vincoli funzionali, l'approccio a punti
interni può essere l' unico capace di risolverlo. Certamente questo non si verifica sempre.
Come accennato nel precedente paragrafo, allo stato attuale dell'arte, i più sofisticati software usano con successo il metodo del simplesso e le sue varianti per risolvere accuratamente problemi con centinaia di migliaia, o addirittura milioni di vincoli funzionali e variabili decisionali.
Queste considerazioni generali su come l' approccio a punti interni e il metodo del simplesso possano confrontarsi su problemi di varie dimensioni non sono sempre valide. È
importante quale specifico pacchetto software venga usato e inoltre il confronto è influenzato in modo considerevole dallo specifico tipo di problema di prograrnn1azione lineare
che deve essere risolto. Co l tempo, occorrerà imparare molto di più su come identificare i
tipi specifici di problemi che meglio sono risolti da ciascun algoritmo.
Una delle conseguenze dell'affermazione dell'approccio a punti interni è stato un rinnovato interesse nel migliorare l'efficienza delle implementazioni del metodo del simplesso. Come già indicato, un impressionante progresso è stato realizzato negli ultimi anni.
Allo stesso tempo, la ricerca attualmente in corso sugli algoritmi a punti interni favorirà lo
sviluppo delle capacità di questo approccio, e forse, a un ritmo anche più veloce rispetto
al metodo del simplesso.
Il miglioramento della tecnologia e il calcolo parallelo (con un numero elevato di computer che risolvono in parallelo parti differenti dello stesso problema), aumenterà sostanzialmente la dimensione dei problemi che si possono affrontare con entrambi i tipi di algoritmo. Tuttavia, in questo momento, sembra che i metodi a punti interni possano ottenere
maggiori vantaggi dal calcolo parallelo rispetto al metodo del simplesso.
Come discusso prima, uno dei principali svantaggi dei metodi a punti interni è la loro
limitata capacità nell 'esecuzione dell 'analisi postottimale. Per superare questo inconveniente, i ricercatori hanno sviluppato e continuano a sviluppare procedure per passare
automaticamente al metodo del simplesso dopo l'applicazione di un algoritmo a punti intemi . I punti generati con un algoritmo a punti interni si avvicinano a una soluzione ottima (il vertice migliore), senza mai però raggi un gerla esattamente. Di conseguenza, una
procedura per passare al metodo del simplesso richiede l'identificazione di un vertice ammissibile (o di una BFS nella forma aumentata) che è molto vicino alla soluzione finale
prodotta dall ' algoritmo a punti interni.
Per esempio, facendo riferimento alla Figura 4.11 , è facile osservare che la soluzione
finale nella Tabella 4.18 è molto \icina al vertice (2, 6). Sfortunatamente, in problemi con
migliaia di variabili decisionali (in cui il grafico non è disponibile), l'identificazione di un
ve1tice ammissibile (o di una BF ) vicina è un compito impegnativo e che richiede parec-
4.10
4.10
CONCLUSIONI
127
chio tempo. Tuttavia, anche in questo caso lo sviluppo di opportune procedure ha portato
a buoni risultati.
Una volta che una BFS vicina è stata trovata, il test di ottimalità permette di verificare
se questa soluzione corrente è la BFS ottima. Se non è ottima, vengono eseguite alcune
iterazioni del metodo del simplesso per spostarsi da questa BFS verso una soluzione ottima. In generale, sono sufficienti pochissime iterazioni (forse una) poiché l'algoritmo a
punti interni termina molto vicino a una soluzione ottima. Di conseguenza, queste iterazioni dovrebbero essere eseguite abbastanza velocemente, perfino per problemi di grandi
dimensioni che non possono essere risolti soltanto con il metodo del simplesso. Dopo che
una soluzione ottima viene raggiunta, il metodo del simplesso e le sue varianti vengono
applicati nell'esecuzione dell 'analisi postottimale.
A causa delle difficoltà che emergono durante l'applicazione di una procedura di passaggio (compreso il tempo aggiuntivo richiesto dal computer), alcuni preferiscono usare il
metodo del simplesso sin dall ' inizio. Ciò ha senso quando si affrontano problemi così
grandi che è vantaggioso (ma solo di poco) usare un algoritmo a punti interni rispetto al
metodo del simplesso. Questa modesta diminuzione di tempo non giustifica né il tempo
ulteriore richiesto per una procedura di passaggio né l'alto costo per l'acquisto di un pacchetto software basato sull'approccio a punti interni. Tuttavia, per organizzazioni che devono risolvere frequentemente problemi di programmazione lineare di grandi dimensioni,
l'acquisto di un moderno pacchetto software di questo tipo (che include una procedura di
passaggio) risulta essere, con molta probabilità, proficuo. Per problemi di enormi dimensioni, questo approccio può essere l'unico per risolvere simili problemi.
Le applicazioni dei modelli di programmazione lineare di grandi dimensioni portano
alcune volte al risparmio di milioni di dollari. Questo può giustificare l'acquisto di uno
specifico pacchetto software basato su metodi a punti interni con una procedura di passaggio al metodo del simplesso al tennine.
4.10
i..
o
l-
CONCLUSIONI
Il metodo del simplesso è un algoritmo efficiente e affidabile per la risoluzione di problemi di programmazione lineare. Esso fornisce inoltre le basi per eseguire le varie parti dell'analisi postottimale in modo molto efficiente.
Sebbene abbia un'utile interpretazione geometrica, il metodo del simplesso è una procedura algebrica. A ogni iterazione, si muove dalla BFS corrente verso una migliore BFS
adiacente scegliendo una variabile entrante in base e una variabile uscente dalla base e utilizzando il metodo di eliminazione di Gauss per risolvere un sistema di equazioni lineari.
Quando la soluzione corrente non ha una migliore BFS adiacente, essa è ottima e l'algoritmo termina.
In questo capitolo è stato introdotto il metodo del simplesso nella forma algebrica al fine di comprenderne la sua logica; quindi il metodo è stato presentato in una forma tabellare più conveniente. Per determinare la soluzione iniziale per il metodo del simplesso, è alcune volte necessario usare variabili ausiliarie per ottenere una BFS iniziale per un problema modificato. In tal caso, per garantire che il metodo del simplesso trovi una soluzione
ottima per il problema originario, viene usato o il metodo del Big M o il metodo delle due
fasi.
Le implementazioni del metodo del simplesso e le sue varianti sono diventati così potenti che adesso vengono usati per risolvere problemi di programmazione lineare con migliaia di vincoli funzionali e di variabili decisionali, e anche più grandi. Gli algoritmi a
punti interni forniscono inoltre un potente tool per risolvere problemi di maggiori dimensioni.
CAPITOLO 4
128
•
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
soggetto a
RIFERIMENTI BIBLIOGRAFICI
l. Bixby, R.E.: "Solving Real-World Lineru· Programs: A Decade and More of Progress" ,
Operations Research, 50(1): 3- 15, Jan.-Feb. 2002.
2. Dantzig, G.B., e M. N. Thapa: Linear Programming 1: Jntrodu ction , Springer, New York,
1997.
3....-Eourer, R.: "Survey of Linear Programming Software", O R!MS Today, August 200 l , pp. 58-68.
4. LINDO User's Manual, LINDO Systems, Inc., Chicago, IL, e-mail: [email protected], 1999 .
5. Maros, I.: Computational Techniques of the Simplex Method, Kluwer Academic Publishers,
Boston, MA, 2003.
6. Vanderbei, R.J.: Linear Programming: Foundations and Extensions, 2nd ed., Kluwer
Academic Publishers, Boston, MA, 200 l.
•
e
Xi
(a) Identifi
Disting
sono.
(b) Calcola
- vertici.
zione ot
(c) Usare l
Paragrat
esamina
zione ot
sono po~
PROBLEMI
4.1-1. Si consideri il seguente problema.
Z =Xi + 2x2
Massimizzare
Xi
:S 2
Xi
+ Xz :S 3
(e) Descrivere graficamente come, passo per passo, il metodo
del simplesso risolve questo problema.
4.1 -5. Ripete
Mass imiz<
4.1-3. Un modello di programmazione lineare riguardante due
attività è caratterizzato dalla regione ammissibile mostrata di seguito.
soggetto ai vincoli
Xz:::; 2
e
2': O,
soggetto ai v
e
8
Xi :è: O,
(a) Tracciare il grafico della regione ammissibile ed evidenziare
i vertici ammissibili .
(b) Per ciascun vertice, identificare la coppia di vincoli che esso
soddisfa come equazioni .
(c) Per ciascun vertice, usare la coppia di equazioni determinata
in (b) per ottenere algebricamente i valori di x i e x 2 .
(d) Per ciascun vertice, identificare i corrispondenti vertici adiacenti.
(e) Per ciascuna coppia di vertici adiacenti, identificare il vincolo che essi condividono specificando la corrispondente equazione.
X;
4.1-6. Descri·
del seguente 1
(5, 5)
Massimizz<
soggetto ai viJ
(6, 4)
4
23xi + x 2
4xi + 2x2
4xi- x 2
2xi + 2x2
Regione
ammissibile
2
e
Xi
2': O,
X;
4.1 -2. Si consideri il seguente problema.
Z = 3xi + 2x2
Massimizzare
o
soggetto ai vincoli
2xi + xz:::; 6
xi + 2x2 :::; 6
e
xi
2': O,
x2
2': O.
(a) Risolvere graficamente il problema. Identificare nel grafico
tutti i vertici.
(b) Per ciascun vertice, identificare la coppia di vi ncoli che esso
soddisfa come equazioni.
(c) Per ciascuna vertice, identificare i corrispondenti veni i
ad iacenti.
(d) Calcolare Z per ciascun vertice. Usare questa informazione
per identificare una soluzione ottima.
2
4
6
Livello dell 'attività l
4.1-7. Descriv1
del seguente p 1
Minimizzare
L'obiettivo è massimizzare il profitto totale ricavato dalle due attività. Il profitto unitario per l'attività l è di 1000 dollari mentre
quello per l'attività 2 è pari a 2000 dollari .
(a) Calcolare il profitto totale in ciascun vertice. Usare questa
informazione per identificare una soluzione ottima.
(b) Usare le idee risolutive del metodo del simplesso del
Paragrafo 4.1 per identificare la sequenza dei vertici che viene esaminata dal metodo del simplesso per raggiungere la
soluzione ottima.
4.1-4. * Considerare il problema di programmazione lineare
_ lassi.mizzare
Z = 4500xi + 4500xz
soggetto ai vinc
2xi + 3xz 2':
3xi + 4x2 ;:::
Xi+ Xz 2':
e
Xi
2': O,
x2
4.1-8. Dire se c
sa, motivandone
a) Per i problei
obiettivo ca
129
PROBLEMI
soggetto ai vincoli
:::; l
Xz:::; l
5000x 1 + 4000xz :::; 6000
400xl + 500xz :::; 600
e
x 1 2: O,
x 2 2': O.
(a) Identificare graficamente tutti vertici per questo problema.
Distinguere quale di questi sono ammissibili e quali non lo
sono.
(b) Calcolare il valore della funzione obiettivo per ciascuno dei
vertici. Usare questa informazione per identificare una soluzione ottima.
(c) Usare le idee risolutive del metodo del simplesso del
Paragrafo 4.1 per identificare quale sequenza di vertici viene
esaminata dal metodo del simpleso per raggiungere la soluzione ottima. (Suggerimento: per questo particolare modello
sono possibili due sequenze alternative)
.U-5. Ripetere il Problema 4.1-4 per il seguente problema.
Z = x 1 + 2x 2
Massimizzare
soggetto ai vincoli
x 1 + 3xz:::; 8
XJ + Xz:::; 4
e
maggiore del valore ottenuto in corrispondenza di tutte gli
altri vertici, allora quella soluzione è ottima.
(b) Solo i vertici possono essere soluzioni ottime, così il numero
delle soluzioni ottime non può eccedere il numero dei vertici.
(c) Se esistono soluzioni ottime multiple, allora per un vertice
ottimo esiste un vertice adiacente anch'esso ottimo (con lo
stesso valore di Z).
4.1-9. Le seguenti affermazioni forniscono definizioni inaccura-
te delle sei idee risolutive presentate nel Paragrafo 4.1. Per ciascun caso, spiegare cosa è sbagliato nell ' affermazione.
(a) Il vertice migliore è sempre una soluzione ottima.
(b) Un'iterazione del metodo del simplesso controlla se il vertice in esame è ottimo e, in caso contrario, si muove in un
nuovo vertice.
(c) Anche se come vertice iniziale può essere scelto un qualunque vertice, il metodo del simplesso sceglie sempre l'origine.
(d) Nella scelta del nuovo vertice verso cui muoversi partendo
dal vertice corrente, il metodo del simplesso considera solo
vertici adiacenti poiché uno di loro è molto probabilmente
una soluzione ottima.
(e) Per scegliere il nuovo vertice verso cui muoversi partendo
dal vertice corrente, il metodo del simplesso identifica tutti i
vertici adiacenti e determina quale di esse produce il maggiore tasso di miglioramento nel valore della funzione obiettivo.
4.2-1. Riconsiderare il modello del Problema 4.1-4.
(a) Introdurre le variabili slack e riscrivere i vincoli funzionali
4.1 -6. Descrivere graficamente, passo per passo, la risoluzione
el seguente problema eseguita con il metodo del simplesso.
Z = 2x1
Massimizzare
+ 3xz
soggetto ai vincoli
23xl + xz:::;
4xl + 2xz:::;
4xl - Xz :::;
2x1 + 2xz:::;
l
20
IO
nella forma aumentata.
(b) Per ciascun vertice, identificare la corrispondente BFS calcolando i valori delle variabili slack. Per ciascuna BFS, usare i
valori delle variabili per identificare le variabili di base e
quelle non di base.
(c) Per ciascuna BFS, dimostrare (inserendola nella soluzione)
che, dopo aver posto le variabili non di base uguali a zero,
questa BFS è anche la soluzione del sistema di equazioni ottenuto nel punto (a).
5
4.2-2. Riconsiderare il modello del Problema 4.1 -5. Seguire le
istruzioni del Problema 4.2-1 per le sezioni (a), (b) e (c).
4.1 -7. Descrivere graficamente, passo per passo, la risoluzione
::el seguente problema eseguita con il metodo del simplesso.
(d) Ripetere il punto (b) per i vertici non ammissibili e per le
corrispondenti soluzioni di base non ammissibili.
(e) Ripetere il punto (c) per le soluzioni di base non ammissibili.
Minimizzare
~
ggetto ai vincoli
2•1
3xl
4.3-1.* Risolvere il problema seguente utilizzando il metodo del
simplesso (in forma algebrica).
+ 3xz 2': 42
+ 4xz 2': 60
Xi+
Xz 2': 18
Massimizzare
a) Per i problemi di minimizzazione, se il valore della funzione
obiettivo calcolato in corrispondenza di un vertice non è
+ 3xz + 6x3
soggetto ai vincoli
3xl
2xl
· .1-8. Dire se ciascuna delle seguenti affermazioni è vera o fa lsa. motivandone la risposta.
Z = 4xl
+ xz + 3x3 :::; 30
+ 2xz + 3x3 :::; 40
e
4.3-2. Risolvere il seguente problema utilizzando il metodo del
simplesso (in forma algebrica).
130
CAPITOLO 4
Massirnizzare
Z
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
= x 1 + 2x2 + 4x3
soggetto ai vincoli
3x, + x2 + Sx3 ::; l O
x, + 4x2 + X3 ::; 8
2x,
+ 2x3 ::; 7
e
x,
~
O,
~
X2
X3 ~
O,
O.
x,+ 2x2::; 30
XJ + X2 :S: 20
e
x,
~
XJ ::; 20
+ 2x3 ::; 30
O,
~
X2
O,
(a) In una
più va1
uscenti
riabile,
(b) Se in
uscente
c) Se almE
lo nella
zioni oti
(d) Se il pr<
ma devE
e
+ Xz +
+xz
XJ ~
O,
4.5-1. Con
ne lineare
guenti affe
Z = 2x 1 + 3x2
soggetto ai vincoli
= 5x, + 3x2 + 4x3
soggetto ai vincoli
2x1
3x,
+
2x,
e
x,~
Massimizare
Z
x, +
-2x 1 +
4.4-1. Si consideri il problema seguente.
4.3-3. Considerare il seguente problema.
Massimizzare
soggetto
(c) Quando il metodo del simplesso determina la successiva
BFS, vengono eseguite operazioni algebriche elementari per
eliminare ogni variabile non di base da tume le equazioni
tranne una (la sua equazione) e asssegnare a essa un coefficiente + l in quest'equazione.
4.4-2. Si consideri il seguente problema.
O.
Per questo problema è noto che le variabili diverse da zero nella
soluzione ottima sono x 2 e x 3 .
(a) Descrivere come questa informazione possa essere util izzata
per modificare il metodo del simplesso affinché il problema
venga risolto con il numero minimo possibile di iterazioni
(partendo dalla BFS usuale). Non eseguire effettivamente
nessuna delle iterazioni.
(b) Usare la procedura sviluppata nel punto (a) per risolvere
questo problema.
Massimizzare
Z = 2x, + 4x2 + 3x3
soggetto ai vincoli
3x, + 4x2 + 2x3 ::; 60
2x, + x2 + 2x3 ::; 40
x 1 + 3x2 + 2x3 ::; 80
e
x,
~
O,
~
X2
O,
XJ ~
~.S-2. Suppr
con varia bili
coli
O.
(a) Applicare il metodo del simplesso in forma algebrica.
(b) Applicare il metodo del simplesso in forma tabellare.
4.3-4. Si consideri il seguente problema.
e
Massimizzare
Z = 2x, + 4x2 + 3x3
4.4-3. Considerare il seguente problema.
soggetto ai vincoli
e
x, + 3x2
XJ + X2
3x, + Sx2
+ 2x3
+ X3
+ 3x3
x, ~ o,
X2
~
Massimizzare
::; 30
::0:: 24
::; 60
x,~
Z = 3x, + Sx2 + 6x3
a) MostrarE
mitata.
{h) Se \a fu
modello
il perché
(c) Ripetere
Z= -x 1
(d) Selezion<
non amm
passo, ili
mitata.
soggetto ai vincoli
2..r,
+ x2 +
x 3 ::; 4
+ 2x2 + X3 ::; 4
x, + x2 + 2x3 ::; 4
Xl+ X2 + X3 :S: 3
Xl
o,
XJ ~
O.
Per questo problema è noto che nella soluzione ottima x 1
x2 =O ex3 >O.
> O,
(a) Descrivere come questa informazione possa essere utilizzata
per modificare il metodo del simplesso affinché il problema
venga risolto con il numero minimo possibile di iterazioni
(partendo dalla BFS usuale). Non eseguire effettivamente
nessuna delle iterazioni.
(b) Usare la procedura sviluppata nel punto (a) per risolvere
questo problema.
4.3-5. Dire se ciascuna delle seguenti affermazioni è vera o falsa
motivandone la riposta con riferimento alla specifica affermazione (con l'indicazione della pagina) in questo capitolo.
(a) La regola del metodo del simplesso per la scelta della variabile entrante è usata perché essa conduce alla migliore BFS
adiacente (Z più grande).
(b) La regola del rapporto minimo del metodo del simplesso per
la scelta della variabile di base uscente è usata perché un rapporto più grande fornirebbe una soluzione di base non ammissibile.
e
XJ
~
O,
X2
~
O,
o.
XJ ~
(a) Eseguire il metodo del simplesso in forma algebrica.
(b) Eseguire il metodo del simplesso in forma tabellare.
4.4-4. Eseguire il metodo del simplesso (in forma tabellare) per
risolvere il seguente problema.
Massimizzare
Z = 2x 1
-
x,
x,
~
O,
X2 ~
2x, - X2 ~
x, - 2x2 ~
e
3x, + xz + X3 ::; 6
XJ - X2 + 2x3 :S: J
+ x2- X3::; 2
e
~.5-3. Seguir•
sono i seguen
x2 + x 3
soggetto ai vinco li
O,
O,
~.5-4.
XJ ~
o.
Si cons
Massimizza
soggetto ai vir
4.4-5. Eseguire il metodo del simplesso per risolvere il seguente
problema.
Mas imizzare
Z = -x, + x2 + 2x3
x, -
2x2
-4x, + 6x2
2x, - 3x2
131
PROBLEMI
soggetto ai vincoli
e
+ 2x2 - X3 :'S 20
-2xl + 4x2 + 2x3 ::; 60
2XJ + 3X2 + XJ :'S 50
XJ
XJ
:2': O,
X2
:2': O,
XJ :2': O,
X4
:2':
o.
Eseguire il metodo del simplesso per dimostrare che Z non è illimitata.
e
XJ
:2': O,
X2
:2': O,
XJ :2': O.
4.5-1. Considerare le seguenti affermazioni sulla programmazione lineare e sul metodo del simplesso. Dire se ciascuna delle seguenti affermazioni è vera o falsa motivandone la risposta.
(a) In una particolare iterazione del metodo del simplesso, se
più variabili di base possonno essere scelte come variab ili
uscenti, allora la BFS successiva deve avere almeno una variabile di base uguale a zero.
(b) Se in una iterazione non esiste alcuna variabile di base
uscente, allora il problema non ha soluzioni ammissibili.
(c) Se almeno una delle variabili di base ha un coefficiente nullo nella riga O della tabella finale, allora il problema ha soluzioni ottime multiple.
(d) Se il problema ha soluzioni ottime multiple, allora il problema deve avere regione ammissibile limitata.
~.5-2.
Supporre che per un problema di programmazione lineare
on va1iabili decisionali x 1 e x 2 siano stati presenti i seguenti vincoli
-XI+ 3x2::; 30
- 3XJ + X2 :'S 30
e
XJ
:2': O,
X2
:2': o.
(a) Mostrare graficamente che la regione ammissibile non è limitata.
(b) Se la funz ione obiettivo è massimizzare Z = -x 1 + x 2 , il
modello ha soluzione ottima? Se sì, trovarla. Se no, spiegare
il perché.
(c) Ripetere il punto (b) quando l'obiettivo è massimizzare
Z = - x1 + x2.
(d) Selezionare una funzione obiettivo per cui questo problema
non ammette soluzione ottima. Applicare quindi, passo dopo
passo, il metodo del simplesso per dimostrare che Z non è limitata.
4.5-3. Seguire le istruzioni del Problema 4.5-2 quando i vincoli
ono i seguenti:
2x1 - X2 :'S 20
x 1 - 2x2 ::; 20
:2': O,
~.S-4.
X2
(a) Mostrare che qualsiasi combinazione convessa di un qualsiasi insieme di soluzioni ammissibili deve essere una soluzione ammissibile (cosicché una qualunque combinazione convessa dei vertici deve essere ammissib ile).
(b) Usare il risultato citato al punto (a) per mostrare che qualsiasi combinazione convessa delle BFS deve essere una soluzione ammissibile.
4.5-6. Usando gli elementi fomiti nel Problema 4.5-5, mostrare
che le seguenti affermazioni sono vere per qualunque problema
di programmazione lineare avente regione amm issibile limitata e
soluzioni ottime multiple.
(a) Qualsiasi combinazione convessa delle BFS ottime deve essere ottima.
(b) Nessun' altra soluzione ammissibile può essere ottima.
4.5-7. Considerare un problema di programmazione lineare in
due variabili i cui vertici della regione ammissibile sono (0, O),
(6, 0), (6, 3), (3, 3) e (0, 2). (Per il grafico della regione ammissibile fare riferimento al problema 3.2-1).
(a) Usare il grafico della regione ammissibile per identificare
tutti i vincoli del modello.
(b) Per ciascuna coppia di vertici adiacenti, fornire un esempio
di una funzione obiettivo per la quale tutti i punti del segmento che unisce questi due vertici siano soluzioni ottime
multiple.
(c) Si supponga, adesso, che la funzione obiettivo sia
Z = 2xl + 2x2. Usare il metodo grafico per trovare tutte le
soluzioni ottime.
(d) Considerando la funzione obiettivo del punto (c), applicare,
il metodo del simplesso per trovare tutte le BFS ottime.
Scrivere quindi un 'espressione algebrica che permetta di
identificare tutte le soluzioni ottime.
4.5-8. Si consideri il seguente problema.
e
XJ
4.5-5. Un'importante proprietà di tutti i problemi di programmazione lineare con regione anunissibile limitata è che ogni soluzione ammissibile può essere espressa come una combinazione
convessa dei suoi vertici (anche in più di un modo).
Analogamente, per la forma aumentata del problema, ogni soluzione ammissibile può essere espressa come una combinazione
delle BFS.
:2': O.
Si consideri il seguente problema.
Massimizzare
Mass imizzare
soggetto ai vincoli
XJ
Z = 5x 1 + x 2 + 3x3 + 4x4
soggetto ai vincoli
XI - 2x2 + 4x3 + 3x4 ::; 20
-4xJ + 6x2 + 5x3 - 4x4 ::; 40
2x1 - 3x2 + 3x3 + 8x4 ::; 50
Z = x 1 + x 2 + x3 + x4
+ X2 :'S 3
X3 +x4::; 2
e
x1 :2': O,
per}= l , 2, 3, 4.
Applicare il metodo del simplesso per trovare tutte le soluzioni
ottime.
CAPITOLO 4
132
RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE
4.6-1. * Considerare il seguente problema.
Massimizzare
Z = 2x1
+ 3x2
4.6-5. Seguire le istmzioni del Problema 4.6-4 per il seguente
problema.
XJ
X2
- 2x l +
= 3
e
X2 ~O.
4.6-2. * Considerare il seguente problema.
Z=
2xi
3xi
+ 4x2 + 2 x3
+ 2x2
~
8
~ 6
e
XI ~
O,
X2 ~
O,
X3 ~
O.
(a) Riforrnulare questo problema nella forma standard per un
problema di programmazione lineare presentato nel
Paragrafo 3.2.
(b) Usando il metodo del Big M , eseguire, passo dopo passo, il
metodo del simplesso per risolvere il problema.
(c) Applicare il metodo del simplesso delle due fasi per risolvere il problema.
(d) Confrontare la sequenza delle BFS ottenuta ai punti (d) e
(c). Quali di queste soluzioni sono ammissibili solo per il
problema artificiale ottenuto introducendo variabili artificiali
e quali sono invece veramente ammissibili per il problema
originario?
4.6-3. Per il metodo del Big M, spiegare perché il metodo del
simplesso non dovrebbe mai scegliere una variabile arti fic iale
come variabile entrante una volta che tutte le variabili artificiali
non sono più variabili di base.
4.6-4. Considerare il seguente problema.
Massimizzare
Z =
90xi
:S: 2
XI- X2 ~
2
e
XI ~O,
l
X2 ~O.
(a) Mostrare graficamente che questo problema non ammene
soluzioni.
(b) Usando il metodo del Big M , eseguire il metodo del simplesso, dimostrare che il problema non ammette soluzioni.
(c) Ripetere il punto (b) utilizzando la fase l del metodo del
simplesso delle due fasi .
X2 ~ O.
4.6-6. Considerare il seguente problema.
Z = 2x1
Massimizzare
originario
+ Sx2 + 3x3
c) Il metodo
ca perché,
numero di
soggetto ai vincoli
2x2 + X3
+ 4x2 + XJ
~
XJ -
2xi
20
= 50
-t6-9. * Si con s
e
XI ~
O,
X2 ~
XJ ~
O,
O.
(a) Usando il metodo delle due fasi , costruire il primo tableau
completo per la fase l e identificare la BFS iniziale (artificiale) corrispondente. Identificare inoltre la variabile entrante e la variabile di base uscente.
(b) Applicare il metodo del simplesso, per risolvere il problema.
(c) Usando il metodo delle due fasi, costruire il primo completo
tableau del simplesso per la fase l e identificare la BFS iniziale (artificiale) corrispondente. Identificare inoltre la variabile entrante e la variabile di base uscente.
(d) Eseguire la fase l del metodo del simplesso.
(e) Costmire il primo completo tableau del simplesso per la fase 2.
(f) Eseguire la fase 2 passo dopo passo per risolvere il problema.
(g) Confrontare la sequenza delle BFS ottenuta al punto (b) con
quella ottenuta ai punti (d) e (f). Quali di queste soluzioni
sono ammissibili solo per il problema artificiale ottenuto introducendo variabili artificiali e quali sono invece veramente
ammissibili per il problema originario?
4.6-7. Considerare il seguente problema.
Z = 3xl
Minimizzare
+ 2x2 + 7x3
soggetto ai vincoli
= IO
- x1 + x 2
+ 70x2
soggetto ai vincoli
2xi + x 2
X I ~ O,
+ 3x2 + X3
soggetto ai vincoli
XI
(a) Quando
colo di u
bile artif
con una
originario
) Quando v
traduzion
M, se tutt
il problem
e
(a) Risolvere questo problema graficamente.
(b) Usando il metodo del Big M , costruire il primo tableau completo per il metodo del simplesso e identificare la corrispondente BFS iniziale (artificiale). Identificare inoltre la variabile entrante e la variabile di base uscente.
(c) Partendo dal punto (b) applicare il metodo del simplesso,
per risolvere il problema.
Minimizzare
+ 7000x2
X2 ~ l
2X2 ~
XI XI ~ O,
SOOOxi
soggetto ai vincoli
+ 2x2 :S: 4
XI +
Z =
Minimizzare
soggetto ai vincoli
4.6-8. Dire
giustificando
2x1 -
X2
+ XJ
~
l0
e
X ]
~
O.
X2 ~
O,
XJ ~
Massimizzare
- ggetto ai vinc
- 3x i
xi
+ x2 s
+ 2x2 s
x2
essun limite in
) Risolvere gr;
b) Riforrnulare
vincoli funzi
negatività.
Eseguire il rr
~- 6-1 O. In questo
per la soluzior
fu nzione obie·
- 6 è stato quindi
;;:;izzazione nell '
-odo da potere a
- ilità nei probJ 1
une modifiche
-.ate in questo ca
) Descrivere qu
blemi di mini!
) Usando il met
cata sviluppat
guente proble1
Minimizzare
O.
~etto
(a) Usando il metodo del Big M , eseguire, passo dopo passo, il
metodo del simplesso per risolvere il problema.
(b Csando il metodo delle due fasi , applicare il metodo del simple o per riso lvere il problema.
(c) Confrontare la sequenza delle BFS ottenuta ai punti (a) e
(b). Quali di queste soluzioni sono ammissibili solo per il
problema artificiale ottenuto introducendo variabili artificiali
e quali sono invece veramente ammissibili per il problema
originario?
2
Jx1
ai vincoli
3x2 + 4x3
+ Sx2 + 2x 3
133
PROBLEMI
4.6-8. Dire se ciascuna delle seguenti affermazioni è vera o fa lsa
_ ·ustificando la risposta data.
a) Quando un problema di programmazione lineare ha un vincolo di uguaglianza, in tale vicolo viene introdotta una variabile artificiale in modo da iniziare il metodo del simplesso
con una soluzione di base iniziale semplice per il modello
originario.
b) Quando viene creato un problema artificiale, mediante l'introduzione di variabili artificiali e l' uso del metodo del Big
M, se tutte le variabili artificia li in una soluzione ottima per
il problema artificiale sono ugua li a zero, allora il problema
originario non ammette soluzioni ammissibi li.
Il metodo delle due fasi è normalmente utilizzato nella pratica perché, ripetto al metodo del Big M , richiede un minor
numero di iterazioni per raggiungere una soluzione ottima.
- .6-9.* Si consideri il seguente problema
Z = - xl
:\1assimizzare
~etto
ai vincoli
+ X2 :S
+ 2x2::::;
-3Xi
X1
+ 4x2
X2
6
4
2: - 3
- un limite inferiore per xi) Riso lvere graficamente questo problema.
Riformulare questo problema cosicché esso abb ia solo due
vinco li funzionali e tutte le variab ili abbiano vincoli di nonnegatività.
Eseguire il metodo del simplesso, per riso lvere il problema
10. In questo capitolo è stato descritto il metodo del simplesr la soluzione di problemi di programmazione lineare in cui
funz ione obiettivo deve essere massimizzata. Nel Paragrafo
- è stato quindi descritto come convertire un problema di mini ~ ione nell ' equivalente problema di massimizzazione in
- o da potere applicare il metodo del simplesso. Un'altra pos· ilità nei problemi di minimizzazione consiste nell'apportare
:une modifiche alle istruzioni del metodo del simplesso, illue in questo capitolo, per app li care direttamente la procedura.
Descrivere quali modifiche siano necessarie nel caso di problemi di minimizzazione.
Usando il metodo del Big M, applicare la procedura modificata sviluppata al punto (a) per risolvere direttamente il seguente problema.
. lin imizzare
~etto
Z = 3xi + 8x2 +
ai vincoli
3x2 + 4x3
.J..Ti
2:
+ Sx2 + 2x3 2:
TJ ::::
O,
X2 ::::
O,
70
70
X) ::::
O.
Sx3
4.6-11. Considerare il seguente problema.
Z = 4xi +
Massimizzare
Sx2
+ 3x3
soggetto ai vincoli
Xi
+
X2
+ 2x3 2:
lSx1 + 6x2 x1 + 3x2 +
Sx3 ::::;
O,
O,
Sx3 ::::;
20
50
30
e
X i ::::
X2 ::::
X3 ::::
O.
Applicare il metodo del simplesso per dimostrare che questo
problema non possiede soluzioni amm issibili.
4.7-1. Riconsiderare il modello del Paragrafo 4.1 -5 e interpretare i termini dei vincoli funzionali come la quantità disponibile
delle varie risorse.
(a) Usare l' analisi grafica come nella Figura 4.8 per determinare
i prezzi ombra per le rispettive risorse.
(b) Usare l'ana lisi grafica per effettuare l'analisi della sensitività
su questo modello. In particolare, determinare per ogni parametro del modello se esso è un parametro sensibile (un parametro il cui valore non può essere cambiato senza cambiare
la soluzione ottima).
(c) Usare l' analisi grafica come nella Figura 4.9 per determinare
l' intervallo di valori per ogni valore di Cj (coefficiente di Xj
nella funz ione obiettivo) per cui la soluzione ottima corrente
rimane ottima.
(d) Cambiando un solo valore b; (termi ne noto del vincolo funzionale i) la corrispondente frontiera si sposta. Se il vertice
ottimo corrente si trova su questa frontiera, anche tale verti ce verrà spostato. Mediante una analisi grafica determinare
per ogni valore di b; l' intervallo di possibili valori per cui
questo vertice rimarrà ammissibile.
4.7-2. Sia dato il seguente problema di programmazione lineare.
Massimizzare
Z = 4xi +
2x2
soggetto ai vinco li
2x 1
::::;
16
(risorsa l)
(risorsa 2)
(risorsa 3)
x 1 + 3x2::::; 17
X2
:S 5
e
Xi
:::: O,
X2::::
O.
(a) Risolvere questo problema graficamente.
(b) Usare l'analisi grafica per determinare i prezzi ombra per le
risorse .
(c) Determinare quante unità supplementari della risorsa l sono
necessarie per aumentare di 15 il va lore otti mo di Z.
C A
La teoria del metodo del simplesso
N
el Capitolo 4 sono stati introdotti i meccanismi di base del metodo del simplesso.
Adesso, questo algoritmo verrà analizzato più in dettaglio esaminando la teoria su
cui esso si basa. Il primo paragrafo approfondisce in particolare le proprietà geometriche e
algebriche generali che costituiscono le basi del metodo del simplesso. Viene quindi descritta laforma matriciale del metodo del simplesso (denominata metodo del simplesso
rivisitato), che migliora in modo considerevole la procedura per l'implementazione su
computer. Successivamente, viene presentata un' importante proprietà del metodo del simplesso che permette di capire come i cambiamenti apportati al modello originale vengono
riportati nel tableau finale. La comprensione di questa proprietà fornirà la chiave agli importanti argomenti del Capitolo 6 (teoria della dualità e analisi delle sensitività).
5.1
FONDAMENTI DEL METODO DEL SIMPLESSO
Nel Paragrafo 4.1 è stato introdotto il concetto di vertice e il suo ruolo chiave nel metodo
del simplesso. Nei Paragrafi 4.2 e 4.3 questi concetti geometrici sono stati messi in relazione con l'algebra del metodo del simplesso. Tutto ciò comunque nel contesto del problema Wyndor Glass Co., che ha soltanto due variabili decisionali e di conseguenza può
essere interpretato geometricamente con molta semplicità. Come vengono generalizzati
questi concetti quando si affrontano problemi di dimensioni maggiori? È proprio questo
aspetto che è analizzato nel paragrafo corrente.
Innanzi tutto verrà introdotta la terminologia di base per un qualunque problema di programmazione lineare con n variabili decisionali. Il lettore può fare riferimento alla Figura
5 .l (che riprende la Figura. 4.1 ) per interpretare queste definizioni nel caso n = 2.
Terminologia
Può sembrare intuitivo che le soluzioni ottime per un qualunque problema di programmazione lineare siano sulla frontiera della regione ammissibile e, in effetti, questa è una proprietà generale. Poiché la frontiera della regione ammissibile è un concetto geometrico, le
definizioni di seguito servono proprio per identificare tale frontiera dal punto di vista algebrico.
L'equazione della frontiera per un qualunque vincolo è ottenuta sostituendo ::;, = oppure 2
con un segno = .
Di conseguenza, la forma dell 'equazione della frontiera è anx 1 + ai2x2 + ... + a;nx,, = b;
per i vincoli funzionali e x1 = O per i vincoli di nonnegatività. Ciascuna di queste equazioni definisce un iperpiano nello spazio a n dimensioni, analogo alla retta nello spazio bidi-
FIGURA 5.1
=rontiere dei vi1
equazioni corri~
. erti ci per il p re
y ndor Glass C
5.1
135
FONDAMENTI DEl METODO DEl SIMPlESSO
mensionale e al piano nello spazio tridimensionale. Questo iperpiano costituisce la frontiera per il vincolo corrispondente. Quando il vincolo è espresso nella forma ::; oppure di 2': ,
questa frontiera separa i punti che soddisfano il vincolo (tutti i punti che, rispetto all'iperpiano, stanno da una parte, frontiera compresa) dai punti che violano il vincolo (tutto
quelli che stanno dall'altra parte della frontiera). Quando il vincolo è espresso come una
uguaglianza, solo i punti che sono sulla frontiera soddisfano il vincolo stesso.
Per esempio, il problema Wyndor Glass Co. ha cinque vincoli (tre vincoli funzionali e
due vincoli di nonnegatività), così esso ha le cinque equazioni che definiscono la frontiera indicate nella Figura 5 .l. Poiché n = 2, gli iperpiani definiti da queste equazioni non
sono altro che delle semplici rette. Di conseguenza, le frontiere per i cinque vincoli sono
le cinque rette indicate nella Figura. 5.1.
La frontiera della regione ammissibile contiene quelle soluzioni che soddisfano una o più
equazioni che definiscono la frontiera.
Dal punto di vista geometrico, qualsiasi punto sulla frontiera della regione ammissibile si
trova su uno o più degli iperpiani definiti dalle corrispondenti equazioni. Nella Figura 5.1,
la frontiera è costituita dai cinque segmenti più scuri.
In seguito, verrà data una defmizione generale di vertice nello spazio n-dimensionale.
Un vettice è una soluzione ammissibile che non è presente su nessun segmento 1 che congiunge altre due soluzioni ammissibili.2
Come conseguenza di questa definizione, una soluzione ammissibile che si trova su un
segmento che congiunge altre due soluzioni ammissibili non è un vertice. Per illustrare
questo concetto quando n = 2, si consideri la Figura 5.1. Il punto (2, 3) non è un vertice,
perché si trova su vari segmenti che congiungono punti ammissibili, per esempio, il segmento che congiunge (0, 3) e (4, 3). Allo stesso modo, (0, 3) non è un vertice, perché si trova sul segmento che congiunge (0, O) e (0, 6). Tuttavia, (0, O) è un vertice perché è impossibile trovare altre due soluzioni ammissibili che si trovino da parti opposte rispetto a (0, 0).
FIGURA 5.1
=rontiere dei vincoli,
: uazioni corrispondenti e
ertici per il problema
tyndor Glass Co .
Massimizzare Z = 3x 1 + 5x2
soggetto a
x,
(0, 9)
~
4
2x2
~
3x 1 + 2x2
~
12
18
e
Regione
ammissibile
1
Un ' espressione algebrica per un segmento viene fomita ne li' Appendice l.
2
Per un punto che soddisfa queste condizioni alcuni autori usano la terminologia punto estremo. (N dC)
136
CAPITOLO 5
•
LA TEORIA DEL METODO DEL SIMPLESSO
TABELLA 5.1 Equazioni che definisono
ciascun vertice ammissibile
per il problema
Wyndor Glass Co.
Vertice
Equazioni
(0, O)
X] =
X2 =
Xl = o
2x2 = 12
(0, 6)
(2, 6)
(4, 3)
(4, O)
•
o
o
2x2 = 12
= 18
3xl
+ 2x2
3xl
+ 2x2
= 18
Xl = 4
Xl =
X2 =
4
o
TABELLA 5.2 Equazioni che definiscono
ciascun vertice non
ammissibile per il problema
Wyndor Glass Co.
Vertice non
ammissibile
Equazioni
(0, 9)
X1
= 0
3xl
+ 2x2 =
3xl
+ 2x2
18
(4, 6)
(6, O)
X2
= 18
=
0
Quando il numero delle variabili decisionali n è più grande di 2 o 3, questa definizione di
vertice non è molto conveniente per identificare soluzioni di questo tipo . Di conseguenza.
si dimostrerà più utile fornire una interpretazione algebrica. Per l'esempio Wyndor Glass
Co., in Figura 5.1 ogni vertice si trova in corrispondenza dell ' intersezione di due (n = 2)
rette. Un vertice, quindi , è soluzione di un sistema di due equazioni che definiscono la
frontiera . Questa situazione è riassunta nella Tabella 5.1 , in cui per ciascun vertice siriportano le corrispondenti equazioni.
Per un problema di programmazione lineare con n variabili decisionali, ogni vertice ammissibile è l'intersezione delle frontiere di n vincoli; pertanto, un vertice è la soluzione di un sistema di n equazioni che definiscono la frontiera della regione ammissibile. 3
Tuttavia, ciò non vuoi dire che ogni insieme di n equazioni che definiscono la frontiera.
scelte tra gli n + m vincoli (n vincoli di nonnegatività e m vincoli funzionali), fornisce un
vertice ammissibile . In particolare, la soluzione di un tale sistema di equazioni potrebbe
violare uno o più degli altri m vincoli non scelti; nel qual caso la soluzione è un vertice
non ammissibile . Nella Tabella 5.2 è riportato proprio questo caso con tre vertici non ammissibili.
Inoltre, un sistema di n equazioni potrebbe non ammettere nessuna soluzione. Questo
caso si presenta due volte nell ' esempio considerato con le coppie di equazioni (l ) x 1 =O
e x 1 = 4 e (2) x 2 = O e 2x2 = 12. Tali sistemi non sono comunque di nessun interesse.
3
Si noti che nell a definizione di vertice si è indicato che esso è la soluzione (unica) di un sistema di n equazi
ni . (NdC)
5.1
FONDAMENTI DEL METODO DEL SIMPLESSO
137
L' ultima possibilità (che non si presenta mai nell'esempio) è che un sistema di n equazioni abbia più soluzioni per la presenza di equazioni ridondanti . Questo caso può essere gestito senza difficoltà dal metodo del simplesso.
Ricapitolando, per l'esempio considerato con cinque vincoli e due variabili, ci sono lO
coppie di equazioni che definiscono la frontiera. Cinque di queste coppie definiscono vertici ammissibili (Tabella 5 .l), tre definiscono vertici non ammissibili (Tabella 5 .2) mentre
ciascuna delle altre due coppie di equazioni non ha soluzione.
Vertici adiacenti
Nel Paragrafo 4.1 è stato introdotto il concetto di vertici adiacenti e il loro ruolo nel risolvere problemi di programmazione lineare.
Come detto nel Capitolo 4 (quando non si considerano variabili slack, surplus e artificiali) ogni iterazione del metodo del simplesso comporta lo spostamento dal vertice corrente verso una soluzione adiacente. Qual è il percorso seguito in questo processo? Cosa
si intende per vertici adiacenti? In primo luogo a questi quesiti si darà una risposta da un
punto di vista geometrico mentre successivamente si darà una interpretazione algebrica.
Alle domande precedenti è facile dare una risposta quando n = 2. In questo caso, la
frontiera della regione ammissibile è costituita da segmenti, collegati tra loro, che formano un poligono, come mostrato nella Figura 5.1 dai cinque segmenti più scuri. Questi segmenti sono gli spigoli della regione ammissibile. Da ciascun vertice si originano due di
questi spigoli che conducono a un vertice adiacente all 'altra estremità (si noti come, nella
Figura 5 .l , ogni vertice possieda due soluzioni adiacenti). Il cammino che deve essere seguito durante una iterazione, è quello che conduce da un estremo all 'altro, lungo uno di
questi spigoli. Nella Figura 5 .l , la prima iterazione comporta uno spostamento lungo lo
spigolo da (0, O) a (0, 6) mentre l'iterazione seguente determina uno spostamento lungo lo
spigolo da (0, 6) a (2, 6). Come illustrato nella Tabella 5 .l, ciascuno di questi spostamenti
verso un vertice adiacente comporta un solo cambiamento nell'insieme delle equazioni
che definiscono la frontiera .
Quando n = 3, la situazione è un po' più complicata. Per facilitare la comprensione di
ciò che sta accadendo, la Figura 5.2 mostra la rappresentazione in 3 dimensioni di una tipica regione ammissibile in 3 dimensioni, in cui i punti rappresentano proprio i vertici. La
regione ammissibile è un poliedro (invece del poligono ottenuto quando n = 2 ) perché le
frontiere sono adesso piani piuttosto che rette. Le facce del poliedro formano la frontiera
della regione ammissibile e ogni faccia è la porzione di frontiera che soddisfa anche gli altri vincoli. Si noti che ogni vertice è nell 'intersezione della frontiera di 3 vincoli
(considerando anche le frontiere corrispondenti ad alcuni dei vincoli di nonnegatività
x 1 = O, X2 = O e x 3 = O) e soddisfa anche gli altri vincoli. I punti di intersezione che non
soddisfano uno o più degli altri vincoli forniscono invece i vertici non ammissibili.
Il segmento più scuro nella Figura 5.2 descrive il cammino del metodo del simplesso in
una tipica iterazione. Il punto (2 , 4, 3) è il vertice corrente all 'inizio dell ' iterazione mentre
il punto (4, 2, 4) sarà il nuovo vertice alla conclusione dell ' iterazione. Il punto (2, 4, 3) soddisfa le equazioni x 2 = 4, x 1 + x 2 = 6 e - 2x 1 + 2x3 = 4, così queste tre equazioni sono le
equazioni che definiscono il vertice. Se l'equazione x 2 = 4 è rimossa, l' intersezione delle
altre due equazioni (due piani) è una retta. Un segmento di questa retta, mostrato nella
Figura 5.2 più scuro da (2, 4, 3) a (4, 2, 4), si trova sulla frontiera della regione ammissibile, mentre il resto della retta è costituita da punti non ammissibili. Questo segmento è uno
spigolo della regione ammissibile e suoi estremi (2, 4, 3) e (4, 2, 4) sono vertici adiacenti.
Per n = 3, tutti gli spigoli della regione ammissibile sono formati in questo modo, come
punti ammissibili della linea che si trova come intersezione della frontiera di due vincoli, e
i due punti estremi di uno spigolo sono vertici adiacenti. Nella Figura 5.2 sono rappresentati i 15 spigoli della regione ammissibile e di conseguenza sono presenti 15 coppie di vertici adiacenti. Per il vertice corrente (2, 4, 3), ci sono tre modi per rimuovere una delle tre
equazioni che definiscono il vertice e di conseguenza ci sono tre spigoli che partono da
138
CAPITOLO 5
LA TEORIA DEL METODO DEL SIMPLESSO
Vincoli
X[$
x2
x 1 20:
::;
4
4
(4 , O, 4)
XJ + x2 :s: 6
-xl+ 2x3::; 4
O, x 2 20: O, x3 20: O
(4, O, O)
(0, O, 0)
(0, 4, 2)
• FIGURA 5.2
Regione ammissibile e
vertici per un problema di
programmazione lineare
in tre variabili.
(4, 2, 0)
(0 , 4, O)
(2, 4, 3). Questi spigoli conducono a (4, 2, 4), (0, 4, 2) e (2, 4, 0), che rappresentano quindi i vertici ammissibili adiacenti a (2, 4, 3).
Per l' iterazione successiva, il metodo del simplesso sceglie uno di questi tre sp igoli,
per esempio, il segmento più scuro in Figura 5.2 e quindi si muove lungo questo spigolo
da (2, 4, 3) fmo a raggiungere la prima nuova frontiera di un vincolo, x 1 = 4, in corrispondenza dell 'altro punto estremo [non è possibile proseguire oltre lungo questa retta fino alla successiva frontiera, x 2 = O, perché questo conduce al vertice non ammissibile (6, O,
5)]. L'intersezione della frontiera di questo primo vincolo con le frontiere dei due vincoli
che formano lo spigolo fornisce il nuovo vertice ammissibile (4, 2, 4).
Quando n > 3, questi stessi concetti possono essere generalizzati e le frontiere dei vincoli non sono più piani ma iperpiani. Possiamo riassumere nel modo seguente.
Si consideri un qualunque problema di programmazione lineare con n variabili decisionali e
una regione ammissibile limitata. Un vertice ammissibile si trova in corrispondenza dell ' intersezione della frontiera di n vincoli (e soddisfa inoltre gli altri vincoli). Uno spigolo della regione ammissibile è un segmento costituito da punti ammissibili che si trova in corrispondenza dell ' intersezione della frontiera di n - l vincoli, i cui estremi si trovano sulla frontiera di
un ulteriore vincolo (cosicché tali estremi sono vertici ammissibili). Due vertici ammissibili
sono adiacenti se il segmento che li congiunge è uno spigolo della regione ammissibile. Da
ogni vertice si originano n spigoli, ciascuno dei quali conduce a uno degli n vertici adiacenti.
A ogni iterazione, il metodo del simplesso si muove dal vertice corrente, lungo uno di questi
n spigoli, a un vertice ammissibile adiacente.
Quando si passa dal punto di vista geometrico a quello algebrico, l 'intersezione delle frontiere diventa la soluzione delle equazioni che definiscono la frontiera. Le n equazioni che
definiscono la frontiera e determinano (definiscono) un vertice ammissibile sono le relative
equazioni caratteristiche; l'eliminazione di una di queste equazioni produce una retta e un
suo segmento costituito tutto di punti ammissibili è uno spigolo della regione ammissibile.
Di seguito verranno analizzate alcune proprietà fondamentali dei vertici, e saranno descritte le implicazioni di tutti questi concetti nell'interpretazione del metodo simplesso.
Quando il metodo del sirnplesso sceglie una variabile entrante, il metodo sceglie, da un
punto di vista geometrico, uno degli spigoli che partono dal vertice corrente. L'incremento
di questa variabile dal valore corrente zero (e, di conseguenza, la modifica simultanea dei
valori delle variabili di base) corrisponde a muoversi lungo questo spigolo. La diminuzione di una delle variabili di base (la variabile di base uscente) fino a che non raggiunge lo
zero corrisponde a raggiungere la frontiera di un vincolo all'altra estremità di tale spigolo
della regione ammissibile.
5.1
FONDAMENTI DEL METODO DEL SIMPLESSO
139
Proprietà dei vertici
Adesso l'attenzione verrà focalizzata su tre proprietà fondamentali dei vertici ammissibili
valide per un qualunque problema di programmazione lineare che ammette soluzione e
che abbia una regione ammissibile limitata.
Proprietà l. (a) Se esiste una sola soluzione ottima, allora essa deve essere un vertice. (b) Se esistono soluzioni ottime multiple (e la regione ammissibile è limitata), allora almeno due soluzioni ottime sono vertici ammissibili adiacenti.
Da un punto di vista geometrico la Proprietà l è piuttosto intuiti va. In primo luogo si consideri il caso (a), che è illustrato dal problema Wyndor Glass Co. (si faccia riferimento alla
Figura 5.1) in cui l'unica soluzione ottima (2 , 6) è effettivamente un vertice. Si può notare
come ·non ci sia nulla di specifico in questo esempio che induca questo risultato. Per un
qualunque problema con esattamente una sola soluzione ottima, è sempre possibile continuare ad " alzare " la retta (iperpiano) che definisce la funzione obiettivo fino a che essa
non incontri un punto (la soluzione ottima) della regione ammissibile che è un vertice.
Di questa proprietà verrà ora fornita una dimostrazione algebrica.
Dimostrazione della Proprietà l (a). Si supponga per assurdo che il problema abbia un ' unica soluzione ottima e che essa non sia un vertice. Mostreremo che questo
porta a una contraddizione e risulta quindi impossibile (la soluzione ottima sarà denotata con x* mentre il corrispondente valore della funzione obiettivo sarà Z*).
Si ricordi che un vertice ammissibile è una soluzione ammissibile che non si trova su nessun segmento che collega altre due soluzioni ammissibili. Poiché abbiamo
supposto (per assurdo) che la soluzione ottima x* non è un vertice, devono esistere
altre due soluzioni ammissibili distinte tali che il segmento che li congiunge contiene la soluzione ottima. Si denotino con x' e x" queste soluzioni ammissibili e con Z 1
e Z2 i rispettivi valori della funzione obiettivo. Come per ogni altro punto sul segmento che congiunge x' e x" , si ha che
x* = a x"+( l - a) x'
per un qualche valore di a tale che O < a
< l. Quindi,
Z* = aZz+( l - a)Z,
Dato che la somma dei pesi a e l - a è pari a l , le uniche possibilità per Z*, Z 1 e
Z2 sono (l) Z* = Z 1 = Z2 , (2) Z 1 < Z* < Z2 e (3) Z 1 > Z* > Zz. La prima possibilità implica che anche x' e x" sono soluzioni ottime, fatto questo che contraddice l'ipotesi che esiste una sola soluzione ottima. Entrambe le altre possibilità contraddicono l'ipotesi che x* sia una soluzione ottima. In conclusione non è possibile il caso
di una sola soluzione ottima che non sia anche un vertice.
1..
Si consideri adesso la parte (b) che è stata già considerata nel Paragrafo 3.2 a proposito
della definizione di soluzione ottima quando si è cambiata la funzione obiettivo in
Z = 3x 1 + 2x 2 (si faccia riferimento alla Figura 3.5). Ciò che accade quando si risolve
graficamente il problema è che la retta che rappresenta la funzione obiettivo può essere
spostata in alto fino a quando essa non include il segmento che congiunge i due vertici (2 ,
6) e (4, 3). La stessa cosa accadrebbe per dimensioni maggiori salvo che, in questo caso,
l'iperpiano che rappresenta la funzione obiettivo continuerebbe a essere spostato verso
l'alto fino a che non conterrebbe il segmento(i) che congiunge due (o più) vertici ammissibili adiacenti. Di conseguenza, tutte le soluzioni ottime possono essere ottenute come medie pesate dei vertici ottimi. (Questa situazione è descritta più in dettaglio nei problemi
4.5-5 e 4.5-6.)
La vera importanza della Proprietà l è che essa facilita notevolmente la ricerca di una
soluzione ottima perché in questo caso devono essere considerati soltanto i vertici ammissibili. L'utilità di questa semplificazione è messa in evidenza nella Proprietà 2.
140
CAPITOLO 5
LA TEORIA DEL METODO DEL SIMPLESSO
Proprietà 2. Il numero di vertici ammissibili è finito.
Questa proprietà è certamente vera nei casi riportati nelle Figure 5.1 e 5.2, in cui sono presenti, rispettivamente, 5 e 10 vertici ammissibili. Per comprendere perché, in generale, il
numero dei vertici è finito, occorre ricordare che ogni vertice è soluzione di un sistema di
n delle m + n equazioni che definiscono la frontiera. Il numero di combinazioni differenti
di m + n equazioni considerate n alla volta è
(m+ n)!
m!n!
che è un numero finito. Questo è un limite superiore sul numero di possibili vertici ammissibili. Nella Figura 5.1, con m = 3 e n= 2, sono presenti 10 differenti sistemi di due
equazioni, ma solo la metà di essi fornisce vertici ammissibili. Nella Figura 5.2, m = 4 e
n = 3, si possono individuare 35 differenti sistemi di tre equazioni, ma di questi solo 10
forniscono vertici ammissibili.
La Proprietà 2 suggerisce che, in linea di principio, una soluzione ottima può essere ottenuta mediante enumerazione completa; cioè è sufficiente trovare tutti i vertici (che sono
in numero finito) e confrontarli. Purtroppo, ci sono numeri finiti che (a fini pratici) è come se fossero infiniti. Per esempio, un problema di programmazione lineare di dimensioni
piuttosto piccole caratterizzato da m = 50 e n = 50 ha l 00! /(50!) 2 ;:::; 1029 sistemi di equazioni da risolvere! Per un problema di queste dimensioni, il metodo del simplesso esamina invece solo circa 100 vertici. Questo notevole vantaggio può essere ottenuto grazie al
test di ottimalità descritto nel Paragrafo 4.1 e qui riesposto come Proprietà 3.
Proprietà 3. Se un vertice ammissibile non ha vertici adiacenti migliori (in termini
della funzione obiettivo Z), allora non ci sono vertici migliori. Di conseguenza, assumendo che il problema possieda almeno una soluzione ottima (garantita se il problema ha soluzioni ammissibili e la regione ammissibile è limitata), si ha la certezza
che un vertice con tale proprietà è una soluzione ottima (in base alla Proprietà l ).
Per illustrare la Proprietà 3, si consideri la Figura 5.1 per l'esempio Wyndor Glass Co.
Per il vertice (2, 6), i vertici adiacenti sono (0, 6) e (4, 3) e nessuno di esso ha un valore di
Z migliore di quello ottenuto per (2, 6). Questo risultato implica che nessuna degli altri
vertici ammissibili - (0, O) e (4, O) - può essere migliore di (2, 6), e così (2, 6) è una soluzione ottima.
Al contrario, la Figura 5.3 mostra una regione ammissibile che non può mai presentarsi
per un problema di programmazione lineare (dato che il prolungamento delle retta che definisce la frontiera e che passa per (t, 5) taglierebbe fuori parte di questa regione) e che
viola la Proprietà 3. 4 Il problema indicato è identico all'esempio Wyndor Glass Co. (con
la stessa funzione obiettivo) a parte l'allargamento della regione ammissibile alla destra di
(t, 5). I vertici adiacenti a (2, 6) sono (0, 6) e (t, 5) e nessuno di essi è migliore di (2
6) in termini della funzione obiettivo. Tuttavia, un altro vertice ammissibile è migliore di
(2, 6), e quindi viene violata la Proprietà 3. Il motivo è che la frontiera della regione ammissibile "scende " da (2, 6) a (t, 5) dopodiché "curva" verso (4, 5) oltre la retta che
definisce la funzione obiettivo che passa attraverso (2, 6).
Il punto chiave è che la situazione illustrata nella Figura 5.3 non può mai accadere nella programmazione lineare. La regione ammissibile nella Figura 5.3 implica che i vincoli
2x2 :S: 12 e 3x, + 2x2 :S: 18 sono validi quando O :S: x, :S: mentre per :S: x, :S: 4 il vincolo 3x 1 + 2x2 :S: 18 viene eliminato e sostituito con x 2 :S: 5. Tali "vincoli condizionali,.
non sono permessi nella programmazione lineare.
t
4
t
Come chiarito nel segu ito, la regione ammissibile in questo caso non è un insieme convesso, cosa che non pu
mai accadere per un problema di progtammazione lineare. 1 dC)
FICURA
:l.-oblema V\
Co. modifico
la propri(
- vessità d
~ missibile
=-ogramma;
·- la Proprie
=rtici ottimi
5.1
FONDAMENTI DEl METODO DEL SIMPLESSO
141
q,s)
4
• FIGURA5.3
Problema Wyndor Glass
Co. modificato che viola
sia la proprietà di
convessità della regione
ammissibile per la
programmazione lineare
sia la Proprietà 3 per i
vertici ottimi .
).
:i
--
2
(0 , O)
2
4
La ragione fondamentale per cui la Proprietà 3 vale per un qualunque problema di programmazione lineare è che per questo problema la regione ammissibile ha la proprietà di
essere sempre un insieme convesso,5 come definito nell ' Appendice l. Per i problemi di
programmazione lineare in due variabili questa proprietà di convessità significa che, all'interno detta regione ammissibile, l 'angolo per ogni vertice ammissibile è inferiore a
180°. Questa proprietà è illustrata nella Figura 5.1, in cui gli angoli in (0, 0), (0, 6) e (4, O)
sono di 90° e quelli in (2 , 6) e (4, 3) sono compresi tra 90° e 180°. Al contrario, la regione
ammissibile nella Figura 5.3 non è un insieme convesso, perché l'angolo in (
5) è
maggiore di 180°. Questo è il genere di "piegatura esterna" (con un angolo maggiore di
180°) che non può mai accadere nella programmazione lineare. Per dimensioni maggiori
continua a applicarsi la stessa nozione intuitiva "mai piegatura esterna" (che è una proprietà fondamentale di un insieme convesso).
Per chiarire l'importanza della convessità della regione ammissibile, si consideri l'iperpiano che rappresenta la funzione obiettivo che passa per un vertice ammissibile che non
ha vertici adiacenti migliori [nell'esempio Wyndor Glass Co. originale, questo iperpiano è
la retta detta funzione obiettivo che passa per (2, 6)]. Tutte le soluzioni adiacenti [(0, 6) e
(4, 3) nell'esempio] devono trovarsi sull'iperpiano o dal lato sfavorevole (come misurato
da Z) dell ' iperpiano. La convessità della regione ammissibile significa che la frontiera
non può "piegarsi esternamente" oltre un vertice adiacente per fornire un altro vertice
che si trova dal lato favorevole rispetto all'iperpiano.
f,
Estensioni alla forma aumentata del problema
Per un problema di programmazione lineare in forma standard (con i vincoli funzionali
nella forma :::;), dopo che sono state introdotte le variabili slack, i vincoli si presentano nel
seguente modo:
5
Se si ha già familiarità con la nozione di insieme convesso, si noti che l' insieme delle soluzioni che soddisfano
un generico vincolo di programmazione lineare (sia esso di uguaglianza o disuguaglianza) è un insieme convesso. Per un qualunque problema di programmazione lineare, la regione ammissibile è formata dall ' intersezione
dei semispazi che soddisfano ciascun vincolo. Poiché l' intersezione di insiemi convessi è ancora un insieme convesso, la regione ammissibile è conseguentemente un insieme convesso.
142
CAPITOLO 5
LA TEORIA DEL METODO DEL SIMPLESSO
(l)
a11X1
(2)
a21X1
+ a12X2 + · · · + a1nXn + xn+l
+ a22X2 + · · · + a2nXn
+ Xn +2
= b1
= b2
+xn+m = bm
dove Xn+I, Xn+2, ... , Xn+m sono le variabili slack. Per altri problemi di programmazione
lineare, nel Paragrafo 4.6 è stato descritto come questa stessa forma (forma canonica) può
essere ottenuta introducendo variabili artificiali. Quindi, le variabili originali (x 1, x 2 . . . ,
X11 ) sono aumentate introducendo variabili slack o artificiali (xn+l, Xn+2 ... , Xn+m) e anche
variabili surplus. Questo incremento ha condotto, nel Paragrafo 4.2, a definire le soluzioni di base come vertici aumentati e le soluzioni di base ammissibili (BFS) come vertici
ammissibili aumentati. Di conseguenza, le tre proprietà precedenti dei vertici valgono anche per le BFS.
Ogni vertice è la soluzione di un sistema delle n equazioni che definiscono il vertice.
La questione fondamentale è come si possa determinare se una particolare equazione
(corrispondente alla frontiera di un vincolo) è una delle equazioni che definiscono il vertice quando il problema è nella forma aumentata. La risposta è, fortunatamente, semplice.
Ogni vincolo ha una variabile indicatrice (indicating variable) che assicura (se il suo
valore è zero) che l 'equazione che definisce la frontiera di quel vincolo è soddisfatta dalla
soluzione corrente. Questo concetto è schematizzato nella Tabella 5.3 . Per ciascun tipo di
vincolo in ogni riga della tabella, si può notare che la corrispondente equazione che definisce la frontiera (quarta colonna) è soddisfatta se e soltanto se una specifica variabile
(quinta colonna) è uguale a zero. Nell'ultima riga (vincolo funzionale nella forma ~) , la
variabile Xn+i - x5 , è in realtà la differenza fra la variabile artificiale Xn+i e la variabile surplus x 5 , .
Quindi, nella forma aumentata del problema, ogni volta che un'equazione che definisce la frontiera di un vincolo è una delle equazioni che defmiscono il vertice, una specifica variabile ha valore uguale a zero. Una tale variabile è denominata variabile non di base per la soluzione di base corrispondente. Le conclusioni e la terminologia risultanti (già
introdotte nel Paragrafo 4.2) sono riassunte di seguito.
Ogni soluzione di base ha m variabili di base e le rimanenti variabili sono variabili non di
base e poste uguali a zero (il numero delle variabili non di base è uguale a n più il numero
delle variabili surplus). Per un problema nella forma aumentata (dopo che le variabili non di
base sono poste uguali a zero), i valori delle variabili di base sono ottenuti risolvendo un sistema di m equazioni. Questa soluzione di base è un vertice le cui n equazioni che lo definiscono sono quelle indicate dalle variabi li non di base. In particolare, ogni qual volta una variabile nella quinta colonna della Tabella 5.3 è una variabile non di base, l'equazione che defmisce la frontiera nella quarta colonna è un'equazione che definisce il vertice (per i vincoli funzionali nella forma 2:, almeno una delle due variabili supplementari Xn+i e x, ; è sempre una
variabile non di base, ma l'equazione della frontiera diventa un 'equazione che definisce il vertice soltanto se entrambe le variabili sono variabili non di base).
• TABELLA 5.3 Variabili di segnalazione per le equazioni della frontiera*
Tipo di
vincolo
Nonnegatività
Funzionale(::;)
Forma del
vincolo
Xj 2 0
n
LOij Xj::; b;
i= l
n
Funzionale(= )
I: a;ixi = b;
i= l
n
Funzionale (2 )
I:aijXj 2 b;
i= l
Vincolo nella forma
aumentata
Xj 2 0
n
I: a
"
x -
Xj
I:a;jXj = b;
i=l
x,_1
I:a;ixi = b;
i=l
n
I:a;ixi = b;
i= l
Xn+l
n
= b;
I:a Xj-X~J-Xs
=b;
f=l
* Variabile indicatrice = O=;. equazione d
Variabile indicatrice i- O =;. equazione d
Xj = 0
Xn-1 = b;
"=l
t,
Variabile
indlcatrice
n
n
I: a-x -
Equazione della
frontiera
tiera soddisfatta.
tiera violata.
Xn+l
Xn+1 -
Xs;·
5.1
143
FONDAMENTI DEL METODO DEL SIMPLESSO
Si considerino adesso le soluzioni di base ammissibili. Si può notare che l'unico requisito
affinché una soluzione possa essere ammissibile nella forma aumentata del problema è
che essa soddisfi il sistema di equazioni e che tutte le variabili siano nonnegative.
Una BFS è una soluzione di base in cui tutte le m variabili di base sono nonnegative (;o: 0).
Una BFS è detta degenere se qualcuna di queste m variabili è uguale a zero.
Quindi, per una variabile è possibile che il suo valore sia uguale a zero e comunque non
essere una variabile non di base per la BFS corrente (questo caso corrisponde a un vertice
che soddisfa l'equazione che definisce la frontiera di un ulteriore vincolo oltre alle n equazioni). Di conseguenza, è necessario tenere traccia dell ' insieme corrente delle variabili
non di base (o l ' insieme corrente delle variabili di base) piuttosto che basarsi sui valori
uguali a zero.
Non tutti i sistemi di n equazioni forniscono un vertice, perché o il sistema non ha soluzione o ha soluzioni multiple. Per motivi analoghi, non tutti gli insiemi con n variabili
non di base producono una soluzione di base. Tuttavia, con il metodo del simplesso si riesce a evitare questi casi.
Per illustrare queste definizioni appena introdotte, si consideri ancora una volta l'esempio Wyndor Glass Co. Le relative equazioni che definiscono la frontiera e le variabili sono riportate nella Tabella 5.4.
Questi vertici (si faccia riferimento alla Tabella 5.1) determinano le BFS elencate nella
Tabella 5.5. Questa tabella dispone le BFS adiacenti vicine tra loro tranne la coppia costituita dalla prima e ultima delle soluzioni elencate. Si può notare che in ogni caso le variabili non di base sono le variabili che segnalano le equazioni che definiscono il vertice.
Quindi, BFS adiacenti differiscono perché hanno una sola variabile non di base differente.
Si può notare, inoltre, che ogni BFS è soluzione del sistema di equazioni per il problema
nella forma aumentata (Tabella 5.4) con le variabili non di base poste uguali a zero.
Allo stesso modo, i tre vertici non ammissibili (con riferimento alla Tabella 5.2) determinano le tre soluzioni di base non ammissibili indicate nella Tabella 5.6.
Gli altri due insiemi di variabili non di base, x 1 e x 3 e x 2 e x 4 , non determinano una soluzione di base, perché porre l 'una o l'altra coppia di variabili uguale a zero porta ai sistemi di
equazioni per i quali non esiste soluzione. Questa conclusione è analoga a quella ottenuta
all'inizio di questo paragrafo per gli insiemi corrispondenti di equazioni che defmiscono la
frontiera e per i quali non esiste soluzione.
Il metodo del simplesso inizia con una BFS e quindi si muove iterativamente verso una
BFS adiacente migliore fino a raggiungere una soluzione ottima. Come viene raggiunta la
BFS adiacente a ogni iterazione?
Per il problema nella forma originale, un vertice ammissibile adiacente è raggiunto partendo da quello corrente (l) tralasciando la frontiera di uno dei vincoli (una equazione che
defmisce il vertice) dall'insieme che definiscono la soluzione corrente, (2) allontanandosi
dalla soluzione corrente nella direzione ammissibile lungo l'intersezione delle frontiere dei
rimanenti n- l vincoli (uno spigolo della regione ammissibile) e (3) arrestandosi quando
viene raggiunta la prima nuova frontiera di un vincolo.
• TABELLA 5.4 Variabili di segnalazione per le equazioni che definiscono la frontiera
del problema Wyndor Glass Co.*
Vincolo nella forma
aumentata
Equazione che
definisce la frontiera
Variabile
indicativa
X1 ~ 0
x2 ~ O
(l) x1 +
X3
= 4
(2)
= 12
2x2 + x4
xs = 18
(3) 3xl + 2x2 +
Xl = 0
X2 = 0
X1 = 4
2x2 = 12
3xl + 2x2 = 18
Xl
X2
X3
x4
xs
Vincolo
X1 ~ 0
X2 ~ 0
X1 ::0 4
2x2 :::; 12
3xl + x2 :::; 18
* Variabile indicatrice
Variabile indicatrice
= O => equazione della frontiera soddisfatta.
f. O => equazione della frontiera vio lata .
144
CAPITOLO 5
LA TEORIA DEL METODO DEL SIMPLESSO
• TABELLA 5.5 BFS per il problema Wyndor Glass Co.
Vertice
(0, O)
(0, 6)
Equazioni di
definizione
x,=
X2 =
BFS
o
o
o
(0, O, 4, 12, 18)
x, =
= 12
(0, 6, 4, O, 6)
(2, 6)
2x2 = 12
3x1 + 2x2 = 18
(2, 6, 2, O, O)
(4, 3)
3x1 + 2x2 = 18
x,= 4
(4, 3, O, 6, O)
x,= 4
X2 = o
x,
x2
2x2
(4, O)
Variabili
non di base
x,
X4
x4
xs
xs
X3
(4, O, O, 12, 6)
X3
X2
TABELLA 5.6 BFS per il problema Wyndor Glass Co.
Vertice
non ammissibile
Equazioni di
definizione
Soluzione di base
non ammissibile
Variabili
non di base
(0, 9)
x,= o
3x, + 2x2 = 18
(0, 9, 4, - 6, O)
x,
= 12
x, = 4
(4, 6, O, O, - 6)
(4, 6)
(6, O)
2x2
3x1 + 2x2 = 18
X2 = o
xs
x4
X3
(6, O, - 2, 12, O)
xs
X2
Adoperando la nuova terminologia, il metodo del simplesso raggiunge una BFS adiacente
partendo da quella corrente (l) cancellando una variabile (la variabile entrante) dall'insieme delle n variabili non di base che definiscono la soluzione corrente, (2) allontanandosi
dalla soluzione corrente aumentando questa variabile a partire dal suo valore corrente zero
(e aggiustando le altre variabili di base così da soddisfare ancora il sistema di equazioni) e
mantenendo le restanti n - l variabili non di base a livello zero e (3) arrestandosi quando
la prima delle variabili di base (la variabile di base uscente) raggiunge il valore zero. Con
l'una o l'altra interpretazione, la scelta fra le n alternative nel passo l è effettuata selezionando quella che fornisce il migliore tasso di incremento per Z (incremento della funzione
obiettivo ottenuto con un incremento unitario della variabile entrante) durante il passo 2.
La Tabella 5.7 illustra la stretta corrispondenza fra l'interpretazione geometrica e quella algebrica del metodo del simplesso. Usando i risultati già presentati nei Paragrafi 4.3 e
4.4, la quarta colonna riassume la sequenza di BFS determinate per il problema Wyndor
Glass Co. mentre la seconda colonna mostra i corrispondenti vertici. Nella terza colonna
si può notare come ogni iterazione provoca l'eliminazione della frontiera di un vincolo
(una equazione che defmisce il vertice) e la sostituzione di questa con una nuova per ottenere il nuovo vertice. Allo stesso modo la quinta colonna mostra che ogni iterazione provoca la cancellazione di una variabile non di base e la sostituzione con una diversa per ottenere la nuova BFS . Inoltre, le variabili non di base che sono state cancellate e aggiunte
sono esattamente le variabili che indicano le equazioni (eliminate e aggiunte) che definiscono il vertice, come riportato nella terza colonna. L'ultima colonna visualizza il sistema
di equazioni iniziale [esclusa l'equazione O] per la forma aumentata del problema, con le
variabili di base correnti indicate in gras eno. Si può notare come, ponendo le variabili
non di base a zero e risolvendo questo istema di equazioni, si ottiene la stessa soluzione
per le componenti x 1 e x2 che si ottengono dalla corrispondente coppia di equazioni che
definiscono il vertice (riportati nella terza olonna).
5.2
5.2
IL METODO DEL SIMPLESSO RIVISITATO
145
TABELLA 5.7 Sequenza di soluzioni ottenuta dal metodo del simplesso per il
problema Wyndor Glass Co.
lterazlone
Vertice
o
(0, O)
Equazioni di
definizione
Xl=
X2 =
o
o
BFS
(0,
Variabili
non di base
o, 4, 12, 18)
X1 = 0
X2 = 0
Vincoli funzionali
nella forma
aumentata
Xl
2x2
3xl +
l
(0, 6)
2
(2, 6)
(0, 6, 4, O, 6)
= 12
= 18
(2, 6, 2, O, O)
2x2
3xl +
5.2
X]= o
2x2 = 12
2x2
2x2
+ x3 = 4
+ X4 = 12
+ xs = 18
X]
X] = 0
X4 = O
+ X3 = 4
2x2 + X4 = 12
3xl + 2x2 + xs = 18
= O
= O
+ x3 = 4
2x2 + X4 = 12
3xl + 2x2 + xs = 18
X4
xs
Xl
IL METODO DEL SIMPLESSO RIVISITATO
Come descritto nel Capitolo 4, il metodo del simplesso (da qui in poi chiamato il metodo
del simplesso originario) è una semplice procedura algebrica. Tuttavia, questo modo di
eseguire l'algoritmo (nella forma algebrica o tabellare) non è la procedura di calcolo più
efficiente per una sua implementazione su un computer perché vengono elaborati e immagazzinati molti dati che non sono necessari all'iterazione corrente e che possono non diventare rilevanti nelle iterazioni successive. Le uniche informazioni rilevanti a ogni iterazione sono i coefficienti delle variabili non di base nell 'equazione (0), i coefficienti della
variabile entrante nelle altre equazioni e i termini noti delle equazioni. Sarebbe molto utile
avere a disposizione una procedura in grado di ottenere queste informazioni in modo efficiente senza elaborare e immagazzinare tutti gli altri coefficienti.
Come accennato nel Paragrafo 4.8, queste considerazioni hanno motivato l'elaborazione del metodo del simplesso rivisitato. 6 Questo metodo è stato progettato per eseguire
esattamente le stesse operazioni del metodo del simplesso originario, ma in maniera più
efficiente per l'esecuzione su un computer. Sostanzialmente, è una versione semplificata
della procedura originale. Esso elabora e memorizza soltanto le informazioni che sono attualmente necessarie e riporta i dati essenziali in una forma più compatta.
Poiché il metodo del simplesso rivisitato usa in modo esplicito operazioni su matrici,
risulta necessario descrivere il problema di programmazione lineare usando una notazione
matriciale. (Si faccia riferimento all'Appendice 3 per i concetti di base sulle matrici). Per
distinguere fra matrici, vettori e scalari, di seguito vengono usate lettere maiuscole in
grassetto per rappresentare matrici, lettere minuscole in grassetto per rappresentare vettori e lettere in corsivo per rappresentare scalari. Inoltre viene usato il termine zero in neretto (O) per denotare un vettore nullo (un vettore i cui elementi sono tutti uguali a zero)
sia esso un vettore colonna che un vettore riga (questo sarà chiaro dal contesto), mentre
uno zero scritto in carattere normale (O) continua a rappresentare il numero zero.
Usando la notazione matriciale, la forma standard per il modello di programmazione lineare generale dato nel Paragrafo 3.2 diventa
Massimizzare
Z = ex
soggetto ai vincoli
e
6
Alcuni autori usano la dicitura " metodo del simplesso rivisto". (NdC)
146
CAPITOLO 5
LA TEORIA DEL METODO DEL SIMPLESSO
dove c è il vettore riga
x, b e O sono
vettori colonna con
X=
[~.~
;,
e A è la matrice
1
[~~
b=
1
b:,
:.~: ~ .~
A = [..
.. ...
am]
.... :.:.: ....
am2
...
0=
r~
1
ò
~~~ 1
amn
l
Per ottenere la forma aumentata dei problema, si introduce il vettore colonna costituito
dalle variabili slack
Xn + J
Xn + 2
Xs
=
.
Xn~m
[
cosicché i vincoli diventano
dove I è la matrice identità m x m e il vettore nullo Oha ora n
+ m elementi.
Calcolo di una soluzione di base ammissibile
L'approccio generale del metodo del simplesso è quello di ottenere una sequenza di BFS
sempre migliori fino a quando non si raggiunge una soluzione ottima. Una delle caratteristiche principali del metodo del simplesso rivisitato riguarda il modo in cui esso risolve il
problema di detetminare una nuova BFS dopo avere identificato le variabili di base e non
di base. Date queste variabili, la soluzione di base risultante è la soluzione del sistema di
m eqmiZIOOI
in cui le n variabili non di base nel vettore di n
+ m elementi
sono poste uguali a zero.
Eliminando queste n variabili, ponendo il loro valore uguale a zero, rimane un insieme
di m equazioni in m variabili. Questo sistema di equazioni può essere denotato con
=b
Bxa
dove il vettore delle variabili di base
X82
XBI
xa =
.
[
_ XBm
l
5.2
147
IL METODO DEL SIMPLESSO RIVISITATO
è ottenuto eliminando le variabili non di base da
e la matrice di base
B21
B1 2
Bn
···
B1m
B2m
rBml
Bm2
···
Bmm
BII
B=
l
è ottenuta eliminando le colonne che corrispondono alle variabili non di base dalla matrice [A, 1]. (Gli elementi di x8 e, pertanto, le colonne di B possono essere disposti in un ordine differente quando viene eseguito il metodo del simplesso ).
Il metodo del simplesso introduce soltanto le variabili di base per le quali B è non singolare, di modo che la matrice B- 1 esiste. Di conseguenza, per risolvere il sistema di
equazioni Bx8 = b, è sufficiente pre-moltiplicare i termini a sinistra e a destra per B- 1:
B- 1Bx 8
Dato che B- 1B
= B- 1b
= I, la soluzione per le variabili di base è
Sia c8 il vettore i cui elementi sono i coefficienti della funzione obiettivo (compreso gli
zeri per le variabili slack) per i corrispondenti elementi di x8 . Il valore della funzione
obiettivo per la soluzione di base ottenuta è
lZ =
CsXB
1
= CsB - b l
Esempio. Per illustrare questo modo di calcolare una BFS, si consideri di nuovo il problema Wyndor Glass Co. presentato nel Paragrafo 3.1 e risolto con il metodo del simplesso originario in Tabella 4.8. In questo caso,
Riferendosi alla Tabella 4.8, si nota che la sequenza di BFS ottenute con il metodo del
simplesso (originale o rivisitato) è la seguente:
Iterazione O
[ ~: l = [~ ~ ~l [~~l [~~l
x5
,,
Iterazione l
~ [0, O, O[
'pertanto Z
O O l
~ [0, O, O] [:~l ~ O
18
18
148
CAPITOLO 5
LA TEORIA DEL METODO DEL SIMPLESSO
e pertanto
l [~ ~l Ul
o
[x,xz
xs
l
T
-l
ca= [O, 5, O] 'qu;nd; Z
~ [0, 5, O[
[i]
[i]
= 30
lterazione 2
xa =
o
[~:]• B ~ [~
2
2
~l
B_ ,
~
l
3
l
[:
T
l
- 3
-+l
o '
l
3
e pertanto
X}]
[~~
o8
[l~ -t+ -+][4]
~ ~~
~ [0, 5, 3]
'qu;ndi Z
[2]
~
~ [O, 5, 3[ [~] ~ 36
Forma matriciale dell'insieme delle equazioni corrente
Rimane ora da mostrare come ottenere l' insieme delle equazioni che compaiono nel tableau a ogni iterazione del metodo del simplesso originario.
L'insieme originario di equazioni è espresso in forma matriciale come
[~
-c
A
Questo insieme di equazioni è mostrato nel primo tableau della Tabella 5.8.
Le operazioni algebriche eseguite con il metodo del simplesso (moltiplicare un 'equazione per una costante e aggiungere un multiplo di un ' equazione a un ' altra equazione) sono espresse nella forma matriciale pre-moltiplicando entrambi i lati dell ' insieme di equaTABELLA 5.8 Tableau del simplesso iniziale e successivi in forma matriciale
Coefficiente di:
lterazlone
o
Variabili
di base
z
XB
Tutte
z
XB
Eq.
z
(O)
(1 , 2, ... , m)
(O)
(l' 2, . .. m)
l
o
l
:
'
o
variabili
originali
variabili
slack
Termine
noto
-c
A
o
o
I
b
c 88 - 1 A - c
s-1 A
cBB - 1
s- 1
c 88 - 1 b
s -1b
5.2
149
IL METODO DEL SIMPLESSO RIVISITATO
zioni originali per una matrice opportuna. Questa matrice avrà gli stessi elementi della matrice identità eccetto che ciascuna costante moltiplicativa necessaria per una operazione algebrica verrà inserita nella posizione opportuna così che la pre-moltiplicazione per questa
matrice produce l'operazione richiesta. Anche dopo una serie di operazioni algebriche e
parecchie iterazioni, si può determinare questa matrice (in maniera simbolica) usando le
informazioni relative ai termini noti del nuovo insieme di equazioni. In particolare, dopo
ogni iterazione, x 8 = B- 1 be Z = cs B- 1 be i termini noti del nuovo insieme di equazioni diventano
Poiché viene eseguita la stessa serie di operazioni algebriche su entrambi i termini dell'insieme originale di equazioni, la stessa matrice, che pre-moltiplica il lato destro originale,
viene usata per pre-moltiplicare il lato sinistro originale. Di conseguenza, dato che
[~ B- ][1O
c8
1
B- 1
-c
A
la forma della matriciale del! 'insieme delle equazioni dopo ogni iterazione è
[~
Il secondo tableau della Tabella 5.8 mostra questo insieme di equazioni.
Esempio. Per illustrare questa forma matriciale, verrà mostrato come si ottiene l' insieme delle equazioni al termine dell 'iterazione 2 per il problema Wyndor Glass Co. Usando
la matrice B- 1 e il vettore c8 fomiti alla fine del precedente sottoparagrafo per l' iterazione
2, si ha
u-'A~[~
-m~ ~l~[~ ~l
l
3
l
2
l
- 3
~.u-• ~ ro, 5, 3{~
l
3
-1] = [0, ~. l]
l
2
l
- 3
c8
B-'A - c~ 5, 3{~
3
~l
[0,
- [3, 5]
= [0, O]
1
Inoltre, usando i valori di x 8 = B- b e Z = c8 B- 1b calcolati ancora alla fine del precedente sottoparagrafo, si ha il seguente insieme di equazioni:
z
~
L
o
o
o
o
o
o
l
o
o
o
l
3
2
l
3
l
2
l
- 3
come mostrato nel tableau fmale nella Tabella 4.8.
-~1 {~]
x,
3
x2
o
x3
l
3
X4
Xs
\
150
CAPITOLO 5
LA TEORIA DEL METODO DEL SIMPLESSO
La procedura generale
Nella parte inferiore della Tabella 5.8 sono mostrate due importanti implicazioni della forma matriciale dell ' insieme di equazioni corrente. La prima è che per poter calcolare tutti i
valori nel tableau è sufficiente soltanto calcolare B- 1 a partire dai dati originari (A, b, c8 )
del problema. (Questa implicazione è il fulcro dell'osservazione nel paragrafo seguente).
La seconda è che ciascuno di questi valori può essere ottenuto individualmente effettuando solo la moltiplicazione di due vettori (un vettore riga moltiplicato per un vettore colonna) anziché una moltiplicazione completa di una matrice per un vettore. Di conseguenza, i
valori richiesti per eseguire un ' iterazione del metodo del simplesso possono essere ottenuti senza lo sforzo computazionale di calcolare tutti gli altri valori. Queste due importanti implicazioni sono comprese nel seguente sommario della procedura.
Sommario del metodo del simplesso rivisitato
l. lnizializzazione: come per il metodo del simplesso originario.
2. lterazione:
Passo l determinare la variabile entrante: analogo al metodo del simplesso originario.
Passo 2 determinare la variabile di base uscente: analogo al metodo del simplesso originario, eccetto che vengono calcolati soltanto i valori strettamente necessari [i
coefficienti della variabile entrante in tutte le equazioni eccetto l'equazione (O)
e, per ogni coefficiente strettamente positivo, il termine noto di quella equazio-
nef
Passo 3 determinare la nuova BFS: calcolare B- 1 e porre x8
= B- 1 b.
3. Test di ottimalità: analogo al metodo del simplesso originario, a parte che occorre calcolare soltanto i valori richiesti per effettuare questo test, cioè, i coefficienti delle variabili non di base nell'equazione (0).
Al passo 3 la motrice B- 1 può essere ottenuta ogni volta usando una procedura standard
per il calcolo dell'inversa di una matrice. Tuttavia, poiché B (e quindi B- 1) cambia di poco da una iterazione alla successiva, risulta molto più efficiente de1ivare la nuova B- 1
(denotata come B;;-u~va) a partire dalla matrice B- 1 ottenuta nell'iterazione precedente
1
(denotata come B;;-e~chia) - (Per la BFS iniziale, B =I= B- ). Un metodo è basato diretta1
mente sull ' interpretazione degli elementi di B- [i coefficienti delle variabili slack nelle
equazioni correnti(!), (2) . .. , (m)] presentato nel paragrafo seguente, e sulla procedura
usata dal metodo del simplesso originale per ottenere il nuovo insieme di equazioni dall'insieme precedente.
Per descrivere formalmente questo metodo, sia
Xk = variabile entrante
a;k = coefficiente di xk nella i-esima equazione per i = l, 2 ... , m. (calcolata al passo
2 di una iterazione),
r = numero dell 'equazione che contiene la variabile di base uscente.
Il nuovo insieme di equazioni [a parte l'equazione (O)] può essere ottenuto dall ' insieme
precedente sottraendo a;ja~k volte l' equazione (r) dall'equazione (i), con i= l , 2 . .. , m
escluso i= re, quindi, dividendo l equazione (r) per a;.k. Di conseguenza, l'elemento nella riga i e nella colonna} di B;;-u~va è
1 ) _
(B-nuova
ij -
(B;:-~chia)ij - ::k (B~e~chia)ij
1
{ d
rk
se i -=J r
rk
1
B-n:cchia
,,
se i= r
1
7
Poiché il va lore di x8 è uguale al vettore dei terminj noti eccetto per l 'Equazione (0), non è necessario qui ricalcolare il vettore dei termini noti se x 8 è stato già cal iz'.o al passo 3 nella precedente iterazione.
5.2
151
Il METODO DEL SIMPLESSO RIVISITATO
Queste formule possono essere espresse in forma matriciale come
1
B-nuova
-
1
EB-vecchia
dove la matrice E è la matrice identità salvo che la sua r-esima colonna è sostituita dal
vettore
)
.
.-
-
11=
1-
'YJ2
7Jl1
con
o
[
1];
=
~111
{
- a;k
a; k
l
a;.k
se i =l= r
sei= r
Quindi, E = [e~> e2 • •• , e,._ 1, 11, e,. + 1 • • • , e111 ] , dove gli m elementi di ciascuno dei vettori della colonna e; sono O tranne un l nella i-esima posizione.
Esempio. Verrà ora illustrato il metodo del simplesso rivisitato applicandolo al problema Wyndor Glass Co. Le variabili di base iniziali sono le variabili slack
:J.-
(i
=
Xs
O)
X3]
[Xs
X4
o-
Iterazione I
Poiché all'inizio B- 1 = l , nessun calcolo è necessario per ottenere i valori richiesti per
identificare la variabile entrante x 2 ( - c2 = - 5 < -3 = - c 1) e la variabile di base uscente
x4 (a 12 = O, bz/a22 = 122 <
= b3 j a 32 e pertanto r = 2). Quindi, il nuovo insieme delle variabili di base è
Jf
li'll -
10-1
'
Per ottenere la nuova matrice B-
1te
ta:lle
1
,
_ a1 2
~ [}]
Gzz
tml
!al-
11=
Gzz
_ a 32
Gzz
e pertanto
o
o
o
o
l
l
2
2
:me
.m
o
-1
nel-
l
- 1
~l
cosicché
o
l
2
-l
n
-
Per verificare se questa soluzione è ottima, si calcolano i coefficienti delle variabili non di
base (x 1 e x 4 ) nell ' equazione (0). Effettuando solo le rilevanti operazioni tra vettori e matrici, si ottiene
152
CAPITOLO 5
LA TEORIA DEL METODO DEL SIMPLESSO
c,B - 'A-
m l-
o
c~ [O, 5, o{~
l
2
-1
c.u- '
o
~ [O, 5, 01[
[3. -]
~
[-3.-]
l~ [-.l.-1
l
2
-l
5
e i coefficienti di x 1 e di x 4 sono, rispettivamente, - 3 e-. Poiché x 1 ha coefficiente nega2
tivo, questa soluzione non è ottima.
Iterazione 2
Usando i coefficienti delle variabili non di base nel! 'equazione (O) e poiché soltanto x 1 ha
un coefficiente negativo, la successiva iterazione viene iniziata identificando x 1 come la
variabile entrante. Per determinare la variabile di base uscente, devono essere calcolati gli
altri coefficienti di x 1:
o
l
2
-1
Usando la colonna dei termini noti per la BFS corrente (il valore di x8 ) appena ottenuti
per l' iterazione l , i rapporti 4/ 1 > 6/3 indicano che x 5 è la variabile di base uscente, così il
nuovo insieme delle variabili di base è
_Eh
Xs =
[
a3I
x3]
con
x2
YJ =
_Eh_
a3I
l
3
o
XI
3
Di conseguenza, la nuova B- 1 è
o
o
l
2
o
l
-1
cosicché
Applicando il test di ottimalità, si trova che i coefficienti delle variabili non di base (x 4 e
x 5 ) nell 'equazione (O) sono
Poiché entrambi i coefficienti (~e l sono nonnegativi, la soluzione corrente (x 1 = 2, x::
= 6, x3 = 2, x4 = O, x5 = O) è ottima e la procedura termina.
5.3
UN CONCETTO FONDAMENTALE
153
Osservazioni generali
La discussione precedente si è limitata al caso di problemi di programmazione lineare nella forma standard. Tuttavia, le modifiche necessarie per altre forme sono relativamente
semplici. L'inizializzazione deve essere condotta in modo analogo al metodo del simplesso originario (come mostrato nel Paragrafo 4.6). Quando questo passo richiede l'introduzione di variabili artificiali per ottenere una BFS iniziale (e quindi ottenere una matrice
identità come la matrice iniziale di base), queste variabili sono incluse fra gli m elementi
di X s .
I vantaggi del metodo del simplesso rivisitato rispetto al metodo del simplesso originario sono molteplici. Un vantaggio è che il numero di operazioni aritmetiche è molto ridotto. Ciò è particolarmente vero quando la matrice A contiene moltissimi elementi uguali a
zero (che è solitamente il caso per problemi di grandi dimensioni che si presentano in pratica). La quantità di informazioni che deve essere memorizzata a ogni iterazione è, a volte, considerevolmente inferiore. Il metodo del simplesso rivisitato consente inoltre il controllo degli errori di arrotondamento inevitabilmente generati. Questo controllo può essere
eseguito periodicamente ottenendo la matrice B- 1 corrente invertendo direttamente la matrice B. Per di più, alcuni dei problemi di analisi di postottimale discussi nel Paragrafo 4.7
possono essere gestiti meglio con il metodo del simplesso rivisitato. Per tutti questi motivi, il metodo del simplesso rivisitato è solitamente preferibile al metodo del simplesso originale per l'esecuzione su computer.
5.3
UN CONCETTO FONDAMENTALE
Una proprietà del metodo del simplesso (in qualsiasi forma) che è stata messa in luce nella presentazione del metodo del simplesso rivisitato nel Paragrafo 5.2 fornisce la chiave di
lettura sia per la teoria duale che per l'analisi della sensitività (Capitolo 6), due parti molto importanti della programmazione lineare.
Questa proprietà riguarda i coefficienti delle variabili slack e le informazioni che questi
forniscono ed è il risultato diretto della fase di inizializzazione, dove alla i-esima variabile
slack Xn +i è attribuito un coefficiente di +l nel! ' equazione (i) e un coefficiente di O in
ogni altra equazione [compresa (O)] per i= l , 2 ... , m, come indicato dal vettore nullo
O e dalla matrice identità I nella colonna delle variabili slack per l'iterazione O nella
Tabella 5.8 (per gran parte di questo paragrafo, si suppone che il problema sia nellaforma
standard, con bi 2: O per i = l , 2 ... , m, cosicché nessun aggiustamento supplementare è
necessario nella fase di inizializzazione.) L ' altro fattore chiave è che le iterazioni successive modificano le equazioni iniziali soltanto
l. moltiplicando (o dividendo) una equazione per una costante diversa da zero ;
2. aggiungendo (o sottraendo) un multiplo di una equazione a un' altra equazione.
Come già descritto nel paragrafo precedente, una sequenza di operazioni algebriche elementari di questo tipo è equivalente a pre-moltiplicare il tableau iniziale per una specifica
matrice. (Si faccia riferimento ali' Appendice 3 per un riepilogo della teoria delle matrici).
La conseguenza di tutte queste osservazioni può essere riassunta come segue.
Dopo ogni iterazione, i coefficienti delle variabili slack in ciascuna equazione rivelano immediatamente come quella equazione è stata ottenuta a partire dalle equazioni iniziali.
Come esempio dell ' importanza di questo concetto si ricorda, facendo riferimento alla
Tabella 5.8, che la soluzione ottima ottenuta con il metodo del simplesso può essere
espressa come
x 8 = B- 1b
154
CAPITOLO 5
LA TEORIA DEL METODO DEL SIMPLESSO
dove Xs è il vettore delle variabili di base, B- 1 è la matrice dei coefficienti delle variabili
slack per le righe da l a m del tableau finale e b è il vettore dei termini originali. (Questa
matrice B- 1 verrà in seguito denotata con S*). L'analisi postottimale comprende normalmente un ' indagine sui possibili cambiamenti di b. Usando questa formula, si può vedere
esattamente come la BFS ottima cambia (o se diventa non ammissibile a causa di variabili
che assumono valori negativi) in funzione di b. Non occorre riapplicare il metodo del simplesso per ogni nuovo vettore b, perché i coefficienti delle variabili slack forniscono tutte
le informazioni necessarie! In maniera simile, questo concetto basilare permette un risparmio di calcolo notevole anche per il resto de li 'analisi della sensitività.
Per meglio illustrare questo concetto, si consideri ancora l'esempio Wyndor Glass Co.
Esempio. La Tabella 5.9 mostra la porzione più significativa del tableau al fine di illustrare questo importante concetto. In tutti i tableau di questa tabella sono state tracciate
delle linee attorno ai coefficienti delle variabili slack proprio perché questi sono i coefficienti cruciali. Per evitare confusione, si identificano la riga pivot e la colonna pivot attraverso un singolo riquadro attorno all'elemento pivot.
lterazione l
Si considerino le operazioni algebriche eseguite con il metodo del simplesso, durante l'eliminazione gaussiana, per ottenere la nuova BFS. Se tutte le operazioni vengono eseguite
con la vecchia riga 2 (la riga pivot) piuttosto che con la nuova, allora le operazioni algebriche come esplicitato nel Capitolo 4 per l' iterazione l sono
nuova riga O = vecchia riga O +
+
nuova riga l = vecchia riga l
(f ) (vecchia riga 2)
(O) (vecchia riga 2)
nuova riga 2 =
(+)
nuova riga 3 = vecchia riga 3 +
(- l) (vecchia riga 2)
(vecchia riga 2)
TABELLA 5.9 Tableau del simplesso senza le colonne più a sinistra per il
problema Wyndor Glass Co.
Coefficiente di:
Iter azione
o
l
Termine noto
x,
x2
x3
- 3
-5
o
l
o
o
[Il
3
2
- 3
o
o
l
l
o
o
o
x4
o
o
l
o
5
2
l
o
l
o
l
w
o
o
o
o
o
o
o
o
l
o
l
o
2
l
o
o
-3
2
2
- l
3
2
l
3
l
l
Xs
o
o
o
l
o
4
12
18
o
o
o
30
l
6
l
36
l
4
6
-3
2
o
6
l
3
2
5.3
155
UN CONCETIO FONDAMENTAlE
Ignorando per il momento la riga O, si può rilevare che queste operazioni algebriche equivalgono a pre-moltiplicare le righe l , 2 e 3 del tableau iniziale per la matrice
[~ -~ ~l
Le righe l , 2 e 3 del tableau iniziale sono
veooh;e righe 1-3
~~
[
o
2
2
o o
o l o
o o
l
~~]
18
dove la terza, quarta e quinta colonna (i coefficienti delle variabili slack) formano una matrice identità. Di conseguenza,
nuove righe 1- 3
~ [~
=
[~
o
l
l
o
o
o
m
o
l
2
- l
o o
o
2
l
-l
o
1
o
2
2
o
o
l
o
o
o
~~]
18
~l
Si può notare come questa prima matrice sia esattamente quella riportata nel riquadro e
contiene i nuovi coefficienti delle variabili slack nelle righe da l a 3. Questo è dovuto al
fatto che i coefficienti iniziali delle variabili slack nelle righe l, 2 e 3 sono quelli della matrice identità. Quindi i coefficienti delle variabili slack nel nuovo tableau costituiscono effettivamente una registrazione delle operazioni algebriche eseguite.
Questa osservazione non è sufficiente per generare euforia dopo la prima iterazione,
giacché si può facilmente vedere dal tableau iniziale quali sono state le operazioni algebriche effettuate, ma diventa prezioso dopo avere completato più iterazioni.
Per la riga O, l'operazione algebrica eseguita equivale ai seguenti calcoli matriciali, dove, questa volta, si pone l'attenzione sul vettore [0,
O] che pre-moltiplica le righe l, 2
e 3 del tableau iniziale.
f,
Nuove righe O =
[- 3,
- 5 iO,
O,
O i O]
= [-3,
+ [0,
o, Jo,
'
2>
5
2'
o{~
o,l
o
2
2
l o o
o l o
o o l
~~]
18
30]
Si può notare che, anche in questo caso, il vettore è esattamente quello nel riquadro e contiene i nuovi coefficienti delle variabili slack nella riga O del nuovo tableau. Ancora una
volta, il motivo è la presenza della matrice identità per i coefficienti delle variabili slack
nelle righe l , 2 e 3 del tableau iniziale, con questi coefficienti uguali a zero nella riga O
del tableau iniziale.
Iterazione 2
Le operazioni algebriche eseguite sul secondo tableau della Tabella 5.9 per l'iterazione 2
sono
nuova riga O = vecchia riga O +
nuova riga l = vecchia riga l
nuova riga 2 = vecchia riga 2
nuova riga 3 =
+
+
(l) (vecchia riga 3)
(-+>(vecchia riga 3)
(O) (vecchia riga 3)
et> (vecchia riga 3)
156
CAPITOLO 5
LA TEORIA DEL METODO DEL SIMPLESSO
Ignorando per il momento la riga O, si può rilevare che queste operazioni algebriche equivalgono apre-moltiplicare le righe l , 2 e 3 del tableau iniziale per la matrice
[~
o
l
o
-rl
Scrivendo questo secondo tableau come prodotto di matrici, si ottiene
righe finali 1-3
~ [i
o
l
o
-m
o
l
2
- l
m
-m
~ [~
- 3
o
l
- 3
l
2
l
o
o
o
o
3
l
3
l
2
l
l
- 3
l
l
3
o
l
o
2
2
o
o
o
o
1
o
2
2
o
o
o
l
l
o
o
~~]
18
o
o
~~]
18
~l
Le prime due matrici mostrate sulla prima linea di questa formula riassumono, rispettivamente, le operazioni algebriche eseguite durante la seconda e prima iterazione. Il loro prodotto, mostrato come la prima matrice nella seconda riga, mette insieme quindi le operazioni algebriche delle due iterazioni. Si può notare come questa matrice è presente nel
nuovo tableau (nel riquadro nella terza riga) e contiene i coefficienti delle variabili slack
nelle righe l , 2 e 3. Ciò che questa parte del tableau rivela è come è stato ottenuto l 'intero
tableau finale (tranne la riga O) a partire dal tableau iniziale, vale a dire,
+)
+) (
+)
+)
(riga iniziale 3)
riga finale l = (l) (riga iniziale l) + ( (riga iniziale 2) + (riga finale 2 =(O) (riga iniziale l) + C (riga iniziale 2) + (O) (riga iniziale 3)
riga iniziale 2) + ( (riga iniziale 3)
riga finale 3 = (O) (riga iniziale l) + (-
t)
Per comprendere perché questi moltiplicatori delle righe iniziali sono quelli corretti, è sufficiente verificare quali operazioni algebriche vengano eseguite in entrambe le iterazioni.
Per esempio, perché la riga finale l include (f) (riga iniziale 2), anche se un multiplo della riga 2 non è stato aggiunto mai direttamente alla riga l ? Il motivo è che la riga iniziale
(vecchia riga 3) è stata
2 è stata sottratta dalla riga iniziale 3 nell'iterazione l e quindi
sottratta dalla vecchia riga l nella iterazione 2.
Tuttavia, non è necessario eseguire questo controllo. Anche quando il metodo del simplesso ha eseguito centinaia o migliaia di iterazioni, i coefficienti delle variabili slack nel
tableau finale riveleranno come questo tableau sia stato ottenuto dal tableau iniziale. Per
di più, le stesse operazioni algebriche fornirebbero questi stessi coefficienti anche se i valori di alcuni dei parametri nel modello originale (tableau iniziale) fossero cambiati e, pertanto, questi coefficienti rivelano come il resto del tableau finale cambia al cambiare del
tableau iniziale.
Per completare questa esposizione per la riga O, si noti che l'intera riga finale O può essere calcolata dal tableau iniziale usando i coefficienti delle variabili slack nella riga final e
l]. Queste operazioni sono indicate di seguito, dove il primo vettore è la riga O
O - [0,
del tableau iniziale e la matrice rappresenta le righe l, 2 e 3 del tableau iniziale.
c+)
f,
5.3
UN CONCETTO FONDAMENTALE
Riga finale O =
[- 3,
-5 10,
O,
157
O l O]
+ [0,
= [0, o, lo,
1
2'
3
2,
l)[
1,1
i
o
2
2
o o
o I o
o o
l
~~]
18
36]
Si può notare ancora come il vettore che pre-moltiplica le righe I , 2 e 3 del tableau iniziale sia presente esattamente nel tableau finale e contenga i coefficienti delle variabili slack.
Queste quantità devono essere identiche a causa dei coefficienti delle variabili slack nel
tableau iniziale (una matrice identità sotto un vettore nullo).
Riepilogo matematico
Poiché le importanti osservazioni precedenti coinvolgono il tableau finale , è opportuno
fornire un 'espressione matematica generale per il concetto basilare esposto precedentemente proprio in termini di questo tableau, usando una notazione matriciale.
Le inforn1azioni rilevanti sono riportate nella Tabella 5.1 O.
La riga O del tableau iniziale verrà indicata con t mentre la matrice T indicherà le rimanti
righe nel tableau iniziale come nella Tabella 5.9. In maniera simile, con t* e T* verranno
denotate la prima riga e le rimanenti righe nel tableau finale.
La Tabella 5.9 mostra inoltre questi vettori e queste matrici suddivisi in tre parti: i coefficienti delle variabili originali, i coefficienti delle variabili slack e i termini noti. Ancora
una volta, la notazione distingue fra le parti del tableau iniziale e del tableau finale usando
un asterisco in questo ultimo caso.
I coefficienti delle variabili slack nel tableau iniziale della Tabella 5. I O sono il vettore
nullo O nella riga O e la matrice identità I nel tableau finale le corrispondenti quantità sono
indicate con y* e S*. La matrice A e il vettore b del tableau iniziale si trasformano in A*
e b* nel tableau finale. Per la riga O del tableau finale, i coefficienti delle variabili decisionali sono z* - c (e pertanto il vettore z* è ciò che è stato aggiunto al vettore dei coefficienti iniziali, - c) e il termine noto Z* denota il valore ottimo di Z.
È utile a questo punto riconsiderare la Tabella 5.8 del Paragrafo 5.2 e confrontarla con
la Tabella 5 .l O. La notazione per i vari componenti del tableau iniziale è la stessa nelle
due tabelle. La parte inferiore della Tabella 5.8 mostra tutti i tableaux successivi in forma
matriciale, mentre la parte inferiore della Tabella 5 .l O fornisce il tableau jìnale sempre in
forma matriciale. Si noti che la matrice B- 1 nella Tabella 5.8 è nella stessa posizione della matrice S* nella Tabella 5.1 O. Quindi,
i.
r-
S * = B- 1
dove B è la matrice di base per la soluzione ottima trovata con il metodo del simplesso.
Riferendosi ancora alla Tabella 5.1O, si supponga adesso che siano noti il tableau iniziale, t e T e soltanto y* e S* del tableau finale. Come possono essere usate queste informazioni, da sole, per calcolare le rimanenti parti del tableau finale? La risposta è fornita
dalla Tabella 5.8. Questa tabella contiene inoltre alcune informazioni che non sono direttamente rilevanti per la discussione corrente, vale a dire, come y* e S* possono essere calcolati (y * = c8 B- 1 eS * = B- 1) conoscendo l'insieme delle variabili di base e la matrice
di base B per la soluzione ottima trovata con il metodo del simplesso. La parte inferiore di
questa tabella mostra come può essere ottenuto il resto del tableau finale dai coefficienti
delle variabili slack; le formule sono riportate qui di seguito.
(l) t* =t+ y*T = [y*A -c l y* l y*b]
(2) T* = S*T = [S *A l S* l S*b]
158
CAPITOLO 5
LA TEORIA DEL METODO DEL SIMPLESSO
• TABELLA 5.1 O Notazione generale per i tableau
del simplesso iniziali e finali in forma
matriciale, illustrati per il problema
Wyndor Glass Co.
Tableau iniziale
Riga O:
t = [ - 3, -5
Altre righe :
T =
l
i O, O, O i O] = [-c ì O ì O]
i
!
3 2 !o
Combinate:
4l
l o!l o o!
O 2 O l O 12
o
= (A : I ì b]
l ! 18
[t] =[-cii oii o]
T
A
I
b
Tableau finale
Riga 0:
Altre righe:
Combinate:
t*
= [0,
T* =
t
~ -~ i
o oi l
O l !O
l oi o
= [ z* - c
A*
= [z*
l i 36]
l
[t*]
T*
O i O,
2l
~
O~ 6
-~
~i 2
- c ì y* i l*]
= (A* i S* i b*J
l y* l l*]
!
S*
i
b*
Quindi, conoscendo i parametri del modello nel tableau iniziale (c, A e b) e soltanto i
coefficienti delle variabili slack nel tableau finale (y* e S*), queste equazioni permettono
di calcolare tutte le altre quantità presenti nel tableau finale .
Queste due equazioni sono già state usate nel precedente sottoparagrafo quando ci si è
discussa l' iterazione 2 per il problema Wyndor Glass Co .. In particolare, la parte destra
dell 'espressione per la riga finale O per l'iterazione 2 è esattamente t+ y* T e la seconda
linea dell'espressione per le righe finali l , 2 e 3 è esattamente S * T.
Per ricavare l'equazione (2) occorre ricordare che l' intera sequenza delle operazioni algebriche eseguita dal metodo del simplesso (a parte quelle che coinvolgono la riga O) è
equivalente a pre-moltiplicare T per una qualche matrice M. Di conseguenza,
T * =MT
Rimane adesso da identificare la matrice M. Esplicitando le parti componenti di T e di
T* , questa equazione diventa
[A* i S* i b*] =M [A i I i b]
= [MA i ~ i Mb]
1
Poiché le parti centrali (e ogni altra parte) di queste matrici devono essere uguali , ne segue che M = S*, da cui segue la (2).
L'equazione (l) è ottenuta in un modo simile notando che l'intera sequenza delle operazioni algebriche che coinvolgono la riga O equivale ad aggiungere a t una qualche combinazione lineare delle righe di T che è equivalente ad aggiungere a t il prodotto di un
qualche vettore per T. Denotando questo vettore con v, si ottiene
t"= t + vT
dove v deve essere ancora identificato. Esplicitando gli elementi di t e di t* si ottiene
[z* - c i y* Z*] = [- c i O i O] + v [A i I ! b]
=[-c+vA ! ;ivb]
t
5.3
159
UN CONCEDO FONDAMENTALE
Ancora una volta, poiché le parti centrali di questi vettori devono essere uguali si ha che
v = y*, da cui segue la (l).
Modifiche nel caso di un problema non in forma standard
Finora, si è sempre fatto riferimento a un problema che si trovi nella forma standard descritta nel Paragrafo 3.2. Tuttavia, è possibile ricavare quali modifiche siano necessarie
per problemi che non sono in forma standard. La chiave è la matrice identità I nel tableau
iniziale, che si trasforma nella matrice S* nel tableau finale. Se come variabili di base iniziali per il tableau iniziale devono essere introdotte alcune variabili artificiali, allora è l'insieme delle colonne (ordinate in modo appropriato) per tutte le variabili di base iniziali
(sia slack che artificiali) che forma la matrice identità I in questo tableau. (Le colonne per
tutte le variabili surplus non sono considerate) Le stesse colonne nel tableau finale forniscono S* per l'equazione T* = S*T e y* per l'equazione t* =t+ y* T. Se il coefficiente
M fosse stata introdotto preliminarmente nella riga O come coefficienti per le variabili artificiali, allora il vettore t per l'equazione t* = t + y* T è la riga O per il tableau iniziale dopo che questi coefficienti non nulli per le variabili di base siano eliminati algebricamente
(alternativamente, la riga iniziale O può essere usata per t, ma allora queste M devono essere sottratte dalla riga finale O per determinare y*).
Applicazioni
Il concetto fondamentale presentato precedentemente ha una varietà di importanti applicazioni nella programmazione lineare. Una di queste applicazioni coinvolge il metodo del
simplesso rivisitato. Come descritto nel precedente paragrafo (si faccia riferimento alla
Tabella 5.8), per calcolare tutti gli elementi più rilevanti del tableau corrente, questo metodo ha usato, a ogni iterazione, B- 1 e il tableau iniziale. Inoltre la matrice B- 1 è anche usata per calcolare y* mediante la formula y* = c8 B- 1.
Un'altra applicazione riguarda l'interpretazione dei prezzi ombra (yT, Y2 ... , y;,,) descritti nel Paragrafo 4.7. A partire dalle formule ricavate precedentemente si dimostra che
Z* (il valore di Z per la soluzione ottima) è
111
Z* = y*b = L Y~b;
i= l
e quindi, per esempio,
per il problema Wyndor Glass Co. Questa equazione fornisce immediatamente l' interpretazione per i valori di y7 dati nel Paragrafo 4. 7.
Un'altra applicazione estremamente importante è relativa ai vari task della analisi postottimale (riottimizzazione, analisi della sensitività, programmazione lineare parametrica)
descritti nel Paragrafo 4.7 che studia l'effetto di una o più modifiche apportate al modello
originale. In particolare, si supponga che il metodo del simplesso sia già stato applicato e
sia stata ottenuta una soluzione ottima (e le quantità y* e S*) per il modello originale e
che siano stati fatti alcuni cambiamenti al problema. Se al tableau iniziale modificato dovesse essere applicata la stessa sequenza di operazioni algebriche, quali cambiamenti si otterrebbero nel tableau finale? Poiché y* e S* non cambiano, è possibile fornire immediatamente una risposta.
Per esempio, si consideri di cambiare b2 = 12 in b2 = 13 come illustrato nella Figura
4.8 per il problema Wyndor Glass Co. Non è necessario riapplicare il metodo del simplesJf) perché i valori delle variabiso per ottenere la nuova soluzione ottima (x 1, x2 ) = (
li di base nel tableau finale (b*) sono rivelati immediatamente utilizzando le formule ottenute precedentemente:
f,
CAPITOLO 5
160
LA TEORIA DEL METODO DEL SIMPLESSO
•
RIFEI
C'è un modo ancora più semplice per effettuare questo calcolo. Poiché l' unico cambiamento avviene nella seconda componente di b(.6b 2 = l ), che è pre-moltiplicato solo dalla seconda colonna di S*, il cambiamento in b* può essere calcolato semplicemente come
e così i valori originali delle variabili di base nel tableau finale (x 3
ora diventano
= 2, x2 = 6, x 1 = 2)
PROB
Se qualcuno di questi nuovi valori fosse stato negativo, e quindi non ammissibile, allora
dovrebbe essere applicata la tecnica di riottimizzazione descritta nel Paragrafo 4.7, a partire da questo tableau finale modificato. Applicando una analisi incrementate alla precedente equazione per Z* si ottiene immediatamente anche
5.1-1. * Consi<
MassimizzaJ
5<>ggetto ai vin
2xl
x1
Le formule ricavate in questo paragrafo possono essere applicate in modo molto simile
per studiare altri tipi di cambiamenti nel modello originale; questo è il nodo cruciale della
procedura di analisi della sensitività descritta nell 'ultima parte del Capitolo 6.
Si vedrà nel capitolo seguente che questi concetti basilari svolgono un ruolo chiave nella utilissima teoria della dualità per la programmazione lineare.
5.4
CONCLUSIONI
Anche se il metodo del simplesso è una procedura algebrica, esso è basato su alcuni concetti geometrici abbastanza semplici. Questi concetti permettono di usare la procedura per
esaminare soltanto un numero relativamente piccolo di BES prima di raggiungere e di
identificare una soluzione ottima.
Il Capitolo 4 descrive come le operazioni algebriche elementari vengono usate per eseguire la forma algebrica del metodo del simplesso e come la forma del tableau del metodo del simplesso usa le equivalenti operazioni elementari di riga. Studiare il metodo de
simplesso in queste forme è un buon modo per iniziare ad apprendere i concetti fondamentali. Tuttavia, queste non sono il nodo più efficiente per l'esecuzione dell'algoritmo su un
computer. Le operazioni informa matriciale sono un modo molto veloce di combinare e
di eseguire le operazioni algebriche elementari o le operazioni di riga. Di conseguenza
usando la forma matriciale del metodo del simplesso, il metodo del simplesso rivisitato
fornisce un modo efficace di adattare il metodo stesso per l'esecuzione su computer.
Il tableau finale contiene le informazioni complete su come esso può essere algebricamente ricostruito direttamente a partire dal tableau del simplesso iniziale. Questa concetto
basilare presenta alcune applicazioni molto importanti, in particolare per l 'analisi post- -timale.
x1
+ xz S::
+ 2x2 s;
2': O,
x2
) Risolvere g
ci ammissit
) Identificare
Per ogni in
del conispo
me ammissi
Introdurre v
la forma aur
care la solu;
,·ato nel p un
Per ogni cor
- identifica!
mette di s1
come ugu:
- mostrare l
le due var.
sistema pe
(le variabii
- Confrontm
ne di base
Senza esegui
zione geomet
percorso (seq
do del simpl
· cuno di q
· decisioni eh
- quale equa:
re aggiunta
161
PROBLEMI
RIFERIMENTI BIBLIOGRAFICI
l. Bertsimas, D., e J.N. Tsitsiklis: lntroduction to Linear Optimization, Athena Scientific,
Belmont, MA, 1997.
2. Dantzig, G.B., e M.N. Thapa: Linear Programming 1: Introduction, Springer, New York,
1997.
3. Dantzig, G.B ., e M.N. Thapa: Linear Programming 2: Theory and Extensions, Springer, New
York, 2003.
4. Padberg, M. , e D. Alevras: Linear Optimization and Extensions, Springer, New York, 1999.
5. Vanderbei, R.J.: Linear Programming: Foundations and Extensions , 2nd ed. , Kluwer
Academic Publishers, Boston, MA, 2001.
PROBLEMI
.:.1 -1. * Considerare il seguente problema.
Massimizzare
Z = 3xl
- quale variabile deve essere cancellata (variabile entrante)
e quale deve essere aggiunta (variabile di base uscente).
+ 2x2
: ggetto ai vincoli
+ X2:::; 6
x 1 + 2x2:::; 6
5.1 -2. Si consideri il seguente problema.
X)
2: O,
- identificare, per ciascuna equazione, la variabile che permette di stabilire se il vincolo corrispondente è soddisfatto
come uguaglianza;
- mostrare l' insieme di equazioni dopo la cancellazione delle due variabili (non di base) e risolvere algebricamente il
sistema per ottenere il valore delle due variabili restanti
(le variabili di base).
- Confrontare la soluzione di base risultante con la soluzione di base corrispondente ottenuta al punto (c) .
Senza eseguire il metodo del sirnplesso, usare l'interpretazione geometrica (e la funzione obiettivo) per identificare il
percorso (sequenza di vertici ammissibili) seguito dal metodo del simplesso per raggiungere la soluzione ottima. Per
ciascuno di questi vertici ammissibili, identificare le seguenti decisioni che vengono adottate per l' iterazione successiva:
- quale equazione deve essere cancellata e quale deve essere aggiunta;
+ x3
soggetto ai vincoli
+ X2 + X3 :::; 60
X 1 - X2 + 2X3 :::; l 0
X1 + X2 - X3 :::; 20
3xl
X2 2: O.
) Risolvere graficamente questo problema. Identificare i vertici ammissibili.
) Identificare l'insieme di equazioni che definiscono i vertici.
Per ogni insieme, determinare algebricamente la soluzione
del corrispondente sistema e classificare i vertici ottenuti come ammissibili o non ammissibili.
Introdurre variabili slack e riscrivere i vincoli funzionali nella forma aumentata. Usare queste variabili slack per identificare la soluzione di base che corrisponde a ogni vertice trovato nel punto (b).
Per ogni coppia di equazioni identificate nel punto (b):
Z = 2x1 - x2
Massimizzare
2x1
e
Xj
2: O,
X2 2: O,
X3 2: O.
Dopo l'introduzione delle variabili slack e l'esecuzione completa di un ' iterazione del metodo del simplesso, si ottiene il seguente tableau.
lterazione Variabile Eq.
di base
z
(O)
(1)
(2)
(3)
x.
1
Xl
X6
Coefficiente di:
z
XJ
1 o
o o
o 1
o o
x,
X3
-1
4
2
-3
o
o
-l
2
X4
Xs
X6
3
o
-5
1
2
-3
1
-1
o
o
o
1
Termini
noti
20
30
10
10
(a) Identificare il vertice ammissibile ottenuto nel! ' iterazione l.
(b) Identificare le equazioni che definiscono questo vertice am-
missibile.
5.1-3. Si consideri il seguente problema.
Minimizzare
Z = 3xl
soggetto ai vincoli
+ X2 2: IO
3xl + 2x2 :::; 6
Xl + X2 2: 6
2xl
e
X)
2: O,
X2 2: O.
+ 2x2
162
CAPITOLO 5
LA TEORIA DEL METODO DEL SIMPLESSO
(a) Identificare per questo problema i IO insiemi di equazioni
che definiscono vertici . Per ogni insieme, determinare (se
esiste) il vertice corrispondente determinando se quest'ultimo è ammissibile.
(b) Per ogni vertice, fornire la corrispondente soluzione di base
e il relativo insieme delle variabili non di base.
5.1-4. Ciascuna delle seguenti affermazioni è vera nella maggior
parte dei casi, ma non sempre. Per ogni caso, indicare quando
l'affennazione non è vera e perché.
(a) Il vertice ammissibile migliore è soluzione ottima del problema.
(b) Una soluzione ottima è un vertice ammissibile.
(c) Un vertice ammissibile è l' unica soluzione ottima se nessuno dei vertici adiacenti è migliore (in termini della funzione
obiettivo).
5.1-5. Segnare come vera o falsa ciascuna delle seguenti affermazioni relativa a problemi di programmazione lineare motivando la risposta.
(a) Se una soluzione ammissibile è ottima ma non è un vertice,
allora esistono infinite soluzioni ottime.
(b) Se il valore della funzione obiettivo in due punti ammissibili
differenti, x* e x** , è uguale, allora tutti i punti sul segmento che congiunge x* e x** sono ammissibili e Z assume lo
stesso valore in corrispondenza di tutti questi punti.
(c) Se il problema ha n variabili (prima di costruire il problema
aumentato), allora la soluzione di ogni insieme di n equazioni che definiscono la frontiera è un vertice.
5.1-6. Si consideri il seguente problema.
Massimizzare
Z =
2xt
Xt
X2 ;:::
O,
soggetto ai vin
X
Senza usare l'algebra del metodo del simplesso, e ragionando
geometricamente (anche per la scelta dello spigolo che fornisce
il massimo tasso di crescita di Z) determinare e spiegare il percorso che viene seguito nell a Figura 5.2 dall'origine fino alla soluzione ottima.
5.1-8. Si consideri un problema di programmazione matematica
in 2 variabili la cui regione ammissibile è quella mostrata nella
figura in basso dove i vertici ammissibili sono identificati da
punti. La funzione obiettivo è lineare e ciascuna delle due rette
e
Xj ;:::
(l) n eli' iterazione l , la variabile entrante è x 3 e la variabile di
base uscente è x 4 ;
(2) nell 'iterazione 2, la variabile entrante è x 2 e la variabile di
base uscente è x 5 •
(a) Realizzare una rappresentazione tridimensionale della regione ammissibile per questo problema e tracciare il percorso
seguito dal metodo del simplesso.
(b) Fornire un ' interpretazione geometrica del perché il metodo
del simplesso ha seguito proprio questo percorso.
(c) Per ciascuno dei due spigoli della regione ammissibile percorsi dal metodo del simplesso, fornire l'equazione della
frontiera di ciascuno dei due vincoli in cui esso si trova e,
quindi, fornire l'equazione della frontiera del vincolo aggiuntivo in ogni punto estremo.
O,
j =
. "ella soluzione
a) Usare le inf
tima.
b) Usare le inJ
per le tre ri~
5.1-2. * Applica
_ seguente pro t
Massimizzare
soggetto ai vinc
'
'
5
''
''
''
''
(2, 5)
''
4
''
2xt
+ 3xz +:
3xt
+ 5x2 +L
O,
Xj ;:::
' ' ' , (4, 5)
j =
.:.3-1. * Si consi,
Massimizzare
''
: ggetto ai vinc<
''
2xz + 3
+ Xz Xz +
2xt-
'
Xt
Xt ;:::
o.
Si denotino con x4 e x 5 le variabili slack per i due vincoli funzionali. Considerando queste due variabili come variabi li di base
per la BFS iniziale, il metodo del simplesso ottiene la soluzione
ottima in due iterazioni effettuando i seguenti passi:
+ 3x2 +
+ 3xz
Xt
+ 4x2 + 3x3
2
X3 ;:::
t + 2xz +
4xt
Xt
e
O,
Z = 3xt
massimizzare
3
+ X2 + 2x3 :S: 4
+x2 + X3 :S: 3
Xt ;:::
5.1-7. Si supponga che il problema di programmazione lineare in
tre variabili indicato nella Figura 5.2 abbia la funzione obiettivo
+ 2x2 + 3x3
soggetto ai vincoli
2Xt
(d) Identificare l' insieme delle equazioni che definiscono ciascuno dei tre vertici ammissibili (compreso quello iniziale)
ottenuti con il metodo del simplesso.
(e) Per ogni vertice ammissibile ottenuto al punto (d), fornire la
corrispondente BFS e il relativo insieme delle variabili non
di base. Spiegare come queste variabili non di base identificano le equazioni al punto (d).
Xz ;
O,
:::>enotare con x 4
·anali. Dopo l'a
:-~1 tableau finale
o
2
3
4
tratteggiate è costituita da puntio con medesimo valore della funzione obiettivo. Il punto (4, 5) è la soluzione ottima mentre il
vertice (2, 5) è il secondo miglior vertice. Il punto (2, 5) non è
una soluzione ottima ma è migliore (in termini della funzion e
obiettivo) di tutti gli altri vertici a esso adiacenti (violando quindi la proprietà 3 nel Paragrafo 5.2). Dimostrare che questo problema non può essere un problema di programmazione lineare
construendo la regione ammissibile che si ottiene considerando
vincoli lineari calcolati a partire dai sei segmenti che costituiscono la frontiera.
5.2-1. Si consideri il seguente problema.
Massimizzare
Z = 8x1
+ 4xz + 6x3 + 3x4 + 9xs
Va riabili
di base
Eq.
Z
(O)
) Utilizzando i
valori manca1
ti.
b) Identificare h
dente alla BF
.: .3-2. Si conside1
Massimizzare
PROBLEMI
163
soggetto ai vincoli
soggetto ai vincoli
:=:; 180
(risorsa l)
4x 1 + 3x2 + 2x3 + x4 + xs :=:; 270
(risorsa 2)
+ x4 + 3xs :=:; 180
(risorsa 3)
X1 + 2x2 + 3x3 + 3x4
x 1 + 3x2
4x l +2x2 + X3 +x4 :=:; 5
3X! + X2 +
X! 2: O,
e
) = 1, ... , 5.
Xj 2: 0 ,
_'ella soluzione ottima le variabili di base sono x 3, x 1 e x 5 e
[ ~o ! ~] -! = -!- [~~
27
3
l
-~ -~]
2
-3
+ X4 :S: 4
10
~..2 -2. *
Applicare il metodo del simplesso rivisitato per risolvere
-eguente problema.
Z = 5xl + 8x2 + 7x3 + 4x4 + 6xs
- ~etto ai vincoli
LX! + 3x2 + 3x3 + 2x4 + 2xs :=:; 20
.lXJ + 5x2 + 4x3 + 2x4 + 4xs :S: 30
X2 2: O,
.:.3- 1. ~
Eq.
l
(O)
l
xz
x.
(l)
o
o
z
(2)
ai vincoli
~TI -
2x2 + 3x3 :=:; 5
XJ -
.rl
2: O,
2x1
+ 2x3
(0)
xz
X6
(l)
(2)
(3)
X3
~
X}
2: o.
x,
X4
Xs
x6
l
l
l
o
o
o
o
l
3
l
2
o
A .'
;
o
l
2. Si consideri il seguente problema.
_.lassimizzare
X6
l
l
l
- l
- l
Termini
noti
27
Z = 6x1
+ x2 + 2x3
+ 2x2 + l
l
X3
:S: 2
e
Termini
noti
l
Z = 4xl + 3x2 + X3 + 2x4
Denotare con x4 , x 5 , e x 6 le variabili slack per i tre vincoli funzionali. Dopo l' applicazione del metodo del simplesso, una parte
del tableau finale è:
Coefficiente di:
Variabili
di base
Eq.
l
(O)
l
xs
(l)
(2)
(3)
o
o
o
X3
x,
z
x,
xz
X3
X4
Xs
X6
2
o
2
l
- 2
l
l
2
o
o
4
Termini
noti
- l
o
Utilizzando i concetti esposti nel Paragrafo 5.3 , identificare i
valori mancanti nel tableau finale . Mostrare i calcoli effettuati.
Identificare le equazioni che definiscono il vertice corrispondente alla BFS ottima nel tableau finale.
-
Xs
l
Coeffkier.t e di:
l
X4
x 1 + 2x2 + 2x3 :S: l
otare con x 4, x 5, e x 6 le variabili slack per i tre vincoli funli. Dopo l'applicazione del metodo del simplesso, una parte
- · tableau finale è:
z
X3
3
X3 :S: 3
X2 2: O,
Eq.
Xz
soggetto ai vincoli
X2 + X3· :S: 2
'abili
base
x,
-4X! - 2x?- - -2 X3 <
3
-
~etto
X! + X2 -
o.
(a) Utilizzando i concetti esposti nel Paragrafo 5.3, identificare i
valori mancanti nel tableau finale. Mostrare i calcoli effettuati.
(b) Identificare le equazioni che definiscono il vertice corrispondente alla BFS ottima nel tableau finale.
Si consideri il seguente problema.
Z = x 1 - x2
X4 2:
5.3-3. Si consideri il seguente problema .
j = l , 2, 3, 4, 5.
~assimizzare
o,
Coefficiente di:
Variabili
di base
Massimizzare
2: O,
Xj
XJ 2:
Denotare con x4 e x 6 le variabili slack per i rispettivi vincoli fun zionali. Dopo l' applicazione del metodo del simplesso, una parte
del tableau fina le è:
a) Usare le informazioni fomite per identificare la soluzione ottima.
b) Usare le informazioni fomite per identificare i prezzi ombra
per le tre risorse.
Yl:assimizzare
2x3
e
Utilizzando i concetti esposti nel Paragrafo 5.3, identificare i valori mancanti nel tableau fina le. Mostrare i calcoli effettuati .
5.3-4. Riconsiderare il Problema 4.6-5. Usare le variabili artificiali e il metodo del Big M per costruire il primo tableau per il
metodo del simplesso e, quindi , identificare le colonne che conterranno S* così da applicare i concetti esposti nel Paragrafo 5.3
al tableau finale. Spiegare perchè queste sono proprio le colonne
da considerare.
164
CAPITOLO 5
LA TEORIA DEL METODO DEL SIMPLESSO
5.3-5. Si consideri il seguente problema
minimizzare
Z = 2x 1 + 3x2
Dopo aver applicato il metodo del simplesso una parte del tableau finale è
+ 2x3
soggetto ai vincoli
x,
3x,
e
x,
+ 4x2 + 2xJ 2: 8
+ 2x2 + 2x3 2: 6
2: O,
X2
2: O,
Variabile
Eq.
di base
XJ
Variabile Eq.
di base
Coefficiente di:
X4
Xs
X6
X7
Termini
noti
l
(O) - l - 4M + 2 - 6M + 3 - 2M + 2 M
o
M
o
- 14M
:Xs
:X7
(l)
(2)
z
o
o
x,
x2
X3
l
4
2
3
2
o
- l
l
o o
o o
- l
l
8
6
z
x,
X2
X3
X4
Xs
X6
X7
l
(O)
- l
M - 0.5
M - 0.5
X2
(l)
(2)
o
o
0.3
- 0.2
- 0 .1
0.4
2: O.
Siano x 4 e x 6 le variabili surplus per i rispettivi vincoli funzionali
e x 5 e x 7 le variabili artificiali. Dopo avere operato come descritto nel Paragrafo 4.6, il tableau iniziale (si è qui utilizzato il metodo del Big M) è
Coefficiente di:
x,
Termini
noti
(a) Sulla base del tableau precedente usare i concetti esposti nel
Paragrafo 5.3 per identificare i valori mancanti. Verificare
che T* = MT e t* = t + vT come esposto nel Paragrafo
5.3. Nel Pragrafo 5.3 si era ipotizzato che il problema fosse
in forma standard ma questo non è vero per il problema in
esame. Mostrare quali modifiche sono necessarie e derivare
le corrispondenti formule. In questo caso t è la riga O del tableau iniziale e T è costituita dalle righe l e 2. Calcolare M
e v.
6.1
L
l ta-
~ini
ti
Teoria della dualità e
analisi della sensitività
U
na tra le più importanti scoperte nello sviluppo iniziale della programmazione lineare è rappresentata dal concetto della dualità con le sue numerose importanti conseguenze. In particolare, è stato dimostrato che a ogni problema di programmazione lineare
è associato un altro problema di programmazione lineare denominato problema duale.
Le relazioni tra il problema duale e il problema originale (chiamato primale) risultano
essere estremamente utili in diversi contesti. Per esempio, i prezzi ombra descritti nel
Paragrafo 4.7 sono in realtà ottenuti dalla soluzione ottima del problema duale. In questo
capitolo verranno inoltre descritte molte altre importanti applicazioni della teoria della
dualità.
Uno degli usi più iportanti della teoria della dualità consiste nell'interpretazione e applicazione dell 'analisi della sensitività che, come già accennato nei Paragrafi 2.3, 3.3 e
4.7, rappresenta una parte molto importante in quasi tutte le applicazioni di programmazione lineare. Poiché nel modello originale la maggior parte dei valori dei parametri sono stime, nel caso in cui si verificano condizioni non previste si ha la necessità di studiame l'effetto sulla soluzione ottima. Inoltre, alcuni parametri (quali le quantità di risorse) possono rappresentare decisioni del management. In questi casi il problema principale diventa proprio la scelta dei valori di tali parametri e questo può essere fatto mediante
l'analisi della sensitività.
Per maggiore chiarezza, nei primi tre paragrafi viene discussa la teoria della dualità
assumendo che il problema di programmazione lineare prima/e si trovi in forma standard (ma senza il vincolo che i valori bi siano positivi), mentre nel Paragrafo 6.4 verrà
esaminato il caso generale. Si inizia introducendo l'essenza della teoria della dualità e
delle applicazioni a essa connesse; viene quindi descritta l'interpretazione economica del
problema duale (Paragrafo 6.2) e infine si passa a un'analisi più approfondita delle relazioni fra il problema primale e quello duale (Paragrafo 6.3). Il Paragrafo 6.5 mette a fuoco il ruolo della teoria della dualità nell'analisi di sensitività mentre la procedura base
per l'analisi di sensitività (che è basato sul concetto fondamentale discusso nel Paragrafo
5.3) è riassunta nel Paragrafo 6.6 e illustrata nel Paragrafo 6.7. Il Paragrafo 6.8 descrive
invece come utilizzare i fogli elettronici per effettuare in modo semplice l'analisi di sensitività.
6.1
L'ESSENZA DELLA TEORIA DELLA DUALITÀ
Si consideri il problema prima/e nella forma standard a sinistra (eventualmente ottenuto a
partire da una altra qualsiasi forma) e il corrispondente problema duale a destra.
166
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
Problema prima/e
Problema duale
z =I" CjXj
Massimizzare
m
Minimi zzare"
W=
b,y,
i= l
j=l
soggetto a i vinco li
I
soggetto a i vinco li
m
per i = l , 2, . . . , m
L
O;jYi
2:
y,
2:
CJ
per i = l, 2, .. . , n
O
per i = l , 2, . .. , m
i= l
e
e
per i= l , 2, . . . , n
Se il problema primale è nella forma di massimizzazione, il problema duale è, invece, un
problema di minimizzazione. Inoltre, il problema duale usa esattamente gli stessi parametri del problema primale ma in posizioni differenti, come riassunto di seguito.
l. I coefficienti della funzione obiettivo del problema primale sono i termini noti dei vincoli funzionali del problema duale.
2. I termini noti del problema primale sono i coefficienti della funzione obiettivo nel problema duale.
3. I coefficienti di una variabile nei vincoli funzionali del problema primale sono i coeffi cienti in un vincolo funzionale del problema duale.
Per evidenziare il confronto, occorre fare riferimento a questi stessi due problemi in notazione matriciale (come introdotto all ' inizio del Paragrafo 5.2), in cui c e y = [yt. y 2 , . .. •
Ym ] sono vettori riga mentre b e x sono vettori colonna.
Problema prima/e
Massimizzare
soggetto a i vincoli
Z = ex
Prnhlema duale
Minimizzare
= yb
y A 2: c
Ax s b
e
w
soggetto ai vinco li
e
Nella Tabella 6.1 sono indicati, sia nella forma tabellare che in quella algebrica, i problemi primali e duali dell'esempio Wyndor Glass Co. del Paragrafo 3.1.
La tabella primate-duale per la programmazione lineare (Tabella 6.2) evidenzia la
corrispondenza fra i due problemi. Tale tabella mostra tutti i parametri della programmazione lineare (au, bi e c;) e come essi vengono usati per costruire i due problemi. Tutte le
intestazioni relative al problema primale sono in orizzontale, mentre quelle relative al problema duale possono essere lette ruotando il libro da un lato. Per il problema primale.
ogni colonna (tranne la colonna dei termini noti) fornisce i coefficienti di una singola variabile nei vari vincoli e nella funzione obiettivo, mentre ogni riga (tranne l' ultima in basso) fornisce i parametri per un singolo vincolo. Per il problema duale, ogni riga (tranne la
riga dei termini noti) fornisce i coefficienti di una singola variabile nei vari vincoli e nella
funzione obiettivo, mentre ogni colonna (tranne quella più a destra) fornisce i parametri
per un singolo vincolo. In più, l'ultima colonna fornisce i termini noti per il problema primale e i coefficienti della funzione obiettivo per il problema duale, mentre l'ultima riga in
basso fornisce i coefficienti della funzione obiettivo per il problema primale e i termini
noti per il problema duale.
Di conseguenza, adesso, si hanno le seguenti relazioni generali fra i problemi primali e
quelli duali .
l. I parametr,i di un vincolo (funzionale) in un problema costituiscono i coefficienti di una
variabile nell ' altro problema.
6.1
L'ESSENZA DELLA TEORIA DELLA DUALITÀ
167
2. I coefficienti della funzione obiettivo di un problema costituiscono i termini noti dell'altro problema.
• TABELLA 6.1 Problemi primale e duale per l'esempio Wyndor Glass Co.
Problema prima/e
in forma algebrica
Massimizzare
Problema duale
in forma algebrica
Z = 3x1 + 5x2
x,
W = 4y1 + 12y2 + 18y3
Minimizzare
soggetto ai vi ncoli
soggetto ai vincoli
:s 4
2x2 :s 12
3x1 + 2x2 :s 18
e
e
y,
x, 2: o
2:
Z
= [3,
Yz 2: O
Problema duale
in forma matriciale
Problema prima/e
in forma matriciale
Massimizzare
o
5][::]
W = [y,,y2,y3][ l
Minimizzare
soggetto ai vincoli
soggetto ai vincoli
[y, ,
e
y,,
y,] [
;l
18
~ :J ~
[3, 5]
e
[y,, Yz, y3] 2: [0, O, O]
TABELLA 6.2 Primale e duale di problemi di programmazione lineare
(a) Caso generale
Problema primale
Coefficienti di:
xl
Xz
Y1
an
a, z
=: :c
Yz
a21
a22
v
Ym
;
cQl
Ql
';
-.;
=
'C
Ql
l'il
o
E
Ql
c
:E
e.. ;co
~
...o
c.
...
...
...
xl
Xz
o
y,
l
Yz
o
Y3
3
2
2
VI
VI
3
s
:s 4
:s 12
:s 18
a, n
Ozn
......................... ..... ......
Om l
Omz
VI
VI
c,
Cz
...
...
...
Coefficienti della
funzione obiettivo
massimizzazione
(b) Esempio Wyndor Glass Co.
Xn
Omn
VI
Cn
Termini
noti
:s b,
:s b2
:S bm
·.g
QJON..-
.!l!~ §·È
.~
·N t:
w
lt:: "O C ·=>.o
U~
..._Q
.E
·c
·-
~
.Q
N
E "'
......... N
168
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
TABELLA 6.3 Corrispondenza tra diverse quantità
nei problemi primali e duali
Primo problema
Altro problema
Vincolo i<-----> Variabile i
Coefficiente funzione obiettivo <----->Termini noti
Quindi, come riassunto nella Tabella 6.3, esiste una corrispondenza diretta tra queste entità nei due problemi. Queste corrispondenze rappresentano un concetto chiave per alcune
delle applicazioni della teoria della dualità e per l'analisi di sensitività.
Origine del problema duale
La teoria della dualità si basa direttamente sul concetto fondamentale (soprattutto per
quanto riguarda la riga O) presentato nel Paragrafo 5.3. Continueremo qui a usare la notazione introdotta nella Tabella 5.1 O per la riga O del tableau finale, con W* al posto di Z *
ed eliminando gli asterischi da z* e da y* quando ci si riferisce ad un generico tableau. In
una generica iterazione del metodo del simplesso per il problema primale, i valori correnti nella riga O sono denotati come è indicato nel tableau (parziale) nella Tabella 6.4. Per
quanto riguarda i coefficienti di x 1, x 2 , . .• , X 11 si ricordi che z = (z 1, z 2 ••• , z denota il
vettore che il metodo del simplesso ha aggiunto al vettore dei coefficienti iniziali, -c, nel
processo che ha portato al tableau corrente (non si confonda il vettore z con il valore della
funzione obiettivo Z). Allo stesso modo, dato che i coefficienti iniziali di x11 + I, Xn + Z, ... .
x11+111, nella riga O sono tutti uguali a O, y = (y 1, y 2 . . . , Ym) denota il vettore che il metodo simplesso ha aggiunto a questi coefficienti. Inoltre si ricordi [con riferimento alr
Equazione (l) nel sottoparagrafo " Riepilogo Matematico" del Paragrafo 5.3] che sono
state valide le seguenti relazioni tra queste quantità e i parametri del modello originale:
11 )
111
W=yb= Lb; y;
i= l
111
z=yA
e cioè
z1 =
L:auy;
per j = l , 2, . . . , n
i= l
Per illustrare queste relazioni si consideri l'esempio Wyndor; la prima equazione fornisce
W = 4y 1 + 12y 2 + 18y 3 che è proprio la funzione obiettivo per il problema duale indicato n; ! riquadro superiore destro della Tabella 6.1. Il secondo insieme di equazioni fornisce z 1 = y 1 + 3y3 e z 2 = 2y 2 + 2y 3 , che sono i termini a sinistra dei vincoli funzionali
per il problema duale. Quindi, sottraendo i tennini noti di questi vincoli che sono del tipo 2 e c 1 = 3 e c 2 = 5, le quantità (z 1 - c 1) e (z2 - c 2 ) possono essere interpretate com
le variabili surplus per tali vincoli funzionali.
L'altro aspetto da approfondire è a cosa tende il metodo del simplesso (in accordo alle
condizioni di ottimalità) in termini di queste quantità introdotte. In particolare, il metodo
cerca un insieme di variabili di base e la corrispondente BFS, tali che tutti i coefficien
nella riga O siano nonnegativi. Una volta ottenuta questa soluzione ottima la procedur2
termina. Usando la notazione della Tabella 6.4, questo è espresso nel seguente modo:
condizione di ottùnalità:
2O
y; 2 O
z1 - c1
per j = l , 2, ... , n
per
i = l, 2, ... , m
6.1
169
L'ESSENZA DELLA TEORIA DELLA DUALITÀ
• TABELLA 6.4 Notazione per le voci nella riga O di un tableau
lterazione
Qualsiasi
Variabili
di base Eq.
z
(O)
Coefficiente di:
z
l
X1
X2
z, - c, Zz - Cz
...
Xn
Xn+ l
Xn+2
...
Xn+ m
...
Zn - Cn
y,
Yz
.. .
Ym
Termini
noti
w
Dopo aver sostituito la precedente espressione per z1, la condizione di ottimalità afferma che il metodo del simplesso può essere interpretato come la ricerca di quei valori
y ,, Y2 ... , Ym tali che
m
W=
L h,y,
i= l
soggetto ai vinco li
m
L auy, "'= cj
per j = l , 2, .. . , n
i= l
e
y, 2: O
per i= l, 2, .. . , m
Ma, a parte la mancata indicazione se la quantità W deve essere minimizzata o massimizzata, questo problema è proprio il problema duale! Per completare la formulazione bisogna determinare se minimizzare o massirnizzare la quantità W.
Poiché W è proprio il valore corrente di Z e poiché l'obiettivo per il problema primate è
massimizzare Z, una prima naturale deduzione è che dovrebbe essere massimizzato anche
W. Tuttavia, questa analisi non è corretta per il seguente motivo: le uniche soluzioni ammissibili per questo nuovo problema sono quelle che soddisfano la condizione di ottimalità per il problema primale. Quindi, solo una soluzione ottima per il problema primale costituisce una soluzione ammissibile per questo nuovo problema. Di conseguenza, il valore
ottimo di Z nel problema primale è il minimo valore ammissibile di W nel nuovo problema e, così, W deve essere minimizzata (la giustificazione completa per questa conclusione
è fornita dalle relazioni che vengono sviluppate nel Paragrafo 6.3). L'aggiunta di questo
informazione relativa a W fornisce il problema duale completo .
Di conseguenza, il problema duale può essere visto come una riaffermazione in termini
di programmazione lineare del! ' obiettivo del metodo del simplesso, vale a dire, ottenere
una soluzione per il problema primale che soddisfi le condizioni di ottimalità. Prima che
questo obiettivo sia stato raggiunto, il corrispondente vettore y nella riga O (i coefficienti
delle variabili slack) del tableau corrente non risulta ammissibile per il problema duale.
Tuttavia, dopo che l'obiettivo viene raggiunto, il corrispondente vettore y è una soluzione ottima (identificata da y*) per il problema duale, perché costituisce una soluzione ammissibile con il valore minimo possibile per W. Questa soluzione ottima (y j , YÌ . . . , y ~,)
fornisce, per il problema primale, i prezzi ombra che sono stati descritti nel Paragrafo 4.7.
Inoltre, essendo questo valore W ottimo esattamente il valore ottimo di Z, i valori ottimi
della j ùnzione obiettivo sono uguali per i due problemi. Questo fatto implica inoltre che
ex :::; yb per tutti i vettori x e le y che sono ammissibili rispettivamente per i problemi primali e duali.
La parte sinistra della Tabella 6.5 mostra la riga O nelle varie iterazioni del metodo del
simplesso applicato all 'esempio Wyndor Glass Co. In ciascuna iterazione, la riga O è divisa in tre parti: i coefficienti delle variabili decisionali (x 1, x2) , i coefficienti delle variabili
slack (x 3 , x 4 , x 5 ) e il termine noto (il valore di Z). Poiché i coefficienti delle variabili slack
forniscono i valori delle variabili duali corrispondenti (y" y 2 , y 3 ) , ogni riga O identifica
una soluzione per il corrispondente problema duale, come indicato nelle colonne y 1, y 2 e
y 3 della Tabella 6.5. Per interpretare le due colonne successive è necessario ricordare che
170
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
• TABELLA 6.5 Riga O e corrispondente soluzione duale per le differenti iterazioni
per l'esempio Wyndor Glass Co.
Problema primale
lterazione
o
Problem duale
Riga O
[-3,
-5
o,
O,
5
l
[- 3,
o
O,
2'
2
[ O,
o
O,
-3
2'
y,
Y2
YJ
z, - c,
z2 - c2
o
- 3
-5
2
o
o
w
o
-3
o
30
2
o
o
36
o
o
30]
o
o
l
36]
o
O]
5
3
l
(z - c 1) e (z 2 - c 2 ) sono le variabili surplus per i vincoli funzionali nel problema duale:
in questo modo il problema duale completo nella forma aumentata ottenuta con l'aggiunta
di queste variabili surplus è
mmtmtzzare
W = 4y,
+ l2y2 + l8y3
soggetto ai vincoli
+ 3y3
- (z, - c,)
=3
2y2 + 2y3 - (z2 - c2)
=5
YI
e
Y1 2 O
Usando i valori nelle colonne y" y 2 e y 3 , le variabili surplus possono essere calcolate come
z, -c, = y, + 3y3 - 3
Z2 -
C2
= 2y2 + 2y3
- 5
Quindi, un valore negativo per una delle variabili surplus indica che il vincolo corrispondente risulta violato. Nella colonna più a destra della tabella è inoltre contenuto il valore
della funzione obiettivo duale W = 4y 1 + l2y2 + 18y 3 .
Come mostrato nella Tabella 6.4, tutte queste quantità alla destra della riga O nella
Tabella 6.5 sono già identificate dalla riga O senza la necessità di ricorrere a nessun ulteriore calcolo. In particolare, si può notare come nella Tabella 6.5 ogni valore ottenuto per
il problema duale compare già nella riga O nel punto indicato dalla Tabella 6.4.
Per la riga iniziale O, la Tabella 6.5 mostra che la soluzione duale corrispondente (y 1, y 2 ,
y 3 ) = (0, O, O) non è ammissibile perché entrambe le variabili surplus sono negative. La
prima iterazione riesce a eliminare uno di questi valori negativi, ma non l'altro. Dopo le
due iterazioni, il test di ottimalità risulta soddisfatto per il problema prirnale perché tutte le
variabili duali e le variabili surplus sono nonnegative. Questa soluzione duale (yj, y2, y j)
= (0,
l) è ottima (ciò potrebbe essere verificato applicando il metodo del simplesso direttamente al problema duale) e così il valore ottimo di Z e di W è Z* = 36 = W* .
+•
Riepilogo delle relazioni primale-duale
Vengono adesso riassunte le relazioni fondamentali tra i problemi primali e duali.
Dualità debole: se x è una soluzione ammissibile per il problema primate e y è una
soluzione ammissibile per il problema duale, allora
ex :::; yb
Per esempio, per il problema Wyndor Glass Co., una soluzione ammissibile è x 1 = 3.
x 2 = 3, con Z = ex = 24 e una soluzione ammissibile per il problema duale è y 1 = l.
y 2 = l , y 3 = 2 con un valore maggiore della funzione obiettivo (duale) W= yb = 52.
6.1
L'ESSENZA DELLA TEORIA DELLA DUALITÀ
171
Questi sono esempi di soluzioni ammissibili per i due problemi. Per qualunque coppia
di soluzioni ammissibili, questa disuguaglianza deve essere valida perché il valore massimo ammissibile di Z = ex (36) eguaglia il valore minimo ammissibile della funzione
obiettivo duale W = yb, che è la proprietà seguente.
Dualità forte: se x* è una soluzione ottima per il problema primale e y* è una soluzione ottima per il problema duale, allora
ex* = y*b
Queste due proprietà implicano che, date due soluzioni ammissibili, se una o entrambe
non sono ottime per i rispettivi problemi allora ex < yb, mentre l'uguaglianza è ottenuta
quando entrambe sono soluzioni ottime.
La dualità debole descrive la relazione esistente tra qualunque coppia di soluzioni per i
problemi primali e duali con entrambe le soluzioni ammissibili per i rispettivi problemi.
A ogni iterazione il metodo del simplesso determina una specifica coppia di soluzioni per
i due problemi: la soluzione primale è ammissibile mentre quella duale non lo è (tranne
nella iterazione finale). La seguente proprietà descrive questa situazione e la relazione esistente tra queste coppie di soluzioni.
Condizione di complementarità: a ogni iterazione, il metodo del simplesso identifica simultaneamente un vertice x per il problema primale e una soluzione complementare y per il problema duale (con i coefficienti delle variabili slack nella riga 0),
dove
ex= yb
Se x non è una soluzione ottima per il problema primale allora y non è ammissibile
per il problema duale.
Per esempio, per il problema Wyndor Glass Co., dopo la prima iterazione x 1 =O, x 2 = 6
e y 1 = O, y 2 = -h y 3 = O, con ex = 30 = yb. Il vettore x è ammissibile per il problema primale mentre y non lo è per il problema duale (poiché viola il vincolo y 1 + 3 y 3 ~ 3).
La proprietà di complementarità vale anche nell' iterazione finale del metodo del simplesso, dove viene determinata una soluzione ottima per il problema primale. Tuttavia, in
questo caso, qualcos'altro può essere ancora detto sulla soluzione complementare y come
descritto nella proprietà seguente.
Condizione di complementarità per soluzioni ottime: nell'iterazione finale, il metodo del simplesso identifica simultaneamente una soluzione ottima x* per il problema primale e una soluzione complementare ottima y* per il problema duale (con i
coefficienti delle variabili slack nella riga 0), dove
ex* = y*b
Le quantità y; sono i prezzi ombra per il problema primale.
Per esempio, l' iterazione finale produce xj = 2, x~ = 6 e y j = O, y ~ =-h y j = l , con
ex* = 36 = y*b.
Alcune di queste proprietà saranno esaminate più in dettaglio nel Paragrafo 6.3 in cui
si potrà osservare che la proprietà di complementarità può essere ulteriormente estesa. In
particolare, dopo aver introdotto variabili slack e surplus per ottenere la forma aumentata
dei rispettivi problemi, a ogni soluzione di base per il problema primale corrisponde una
soluzione di base complementare nel problema duale. Come già detto, il metodo del simplesso identifica i valori delle variabili surplus per il problema duale come z1 - c1 nella
Tabella 6.4. Questo risultato porta quindi a una ulteriore proprietà di complementarità
che mette in relazione le variabili di base di un problema con le variabili non di base dell'altro (Tabelle 6.7 e 6. 8). Questo concetto verrà approfondito in seguito.
172
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
Nel Paragrafo 6.4 dopo aver descritto come costruire il problema duale quando il problema primale non è in forma standard, viene discussa un'altra proprietà molto utile e riassunta nel seguente modo.
Simmetria: per ogni coppia di problemi primale-duale, tutte le relazioni devono essere simmetriche perché il duale di questo problema duale è proprio il corrispondente problema primale.
Di conseguenza, tutte le precedenti proprietà continuano a valere indipendentemente da
quale dei due problemi è identificato come problema primale (il segno della diseguaglianza per la proprietà della dualità debole richiede che il problema primale sia espresso o rifonnulato nella forma di massimazione mentre il problema duale nella forma di minimizzazione). Il metodo del simplesso può essere quindi applicato a l'uno o l'altro problema e
permetterà di identificare simultaneamente le soluzioni complementari (e alla fine una soluzione complementare ottima) per l'altro problema.
Finora, l'attenzione è stata focalizzata sui legami tra le soluzioni ammissibili o ottime
nel problema primale e le soluzioni corrispondenti nel problema duale. Tuttavia, è possibile che il problema primale (o quello duale) non abbia soluzioni ammissibili o che abbia
soluzioni ammissibili ma non abbia soluzione ottima (perché la funzione obiettivo è illimitata). Una proprietà finale riassume quindi le relazioni primale-duale considerando tutte
queste possibilità.
Teorema della dualità: le seguenti sono le uniche relazioni possibili tra i problemi
primali e duali.
l. Se uno dei due problemi ha soluzioni ammissibili e funzione obiettivo limitata
(quindi ha una soluzione ottima), lo stesso vale per l'altro problema e sono quindi
valide le condizioni della dualità debole e della dualità forte.
2. Se uno dei due problemi ha soluzioni ammissibili e funzione obiettivo illimitata (e
quindi nessuna soluzione ottima), allora l'altro problema non ha soluzioni ammissi-
bili.
3. Se uno dei due problemi non ha soluzioni ammissibili, allora l'altro problema non
ha soluzioni ammissibili oppure ha funzione obiettivo illimitata.
Applicazioni
Come conseguenza di quanto sopra, un' importante applicazione della teoria della dualità
è che per identificare una soluzione ottima per il problema primale è possibile risolvere il
problema duale con il metodo del simplesso. Nel Paragrafo 4.8 è stato dimostrato che il
numero dei vincoli funzionali influenza la complessità computazionale del metodo del
simplesso molto più del numero delle variabili. Se m > n, cosicché il problema duale ha
un numero minore di vincoli funzionali (n) rispetto al problema primale (m), allora applicando il metodo del simplesso direttamente al problema duale anziché al problema primale, probabilmente, si otterrà una riduzione notevole della quantità di calcolo richiesta.
Le proprietà deboli e forti della dualità descrivono le relazioni fondamentali tra i problemi primali e duali. Un 'applicazione utile consiste nella valutazione di una soluzione
proposta per il problema primale. Per esempio, si supponga che x sia una soluzione ammissibile e che, tramite lo studio del problema duale, sia stata determinata una soluzione
ammissibile y tale che ex = yb. In questo caso, si può concludere che x è una soluzione
ottima anche senza applicare il metodo del simplesso! Anche quando ex < yb, yb continua a rappresentare un limite superiore per il valore ottimo di Z, così se yb - ex è piccolo, fattori intangibili che fa voriscono x possono condurre alla sua selezione senza ulteriore
fatica.
Una delle principali applicazioni della proprietà di complementarità è il suo uso nel
metodo duale del simplesso. Questa procedura agisce sul problema primale proprio come
se il metodo del simplesso venisse applicato simultaneamente al problema duale (ciò pu
6.2
6.2
INTERPRETAZIONE ECONOMICA DELLA DUALITÀ
173
essere fatto grazie a questa proprietà). Poiché il ruolo della riga O e il termine noto (la colonna a destra) del tableau del simplesso sono stati invertiti, il metodo del simplesso duale
richiede che la riga O sia inizialmente nonnegativa e che rimanga tale, mentre il termine
noto inizialmente ha alcuni valori negativi (successivamente le iterazioni cercheranno di
ottenere che l' ultima colonna a destra sia nonnegativa).
Questa procedura è usata solo occasionalmente quando che è più conveniente avviare
il tableau iniziale in questa forma che nella forma richiesta dal metodo del simplesso.
Essa viene usata frequentemente nella fase di riottimizzazione (discussa nel Paragrafo
4.7), poiché i cambiamenti nel modello originale conducono a un tableau finale modificato che soddisfa questa forma. Come potrà essere visto successivamente nel capitolo, questa situazione è comune nell' analisi della sensitività
In generale, la teoria della dualità svolge un ruolo centrale nell 'analisi della sensitività
e questo ruolo è proprio l'argomento del Paragrafo 6.5.
Importante inoltre è l' interpretazione economica del problema duale e il suo uso nell ' analisi del problema primale. Un primo esempio è stato già mostrato nel Paragrafo 4.7 nella descrizione dei prezzi ombra. Il Paragrafo 6.2 descrive come questa interpretazione si
estende all'intero problema duale e quindi al metodo del simplesso.
6.2
INTERPRETAZIONE ECONOMICA DELLA DUALITÀ
L' interpretazione economica della dualità si basa direttamente sull'interpretazione tipica
del problema primale presentata nel Paragrafo 3.2. Questa interpretazione del problema
primale viene riepilogata qui nella Tabella 6.6.
Interpretazione del problema duale
Per analizzare come questa interpretazione del problema primale conduce a un'interpretazione economica del problema duale, 1 occorre tenere presente che, nella Tabella 6.4, W è
il valore di Z (profitto totale) nell ' iterazione corrente. Poiché
W= b1 Y1 + b2Y2 + ...
+ bmYm
ogni b;y; può essere interpretato come il contributo al profitto corrente quando b; unità
della risorsa i sono disponibili. Quindi,
la variabile duale Yi può essere interpretata come il contributo al profitto per unità di risorsa i
(i = l, 2, ... , m), quando l'insieme corrente delle variabili di base è usato per ottenere la soluzione primale.
In altre parole, i valori Y; (o i valori
bra discussi nel Paragrafo 4.7.
y; nella soluzione ottima) sono proprio i prezzi om-
• TABELLA 6.6 Interpretazione economica del problema primale
Quantità
Interpretazione
Livello dell'attività j (j = l, 2, .. . , n)
Profitto unitario dall'attività j
Profitto totale
Quantità disponibile della risorsa i (i = l, 2, ... , m)
Quantità della risorsa i consumata da una singola unità di attività j
1
In realtà, sono state proposte diverse interpretazioni leggermente differenti. Quella presentata sembra la più utile poiché essa interpreta direttamente anche come opera il metodo del simplesso relativamente al problema primale.
174
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
Per esempio, quando nell'iterazione 2 del metodo del simplesso viene trovata la soluzione
ottima per il problema Wyndor, i valori ottimi delle variabili duali (come indicato nella riga in basso della Tabella 6.5) sono YT =O, Y2 =+e y] = l che sono esattamente i prezzi ombra ottenuti per questo problema nel Paragrafo 4.7 mediante l'analisi grafica. Per il
problema Wyndor, le risorse sono le capacità produttive dei tre stabilimenti a disposizione
per i due nuovi prodotti considerati e, quindi, b; è il numero di ore di produzione settimanale disponibili nello stabilimento i per questi nuovi prodotti, con i= l , 2, 3. Come discusso nel Paragrafo 4.7, i prezzi ombra indicano che, aumentando ogni singolo b; di l , il
valore ottimo della funzione obiettivo (profitto settimanale totale in unità di migliaia di
dollari) aumenterà di y7 . Così, y 7 può essere interpretato come il contributo al profitto
per unità della risorsa i quando si usi la soluzione ottima.
Questa defmizione delle variabili duali porta naturalmente a una interpretazione dell'intero problema duale. In particolare, poiché nel problema primale ogni unità dell'attività }
consuma aiJ unità della risorsa i,
la quantità L 7~ 1 auy; può essere interpretata come il contributo al profitto della combinazione di risorse che sarebbe consumata se venisse usata l unità dell'attività) U = l , 2, ... , n).
Per il problema Wyndor, una unità dell 'attività} corrisponde a produrre un lotto di prodotto j alla settimana, con j = l, 2. La combinazione di risorse consumate per produrre un lotto del prodotto l è di l ora del tempo di produzione nello stabilimento l e 3 ore nello stabilimento 3, mentre la combinazione corrispondente per il lotto del prodotto 2 è di 2 ore in
ciascuno degli stabilimenti 2 e 3. Quindi,y 1 + 3y3 e 2y2 + 2y 3 possono essere interpretati
come i contributi correnti al profitto (in migliaia di dollari alla settimana) di queste rispettive combinazioni di risorse per lotto prodotto in ogni settimana per i rispettivi prodotti.
Per ogni attività}, questa stessa combinazione di risorse (o una maggiore) può essere
probabilmente usata anche in altri modi, ma nessun altro uso alternativo dovrebbe essere
considerato se conduce a risultai meno vantaggiosi rispetto a quelli ottenuti con l unità
dell 'attività}. Poiché c1 è il profitto unitario dell'attività}, ogni vincolo funzionale nel problema duale è interpretato come segue:
L7~ 1 auy; 2: c1 indica che il contributo reale della precedente combinazione di risorse al profitto deve essere almeno pari a quello ottenuto usando l unità dell'attività); diversamante queste risorse non verrebbero usate nel modo migliore.
Per il problema Wyndor, i profitti unitari (in migliaia di dollari per settimana) sono c 1 = 3
e c2 = 5, così, con questa interpretazione, i vincoli funzionali duali sono y 1 + 3y 3 ;::: 3 e
2y 2 + 2y3 ;::: 5. Analogamente, l'interpretazione dei vincoli di nonnegatività è la seguente:
2: O indica che il contributo della risorsa i (i= l , 2, .. . , m) al profitto deve essere nonnegativo altrimenti sarebbe meglio non usare affatto questa risorsa.
y;
L'obiettivo
m
minimizzare
W=
L
b;y;
i= l
può essere visto come la minimizzazione del valore totale implicito delle risorse consumate dalle varie attività. Per il problema Wyndor, il valore totale implicito (in migliaia di dollari per settimana) delle risorse consumate dai due prodotti è W = 4y 1 + 12y2 + 18y 3 .
Per una qualunque BFS (x" x 2 , .. . , Xn +m) primate, questa interpretazione può essere
messa in risalto differenziando tra variabili di base e non di base. Le variabili di base (le
uniche variabili i cui valori possono essere diversi da zero) hanno sempre coefficiente nullo nella riga O. Di conseguenza, facendo ancora riferimento alla Tabella 6.4 e all 'equazione associata per z1, si può verificare che
m
L aiJy;=c1
sex1 > 0
(j = l,2, ... , n)
i= l
y;=O
sex11 +i> 0
(i = l,2, ... ,m)
6.2
INTERPRETAZIONE ECONOMICA DEllA DUAliTÀ
175
Questa è la proprietà di complementarità discussa nel Paragrafo 6.3. L'interpretazione
economica della prima espressione è che ogni volta che un'attività j agisce a un livello
strettamente positivo (x1 > 0), il valore marginale delle risorse che essa consuma deve
essere uguale al (invece di essere strettamente maggiore del) profitto unitario ottenuto
da questa attività. La seconda espressione implica che il valore marginale della risorsa i
è zero (y; = O) ogni volta che la disponibilità di questa risorsa non è esaurita dalle attività (xn+i > 0). Nella terminologia economica, una simile risorsa è un " bene gratutito" ; il prezzo dei beni che sono in eccedenza è zero per la legge della domanda e dell'offerta. Questo giustifica l'interpretazione dell 'obiettivo per il problema duale come
minimizzazione del valore implicito totale delle risorse consumate piuttosto che le risorse allocate.
Per chiarire queste due affermazioni, si consideri la BFS ottima (2, 6, 2, O, O) per il problema Wyndor. Le variabili di base sono x~. x 2 , x3 , e così i rispettivi coefficienti nella riga
Osono nulli, come mostrato nella riga in basso della Tabella 6.5. Questa riga fornisce inolyj = l, con le variabili surplus
tre la soluzione duale corrispondente: yj = O, YÌ =
(zj - c 1) = O e (z2 - c2 ) = O. Dato che x 1 > O e x 2 > O, entrambe queste variabili surplus (come è anche semplice calcolare) indicano che yj + 3y j = c, = 3 e
2y2 + 2yj = c2 = 5. Di conseguenza, il valore delle risorse consumate per lotto di produzione dei rispettivi prodotti è effettivamente uguale ai rispettivi profitti unitari. La variabile slack per il vincolo sulla capacità produttiva usata per lo stabilimento l è x 3 > O e, così,
il valore marginale di aggiungere capacità produttiva allo stabilimento l è zero (yj = 0).
+•
Interpretazione del metodo del simplesso
L'interpretazione del problema duale fornisce anche un'interpretazione economica di come opera il metodo del simplesso applicato al problema primale. L 'obiettivo del metodo
del simplesso è quello di determinare il modo più vantaggioso di usare le risorse disponibili. Per raggiungere questo obiettivo, deve essere ottenuta una BFS che soddisfi tutti i requisiti di un uso vantaggioso delle risorse (i vincoli del problema duale). Questi requisiti
costituiscono le condizioni di ottimalità per l'algoritmo. Per una qualunque BFS, i requisiti (vincoli duali) associati alle variabili di base sono soddisfatti automaticamente (come
uguaglianza), mentre quelli legati alle variabili non di base possono o non possono essere
soddisfatti.
In particolare, se una variabile originale x1 è non di base, cosicché l'attività) non è usata , allora il contributo corrente al profitto delle risorse che sarebbero richieste per intraprendere ogni unità dell'attività)
m
L:auy;
i= l
può essere minore, maggiore o uguale al profitto unitario c1 ottenibile dall 'attività. Se è
minore, di modo che nella riga O del tableau del simplesso si ha che z1 - c1 < O, allora
queste risorse possono essere usate in modo più vantaggioso avviando tale attività. Se è
maggiore (z1 - c1 > 0), allora queste risorse sono già assegnate in modo più proficuo altrove, e non devono essere stornate verso l'attività). Se z1 - c1 = O, avviando l'attività)
non si otterrebbe nessuna variazione nel profitto.
Allo stesso modo, se una variabile slack Xn +i non è una variabile di base, cosicché viene usato completamente la quantità b; della risorsa i, allora y; è il contributo di questa risorsa al profitto corrente su base marginale. Quindi, se y; < O, il profitto può essere aumentato apportando tagli sull'uso di questa risorsa (cioè, aumentando X 11 +;). Se y; > O, è
utile continuare a usare completamente questa risorsa, mentre questa decisione non influenza il profitto se y; = O.
Di conseguenza, il metodo del simplesso esamina tutte le variabili non di base nella
BFS corrente per determinare quali di esse possono fornire un uso più vantaggioso delle
176
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
risorse mediante un aumento. Se nessuna variabile soddisfa questo requisito, cosicché
non è possibile effettuare variazioni o riduzioni dell'uso corrente delle risorse che possano
aumentare il profitto, allora la soluzione corrente è ottima. Se cambiando una o più variabili si raggiunge un uso migliore delle risorse, il metodo del simplesso seleziona la variabile che, se aumentata di l , migliorerà in misura maggiore il profitto ottenibile utilizzando le risorse disponibili. Quindi, si aumenta questa variabile (la variabile entrante) quanto
più possibile fino a quando i valori marginali delle risorse non cambiano. Questo aumento
ha come risultato una nuova BFS con una nuova riga O (soluzione duale) e la ripetizione
dell ' intero processo.
L' interpretazione economica del problema duale estende in modo considerevole la capacità di analizzare il problema primate. Tuttavia, è stato già descritto nel Paragrafo 6.1
che questa interpretazione rappresenta solo una ramificazione delle relazioni esistenti tra i
due problemi. Nel Paragrafo 6.3 queste relazioni saranno esaminate più a fondo .
6.3
RELAZIONI PRIMALE-DUALE
Poiché il problema duale è un problema di programmazione lineare, anche esso possiede
soluzioni che sono vertici. Per di più, usando la forma aumentata del problema, è possibile esprimere questi vertici come soluzioni di base. Poiché i vincoli funzionali hanno la forma ;:::: , questa forma aumentata è ottenuta sottraendo una variabile surplus (piuttosto che
aggiungendo una variabile slack) da sinistra di ogni vincolo j U= l , 2, ... , n).2 Si ha
quindi
/Il
z1 - c1
=L aiJYi- c
1
per j
= l , 2, ... , n
i= l
In questo modo, z1 - c1 svolge il ruolo della variabile surplus per il vincolo) (o della relativa variabile slack se il vincolo è moltiplicato per - l). Di conseguenza, da ogni vertice
(y~. y 2 , .. . , Ym) si ottiene una soluzione di base (y ~. Y2 , . . . , Ym , Z I - c 1, z2 - c 2, . .. .
z11 - c11 ) usando l'espressione per z; - c1. Poiché la forma aumentata del problema duale
ha n vincoli funzionali e n + m variabili, ogni soluzione di base ha n variabili di base e m
variabili non di base (si può notare come in questo caso i ruoli di m e n risultano invertiti
rispetto a prima poiché, come indicato nella Tabella 6.3, i vincoli duali corrispondono alle
variabili primati mentre le variabili duali corrispondono ai vincoli primali).
Soluzioni di base complementari
Una delle fondamentali relazioni tra il problema primale e quello duale è rappresentata
dalla corrispondenza diretta tra le loro soluzioni di base. La chiave di questa corrispondenza è la riga O del tableau del simplesso per la soluzione di base primale, come indicato nelle Tabelle 6.4 o 6.5. Una riga O siffatta può essere ottenuta per qualunque soluzione di base primale, ammissibile o no, usando le formule indicate nella parte inferiore della Tabella 5.8.
Si può inoltre notare, nelle Tabelle 6.4 e 6.5, che per il problema duale (variabili surplus comprese) una soluzione completa può essere letta direttamente nella riga O. Quindi.
con riferimento ai coefficienti nella riga O, ogni variabile del problema primale ha una variabile associata nel problema duale, come riassunto nella Tabella 6.7.
Si noti che la soluzione duale letta dalla riga O deve essere anche una soluzione di base! Il motivo è che le m variabili di base per il problema primale devono avere coeffi2
Ci si può chiedere perchè non sono state introdotte variabili artificiali per questi vincoli così come di scusso nel
Paragrafo 4.6. Il motivo è che queste variabili non servono ad altro che a cambiare temporaneamente e convenietemente la regione ammissibile così da permettere l' inizio del metodo del simplesso. Qui non si è interessati ad applicare il metodo del simplesso al problema duale e non si vuole cambiare la corrispondente regione ammissibile.
6.3
RElAZIONI PRIMALE-DUALE
177
ciente uguale a zero nella riga O e, quindi, è necessario che le m variabili duali associate
devono essere uguali a zero e cioè variabili non di base per il problema duale. I valori
delle restanti n variabili (di base) saranno quindi la soluzione del sistema di equazioni riportato all'inizio di questo paragrafo. In forma matriciale, questo sistema di equazioni è
z - c = yA - c e, dal Paragrafo 5.3 , si ha che questo identifica z - c e y come i corrispondenti valori nella riga O.
Per la proprietà di simmetria citata nel Paragrafo 6.1 (e l'associazione diretta fra le variabili come mostrato nella Tabella 6.7), la corrispondenza fra le soluzioni di base nei problemi primali e duali è simmetrica. Inoltre, una coppia di soluzioni di base complementari
ha lo stesso valore della funzione obiettivo indicato con W nella Tabella 6.4.
Vengono adesso riassunte le varie corrispondenze tra le soluzioni di base primali e duali. La prima proprietà estende la proprietà di complementarità delle soluzioni descritta nel
Paragrafo 6.1 a qualsiasi soluzione di base (ammissibile o no) del problema primale.
Soluzioni di base complementari: a ogni soluzione di base nel problema prima/e
corrisponde una soluzione di base complementare nel problema duale e i rispettivi valori della funzione obiettivo (Z e W) sono uguali. Data la riga O del tableau del
simplesso per la soluzione di base primate, la soluzione di base duale complementare (y, z - c) si trova così come indicato nella Tabella 6.4.
La proprietà seguente mostra come identificare le variabili di base e non di base in questa
soluzione di base complementare.
Proprietà di complementarità: data l'associazione tra le variabili nella Tabella
6.7 , le variabili nella soluzione di base primale e la soluzione di base duale complementare soddisfano la condizione di complementarità mostrata nella Tabella 6.8.
Questa relazione è simmetrica, cosicché queste due soluzioni di base sono tra di loro
complementari.
Il motivo di usare il nome complementarità per quest'ultima proprietà è che tale nome indica che per ogni coppia di variabili associate, se una di esse è una variabile di base > O,
allora l'altra deve essere una variabile non di base =O. Come accennato nel Paragrafo
6.2, questa proprietà ha una utile interpretazione economica.
TABELLA 6.7 Associazione tra le variabili nei problemi primale e duale
Caso generale
Problema Wyndor
Variabile primale
Variabile duale associata
(Variabile decisonale) x;
(Variabile slack) Xn+ 1
z ; - Cj (variabile surplus)
y; (variabile decisionale)
Variabili decisionali: x,
z, -
X2
z2 -
Variabili slack:
X3
y,
x4
xs
Y2
TABELLA 6.8 Complementarietà
per soluzioni di base
Variabile primale
Variabile duale associata
Di base
Non di base
Non di base
(m variabili)
Di base
(n variabili)
Y3
c,
c2
j = l, 2, ... , n
i = 1,2, ... ,m
(variabili surplus)
(variabili decisonali)
178
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
TABELLA 6.9 Soluzioni di base complementari per l'esempio Wyndor Glass Co.
N.
Problema duale
Problema primale
Z=W
Ammissibile?
Soluzione di base
No
o
12
18
No
No
No
(0, o, o, - 3, - 5)
(3, O, O, O, - 5)
(0, O, l, O, - 3)
(4, 3, O, 6, O)
Sì
27
No
(-
5
(0, 6, 4, O, 6)
Sì
30
No
(O,%' O, - 3, O)
6
(2, 6, 2, O, O)
Sì
36
Sì
(O,
7
(4, 6, O, O, - 6)
No
42
Sì
(3,%, o, o, o)
8
(0, 9, 4, - 6, O)
No
45
Sì
(o, o,%'
Soluzione di base
Ammissibile?
l
2
3
(0, O, 4, 12, 18)
(4, O, O, 12, 6)
(6, O, - 2, 12, O)
Sì
Sì
4
~, O,%' O, O)
f,
l, O, O)
f,
o)
Esempio. Per illustrare queste due proprietà, si consideri ancora una volta il problema
Wyndor Glass Co. del Paragrafo 3.1. Tutte le sue otto soluzioni di base (cinque ammissibili e tre non ammissibili) sono riportate nella Tabella 6.9. Anche il corrispondente problema
duale (si faccia riferimento alla Tabella 6.1) deve avere otto soluzioni di base, ciascuna
complementare a una di queste soluzioni primati di base, come indicato nella Tabella 6.9.
Le tre BFS ottenute con il metodo del simplesso per il problema primale sono la prima
la quinta e la sesta soluzione di base indicate nella Tabella 6.9. Si è già visto, nella
Tabella 6.5, come le soluzioni di base complementari per il problema duale possono essere lette direttamente dalla riga O, iniziando con i coefficienti delle variabili slack e quindi
con quelli delle variabili originarie. Anche le altre soluzioni di base duali potrebbero essere identificate in questo modo costruendo la riga O per ciascuna delle altre soluzioni di base primali con le formule contenute nella parte inferiore della Tabella 5.8.
Alternativamente, per ogni soluzione di base primale, può essere usata la proprietà di
complementarità per identificare le variabili di base e non di base per la soluzione di base
duale complementare. Successivamente, può essere risolto direttamente il sistema di equazioni riportato all ' inizio del paragrafo ottenendo così questa soluzione complementare.
Per esempio, si consideri la penultima soluzione di base primale della Tabella 6.9 (4, 6, O.
O, -6). Dato che le variabili x 1, x 2 e x 5 sono diverse da zero, esse sono variabili di base
La Tabella 6.7 indica che le variabili duali associate sono (z1 - c 1), (zz - c2) e y 3 . La
Tabella 6.8 specifica che queste variabili duali associate sono variabili non di base nella
soluzione di base complementare e, così,
Y3 = O
Di conseguenza, dai vincoli funziona li del problema duale
YJ
2y2
+ 3y3
+ 2y3
-
(zi - CJ) = 3
- (z2 - c2) = 5
si ha
+ O- O= 3
Y1
2y2
+·
+ o- o= 5
cosicché y 1 = 3 e y 2 =
Combinando questi valori con i valori uguali a zero delle variabili non di base si ottiene la soluzione di base (3,
O, O, O) mostrata nella colonna più
destra e nella penultima riga della Tabella 6.9.
+,
6.3
179
RELAZIONI PRIMALE-DUALE
Dato che le cinque vmiabili soddisfano i vincoli di nonnegatività, questa soluzione duale
è ammissibile per il problema duale.
Per concludere, la Tabella 6.9 mostra che (0,
l, O, O) è la soluzione ottima per il problema duale, perché essa rappresenta la soluzione di base ammissibile con il valore di W
(36) minimo .
+•
Relazioni tra soluzioni di base complementari
L'attenzione viene adesso spostata sui legami esistenti tra le soluzioni di base complementari considerando dapprima condizioni di ammissibilità. A tal proposito, le colonne centrali della Tabella 6.9 forniscono alcuni importanti indizi. Per le coppie di soluzioni complementari si può notare come, nella maggior parte dei casi, risposte positive o negative
sull'ammissibilità soddisfino anche una relazione complementare. A parte una eccezione,
ogni volta che una soluzione è ammissibile, l'altra non lo è (è anche possibile, come accade con la terza coppia, che né l 'una né l'altra soluzione siano ammissibili). L'unica eccezione è rappresentata dalla sesta coppia, che è la soluzione primale ottima. La spiegazione
è suggerita dalla colonna Z = W. Poiché anche la sesta soluzione duale è ottima (dalla
proprietà di complementarità delle soluzioni ottime), con W= 36, le prime cinque soluzioni duali non possono essere ammissibili perché W< 36 (occorre ricordare che l' obiettivo del problema duale è minimizzare W). Allo stesso modo, le ultime due soluzioni primali non possono essere ammissibili perché Z > 36.
Questa giustificazione risulta rafforzata quando si ricordi che, in base alla proprietà di
dualità forte, si ha che Z = W per coppie di soluzioni primali e duali ottime.
Di seguito, la proprietà di complementarità discussa nel Paragrafo 6.1 viene estesa alle
forme aumentate dei due problemi.
Proprietà di complementarità delle soluzioni di base ottime: a ogni soluzione di
base ottima del problema prima/e è associata una soluzione di base complementare ottima del problema duale e i valori delle tispettive funzioni obiettivo (Z e W) sono uguali. Data la riga O del tableau del simplesso per la soluzione primale ottima,
la soluzione duale complementare ottima (y*, z* - c) è trovata come mostrato nella
Tabella 6.4.
Si noti che la soluzione duale (y*, z* - c) deve essere ammissibile per il problema duale
perché la condizione di ottimalità per il problema primale richiede che tutte queste variabili duali (variabili surplus comprese) siano nonnegative. Dato che questa soluzione è ammissibile, per la proprietà della dualità debole essa deve essere ottima per il problema duale (poiché W = Z, y*b =ex* dove x* è la soluzione ottima per il problema primale).
Le soluzioni di base possono essere classificate a seconda che esse soddisfino o meno
ciascuna delle seguenti due condizioni. Una è la condizione di ammissibilità, cioè, se tutte le variabili (comprese le variabili slack) nella soluzione aumentata sono no negative.
L'altra è la condizione di ottimalità, cioè, se tutti i coefficienti della riga O (cioè, tutte le
variabili nella soluzione di base complementare) sono nonnegativi. I nomi assegnati per i
differenti tipi di soluzioni di base sono riassunti nella Tabella 6.1 O. Con riferimento alla
Tabella 6.9, le soluzioni di base primali l , 2, 4 e 5 sono subottime, la 6 è ottima, le soluzioni 7 e 8 sono superottime mentre la 3 non è né ammissibile né superottima.
TABELLA 6.10 Classificazione delle soluzioni di base
Soddisfa le condizioni di ottimalità
Ammissibile?
Sì
No
Sì
Ottima
Su botti ma
No
Superottima
Né ammissibil e né superottima
180
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
Problema prima/e
Il
) cx=Z
j ';;'l l J
Superottima
Problema duale
6.4
111
W= Lb;Y;
i=l
Su botti ma
\
'
(ottima) Z* ----,/.,..,."""'----+-----';....'.:..-~/--- W* (ottima)
'
\
Su botti ma
Superottima
• FIGURA6.1
Possibi li va lori di Z = W
per specifici tipi di
soluzioni di base
complementari.
TABELLA 6.11 Relazioni tra soluzioni di base complementari
Entrambe soluzioni di base
Soluzione
di base primale
Soluzione di base
duale complementare
Su botti ma
Ottima
Superottima
Né ammissibile né
superottima
Superottima
Ottima
Subottima
Né ammissibile né
su pero t ti ma
Primale
Ammissibile?
Duale
Ammissibile?
Sì
Sì
No
No
Sì
Sì
No
No
Con queste definizioni, le relazioni generali tra le soluzioni di base complementari sono
riassunte nella Tabella 6.11. La gamma dei possibili valori (comuni) delle funzioni obiettivo (Z = W) per le prime tre coppie della Tabella 6.11 (l'ultima coppia può assumere
qualsiasi valore) è indicata nella Figura 6.1. Il metodo del simplesso opera, quindi, direttamente con soluzioni di base subottime mirando all'ottimizzazione del problema primale e.
allo stesso tempo, si occupa indirettamente delle soluzioni superottime complementari
tentando di soddisfare l'ammissibilità del problema duale. Al contrario, a volte è necessario (o più conveniente) operare direttamente con le soluzioni di base superottime e tentare
di soddisfare l'ammissibilità del problema primale, che è lo scopo del metodo del simplesso duale cui si è già accennato prima.
La terza e quarta colonna della Tabella 6.11 introducono altri due termini che sono usati comunemente per descrivere una coppia di soluzioni di base complementari. Le due soluzioni sono dette primati ammissibili se la soluzione di base primale è ammissibile.
mentre sono denominate duali ammissibili se la soluzione di base duale complementare è
ammissibile per il problema duale. Usando questa terminologia, il metodo del simplesso
opera con soluzioni primali ammissibili e si sforza di realizzare anche l'ammissibilità duale. Una volta che ciò viene realizzato, le due soluzioni di base complementari risultano essere ottime per i rispettivi problemi.
Queste relazioni risultano essere molto utili specialmente nell 'analisi della sensitività.
come si potrà vedere in seguito in questo capitolo.
6.4
6.4
181
LE ALTRE FORME DEL PROBLEMA PRIMALE
LE AL TRE FORME DEL PROBLEMA PRIMALE
Finora si è supposto che il problema primale sia in forma standard. Tuttavia, come indicato ali 'inizio del capitolo, qualunque problema di programmazione lineare, sia che esso si
trovi nella forma standard o meno possiede un problema duale. Di conseguenza, questo
paragrafo tratta come cambia il problema duale per le altre forme del problema primale.
Varie forme non standard sono state discusse nel Paragrafo 4.6 dove si è pure sottolineato come, qualora lo si desideri , è possibile convertire ognuna di tali forme nella forma standard equivalente. Queste conversioni sono riassunte nella Tabell a 6.12. In questo modo si
può sempre scegliere di convertire qualunque modello nella forma standard e quindi costruire il corrispondente problema duale nel modo usuale. Come esempio, si applichi quanto detto per il problema duale standard (esso pure deve avere un duale) della Tabella 6.13.
Ciò che si ottiene alla fine è proprio il problema prima le! Il fatto che una qualunque coppia
di problemi primale e duale possa essere convertita in queste forme, implica che il duale
del problema duale è ancora il problema primale. Di conseguenza, tutte le relazioni esistenti tra un qualunque problema primate e il relativo problema duale sono simmetriche. Ma
questa non è altro che la proprietà di simmetria già affermata nel Paragrafo 6.1 (senza provaria) la cui validità può essere adesso dimostrata con l 'ausil io della Tabella 6.13.
Una conseguenza della proprietà di simmetria è che tutte le affe1mazioni fatte precedentemente nel capitolo sulle relazioni tra il problema duale e il problema primale valgono anche per il viceversa.
Un'altra conseguenza è che non è importante quale problema sia chiamato primate e
quale duale. In pratica, la fom1a standard per un problema di programmazione lineare potrebbe essere quella relativa al problema duale. Solitamente, il modello f01mulato per il problema reale è denominato problema prima le, senza nessun riferimento alla specifica forma.
L'esempio precedente di costruzione del problema duale a partire da un problema primale non standard non trattava né vincoli di uguaglianza né variabili non vincolate in segno. In realtà, per queste due fmme, è disponibile una scorciatoia. È possibile mostrare (si
faccia riferimento al Problema 6.4-2) che, nella costruzione del problema duale, un vincolo di uguaglianza nel problema primale può essere trattato esattamente come un vincolo
di tipo ::; eccetto che il vincolo di nonnegatività per la variabile duale corrispondente dove essere eliminato (cioè questa variabile non è vincolata in segno). Per la proprietà di
simmetria, la non presenza di un vincolo di nonnegatività nel problema primale influenza
il problema duale soltanto modificando il corrispondente vincolo di disuguaglianza che
diventa un vincolo di uguaglianza.
Un'altra scorciatoia riguarda i vincoli funzionali nella forma 2: per un problema di
massimazione. In un approccio diretto (più lungo) bisognerebbe dapprima convertire ogni
vinco lo nella forma ::;
Il
L aux
1
Il
2: b;
--->
-L aux
J= l
1 ::; - b;
)= l
TABELLA 6.12 Conversione in forma standard per problemi di programmazione
lineare
Forma non standard
Minimizzare
z
n
L
Forma standard equivalente
n
O;jXj
2: b;
-L
i= l
O;jXj:::;
- b;
i= l
n
L
(- Z)
Massimizzare
n
n
O;jXj
= b;
L
a;ixi:::; b;
i= l
i= l
xi senza vincolo di segno
xt -y
e
-L
i= l
xto
O;jXj:::;
- b;
182
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
TABELLA 6.13 Costruzione del duale del problema duale
Problema duale
W= yb
Minimizzare
soggetto ai vincoli
Convertito nella forma standard
( - W) = - yb
Massimizzare
soggetto ai vincoli
- yA
yA ~ c
e
-c
:5
e
l
Convertito nella
forma standard
Z = ex
Massimizzare
soggetto ai vincoli
Ax
:5
e
Problema duale
( - Z) =- ex
Minimizzare
soggetto ai vincoli
- Ax
b
~
- b
e
x ~ O
x ~ o
Nella costruzione del problema duale, il coefficiente di y ; nel vincolo funzionale ) -esimo
(che è nella forma ;:::) è -au mentre - b; è il coefficiente nella funzione obiettivo (che deve essere minimizzata), e inoltre y; ;::: O. Si supponga adesso di definire una nuova variabile y ' = - y ;. I cambiamenti ottenuti esprimendo il problema duale in tem1ini di y ' anziché
di y ; sono che (l) i coefficienti della variabile diventano au per il vincolo funzionale ) -esimo e b; per la funzione obiettivo e (2) il vincolo sulla variabile diventa y' ~ O (un vincolo
di nonpositività) . La scorciatoia consiste nell'usare come variabile duale y' anziché Y; in
modo che i parametri del vincolo originale (au e bJ) si trasformino immediatamente nei
coefficienti di questa variabile nel problema duale.
Esiste un utile stratagemma mnemonico per ricordarsi quale sia la forma dei vincoli
duali. Per un problema di massimazione, è saggio avere un vincolo funzionale nella forma ~, originale averlo nella forma = e bizzarro trovarlo nella forma ;::: . Allo stesso modo, per un problema di minimizzazione, è saggio avere il vincolo nella fotma ;:::, originale averlo nella forma = e bizzarro se è nella forma ~ - Per quanto riguarda il vincolo per
una specifica vmiabile, in entrambi i tipi di problema è saggio avere un vincolo di nonnegatività, originale non avere nessun vincolo sul segno e bizzarro avere una variabile minore o uguale a zero. La Tabella 6.3 mostt·a la corrispondenza tra gli elementi dei problemi primali e duali: il vincolo funziona le i in un problema corrisponde alla variabile i nell' altro problema e viceversa. Il metodo saggio-originale-bizzarro, o, in breve metodo
SOB, stabilisce che la forma di un vincolo funzionale o del vincolo per una variabile nel
problema duale deve essere saggia, originale o bizzarra a seconda che la forma per l'elemento corrispondente nel problema primale sia saggio, originale o bizzarro.
Il metodo SOB per determinare la forma dei vincoli
per il problema duale 3
l. Fonnu lare il problema primale nella forma di massimazione o nella forma di minimizzazione. Il problema duale si troverà automaticamente nell'altt·a fonna.
3
Questo particolare strumento mnemon.ico per ricordare le fom1 e dei vincoli duali è stato suggerito da Arthur T.
Benjamin , matematico presso Harvey Mudd College. Il professar Benjamin è, tra l' altro, uno dei più grandi calcolatori umani capace di imprese come mentalmente moltiplicare velocemente numeri a sei cifre. (NdC n testo
inglese usa i temini Sensible, Odd, Bizzarre. La traduzione ha mantenuto l' acronimo SOB per questo metodo)
6.4
183
LE ALTRE FORME DEL PROBLEMA PRIMALE
2. Etichettare le differenti forme dei vincoli funzionali e dei vincoli sulle singole variabili
del problema primale come saggia, originale o bizzarra secondo la Tabella 6.14.
L'etichetta dei vincoli funzionali cambia a seconda che si tratti si un problema di massimazione (usare la seconda colonna) o un problema di minimizzazione (usare la terza
colonna).
3. Per ogni vincolo per una variabile nel problema duale, usare la forma con la stessa etichetta del vincolo funzionale del problema primale che corrisponde a questa variabile
duale (come indicato nella Tabella 6.3).
4. Per ogni vincolo funzionale nel problema duale, usare la forma con la stessa etichetta
del vincolo per la corrispondente variabile nel problema primale (come indicato nella
Tabella 6.3).
l-
Le frecce tra la seconda e la terza colonna della Tabella 6.14 indicano in modo esplicito la
corrispondenza tra le f01me dei vincoli del problema primate e quelle del problema duale.
Si può notare che la corrispondenza è sempre realizzata tra un vincolo funzionale in un
problema e il segno per la corrispondente variabi le nell 'a ltro problema. Poiché il problema primate può essere un problema di massimazione o di minimizzazione (il duale sarà
del tipo opposto), la seconda colonna della tabella fornisce la fonna per il problema di
massimazione mentre la terza col01ma fornisce la forma per l'altro problema (problema di
minimizzazione ).
Per chiarire le idee, si consideri l 'esempio della radioterapia presentato nel Paragrafo
3 .4. Per mostrare l 'uso della Tabella 6.14, si consideri dapprima la forma di massimazione
di questo modello per poi passare alla forn1a di minimizzazione (formulazione originale).
Il problema primale nella forma di massimazione è indicato nella parte sinistra della
Tabella 6.15. Usando la seconda colonna della Tabella 6.14 per questo problema, le frecce in questa tabella indicano la fom1a del problema duale nella terza colonna. Queste stesse frecce sono usate nella Tabella 6.15 per mostrare il problema duale risultante (nel problema duale, i vincoli funzionali sono stati disposti alla fine piuttosto che in alto come di
consueto). In enh·ambi i problemi, accanto a ogni vincolo, sono stati inseriti (tra parentesi)
una S, una O o una B per identificare rispettivamente la forma saggia, originale o bizzarra. Come imposto dal metodo SOB, l'etichetta per ogni vincolo duale è sempre la stessa
del corrispondente vincolo primale.
Tuttavia, non è necessario (tranne che per scopi illustrativi) convertire il problema primale nella forma di massimazione. La forma originale del problema primale è riportata
nella parte sinistra della Tabella 6.16. Adesso la terza colonna della Tabella 6.14 viene
usata per questo problema primale, e le fì·ecce indicano la forma del problema duale nella
seconda colonna. Nella Tabella 6.16 queste stesse frecce mostrano il problema duale risultante sulla parte destra e, come prima, le etichette sui vincoli mostrano l'applicazione
del metodo SOB.
TABELLA 6.14 Corrispondenti forme primale-duale
Etichetta
Problema primale
(o problema duale)
Massimizzare
ruz-
Saggio
Originale
Bizzarro
Saggio
Originale
Bizzarro
Z (o W)
Problema duale
(o problema primale)
Minimizzare
W (o Z)
Vincolo i:
forma :s:
forma =
forma ;;o:
Variabile y; (o X;):
Variabile xi (o Yi):
Vincolo j:
forma ;;o:
forma =
forma :s:
xi ;;o: O
Senza vincolo di segno
x; :s: O
y; ;;o:
o
Senza vincolo di segno
y; :s:
o
184
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
• TABELLA 6.15 Forma primale-duale per l'esempio di radioterapia
Problema prima/e
Massimizzare
-z=
Problema duale
- 0.4xl - O.Sx2
soggetto ai vincoli
(S)
(O)
(B)
W = 2.7y1 + 6y2 + 6y3
Minimizzare
soggetto ai vincoli
0.3 x1 + 0.1 x2 :os 2.7
O.S x1 + 0 .5x2 = 6
0.6x1 + 0.4x2 2 6
e
(S)
Yl 2 0
Y2 Senza vincolo sul segno
y3 :,.; o
(O)
0.3yl + 0.5y2 + 0.6y3 2 - 0.4
O.l y1 + 0.5y2 + 0.4y3 2 - 0.5
(S)
(S)
(B)
e
2 0
x2 2 O
(S)
(S)
X1
TABELLA 6.16 Una seconda forma primale-duale per l'esempio di radioterapia
Problema prima/e
Minimizzare
Z
= 0.4xl +
soggetto ai vincoli
(B)
(O)
(S)
O.Sx2
Massimizzare
w=2.7yi
+ 6y2 + 6y3
soggetto ai vincoli
0.3xl + O.lx2 :os 2.7
O.Sx1 + 0.5x2 = 6
0.6x1 + 0.4x2 2 6
e
(S)
(S)
Problema duale
(B)
Yi :os O
y.2 senza vincoli sul segno
Y3 2 O
(O)
0.3yi + 0.5y.2 + 0.6y3 :,.; 0.4
0.1 yi + 0.5y.2 + 0.4y3 :,.; 0.6
(S)
(S)
(S)
e
X1 2 0
x2 2 O
Poiché i problemi primali riportati nelle Tabelle 6.15 e 6.16 sono equivalenti, anche i due
problemi duali sono equivalenti. La chiave per riconoscere questa equivalenza risiede nel
fatto che le variabili duali in un caso sono l'opposto nell'altro (y'1 = - y 1, y~ = - y 2 ,
y 3 = - y;) . Di conseguenza, applicando a un problema un cambio di variabili e moltiplicando per - 1 sia la funzione obiettivo sia i vincoli, si ottiene esattamente l'altro problema.
Se il metodo del simplesso deve essere applicato a un problema primale o duale le cui
O nel problema duale della
variabili devono essere nonpositive (per esempio,
Tabella 6.15), questa variabile può essere sostituita dalla variabile nonnegativa equivalente (y3 = -y;) .
Quando sono introdotte le variabili artificiali per la risoluzione di un problema primale
mediante il metodo del simplesso, l' interpretazione duale della riga O del tableau del simplesso è la seguente: poiché le variabili artificiali si comportano come variabili slack, i loro coefficienti nella riga O forniscono i valori delle variabili duali corrispondenti nella soluzione di base complementare per il problema duale. Poiché le variabili artificiali sono
usate per sostituire il problema reale con un problema artificiale più conveniente, questo
problema duale è in realtà il duale del problema artificiale. Tuttavia, dopo che tutte le variabili artificiali escono dalla base, si ritorna nuovamente ai problemi primati e duali originali . Con il metodo delle due fasi, per estrarre fuori in un solo colpo la soluzione duale
completa dalla riga O, le variabili artificiali dovrebbero essere mantenute nella fase 2. Con
il metodo del Big M, poiché M è stato aggiunto inizialmente al coefficiente di ogni variabile artificiale della riga O, il valore attuale di ogni variabile duale corrispondente è il coefficiente attuale di tale variabile artificiale meno M.
Per esempio, con riferimento alla riga O del tableau del simplesso finale per l'esempio
di radioterapia fornito nella parte inferiore della Tabella 4.12, dopo che M viene sottratto
dai coefficienti delle variabili artificiali .X4 e x6 , la soluzione ottima per il problema duale
y; : : ;
6.5
6.5
IL RUOLO DELLA TEORIA DELLA DUALITÀ NELL'ANALISI DELLA SENSITIVITÀ 185
corrispondente, indicato nella Tabella 6.15, è ottenuta dai coefficienti di x 3 , .X4 e X6 come
CYt. y 2 , y;) = (0.5, - l. l , 0). Come di consueto, le variabili surplus per i due vincoli funzionali sono ottenute dai coefficienti di x 1 e x 2 come z 1 - c 1 = O e z2 - c2 = O.
6.5
IL RUOLO DELLA TEORIA DELLA DUALITÀ NELL'ANALISI DELLA
SENSITIVITA
Come verrà descritto in dettaglio nei due paragrafi successivi, l'analisi della sensitività
consiste principalmente nello studio degli effetti sulla soluzione ottima in seguito alla modifica dei valori dei parametri aiJ, b, e c1 del modello. La modifica dei valori dei parametri
nel problema primale implica anche la modifica dei conispondenti valori nel problema
duale. Di conseguenza, si ha la possibilità di scegliere quale problema usare per lo studio
di ogni singolo cambiamento. Grazie alle relazioni primale-duale presentate nei Paragrafi
6.1 e 6.3 (in particolare la proprietà di complementarità delle soluzioni di base), è facile
muoversi tra i due problemi. In alcuni casi, è più conveniente analizzare direttamente il
problema duale in modo da poter determinare l'effetto complementare sul problema primale. L' analisi viene iniziata considerando due casi.
Modifiche dei coefficienti di una variabile non di base
Si supponga che nel modello originale siano cambiati i coefficienti di una variabile non di
base nella soluzione ottima originale. Qual è l'effetto di tali cambiamenti su questa soluzione? È ancora ammissibile? È ancora ottima?
Poiché la variabile coinvolta è una variabile non di base (il suo valore è zero), la modifica dei suoi coefficienti non può influenzare l'ammissibilità della soluzione. Di conseguenza, in questo caso, il quesito è se la soluzione continua a essere ottima. Come indicato nelle Tabelle 6.1 O e 6.11, un ulteriore quesito è se la soluzione di base complementare
per il problema duale continua a essere ammissibile dopo che sono stati effettuati questi
cambiamenti. Dato che tali cambiamenti influenzano il problema modificando solo un
vincolo, si può rispondere al quesito precedente controllando se questa soluzione di base
complementare soddisfa ancora questo vincolo modificato.
Questo caso verrà illustrato nel corrispondente sottoparagrafo del Paragrafo 6.7 dopo
avere sviluppato uno specifico esempio.
Introduzione di una nuova variabile
o
Come indicato nella Tabella 6.6, le variabili decisionali rappresentano tipicamente, nel
modello, i livelli delle varie attività in esame. In alcuni casi, queste attività sono state selezionate a partire da un gruppo più ampio contenente le possibili attività, e attività ritenute
meno interessanti non sono state incluse nel modello originale o sono state scoperte solo
dopo che il modello originale è stato formulato e risolto. In entrambi i casi, la questione
fondamentale è se alcune di queste attività precedentemente escluse siano sufficientemente interessanti da dover essere attivate. In altre parole, l'aggiunta di queste attività al modello cambia la soluzione ottima originale?
L'aggiunta di un 'altra attività comporta l' introduzione di una nuova variabile, con gli
opportuni coefficienti nei vincoli funzionali e nella funzione obiettivo all ' interno del modello. L' unica modifica risultante nel problema duale è relativa all'aggiunta di un nuovo
vincolo (si faccia riferimento alla Tabella 6.3).
Dopo aver effettuato gli opportuni cambiamenti, la soluzione originale ottima, con la
nuova variabile uguale a zero (non di base), continua a essere ottima per il problema primale? Come nel caso precedente, una questione equivalente è se la soluzione di base complementare per il problema duale è ancora ammissibile. Come prima, per rispondere a
questa domanda basta semplicemente verificare se questa soluzione di base complementare soddisfa un vincolo, che in questo caso è il vincolo aggiunto nel problema duale.
186
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
Per chiarire meglio il concetto, si supponga per il problema Wyndor Glass Co. del
Paragrafo 3 .l che venga inserito nella linea di produzione un possibile terzo nuovo prodotto. Assumendo che Xnew rappresenti il tasso di produzione per questo prodotto, il modello modificato risultante è:
massimizzare
Z = 3xl
+ 5xz + 4Xnew
soggetto ai vincoli
X]
+ 2xnew S 4
+ 3Xnew S 12
+ 2x2 + Xnew S 18
2xz
3xl
e
X2
2: 0
Xnew
2: O
Dopo avere introdotto le variabili slack, la soluzione ottima originale per questo problema
senza Xnew (indicata nella Tabella 4 .8) era (x 1, x 2 , x 3 , x4 , x 5 ) = (2, 6, 2, O, 0). Questa soluzione, con Xnew = O, è ancora una soluzione ottima? Per rispondere a questa domanda è
necessario esaminare la soluzione di base complementare per il problema duale. Come indicato dalla proprietà di complementarità delle soluzioni di base ottime (Paragrafo 6.3),
questa soluzione è fornita nella riga O del tableaufìnale per il problema primate usando le
posizioni riportate nella Tabella 6.4 e illustrate nella Tabella 6.5 . Di conseguenza, come
indicato sia nella riga inferiore della Tabella 6.5 che nella sesta riga della Tabella 6.9, la
soluzione è
(y 1, yz, y3,
ZJ -
c1,
zz - cz) = (O,
~ , l , O, O)
(alternativamente, questa soluzione di base complementare può essere ricavata nel modo
illustrato nel Paragrafo 6.3 per la soluzione di base complementare della penultima riga
della Tabella 6.9).
Poiché questa soluzione era ottima per il problema duale originale, essa sicuramente
soddisfa i vincoli duali originali indicati nella Tabella 6.1. Bisogna verificare se soddisfa
il nuovo vincolo duale
Utilizzando i valori ottenuti, si ottiene che
2(0) +
3(~) +(1) 2: 4
e così questa soluzione duale risulta ancora ammissibile (e quindi ancora ottima). Di conseguenza, la soluzione primale originale (2, 6, 2, O, O) insieme con Xnew = O, è ancora ottima e quindi questo possibile terzo nuovo prodotto non deve essere aggiunto alla linea di
produzione.
Questo approccio semplifica molto l'analisi della sensitività relativa ai coefficienti della nuova variabile aggiunta al problema primale. Controllando semplicemente il nuovo
vincolo duale, è possibile capire fino a che punto i valori di questi parametri possono essere modificati prima che essi influenzino l'ammissibilità della soluzione duale e di conseguenza l'ottimalità della soluzione primale.
Altre applicazioni
Sono state discusse già due altre applicazioni fondamentali della temia della dualità all'analisi della sensitività, ovvero, i prezzi ombra e il metodo del simplesso duale. Come descritto nei Paragrafi 4.7 e 6.2, la soluzione ottima duale (yf,y~, ... ,y~, ) fornisce i prezzi
6.6
6.6
L'ESSENZA DELL'ANALISI DELLA SENSITIVITÀ
187
ombra per le rispettive risorse e indicano come cambia Z se (piccoli) camb iamenti sono
apportati a bi (le quantità di risorse disponibile). L' analisi risultante sarà illustrata in dettaglio nel Paragrafo 6.7.
In tennini più generali, l'interpretazione economica del problema duale e del metodo
del simplesso presentata nel Paragrafo 6.2 fornisce alcuni concetti chiave utili per l 'analisi
della sensitività.
Quando si studia l 'effetto della modifica dei valori di bi o di au (per le variabili di base), la soluzione ottima originale può invece diventare una soluzione di base superottima
(come definito nella Tabella 6.1 0). Se si vuole procedere, quindi, alla riottimizzazione per
identificare la nuova soluzione ottima, si può applicare il metodo del simplesso duale
(discusso alla fine dei Paragrafi 6.1 e 6.3) a partire da questa soluzione di base.
Nel Paragrafo 6.1 si è accennato al fatto che, alcune volte, per identificare una soluzione ottima per il problema primale risulta più efficiente risolvere direttamente il problema
duale con il metodo del sirnplesso. Una volta che la soluzione è stata trovata in questo modo, l'analisi della sensitività per il problema primate può essere ricondotta all ' applicazione della procedura descritta nei due paragrafi successivi direttamente al problema duale
deducendo gli effetti complementari sul problema primale (si veda la Tabella 6.11).
Questo approccio all'analisi di sensitività è abbastanza semplice proprio per le relazioni
primale-duale descritte nei Paragrafi 6.1.
6.6
L'ESSENZA DELL'ANALISI DELLA SENSITIVITÀ
Solitamente, il lavoro di un team di ricerca operativa è !ungi dall 'essere completato con
l' identificazione di una soluzione ottima per il modello considerato mediante il metodo
del simplesso. Come sottolineato alla fine del Paragrafo 3.3 , un ' ipotesi della programmazione lineare è che tutti i parametri del modello (a u, bi e cj) siano costanti note. In realtà, i
valori dei parametri usati nel modello sono normalmente delle stime basate su una previsione. I dati utilizzati per ottenere queste stime sono spesso imprecise e, addirittura, talora
rappresentano sopravvalutazioni o sottovalutazioni intenzionali per salvaguardare gli interessi di coloro che effettuano le stime stesse.
Quindi, il manager di successo e lo staff di ricerca operativa manterranno un onesto
scetticismo sui i valori originali ottenuti da una prima elaborazione al calcolatore e, in
molti casi, li considereranno solo come punto di partenza per l'ulteriore analisi del problema. Una soluzione " ottima" è tale soltanto rispetto allo specifico modello che viene usato per rappresentare il problema reale e costituisce una guida sicura solo dopo che ne è
stata verificata la correttezza in altre convenienti rappresentazioni del problema. Per di
più, a volte, i parametri del modello (specialmente le quantità bJ sono fissati come conseguenza di politiche decisionali manageriali (per esempio, la quantità di risorse da mettere
a disposizione delle nuove attività) e queste decisioni possono essere riconsiderate una
volta che siano note le loro potenziali conseguenze.
Per questi motivi è importante effettuare una analisi della sensitività al fine di studiare l'effetto sulla soluzione ottima nel caso in cui i parametri assumono valori differenti .
Solitamente ci saranno alcuni parametri a cui potrà essere assegnato qualunque ragionevole valore senza che l'ottimalità di questa soluzione ne sia influenzata. Tuttavia, ci possono
anche essere parametri che a fronte di valori differenti producono una diversa soluzione
ottima. Questa situazione risulta particolarmente grave se la soluzione originale assume
un valore sostanzialmente inferiore a quello della funzione obiettivo o addirittura non risulti ammissibile!
Di conseguenza, uno dei principali obbiettivi dell'analisi di sensitività consiste nell ' identificare i parametri sensibili (cioè, quei parametri i cui valori non possono essere
cambiati senza modificare la soluzione ottima). Per certi parametri che non sono classificati come sensibili, è molto utile determinare anche !'intervallo di valori entro il quale la
soluzione ottima rimarrà inalterata (questo intervallo di valori viene chiamato intervallo
188
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
di ottimalità). In alcuni casi, il cambiamento del valore di un parametro può influenzare
l 'ammissibilità della BFS ottima. Per tali parametri è utile determinare l'intervallo dei valori per cui la BFS ottima (con i valori aggiustati per le variabili di base) rimarrà ammissibile (questo intervallo di valori è denominato intervallo di ammissibilità). Questo intervallo di valori è anche l' intervallo in cui il prezzo ombra corrente per il corrispondente
vincolo rimane valido. Nel paragrafo successivo veiTanno descritte le specifiche procedure per ottenere queste informazioni.
Le indicazioni così ottenute sono preziose per due motivi. In primo luogo, permettono
di identificare i parametri più importanti, in modo da prestare più attenzione a una loro valutazione e per selezionare una soluzione che sia accettabile per la maggior parte dei valori possibili. In secondo luogo, identifica i parametri che dovranno essere monitorati molto
attentamente non appena la soluzione ottenta venga effettivamente implementata. Se si determina che il valore effettivo di un parametro si trova fuori del suo intervallo di ammissibilità, viene immediatamente segnalata la necessità di modificare la soluzione.
Per problemi di piccole dimensioni, è utile verificare l'effetto di una serie di cambiamenti nei valori dei parametri riapplicando semplicemente il metodo del simplesso ogni
volta per verificare se la soluzione ottima cambia. Ciò è particolarmente conveniente
quando si usa un foglio elettronico che permette di ricalcolare la soluzione ottima semplicemente con un click.
Tuttavia, per i problemi di grandi dimensioni tipicamente incontrati nella pratica, se
fosse necessario riapplicare dall'inizio il metodo del simplesso per studiare ogni nuovo
cambiamento nel valore del parametro, l'analisi della sensitività richiederebbe uno sforzo
computazionale esorbitante. Fortunatamente, i concetti fondamentali discussi nel
Paragrafo 5.3 virtualmente eliminano la necessità di ulteriori calcoli. L'idea di base è che
è possibile identificare immediatamente come le modifiche apportate al modello originale
cambiano i valori del tableau finale del simplesso (assumendo che la stessa sequenza di
operazioni algebriche realizzata originalmente dal metodo del simplesso sia ripetuta). Di
conseguenza, dopo alcuni semplici calcoli per modificare questo tableau, si può facilmente controllare se la BFS originale ottima risulti ora non ottima (o sia non ammissibile). In
questo caso, questa soluzione è usata come soluzione di base iniziale per il metodo del
simplesso al fine di determinare la nuova soluzione ottima. Se i cambiamenti nel modello
non sono rilevanti, per raggiungere la nuova soluzione ottima partendo da questa soluzione di base iniziale "avanzata" sono sufficienti solo poche iterazioni.
Per descrivere in maniera formale questa procedura, si consideri la seguente situazione.
Mediante il metodo del simplesso si assuma che sia già stata otteneta una prima soluzione
ottima per un modello di programmazione lineare con specifici valori dei parametri b;, c1,
e au. Dopo che i cambiamenti sono stati effettuati, si denotino con b;, c1 e au i valori dei
vari parametri. In notazione matriciale, si ha
b -+ b
C -+ C
A-+A
per il modello modificato.
Il primo passo consiste nel modificare il tableau finale del simplesso in modo che esso
rifletta questi cambiamenti. In pa1ticolare, ciò che si desidera determinare è il tableau finale modificato che si avrebbe se venissero ripetute, a partire dal nuovo tableau iniziale,
esattamente le stesse operazioni algebriche (con gli stessi multipli delle righe aggiunti/sottratti a/da altre righe) che hanno condotto dal tableau iniziale al tab~eau finale.
Ovviamente, ciò non è la stessa cosa che 1iapplicare il metodo del simplesso poiché le modifiche nel tableau iniziale potrebbero indulTe il metodo del simplesso a cambiare alcune
delle scelte effettuate. Continuando a usare la notazione presentata nella Tabella 5.10 [(! )
t* = t + y*T e (2) T* = S*T] , il tableau finale modificato può essere calcolato a partire
da y*, S* (che non sono cambiati) e dal nuovo tableau iniziale, come indicato dalla
Tabella 6.17. Si può notare che y* eS* rappresentano i coefficienti delle variabili slack
nel tableau finale; in particolare, il vettore y* (le variabili duali) è uguale ai coefficienti
nella riga O e la matrice S* fomisce i coefficienti nelle altre righe del tableau. Quindi,
6.6
l'ESSENZA DEll'ANALISI DELLA SENSITIVITÀ
189
TABELLA 6.17 Tableau dopo i cambiamenti nel modello originale
Coefficiente di:
Eq.
Nuovo tableau
iniziale
Tableau finale
modificato
Termini
noti
z
Variabili originarie
Variabili slack
(O)
l
-c
o
o
(l, 2, ... , m)
o
A
l
ii
(O)
l
z* - c = y*A - c
y*
l* = y*ii
S*
b* = S*b
(1, 2, ... , m)
-
-
o
-
A* = S*A
usando semplicemente y*, S* e i valori modificati del tableau iniziale, la Tabella 6.17 mostra come i valori modificati nel resto del tableaufinale possano essere calcolati immediatamente senza dovere ripetere tutti le operazioni algebrici.
Esempio (variante 1 del modello Wyndor). Per chiarire i concetti prima esposti, si
supponga che la prima versione del modello per il problema Wyndor Glass Co.
Presentato nel Paragrafo 3.1 sia quella indicata nella Tabella 6. 18.
l cambiamenti al modello originale sono c 1 = 3---> 4, a 31 = 3 ---> 2 e b2 = 12 ---> 24. La
Figura 6.2 mostra graficamente l 'effetto di queste modifiche. Per il modello originario, il
metodo del simplesso ha già identificato come vertice ottimo il punto (2 , 6) che si trova in
corrispondenza dell'intersezione delle due linee tratteggiate 2x2 = 12 e 3x 1 + 2x 2 = 18.
La modifica al modello ha determinato lo spostamento di entrambe le rette così come indicato dalle linee più scure 2x2 = 24 e 2x 1 + 2x2 = 18. Di conseguenza, il vertice precedente (2, 6) risulta ora spostato in (-3 , 12), che è un vertice non ammissibile per il modello
modificato . La procedura descritta nei paragrafi precedenti pennette di determinare algebricamente questo spostamento anche per problemi di grandi dimensioni in cui è impossibile eseguire l' analisi grafica.
I parametri del modello modificato in forma matriciale sono
c= [4, 5]
TABELLA 6.18 Il modello originale e il primo modello modificato (yariante l)
per l'analisi della sensitività sul modello Wyndor Glass Co.
Modello originale
Massimizzare
l = [3, 5]
Modello modificato
[::J
Massimizzare
l = (4, 5]
soggetto ai vinco li
soggetto ai vincoli
e
e
X 2: 0
[::J
190
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
= 0
Xj
x1 = 4
(0, 9) so luzione ottima
'\
\
\
\
\
\
\
____ _ _ __., ___ - -- ------ -- --- -- 2x = 12
2
(2, 6) \
\
\
\
\
\
\
\
•
FIGURA6.2
Spostamento del vertice
da (2, 6) in ( - 3, 12) per la
variante l del modello
Wyndor Glass Co., dove
c, = 3 ---7 4, 031 = 3 ---7 2,
e b2 = 12 ---7 24.
o
2
6
4
TABELLA 6.19 Tableau per la variante l del modello Wyndor Glass Co.
Variabile
fondamentale
l
Nuovo tableau iniziale
Tableau finale per il
modello originario
Coefficienti di:
Eq.
z
xl
x2
x3
l
- 4
l
- 5
o
o
2
2
2
o
o
x4
o
o
x4
xs
(O)
(l)
(2)
(3)
o
o
o
l
(O)
l
o
o
o
x3
(l)
o
o
o
l
Xz
(2)
o
o
l
o
2
xl
(3)
o
l
o
o
-3
l
(O)
l
- 2
o
o
x3
(l)
o
l
3
o
l
3
2
l
3
Xz
(2)
o
o
l
o
o
2
3
l
2
l
3
X3
Tableau finale modificato
xl
(3)
o
o
l
o
l
o
3
2
l
Xs
Tennini
noti
o
o
o
4
24
l
18
l
36
l
o
3
-3
2
l
o
6
l
l
3
2
l
54
l
-3
6
o
12
l
3
-2
6.6
L'ESSENZA DELL'ANALISI DELLA SENSITIVITÀ
191
Il nuovo tableau iniziale è indicato nella parte superiore della Tabella 6.19, mentre immediatamente sotto è riportato il tableau finale (mostrato anche nella Tabella 4.8). l riquadri
in neretto nel tableau finale rappresentano le parti del modello che non cambiano, vale a
dire, i coefficienti delle variabili slack sia nella riga O (y*) che nel resto delle righe (S*).
Quindi,
y*
+1],
= [0,
I coefficienti di queste variabili slack restano immutati in seguito alle operazioni algebriche originariamente eseguite dal metodo del simplesso perché i coefficienti di queste medesime vatiabili nel tableau iniziale sono immutati.
Tuttavia, poiché altre parti del tableau iniziale sono cambiate, si presentato cambiamenti anche nel resto del tableau finale. Usando le formule dalla Tabella 6.17, i valori modificati del tableau fmale vengono calcolati nel seguente modo:
z* -
c= [0, ~,
A' ~[~
b'
~ [~
l
3
l
2
l
- 3
~{~
~l
-m~
= [- 2, O]
- [4, 5]
o]~ ~ ['1
z•
~
[O, l, 1{
~] ~
54
!l
-m~J [~~l
l
3
l
2
l
- 3
Il tableau finale modificato è riportato nella parte inferiore della Tabella 6.19.
.
In realtà, questi calcoli possono essere semplificati in modo sostanziale per ottenere il
tableau finale modificato. Poiché nel modello originario nessuno dei coefficienti di x 2 è
cambiato, nessuno di questi coefficienti può cambiare nel tableau finale e così possono essere eliminati i calcoli relativi a essi. Vari altri parametri (a 1 1, a21 , b h b 3 ) non sono cambiati. È sufficiente calcolare soltanto i cambiamenti incrementa/i nel tableau finale in termini di cambiamenti incrementali nel tableau iniziale, ignorando quei termini che nel vettore o nella matrice prodotto non presentano cambiamenti nel tableau iniziale. In particolare, gli unici cambiamenti incrementali nel tableau iniziale sono D.c 1 = l, D.a 31 = 21 , e
D.b2 = 12 e, quindi, questi sono gli unici termini che devono essere considerati. Questo
approccio semplificato è riportato di seguito e in ogni punto in cui non è necessario nessun calcolo compare uno zero o un trattino.
'* '- c)~
""'
~
y* M -
y* "b
~
"c ~ [0, j, l{ _~
[0, j, l {
l
l~
18
] - [1, -]
~ [-2, - l
192
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
AAhS' AA~ [~
W
~
S' db
~~
[
-m-~ l~ u
l
-1Hl ~ul
Sommando questi incrementi alle quantità originali nel tableau finale (parte centrale della
Tabella 6.19) si ottiene quindi il tableau finale modificato (parte inferiore della Tabella
6.19).
Questa analisi incrementa/e fornisce anche un'altra utile indicazione generale: i cambiamenti nel tableau finale sono proporzionali ai cambiamento nel tableau iniziale. Nel
paragrafo successivo verrà illustrato come questa proprietà permetta di usare interpolazione o estrapolazione lineare per determinare l ' intervallo di valori per un dato parametro entro cui la soluzione di base continua a essere ammissibile e ottima.
Dopo avere ottenuto il tableau finale modificato, esso deve essere convertito nella forma propria (qualora necessario). In particolare, affinchè il tableau sia nella forma necessaria per poter identificare e valutare la soluzione di base corrente, la variabile di base deve
avere coefficiente uguale a l nella riga i e coefficiente uguale a O in ogni altra riga
(compresa la riga 0). Di conseguenza, se le modifiche hanno violato questo requisito (ciò
può accadere solo se i coefficienti del vincolo originale di una variabile di base sono stati
cambiati), per ristabilire questa forma devono essere apportati ulteriori cambiamenti.
Questo è effettuato usando il metodo di eliminazione gaussiana, cioè, applicando il passo
3 di una singola iterazione del metodo del simplesso (si faccia riferimento al Capitolo 4)
operando come se una variabile di base che viola il requisito fosse una variabile entrante.
Si può notare che queste operazioni algebriche possono causare anche ulteriori cambiamenti nella colonna dei temini noti e così la soluzione di base corrente può essere letta da
questa colonna soltanto quando la forma propria del tableau è stata completamente ristabilita mediante eliminazione gaussiana.
TABELLA 6.20 Conversione del tableau finale nella forma propria per la variante l
del modello Wyndor Glass Co.
Variabili
di base
z
Tableau finale
modificato
Convertito nella
forma opportuna
Coefficiente di:
Eq.
(O)
z
x,
Xz
l
-2
o
l
x3
(l)
o
xl
(2)
o
3
o
x,
(3)
o
z
(O)
x3
x3
o
x4
Xs
3
2
l
l
o
l
l
o
3
o
o
l
o
o
o
(l)
o
o
o
l
2
x2
(2)
o
o
l
o
x,
(3)
o
l
o
o
l
2
l
2
2
Termini
noti
3
l
2
l
3
l
2
l
l
-3
54
6
o
12
l
3
-2
2
48
l
-2
o
l
2
7
12
-3
6.6
l'ESSENZA DEll'ANAliSI DEllA SENSITIVITÀ
193
Per esempio, a causa della colonna corrispondente alla variabile di base x" il tableau finale modificato indicato nella metà superiore della Tabella 6.20 non è nella forma propria.
In particolare, il coefficiente di x 1 nella relativa riga (riga 3) è+ anziché l mentre nelle riPer ristabilire la forma adeguata, è necessario moltighe Oe l è diverso da zero (- 2 e
plicare la riga 3 per
quindi questa nuova riga 3 moltiplicata per 2 è aggiunta alla riga O,
mentre la nuova riga 3 moltiplicata per + è sottratta alla riga 1. In questo modo si ottiene
la forma indicata nella metà inferiore della Tabella 6.20, che adesso può essere usata per
identificare i nuovi valori per la soluzione di base corrente (precedentemente ottima):
f,
f).
Poiché x 1 è negativo, questa soluzione di base non è più ammissibile. Tuttavia, essa è una
soluzione superottima (come definito nella Tabella 6.1 O) e, quindi, duale ammissibile,
perché tutti i coefficienti nella riga O sono ancora nonnegativi. Di conseguenza, per la
riottimizzazione può essere usato il metodo del simplesso duale (se desiderato) a partire
da questa soluzione di base. Come già accennato, il metodo del simplesso duale agisce sul
problema duale proprio come se il metodo del simplesso fosse applicato al problema duale. Con riferimento alla Figura 6.2 (ignorando le variabili slack), il metodo del simplesso
duale richiede una singola iterazione per muoversi dal vertice ( -3, 12) al vertice ottimo
(0, 9) (è spesso utile nell'analisi della sensitività identificare le soluzioni che sono ottime
per un certo insieme di possibili valori dei parametri del modello e quindi determinare
quali di queste soluzioni sono più indicate per i possibili valori).
Se la soluzione di base (- 3, 12, 7, O, O) non fosse stata nè primate ammissibile nè duale anunissibile (per esempio, se il tableau avesse elementi negativi sia nella colonna dei
termini noti che nella riga 0), per convertire il tableau nella forma idonea per il simplesso
è possibile introdurre variabili artificiali.4
Procedura generale. Per verificare quanto la soluzione ottima originale sia sensibile ai
vari parametri del modello, l'approccio generale consiste nel controllare ogni parametro
(o almeno c1 e b;) singolarmente. Oltre che l'individuazione degli intervalli di ammissibilità come descritto nel paragrafo seguente, questo controllo comprende la modifica del valore di un parametro con un altro nell'intervallo dei valori possibili (estremi dell 'intervallo compresi). Inoltre, possono essere studiate alcune combinazioni di cambiamenti simultanei dei valori di più parametro (come la modifica di un intero vincolo funzionale). Ogni
volta che uno (o più) dei parametri viene modificato deve essere applicata la procedura
che viene riassunta qui di seguito.
Sommario della procedura per l 'analisi della sensitività
l. Revisione del modello: applicare il cambiamento o i cambiamenti voluti nel modello in
esame.
2. Revisione del tableau finale: usare le formule nella parte inferiore della Tabella 6.17
per determinare i cambiamenti risultanti nel tableau finale (per un 'illustrazione si faccia riferimento alla Tabella 6.19).
3. Conversione alla forma propria: convertire questo tableau nella forma adeguata per
l' identificazione e la valutazione della soluzione di base corrente applicando (se richiesto) il metodo di eliminazione gaussiana (per un'illustrazione si faccia riferimento alla
Tabella 6.20).
4. Test di ammissibilità: verificare l'ammissibilità di questa soluzione controllando se tutti i valori delle variabili di base nella colonna dei termini noti del tableau sono ancora
nonnegativi.
5. Test di ottimalità: verificare l'ottimalità di questa soluzione (se ammissibile) contro!-
4
Esiste anche un algorittno prima le-duale che può essere applicato a un simile tableau senza nessuna modifica.
194
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
lando se tutti i coefficienti delle variabili non di base nella riga O del tableau sono ancora nonnegativi.
6. Riottimizzazione: se la nuova soluzione non soddisfa uno dei due test precedenti, la
nuova soluzione ottima può essere ottenuta (se desiderato) usando il tableau corrente
come tableau iniziale (e facendo tutte le conversioni necessarie) applicando il metodo
del simplesso o il metodo del simplesso duale .
Nella paragrafo seguente, verrà discussa e illustrata l' applicazione della procedura algebrica prima descritta a ciascuna delle principali categorie di modifiche nel modello originale.
Verrà inoltre usata l'analisi grafica per chiarire le varie operazioni algebriche. Questa discussione riguarderà, in parte, l'estensione dell'esempio introdotto in questo paragrafo per
lo studio dei cambiamenti nel modello di Wyndor Glass Co. Di fatto, si inizierà controllando singolarmente ciascuno dei cambiamenti.
6.7
APPLICAZIONE DELL'ANALISI DELLA SENSITIVITÀ
L'analisi della sensitività inizia in genere con lo studio dei cambiamenti dei valori di bi,
ovvero, la quantità di risorsa i (i = l , 2 . . . , m) disponibile per le attività in esame. Il motivo è che, generalmente, questi valori possono essere stabiliti e regolati con una maggiore
flessibilità rispetto agli altri parametri del modello. Come già discusso nei Paragrafi 4.7 e
6.2, l ' interpretazione economica delle variabili duali (le Yi) come prezzi ombra è estremamente utile per decidere quali cambiamenti devono essere considerati.
Caso 1 - Cambiamenti in b;
Si supponga che gli unici cambiamenti nel modello consistano nel fatto che uno o più dei
parametri bi (i= l, 2, ... , m) sono variati. In questo caso, gli unici cambiamenti risultanti nel tableau finale si trovano nella colonna dei termini noti. Di conseguenza, il tableau
continuerà a essere nella forma propria e tutti i coefficienti delle variabili non di base nella riga O saranno nonnegativi. Quindi, i passi di conversione alla forma propria e test di
ottimalità della procedura generale possono essere saltati. Dopo la modifica della colonna
dei termini noti del tableau, l'unico quesito è se, in questa colonna, tutti i valori delle variabili di base continueranno a essere nonnegativi (test di ammissibilità).
Come mostrato nella Tabella 6.17, quando si passa da b ab, le formule per calcolare la
nuova colonna dei termini noti nel tableau finale sono
parte destra della riga finale 0:
parte destra delle righe finali l , 2, ... , m:
= y*b
b* = S*b
Z*
(si faccia riferimento alla parte inferiore della Tabella 6.17 per la posizione del vettore y*
e della matrice S* non modificati nel tableau finale).
La prima equazione ha una naturale interpretazione economica che è legata all'interpretazione economica delle variabili duali presentata all'inizio del Paragrafo 6.2. Il vettore y*
fornisce i valori ottimi delle variabili duali e questi valori sono interpretati come prezzi
ombra per le rispettive risorse . In particolare, quando Z* rappresenta il profitto ottenuto
usando la soluzione ptimale ottima x* e ogni bi rappresenta la quantità della risorsa i disponibile, allora Yi* indica di quanto il profitto può essere aumentato per incrementi UQ.itari di bi.
Esempio (variante 2 del modello Wyndor). Per il problema Wyndor Glass Co. del
Paragrafo 3.1 , l'analisi della sensitività inizia esaminando i valori ottimi delle variabili
y 3 * = !). Questi prezzi ombra forniscono il valore marginale
duali Yi (y 1* = O, y 2 * =
di ogni risorsa i (la capacità produttiva disponibile nello stabilimento i) per le attività (i
due nuovi prodotti) in esame. Il valore marginale è espresso nella stessa unità di misura di
f,
FIGURA
Reg ione arr
variante 2 d
Wyndor Glé
b2= 12 ->
6.7
APPLICAZIONE DEll'ANALISI DEllA SENSITIVITÀ
195
Z (migliaia di dollari di profitto per settimana). Come discusso nel Paragrafo 4.7 (si faccia
riferimento alla Figura 4.8), il profitto totale ottenuto da queste attività può essere aumentato di 1500 dollari per settimana (yz* moltiplicato 1000 dollari per settimana) per ogni
unità aggiuntiva della risorsa 2 che è resa disponibile (ora di produzione per settimana nello stabilimento 2). Questo incremento del profitto è valido per cambiamenti relativamente
piccoli che non influenzano l'ammissibilità della soluzione di base corrente (in modo da
non influenzare i valori y ;*). Di conseguenza, attraverso lo studio della redditività marginale che può essere ottenuta con altri usi di questa risorsa, si può determinare se esistono
usi di tale risorsa con un profitto inferiore ai 1500 dollari alla settimana. Uno dei prodotti
precedenti risulta essere meno vantaggioso. Il tasso di produzione di questo prodotto è già
stato ridotto alla quantità minima che permette di coprire le relative spese di vendita.
Tuttavia, interrompendo del tutto la sua produzione verrebbero messi a disposizione di
nuovi prodotti ulteriori 12 unità della risorsa 2. Quindi, il passo successivo consiste nel
determinare il profitto che potrebbe essere ottenuto dai nuovi prodotti nel caso in cui questi cambiamenti venissero applicati. Nel modello di programmazione lineare questa scelta
determina il passaggio di hz da 12 a 24. La Figura 6.3 mostra graficamente l'effetto di
questo cambiamento, compreso lo spostamento del vertice finale da (2 , 6) a ( - 2, 12) (si
può notare che questa figura differisce dalla Figura 6.2 che descrive la Variante l del modello Wyndor, perché in questo caso il vincolo 3x 1 + 2xz ~ 18 non è stato modificato).
Quindi, in seguito alla variante 2 del modello Wyndor, l' unica modifica nel modello
originale è il seguente cambiamento nel vettore dei valori di h;:
dove solo hz ha un nuovo valore.
FIGURA6.3
egione ammissibile per la
rariante 2 del modello
Vyndor Glass Co. in cui
~ = 12 ---+ 24.
196
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
Analisi della variante 2. L'effetto di questo cambiamento di b2 sul tableau finale originale (parte centrale della Tabella 6.19) è che i termini noti assumono i seguenti valori:
l
b* -- S*-b-
3
[o'
l
2
o
l
- 3
-~]~ [~:4] = [~~6]
3
[
e quindi ;~
x
6]
= ~~
]
[
In modo del tutto equivalente, poiché l'unico cambiamento nel modello originale è
/:::,.b 2 = 24 - 12 = 12, può essere usata l'analisi incrementale per calcolare più velocemente questi stessi valori. L'analisi incrementale consiste nel calcolare gli incrementi che
si verificano a seguito del cambiamento (o dei cambiamenti) nei valori del tableau del modello originale e, una volta calcolati, nell 'aggiungere questi incrementi ai valori originali.
In questo caso, gli incrementi di Z* e b* sono
/:lZ* = y*/:lb = y*
~b'
=S'
~b
Llb,l
[~~:
=S'
[~f:l
= y*
[ l~o]
=S' [
~~]
Di conseguenza, usando la seconda componente del vettore y* e la seconda colonna della
matrice S*, gli unici calcoli necessari sono
+ 18
!:lZ*
=
1.(12) = 18
e quindi Z * = 36
Mt
=
_!_(12) = 4
3
e quindi
!:lb'{
= +(12) = 6
e quindi b'{
M j'
= _ _!_(12) = -4
e quindi bj = 2 - 4 = -2
2
3
bi =
2
+4
=
=6 + 6=
=
54
6
12
dove i valori originali di queste quantità sono ottenuti dalla colonna dei termini noti del tableau finale originale (parte centrale della Tabella 6.19). Il tableau finale che ne risulta è
identico al tableau finale originale tranne che la colonna dei termini noti è sostituita con
questi nuovi valori.
Di conseguenza, la soluzione di base corrente (precedentemente ottima) diventa
(x,, x2, x3, x4, xs) = (-2, 12, 6, O, O)
che non soddisfa il test di ammissibilità per la presenza di un valore negativo. Per determinare la nuova soluzione ottima può essere applicato il metodo del simplesso duale partendo da questo tableau modificato. Questo metodo permette di ottenere con una sola iterazione il nuovo tableau finale indicato nella Tabella 6.21 (alternativamente, il metodo del
simplesso potrebbe essere applicato e il tableau finale, in questo caso, è ottenuto anche in
appena una sola iterazione). Questo tableau indica che la nuova soluzione ottima è
(x,, x2 , X3 , X4, xs ) = (0, 9, 4, 6, O)
6.7
197
APPLICAZIONE DELL'ANALISI DELLA SENSITIVITÀ
TABELLA 6.21 Dati per la variante 2 del modello Wyndor Glass Co.
Tableau finale dopo la fase di riottimizzazione
Variabili
di base
Parametri del modello
=o
(n = 2)
bl = 4
2
b2 = 24
= 2
b3 = 18
= 5
c1 = 3
a 11 = l
0 12
021
=o
022 =
0 31
= 3
a 32
(2
Coefficiente di:
Eq.
z
xl
x2
X]
x4
9
2
o
o
o
l
o
o
o
o
o
z
(O)
l
x3
(l)
x2
(2)
x4
(3)
o
o
o
l
3
2
-3
l
o
l
Termini
noti
Xs
5
2
o
l
45
4
2
9
- l
6
con Z = 45, consentendo perciò una crescita del profitto, ottenuto con i nuovi prodotti, di
9 unità (9000 dollari alla settimana) rispetto al precedente valore Z = 36. Il fatto che
x4 = 6 indica che 6 delle 12 unità aggiuntive della risorsa 2 non sono utilizzate da questa
so luzione.
Sulla base dei risultati ottenuti con b2 = 24, la produzione del vecchio prodotto non
redditizio verrà interrotta e le 6 unità inutilizzate della risorsa 2 saranno risparmiate per un
qualche uso futuro. Dato che yj è ancora positivo, è opportuno studiare la possibilità di
cambiare la destinazione della risorsa 3 mantenendo però la ripartizione corrente. I valori
dei parametri e la soluzione ottima del modello di programmazione lineare corrente
(variante 2) sono quelli indicati nella Tabella 6.21. Questo modello verrà usato come punto di partenza per lo studio degli altri tipi di cambiamenti nel modello illustrati successivamente in questo paragrafo.
Intervallo di ammissibilità per i termini noti. È stato appena verificato che la variazione é::.b 2 = 12 risulta troppo grande e la soluzione in cui x 1, x2 e x3 sono le variabili
di base non è più ammissibile (parte centrale della Tabella 6. 19). L'analisi effettuata mostra immediatamente quanto grande può essere questa variazione. In particolare, si può
notare che
b~ = 2 + ~
b; = 6 +
é::.bz
~ f::.bz
b; = 2 ++ é::.bz
Queste tre quantità sono rispettivamente i valori di x 3 , x 2 e x 1, per questa soluzione di base. La so luzione continua a essere ammissibile e, quindi ottima, a condizione che tutte e
tre le quantità rimangano nonnegative.
l
l
2 + -3 é::.bz -> O => -f::.bz
3
-> - 2 => f::.bz ->
-6
l
l
6 +-é::.bz
2
-> O => -f::.bz
2
-> - 6 => f::.bz >
- - 12
2-
:l
n
l
l
3 f::.bz 2: O => 2 2: 3 é::.bz
Di conseguenza, dato che b2
=> é::.bz .:::; -6
= 12 + t::.b 2 , la soluzione rimane ammissibile solo se
e cioè
6.:::; bz.:::; 18
Questo può essere verificato graficamente nella Figura 6.3. Questo intervallo di valori per
b2 è noto come intervallo di ammissibilità.
198
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
Per un qualsiasi bù il relativo intervallo di ammissibilità è l 'intervallo di valori per
cui la BFS ottima corrente5 (con i valori opportunamente modificati per le variabili
di base) rimane ammissibile. Quindi, il prezzo ombra per b; continua a essere valido nel determinare l'effetto dei cambiamenti di b; su Z a condizione che i valori b; rimangano all'interno di questo intervallo (si suppone che quello di b; sia l'unico
cambiamento apportato al modello). I valori opportunamente modificati per le variabili di base sono ottenuti dalla fonnula b* = S*b. Il calcolo dell 'intervallo di ammissibilità consiste quindi nell ' individuazione della gamma di valori di b; tali che
b* :::: O.
Molti pacchetti software per la programmazione lineare usano questa stessa tecnica per
generare in modo automatico l' intervallo di ammissibilità per ciascun b; (una tecnica simile, discussa per i casi 2a e 3, è usata inoltre per generare un intervallo di ottimalità per
ogni c1 ). Nel Capitolo 4 è stato mostrato nella Figura 4.10 l'output prodotto dal
Risolutore di Excel. La Tabella 6.22 riassume tale output in relazione a b; per il modello
Wyndor Glass Co. L 'aumento ammissibile e il decremento ammissibile per b 2 sono entrambi uguali a 6, cioè, - 6 ::::; 6.b2 ::::; 6.
Cambiamenti simultanei di più termini noti. Quando più valori di b; vengono
cambiati simultaneamente, la formula b* = S*b può essere ancora usata per analizzare
come cambiano i termini noti nel tableau finale. Se tutti questi termini noti continuano a
essere nonnegativi, il test di ammissibilità indicherà che la soluzione modificata fornita da
questo tableau continua a essere arrunissibile. Poiché la riga O non è cambiata, il fatto di
essere ammissibile implica che questa soluzione è anche ottima.
Anche se questo approccio funziona molto bene per il controllo dell 'effetto di uno specifico insieme di cambiamenti su b;, esso non permette di capire fino a quando i valori di
b; possono essere cambiati simultaneamente rispetto ai valori originali prima che la soluzione modificata non sia più ammissibile. Nell'analisi postottimale, si è spesso interessati
a studiare l 'effetto di vari cambiamenti nelle politiche decisionali (per esempio, le quantità delle risorse che sono messe a disposizione delle attività in esame) con·ispondente a differenti termini noti. Piuttosto che considerare un insieme di cambiamenti ben specifici, si
può voler esplorare cambiamenti in cui alcuni termini noti aumentano mentre altri diminuiscono. I prezzi ombra sono strumenti di valore inestimabile per questo genere di verifica. Tuttavia, essi costituiscono un valido strumento per la valutazione dell'effetto di tali
cambiamenti su Z solo se i cambiamenti si mantengono entro specifici intervalli. Per ogni
b;, l 'intervallo di ammissibilità fornisce questo intervallo se nessuno degli altri b; cambia
contemporaneamente. Cosa succede a questi intervalli di ammissibilità quando più valori
di b; cambiano simultaneamente?
Una risposta parziale a questo quesito è fornita dalla seguente regola del l 00 percento.
che mette assieme i cambiamenti ammissibili (incremento o decremento) per i singoli b;
fomiti dalle ultime due colonne di una tabella come la Tabella 6.22.
TABELLA 6.22 Tipico output di un software per l'analisi della sensitività sui termin i
noti per il modello originale Wyndor Glass Co.
Vincolo
Prezzo ombra
RHS attuale
Incremento
ammissibile
Decremento
ammissibile
00
2
Stabilimento l
o
Stabilimento 2
1.5
12
6
6
Stabilimento 3
l
18
6
6
4
5
Quando c'è più di una BFS ottima per il modello corrente (prima delle modifiche su bj), si riferi sce sempre
quella ottenuta con il metodo del simplesso.
6.7
APPLICAZIONE DELL'ANALISI DELLA SENSITIVITÀ
199
La regola del 100 percento per cambiamenti simultanei di più termini noti: i
prezzi ombra rimangono validi per Ja predizione dell'effetto di una modifica simultanea dei tennini noti dei vincoli funzionali se i cambiamenti non sono troppo grandi. Per controllare se i cambiamenti sono sufficientemente piccoli, occorre calcolare
per ogni cambiamento la percentuale del cambiamento (incremento o decremento)
rispetto all'intervallo di ammissibilità. Se la somma delle percentuali dei cambiamenti non supera il l 00 percento, i prezzi ombra continueranno a essere validi (se la
somma supera il100 percento, quindi, tale certezza viene a mancare).
Esempio (variante 3 del modello Wyndor). Per illustrare questa regola, si consideri la variante 3 del modello Wyndor Glass Co., in cui il modello originale è modificato
cambiando il vettore dei te1mini noti come segue:
In questo caso i calcoli per la regola del 100 percento sono
b2: 12
-->
15.
Percentuale di incremento permesso = 100 (
b3 : 18
-->
15.
Percentuale di decremento permesso = l 00 (
15
~ 12 )
50%
18-15)
= 50%
6
Somma= 100%
Poiché la somma non supera il l 00 percento, i prezzi ombra sono validi nella previsione
dell'effetto di questi cambiamenti su Z. In particolare, poiché i prezzi ombra di b2 e b 3 sono rispettivamente 1.5 e l , la modifica risultante in Z è
D.Z = 1.5 (3) + 1(- 3) = 1.5
e Z* aumenta passando da 36 a 37.5.
La Figura 6.4 mostra la regione ammissibile per questo modello modificato (le linee
tratteggiate mostrano le posizioni originali delle frontiere della regione ammissibile). La
soluzione ottima è ora il vertice (0, 7.5), per il quale
Z = 3x 1 + 5x2 =O+ 5(7.5) = 37 .5
come correttamente previsto dai prezzi ombra. Tuttavia, se b2 fosse aumentato ulteriormente rispetto a 15 o b 3 fosse diminuita ulteriormente rispetto a 15 , in modo che la somma delle percentuali dei cambiamenti eccede il l 00 percento, si avrebbe lo scivolamento
del precedente vertice ottimo alla sinistra dell 'asse x 2 (x 1 < O) con la conseguenza che questa soluzione non ammissibile non sarebbe più ottima. Di conseguenza, i vecchi prezzi
ombra non sarebbero più validi per la previsione del nuovo valore di Z*.
Caso 2a- Cambiamenti nei coefficienti di una variabile non di base
Si consideri una particolare variabile x1 (con j fissato) che sia una variabile non di base
nella soluzione ottima nel tableau finale. Nel caso 2a, l'unica modifica apportata al modello corrente consiste nel cambiamento di uno o più coefficienti di questa variabile c1, av,
a21, .. . , alli}· Quindi, assumendo che c1 e Ziu denotino i nuovi valori di questi parametri,
sia A1 (colonnaj della matrice A) vettore con componenti Ziu, e
per il modello modificato.
200
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
8
sol uzione ottima
~~~~
,---------------+-------2x2=
15
\
\
\
\
6
\
----'1;------\
\
\
\
4
XJ =
\
\
\
\
4
\
\
\
Regione
ammissibile
\
\
\
\
\
2
• FIGURA6.4
Regione ammissibile per la
variante 3 del modello
Wyndor Glass Co. in cui
b2 = 12 -> 15 e
b3 = 18-> 15.
\
\
\
\
3x 1 +'~2 = 15
\
\
o
2
4
6
8
Come descritto all'inizio del Paragrafo 6.5, la teoria della dualità pennette di controllare
questi cambiamenti in modo molto conveniente. In particolare, se la soluzione di base
complementare y* nel problema duale continua a soddisfare il solo vincolo duale che è
stato cambiato, allora la soluzione ottima originale nel problema primale rimane ottima.
Al contrario, se y* viola questo vincolo duale, allora questa soluzione primale non è più
ottima.
Se la soluzione ottima è cambiata e si vuole determinare quella nuova, ciò può essere
fatto in modo molto semplice. Basta, infatti, applicare semplicemente le formule della
Tabella 6.17 ottenendo:
coefficiente di x1 nella riga finale 0:
z; - Cj =
coefficiente di x1 nelle righe finali da l a m:
Aj
y* Aj - Cj
= S*A1
Se la soluzione di base non è più ottima, il nuovo valore di zj - c1 sarà l'unico coefficiente negativo della riga O, e si può applicare il metodo del simplesso con x1 come variabile
entrante.
Occorre notare che questa procedura è una versione semplificata della procedura generale riassunta alla fine del Paragrafo 6.6. I passi 3 e 4 (conversione alla forma propria e
test di ammissibilità) sono stati cancellati perché irrilevanti, dato che l' unica colonna che
è cambiata nel tableau finale (prima della riottimizzazione) è quella relativa alla variabile
non di base x1. Il passo 5 (test di ottimalità) è stato sostituito da un test di ottimalità più
veloce che deve essere effettuato proprio dopo il passo l (modifica del modello). Solo se
questo test rivela che la soluzione ottima è cambiata e si desidera trovare la nuova soluzione, i passi 2 e 6 (modifica del tableau finale e riottimizzazione) sono necessari.
FIGURA6.
egione amm
raria nte 4 del
Vyndor Glass
'Ciriazione 2 (F
stata modifica
:1J1 = 3 -> 2 e
6.7
APPLICAZIONE DELL'ANALISI DELLA SENSITIVITÀ
201
Esempio (variante 4 del modello Wyndor). Poiché per la variante 2 del modello
Wyndor Glass Co, x 1 è non di base nella soluzione ottima corrente (si faccia riferimento
alla Tabella 6.21), il passo successivo nell ' analisi della sensitività consiste nel verificare
se cambiamenti delle stime dei coefficienti di x 1 suggeriscano l'opportunità di introdurre
il prodotto l. L ' insieme dei cambiamenti realisticamente possibili che renderebbero il prodotto l più appetibile, consistono nel porre c 1 = 4 e a 3 1 = 2. Piuttosto che esaminare ciascuno di questi cambiamenti in maniera indipendente (come è fatto spesso nell'analisi della sensitività), essi verranno qui considerati assieme. Quindi, i cambiamenti sono
c, = 3
----7
c, = 4
Questi due cambiamenti nella variante 2 costituiscono la variante 4 del modello Wyndor.
Questa variante 4 è equivalente alla Variante l considerata nel Paragrafo 6.6 e rappresentata nella Figura 6.2. Tuttavia, la differenza fondamentale dal trattamento della variante l
nel Paragrafo 6.6 consiste nel fatto che l' analisi della variante 4 tratta la variante 2 come
se questa fosse il modello originale, in modo tale che il punto di parte~a sia if tableau finalemdicato nella Tabella 6.Tr in cui ~è una variabile non aroase.
- -i lc ambiamento in a 3 1 determina il cambiamento della regione ammissibile da quella
mostrata nella Figura 6.3 a quella riportata nella Figura 6.5. Il cambiamento in c 1 modifica la funzione obiettivo da Z = 3x 1 + 5x2 a Z = 4x 1 + 5x2 a Z = 4x 1 + 5x2 • La Figura
6.5 indica che la retta della funzione obiettivo ottima Z = 45 = 4x 1 + 5x2 attraversa la soluzione ottima corrente (0, 9) e così, questa soluzione rimane ottima dopo i cambiamenti
ma 3 1 ec 1•
FIGURA6.5
-;..::gione ammissibile per la
riante 4 del modello
yn dor Glass Co . in cui la
3riazione 2 (Figura 6.3) è
,....,ta modificata così
~- = 3 - t 2 e c1 = 3 - t 4.
12
1--------+----- 2x 2 = 24
x,= 4
10
(0, 9) soluzione
ottima
8
6
4
Regione
ammissibile
2
o
2
4
6
8
202
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
Nel! 'usare la teoria della dualità per ottenere questa stessa conclusione, occorre osservare
che i cambiamenti in c 1 e a 31 conducono a un singolo vincolo modificato per il problema
duale, il vincolo a 11 y 1 + a2 1y 2 + a3 1y3 2: c 1• Sia questo vincolo modificato che il relativo
y* (coefficienti delle variabili slack nella riga O della Tabella 6.21) sono indicati sotto.
ii'= o
Y1
+ 3y3
y~
* - 25
Y3-
=o
2: 3 ~ Y1 + 2y3 2: 4
o+
2(%) 2:4
Dato che y* soddisfa ancora il vincolo modificato, la soluzione primale corrente (Tabella
6.21) è ancora ottima.
Poiché questa soluzione è ancora ottima, non c'è necessità di modificare la colonna x1
nel tableau finale (passo 2). Tuttavia, a scopo illustrativo vengono ricalcolate queste quantità.
Al~ S'A,~ [i
o
o
J[~] ~ [J
Il fatto che zj - c1 2: O conferma ancora l'ottimalità della soluzione con·ente. Dato che
per il problema duale zj - c 1 è la variabile surplus per il vincolo modificato, questo modo
di verificare l'ottimalità è equivalente a quello usato precedentemente.
Poiché cambiamenti maggiori delle stime dei coefficienti di x 1 non sono realistici, si può
concludere che nel modello corrente questi coefficienti sono parametri non sensibili. D:
conseguenza, per il resto dell'analisi di sensitività, essi non saranno soggetti ad alcuna modifica rispetto alle loro migliori valutazioni indicate nella Tabella 6.21 c 1 = 3 e a3 1 = 3.
L'intervallo di ottimalità. È stato appena descritto e illustrato come analizzare i cambiamenti simultanei nei coefficienti di una variabile non di base x1. È pratica corrente, nell'analisi di sensitività, focalizzare l'attenzione sull'effetto ottenuto cambiando soltanto un
parametro, la quantità c1. Questo comporta una semplificazione dell 'approccio per determinare l'intervallo di ottimalità per c1.
L'intervallo di ottimalità per c1 è quell'intervallo per cui la soluzione ottima corrente (ottenuta mediante il metodo del simplesso, prima che c1 sia cambiato) rimane
ottima (in questo caso si è supposto che quello di c1 sia l 'unico cambiamento nel
modello corrente). Quando x1 è una variabile non di base per questa soluzione, la soluzione rimane ottima se zj - c1 2: O, dove zj = y* A; è una costante che non dipende da c1. Di conseguenza, l' intervallo di ottimalità per c1 può essere calcolato mediante la fonnua c1 :S y* A 1 .
Per esempio, si consideri il modello attuale (variante 2) per il problema Wyndor Gla :
Co. riassunto nella parte sinistra della Tabella 6.21, in cui la soluzione ottima corrente
(con c 1 = 3) è indicata nella parte destra. Quando si considerano solo le variabili decisionali, x 1 e x 2 , questa soluzione ottima è (x 1, x 2 ) = (0, 9), come visualizzato nella Figura
6.3. Se c 1 viene cambiato, questa soluzione rimane ottima se
c,
$ y· A,
~[O. o. -l-1m ~ ,_5
e così c 1 :S 7.5 è l'intervallo di ottimalità.
6.7
203
APPLICAZIONE DELL'ANALISI DELLA SENSITIVITÀ
=t
=
Un'alternativa consiste nell'osservare che, nella Tabella 6.21, z~ - c 1
(il coefficiente
di x 1 nella riga O) e quando c 1 3, z~
3
7.5 . Dato che z7
y* A,, ciò permette
di ottenere immediatamente lo stesso l'intervallo.
La Figura 6.3 mostra graficamente la ragione per cui c 1 :::; 7.5 è esattamente l'intervallo di ottimalità. In corrispondenza di c 1 = 7.5, la funzione obiettivo diventa Z = 7.5x 1 +
5x2 = 2.5(3x 1 + 2x2 ) , e di conseguenza coinciderà con la retta 3x 1 + 2x 2 = 18 che definisce la frontiera. Quindi, in corrispondenza di questo estremo dell'intervallo ammissibile,
si hanno soluzioni ottime multiple costituite dal segmento congiungente (0, 9) e (4, 3). Se
c 1 dovesse essere aumentata ulteriormente (c 1 > 7.5), solo (4, 3) sarebbe una soluzione ottima. Di conseguenza, affinché (0, 9) rimanga ottima è necessario che c 1 :::; 7.5.
Per una qualunque variabile decisionale non di base xi, poiché il valore zj - c1 rappresenta l'importo minimo cui il costo unitario dell 'attività j dovrebbe essere ridotto
per rendere proficua l'attività j intrapresa (incrementare xi da zero), tale valore viene
spesso indicato come costo ridotto per xi. Interpretando ci come il profitto unitario dell'attività} (così che riducendo il costo unitario, ci aumenta della stessa quantità), il valore zj - c1 rappresenta il massimo aumento possibile in ci per mantenere la BFS corrente ottima.
Normalmente, l' informazione per l' analisi delle sensitività generata dai pacchetti software di programmazione lineare include, per ogni coefficiente della funzione obiettivo,
sia il costo ridotto che l'intervallo di ottimalità (insieme alle informazioni riportate nella
Tabella 6.22). Per Ex ce! questo è illustrato nella Figura 4 .1O. La Tabella 6.23 visualizza
questa informazione in una forma tipica per il modello attuale (variante 2 del modello
Wyndor Glass Co). Le ultime tre colonne sono usate per calcolare, per ogni coefficiente,
l'intervallo di ottimalità. Tali intervalli di ammissibilità sono
=
= +t=
c, :::; 3 + 4.5
C2
=
7.5
2 5-3= 2
Come discusso nel Paragrafo 4.7, se qualcuno degli incrementi o dei decrementi permessi
fosse zero, si è in presenza di soluzioni ottime multiple. In questo caso, modificare il corrispondente coefficiente oltre il valore zero anche di una quantità molto piccola e risolvere
il problema porta a ottenere un altro vertice ottimo.
Finora, è stato descritto come calcolare le informazioni della Tabella 6.23 per le variabili non di base. Per una variabile di base come x 2 , il costo ridotto è automaticamente O.
Nel seguito verrà discusso come ottenere l'intervallo di ottimalità per ci quando xi è una
variabile di base.
Cambiamenti simultanei di più coefficienti della funzione obiettivo. Sia nel
caso che xi sia una variabile di base o sia una variabile non di base, l'intervallo di ottimalità per ci è valido solo se questo coefficiente della funzione obiettivo è l'unico a essere
cambiato. Tuttavia, quando i cambiamenti vengono fatti simultaneamente su più coefficienti della funzione obiettivo, la regola del 100 percento permette di controllare se la soluzione originale è ancora ottima. Molto simile alla regola del l 00 percento per cambiamenti simultanei dei termini noti, questa regola del l 00 percento mette assieme i cambiamenti ammissibili (incremento o decremento) per singoli ci che sono fomiti dalle ultime
due colonne di una tabella come la Tabella 6.23 , nel modo descritto di seguito.
La regola dellOO percento per cambiamenti simultanei di più coefficienti della
funzione obiettivo: se vengono effettuati simultaneamente più cambiamenti nei
coefficienti della funzione obiettivo, occorre calcolare, per ogni cambiamento, la
percentuale di cambiamento (incremento o decremento) rispetto all'intervallo di ottimalità. Se la somma delle percentuali dei cambiamenti non supera il l 00 percento,
allora la soluzione ottima originale continuerà a essere ottima (se la somma supera il
l 00 percento, non si ha tale certezza).
204
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
TABELLA 6.23 Tipico output di un software per l'analisi della sensitività relativa ai
coefficienti della funzione obiettivo per la variante 2 del modello
Wyndor Glass Co.
Variabile
Valore
Costo
ridotto
Coefficiente
attuale
Incremento
ammissibile
Decremento
ammissibile
Xl
o
4.5
00
9
3
5
4.5
Xz
00
3
o
Usando la Tabella 6.23 (e facendo riferimento alla Figura 6.3), questa regola del
l 00 percento afferma che (0, 9) rimarrà una soluzione ottima per la variante 2 del
modello Wyndor Glass Co. anche se, in maniera simultanea, c 1 viene aumentato oltre il valore 3 e c2 viene diminuito rispetto al valore 5, a patto però che questi cambiamenti non siano troppo grandi. Per esempio, se c 1 è aumentato di 1.5 (33.3 percento del cambiamento ammissibi le), allora c2 può essere diminuito fino a 2 (66.6
percento del cambiamento ammissibile). Analogamente, se c 1 è aumentato di 3
(66.6 percento del cambiamento ammissibile), allora c 2 può essere diminuito soltanto fino a l (33.3 percento del camb iamento ammissibile). Questi cambiamenti massimi modificano la funzione obiettivo in Z = 4.5x 1 + 3x2 o in Z = 6x 1 + 4xz, che
causa la rotazione in senso orario della retta che rappresenta la funzione obiettivo ottima nella Figura 6.3 fino a che essa non coincida con la retta 3x 1 + 2x2 = 18.
In generale, quando i coefficienti della funzione obiettivo cambiano nella stessa direzione, è possibile che la somma delle percentuali dei cambiamenti ammissibili sia maggiore
del l 00 percento senza che la soluzione ottima cambi. Un esempio verrà fornito alla fine
della discussione del caso 3.
Caso 2b- Introduzione di una nuova variabile
Dopo avere determinato la soluzione ottima, si può scoprire che il modello di programmazione lineare non ha tenuto in conto tutte le attività alternative. Considerare una nuova attività richiede l 'introduzione di una nuova variabile con appropriati coefficienti nella funzione obiettivo e nei vincoli del modello corrente.
Il modo più conveniente di analizzare questo caso consiste nel trattarlo come se fos e
il caso 2a, fingendo che la nuova variabile x1 si trovi in realtà nel modello originale con
tutti i suoi coefficienti uguali a zero (in modo che essi continuino a essere zero nel tableau finale) e che x1 sia una variabile non di base nella BFS corrente. Di conseguenza
se per la nuova variabile questi coefficienti uguali a zero vengono modificati con i valo
reali, la procedura (compresa la fase di riottimizzazione) diventa identica a quella per i:
caso 2a.
In particolare, tutto quello che deve essere fatto per controllare se la soluzione corrente
è ancora ottima è verificare se la soluzione di base complementare y* soddisfa il nuov
vincolo duale che corrisponde alla nuova variabile nel problema primale. Questo approccio è già stato descritto e illustrato per il problema Wyndor Glass Co. nel Paragrafo 6.5.
Caso 3 - Cambiamenti nei coefficienti di una variabile fondamentale
Si supponga adesso che la variabile in esame x1 sia una variabile di base nella soluzione
ottima e che gli unici cambiamenti nel modello corrente riguardino i coefficienti di questa
variabile.
Il caso 3 differisce dal caso 2a dove il tableau è nella forma propria e la colonna corrispondente a una variabile non di base può essere qualsiasi. Tuttavia, per il caso 3, la variabile di base x1 deve avere coefficiente uguale a l nella relativa riga del tableau e coefficienti uguali a O in ogni altra riga (compresa la riga 0). Di conseguenza, dopo che i car
6.7
205
APPLICAZIONE DELL'ANALISI DELLA SENSITIVITÀ
biamenti nella colonna x1 del tableau del simplesso finale sono stati calcolati, 6 sarà necessario probabilmente applicare il metodo di eliminazione gaussiana per ristabilire la forma
propria del tableau, come illustrato nella Tabella 6.20. Questo cambierà probabilmente il
valore della soluzione di base corrente con la concreta possibilità che essa diventi non ammissibile o non ottima (cosicché può essere necessaria la fase di riottimizzazione). Di conseguenza, per il caso 3 sono richiesti tutti i passi della procedura generale riassunta alla fine del Paragrafo 6.6.
Prima che venga applicata l'eliminazione gaussiana, le formule per la modifica della
colonna x1 sono le stesse per il caso 2a, come riassunto di seguito.
*
Coefficiente di x1 nella riga finale 0:
Zj -
Coefficiente di x1 nelle righe finali da l a m:
Aj
-Cj = y .-Aj
-
-Cj
= S*A1
Esempio (variante 5 del modello Wyndor). Poiché per la variante 2 del modello
Wyndor Glass Co. la variabile x 2 è una variabile di base nella Tabella 6.21, l'analisi della sensitività dei relativi coefficienti si adatta al caso 3. Data la soluzione ottima corrente
(x 1 = O, x2 = 9), il prodotto 2 è l'unico nuovo prodotto che dovrebbe essere considerato
e il suo tasso di produzione dovrebbe essere relativamente grande. Di conseguenza, la
questione basilare è se le valutazioni iniziali che hanno condotto alla stima dei coefficienti di x 2 nel modello corrente (variante 2) potrebbero generare una sopravvalutazione dell'importanza del prodotto 2 così tanto da invalidare questa soluzione ottenuta. Questo
problema può essere esaminato controllando l' insieme più pessimistico delle previsioni
ragionevoli per questi coefficienti che risultano essere c 2 = 3, a 22 = 3 e a 32 ~ 4. Di conseguenza, i cambiamenti da studiare (variante 5 del modello Wyndor) sono
Graficamente, la conseguenza di questi cambiamenti è che la regione ammissibile cambia
da quella indicata nella Figura 6.3 a quella nella Figura 6.6. La soluzione ottima nella
Figura 6.3 è (x~. x2) = (0, 9), che è il vertice che si trova in corrispondenza dell'intersezione delle frontiere x 1 =O e 3x 1 + 2x 2 = 18. Con la modifica dei vincoli, il corrispondente
vertice nella Figura 6.6 è (0,
Tuttavia, questa soluzione non è più ottima, perché per la
funzione obiettivo modificata Z = 3x 1 + 3x2 la nuova soluzione ottima è (x 1, x2 ) = (4,
f).
f).
Analisi della variante 5. Verrà adesso mostrato come ottenere queste stesse conclusioni algebricamente. Poiché gli unici cambiamenti nel modello riguardano i coefficienti
di x 2 , gli unici cambiamenti risultanti nel tableau finale (Tabella 6.21) si trovano nella colonna x 2 . Di conseguenza, le formule precedenti possono essere usate per ricalcolare questa colonna.
0][013 [ 012
~
- 1
=
4
- 1
6
Va notato che i cambiamenti nel tableau iniziale possono distruggere la proprietà di indipendenza lineare delle
colonne della base. Questo accade solo se il coefficiente uguale a l nel tableau finale diviene uguale a zero a seguito di queste modifiche. In tal caso è possibile applicare il metodo del simplesso ma con specifiche accortezze.
206
CAPITOlO 6
TEORIA DEllA DUAliTÀ E ANAliSI DEllA SENSITIVITÀ
12
------ ----- ------ 2x2 = 24
10
8 f - " - - - - - -- -- 1 - - - - 3xz = 24
\
\
\
\
6
\
\
\
\
\
4
• FIGURA6.6
Regione ammissibile per la
variante 5 del modello
Wyndor Glass Co. in cui la
variante 2 (Figura 6.3) è
stata modificata e quindi
c 2 = 5 -> 3, a22 = 2 -> 3,
e a32 = 2-> 4.
\ --+-- - - - 3x 1 + 2x2 = 18
\
\
\
, ...-
-h:- - - -
2
( 4,
~)
\
3x 1
+ 4x2 =
soluzione
otttma
\
o
2
x2
6
4
18
=O
8
In modo equivalente, per ottenere questa colonna può essere usata l'analisi incrementate
con 6c2 = -2, 6a22 = l e 6a32 = 2.
Il tableau finale modificato risultante è indicato nella parte superiore della Tabella
6.24. Si può notare che i nuovi coefficienti della variabile di base x 2 non hanno i valori richiesti e così, deve essere applicata nuovamente la conversione alla forma propria. Questo
consiste nel dividere la riga 2 per 2, sottrarre 7 volte la nuova riga 2 dalla riga O e aggiungere la nuova riga 2 alla riga 3.
Il secondo tableau risultante nella Tabella 6.24 fornisce il nuovo valore della soluzione
di base corrente, vale a dire, x 3 = 4, x 2 =
x 4 = .1,}- (x 1 = O, x 5 = 0). Poiché tutte queste
variabili sono nonnegative, la soluzione è ancora ammissibile, ma a causa del coefficiente
negativo di x 1 nella riga O essa non è più ottima. Di conseguenza, per detetminare la nuova soluzione ottima, si può applicare il metodo del simplesso a questo tableau considerando questa soluzione come la BFS iniziale. La variabile entrante è x 1 mentre x 3 è la variabile di base uscente. Per raggiungere la nuova soluzione ottima x 1 = 4, x 2 = +' x 4 = 3
(x 3 = O, x 5 = 0), è necessaria una sola iterazione, come mostrato nell'ultimo tableau della Tabella 6.24.
Questa analisi suggerisce che c2 , a22 e a 32 sono parametri relativamente sensibili.
Tuttavia, i dati aggiuntivi necessari per una loro migliore valutazione possono essere ottenuti solo dopo avere risolto una prima volta il problema. Di conseguenza, la raccomandazione è che la produzione del prodotto 2 venga iniziata immediatamente su scala ridotta
(x 2 =+)e che l'esperienza acquisita venga usata per guidare la decisione se assegnare la
restante capacità produttiva al prodotto 2 o al prodotto l .
f,
!
L'intervallo di ottimalità. Per il caso 2a, è stato descritto come determinare l'intervallo di ottimalità per ogni c1 quando x1 è una variabile non di base la soluzione ottima
6.7
207
APPLICAZIONE DELL'ANALISI DELLA SENSITIVITÀ
corrente (prima che cj venga cambiato). Quando x j è, invece, una variabile di base, la procedura risulta essere più complicata a causa della necessità di convertire il tableau nella
forma propria prima di eseguire il test di ottimalità.
Per illustrare la procedura, si consideri la variante 5 del modello Wyndor Glass Co. (con
c2 = 3, a 22 = 3, a 23 = 4) che è rappresentata graficamente nella Figura 6.6 e risolta nella
Tabella 6.24. Dato che x 2 è una variabile di base per la soluzione ottima (con c 2 = 3) come
mostrato nella parte inferiore di questa tabella, i passi necessari per determinare l' intervallo
di ottimalità per c 2 sono i seguenti.
l. La variabile x 2 è una variabile di base, e quindi il suo coefficiente nella nuova riga finale O (si faccia riferimento al tableau inferiore della Tabella 6.24) è automaticamente
c2 = Oprima che c 2 sia cambiato rispetto al suo valore corrente che è pari a 3.
2. Si incrementi adesso c2 = 3 di L'lc2 (così c2 = 3 + L'lcz). Ciò fa cambiare il coefficiente individuato al passo l in zi - c2 = - L'lc2 , e la riga O diventa
zi -
.
[
3
3 i 33]
ngaO
= O, - ~cz, 4' O, 4 2
i
3. Con questo coefficiente adesso diverso da zero, devono essere eseguite le operazioni
elementari di riga in modo da ripristinare la forma propria del tableau. In particolare,
per ottenere la nuova riga O, alla riga O si aggiunge il prodotto, L'lc2 volte la riga 2, così
come indicato di seguito.
[o, - ~cz, !,
+ [ O,
ii .TI..]
2
3
~c 2 , -4~Cz,
3
nuova riga O = [ O, O, 4
-
3
l
O, 4~c2
4~c 2 , O,
l
3
]
43 + 4~c2
ii 233 + 2~c2
TABELLA 6.24 Analisi della sensitività applicata alla variante 5 del modello
Wyndor Glass Co.
Tableau finale modificato
Convertito nella forma
propria
Coefficiente di:
Variabili
di base
Eq.
z
z
xl
(O)
l
XJ
(l)
Xz
(2)
o
o
2
x4
(3)
z
9
x2
x3
x4
7
o
o
l
2
2
o
o
o
o
o
- 3
- l
o
(O)
l
3
--
o
XJ
(l)
x2
(2)
o
o
x4
(3)
o
l
3
4
l
-3
4
9
-4
o
o
-3
o
l
3
4
o
o
o
o
x,
(l)
o
o
l
o
o
o
l
Xz
x4
(2)
(3)
o
o
o
l
3
4
9
4
4
6
o
l
o
l
- l
o
(0)
45
1
l
z
5
2
9
~
Nuovo tableau finale dopo
la riottimizzazione (in questo
caso è necessaria una sola
iterazione del metodo del
simplesso)
Xs
2
o
o
o
l
Termini
noti
1
4
o
-l
27
2
4
9
4
2
3
--
21
4
-3
4
o
1
4
3
4
-
2
33
2
4
3
2
39
2
l
208
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
4. Usando questa nuova riga O, determinare i valori di !:::.c2 che rendono nonnegativi i
coefficienti delle variabili non di base (x 3 e x 5 )
3
3
4 - 4llc2
2:
O
3
l
-+-Ile2 ::::O
4
4
3
3 llc
2
~
-
~
l
-Ile2
4
2: -
4
4
3
> --
4
-
=>
llc 2
::;
1
~
llc 2
2:
-3
L'intervallo è quindi - 3 ::::; f:::.c2 ::::; l.
5. Poiché c2 = 3 + !:::.c 2, aggiungere 3 a questo intervallo di valori fornisce
0 ::::;
C2::::;
4
come intervallo di ottimalità per c 2 .
Con solo due variabili decisionali, questo intervallo può essere verificato graficamente
usando la Figura 6.6 con una funzione obiettivo pari aZ = 3x 1 + c2x 2 . Con il valore corrente di c2 = 3, la soluzione ottima è (4,
Quando c2 viene aumentato, questa soluzione rimane ottima solo per c2 ::::; 4. Per c 2 :2': 4, (0, f) diventa soluzione ottima (con soluzioni ottime multiple quando c 2 = 4), a causa del vincolo 3x 1 + 4x 2 ::::; 18. Quando c 2 viene
invece decrementato, (4,
rimane ottima solo per c2 ;:::: O. Per c2 ::::; O, (4, O) diventa ottima a causa del vincolo x 1 ::::; 4.
Allo stesso modo, l'intervallo di ottimalità per c 1, ovvero c 1 ;::::
(con c2 fissato a 3),
può essere ricavato sia algebricamente che graficamente.
Quindi, il decremento ammissibile per c 1 rispetto al suo valore corrente pari a 3 è soltanto
Tuttavia, è possibile fare diminuire c 1 di una quantità maggiore senza che cambi
la soluzione ottima facendo diminuire sufficientemente anche c 2 . Per esempio, si supponga che sia c 1 che c2 vengano decrementati di l rispetto alloro valore corrente che è uguale a 3, di modo che la funzione obiettivo passi da Z = 3x 1 + 3x 2 aZ= 2x 1 + 2x2. In base
alla regola del l 00 percento per cambiamenti simultanei nei coefficienti della funzione
obiettivo, le percentuali dei cambiamenti ammissibili sono, rispettivamente, di 133.33 percento e di 33.3 percento, la cui somma va ben oltre il 100 percento. Tuttavia, la pendenza
della linea della funzione obiettivo non è cambiata affatto e così, (4, f) è ancora la soluzione ottima.
f).
f)
f
f.
Caso 4- Introduzione di un nuovo vincolo
In questo caso, dopo che il modello è stato risolto, deve essere introdotto un nuovo vincolo. Questo caso può verificarsi perché il vincolo è stato inizialmente trascurato o perché
da quando il modello è stato formulato si sono presentate nuove condizioni. Un 'altra possibilità è che, essendo ritenuto meno restrittivo rispetto ad altri vincoli presenti nel modello, esso sia stato cancellato espressamente per diminuire lo sforzo computazionale, ma
adesso questa ipotesi deve essere verificata con la soluzione ottima realmente ottenuta.
Per analizzare se la soluzione ottima corrente è influenzata da un nuovo vincolo, tutto
che quello che si deve fare è controllare direttamente se la soluzione ottima soddisfa il
vincolo stesso. In caso affermativo, allora essa è ancora la migliore soluzione ammissibile
(cioè, la soluzione ottima), anche in seguito all'aggiunta del nuovo vincolo. Il motivo è
che un nuovo vincolo può eliminare solo alcune soluzioni precedentemente ammissibili
senza aggiungerne di nuovi.
Se il nuovo vincolo elimina la soluzione ottima corrente e si desidera determinare la
nuova soluzione, allora occorre introdurre questo vincolo nel tableau finale (come riga
supplementare) proprio come se questo fosse il tableau iniziale e in cui la variabi le supplementare usuale (variabile slack o artificiale) è designata a essere la variabile di base per
questa nuova riga. Poiché la nuova riga avrà, probabilmente, coefficienti diversi da zero
per alcune delle altre variabili di base, sarà necessario una conversione alla forma propria
e quindi il passo relativo alla riottimizzazione verrà applicato nel modo usuale.
6.7
APPLICAZIONE DELL'ANALISI DELLA SENSITIVITÀ
209
Come per i casi precedenti, anche per il caso 4 questa procedura è una versione semplificata della procedura generale riassunta alla fine del Paragrafo 6.6. L 'unico quesito a cui
bisogna rispondere in questo caso è se la soluzione ottima precedente è ancora ammissibile e quindi il passo 5 (test di ottimalità) non deve essere considerato. Il passo 4 (test di ammissibilità) è stato sostituito da un test di ammissibilità molto più rapido (la soluzione ottima precedente soddisfa il nuovo vincolo?) eseguito immediatamente dopo il passo l
(revisione del modello). È soltanto se questo test fornisce una risposta negativa e si desidera eseguire la riottimizzazione che i passi 2, 3 e 6 vengono usati (revisione del modello,
conversione alla forma propria e riottimizzazione).
Esempio (variante 6 del modello Wyndor). Per illustrare questo caso, si consideri
la variante 6 del modello Wyndor Glass Co., che introduce semplicemente il nuovo vincolo
2x1
+ 3x2:::;
24
nella variante 2 del modello indicato nella Tabella 6.21. Graficamente, l'effetto è mostato
nella Figura 6.7. La soluzione ottima precedente (0, 9) viola il nuovo vincolo e, così, la
soluzione ottima diventa (0 , 8).
Per analizzare questo esempio da un punto di vista algebrico occorre notare che per il
punto (0, 9) si ha 2x 1 + 3x2 = 27 > 24 e, questa precedente soluzione ottima non è più
ammissibile. Per determinare la nuova soluzione ottima basta aggiungere il nuovo vincolo al tableau fmale come appena descritto con la variabile slack x 6 come variabile di base
iniziale. Questo passo produce il primo tableau indicato nella Tabella 6.25. La conversione alla forma propria richiede quindi di sottrarre dalla nuova riga la riga (2) moltiplicata
per 3 ottenendo così la soluzione di base corrente x 3 = 4, x 2 = 9, x 4 = 6, x 6 = - 3 (x 1 =
O, x 5 = 0), come mostrato nel secondo tableau. L'applicazione del metodo del sirnplesso
duale a questo tableau conduce, in appena un' iterazione (a volte ne sono necessarie più
di una), alla nuova soluzione ottima mostrata nell'ultimo tableau della Tabella 6.25.
Programmazione parametrica
Finora è stato descritto come sperimentare specifici cambiamenti nei parametri di un modello. Un altro approccio comune all'analisi di sensitività consiste nel variare in maniera
continua uno o più parametri in uno specifico intervallo e valutare quando la soluzione ottima cambia.
Per esempio, con la variante 2 del modello Wyndor Glass Co. anziché iniziare valutando lo specifico cambiamento da b 2 = 12 a b2 = 24 si potrebbe porre
e
e quindi variare con continuità da O a 12 (il massimo valore di interesse). L ' interpretazione geometrica nella Figura 6.3 è che la retta 2x 2 = 12 viene spostata verso l'alto a
2x2 = 12 +
con che viene aumentato da o a 12 . Il risultato è che il vertice ottimo
originale (2, 6) si sposta verso il punto (-2, 12) all'incrocio con la retta 3x 1 + 2x2 = 18.
Questo vertice rimane ottimo se è ammissibile (x 1 ~ 0), dopo di che il punto (0, 9) diventa la soluzione ottima.
Algebricamente, l'effetto di porre D.b 2
è analogo a quello nell ' esempio del caso l
dove D.b 2 = 12 . In particolare, vengono usate le espressioni per Z* e b* determinate per il
caso l ,
e,
e
=e
Z*
= y*b
b*
=
S*b
210
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
xz
12
2x2 = 24
10
Xt
= 4
8
6
4
• FIGURA6.7
Regione ammissibile per la
variante 6 del modello
Wyndor Glass Co. in cui la
variante 2 (Figura 6.3) è
stata modificata
aggiungendo il nuovo
vincolo 2x1 + 3xz :::; 24.
2
x 2 =O
o
dove, adesso,
4
2
8
6
10
12
14
Xt
hz è
e y* e S* sono identificate nel tableau centrale della Tabella 6.19. Queste equazioni indicano che la soluzione ottima è
z• =
36
+~e
l
X3
= 2
+3 e
xz = 6 +
l
(x4 = O, xs = O)
2e
l
Xt
=2--e
3
e
e
e: :
per sufficientemente piccolo così che questa soluzione rimane ammissibile, e cioè
6.
Per > 6, il metodo del simplesso duale produce il tableau mostrato in Tabella 6.21 tranne
che per il valore di x 4. C<;>sì, con Z = 45 , x 3 = 4, x 2 = 9 (insieme a x 1 = O, x 5 = O) e l'espressione per b* si ha
x4
= bi= o(4) + 1( 12) +e) - 1(18) = -6 +e
Questa informazione può essere usata (insieme ad altri dati sull'effetto dell ' incremento <L
hz e non compresi nel modello) per decidere se mantenere la soluzione ottima originale
in caso negativo, di quanto aumentare hz.
6.7
211
APPLICAZIONE DELL'ANALISI DELLA SENSITIVITÀ
• TABELLA 6.25 Analisi della sensitività applicata alla variante 6 del modello
Wyndor Glass Co.
Variabili
di base
Tableau finale modificato
Convertito nella forma
propria
Nuovo tableau finale
dopo la riottimizzazione
(in questo caso è
necessaria una sola
iterazione del metodo del
simplesso duale)
Coefficiente di:
Eq.
z
x,
x2
X3
9
2
o
o
o
z
(O)
l
x3
(l)
x2
(2)
x.
x6
(3)
Nuove
o
o
o
o
z
(O)
l
2
l
3
l
3
2
- 3
2
9
X3
(l)
x2
(2)
x.
(3)
x6
Nuove
o
o
o
o
z
(O)
l
X3
(l)
Xz
(2)
o
o
x.
(3)
o
Xs
Nuove
o
l
o
3
l
o
o
o
o
o
o
2
l
- 3
5
o
o
o
o
o
l
3
l
2
3
4
o
o
-2
l
o
x4
o
o
o
l
Xs
5
2
o
l
2
- l
x6
Termini
noti
o
o
o
o
45
4
9
6
o
o
l
24
o
o
o
5
2
o
o
o
o
45
o -2
l
- 3
o
o
o
5
3
40
o
4
l
o
l
2
- l
3
4
9
6
l
o
o
o
o
-3
o
o
l
2
o -3
8
5
3
o
o
o
l
2
3
2
l
l
3
8
Allo stesso modo, si può studiare l'effetto sulla soluzione ottima a seguito della variazione simultanea di più paramteri. Quando cambiano solo i parametri b;, è possibile esprimere il nuovo valore di b; in termini del valore originale di b; nel seguente modo:
per i = l , 2, . .. , m
dove i valori a ; sono costanti che specificano il tasso di crescita desiderato (positivo o negativo) del termine noto al variare di e.
Per esempio, si supponga che sia possibile trasferire parte della produzione di un prodotto corrente della Wyndor Glass Co. dallo stabilimento 2 allo stabilimento 3 aumentando, b 2 e diminuendo b 3 . Si supponga inoltre che b 3 diminuisca due volte più velocemente
rispetto agli aumenti di b 2 . Allora
b3 =
b2 =
=-
e
12
+e
18 - 2e
dove il valore (nonnegativo) di misura la quantità di produzione trasferita (così, in questo caso, a 1 = O, a 2 = l e a 3 = - 2). Come mostrato nella Figura 6.3, geometricamente
si ha che, poichè u viene aumentato a partire dal valore O, la retta 2x 2 = 12 viene sostitui(si ignori la retta 2x2 = 24) e simultaneamente la retta
ta con 2x2 = 12
3x 1 + 2x 2 = 18 viene sostituita con 3x 1 + 2x2 = 18 - 2e. Il vertice ottimo (2, 6) è in corrispondenza dell ' intersezione delle rette 2x2 = 12 e 3x 1 + 2x 2 = 18 e lo spostamento di
queste rette causa lo spostamento di questo vertice. Inoltre, con la funzione obiettivo
Z = 3x , + 5x 2 , questo vertice rimarrà ottimo se è ammissibile (x 1 ::::: 0).
+e
212
CAPITOLO 6
TEORIA DEllA DUALITÀ E ANALISI DEllA SENSITIVITÀ
Algebricamente, è possibile investigare i cambiamenti simultanei di b2 e di b3 , mediante
le formule usate per il caso l (con come incognita) e calcolare i cambiamenti risultanti
nel tableau finale (parte centrale della Tabella 6.19):
e
Z* = y*b =
[O,~, t][ 12: e]= 36- ~e
18- 28
_.~~.] [ 12 4+e ]
=
18- 2e
.1.3
l
6++ ~ee
[ 2
2 - e
Di conseguenza, la soluzione ottima diventa
z* =
l
36 - 2
x3
= 2+e
xz
= 6
x1 =
e
(x4 = O,
l
xs = O)
+2 e
2-
e
e
e
per sufficientemente piccolo così che questa soluzione è ancora ammissibile, e quindi
per ~ 2 (si verifichi questa conclusione nella Figura 6.3). Tuttavia, il fatto che Z diminuisce al crescere di e indica che la scelta migliore per e è e = O, così nessun possibile
spostamento della produzione dovrebbe essere fatto.
L ' approccio utilizzato per studiare il caso di variazione simultanea di più parametri cj è
molto simile. In questo caso, il nuovo valore di Cj viene espresso in termini del valore originale di cj
per j
= l , 2, . . . , n
dove aj sono costanti che specificano il tasso di incremento desiderato (positivo o negativo) di Cj al! ' aumentare di e.
Per illustrare questo caso, si riconsideri l'analisi della sensitività per c 1 e di c2 per il
problema Wyndor Glass Co. che è stata effettuata prima in questo paragrafo. A partire
dalla variante 2 del modello Wyndor nella Tabella 6.21 e nella Figura 6.3, sono stati considerati separatamente gli effetti di cambiare c 1 da 3 a 4 (la valutazione più ottimistica) e
c2 da 5 a 3 (la valutazione più pessimistica). Adesso, possono essere considerati simultaneamente entrambi questi cambiamenti, così come i vari casi intermedi caratterizzati da
cambiamenti più piccoli, ponendo
e
e
dove misura la frazione del massimo cambiamento possibile. Il risultato è quello di sostituire la funzione obiettivo originale Z = 3x 1 + 5x2 con una funzione che dipende ora
da
e
Z(e) = (3 + e)x 1 + (5- 2e)xz
e
e l' ottimizzazione può essere ora effettuata per qualunque valore di desiderato (fisso
compreso tra O e l. Esaminando l'effetto di aumentare da O a l, è possibile determinare
esattamente quando e come cambia la soluzione ottima all'aumentare dell 'errore nelle valutazioni originali di questi parametri.
Tener conto di questi cambiamenti in maniera simultanea è particolarmente importante
nel caso in cui esistano fattori che causano un cambiamento contemporaneo dei parametri
I due prodotti sono in un certo senso in comptetizione, di modo che un maggiore profitt..
e
6.7
213
APPLICAZIONE DELL'ANALISI DELLA SENSITIVITÀ
unitario per uno dei prodotti implica un profitto minore per l'altro? Sono entrambi influenzati da un qualche fattore esogeno, quale l'enfasi pubblicitaria di un concorrente? È
possibile cambiare simultaneamente entrambi i profitti unitari attraverso un idoneo trasferimento del personale e delle attrezzature?
Nella regione ammissibile indicata nella Figura 6.3, l'interpretazione geometrica di
cambiare la funzione obiettivo da Z = 3x 1 + 5x2 a Z(e) = (3 + e)x 1 + (5- 2e)x2 è che
si sta modificando la pendenza della retta che rappresenta la funzione obiettivo originale
(Z = 45 = 3x 1 + 5x2 ) nella soluzione ottima (0, 9). Se viene aumentato oltre un certo livello, questo pendenza cambierà in modo tale che la soluzione ottima passerà da (0, 9) al
vertice (4, 3) (si verifichi graficamente se questo si accade per
l).
La procedura algebrica per il trattamento simultaneao di questi due cambiamenti
(6.c 1 = 8 e 6.c 2 = - 28) è mostrata nella Tabella 6.26. I cambiamenti sono ora espressi in
termini di 8 piuttosto che con specifiche quantità numeriche con 8 è fissato. La tabella visualizza le righe relative ai tableau in questione (la riga O e la riga per la variabile di base
x 2 ) . Il primo tableau è esattamente il tableau finale per la versione corrente del modello
(prima che c 1 e c 2 siano cambiati) come indicato nella Tabella 6.21. Con riferimento alle
formule presenti nella Tabella 6.17, gli unici cambiamenti nel tableau finale modificato
sono rispettivamente che 6.c 1 e 6.c2 sono sottratti dai coefficienti di x 1 e di x 2 della riga O.
Per convertire questo tableau nella forma propria, viene sottratta la riga 2 dalla riga O un
numero di volte pari a 28, che fornisce l'ultimo tableau mostrato. Le espressioni in termini di 8 per i coefficienti delle variabili non di base x 1 e x 5 nella riga O di questa tableau
mostrano che la BFS corrente rimane ottima per
Poiché = l è il massimo valore
realisticamente possibile per 8, si ha che c 1 e c2 insieme sono parametri insensibili per la
variante 2 del modello nella Tabella 6.21. Non c'è la necessità di provare a valutare più attentamente questi parametri a meno che cambino altri parametri (come è accaduto per la
variante 5 del modello Wyndor).
Come discusso nel Paragrafo 4.7, questo modo di variare continuamente più parametri
simultaneamente viene indicato come programmazione lineare parametrica . Alcuni pacchetti software per la programmazione lineare includono anche le procedure per variare i
coefficienti di una singola variabile o di un singolo vincolo. Oltre che le altre applicazioni
discusse nel Paragrafo 4.7, queste procedure forniscono un modo conveniente di condurre
sistematicamente l'analisi di sensitività.
e
e ::;
e ::; f.
e
• TABELLA 6.26 l casi 6.c1 = f) e 6.c2 = -2fJ per la variante 2 del modello
Wyndor come indicato nella Tabella 6.21
Variabili
di base
Coefficiente di:
Eq.
z
Xt
x2
x3
x4
l
(O)
l
9
2
o
o
o
Xz
(2)
o
l
o
o
Z(fJ)
(0)
l
20
o
o
2
Xz
(2)
o
2
l
o
o
2
Z(fJ)
(O)
l
2._ - 40
o
o
o 2.2 -
Xz
(2)
o
l
o
o
Tableau finale
Tableau finale modificato con
LI. c, = fJ e Ll.c2 = -20
Convertito nella forma
opportuna
3
2
2._ -
f)
2
3
2
3
2
Termini
noti
Xs
5
45
2
l
2
9
5
45
l
l
2
9
f)
45- 180
9
214
CAPITOlO 6
6.8
TEORIA DEllA DUAliTÀ E ANAliSI DEllA SENSITIVITÀ
ANALISI DELLA SENSITIVIT À MEDIANTE FOGLIO ELETTRONICO
Con l'aiuto del Risolutore di Excel, i fogli elettronici fomiscono un'altemativa, relativamente semplice per eseguire gran parte dell'analisi della sensitività descritta nei Paragrafi
6.5-6.7. L ' approccio mediante foglio elettronico è fondamentalmente lo stesso per i vari
casi considerati nel Paragrafo 6.7 a seconda dei cambiamenti nel modello originale. Di
conseguenza, l'attenzione verrà centrata solo sull ' effetto dei cambiamenti nei coefficienti
delle variabili della funzione obiettivo (casi 2a e 3 del Paragrafo 6.7). Il tutto verrà illustrato applicando i cambiamenti al modello Wyndor originale fonnulato nel Paragrafo
3.1, in cui i coefficienti di x 1 (numero di lotti prodotti per settimana della nuova porta) e
di x 2 (numero di lotti prodotti per settimana della nuova finestra) nella funzione obiettivo
sono
c 1 = 3 = profitto per lotto (in migliaia di dollari) per il nuovo tipo di porta
c2 = 5 = profitto per lotto (in migliaia di dollari) per il nuovo tipo di finestra
Per convenienza, la formulazione di questo modello tramite foglio elettronico (Figura
3.22) è ripetuta in Figura 6.8 . Si può notare che le celle che contengono le quantità da
cambiare sono ProfitPerBatch (C4:D4). Poiché i profitti in queste celle sono espressi in
dollari, mentre c 1 e c 2 sono espressi in migliaia di dollari, l'analisi della sensitività verrà
discussa in termini di cambiamenti nei profitti indicati in queste celle anziché in termini
dei cambiamenti di c 1 e c2 . Questi profitti saranno denotati da
PD =profitto per lotto di porte inserito attualmente nella cella C4
P w = profitto per lotto di finestre inserito attualmente nella cella D4
In realtà, i fogli elettronici fomiscono tre metodi per l'esecuzione dell'analisi di sensitività. Uno consiste nel controllare l'effetto di uno specifico cambiamento sul modello eseguendo semplicemente il cambiamento sul foglio elettronico e risolvendo il problema. Un
secondo consiste nel generare sistematicamente, su un singolo foglio elettronico, una tabella che mostri l' effetto di una serie di cambiamenti in uno o due parametri del modello.
Un terzo metodo consiste nell ' usare il rapporto di sensitività prodotto dal Solutore eli
Excel. Ognuno di questi metodi ven·à singolmmente descritto qui di seguito.
FIGURA
foglio elett,
sensitività.
Controllo di singoli cambiamenti nel modello
Uno dei maggiori vantaggi di un foglio elettronico è la facilità con cui esso può essere
usato in modo interattivo per effettuare vari tipi di analisi di sensitività. Una volta che il
Solutore è stato installato ed è stata ottenuta una soluzione ottima, si può immediatamente
scoprire che cosa accade se a uno dei parametri del modello fosse assegnato qualche altro
valore. È sufficiente riportare questa modifica sul foglio elettronico e quindi premere di
nuovo il pulsante Risolvi.
Per esempio, si supponga che non si sia certi del profitto per lotto delle porte (PD).
Anche se la cifra di 3000 dollari indicata nella Figura 6.8 è considerata una valutazione
iniziale ragionevole, il mamagement ritiene che il profitto reale potrebbe' scostarsi sostanzialmente da questo valore in entrambe le direzioni. Tuttavia, l'intervallo tra PD = 2000
dollari e PD = 5000 dollari è considerato molto probabile.
La Figura 6.9 mostra cosa accade se il profitto per il lotto di porte dovesse ridursi da
PD = 3000 a PD = 2000 dollari. Un confronto con la Figura 6.8 mostra che non si è avuto
nessun cambiamento nella soluzione ottima. Le uniche modifiche nel nuovo foglio elettronico sono rappresentate dal nuovo valore di PD nella cella C4 e da una diminuzione di
2000 dollari nel profitto totale mostrato nella cella Gl2 (ciascuno dei due lotti di porte prodotti alla settimana determina l 000 dollari in meno di profitto). Dato che la soluzione ottima non cambia si può affermare, quindi, che la valutazione originale di PD = 3000 dollari
può essere abbastanza alta ma questo non invalida la soluzione ottima determinata.
FIGURA1
Problema W
a Po = 2000
6.8
ANALISI DELLA SENSITIVITÀ MEDIANTE FOGLIO ELETIRONICO
215
Ma cosa accade, invece, se questa valutazione è troppo bassa? La Figura 6.1 O mostra cosa accade se PD fosse aumentato fino a P 0 = 5000 dollari. Come prima, non si verifica
nessun cambiamento nella soluzione ottima. Di conseguenza, si può affetmare che l'intervallo dei valori di PD per i quali l'attuale soluzione rimane ottima (cioè l'intervallo di ottimalità discusso nel Paragrafo 6.7) include i valori compresi tra 2000 e 5000 dollari e anzi
può essere ulteri01mente esteso.
l
A
c
l
8
l
l
D
l
E
F
l
G
l
l
H
Problema Wyndor Glass
--12
~
-t-
Porte
3000
Profitto per lotto
+
_g._
+
~
Finestre
5000
Ore
Disponibili
Ore
Utilizzate
Ore per lotto Prodotto
9
w
T,
t-:r2
rtt
o
1
1
'r
2
o
3
3
2
Porte
Finestre
2
6
Numero lotti prodotti
2
2
12
18
r
$
4
,;
,;
12
20
Profitt o
Totale
36000
ru-
E
15 Riferimenti
Ce lle
C1 2:012
17 HoursAvatlable
G7 G9
HoursUsed
E7:E9
HoursUsedPerbatcheProduced C7·D9
ProfitPerBatch
C404
~ TotaiProfit
G12
16 BatchedProduced
Ore
Utilizzate
6
7 - MATR SOMIVIA.PRODOITO(C7:0 7;8atchesProduced)
8 =MATR SOMMA PRODOITO(C8:D8,8atchesProduced)
9 - MATR SOMMA.PRODOITO(C9.0 9;8 atchesProduced)
5
r-w
'19
f-20
22
13
"24
~
G
10
Profitto
11
Totale
12 - MATR SOMMA.PRODOITO(ProfitPerBatch BatchesProduced )
TG
'27
'28
>----
FIGURA6.8
Fog lio elettronico e la so luzione ottima ottenuta per il problema Wyndor origina le prima dell'esecuzione dell'analisi della
sensitività.
A
1
l
c
l
8
4
PO/te
2000
Profitto per lotto
l
Finestre
5000
Ore per lotto Prodotto
1
o
o
2
3
2
·t
2
3
9
11
12
13
D
i
E
F
l
G
:
H
Problema Wyndor Glass
~
+
_g._
+
-I+
-;o
l
Porte
2
Numero lotti prodotti
Finest re
6
Ore
Utilizzate
r
r
.
2
12
18
Ore
Disponibili
,;
"
"
4
12
18
Profitt o
Totale
34000
14
15 Riferimenti
16 BatchedProduced
1T HoursAvailable
18 HoursUsed
19 HoursUsedPerbatcheProduced
ProfitPerBatch
~
21 TotaiProfrt
Ce lle
C12:D12
G7:G9
E7:E9
C7:09
C4 .D4
G12
E
5
Ore
6
Utilizzate
7 - MATR.SOMMA PRODOITO(C7:D7; BatchesPro duced)
8 =MATR. SOMMA.PRODOITO(CS:DS; BatchesProduced)
9 - MATR SOMMA PRODOITO(C9:D9; 8 atchesProduced)
FIGURA6.9
Problema Wyndor modificato; la stima del profitto per lotto di porte è stato decrementato da P0 = 3000 dollari
a P0 = 2000 dollari: la soluzione ottima non cambia .
l
l
l
CAPITOlO 6 TEORIA DEllA DUAliTÀ E ANAliSI DEllA SENSITIVITÀ
216
A
8
H
Problema Wyndor Glass
Ore
·uiTiizzàte
2
11.
18 ,
--
6rè
------~------------,..--
Disponibili
----
s
~
s:
Profilto
Toiare-
Numero lotti pro-dotti
• FIGUli
Espansior
sistematic
40000
--- --- -t-
T
Celle
--
E
5
Ore
Utilizzate
6
7 =MAfi:fSOMMA.PRODOTIO(C7:D7;BatchesProduced)
8 -MATR.S OMMA PRODÒTIO(CB:DB; 8atchesProduced)
9 -MATR. SOMMA. PRODOTTOtés:D9; 8atchesProducedl
C12:012
G7:G9
E7:E9
C7:09
C4:04
G12
-----1-
• FIGURA 6.1 O
Problema Wyndor modificato; la stima del profitto per lotto di porte è stato incrementato da P0 = 3000 dollari
a P0 = 5000 dollari: la soluzione ottima non cambia .
Poiché il valore originale di Pn = 3000 dollari può essere cambiato in maniera considerevole in entrambe le direzioni senza che la soluzione ottima cambi, Pn è un parametro relativamente non sensibile. Per essere sicuri che il modello stia fornendo la corretta soluzione ottima, non è necessario imporre un'eccessiva accuratezza nell'eseguire questa stima.
Questa informazione è ciò che può bastare per Pn. Tuttavia, se esiste una buona possibilità che il valore reale di PD possa essere esterno a questo ampio intervallo da 2000 a
5000 dollari, sarebbe auspicabile un ulteriore approfondimento. Quanto più alto o più basso può essere Pn prima che la soluzione ottima cambi?
La Figura 6.11 dimostra che la soluzione ottima cambia se Pn venisse aumentato fino
al valore Pn = l O000 dollari. Adesso, si ha la certezza che questo cambiamento si verifica da qualche parte durante il processo di aumento di PD tra 5000 e l O000 dollari.
• FIGURA 6.11
Problema Wyndor modificato; la stima del profitto per lotto di porte è stato incrementato da P0 = 3000 dollari
a P0 = l O000 dollari: la soluzione ottima cambia.
A
8
H
Problema Wyndor Glass
Ore
U!ilizzate
~er
1
folto Prodotto
1
2
o
3
3
Ore
DisponibiiL
o
2
2
4'
6
18
s:
s:
~
Numero lolti_prodotti__
---~----1
l
Celle
C12:012
G7:G9
E7:E9
C7:09
C4:04
G12
E
5
Ore
- Utilizzate 6
-7 - MATR.SOMMA- PRODÒTIÒ(C7:bf; BatchesProduced)' --·
8 - MATR.SOMMA.PRODOTTO(C8:D8;8atchesProduced)
9 - MATR.SOMMA.-PRODÒTIÒ(C9:D9;BatcheSProduced)
11
6.8
ANALISI DELLA SENSITIVITÀ MEDIANTE FOGLIO ELETIRONICO
217
Uso dell'add-in Table Solver per eseguire l'analisi della sensitività in
modo sistematico
Per determinare esattaente quando la soluzione ottima cambia, si potrebbe continuare a selezionare nuovi valori di Pn in modo del tutto casuale. Tuttavia, un approccio migliore
consiste nel considerare sistematicamente un intervallo di valori di P D· Per questo tipo di
analisi è stato sviluppato dal professar Mark Hillier uno specifico add-in per Excel chiamato Table Solver.
• FIGURA 6.12
Espansione del foglio elettronico di Figura 6.8 e uso dell'add-in Table Solver che mostra l'effetto della variazione
sistematica della stima del profitto per lotto di porte nel problema Wyndor.
Casella Nome
c
B
D
Problema Wyndor Glass
Porte
3000
Profi! to per lotto
...1
Finestre
--- 5000
Ore per lotto Prodotto
1
--+-
1
o
,.
,.,..
o
3
3
2
Porte
2
Finestre
4
12
18
Profitto
Totale
6
36000
..
2
Soluzione Ottima
Porte
Finestre
2
6
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
c
D
l
Soluzione Ottima
Porte
l Fine stre
=C12
l =D12
Ore
Disponibili
2
Numero lotti prodotti
16
17
18
Ore
Utilizzate
2
12
18
Profitto
Totale
36000
r
T
t
r
t
E
Profitto
Totale
=Total Profit
Row input celi:
Column input celi:
OJ
C4
Canee!
OK
l
218
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
Questo add-in mostra i risultati nelle celle modificabili e/o in detetminate celle di output
per vari valori di prova di una cella dati. Per ogni valore di prova della cella dei dati, viene risolto un nuovo problema. Di conseguenza, questo add-in (o un qualunque altro simile programma aggiuntivo per Excel) fornisce un modo sistematico per eseguire l'analisi
della sensitività visualizzando i risultati anche a chi non ha familiarità con gli aspetti più
tecnici di questa analisi.
Per usare questo add-i n, occorre in primo luogo espandere il foglio elettronico originale (Figura 6.8) per creare una tabella con le intestazioni uguali a quelle indicate nella
Figura 6.12 . Nella prima colonna della tabella (celle B 19:B28), bisogna elencare, tranne
nella prima riga (cella B 18) che deve essere lasciata bianca, i valori di prova per la cella dati (il profitto per lotto di pmte). Le intestazioni delle colmme successive specificano quale output verrà valutato. Per ciascuna di queste colonne, la prima riga della tabella (celle Cl8:El8) deve essere usata per scrivere un 'equazione che fissi il valore in ciascuna di queste celle uguale a quello della relativa cella modificabile o cella di output.
In questo caso, le celle importanti sono Cl2, Dl2 e Gl2 (Total Profit), cosicché le
equazioni per C 18:E18 sono quelle indicate prop1io sotto il foglio elettronico nella
Figura 6.12.
Successivamente, occorre selezionare l' intera tabella cliccando e trascinando a partire
dalla cella B 18 fino alla cella E28 e quindi selezionare Solver Table dal menu Strument.
Nella finestra di dialogo Solver Table (come mostrato nella parte inferiore della Figura
6.12) occorre indicare la cella di input (C4) che deve cambiare. Nessun valore è invece inserito per l'altro campo (Row input celi) perché, in questo caso, per elencare i valori di
prova di w1a cella dati non viene usata nessuna tiga.
La tabella tiportata nella Figura 6.13 viene generato automaticamente premendo sul
pulsante OK. Per ogni valore elencato nella prima colonna della tabella viene risolto un
nuovo problema e sono riempiti i campi con i corrispondenti valori (i numeri nella prima
riga della tabella provengono dalla soluzione originale nel foglio elettronico prima che il
valore originale nella cella dati sia cambiato).
La tabella mostra come la soluzione ottima rimane la stessa per valori di PD compresi
tra 1000 e 7000 dollari (e forse anche per valori più bassi), mentre un cambiamento si verifica da qualche parte tra 7000 e 8000 dollari. Successivamente, per determinare molto attentamente dove cambia la soluzione ottima, si potrebbero considerare sistematicamente
valori di PD compresi tra 7000 e 8000 dollari . Tuttavia, questo non è necessario dato che,
come verrà discusso subito dopo, una scorciatoia consiste nell 'usare il report di sensitività
di Excel per dete1minare esattamente quando cambia la soluzione ottima.
Finora, è stato illustrato come studiare sistematicamente l 'effetto della sola modifica di
PD (cella C4 nella Figura 6.8). Per P w (cella D4) l'approccio è lo stesso. Infatti, l'add-in
Solver Table può essere usato allo stesso modo per studiare l'effetto del cambiamento nel
modello di qualunque singola cella di dati .
In seguito ve1rà illush·ato come studiare cambiamenti simultanei in due celle di dati
con un foglio elettronico.
Cambiamenti di due parametri nel modello
Quando sono utilizzate le valutazioni originali per PD (3000 dollari) e per P w (5000 dollari), la soluzione ottima indicata dal modello (Figura 6.8) viene fortemente spostata verso
la produzione di finestre (6 lotti alla settimana) piuttosto che di pmte (solo 2 lotti alla settimana). Si supponga che il management della Wyndor sia interessato a tale squilibrio e ritenga che ciò possa essere causato dal fatto che la stima di PD sia troppo bassa e quella di
P w troppo alta. Tutto questo solleva la seguente questione: se le stime sono effettivamente
errate, un combinazione di produzione più equilibrata è nella realtà più vantaggiosa? Si
tenga presente che ai fini della determinazione della soluzione ottima la cosa importante è
il rapporto tra P w e PD e quindi nuove stime che lasciano questo rappmto sostanzialmente inalterato non cambiano la soluzi one ottima già determinata.
FIGURA
Un 'applica;
di porte nel
6 .8
219
ANALISI DELLA SENSITIVITÀ MEDIANTE FOGLIO ELETTRONICO
c
8
E
D
Problema Wyndor Glass
Profitto per lotto
1
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
FinesHe
3000
5000
Ore per lotto Prodotto
1
o
2
n
2
3
3
2
NumE-ro lotti prodotti
Profitto per lotto
Porte
Ore
UtiliZZ<itl?
",.
,
Ore
Disponibili
2
12
18
s;
~
~
4
12
18
Porte
Finestre
Profitto
Totale
2
s
3SOIJO
Soluzione Ottima
Porte
Finestre
2
2
2
2
2
2
2
2
4
4
4
6
6
6
6
6
6
6
6
3
3
3
Profitto
Totale
36000
32000
34000
36000
3$000
40000
42000
44000
47000
51000
55000
FIGURA6.13
Un'applicazione dell'add-in Table Solver che mostra l'effetto del la variazione sistematica del la stima del profitto per lotto
di porte nel prob lema Wyndor.
Alla domanda precedente può essere risposto rapidamente sostituendo le nuove stime dei
profitti per lotto nel foglio elettronico originale di Figura 6.8. La Figura 6.14 indica che
nuove valutazioni di 4500 dollari per le porte e di 4000 dollari per le finestre non causa
nessun cambiamento nella soluzione ottima del prodotto (il profitto totale cambia a causa
dei cambiamenti nei profitti per lotto). Cambiamenti più grandi nelle valutazioni dei profitti per lotto conducono a un cambiamento nella combinazione ottima del prodotto? La
Figura 6.15 mostra che ciò accade, determinando una combinazione di prodotti relativamente equilibrata con (x~, x 2 ) = (4, 3), quando vengono usate valutazioni di 6000 dollari
per le pmte e di 3000 dollari per le finestre.
Le Figure 6.14 e 6.15 non rivelano però quando cambia il mix ottimo dei prodotti
quando le valutazioni del profitto aumentano da 4500 a 6000 dollari per le porte e diminuiscono da 4000 a 3000 dollari quelle per le finestre.
220
CAPITOlO 6
TEORIA DEllA DUAliTÀ E ANAliSI DEllA SENSITIVITÀ
c
8
A
D
Problema Wyndor Glass
Finestre
4000
Profitto per lotto
Ore
Utilizzate
,.
Ore per lotto Prodotto
o
1
1
2
o
3
3
2
12
18
l'
2
2
Ore
Disponibili
r
~
4
~
12
18
~
Profitto
Totale
33000
Numero lotti prodotti
FIGURA
• FIGURA 6.14
~pansione
Problema Wyndor modificato; le stime dei profitti per lotto di porte e finestre sono state modificate, rispettivamente,
in P0 = 4500 dollari e Pw = 4000 dollari : la soluzione ottima non cambia.
Solver per r
e fi nestre P'
c
8
A
D
E
Problema Wyndor Glass
Profitto per lotto
1
2
3
Numero lotti prodotti
•
Porte
Finestre
6000
3000
Ore per lotto Prodotto
1
o
Ore
Disponibili
Ore
Utilizzate
,
,.
,
4
6
$
$
12
18
$
Porte
18
Profitto
Totale
4
33000
o
3
2
2
4
FIGURA 6.15
Prob lema Wyndor modificato; le stime dei profitti per lotto di porte e finestre sono state modificate, rispettivamente,
in P0 = 6000 dollari e Pw = 3000 dollari: la soluzione ottima cambia.
Uso di Table Solver per l'analisi della sensitività per 2 parametri
Una versione bidimensionale dell'add-in Table Solver fornisce un modo sistematico di
studiare l'effetto di modificare le stime inserite in due celle di dati simultaneamente (due è
il numero massimo di celle dati che può essere considerato simultaneamente da Table
Solver).
Per illustrare questo approccio, verrà studiato ancora l'effetto di far aumentare P 0 e diminuire P w in maniera simultanea. Prima di considerare l'effetto sulla combinazione ottima del prodotto, verrà osservato l'effetto sul profitto totale. Per fare ciò, si può utilizzare
Row input c
Column inpL
6.8
221
ANALISI DELLA SENSITIVITÀ MEDIANTE FOGLIO ELETTRONICO
Tab le Solver per mostrare come varia TotalProfit (G 12) nella Figura 6.8 per un intervallo
di valori di prova nelle due celle di dati, (C4:D4). Per ogni coppia di valori in queste celle
verrà risolto un nuovo problema.
Per generare queste informazioni bidimensionali per il problema Wyndor, occorre
espandere il foglio elettronico originale (Figura 6.8) in modo da creare una tabella con le
intestazioni di riga e di colonna come indicato nelle righe 16-21 del foglio elettronico della Figura 6.16. Nell'angolo superiore sinistro della tabella (Cl7), è necessario scrivere
un'equazione(= TotalProfit) che si riferisce alla cella obiettivo. Nella prima colonna della tabella (colonna C, sotto l'equazione nella cella Cl7), bisogna poi inserire i valori per
la prima cella di dati (il profitto per lotto delle porte). Nella prima riga della tabella (riga
17, alla destra dell'equazione nella cella Cl7), occorre infine inserire i vari valori di prova
per la seconda cella dati (il profitto per lotto delle finestre).
Successivamente, basta selezionare l 'intera tabella (C 17 :H21) e scegliere T ab le Solver
dal menu Strumenti. Nella finestra di dialogo di Table Solver (indicata nella parte inferiore della Figura 6.16), va indicato quali celle dati cambiano simultaneamente.
FIGURA6.16
:.Spansione del foglio elettronico riportato nella Figura 6.8 in modo da usare la forma bid imensiona le del l'add-in Table
Solver per mostrare l'effetto sui profitti totali in seguito alla variazione sistematica delle stime dei profitti per lotto di porte
e fi nestre per il problema Wyndor.
c
B
A
D
Problema Wyndor Glass
Porte
Finestre
6000
3000
Profitto per lotto
Ore
Utilizzate
,
Ore per lotto Prodotto
1
o
3
2
2
o
2
3
,
,
-
4
6
~
4
~
12
18
~
18
Porte
Finestre
Profitto
Totale
4
3
33000
Numero lotti prodotti
-
1
Ore
Disponibili
-
Profitto Totale
Profitto per lotto per le finestre
33000
3000
4000
3000
4000
Profitto per lotto
per le porte
Row input celi:
04
_d
Column input celi:
c~
OJ
Canee l
OK
l
1000
2000
3000
4000
5000
222
15
16
17
18
19
20
21
CAPITOLO 6
c
8
A
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
D
Profitto Totale
E
F
G
H
Profitto per lottoper le finestre
36000
3000
4000
5000
6000
Profitto per lotto
per le porte
1000
15000
19000
23000
27000
2000
18000
22000
26000
30000
3000
24000
26000
29000
33000
4000
30000
32000
34000
36000
5000
36000
38000
40000
42000
• FIGURA 6.17
Un'applicazione dell'add-in Table Solver che mostra l'effetto sui profitti totali in seguito alla variazione sistematica delle
valutazioni dei profitti per lotto di porte e finestre per il problema Wyndor.
La colonna della cella di input C4 si riferisce alla cella dati i cui vari valori di prova sono
elencati nella prima colonna della tabella (C18:C21), mentre la riga di ingresso della cella
D4 si riferisce alla cella dati i cui vari valori di prova sono elencati nella prima riga della
tabella (D 17 :H 17).
La tabella mostrata nella Figura 6.17 viene quindi generata automaticamente cliccando
sul pulsante OK. Per ogni coppia di valori per le due celle di dati, viene risolto un nuovo
problema e quindi viene inserito nella tabella il profitto totale corrispondente (il valore in
Cl7 proviene dalla cella obiettivo del foglio elettronico originale prima che i valori originali nelle due celle dati siano cambiati).
A differenza del caso unidimensionale che può mostrare i risultati di celle modificabili
multiple e/o di celle di output per vari valori della singola cella dati, nel caso bidimensionale è possibile solo mostrare i risultati in una cella per ogni coppia dei valori di prova
nelle due celle dati scelte. Tuttavia, grazie all'uso del simbolo & è possibile mostrare i risultati di modifiche di più celle e/o a celle di output all' interno di una cella della tabella.
Questo trucco è utilizzato come mostrato nella Figura 6.18 per detenninare i risultati per
entrambe le celle modificabili, Cl2 e Dl2, per ogni coppia dei valori di prova per C4:D4.
La formula chiave si trova nella cella C25:
C25 = "("& C12 &", "& D12 &")"
• FIGURA 6.18
Un'applicazione dell'add-in Table Solver che mostra l'effetto sul soluzione ottima in seguito alla variazione sistematica
delle stime dei profitti per lotto di porte e finestre per il problema Wyndor.
23
24
25
26
27
28
29
c
8
A
D
Profitto Totale
(2,6)
3000
4000
5000
6000
Profitto per lotto
Jler le porte
c
251="("
&
C12
& "," &
D12
& ")"
Row input celi:
D4
..d
Column input celi:
c~
::1
Canee!
E
F
G
H
Profitto per lotto per le finestre
OK
l
1000
(4,3)
(4,3)
(4,3)
(4,3)
2000
(4,3)
(4,3)
(4,3)
(4,3)
3000
(2,6)
- (2,6)
(4,3)
(4,3)
4000
(2,6)
(2,6)
(2,6)
(4,3)
5000
(2,6)
(2,6)
(2,6)
(4,3)
FIGURJ
Parte del n
sensitività
Risolutore ;
problema'
originale (F
ultime tre c
identifica n•
ottimalità F
lotto di por
6.8
• FIGURA6.19
Parte del repo rt di
sensitività generato con il
Risolutore di Excel per il
problema Wyndor
originale (Figura 6.8); le
ultime tre colonne
identificano gli intervalli di
ottimalità per i profitti per
lotto di porte e finestre.
223
ANALISI DELLA SENSITIVITÀ MEDIANTE FOGLIO ELETTRONICO
Celle modificabili
Cella
$C$12
$D$12
Nome
Lotti di porte prodotti
Lotti di finestre prodotti
Valore Costo
finale ridotto
2
6
o
o
Consentito Consentito
Oggettivo
coefficiente incremento decremento
3000
5000
4500
l E+30
3000
3000
Il carattere & impone a Excel di concatenare, così che il risultato sarà una parentesi sinistra, seguita dal valore della cella Cl2, quindi una virgola e il valore di D12 e infine una
parentesi destra. Se C12=2 e Dl2=6, il risultato è (2, 6). Quindi, i risultati da entrambe
le celle modificabili sono visualizzati all'interno di una cella della tabella.
Dopo le usuali operazioni preliminari per fornire le informazioni indicate nelle righe
24-25 e colonne B-C della Figura 6.18, insieme con la formu la in C25, cliccando sul pulsante OK viene generata automaticamente l' intera tabella. Le celle D26:H29 mostrano la
soluzione ottima per le varie combinazioni per i profitti per lotto delle porte e delle finestre. L'angolo superiore destro (cella H26) di questa tabella fornisce la soluzione ottima di
(x~> x 2 ) = (2, 6) quando si usano le valutazioni originali del profitto pari a 3000 dollari
per il lotto delle porte e a 5000 dollari per il lotto delle finestre. Movendosi in basso a partire da tale cella si aumenta la valutazione per le porte mentre il movimento verso sinistra
corrisponde a fare diminuire la valutazione delle finestre. Si può notare che (x 1, x 2 ) = (2,
6) continua a essere la soluzione ottima per tutte le çelle vicino a H26. Ciò indica che le
valutazioni originali del profitto per lotto devono essere sostanzialmente inesatte prima
che la combinazione ottima del prodotto venga cambiata.
Uso del report di sensitività per eseguire l'analisi della sensitività
Una analisi della sensitività preliminare può essere effettuata prontamente mediante un foglio elettronico o in modo interattivo, applicando i cambiamenti nelle celle dati e risolvendo, oppure usando l'add-in Table Solver per generare sistematicamente informazioni simili. Tuttavia, esiste una scorciatoia. Le stesse informazioni (e più) possono essere ottenute
più velocemente e in maniera più precisa usando semplicemente il rapporto di sensitività
fornito dal Risolutore di Excel (essenzialmente lo stesso rapporto di sensitività è un componente standard del!' output disponibile in altri pacchetti software per la programmazione
lineare, compreso MPLICPLEX, LINDO e LINGO).
Nel Paragrafo 4.7 si è già visto come esso è usato per eseguire l' analisi di sensitività.
La Figura 4.1 O in quel paragrafo mostra il rapporto di sensitività per il problema Wyndor.
Parte di questo rapporto è mostrata nella Figura 6.19. Piuttosto che ripetere le considerazioni fatte nel Paragrafo 4.7, l'attenzione verrà centrata su come il rapporto di sensitività
può essere efficientemente indirizzato per rispondere alle specifiche questioni sollevate
nei precedenti sottoparagrafi per il problema Wyndor.
La domanda considerata nei primi due sottoparagrafi era di quanto ci si poteva discostare dalla valutazione iniziale di 3000 dollari per Pn prima che cambiasse la soluzione ottima corrente, (x 1, x 2 ) = (2, 6). Le Figure 6.1 Oe 6.11 hanno mostrato che la soluzione ottima non cambia fino a quando PD non è aumentato tra 5000 e l O000 dollari. La Figura
6.13 ha quindi ristretto l' intervallo in cui la soluzione ottima cambia (tra 7000 e 8000 dollari). Inoltre, se la valutazione iniziale di 3000 dollari per Pn è troppo alta piuttosto che
troppo bassa, prima che la soluzione ottima cambi, Pn dovrebbe assumere un valore inferiore a l 000 dollari.
Si osservi adesso come la parte del rapporto di sensitività della Figura 6.19 risolva questo stesso problema. La riga DoorBatchesProduced in questo rapporto fornisce le seguenti
224
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
informazioni (senza il simbolo dollaro) per P 0
Valore corrente di P 0 :
Aumento permesso in P0 :
Decremento permesso in P0 :
Intervallo di ottimalità per P0
3000
4500
3000
e quindi P0 ~ 3000 + 4500 = 7500
e quindi P0 2': 3000 - 3000 = O
O ~ P0 ~ 7500
:
Di conseguenza, se P 0 cambia rispetto al suo valore attuale (senza nessun altro cambiamento nel modello), la soluzione corrente (x 1, x 2) = (2, 6) rimarrà ottima a condizione
che il nuovo valore di P 0 sia all'interno di questo intervallo di ottimalità
O ~ Po ~ 7500 dollari.
La Figura 6.20 mostra graficamente che questo è proprio l'intervallo di· ottimalità. Per
il valore originale di Pn = 3000, la linea continua nella figura mostra la pendenza della
retta che rappresenta la funzione obiettivo per il punto (2, 6). In corrispondenza dell'estremo inferiore dell ' intervallo di ottirnalità (P 0 = 0), la retta per (2, 6) coincide con la linea
B in figura e così ogni punto sul segmento di estremi (0, 6) e (2, 6) è una soluzione ottima. Per qualunque valore di Pn < O, la retta che rappresenta la funzione obiettivo ruota
ulteriormente cosicché (0, 6) diventa l 'unica soluzione ottima. In corrispondenza dell'estremo superiore dell'intervallo di ottimalità (Pn = 7500), la retta che rappresenta la funzione obiettivo per (2, 6) coincide con la linea C e così ogni punto sul segmento di estremi (2, 6) e (4, 3) diventa una soluzione ottima. Per qualsiasi valore di P n > 7500, questa
retta presenta una pendenza maggiore di quella della linea C, e così il punto (4, 3) diventa
l'unica soluzione ottima. Di conseguenza, la soluzione ottima originale, (x" x 2 ) = (2, 6)
rimane ottima solo fin tanto che O ~ P 0 ~ 7500.
Tasso di produzione
per le finestre
\,
/ ( 2 , 6) soluzione ottima per
'
---{) LineaB ',
• FIGURA 6.20
Le due linee tratteggiate
che attraversano le linee
continue che definiscono
la frontiera rappresentano
la funzione obiettivo
quando P0 (il profitto per
lotto di porte) assume il
minimo e il massimo
valore nell'intervallo di
ottimalità, O ::::; P0 ::::; 7500;
per ogni valore intermedio
la soluzione ottima
continua a essere (x1 , x2 )
= (2, 6) .
_
O 5. P0 5.7500
_ _ _ Po =O
4
P0 =3000
2
Regione
ammissibile
, Po =7500
Linea A
o
4
2
6
Tasso di produzione per le porte
xl
6.8
ANALISI DELLA SENSITIVITÀ MEDIANTE FOGLIO ELETTRONICO
225
Conclusione: l'intervallo di valori di PD in cui la soluzione corrente rimane ottima è
O :S: PD :S: 7500. Il punto (xt, x 2 ) = (2, 6) rimane ottimo solo in questo intervallo e
non oltre (quando PD = O o PD = 7500 dollari, si è in presenza di soluzioni ottime
multiple, ma (x 1, x 2) = (2, 6) è ancora una di esse). Con un intervallo di valori così
grande, si può essere abbastanza sicuri che la soluzione ottenuta à la corretta soluzione ottima per il profitto reale.
Adesso si riconsideri la questione sollevata nei due sottoparagrafi precedenti. Che cosa accade se la valutazione di PD (3000 dollari) fosse troppo bassa e la valutazione di Pw
(5000 dollari) fosse allo stesso tempo troppo alta? In particolare, quali sono i valori limite
prima che la soluzione ottima corrente (x 1, x 2 ) = (2, 6) cambi?
La Figura 6.14 ha mostrato che se PD venisse aumentata di 1500 dollari (da 3000 a
4500 dollari) e P w venisse decrementata di 1000 dollari (da 5000 a 4000 dollari), la soluzione ottima rimarrebbe la stessa. La Figura 6.15 ha poi indicato che raddoppiare questi
cambiamenti provocherebbe un cambiamento nella soluzione ottima. Tuttavia, è poco
chiaro quando avviene il cambiamento nella soluzione ottima. La Figura 6.18 ha fornito
ulteriori informazioni ma non una risposta definitiva a questo problema.
Fortunatamente, informazioni aggiuntive possono essere ottenute dal rapporto di sensitività (Figura 6.19) usando i relativi incrementi e decrementi ammissibili in P D e P W· Il
concetto chiave consiste nell'applicare la seguente regola (come specificato prima nel
Paragrafo 6.7).
La regola dellOO percento per cambiamenti simultanei di più coefficienti della
funzione obiettivo: se i coefficienti della funzione obiettivo vengono simultaneamente modificati, bisogna calcolare, per ogni cambiamento, la percentuale del cambiamento (aumento o diminuzione) rispetto all'intervallo di ottimalità. Se la somma
dei cambiamenti percentuali non supera il l 00 percento, la soluzione ottima originale continuerà a essere ancora ottima (se la somma supera il 100 percento, non vi è
certezza di questo).
La regola non spiega cosa accade se la somma dei cambiamenti percentuali supera il l 00
percento. Questo dipende da come vengono effettuati i cambiamenti nei coefficienti.
Occorre ricordare che per la determinazione della soluzione ottima ciò che è importante è il
rapporto tra i coefficienti, così la soluzione ottima originale può in effetti rimanere ottima
anche quando la somma dei cambiamenti percentuali supera di molto il l 00 percento se i
cambiamenti nei coefficienti sono fatti nella stessa direzione. Quindi, superare il l 00 percento può o non cambiare la soluzione ottima, mentre a condizione che il l 00 percento non
venga oltrepassato la soluzione ottima originale continuerà a essere sicuramente ottima.
Occorre tenere presente che si può usare l 'intero aumento o diminuzione ammissibile
in un singolo coefficiente della funzione obiettivo solo se nessuno degli altri coefficienti è
cambiato. In presenza di cambiamenti simultanei nei coefficienti, l'attenzione viene focalizzata sulla percentuale di aumento o diminuzione ammissibile per ciascun coefficiente.
Come esempio, si consideri ancora il problema Wyndor, con le informazioni fornite dal
rapporto di sensitività riportato nella Figura 6.19. Si supponga adesso che la valutazione di
PD sia aumentata da 3000 a 4500 dollari, mentre la valutazione di P w venga diminuita da
5000 a 4000 dollari. I calcoli per la regola del l 00 percento forniscono i seguenti dati
PD: 3000 -+ 4500
. "b"l
Percentua le d1. aumento amm1ss1
1 e = l 00 ( 4500 - 3000) (}1
10
4500
= 33 .3%
p w: 5000 -+ 4000
p ercentuale d"d
. "b"l
1 ecremento amm1ss1
1e
= loo(5000-4000) (}110
3000
= 33.3 %
Somma = 66.6%
226
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
Dato che la somma delle percentuali non supera il l 00 percento, la soluzione ottima originale
(x 1,x 2) = (2, 6) continua a essere ottima, così come è stato trovato prima nella Figura 6.14.
Si supponga adesso che la valutazione di PD sia aumentata da 3000 a 6000 mentre la
valutazione di P w venga diminuita da 5000 a 3000. I calcoli per la regola del l 00 percento sono adesso
PD: 3000 --> 6000
Percentua1e d.1 aumento arruruss1
. .b.11e = l oo(6ooo -3ooo) rco
4500
66.6%
Pw: 5000 _, 3000
.
.
. 'b'l
P ercentua le d1. d'1mmuz1one
amm1ss1
1 e = l 00 ( 5000 - 3000 ) w
10 =
3000
66.6%
Somma= 133.3 %
Poiché adesso la somma supera il l 00 percento, la regola del l 00 percento afferma che
non si può più garantire che (xi. x 2) = (2, 6) sia ancora ottima. Infatti, in questo caso la
nuova soluzione ottima è cambiata in (xi. x 2) = (4, 3) (Figure 6.15 e 6.18).
Questi risultati suggeriscono come trovare esattamente quando cambia la soluzione ottima quando PD aumenta e P w diminuisce. Poiché il 100 percento è proprio a metà strada tra 66.6 percento e 133.3 percento, la somma delle modifiche percentuali sarà uguale
al 100 percento quando i valori di PD e P w sono a metà strada tra i loro valori nei suddetti casi. In particolare, PD = 5250 dollari è il valore intermedio tra 4500 e 6000 dollari e
P w = 3500 dollari è il valore intermedio fra 4000 e 3000 dollari. I calcoli corrispondenti
per la regola del l 00 percento sono
PD: 3000 --> 5250
p ercentua le d'1 aumento amm1ss1
. 'b'l1 e = l 00 ( 5250- 3000) o/co
4500
50%
Pw: 5000 --> 3500
p ercentuale d1' d'1mmuz1one
.
.
. 'b 1'le = l 00 ( 5000 - 3500) o/co = 50%
amm1ss1
3000
Somma = 100%
Anche se la somma è uguale al 100 percento, il fatto che non supera il 100 percento garantisce che (xi. x 2) = (2, 6) è ancora una soluzione ottima. La Figura 6.21 mostra graficamente che entrambe le soluzioni (2, 6) e (4, 3) sono adesso ottime, così come tutti i punti
sul segmento che li collega. Tuttavia, se PD e P w dovessero essere ulteriormente cambiate
rispetto ai loro valori originali (in modo che la somma delle percentuali superi il l 00 percento), il punto (xi. x 2 ) = (4, 3) diventerebbe l'unica soluzione ottima.
Allo stesso tempo, occorre tenere presente che, quando la somma delle percentuali dei
cambiamenti ammissibili supera il l 00 percento, questo non implica automaticamente che
la soluzione ottima cambierà. Per esempio, si supponga che le valutazioni di entrambi i
profitti unitari sono divisi in due. I calcoli risultanti per la regola del 100 percento sono
PD: 3000 _, 1500
.
.
. 'b'l
P ercentua le d1. d'1mmuz1one
amm1ss1
1 e = l 00 ( 3000 - 1500) w
10
3000
50%
Pw: 5000 --> 2500
.
.
. 'b'l
Percentuale d 1. d'1mmuz1one
amm1ss1
1 e = l 00 ( 5000 - 2500) w
10
3000
83.3 %
Somma = 133 .3%
FIGURA
Quando le
profitti per
fi nestre ve n
in P0 = 52~
e Pw = 350
massimo pc
secondo la
oercento, il
grafico mos
= (2, 6) è ar
soluzione ot
adesso, a ncl
altro punto
a questa se
r4, 3) è ottir
1
6.8
227
ANALISI DEllA SENSITIVITÀ MEDIANTE FOGLIO ElETTRONICO
x2
Tasso di produzione
per le finestre
10
La funzione obiettivo è
Profitto= $31500 = 5250x 1 + 3500x2
poiché Pv= $5250 e P w= $3500
Tutti i punti sul segmento
sono soluzioni ottime
/
FIGURA6.21
Quando le valutazioni dei
profitti per lotto di porte e
finestre vengono cambiate
in P0 = 5250
e Pw = 3500 che è il
m assi mo possibile
secondo la regola del l 00
oercento, il metodo
grafico mostra che (x,, Xz)
= (2, 6) è ancora una
sol uzione ottima, ma,
adesso, anche qualunque
altro punto sul segmento
rra questa soluzione e
4, 3) è ottimo .
Regione
ammissibile
o
2
4
8
Tasso di produzione per le porte
Ar~vne se questa somma supera il l 00 percento, la Figura 6.22 mostra che la soluzione ottima originale è ancora ottima. Infatti, la retta che rappresenta la funzione obiettivo ha la
stessa pendenza della retta originale (la linea continua nella Figura 6.20). Ciò accade ogni
volta che cambiamenti proporzionali sono fatti a tutte le valutazioni del profitto che condurranno automaticamente alla stessa soluzione ottima.
Altri tipi di analisi della sensitività
Questa paragrafo ha focalizzato l'attenzione su come utilizzare un foglio elettronico per
stLldi,m; l'effetto dei cambiamenti dei coefficienti delle variabili della funzione obiettivo.
c;;:-'·,,o si è interessati a studiare dell'effetto di cambiamenti dei termini noti dei vincoli
funzionali. A volte, si ·potrebbe persino desiderare di controllare se la soluzione ottima
cambia nel caso in cui le modifiche devono essere fatte in alcuni coefficienti dei vincoli
funzionali .
L'approccio mediante foglio •elettronico per lo studio di questi altri tipi di cambiamenti
nel modello è virtualmente lo stesso di quèllo per i coefficienti nella funzione obiettivo.
Ancora unà volta, si possono provare tutti i cambiamenti nelle celle dati applicando semplicemente questi cambiamenti sul foglio elettronico e usando il Solutore di Excel per risolvere . il modello. Inoltre, si può controllare sistematicamente l'effetto di una serie di
cambiamenti in una o due celle dati usando l'add-in T ab le ·Solver. Come già descritto nel
Paragrafo 4.7, il rapporto di sensi ti vita generato daJ .Risolutore di Ex ce l (o qualunque altro
pacchetto software per la programmazione lineare) fomìsce anche informazioni importan. ti, compreso i prezzi ombra, per quanto riguarda l'effetto di cambiare i termini noti di un
singolo vincolo funzionale. Quando si cambiano simultaneamente più termini noti, esiste
228
CAPITOLO 6
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
x2
Tasso di produzione
per le finestre
10
Profitto= $18 000
= 1500x1 + 2 SOO.xz
RIFE
• FIGURA 6.22
Quando le va lutazioni dei
profitti per lotto di porte e
finestre vengono cambiate
in Po = 1500 e Pw = 2500
(metà dei loro valori
originali), il metodo
grafico mostra che la
so luzione corrente è
ancora ottima, anche se il
cambiamento percentuale
totale supera il l 00
percento .
Regione
ammissibile
o
4
6
Tasso di produzione per le porte
" una regola del l 00 percento" analoga alla regola del l 00 percento per cambiamenti simultanei nei coefficienti della funzione obiettivo (si faccia riferimento al Caso l del
Paragrafo 6.7 per i particolari su come studiare l'effetto dei cambiamenti dei termini noti.
compresa l'applicazione della regola del 100 percento per i cambiamenti simultanei nei
termini noti).
~
6.9
CONCLUSIONI
A ogni problema di programmazione lineare è associato un problema di programmazione
lineare duale. Vi sono relazioni molto utili tra il problema (primale) originale e il relativo
problema duale che aumentano la capacità di analizzare il problema primale. Per esempio, l'interpretazione economica del problema duale fornisce i prezzi ombra che misurano il valore marginale delle risorse nel problema primale e forniscono un 'interpretazione
del metodo del simplesso. Il metodo del simplesso può essere applicato direttamente all'uno o all ' altro problema per risolvere simultaneamente entrambi. La teoria della dualità, compreso il metodo del simplesso duale per il funzionamento con le soluzioni di base
superottime, svolge inoltre un ruolo importante nell'analisi della sensitività.
I valori usati per i parametri di un modello di programmazione lineare sono generalmente delle stime. Di conseguenza, è necessaria una analisi della sensitività per studiare
che cosa accade se queste valutazioni sono errate. I risultati del Paragrafo 5.3 forniscono
la chiave per realizzare questa analisi in modo efficiente. Gli obiettivi generali sono identificare i parametri sensibili che influenzano la soluzione ottima, valutare molto più attentamente questi parametri sensibili e, quindi, selezionare una soluzione che rimane buona
per la gamma di valori probabili dei parametri sensibili. Questa analisi è una parte molto
importante della maggior parte degli studi di programmazione lineare.
PROE
re, indicar.
zione.
a) Massimiz;
soggetto a
3x l XJ-
Sx1
XJ
;
2;
+ J
+ )
2xl-
.l
e
XJ
2 O,
a) Massimizz:
soggetto ai
e
XJ
+ 3x
4xl
+ 6x
229
PROBLEMI
Con l'aiuto del Risolutore di Excel, i fogli elettronici forniscono inoltre alcuni metodi utili
per effettuare l'analisi della sensitività. Un metodo è fornire ripetutamente i nuovi valori
di uno o più parametri del modello nel foglio elettronico e quindi risolvere il problema per
verificare immediatamente se la soluzione ottima cambia. Un secondo metodo è verificare
sistematicamente l'effetto di applicare una serie dei cambiamenti in uno o due parametri
del modello. Un terzo metodo consiste nell'usare il rapporto di sensitività fornito dal
Risolutore di Excel per identificare l' intervallo ammissibile per restare ottimi per i coefficienti della funzione obiettiva, i prezzi ombra per i vincoli funzionali e l'intervallo ammissibile per ogni parte destra in cui il prezzo ombra rimane valido.
RIFERIMENTI BIBLIOGRAFICI
l. Bertsimas, D ., e J.N. Tsitsiklis: lntroduction to Linear Optimization, Athena Scientific,
Belmont, MA, 1997.
2. Dantzig, G.B., e M .N. Thapa: Linear Programming 1: lntroduction , Springer, New York,
1997.
3. Ga l, T., e H. Greenberg (eds.): Advances in Sensitivity Analysis and Parametric Programming,
K.luwer Academic Publishers, Boston, MA, 1997.
4. Higle, J.L., e S.W. Wallace : "Sensitivity Analysis and Uncertainty in Linear Programming",
l nterfaces, 33(4): 53-60, July-August 2003.
5. Hi llier, F.S. , e M.S. Hillier: lntroduction to Management Science: A Modeling and Case Studies
Approach with Spreadsheets, 2nd ed., McGraw-Hill/lrwin, Burr Ridge, IL, 2003, chap. 5.
6. Vanderbei, R.J.: Linear Programming: Foundations and Extensions, 2nd ed. , K.luwer
Academic Publishers, Boston, MA, 200 l.
PROBLEMI
'.1-l. Per ciascuno dei seguenti modelli di programmazione liindicare qual è il modo più efficiente (probabilmente) per
enere una soluzione ottima: applicando il metodo del simples: direttamente a questo problema primale o, invece, applicando
metodo del simplesso al problema duale. Fornire una spiegazione.
6.1-2. Si consideri il seguente problema.
~e,
a) Mass imizzare
Z = lOx, - 4x2
+ 7x3
Massimizzare
soggetto ai vincoli
+ 2x3 ::; 25
+ 3x3 ::; 25
+ 2x3 ::; 40
+ X3 :S: 90
+ X3 :S: 20
x , 2: O,
X2 2: O,
e
soggetto ai vincoli
x,
4x,
+ 3x2 + 2x3 + 3x4 + xs :S: 6
+ 6x2 + 5x3 + 7x4 + xs ::; 15
e
Xj
2: O,
per j = l , 2, 3, 4, 5.
x,
2: O,
::; 12
x3::; l
X2 2: O,
X3 2:
o.
6.1-3. Considerare il seguente problema.
Massimizzare
Z = 2x 1 + 6x2 + 9x3
soggetto ai vincoli
X3 2: O.
Z = 2x 1 + 5x2 + 3x3
+ x2 + 2x3
(a) Costruire il problema duale.
(b) Usare la teoria della dualità per mostrare che per la soluzione ottima per il problema primale si ha Z ::; O.
e
a Massimizzare
x,
x, +x2-
soggetto ai vincoli
3x, - x2
x, - 2x2
5x, + x2
X1 + X2
2x 1 - X2
Z = 2x, - 2x2 - X3
Xl+ X3
X2 + 2x3
+ 4x4 + x 5
:S: 3
:S: 5
(risorsa l)
(risorsa 2)
e
(a) Costruire il problema duale per questo problema primale.
(b) Risolvere il problema duale graficamente. Usare questa soluzione per identifi care i prezzi ombra.
230
CAPITOLO 6
TEO RIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
6.1-4. Si consideri il seguente problema.
Massimizzare
Z
=x, + 2xz
soggetto ai vincoli
-x, +x2::; -2
4x 1 +xz::; - 4
e
x, 2: O,
2: O.
X2
(a) Dimostrare graficamente che questo problema non ha soluzioni ammissibili.
(b) Costruire il problema duale.
6.1-5. Costruire e rappresentare graficamente un problema primate con due variabili decisionali e due vincoli funzionali che
ha soluzioni ammissibili e funzione obiettivo illimitata. Costruire,
quindi, il problema duale e mostrare graficamente che non ha soluzioni ammissibili.
6.1-6. Costruire una coppia di prob lem i primate-duale, ciascuno
con due vari abi li decisionali e due vincoli funziona li, tali che entrambi i problemi non abbiano soluzioni ammissibili. Mostrare
graficamente questa proprietà.
6.1-7. Costruire una coppia di problemi primale-duale, ciascuno
con due variabil i decisionali e due vincoli funzionali, tali che il
problema primate non abbia soluzioni amm issibili e il problema
duale abbia funzione ob iettivo ill imitata.
6.1-8. Si considerino i problemi primali e duali nella forma standard come mostrati ali ' inizio del Paragrafo 6.1. Sia y* una soluzione ottima per questo problema duale. Si supponga, quindi,
che b venga sostituito da b. Sia ora x una soluzione ottima per il
nuovo problema primale. Dimostrare che
6.3-2. Si supponga che un problema primate abbia come soluzione ottima una BFS degenere (una o più variabili di base
uguali a zero). Che cosa implica questa condizione per il problema duale? Perché? È anche vero il contrario?
6.3-3. Si consideri il seguente problema.
Mass imizzare
X! -X2
x 1 -2x
2x, + x
x1 2: O,
xz 2: O.
ne ottima per ispezione.
(b) Usare la proprietà di complementarità per le variabili slack e
la soluzione ottima per il problema duale per trovare la soluzione ottima per il problema primale.
(c) Supporre che c" il coefficiente di x 1 nella funzione obiettivo
primate, possa in realtà assumere qualunque valore nel mode ll o. Per quali valori di c 1 il prob lema duale non ha soluzioni ammissibili? Per questi valori, che cosa implica la teoria
della dualità relativamente al problema primate?
+ 2x2::;
20
x 1 +2x2::; 10
e
x, 2: O,
X2
2:
o.
(a) Costruire il problema duale per questo problema prim.ale.
(a) DimostJ
obietti v
(b) Costmi
(c) Dimost
zioni an
6.6-1.* Si c
Massimiz
:oggetto ai '
e
Sx,
x 1 2: O,
6.4-1. Si consideri il seguente problema.
(a) La somma del numero di vinco li funzionali e il numero di
variabi li è la stessa per enh·ambi i problemi primale e duale.
(b) A ogn i iterazione, il metodo del simp lesso identifica simultaneamente un vertice per il problema primate e un vertice per
il prob lema duale tale che i valori delle rispettive funzioni
obiettivo siano identici.
(c) Se il problema primate ha funzione obiettivo illimitata, allora il valore ottimo délla funzione obiettivo per il problema
duale deve essere zero.
soggetto ai vincoli
e
(a) Costruire il problema duale e determinare la relativa soluzio-
soggetto ai vinco li
+ 8x2
soggetto ai
:S: [
6.1-9. Per un problema di programmazione lineare in forma
standard e il relativo problema duale, dire se ciascuna delle seguenti affermazioni è vera o falsa giustificando la risposta.
Z = 6x,
M inimiz:
e
Massimizzare
Massimizzare
Z = 2x 1 - 4x2
soggetto ai vincoli
ex ::; y*b.
6.3-1.* Si consideri il seguente problema.
(b) Se i v
cambi
blema
stih1it1
duali'
ori g in;
a -A~
(c) Se i v
sono e
duale '
yA=•
può es
gative)
(b) Risolvere graficamente sia il problema primale sia il problema duale. Identificare i vertic i (ammissibili e non) per entrambi i problemi. Calcolare i va lori della funzione obiettivo
per tutte queste soluzioni.
(c) Usare le informazioni ottenute al punto (b) per costruire una
tabella che elench i le soluzion i di base complementari per
questi prob lemi (usare le stesse intestazioni di co lonna come
per la Tabella 6.9).
x, +2xz =
2x 1 +
6x,
Z = x 1 + xz
3x,
e
Xj
10
x2 2: 2
(x 1 senza vincolo di segno).
(a) Usare il metodo SOB per costmire il problema duale.
(b) Usare la Tabella 6.12 per convettire il problema primale nella forma standard data all'inizio del Paragrafo 6.1 e per costruire il problema duale corrispondente. Mostrare, quindi.
che questo problema duale è equivalente a quello ottenuto al
punto (a).
'
6.4-2. Si considerino i problemi primale-duale nella forma standard presentata in notazione matriciale all ' ini zio del Paragrafo
6.1. Usare soltanto la definizione di problema duale per un problema primale in questa forma per dimostrare ciascuno dei seguenti risultati.
(a) Se i vincoli funziona li per il problema primate Ax ::; b sono
cambiati in Ax = b, l'unico cambiamento risultante nel problema duale è l'eliminazione dei vincoli di nonnegatività, y
2: O. (Suggerimento: i vincoli Ax = b sono equivalenti all'insieme di vincoli Ax::; b e Ax 2: b).
+ 3x2
+ 4x2
2: O,
Il corrisponc
luzione ottin
(O) Z
(l)
+
XJ -
(2)
a) Identifica
equazion
(b)' Costmire
(c) Identifica
re sempn
soluzione
(d) Si suppor
Massirr
soggetto~
231
PROBLEMI
(b) Se i vincoli funzionali per il problema primale Ax ::; b sono
cambiati in Ax ~ b, l'unico cambiamento risultante nel problema duale è che i vincoli di nonnegatività y ~ O sono sostituiti dai vincoli di nonpositività y ::; O, in cui le variabili
duali correnti sono interpretate l'opposto delle variabili duali
originali. (Suggerim ento: i vincoli Ax ~ b sono equivalenti
a -Ax::; - b).
(c) Se i vincoli di nonnegatività per il problema primale x ~ O
sono eliminati, l'unico cambiamento risultante nel problema
duale è quello di sostituire i vincoli funzionali yA ~ c con
yA =c. (Suggerimento: una variabile non vincolata in segno
può essere sostituita con la differenza di due variabili nonnegative).
e
X) ~ O,
6x1
3x,
Xl
xz ~ O.
a) Dimostrare graficamente che questo problema ha funzione
obiettivo illimitata.
) Costruire il problema duale.
c Dimostrare graficamente che il problema duale non ha soluzioni amm issibili.
6-1. * Si consideri il seguente problema.
Z = 3x,
+ Xz + 4x3
x 2 ~ O,
3
l
+-x4 3
l
+ X3 - X4 +
5
17
l
l
5
- - - xs=3
3
3
2
X5 = 3.
5
Identificare la soluzione ottima a partire da questo insieme di
equazioni.
) Costruire il problema duale.
Identificare la soluzione ottima per il problema duale a partire sempre da questo insieme di equazioni. Verificare questa
soluzione ri solvendo graficamente il problema duale.
Si supponga che il problema originale venga cambiato in
Z = 3x 1 + 3xz
soggetto ai vincoli
6x,
3x,
~ O,
X3 ~ O, Xncw ~ O.
Massimizzare
Z = -5x,
+ 5xz + 13x3
+ Xz + 3x3
+ 4x2 + lOx3
::; 20
::; 90
+ 2xz + 5x3 ::; 25
+ 3x2 + 5x3 ::; 20
(1= 1,2,3).
Siano x 4 e x 5 le variabili slack per i due vincoli, il metodo del
simplesso determina il seguente insieme finale di equazioni:
x 3 ~ O.
l
Massimizzare
Xz
soggetto ai vincoli
x1 ~o
+ 5 x4 + 5 x 5 =
O) Z
~ O,
e
corrispondente insieme finale di equazioni che fornisce la so.;:zione ottima è
X2
25
20
6.7-1. * Si consideri il seguente problema.
- x,
12x,
6..l: 1 + 3xz + 5x3 ::; 25
3x 1 + 4x2 + 5x3 ::; 20
2)
+ 3x2 + Sx3 + 3Xnew :S
+ 4x2 + Sx3 + 2Xncw :S
Usare la teoria della dualità per determinare se la precedente
soluzione ottima, con Xnew = O, è ancora ottima.
(g) Usare i concetti fondamentali presentati nel Paragrafo 5.3 per
identificare i coefficienti di Xnew come variabile non di base
nell'insieme finale di equazioni ottenute dopo aver introdotto
Xnew nel modello originale come indicato nel punto (f).
ggetto ai vincoli
(l )
+ x2 + 4x3 + 2Xnew
e
x 1 - 2xz ::; 2
2x 1 + xz ::; 4
x 1 ~ O,
O.
soggetto ai vincoli
Z = 2x,- 3xz
.\ll.assimizzare
XJ ~
Z = 3x,
massimizzare
ggetto ai v inco li
x 1 ~ O,
O,
Usare la teoria della dualità per determinare se la precedente
soluzione ottima rimane ancora ottima.
(e) Usare i concetti fondamentali presentati nel Paragrafo 5.3 per
identificare i nuovi coefficienti di x 2 nell'insieme finale di
equazioni dopo che esso è stato modificato a seguito dei cambiamenti nel problema originale considerati nel punto (d).
(f) Si supponga adesso che l'unico cambiamento nel problema
originale consista nell'introduzione, nel modello, di una nuova variab ile Xnew nel seguente modo:
A-3. Si consideri il seguente problema.
Minimizzare
X2 ~
+ 4x3
(O) Z
= 100
(l)
- x,+xz+3x3+ x4
(2)
16x 1
-2x3 - 4x4+xs=
20
IO.
Si conduca una analisi della sensitività studiando in modo indip endente ciasctmo dei seguenti nove cambiamenti nel modello
originale. Per ogni cambiamento, usare l'analisi della sensitività
per modificare questo insieme di equazioni e convertirlo nella
fom1a adeguata in modo da poter identificare e valutare la soluzione di base con·ente. Quindi, verificare l'ammissibilità e l'ottimalità di questa soluzione (non riottimizzare).
(a) Cambiare il termine noto del vinco lo l in
b, = 30.
(b) Cambiare il termine noto del vincolo 2 in
hz= 70.
(c) Cambiare i te1mini noti
CAPITOLO 6
232
TEORIA DELLA DUALITÀ E ANALISI DELLA SENSITIVITÀ
(d) Cambiare il coefficente di x 3 nella funzione obiettivo in
C3 = 8.
(e) Cambiare i coefficienti di x 1 in
(f) Cambiare i coefficienti di x2 in
(a) Usare l'analisi grafica per determinare l' intervallo di ottimalità per Ct e Cz.
(b) Usare l'analisi algebrica per ricavare e verificare le risposte
fomite al punto (a).
(c) Usare l'analisi grafica per determinare l' intervallo di ammissibilità per b1 e bz.
(d) Usare l'analisi algebrica per ricavare e verificare le risposte
fomite al punto (c).
(e) Usare Excel per detenninare questi intervalli di ammissibilità.
[i valot
risolve
ilprob
6.7-6. Si
Massimi
soggetto ai
2xt
Sx1
(g) Introdurre una nuova variabile x 6 con coefficienti
(h) Introdurre un nuovo vincolo 2x 1
+
3x2
+
5x 3
< 50.
+ lOx3 :'::
e
(a) Detetminare l'intervallo di ammissibilità per ciascun b;.
(b) Determinare l'intervallo di ottimalità per c 1 e c2.
(c) Usare Excel per determinare questi intervalli.
Siano x4 e
avere applic
6.7-5. Si consideri il seguente problema di programmazione lineare parametrico.
Massimizzare
+ 20
Z(O) =(IO- 40)x 1 + (4 - O)x 2 + (7
(per il vincolo l)
e
e (per il vincolo 2),
dove a epuò essere assegnato qualunque valore positivo o nega90 -
tivo.
Esprimere la soluzione di base (e Z) cmTispondente alla soluzione ottima originale come una funzione di Detem1inare i limiti superiori e inferiori di prima che questa soluzione diventi
non ammissibile.
e.
e
3xt
2xt
+ x2 + 2x3 :':: 7
+ x2 + 3x3 :':: 5
(risorsa l),
(risorsa 2),
e
X] 2: O,
X2 2: O,
X3 2: O,
e
in cui a può essere assegnato qualunque valore positivo o negativo. Siano x4 e x 5 le variabili slack per i due vincoli. Dopo
avere applicato il metodo del simplesso con = O, il tableau finale è
e
Variabili
Eq.
di base
z
X2
(O)
(l)
Xl
(2)
Coefficienti di:
z
xl
x2
l
o
o
o
o
o
l
o
l
X3
3
- l
5
e
+ CzXz
Z = CtXt
soggetto ai vincoli
x4
Xs
2
l
-2
- l
3
2
Termini
noti
24
2
l
Xz :':: bz
e
Xt 2: O,
xz
2: O.
Siano x 3 e x4 le variabili slack per i due vincoli funzionali.
Quando c 1 = 3, c2 = 22, b 1 = 30 e b 2 = 10, il metodo del simplesso determina il seguente tableau finale.
Coefficienti di:
Variabili
di base
Eq.
z
X2
(O)
(l)
Xl
(2)
(a) Determinare l'intervallo di valori di per i quali questa BFS
rimarrà ottima. Quindi, trovare la migliore scelta per all'intemo di questo intervallo.
(b) Per i valori di che appartengono all'intervallo trovato al
punto (a), trovare l' intervallo di ammissibilità per b 1 (la
quantità disponibile della risorsa l). Ripetere la ricerca per
b2 (la quantità disponibile della risorsa 2).
(c) Per i valori di che appartengono all'intervallo trovato al
punto (a), identificare i prezzi ombra (in funzione di O) per
le due risorse. Usare queste informazioni per determinare come cambia il valore ottimo della funzione obiettivo (in fun zione di O) se la quantità disponibile della risorsa l fosse diminuita di l e la quantità disponibile della risorsa 2 fosse aumentata simultaneamente di l.
(d) Costruire il duale di questo problema di programmazione lineare parametrico. Porre = O e risolvere graficamente questo problema duale per determinare i prezzi ombra corrispondenti per le due risorse del problema primale. Quindi
trovare algebricamente questi prezzi ombra in funzione di
e
e
2Xt - X2 :':: b t
XI -
z
l
o
o
X1
X2
X3
o
o
o
l
l
l
l
2: O,
Variabili
di base
+ O)x 3
6.7-3. Si consideri il seguente problema.
Massimizzare
XJ
soggetto ai vincoli
100.
6.7-2.* Si consideri di nuovo il Problema 6.7-1. Si supponga
adesso di volere applicare l'analisi parametrica a questo problema. In particolare, i termini noti dei vincoli funzionali sono cambiati in
20
+ 3x
+ 4x
6.7-4. Per il problema originale Wyndor Glass Co., usare l'ultimo tableau della Tabella 4.8 per
(Denotare la sua variabile slack con x 6).
(i) Cambiare il vincolo 2 in
10x 1 + 5xz
C(
l
o
X4
l
-2
- l
Termini
noti
40
lO
20
e
e
e
(a) Si suppc
le per e~
ma. Se l
la esistei
233
PROBLEMI
[i valori di Oappartengono all'intervallo trovato al punto (a)]
risolvendo per questo stesso vertice ammissibile ottimo per
il problema duale in funzione di O.
6.7-6. Si consideri il seguente problema.
Massimizzare
Z = 9xl
+ 8x2 + 5x3
oggetto ai vincoli
+ 3x2
5x 1 + 4x2
2x1
+ X3
+ 3x3
4
:::; 11
:::;
e
X}
2: O,
X2
2: O,
X)
2: O.
iano x4 e x 5 variabili slack per i due vincoli funzionali . Dopo
ere applicato il metodo del simplesso, il tableau finale è
Variabili
Eq.
di base
z
x,
X3
(O)
(l)
(2)
Coefficienti di:
z
l
o
o
x,
o
l
o
X2
2
5
-7
X3
o
o
l
X4
xs
Usare l'analisi della sensitività per studiare il potenziale effetto e l'opportunità di adottare la nuova tecnologia. In particolare, assumendo che essa sia stata adottata, costruire il tableau finale modificato risultante, convertire questo tableau
nella forma adeguata e, quindi, riottimizzare (se necessario)
per trovare la nuova soluzione ottima.
(b) Adesso, si supponga di avere la possibilità di combinare le
tecnologie vecchie e quelle nuove per condurre la prima attività. Definire Ocome la frazione della tecnologia usata proveniente dalla nuova tecnologia, così O :::; O :::; l . Dato O, i
coefficienti di x 1 nel modello diventano
Termini
noti
Ci
a11
[
2
3
l
- l
19
l
-5
2
2
a) Si supponga che una nuova tecnologia è stata resa disponibile per eseguire la prima attività considerata in questo problema. Se la nuova tecnologia fosse adottata per sostituire quella esistente, i coefficienti di x 1 nel modello cambierebbero
a21
l
=
[92 +9fJ]
+ O .
5+ O
Costruire il tableau finale modificato risultante (in funzione
di e convertire questo tableau nella forma adeguata. Usare
questo tableau per identificare la soluzione di base corrente
in funzione di O. Con O :::; O:::; l, fornire l 'intervallo di valori
di O per cui questa soluzione è sia ammissibile che ottima.
Determinare qual è la migliore scelta per O in questo intervallo.
fJ)
l problemi di trasporto e
assegnamento
7.1
N
el Capitolo 3 è stata evidenziata la vasta applicabilità dei metodi della programmazione lineare. In questo capitolo verranno discussi due tipi di problemi di programmazione lineare particolarmente importanti. Il p1imo è il problema di trasporto, così chiamato perché molte delle sue applicazioni riguardano come trasportare in modo ottimale
merci. In realtà, alcune sue importanti applicazioni (quali lo scheduling della produzione)
non hanno niente in comune con il trasporto.
Il secondo, il problema di assegnamento, comprende applicazioni come l'assegnamento
di mansioni a persone. Anche se le applicazioni di questo tipo sembrano essere abbastanza
differenti da quelle per il problema di trasporto, si potrà verificare come il problema di assegnamento è uno speciale tipo di problema di trasporto.
Il capitolo seguente introdurrà altri tipi speciali di problemi di programmazione lineare
su reti, compreso il problema di flusso a costo minimo (Paragrafo 8.6). Sia i problemi di
assegnamento che quelli di trasporti sono casi speciali del problema di flusso a costo minimo. In questo capitolo verrà introdotta la rappresentazione su rete dei problemi di assegnamento e di trasporto.
Le applicazioni dei problemi di assegnamento e di traspmii tendono a richiedere un numero molto elevato di vincoli e di variabili, così una semplice implementazione sul computer del metodo del simplesso può richiedere w1o sforzo computazionale esorbitante.
Fortunatamente, una caratteristica fondamentale di questi problemi è che la maggior parte
dei coefficienti au nella matrice dei vincoli sono uguali a zero, mentre quei pochi coefficienti che non lo sono appaiono in uno schema particolare. Come 1isultato, è stato possibile sviluppare speciali algoritmi semplificati che permettono di ottenere un notevole risparmio di calcoli sfruttando la speciale struttura del problema. Di conseguenza, è importante
acquisire sufficiente familiarità con questi speciali tipi di problemi in modo da poterli riconoscere quando si presentano e applicare la procedura di calcolo più idonea.
Per descrivere questa speciale struttura, verrà introdotta la matrice dei coefficienti dei
vincoli mostrata nella Tabella 7.1, dove au è il coefficiente dellaj-esima variabile nell'iesimo vincolo funzionale. Nel seguito, le parti della matrice contenenti coefficienti uguali
a zero saranno lasciate in bianco, mentre i blocchi che contengono coefficienti diversi da
zero saranno ombreggiati.
• TABELLA 7.1 Matrice dei coefficienti dei vincoli
per un problema di programmazione lineare
A=
[~~.~ ~~~
.....
Oml
...........
Gm2
...
~~.~l
Gmn
7.1
235
IL PROBLEMA DI TRASPORTO
Dopo aver presentato un primo semplice esempio per il problema di trasporto, viene descritta la speciale struttura del modello e verranno fomiti alcuni esempi supplementari di
applicazioni. Il Paragrafo 7.2 presenta il metodo del simplesso per problemi di trasporto,
una versione speciale semplificata del metodo del simplesso per risolvere in modo efficiente i problemi del trasporto. Nel Paragrafo 8.7 verrà mostrato che questa procedura è
collegata al metodo del simplesso su rete, un'altra versione semplificata del metodo del
simplesso per risolvere in modo efficiente qualsiasi problema di flusso a costo minimo,
che include anche i problemi di assegnamento e di trasporto . Il Paragrafo 7.3 presenta in
dettaglio il problema di assegnamento. Il Paragrafo 7.4 mostra, infine, un algoritmo, denominato metodo ungherese, che pe1mette di risolvere in modo molto efficiente problemi di
assegnamento.
7 .l
Il PROBLEMA DI TRASPORTO
Un primo semplice esempio
Uno dei principali prodotti della P&T COMPANY sono i piselli in scatola. I piselli sono
confezionati in tre fabbriche (vicino a Bellingham, Washington; Eugene, Oregon e Albert
Lea, Minnesota) e quindi spediti con camion a quattro magazzini di distribuzione negli
Stati Uniti occidentali (Sacramento, California; Salt Lake City, Utah; Rapid City, South
Dakota e Albuquerque, New Mexico ), come mostrato nella Figura 7 .l. Poiché i costi di
trasporto costituiscono una spesa rilevante, è importante ridurli quanto più possibile. Per
la stagione imminente, è stata stimata la capacità produttiva di ogni fabbrica e a ogni magazzino è stato assegnato una certa quantità dalla fornitura totale. Questa informazione (in
unità di container da trasportare), insieme al costo di trasporto per ogni container e per
ogni combinazione fabbrica-magazzino, è indicata nella Tabella 7 .2. Sono da spedire un
totale di 300 container. Il problema è, adesso, determinare quale modalità per assegnare
queste spedizioni alle varie combinazioni fabbrica-magazzino minimizza il costo totale di
trasporti.
Ignorando la disposizione geografica delle fabbriche e dei magazzini, una rappresentazione di questo problema può essere fornita in modo semplice allineando tutte le fabbriche in una colonna sulla sinistra e tutti i magazzini in una colonna sulla destra. Questa rappresentazione è riportata nella Figura 7.2. Gli archi mostrano i possibili itinerari per i container, e il numero accanto a ogni arco è il relativo costo di trasporto per container. In parentesi quadra, vicino a ogni posizione, viene indicato il numero di container da spedire
da quella posizione (e pertanto questo valore è negativo per magazzini).
Il problema rappresentato nella Figura 7.2 è un particolare problema di programmazione lineare denominato problema di trasporto. Per formulare il modello, sia Z il costo totale
di trasporto, e xu (i = l, 2, 3;} = l, 2, 3, 4) il numero di container da spedire dalla fabbrica i al magazzino j. L'obiettivo è determinare i valori di queste 12 variabili decisionali
(xu) così da
minimizzare
Z = 464xll + 513x12 + 654xl3 + 867xt4 + 352x2l + 416x22
+690xn + 79lx24 + 995x31 + 682x32 + 388x33 + 685x34
soggetto ai vincoli
= 75
XtJ +x12 +x13 +x14
+x22
XJ3
XJ4
= 125
X31 + X32 + X33 + X34 = l 00
+x31
80
65
+x32
+x33
70
+x34 = 85
236
CAPITOLO 7
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
• FIGUF
Rapprese
del probl
• FIGURA 7.1
Localizzazione delle fabbriche e dei magazzini per il problema P&T Co.
• TABELLA 7.2 Dati di spedizione per la P&T Co.
Costo di spedizione (dollari) per container
Magazzino
Fabbriche
Allocazione
e
1
2
3
Produzione
1
2
3
4
464
352
995
513
416
682
654
690
388
867
791
685
80
65
70
85
Xij2:0
75
125
100
(i= 1,2, 3; }= 1,2,3,4)
La Tabella 7.3 mostra la matrice dei coefficienti dei vincoli . Come sarà mostrato successivamente in questo paragrafo, è la speciale struttura di questi coefficienti che caratterizza
questo problema come problema di trasporto e non il suo contesto.
Il modello per il problema di trasporto
Per descrivere il modello generale per un problema di trasporto, si devono usare termini
che sono molto meno specifici di quelli usati nell'esempio precedente. In particolare, il
problema generale di trasporto è legato (letteralmente o in modo figurato) alla distribuzione di una qualunque merce da un qualsiasi gruppo di centri di distribuzione, chiamati nodi sorgente, a qualsiasi gruppo di centri di ricezione, chiamati nodi destinazione, in modo da minimizzare il costo totale di distribuzione. La corrispondenza nella terminologia
fra il primo esempio e il problema generale è riassunta nella Tabella 7.4.
7.1
Il PROBLEMA DI TRASPORTO
237
FIGURA 7.2
Rappresentazione su rete
del problema P&T Co.
TABELLA 7.3 Coefficienti dei vincoli per P&T Co.
Coefficiente di:
}
Vincoli sulle
fabbriche
A =
Vincoli sul
magazzmo
)
Come indicato dalle righe quarta e quinta della tabella, ogni nodo sorgente ha una certa
offerta di unità da distribuire ai nodi destinazione e ogni nodo destinazione ha una specifica domanda che deve essere soddisfatta dai nodi sorgente. Per un problema di trasporto
si considera la seguente assunzione circa queste domande e offerte.
Assunzione sulle quantità offerte e richieste: ogni nodo sorgente ha un'offerta fissa che deve essere inviata interamente ai nodi destinazione (con s; si indica il numero di unità che sono disponibili al nodo sorgente i, per i = l, 2... , m). Allo stesso
modo, ogni nodo destinazione ha una domanda fissa che deve essere soddisfatta dai
nodi sorgente (con d1 si indica il numero di unità richieste dal nodo destinazione j,
per) = l, 2, ... , n).
Questa assunzione è valida per il problema P&T Co. poiché ogni fabbrica (nodo sorgente)
ha una capacità di produzione fissa e ogni magazzino (nodo destinazione) ha una richiesta
fissa.
L'ipotesi che non ci sia margine di scelta nelle quantità che devono essere inviate o ricevute, significa che è necessario che ci sia un equilibrio tra l'offerta totale da tutti i nodi
sorgente e la domanda totale in tutti i nodi destinazione.
Esistenza di soluzioni ammissibili: Per un problema di trasporto esistono soluzioni
ammissibili se e solo se
m
m
Ls;=L~
i= l
J= l
238
CAPITOLO 7
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
Fortunatamente, per l'esempio della P&T Co. questa proprietà vale: la Tabella 7.2 indica
in 300 container la somma delle quantità fomite (produzione) e delle quantità richieste.
In alcuni problemi reali, le quantità offerte rappresentano in realtà le quantità massime
(piuttosto che quantità fisse) che devono essere inviate. Allo stesso modo, in altri casi, le
domande rappresentano le quantità massime (piuttosto che quantità fisse) richieste. Tali
problemi non soddisfano esattamente il modello per un problema di trasporto. Tuttavia, è
possibile riformulare il problema in modo che questi possano soddisfare i requisiti del modello introducendo una destinazione fittizia o una sorgente fittizia che tenga conto dello
scostamento fra le quantità reali e le quantità massime che vengono distribuite. Alla fine
di questo paragrafo verrà illustrato con due esempi come ottenere ciò.
L'ultima riga della Tabella 7.4 riporta il costo per unità distribuita. Questo riferimento a
un costo unitario implica la seguente assunzione di base per ogni problema del trasporto.
Assunzione sui costi di trasporto: il costo di trasporto da una qualunque sorgente a
una qualunque destinazione è direttamente proporzionale al numero di unità trasportate. Di conseguenza, questo costo è proprio il costo unitario di trasporto moltiplicato per il numero di unità trasportate (con eu si indica il costo unitario per la sorgente
i e la destinazione}).
Questa assunzione è valida per il problema P&T Co. poiché il costo per spedire i piselli
da qualunque fabbrica a qualunque magazzino è direttamente proporzionale al numero di
container spediti.
Gli unici dati necessari per formulare un problema di trasporto sono le quantità offerte,
le quantità richieste e i costi unitari . Questi sono i parametri del modello e possono essere
raggruppati convenientemente in una singola tabella come mostrato nella Tabella 7.5.
Il modello: un qualunque problema (relativo o meno al trasporto di merci) soddisfa
il modello per un problema di trasporto se può essere descritto completamente in termini di una tabella soddisfa sia l'assunzione sulle quantità offerte e richieste sia l'assunzione sui costi di trasporto. L'obiettivo è minimizzare il costo totale di trasporto.
Di conseguenza, la formulazione di un problema come problema di trasporto richiede soltanto che venga riempita una tabella dei parametri nel formato della Tabella 7.5 (la tabella
dei parametri per il problema P&T Co. è mostrata nella Tabella 7.2). Alternativamente, la
stessa informazione può essere fornita usando la rappresentazione su rete del problema come mostrato in Figura 7.3 (come è stato fatto nella Figura 7.2 per il problema P&T Co.).
Poiché un problema di trasporto può essere formulato semplicemente compilando una
tabella dei parametri o disegnando la relativa rappresentazione su rete, non è necessario
scrivere per esteso un formale modello matematico per il problema. Tuttavia, è utile mostrare questo modello almeno una volta per il problema generale di trasporto proprio per
far risaltare che esso è effettivamente un tipo speciale di problema di programmazione lineare.
• TABELLA 7.4 Terminologia per il problema di trasporto
Esempio prototipo
Problema generale
Container di piselli in scatola
Unità di prodotto
Tre fabbriche
Quattro magazzini
m nodi sorgente
n nodi destinazione
Produzione della fabbrica i
Offerta s; dalla sorgente i
Allocazione al magazzino j
Domanda d; nella destinazione j
Costo per container spedito dalla fabbrica i al
magazzino j
Costo c;; per unità trasportata dalla sorgente i al la
desti nazione j
• FIGURJ
Rappresen
del proble
7.1
Z39
Il PROBLEMA DI TRASPORTO
•
•
•
• FIGURA 7.3
Rappresentazione su rete
del problema di trasporto .
TABELLA 7.5 Tabella dei parametri per il problema di trasporto
Costo per unità trasportata
Destinazione
1
Sorgente
m
n
2
2
Cm l
Offerta
C12
C1n
c22
C2n
Cm2
Cmn
Sm
Domanda
Siano Z il costo totale di trasporto e xu (i = l , 2, ... , m;j = l , 2, ... , n) il numero di unità trasferite dalla sorgente i alla destinazione j , la formulazione come problema di programmazione lineare è la seguente
minimizzare
z=
m
n
i= l
J= l
LL
eu xu
soggetto ai vincoli
n
L xu=si
per i = l , 2, ... , m
J= l
m
Lxu = d1
i= l
per j = l, 2, ... , n
240
CAPITOLO 7
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
• TABELLA 7.6 Coefficienti dei vincoli per il problema di trasporto
Coefficiente di:
Xmn
l
l
Vincoli
sulla
offerta
A =
Vincoli
sulla
domanda
l
e
per ogni i ej
Si può notare che la matrice dei coefficienti dei vincoli ha la speciale struttura indicata
nella Tabella 7.6. Qualunque problema di programmazione lineare che soddisfa questa
speciale formulazione è un problema di trasporto, indipendentemente dal suo contesto fisico. Infatti, ci sono state numerose applicazioni non legate al trasporto di merci che soddisfano questa speciale struttura, come sarà illustrato nel successivo esempio di questo paragrafo (il problema di assegnamento descritto nel Paragrafo 7.3 è un esempio aggiuntivo). Questa è una delle ragioni per cui il problema del trasporto è considerato un tipo speciale di problema di programmazione lineare particolarmente importante.
In molte applicazioni, le quantità offerte e richieste nel modello (le quantità s1 e dj) hanno valori interi ed è richiesto che anche le quantità trasportate (xu) abbiano valori interi.
Fortunatamente, grazie alla speciale struttura mostrata nella Tabella 7.6, tutti i problemi di
questo tipo godono della seguente proprietà.
• FIGUli
Una forrr
cella obie
istruzioni
spedizion
A
Proble
Proprietà di interezza della soluzione: per i problemi di trasporto con s1 e d1 interi,
tutte le variabili di base in ogni BFS (compresa quella ottima) hanno valori interi.
La procedura risolutiva descritta nel Paragrafo 7.2 opera soltanto con BFS e pertanto essa
fornirà una soluzione ottima per questo problema con tutte componenti intere (questa procedura fornisce una dimostrazione costruttiva della proprietà di interezza delle soluzioni;
il Problema 7.2-10 può essere usato come guida nella dimostrazione). Di conseguenza, è
inutile aggiungere al modello un vincolo che imponga che xu abbia valori interi.
Come per altri problemi di programmazione lineare, per formulare e risolvere problemi
di trasporti (e problemi di assegnamento) sono a disposizioni diversi software quali per
esempio Excel, UNGO/LINDO, MPLICPLEX. Tuttavia, poiché l'approccio con Excel è
in qualche modo diverso da ciò che è stato visto precedentemente, esso verrà descritto in
dettaglio di seguito.
Uso di Excel per formulare e risolvere problemi di trasporto
Come descritto nel Paragrafo 3.6, il processo di utilizzo di un foglio elettronico per formulare un modello di programmazione lineare inizia con le risposte a tre domande. Quali sono le decisioni da prendere? Quali sono i vincoli su queste decisioni? Qual è la misura generale delle prestazioni per queste decisioni? Poiché un problema di trasporto è uno speciale tipo di problema di programmazione lineare, rispondere a queste domande costituisce il punto di partenza per formulare anche questo genere di problema con l'ausilio di un
foglio elettronico. La progettazione del foglio elettronico consiste nel presentare queste informazioni e i dati associati con un senso logico.
Come esempio, si consideri ancora il problema P&T Co. Le decisioni sono il numero
di container da spedire da ogni fabbrica a ogni magazzino. I vincoli su queste decisioni
!Jnposta cella
Uguale a:
CambianQ.o le
lShipmentQu.
Vin~olt:
TotaiRecelv€
TotaiShippec
7.1
241
IL PROBLEMA DI TRASPORTO
sono che la quantità totale spedita da ogni fabbrica deve essere uguale alla sua produzione
(l 'offerta) e la quantità totale ricevuta in ogni magazzino deve essere uguale alla sua domanda. La misura generale delle prestazioni è il costo totale di trasporto e così l' obiettivo
è minimizzare questa quantità.
Questa informazione conduce al modello di foglio elettronico mostrato nella Figura
7.4. Tutti i dati fomiti nella Tabella 7.2 sono visualizzati nelle seguenti celle dati:
UnitCost (D5 :G7), Supply (Jl2:Jl4) e Demand (D 17:G 17). Le decisioni sulle quantità
da trasportare sono date dalle celle modificabili, ShipmentQuantity (D 12:G 14). Le celle
di output sono TotalShipped (Hl2:Hl4) e TotalReceived (Dl5 :G 15), dove le funzioni
SUM inserite in queste celle sono mostrate nella parte inferiore della Figura 7.4. I vincoli, TotalShipped (H12 :H14) = Supply (Jl2 :Jl4) e TotalReceived (D15:Gl5) = Demand
(D 17 :G 17), sono stati specificati sul foglio elettronico e inseriti ali ' interno della finestra
di dialogo del Salutare. La cella obiettivo è Tota!Cost (J1 7), e la sua funzione
• FIGURA 7.4
Una form ulazione med inate fog lio elettro nico del problema P&T Co. come problema di trasporto; sono riportate anche la
cella obiettivo Tota iCost ()17) e le altre celle di output TotaiShipped (H12 :H14) e TotaiReceived (Dl5:G15), così come le
istruzioni necessarie a eseguire il modello. Le cel le modificabi li ShipmentQuantity (Dl2:G14) mostrano il piano di
spedizione ottima le ottenuto con il Risolutore.
A
c
B
D
F
E
G
H
Problema P& T Distribution
352
995
__ Destinazioni {M agazzini)
Salt Lake ç_i!Y
Rapid City
513
654
416
690
338
682
Sacramento
_ Destinazioni (M agazzini)
Salt Lake City
Rapid City
Costo Unitario
Sacramento
Origini
(Fabbriche)
464
Bellingham
Eugene
Albert Lea
Quantità traspo rtata
Origini
o
o
Bellingham
(Fabbriche)
Eugene
Albert Lea
Totale ricevuto
o
Domanda
80
D
E
o
Albu~gue
867
791
685
Totale
spedito
o
o
Offerta
Albuquerque
o
o
o
o
o
o
o
70
85
75
125
100
Costo totale
c
15 Totale ricevuto =SOMI
D12:D14
=SOMMA(E12·E14)
65
o
G
=SOM
=SOMMA(G12:G14
9
10
spedito
11
12 -SOMMA(D12:G12)
13 =SOMMA(D13:G13)
14 =SOMMA(D14:G14
Celle
D17:G17
D12:G14
J12:J14
J17
D15:G1 5
H12:H14
D5:G7
[mposta ceRa obiettivo:
Uguale a:
0Ma1(
l
16
17
imi!!!!DI [\J
0 Min
Iempo massimo:
O yaioredi :
lc:o_ _ __,
Cambiango le celle:
ShipmentQuantity
Tota!Received = Oemand
TotaiShipped = Supply
H
Totale
'\,
Iterazioni:
Apptossimazione:
io,OOOOO!
Qpzioni
Toll~ran z a:
l5
Con~ergenza:
Jo,OOO!
Jpoti~za
M giungi
Cambia
~imin a
~ secondi
~
Chiudi
l B.eimposta
0
l Carica modello . ..
1%
['.resupponi modello lineare
0[P._i0.5,g~ii(nD!i~iiiia§~(:lj
Stima
OK
Annulla
~alva modello ...
D \/sa scala automatica
D Mostra il risultato delle iterazioni
'Derivate
Cerca
0 T!J.ngente
0 ~iretta
0 Ne~ton
O Quadra oca
O Centrate
O Gradienti cQniugati
242
CAPITOlO 7
l PROBlEMI DI TRASPORTO E ASSEGNAMENTO
MATR.SOMMA.PRODOTTO mostrata nell 'angolo inferiore destro della Figura 7.4. La
finestra di dialogo del Solutore specifica che l'obiettivo è minimizzare il valore di questa
cella. Una delle opzioni selezionate dal Risolutore (presupponi nonnegativo) specifica che
tutte le quantità spedite devono essere nonnegative. L'altra opzione (presupponi modello
lineare) indica che questo problema di trasporto è un problema di programmazione lineare.
Per cominciare il processo di risoluzione del problema, è necessario inserire un qualunque valore (per esempio O) in ciascuna delle celle modificabili. Dopo avere cliccato sul
pulsante Risolvi, il Risolutore userà il metodo del simplesso per risolvere il problema del
trasporto e per determinare il migliore valore per ciascuna delle variabili decisionali.
Questa soluzione ottima è indicata dalla cella ShipmentQuantity (D12:Gl4) nella Figura
7.4, insieme al valore ottimo risultante pari a 152 535 dollari nella cella Tota!Cost (117).
Si può notare che per risolvere un problema di trasporto il Risolutore usa semplicemente il metodo del simplesso nella forma generale piuttosto che una specifica versione progettata per risolvere in modo efficiente i problemi di trasporti, come il metodo del simplesso per problemi di trasporti presentato nel paragrafo successivo. Un pacchetto software che include una simile versione specializzata è in grado di tisolvere problemi di trasporti di grandi dimensioni molto più velocemente del Risolutore di Excel.
Come accennato precedentemente, alcuni problemi non soddisfano pienamente il modello per un problema di trasporto perché violano l' ipotesi sulle quantità offerte e richieste, ma è possibile riformulare un tale problema in modo che esso soddisfi questo modello
introducendo una destinazione fittizia o una sorgente fittizia. Quando si usa il Risolutore
di Excel, non è necessaria questa nuova fonnulazione poiché il metodo del simplesso può
risolvere il modello originale in cui i vincoli sull 'offerta sono nella forma :::; e/o i vincoli
sulla domanda sono nella forma ~ - Tuttavia, quanto più è grande la dimensione del problema, tanto più utile diventa riformularlo come problema di trasporto e usare la versione
specializzata del metodo del simplesso. I due esempi seguenti illustrano come riformulare
il problema.
Un esempio con una destinazione fittizia
La NORTHERN AIRPLANE COMPANY costruisce aeroplani commerciali per varie
compagnie aeree in varie parti del mondo. L'ultima fase nel processo di produzione consiste nel produrre i motori a propulsione e, successivamente, nella loro installazione
(un ' operazione molto veloce) nella struttura già pronta deli' aeroplano. L'azienda deve consegnare un numero considerevole di aeroplani neli 'immediato futuro , e la produzione dei
motori a propulsione per questi aerei deve essere pianificata per i successivi quattro mesi.
Per rispettare le date contrattuali di consegna, l'azienda deve fornire i motori per l'installazione nelle quantità indicate nella seconda colonna della Tabella 7.7. Quindi, il numero complessivo di motori prodotti per la fine dei mesi l , 2, 3 e 4 deve essere, rispettivamente, di almeno lO, 25 , 50 e 70.
Il numero di motori che possono essere prodotti varia a causa di altre produzioni, manutenzione e lavori di rinnovamento previsti durante questo periodo. La terza e quarta colonna della Tabella 7.7 mostrano per ogni mese la quantità massima che può essere prodotta e il costo unitario di produzione (in milioni di dollari).
A causa delle variazioni nei costi di produzione, può essere utile produrre alcuni dei
motori uno o più mesi prima che essi siano pianificati per l'installazione. Lo svantaggio è
che tali motori devono essere immagazzinati fino alla data di installazione (le strutture
dell'aeroplano non saranno pronte prima) con un costo di immagazzinamento, per ogni
motore, 1 pari a 15 000 dollari mensili (compreso l'interesse sul capitale), come mostrato
nell ' ultima colonna a destra della Tabella 7.7.
1
Ai fmi della modellazione, si assume che questo costo di immagazzinamento viene sostenuto, alla fine del mese, per quei motori che devono essere conservati anche nel mese successivo. Così, i motori che sono prodotti in
un dato mese e in stallati nello stesso mese non danno luogo ad alcun costo di immagazzinamento.
7.1
IL PROBLEMA DI TRASPORTO
243
TABELLA 7.7 Capacità di produzione per la Northern Airplane Co.
Installazioni
previste
Produzione
massima
Costo unitario
di produzione
Costo unitario di
immagazzinamento
l
lO
2
3
4
15
25
20
25
35
30
1.08
1.11
1.10
1.13
0 .015
0.015
0.015
Mese
lO
Il responsabile di produzione desidera pianificare il numero di motori che devono essere
prodotti in ciascuno dei quattro mesi in modo da minimizzare il costo totale di immagazzinamento e di produzione.
Formulazione. Un modo per formulare tm modello matematico per questo problema è
definire xj come il numero di motori che devono essere prodotti nel mese), per j = l , 2,
3, 4. Usando solo queste quattro variabili decisionali, il problema può essere formulato
come un problema di prograrrunazione lineare che non può essere però riformulato come
problema di trasporto.
Adottando un punto di vista differente, il problema può essere formulato come un problema di trasporto e può essere risolto con meno difficoltà. Questo punto di vista descrive
il problema in termini di nodi sorgente e destinazione e identificherà le quantità corrispondenti xu, eu, s; e dj.
Poiché le unità da distribuire sono motori, ciascuno deve essere prodotto in un particolare mese e installato in uno specifico mese (forse differente),
sorgente i
destinazione j
produzione dei motori a propulsione nel mese i (i = l , 2, 3, 4)
installazione dei motori a propulsione nel mese) U = l , 2, 3, 4)
numero di motori prodotti nel mese i e installati nel mese j
costo unitario associato a xu
{ ~osto unitario di produzione e inunagazzinamento
se i :S J
se i > j
?
dj
numero di installazioni previste nel mese j
La corrispondente tabella (non completa) dei parametri è riportata nella Tabella 7. 7.
Rimangono da identificare alcuni costi mancanti e le quantità offerte.
Poiché è impossibile produrre in un certo mese i motori che devono essere installati nel
mese precedente, xu deve essere zero se i > ). Di conseguenza, non c'è un costo reale che
possa essere associato con tali xu. Tuttavia, per avere un problema di trasporto ben definito a cui può essere applicata la procedura risolutiva mostata nel Paragrafo 7.2, è necessario assegnare un determinato valore a questi costi. Fortunatamente, per assegnare questo
• TABELLA 7.8 Tabella (non completa) dei parametri per la Northern Airplane Co.
Costo per unità distribuita
è
e
Destinazione
o
l
Sorgente
Domanda
2
3
4
Offerta
l
2
3
4
1.080
?
?
?
1.095
1.11 o
?
?
1.110
1.125
1.100
?
1.125
1.140
1.115
1.130
lO
15
25
20
?
?
?
?
244
CAPITOLO 7
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
valore si può usare il metodo del Big M introdotto nel Paragrafo 4 .6. Quindi, si assegna
un valore molto grande (denotato per convenienza con M) ai costi non ancora identificati
nella Tabella 7.8 in modo da forzare i corrispondenti valori di xi; a essere uguali a zero
nella soluzione finale.
I valmi che devono essere inseriti nella colonna relativa alle quantità disponibili della
Tabella 7.8 non sono ovvi perché " le quantità offerte" (cioè le quantità prodotte nei rispettivi mesi) non sono fisse. L ' obiettivo è, infatti, quello di determinare i migliori valori
di queste quantità da produrre. Tuttavia, per avere un problema di trasporto, è necessario
assegnare un valore fisso a ogni voce nella tabella, compreso quello nella colonna relativa
alle quantità offerte. Anche se i vincoli sull ' offerta non sono presenti nella forma usuale,
questi vincoli esistono sotto forma di limiti superiori sulle quantità che possono essere fornite, vale a dire,
x11 +x12 +
x 13 + x14
x 2 1 + x 22 + x 23 +x 24
+ X 32 + X33 + X3 4
X4 1 + X42 + X43 + X44
X3 1
S
S
S
S
25
35
30
lQ
L ' unico cambiamento rispetto al modello standard per il problema del trasporto è che questi vincoli sono nella forma di disuguaglianze anziché di uguaglianza.
Per convertire queste disuguaglianze in equazioni in modo da soddisfare il modello del
problema di trasporto, si utilizzano variabili slack, introdotte nel Paragrafo 4.2 . In questo
contesto, le variabili slack sono assegnamenti a una nuova destinazione fittizia che tiene
conto della capacità di produzione inutilizzata nei vari mesi. Questo cambiamento consente all ' offerta, nella fommlazione del problema del trasporto, di essere esattamente uguale
alla capacità totale di produzione nel dato mese. Inoltre, poiché la domanda della destinazione fitti zia è la capacità totale inutilizzata, questa domanda è
(25
+ 35 + 30 + lO) - (IO +
15
+ 25 + 20) = 30
Adesso la somma delle quantità offerte è uguale alla somma delle quantità richieste, che è
la condizione per l' esistenza di soluzioni ammissibili.
I costi associati alla destinazione fittizia sono uguali a zero perché nessun costo viene
sostenuto con un'allocazione immaginaria (costi p ati a M sarebbero non appropriati per
questa colonna perché non si vuole che i corrispondenti valori di x i; siano uguali a zero.
Infatti, è necessario che la somma di questi valori sia 30).
La tabella fmale risultante è mostrata nella Tabella 7.9, con la destinazione fittizia identificata come destinazione 5(D). Con questa formulazione, è abbastanza facile determinare la pianificazione ottimale della produzione usando la procedura risolutiva descritta nel
Paragrafo 7 .2.
• TABELLA 7.9 Tabella dei parametri per la Northern Airplane Co.
Costo per unità distribuita
Destinazione
Sorgente
Offerta
l
2
3
4
S(D)
l
1.080
2
3
4
M
M
M
1.095
1.11 o
1.11 o
1.125
1.100
M
1.125
1.140
1.115
1.130
o
o
o
o
25
20
30
Domanda
lO
M
M
15
25
35
30
lO
7.1
245
IL PROBLEMA DI TRASPORTO
Un esempio con una sorgente fittizia
METRO WATER DISTRICT è un'agenzia che gestisce la distribuzione dell'acqua in una
vasta regione geografica. La regione è completamente arida e il distretto deve comprare e
trasportare l'acqua dall 'esterno della regione. Le sorgenti sono i fiumi Colomb?, Sacr?n e
Calorie. Il distretto rivende, quindi, l'acqua agli utenti della regione. I suo1 pnnc1pah
clienti sono le città di Berdoo, Los Devils, San Go e Hollyglass.
È possibile rifornire una qualunque di queste città con acqua da uno qualunque dei tre
fiumi, con l 'eccezione che non è possibile rifornire Hollyglass con l'acqua provemente
dal fiume Calorie. Tuttavia, a causa delle dislocazioni geografiche degli acquedotti e delle
posizioni delle città nella regione, il costo di fornitura dell'acqua per un distretto dipend~
sia dalla sorgente che dalla città deve essere fornita. Il costo variabile (espresso m p1ed1
per acro di acqua per decina di dollari) per ogni combinazione fiume-città è fornito nella
Tabella 7 .l O. Il prezzo sostenuto dal distretto è indipendente dalla sorgente dell'acqua ed
è /o stesso per tutte le città.
L'amministrazione del distretto è ora di fronte al problema di come assegnare l'acqua
disponibile durante l' imminente stagione estiva. Le quantità disponibili dai tre fiumi sono
indicate, in milioni di piedi per acro, nell'ultima colonna della Tabella 7.1 O. Il dish·etto si
è impegnato a fornire una certa quantità minima per soddisfare i fabbisogni essenziali di
ogni città (con l'eccezione di San Go, che ha una sorgente di acqua indipendente), come
mostrato nella seconda riga Fabbisogno minimo della tabella. La riga Richiesta indica che
Los Devils non vuole nient'altro che l'importo minimo, mentre Berdoo vorrebbe comprarne fino a 20 in più, San Go vorrebbe comprarne fino a 30 in più e Hollyglass prenderà
quanto più possibile.
L'amministrazione desidera assegnare tutta l'acqua disponibile dai tre fiumi alle quattro città in modo da soddisfare i fabbisogni essenziali di ogni città minimizzando il costo
complessivo sostenuto.
Formulazione. La Tabella 7.10 è quasi nella forma richiesta per una tabella per un
problema di trasporto, con i fiumi che corrispondono ai nodi sorgente e le città che sono
le destinazioni . Tuttavia, la principale difficoltà è che non è chiaro quali siano le richieste
delle città (destinazioni). La quantità da ricevere in ogni destinazione (tranne Los Devils)
è in realtà una variabile decisionale, con un limite inferiore e un limite superiore. Questo
limite superiore è la quantità richiesta a meno che quest'ultima non superi l'offerta totale
rimanente dopo aver soddisfatto i fabbisogni minimi delle altre città, nel qual caso questa
offerta rimanente diventa il limite superiore. Quindi, l'insaziabile arida Hollyglass ha un
limite superiore di
(50 + 60 +50) - (30 + 70 + O) = 60
Purtroppo, in modo analogo agli altri valori nella tabella dei parametri per un problema di
trasporto, le quantità richieste devono essere costanti, non variabili decisionali. Si supponga temporaneamente che non è importante soddisfare i fabbisogni minimi, cosicché i limiti superiori sono gli unici vincoli sulle quantità che devono essere allocate alle città.
TABELLA 7 .l O Risorse per il problema Metro Water District
Costo (decine di dollari) per piede acro
Berdoo
Los Devils
San Go
Hollyglass
Fiume Colombo
Fiume Sacron
Fiume Calorie
16
14
19
13
13
20
22
19
23
17
15
Fabbisogno minimo
Richiesto
30
50
70
70
o
10
30
00
-
Offerta
50
60
50
(in unità di
milioni di piede/ acro)
246
CAPITOLO 7
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
La situazione è analoga al problema della pianificazione della produzione nella Northern
Airplane Co., in cui era presente un eccesso di offerta. Ora è presente un eccesso di domanda. Di conseguenza, piuttosto che introdurre una destinazione fittizia per "ricevere"
la quantità offerta inutilizzata, si deve in questo caso introdurre una sorgente fittizia per
tenere conto delle capacità inutilizzate della domanda. La quantità immaginaria offerta
per questa sorgente fittizia è la differenza tra la somma delle richieste e la somma dell e offerte reali:
(50 + 70 + 30 + 60) - (50 + 60 + 50) =50
Sorgent,
Questa formulazione fornisce la tabella dei parametri mostrata nella Tabella 7.11. l costi
nella riga fittizia sono uguali a zero perché non si va incontro a nessun costo con allocazioni immaginarie da questa sorgente fittizia. D'altra parte, un costo unitario enorme pari
a M è assegnato alla coppia fiume Calorie-Hollyglass. Il motivo è che l'acqua del fiume
Calorie non può essere usata per rifornire Hollyglass e assegnando un costo pari a M si
impedirà questa allocazione.
Bisogna, ora, prendere in considerazione i fabbisogni minimi di ogni città. Poiché San
Go non ha un fabbisogno minimo, per questa città non ci sono difficoltà. Allo stesso modo, la formulazione per Hollyglass non richiede alcun aggiustamento perché la sua richiesta (60) supera di IO l'offerta della sorgente immaginaria (50), così l'importo fornito a
Hollyglass dalle sorgenti reali sarà almeno l O in qualsiasi soluzione ammissibile. Di conseguenza, il relativo fabbisogno reale minimo di lO è garantito (se questa coincidenza non
accade, Hollyglass avrebbe bisogno degli stessi aggiustamenti che devono esser fatti per
Berdoo).
Il fabbisogno minimo di Los Devils è uguale alla sua allocazione richiesta, così la sua
richiesta totale di 70 deve essere evasa dalle sorgenti reali e non dalla sorgente fittizia.
Assegnando un costo unitario enorme pari a M all'allocazione dalla sorgente fittizia a Los
Devils si garantisce che questa allocazione sia uguale a zero in ogni soluzione ottima.
Per concludere, si consideri Berdoo. Contrariamente a Hollyglass, la sorgente fittizia
ha un ' offerta (immaginaria) sufficiente per "fornire" almeno una parte del fabbisogno
minimo di Berdoo oltre la sua quantità richiesta supplementare. Di conseguenza, dato che
il fabbisogno minimo di Berdoo è 30, devono essere eseguiti degli aggiustamenti per impedire alla sorgente fittizia di contribuire per più di 20 alla richiesta totale di Berdoo pari
a 50. Questo aggiustamento è compiuto dividendo Berdoo in due destinazioni , una avente
una richiesta di 30 con un costo unitario pari a M per qualsiasi allocazione dalla sorgente
fittizia e l'altro avente una richiesta di 20 con un costo unitario nullo per l'allocazione dalla sorgente fittizia. Questa fornmlazione determina la tabella finale dei parametri mostrata
nella Tabella 7.12.
Questo problema sarà risolto nel Paragrafo 7.2 per illustrare la procedura risolutiva presentata in quel contesto.
· TABELLA 7.11 Tabella dei parametri senza il vincolo sui fabbisogni minimi
per il Metro Water District
Costo (decine di milioni di dollari)
per unità distribuita
Offerta
Destinazione
Sorgente
Domanda
Fiume Colombo
Fiume Sacron
Fiume Calorie
Fittizio
TAl
Berdeoo
Los Devils
San Go
Hollyglass
16
14
19
13
13
17
15
20
22
19
23
o
o
o
o
50
70
30
60
M
50
60
50
50
7.1
IL PROBLEMA DI TRASPORTO
247
TABELLA 7.12 Tabella dei parametri per il Metro Water District
Costo (decine di milioni di dollari) per unità distribuita
Destinazione
Sorgente
Fiume Colombo
Fiume Sacro n ,
Fiume Calorie
Fittizio
l
2
3
4(0)
Domanda
Offerta
Berdoo (min.)
l
Berdoo (extra)
2
Los Devils
3
San Go
4
Hollyglass
5
16
14
19
16
14
19
13
13
17
15
20
22
19
23
M
o
M
o
o
30
20
70
30
60
M
50
60
50
50
Il problema di trasporto generalizzato
Nonostante i tipi di riformulazione illustrate con i due esempi precedenti, alcuni problemi
che riguardano la distribuzione di unità dai nodi sorgente alle destinazioni non riescono a
soddisfare il modello per un problema di trasporto. Un motivo può essere che la distribuzione non vada direttamente dalle sorgenti alle destinazioni ma, invece, attraversa punti
intennedi. L'esempio della Distribuition Unlimited Co nel Paragrafo 3.4 (si faccia riferimento alla Figura 3.13) illustra un simile problema. In questo caso, le sorgenti sono le due
fabbriche e le destinazioni sono i due magazzini. Tuttavia, una spedizione da una particolare fabbrica a un particolare magazzino può essere prima inviata a un centro di smistamento , o persino all' altra fabbrica o all'altro magazzino, prima di raggiungere la relativa
destinazione. I costi unitari di trasporto differiscono per ciascuno di questi differenti percorsi. Per di più, ci sono limiti su quanto al massimo può essere spedito attraverso alcuni
dei percorsi. Anche se non è un problema di trasporto, questo genere di problema è ancora uno speciale tipo di problema di programmazione lineare, chiamato problema di flusso
a costo minimo, che sarà discusso nel Paragrafo 8.6. Il metodo del simplesso su rete descritto nel Paragrafo 8.7 fornisce un modo efficiente per risolvere i problemi di flusso a
costo minimo. Un problema di flusso a costo minimo che non impone nessun limite superiore a quanto può essere spedito attraverso ciascun arco viene indicato come problema di
transhipment.
In altri casi, il trasporto può avvenire direttamente dalle sorgenti alle destinazioni, ma
possono essere violate altre ipotesi del problema di trasporto. L'ipotesi sui costi è violata
se il costo di distribuzione da una particolare sorgente a una specifica destinazione è una
funzione non lineare del numero di unità trasportate. L' ipotesi sulle quantità richieste e offerte è violata se le offerte dalle sorgenti o le domande alle destinazioni non sono fisse.
Per esempio, la domanda finale in una destinazione può non essere nota fino a quando le
unità non sono arrivate e quindi si incorre in un costo non lineare se la quantità ricevuta
differisce dalla richiesta finale. Se l'offetta in una sorgente non è fissa, il costo di produzione della quantità fornita può essere una funzione non lineare di tale quantità. Per esempio, un costo fisso può fare parte del costo associato a una decisione di utilizzare una nuova sorgente. Generalizzazioni del problema del traspmto e della relativa procedura risolutiva sono stati oggetto attivo di ricerca 2
2
K. Holmberg e H. Tuy, " A Production Transportation Problem with Stochastic Demand and Concave
Production Costs", Math ematica/ Programming Series, 85: 157-1 79, 1999.
248
CAPITOLO 7
7.2
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
UNA VERSIONE SPECIALIZZATA DEL METODO DEL SIMPLESSO
PER IL PROBLEMA DI TRASPORTO
Poiché un problema di trasporto è uno speciale tipo di problema di programmazione lineare, esso può essere risolto applicando il metodo del simplesso come descritto nel Capitolo
4. Tuttavia, sfruttando la struttura speciale indicata nella Tabella 7 .6, è possibile definire
una procedura risolutiva estremamente più semplice dal punto di vista computazionale denominata d'ora in poi il metodo del simplesso per problemi di trasporto.
La speciale struttura del problema verrà sfruttata per realizzare un notevole risparmio
computazionale. Ciò permette di illustrare un importante tecnica di Ricerca Operativa miglioramento di un algoritmo per sfruttare la struttura speciale dello specifico problema.
lnizializzazione del metodo del simplesso per problemi di trasporto
Per evidenziare i vantaggi del metodo del simplesso per problemi di trasporto, occorre prima rivedere la fase di inizializzazione per il metodo del simplesso nella forma generale
(non semplificata) applicato a un problema di trasporto nella forma tabellare.
Dopo la costruzione della tabella con i coefficienti dei vincoli (Tabella 7.6), convertendo la funzione obiettivo nella fonna di massimizzazione e usando il metodo del Big M per
introdurre le variabili artificiali z 1, z 2 , . . . , Zm+ n nei rispettivi m +n vincoli di uguaglianza (Paragrafo 4.6), le colonne del tableau del simplesso hanno la forma indicata nella
Tabella 7.13, in cui tutte le parti non mostrate in queste colonne sono uguali a O [l ' unico
aggiustamento che resta da fare prima di eseguire la prima iterazione del metodo del simplesso è eliminare algebricamente i coefficienti diversi da zero delle variabili di base iniziali (artificiali) nella riga 0].
Dopo ogni iterazione, la riga O ha quindi la forma indicata nella Tabella 7.14. A causa
della configurazione di O e di l per i coefficienti nella Tabella 7.13, le quantità u; e v1 possono essere interpretate come segue (si faccia riferimento ai concetti di base presentati nel
Paragrafo 5.3):
u;
= multiplo della riga originale i che è stata sottratta (direttamente o indirettamente)
v1 =
dalla riga originale O dal metodo del simplesso nelle varie iterazioni che conducono al tableau corrente.
multiplo della riga originale m+ j che è stata sottratta (direttamente o indirettamente) dalla riga originale O dal metodo del simplesso nelle varie iterazioni che
conducono al tableau corrente.
Usando la teoria della dualità introdotta nel Capitolo 6, un'altra proprietà di u; e v1 è che
queste sono proprie le variabili duali. 3 Se xu è una variabile non di base, eu- u; - v1 può
essere interpretato come il tasso a cui Z cambia all'aumentare di xu.
Nella fase di inizializzazione del metodo del simplesso, deve essere ottenuta una BFS
iniziale e ciò viene fatto introducendo le variabili artificiali come variabili di base iniziali
e ponendole uguali a s; e d1. Il test di ottimalità e il passo l di una singola iterazione
(selezione della variabile entrante) richiede la conoscenza della riga O corrente, che è ottenuta sottraendo un determinato multiplo di un'altra riga dalla precedente riga O. Il passo 2
(determinazione della variabile di base uscente) deve identificare la variabile di base che
raggiunge per prima il valore zero all'aumentare del valore della variabile entrante, equesto viene fatto confrontando i coefficienti attuali della variabile entrante e i termini noti
corrispondenti. Il passo 3 deve determinare la nuova BFS, sottraendo determinati multipli
di una riga dalle altre righe del tableau corrente.
3
È fac ile riconoscere queste variab ili come variabili duali se si rietichettano tutte come y , e si cambia il segno di
mtti i coefficienti nella riga O della Tabella 7.14 convertendo così il problema di nuovo a un problema di minimizzazione.
7.2
249
UNA VERSIONE SPECIAliZZATA DEL METODO DEL SIMPLESSO
TABELLA 7.13 Tableau originale prima che il metodo del simplesso venga
applicato al problema di trasporto
Coefficiente di:
Variabili
di base
Eq.
(O)
l
z
X11
zl
Zm +j
- l
C;;
M
M
Termini
noti
o
(l)
Z;
(i)
o
5;
Zm +j
(rri + j)
o
d;
(m + n)
TABELLA 7.14 Riga O del tableau del simplesso quando il metodo del simplesso
viene applicato al problema di trasporto
Variabili
di base
l
Eq.
(O)
Coefficiente di:
z
...
- l
.. .
Xlj
C;j- U; -
Vi
z1
M- U;
.. .
Termini
noti
Zm + j
M - V;
m
n
i= l
j= 1
-I s;u;- L d;V;
Ora, in quale modo il metodo del simplesso per problemi di trasporti può ottenere le stesse infmmazioni in maniera molto più semplice? Questo verrà spiegato completamente nelle pagine seguenti, mentre per adesso verranno fomite solo alcune risposte preliminari.
In primo luogo, non è necessario introdurre variabili artificiali perché per la costruzione della BFS iniziale è disponibile una procedura semplice e conveniente (con alcune varianti).
In secondo luogo, la riga Ocorrente può essere ottenuta senza usare le informazioni delle altre righe ma semplicemente calcolando i valori cotTenti di ui e v1 direttamente. Poiché
ogni variabile di base deve avere coefficiente nullo nella riga O, le quantità ui e v1 attuali
sono ottenute risolvendo l'insieme di equazioni
eu - ui - v1 = 0
per ogni i e j tali che xu è una variabile di base.
Questa procedura diretta verrà illustrata successivamente quando si discuterà il test di
ottimalità per il metodo del simplesso per problemi di trasporto. La speciale struttura
nella Tabella 7.13 rende possibile questo modo conveniente di ottenere la riga O fornen do eu - ui- v1 come i coefficienti di xu nella Tabella 7.14.
In terzo luogo, la variabile di base uscente può essere identificata senza usare
(esplicitamente) i coefficienti della variabile entrante. Il motivo è che la speciale struttura
del problema permette di determinare facilmente come cambia la soluzione quando viene
incrementata la variabile entrante. Di conseguenza, la nuova BFS può essere identificata
immediatamente senza nessuna manipolazione algebrica sulle righe del tableau (i particolari saranno chiariti quando verrà descritto come il metodo del simplesso per problemi di
trasporti realizza una singola iterazione).
L'importante conclusione è che quasi tutto il tableau del simplesso (e il lavoro per
mantenerlo) può essere eliminato! Oltre ai dati di ingresso (i valori di eu, si e d1), le uniche
infonnazioni necessarie per applicare il metodo del simplesso a problemi di trasporto sono la BFS corrente. 4 i valori attuali di ui e v1 e i valori risultanti eu - ui - v1 per le variabi4
Poiché le variabi li non di base hanno valore uguale a zero, la BFS corrente è completamente identificata quando siano noti i valori delle variabili di base.
250
CAPITOLO 7
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
TABELLA 7.15 Tableau per problemi di trasporti
Destinazione
Offerta
U;
n
2
l
s,
2
Sz
m
Sm
Sorgente
d,
Domanda
dn
d2
Z=
V;
Informazione aggiuntiva che deve essere aggiunta a ogni cella:
Se
X;;
è una
variabile di base
Se
X;;
è una
variabile non di base
li non di base xu. Quando si risolve un problema manualmente, è conveniente registrare
queste infom1azioni a ogni iterazione in uno specifico tableau del simplesso per problemi
di trasporto, come mostrato nella Tabella 7.15 (si può notare che i valori di xu e eu- u; v1 sono distinti in questo tableau cerchiando i primi ma non gli altri).
La differenza di efficienza e la convenienza fra il simplesso generale e il metodo del
simplesso per problemi di trasporto può essere maggiormente apprezzato applicando entrambi a uno stesso problema di piccole dimensioni (si faccia riferimento al Problema 7.28). Tuttavia, la differenza è ancora più marcata per problemi di grandi dimensioni che devono essere risolti mediante un computer. Questa differenza è in qualche modo suggerita
anche dal confronto delle dimensioni dei tableau per il simplesso generale e per problemi
di traspo1io. Per un problema di trasporto che ha m sorgenti e n destinazioni, il tableau del
simplesso ha m + n+ l righe e (m + l ) (n + l ) colonne (a parte quelle alla sinistra delle
colonne xiJ), mentre il tableau del simplesso per problemi di trasporti ha m righe e n colonne (a parte le due righe e colonne infonnative supplementari). Considerando diversi valori
di m e n (per esempio, m = 10 e n = 100 sono valori tipici per un prob lema di trasporto
di medie dimensioni), si può notare come il rapporto tra il numero di elementi nel tableau
del simplesso per problemi di traspmio e il numero di celle nel tableau del simplesso generale awnenta quando m e n aumentano.
lnizializzazione
Occorre ricordare che l'obiettivo della fase di inizializzazione è ottenere una BFS. Poiché
tutti i vincoli funzionali nel problema di trasporto sono vincoli di uguaglianza, il metodo
del simplesso ottiene questa soluzione introducendo variabili artificiali e usandole come
variabili di base iniziali, come descritto nel Paragrafo 4.6. La soluzione di base risultante
è in realtà ammissibile soltanto per una versione modificata del problema, così sono necessarie un certo numero di iterazioni per condurre queste variabili artificiali a zero in modo da raggiungere le BFS reali. Il metodo del simplesso per problemi di trasporti permette
di superare tutto questo usando invece una procedura più semplice per costmire direttamente una BFS utilizzando il tableau del simplesso per problemi di trasporto.
Prima di descrivere a grandi linee questa procedura, è necessario precisare che il numero di variabi li di base in qualunque soluzione di base di un problema di trasporto è inferiore rispetto a quello che ci si potrebbe aspettare. Ordinariamente, in un problema di pro-
7.2
UNA VERSIONE SPECIALIZZATA DEL METODO DEL SIMPLESSO
251
grammazione lineare vi è una variabile di base per ogni vincolo funzionale. Per i problemi
di trasporto con m sorgenti e n destinazioni, il numero di vincoli funzionali è m + n.
Tuttavia,
numero di variabili di base = m + n - l
Il motivo è che i vincoli funzionali sono vincoli di uguaglianza, e questo insieme di m + n
equazioni ha un'equazione addizionale (ridondante) che può essere eliminata senza cambiare la regione ammissibile; un qualunque vincolo risulta automaticamente soddisfatto
ogni volta che gli altri m + n- l vincoli sono soddisfatti (questo fatto può essere verificato mostrando che qualunque vincolo sull'offerta è esattamente uguale alla somma dei vincoli della domanda meno la somma degli altri vincoli sull ' offerta, e che qualunque equazione relativa alla quantità richiesta può essere ottenuta anche sommando le equazioni dell' offeJia e sottraendo le altre equazioni relative alle domande (Problema 7.2-9).
Di conseguenza, qualunque BFS ha esattamente m + n - l valori nonnegativi (che
compaiono cerchiati nel tableau), e la somma dei valori per ogni riga o colonna è uguale
alla relativa offerta o domanda.5
La procedura per la costruzione della BFS iniziale seleziona m+ n - 1 variabili di base una alla volta. Dopo ogni scelta, a quella variabile viene assegnato un valore che soddisfa un nuovo vincolo. Così, dopo m + n - l selezioni, si ottiene un ' intera soluzione di base in un modo tale da soddisfare tutti i vincoli. Per la selezione delle variabili di base sono
stati proposti una serie di criteri differenti . Dopo la descrizione della procedura generale,
verranno presentati e illustrati tre di questi criteri.
Procedura generalé per la costruzione della BFS iniziale. Inizialmente, per fornire una variabile di base, sono prese in considerazione tutte le righe sorgenti e le colonne
destinazioni del tableau del simplesso per problemi di trasporti
l. Dalle righe e dalle colonne ancora da esaminare, selezionare la successiva variabile di
base secondo uno specifico criterio.
2. Assegnare alla variabile un valore abbastanza grande da esaurire esattamente l'offerta
che rimane nella sua riga o la domanda che rimane nella sua colonna (scegliere il valore più piccolo).
3. Eliminare la riga o colonna (quella con il valore più basso dell 'offerta o domanda rimanente) da ogni ulteriore considerazione (se la riga e la colonna hanno la stessa domanda e offerta rimanente, allora eliminare la riga. La colonna sarà usata successivamente
per fornire una variabile di base degenere, cioè con valore zero).
4. Se rimane soltanto una riga o soltanto una colonna, allora la procedura è completata selezionando come variabile di base ogni variabile rimanente (cioè non precedentemente
selezionate come variabili di base nè la cui riga o colonna sia stata eliminata) associata
con quella riga o colonna e assegnando l'unico valore ammissibile. Altrimenti, ritornare al passo l.
Criterio alternativo p er il passo l
l. Regola del nord-ovest: selezionare inizialmente x 11 (cioè iniziare la variabile nell 'angolo di nord-ovest del tableau del simplesso per problemi di traspmio ). Da allora in
poi, se xu è l' ultima variabile di base selezionata, selezionare successivamente xi,J+ l
(cioè spostarsi una colonna verso destra) se per la sorgente i, la quantità offerta non è
tutta utilizzata. Altrimenti, selezionare x;+ l ,J (cioè muoversi in basso di una riga).
5
Tuttavia, si noti che, una soluzione ammissibile con m + n - l variabili non nulle non è necessariamente una
soluzione di base perché potrebbe essere la media ponderata di due o più BFS degeneri (BFS che hanno alcune
variabili di base uguali a zero). Tuttavia, questo non deve preoccupare, in quanto la procedura utilizzata costruisce solo legittime BFS.
6
Nel Paragrafo 4.1 è stato sottolineato che il metodo del simplesso è un esempio di algoritmo (procedure sistematiche per detem1inare le soluzioni di un problema). Si noti che anche questa procedura è un algoritmo, in cui
ogni esecuzione successiva dei (quattro) passi costituisce una iterazione.
252
CAPITOLO 7
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
Esempio. Per rendere questa descrizione più concreta, la procedura generale verrà ora
illustrata per l'esempio della Metro Water District (si veda la Tabella 7.12) utilizzando al
passo l la Regola del nord-ovest. Poiché in questo caso m= 4 e n = 5, la procedura costruirà una BFS con m + n - l = 8 variabili di base. Come mostrato nella Tabella 7 .16,
la prima allocazione è XII = 30 che usa tutta la domanda nella colonna (e questa colonna
è eliminata da ogni successiva considerazione). Questa prima iterazione lascia una offerta
pari a 20 nella riga l e quindi successivamente si seleziona xi , I + I = xi 2 come variabile di
base. Poiché questa offerta non è maggiore della domanda (pari a 20) nella colonna 2, allora xi 2 = 20 e questa riga è eliminata da ogni successiva considerazione. (La riga l è
scelta invece della colonna 2 come richiesto nella procedura al passo 3). Successivamente
viene scelta come variabile di base XI + I l = x 2,2 . Poiché la domanda rimanente nella colonna 2 è O ed è minore di 60 (offerta rimanente nella riga 2) si pone x 22 = O e si elimina
la colonna 2. Continuando allo stesso modo si ottiene la BFS mostrata nella Tabella 7.16
dove tutti i valori cerchiati sono i valori delle variabili di base e i valori delle variabili non
base sono tutti uguali a O. Le frecce mostrano l' ordine in cui le variabili di base sono state
scelte. Il valore di Z per questa soluzione è
Z = 16 (30)
+ 16(20) + ... + 0(50) = 2,470 + lOM
TABELLA 7.16 BFS iniziale ottenuta applicando la Regola del nord-ovest
Destinazione
l
2
3
4
5
Offerta
50
2
60
3
50
4(0)
50
Sorgente
Domanda
30
20
70
30
60
Z = 2470 + 10M
vi
2. Metodo di approssimazione di Vogel: per ogni riga e colonna ancora da considerare,
calcolare la relativa differenza, che è definita come la differenza aritmetica fra il più
piccolo e secondo più piccolo costo unitario eu ancora presente in quella riga o colonna. (Se il valore minimo dei costi in una riga o in una colonna è ottenuto da più di
un elemento, allora la differenza è 0). Nella riga o colonna con la maggiore differenza,
selezionare la variabile che ha il più piccolo costo unitario rimanente (in caso che la
maggiore differenza o il più piccolo costo è ottenuto da più di un elemento, si può arbitrariamente scegliere uno di questi elementi).
Esempio. Si applichi ora la procedura generale al problema Metro Water District usando il metodo di approssimazione di Vogel per selezionare la successiva variabile di base
al passo l. Con questo criterio, è più conveniente operare con le tabelle dei parametri
(piuttosto che con i tableau completi del simplesso), iniziando con quello riportato nella
Tabella 7.12. A ogni iterazione, dopo aver calcolato e visualizzato la differenza tra ogni riga e colonna ancora da esaminare, la differenza più grande viene cerchiata e il più piccolo
costo unitario nella relativa riga o colonna viene racchiuso in un riquadro. La selezione risultante e il valore della variabile (successiva variabile di base) sono indicati nell'angolo
7.2
UNA VERSIONE SPECIALIZZATA DEL METODO DEL SIMPLESSO
253
destro in basso della tabella corrente, insieme alla riga o alla colonna eliminata (si faccia
riferimento ai passi 2 e 3 della procedura generale). La tabella per l' iterazione successiva
è esattamente la stessa, a parte l 'eliminazione di questa riga o colonna e la sottrazione dell'ultima allocazione dalla relativa offerta o domanda.
Applicando questa procedura al problema Metro Water District si ottiene la sequenza
mostrata nella Tabella 7.17, in cui la BFS iniziale risultante ha otto variabili di base indicate nell ' angolo destro in basso delle rispettive tabelle dei parametri.
Questo esempio illustra due caratteristiche della procedura generale che sono motivo di
speciale attenzione. In primo luogo, si può notare che l ' iterazione finale seleziona tre variabili (x 3 1, x 32 e x 33 ) come variabili di base anziché una singola selezione come nelle altre
iterazioni. Il motivo è che, a questo punto, rimane da considerare soltanto una riga (la riga
3). Di conseguenza, il passo 4 della procedura generale richiede di selezionare come variabile di base ogni variabile restante associata alla riga 3.
In secondo luogo, si può notare che l'allocazione x 23 = 20 nella penultima iterazione
esaurisce sia l'offerta restante nella relativa riga che la domanda restante nella relativa colonna. Tuttavia, piuttosto che eliminare sia la riga che la colonna, il passo 3 richiede di eliminare soltanto la riga, conservando la colonna che fornisce successivamente una variabile di base degenere. In effetti, la colonna 3 è usata proprio per questo scopo nell'ultima
iterazione quando x 33 = O viene selezionata come una delle variabili di base. Per un'altra
illustrazione di questo stesso fenomeno si faccia riferimento alla Tabella 7.16, in cui l'allocazione x 12 = 20 comporta l'eliminazione solo della riga l , e la colonna 2 rimane fornendo una variabile di base degenere, x 22 = O, alla successiva iterazione.
Anche se un' allocazione pari a zero potrebbe sembrare irrilevante, essa svolge in realtà
un importante ruolo. Il metodo del simplesso per problemi di trasporto deve conoscere tutte le m + n - l variabili di base, comprese quelle con valore zero, della BFS cotTente.
3. Metodo di approssimazione di Russe!!: per ogni riga sorgente i ancora da considerare,
detetminare il valore u;, che è il più grande costo unitario ciJ ancora rimanente in quella
riga. Per ogni colonna destinazione j ancora da considerare, determinare il valore v1,
che è il più grande costo unitario ciJ ancora rimanente in quella colonna. Per ogni variabile xiJ non selezionata precedentemente in queste righe e colonne, calcolare
D.iJ = ciJ- u;- v1. Selezionare la variabile che ha il più grande (in termini assoluti)
valore negativo di D.iJ (in caso di parità si può scegliere la variabile arbitrariamente).
Esempio. La Tabella 7.18 mostra l' applicazione della procedura generale al problema
Metro Water District usando il criterio di Russe! al passo l riportando anche la sequenza
delle variabili di base. All ' iterazione l , il più grande costo unitario nella riga l è u1 = 22,
il più grande nella colonna l è v1 = M e così via. Così,
D.11 = c11 - u1-v1 = 16 - 12-M = - 6 - M
Il calcolo di tutti i valori D.iJ per i = l , 2, 3, 4 e j = l , 2, 3, 4, 5 mostra che
D.4 5 = O - 2M è il valore negativo più grande e così x 45 = 50 viene selezionata come la
prima variabile di base. Questo esaurisce completamente l' offerta nella riga 4 che di conseguenza non verrà più considerata.
Si noti che l 'eliminazione di questa riga modifica v1 e v3 per la successiva iterazione.
Di conseguenza, la seconda iterazione richiede che vengano ricalcolati le quantità D.iJ con
j = l , 3 eliminando così i = 4. Il valore più piccolo è
D.1 s= 17-22-M = - 6-M
e così x 15 = l O che diventa la seconda variabile di base e la colonna 5 non deve essere
più presa in considerazione.
Le iterazioni successive continuano allo stesso modo, e sono riportate nella Tabella 7.18.
254
CAPITOLO 7
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
TABELLA 7.17 BFS iniziale ottenuta applicando il metodo di approssimazione
di Vogel
Destinazione
l
2
3
4(0)
Sorgente
Domanda
Differenza (colonn a)
Offerta
l
2
3
4
5
16
14
19
M
16
14
19
13
13
22
19
23
17
15
M
[Q]
o
30
2
20
14
30
60
15
20
M
o
70
@
o
50
60
50
50
Offerta
Sorgente
l
2
3
4(0)
Domanda
Differenza (colonna)
2
3
5
16
14
19
M
16
14
19
13
13
17
15
M
30
2
20
14
20
M
o
60
@
o
o
o
Selezionare x45 = 20
Eliminare la riga 4(0)
Sorgente
l
2
3
Domanda
Differenza (colonna)
Offerta
2
3
5
16
14
19
16
14
19
U]
17
15
M
30
2
20
2
70
13
20
40
2
o
Sorgente
2
3
Domanda
Differenza (colonna)
2
3
5
14
19
14
19
13
[li]
20
M
30
5
20
5
20
7
40
( M - 15)
G)
l
o
Selezionare x1 3 = 50
Eliminare la riga l
Sorgente
2
3
Domanda
Differenza (colonna)
2
3
14
19
14
19
[TI]
30
5
20
5
o
20
20
l
Offerta
Differenza
(riga)
60
50
o
l
Selezionare x25 = 40
Eliminare la colonna 5
Destinazione
l
l
Differenza
(riga)
50
60
50
Destinazione
l
Differenza
(riga)
3
l
Destinazione
l
o
o
50
60
50
20
[[]
70
3
l
Selezionare x4 4 = 30
Eliminare la colonna 4
Destinazione
l
Differenza
(riga)
l
Differenza
(riga)
Offerta
l
20
50
o
Selezionare x23 = 20
Eliminare la riga 2
l
Destinazione
Sorgente
Domanda
3
l
2
3
Offerta
19
19
20
50
30
20
o
Selezionare x 3 ,
X3 2
X33
= 30
= 20
= o
z = 2460
Confronto dei criteri alternativi per il passo l. Dal confronto tra questi tre criteri
per la selezione della successiva variabile di base, risulta che la principale virtù della regola del nord-ovest è che è rapida e facile. Tuttavia, poiché non presta attenzione ai costi
unitari eu, la soluzione ottenuta sarà solitamente lontana da quella ottima (si può notare
7.2
255
UNA VERSIONE SPECIALIZZATA DEL METODO DEL SIMPLESSO
nella Tabella 7.16 che x 35 = l O anche se e35 = M). Con poco lavoro in più per trovare
una buona BFS iniziale, si può ridurre notevolmente il numero di iterazioni richieste dal
metodo del simplesso per problemi di trasporti per raggiungere una soluzione ottima (si
faccia riferimento ai Problemi 7.2-7 e 7.2-9). L'individuazione di una simile soluzione è
l'obiettivo degli altri due criteri.
Il metodo di approssimazione di Vogel è stato un criterio popolare per molti anni, 7 parzialmente perché è relativamente facile da implementare manualmente. Poiché la differen za rappresenta il minimo costo unitario supplementare sostenuto se non si effettua un'allocazione alla cella che ha il più piccolo costo unitario in quella riga o colonna, questo criterio considera i costi in modo efficiente.
Il metodo di approssimazione di Russell fornisce un altro eccellente criterio 8 che è ancora veloce se implementato su un computer (ma non manualmente). Anche se è poco
chiaro quale è più efficace in media, questo criterio ottiene frequentemente una soluzione
migliore rispetto al metodo di Vogel (per l'esempio considerato, con il metodo di approssimazione di Vogella soluzione iniziale trovata è quella ottima con Z = 2460, mentre il
metodo di Russell determina una soluzione iniziale comunque buona ma non ottima con
Z = 2570). Per un problema di grandi dimensioni, può essere interessante applicare entrambi i criteri e usare, quindi, la migliore soluzione per iniziare le iterazioni del metodo
del simplesso.
Un netto vantaggio del metodo di approssimazione di Russell è che è modellato direttamente sul passo l per il metodo del simplesso per problemi di trasporto (come si potrà vedere presto). In particolare, i valori u; e v1 sono definiti in maniera tale che i relativi valori
di eu - u;.- v1 sono una stima dei va lori di eu - u; - v1 che saranno ottenuti dal metodo
del simplesso.
Adesso verrà usata la BFS iniziale ottenuta nella Tabella 7.18 con il metodo di approssimazione di Russell per illustrare il resto del metodo del simplesso per problemi di trasporti. Il tableau iniziale (prima di calcolare u; e v1) è mostrato nella Tabella 7.19.
Il passo successivo è verificare se questa soluzione iniziale è ottima applicando il test
di ottimalità.
TABELLA 7.18 BFS iniziale ottenuta applicando il metodo di approssimazione
di Russell
lterazione li1
1
2
3
4
5
6
22
22
22
Uz
U3
u4
19
19
19
19
19
M
M
M
23
23
23
negativo
più grande
Variabili
di base
vl
Vz
V3
V4
Vs
!::. 11
M
19
19
19
19
19
M
20
20
20
23
23
23
23
23
M
M
=- 2M
X45 = 50
= - 5 - M x1s = 10
!::.n = - 29
xn = 40
!::.23 = - 26
X23 = 30
!::,.21 = - 24
X21 = 30
Irrilevante
o
X31 =
X32 = 20
X34 = 30
z = 2570
19
19
19
19
!::.45
l:J.1s
Test di ottimalità
Usando la notazione della Tabella 7.14 è possibile ridurre, per il problema di trasporto, il
test standard di ottimalità per il metodo del simplesso (si faccia riferimento al Paragrafo
4.3) come segue:
7
8
N.V. Reinfeld e W.R. Vogel, Mathematica/ Programming, Prentice-Hall, Englewood Cliffs, NJ, 1958.
E.J. Russe!, "Extension of Dantzig's Algorithm to finding an Initial Near-Optimal Basis for the Transportation
Problem ", Operations Research, 17: 187-191 , 1969.
256
CAPITOLO 7
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
Test di ottimalità: una BFS è ottima se e solo se
che xu è non di base. 9
eu -
ui - vi 2: O per ogni (i,j) tale
Quindi, l'unico lavoro richiesto per il test di ottimalità è la determinazione dei valori ui e
vi per la BFS corrente e quindi il calcolo delle quantità eu - ui - vi, come descritto di seguito.
Quando xu è una variabile di base, la quantità eu - ui - vi deve essere uguale a zero, e
quindi ui e vi soddisfano il sistema di equazioni
per ogni (i,)) tale che xu è una variabile di base.
Poiché le variabili di base sono m + n - l ci saranno m + n - l equazioni. Il numero di incognite (ui e vi ) è m + n, e quindi a una di queste variabili può essere assegnato arbitrariamente un valore. La scelta di questa variabile e del suo valore non influenza il valore di
nessuna delle quantità eu - ui- vi, anche quando xu è non di base, e così l'unica differenza (di minore importanza) che essa comporta è la facilità nella risoluzione di questo sistema di equazioni. Una scelta conveniente per questo obiettivo è selezionare ui che ha il maggior numero di equazioni nella propria riga (in caso di parità se ne può scegliere arbitrariamente una di queste) e assegnare il valore zero. Grazie alla semplice struttura di queste
equazioni, risulta molto facile risolvere il sistema algebricamente per le variabili restanti.
Come dimostrazione, viene fornita ogni equazione che corrisponde a una variabile di
base nella BFS iniziale.
19 = u3 +v 1.
19 = u 3 + v2.
X32:
23
= u 3 + v4.
X34:
X2J:
14 = U2 + VJ.
x n: 13 = u 2 + v3.
XJ3:
13 = UJ + V3.
17 = UJ + V5 .
XIs:
O= u4 + v 5 .
x45:
XJ!:
Pon·e u 3 = O, e così v 1 =19,
v2 = 19,
v4 = 23.
Poiché v 1 = 19 si ha u 2 = -5 .
Poiché u2 = - 5 si ha v3 = 17.
Poiché v3 = 18 si ha u 1 = - 5.
Poiché u 1 = -5 si ha v 5 = 22.
Poiché v 5 = 22 si ha u 4 = -22.
Ponendo u 3 = O (dato che la riga 3 della Tabella 7.19 contiene il maggior numero di allocazioni - 3) e scegliendo le equazioni una alla volta in sequenza, è possibile ottenere immediatamente i valori delle incognite presenti alla destra delle equazioni (si noti che questa derivazione dei valori di ui e di vi dipende da quali variabili xu sono variabili di base
nella BFS corrente, così questa derivazione dovrà essere ripetuta ogni volta che una nuova BFS viene ottenuta).
È più conveniente risolvere queste equazioni senza scriverle esplicitamente ma operando direttamente sul tableau. Quindi, nella Tabella 7.19 si può iniziare scrivendo u3 = O e
selezionando i valori cerchiati (x 31 , x 32 , x 34 ) nella riga. Per ciascuna è sufficiente porre vi
= e3i e quindi cercare i valori cerchiati (tranne nella riga 3) in queste colonne (x 21 ).
Successivamnente, bisogna calcolare u2 = e21 - v 1, selezionare x23 e porre v3 = e23 - u2 ,
e così via fino a che non vengono calcolati tutti i valori per ui e vi . Quindi, basta calcolare
il valore di eu- ui- vi (e riportarlo nel tableau) per ogni variabile non di base xu, ottenendo il tableau del simplesso per problemi di trasporto iniziale completo come nella
Tabella 7.20.
Adesso si è pronti per applicare il test di ottimalità controllando i valori di eu - ui - vi
riportati nella Tabella 7.20. Poiché due di questi valori (e25 - u2 - v 5 = - 2 e
e44 - u4 - v4 = - l ) sono negativi, si può concludere che la BFS corrente non è ottima.
9
L' unica eccezione è che due o più BFS degeneri equi valenti (soluzioni identiche aventi differenti variabili di
base degeneri uguali a zero) possono essere ottime ma solo alcune di queste soluzioni di base soddisfano il test
di ottima lità. Questa eccezione è illustrata dopo nell 'esempio (sono presenti so luzioni identiche negli ultimi due
tableau della Tabella 7.23 , ma solo l'ultima so luzione sodd isfa il criterio di ottimalità).
7.2
257
UNA VERSIONE SPECIALIZZATA DEL METODO DEL SIMPLESSO
Di conseguenza, per determinare una BFS migliore, il metodo del simplesso per problemi
di trasporto deve procedere con una successiva iterazione.
TABELLA 7.19 Tableau iniziale per problemi di trasporto (prima di calcolare
c;i- u;- vi) ottenuto mediante il metodo di approssimazione
di Russell
Destinazione
Iterazione
Offerta
o
2
1
~
l
~
3
~® ~
~@
50
~®
~
22J
60
2
~® ~
3
22J®
~@ 3QJ
~®
~
50
4(0)
~
~
~
~®
50
Sorgente
30
Domanda
~
20
70
30
UJ
5
4
60
z=
2570
vi
Singola iterazione del metodo del simplesso per problemi di trasporto
Come per la versione generale del metodo del simplesso, un'iterazione per questa versione semplificata deve determinare una variabile entrante (passo l), una variabile_eli base
uscente (passo 2) e, quindi, identificare la nuova BFS risultante (passo 3).
Passo 1: determinare la variabile entrante. Dato che eu - u; - v1 rappresenta il
tasso con cui la funzione obiettivo cambia all'aumentare della variabile non di base xu, la
variabile entrante deve avere un valore negativo eu - u; - v1 per fare diminuire il costo
complessivo Z. Così, nella Tabella 7.20, i candidati sono x 25 e x 44 • Per scegliere la variabile entrante tra i possibili candidati, si seleziona la più grande (in valore assoluto) delle
quantità eu - u; - v1, che in questo caso porta a scegliere x 2 5 .
Passo 2: determinare la variabile di base uscente. Incrementando, a partire dal
valore corrente zero, la variabile entrante si da inizio a una reazione a catena di cambiamenti in altre variabili di base, in modo da continuare a soddisfare i vincoli sull 'offerta e
sulla domanda. La prima variabile di base che raggiunge il valore zero diventa allora la
variabile di base uscente.
Con x 25 come variabile entrante, la reazione a catena della Tabella 7.20 è relativamente
semplice e riportata per maggiore chiarezza nella Tabella 7.21 (la variabile entrante verrà
sempre indicata inserendo il segno più nel centro della relativa cella lasciando invece il
valore corrispondente di eu - u, - v1 nell'angolo inferiore destro di tale cella). L'aumento
di x 25 di una certa quantità richiede la diminuzione di x 15 della stessa quantità per ripristinare la domanda di 60 nella colonna 5. Questo cambiamento richiede quindi l'aumento di
x 13 di questa stessa quantità per ripristinare l'offerta di 50 nella riga l. Ma questo cambiamento richiede il decremento di x 23 della stessa quantità per ripristinare la domanda di 70
nella colonna 3. Questa diminuzione di x 23 completa con successo la reazione a catena
perché ristabilisce l'offerta di 60 nella riga 2 (in modo equivalente, si potrebbe iniziare la
reazione a catena ristabilendo questa offerta nella riga 2 con la diminuzione di x 23 , e quindi la reazione a catena continuerebbe con l'aumento di x 13 e il decremento di x 15).
Il risultato netto è che le celle (2, 5) e (l, 3) sono diventate celle riceventi, ciascuna delle quali riceve il proprio valore supplementare da una delle celle donatrici, (l, 5) e (2, 3).
258
CAPITOLO 7
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
D TABELLA 7.20 Tableau iniziale completo per problemi di trasporto
Destinazione
lterazione
o
1
2
~
l
+2
~
~@
~
o~®
~
+2
2
~@ ~
3
~® ~@ ~
Sorgente
4(0)
Domanda
V;
~
~
~
M+ 3
+3
Offerta
Ul
~@
50
-5
~
60
-5
4
3
+2
5
+4
+l
-2
~@ ~
50
~
50
M - 22
M+ 4
- l
w@
30
20
70
30
60
19
19
18
23
22
z=
o
- 22
2570
TABELLA 7.21 Parte del tableau iniziale per problemi di trasporto che mostra la
reazione a catena causata dall'incremento della variabile
di base entrante x 25
Destinazione
Offerta
l
...
2
...
Sorgente
...
Domanda
~~+
33]
~ è-
~
+4
+l
]_?J
<ip-
~a
50
-2
60
...
...
70
5
4
3
30
60
Queste celle sono indicate nella Tabella 7.21 con i segni più e meno. Si noti che il ruolo di
cella donatrice per la colonna 5 è stato svolto dalla cella (l , 5) anziché dalla cella (4, 5), perché la cella (4, 5) non avrebbe la cella ricevente nella riga 4 per poter continuare la reazione
a catena. Allo stesso modo, se invece si è iniziata la reazione a catena nella riga 2, la cella
(2, l) non potrebbe essere la cella donatrice per questa riga perché la reazione a catena non
potrebbe essere completata con successo dopo aver scelto necessariamente la cella (3, l) come la successiva cella ricevente e la cella (3 , 2) o la cella (3 , 4) come relativa cella donatrice. Si può inoltre notare che, a parte la variabile entrante, tutte le celle donatrici e riceventi
nella reazione a catena devono corrispondere alle variabili di base nella BFS corrente.
Ogni cella donatrice decrementa la propria allocazione esattamente della stessa quantità di cui la variabile entrante (e le altre celle riceventi) viene aumentata. Di conseguenza,
la cella donatrice che inizia con il più piccolo valore - in questo caso la cella (l , 5)
(IO < 30 nella Tabella 7.21) - raggiunge il valore zero per prima all'aumentare della variabile entrante x 25 . Pertanto, x 15 è la variabile di base uscente.
In generale, c'è sempre una reazione a catena (in entrambe le direzioni) che può essere
completata con successo per mantenere l'ammissibilità quando viene incrementata la variabile entrante. Questa reazione a catena può essere identificata scegliendo le celle che
hanno una variabile di base: prima la cella donatrice nella colonna avente la variabile di
base entrante, quindi la cella ricevente nella riga avente questa cella donatrice, poi la cella
donatrice nella colonna avente questa cella ricevente e così via fino a che la reazione a catena fornisce una cella donatrice nella riga avente la variabi le di base entrante. Quando
7.2
UNA VERSIONE SPECIALIZZATA DEL METODO DEL SIMPLESSO
259
una colonna o una riga ha più di una cella corrispondente a una variabile di base, potrebbe
essere necessario un ulteriore approfondimento per verificare quale cella deve essere selezionata come cella donatrice o ricevente (questo processo terminerà quando sarà raggiunta una riga o una colonna senza nessuna cella di base modificabile supplementare). Dopo
che la reazione a catena è stata identificata, la cella donatrice con il pùì piccolo valore fornisce automaticamente la variabile di base uscente (nel caso che più celle donatrici abbiano il medesimo minimo valore, la variabile di base uscente può essere scelta arbitrariamente tra queste).
Passo 3: determinare la nuova BFS. La nuova BFS è identificata semplicemente aggiungendo il valore della variabile di base uscente (prima di qualsiasi cambiamento) al valore per ogni cella ricevente e sottraendo questa stessa quantità al valore per ogni cella
donatrice. Nella Tabella 7.21 il valore della variabile di base uscente x 15 è IO, e così, in
questa tabella, per la nuova soluzione, la parte del tableau cambia come indicato nella
Tabella 7.22 (dato che nella nuova soluzione x 15 è non di base, il nuovo valore zero non è
più indicato in questo nuovo tableau).
Adesso si può evidenziare un'utile interpretazione delle quantità eu - ui - v1 ottenute
durante il test di ottimalità. A causa dello spostamento di l O unità dalle celle donatrici alle
celle riceventi (indicate nelle Tabelle 7.21 e 7 .22), il costo complessivo cambia di
6.Z
= 10(15 - 17 + 13 - 13) = 10(- 2) =
lO (c2 5
-
u2 - vs)
Quindi, l' incremento della variabile di base entrante x 25 ha prodotto come effetto il cambiamento del costo al tasso di -2 per unità di aumento di x25 . Questo è, precisamente,
quanto deve accadere in base al valore c25 - u 2 - v 5 = -2 indicato nella Tabella 7.20.
Infatti, un altro modo (ma meno efficiente) di ottenere eu- ui- v1 per ogni variabile non
di base xu è identificare la reazione a catena causata aumentando questa variabile da O a l
e calcolare il risultante cambiamento di costo. Questa interpretazione intuitiva è, a volte,
utile per controllare i calcoli durante il test di ottimalità.
Prima di completare la soluzione del problema Metro Water District, vengono adesso
riassunte le regole per il metodo del simplesso per problemi di trasporti.
Sommario del metodo del simplesso per problemi di trasporto
Inizializzazione:
costruire una BFS iniziale con la procedura descritta precedentemente
in questo paragrafo. Procedere con il test di ottimalità.
Test di ottimalità: calcolare ui e v1 selezionando la riga con il maggior numero di valori,
ponendo il corrispondente ui = O, e risolvendo il sistema di equazioni
eu = ui + v1 per ogni (i, j) con xu variabile di base. Se
eu - ui - v1 2: Oper ogni (i,j) tale che xu è non di base, allora la soluzione corrente è ottima, Stop. Altrimenti, proseguire con l ' iterazione
successiva.
TABELLA 7 .22 Parte del secondo tableau che mostra i cambiamenti nella BFS
Destinazione
Offerta
4
3
Sorgente
l
...
2
...
...
Domanda
_1]J
~
®
@)
5
~
~
50
~
~@
lO
60
...
...
. ..
70
30
60
260
CAPITOLO 7
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
lterazione:
l. Determinare la variabile entrante: selezionare la variabile non di base xu con
eu - u; - v1 negativo e più grande (in valore assoluto).
2. Determinare la variabile di base uscente: identificare la reazione a catena richiesta per
garantire l'ammissibilità quando la variabile entrante viene incrementata. Tra le celle
donatrici, selezionare la variabile di base con il valore più piccolo.
3. Determinare la nuova BFS: aggiungere il valore della variabile di base uscente al valore cotTente per ogni cella ricevente. SottratTe questo valore dal valore cotTente per ogni
cella donatrice.
Continuando ad applicare questa procedura al problema Metro Water District si ottiene
l'insieme completo di tableau riportato nella Tabella 7.23. Dato che tutti i valori
eu - u; - v1 sono nonnegativi nel quarto tableau, il test di ottimalità identifica come ottimali l' insieme di valori in questo tableau permettendo così di concludere la procedura.
Si possono notare tre importanti aspetti illustrati da questo esempio. In primo luogo, la
BFS iniziale è degen ere poiché la variabile di base x3 1 = O. Tuttavia, questa variabile di
base degenere non causa nessuna complicazione, perché la cella (3, l) diventa una cella
ricevente nei secondo tableau che conduce x 3 1 a un valore maggiore di zero.
TABELLA 7.23 Insieme completo dei tableau per il problema
Metro Water District
Destinazione
lterazione
o
2
1
~
l
~
2
~@
30
3
~® ~@ ~
4(0)
~
Domanda
vi
r~
+
+2
Sorgente
4
3
+2
~
o
_Q_]
~è~
M+ 3
+3
+2
~
ul
+4
~·-
50
-5
+l
~- 2
60
-5
50
o
50
- 22
~
~
~@
30
M - 22
_Q_]
_Q_]@
M+ 4
Offerta
5
- l
30
20
70
30
60
19
19
18
23
22
4
5
z=
2570
Destinazione
lterazlone
Offerta
Uf
50
-5
2
60
-5
3
50
o
4(0)
50
- 20
1
1
2
3
Sorgente
Domanda
vi
30
20
70
30
60
19
19
18
23
20
z = 2550
(segue)
7.2
UNA VERSIONE SPECIALIZZATA DEL METODO DEL SIMPLESSO
261
TABELLA 7.23 (continua)
Destinazione
lterazione
2
2
1
~
l
+5
~
3
+5
~
2
~
3
~@
~@)
30
+3
Sorgente
4(0)
+3
vi
~
+7
+2
+4
~-+
~
~~-
+4
_0_]1
l
M - 23
M+ 2
~@>±- ~-
~
M+ 4
Domanda
~@ ~
Offerta
U;
50
-8
60
-8
50
o
50
- 23
5
~ ~--
~
_0_]
4
30
20
70
30
60
19
19
21
23
23
4
5
l = 2460
Destinazione
lterazione
3
2
1
~
l
~
+4
+4
~
~
2
3
+2
+2
Sorgente
~@
50
~
~@)
20
22]
+4
~®
~
4(0)
~
~
__Q_j@
Domanda
vi
+3
50
- 7
~@
40
60
- 7
~
50
o
~@)
50
- 22
~
22]@
22]@)
30
20
__Q_j
U;
+2
+7
3
M+ 3
Offerta
+l
M + 2
M - 22
30
20
70
30
60
19
19
20
22
22
l = 2460
In secondo luogo, un 'altra variabile di base degenere (x 34) si presenta nel terzo tableau
poiché le variabili di base per due distinte celle donatrici nel secondo tableau, le celle (2,
l) e (3 , 4), hanno lo stesso minimo valore (30) (in questo caso è stata selezionata arbitrariamente x2 1 come variabile di base uscente; se, invece, fosse stata selezionata x 34 , allora
x21 sarebbe diventata la variabile di base degenere). Questa variabil e di base degenere
sembra generare successivamente una complicazione, poiché nel terzo tableau, la cella (3 ,
4) diventa una cella donatrice non avendo però nulla da offrire! Fortunatamente, un tale
evento non è in realtà fonte di preoccupazioni. Poiché zero è la quantità da aggiungere o
da sottrarre dai valori per le celle riceventi e donatrici, questi valori non cambiano.
Tuttavia, la variabile di base degenere diventa la variabile di base uscente, e in tal modo
essa viene sostituita dalla variabile entrante con un valore pari a zero nel quarto tableau.
Questo cambiamento nell ' insieme delle variabili di base cambia i valori di u; e v1.
Successivamente, se qualcuno dei valori ciJ - u; - v1 fosse stato negativo nel quarto tableau, la procedura avrebbe continuato a fare reali cambiamenti nei valori (ogni volta che
tutte le celle donatrici hanno variabili di base non degeneri).
In terzo luogo, poiché nessuno dei valori ciJ - u; - v1 è risultato negativo nel quarto tableau, anche l' insieme (equivalente) dei valori nel terzo tableau è ottimo. Quindi, l'algoritmo ha eseguito un ' iterazione in più di quelle necessarie. Questa iterazione aggiuntiva è un
difetto che si presenta occasionalmente sia nel metodo del simplesso per problemi di tra-
262
CAPITOLO 7
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
sporto che nel metodo del simplesso generale a causa della degeneratezza, ma non è abbastanza grave da giustificare qualsiasi modifica a questi algoritmi.
Adesso che è stato studiato il metodo del simplesso per problemi di trasporti, si è in
grado di verificare come l'algoritmo fornisce realmente una prova costruttiva della proprietà di interezza delle soluzioni presentata nel Paragrafo 7 .l. Il Problema 7.2-1 O guida
n eli' opportuno ragionamento da seguire.
IL PROBLEMA DI ASSEGNAMENTO
Il problema di assegnamento è un particolare problema di programmazione lineare in
cui delle risorse devono essere assegnate per eseguire alcune operazioni (task). Le risorse
possono essere, per esempio, impiegati ai quali vengono affidati delle attività da svolgere.
L'assegnamento di attività a persone è una applicazione comune del problema di assegnamento.10 Le risorse non devono, tuttavia, essere necessariamente delle persone. Esse possono essere delle macchine, dei veicoli, degli impianti industriali, o persino intervalli di
tempo a cui assegnare dei task. Il primo esempio che verrà considerato richiede di assegnare delle macchine a specifiche locazioni e, quindi, in questo caso, un task è semplicemente assegnare una macchina. Un secondo esempio considererà degli impianti industriali a cui assegnare la realizzazione di alcuni prodotti.
Per soddisfare la definizione di problema di assegnamento, queste tipologie di applicazioni devono essere formulate in maniera da verificare le seguenti proprietà.
l. Il numero delle risorse e quello dei task devono essere uguali (tale valore è denotato
con n).
2. Ogni risorsa deve essere assegnata a un unico task.
3. Ogni task è svolto da un ' unica risorsa.
4. C'è un costo eu associato all'esecuzione del taskJU = l , 2, .. .,n) da parte della risorsa i (i =l, 2, ... , n).
5. L'obiettivo è determinare le assegnazioni a costo globale minimo.
Ogni prob lema che soddisfa tutte queste condizioni può essere risolto in maniera estremamente efficace utilizzando algoritmi espressamente progettati per i problemi di assegnamento.
Le prime tre proprietà sono piuttosto restrittive. Molte potenziali applicazioni non soddisfano tali condizioni. Tuttavia, è spesso possibile riformulare il problema in modo che
esse siano verificate. Per esempio, possono essere introdotti risorse e task fittizi .
Nell'esempio seguente vengono descritte queste tecniche.
Un primo semplice esempio
La JOB SHOP COMP ANY ha comprato tre differenti nuove macchine. Nel negozio ci sono quattro posizioni disponibili in cui una macchina potrebbe essere installata. Alcune di
queste posizioni sono miglimi rispetto ad altre in quanto vicino alle stazioni di lavoro con
un alto flusso di lavoro da e verso la macchina (non vi è flusso di lavoro tra le nuove macchine). Di conseguenza, l' obiettivo è assegnare le nuove macchine alle posizioni disponibili così da minimizzare il costo complessivo della gestione dei materiali. Il costo orario
stimato, per la gestione dei materiali per ciascuna delle macchine e per le rispettive posizioni è indicato nella Tabella 7.24. La posizione 2 non è considerata adatta alla macchina
2, così nessun costo è presente per questo caso.
10
L.J. LeBlanc, D. Randels, Jr. , e T.K. Swann, " Heery lntemational 's Spreadsheet Optimization Mode! for
Assigning Managers to Construction Projects", lntelfaces, 30(6): 95 -106, nov. -dic . 2000. Alla pagina 98 di questo artico lo vengono inoltre ci tate altre sette app licazioni del problema di assegnamento.
7.3
263
IL PROBLEMA DI ASSEGNAMENTO
TABELLA 7.24 Costi per la gestione dei materiali
per la Shop Co.
Locazione
Macchina
2
3
1
2
3
4
13
16
12
13
10
11
20
6
15
7
5
TABELLA 7.25 Tabella dei costi per il problema
di assegnamento Shop Co.
Task
(Locazione)
Risorsa
(Macchina)
2
3
1
2
3
4
13
16
15
M
12
13
10
11
20
6
7
5
o
4(0)
o
o
o
Per formulare questo problema come problema di assegnamento, si deve introdurre una
macchina fittizia per la posizione supplementare. Inoltre, per impedire questa assegnazione nella soluzione ottima, deve essere attribuito un costo estremamente grande M all'assegnamento della macchina 2 alla posizione 2. La tabella dei costi risultante per il problema
di assegnamento è riportata nella Tabella 7.25. Questa tabella dei costi contiene tutti i dati
necessari per risolvere il problema. La soluzione ottima consiste nell'assegnare la macchina l alla posizione 4, la macchina 2 alla posizione 3 e la macchina 3 alla posizione l , con
un costo orario complessivo pari a 29. La macchina fittizia è assegnata alla posizione 2,
così questa posizione è libera.
Come questa soluzione sia stata ottenuta verrà discusso dopo aver formulato il modello
matematico per il problema di assegnamento.
Il modello per il problema di assegnamento
Il modello matematico per il problema di assegnamento usa le seguenti variabili decisionali:
se la risorsa i esegue il task j ,
Xij = {
altrimenti ,
~
per i = l , 2, ... , n e j = l, 2, . .. , n.
Quindi, ciascuna xu è una variabile binaria (assume valore O oppure 1). Come discusso ampiamente nel capitolo sulla programmazione intera (Capitolo 9), le variabili binarie
sono importanti nella Ricerca Operativa in quanto petmettono di rappresentare decisioni
del tipo sìlno. In questo caso, la decisione sìlno è: la risorsa i deve essere scelta per eseguire il taskj ?
Indicando con Z il costo totale, il problema di assegnamento è
n
mmtmtzzare
Z
i= l
soggetto ai vincoli
n
= L L cuxu
J= l
Il
Lxu=l
per i = l, 2, ... , n
}= l
Il
Lxu=
i= l
l
per j
=
l , 2, ... , n
264
CAPITOLO 7
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
e
per ogni i
xu
variabile binaria
ej
per ogni i
ej
Il primo insieme di vincoli funzionali specifica che ogni risorsa deve essere assegnata
esattamente a un task, mentre il secondo insieme richiede che ogni task sia eseguito esattamente da una delle risorse disponibili. Se non si considerano i vincoli che impongono che
xu deve essere una variabile binaria, il modello è chiaramente un tipo speciale di problema di programmazione lineare e può essere risolto facilmente. Fortunatamente, per ragioni che verranno chiarite in seguito, questi vincoli possono essere cancellati (questa è la ragione per cui il problema dell ' assegnamento compare in questo capitolo piuttosto che nel
capitolo sulla programmazione intera).
Adesso confrontando questo modello (senza i vincoli che impongono che le variabili
siano binarie) con il modello del problema di trasporto presentato nel Paragrafo 7 .l
(compresa la Tabella 7.6), si può notare quanto le loro strutture siano simili. Infatti, il problema di assegnamento è uno speciale problema del trasporto dove le sorgenti sono ora le
risorse e le destinazioni sono i task e dove
numero di sorgenti m= numero di destinazioni n,
ogni offerta s; = l ,
ogni domanda d1 = l .
Adesso, tenendo conto della proprietà di interezza delle soluzioni per un problema di trasporto, e poiché s; e di sono interi(= 1), si ha che per un problema di assegnamento ogni
BFS (compresa quella ottima) ha componenti intere. I vincoli funzionali del modello del
problema dell'assegnamento impediscono che una qualunque variabile assuma valore
maggiore di l mentre i vincoli di nonnegatività impediscono valori minori di O. Di conseguenza, cancellando la richiesta che le variabili siano di tipo binario e risolvendo il problema di assegnamento come un problema di programmazione lineare, le BFS ottenute
(compresa la soluzione ottima finale) soddisferanno automaticamente anche questa condizione.
Così come il problema di trasporto ha una rappresentazione su rete (si veda la Figura
7.3), anche il problema di assegnamento può essere descritto in un modo molto simile, come mostrato in Figura 7 .5. La prima colonna ora elenca le n risorse da assegnare e la seconda colonna gli n task. Il numero in parentesi quadra indica la quantità di risorse da assegnare a quella posizione nella rete; quindi, i valori sono automaticamente l a sinistra, mentre i
valori - l a destra indicano che ciascun task richiede l 'assegnazione di una risorsa.
Normalmente, per ogni problema di assegnamento, non è necessario scrivere il modello matematico completo. È più semplice formulare il problema ampliando una tabella dei
costi (per esempio, la Tabella 7.25), includendo l'identificazione delle risorse da assegnare e dei task, poiché questa tabella contiene tutti i dati essenziali in una forma molto più
compatta.
A volte, i problemi non si presentano nella forma richiesta dal modello per un problema di assegnamento perché alcune delle risorse possono essere assegnate a più di un task.
In questo caso, per soddisfare il modello, il problema può essere riformulato suddividendo ciascuna delle risorse in più (identiche) risorse da assegnare e ogni nuova risorsa sarà
assegnata esattamente a un task (la Tabella 7.29 illustrerà ciò successivamente con un
esempio). Allo stesso modo, se un task deve essere effettuato da più risorse, quel task può
essere suddiviso in task separati (ma identici) e ogni task è eseguito esattamente da una risorsa in accordo al modello riformulato.
Procedure risolutive per i problemi di assegnamento
Per la soluzione di problemi di assegnamento, sono disponibili varie procedure risolutive.
Problemi che non sono molto più grandi dell'esempio Job Shop Co. possono essere risolti
• FIGUR
Rapp reser
de l probiE
dell'asseg1
7.3
265
Il PROBlEMA DI ASSEGNAMENTO
molto rapidamente con il metodo del simplesso nella forma generale, e così può essere
conveniente usare semplicemente un pacchetto software di base (come Excel e il suo
Risolutore) che impiega soltanto questo metodo. Se ciò fosse stato fatto per il problema
Job Shop Co., non sarebbe stato necessario aggiungere la macchina fittizia alla Tabella
7.25 per renderlo conforme al modello del problema dell'assegnamento. I vincoli sul numero di macchine da assegnare a ogni posizione sarebbero stati espressi invece come
3
2::
X ij
:S l
per j = l, 2, 3, 4
i= l
Una formulazione mediante l'uso di un foglio elettronico di questo esempio sarebbe molto simile alla formulazione mostrata nella Figura 7.4 tranne per il fatto che adesso tutte le
domande e le offerte dovrebbero essere uguali a l e i vincoli sulla domanda dovrebbero
essere :S l invece di = l.
Tuttavia, problemi di assegnamento di grandi dimensioni possono essere risolti molto
più velocemente usando procedure risolutive più specifiche, e si suggerisce di eseguire
una tale procedura anziché il metodo del simplesso generale per problemi di grandi dimensioni.
Poiché il problema dell 'assegnamento è uno speciale tipo di problema di trasporto, un
modo conveniente e relativamente veloce di risolvere un qualunque problema di assegnamento consiste nell 'applicare il metodo del simplesso per problemi di trasporto descritto
nel Paragrafo 7.2. Questo approccio richiede la conversione della tabella dei costi in una
tabella dei parametri per l'equivalente problema di trasporto, come mostrato nella Tabella
7.26a.
La Tabella 7.26b mostra la tabella dei parametri per il problema Job Shop Co. ottenuta
a partire dalla Tabella 7.25 . Quando il metodo del simplesso per problemi di trasporto è
applicato a questa formulazione, la soluzione ottima risultante ha variabili di base x 13 =O,
• FIGURA 7.5
Rappresentazione su rete
del problema
dell'assegnamento.
·-
CAPITOLO 7
266
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
=l, x 2 3 = l, x 31 = l, x 41 =O, x 42 = l , x 43 = O (il Problema 7.3-3 richiede di verificare che questa è proprio la soluzione ottima). Le variabili di base degeneri (xii= O) e l'assegnazione per la macchina fittizia (x 42 = l ) non hrumo nessuna influenza sul problema originale, e così le assegnazioni reali prevedono la macchina l alla posizione 4, la macchina
2 alla posizione 3 e la macchina 3 alla posizione l.
Non è una coincidenza che questa soluzione ottima fornita dal metodo del simplesso
per problemi di trasporto abbia molte variabili di base degeneri. Per qualsiasi problema di
assegnamento in cui devono essere eseguite n assegnazioni, la formulazione del problema
di trasporto mostrata nella Tabella 7.26a ha m = n, cioè, sia il numero delle sorgenti (m)
sia il numero delle destinazioni (n) in questa formulazione è uguale al numero delle assegnazioni (n) . I problemi di trasporto hanno in generale m+ n - l variabili di base, e così
ogni BFS per questo tipo particolare di problema di trasporto ha 2n - l variabili di base,
ma esattamente n di queste xii sono uguali a l (corrispondenti alle n assegnazioni). Di conseguenza, poiché tutte le variabili sono variabili binarie, ci sono sempre n - l variabili di
base degeneri (xii = 0). Come discusso alla fine del Paragrafo 7.2, le variabili di base degeneri non causano nessuna complicazione nell 'esecuzione dell 'algoritmo. Tuttavia, generano frequentemente iterazioni inutili, dove non cambia nulla (si hanno cioè gli stessi valori) eccetto l'identificazione di quali valori nulli corrispondono alle variabili di base degeneri piuttosto che alle variabili non di base. Queste iterazioni inutili costituiscono un
impotiante svantaggio nell'applicare il metodo del simplesso per problemi di trasporto a
questo tipo di situazione, dove ci sono sempre molte variabili di base degeneri.
Un altro svantaggio del metodo del simplesso per problemi di traspotio applicato a
questo caso è che esso è ancora un algoritmo general-pwpose per la risoluzione di tutti i
problemi di trasporto . Di conseguenza, non si sfi·utta la speciale struttura supplementare
in questo tipo di problema di trasporto (m = n, ogni si = l e ogni d1 = l). Fortunatamente, sono stati sviluppati specifici algoritmi per semplificare la procedura risolutiva per i
problemi di assegnamento. Questi algoritmi agiscono direttamente sulla tabella dei costi e
non hanno difficoltà con variabili di base degeneri. Generalmente, quando è disponibile
un programma software per uno di questi algoritmi, esso dovrebbe essere usato invece del
metodo del simplesso per problemi di trasporto, soprattutto per problemi di grandi dimensioni.''
Il Paragrafo 7.4 descrive uno di questi algoritmi specializzati (chiamato metodo ungherese) per risolvere in molto efficiente problemi di assegnamento.
x,4
8 TABELLA 7.26 Tabella dei parametri per il problema dell'assegnamento formulato come un problema
di trasporto (esempio Shop Co.)
(a) Caso generale
(b) Esempio Shop Co.
Costo per unità
trasportata
Costo per unità
trasportata
Destinazione
1
2
...
...
n
l
2
c11
c1 2
c21
c22
m= n
Cn l
Cn2
...
Cnn
l
.. .
l
Sorgente
Domanda
l
...
.. .
Destinazione (Locazione)
Offerta
Cl n
l
C2 n
l
. ..
Sorgente
(Macchina)
l
2
3
4(0)
l
Domanda
1
2
3
4
13
16
15
5
M
11
20
6
7
12
13
lO
o
o
o
o
l
l
l
l
Offerta
l
l
l
l
11
In J.K. Ke1mington e Z. Wang, "An empirica! Analysis of the Dense Assignrnent Problem: Sequential and
Parallel lmplementations" , ORSA Joumal on Computing. 3: 299-306, 1991 vengono confrontati vari algoritmi
per il problema di assegnamento.
7.3
267
IL PROBLEMA DI ASSEGNAMENTO
Esempio - Assegnazione di prodotti agli stabilimenti
La BETTER PRODUCTS COMPANY ha deciso di iniziare la produzione di quattro nuovi
prodotti usando tre stabilimenti che attualmente hanno capacità produttiva in eccesso. I prodotti richiedono uno sforzo di produzione per unità abbastanza simile, e così la capacità produttiva disponibile negli stabilimenti è misurata dal numero di unità di ogni prodotto che
può essere prodotto in un giorno, come indicato nella colonna destra della Tabella 7.27. La
riga in basso fornisce il tasso di produzione giornaliero richiesto per soddisfare le vendite
programmate. Ogni stabilimento può produrre uno qualunque dei prodotti, tranne lo stabilimento 2 che non può produrre il prodotto 3. Tuttavia, i costi unitari di ogni prodotto differiscono da stabilimento a stabilimento, come indicato nella parte centrale della Tabella 7.27.
Il management ora deve prendere una decisione su come suddividere la produzione dei
prodotti fra gli stabilimenti. Sono disponibili due tipi di opzioni.
Opzione I : è permesso suddividere la produzione: lo stesso prodotto è fabbricato in più di
uno stabilimento.
Opzione 2: è vietato suddividere la produzione.
Questa seconda opzione impone un vincolo che può solo aumentare il costo di una soluzione ottima basata sulla Tabella 7.27. D'altra parte, il vantaggio chiave dell 'opzione 2 è
che elimina alcuni costi nascosti associati alla suddivisione del prodotto che non sono
presenti nella Tabella 7.27, compresi costi aggiuntivi di setup, distribuzione e gestione. Di
conseguenza, il management desidera che entrambe le opzioni vengano analizzate prima
di prendere una decisione finale. Per l'opzione 2, il management specifica inoltre che a
ogni stabilimento dovrebbe essere assegnato almeno uno dei prodotti.
Per ogni singola opzione verrà formulato il modello e risolto, tenendo conto che l'opzione l conduce a un problema di trasporto e l'opzione 2 conduce a un problema di assegnamento.
Opzione l. Avendo il permesso di suddividere la produzione, la Tabella 7.27 può essere convertita direttamente nella tabella dei parametri per un problema di trasporto. Gli stabilimenti diventano le sorgenti e i prodotti le destinazioni (o viceversa), così la capacità
produttiva disponibile rappresenta l'offerta mentre le domande sono i tassi di produzione
richiesti. Soltanto due modifiche devono essere apportate alla Tabella 7.27. La prima, poiché lo stabilimento 2 non può produrre il prodotto 3, tale assegnazione è evitata assegnando un enorme costo unitario M. In secondo luogo, la capacità totale (75 + 75 + 45 = 195)
eccede la produzione totale richiesta (20 + 30 + 30 + 40 = 120), così è necessaria una destinazione fittizia con una richiesta di 75 per equilibrare queste due quantità. La tabella dei
parametri risultante è mostrata nella Tabella 7.28.
La soluzione ottima per questo problema di trasporto ha variabili di base x 12 = 30,
x 13 = 30, x 15 = 15, x 24 = 15, x 25 = 60, x3 , = 20 e x 3 4 = 25, così
Lo stabilimento l produce i prodotti 2 e 3.
Lo stabilimento 2 produce il 37.5 percento del prodotto 4.
Lo stabilimento 3 produce il 62.5 percento dei prodotti 4 e totalmente il prodotto l.
Il costo complessivo è Z = 3260 dollari al giorno.
TABELLA 7.27 Dati per il problema Better Products Co.
Costo unitario (dollari) per prodotto
l
Stabilimento
2
3
Tasso di produzione
l
2
3
4
Capacità
disponibile
41
40
37
27
29
30
28
27
24
23
21
75
75
45
20
30
30
40
-
268
CAPITOLO 7
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
TABELLA 7.28 Tabella dei parametri per il problema di trasporto (opzione l)
per il problema Better Products Co.
Costo per unità trasportata
Destinazione (Prodotto)
Sorgente
(Stabilimento)
l
2
3
Domanda
1
2
3
4
S(D)
Offerta
'\1
27
29
30
28
40
37
27
24
23
21
o
o
o
75
75
45
20
30
30
40
75
M
Opzione 2. Senza la suddivisione della produzione, ogni prodotto deve essere assegnato a esattamente un stabilimento. Di conseguenza, la produzione può essere interpretata
come un task per un problema di assegnamento, in cui gli stabilimenti sono le risorse.
Il management ha specificato che a ogni stabilimento deve essere assegnato almeno
uno dei prodotti. Poiché ci sono più prodotti (quattro) che stabilimenti (tre), a uno degli
stabilimenti dovranno essere assegnati due prodotti. Lo stabilimento 3 ha capacità in eccesso abbastanza per produrre soltanto un prodotto (si veda la Tabella 7 .27), così o lo stabilimento l o lo stabilimento 2 produrranno il prodotto aggiuntivo.
Per rendere questa assegnazione di un prodotto aggiuntivo possibile all'interno di una
formulazione come problema di assegnamento, ciascuno degli stabilimenti l e 2 deve essere suddiviso in due, come mostrato nella Tabella 7.29.
Poiché il numero di risorse assegnate (adesso cinque) deve essere uguale al numero di
task (adesso quattro), nella Tabella 7.29 è introdotto un task fittizio (prodotto) indicato
come 5(D). Il ruolo di questo task fittizio è quello di fornire un secondo prodotto immaginario allo stabilimento l o allo stabilimento 2, se esso riceve solo un prodotto reale. Non
c'è un costo per un prodotto immaginario così, come di consueto, i costi per il task fittizio sono nulli. L'unica eccezione è rappresentata dalla voce M nell ' ultima riga della
Tabella 7.29. Il motivo di questo valore M è che allo stabilimento 3 deve essere assegnato un prodotto reale (una scelta tra i prodotti l , 2, 3 o 4), e così per impedire l'assegnazione del prodotto immaginario allo stabilimento 3 è necessario assegnare un costo M (nella
Tabella 7.28, M è usato anche per impedire la assegnazione del prodotto 3 allo stabilimento 2).
I rimanenti costi nella Tabella 7.29 non sono i costi unitari mostrati nelle Tabelle 7.27 o
7.27. La Tabella 7.28 fornisce una formulazione come problema di trasporto (opzione l ) e
i costi unitari sono appropriati in quel caso, mentre adesso si sta formulando un problema
di assegnamento (opzione 2). Per un problema di assegnamento, il costo ciJ è il costo complessivo associato alla risorsa i che esegue il taskj. Dalla Tabella 7.29, il costo complessivo (giornaliero) per lo stabilimento i per produrre il prodotto j è pari al costo unitario di
produzione moltiplicato il numero di unità prodotte (per giorno).
TABELLA 7.29 Tabella dei costi per la formulazione come problema di
assegnamento (opzione 2) per il problema Better Products Co.
Task (Prodotto)
Assegnatario
(Stabilimento)
la
lb
2a
2b
3
1
2
3
4
S(D)
820
820
800
800
740
810
810
870
870
900
840
840
960
960
920
920
840
o
o
o
o
M
M
810
M
7.3
269
IL PROBLEMA DI ASSEGNAMENTO
Queste due quantità sono riportate nella Tabella 7.27. Come esempio, si consideri l'assegnazione dello stabilimento l al prodotto l. Usando il costo unitario corrispondente nella
Tabella 7.28 (41 dollari) e la domanda corrispondente (numero di unità prodotte al giorno) nella tabella 7.28 (20), si ottiene
costo dello stabilimento l per la produzione di una unità del prodotto l
= 41 dollari
produzione richiesta (giornalmente) del prodotto l = 20 unità
costo totale (giornaliero) dell'assegnazione dello stabilimento l al prodotto l = 20
(41 dollari) = 820 dollari
Il valore 820 è riportato nella Tabella 7.29 come costo per la risorsa l a o l b che esegue il
task l .
La soluzione ottima per questo problema di assegnamento è la seguente:
lo stabilimento l produce i prodotti 2 e 3,
lo stabilimento 2 produce il prodotto l ,
lo stabilimento 3 produce il prodotto 4.
In questo caso l' assegnazione fittizia è attribuita allo stabilimento 2. Il costo complessivo
è Z = 3290 dollari al giorno.
Come di consueto, un modo per ottenere questa soluzione ottima è quello di convertire
la tabella dei costi della Tabella 7.29 in una tabella di parametri per un equivalente problema di trasporto (si veda la Tabella 7.26) e applicare quindi il metodo del simplesso per
problemi di trasporto . A causa delle righe identiche nella Tabella 7 .29, questo metodo
può essere semplificato associando le cinque risorse in tre sorgenti con, rispettivamente,
offerte 2, 2 e l. Questa semplificazione produce anche una diminuzione pari a due nel numero di variabili di base degeneri in ogni BFS. Di conseguenza, anche se questa formulazione non soddisfa più la formulazione presentata nella Tabella 7.26a per un problema di
assegnamento, essa costituisce una formulazione più efficiente per l' applicazione del metodo del simplesso per problemj di trasporto.
La Figura 7.6 mostra come Excel e il suo Risolutore possono essere usati per ottenere
questa soluzione ottima, visualizzata nelle celle modificabili Assignment (C 19:F21) del
foglio elettronico. Dato che si sta usando il metodo del simplesso nella forma generale,
non è necessario riscrivere il problema come problema di assegnamento o come problema
di trasporto. Di conseguenza, la formulazione non si preoccupa di suddividere gli stabilimenti l e 2 ciascuno in due risorse, o aggiungere un task fittizio . Invece, agli stabilimenti
l e 2 è assegnata un'offerta di 2 ciascuno, e quindi i segni ::; sono inseriti nelle celle H 19
e H20 così come nei vincoli corrispondenti della finestra di dialogo del Rjsolutore. Non vi
è nemmeno la necessità di utilizzare il metodo del Big M per impedire l' assegnazione del
prodotto 3 allo stabilimento 2 nella cella E20, dato che questa finestra di dialogo include
il vincolo in base al quale E20 = O. La cella di destinazione TotalCost (124) mostra il costo complessivo pari a 3290 dollari al giorno.
Adesso confrontando questa soluzione con quella ottenuta per l'opzione l, che consiste nel suddividere il prodotto 4 tra gli stabilimenti 2 e 3, si ha che le allocazioni sono differenti per le due soluzioni, ma i costi totali giornalieri virtualmente gli stessi (3260 dollari per l'opzione l contro i 3290 dollari per l'opzione 2). Tuttavia, ci sono dei costi nascosti associati alla suddivisione del prodotto (compreso i costi di setup, di distribuzione e di
gestione) che non sono inclusi nella funzione obiettivo per l' opzione l. Come qualsiasi
applicazione di Ricerca Operativa, il modello matematico usato può fornire soltanto una
rappresentazione approssimata del problema complessivo, così prima di prendere una decisione finale, il management deve considerare i fattori che non possono essere inclusi nel
modello. In questo caso, dopo la valutazione degli svantaggi ottenuti con la suddivisione
del prodotto, il management ha deciso di adottare la soluzione dell ' opzione 2.
270
CAPITOLO 7
1
2
3
4
5
6
7
8
9
1o
11
12
13
14
15
16
17
18
19
20
21
22
23
24
~
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
E
A
B
c
D
F
G
l
Better Products Co. Production Planning Problem (Revised)
Unit Cost
Praduct 1
$41
$40
$37
Plant 1
Plant2
Plant3
l
l
Praduct 2
$2 7
$ 29
$30
l
Produ ct 3
$28
$ 27
l
l
l
l
30
30
40
Cost ($/day)
Plant 1
Plant2
Plant 3
Praduct 1
$820
$800
$740
Praduct 2
$810
$870
$900
Product 3
$840
Product 4
$960
$920
$840
Assignment
Praduct 1
Praduct 2
1
o
1
o
o
Praduct 3
1
1
=
1
1
=
1
1
=
1
Plant 1
Plant 2
Plant 3
Tatal Assiqned
Oemand
o
Solver Parameters ~
Set Target Cel i:
l rotaiCost - l ~
Equal To :
O Max ~' Min O
By Changi ng Cells: _ _ __
l
11
12
13
14
~
Subject to the Constrai nts: _
$E$20= O
$G$19:$G$20 < = $ 1$19:$ 1$20
$G$21 =$1$21
Praduct 4
o
o
o
o
l
B
Cost ($/day)
Plant 1
Plant2
Plant3
l
l
,.,.
Supply
2
2
1
l
20
-
l
Praduct 4
$ 24
$ 23
$ 21
Required Praductian
$8 10
H
1
1
=
1
Tatal
Assignments
2
1
1
=
Tatal Cast
3,290
$
D
E
F
c
Praduct 1 Praduct 2 Praduct 3 Product 4
=04*08
=E4*E8
=F4*F8
=C4*C8
=C8 *C5
=D8*D5
=F8*F5
=C8 *C6
=D8*D6
=E8 *E6
=F8*F6
17
18
19
20
21
Solver Options ~
[iif Assurrre Li ne ar Mode l
liif Assi.J rrre No n- Negati ve
G
Tatal
Assignments
=SUMCC19 :F19)
-SUMCC20 :F20)
=SUM(C21 :F21)
Tota lAssi gne d = De rna nd
Range Name
Assignment
Cost
Demand
RequiredProductian
Supply
TataiAssigned
TataiAssignments
TataiCast
UnitCast
Cells
C19:F21
C12:F14
C24:F24
C8 :F8
119:121
C22 :F22
G19:G21
124
C4:F6
23
24
l
Tatal Cast
=SUMPRODUCT(Cast,Assignment)
• Figura 7.6
Una formulazione mediante foglio elettronico dell'opzione 2 per il problema Better Products Co. come variante di un
problema di assegnamento. La cella obiettivo è TotaiCost (124) e le altre celle di output sono Cost (C12 :F14),
TotaiAssignments (Gl9:G21) e TotaiAssigned (C22:F22); le equazioni inserite all'interno di queste celle sono mostrate
sotto il foglio elettronico. l valori di l nelle celle modificabili Assignment (Cl9:F21) mostrano il piano di produzione
ottimale ottenuto.
7.4
7.4
UN ALGORITMO SPECIFICO PER Il PROBLEMA DI ASSEGNAMENTO
271
UN ALGORITMO SPECIFICO PER IL PROBLEMA
DI ASSEGNAMENTO
Nel Paragrafo 7.3, si è messo in evidenza il fatto che il metodo del simplesso per problemi di trasporto può essere utilizzato per la risoluzione di un problema di assegnamento,
ma che un algoritmo specifico, progettato appositamente per tali tipologie di problemi,
potrebbe essere più efficiente. Sarà ora descritto un classico algoritmo denominato metodo ungherese (o algoritmo ungherese) perché sviluppato da un matematico ungherese.
L ' attenzione verrà focalizzata soltanto su !l ' idea chiave senza entrare in tutti i dettagli necessari per una completa implementazione al computer.
Tabelle equivalenti dei costi
L ' algoritmo opera direttamente sulla tabella dei costi del problema di assegnamento. Più
precisamente, converte la tabella originale dei costi in una serie di tabelle equivalenti fino
a raggiungerne una in cui la soluzione ottima risulta ovvia. In questa tabella finale dei costi tutti gli elementi sono positivi o nulli e tutte le assegnazioni possono essere effettuate
in corrispondenza di valori nulli. Poiché il costo totale non può essere negativo, questo insieme di assegnazioni con costo totale nullo è chiaramente ottimo. Il problema è quello di
stabilire come convertire la tabella originale dei costi in questa forma.
La chiave di questa conversione sta nel fatto che è possibile aggiungere o sottrarre una
qualsiasi costante a ogni elemento di una riga o di una colonna della tabella dei costi senza alterare realmente il problema. Questo significa che una soluzione ottima per la nuova
tabella dei costi è ottima anche per quella precedente, e viceversa.
L ' algoritmo inizia, quindi , sottraendo il più piccolo valore in ciascuna riga da ogni elemento della riga stessa. Questo processo di riduzione per righe determinerà una tabella
equivalente dei costi che ha almeno un elemento nullo in ciascuna riga. Se questa nuova
tabella dei costi possiede una qualche colonna senza nemmeno un elemento nullo, il passo successivo consiste nell ' effettuare un processo di riduzione per colonn·e sottraendo il
più piccolo valore della colonna da ciascun elemento della colonna stessa, 12 e ciò è ripetuto per ogni colonna. La nuova tabella equivalente dei costi conterrà uno zero in ogni riga
e in ogni colonna. Se questi elementi nulli forniscono un insieme completo di assegnazioni, esso costituisce una soluzione ottima e l'algoritmo termina.
A scopo illustrativo, si consideri la tabella dei costi per il problema della Job Shop Co.
fornita nella Tabella 7.25. Per convertire tale tabella dei costi in una equivalente, si supponga di iniziare il processo di riduzione per righe sottraendo 11 da ogni elemento della
riga l , da cui:
2
4
3
o
2
5
2
15
M
13
20
3
5
7
10
6
4(D)
o
o
o
o
Poiché una qualunque soluzione ammissibile deve avere esattamente un assegnamento
nella riga l , il costo globale per la nuova tabella dei costi deve essere sempre inferiore, rispetto a quello della precedente tabella, e precisamente deve differire proprio di 11 unità.
Perciò, la soluzione che minimizza il costo globale per una tabella, deve minimizzare tale
costo anche per l'altra.
12
Le singole righe e colonne possono attualmente essere ridotte in un ordine qual siasi, tuttav ia, procedere riducendo tutte le righe e successivamente passare alla riduzione delle colonne, costituisce un metodo sistematico per
l 'esecuzione del! ' algoritmo.
272
CAPITOLO 7
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
Si noti che, mentre la tabella originale dei costi è costituita solamente da elementi strettamente positivi nelle prime tre righe, la nuova tabella possiede un elemento nullo nella riga
l. Poiché l' obiettivo è ottenere elementi nulli strategicamente distribuiti per ottenere un
completo insieme di assegnazioni, questo processo deve proseguire per le altre righe e colonne. Elementi negativi devono essere evitati, e quindi la costante da sottrarre deve essere il più piccolo valore nella riga o nella colonna. Fatto ciò per le righe 2 e 3, si ottiene la
seguente tabella dei costi (equivalente a quella iniziale):
2
4
3
!Q)
2
5
2
2
M
[Q]
3
!Q)
2
5
4(D)
o
!Q)
o
7
o
Questa tabella dei costi possiede tutti gli elementi nulli necessari per un completo insieme
di assegnazioni, come mostrato dai quattro riquadri, e quindi queste quattro assegnazioni
costituiscono una soluzione ottima (come affermato nel Paragrafo 7.3). Il costo globale
per questa soluzione ottima può essere dedotto dalla Tabella 7.25 ed è pari aZ = 29, che
è la somma dei valori sottratti dalle righe l , 2 e 3.
Sfortunatamente, una soluzione ottima non sempre può essere ottenuta così facilmente,
come evidenziato dalla formulazione del problema di assegnamento dell'opzione 2 per il
problema della Better Products Co., mostrato nella Tabella 7.29 .
Poiché la tabella dei costi di questo problema presenta già elementi nulli in ogni riga
ma tutti nell 'ultima colonna, il processo di conversione della tabella comincia sottraendo
il più piccolo valore in ogni colonna da ogni elemento della colonna stessa. Il risultato è
mostrato sotto:
2
3
4
5(D
30
120
30
120
o
o
o
o
la
80
Jb
80
o
o
2a
60
60
M
80
2b
60
60
M
80
o
90
3
o
o
M
Adesso per ogni riga e per ogni colonna esiste almeno un elemento nullo, ma non è possibile determinare un insieme completo di assegnazioni con tutti elementi nulli. Infatti, il
massimo numero di assegnazioni che è possibile effettuare con elementi nulli è 3. Quindi,
una ulteriore idea, che non si ere resa necessaria per il primo esempio, deve essere implementata per completare la risoluzione di questo problema.
Creazione di ulteriori elementi nulli
Questa idea consiste in un nuovo modo di creare posizioni aggiuntive con elementi nulli
senza ìn ogni caso creare alcun elemento negativo. Piuttosto che sottrarre una costante da
una singola riga o colonna, è possibile aggiungere o sottrarre una costante a una combinazione di righe e colonne.
Questa procedura inizia tracciando una serie di linee sopra alcune righe e colonne in
modo da coprire tutti gli zeri. Ciò deve essere preferibilmente fatto utilizzando il minor
numero di linee possibile, come mostrato nella prossima tabella dei costi.
7.4
UN ALGORITMO SPECIFICO PER Il PROBLEMA DI ASSEGNAMENTO
2
3
4
!a
80
30
120
lh
80
30
120
2a
60
6
M
80
2b
60
6
M
80
("\
("\,
("\
r\
3
v
~
273
5(D)
v
Si osservi che il più piccolo elemento non cancellato è 30 nelle due posizione più in alto
della colonna 3. Sottraendo, quindi , il valore 30 da ogni elemento nell ' intera tabella, vale
a dire da ogni riga e da ogni colonna, si otterrà un nuovo elemento nullo in queste due posizioni. Successivamente, per ripristinare i precedenti elementi nulli ed eliminare gli elementi negativi, si aggiungerà 30 a ogni riga o colonna coperta da una linea (la riga 3, la
colonna 2 e la colonna 5(D)). Ciò conduce alla seguente tabella equivalente dei costi:
5(D)
2
3
4
o
o
o
o
90
la
50
lh
50
2a
30
60
M
50
2b
30
60
M
50
o
120
3
o
o
o
o
90
o
o
M
Una scorciatoia per ottenere questa tabella dei costi a partire dalla precedente consiste nel
sottrarre il valore 30 solamente dagli elementi non coperti da una linea e, quindi , aggiungere 30 a ogni elemento che si trovi nell'intersezione di due linee.
Si osservi che le colonne I e 4 in questa nuova tabella dei costi hanno ciascuna un unico elemento nullo; questi elementi nulli si trovano in corrispondenza della medesima riga
(la riga 3). Di conseguenza, è ora possibile eseguire quattro assegnazioni in corrispondenza degli elementi nulli, ma non ancora cinque. Occon·e, quindi, ripetere la procedura appena effettuata, ma, questa volta, quattro linee (Io stesso valore del massimo numero di assegnazioni) sono il numero minimo di linee necessario per coprire tutti gli zeri. Una maniera di fare ciò è mostrata di seguito.
2
!a
~A
3
JV
v
v
Ib
rn
r\
("\
2a
30
2h
3
JV
v
v
5(D)
4
A
7V
("\("\
7V
60
M
50
30
60
M
50
("\
"A
("\
A
~
· ~~
~
~
'
Il più piccolo elemento non coperto da una linea è ancora una volta 30, il quale compare
nella prima posizione nelle righe 2a e 2b. Sottraendo quindi il valore 30 da ogni elemento
non coperto e aggiungendo, invece, 30 a ogni elemento coperto da due linee (a eccezione
degli elementi M), si ottiene la seguente tabella equivalente dei costi.
274
CAPITOLO 7
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
2
3
4
5(D)
la
50
[Q]
o
90
30
lh
50
o
[Q]
90
30
2a
[Q]
30
M
20
o
2h
o
o
30
M
20
[Q]
[Q]
M
3
120
o
Questa tabella permette, in realtà, di creare in diversi modi un insieme completo di assegnazioni in corrispondenza di elementi nulli (differenti soluzioni ottime), inclusa quella
mostrata nei cinque riquadri . Il costo globale risultante come mostrato dalla Tabella 7.29 è
z=
81 o + 840
+ 800 + o+ 840 =
3290
Concludiamo riassumendo i passi dell'intero algoritmo.
Metodo ungherese
l. Sottrarre il più piccolo valore in una riga da ogni elemento della riga stessa (riduzione
per righe). Scrivere i risultati in una nuova tabella.
2. Sottrarre il più piccolo valore in una colonna da ogni elemento della colonna stessa
(riduzione per colonne). Scrivere i risultati in una nuova tabella.
3. Controllare se può essere effettuato un assegnamento ottimo. È possibile fare ciò determinando il minimo numero di linee necessarie per coprire (cioè cancellare) tutti gli zeri . Se il numero di linee eguaglia il numero di righe, è possibile determinare un insieme
ottimo di assegnazioni. In tale caso passare direttamente al passo 6. Altrimenti proseguire con il passo 4.
4. Se il numero di linee è minore del numero di righe, modificare la tabella nel seguente
modo:
a. sottrarre il più piccolo valore non coperto da ogni elemento non coperto della tabella;
b. aggiungere questo valore agli elementi in corrispondenza delle intersezioni di due linee.
c. I rimanenti elementi vanno riportati immutati nella successiva tabella.
5. Ripetere i passi 3 e 4 finché è ottenuto un insieme ottimo di assegnazioni.
6. Effettuare le assegnazioni una alla volta in corrispondenza degli elementi nulli . Iniziare
dalle righe o dalle colonne che presentano un solo zero. Poiché ciascuna riga e ciascuna colonna devono ricevere esattamente una assegnazione, cancellare la riga e la colonna coinvolte dopo ciascuna assegnazione. Spostarsi allora sulle righe e sulle colonne
non ancora cancellate e procedere con la successiva assegnazione, preferendo ancora
quelle righe e quelle colonne con un unico elemento nullo non ancora cancellato.
7.5
CONCLUSIONI
Il modello di programmazione lineare comprende un'ampia varietà di specifiche tipologie
di problemi. Il metodo generale del simplesso è un potente algoritmo che può risolvere
problemi di dimensioni sorprendentemente grandi. Tuttavia, alcuni di questi tipi di problemi hanno formulazioni tanto semplici da poter essere risolte in maniera più efficace da
specifici algoritmi che sfruttano la speciale struttura del problema. Questi algoritmi specializzati possono ridurre in modo significativo i tempi di computazione richiesti per problemi di grandi dimensioni. Ciò vale in particolare per i due tipi di problemi di programmazione lineare studiati in questo capitolo: il problema di trasporto e il problema di asse-
•
PRO
7.1-1. La C
ne di carroz
centri di dis
vamente 12
zione deve
stabilimentc
stra:
Stabilimento
PROBLEMI
275
gnamento. Entrambe le tipologie di problemi presentano un certo numero di applicazioni
comuni, cosicché risulta importante il loro riconoscimento al fine di scegliere l'algoritmo
più conveniente che si ha a disposizione. Questi algoritmi specializzati sono inclusi in diversi pacchetti software di programmazione lineare.
Nel Paragrafo 8.6 verrà riesaminata la speciale struttura dei problemj di trasporto e di
assegnamento. Sarà messa in evidenza come questi problemi siano casi particolari di una
importante classe di problemi di programmazione lineare noti come problemi di flusso a
costo minimo. Questi problemi possono essere interpretati come la ricerca del minimo costo per un flusso di beni attraverso una rete. Una versione specializzata del metodo del
simplesso chiamata metodo del simplesso su rete (descritto nel Paragrafo 8.7) è ampiamente utilizzata per la risoluzione di questo tipo di problemi, inclusi i vari casi particolari.
Molte ricerche continuano a essere dedicate allo sviluppo di specifici algoritrru per la
risoluzione di particolari tipologie di problemi di programmazione lineare, incluse alcune
non discusse in questo testo. Allo stesso tempo, esiste un interesse assai diffuso nell'applicazione della programmazione lineare all'ottimizzazione delle operazioni di sistemi complessi a larga scala. Le formulazioni risultanti hanno speciali strutture che possono essere
sfruttate nel risolvere il probema. L'abilità di riconoscere e sfruttare le speciali strutture è
un importante fattore nel successo delle applicazioni di programmazione lineare .
• RIFERIMENTI BIBLIOGRAFICI
l. Bazaraa, M.S ., J.J. Jarvis e H.D. Sherali: Linear Programming and Network Flows, 2d ed.,
Wiley, New York, 1990, chap. l O.
2. Dantzig, G.B. e M.N. Thapa: Linear Programming 1: Introduction , Springer, New York, 1997,
chap. 8.
3. Geoffrion, A.M.: "Elements of Large-Scale Mathematical Progranm1ing", Management
Science, 16: 652-691 , 1970.
4. Hillier, F.S. e M.S. Hillier: lntroduction to Management Science: A Modeling and Case Studies
Approach with Spreadsheets, 2nd ed., McGraw-Hill/Irwin, Bun· Ridge, IL, 2003, chap. 6.
5. Murthy, D.N.P., N.W. Page e E.Y. Rodin : Mathematical Modeling: A Tool far Problem
Solving in Engineering, Physica/, Biologica/ and Social Sciences, Pergamon Press, Oxford,
England, 1990.
PROBLEMI
7.1-1. La Childfair Company ha tre stabilimenti per la produzione di carrozzine per bambini che devono essere spedite a quattro
centri di distribuzione. Gli stabilimenti l, 2 e 3 generano rispettivamente 12, 17 e 11 spedizioni mensili. Ogni centro di distribuzione deve ricevere l O spedizioni al mese. La distanza fra ogni
stabilimento e i rispettivi centri di distribuzione è indicata a detra:
Distanza
Centro di distribuzione
l
Stabilimento 2
3
1
2
3
4
800 km
1100 km
600 km
1300 km
1400 km
1200 km
400km
600 km
800 km
700 km
1000 km
900 km
Il costo del trasporto per ogni spedizione è di l 00 euro più 50
centesimi per km.
Quanto dovrebbe essere spedito da ogni stabilimento a ciascuno dei centri di distribuzione così da minimizzare il costo totale
di trasporto?
(a) Formulare questo problema come problema di trasporto costruendo l'opportuna tabella dei parametri.
(b) Disegnare la rappresentazione su rete di questo problema.
(c) Determinare una soluzione ottima.
7.1-2. La Versatech Corporation ha deciso di produrre tre nuovi
prodotti. Cinque gruppi di stabilimenti hanno adesso un eccesso
di capacità produttiva. Il costo unitario di produzione del primo
prodotto è pari a 31, 29, 32, 28 e 29 negli stabilimenti l , 2, 3, 4
e 5. Il costo unitario di produzione del secondo prodotto è rispettivamente di 45 , 41, 46, 42 e 43 negli stabilimenti l , 2, 3, 4 e 5.
·--
276
CAPITOLO 7
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
Il costo unitario di produzione del terzo prodotto è pari a 38, 35
e 40 negli stabi limenti l , 2 e 3, mentre gli stabilimenti 4 e 5 non
sono in grado di produtTe questo prodotto. Le previsioni di vendita indicano che dovrebbero essere prodotti rispettivamente
600, l 000 e 800 unità dei prodotti l , 2 e 3 al giorno. Gli stabilimenti l , 2, 3, 4 e 5 sono in grado di produne 400, 600, 400, 600
e l 000 unità giorna liere, indipendentemente dal prodotto o dalla
combinazione di prodotti in questione. Si assuma che ogni stabilimento che ha la possibilità e la capacità di produne certi prodotti possa produrli in qualunque combinazione e in qualsiasi
quantità.
Il management desidera conoscere come allocare i nuovi prodotti agli stabilimenti per minimizzare il costo totale di produzione.
(a) Formulare questo problema come problema di trasporto costruendo l'opp01tuna tabella dei parametri.
(b) Determinare una soluzione ottima.
7.1-3. La Onenote Co. produce un singolo prodotto per quattro
clienti in tre differenti stabilimenti . I tre stabilimenti produnanno
rispettivamente 60, 80 e 40 unità nel prossimo periodo. La ditta
si impegnata a vendere 40 unità al cliente l , 60 unità al cliente 2
e almeno 20 unità al cliente 3. Entrambi i clienti 3 e 4 inoltre desiderano avere la possibilità di poter comprare le unità restanti. Il
profitto netto associato alla spedizione dell'unità dallo stabilimento i per la vendita al cliente} è dato dalla seguente tabella:
zione variano mese per mese così come la capacità produttiva, i
costi di produzione unitari e i costi unitari di immagazzinamento
variano mensilmente. Di conseguenza, può essere utile produne
uno o entrambi i prodotti in quantità superiori a quelle richieste
dal mercato immagazzinandoli per il periodo necessario. Per ciascuno dei tre mesi, la seconda colonna della tabella che segue
fornisce il numero massimo di unità dei due prodotti combinati
che possono essere prodotti nelle ore normali di lavoro (RT) e
nelle ore di straordinario (OT). Per ciascuno dei due prodotti, le
colonne successive forniscono ( l) il numero di unità necessarie
per le vendite già stipulate, (2) il costo (in migliaia di dollari) per
una unità prodotta, (3) il costo (in migliaia di dollari) per una
unità prodotta durante le ore di lavoro straordinario e (4) il costo
(in migliaia di dollari) di immagazzinamento di ogni unità supplementare conservata oltre il mese successivo . In ogni caso, i
va lori per i due prodotti sono separati dal simbolo l con il numero per il prodotto l a sinistra e il numero per il prodotto 2 a destra.
Mese
Prodotto 1 l Prodotto 2
Massima
produzione
combinata
l
2
3
Vendite
RT
OT
lO
8
lO
3
2
3
Costo unitario Costo unitario
di produzione di immagazzinamento ($1000)
OT
RT
5/ 3
3/5
4/ 4
15/16
17/15
19/ 17
18/ 20
20/18
22/22
7.2-2. c
bella de
SorgentE
Domane
Usare ci
Confron
ni.
(a) Regc
(b) Mete
(c) Mete
7.2-3. Cc
bella dei
l /2
2/l
Cliente
l
2
3
4
l
$800
$SOO
Stabilimento 2
3
$600
$700
$200
$400
$200
$300
$500
$SOO
$100
$300
Il management desidera conoscere quante unità vendere ai clienti 3 e 4 e quante unità spedire da ciascuno degli stabilimenti a
ciascuno dei clienti con l'obiettivo di massimi zzare il profitto.
(a) Formulare questo problema come problema di trasporto in
cui la funzione obiettivo deve essere massimizzata e si costruisca l'opportuna tabella dei parametri contenenti i profitti
unitari.
(b) Formulare questo problema di trasporto con l' usuale obiettivo di minimizzazione il costo complessivo convertendo la
tabella dei parametri del punto (a) in una che contiene i costi
un itari anziché i profitti unitari.
(c) Visualizzare la f01mulazione del punto (a) su un foglio elettronico Excel.
(d) Usare queste informazioni e il Risolutore di Excel per ottenere una soluzione ottima.
(e) Ripetere i punti (c) e (d) per la formulazione del punto (b).
Confrontare le soluzioni ottime per le due formulazioni.
7.1-4. La MJK Manufacturing company deve produne due prodotti in quantità sufficiente per soddisfare i contratti di vendita
stipulati per i tre mesi successivi. I due prodotti condividono gli
stessi impianti di produzione e ogni unità di entrambi i prodotti
richiede la stessa quantità di capacità produttiva. La produzione
utilizzabile e le disponibilità di immagazzinamento e di produ-
Il responsabile di produzione desidera programmare il numero di
unità di ciascuno dei due prodotti da produne nelle normali ore
di lavoro e (se la capacità di produzione in tempo normale è
esaurita) durante lo straordinario in ciascuno dei tre mesi.
L ' obiettivo è minimizzare il costo totale di immagazzinamento e
di produzione per le vendite stipul ate per ogni mese. Non c'è inventario iniziale e non deve esserci alcun inventario finale al termine dei tre mesi .
(a) Formulare questo problema come problema di trasporto costruendo l'opportuna tabella dei parametri.
(b) Calcolare una soluzione ottima.
7.2-1. Si consideri il problema di trasporto che ha la seguente tabella dei parametri:
Destinazione
Offerta
Sorgente
Domanda
l
2
3
l
2
3
6
4
3
3
M
4
5
7
3
4
2
3
4
3
2
(a) Usare il metodo di approssimazione di Vogel per selezionare
la prima variabile di base per una BFS iniziale.
(b) Usare il metodo di approssimazione di Russell per selezionare la prima variabile di base per una BFS iniziale.
(c) Usare la regola del nord-ovest per costruire una BFS iniziale
completa.
Sorgen te
Domanda
(a) Si no
( l) nu
(2) og
traspo
denon
Parag1
per di
può e~
ai nod
(b) Quant'
di que.
(c) Usare
(d) Costru
per la
proble:
teri pe1
rio del
la vari~
Ci
da
ne
m<
pu
di
277
PROBLEMI
7.2-2. Considerare il problema di trasporto che ha la seguente tabella dei parametri:
(e) Partendo dalla BFS iniziale del punto (c), applicare il metodo del simplesso per problemi di trasporto per ottenere una
soluzione ottima.
Destinazione
l
13
14
3
18
30
l
Sorgente
2
3
4
5
7.2-4. * Considerare il problema di trasporto che ha la seguente
tabella dei parametri:
Offerta
2
3
4
5
6
lO
22
16
o
M
19
34
6
11
28
o
o
o
9
24
29
21
11
23
36
18
13
5
4
5
6
M
o
o
5
6
7
·4
3
Destinazione
l
3
Domanda
2
Sorgente
Usare ciascuno di seguenti criteri per ottenere una BFS iniziale.
Confrontare i valori della funzione obiettivo per queste soluzionL
Domanda
2
3
l
2
3
4
3
2
4
7
4
3
6
3
8
4
2
5
3
3
2
2
Offerta
5
2
3
Usare ciascuno dei seguenti criteri per ottenere una BFS iniziale.
In ogni caso, Partendo dalla BFS iniziale, applicare il metodo
del simplesso per problemi di trasporto per ottenere una soluzione ottima. Confrontare il numero di iterazioni risultante.
(a) Regola del nord-ovest.
(b) Metodo di approssimazione di Vogel.
(c) Metodo di approssimazione di Russell.
(a) Regola del nord-ovest.
(b) Metodo di approssimazione di Vogel.
(c) Metodo di approssimaz ione di Russell.
7.2-3. Considerare il problema di trasporto che ha la seguente tabella dei parametri:
Destinazione
l
2
3
4
Sorgente
Doma nda
l
2
3
4
7
4
6
5
l
7
4
8
6
l
7
4
6
4
2
6
3
l
l
l
Offerta
l
l
l
l
(a) Si noti che questo problema ha tre caratteristiche speciali:
(l) numero di nodi sorgente = numero di nodi destinazione,
(2) ogni offerta = l e (3) ogni domanda = l. I problemi di
trasporto con queste caratteristiche sono di un tipo speciale
denominato problema di assegnamento (come descritto nel
Paragrafo 7.3). Usare la proprietà di interezza delle soluzioni
per dimostrare perchè questo tipo di problema di trasporto
può essere interpretato come assegnazione dei nodi sorgente
ai nodi destinazione con una relazione 1-a-1.
(b) Quante variabili di base sono presenti in una BFS? Quante
di queste sono variabili di base degeneri (= O)?
(c) Usare la regola del nord-ovest per ottenere una BFS iniziale.
(d) Costruire una BFS iniziale applicando la procedura generale
per la fase di inizializzazione del metodo del simplesso per
problemi di trasporti. Tuttavia, anziché usare uno dei tre criteri per il passo l presentati nel Paragrafo 7.2, usare il criterio del costo minimo indicato di seguito per la selezione della variabile di base successiva.
Criterio del costo minimo: A partire dalle righe e
dalle colonne ancora da esaminare, selezionare la variabile xu che ha il più piccolo costo unitario eu come successiva variabile di base (in caso di parità si
può scegliere arbitrariamente la successiva variabi le
di base).
1
7.2-5. La Energetic Company ha bisogno di progetti per i sistemi energetici per una nuova costruzione.
I fabbisogni di energia nella costruzione possono essere suddivisi in 3 categorie: (l) elettricità, (2) acqua calda e (3) riscaldamento. I requ isiti quotidiani di queste tre categorie (misurati tutti
nelle stesse unità) sono
Elettricità
Riscaldamento dell'acqua
Riscaldamento dell'ambiente
20 unità
l O unità
30 unità
Le tre possibili fonti di energia per soddisfare queste esigenze
sono elettricità, gas naturale e un pannello solare che può essere
installato sul tetto. La dimensione del tetto limita la dimensione
del pannello solare che può produrre al più 30 unità, mentre non
ci sono limiti sulla disponibilità dell 'elettricità e del gas natura le.
Le esigenze di elettricità possono essere soddisfatte soltanto
comprando elettricità (a un costo di 50 dollari per unità). Entrambe le altre esigenze energetiche possono essere soddisfatte
tramite una qualunque sorgente o combinazione di sorgenti. I costi unitari sono
Acqua calda
Riscaldamento
Elettricità
Gas
naturale
Pannello
solare
$90
$80
$60
$50
$30
$40
L'obiettivo è minimizzare il costo complessivo per soddisfare i
fabbisogni energetici.
(a) Formulare questo problema come problema di trasporto costruendo l'opportuna tabella dei parametri.
·--
CAPITOLO 7
278
l PROBLEMI DI TRASPORTO E ASSEGNAMENTO
(b) Usare la regola del nord-ovest per ottenere una BFS iniziale
per questo problema.
(c) Partendo dalla BFS iniziale del punto (b), applicare il metodo del simplesso per problemi di trasp01to per ottenere una
soluzione ottima.
(d) Usare il metodo di approssimazione Vogel per ottenere una
BFS iniziale per questo problema.
(e) Partendo dalla BFS iniziale del punto (d) , applicare il metodo del simplesso per problemi di trasporto per ottenere una
soluzione ottima.
(f) Usare il metodo di approssimazione Russell per ottenere una
BFS iniziale per questo problema.
(g) Partendo dalla BFS iniziale ottenuta al punto(/), applicare il
metodo del simplesso per problemi di trasporto per ottenere
una soluzione ottima. Confrontare il numero di iterazioni richieste dal metodo del simplesso del trasporto in questo caso
e nei punti (c) e (e).
7.2-6.* Si consideri il Problema 7.1-1.
(a) Usare la regola del nord-ovest per ottenere una BFS iniziale.
(b) Partendo dalla BFS iniziale del punto (a), applicare il metodo del simplesso per problemi di trasporto per ottenere una
soluzione ottima.
del simplesso per problemi di trasporti garantiscono che tutte le
variabili di base nelle BFS hanno valori interi. Si inizi spiegando
perchè questo si verifica nella fase di inizializzazione quando
viene eseguita la procedura generale per la costruzione della
BFS iniziale (senza considerare il criterio per la selezione della
successiva variabile di base). Successivamente, data la BFS corrente con componenti intere, spiegare perchè il passo 3 di una
iterazione ottiene una nuova BFS che ha ancora componenti intere. Infine, spiegare come la fase di inizializzazione può essere
usata per costruire qualunque BFS iniziale, in modo tale che il
metodo del simplesso per problemi di trasporto rappresenti una
prova costruttiva della proprietà di interezza delle soluzioni presentata nel Paragrafo 7 .1.
7.3-2. p,
porti (id
co. Qua
questi qt
vi e nei
scarico 1
porto va
te tabell a
C 7.2-11. Considerare la formulazione e la soluzione del problema di trasporto per il problema Metro Water District presentato
nei Paragrafi 7.1 e 7.2 (si faccia riferimento alle Tabelle 7.12 e
7.23).
l valori fomiti nella tabella dei parametri sono solo stime che
possono essere in qualche modo inesatte, così il management
vuole adesso procedere con l'analisi di tipo "what-if ' . Usare il
Risolutore di Ex ce l per generare l 'analisi della sensitività.
Quindi, rispondere alle seguenti domande (in ogni caso, si supponga che quello indicato sia l' unico cambiamento nel modello).
Nave
7.2-7. Si consideri il Problema 7.1-2. Dopo aver applicato la re- (a)
gola del nord-ovest, applicare il metodo del simplesso per pro- 1
blemi di trasporto per ottenere una soluzione ottima per questo
problema.
(b)
7.2-8. Si consideri il problema di trasporto che ha la seguente tabella de i parametri:
Destinazione
Sorgente
Domanda
1
2
1
2
8
6
5
4
3
3
Offerta
4
2
(a) Scegliendo uno dei criteri del Paragrafo 7.2 per ottenere la
BFS iniziale, risolvere questo problema con il metodo del
simplesso per problemi di trasporti (cronometrare il tempo).
(b) Riformulare questo problema come problema di programmazione lineare generale e risolverlo con il metodo del simplesso. Tenere traccia di quanto tempo è necessario in questo caso e confrontarlo con il tempo di calcolo per il punto (a).
La soluzione nella Tabella 7.23 rimane ottima se il costo unitario di trasporto dell 'acqua dal fiume Calorie al San Go fosse in realtà 200 anziché 230?
La soluzione rimane ottima se il costo unitario di trasporto
dell'acqua dal fiume Sacron al Los Devils fosse in realtà 160
anziché 130?
(c) Questa soluzione rimane ottima se i costi considerati nei
punti (a) e (b) vengono cambiati simultaneamente rispetto ai
loro valori originali in 215 e 145?
(d) Si supponga che l'offerta dal fiume Sacron e la domanda in
Hollyglass vengano diminuite simultaneamente della stessa
quantità. Se la diminuzione fosse 0.5 milioni di piede/acro, i
prezzi ombra per la valutazione di questi cambiamenti, rimangono validi?
7.3-1. Si consideri il problema di assegnamento che ha la seguente tabella dei costi.
7.2-9. Si consideri la formulazione generale di programmazione
lineare del problema di trasporto (si faccia riferimento alla
Tabella 7.6). Verificare l'affermazione del Paragrafo 7.2 che
l'insieme di (m+ n) equazioni corrispondenti ai vincoli funzionali (m vincoli sull ' offerta e 11 vincoli sulla domanda) ha un ' equazione ridondante; cioè, una qualunque equazione può essere
generata da una combinazione lineare delle altre (m + n - l )
equazioni.
7.2-10. Spiegare perchè per un problema di trasporto in cui offerta e domanda hanno va lori interi, i passi eseguiti dal metodo
A
B
c
D
(a) Desc1
rale p
(b) Deter
(c) Rifon
di tra:
(d) Usare
per il
(e) Parte1
il met
re un
naie.
(t) Ci SOl
(e)? I1
proble
7.3-3. Us~
Vogel, apJ
to per riso
formu lato
x 14 = l , x:
7.3-4. Cor
guente tab
Task
Risorsa
L'obietti'
in modo
dizioni.
1
2
3
4
8
6
7
6
6
5
8
7
5
3
4
5
7
4
6
6
(a) Disegnare la rappresentazione su rete di questo problema di
assegnamento.
(b) Formulare questo problema come problema di trasporto costruendo la tabella dei parametri opportuna.
(c) Visualizzare questa formulazione su un foglio elettronico
Excel.
(d) Usare il Risolutore di Excel per ottenere una soluzione ottima.
279
PROBLEMI
7.3-2. Per il trasporto di merci da un porto verso altri quattro
porti (identificati l , 2, 3, 4) saranno usate quattro navi da carico. Qualsiasi nave può essere utilizzata per uno qualunque di
questi quattro viagg i. Tuttavia, a causa delle differenze nelle navi e nei carichi, il costo complessivo di carico, di trasporto e di
scarico delle merci per le differenti combinazioni spedizioneporto varia in modo considerevole, come indicato nella seguente tabella:
Task
Risorse
l
2
3
A
B
5
3
c
2
7
6
3
4
5
4
La soluzione ottima è A-3, B-1 , C-2 con Z = IO.
Porto
l
Nave
2
3
5
l
2
3
4
$500
$600
$700
$500
$400
$600
$500
$400
$600
$700
$700
$600
$700
$500
$600
$600
L'obiettivo è assegnare le quattro navi a quattro porti differenti
in modo da minimizzare il costo complessivo delle quattro spedizioni.
(a) Descrivere come questo problema si adatta al formato generale per un problema di assegnamento.
(b) Determinare una soluzione ottima.
(c) Rifommlare questo problema come un equivalente problema
di trasporto costruendo una opportuna tabella dei parametri .
(d) Usare la regola del nord-ovest per ottenere una BFS iniziale
per il problema come formulato al punto (c).
(e) Partendo da1la BFS iniziale ottenuta al punto (d) , applicare
il metodo del simplesso per problemi di trasporto per ottenere un insieme ottimo di assegnazioni per il problema originale.
(l) Ci sono altre soluzioni ottime oltre quella ottenuta al punto
(e)? In caso affermativo, usare il metodo del simplesso per
problemi di traspmti per identificarle.
(a) Verificare che questa è una soluzione ottima.
(b) Riformulare questo problema come un equivalente problema
di traspmto costruendo una opportuna tabella dei parametri.
(c) Ottenere una soluzione ottima per il problema di trasporto
formulato al punto (b).
(d) Perchè la BFS ottima ottenuta al punto (c) include alcune variabili di base (degeneri) che non fanno parte della soluzione
ottima per il problema di assegnazione?
(e) Considerare adesso le variabili non di base nella BFS ottima
ottenuta al punto (c). Per ogni variabile non di base xu e il
con·ispondente costo eu, adattare la procedura di analisi della
sensitività per la programmazione lineare generale (si faccia
riferimento al Caso 2a nel Paragrafo 6.7) per determinare
l 'intervallo di ammissibilità per eu.
7 .4-1. Riconsiderare il problema di assegnamento presentato nel
Problema 7.3-2. Applicare il metodo ungherese per risolvere
questo problema.
7.4-2. Riconsiderare la formulazione dell'opzione 2 del problema di assegnamento per il problema Better Products Co . presentato nella Tabella 7.29. Si supponga che il costo per produrre il
prodotto l nello stabilimento l venga ridotto da 820 a 720.
Risolvere questo problema applicando il metodo ungherese.
7.4-3. Applicare il metodo ungherese per risolvere il problema
di assegnamento che ha la seguente tabella dei costi:
.3-3. Usando inizialmente il metodo di approssimazione di
Vogel, applicare il metodo del simplesso per problemi di trasporto per risolvere il problema di assegnamento Job Shop Co . come
fo rmu lato nella Tabella 7.26b (La soluzione ottima risultante ha
x 14 = l , x 23 = l , x 3 1 = l , x42 = l e tutti gli xu = 0).
.3-4. Considerare il problema di assegnamento che ha la seguente tabella dei costi.
Task
Risorsa
2
3(0)
l
2
3
M
7
8
6
7
4
o
o
o
Modelli di ottimizzazione su rete
L
e reti sono presenti in diversi ambienti e in varie forme , si pensi per esempio alle reti
per il trasporto, reti elettriche e reti per la comunicazione. La rappresentazione su rete è ampiamente usata per la modellizzazione di problemi in aree molto diverse tra loro
quali la produzione, la distribuzione e la pianificazione, la dislocazione di servizi, la gestione delle risorse e la pianificazione finanziaria - giusto per citare qualche esempio.
Infatti, una rappresentazione su rete fornisce una visione e un aiuto concettuale talmente
potenti per descrivere le relazioni tra le componenti dei sistemi che è usata virtualmente in
ogni campo scientifico, sociale ed economico.
Uno degli sviluppi più interessanti della Ricerca Operativa negli ultimi anni è stato l'i natteso e rapido sviluppo sia nella metodologia che nel! 'applicazione di modelli di ottirnizzazione su rete. Svariate innovazioni algoritmiche hanno avuto un forte impatto, come
pure idee provenienti dall'informatica relativamente alle strutture dati e al trattamento efficiente dei dati. Di conseguenza, ora sono disponibili algoritmi e software e questi sono
ampiamente usati per risolvere quei problemi che sarebbero stati altrimenti intrattabili
due o tre decenni fa.
Molti modelli di ottimizzazione su rete in realtà sono particolari problemi di programmazione lineare. Per esempio, sia il problema di trasporto che il problema dell'assegnamento discussi nel capitolo precedente ricadono in questa categoria a causa della loro rappresentazione su rete presentata in Figura 7.3 e 7.5.
Uno degli esempi di programmazione lineare discussi nel Paragrafo 3.4 è anch 'esso un
problema di ottimizzazione su rete. Si tratta del problema della Distribution Unlimited Co.,
di distribuzione delle merci attraverso la rete mostrata in Figura 3.13 . Questo tipo particolare di problema di programmazione lineare, chiamato problema di flusso a costo minimo,
viene introdotto nel Paragrafo 8.6. Si ritornerà su questo esempio specifico più avanti nel
paragrafo, e verrà risolto con la metodologia descritta nel paragrafo successivo.
Il terzo caso di studio relativo alla programmazione lineare presentato nel Paragrafo
3.5 introduce un' applicazione del problema di flusso a costo minimo. Il problema era relativo alla pianificazione della fornitura, distribuzione, e marketing di merci alla Citgo Petroleum Corp. Dal team di RO alla Citgo è stato sviluppato un sistema ottimizzato di supporto alle decisioni, usando un modello di flu sso a costo minimo per ogni prodotto, e collegato questo sistema con un database aziendale. Il modello matematico per un singolo
prodotto prevede circa 3000 equazioni (nodi) e 15 000 variabili (archi), e questo problema
è comunque considerato di dimensioni modeste rispetto ai moderni standard di problemi
di ottimizzazioni su rete. Il modello prende in considerazione vari aspetti del problema,
aiutando il management nelle decisioni , dai livelli di esecuzione presso le varie raffinerie
fino al prezzo da pagare o da imporre. Una rappresentazione su rete è fondamentale per
modellare il flusso delle merci durante le fasi di acquisto del petrolio grezzo da vari forni-
8.
• Figur
Il sistemé
Seervadé
8.1
UN PRIMO ESEMPIO
281
tori, trasporto alle raffinerie, raffinazione, spedizione dei prodotti verso i centri di distribuzione e i magazzini per la vendita successiva. Come discusso nel Paragrafo 3.5, la risoluzione di questo problema di ottirnizzazione ha permesso alla compagnia di ridurre l'inventario dei prodotti petroliferi di oltre 116 milioni di dollari, con nessuna perdita nei livelli
di servizio. Ciò ha significato un risparmio negli interessi annuali di 14 milioni di dollari,
assieme a molti benefici indiretti.
In questo capitolo verrà presentata una panoramica dello stato del! 'arte in questo settore. Verranno introdotti cinque importanti tipi di problemi su rete e alcune idee di base su
come risolverli (senza per questo approfondire problematiche di strutture dati che sono vitali per le implementazioni per problemi a larga scala). Ciascuno dei primi tre tipi di problemi - il problema di cammino minimo, il problema del minimo albero ricoprente (spanning tree), e il problema del massimo flusso - hanno una specifica struttura che ricorre
spesso nelle applicazioni.
Il quarto tipo - il problema di flusso a costo minimo - fornisce un approccio unificato a
molte altre applicazioni grazie alla sua struttura pù generale. Infatti, tale struttura è così generale che include come casi speciali sia il problema di cammino minimo che quello del
massimo flusso , come pure il problema di trasporto e dell'assegnamento discussi nel Capitolo 7. Poiché il problema di flusso a costo minimo è un tipo particolare di problema di programmazione lineare, esso può essere risolto in modo molto efficiente da una versione specializzata del metodo del sirnplesso che prende il nome di metodo del simplesso su rete.
Il quinto tipo di problema su rete considerato riguarda la determinazione della maniera
più economica di condurre un progetto, in maniera tale da poter essere completato entro la
sua scadenza predefinita. La tecnica nota come CPM (Criticai Path Method) che tiene
conto sia dei costi sia dei tempi per le varie attività da svolgere è impiegata per formulare
un modello su rete del progetto e determinare durata e costi per le attività. Successivamente, per ottenere il piano ottimale di progettazione viene usata o una analisi di tipo marginale o la programmazione lineare.
Il primo paragrafo descrive un semplice esempio che verrà usato successivamente per
illustrare l'approccio ai primi tre problemi citati. Nel Paragrafo 8.2 viene introdotta la terminologia di base per le reti. I successivi quattro paragrafi trattano rispettivamente i quattro problemi prima introdotti, e il Paragrafo 8. 7 descrive il metodo del simplesso su rete.
II paragrafo 8.8 descrive il metodo CPM del bilanciamento costo-tempo.
8.1
UN PRIMO ESEMPIO
L 'accesso al SERVADA PARK. è stato recentemente riservato a un numero limitato di visite turistiche e passeggiate. Le macchine non sono ammesse nel parco e sulle strade strette e piene di curve possono circolare solo bus e jeep guidate dai guardiani del parco. Questo sistema di strade è rappresentato (senza le relative curve) in Figura 8.1, dove il punto
O indica l 'entrata del parco; le altre lettere indicano i luoghi delle postazioni dei guardiani
(e di altri servizi). I numeri si riferiscono alle lunghezze in miglia di queste strade.
Figura 8.1
sistema stradale per il
Seervada Park.
2
o
282
CAPITOLO 8
MODELLI DI OTTIMIZZAZIONE SU RETE
Il parco ha una vista panoramica alla stazione T. Alcuni bus vengono usati trasportare i visitatori dali ' entrata del parco alla stazione T e viceversa.
Attualmente, i gestori del parco si trovano a fronteggiare tre problemi. Uno è determinare quale, tra i cammini che vanno dall ' entrata alla stazione T, ha la distanza complessiva minima (questo è un esempio di problema di cammino minimo che sarà discusso nel
Paragrafo 8.3).
Un secondo problema è che devono essere installate sotto le strade linee telefoniche per
stabilire una comunicazione tra tutte le stazioni (inclusa l 'entrata del parco). Poiché l' installazione è sia costosa sia distruttiva per il patrimonio naturale, le linee vetTanno installate sotto un numero di strade appena sufficiente a fornire connessioni tra ogni coppia di stazioni . Il problema è dove posare tali linee al fine di ottenere questo obiettivo con un numero totale, minimo di miglie di linee installate (questo è un esempio del problema di minimo
albero ricoprente (minimum spanning tr·ee) che sarà discusso nel Paragrafo 8.4).
Il terzo problema è che durante l' alta stagione, a voler prendere il bus, dall'entrata fino
alla stazione T sono molte più persone di quelle che il bus possa contenere. Per evitare di
turbare eccessivamente l'ambiente della regione, è stata applicata una restrizione sul numero di corse che possono essere effettuate per ciascun tratto in un giorno (tali limiti differiscono a seconda della strada, come descritto dettagliatamente nel Paragrafo 8.5). Pertanto, in alta stagione, si possono considerare diversi cammini, a dispetto della maggiore distanza, allo scopo di aumentare il numero di corse che possono essere effettuate in un
giomo. Il problema è come indirizzare le varie corse allo scopo di massimizzare il numero
di corse effettuabili complessivamente in un giomo senza violare i limiti imposti su ogni
singola strada (questo è un esempio di problema di massimo flusso che sarà discusso nel
Paragrafo 8.5).
8.2
LA TERMINOLOGIA DELLE RETI
Per descrivere i vari tipi di rete e le loro componenti è stata sviluppata una terminologia
relativamente estesa. Sebbene si è evitato il più possibile questo lessico, è necessario comunque introdurre una serie di ten11ini che verranno usati in tutto il capitolo. Ogni termine è evidenziato in grassetto nel punto in cui viene introdotto per la prima volta.
Una rete consiste in un insieme di punti e un insieme di linee che connettono coppie di
punti . I punti sono chiamati nodi (o vertici); per esempio, la rete in Figura 8.1 ha sette nodi
rappresentati da sette cerchi. Le linee sono chiamate archi (o collegamenti); per esempio, la
rete in Figura 8.1 ha 12 archi corrispondenti alle 12 strade. Gli archi sono etichettati utilizzando i due nodi che congiungono; per esempio, AB è l'arco tra i nodi A e B in Figura 8.1 .
Gli archi di una rete possono avere un flusso di qualche tipo, per esempio, il flusso dei
bus sulle strade del Seervada Park del Paragrafo 8.1 . Nella Tabella 8.1 sono tiportati diversi esempi di flusso di reti tipiche. Se il flusso lungo un arco è ammesso in una sola direzione (come per esempio, una strada a senso unico) l'arco è detto un arco orientato. La
direzione è esplicitata aggiungendo una freccia alla fine della linea che rappresenta l'arco.
Quando un arco orientato è etichettato elencando i due nodi che esso interconnette, il nodo origine viene citato prima del nodo destinazion e; per esempio, un arco che è diretto
dal nodo A al nodo B deve essere etichettato con AB piuttosto che con BA . Alternativamente, questo arco può essere etichettato con A --+ B.
Se il flusso di un arco è a1m11esso in entrambe le direzioni (per essempio, un tubo che
può essere usato per trasportare del fluido in entrambe le direzioni), l ' arco è detto un arco
non orientato. Per distinguere tra i due tipi di arco, ci si riferisce spesso agli archi non
orientati con il nome indicativo di collegamenti. 1
1
Il termine inglese utilizzato, di nom1a, per archi orientati è are mentre per archi non orientati si usano i termin i
edge o link. N dC.
8.2
283
LA TERMINOLOGIA DELLE RETI
Tabella 8.1 Componenti di reti tipiche
Nodi
Archi
Flusso
lntersezioni
Aeroporti
Punti di commutazione
Stazioni di pompaggio
Centri di lavoro
Strade
Linee aeree
Canali
Condotte
Percorsi per la gestione dei materiali
Veicoli Aereo
Messaggi
Fluidi
Lavori
Sebbene il flusso attraverso un arco non orientato sia ammesso in entrambe le direzioni, si
assume comunque che il flusso sarà in una unica direzione piuttosto in entrambe le direzioni opposte (questo caso richiede l 'uso di una coppia di archi orientati in direzioni opposte). Nel decidere il flusso su un arco non orientato, è lecito fare una sequenza di assegnamenti di flussi in direzioni opposte, ma con l'intendimento che il vero flusso sarà il
flu sso netto (cioè la differenza dei flussi assegnati nelle due direzioni)_ Per esempio, se un
flusso di l O è stato assegnato in una direzione e successivamente un flusso di 4 viene assegnato nella direzione opposta, l'effetto sarà quello di cancellare 4 unità dall'assegnamento originale, riducendo il flusso nella direzione originale da l O a 6_ Anche per un arco
orientato, a volte viene usata la stessa tecnica come uno stratagemma per ridurre un flusso
precedentemente assegnato_ In particolare, sono ammessi assegnamenti fittizi di flussi nella direzione " sbagliata" attraverso un arco orientato allo scopo di indicare una riduzione
dell'ammontare complessivo del flusso nella direzione " giusta" _
Una rete avente solo archi orientati è detta una rete orientata_ Allo stesso modo, se tutti i suoi archi sono non orientati, la rete è detta una rete non orientata_ Una rete mista
con archi orientati e non orientati (o anche con tutti gli archi non orientati) può essere trasformata in una rete orientata rimpiazzando ogni arco non orientato con una coppia di archi orientati aventi direzioni opposte (bisognerà poi interpetrare i flussi di ogni coppia di
archi orientati come flussi simultaneamente in direzioni opposte, o fornire un flusso netto
in una direzione, a seconda della applicazione considerata).
Quando due nodi non sono connessi da un arco, la domanda spontanea che sorge è se
sono connessi da una sequenza di archi. Si chiama cammino tra due nodi una sequenza
di arèhi distinti che connettono questi nodi. Per esempio, uno dei cammini che connette i
nodi O e T in Figura 8.1 è la sequenza di archi OB-BD-DT (O -+ B -+ D-+ 7) , o viceversa. Quando qualche arco o tutti gli archi nella rete sono orientati, distinguiamo tra
cammini orientati e non orientati. Un cammino orientato dal nodo i al nç>do j è una sequenza di archi connessi la cui direzione è verso il nodo), di modo che è possibile avere
un flusso dal nodo i al nodo j lungo questo cammino. Un cammino non orientato dal nodo i al nodo j è una sequenza di archi connessi la cui direzione può essere sia verso il nodo j che uscente dal nodo j (si noti che un cammino orientato è anche un cammino non
orientato, ma non vale il viceversa). Spesso, un cammino non orientato ha alcuni archi
diretti verso il nodo j ma altri uscenti da esso (cioè, verso il nodo i); nei Paragrafi 8.5 e
8.7 verrà mostrato come i cammini non orientati giochino un ruolo predominante nell ' analisi delle reti orientate.
Al fine di illustrare queste definizioni, in Figura 8.2 è rappresentata una tipica rete
orientata (i suoi nodi e archi sono gli stessi di quelli in Figura 3.13 , dove i nodi A e B
rappresentano due industrie, i nodi D ed E rappresentano due magazzini , il nodo C rappresenta un centro di distribuzione, e gli archi rappresentano le vie di trasporto). La sequenza di archi AB-BC-CE (A -+ B -+ C -+ E) è un cammino orientato dal nodo A al nodo 'E. poiché un flusso verso il nodo E lungo l' intero cammino è possibile. Al contrario,
BC-iGcAD (B -+ C -+ A -+ D) è un cammino non orientato dal nodo B al nodo D, in
quanto là· direzione dell 'arco AC non è verso il nodo D (in questo cammino). Conunque,
B -+ C -+ A -+ D è un cammino non orientato dal nodo B al nodo D, perché la sequenza di archi BC-AC-AD connette questi due nodi (anche se la direzione dell ' arco AC impedisce un flusso tramite questo cammino).
284
• Figura 8.2
La rete di distribuzione per
la Distribution Unlimited
Co., mostrata prima nella
Figura 3.13, illustra un
esempio di rete diretta.
CAPITOLO 8
MODELLI DI OTTIMIZZAZIONE SU RETE
s
Come esempio dell ' importanza dei cammini non orientati, si supponga che all'arco AC
siano state precedentemente assegnate 2 unità di flusso dal nodo A al nodo C . Data la precedente assegnazione, ora è possibile assegnare un flusso minore, diciamo, di l unità, all' intero cammino non orientato B -+ C -+ A -+ D, anche se la direzione dell 'arco AC impedisce un flusso positivo lungo C -+ A . Il motivo è che l'assegry1mento del flusso nella
direzione " sbagliata " per l'arco AC in realtà non fa altro che ridurre il flusso nella direzione " giusta" di l unità. Nei Paragrafi 8.5 e 8.7 si farà ampiamente uso di questa tecnica
di assegnazione di un flusso lungo un cammino non orientato che include archi la cui direzione è opposta a quella del flusso: l'effetto reale per questi archi è la riduzione del flusso
assegnato precedentemente nella direzione " giusta".
Un cammino che inizia e termina sullo stesso nodo è detto ciclo. In una rete orientata,
un ciclo o è orientato oppure è non orientato, a seconda che il cammino sia orientato o meno poiché un cammino orientato è anche un cammino non orientato, un ciclo orientato è
anche un ciclo non orientato, ma in generale non vale il viceversa. In Figura 8.2, per
esempio, DE-ED è un ciclo orientato. Per contro, AB-BC-AC non è un ciclo orientato, poiché la direzione dell 'arco AC è opposta a quell a degli archi AB e BA . D'altro canto, ABBC-AC è un ciclo non orientato, perché A -+ B -+ C-+ A è un cammino non orientato.
Nella rete non orientata rappresentata in Figura 8.1 , esistono molti cicli, per esempio, OAAB-BC-CO. Si noti che la definizione di cammino (sequenza di archi distinti) esclude il ritorno sui propri passi nel fonnare un ciclo. Per esempio, OB-BO in Figura 8.1 non caratterizza un ciclo, poiché OB e BO sono due etichette per lo stesso arco (collegamento). Mentre in Figura 8.2 DE-ED è un ciclo (orientato),1 poiché DE e ED sono archi distinti.
Si dice che due nodi sono connessi se nella rete esiste almeno un cammino non orientato che li congiunge (si noti che nella definizione il cammino non deve essere orientato
anche se la rete è orientata). Una rete connessa è una rete in cui ogni coppia di nodi è
connessa. Pertanto, le reti in Figura 8.1 e 8.2 sono entrambe connesse. La seconda rete
non sarebbe connessa se gli archi AD e CE venissero rimossi.
Si consideri una rete connessa con n nodi (in Figura 8.2, n = 5 nodi) dove tutti gli archi sono stati rimossi. Un " albero " può essere "costruito" aggiungendo un arco alla volta nella rete originale secondo specifiche regole. Il primo arco può essere scelto arbitrariamenrnte e connette una coppia di nodi . Successivamente, ogni nuovo arco dove unire un
nodo che è già connesso agli altri nodi e un nuovo nodo mai prima scelto. Aggiungere un
arco in questo modo fa sì che si eviti la creazione di cicli e assicura che il numero di nodi
connessi sia pari al numero degli archi più l. Ogni nuovo arco crea un albero più grande,
che è una rete connessa (per un sottoinsieme degli n nodi) che non contiene alcun ciclo .
Quando il (n - l )esimo arco è stato aggiunto, il processo termina perché il risultante albero copre (connette) tutti gli n nodi . Questo albero è ch iamato albero ricoprente (spanning tree) ed è una rete connessa per tutti gli n nodi e non contiene alcun ciclo. Ogni
• Figu
Esempi
di alber
Figura ~
inserito
(a) nod
albero<
(c) un a
archi; (c
arch i; (1
ricop re1
8.3
285
IL PROBLEMA DI CAMMINO MINIMO
0
0
0
~)
0
0
~)
0------0
(b)
• Figura 8.3
.
Esempio di un costruzione
di albero per la rete del la
Fig ura 8.2. Viene qu i
inserito un arco alla volta :
(a) nodi senza archi; (b) un
albero con un solo arco;
(c) un albero co n due
archi; (d) un albero con tre
archi; (e) un albero
ricoprente.
(c)
(e)
albero ricoprente ha esattamente n - l archi, poiché questo è il numero minimo di archi
che occorrono per avere una rete connessa e il numero massimo possibile senza cicli.
La Figura 8.3 usa i cinque nodi e alcuni degli archi di Figura 8.2 per illustrare il processo di crescita di un albero, inserendo un arco alla volta fino a ottenere un albero ricoprente. Esistono diverse scelte alternative per il nuovo arco da aggiungre a ogn i fase del processo, quindi in questo caso la Figura 8.3 mostra solo uno dei tanti modi di costruire un albero ricoprente. Si noti, comunque, come ogni nuovo arco aggiunto soddisfa le condizioni precedentemente specificate. I concetti fondamentali sugli alberi ricoprenti verranno illustrati più avanti nel Paragrafo 8.4.
Gli alberi ricoprenti giocano un ruolo fondamentale nell ' analisi delle reti. Per esempio,
sono la base per il problema del minimo albero ricoprente discusso nel Paragrafo 8.4. Un
altro importante esempio è che gli alberi ricoprenti corrispondono alle BFS per il metodo
del simplesso su rete discusso nel Paragrafo 8.7.
La massima quantità di flusso (possibilmente infinita) che può essere trasportata su di
un arco diretto è nota come la capacità dell'arco. Per i nodi , si distinguono quelli che sono generatori di flusso, assorbitori di flusso , o nessuno dei due. Un nodo sorgente ha la
proprietà che il flusso che esce dal nodo supera quello che entra. Il caso opposto è quello
del nodo domanda in cui il flusso che entra nel nodo supera quello che esce dal nodo.
Un nodo di trasferimento (transhipment) soddisfa la proprietà di conservazione del flusso, e cioè il flusso in ingresso eguaglia quello in uscita.
8. 3
IL PROBLEMA DI CAMMINO MINIMO
Alla fine di questo paragrafo sono citate differenti versioni del problema di cammino minimo (incluse alcune per reti orientate), ma per ora verrà considerata solo una versione
molto semplificata. Si consideri una rete non orientata e connessa , avente due nodi speciali chiamati origine e destinazione. Associata a ogni arco non orientato vi è una distanza nonnegativa. L'obiettivo è determinare il cammino minimo (cioè, il cammino avente la
distanza totale minima) dali' origine alla destinazione.
286
CAPITOLO 8
MODElli DI OTIIMIZZAZIONE SU RETE
Per questo problema è disponibile un algoritmo relativamente semplice. La logica essenziale di questa procedura è che essa parte dal nodo origine diffondendosi, e successivamente identificando il cammino minimo verso ciascuno dei nodi della rete in ordine crescente rispetto alla loro distanza (minima) e quindi il problema è risolto quando viene raggiunto il nodo destinazione. Dapprima verrà descritto il metodo e poi verrà illustrato risolvendo il problema di cammino minimo descritto nel Paragrafo 8.1.
Algoritmo per il problema di cammino minimo
Obiettivo della k-esima iterazione: detenninare il k-esimo nodo più vicino al nodo origine (per k = l, 2, ... finché il k-esimo nodo più vicino è il nodo destinazione).
lnput per la k-esima iterazione: k - l nodi più vicini al nodo origine (scelti ai passi precedenti), i loro cammini e distanze minime dal nodo origine (questi nodi, e in più il nodo
origine, sono detti nodi scelti, gli altri sono nodi non scelti).
Candidati per il k-esùno nodo più vicino: ogni nodo scelto, connesso con un collegamento diretto a uno o più nodi non scelti, fornisce un candidato - il nodo non scelto col più
piccolo collegamento (nel caso di parità ci sono più possibili candidati).
Calcolo del k-esimo nodo più vicino: per ciascun nodo scelto e per il suo candidato, sommare la distanza tra loro e la lunghezza di cammino minimo dal nodo origine a questo
nodo scelto. Il candidato con la minima distanza totale è il k-esùno nodo più vicino
(nel caso di parità vi sono più nodi scelti), e il cammino minimo a questo nuovo nodo
scelto è quello che genera questa distanza.
Applicazione di questo algoritmo al problema di cammino minimo
del Seervada Park
Per il Seervada Park occorre determinare il cammino minimo dall'enh·ata del parco (nodo
O) alla vista panoramica (nodo T) attraverso il sistema di strade rappresentato in Figura
8.1. L'applicazione dell'algoritmo esposto sopra a questo problema porta ai risultati riportati nella Tabella 8.2 (dove il caso di parità per il secondo nodo più viéino permette di saltare direttamente alla ricerca del qum1o nodo più vicino). La prima colonna (k) indica l'indice dell'iterazione. La seconda colonna elenca i nodi già scelti all'inizio dell'iterazione
corrente, dopo aver cancellato i nodi che non sono di interesse (cioè, quelli non direttamente connessi ad alcun nodo non scelto). Nella terza colonna sono riportati i candidati
per il k-esimo nodo più vicino (i nodi non scelti aventi il più piccolo collegamento verso
un nodo scelto). La quarta colonna calcola la lunghezza di cammino minimo dall'origine
a ciascuno di questi candidati (la distanza ai nodi scelti più la distanza del collegamento
diretto verso il nodo candidato). Il nodo candidato con la minima distanza è il k-esimo nodo più vicino all'origine, come elencato nella quinta colonna. Le ultime due colonne riassumono le informazioni relative ai nodi appena scelti, fondamentali per procedere nelle
successive iterazioni (e cioè, la lunghezza di cammino minimo dall'origine verso questo
nodo, e l' ultimo collegamento in questo cammino minimo).
Con riferimento alla descrizione dell'algoritmo, l'input per la k-esima iterazione è fornito dalla quinta e dalla sesta colonna relativa alla iterazione precedente, i nodi scelti nella
quinta colonna sono riportati nella seconda colonna per l' iterazione corrente dopo aver
cancellato quelli che non sono più direttamente connessi ai nodi non scelti; i candidati
per il k-esimo nodo più vicino sono elencati nella terza colonna per l' iterazione corrente;
il calcolo del k-esimo nodo più vicino viene eseguito nella quarta colonna e i risultati sono registrati nelle ultime tre colonne per l' iterazione corrente.
Dopo che il procedimento mostrato in Tabella 8.2 è completato, il cammino minimo
dali 'origine alla destinazione può essere tracciato aiJ 'indietro tramite l 'ultima colonna
della Tabella 8.2 sia come - 4 D - 4 E - 4 B - 4 A - 4 O oppure come T - 4 D - 4 B - 4 A - 4
O. Pertanto, i due cammini alternativi minimi dall'origine alla destinazione sono O - 4 A
- 4 B - 4 E - 4 D - 4 T e O - 4 A - 4 B - 4 D - 4 T, con una lunghezza totale di 13 miglia per
ognuno di questi.
8.3
IL PROBLEMA DI CAMMINO MINIMO
287
Tabella 8.2 Applicazione dell'algoritmo di cammino minimo al problema
Seervada Park
Nodi scelti
direttamente
connessi ai nodi
non ancora scelti
Nodi
candidati
Distanza
totale
h-esimo
nodo
vicino
Distanza
minima
Ultimo
arco
A
2
A
2
OA
2, ,§
o
o
c
c
B
4
4
oc
A
4
2 + 2 = 4..
D
4
A
B
k
l
c
5
A
B
E
6
D
E
E
E
2+ 7= 9
4 + >= 7
4+ 4 = 8
D
D
D
2+ 7= 9
4+ 4 = 8
7+ 1 = 8
T
T
8 + 5 = 13
7 + 7 = 14
B
AB-
a
E
~
D
D
8
8
·ED
T
13/
DT
BO
Uso di Excel per la formulazione e la risoluzione di problemi
di cammino minimo
L'algoritmo appena illustrato fomisce un modo particolmmente efficiente per risolvere
problemi di cammino minimo di grandi dimensioni. Alcuni software per la programmazione matematica non includono questo algoritmo e, in tal caso, utilizzano il metodo del
simplesso su rete descritto nel Paragrafo 8.7, che è comunque un'altra buona altemativa
per la risoluzione di questo tipo di problemi.
Poiché il problema di cammino minimo è un tipo particolare di problema di programmazione lineare, il metodo del simplesso nella forma generale può essere usato quando
non sono disponibili altemative migliori. Nonostante non sia affatto efficiente, come possono esserlo algoritmi specifici per problemi di cammino minimo, è comunque adatto per
la risoluzione di problemi di dimensione anche abbastanza grandi (molto più grandi del
problema del Seervada Park). Excel, che usa il metodo generale del simplesso, mette a disposizione un modo molto comodo per formulare e risolvere problemi di cammino minimo con dozzine di archi e nodi.
In Figura 8.4 è mostrato una formulazione mediante foglio elettronico, per il problema
di cammino minimo del Seervada Park. Piuttosto che usare il tipo di formulazione descritta nel Paragrafo 3.6, con una riga specifica per ogni vincolo funzionale del modello di
programmazione lineare, questa formulazione sfmtta la stmttura speciale del problema
elencando i nodi nella colonna G e gli archi nelle colonne B e C, mentre la distanza di
ogni arco nella colonna E. Poiché ogni collegamento nella rete è un arco non orientato e
considerato che nel cammino minimo gli archi sono attraversati solo in una direzione,
ogni collegamento è sostituito da una coppia di archi orientati in direzioni opposte. Quindi, le colonne Be C riportano sia l'arco da Ba C sia l'arco da C aB e in maniera simile
gli archi da D a E e da E a D, in quanto entrambe le direzioni potrebbero essere nel cammino. Gli altri collegamenti sono riportati una sola volta poiché vi è una unica direzione
di interesse nella scelta di cammino minimo dall'origine alla destinazione.
Muoversi dali' origine alla destinazione è interpretato come un "flusso " di. l singola
unità nel cammino scelto attraverso la rete. Un flusso di l unità viene quindi assegnato a
ogni arco incluso nel cammino, mentre un flusso di O unità verrà assegnato a tutti gli archi
non inclusi nel cammino.
1
,__
CAPITOLO 8
288
MODELLI DI OTIIMIZZAZIONE SU RETE
c
8
A
D
E
K
G
F
Determinazione del cammino minimo Seervada Park
Da
A
A
B
o
o
o
A
A
8
8
Nomi di Celle
Celle
B
Oistance
From
NetFiow
Nodes
OnRoute
SupplyOemand
To
TotaiOistance
E4:E1 7
84 :817
H4 :H10
G4:G10
04 :017
J4 :J10
C4:C17
019
c
c
[mposta ceHa obiettivo:
U9tJale .,
O Ma~
Cambi.anQ.o le ceUe:
r~$4 , $0$tl -
c
o
o
8
1
D
D
~in
=_
T
1--.1
rs-
f-6
f-7
rerg
Vioç_oli:
1
l
aoQiurl9i
l
Caml!ia
l
l
f.~mlna
J
4
Flusso Netto
1
DonMnda/Offelttl
1
E
o
o
o
o
o
o
o
o
o
o
T
-1
-1
o
o
o
o
1
5
1
7
13
o_ _ ~
, Netflow ~ SupptyOemand
A
8
o
o
Dista nza Totale
O ~alore di'
5
c
1
T
o
D
c
D
E
E
Nodi
2
7
1
4
3
1
4
1
D
E
8
E
E
Distanza
2
o
o
D
ti§ij!tltffl ~
0
Flusso
1
rw
l
H
Flusso Netto
=SOMMA.SE{From;G4;0nRoute)-SOMMA.SE(To;G4;0nRoute)
=SOMMA.SE{From;G5;0nRoute)-SOMMA.SE(To;G5:0nRoute)
=SOMMA.SE(From;G6;0nRoute)-SOMMA.SE(To;G6;0nRoute)
=SOMMA SE(F rom; G7 ;OnRoute)-SOMMA.SE (To; G7; OnRout e)
=SOMMA.SE{From;G8;0nRoute)-SOMMA.SE{To;G8;0nRoute)
=SOMMA. SE(F rom; G9; OnRoute)-SOMMA. SE (T o; G9; OnRoute)
=SOMMA.SE(From;G10;0nRoute)-SOMMA.SE(To;G10;0nRoute)
B
A
19
c
Distanza Totale
• Figura 8.4
Una formulazione, mediante foglio elettronico, del problema di cammino minimo del Seervada Park. Le celle modificabili
OnRoute (D4:D17) indicano la soluzione ottima ottenuta con il Risolutore di Excel e la cel la TotaiDistance (Dl9) fornisce
la distanza totale (in miglia) di questo cammino minimo. La rete illustrata accanto al foglio di calcolo mostra il sistema
stradale per il Seervada Park originariamente descritto nella Figura 8.1.
Pertanto, le variabili decisionali sono
Xij
= {
~
se l' arco i--+ j non è incluso nel cammino
se l' arco i--+ j è incluso nel cammino
per ciasuno degli archi presi in considerazione. I valori di queste variabili decisionali vengono immessi nelle celle OnRoute (D4:D 17).
Si può ipotizzare che ogni nodo è attraversato da un flusso pari a l se si trova lungo il
cammino selezionato, o altrimenti non è attraversato da alcun flusso . Il flusso netto generato in un nodo è dato daljlusso in uscita meno il flusso in entrata, in maniera tale che il
flusso netto è pari a l nel nodo origine, - l nel nodo destinazione e O in ogni altro nodo.
Questi vincoli per i flussi sono specificati nella colonna J di Figura 8.4. Impiegando le
equazioni in basso nella figura, ogni cella della colonna H calcola il flusso netto attuale
nel nodo, aggiungendo il flusso in uscita e sottraendo quello in entrata. I vincoli corrispondenti, NetFlow (H4:Hl0) = SupplyDemand (J4:Jl0), sono specificati nella finestra
di dialogo del Risolutore .
La cella TotalDistance (Dl9) calcola la distanza totale per il cammino scelto usando
l'equazione in basso nella Figura 8.4. L ' obiettivo di minimizzare questa cella di destinazione è specificato nella finestra di dialogo del Risolutore. La soluzione mostrata nella co-
8.4
IL PROBLEMA DI MINIMO ALBERO RICOPRENTE
289
lonna D è una soluzione ottima ottenuta dopo aver premuto il pulsante Risolvi. Questa soluzione, naturalmente, è uno dei due cammini minimi identificati precedentemente dall 'qlgoritmo per il problema di cammino minimo.
:_
Altre applicazioni
Non tutte le applicazioni del problema di cammino minimo presuppongono la minimizzazione della distanza percorsa dall'origine alla destinazione. Infatti, potrebbe anche non riguardare affatto il concetto di trasferimento. Gli archi potrebbero invece rappresentare attività di vario tipo, cosicché scegliere un cammino in una rete potrebbe corrispondere alla
scelta della migliore sequenza di attività. I valori che rappresentano le "lunghezze".. dei
collegamenti potrebbero quindi essere, per esempio, i costi delle attività, nel qual caso:·l'obiettivo è la determinazione della sequenza di attività che minimizza il costo totale. Di seguito sono elencate tre categorie di applicazioni:
l. minimizzazione della distanza totale percorsa, come nell 'esempio del Seervada Park;
2. minimizzazione del costo totale di una sequenza di attività (il Problema 8.3-2 appartiene a questa categoria);
3. minimizzazione del tempo totale necessario a svolgere una sequenza di attività (appartengqno a questa categoria).
-
È anche possibile che le tre categorie di problemi si presentino nella stessa applicazione.
Per esempio, si immagini di voler determinare il cammino ottimo per andare da una città a
un altra attraverso un numero di città intermedie. Si deve quindi scegliere il cammino migliore che minimizzi la distanza totale percorsa o che minimizzi il costo totale o il tempo
totale impiegato.
Molte applicazioni richiedono di determinare il cammino orientato di lunghezza minima
dall'origine alla destinazione attraverso una rete orientata. L'algoritmo precedentem,ente
presentato può essere facilmente modificato per gestire a ogni iterazione cammini orie-~tati.
In particolare, una volta identificati i candidati per il k-esimo nodo più vicino, vengono
considerati solo gli archi orientati da un nodo scelto verso un nodo non ancora scelto.
Un'altra versione del problema di cammino minimo è la ricerca di cammino minimo
dall 'origine a tutti gli altri nodi della rete. Si noti che l'algoritmo risolve già il problema
di cammino minimo verso ogni nodo che è più vicino ali' origine rispetto al nodo destinazione. Pertanto, quando tutti i nodi sono destinazioni potenziali, la sola modifica che occorre apportare all'algoritmo è che non deve arrestarsi fino a che tutti i nodi siano stati
scelti.
Una versione ancora più generale del problema di cammino minimo è la ricerca di cammino minimo da ogni nodo verso qualsiasi altro nodo. Un'altra opzione è eliminare la restrizione che le " distanze" (i valori degli archi) siano nonnegative. Possono inoltre essere
imposte varie limitazioni sui cammini che possono essere seguiti. Tutte queste variazioni
appaiono occasionalmente nelle applicazioni e sono state studiate in dettaglio.
Gli algoritmi per una grande varietà di problemi di ottimizzazione combinatoria, come
per esempio l' instradamento di un veicolo o i problemi di progettazione di rete, spessorichiedono la soluzione di problemi di cammino minimo come sottoproblemi. Nonostante
non ci sia spazio qui per approfondire ulteriormente l'argomento, questo uso può considerarsi il tipo più importante di applicazione del problema di cammino minimo.
8.4
IL PROBLEMA DI MINIMO ALBERO RICOPRENTE
(MINIMUM SPANNING TREE)
Il problema di minimo albero ricoprente ha svariate somiglianze con la versione base del
problema di cammino minimo descritto nel paragrafo precedente. In entrambi i casi, si
prende in considerazione una rete non orientata e connessa, dove le informazioni a dispo-
,.-
290
CAPITOLO 8
MODELLI DI OTTIMIZZAZIONE SU RETE
sizione sono una qualche misura (lunghezza) nonnegativa associata agli archi (distanza,
costo o tempo). Entrambi i problemi prevedono la scelta di un insieme di collegamenti
che hanno lunghezza totale minima tra tutti gli insiemi di collegamenti che soddisfano
una certa proprietà. Per il problema di cammino minimo, tale proprietà è che i collegamenti scelti devono fornire un cammino tra l'origine e la destinazione. Per il problema di
minimo albero ricoprente, la proprietà richiesta è che i collegamenti scelti devono fornire
un cammino tra ogni coppia di nodi.
Il problema di minimo albero ricoprente può essere riassunto nei seguenti punti.
l. Sono dati un insime di nodi di una rete ma non i relativi collegamenti. Piuttosto, vengono dati i collegamenti potenziali e la lunghezza (positiva) di ciascun collegamento
da inserire nella rete (queste quantità possono corrispondere a distanze, costi o tempi).
2. Si vuole progettare la rete inserendo un numero sufficiente di collegamenti in modo tale che esiste un cammino tra ogni coppia di nodi.
3. L'obiettivo è quello di soddisfare questo requisito in maniera tale da minimizzare la
lunghezza totale dei collegamenti inseriti nella rete.
Una rete con n nodi richiede solo (n- l) collegamenti per assicurare un cammino tra
ogni coppia di nodi. Non dovrebbero essere usati altri collegamenti, poiché ciò incrementerebbe senza alcun bisogno la lunghezza totale dei collegamenti scelti. Gl i (n - l ) collegamenti devono essere scelti in modo tale che la rete risultante (avente i collegamenti appena scelti) sia un albero ricoprente (così come è definito nel Paragrafo 8.2). Quindi, il
problema è quello di detenninare l'albero ricoprente (spanning tree) avente la lunghezza
totale minima.
La Figura 8.5 illustra questo concetto di albero ricoprente per il problema del Seervada
Park (si veda il Paragrafo 8.1). La Figura 8.5a non è un albero ricoprente poiché i nodi O,
A, B e C non sono connessi con i nodi D, E e T. Occorre un altro collegamento per creare
• Figura8.5
Rappresentazione del
concetto di albero
ricoprente per il problema
Seervada Park: (a) non è
un albero ricoprente;
(b) non è un albero
ricoprente; (c) è un albero
ricoprente.
c
E
(a)
(b)
c
E
(c)
8.4
IL PROBLEMA DI MINIMO ALBERO RICOPRENTE
291
questa connessione. Tale rete in realtà è costituita da due alberi, uno per ognuno di questi
insiemi di nodi. I collegamenti in Figura 8.5b ricoprono i nodi della rete (cioè, la rete risulta connessa, secondo la definizione del Paragrafo 8.2), ma non è un albero poiché ci sono due cicli (0-A-B-C-0 e D-T-E-D). Il problema è che ci sono qui troppi collegamenti.
Poiché il problema del Seervada Park ha n = 7 nodi, dal Paragrafo 8.2 segue che la rete
deve avere esattamente n - l = 6 collegamenti, con nessun ciclo, per ottenere un albero
ricoprente. Questa condizione viene soddisfatta in Figura 8.5c e quindi questa è una soluzione ammissibile (con un valore della lunghezza totale dei collegamenti pari a 24). Si vedrà successivamente che questa soluzione non è ottima poiché è possibile costruire un albero ricoprente con un valore pari a 14.
. ..., __
//
Alcune applicazioni
Ecco una lista di alcuni importanti esempi di applicazioni del problema di minimo albero
ricoprente:
l. progettazione di una rete di telecomunicazione (reti in fibra ottica, reti di computer, linee dati telefoniche, reti per la tv via cavo ecc.);
2. progettazione di una rete di trasporto con lo scopo di minimizzare i costi di costruzione
dei collegamenti (linee ferroviarie, strade ecc.);
3. progettazione di una rete di trasmissione elettrica ad alto voltaggio;
4. progettazione di una rete di collegamenti elettrici (per esempio, per un computer) con
lo scopo di minimizzare la lunghezza totale dei collegamenti.
In una epoca di autostrade superveloci dell'informazione, le applicazioni del primo tipo
sono diventate particola1mente importanti. In una rete di telecomunicazione, occorre solo
aggiungere collegamenti a sufficienza per fornire un cammino tra ogni coppia di nodi facenti parte della rete, cosicché la progettazione di una tale rete non è altro che una classica
applicazione del problema del minimo albero ricoprente. Poiché le reti di telecomunicazione hanno costi molto elevati, è di fondamentale importanza ottimizzame la progettazione trovando il minimo albero ricoprente per ciascuna di esse.
La risoluzione del problema di minimo albero ricoprente
Il problema di minimo albero ricoprente può essere risolto in un modo molto semplice in
quanto si tratta di uno dei pochi problemi di Ricerca Operativa in cui l'essere ghiotto
(greedy) a ogn i fase della procedura risolutiva porta alla fine a una soluzione complessivamente ottima! Quindi, iniziando da qualsiasi nodo, nella prima fase viene scelto il più piccolo collegamento possibile verso un altro nodo, senza preoccuparsi dell'effetto di questa
scelta sulle decisioni successive. La seconda fase consiste nell'identificazione del nodo
non connesso più vicino a uno di questi nodi connessi, e quindi nell'aggiungere il collegamento corrispondente alla rete. Questo processo viene ripetuto fino a quando tutti i nodi
sono stati connessi (si noti che questa è la stessa procedura già illustrata in Figura 8.3 per
la costruzione dell 'albero ricoprente, ma stavolta con una regola specifica per l'individuazione di ciascun nuovo collegamento). Questo algoritmo garantisce che al termine si ottiene un minimo albero ricoprente.
Algoritmo per il problema di minimo albero ricoprente
l. Selezionare un nodo in maniera arbitraria, e quindi connetterlo (cioè, aggiungere un
collegamento) al nodo più vicino.
2. Identificare il nodo non connesso che è più vicino a un nodo già connesso, e quindi
collegare questi due nodi (cioè, aggiungere un collegamento tra di loro). Ripetere questo passo finchè tutti i nodi sono connessi.
292
CAPITOLO 8
MODELLI DI OTTIMIZZAZIONE SU RETE
3. Nel caso che più nodi possano essere scelti al passo l (stessa minima distanza) o al passo 2 (più nodi non ancora connessi con stessa distanza) la scelta tra questi nodi è arbitraria, e l'algoritmo comunque porta a una soluzione ottima. In questi casi vi possono
essere (ma non necessariamente) più soluzioni ottime. Tutte queste soluzioni possono
essere identificate scegliendo i nodi in tutti i modi possibili.
Il modo più veloce per eseguire questo algoritmo manualmente è l'approccio grafico illustrato di seguito.
Applicazione dell'algoritmo al problema di minimo albero ricoprente
per il Seervada Park
La gestione del Seervada Park (Paragrafo 8.1) ha l'esigenza di determinare sotto quali
strade vanno istallate le linee telefoniche che interconnettono tutte le stazioni, in modo tale che la lunghezza totale delle linee sia minima. I dati sono riportati in Figura 8.1, e di seguito verrà descritta passo dopo passo la procedura risolutiva per questo problema.
I nodi e le distanze sono riassunte qui sotto; le linee rappresentano potenziali collegamenti. Gli archi in grassetto indicheranno collegamenti che fanno parte del! 'albero ricoprente.
2
o
Si selezioni arbitrariamente il nodo O come nodo di partenza.
vicino al nodo O è il nodo A. Si connetta il nodo A al nodo O.
n nodo
non connesso più
Il nodo non connesso più vicino al nodo O o al nodo A è il nodo B (nodo più vicino ad A) .
Si connetta il nodo B al nodo A.
8.4
IL PROBLEMA DI MINIMO ALBERO RICOPRENTE
293
Il nodo non connesso più vicino ai nodi O, A o B è il nodo C (più vicino a B). Si connetta,
quindi, il nodo C al nodo B.
Il nodo non connesso più vicino ai nodi O, A, Bo C è il nodo E (più vicino a B). Si connetta il nodo E al nodo B.
Il nodo non connesso più vicino ai nodi O, A , B, C o E è il nodo D. Si connetta il nodo D
al nodo E.
CAPITOLO 8
294
MODElli DI OTIIMIZZAZIONE SU RETE
L'unico nodo rimasto non connesso è il nodo T. Si connetta il nodo T al nodo D .
• Fig
Il pro
flusso
Seervé
Tutti i nodi ora sono connessi e questa soluzione è ottima. La lunghezza totale dei collegamenti è 14.
Nonostante a prima vista possa apparire che la scelta del nodo iniziale influenzi la soluzione (e la lunghezza dei collegamenti scelti), in realtà non è così. Riapplicando l'algoritmo, scegliendo come nodo iniziale nodi diversi dal nodo O si ottiene ancora un albero ricoprente di lunghezza totale uguale a 14.
Il problema del minimo albero ricoprente è un problema che ricade nella vasta categoria dei problemi di progettazione di reti (network design). In questa categoria, l'obiettivo
è progettare la rete più appropriata per una specifica applicazione (per Io più riguardante
sistemi di trasporto) piuttosto che analizzare una rete già progettata. Il Riferimento bibliografico 7 fornisce un 'analisi accurata di questa impot1ante area.
8.5
IL PROBLEMA DI MASSIMO FLUSSO
Il terzo problema che il management del Seervada Park deve affrontare (si veda il Paragrafo 8.1) è quello si determinare, durante l'alta stagione, i cammini delle varie corse dei bus
dall'entrata del parco (stazione O nella Figura 8.1) alla vista panoramica (stazione T) allo
scopo di massimizzare il numero di corse durante il giorno (ogni bus ritorna attraverso lo
stesso cammino dell 'andata, cosicché l'analisi si concentrerà solo sui viaggi di andata). Al
fine di evitare un disturbo eccessivo della natura circostante e degli animali selvaggi della
regione, sono stati imposti limiti stringenti sul numero massimo di corse ammesse in un
giorno su ciascuna strada. Per ogni strada, la direzione di viaggio per le corse di andata è
indicata da una freccia in Figura 8.6. Il numero alla base della freccia fomisce il limite superiore sul numero di corse ammesse in un giorno. Dati tali limiti, una soluzione ammissibile è inviare 7 bus al giorno, di cui 5 useranno il cammino O __... B __... E __... T, l userà il
cammino O __... B __... C __... E __... T, e l userà il cammino O __... B __... C __... E __... D __... T. Questa soluzione blocca l'uso dei cammini che iniziano con O __... C (in quanto le capienze di
E __... T ed E__... D sono totalmente usate) ma è facile trovare soluzioni ammissibili migliori. Per determinare i cammini che massimizzano il numero di corse giornaliere bisogna
considerare molte combinazioni di cammini (nonché il numero di corse da assegnare a
ciascun cammino). Questo tipo di problema è conosciuto col nome di problema di massimo flusso.
In termini generali, il problema di massimo flusso può essere descritto come segue.
l. Tutto il flusso attraverso una rete orientata e connessa ha origine da un nodo, chiamato
nodo sorgente, e confluisce in un altro nodo, detto nodo destinazione. La sorgente e la
destinazione nel problema del Seervada Park sono rispettivamente l'entrata del parco
(nodo O) e la vista panoramica (nodo 7).
2. Tutti i nodi rimanenti sono nodi cosiddetti di trasferimento (nel problema del Seervada
Park sono i nodi A, B, C, D ed E).
8.5
IL PROBLEMA DI MASSIMO FLU SSO
295
5
o f-'7--------i~
4
• Figura8.6
Il prob lem a d i massimo
flusso per il problema
Seervada Park.
3. Il flusso attraverso un arco è ammesso solo nella direzione indicata dalla freccia, e
l'ammontare di flusso massimo è dato dalla capacità dell'arco . Relativamente alla sorgente, tutti gli archi puntano nella direzione uscente dal nodo. Per il nodo destinazione
tutti gli archi puntano nella direzione entrante nel nodo.
4. L'obiettivo è massimizzare il flusso totale dalla sorgente alla destinazione. Questo
quantitativo è misurato in due modi equivalenti, e cioè, o la quantità che lascia la sorgente o quella che arriva alla destinazione.
Alcune applicazioni
Queste sono alcune tipiche applicazioni del problema del massimo flusso:
l. massimizzazione del flusso attraverso una rete di distribuzione di un'azienda, dalle sue
fabbriche ai suoi clienti;
2. massimizzazione del flusso attraverso una rete di acquisizione di un'azienda, dai suoi
fornitori alle sue fabbriche;
3. massimizzazione del flusso di petrolio attraverso un sistema di condotte petrolifere;
4. massimizzazione del flusso di acqua attraverso un sistema di condotte idriche;
5. massimizzazione del flusso di veicoli attraverso una rete di trasporto.
Per alcuni di questi problemi, il flusso attraverso la rete potrebbe originare da più di un nodo e può anche terminare in più di un nodo, anche se per un problema di massimo flusso
sono ammessi una singola sorgente e una singola destinazione. Per esempio, la rete di distribuzione di un'azienda normalmente ha più fabbriche e più clienti. Per far rientrare questo caso nel problema del massimo flusso è sufficiente espandere la rete originale includendo una sorgente fittizia e una destinazione fittizia e nuovi archi . La sorgente fittizia è
vista come il nodo da cui si origina tutto il flusso che, in realtà, viene originato da alcuni
degli altri nodi. Per ciascuno di questi altri nodi, viene inserito un nuovo arco che congiunge la sorgente fittizia a questo nodo, e la capacità di questo arco è pari al flusso massimo
che, può essere originato da questo nodo. Allo stesso modo, la destinazione fittizia è vista
come il nodo che assorbe tutto il flusso che, in realtà, termina in altri nodi. Pertanto, viene
aggiunto un nuovo arco che va da ognuno di questi nodi verso la destinazione fittizia, e la
capacità di questo arco è pari al flusso massimo che, in realtà, può terminare in questo nodo originario. A causa di tutti questi cambiamenti, tutti i nodi della rete originale si ritrovano a essere nodi di trasferimento, cosicché la rete espansa ha una singola sorgente (la sorgente fittizia) e una singola destinazione (la destinazione fittizia) e ricade nella formulazione standard del problema del massimo ·flusso.
La risoluzione di problemi di massimo flusso
Poiché il problema di massimo flusso può essere formulato come un problema di programmazione lineare (si veda il Problema 8.5-2), esso può essere risolto usando il metodo del simplesso e quindi può essere usato qualsiasi software per la programmazione li-
296
CA.P\\OLO 8
MOOELU 0\ OTI\M\Z.ZA.Z.\ONE SU RETE
neare. A ogni modo, per la risoluzione di questo problema è a disposizione uno specifico ·
algoritmo noto come algoritmo di cammino aumentante. Questo algoritmo si basa su due
concetti intuitivi, quello di rete residua e quello di cammino aumentante.
Dopo aver assegnato flussi ad alcuni degli archi, la rete residua mostra le capacità
(dette capacità residue) dei rimanenti archi per flussi addizionali. Per esempio, si consideri l'arco O -+ B in Figura 8.6, che ha una capacità pari a 7. Ora si supponga che un flusso pari a 5 sia assegnato a quest'arco; questa scelta lascia una capacità residua di
7 - 5 = 2 per ogni ulteriore assegnazione lungo O -+ B. Questo stato è mostrato nel modo seguente nella rete residua.
2
5
Il numero sull 'arco vicino al nodo fornisce la capacità residua per il flusso dal nodo verso
l'altro nodo. Quindi, oltre alla capacità residua di 2 per il flusso da O aB, il 5 sulla destra
indica una capacità residua di 5 per l'assegnazione di un flusso da B ad O (cioè, per la
cancellazione del flusso precedentemente assegnato da O aB o parte di esso).
Inizialmente, prima che tutti i flussi vengano assegnati, la rete residua per il problema
del Seervada Park è quella mostrata in Figura 8.7. Ogni arco nella rete originale (Figura
8.6) è stato modificato da un arco orientato a un arco non orientato. La capacità dell'arco nella direzione originale rimane la stessa e la capacità dell 'arco nella direzione opposta
è zero , cosicché le limitazioni sui flussi rimangono le stesse.
Successivamente, non appena una certa quantità di flusso viene assegnata a un arco,
questa quantità viene sottratta dalla capacità residua nella stessa direzione e viene aggiunta alla capacità residua nella direzione opposta.
Un cammino aumentante è un cammino diretto dalla sorgente alla destinazione nella
rete residua tale che ogni arco su questo cammino ha capacità residua strettamente positiva. La più piccola di queste capacità residue è detta capacità residua di cammino aumentante in quanto rappresenta la quantità di flusso che può essere aggiunta all'intero cammino. Quindi, ogni cammino aumentante fornisce un 'opportunità per accrescere ulteriormente il flusso attraverso la rete originale.
L'algoritmo di cammino aumentante seleziona ripetutamente canunini aumentanti e aggiunge un flusso pari alla capacità residua per quel cammino nella rete originale. Questo
processo continua finchè non ci sono più cammini aumentanti, e quindi il flusso dalla sorgente alla destinazione non può essere ulteriormente aumentato. La chiave per assicurare
che la soluzione finale è necessariamente ottima è il fatto che i cammini aumentanti possono cancellare alcuni flussi precedentemente assegnati nella rete originaria, cosicché una
selezione indiscriminata di flussi lungo cammini non può prevenire l'uso di una successiva combinazione migliore.
Per riassumere, ogni iterazione dell'algoritmo consiste nei seguenti tre passi.
• Figura8.7
La rete iniziale per il
problema di massimo
flusso per il problema del
Seervada Park.
8.5
IL PROBLEMA DI MASSIMO FLUSSO
Algoritmo di cammino aumentante·per il problema di massimo flusso 2
l. Identificare un cammino aumentante selezionando un cammino orientato dalla sorgente alla destinazione nella rete residua, in modo tale che ogni arco su tale cammino abbia capacità residua strettamente positiva (se non esiste alcun cammino aumentante, il
flusso già assegnato costituisce un flusso ottimo).
2. Calcolare la capacità residua c* di questo cammino aumentante determinando la più
piccola delle capacità residue degli archi di tale cammino. Si incrementi il flusso in
questo cammino di c*.
3. Diminuire di c* la capacità residua di ogni arco su questo cammino aumentante. Si incrementi di c* la capacità residua di ogni arco di questo cammino aumentante nella direzione opposta. Ritornare al passo l .
Quando si esegue il passo l , spesso sono possibili svariati cammini aumentanti alternativi. Nonostante la strategia algoritmica per effettuare tale scelta sia importante per l 'efficienza di problemi a larga scala, qui non si approfondirà ulteriormente questo specifico argomento (più avanti nel paragrafo, verrà descritta una procedura sistematica per la ricerca
di cammini aumentanti). Pertanto, per il seguente esempio (e per i problemi alla fine del
capitolo), la scelta di cammino aumentante è operata in maniera arbitraria.
Applicazione dell'algoritmo al problema di massimo flusso
del Seervada Park
L'applicazione di questo algoritmo al problema del Seervada Park (si veda Figura 8.6 per
la rete originaria) conduce ai risultati riassunti qui di seguito. Partendo dalla rete residua
iniziale data in Figura 8.7, viene mostrata la nuova rete residua ogni l o 2 iterazioni, e la
quantità totale di flusso da O a T ottenuta fino a quel momento è riportata in grassetto
(accanto ai nodi O e T).
Iterazione 1: in Figura 8.7, uno dei possibili cammini aumentanti è O ---+ B ---+ E ---+ T, che
ha capacità pari a min{7 , 5, 6} = 5. Assegnando un flusso pari a 5 a questo cammino, la
rete residua risultante sarà
5
5
Iterazione 2: si assegni un flusso pari a 3 al cammino aumentante O ---+ A ---+ D ---+ T. La
rete residua risultante sarà
8
8
2
Si assume che le capacità degli archi sono interi o numeri razional i.
· ··-
298
CAPITOLO 8
MODELLI DI OTTIMIZZAZIONE SU RETE
lterazione 3: si assegni un flusso pari a l al cammino aumentante O---+ A ---+ B---+ D ---+ T.
Iterazione 4: si assegni un flusso pari a 2 al cammino aumentante O ---+ B ---+ D ---+ T. La
rete residua risultante sarà
4
• Fig1
Soluzic
11
o
11
flusso
Seerva<
lterazione 5: si assegni un flusso pari a l al cammino aumentante O---+ C ---+ E ---+ D---+ T.
Iterazione 6: si assegni un flusso pari a l al cammino aumentante O ---+ C ---+ E ---+ T . La
rete residua risultante sarà
4
13
o
13
2
lterazione 7: si assegni un flusso pari a l al catmnino aumentante O ---+ C ---+ E ---+ B ---+ D
---+ T. La rete residua risultante sarà
4
14
proble1
14
o
3
A questo punto non vi sono ulteriori cammini aumentanti e quindi l'attuale flusso è quello
massimo.
Il flusso su ogni arco può essere identificato sia accumulando le assegnazioni dei flussi
sugli archi sia paragonando le capacità residue finali con le capacità originarie degli archi.
Usando la seconda strategia, si può concludere che è presente un flusso lungo un arco se
la capacità residua finale è inferiore alla capacità originaria. Questo flusso è uguale alla
differenza tra queste quantità. Paragonando la rete residua ottenuta all'ultima iterazione
con quella riportata in Figura 8.6 o 8.7, si otterrà il flusso ottimo sugli archi come mostrato in Figura 8.8.
8.5
299
IL PROBLEMA DI MASSIMO FLUSSO
14
14 - - - - j - . (
• Figura8.8
Soluzione ottima per il
problema di massimo
flusso per il problema
Seervada Park.
Questo esempio illustra bene la ragione per rimpiazzare ogni arco diretto i --+ j nella rete
originaria con un arco indiretto nella rete residua e poi incrementare la capacità residua
per l'arco) --+ i di una quantità c* quando un flusso pari a c* viene assegnato a i --+ ). Senza questo accorgimento, le prime sei iterazioni sarebbero identiche ma ora sembrerebbe
che non esista alcun cammino aumentante (poiché la capacità non usata dell'arco E--+ B
è zero). Operando sulla rete residua è possibile, invece, aggiungere un flusso pari a l lungo il cammino O --+ C--+ E --+ B --+ D --+ T nel! 'iterazione 7. In effetti, questa ulteriore assegnazione di flusso cancella l unità di flusso assegnata all ' iterazione l (O --+ B --+ E--+
T) e lo sostituisce con l'assegnazione di l unità di flusso sia a O --+ B --+ D --+ che a O--+
C--+E--+T.
Ricerca di un cammino aumentante
La parte più difficile di questo algoritmo, quando si trattano problemi di grandi dimensioni, è la ricerca di un cammino aumentante. Questo compito può essere eseguito in maniera sistematica mediate la seguente procedura. Si inizia determinando tutti i nodi che possono essere raggiunti dalla sorgente lungo un singolo arco avente capacità residua strettamente positiva. Quindi, per ognuno dei questi nodi che vengono raggiunti, si determinano
tutti i nuovi nodi (cioè nodi non ancora raggiunti) che possono essere raggiunti da questo
nodo lungo un arco con capacità residua strettamente positiva. Si ripete il procedimento
con tutti i nuovi nodi che vengono via via raggiunti. Il risultato sarà l'identificazione di un
albero costituito da tutti i nodi che possono essere raggiunti dalla sorgente lungo un cammino avente capacità residua strettamente positiva. Questa procedura a ventaglio identificherà sempre un cammino aumentante, nell ' ipotesi che ne esista almeno uno. In Figura
8.9 è illustrata la procedura per la rete residua al termine della sesta iterazione nell'esempio precedente.
Sebbene la procedura illustrata in Figura 8.9 sia una procedura relativamente semplice,
sarebbe d'aiuto scoprire quando è stata raggiunta una soluzione ottima senza una ricerca
esaustiva di un cammino inesistente. A volte è possibile scoprire quando ciò si verifica
grazie a un importante teorema della teoria delle reti noto col nome di teorema di massimo flusso e minimo taglio. Un taglio è definito come un qualsiasi insieme di archi orientati contenenti almeno un arco appartenente a ogni possible cammino orientato dalla sorgente alla destinazione. In .genere ci sono molti modi per ottenere un taglio che aiuti ad
analizzare la rete stessa. Per ogni taglio, il valore del taglio è la somma delle capacità degli archi (nella direzione specificata) del taglio. Il teorema del massimo flusso e minimo
taglio stabilisce che, per ogni rete con una sola sorgente e una sola destinazione, il flusso
massimo possibile dalla sorgente alla destinazione è uguale al valore del minimo taglio
della rete. Pertanto, se F è l 'ammontare di flusso ammissibile dalla sorgente alla destinazione, il valore di ogni taglio fornisce un limite superiore per F, e il valore più piccolo dei
tagli è uguale al massimo valore di F. Inoltre, se il valore di un taglio eguaglia il valore
del flusso Fattualmente ottenuto dalla procedura risolutiva, allora il flusso corrente è ottimo. L'ottimalità è ottenuta ogni qual volta esiste nella rete residua un taglio il cui valore è
zero.
300
CAPITOLO 8
MODELLI DI OTIIMIZZAZIONE SU RETE
L\
• Figura 8.9
Procedura per identificare
un cammino aumentante
per l'iterazione 7 del
problema di massimo
flusso per il problema
Seervada Park.
o
5
o
7
4
• Figura 8.1 O
Un taglio minimo per il
problema di massimo
flusso massimo per il
problema Seervada Park.
A scopo illustrativo, si consideri la rete in Figura 8.7. Un taglio interessante per questa rete è rappresentato in Figura 8.1 O. Si noti che il valore del taglio è 3 + 4 + l + 6 = 14,
che si sa essere il massimo valore di F, e quindi questo taglio è un taglio minimo. Si noti
inoltre che, nella rete residua risultante al termine dell ' iterazione 7, dove F = 14, il corrispondente taglio ha valore zero . Se questo fosse stato notato prima, non sarebbe stato necessario andare alla ricerca di ulteriori cammini aumentanti .
Uso di Excel per la formulazione e risoluzione di problemi
di massimo flusso
La maggior parte dei problemi di massimo flusso sono considerevolmente più grandi, e talora anche estremamente più grandi, di quello del Seervada Park. Alcuni problemi hanno
migliaia di nodi e archi. L'algoritmo di cammino aumentante appena presentato è molto
più efficiente del metodo generale del simplesso nel risolvere problemi di tali dimensioni.
Comunque, per problemi di media grandezza, un ' alternativa ragionevole e comoda è rappresentata da Excel e dal suo Risolutore basato sul metodo generale del simplesso.
La Figura 8. 11 mostra un foglio di calcolo elettronico che formula il problema del flusso massimo del Seervada Park. Il formato è simile a quello del problema di cammino minimo del Seervada Park mostrato in Figura 8.4. Gli archi sono elencati nelle colonne B e
C, e le corrispondenti capacità sono riportate nella colonna F. Le variabili decisionali sono i flussi lungo gli archi e queste quantità vengono riportate nelle celle Flow (D4:D15).
Impiegando le equazioni date nell'angolo destro in basso della figura, questi flussi sono
usati per calcolare il flusso esterno per ogni nodo (si vedano le colonne H e I). Questi flussi esterni sono impostati a O per i nodi di trasferimento (A, B, C, D ed E), come indicato
dal primo insieme di vincol i (I5:I9 = SupplyDemand) nella finestra di dialogo del Risolutore. Il secondo insieme di vincoli (Flow :::; Capacity) specifica le limitazioni relative alle
capacità degli archi. L'ammontare totale di flusso dalla sorgente (nodo O) alla destinazio-
• Figu
Una fon
modific
fornisce
flusso m
8.6
301
IL PROBLEMA DI FLUSSO A COSTO MINIMO
A
Determinazione del massimo flusso Seervada Park
Da
o
o
o
To
C4:C15
0
Ma~
o
s
3
,;
3
D
o
s
2
E
D
4
3
4
8
,;
,;
,;
4
T
-14
5
s
9
T
1
6
,;
,;
6
Massim o Flusso
14
c
E
E
D
T
E
E
D
Riiolvi
O ~alare di:
ru
$D$4:$D_:c;
$l:.:..
S_ _ _ _ _ _ _
LO _ _
Chiudi
!poti~za
j
A
8
c
Oomantla!Offena
o
o
o
o
o
4
1
4
5
6
7
8
_.
V~oli:
$!$5:$!$9 = SupplyDemand
. Flow <= Capacity
Flusso Estem o
14
c
8
D
_§ftJi•ru
O ~in
o
4
3
Cambi<>nl[o le celle:
9
10
l
Flusso Esterno
-SOMMA SE(F rom; H4;Fiow)-SOMMA.SE(f o; H4; Flow)
=SOMMASE(From;H5;Fiowl-SOMMA.SE(fo;H5; Fiowl
- SOMMA SE(F rom; H6; Flow)-SOMMA.SE(f o; H6; Flow)
-SOMMA. SE(F rom; H7 ;Fiow)-SOMMA.SE (T o; H7; Flow)
- SOMMA. SE(F rom; HS;Fiow)-SOMMA. SE(fo; HS; Flowl
-SOMMA. SE(F rom;H9; Flow)-SOMMA. SE(T o; H9; Flow)
=SOMMA.SE(From;H1 O; Flow)-SOMMA. SE (T o; H10; Flowl
Qpzioni
Aggiungi
l
l
7
Nodi
5
7
4
1
K5:K9
Imposta cella obiettivo:
Uguale a:
8
c., 11acita
,;
,;
,;
3
o
o
o
o
o
8
8
8
Celle
F4:F15
04:015
B4:F15
017
14:110
H4:H10
Flusso
c
A
A
Nomi di celle
Capacity
Flow
From
MaxFiow
NetFiow
Nod es
SupplyOemand
A
A
Cam\!ia
L _ _ _ _ __
l Reimposta l
Elimina
• Figura 8.11
Una formulazione, mediante foglio elettronico, del problema del flusso massimo per il problema Seervada Park. Le celle
modificabili Flow (04:015) indicano la soluzione ottima ottenuta con il Risolutore di Excel e la cella MaxFiow (01 7)
forn isce il flusso massimo risultante attraverso la rete. La rete illustrata accanto al foglio di calcolo mostra il problema del
flusso massimo del Seervada Park originariamente descritto nella Figura 8.6.
ne (nodo T) eguaglia il flusso generato alla sorgente (cella 14), cosicché la cella MaxFlow
(D 17) è uguale a 14. Dopo aver impostato il problema come un problema di massimizzazione della cella Maxflow nella finestra di dialogo del Risolutore, e dopo aver premuto il
pulsante Risolvi, si ottiene la soluzione ottima riportata in (D4:Dl5).
8.6
IL PROBLEMA DI FLUSSO A COSTO MINIMO
Il problema di flusso a costo minimo occupa una posizione centrale tra i modelli di ottimizzazione su rete, sia perché comprende una classe molto vasta di applicazioni e sia perché
può essere risolto in maniera estremamente efficiente. Come il problema di massimo flusso, esso prende in considerazione un flusso attraverso una rete i cui archi hanno capacità limitate. Come il problema di cammino minimo, esso considera un costo (o una distanza)
per il flusso lungo un arco. Come il problema di trasporto o di assegnamento del Capitolo
7, esso considera più nodi sorgente e nodi destinazione per il flusso, ancora una volta con
costi a esso associati. Infatti, tutti e quattro i problemi precedentemente trattati sono casi
particolari del problema di flusso a costo minimo, come verrà dimostrato tra breve.
La ragione per la quale il problema di flusso a costo minimo può essere risolto in maniera così efficiente risiede nel fatto che può essere formulato come un problema di pro-
302
CAPITOLO 8
MODELLI DI OTIIMIZZAZIONE SU RETE
grammazione lineare e può essere risolto con una versione semplificata del metodo del
simplesso chiamata metodo del simplesso su rete. Nei prossimo paragrafo verrà descritto
questo algoritmo.
Il problema di flusso a costo minimo è descritto qui di seguito.
l. È data una rete orientata e connessa.
2. Almeno uno dei nodi è un nodo sorgente.
3. Almeno uno dei nodi è un nodo destinazione.
4. _Tutti gli altri nodi sono nodi di trasferimento.
S. Il flusso attraverso un arco è ammesso solo in una direzione, e la quantità massima è
data dalla capacità di quel!' arco (se tra due nodi può esservi flusso in entrambe le direzioni, ciò sarà rappresentato da una coppia di archi in direzioni opposte).
6. La rete ha abbastanza archi con capacità sufficiente affinchè il flusso generato dai nodi
sorgente raggiunga i nodi destinazione.
7. Il costo del flusso lungo un arco è proporzionale alla quantità del flusso stesso, ed è noto il costo per unità di flusso.
8. L'obiettivo è minimizzare il costo totale per spedire il flusso attraverso la rete così da
soddisfare la domanda richiesta (un obiettivo alternativo è massirnizzare il profitto totale).
Alcune applicazioni
Probabilmente il tipo di applicazione più importante per i problemi di flusso a costo minimo è la distribuzione in una rete di una azienda. Come già riassunto nella prima riga della
Tabella 8.3, questo tipo di applicazione implica sempre la determinazione di un piano per
il trasporto di merci dai nodi sorgente (fabbriche ecc) ai loro magazzini intemedi (secondo i bisogni) fino ad arrivare ai clienti.
Come esempio, si consideri la rete di distribuzione della azienda Jnternational Paper
Company (come descritta nell'articolo di Inte1jaces di marzo-aprile del 1998). Questa
azienda è la più grande azienda manifatturiera di carta e prodotti cartacei, come pure il
maggior produttore di legname e di legno compensato. Essa, inoltre, detiene o vanta diritti
su circa 20 milioni di acri boschivi. I nodi sorgente nella sua rete di distribuzione sono
proprio questi boschi. Prima che le merci possano raggiungere finalmente i nodi destinazione (i clienti), il legname deve passare attraverso una lunga sequenza di nodi intermedi.
Un tipico cammino attraverso la rete di distribuzione è
boschi -+ deposito di legname -+ segherie
-+ cartiere -+ fabbriche di trasformazione
-+ magazzini -+ clienti.
• Tabella 8.3 Particolari tipi di applicazioni dei problemi di flusso a costo minimo
Tipo di applicazione
Nodi sorgente
Nodi di trasporto
Nodi destinazione
Operazione su una rete
di distribuzione
Produttori di beni
Servizi intermedi di
immagazzinamento
Clienti
Smaltimento di rifiuti
solidi
Produttori di rifiuti
solidi
Impianti di
produzione
Discariche
Operazione su una rete
di servizi
Venditori
Magazzini intermedi
Impianti di
produzione
Determinazione del mix
ottimo di produzione
nelle fabbriche
Fabbriche
Produzione di uno
specifico prodotto
Mercato per uno
specifico prodotto
Gestione del flusso di
cassa
Sorgenti di contante a
un dato istante
Opzioni di investimento Bisogni di contante a
a breve termine
uno specifico istante
8.6
IL PROBLEMA DI FLUSSO A COSTO MINIMO
303
Un altro esempio di rete di distribuzione complessa è quella della Citgo Petroleum Corporation descritta nel Paragrafo 3.5 il problema di migliorare l'operazione di distribuzione è stato formulato come problema di flusso a costo minimo e la sua soluzione ha permesso alla Citgo di risparmiare almeno 16.5 milioni di dollari l'anno.
Per alcune applicazioni del problema di flusso a costo minimo, tutti i nodi intermedi sono fabbriche nelle quali avviene una qualche operazione sulle merci piuttosto che semplici magazzini intermedi. Questo è il caso dello smaltimento di rifiuti solidi, come indicato
nella seconda riga della Tabella 8.3. In questo caso, il flusso di materiali attraverso la rete
parte dai punti che generano rifiuti solidi, poi si dirige verso le fabbriche per il trattamento
di tali rifiuti e la loro trasformazione, e quindi viene spedito verso i vari luoghi dove sono
dislocate le discariche. Comunque, l'obiettivo quì è ancora quello di determinare il flusso
che minimizzi il costo totale. ln questo caso il costo è dato sia dal trasporto che dal trattamento dei tifiuti.
In altre applicazioni, i nodi sorgente possono essere fabbriche nelle quali le merci sono
trattate in qualche modo. Per esempio, nella terza riga della Tabella 8.3 , l'obiettivo è determinare il piano di costo minimo per ottenere forniture dai vari venditori, immagazzinando tali merci (a seconda delle necessità), e quindi trasportare le forniture verso i punti
di produzione dell'azienda (fabbriche ecc.). Poiché il totale delle forniture che può essere
fornito dai venditori è superiore ai bisogni dell'azienda, la rete include un nodo domanda
fittizio che riceve (a costo zero) tutte le forniture non impiegate.
L'articolo di Intelfaces di giugno-luglio del 1987 descrive come i microcomputer erano usati dalla Marshalls, !ne. (una catena di vendita al dettaglio) allo scopo di risolvere
un problema di flusso a costo minimo. In questa applicazione, l'obiettivo dell'azienda era
l'ottimizzazione del flusso di carichi dai fornitori verso i centri operativi e quindi verso i
magazzini per la vendita al dettaglio. Alcuni dei problemi considerati avevano più di
20 000 archi .
Il tipo successivo di applicazione nella Tabella 8.3 (la determinazione del mix ottimo
di produzione nelle fabbriche) mostra che gli archi possono rappresentare anche qualcosa
di diverso dalle linee di trasporto. Si consideri infatti un 'azienda con diversi stabilimenti
(i nodi sorgente) che possono produrre gli stessi prodotti ma a costi differenti. Ogni arco
uscente da un nodo sorgente rappresenta la produzione di uno dei possibili prodotti da
uno specifico stabilimento, e quest'arco conduce verso un nodo intermedio che corrisponde a questo prodotto. Quindi, questo nodo ha un arco entrante proveniente da ogni stabilimento che sia in grado di prodmre questo prodotto, e archi uscenti che vanno verso i
clienti (i nodi destinazione) che richiedono tale prodotto. L'obiettivo è determinare come
ripartire la capacità produttiva di ogni stabilimento tra i prodotti in maniera tale da minimizzare il costo totale per soddisfare le richieste per i vari prodotti.
L' ultima applicazione nella Tabella 8.3 (la gestione di un flusso di cassa) descrive come nodi differenti possano rappresentare un evento che si verifica in tempi diversi. In questo caso, ogni nodo sorgente rappresenta un istante di tempo specifico (o un periodo di
tempo) in cui una qualche liquidità si rende disponibile (attraverso la maturazione di interessi, vendita di azioni, prestiti ecc.). Il flusso esterno per tali nodi è l'ammontare di liquidità che diventa disponibile. Allo stesso modo, ogni nodo destinazione rappresenta uno
specifico istante di tempo (o un periodo di tempo) in cui si ha la necessità di prelevare dalle riserve di liquidità. Il flusso esterno in ognuno di questi nodi è dunque l'ammontare della liquidità di cui si necessita. L'obiettivo è massimizzare gli introiti investendo la liquidità durante i tempi che vanno dalla loro disponibilità in cassa al loro impiego. Pertanto,
ogni nodo intermedio rappresenta la scelta di un opzione d'investimento a breve termine
(per esempio, l'acquisto di un certificato di deposito) per un intervallo di tempo. La rete
risultante sarà composta da una successione di flussi che rappresentano una schedulazione
della liquidità che diviene disponibile, che viene investita, e quindi che viene usata dopo
che gli investimenti hanno dato i loro frutti.
304
CAPITOlO 8
MODElli DI OTIIMIZZAZIONE SU RETE
Formulazione del modello
Si consideri una rete orientata e connessa con n nodi e almeno un nodo sorgente e un nodo destinazione. Le variabili decisionali sono
xu =
flusso lungo l'arco i -+ j ,
e le informazioni a disposizione sono
eu =
uu =
costo per unità di flusso lungo l'arco i -+ j ,
capacità dell'arco i-+ j ,
b; = flusso esterno per il nodo i.
Il valore di b; dipende dalla natura del nodo i e, in particolare,
b; > O se il nodo i è un nodo sorgente,
b; < O se il nodo i è un nodo destinazione,
b; = O se il nodo i è un nodo di trasferimento.
L'obiettivo è minimizzare il costo totale del flusso attraverso la rete allo scopo di soddisfare una data richiesta.
Usando la convenzione che le somrnatorie operano solo su archi esistenti, la formulazione di questo problema è la seguente (si noti che questo è un problema di programmazione lineare)
minimizzare
soggetto ai vincoli
Z=
Il
11
i= l
}= l
L L CiJ Xij
n
11
}= l
}= l
L Xij - L Xp= b;
e
O<
x··<
··
l } - u l}
per ogni nodo i
per ogni arco i -+ j
Nei vincoli relativi ai nodi, la prima somrnatoria rappresenta il flusso totale in uscita dal
nodo i, mentre la seconda somrnatoria rappresenta il flusso totale in entrata nel nodo i, cosicché la differenza risultante è il flusso netto per quel nodo .
La forma della matrice dei coefficienti è un ' importante caratteristica dei problemi di
flusso a costo minimo. Non è sempre facile riconoscere un problema di flusso a costo minimo, ma formulare (o riformulare) un problema in modo che i suoi coefficienti abbiano
questa forma è un buon modo di procedere in quanto permette di risolvere il problema in
maniera estremamente efficiente tramite il metodo del simplesso su rete.
In alcune applicazioni, è necessario avere un limite inferiore Lu > O per il flusso attraverso l 'arco i -+ j. Quando ciò accade, è sufficiente usare una traslazione delle variabili
xij = xu - Lu, e porre xij + Lu al posto di xu in tutto il modello, per trasformare il modello nuovamente nel formato precedente con vincoli di nonnegatività. Non c'è alcuna garanzia che il problema in realtà abbia soluzioni ammissibili in quanto questo dipende anche
dagli archi presenti nella rete e dalle loro rispettive capacità. Comunque, per una rete progettata in maniera ragionevole, la condizione principale che realmente occorre rispettare è
la seguente
Proprietà di esistenza di soluzioni ammissibili: condizione necessaria perché un
problema di flusso a costo minimo abbia almeno una soluzione ammissibile è che
i= l
e cioè, il flusso totale generato dai nodi sorgente deve essere uguale al flusso totale
richiesto dai nodi destinazione.
Se i valori di b; violano questa condizione, l' interpretazione ordinaria è che o le quantità
fomite o quelle richieste (chiunque delle due sia in eccesso) in realtà rappresentino limiti
8.6
305
IL PROBLEMA DI FLUSSO A COSTO MINIMO
superiori piuttosto che quantità precise. Quando questa situazione si verifica per un problema di trasporto (Paragrafo 7 .l) o viene aggiunto un nodo destinazione fittizio che riceve la disponibilità in eccesso oppure viene aggiunto un nodo sorgente fittizio che invii la
richiesta in eccesso. Il passo analogo ora è o aggiungere un nodo destinazione fittizio per
assorbire la disponibilità in eccesso (con ciJ = O per gli archi aggiunti da ogni nodo sorgente verso questo nodo) o che venga aggiunto un nodo sorgente fittizio che generi il flusso per soddisfare la richiesta in eccesso (anche in questo caso ciJ = O per gli archi aggiunti
da questo nodo verso ogni nodo destinazione).
Per molte applicazioni bi e uiJ hanno valori interi, ed è anche richiesto che i flussi xiJ
siano interi. Fortunatamente, come per il problema di trasporto, questo risultato è garantito senza imporre esplicitamente vincoli di interezza sulle variabili, grazie alla seguente
proprietà.
Proprietà di interezza della soluzione ottima: per un problema di flusso a costo
minimo costo in cui bi e uiJ hanno valori interi, tutte le variabili di base in ogni soluzione di base ammissibile (inclusa quella ottima) hanno valori interi.
Un esempio
Un esempio di problema di flusso a costo minimo è rappresentato in Figura 8.12. Questa
rete è la rete di distribuzione del problema della Distribution Unlimited Co. discusso nel
Paragrafo 3.4 (si veda la Figura 3.13). Le quantità date in Figura 3.13 forniscono i valori
di bb ciJ, e uiJ qui mostrati. I valori bi in Figura 8.12 sono riportati in parentesi quadre accanto ai nodi: quindi A e B (le due fabbriche dell'azienda) sono i nodi sorgente (bi> 0), i
nodi destinazione (bi < O) sono D ed E (i due magazzini), e l'unico nodo di trasferimento
(bi= O) è C (il centro di distribuzione). I valo1i di ciJ sono mostrati accanto agli archi . In
questo esempio, tutti gli archi tranne due hanno capacità che eccede il flusso totale generato (90) e quindi ai fini pratici uiJ = +oo. Queste due eccezioni sono l' arco A __...., B , dove
u Aa = IO, e l'arco C__...., E, che ha u cE = 80.
Il modello di programmazione lineare per l'esempio in questione è il seguente
minimizzare
Z
= 2XAB +
4XAC
+
9XAD
+
3xac
+
XCE
+
3XDE
+
2XED
soggetto ai vincoli
XAB
-XAB
+ XAC + XAD
+ xa c
- xsc +xcE
+XDE -XCE -
XED
XDE +xED
50
40
O
= - 30
= - 60
e
XcE ::;
80
ogni xiJ 2: O
Si noti la specifica forma della matrice dei coefficienti. Per ogni variabile vi sono esattamente due coefficienti non nulli, uno con valore+ l e l'altro - l . Questa speciale forma ricorre in ogni problema di flusso a costo minimo, ed è proprio questa speciale struttura che
conduce alla proprietà di interezza delle soluzioni.
Un ' altra conseguenza di questa struttura speciale è che uno (qualsiasi) dei vincoli relativi ai nodi è ridondante. Il motivo è che sommando i termini a sinistra e a destra di tutte
queste equazioni si ottiene esattamente O per entrambi (assumendo che esistano soluzioni
ammissibili, e quindi la somma dei valori bi è uguale a zero), quindi una qualsiasi di queste equazioni moltiplicata per - l è uguale alla somma di tutte le altre. Con n - l vincoli
non ridondanti, in una soluzione ammissibile di base vi sono n - l variabili di base. Nel
prossimo, paragrafo si vedrà che il metodo del simplesso su rete tratta i vincoli XiJ 2: uu in
maniera analoga (speculare) ai vincoli di nonnegatività. Inoltre, vi è una corrispondenza
diretta tra gli n - l archi di un albero ricoprente e le n - l variabili di base.
306
CAPITOLO 8
MODELLI DI OTTIMIZZAZIONE SU RETE
bA
[- 30]
= (50]
CAD
A
=9
D
4
2
3
2
(uAB
= lO)
3
• Figura 8.12
(ucE
Il problema del la
Distribution Unlimited Co.
formulato come problema
di flusso a costo minimo.
= 80)
B
[40]
[-60]
Uso di Excel per la formulazione e la risoluzione di problemi di flusso a
costo minimo
• Figu1
Una forn
celle mo
fornisce
A
Excel fornisce un modo molto comodo per formulare e 1isolvere problemi di flusso a costo minimo di piccole e medie dimensioni. La Figura 8.13 mostra su un foglio elettronico
un esempio di formulazione. Il formato è quasi lo stesso di quello mostrato in Figura 8.11
per il problema di massimo flusso. Una differenza è che ora bisogna includere il costo unitario (eu) nella colonna G. Poiché i valori b; sono specificati per ogni nodo, occorrono vincoli di flusso per tutti i nodi. In questo esempio solo per due archi devono essere imposti
vincoli di capacità. La cella TotalCost (D 12) fornisce il costo totale del flusso attraverso
la rete (si veda la sua equazione riportata in basso nella figura) ; l'obiettivo specificato nella finestra di dialogo del Risolutore è minimizzare questa quantità. Le celle Ship
(D4:Dl0) riportano la soluzione ottima.
Per problemi di flusso a costo minimo di dimensioni più grandi, il metodo del simplesso su rete descritto nel prossimo paragrafo fomisce una procedura risolutiva molto più efficiente. Si tratta anche di un'opzione interessante per la risoluzione di vari casi particolari
di problemi di flusso di costo evidenziati successivamente. Questo algoritmo è di solito
contenuto nei software di ottimizzazione matematica. Per esempio, è una delle opzioni di
CPLEX.
Casi particolari
Il problema di trasporto. Nel formulare il problema di trasporto di cui si è discusso
nel Paragrafo 7.1 come problema di flusso a costo minimo, tutti i nodi sono nodi sorgente
oppure nodi destinazione e nella rete non esistono nodi di trasferimento. Tutti gli archi sono orientati da un nodo sorgente a un nodo destinazione, e distribuire xu unità dal nodo
sorgente i al nodo destinazione) corrisponde a un flusso xu lungo l' arco i--+ j. Il costo c~
per unità distribuita diventa il costo eu per unità di flusso. Poiché il problema di trasporto
non impone alcun limite superiore sulle quantità xu individuali, allora uu = +oo, per tutti
gli archi.
L 'uso di questa formulazione per il problema di trasporto della P & T Co. presentato in
Tabella 7.2 porta alla rete mostrata in Figura 7.2. La rete corrispondente per il problema
generale di trasporto è mostrata in Figura 7.3 .
Il problema di assegnamento. Poiché il problema dell'assegnamento discusso nel
Paragrafo 7.3 è un tipo speciale di problema di trasporto, la sua formulazione come un
problema di flusso a costo minimo si ottiene come mostrato prima. I fattori addizionali sono che (l) il numero di nodi sorgente è uguale al numero di nodi destinazione, (2) b; = l
per ogni nodo sorgente e (3) b; = - l per ogni nodo destinazione.
!.mposta cUguale a:
Cambian~
j$0$4:$C
1/in~oli:
1$0$4 <=
1$0$8 <=
NetFiow
8.6
307
IL PROBLEMA DI FLUSSO A COSTO MINIMO
La Figura 7.5 mostra la relativa formulazione per un problema generale di assegnamento.
Il problema di transhipment. Questo caso particolare in realtà ingloba tutte le caratteristiche generali del problema di flusso a costo minimo eccetto che non esistono limiti superiori sulla capacità degli archi . Quindi, ogni problema di flusso a costo minimo in cui
ogni arco trasporta una qualsiasi quantità di flusso è detto anche problema di transhipment.
Per esempio, il problema della Distribution Unlimited Co. mostrato in Figura 8.13 sarebbe un problema di transhipment se venissero rimossi i limiti superiori sul flusso lungo
gli archi A ---> B e C---> E.
Questi problemi spesso nascono come generalizzazione di problemi di trasporto dove
le unità che vengono distribuite da ogni sorgente a ogni destinazione possono passare prima attraverso punti intermedi. Questi punti intennedi possono includere altre sorgenti e
• Figura 8.13
Una formulazione, mediante foglio elettronico, di problema di flusso a costo minimo della Distribution Unlimited Co. Le
celle modificabili Ship (D4:Dl O) mostra no la soluzione ottima ottenuta con il Risolutore di Excel e la cella TotaiCost (D12)
fornisce il costo totale del flusso attraverso la rete.
A
L
Problema di flusso a costo minimo Distribution Unlimited Co.
Da
A
A
A
8
A
Flusso
8
o
c
40
10
40
80
D
c
c
E
E
D
D
E
Capacità Costo Unitario
10
2
s;
4
9
3
s;
80
o
B
Flusso esterno
50
40
Doma nd aiOffella
50
40
D
E
-30
-60
-30
-60
c
1
o
o
3
2
20
Costo Totale
Nodi
A
490
Nomi di celle
Capacity
From
Ne!Fiow
Nodes
Ship
SupplyDernand
To
TotaiCost
Unii Cosi
l
Flusso Esterno
4 =SOMMA. SE(F rom; H4; Shiol-SOMMA. SEITo; H4; Shioì
5 =SOMMA. SE(F rom; H5; Shiol-SOMMA. SE (T o; H5; Ship)
6 =SOMMA. SEIF rom; H6; Shiol-SOMMA. SE (T o; H6; Ship]
7 =SOMMA. SEIF rom; H7; Shiol-SOMMA. SE (T o; H7; Ship]
8 =SOMMA. SEIF rom; HB; Shiol-SOMMA. SE (T o;H8; Ship)
Celle
F4:F10
84:810
J4:J8
14:18
D4:D10
L4 :L8
C4:C10
D12
G4:G10
3
D
=MATR. SOMMA. PRODOTTO(Unit Cosi; Shi
Uguale a:
O
Mal!;
Cambiango le celle:
0
l$0$4:$0$10
t1in
0
\'.aloredi:
Chiudi
~
Ipoti~za
Vin~oli:
$0$4 <= $F$4
$0$8 <= $F$8
NetFiow = SupplyOemand
Qpzioni
l
l
Aggiungi
Cambia
[
[ Reimposta
Elimina
I
l
308
CAPITOLO 8
MODELLI DI OTIIMIZZAZIONE SU RETE
destinazioni e punti di trasferimento addizionali. Per esempio, il problema della Distribution Unlimited Co. potrebbe essere visto come una generalizzazione di un problema di trasporto con due sorgenti (le due fabbriche rappresentate dai nodi D ed E), e un punto addizionale di trasferimento intermedio (il centro di distribuzione rappresentato dal nodo C).
Il problema di cammino minimo. Si consideri ora la versione base del problema di
cammino minimo presentato nel Paragrafo 8.3 (ricerca di cammino minimo da una singola origine a una destinazione attraverso una rete non orientata). Nel formulare questo
problema come un problema di flusso a costo minimo, l'origine è un nodo sorgente con
un flusso esterno pari a l , e il nodo destinazione ha un flusso esterno pari a - l mentre il
resto dei nodi sono nodi di trasferimento. Poiché la rete relativa al nostro problema di
cammino minimo è non orientata, mentre per il problema di flusso a costo minimo si
suppone di avere una rete orientata, occorre sostituire ogni collegamento con una coppia
di archi orientati aventi direzioni opposte (raffigurati da una singola linea con frecce in
entrambe le direzioni). Le sole eccezioni sono che non occorre preoccuparsi di archi entranti nel nodo sorgente o uscenti dal nodo destinazione. La distanza tra i nodi i e j diventa il costo unitario eu o cJi per il flusso in entrambe le direzioni tra questi nodi. Come
per il precedente caso, non ci sono capacità sugli archi, cosicché uu = + oo.
La Figura 8.14 descrive questa formulazione per il problema di cammino minimo del
Seervada Park di Figura 8.1, dove i valori accanto agli archi rappresentano il costo unitario del flusso in entrambe le direzioni.
• Figu
Formulé
problen
flusso d
come u1
flusso a
Il problema di massimo flusso. L' ultimo caso considerato è il problema di massimo
flusso descritto nel Paragrafo 8.5. Qui in una rete è già presente un nodo sorgente, un nodo destinazione, e diversi nodi di trasferimento. Sono necessari solo tre accorgimenti per
adattare questo problema a un problema di flusso a costo minimo. Per prima cosa, si assegna eu =O a tutti gli archi esistenti per riflettere l'assenza di costi nel problema di massimo flusso. Poi, si seleziona una quantità F, limite superiore sul massimo flu sso possibile
attraverso la rete, e si assegna una domanda e una richiesta di F rispettivamente al nodo
sorgente e al nodo destinazione (siccome tutti gli altri nodi sono nodi di trasferimento,
automaticamente avranno b1 = 0). Infine, si aggiunge un arco diretto dal nodo sorgente al
nodo destinazione e gli si assegna un costo unitario arbitrariamente grande eu = M e capacità illimitata (uu = +oo). Poiché quest'arco ha costo unitario positivo e tutti gli altri
archi hanno costo unitario O, il problema di flusso a costo minimo spedirà il massimo flusso ammissibile attraverso gli altri archi, come richiesto dal problema di flu sso massimo.
Applicando questa formulazione al problema di flusso massimo del Seervada Park mostrato in Figura 8.6 si ottiene la rete mostrata in Figura 8.15, dove i valori accanto agli archi originari rappresentano le capacità.
8.'
• Figura 8.14
Formu lazione del
problema di cammino
min imo del Seervada Park
come un problema di
flusso a costo minimo.
uu = oo per ogni arco.
I valori eu sono riportati accanto agli archi.
[O]
2
[ - l]
5
(l]
4
4
[O]
[O]
8.7
IL SIMPLESSO SU RETE
309
Per ogni arco eu = O eccetto cor·
I valori uu sono rip01tati accanto agli archi.
[O]
5
[-F
[F]
7
O
• Figura 8.15
Formulazione del
problema di massimo
flusso del Seervada Park
come un problema di
flusso a costo minimo.
5
2
4
[O]
4
car= M
[O]
(uor = oo)
Commenti finali. A parte il problema di trasshipment, ciascuno dei casi particolari fi nora descritti in questo capitolo o nel Capitolo 7 è stato oggetto di studio in un paragrafo.
Quando ognuno di essi è stato presentato è stato discusso un algoritmo specifico (special
pwpose) che permette di risolvere il problema in esame in maniera efficiente. Pertanto,
non è affatto necessario rifornmlare tutti questi casi particolari per adattarli al forn1ato del
problema di flusso a costo minimo allo scopo di risolverli. A ogni modo, quando non è disponibile un software che implementi algoritmi special pwpose finalizzati alla risoluzione di un particolare problema, è ragionevole usare al suo posto il metodo del simplesso su
rete. Infatti, recenti implementazioni del metodo del simplesso su rete sono diventate così
potenti da fornire un 'alternativa eccellente anche ad algoritmi special purpose.
Il fatto che questi problemi siano casi particolari del problema del flusso a costo minimo è comunque di interesse per aln·i motivi. Una ragione è che la teoria sottostante il problema di flusso a costo minimo e il metodo del simplesso su rete rappresenta una teoria
che unifica tutti questi casi particolari. Un'altra ragione è che alcune delle tante applicazioni del problema del flusso a costo minimo mostrano le caratteristiche di uno o più casi
particolari, per cui è importante sapere come riformulare queste caratteristiche all ' interno
della cornice più ampia del problema generale.
8.7
IL SIMPLESSO SU RETE
Il metodo del simplesso su rete è una versione specializzata del metodo del simplesso usato per risolvere i problemi di flusso a costo minimo. Come tale, presuppone, a ogni iterazione, l'esecuzione degli stessi passi principali - detern1inazione della variabile entrante,
determinazione della variabile di base uscente e calcolo della nuova BFS - muovendosi
dalla BFS corrente verso la migliore soluzione adiacente. Tuttavia, esso esegue questi passi sfruttando la speciale struttura di rete del problema senza mai avere bisogno di un tableau.
Si possono notare alcune somiglianze tra il metodo del simplesso su rete e il metodo
del simplesso per problemi di trasporto presentato nel Paragrafo 7.2. Entrambi sono, infatti, versioni specializzate del metodo del simplesso che forniscono procedure alternative
per risolvere i problemi di trasporto in maniera simile. Il metodo del simplesso su rete
estende questi concetti per risolvere anche altri tipi di problemi di flusso a costo minimo.
In questo paragrafo, viene fornita una breve descrizione del metodo del simplesso su
rete che si focalizza proprio sui concetti fondamentali. Vengono omessi alcuni particolari
necessari per una completa implementazione, compreso come costruire una BFS iniziale e
310
CAPITOLO 8
MODELLI DI OTIIMIZZAZIONE SU RETE
come effettuare determinati calcoli (come quelli per l'individuazione della variabile entrante) nel modo più efficiente. Questi particolari possono essere trovati in vari testi specialistici, quali i Riferimenti bibliografici l , 2, 3, 5 e 8.
Vincoli di upper bound
Il primo importante concetto è relativo al modo più efficiente di gestire i vincoli di capacità sugli archi xiJ :::; uiJ. Piuttosto che trattare questi vincoli come vincolifimzionali, essi sono considerati proprio come vincoli di nonnegatività. Di conseguenza, vengono considerati solo quando viene determinata la variabile di base uscente. In particolare, quando la
variabile entrante è aumentata dal suo valore corrente zero, la variabile di base uscente è
la prima variabile di base che raggiunge il suo limite inferiore (O) o il suo limite superiore
(uiJ). Una variabile non di base al suo limite superiore xiJ = uiJ è poi sostituita con
XiJ = uiJ - YiJ, e quindi YiJ = O diventa una variabile non di base.
Nel contesto corrente, YiJ ha una interessante interpretazione. Ogni qual volta YiJ diventa una variabile di base con un valore strettamente positivo (:::; uiJ), questo valore può essere pensato come un flusso dal nodo) al nodo i (nella direzione " sbagliata" lungo l'arco
i ----> )) che, in realtà, sta annullando quella quantità di flusso precedentemente assegnato
(xiJ = uiJ) dal nodo i al nodo ). Quindi, quando xiJ = uiJ è sostituito con xiJ = uiJ - Yu,
l'arco reale i----> j viene sostituito con l'arco) ----> i nella direzione opposta e questo nuovo arco ha capacità uiJ (la quantità di flusso massimo xu = uiJ che può essere cancellata) e
costo unitario -ciJ (poiché ogni unità di flusso annullata corrisponde a un risparmio di
eu) . Per riflettere un flusso pari a xiJ = uiJ lungo l'arco cancellato, occorre diminuire b; di
uiJ e incrementare b1 di uiJ. Successivamente, se Yu diventa la variabile uscente e questa
raggiunge il relativo limite superiore, allora YiJ = uiJ è sostituito da Yu = uiJ - xu e quindi
xu = O è la nuova variabile non di base e occorre ritornare alla configurazione originale
(sostituendo l'arco) ----> i con l'arco i ----> j ecc.).
Per illustrare questo processo, si consideri il problema di flusso a costo minimo indicato in Figura 8.!2 e si supponga che, a una certa iterazione, xAs diventi la variabile uscente
raggiungendo il relativo limite superiore di 10. Di conseguenza, xAs = 10 è sostituito con
xAs = 10- YAs, cosicché YAB =O è la nuova variabile non di base. Allo stesso tempo, si
sostituisce l'arco A----> B con l'arco B ----> A (cony118 come la relativa quantità di flusso) , e
si assegna a questo nuovo arco una capacità di IO e un costo unitario di -2. Per tenere
conto del fatto che x118 = IO, occorre diminuire bA da 50 a 40 e incrementare b8 da 40 a
50. La rete modificata risultante è indicata in Figura 8.16.
Nel seguito verrà descritta l'applicazione del metodo del simplesso su rete per questo
stesso esempio, partendo con YAB = O (xAs = IO) come variabi le non di base e quindi
usando la Figura 8.16. A una iterazione successiva XCE raggiungerà il suo limite superiore
pari a 80 e verrà sostituita con XcE= 80 - YcE, e nell 'iterazione seguente YAB raggiunge il
suo limite superiore di l O. Tutte queste operazioni sono eseguite direttamente sulla rete
• Figura 8.16
La rete modificata con la
sostituzione di XAB = l O
con XAs = lO - YAB·
[-30]
[40]
4
-2
(usA=
3
lO)
3
[50]
[-60]
8.7
Il SIMPLESSO SU RETE
311
e pertanto non sarà necessario usare xu o Yu come nomi per i flussi dell 'arco o addirittura
tenere traccia di quali archi sono archi reali e quali sono archi nella direzione opposta
(tranne che per la soluzione finale). L'uso di questa tecnica lascia i vincoli relativi ai nodi
(fl usso in uscita meno flusso in entrata = bi) come gli unici vincoli funzionali. I problemi
di flusso a costo minimo tendono ad avere molti più archi che nodi, così il numero risultante dei vincoli funzionali rappresenta in generale solo una piccola fraz ione di quelli che
si avrebbero se fossero stati inclusi tra i vincoli funzionali anche i vincoli di capacità sugli
archi. Il tempo di calcolo per il metodo del simplesso sale velocemente con il numero di
vincoli funzionali, mentre lentamente con il numero di variabili (o il numero di vincoli
semplici per queste variabili). Di conseguenza, includendo questa tecnica si ottiene un notevole risparmio computazionale.
Tuttavia, questo non è necessario per i problemi di flusso a costo minimo senza vincoli
di capacità (compreso quasi tutti gli ultimi casi speciali considerati nel paragrafo precedente), in cui non ci sono questi tipi di vincoli per il flusso sugli archi.
Corrispondenza fra BFS e alberi ricoprenti (spanning tree) ammissibili
Il concetto più importante che sta alla base del metodo del simplesso su rete è la rappresentazione delle soluzioni ammissibili di base. Occorre ricordare dal Paragrafo 8.6 che
con n nodi , qualunque BFS ha (n - l) variabili di base e ogni variabile di base xu rappresenta il flusso lungo l'arco i --. j. Questi (n - l) archi sono gli archi di base (allo stesso
modo, gli archi che corrispondono alle variabili non di base xu = O o Yu = O sono archi
non di base).
Una proprietà chiave degli archi di base è che essi non formano mai cicli (questa proprietà impedisce che la soluzione risultante possa essere una media pesata di un altra coppia di soluzioni ammissibili, che violerebbe una delle proprietà fondamentali delle BFS).
Inoltre un qualunque insieme di n - l archi che non contiene cicli fom1a un albero ricoprente. Di conseguenza, qualunque insieme di n - l archi di base forma un albero ricoprente.
Quindi, le BFS possono essere ottenute (derivate) a partire da alberi ricoprenti, come
riassunto di seguito.
Una soluzione che deriva da un albero ricoprente è ottenuta come segue:
l. per gli archi che non sono nell'albero ricoprente (gli archi non di base), porre le corrispondenti variabili (xu o Yu) uguali a zero;
2. per gli archi che sono nell 'albero ricoprente (gli archi di base), calcolare il valore delle
variabili corrispondenti (xu o Yu) nel sistema di equazioni lineari costituito dai vincoli
sui nodi.
In realtà il metodo del simplesso su rete calcola questi valori in maniera molto efficiente
senza dover risolvere algebricamente un sistema di equazioni. Questo processo risolutivo
non tiene in conto nè i vincoli di nonnegatività nè i vincoli di capacità sugli archi per le
variabili di base, così la soluzione derivata da un albero ricoprente può o non può essere
ammissibile in relazione a questi vincoli.
Un albero ricoprente ammissibile è un albero ricoprente la cui soluzione derivata soddisfa
anche tutti gli altri vincoli (O ::; xu ::; uu o O ::; Yu ::; uu).
Con queste definizioni, è possibile enunciare il seguente teorema:
teorema fondamentale per il metodo del simplesso su rete: le soluzion i di base sono soluzioni che deri va no da alberi ricoprenti (e viceversa) e le BFS sono soluzioni che derivano da
alberi ricoprenti ammissibili (e viceversa).
Per illustrare l'applicazione di questo teorema fondamentale, si consideri la rete riportata
in Figura 8.16 ottenuta dalla sostituzione di xAs = l O con xAB = IO - YAB per l'esempio
in Figura 8.12. Un albero ricoprente per questa rete è indicato in Figura 8.3e, in cui gli ar-
312
CAPITOLO 8
MODELLI DI OTTIMIZZAZIONE SU RETE
[-30]
[40]
(xAD
= 40)
D
A
[O]
(lO)
(50)
(50)
• Figura 8.17
L'a lbero ricoprente iniziale
ammissibile e la relativa
soluzione per l'esempio.
[50]
[-60]
chi sono A ---+ D, D ---+ E, C ---+ E e B ---+ C. Con questi come archi di base, ii processo di
individuazione della soluzione derivata è la seguente. A sinistra è mostrato l'insieme dei
vincoli dati nel Paragrafo 8.6 dopo che x AB è sostituito da l O - YAB; le variabili di base
sono indicate in grassetto. A destra, partendo dall'alto e muovendosi verso il basso, si trova la sequenza dei passi per il calcolo dei valori delle variabili.
YAB
- YAB +xAc +XAD
YAB
+xsc
-XAC
- Xsc
=
O,XAC
-XAD
+ xDE -
XED
-XcE -XDE +xED
O,XED
40
XAD
= -50
xsc
o
+ XCE
=
= - 30
= - 60
COSÌ
XCE
= o
= 40
= 50
= 50
così
XDE = IO
ridondante
Poiché i valori di tutte queste variabili di base soddisfano i vincoli di nonnegatività e di
capacità degli archi (x CE :::::; 80), l 'a lbero ricoprente è un albero ricoprente ammissibile, e
si ottiene così una BFS.
Questa soluzione verrà usata come BFS iniziale nell'applicazione del metodo del sirnplesso su rete. La Figura 8.17 mostra la rappresentazione relativa e cioè l'albero ricoprente ammissibile e la relativa soluzione. I valori riportati accanto agli archi rappresentano
adesso i flussi (i valori di xu) piuttosto che i costi unitari eu dati precedentemente (per aiutare a distinguerli, verranno inserite sempre parentesi tonde intorno ai flussi ma non intorno ai costi).
• Fig
L'effet
dell'a c
A -> è
nell'in
ricopr
Selezione della variabile entrante
A ogni iterazione del metodo del simplesso su rete, il criterio per la selezione della variabile entrante è scegliere la variabile non di base che, una volta aumentata dal suo valore
corrente zero, migliorerà il valore Z della funzione obiettivo al tasso più alto. Adesso si
vedrà come questo può essere raggiunto senza un utilizzare il tableau.
Come esempio, si consideri la variabile xAc non di base nella BFS iniziale, corrispondente all'arco A ---+ C. Aumentare xAc da zero a un certo valore significa che l'arco
A ---+ C con flusso deve essere aggiunto alla rete indicata in Figura 8.17. Aggiungendo
un arco non di base a un albero ricoprente, si genera sempre un unico ciclo non diretto ; in
questo caso (Figura 8.18) esso èAC-CE-DE-AD. La Figura 8.18 mostra anche l'effetto di
aggiungere il flusso all'arco A---+ C. In particolare, il flusso è aumentato di per gli altri
archi che hanno la stessa direzione di A ---+ C nel ciclo (arco C ---+ E), mentre il flusso è
diminuito di per gli altri archi la cui direzione è opposta a A ---+ C nel ciclo (archi D ---+
E e A ---+ D). Nell'ultimo caso, il nuovo flusso sta, in effetti, annullando un flusso di nella direzione opposta. Gli archi che non sono nel ciclo (arco B ---+ C) non vengono influenzati dal nuovo flusso (è possibile verificare queste conclusioni notando l'effetto del cam-
e
e
e
e
e
e
• Fig
L'effet
dell'ac
A -> è
nell'in
ricopr
8.7
313
IL SIMPLESSO SU RETE
biamento di xAc sui valori delle altre variabili nella soluzione ottenuta proprio per l'albero
ricoprente iniziale ammissibile).
Qual è l'effetto su Z in seguito all'aggiunta del flusso all'arco A ---. C? La Figura
8.19 mostra la risposta forne ndo il costo unitario del cambiamento nel flusso per ogni arco di Figura 8.18. Di conseguenza, l' incremento totale è
e
l::,.Z = CAce + CCEe
+ CDE( -
e)+ CAD( - e)
= 4e +e- 3e - 9e
- 7e
=
Ponendo
le a dire,
e=
l si ottiene il tasso di cambiamento di
l::,.Z= -7
z quando XAc viene incrementato, va-
quando
e= l
Poiché l'obiettivo è minimizzare Z, questo notevole tasso di diminuzione di Z ottenuto aumentando xAc è particolarmente desiderabile e pertanto xAc diventa il principale candidato come variabile entrante.
Prima della definitiva selezione della variabile entrante, si deve effettuare la stessa analisi per le altre variabili non di base. Le uniche altre variabili non di base sono YAB e xw,
corrispondenti agli altri due archi B ---. A andE---. D di Figura 8.16.
La Figura 8.20 mostra l'effetto sui costi per l'aggiunta dell'arco B ---. A con fl usso all'albero ricoprente iniziale ammissibile dato in Figura 8.17. L'aggiunta di questo arco genera il ciclo non diretto BA-AD-DE-CE-BC e il flusso aumenta di per gli archi A ---. D e
D ---. E ma diminuisce di per i due archi, in questo ciclo, con la direzione opposta,
devono essere moltiplicati per i vaC ---. E e B---. C. Questi incrementi del flusso, e
lori eu.
e
e
e
• Figura 8.18
L'effetto sui flussi
dell'aggiunta dell'arco
A ---+ C con flusso
nell'iniziale albero
ricoprente ammissibile.
e
e - e,
[- 30]
[40]
(xAD = 40- e)
D
A
(10 - fJ)
(50 + e)
(50)
[50]
• Figura 8.19
L'effetto sui costi
dell'aggiunta dell'arco
A _, C con flusso e
nell'iniziale albero
ricoprente ammissibile.
[- 60]
[40]
[-30]
9( - f))
D
' '
'
' '
' '
4()
[O]
3( -f))
3(0)
18
E
[50]
[- 60]
CAPITOLO 8
314
MODELLI DI OTTIMIZZAZIONE SU RETE
[40]
[ - 30]
9e
A
- 2e
• Figura 8.20
L'effetto sui costi
dell'aggiunta dell'arco
8 -. A con flusso
nell'iniziale albero
ricoprente ammissibile.
D
[O]
l
l
l
l
l
l
3e
3(-e)
I(-e)
e
[50]
[-60]
[-30]
[40]
9(0)
A
l
l
[O]
2e l
3e
l
l
• Figura 8.21
L'effetto sui costi
dell'aggiunta dell'arco
E -. D con flusso
nell'iniziale albero
ricoprente ammissibile.
\
3(0)
e
l (O)
[50]
\
[-60]
Di conseguenza,
6.Z = -28 + 98 + 38
=
6
quando
+ l (- B) + 3 (-B) = 68
e= l
Il fatto che Z aumenti piuttosto che diminuire quando YAB (il flusso attraverso l'arco
--+ A) viene aumentato a partire da zero elimina questa variabile come candidata a variabile entrante (aumentare YAB significa in realtà diminuire il flusso xAB lungo l' arco reale
A--> B, dal suo limite superiore pari a 10).
Un risultato simile è ottenuto per l' ultimo arco non di base E --> D . L'aggiunta di questo arco con flusso all'albero ricoprente iniziale ammissibile genera il ciclo non diretto
ED-DE mostrato in Figura 8.21 e il flusso aumenta anche di per l' arco D --+ E mentre
nessun altro arco risulta essere influenzato. Di conseguenza,
B
e
e
6.Z =
2e + 38 = se
=5
quando
e= l
così XED non è candidata come variabile entrante.
Ricapitolando,
- 7
6.Z =
{
6:
5,
se 6.xAc = l
se 6.yAB = l
se /:)>•.;r w = l
e il valore negativo per xAc implica che xAc diventa la variabile entrante per la prima iterazione. Se ci fossero state più di una variabile non di base con un valore negativo di 6.Z,
allora sarebbe stato scelto quella con il valore assoluto più grande (se non ci fosse nessuna variab ile non di base con valore negativo di 6.Z, la BFS corrente sarebbe ottima).
• FigL
Il secor
ricopre
relativa
8.7
IL SIMPLESSO SU RETE
315
In realtà, piuttosto che identificare i cicli non diretti e operare su questi, il metodo del simplesso su rete ottiene questi valori 6.Z con una procedura algebrica che è considerevolmente più efficiente (soprattutto per reti di grandi dimensioni). La procedura è analoga a
quella usata per il metodo del simplesso per problemi di trasporto per ottenere le quantità
ui e v1 al fine di calcolare il valore di eu - ui - v1 per ogni variabile non di base xu.
lndividuazione della variabile uscente e della successiva BFS
Dopo la selezione della variabile entrante, per determinare simultaneamente la variabile
di base uscente e calcolare la successiva BFS è necessario solo un ulteriore rapido passaggio. Per la prima iterazione dell'esempio, la chiave è contenuta nella Figura 8.18. Poi ché xAc è la variabile entrante, il flusso attraverso l'arco A ---> C deve essere aumentato
il più possibile da zero fino a quando una delle variabili di base raggiunge il suo limite
inferiore (O) oppure il suo limite superiore (uu). Per gli archi il cui flusso aumenta di in
Figura 8.18 (gli archi A ---> C e C ---> E) , devono essere considerati solo i limiti superiori
(uAc = +oo e ucE = 80):
e
e
XAC = e ~ 00
= 50 + e ~
X CE
80
e quindi
e
Per gli archi il cui flusso diminuisce con (gli archi D
in considerazione solo i limiti inferiori 0:
XDE
XAD
= ]0 = 40 -
e :2: 0
e :2: 0
--->
e ~ 30
E e A ---> D), si devono prendere
e quindi
e ~
e quindi
e ~ 40
10
Per gli archi il cui flusso non è cambiato (cioè quelli che non appartengono al ciclo non
diretto), che è proprio il caso dell'arco B ---> C in Figura 8.18, essi possono essere ignorati
dato che non sarà raggiunto alcun limite all ' aumentare di e.
Per i cinque archi in Figura 8.18, la conclusione è che xDE deve essere la variabile di
base uscente perché raggiunge un limite per il più piccolo valore di
(10). Ponendo
= l O, si ottengono i flussi attraverso gli archi di base nella successiva BFS:
e
e
=e= 10
XCE = 50 + e = 60
XAD = 40 - e = 30
xAc
xac =50
L ' albero ricoprente corrispondente è mostrato in Figura 8.22 .
• Figura 8.22
Il secondo albero
ri coprente ammissibile e la
relativa BFS .
[- 30]
[40]
(xAD
= 30)
D
(lO)
(60)
(50)
[50]
[-60]
316
CAPITOLO 8
MODELLI DI OTTIMIZZAZIONE SU RETE
Se la variabile di base uscente avesse raggiunto il suo limite superiore, allora, a questo
punto, sarebbero stati necessari gli aggiustamenti discussi precedentemente per gestire i limiti superiori (come sarà illustrato durante le due iterazioni seguenti). Tuttavia, poiché è
stato raggiunto il limite inferiore pari a O, non deve essere fatto null 'altro.
Per le due restanti iterazioni necessarie per raggiungere la soluzione ottima, verranno
considerate principalmente alcune caratteristiche della tecnica per gestire i limiti superiori.
Il modo per individuare la variabile entrante, la variabile di base uscente e la successiva
BFS è molto simile a quello descritto per la prima iterazione, e così vengono soltanto brevemente riassunti questi passi.
Iterazione 2: A partire dall ' albero ricoprente ammissibile mostrato in Figura 8.22 e riferendosi alla Figura 8.16 per i costi unitari eu, i calcoli per la selezione della variabile entrante sono mostrati nella Tabella 8.4. La seconda colonna identifica l'unico ciclo non diretto che è generato aggiungendo l'arco non di base nella prima colonna a questo albero
ricoprente, mentre la terza colmma mostra l' effetto sui costi a causa dei cambiamenti nei
l all ' arco non di base E ---+ D
flussi su questo ciclo causati aggiungendo un flusso
che ha il valore più negativo per 6.Z, e quindi XED è la variabile entrante.
e=
Tabella 8.4 Calcoli per la selezione della variabile entrante all'iterazione 2
Arco non di base
f:::.Z quando e = 1
Ciclo originato
8 --+ A
BA-AC-BC
DE-CE-AC-AD
ED-AD-AC-CE
D -+ E
E --+ D
- 2+ 4 - 3= - 1
3- 1- 4+9 = 7
2- 9+ 4+ l =- 2
<-- minimo
e
Adesso, con un flusso lungo l' arco E ---+ D quanto più grande possibile, e soddisfacendo
i vincoli sui flussi si ha:
e : :; oo
e : :; 30
XAD = 30- e ~ 0
e : :; oo
e quindi
XAC = ] 0 + e : :; UAC = 00
minimo valore
e quindi e : :; 20.
XCE = 60 + e : :; UCE = 80
Poiché XcE impone il più piccolo limite superiore (20) su e, XCE diventa la variabile di base uscente. Ponendo e = 20 nelle suddette espressioni per XED , xAD, e xAc si ottiene quinXED
=
e : :; UED =
e quindi
e quindi
00
f-
di il flusso lungo gli archi di base per la successiva BFS (con x 8 c = 50 non influenzata da
e), come mostrato in Figura 8.23.
Ciò che qui è di fondamentale interesse è che la variabile di base uscente x CE è stata ottenuta in corrispondenza del suo limite superiore (80). Di conseguenza, usando la tecnica del
limite superiore, X CE è sostituita con 80 - YcE e YcE = O è la nuova variabile non di base.
Allo stesso tempo, l' arco originale C---+ E con c eE= l e u CE = 80 è sostituito dall'arco
• Figura 8.23
Il terzo albero ricoprente
ammissibile e i relativi
valori per l'esempio
considerato.
[40]
[- 30]
(xAD =
(;')
IO)
.(;
-
(30)
~
(20)
(50)
-..___/
[50]
E
[20]
8.7
317
Il SIMPlESSO SU RETE
E ----7 C con cEe= - l e uEe = 80. Anche i valori di bE e b e sono modificati aggiungendo
80 a bE e sottraendo 80 da b e. La rete modificata risultante è mostrata in Figura 8.24, dove gli archi non di base sono indicati come linee tratteggiate e i valori accanto a tutti gli
archi sono i costi unitari.
a questo
estire i lipoiché è
verranno
superiori.
uccessiva
:anto bre-
lterazione 3: utilizzando le informazioni riportate nelle Figure 8.23 e 8.24, la Tabella 8.5
mostra i calcoli che conducono alla scelta di y 118 (arco B ----7 A) come variabile entrante.
Quindi si aggiunge un flusso lungo l'arco B ----7 A quanto più grande possibile continuando a soddisfare i seguenti vincoli sui flussi:
e
30 +
=50 -
XAe =
Xse
e : :; U;~e =
e2 0
e :::; IO
e quindi
e quindi
YA B = e :::; UsA= IO
22 e rifeiabile eno non dito albero
nenti nei
: E----7D
00
<- minimo
e : :; oo
e : :; 50
e quindi
Tabella 8.5 Calcoli per la selezione della variabile entrante per l'iterazione 3
t:,.Z quando e = 1
l Ciclo originato
Arco non di base
8 -> A
0 -> E
E -> C
- 2+4- 3= - l
3+ 2 = 5
- 1- 4+9- 2= 2
BA-AC-BC
DE-ED
EC-AC-AD-ED
l
Minimo
+-
Il più piccolo limite superiore (l O) su e è imposto da YAB, così questa variabile diventa la
variabile di base uscente. Ponendo e= lO in queste espressioni per x 11 e e x 8e (con i valori
immutati di x 11 e = l O e x ED = 20) allora si ottiene la successiva BFS, come mostrato in
Figura 8.25.
:;facendo
:Il ore
• Figura 8.24
La rete modificata e i
corrispondenti costi
unitari al termine
dell'iterazione 2.
[ - 30]
[40]
CAo =
D
~
l
\
\
4 --.........._
-21
l
le di bane qumnzata da
9
[- 801
(usA = IO) :
'-,
l
l
13
l
l
'(
' ,,
-1
l
' ,,
(uEe =SO)
:ata otte:nica del
di base.
!all ' arco
"-----"
[50]
• Figura 8.25
Il quarto (e ultimo) albero
ricoprente amm issibile e i
relativi va lori per l'esempio
considerato .
[20]
[ - 30]
[50]
(xAD
=
10)
D
(40)
(20)
(40)
E
[40]
[20]
318
CAPITOLO 8
MODElLI DI OTTIMIZZAZIONE SU RETE
[-30]
[50]
CAD =
l
21
l
l
(uAB = 10) l
l
• Figura 8.26
La rete modificata e i
co rrispondenti costi
unitari al termine
dell'iterazione 3.
9
\
\
4
\
13
l
l
2
' '
-1' '
l
..... ,
'
(uEc = 80)'
[40]
[20]
Come per l'iterazione 2, la variabile di base uscente (yAB) è stata ottenuta in corrispondenza del raggiungimento del suo limite superiore. In più, ci sono altri due punti di interesse
in relazione a questa particolare scelta. Uno è che la variabile entrante YAB è diventata la
variabile uscente nella stessa iterazione! Questo evento si presenta occasionalmente ogni
qual volta l'aumento della variabile entrante da zero comporta che il suo limite superiore
sia raggiunto prima che qualsiasi delle altre variabili di base raggiungano il loro limite.
L'altro punto interessante è che l 'arco B ---+ A che ora deve essere sostituito da un arco
A ---+ B nella direzione opposta (a causa della variabile di base uscente che raggiunge il limite superiore) è un arco introdotto precedentemente! Ciò non è un problema, perché l'inverso di un arco inverso è semplicemente l'arco reale originale. Di conseguenza, l'arco B
---+A (con c8A = - 2 e u8A = 10) in Figura 8.24 è ora sostituito dall'arco A ---+ B (con cAB
= 2 e uAa = l 0), che è l'arco fra i nodi A e B nella rete originale indicata in Figura 8.12, e
un flusso netto generato pari a 10 è spostato dal nodo B (b 8 = 50 ---+ 40) al nodo A (bA=
40---+ 50). Simultaneamente, la variabile YAB = 10 è sostituita con 10 - xA 8 , con XAB =O
come nuova variabile non di base. La rete risultante è mostrata in Figura 8.26.
Test di ottimalità: a questo punto, l'algoritmo usa le informazioni riportate nelle Figure
8.25 e 8.26 per determinare la successiva variabile entrante con i calcoli usuali indicati in
Tabella 8.6. Tuttavia, nessuno degli archi non di base ha un valore negativo di flZ , così
un miglioramento di Z non può essere realizzato introducendo flusso lungo questi archi .
Ciò significa che la BFS corrente mostrata in Figura 8.25 ha superato il test di ottimalità
e l'algoritmo termina.
Tabella 8.6 Calcoli per la selezione della variabile entrante per l'iterazione 3
Arco secondario
A ---> 8
Q __, E
E __, C
Ciclo originato
AB-BC-AC
DE-ED
EC-AC-AD-ED
!:::.Z quando B = 1
2+ 3- 4= 1
3+ 2 = 5
- 1- 4+ 9- 2= 2
Per identificare i flussi attraverso gli archi reali piuttosto che gli archi aggiunti in direzione opposta in questa soluzione ottima, la rete modificata (Figura 8.26) deve essere paragonata alla rete originale (Figura 8.12). Si noti che ciascuno degli archi ha la stessa direzione nelle due reti con l'unica eccezione dell'arco fra i nodi C e E. Ciò significa che l'unico
arco aggiunto in Figura 8.26 è l'arco E ---+ C, in cui il relativo flusso è dato dalla variabile
YcE· Di conseguenza, calcolare xcE = u cE - YcE = 80 - YcE· L'arco E ---+ C sembra essere un arco non di base, così YcE =O e XcE = 80 è il flusso attraverso l'arco reale C---+ E.
Tutti gli altri flussi attraverso gli archi reali sono i flussi indicati in Figura 8.25. Di conseguenza la soluzione ottima è quella indicata in Figura 8.27.
8.8
319
TECNICHE RETICOLARI PER LA GESTIONE DI PROGETTI
[- 30]
[50]
(XAD = 10)
(40)
(0)
• Figura 8.27
Flusso ottimo nella rete
originale per il problema
della Distribution
Unlimited Co.
pondennteresse
~ntata la
nte ogni
uperiore
nite.
un arco
1ge il li:hé l'inl'arco B
con c AB
1 8.12, e
A (bA=
XAB
= Q
:Figure
jicati in
~z , così
ti archi.
timalità
direzioparagodireziol'unico
ariabile
ra esse':: ---+ E.
con se-
•
8.8
(0)
(40)
(80)
B
[40]
[ - 60]
TECNICHE RETICOLARI PER LA GESTIONE DI PROGETTI
Le reti forniscono un modo naturale per la rappresentazione grafica del flusso delle attività in un progetto di grandi dimensioni, come un progetto di costruzione o di ricerca e sviluppo. Una delle più importanti applicazioni della teoria delle reti consiste, appunto, nel
fornire un supporto per tali progetti.
Negli anni Cinquanta, furono sviluppate in maniera indipendente due tecniche di Ricerca Operativa basate su reti, PERT (Program Evaluation and Review Technique) e CPM
(Critica! Path Method), per assistere i manager nelle loro decisioni. Queste tecniche furono progettate al fine di coadiuvare il coordinamento delle varie sezioni di un progetto, sviluppame un programma realistico e, quindi, monitorame i progressi. Nel corso degli anni,
le migliori caratteristiche delle due tecniche si sono fuse in quella che ora viene comunemente denominata tecnica PERT/CPM. Questo approccio basato su reti continua a essere
ampiamente utilizzato ancora oggi. Poiché è un modello di ottimizzazione su rete si adatta
al tema del capitolo corrente e inoltre mostra le importanti applicazioni che tale modello
può avere.
La metodologia che verrà presentata è denominata metodo CPM con tradeo.fftra tempi
e costi e costituisce una parte fondamentale dell'originale tecnica CPM e viene applicata a
un progetto che deve essere completato in un lasso di tempo predeterminato. Si supponga
che la scadenza non possa essere soddisfatta se tutte le attività venissero svolte con le normali modalità, ma che esistano vari modi di rispettare tale scadenza spendendo una quantità maggiore di denaro per velocizzare alcune attività. Qual è il miglior piano per accelerare queste attività in modo da minimizzare il costo totale e completare il progetto nel tempo stabilito?
L'approccio generale consiste nell'utilizzo di una rete che mostri le varie attività e l'ordine secondo il quale esse devono essere svolte. Viene quindi formulato un modello di ottimizzazione che può essere risolto mediante una analisi di tipo marginale o mediante le
usuali tecniche di programmazione lineare. Come per gli altri modelli di ottimizzazione
su rete considerati precedentemente in questo capitolo, la particolare struttura di questi
problemi permette di trovare, con relativa semp licità ed efficientemente, una soluzione.
Un primo esempio: il problema della Reliable Construction Co.
La RELIABLE CONSTRUCTION COMP ANY ha appena effettuato un 'offerta vincente di
5,4 milioni di dollari per la costmzione di un nuovo impianto per una azienda manifatturiera. Il committente ha, però, la necessità di iniziare la produzione entro quaranta settimane.
La compagnia ha incaricato il suo migliore manager, David Perty, per assicurarsi che
questo progetto rientri nei tempi stabiliti. Il signor Perty avrà bisogno di organizzare un
certo numero di team per svolgere le varie attività. La Tabella 8.7 mostra l'elenco stilato
320
CAPITOLO 8
MODELLI DI OTTIMIZZAZIONE SU RETE
dal manager delle diverse attività coinvolte. La terza colonna fornisce ulteriori importanti
·
informazioni per il coordinamento delle squadre.
Per ogni data attività, i predecessori diretti (come indicato nella terza colonna della Tabella
8.7) sono quelle attività che devono essere completate immediatamente prima di iniziare l' attività in esame (questa attività è chiamata successore diretto di ogni suo immediato predecessore).
Tabella 8.7 La lista delle attività per il progetto della Reliable Construction Co.
Attività
Descrizione dell'attività
Lavori di scavo
Posa delle fondamenta
Costruzione del muro grezzo
Costruzione del tetto
Realizzazione del l'impianto idraulico esterno
Realizzazione dell'imp ianto idraulico interno
Rea lizzazione dei rivestimenti esterni
Lavori di pittura all'esterno
Realizzazione dell'impianto elettrico
Rea lizzazione dei rivestimenti interni
Pavimentazione
Lavori di pittura degli interni
Completamento deg li a rredi estern i
Completamento degli arredi interni
__.. .A
8
c
D
E
F
c
H
l
l
K
L
M
N
----------
Predecessori diretti
-
A
8
c
c
E
D
E, C
c
F, l
l
l
H
K, L
Durata prevista
2 settimane
4 settimane
l O settimane
6 settimane
4 settimane
5 settimane
7 settimane
9 settimane
7 settimane
8 settima ne
4 settimane
5 settimane
2 settimane
6 settimane
- - --------------
Per esempio, la prima voce in questa colonna indica che:
l. le opere di scavo non necessitano di attendere il completamento di alcuna altra attività;
2. le opere di scavo devono essere completate prima di iniziare la posa delle fondamenta ;
3. la posa delle fondamenta deve essere completamente ultimata prima di costruire i muri,
e così via.
Quando una determinata attività ammette più di un predecessore, tutti questi devono essere completamente ultimati prima che la data attività possa avere inizio.
Al fine di pianificare le varie attività, il signor Perty consulta ciascuno dei supervisori
dei vari team per ottenere una stima dei tempi richiesti da ogni attività in condizioni normali. Queste stime sono riportate nell 'ultima colonna della Tabella 8.7.
Il computo totale di questi tempi fornisce un numero di settimane richieste pari a 79,
valore che risulta ben lontano dalla scadenza delle 40 settimane destinate al progetto. Fortunatamente, alcune di queste attività possono essere eseguite in parallelo, il che riduce
sostanzialmente i tempi per la realizzazione del progetto. Verrà mostrato in seguito come
rappresentare graficamente il progetto per meglio visualizzare il flusso delle attività e determinare i tempi complessivamente richiesti per il completamento del progetto in assenza
di ritardi.
Le reti giocano un ruolo molto importante nella conduzione dei progetti: esse permettono di mostrare le relazioni tra le varie attività e rappresentare in maniera compatta l'intero
schema del progetto e risultano, inoltre, molto utili nell'analisi del progetto stesso.
La rete delle attività
Una rete utilizzata per la rappresentazione di un progetto è chiamata rete delle attività.
Una rete delle attività è costituita da nodi (normalmente rappresentati come cerchi o rettangoli) e da archi che collegano due nodi differenti.
Come indicato dalla Tabella 8.7 per descrivere il progetto sono necessari tre tipi di infmmazioni:
l. informazioni sulle attività: occorre suddividere il progetto nelle sue singole attività (al
desiderato livello di dettaglio) ;
8.8
TECNICHE RETICOLARI PER LA GESTIONE DI PROGETTI
321
1portanti
2. precedenza tra attività: occorre identificare i predecessori diretti per ciascuna attività;
3. informazioni sui tempi: occorre valutare la durata di ciascuna attività.
'a bella
, l'attideces-
La rete delle attività dovrebbe contenere tutte queste informazioni. Per questo sono disponibili due differenti tipologie di reti di progetto.
Il primo tipo prende il nome di rete AOA (Activity-On-Arc), nel quale ogni attività è
rappresentata da un arco. Un nodo è utilizzato per separare un'attività (un arco uscente)
da ciascuno dei suoi predecessori diretti (gli archi entranti). La sequenza degli archi mostra, perciò, le relazioni di precedenza tra le attività.
Il secondo tipo prende il nome di rete AON (Activity-On-Node), nel quale ogni attività è rappresentata da un nodo. Gli archi sono usati per mostrare le relazioni di precedenza
esistenti tra le attività. In particolare, il nodo per un'attività che possiede dei predecessori
diretti presenterà un numero di archi entranti pari al numero dei predecessori.
Nelle versioni originali di PERT e CPM sono state utilizzate reti AOA le quali sono divenute uno standard per molti anni. Ciononostante, le reti AON posseggono alcuni importanti vantaggi rispetto alle reti AOA:
Co.
>revista
ma ne
ma ne
ma ne
ma ne
ma ne
ma ne
ma ne
ma ne
ma ne
ma ne
ma ne
ma ne
ma ne
ma ne
attività;
amenta;
:e i muri,
mo essepervtson
10m nor'ari a 79,
!tto. For1e riduce
ito come
1ità e de1 assenza
>ermettoa l'intero
l. le reti AON sono considerevolmente più semplici da costruire rispetto a quelle di tipo
AOA;
2. le reti AON sono più semplici da comprendere rispetto alle reti AOA per utenti meno
esperti;
3. le reti AON sono più semplici da rivedere rispetto alle reti AOA in presenza di cambiamenti del progetto.
Per queste ragioni, le reti delle attività AON stanno riscuotendo sempre maggior successo
presso gli addetti ai lavori. Sembra che possano diventare il nuovo standard e quindi nel
seguito, verranno analizzate unicamente le reti AON.
La Figura 8.28 mostra la rete per il progetto Reliable 3 in esame. Con riferimento ancora alla terza colonna della Tabella 8.7, si noti la presenza di un arco verso ciascuna attività
da ogni suo predecessore diretto. Poiché l'attività A non ha predecessori diretti, esiste solo
un arco dal nodo di inizio verso questa attività. Similmente, poiché le attività M e N non
hanno successori diretti, gli archi che partono da queste attività terminano nel nodo finale.
La rete visualizza, quindi , in una volta tutte le relazioni di precedenza tra tutte le attività
(con l'aggiunta di inizio e fme del progetto). Come riportato sulla colonna di destra della
Tabella 8.7, il valore accanto al nodo per ogni attività indica la durata teorica (espressa in
settimane) di quella attività.
Il cammino critico
Quanto tempo richiederà il completamento del progetto? Si è notato in precedenza che la
somma delle durate di tutte le attività fornisce un totale di 79 settimane. Tuttavia questa
non è la risposta alla domanda perché alcune attività possono (in qualche modo) essere
sviluppate separatamente.
Ciò che è rilevante è la lunghezza di ogni cammino attraverso la rete.
Un cammino attraverso una rete di progetto è un cammino dal nodo di partenza a quello finale. La lunghezza di un cammino è la somma delle durate (teoriche) delle attività che fanno
parte di cammino.
attività .
~hi o ret-
I sei cammini attraverso la rete della Figura 8.28 sono indicati nella Tabella 8.8, unitamente al calcolo delle lunghezze che variano da 31 settimane a 44 settimane per il cammino
più lungo (il quarto nella tabella).
ipi di in-
'tività (al
3
Queste reti sono di solito disegnate in orizzontale da sin istra verso destra, qui invece, per motivi tipografici , sono disegnate in verticale.
322
CAPITOLO 8
MODELLI DI OTTIMIZZAZIONE SU RETE
Codice attività
l l7
A. Scavi
B. Fondamenta
C. Muro grezzo
D. Tetto
E. Impianto idraulico esterno
F. Impianto idraulico interno
G. Rivestimenti esterni
H. Pittura dell'esterno
l. Realizzazione dell'impianto elettrico
J. Realizzazione dei rivestimenti interni
K. Pavimentazione
L. Lavori di pittura degli interni
M. Collocazione degli arredi esterni
N. Collocazione degli arredi interni
Ml2
• Figura 8.28
La rete di progetto del la
Reliable Co nstruction Co.
Così, esaminate le lunghezze di questi cammini, qual è la durata (teorica) del progetto
(il tempo totale richiesto per il completamento del progetto)?
Poiché le attività su un qualunque cammino devono essere svolte sequenzialmente,
senza sovrapposizioni, la durata del progetto non può essere inferiore della lunghezza di
cammino. Tuttavia, la durata del progetto potrebbe essere maggiore giacché alcune attività nel cammino, con più di un predecessore diretto, potrebbero dover attendere il completamento delle attività di predecessori diretti al di fuori di cammino. Come esempio, si consideri il secondo cammino nella Tabella 8.8 e in particolare l 'attività H. Essa possiede due
predecessori diretti, uno dei quali (l'attività G) non appartiene al percorso in esame, a differenza dell 'altro (l ' attività E). Dopo la conclusione dell'attività C, sono richieste soltanto
altre 4 settimane per l'attività E , mentre per la conclusione delle attività D e G sono necessarie ben 13 settimane. Di conseguenza, la durata del progetto deve essere considerevolmente maggiore della lunghezza del secondo percorso della tabella.
Tabella 8.8 l cammini e le relative lunghezze attraverso la rete per il problema
Reliable Construction Co.
Lunghezza
Cammino
INIZIO
INIZIO
INIZIO
INIZIO
INIZIO
INIZIO
-->
--->
-->
-->
-->
-->
A _,
A _,
A _,
A _,
A _,
A _,
8 _,
8 _,
8 _,
8 _,
8 _,
8 -->
C -->
C _,
C _,
C _,
C _,
C _,
D _, G _, H --> M _, FIN E
E _, H _, M --> FINE
E _, F --> j --> K _, N _, FINE
E _, F _, j _, L _, N _, FINE
l _, j --> K --> N --+ FINE
l _, j --> L --> N --> FINE
2+4
2+4
2+4
2+4
2+4
2+4
+
+
+
+
+
+
l O+ 6 + 7 + 9 + 2
=
l O+ 4 + 9 + 2
=
l O+ 4 + 5 + 8 + 4 + 6 =
l O+ 4 + 5 + 8 + 5 + 6 =
l O+ 7 + 8 + 4 + 6
=
l O+ 7 + 8 + 5 + 6
=
40 setti mane
31 settimane
43 settimane
44 settimane
41 settimane
42 settimane
8.8
323
TECNICHE RETICOLARI PER LA GESTIONE DI PROGETII
Tuttavia, la durata del progetto non sarà maggiore di uno speciale cammino. Questo è il
cammino più lungo attraverso la rete. Le attività contenute in tale percorso possono essere
espletate in sequenza, senza interruzioni (altrimenti non sarebbe il percorso più lungo).
Pertanto il tempo necessario a raggiungere il nodo finale è uguale alla lunghezza di questo
percorso. Inoltre, tutti i percorsi meno lunghi raggiungeranno il nodo finale non più tardi
che questo.
La durata (prevista) del progetto è uguale alla lunghezza di cammino più lungo nella rete.
Tale cammino prende il nome di cammino critico (se più di un cammino ammette una lunghezza pari a quella di cammino più lungo, allora si parlerà di più cammini critici).
elettrico
1ti interni
Così, per il progetto della Reliable Construction Co., si ha
cammino critico: INIZIO --> A --> B --> C --> E
durata (prevista) del progetto = 44 settimane.
emi
emi
-->
F
-->
J
-->
L
-->
N
-->
FINE
Quindi, in assenza di ritardi, il tempo totale richiesto per il completamento del progetto di
circa 44 settimane. Inoltre, le attività contenute in questo cammino critico rappresentano
un collo di bottiglia e un qualsiasi ritardo deve assolutamente essere evitato per prevenire
lo slittamento del completamento del progetto. Questa informazione è preziosa, giacché
permette di conoscere quelle attività su cui occorre concentrare l'attenzione per mantenere
nei tempi prefissati le attività dell 'intero progetto. Inoltre, queste sono le principali attività
su cui occorre apportare delle modifiche atte a ridume la durata al fine di diminuire quella
del progetto stesso (si ricordi che la scadenza era stata fissata dopo 40 settimane).
Si deve adesso determinare esattamente di quale attività dovrà essere ridotta la durata,
e di quanto, per rispettare la scadenza delle 40 settimane nel modo meno costoso possibile. La tecnica CPM fornisce una eccellente procedura per l'analisi del trade-off tempicosti.
Trade-off tempi-costi per le attività
Il primo concetto chiave per questo approccio è il concetto di crashing.
Il crashing di un'attività si riferisce alla possibilità di ridurre la durata dell'attività al di sotto
del suo valore normale utilizzando procedure particolarmente costose. Queste procedure speciali possono comprendere l'impiego di lavoro straordinario, il ricorso a personale assunto a
tempo, l'utilizzo di speciali materiali salva tempo, l'ausilio di una attrezzatura speciale ecc. Il
crashing di un progetto si riferisce al crashing di alcune attività al fine di ridurre la durata
del progetto al di sotto del suo valore normale.
1rogetto
1lmente,
hezza di
te attivicompie', SI coniede due
te, a difsoltanto
o necesderevol-
• Figura 8.29
Un tipico grafico
tempi-costi per una
singola attività.
Costo
dell'attività
Costo crash
ma
'!ttimane
'!ttimane
'!ttimane
'!ttimane
'!ttimane
'!ttimane
Costo normale
Crash
~No=•lc
Tempo crash Tempo normale
Durata dell'attività
324
CAPITOLO 8
MODELLI DI OTTIMIZZAZIONE SU RETE
Il metodo CPM del trade-off tempi-costi determina di quanto ridurre (sempre che sia
possibile) la durata di ogni attività per diminuire la durata prevista per l'intero progetto.
I dati necessari per determinare di quanto ridurre una certa attività sono fomiti dal grafico tempi-costi per l'attività in questione. La Figura 8.29 mostra un tipico grafico tempicosti. Si notino i due punti chiave sul grafico etichettati come Normale e Crash.
Il punto normale in un grafico tempi-costi per una attività mostra la durata e il costo quando
questa viene portata a termine in maniera normale. Il punto crash indica la durata e il costo
quando l'attività viene accelerata senza badare a spese in modo da ridurre quanto più possibile la sua durata. In prima approssimazione, CPM assume che tali tempi e costi possano essere
predetti con buona approssimazione.
Per molte applicazioni, si assume che un crashing parziale dell'attività a un livello qualunque fornisca una combinazione di tempi e di costi che si trova approssimativamente
sul segmento che congiunge questi due punti 4 (per esempio, tale ipotesi implica che la
metà di un crashing corrisponde al punto medio del segmento). Questa ipotesi semplificativa limita i dati che devono essere raccolti per calcolare il tempo e il costo a due situazione soltanto: la condizione normale (che origina il punto Normale) e il crash (che dà luogo
al punto Crash).
Utilizzando questo approccio, il signor Perty, insieme al suo staffe ai supervisori, ha
provveduto alla raccolta di questi dati per ciascuna delle attività del progetto. Per esempio, il supervisore per il gruppo responsabile della posa del materiale da costruzione indica che la temporanea aggiunta di due operai e il ricorso allo straordinario, permetterebbero di ridurre la durata dell 'attività da 9 a 6 settimane, che è il tempo minimo sotto il quale
non è possibile andare. Lo staff del signor Perty ha calcolato il costo di un completo crashing dell 'attività paragonandolo a quello derivante da normali condizioni, come mostrato
di seguito.
Attività J (posa dei materiali da costruzione):
punto Normale: tempo = 8 settimane, costo= $430 000
punto Crash: tempo = 6 settimane, costo = $490 000
massima riduzione = 8 - 6 = 2 settimane
costo per settimana risparmiata = $490 000 - $430 000
2
= $30000
I risultati ottenuti da una analisi effettuata in maniera del tutto analoga per ciascLma delle
altre attività sono riportati nella Tabella 8.8.
Quali attività devono essere oggetto di crashing?
Sommando le colonne del costo normale e del costo crash della Tabella 8.9 si ottiene
somma dei costi normali = 4,55 milioni di dollari
somma dei costi crash = 6,15 milioni di dollari
Si ricorda che la compagnia riceverà come pagamento la cifra di 5,4 milioni di dollari per
il completamento del progetto. Tale importo dovrà coprire anche alcuni costi aggiuntivi
rispetto alle attività elencate nella tabella e fornire un ragionevole profitto per la compagnia. Durante lo sviluppo dell'offerta vincente di 5,4 milioni di dollari , il management ha
determinato che tale importo porterà un ragionevole profitto se il costo totale delle attività
4
Questa è un ' ipotesi conveniente, ma spesso ri sulta essere una approssimazione piuttosto grossolana poiché le
assunzioni di proporzionalità e di visibilità possono non va lere completamente. Se il rea le grafico tempo-costi è
convesso, la programmazione lineare può ancora essere impiegata ipotizzando una approssimazione lineare a
tratti e, di conseguenza, è possibile appl icare le tecniche descritte nel Paragrafo l 0.8.
8 .8
~ che sia
'getto.
dal gra:o tempi-
325
TECNICHE RETICOLARI PER LA GESTIONE DI PROGETTI
sarà mantenuto abbastanza vicino al normale livello di circa 4,55 milioni di dollari. Il signor Perty ha compreso perfettamente che fa parte delle sue responsabilità mantenere
quanto più possibile il progetto entro i limiti di budget e di tempo.
Tabella 8.9 Dati per il bilanciamento tempi-costi delle attività
1uando
l costo
ossi biessere
Tempo
A
8
ello quaivamente
;a che la
mplificasituaziodà luogo
c
D
E
F
G
H
l
l
tisori, ha
'er esemone inditterebbe) il quale
leto crasmostrato
Costo
Attività
K
L
M
N
Normale
Crash
Normale
2 settimane
4 settimane
l O settimane
6 settimane
4 settimane
5 settimane
7 settimane
9 settimane
7 settimane
8 settimane
4 settimane
5 settimane
2 settimane
6 settimane
l settimana
2 settimane
7 settimane
4 settimane
3 settimane
3 settimane
4 settimane
6 settimane
5 settimane
6 settimane
3 settimane
3 settimane
l settimana
3 settimane
$180000
$320000
$620000
$260000
$410000
$180000
$900000
$200000
$210000
$430 000
$160 000
$250000
$100 000
$330 000
Crash
$
$
$
$
$
$
$1
$
$
$
$
$
$
$
280000
420000
860000
340000
570000
260000
020 000
380000
270000
490000
200000
350000
200000
510000
Riduzione
massima
del tempi
Costo per
settimana
risparmiata
l settimana
2 settimane
3 settimane
2 settimane
l settimana
2 settimane
3 settimane
3 settimane
2 settimane
2 settimane
l settimana
2 settimane
l settimana
3 settimane
$100000
$ 50000
$ 80000
$ 40000
$160000
$ 40000
$ 40000
$ 60000
$ 30 000
$ 30000
$ 40000
$ 50000
$100000
$ 60000
Come evidenziato in precedenza dalla Tabella 8.8, se tutte le attività veni ssero completate
in maniera normale, la durata prevista del progetto sarebbe di 44 settimane (in assenza di
ritardi) . Se tutte le attività fossero , invece, oggetto di crashing completo allora un calcolo
analogo porterebbe a una durata di appena 28 settimane. Ma il costo in questo caso sarebbe proibitivo (6,15 milioni di dollari)! Il crashing completo di tutte le attività non è un 'alternativa ammissibile.
Quindi è necessario analizzare la possibilità di un crashing parziale o soltanto per alcune attività, per ridurre la durata prevista del progetto a 40 settimane.
Qual è la maniera meno dispendiosa per effettuare il crashing su alcune attività così
da ridurre la durata (prevista) del progetto al livello desiderato (40 settimane)?
una delle
:iene
ollari per
ggiuntivi
1 compaement ha
!e attività
a poiché le
npo-costi è
te lineare a
Un modo di risolvere il problema è una analisi marginale dei costi, che utilizza l'ultima
colonna della Tabella 8.9 (insieme alla Tabella 8.8) per determinare il modo meno dispendioso di ridurre la durata del progetto di una settimana alla volta. La maniera più semplice
di condurre questo tipo di analisi consiste nel costruire una tabella simile alla Tabella 8.1 O
che elenchi tutti i cammini attraverso la rete e la loro lunghezza. Per iniziare, tale informazione può essere ripresa direttamente dalla Tabella 8.8.
Poiché il quarto cammino della Tabella 8.1O presenta la lunghezza maggiore (44 settimane), il solo modo di ridurre la durata del progetto di una settimana è quello di ridurre di
una settimana la durata delle attività in questo particolare cammino. Confrontando i costi
per settimana risparmiata indicati nell'ultima colonna della Tabella 8.9 per queste attività,
il costo minore è di 30 000 dollari per l'attività J (si osservi che l'attività I che presenta il
medesimo costo non figura nel cammino in esame). Quindi, il primo cambiamento è il
crashing dell ' attività J in maniera sufficiente da ridurre di una settimana la durata del progetto.
Tale cambiamento comporta la riduzione di una settimana della lunghezza di tutti i
cammini contenenti l'attività J (il terzo, il quarto, il quinto e il sesto cammino della Tabella 8.1 0), come mostrato della seconda riga della Tabella 8.11. Poiché il quarto cammino
risulta ancora il più lungo (43 settimane), il medesimo procedimento dovrà essere ripetuto
per trovare quale attività di questo cammino permetta una riduzione al minor costo. Essa è
ancora l'attività J, giacché tale attività permette una riduzione massima di 2 settimane, co-
326
CAPITOLO 8
MODELLI DI OTTIMIZZAZIONE SU RETE
me si evince dalla penultima colonna della Tabella 8.8 . Questa seconda riduzione di una
settimana per l'attività J porta alla terza riga della Tabella 8.11.
Tabella 8.10 La tabella iniziale per l'analisi dei costi marginali per il progetto
della Reliable Construction Co.
Attività da
sottoporre
a crashing
Costo
crash
Lunghezza di cammino
ABCDGHM
ABCEHM
ABCEFJKN
ABCEFJLN
ABCIJKN
ABCIJLN
40
31
43
44
41
42
• Tabella 8.11 La tabella finale per l'analisi dei costi marginali per il progetto
della Reliable Construction Co.
Attività da
sottoporre
a crashing
J
J
F
F
Costo
crash
$30000
$30000
$40000
$40000
Lunghezza di cammino
ABCDGHM
ABCEHM
40
40
40
40
40
31
31
31
31
31
ABCEFJKN ABCEFJKN
43
42
41
40
39
44
43
42
41
40
ABCIJKN
ABCIJLN
41
40
39
39
39
42
41
40
40
40
A questo punto, il quarto cammino risulta essere ancora il più lungo (42 settimane), ma
l'attività J non può essere ridotta ulteriormente. Tra le altre attività di questo cammino,
l'attività F è adesso la meno costosa da ridurre (40 000 dollari alla settimana) come risulta
dall 'ultima colonna della Tabella 8.8. Quindi, questa attività viene ridotta di una settimana per ottenere la quarta 1iga della Tabella 8.11 e immediatamente dopo (poiché è permessa una riduzione massima di 2 settimane) essa viene ridotta di un'altra settimana per ottenere l'ultima riga della tabella.
Il cammino più lungo (contemporaneamente il primo, il quarto e il sesto cammino) ha
ora la lunghezza richiesta di 40 settimane, cosicché non è necessaria alcuna altra operazione di crashing (se fosse necessario procedere con ulteriori riduzioni, il prossimo passo sarebbe quello di cercare tra le attività appartenenti ai tre percorsi risultati più lunghi il modo meno dispendioso di ridurne la durata di una settimana). Il costo totale per le operazioni di crashing delle attività J e F per portare la durata del progetto a 40 settimane, viene
calcolato sommando i costi indicati nella seconda colonna della Tabella 8.11 - un totale
di 140 000 dollari . La Figura 8.30 mostra la risultante rete, dove gli archi in grassetto evidenziano i percorsi critici.
La Figura 8.30 mostra come la riduzione della durata delle attività F e J fino ai rispettivi tempi di crash abbia portato alla costituzione di tre percorsi critici attraverso la rete. La
ragione di ciò deve essere cercata nell 'ultima riga della Tabella 8.11 , dove si evince che
questi tre percorsi presentano la medesima lunghezza massima (40 settimane).
Quando si tratta con reti di maggiori dimensioni, l'analisi dei costi marginali potrebbe
rivelarsi poco maneggevole. Per i grandi progetti è preferibile una procedura più efficiente. Per questa ragione, la procedura CPM standard consiste, nell'applicazione della programmazione lineare (comunemente con l'ausilio di un pacchetto software specializzato
per sfruttare la particolare struttura di questo modello di ottimizzazione su rete) .
Uso della programmazione lineare per la scelta del crashing
Il problema di ricercare la maniera meno dispendiosa di operare il crashing delle attività
può essere riformulato nel linguaggio della programmazione lineare nel seguente modo.
8.8
327
TECNICHE RETICOLARI PER LA GESTIONE DI PROGETTI
' di una
II~Iolo
T'
~·
ICIJLN
42
ICIJLN
42
41
40
40
40
1e), ma
nmino.
:risulta
:ettima>ermeser atteino) ha
,eraztotsso sai il mo,erazto:, viene
1 totale
tto evi-
• Figura 8.30
La rete di progetto nel
caso in cui le attività j e F
siano sottoposte a un
crashing completo (con
tutte le altre attività svolte
normalmente) per il
problema della Reliable
Construction Co. Gl i archi
pi ù scuri mostrano i diversi
percorsi critici attraverso la
rete di progetto.
Sia Z il costo totale di crashing delle varie attività. Il problema consiste nel minimizzare Z, soggetto al vincolo che la durata del progetto deve essere minore o uguale al
tempo richiesto.
Le variabili decisionali sono
x1 = riduzione nella durata dell'attività}, per} = A, B, ... , N.
Utilizzando l'ultima colonna della Tabella 8.9, la funzione obiettivo da minimizzare ris ulta
Z
ispetti·ete. La
1ce che
Jtrebbe
fficienla protlizzato
=
l 00 OOOxA
+ 50 000x8 + ... + 60000xN
Ciascuna delle 14 variabili decisionali devono essere nonnegative e non devono superare
il valore massimo indicato nella penultima colonna della Tabella 8.8.
Per imporre il vincolo che la durata del progetto deve essere inferiore o uguale al valore richiesto (40 settimane), sia
YFINE
= durata del progetto, cioè il tempo necessario per raggiungere il nodo finale
Il vincolo è
YF!NE
attività
todo.
:s; 40
Per permettere al modello di programmazione lineare di assegnare il valore appropriato alla variabile YFTNE, risulta conveniente introdurre all'interno del modello, oltre ai valori xA,
x 8 , .. . , x N, le seguenti variabili:
y1 = tempo di inizio dell 'attività} (per} = B, C, ... , N), dati i valori di x A, x 8 ,
.. . ,
xN
328
CAPITOLO 8
MODELLI DI OTIIMIZZAZIONE SU RETE
(si osservi che queste nuove variabili non riguardano l' attività A, in quanto a una attività
che dà origine al progetto viene automaticamente attribuito valore zero). Il nodo finale è
trattato come per le altre attività (sebbene di durata nulla) e questo permette di estendere
la definizione YJ a YFrNE .
Il tempo di inizio di ogni attività (inclusa FINE) è direttamente collegato al tempo di
inizio e alla durata di ogni suo predecessore diretto come riassunto di seguito.
Per ogni attività (B, C, ... ,N, FINE) e per ciascun predecessore diretto il tempo di
inizio dell ' attività deve essere maggiore o uguale del tempo di inizio dell'attività
che precede più la durata di questa.
Inoltre, utilizzando i tempi normali della Tabella 8.9, la durata di ogni attività è ottenuta
mediante la formula seguente:
durata dell'attività)= tempo normale -x1
Per illustrare queste relazioni , si consideri l'attività F (Figura 8.28 oppure 8.30).
Predecessore diretto del! 'attività F:
attività E, che ha la durata pari a 4- XE.
Relazione tra queste attività:
YF?. YE
+ 4- XE·
Pertanto l'attività F non può iniziare finchè l'attività E non sia iniziata e conclusa dopo un
tempo 4 - xE.
Si consideri adesso l'attività J, che ha due predecessori diretti.
Predecessori diretti dell' attività J:
attività F, la cui durata è pari a 5 - xF;
attività I, la cui durata è pari a 7 - x 1 .
Relazione tra queste attività:
+5?. Yt + 7 -
YJ ?. YF
XF
YJ
Xt
Il sistema delle due precedenti disuguaglianze mostra che l 'attività) non può iniziare fino
a quando entrambi i suoi predecessori non siano stati completati.
Includendo vincoli di questo tipo per tutte le attività, si ottiene il modello completo di
programmazione lineare riportato di seguito.
Minimizzare
Z
=
l 00 OOOxA
+ 50 OOOxa + ... + 60 OOOxN
soggetto ai vincoli seguenti.
l. Vincoli di massima riduzione:
utilizzando la penultima colonna della Tabella 8.9,
XA ::::: l , Xa ::::: 2, ... , XN ::::: 3.
2. Vincoli di nonnegatività:
XA?. O, xa?. O, . . . ,xN?. O
Ya ?. 0, Yc ?. 0, ... , YN ?. 0, Y FrNE
?. 0 .
3. Vincoli sui tempi di inizio:
come descritto in precedenza, fatta eccezione per l'attività A (che dà inizio al progetto),
esiste un vincolo sui tempi di inizio di ogni attività con un unico predecessore diretto
(le attività B, C, D, E, F, G, I, K, L, M) e due vincoli per ogni attività con due predecessori diretti (le attività H, J, N, FINE), come indicato di seguito.
8.8 TECNICHE RETICOLARI PER LA GESTIONE DI PROGETTI
a attività
· finale è
:stendere
empo di
329
Due predecessori diretti
Un solo predecessore diretto
o+ 2 -XA
YH
YH
YD
2:: Ys + 4 -xs
2:: Yc + 10- xc
YM
2:: YH + 9 -
YB 2::
Yc
)'FINE
tpo di
ttività
XH
)'FINE
2:: YG + 7 -Xc
2:: YE + 4 - XE
2:: YM + 2 2:: YN + 6 -
XM
XN
(In generale, il numero di vincoli sui tempi di inizio per un'attività è uguale al numero
dei suoi predecessori diretti)
ottenuta
4. Vincolo sulla durata del progetto:
YF!NE :::;
dopo un
iare fino
1pleto di
·ogetto),
diretto
redeces~
40.
La Figura 8.31 mostra il modo di formulare questo problema come un problema di programmazione lineare mediante un foglio elettronico. Le variabili decisionali sono mostrate nelle celle StartTime (16:!19), TimeReduction (J6:Jl9), e ProjectFinishTime (122) . Le
colonne B e H corrispondono alle colonne della Tabella 8.8. Come indicato dalle equazioni in basso, al centro della figura, le colonne G e H sono calcolate direttamente. Le equazioni per la colonna K esprimono il fatto che il tempo finale per ogni attività è dato dal
tempo di inizio più la durata normale meno il tempo di riduzione a causa del crashing.
L'equazione inserita nella cella TotalCost (124) somma tutti i costi normali più i costi extra dovuti al crashing per ottenere il costo totale.
L'ultimo insieme di vincoli nella casella di dialogo del Risolutore, TimeReduction
(J6:Jl9) :::; MaxTimeReduction (G6:G 19), specifica che il tempo di riduzione per ogni attività non può superare il tempo massimo corrispondente indicato nella colonna G. I due
vincoli, ProjectFinishTime (122) 2:: MFinish (Kl8) e ProjectFinishTime (I22) 2:: NFINISH
(K 19), indicano che il progetto non può essere ultimato finchè ciascuno dei suoi predecessori diretti (le attività M e N) non siano stati completati. Il vincolo ProjectFinishTime
(I22) :::; MaxTime (K22) ha un ruolo chiave in quanto specifica che il progetto deve essere completato entro 40 settimane.
I vincoli che riguardano StartTime (I6:Il9) sono tutti vincoli sui tempi di inizio e specificano che un 'attività non può iniziare fino a quando ognuno dei suoi predecessori diretti
non sia stato ultimato. Per esempio, il primo vincolo BStart (I7) 2:: AFinish (K6), mostra
che l'attività B non può iniziare prima del completamento dell'attività A (il suo predecessore diretto). Quando un'attività ha più di un predecessore diretto, avrà un vincolo per
ognuno di essi. Per chiarire, l'attività H presenta come predecessori diretti le attività E e
G. Di conseguenza, ammette due vincoli sui tempi di inizio, HStart (I13) 2:: EFini
Scarica