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