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
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),
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
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
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
",. ,
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
~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:: EFinish (KlO) e HStart (113) 2:: GFinish (Kl2). È possibile notare che la forma 2:: dei vincoli sui tempi di inizio permette di ritardare l'inizio di un ' attività anche dopo che tutti i suoi predecessori diretti siano stati completati. Sebbene un tale ritardo sia in linea di principio ammesso dal modello, esso non può essere ottimale per nessuna attività di cammino critico, poiché un ritardo inutile avrà ripercussioni deleterie sul costo totale (a causa dell ' aumento delle operazioni di crashing necessarie per rispettare le scadenze). Una soluzione ottima per il modello non deve quindi contenere alcun tipo di ritardo, fatta accezione al più per quelle attività che non appartengono al cammino critico. Le colonne I e J della Figura 8.31 mostrano la soluzione ottima ottenuta (si noti che questa soluzione include un ritardo - l' attività K inizia a 30 sebbene il suo unico predecessore diretto, l'attività J, venga ultimata a 29 - ma ciò non è preoccupante poiché l' attività K non figura nel cammino critico). Questa soluzione corrisponde a quella mostrata nella Figura 8.30 ottenuta mediante una analisi dei costi marginali.
330
CAPITOLO 8
A
l
8
l c l
D
l
MODELLI DI OTTIMIZZAZIONE SU RETE
l
l
l
l
Schedulazione del progetto della Reliable Construction con tradeofftra costi e t empi
Attiv ità
A 8
c
D E F G H l
J K L M N
Tem1•i Noun al e Crash 2 1 4 2 10 7 4 6 4 3 5 3 7 4 9 6 7 5 8 6 4 3 5 3 2 1 6 3
Massima Costo Riduzio ne 1•e • senim .1 na Tempo Riduzione Tempo tempi rist)a rmi ata fin ale ini zio tem1•i 1 100000 o o 2 2 50000 2 o , 6 3 80000 6 o 16 2 40000 16 o 22 1 160000 16 o 20 40000 2 20 2 23 40000 3 22 o 29 3 60000 29 o 38 2 30000 16 o 23 2 30000 23 2 29 1 40000 34 30 o 2 50000 34 29 o 1 100000 38 o 40 3 60000 34 40 o Tempo Massimo Te mp o di co mpl etamento del IH o getto !: 40 40
Costi Norm ale Crash 180000 280000 420000 320000 620000 860000 260000 340000 410000 570000 180000 260000 1020000 900000 200000 380000 210000 270000 430000 490000 160000 200000 250000 350000 100000 200000 330000 510000
,
Costo Totale
3 4 5 6 7 8 9 10 11
G Massim a Riduzi one temi•i - NorrnaiTime-CrashTime - NormaiTime-CrashTime - NormaiTime-CrashTime - NormaiTirne-CrashTirne
4690000
H
Costo
per seniman a rispa rmi at-a
=(CrashCost-NormaiCost)!TimeReduction =(CrashCost-NorrnaiCost)!TimeReduction =(CrashCost-NormaiCost)!TimeReduction =(CrashCost-NormaiCost)!TimeReduction
K 4 Temt•o 5 fi11<1le 6 - StartTime-NorrnaiTime-TimeReduction 7 - StartTime-NormaiTirne-TirneReduction 8 - StartTime-NormaiTime-TimeReduction 9 10 11
H 241Costo Totale Nomi di celle NormaiTime CrashTime NormaiCost CrashCost MaxTimeReduction CrashCostPerWeekSaved StartTirne TimeReduction FinishTime Projectf inishTi me MaxTime
Celle C6:C19 D6:D19 E6: E19 F6: F19 G6:G19 H6:H19 16:119 J6:J19 K6:K19 122 K22
ç~;;i de~~i~~~~~~==~::~-~~~:~.:::::~.::.:~~~~ ~ [mposta ceDa obiettivo:
Uguale a: O Ma~ Cambian!;[o le ceDe:
~~t
0
t!)in
ID
Ri~olvi
O ~alore dì:
StartTimei Tif'lìeReduction;Proj~nishTimel
IO__
___;
~
lpotii_Zò
-j
flggiungi
l
Vin~oli :
$1$7 >= $K$6 $1$8 >= $K$7 !ProjectFinishTime
<= fvlaxTime
l
Chiudì
Camg_1a ~~mina
Qpzioni
l ~eimposta
----
• Figura 8.31 Il foglio elettronico mostra l'applicazione del metodo CPM del bilanciamento tempi-costi per il progetto della Reliable Construction Co ., dove le colonne l e J evidenziano le soluzioni ottime ottenute mediante Excel.
8.9
:=J
8.9
CONCLUSIONI
331
CONCLUSIONI Reti di ogni tipo si presentano in una grande varietà di contesti. Le rappresentazioni mediante reti sono molto utili nella descrizione delle relazioni e delle connessioni tra le componenti dei sistemi. Frequentemente, flussi di varia natura devono essere inviati attraverso una rete, e ciò deve essere fatto nella maniera più efficiente. Le tipologie dei modelli di ottimizzazione di rete e gli algoritmi introdotti in questo capitolo costituiscono uno strumento potente per compiere le scelte più giuste. Il problema di flusso a costo minimo gioca un ruolo centrale tra questi modelli di ottimizzazione su rete, sia per la sua larga applicabilità e sia perché può essere risolto in maniera estremamente efficiente mediante il metodo del simplesso su rete. Due casi particolari discussi in questo capitolo, il problema di cammino minimo e il problema del flusso massimo, sono semplici modelli di ottimizzazione su rete, così come i problemi discussi nel Capitolo 7 (il problema del trasporto e il problema dell 'assegnamento). Mentre tutti questi modelli riguardano l'ottimizzazione delle operazioni su una rete esistente, il problema del minimo albero ricoprente costituisce un rilevante esempio dei modelli per l'ottimizzazione della progettazione di una nuova rete .
•
RIFERIMENTI BIBLIOGRAFICI l. Ahuja, R.K. , T.L. Magnanti e J.B . Orlin: NefHJork Flows: The01y, Algorithms, and Applications, Prentice-Hall, Englewood Cliffs, NJ, 1993 . 2. Ba!!; M., T.L. Magnanti, C. Monma e G.L. Nemhauser: NefHJork Models, Elsevier, New York, 1995. 3. Bertsekas, D.P.: Network Optimization: Continuous and Discrete Models, Athena Scientific Publishing, Belmont, MA, 1998. 4. Dantzig, G.B. e M.N. Thapa: Linear Programming l: lntroduction, Springer, New York, 1997, Capitolo 8. 5. Glover, F., D. Klingman e N.V. Phillips: Network Models in Optimization and Th eir Applications in Practice, Wiley, New York, 1992 . 6. Hillier, F.S. e M.S. Hillier: lntroduction lo Management Science: A Modeling and Case Studies Approach with Spreadsheets, 2nd ed. , McGraw-Hill/Irw in, Burr Ridge, IL, 2003, Capitolo 7. 7. Magnanti, T.L. e R.T. Wong: "Network Design and Transportation Planning: Models and Algorithms " , Transportation Science, 18: 1-55, 1984. 8. Murty, K.G. : NefHlork Programming, Prentice-Hall , Englewood Cliffs, NJ, 1992.
L
;a
•
J J
8.2-1. Si consideri la seguente rete orientata
PROBLEMI
J
J J iable
(a) Determinare un cammino diretto dal nodo A al nodo F e identificare quindi altri tre cammini non diretti dal nodo A al nodo F. (b) Trovare tre cicli orientati. Quindi, identificare un ciclo non orientato che include ogni nodo.
(c) Identificare un insieme di archi che forma un albero ricoprente. (d) Usare il processo illustrato nella Figura 8.3 per determinare un albero ricoprente scegliendo un arco alla vo lta. Ripetere, quindi, questo processo per ottenere un altro albero ricoprente [non duplicare l'albero ricoprente identificato al punto (c)]. 8.3-1. In un piccolo ma crescente aeroporto, la compagnia di linea aerea locale sta comprando una nuova motrice per un convoglio rimorchiato per portare il bagaglio da e verso gli aere i. Poiché un nuovo sistema meccani zzato per il trasporto del bagaglio sarà installato tra 3 anni, tale motrice non sarà più necessaria dopo questa installazione. Tuttavia, anche se i costi di manutenzione e di funzionamento aumenteranno velocemente con l'e-
332
CAPITOLO 8
MODELLI DI OTIIMIZZAZIONE SU RETE
tà della motrice a causa del suo eccessivo sfruttamento, può risultare più economico sostituire la motrice dopo l o 2 anni. La seguente tabella indica il costo totale netto scontato associato con l'acquisto della motrice (prezzo d'acquisto meno lo sconto per la permuta, più i costi di manutenzione e di fun zionamento) alla fine del! 'anno i per darla in pemmta entro la fine del! 'anno j (ora è l'anno 0).
8.4-2. La Wirehouse Lumber Company presto comincerà a tagliare e trasportare tronchi d'albero da otto boschetti della zona. Di conseguenza, deve sviluppare un sistema di strade in terra battuta che renda ogni boschetto accessibile da ogni altro boschetto. La distanza (in miglia) fra ogni coppia di boschetti è la seguente: Distanza tra coppie di boschetti
i o l 2
l
2
3
$8000
$18000 $10000
$31 000 $21 000 $12000
l 2 3
Boschetto
6 7 8
Il problema è determinare quando (eventualmente) la motrice deve essere sostituita così da minimizzare il costo complessivo nei 3 anni (a) Formulare questo problema come un problema di cammino minimo. (b) Usare l'algoritmo descritto nel Paragrafo 8.3 per risolvere questo problema di cammino minimo. (c) Fonnulare e risolvere il problema con l'uso di Excel. 8.3-2.* Usare l' algoritmo descritto nel Paragrafo 8.3 per trovare il cammino minimo per ciascuna delle seguenti reti, in cui i valori accanto agli archi rappresentano le distanze fra nodi .
~
l
2
3
4
5
6
7
8
1.3 2.1 0.9 0.7 1.8 2.0 1.5
1.3 0.9 1.8 1.2 2.6 2.3 1.1
2.1 0.9 2.6 1.7 2.5 1.9 1.0
0.9 1.8 2.6 0. 7 1.6 1.5 0.9
0.7 1.2 1.7 0.7 0.9 1.1 0.8
1.8 2.6 2.5 1.6 0.9
2.0 2.3 1.9 1.5 1.1 0.6 0.5
1.5 1.1 1.0 0.9 0.8
-
0.6 1.0
l. O
0.5 -
Il management desidera detem1inare tra quali coppie di boschetti dovrebbero essere costruite le strade in modo da collegare tutti i boschetti minimizzando la lunghezza totale della strada costruita. (a) Formulare questo problema come un problema di minimo albero ricoprente. (b) Usare l'algoritmo descritto nel Paragrafo 8.4 per risolvere i! problema.
(a)
(Origine)
(Destinazione)
(b)
(Origine)
8.3-3. Fonnulare il problema di cammino minimo come problema di programmazione lineare. 8.4-1.* Riconsiderare le reti indicate nel Problema 8.3-2. Usare l'algoritmo descritto nel Paragrafo 8.4 per determinare il minimo albero ricoprente per ciascuna di queste reti .
(Destinazione)
8.5-1.* Per la rete mostrata di seguito, usare l'algoritmo di cammino aumentante descritto nel Paragrafo 8.5 per trovare il flu sso massimo dalla sorgente alla destinazione date le capacità individuali degli archi (riportate nella figura accanto a ogni arco).
PROBLEMI
tcerà a !aiella zona. ie in terra , altro bo:chetti è la
333
7
2 F------1 Source
F
A
4
:ti
---
6
7
8 --:.0 :.3 .9 .5 .1 1.6
1.5 1.1 1.0 0.9 0.8 1.0 0.5
1.5
li boschetlegare tutstrada ccr
8.5-2. Formulare il problema di massimo flu sso co me un problema di programmazione lineare .
8.6-1. Riconsiderare il problema di massimo flusso indicato nel problema 8 .5-4 . Fornmlare questo problema come un problema di flusso a costo minimo, co n l' aggiunta dell'arco A ~ F . Usare F = 20 .
8.5-3. Lo schema di seguito descrive un sistema di aquedotti che iniziano in prossimità di tre fiumi (nodi Rl , R2 e R3) e terminano in una importante città (nodo T) e in cui gli altri nodi sono punti di gi unzione nel s istema. Le tabelle riportate dopo lo schema mostrano la quantità massima di acqua al giorno che può essere pompata attraverso ciascuna condotta.
8.6-2. La Audiofile Company produce radio. Tuttavia, il management ha deciso di subappaltare la produzione degli altoparlanti necessari per le radio. Per fornire gli altoparlanti sono a disposizione tre vend itori . Il prezzo per ogni spedi zione di l 000 altoparlanti è indicato d i seguito nella tabella. Venditore
1 2 3
ninimo al-
Prezzo $22500 $22 700 $22 300
·isol vere il
no di camre il fl usso ~ ità indivilrco).
In più, ogni fomitore fa pagare un costo diverso per la spedizione. Ogni spedizione ha come destinazione uno dei due magazzini del! 'azienda. Per calcolare il costo di trasporto, ogni fornitore ha la propria formula basata su lla distanza in miglia dal magazzino. Queste formu le e le distanze in miglia sono indicati di seguito nella tabella.
Venditore A
R1 R2 R3
A
8
C
175 40 -
65 50 80
60 70
Da
A B
c
Spesa per trasporto
A D
E
60 70
45 55 70
T
F Da
45 90
D
E F
120 190 130
1 2 3
Venditore Si vuole determinare come massimizzare il flu sso di acqua a ll a c ittà.
(a) Formulare questo problema come problema di massimo flu sso iden tificando una sorgente, una destinazione e i nodi intermedi e di segnando la rete co mpl eta con le capacità di ogni arco . (b) Usare l'algori tmo di cammino aumentante descritto ne l Paragrafo 8.5 per risolvere questo problema. (c) Formulare e risolvere questo problema con l'ausilio di Ex ce!.
1 2 3
(a) Usare l'a lgoritmo di cammino aumentante descritto nel Paragrafo 8.5 per risolvere questo problema.
+ 40
Magazzino 1 1600 miglia 500 miglia 2000 miglia
Magazzino2 400 miglia 600 miglia 1000 mig lia
Ogni qual volta una delle due fabbriche dell'azienda necessita di un carico di a ltoparlanti da assemblare nelle radio, l' azienda assume una persona per portare il carico in uno dei magazzini. Il costo per la spedizione è indicato nella seguente colonna insieme al numero di spedizioni mensili necessarie in ogni fabbrica.
l
8.5-4. Considerare il problema di massimo flusso mostrato di seguito in cui la sorgente è il nodo A, la destinazione è il nodo F e le capacità dell'arco sono i valori indicati accanto a questi archi.
$300 $200 $500
Magazzino 1 Magazzino 2 Domanda mensile
Costo unitario di trasporto Fabbrica 1
Fabbrica 2
$200 $400
$700 $500
10
6
334
CAPITOLO 8
MODELLI DI OTTIMIZZAZIONE SU RETE
Ogni fornitore può fornire l'equivalente di IO spedizioni al mese. Tuttavia, a causa delle limitazioni di trasporto, ogni fornitore può inviare a ogni magazzino un massimo di 6 spedizioni al mese. Allo stesso modo, ogni magazzino può inviare a ogni fabbrica un massimo di 6 spedizioni al mese. Per ogni mese, il management vuole identificare quante spedizioni ordinare a ogni fornitore, quante di quelle spedizioni utilizzano ciascun magazzino e quindi quante spedizioni devono essere inviate da ogni magazzino a ogni fabbrica . L'obiettivo è minimizzare la somma dei costi d' acquisto (compreso il costo fisso di trasporto) e i costi di trasporto dai magazzini alle fabbriche. (a) Disegnare una rete che descriva la rete di approvvigionamento de li ' azienda. Identificare i nodi sorgente, i nodi intermedi e nodi destinazione in questa rete. (b) Formulare questo problema come un problema di flusso a costo minimo inserendo tutti i dati necessari in questa rete. Inoltre includere un nodo domanda fittizio che riceve (a costo zero) tutta la capacità inutilizzata dell ' approvviggionamento ai fornitori. (c) Formulare e risolvere il modello usando Excel. 8.7-1. Considerare il problema di flusso a costo minimo descritto di seguito, in cui i valori b; (flussi esterni) sono indicati accanto ai nodi, i valori ciJ (costi per unità di flusso) sono riportati accanto agli archi e i valori uiJ (capacità dell'arco) sono riportati tra i nodi C eD. (a) Ottenere una BFS iniziale determinando un albero ricoprente ammissibile con gli archi di base A ---> B, C ---> E, D ---> E e C ---> A (un arco nella direzione opposta), in cui uno degli archi non di base (C ---> B) è anche un arco nella direzione opposta. Disegnare la rete risultante (compreso b;, ciJ e uiJ) con la stessa disposizione (tranne l'uso di linee tratteggiate per disegnare gli archi non di base), e aggiungere i flussi tra parentesi accanto agli archi di base. [20] ....-.....
[O]
6
c 3
5 ~ 3/
_./
[IO]
Capacità degli archi
/
A
"-....
--c:
Arco di base
Flusso
Arco non di base
A -> 0 8 _, c C -> E 0 -> E
20 10 10 20
A -> 8 A -> C 8 _, D
A partire da questa BFS, eseguire un'iterazione del metodo del simplesso su rete. Identificare l'arco entrante, l' arco di base uscente e la BFS successiva. 8.7-2. Riconsiderare il problema di flusso a costo minimo formulato nel Problema 8.6-1. (a) Ottenere una BFS iniziale a partire da un albero ricoprente ammissibile con gli archi di base A --+ B , A ---> C, A ---> F , B ---> D e E ---> F, in cui due degli archi non di base (E ---> C e F ---> D) sono archi nella direzione opposta. (b) Usare il metodo del simplesso su rete per risolvere questo problema. 8.7-3. Considerare il problema di trasporto per la Metro Water District presentato nella Tabella 8.12. (a) Formulare questo problema come un problema di flusso a costo minimo. (Suggerimento: Gli archi in cui il flusso è proibito devono essere eliminati). (b) A partire dalla BFS iniziale data nella Tabella 8.19, usare il metodo del simplesso su rete per risolvere questo problema. Confrontare la sequenza di BFS ottenuta con la sequenza ottenuta con il metodo del simplesso per problemi di trasporto nella Tabella 8.23 . 8.8-1. La Tinker Construction Company è pronta a cominciare un progetto che deve essere completato in 12 mesi. Questo progetto ha quattro attività (A, B, C, D) con la rete indicata di seguito. Il responsabile del progetto, ha concluso che non può rispettare la scadenza eseguendo tutte queste attività nel modo normale. Di conseguenza, ha deciso di usare il metodo CPM per determinare il modo più economico di eseguire il progetto per rispettare la scadenza. Egli ha raccolto i seguenti dati per le quattro attività.
[-30] A
c
B
D
IO
B--e: 25 altri archi: oo
~ [O]
(b) Usare il test di ottimalità per verificare che questa BFS iniziale è ottima e che ci sono soluzioni ottime multiple. Applicare un' iterazione del metodo del simplesso su rete per trovare un'altra BFS ottima e usare questi risultati per identificare le altre soluzioni ottime che non sono BFS. (c) Considerare ora la seguente BFS.
Attività A 8
c D
Tempo normale
Tempo di crash
Costo normale
Costo di crash
8 mesi 9 mesi 6 mesi 7 mesi
5 mesi 7 mesi 4 mesi 4 mesi
$25 000 $20000 $16 000 $27000
$40000 $30000 $24000 $45 000
Usare l'analisi dei costi marginali per risolvere il problema.
335
PROBLEMI
li base
)
todo del di base
8.8-2.* Good Homes Construction Company è in procinto di iniziare la costruzione di una nuova grande sede. Il presidente dell'azienda, sta formulando il programma per questo progetto e ha identificato le cinque attività principali (indicate con A, B, . . . , E) che dovranno essere eseguite secondo la rete rappresentata di seguito. Inoltre sono disponibili i seguenti dati relativi al punto normale e al punto crash per ciascuna di queste attività.
Attività
imo for-
A 8
coprente A ----> F, c->C e e questo
·o Water flusso a flusso è . usare il roblema. 1enza ot:rasporto
minciare :sto proji seguiò rispet, normaer deter:r rispetIattro at-
~
o sto crash 0000 0000 4000 5000
la.
c D
E
Tempo normale
Tempo di crash
Costo normale
Costo di crash
3 settimane 4 settimane 5 settimane 3 settimane 4 settimane
2 settimane 3 settimane 2 settimane l settimana 2 settimane
$54000 $62000 $66000 $40000 $75000
$60000 $65 000 $70000 $43000 $80000
Questi costi riflettono i costi diretti sostenuti dall'azienda per il materiale, l' apparecchiatura e la direzione del lavoro richiesto per eseguire le attività. In più, l'azienda sostiene i costi indiretti del progetto come la supervisione e altri costi fissi abituali, le spese per gl i interessi sul capitale vincolato e così via. Si stima che questi costi indiretti ammontano a 5000 dollari per settimana. Si desidera minimizzare il costo generale del progetto. Di conseguenza, per risparmiare su alcuni di questi costi indiretti, si deve ridun·e la durata del progetto se il costo di crash per settimana risparmiata è minore di 5000 dollari. (a) Usare l'analisi marginale per determinare per quali attività convengono tempi più brevi in modo da minimizzare il costo generale del progetto. Nell ' ambito di questo programma, qual è la durata e il costo di ogni attività? Quanto si è risparmiato? (b) Usare la programmazione lineare per risolvere questo problema diminuendo la durata del progetto di l settimana alla volta.
8.8-3. Il 21st Century Studios è in procinto di iniziare la produzione del suo più importante (e costoso) film dell'anno. Il produttore del film, Dusty Hoffmer, ha deciso di usare PERT/CPM per contribuire a progettare e controllare questo progetto. Egli ha identificato le otto attività principali (indicate con A, B, . .. , H) richieste per produrre il film . Le relazioni di precedenza sono indicate nel progetto di rete di seguito. Dusty è venuto a conoscenza che anche un altro studio lancerà un film durante la metà dell'estate prossima, proprio quando il suo film dovrebbe essere lanciato. Questo sincronismo potrebbe essere molto sfavorevole. Di conseguenza, si è deciso che la produzione del suo film deve essere accelerata per proiettarlo all'inizio dell'estate (fra 15 settimane) così da posizionarlo come il film dell'anno. Anche se questo richiederà un sostanziale aumento del già enorme budget, il management ritiene che questa operazione permetterà di avere molti più incassi sia a livello nazionale che intemazionale. Dusty vuole detenninare il modo meno costoso per rispettare la nuova scadenza di 15 settimane. Usando il metodo CPM per il tradeoff tra costi e tempi, ha ottenuto i seguenti dati.
Attività A 8
c D
E F G H --------------
Costo di crash
Tempo normale
Tempo di crash
Costo normale
5 settimane 3 settimane 4 settimane 6 settimane 5 settimane 7 settimane 9 settimane 8 settimane
3 settimane 2 settimane 2 settimane 3 settimane 4 settimane 4 settimane 5 settimane 6 settimane
$20 milioni $1 O milioni $16 milioni $25 milioni $22 milioni $30 milioni $25 milioni $30 milioni
$30 $20 $24 $43 $30 $48 $45 $44
milioni milioni milioni milioni milioni milioni milioni milioni
- - --------------------
(a) Formulare un modello di programmazione lineare per questo problema.
La programmazione intera
N
el Capitolo 3 sono stati presentati esempi delle tante e svariate applicazioni della programmazione lineare. Tuttavia, una limitazione chiave è l'assunzione di divisibilità (si faccia riferimento al Paragrafo 3.3), la quale richiede che siano ammissibili valori non interi per le variabili decisionali. In molti problemi pratici, le variabili decisionali in realtà hanno senso solo se assumono valori interi. Per esempio, spesso è necessario assegnare persone, macchine e veicoli alle varie attività in quantità intere. Se pretendere valori interi è il solo modo in cui un problema si allontana da una formulazione di programmazione lineare, allora si tratta di un problema di programmazione lineare intera (PL (l 'aggettivo lineare normalmente viene omesso, tranne quando si vuole chiarire che non si tratta della più esoterica programmazione intera non lineare, il cui studio che va oltre gli obiettivi fissati per questo libro). Il modello matematico per la programmazione intera è il modello di programmazione lineare (si faccia riferimento al Paragrafo 3.2) con la restrizione aggiuntiva che le variabili devono assumere soltanto valori interi. Se si richiede che solo alcune delle variabili devono assumere valori interi (e quindi l' ipotesi di divisibilità si applica alle restanti variabili,. ci si riferirà a questo modello come a un modello di programmazione (lineare) intera mista (PLM). Per distinguere il caso della programmazione intera da quello misto, ci si riferisce alla prima come programmazione intera pura . Per esempio, il problema della Wyndor Glass Co. discusso nel Paragrafo 3.1 sarebbe stato in realtà un problema di PLI se le due variabili decisionali x 1 e x 2 rappresentassero il numero totale di unità da produrre per i prodotti l e 2, rispettivamente, anziché i tassi di produzione. Poiché non è possibile costruire i prodotti (porte di vetro e comici in legno per finestre) solo in parte, le variabili x 1 e x 2 possono assumere solo valori interi. Un altro esempio di problema di PLI è dato dall ' applicazione per il Dipartimento di Polizia di San Francisco che è stato presentato nel Paragrafo 2.1. Questo studio ha portato allo sviluppo di un sistema per la schedulazione e l'impiego ottimo di polizia per il pattugliamento. Il nuovo sistema ha portato a un risparmio annuo di 11 milioni di dollari, un aumento annuo di 3 milioni di dollari nelle entrate per le multe e un 20% di miglioramento nei tempi di risposta. Le principali variabili decisionali nel modello matematico erano il numero di poliziotti da assegnare a ogni turno . Poiché questo valore deve essere intero, le variabili decisionali potevano assumere solo valori interi. Vi sono numerose applicazioni di programmazione intera di questo tipo, che sono un'estensione diretta della programmazione lineare e in cui l' ipotesi di divisibilità è eliminata. Un'altra area di applicazione, forse anche di maggiore importanza è relativa a decisioni di tipo "sì-no". In tali decisioni, le due sole scelte possibili sono sì e no. Per esempio, è opportuno intraprendere uno specifico progetto? È opportuno intraprendere un determinato investimento? È opportuno piazzare una fabbrica in una determinata locazione?
9.1
337
UN PROBLEMA DI PROGRAMMAZIONE BINARIA
Con solo due scelte, è possibile rappresentare tali decisioni con variabi li che possono assumere solo due valori e cioè O e l. Quindi, !a)-esima decisione sì-no può essere rappresentata da una variabile x1 tale che
l,
Xj
oni della di divisibili valosionali in mo asse!re valori grammava (PLI) che non ' va oltre mazione variabili ·ili devoariabili), !!era mi;i si rife-
sarebbe assero il i tassi di in legno
1ento di ta portaer il patollari, un oramenerano il ntero, le
he sono è elimi1 a deci:r esem! un delzione?
= { O,
se la decisione è sì se la decisione è no
Tali variabili sono dette variabili binarie (o variabili O- l). Conseguentemente, i problemi di PLI che trattano solo variabili binarie sono indicati come problemi di programmazione binaria (o problemi di programmazione intera 0-1). Nel Paragrafo 9.1 verrà presentata una versione semplificata di un tipico problema di programmazione con variabili binarie e nel Paragrafo 9.2 viene proposta una carrellata di altre applicazioni. Ulteriori possibilità di formulazioni con variabili binarie vengono discusse nel Paragrafo 9.3 , mentre nel Paragrafo 9.4 viene presentata una serie di esempi. Nei Paragrafi 9.5 -9.8 vengono affrontati una serie di metodologie per risolvere i problemi di PLI, compresi i problemi con variabili binarie e di programmazione intera mista. Il capitolo si conclude con il Paragrafo 9.9 , nel quale viene introdotto un interessante sviluppo recente (programmazione con vincoli) estremamente promettente e in grado di espandere enormemente la nostra abilità nel formulare e risolvere problemi di programmazione intera.
UN PRIMO ESEMPIO DI PROBLEMA DI PROGRAMMAZIONE BINARIA L'azienda manufatturiera MANUF ACTORING Co. sta considerando la possibi lità di espandersi costruendo una nuova fabbrica o a Los Angeles o a San Francisco, o forse in entrambe le città. Inoltre, vi è anche la possibilità di costruire un nuovo magazzino, ma la , scelta della località è ristretta a una delle città dove verrà costmita la fabbrica. Il valore attuale netto (il profitto totale scontato nel tempo) di ciascuna di queste alternative è riportato nella quarta colonna della Tabella 9.1. Nell'ultima colonna è riportato invece il capitale necessario (già incluso nel valore attuale netto) per i rispettivi investimenti; il capitale totale disponibile è l O milioni di dollari. L ' obiettivo è determinare la combinazione ammissibile tra le varie alternative che massimizzi il valore attuale netto.
Il modello con variabili binarie Sebbene questo problema sia abbastanza piccolo da poter essere risolto velocemente per ispezione (costruire fabbriche in entrambe le città, ma senza magazzino), a scopo illustrativo viene comunque formulato il modello di PLI. Tutte le variabili decisionali sono variabili binarie del tipo Xj
Sia
l, = { O,
u=
se la decisione è sì se la decisione è no
l , 2, 3, 4)
Z = valore attuale netto di queste decisioni
TABELLA 9.1 Dati per l'esempio California Manufacturing Co. Decisione numero 1 2 3 4
Domanda sì-no Costruire Costruire Costruire Costruire
la fabbrica a Los Angeles? la fabbrica a San Francisco? il magazzino a Los Angeles? il magazzino a San Francisco?
Variabile decisionale X] X2 X3
x.
Valore netto corrente 9 5 6 4
milioni milioni milioni milioni
di di di di
dollari dollari dollari dollari
Capitale richiesto 6 milion i di dollari 3 milion i di dollari 5 milioni di dollari 2 mi lion i di dollari
338
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
Se viene deciso di costruire una certa fabbrica (cosicché la corrispondente variabile decisionale assume valore l), il valore attuale netto stimato di questo investimento è riportato nella quarta colonna della Tabella 9 .l. Se l'investimento non viene fatto (e quindi la variabile decisionale corrispondente ha valore 0), il valore attuale netto è O. Pertanto (in milioni di dollari)
Z = 9x 1 + Sx2
+ 6x3 + 4x4
Nell'ultima colonna della Tabella 9.1 si riporta l' ammontare di capitale speso nelle quattro fabbriche e questo non può superare l O milioni di dollari. Di conseguenza, un vincolo nel modello è il seguente
6x1
+ 3x2 + Sx3 + 2x4 ::::;
lO
Poiché le ultime due decisioni rappresentano alternative mutuamente esclusive (l'azienda vuole al più un nuovo magazzino), è necessario includere il vincolo X3
+ X4
::::;
l
Inoltre, le decisioni 3 e 4 sono decisioni contingenti, poiché dipendono dalle decisioni l e 2, rispettivamente (l'azienda prende in considerazione la possibilità di costruire un magazzino in una città solo se diviene anche sede di una fabbrica) . Pertanto, nel caso della decisione 3, occorre che x 3 = O se x 1 =O. Questa limitazione su x 3 (quando x 1 = O) può essere ottenuta aggiungendo il vincolo X 3::::; X J
Allo stesso modo, la condizione x 4 = O se x 2 = O può essere ottenuta aggiungendo il vincolo X 4 ::::; X2
Quindi, dopo aver riscritto questi due vincoli e portando a sinistra tutte le variabili, il modello completo di programmazione lineare con variabili binarie è massnmzzare
Z = 9x 1 + 5x 2
+ 6x 3 + 4x4
soggetto ai vincoli
+ 3xz + Sx3 + 2x4 ::::; x 3 + x 4 ::::; - xl + x3 ::::; 6x1
Xz
+
lO l
O
0 l ?_ 0
X4 ::::;
Xj::::; Xj
dove x1 variabile intera,
per) = l , 2, 3, 4
In maniera equivalente, le ultime tre righe di questo modello possono essere sostituite dal vincolo x1 variabile binaria, per j = l, 2, 3, 4 Fatta eccezione per la sua dimensione, questo esempio è tipico di molte applicazioni reali di programmazione intera laddove le decisioni basilari da prendere sono del tipo sì-no. Come accade per la seconda coppia di decisioni in questo esempio, spesso i gruppi di decisioni sì-no sono gruppi di alternative mutuamente esclusive tali che solo una decisione nel gruppo può essere sì. Ogni gruppo richiede l'aggiunta del vincolo che la somma deJie corrispondenti variabili binarie deve essere uguale a l (se esattamente una decisione nel gruppo deve essere sì) o minore o uguale a l (se al più una decisione nel gruppo deve essere sì). Occasionalmente, decisioni di tipo sì-no sono decisioni contingenti, cioè, decisioni che dipendono da decisioni precedenti. Una decisione dipende da un'altra decisione
9.2
·iabile deci' è riportato 1di la variao (in milio-
PROGRAMMAZIONE LINEARE CON VARIABILI BINARIE
339
se per essa sono ammessi valori sì solo nel caso in cui l'altra è sì. Questa situazione si verifica quando la decisione contingente implica un'azione successiva che sarebbe irrilevante, o addirittura impossibile se l'altra decisione fosse no. La forma che i vincoli risultanti assumono è quella illustrata dal terzo e quarto vincolo nell'esempio precedente.
Opzioni software per la risoluzione di questi modelli nelle quatun vincolo
Molti software per la risoluzione di problemi di ottimizzazione (compreso Excel) includono algoritmi per la risoluzione di modelli di programmazione lineare con variabili binarie (pura o mista), come pure algoritmi per la risoluzione di problemi di programmazione intera (pura o mista). Poiché le variabili binarie sono notevolmente più semplici da trattare rispetto alle variabili intere, algoritmi per problemi con variabili binarie sono generalmente in grado di risolvere problemi di dimensioni maggiori dei problemi che possono essere risolti con algoritmi per problemi di PLI. Usando il Risolutore di Excel, la procedura è essenzialmente la stessa di quella impiegata per la programmazione lineare. L'unica differenza è quando, per aggiungere nuovi vincoli, si preme il bottone "Aggiungi " nella fmestra di dialogo del Risolutore. Oltre ai vincoli relativi alla programmazione lineare, occorre aggiungere vincoli di interezza. Nel caso di variabili intere che non siano binarie, ciò viene fatto tramite la finestra di dialogo Aggiungi Vincolo scegliendo il campo di esistenza delle variabili che devono assumere solo valori interi sul lato sinistro e quindi scegliendo " int" dal menu di pop-up. Nel caso di variabili binarie, invece, si sceglierà "bin" dallo stesso menu. L'ultima parte del capitolo verterà sugli algoritmi di PLI. Nel Paragrafo 9.6 verrà usato l'esempio proposto prima allo scopo di illustrare l'applicazione dell'algoritmo per problemi di programmazione lineare con variabili binarie.
· (l'azienda
:cisioni l e un magazdella decil può esse-
ndo il vin-
>ili, il mo-
9.2
ALCUNE APPLICAZIONI DI PROGRAMMAZIONE LINEARE CON VARIABILI BINARIE Come nell'esempio della California Manufacturing Co., i manager devono spesso fronteggiare decisioni di tipo sì-no. Pertanto, la programmazione binaria è ampiamente usata per gestire queste decisioni. Verrarmo adesso introdotti vari tipi di problemi che richiedono deci sioni di tipo sì-no e verranno citati alcuni esempi di applicazioni reali in cui viene usata la programmazione binaria per risolvere questi problemi. Ognuna delle applicazioni seguenti è descritta in maniera completa nella rivista Interfaces e verrà citato il volume specifico nel quale l'articolo appare, nel caso il lettore voglia approfondire l'argomento.
tituite dal
ioni reali po sì-no. >pi di de~ decisio1 somma iecisione Jpo deve oè, decilecisione
Analisi di investimenti La programmazione lineare a volte viene usata per prendere decisioni di budget riguardanti l'entità di denaro da investire in vari progetti. Tuttavia, come dimostra l'esempio della California Manufacturing Co., alcune decisioni di budget non riguardano direttamente la quantità di capitale da investire, ma piuttosto, se investire. In maniera specifica, le quattro decisioni nell'esempio precedentemente presentato riguardavano l'opportunità di investire una somma di capitale per costruire un certo tipo di servizio (fabbrica o magazzino) in un ben determinato posto (Los Angeles o San Francisco). Il management spesso deve decidere circa la possibilità di effettuare investimenti fissi (per i quali l 'ammontare del capitale necessario è fissato in partenza). Si deve acquisire il controllo di una società? Si deve acquistare una certa quantità di materia prima? Si deve avviare una nuova linea di produzione per realizzare in proprio un certo articolo anziché continuare a richiederlo a un fornitore?
340
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
In generale, le decisioni relative a investimenti sono decisioni di tipo sì-no del tipo seguente. Decisione di tipo sì-o-no: Si deve fare un certo investimento? corrispondente variabile decisionale {
~
se sì se no
Il numero di luglio-agosto del 1990 di Inteifaces riporta come la Turkish Petroleum Refineries Corporation abbia usato la programmazione binaria per analizzare investimenti di capitali di decine di milioni di dollari per aumentare la capacità di raffinazione e di risparmio di energia. Un esempio molto differente che comunque ricade in questa categoria viene descritto nel numero di gennaio-febbraio del 1997 di Inte1faces. Un importante studio di ROè stato condotto per conto del South Ajì-ican National Def ense Force allo scopo di migliorare le sue capacità utilizzando un budget limitato. In questo caso, gli " investimenti " considerati erano i costi di acquisizione e le spese necessarie per acquisire specifiche capacità militari. Il modello fonnulato era un modello di programmazione lineare misto con variabili binarie con l'obiettivo di massimizzare l'efficienza globale ottenuta, nel rispetto dei vincoli di budget. Il modello aveva più di 16000 variabili (incluse 256 variabili binarie) e più di 5000 vincoli funzionali . Il risultato dell ' ottimizzazione permise un risparmio di più eli 1.1 miliardi di dollari all'anno, come pure importanti benefici non monetari. L'impatto eli questo studio fu tale da procurargli il prestigioso primo premio' nel 1996 nel Franz Edelman A wards per Management Science Achievement. Un ' applicazione militare in qualche modo simile, è stata sviluppata per la United State Air Force Command che spende molti miliardi di dollari ogni anno per acquistare e sviluppare veicoli di lancio e sistemi spaziali. Nel numero di luglio-agosto del 2003 di Intelfaces viene descritto come in questo contesto venga usata la programmazione intera allo scopo di ottimizzare gli investimenti a lungo termine su un orizzonte temporale di 24 anni. Il numero di gennaio-febbraio del 1999 di Intelfaces presenta un' altra applicazione eli un modello di programmazione binaria mista per l' analisi di investimenti finaziari. Questo particolare modello è stato usato dall ' azienda Grantham, Mayo, Van Otterloo and Company per costruire diversi portfolio per più di 8 miliardi di dollari. In ogni caso, venva creato un portfolio che fosse simile (in termini di settore e di esposizione al rischio) a uno specifico portfolio predefinito, ma con un numero molto più piccolo e gestibile eli azioni distinte. Una variabile binaria era utilizzata per rappresentare la decisione, di tipo sì-no, riguardante l'opportunità o meno di includere una certa azione nel portfolio e una variabile continua, distinta dalla precedente, rappresentava la quantità da includere. Dato un certo portfolio da ribilanciare, è opportuno ridurre i costi di transazione minimizzando il numero di operazioni necessarie per ottenere il portfolio finale e quindi bisogna introdurre anche variabili binarie per rappresentare decisioni di tipo sì-no relative all'opportunità di eseguire delle transazioni che modifichino l'ammontare delle azioni che vengono mantenute nel portfolio. L' aver incluso queste variabili nel modello ha ridotto il costo annuale degli scambi da gestire di almeno 4 milioni di dollari.
Selezione di siti In una economia globale, le multiazioni aprono nuovi impianti in varie parti del mondo sfruttando il costo inferiore della manodopera. Prima di scegliere un sito per un nuovo impianto, potrebbe essere necessario analizzare e comparare molte località candidate (l'esempio della California Manufacturing Co. presenta appena due possibili località potenziali per ognuno dei due tipi di servizi). Ogni località potenziale implica una decisione sì-no del tipo seguente. Decisione di tipo sì-no: una specifica località deve essere scelta per un detenninato nuovo servizio?
9.2
del tipo secorrispondente variabile decisionale
t Petroleum nvestimemi ione e di ri1e descritto liRO è stamigliorare i" consideapacità mim variabili :to dei vinlarie) e più o di più di 'impatto di nel Franz
ited State e e svilupInte!faces allo scopo mi. ~azione di ri. Questo ~rloo and ;aso, venrischio) a ~stibile di te, di tipo ,Jio e una ere. Dato nizzando ~na intro'opportuvengono costo an-
l mondo imandidate alità poecisione
lOVO
341
PROGRAMMAZIONE LINEARE CON VARIABILI BINARIE
= { ~ se sì
se no
In molti casi, l'obiettivo è selezionare le località che minimizzano il costo totale dei nuovi servizi garantendo quanto richiesto. Come descritto nell 'articolo di gennaio-febbraio del1990 di Intelfaces, AT&T ha usato un modello di programmazione binaria per aiutare dozzine di loro utenti a scegliere le località per i loro centri di televendita. Il modello minimizza il costo del personale, delle comunicazioni e dell 'acquisto degli immobili fornendo comunque il livello di copertura desiderato dai vari centri. In un solo anno (1998), questo approccio fece sì che 46 clienti AT &T fossero in grado di portare avanti le loro scelte di tipo sì-no, in maniera rapida e confidenziale, commissionando ogni anno 375 milioni di dollari in servizi di rete e 31 milioni di dollari in acquisto di apparecchiature da AT&T. Verrà descritto adesso un tipo di problema, importante per le multinazionali, in cui la scelta del sito gioca un ruolo chiave.
Progettazione di una rete di produzione e distribuzione I produttori oggi subiscono una fortissima pressione competitiva per posizionare i loro prodotti sui mercati molto più velocemente, come pure per ridurre i costi di produzione e di distribuzione. Pertanto, ogni azienda che distribuisce i propri prodotti su una vasta area geografica (o in tutto il mondo) deve porre continuamente attenzione nella progettazione della rete di produzione e di distribuzione. Questa progettazione richiede di affrontare le seguenti decisioni di tipo sì-no : uno uno uno uno
specifico impianto deve rimanere aperto? specifico sito deve essere selezionato per un nuovo impianto? specifico centro di distribuzione deve rimanere aperto? specifico sito deve essere selezionato come nuovo centro di distribuzione?
Se ogni area di mercato deve essere servita da un singolo centro di distribuzione, allora si ha anche un altro tipo di decisione di tipo sì-no per ogni combinazione area di mercatocentro di distribuzione: uno specifico centro di distribuzione deve servire una specifica area di mercato? Per ognuna di queste decisioni di tipo sì-no, corrispondente variabile decisionale = {
~
se sì se no
La Ault Foods Limited (numero luglio-agosto 1994 di lnterfaces) ha usato questo approccio per progettare la sua produzione e distribuzione. La gestione ha considerato l O si ti per gli impianti, 13 siti per i centri di distribuzione e 48 aree di mercato. Questa applicazione di programmazione binaria ha avuto il merito di aver fatto risparmiare a!l'azienda 200 000 dollari ogni anno. La Digita! Equipment Corporation (numero di gennaio-febbraio 1995 di lnterfaces) fornisce un altro esempio di applicazione di questo tipo. Questa grossa multinazionale serviva 250 000 aree, con più della metà dei suoi introiti annuali (pari a 14 miliardi di dollari) provenienti da 81 Paesi fuori dagli Stati Uniti. L'obiettivo era ristrutturare l'intera catena globale di fornitura della multinazionale, cioè fornitori , impianti, centri di distribuzione, siti potenziali e aree di mercato nel mondo. La ristrutturazione ha permesso una riduzione annuale di 500 milioni di dollari nella produzione e di 300 milioni di dollari nella logistica, come pure 400 milioni di dollari in capitale.
342
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
Spedizioni di beni Una volta che la rete di produzione e di distribuzione è stata progettata e resa operativa, occorre effettuare decisioni giornaliere relativamente a come introdurre le merci. Alcune di queste decisioni sono ancora una volta decisioni di tipo sì-no. Per esempio, si supponga che vengano usati autoveicoli per trasportare le merci e che ogni autoveicolo tipicamente effettui consegne a diversi clienti in ogni suo viaggio. Diventa dunque necessario selezionare una rotta (sequenza di clienti) per ogni autoveicolo, e per ogni possibile rotta è necessaria la seguente decisione di tipo sì-no. Uno specifico percorso deve essere selezionato per uno degli autoveicoli? corrispondente variabile decisionale = {
~ se sì
se no
L'obiettivo è selezionare i percorsi che minimizzano il costo totale per effettuare le consegne. Si possono considerare anche ulteriori elementi. Per esempio, se sono disponibili autoveicoli di diversa dimensione, ciascuna rotta possibile potrebbe includere sia un certo percorso che una certa dimensione dell 'autoveicolo. Allo stesso modo, se il tempo è un fattore importante, può anche essere specificato un intervallo di tempo per la partenza come parte della decisione sì-no. Con entrambi questi fattori, ogni decisione di tipo sì-no ha la forma mostrata successivamente. I seguenti elementi devono essere scelti simultaneamente per una consegna: l. un specifico percorso 2. una certa dimensione per l'autoveicolo e 3. un defmito istante di tempo per la partenza?
corrispondente variabile decisionale
= { ~ se sì
se no
Per esempio, la Roebuck and Company (numero di gennaio-febbraio 1999 di Interfaces ) è riuscita a ottenere un risparmio annuale di oltre 42 milioni di dollari usando sistemi di instradamento e di schedulazione dei veicoli basati sulla programmazione binaria e impiegando un sistema informativo geografico per effettuare le proprie consegne a domicilio in maniera più efficiente.
Schedulazione di attività correlate Ogni persona nella propria vita quotidiana pianifica varie attività correlate, anche se si tratta solo di determinare quando svolgere i propri compiti a casa. Allo stesso modo, i manager devono pianificare (schedulare) vari tipi di attività correlate fra loro. Quando si deve iniziare la produzione per i nuovi ordini che sono arrivati? Quando si deve cominciare a commercializzare i nuovi prodotti? Quando si devono effettuare investimenti di capitale per incrementare la capacità produttiva? Per ognuna di queste attività, la decisione sull'istante di inizio può essere espressa in termini di una serie di decisioni di tipo sì-no, con una di queste decisioni per ogni possibile periodo di tempo in cui iniziare, come mostrato di seguito. Una certa attività deve iniziare in uno specifico istante? corrispondente variabile decisionale
= { ~ se sì
se no
Poiché una certa attività può cominciare in un solo momento, si è qui in presenza di un gruppo di alternative mutuamente esclusive, cosicché la variabile decisionale può assumere valore l per uno solo degli istanti di inizio possibili. Per esempio, si consideri la seguente applicazione (numero di gennaio-febbraio 1995 di Interfaces). La Cina era in procinto di effettuare investimenti per 240 miliardi di dollari su un orizzonte temporale di 15 anni, allo scopo di far fronte ai bisogni energetici della
9.2
operativa. :i. Alcune erci e che ' viaggio. tutoveico-
343
PROGRAMMAZIONE LINEARE CON VARIABILI BINARIE
sua economia in continuo sviluppo. Le carenze di carbone e di elettricità avevano reso necessario Io sviluppo di nuove infrastrutture per il trasporto di carbone e la trasmissione dell'elettricità, come pure la costruzione di nuove dighe e impianti per la generazione di energia termica, idrica e nucleare. Pertanto, la Commissione di Pianificazione dello Stato Cinese e la World Bank collaborarono per lo sviluppo di un enorme modello di programmazione binaria che guidasse le decisioni relative ai progetti da approvare e alla data di partenza degli stessi su un periodo di pianificazione di 15 anni, allo scopo di minimizzare i costi totali. È stato stimato che questa applicazione di Ricerca Operatoria sta facendo risparmiare alla Cina circa 6.4 miliardi di dollari in I 5 anni.
Schedulazione di disinvestimenti di risorse le consebili auto;erto perun fattolza come -no ha la
Quest'altra applicazione in realtà è una variante della precedente (schedulazione di attività correlate). Tuttavia, invece che riguardare attività come la costruzione di edifici o investimenti in impianti idroelettrici, le attività in questione riguardano la vendita (disinvestimento) di risorse allo scopo di generare introiti. Le risorse possono essere di tipo finanziario , come azioni e obbligazioni, o fisiche, come per esempio proprietà immobili. Dato un gruppo di risorse, il problema è detenninare quando vendere ogni risorsa al fine di massimizzare il valore netto attualizzato del profitto totale da queste risorse, generando il flusso di introiti desiderato . In questo caso, ogni decisione di tipo sì-no ha la seguente fonna . Una certa risorsa deve essere venduta in un dato momento? corrispondente variabile decisionale = {
tetjàces) istemi di e impielicilio in
~
se sì se no
Un' azienda che ha dovuto affrontare questo tipo di decisioni è la Homart Development Company (numero di gennaio-febbraio 1987 di InteJfaces), che risulta essere tra i più grandi operatori immobiliari di aree cornn1erciali degli Stati Uniti. Una delle sue più importanti questioni str~tegiche è la schedulazione della vendita di grandi magazzini e uffici. Nel caso esaminato, più di l 00 risorse sono state prese in considerazione per la vendita per i successivi lO anni. L'applicazione della programmazione binaria a supporto di queste decisioni ha incrementato di 40 milioni di dollari il profitto a seguito del piano di vendita.
Applicazioni per compagnie aeree he se si lo, i malo si deninciare capitale ressa m possibi-
:a di un
tssumeo 1995 dollari ;i della
L' industria aerea fa ampiamente uso della Ricerca Operativa per tutte le sue operazioni e molte centinaia di professionisti della RO operano in questa area. Le principali compagnie aeree tipicamente hanno un gruppo che lavora su queste applicazioni. Inoltre, ci sono numerosi gruppi di consulenti che concentrano la loro attività su problemi di compagnie di trasporto, e in particolare di trasporto aereo. Citiamo qui due applicazioni che fanno uso specifico della programmazione binaria. La prima è il problema di assegnazione dei voli. Dati differenti tipi di velivoli, il problema è quello di assegnare un tipo specifico di velivolo a ciascuna tratta prevista nella schedulazione, in maniera tale che la schedulazione ottenuta massimizzi il profitto totale. Il compromesso di base è che, se la compagnia aerea impiega un velivolo troppo piccolo per una certa tratta, potenziali clienti potrebbero rimanere fuori da questi voli per problemi di capicità, mentre se venisse impiegato un velivolo troppo grande, ci sarebbe uno spreco per la compagnia per i posti vuoti. Per ogni combinazione velivolo-tratta da coprire, si hanno le seguenti decisioni di tipo sì-no. Uno specifico tipo di velivolo deve essere impiegato in una data tratta? corrispondente variabile decisionale = {
~
se sì se no
344
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
La Delta Air Lines (numero di gennaio-febbraio 1994 di lnterfaces) effettua oltre 2500 voli negli Stati Uniti ogni giorno, impiegando circa 450 velivoli di l O differenti tipi. La compagnia utilizza un modello di programmazione intera (con circa 40 000 vincoli funzionali, 20 000 variabili binarie e 40 000 variabili intere) per risolvere il problema di assegnazione dei voli ogni volta che si presenta la necessità di un cambio. Questa applicazione permette a Delta Air Lines un risparmio di circa l 00 milioni di dollari per anno. Un ' applicazione molto simile è il problema dell 'assegnazione dell 'equipaggio. Qui, invece di assegnare un tipo di velivolo a una tratta, bisogna assegnare sequenze di tratte a equipaggi costituiti da piloti e assistenti di volo. Quindi, per ogni possibile sequenza di tratte che parte da una base e ritorna alla stessa base, devono essere prese le seguenti decisioni di tipo sì-no. Una sequenza di tratte deve essere assegnata a un dato equipaggio? corrispondente variabile decisionale = {
~
se sì se no
L'obiettivo è minimizzare il costo totale dovuto alle spese per gli equipaggi assegnati a ogni tratta nella schedulazione. American Airlines (numero di luglio-agosto 1989 e gennaio-febbraio 1991 di lnterfaces) è riuscita a risparmiare più di 20 milioni di dollari usando metodi di programmazione binaria per risolvere il problema della schedulazione degli equipaggi su base mensile. Questo approccio è correntemente e ampiamente usato anche da compagnie aeree le cui sedi si trovano fuori dagli Stati Uniti . Per esempio, Air New Zealand (numero di gennaio-febbraio 2001 di lnterfaces) ha risparmiato 6.7 milioni di dollari ogni anno usando metodi di programmazione binaria per ottimizzare la schedulazione degli equipaggi. Un esempio completo di formulazione di questo tipo verrà presentato alla fine del Paragrafo 9.4. Un problema supplementare per le compagnie aeree è che la schedulazione degli equipaggi deve essere velocemente aggiornata quando si verificano cancellazioni o ritardi di voli a causa del tempo inclemente, di guasti meccanici ai velivoli , o indisponibilità di personale dell ' equipaggio. Come descritto nei Paragrafo 2.2 e 2.5 (e anche nel numero di gennaio-febbraio 2003 di lnterfaces ), Continental Airlines ha risparmiato 40 milioni di dollari nel primo anno usando un elaborato sistema a supporto delle decisioni basato sulla programmazione binaria per ottimizzare la riassegnazione degli equipaggi ai voli quando si verificano queste emergenze (Continental Airlines ha vinto nel 2002 il primo premio del Franz Edelman Awards per Management Science Achievement grazie a questa applicazione innovativa). Molti dei problemi che devono affrontare le compagie aeree sorgono anche in altre aree dell'industria di trasporto. Alcune delle applicazioni della RO sono state estese a queste aree, incluso il trasporto ferroviario. Per esempio, il primo premio del Franz Edelman Award per Management Science Achievement è stato assegnato a due applicazioni legate al trasporto ferroviario (si vedano i numeri gennaio-febbraio 1998 e gennaio-febbraio 2004 di Interfaces).
tg_ 9.3
USO INNOVATIVO DELLE VARIABILI BINARIE NELLA FORMULAZIONE DI MODELLI Nel paragrafo precedente sono stati presentati alcuni esempi in cui le decisioni del problema sono di tipo sì-no, per cui si è reso necessario l'uso di variabili binarie al fine di rappresentare queste decisioni. In questo paragrafo verranno presentati ulteriori casi in cui le variabili binarie si rivelano molto utili . In particolare, si vedrà come queste variabili permettono di affrontare problemi la cui formulazione naturale è alquanto contorta e riformularlo come un problema di PLI pura o mista.
9.3
)!tre 2500 rti tipi. La ncoli funla di assepplicaziolO . ~gio.
Qui, di tratte a :ruenza di .enti deci-
VARIABILI BINARIE NELLA FORMULAZIONE DI MODELLI
345
Questo tipo di situazioni nascono quando la formulazione originaria del problema si adatta o a un modello di PLI o a un modello di programmazione lineare ad eccezione di alcune condizioni che coinvolgono relazioni di tipo combinatorio nel modello. Esprimendo queste relazioni in termini di domande a cui bisogna dare risposta sì-no, possono essere aggiunte variabili binarie ausiliarie al modello per rappresentare queste decisioni e si ottiene un problema di PLI mista (o un problema di PLI pura se si richiede che tutte le variabili originarie abbiano valori interi). Alcuni casi che possono essere trattati con questo approccio sono discussi successivamente, dove le variabili x1 denotano le variabili originali del problema (e che possono essere continue o intere) mentre le variabili binarie ausiliarie che vengono introdotte nella formulazione sono indicate conyi.
Vincoli di tipo "either-or"
.segnati a 1991 di programsu base :~gnie aeumero di .no usanpaggi. fine del
:gli equiritardi di à di perrmero di 1ilioni di ato sulla quando • premio ta appliin altre e a que-
~delman
1i legate febbraio
probledi rapo cui le >ili periformu-
Si consideri il caso importante in cui, dati due vincoli, solo uno di questi deve essere soddisfatto (e non è necessario che sia soddisfatto anche l'altro). Per esempio, ci può essere una scelta riguardante quale tra due risorse usare per un ben determinato obiettivo, di modo che è necessario che sia soddisfatto solo uno dei due vincoli sulla disponibilità delle risorse stesse. Per illustrare l'approccio in tali situazioni, si supponga che uno dei requisiti nel problema sia che oppure
3xr + 2x 2 ::::; 18 xi+ 4xz::::; 16
cioè, almeno una di queste due disuguaglianze deve essere vera ma non necessariamente entrambe. Questa condizione deve essere riformulata per adattarsi al formato della programmazione lineare, dove tutti i vincoli specificati devono essere soddisfatti. Sia M un numero positivo molto grande. Allora 3xi +2x2::::; 18
e
x, +4xz::::; 16+M
oppure 3xi
+ 2x2
::::; 18 +M
e Xi+ 4x2::::; 16
Il punto chiave è che aggiungendo M a destra di tali vincoli, l'effetto è di eliminarli, perché sono soddisfatti automaticamente da qualsiasi soluzione che soddisfi gli altri vincoli del problema (Questa formulazione assume che l'insieme delle soluzioni ammissibili per il problema sia un insieme limitato e che M sia sufficientemente grande da non eliminare nessuna soluzione ammissibile). Questa formulazione è equivalente all'insieme di vincoli 3xi + 2x2 ::::; 18 + My Xi +4x2::::; 16 +M( l-y)
Poiché la variabile ausiliaria y può assumere solo valore O oppure l, questa formulazione garantisce che uno dei vincoli originali deve valere mentre l'altro viene, in effetti, eliminato. Questo nuovo insieme di vincoli è quindi aggiunto agli altri vincoli nel modello per ottenere un problema di PLI pura o mista (a seconda che le variabili x1 siano variabili intere o continue). Questo approccio è direttamente correlato alla possibilità di esprimere relazioni combinatorie in termini di domande a cui bisogna dare risposta con un sì o un no. In questo caso si considera la combinazione degli altri vincoli del modello con il primo dei due vincoli alternativi e poi con il secondo . Quale di queste due combinazioni di vincoli è migliore (in termini di valori della funzione obiettivo)? Per rifonnulare questa domanda in termini sì-no, ci si può porre due domande complementari:
346
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
l. il vincolo x 1 + 4x 2 :"::: 16 deve essere selezionato come il vincolo da soddisfare? 2. il vincolo 3x 1 + 2x 2 :"::: 18 deve essere selezionato come il vincolo da soddisfare? Poiché si deve rispondere affermativamente esattamente a una di queste domande, le quantità y e l - y , rispettivamente, rappresentano queste decisioni di tipo sì-no. Quindi. y = l se la risposta alla prima domanda è sì (e no per la seconda), mentre l - y = l (e cioè y =O) se la risposta alla seconda domanda è sì (e no alla prima). Poiché y + l - y = l (solo un sì) non è necessario aggiungere un altro vincolo per forzare che queste due decisioni siano mutuamente esclusive (se, invece, fossero state usate variabili binarie distinte y 1 e y 2 per rappresentare queste decisioni di tipo sì-no, allora sarebbe stata necessario il vincolo aggiuntivo y 1 + y 2 = l per renderle mutuamente esclusive). Di seguito viene data una rappresentazione formale di tale approccio per il caso più generale.
Devono essere soddisfatti K degli N vincoli presenti Si consideri il caso di un modello che include un insieme di N vincoli tali che solo K di questi devono essere soddisfatti (si assuma che K < N). Parte del processo di ottimizzazione è scegliere la combinazione dei K vincoli che petmette alla funzione obiettivo di raggiungere i migliori valori possibili. I rimanenti N - K vincoli non scelti sono, in effetti. eliminati dal problema, sebbene soluzioni ammissibili potrebbero soddisfame ancora qualcuno. Questo caso è una generalizzazione del caso precedente, per il quale K = l e N = 2. Si denotino gli N possibili vincoli con Ji (xl , x2, ... , xli):"::: d1 h (xJ, x2, ... , x,, ) :"::: d2 / N(Xi , X2, · · · , Xn ) :"::: dN
Quindi, applicando la stessa logica del caso precedente, una formulazione equivalente del requisito che K di questi vincoli devono essere soddisfatti è
Ji (x1 , x2,
... , x~~ ):"::: d1
+ My 1
h (xJ , x2 , ... , x~~ ):"::: d2 +My2
f,v(xi , x2, ... , x~~) :"::: dN + MyN N
'LY; = N - K i= l
e
y ; variabile binaria,
per i = l , 2, ... , N
dove M è un numero positivo molto grande. Per ciascuna variabile binaria y ; (i = l , 2, ... , N), si noti che y; = O fa sì che My; = O, il che riduce il nuovo vincolo a quello originario. D'altro canto, y; = l rende (d; + My;) talmente grande che (assumendo nuovamente una regione ammissibile limitata) il nuovo vincolo è automaticamente soddisfatto da qualunque soluzione che soddisfi gli altri nuovi vincoli, cosa che ha l'effetto di eliminare il vincolo originario i. Pertanto, poiché i vincoli sulle variabili y ; garantiscono che K di queste variabili saranno uguali a O e quelle rimanenti saranno uguali a l , K dei vincoli originarie rimarranno inalterati e gli altri (N - K) vincoli originari verranno, in effetti eliminati. La scelta di quali K vincoli devono essere mantenuti, è demandata all'algoritmo risolutivo stesso.
9.3
e? tre? nande, le ). Quindi,
347
VARIABILI BINARIE NELLA FORMULAZIONE DI MODELLI
Funzioni con N possibili valori Si consideri la situazione in cui una data funzione assuma uno fra N possibili valori. Si denoti questo vincolo con
o dz, ... , o
f (xt , Xz, ... ,xn) = dt
dN
- y = l (e
). Poiché 1rzare che ~ variabili ~bbe stata ;o più ge-
Un caso particolare si ha quando questa funzione è Il
j (x1, Xz, . . . , Xn) =L aJXJ }= l
come nel termine a sinistra in un vincolo della programmazione lineare. Un altro caso speciale è quando f (x 1, x 2, ... , x,,) = x1 cosicché il vincolo implica che x1 deve assumere uno fra N valori dati. La fonnulazione equivalente come problema di PLI per questo vincolo è la seguente: N
solo K di nizzazio·o di ragin effetti, e ancora
f (xJ , Xz, . . . , Xn) =L diYi i= l N
Yi = l
L i= l
dove
e N = 2.
lente del
Yi variabile binaria,
Questo nuovo insieme di vincoli rimpiazza il vincolo precedente nella fonnulazione del problema generale fornendo una fonnulazione equivalente poiché esattamente una variabile binaria Yi deve essere uguale a l e le altre devono essere uguali a O e quindi solo un valore di viene scelto come valore della fun zione. In questo caso, ci sono N domande del tipo sì-no da porsi: il valore scelto è di (i = l , 2, ... , N)? Poiché le variabili Yi rappresentano le decisioni di tipo sì-no, il secondo vincolo rende mutuamente esclusive le alternative. Per illustrare quando si verifica questo caso, si riconsideri il problema della Wyndor Glass Co. presentato nel Paragrafo 3.2. Nell ' Impianto 3, non sono impiegate diciotto ore di tempo di produzione che quindi sono disponibili per i due nuovi prodotti o per eventuali prodotti futuri che saranno presto messi in produzione. Allo scopo di lasciare ogni capacità rimanente nei vari blocchi per tali prodotti futuri, il management vuole ora imporre la restrizione che il tempo di produzione usato dai due nuovi attuali prodotti sia 6, 12 oppure 18 ore settimanali. Pertanto, il terzo vincolo del modello originale (3 x 1 + 2x 2 s:; 18) ora diventa
3x 1 + 2x2 = 6
o
Nella notazione precedente, N= 3 con d 1 = 6, d2 vo requisito va formulato nel modo seguente:
' 2, ... '
.ginario. :nte una qual unl vincoeste vanane nnati. La ;olutivo
per i = l , 2, ... , N
12
o
18.
= 12 e d3 = 18. Di conseguenza, il nuo-
3x, + 2xz = 6y 1 + 12yz + l8y3 Yt
+ Y2 + Y3
= l
dove
Y t. Yz, Y3 sono variabili binarie. Il modello complessivo per questa nuova versione del problema consiste dunque del modello originario (si faccia riferimento al Paragrafo 3.1) più questo nuovo insieme di vincoli che sostituiscono il terzo vincolo originario.
348
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
Il problema del "fixed charge" È abbastanza comune imbattersi in spese fisse o costi di se tup quando si intraprende un 'attività. Per esempio un tale costo si presenta quando si inizia un processo produttivo per un lotto di un particolare prodotto e i macchinari richiesti per la produzione devono essere riorganizzati per avviare la produzione. In questi casi, il costo totale dell ' attività è dato dalla somma di un costo variabile legato allivello dell'attività e il costo necessario per avviare l 'attività stessa. Spesso il costo variabile risulta proporzionale al livello dell'attività stessa. Se questo è il caso, il costo totale dell 'attività (sia questa l'attività}) può essere rappresentato da una funzione della forma
jj(x1)
= { ~ + CjXj
se se
x1 > O x1 =O
dove x1 denota il livello dell ' attività} (e quindi x1 2 0), /s denota il costo di setup e c1 il costo per ogni unità incrementale. Tranne che per il costo di setup /s. la struttura dei costi suggerirebbe la possibilità di una formulazione come problema di programmazione lineare per determinare i livelli ottimi delle attività. Fortunatamente, nonostante la presenza del termine k1, possiamo ancora usare un modello di PLI mista. Per formulare il modello, si supponga che ci siano n attività, ciascuna con un costo di setup (con k1 2 O in ogni caso e k1 > O per qualche} = l , 2, ... , n) e che il problema sia quello di minimizzare
Z =
Ji (xl)+ .fì(x2) + ... + f,,(xn)
soggetto a vincoli lineari. Per trasformare questo problema in un problema di PLI mista, si possono formulare n domande alle quali rispondere sì-no ; e precisamente: per ogni}= l , 2, ... , n, si dovrà intraprendere l' attività} (x1 > O)? Ognuna di queste decisioni di tipo sì-no viene rappresentata da una variabile binaria ausiliaria y1, tale che Il
Z=
2:)
CjXj
+ /sYJ)
}= l
dove YJ = {
~
se x1 > O se x1 = O
Pertanto, le variabili y1 possono essere considerate come decisioni contingenti simili (ma non identiche) a quelle considerate nel Paragrafo 9 .l . Sia M un intero positivo grande che superi il massimo valore possibile di ciascun x1 U = l , 2, ... , n). Allora, i vincoli
x1 :s; My1
perj = l , 2, ... ,n
assicureranno che y1 = l invece che O ogni volta che x1 > O. L' unica difficoltà che rimane è che questi vincoli lasciano y1 libera di assumere valori l o O quando x1 = O. Fortunatamente, questo problema si risolve automaticamente grazie alla natura della funzione obiettivo. Il caso in cui k1 = O può essere ignorato poiché in questa ipotesi la variabile y1 può essere eliminata dalla formulazione. Pertanto, si consideri il caso k1 > O. Quando x1 = O, cosicché il vincolo permette di scegliere sia y1 = O che y1 = l , la variabile y1 = O dovrà fornire un valore di Z più piccolo che nel caso y1 = l. Quindi, poiché la funzione obiettivo da minimizzare è Z, un algoritmo che produce una soluzione ottima sceglierà sempre y1 = O quando x1 =O. Riassumendo, la formulazione come problema di PLI mista del problema del "fixed charge" è Il
minimizzare
Z=
2:) }= l
Cj Xj
+ /sYJ)
9.3
VARIABILI BINARIE NELLA FORMULAZIONE DI MODELLI
349
soggetto ai vincoli originali e in aggiunta 1de un'at.vo per un no essere ità è dato io per av:ll'attività uò essere
~ c1
il codei costi 'le linea:enza del costo di Jema sia
Xj - Myj:::;
o
dove per j = l, 2, ... , n
y1 variabile binaria,
Se la variabile x1 può solo assumere valori interi allora si è in presenza di un problema di PLipura. Per illustrare tale approccio, si consideri nuovamente il problema dell'inquinamento dell'aria della Nori & Leets Co. descritto nel Paragrafo 3.4. Il primo dei metodi considerati - incrementare l' altezza delle ciminiere - in realtà introduce una spesa fissa considerevole in aggiunta al costo variabile che si può assumere proporzionale all ' entità dell'incremento di altezza. Dopo aver convertito i costi in costi annuali equivalenti (come si è fatto nella formulazione), tale spesa fissa è pari a 2 milioni di dollari per ogni bruciatore e fornace aperta, laddove i costi variabili sono quelli identificati nella Tabella 3.14. Pertanto, con riferimento alla notazione precedente, k 1 = 2, k2 = 2, c 1 = 8 e c 2 = IO, e la funzione obiettivo è espressa in unità di milioni di dollari. Poiché gli altri metodi di riduzione non implicano spese fisse, k1 = O per} = 3, 4, 5, 6. Di conseguenza, la nuova formulazione come problema di PLI mista per questo problema è minimizzare
Z = 8x 1 + l Oxz
+ 7x3 + 6x4 + ll xs + 9x6 + 2y t + 2yz
soggetto ai vincoli fomiti nel Paragrafo 3.4 e in più 1u!are n ovrà in1presen-
Xt
o :::; o
- My t :::;
X2- My2
dove Y t. Y2 sono varabili binarie.
Rappresentazione binaria di variabili intere generiche
ili (ma tde che
Si supponga di avere un problema di PLI pura dove la maggior parte delle variabili sono variabili binarie, ma la presenza di alcune variabili intere generiche impedisce di risolvere il problema con uno degli efficienti algoritmi per la programmazione binaria che sono a disposizione. Un modo elegante di aggirare questa difficoltà è quello di usare la rappresentazione binaria per ognuna di queste variabili intere. Specificatamente, se i limiti per una variabile intera x sono
o :::;x:::; u
rimane =
O.
la funvaria-
,> O.
riabile la funta sce-
'fixed
e se N è quel!' intero tale che 2N :S
U< 2N+ I
allora Ja rappresentazione binaria di x è N X=
L iy; i=O
dove le variabili Y; sono variabili binarie (aggiuntive). Sostituendo questa rappresentazione binaria al posto di ognuna delle variabili intere (avendo cura di selezionare un insieme differente di variabili aggiuntive binarie per ciascuna di esse), l'intero problema si riduce a un modello di programmazione binaria. Per esempio, si supponga che un problema di PLI abbia solo due variabili intere generi-
CAPITOLO 9
350
LA PROGRAMMAZIONE INTERA
che x i e x 2 e altre variabili binarie. Si supponga inoltre che il problema abbia vincoli di nonnegatività per entrambe le variabili xi e x 2 e che i vincoli funzionali includano XI
:<::;
5
2xi
+ 3xz::::;
30
Questi vincoli implicano che u = 5 per xi eu = lO per x 2 , quindi N = 2 per xi (poiché 2 2 ::::; 5 < 2 3 ) e N = 3 per x 2 (poiché 2 3 ::::; lO < 24 ) . Pertanto, le rappresentazioni binarie di queste variabili sono XI = Yo + 2yi + 4y z Xz = Y3
+ 2y4 + 4ys + 8y6
Dopo aver sostituito queste espressioni al posto delle rispettive variabili in tutti i vincoli funzionali e nella funzione obiettivo, i due vincoli funzionali precedenti diventano
+ 2y i + 4yz ::::; 5 2yo + 4y i + 8yz + 3y3 + 6y4 + 12ys + 24y6 ::::; 30 Yo
Si osservi che ogni valore possibile di x i corrisponde a uno dei valori possibili del vettore (y 0, y ~, y 2) e lo stesso accade per x 2 e (y3, y 4, y 5 , YÙ Per esempio, xi = 3 corrisponde a CYo, y~, Yz ) = (l , l , O) e Xz = 5 corrisponde a (y3, y4, Ys, Y6) = (1 , O, l, 0). Per un problema di PLI in cui tutte le variabili sono variabili intere generiche (limitate), è possibile usare la stessa tecnica per trasfonnare il problema in un problema di programmazione binaria ma ciò non è consigliabile in molti casi a causa dell'aumento vertiginoso del numero di variabili che ne consegue. L ' applicazione di un buon algoritmo di PLI al modello originale è, in generale, più efficiente che applicare un buon algoritmo per la programmazione binaria al nuovo problema. In generale, per tutte le possibili fonnulazioni con variabili ausiliarie discusse in questo paragrafo, occorre procedere con la stessa prudenza. Questo approccio a volte richiede l'aggiunta di un numero relativamente alto di tali variabili, cosa che potrebbe rendere il modello computazionalmente inammissibile (nel Paragrafo 9.5 si parlerà della dimensione dei problemi di PLI che possono essere effettivamente risolti) .
9.4
ALCUNE FORMULAZIONI DI PROBLEMI DI PLI In questo paragrafo vengono presentati alcuni esempi che illustrano una varietà di tecniche di fonnulazione con l'uso di variabili binarie, comprese quelle discusse nei paragrafi precedenti. Per chiarezza, sono stati considerati esempi di piccole dimensioni. Nelle applicazioni reali , queste fonnulazioni costituirebbero soltanto una piccola parte di un modello molto più grande. Esempio l
Variabili decisionali continue
La divisione Sviluppo e Ricerca della Good Products Company sta esaminando tre nuovi possibili prodotti. Tuttavia, per evitare un ' eccessiva diversificazione della linea dei prodotti dell ' azienda, il management ha imposto la seguente limitazione.
Requisito l: dei tre nuovi possibili prodotti , al massimo due devono essere messi in produzione. Ciascuno di questi può essere prodotto in uno dei due stabilimenti dell ' azienda. A questo proposito, per ragioni amministrative, il management ha imposto una seconda limitazione.
Requisito 2: solo uno dei due stabilimenti deve essere scelto per produrre i nuovi prodotti.
9.4
vincoli di 10
x 1 (poiché mi binarie
351
ALCUNE FORMULAZIONI DI PROBLEMI DI PLI
Il costo di produzione per ogni unità di prodotto è essenzialmente Io stesso nei due stabilimenti. Tuttavia, il tempo necessario per la produzione di una unità di prodotto è diverso nei due stabilimenti. Questi dati , insieme ad altre importanti informazioni, sono riportati nella Tabella 9.2, compreso le previsioni sul numero di unità di ogni prodotto che possono essere vendute settimanalmente, qualora fosse prodotto. L'obiettivo è scegliere i prodotti, lo stabilimento e i tassi di produzione in modo da massimizzare il profitto totale. Tabella 9.2 Dati per l'Esempio 1 (Problema Good Product Co.) Tempo di produzione per ogni unità prodotta Prodotto l
Prodotto 2
Prodotto 3
Tempo di produzione disponibile per settimana
Stabilimento l Stabilimento 2
3 ore 4 ore
4 ore 6 ore
2 ore 2 ore
30 ore 40 ore
Profitto unitario
5
7
3
Migliaia di dol lari
Vendite potenziali
7
5
9
Unità per settimana
i i vincoli 10
lei vettore isponde a generiche Jblema di 'aumento :~!go ritmo ~lgoritm o
in questo : richiede ·endere il limensio-
Per certi versi, questo problema assomiglia a un comune problema di mix ottimo di produzione come l'esempio Wyndor Glass Co. descritto nel Paragrafo 3.1. Infatti, se il problema venisse modificato eliminando i due vincoli e richiedendo che ogni unità di prodotto usi le ore di produzione indicate in Tabella 9.2 in entrambi gli stabilimenti (cosicché i due stabilimenti possono eseguire le operazioni differenti richieste per i prodotti) esso diventerebbe proprio un problema standard di m ix ottimo di produzione. In particolare, se si indicano con x 1, x2 , x 3 i tassi di produzione dei rispettivi prodotti, il modello è massimizzare
Z
= Sx 1 + 7x2 + 3x3
soggetto ai vincoli
3xl 4xl
+ 4xz + 2x3 :=:; 30 + 6xz + 2x3 :=:; 40
XI
:::::
X3 :::::
di tecniparagrafi lle applimodello
7
< 5
xz
9
e x1
2: O,
xz 2: O,
x3 2: O
Per il problema in esame, tuttavia, la limitazione l rende necessaria l'aggiunta al modello del vincolo: il numero di variabili decisionali strettamente positivi (x l> x 2 , x 3) deve essere :=:; 2.
re nuovi dei pro-
:ssi in A quelimita-
Questo vincolo non è espresso nel formato della programmazione intera o lineare e così il quesito fondamentale è come convertirlo in modo da potere usare un opportuno algoritmo per risolvere il modello generale. Se le variabili decisionali fossero variabili binarie, allora il vincolo potrebbe essere espresso come x 1 + x 2 + x 3 :=:; 2. Tuttavia, con variabili decisionali continue, è necessario un approccio più complicato che comporta l' introduzione di variabili binarie ausiliarie. Il requisito 2 rende necessaria la sostituzione dei primi due vincoli funzionali (3x 1 + 4x 2 + 2x 3 :=:; 30 e 4x 1 + 6x2 + 2x 3 :=:; 40) con il vincolo
3xl + 4x z oppure
UOVi
4xi
+ 2x3 :=:;
+ 6x2 + 2x3
30
:=:; 40
dove la scelta di quale vincolo mantenere corrisponde alla scelta di quale stabilimento sa-
352
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
rà usato per produrre i nuovi prodotti. Nel paragrafo precedente è stato discusso come l 'uno o l' altro vincolo può essere convertito con l' aiuto di una variabile binaria ausiliaria.
Formulazione con variabili binarie ausiliarie. ciamo tre variabili binarie ausiliarie (y" y 2 , y 3 ) con YJ
Relativamente al requisito, introdu-
se x1 > O (il prodotto j = { ~ se x1 = O (il prodotto j
è prodotto) non è prodotto)
per j = l , 2, 3. Nel modello, dopo aver introdotto M (un numero positivo estremamente grande), vengono aggiunti i vincoli
XJ :=; My l X2 :::; My2 X3 ::; My3 Y 1 + Y2 + Y3 :::; 2 y1 variabile binaria,
per) = l , 2, 3
Il vincolo di tipo either-or e i vincoli di nonnegatività determinano una regione ammissibile limitata per le variabili decisionali (x1 :::; M in questa regione). Di conseguenza, il vincolo x1 :::; My1, permette qualsiasi valore di x1 nella regione ammissibile quando y1 = l, mentre y1 = O forza x1 = O (al contrario, x1 > O forza y1 = l , mentre x1 = O consente l'uno o l' altro valore di yj). Di conseguenza, quando il quarto vincolo obbliga a scegliere al massimo due delle variabili y1 uguali a l , questo comporta di scegliere al massimo due dei nuovi prodotti come quelli che possono essere effettivamente messi in produzione. Per il requisito 2, può essere introdotta un'altra variabile binaria ausiliaria y 4 con
Y4
= {~
se 4x 1 + 6x 2 + 2x3 :::; 40 (si sceglie lo stabilimento 2) se 3x 1 + 4x 2 + 2x 3 :::; 30 (si sceglie lo stabilimento l)
Come discusso nel Paragrafo 9.3 , questo è garantito mediante i vincoli,
3x l + 4x2 + 2x3 :::; 30 4x 1 + 6x2 + 2x3 :::; 40 Y4 variabile binaria.
+ My4 +M (l
- Y4)
Di conseguenza, il modello completo è massimizzare
Z
= Sx 1 + 7x2 + 3x3,
soggetto ai vincoli
XJ :::; 7 X2 :::; 5 X3 :::; 9 X1 - My 1 :::; 0
o X3- My3:::; o
X2 - My2:::;
Y1 + Y2 + Y3 :::; 2 3x l + 4x2 + 2x3 - My4 :::; 30 4x l + 6x2 e
XJ ~ O,
+ 2x3 + My 4
X2 ~ O, y1 variabile binaria,
:::;
40 +M
X3 ~ 0 per) = l , 2, 3, 4
Questo è un modello di PLI mista, con tre variabili (le varai bili x) a cui non è richiesto di assumere valori interi e quattro variabili binarie, e così un algoritmo per la PLI mista può
9.4
so come l'uusiliaria. ito, introdu-
tremamente
ammissibi:a, il vinco= l , mennte l'uno o ·e al massile dei nuocon
ALCUNE FORMULAZIONI DI PROBLEMI DI Pll
353
essere usato per risolverlo. Utilizzando per M un valore numerico grande), 1 e risolvendo il problema si ottiene che la soluzione ottima è y 1 = l, y 2 =O, y 3 = l, y 4 = l, x 1 = 5.5, :X 2 =O e x 3 = 9; cioè, viene scelto di produrre i prodotti l e 3, lo stabilimento 2 e tassi di produzione di 5.5 unità per settimana per il prodotto l e 9 unità per settimana per il prodotto 3. Il profitto totale risultante è 54 500 dollari per settimana.
Esempio 2
Violazione dell'assunzione di proporzionalità
La SUPERSUDS CORPORATION sta sviluppando i propri programmi di vendita pet i nuovi prodotti del prossimo anno. Per tre di questi prodotti, è stato deciso di comprare cÌhque spot televisivi sulle reti nazionali. Il problema su cui verrà focalizzata l'attenzione è come assegnare i cinque spot a questi tre prodotti, con un massimo di tre spot (e un minimo di zero) per ogni prodotto. La Tabella 9.3 mostra l'effetto di assegnare zero, uno, due o tre spot a ogni prodotto. Questo effetto è misurato in termini di profitto (in milioni di dollari) ottenuto dalle vendite aggiuntive che deriverebbero dagli spot, considerando anche il costo per produrre l'annuncio pubblicitario e l'acquisto degli spot. L'obiettivo è assegnare i cinque spot ai prodotti in modo da massimizzare il profitto totale. • Tabella 9.3 Dati per l'Esempio 2 (Problema Supersuds Corp.) Profitto Numero di spot televisivi
Prodotto 1
2
3
o
o
l
l
o o
- l
2 3
3 3
2 3
2 4
o
Questo problema può essere risolto facilmente tramite ispezione (la soluzione ottima è assegnare due spot al prodotto l , nessuno spot al prodotto 2 e tre spot al prodotto 3). Tuttavia, a fini illustrativi, verranno mostrate due differenti formulazioni con variabili intere. Una simile formulazione è necessaria se questo problema dovesse fare parte di un più grande modello di PLI relativo all'allocazione di risorse alle attività di vendita per i nuovi prodotti di tutta la società.
Una formulazione con variabili binarie ausiliarie. Una formulazione naturale è porre x 1, x 2 , x 3 come il numero di spot televisivi assegnati ai rispettivi prodotti. Il contributo di ogni variabile xJ alla funzione obiettivo è dato dalla corrispondente colonna nella Tabella 9.3. Tuttavia, ciascuna di queste colonne viola l' ipotesi di proporzionalità descritto nel Paragrafo 3.3 . Di conseguenza, non si può scrivere una funzione obiettivo lineare in termini di queste variabili decisionali intere. Introducendo una variabile binaria ausiliaria YiJ per ogni valore intero positivo di x;= j = l, 2, 3, con se x;= j YiJ = altrimenti
{~
hiesto di tista può
1 In pratica, occorre porre una certa attenzione nella scelta del valore di M affinché sia sufficientemente grande da impedire la perdita di soluzioni ammissibili, e, contemporaneamente, sia il più piccolo possibile in modo da evitare un eccessivo allargamento della regione ammissibile per il rilassamento lineare (e problemi di instabilità numerica). Per questo esempio, un attenta analisi dei vincoli rivela che il minimo va lore ammissibile per M è
M = 9.
354
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
(per esempio, y 21 = O, y 22 = O e y 23 = l significa che x 2 = 3). Il modello lineare di programmazione binaria risultante è massimizzare
Z = Y11
+ 3Yt2 + 3y t3 + 2yn + 3yz3
- Y3 t
+ 2Y3 2 + 4y33
soggetto ai vincoli
+ Y 12 + Y l3 :S: + Y23 :S: Y3 l + Y32 + Y33 :S: Ytl
Ylt
l
Y2 1 + Y22
l
+ 2Yt2 + 3y l3 + Y21 + 2Y22 + 3y23 + Y3 t + 2y32 + 3y33
l
= 5
e ogni Yu variabile binaria. Si può notare che i primi tre vincoli funzionali garantiscono che a ogni x; sarà assegnato esattamente uno dei suoi possibili valori (in questo caso Yn + y;2 + y;3 = O corrisponde a x; = O, che non contribuisce affatto alla funzione obiettivo). L'ultimo vincolo funzional e garantisce che x 1 + x 2 + x 3 = 5. La funzione obiettivo lineare determina quindi il profitto totale secondo la Tabella 9.3. Risolvendo questo problema di programmazione binaria si ottiene la soluzione ottima Y11 = 0,
Y12 = l ,
Yl3 = O,
e quindi
X1 = 2
Y2 1 = O,
Yn = O,
Y23 = O,
e quindi
Xz = O
Y3 l = O,
Y32 = O,
Y33 = l ,
e quindi
X3 = 3.
Una differente formulazione con variabili binarie ausiliarie. le variabili binarie ausiliarie Yu abbiano il seguente significato: Yu =
{~
Si assume ora che
se x; ?:. i altrimenti.
La differenza è che YiJ = l se x; ?:.. j invece che x; = j. Di conseguenza, X; = 0
=}
Yn = O,
Y;z = O,
Y;3 = O,
X; = J
=}
Yn = l ,
Y;2 = O,
Yi3 = O,
X;= 2
=}
Yil = l ,
y;z = l ,
Y;3 = O,
X;= 3
=}
Yn = l ,
Yi2 = l,
Yi3 = l ,
e quindi X; = Yil
+ Y;z + Y;J
per i = l , 2, 3. Poiché Yi2 = l solo se Yil = l e y ;3 = l solo se y; 2 = l , questo può essere garantito aggiungendo i vincoli y ;z :S: Yn
e
Yi3 :S: Yi2,
per i = l , 2, 3
La nuova definizione di Yu cambia anche la funzione obiettivo, come illustrato in Figura 9.1 per la parte relativa al prodotto l. Dato che y 1h y 12, y 13 forniscono gli incrementi successivi (se ce ne sono) nel valore di x 1 (a partire dal valore 0), i coefficienti di y 1 h y 12 , y 13 sono ottenuti considerando i rispettivi incrementi nella colonna del prodotto l della Tabella 9.3 (l -O = l , 3- l = 2, 3- 3 = 0). Questi incrementi sono le pendenze in Figura 9.1, ottenendo così ly 11 + 2y 12 + Oy 13 per la parte della funzione obiettivo relativa al prodotto l. Si noti che l 'applicazione di questo metodo a tutti e tre i prodotti continua a condurre a una funzione obiettivo lineare. Il modello completo di programmazione binaria risultante è massnmzzare
Z = Y11
+ 2y 12 + 2y22 + Y23
- Y3l
+ 3y32 + 2y33
9.4
355
ALCUNE FORMULAZIONI DI PROBLEMI DI PLI
re di proProfitto risultante dal prodotto l = IY11 + 2YI2 + Oy13
4
Pendenza 3
tssegnato sponde a mzionale l profitto
=O
2
: ottima
:ora che
• Figura 9.1 Profitto che si ottiene dalle vendite aggiuntive in conseguenza di x1 spot televisivi; la pendenza fornisce il corrispondente coefficiente nella funzione obiettivo per la seconda form ulazione del problema dell'Esempio 2.
0----------~------~--------~-------------.
l
2
•l•
r--Y11
Y12
x,
3
•l•
Yl3
--1
soggetto ai vincoli Y12 - Y 11
ò essere
:S O
Yl3- Y 12
:S O
Y22 - Y21
:S O
Y23 - Yn
:S O
Y32 - Y31
:S O
Y33 - Y32
:SO
Y11
+ Y12 + Yl3 + Y21 + Yn + Y23 + Y31 + Y32 + Y33 = 5
e
Figura :nti sucYJz, Yl3 l della 1enze in relativa 1tinua a
ogni Yu variabile binaria.
1
La risoluzione di questo modello fornisce la soluzione ottima Y1 1 =
=l, Y22 = O,
l, Y2 1 = O,
Y12
= l,
Y32
Y3 1
=l,
=O, Y23 = O, Yl3
Y33
= l,
e quindi e quindi e quindi
=2 Xz =O X3 = 3. X1
La scelta di questo modello o di quello precedente dipende da considerazioni personali. Hanno lo stesso numero di variabili binarie (la considerazione principale nella determinazione dello sforzo computazionale per i problemi di programmazione binaria). Inoltre entrambi hanno una struttura speciale (vincoli per alternative mutuamente esclusive nel pri-
356
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
m o modello e vincoli per decisioni contingenti nel secondo) che permette di accelerare la procedura risolutiva. Il secondo modello ha più vincoli funzionali rispetto al primo.
Esempio 3
Problemi di Set Covering
La SOUTHWESTERN AIRWAYS deve assegnare gli equipaggi a tutti i suoi voli; a fini esemplificativi verrà qui considerato il problema dell'assegnazione dei tre equipaggi presenti a San Francisco per i voli elencati nella prima colonna della Tabella 9.4. Le altre 12 colonne mostrano le 12 possibili sequenze di voli per un qualsiasi equipaggio (i numeri in ogni colonna indicano l'ordine dei voli). Devono essere scelte esattamente tre sequenze (uno per equipaggio) in modo tale che ogni volo sia coperto (è ammesso avere più di un equipaggio su un volo e in questo caso i componenti del secondo equipaggio volano come passeggeri, ma i contratti collettivi richiedono che gli equipaggi supplementari siano pagati come se lavorassero). Il costo dell 'assegnazione dell'equipaggio a una sequenza particolare di voli è riportato (in migliaia di dollari) nell'ultima riga della tabella. L'obiettivo è minimizzare il costo complessivo delle tre assegnazioni dell 'equipaggio con una copertura completa di tutti i voli.
Formulazione con variabili binarie.
Con 12 possibili sequenze dei voli, si hanno 12
decisioni di tipo sì-no:
U=
la sequenza} deve essere assegnata a un equipaggio?
l, 2, ... , 12)
di conseguenza, vengono usate 12 variabili binarie per rappresentare le decisioni: Xj
= {
~
è assegnata a un equipaggio
se la sequenza j altrimenti.
La parte più interessante di questa formulazione è la natura di ogni vincolo che garantisce che un corrispondente volo sia coperto. Per esempio, si consideri l'ultimo volo in Tabella 9.4 [Da Seattle a Los Angeles (LA)]. Cinque sequenze (vale a dire, le sequenze 6, 9, 10, Il e 12) includono questo volo. Di conseguenza, almeno una di queste cinque sequenze deve essere scelta. Il vincolo risultante è
X6 .+xg +xio +xii +xi2:?: l Usando simili vincoli per gli altri lO voli, il modello completo di programmazione binaria è minimizzare
Z = 2xi + 3x2 + 4x3 + 6x4 + 7xs + 5x6 + 7x7 + 8xs + 9xg + 9XiQ + 8Xii + 9Xi2
::J Tabella 9.4 Dati per l'Esempio 3 (problema Southwestern Airways) Sequenza ammissibile di voli Volo 1. 2. 3. 4. S. 6. 7. 8. 9. 1 O. 11 .
Da San Francisco a Los Angeles Da San Francisco a Denver Da San Francisco a Seattle Da Los Angeles a Chicago Da Los Angeles a San Francisco Da Chicago a Denver Da Chicago a Seattle Da Denver a San Francisco Da Denver a Chicago Da Seattle a San Francisco Da Seattle a Los Angeles
Costo, $1000
l
1
2
3
4
5
1
6
7
8
1 2
2
2
10
1 3
2
3 3
3
4
4 2
3
4
6
7
1 3
5
5
3
3
2 4
2 4
12
4
5
2
3
11
4 3
2
2
9
5
7
8
2
5 2
4
4
2
9
9
8
9
9.4
celerare la no.
ALCUNE FORMULAZIONI DI PROBLEMI DI PLI
357
soggetto ai vincoli
x, +x4 + x 7 +
2: X2 + Xs + Xg + XII 2: X3 +x6 + x 9 + x1 2 2: X4 + x1 + x 9 + x10 + x1 2 2: x, + x6 + x10 + x11 2: X4 + Xs + X9 2: X7 +xs + x10 + x,, + x1 2 2: X2 + X4 + X5 + X9 2: Xs + Xg + X 11 2: X3 + x 7 + x s + x 12 2: X6 + x9 + x, O+ x11 + x12 2:
roli; a fini Jaggi pre,e altre 12 numeri in sequenze più di un olano cotari siano sequenza 1 tabella. 1ggio con
x10
l
(da San Francisco a Los Angeles)
l
(da San Francisco a Denver)
l
(da San Francisco a Seattle)
l
(da Los Angeles a Chicago)
l
(da Los Angeles a San Francisco)
l
(da Chicago a Denver)
l
(da Chicago a Seattle)
l
(da Denver a San Francisco)
l
(da Denver a Chicago)
l
(da Seattle a San Francisco)
l
(da Seattle a Los Angeles)
12
I>j=3
(assegnare tre sequenze agli equipaggi)
J= l
e x1 variabile binaria,
hanno 12
per j = l, 2, . . . , 12
Una soluzione ottima per questo modello di programmazione binaria è x3 = l x4 = l x 11 = l
arantisce 1 Tabella 6, 9, 10, ;equenze
Jinaria è
(assegnare la sequenza 3 a un equipaggio) (assegnare la sequenza 4 a un equipaggio) (assegnare la sequenza 11 a un equipaggio)
e tutti gli altri x1 = O, per un costo complessivo di 18 000 (un'altra soluzione ottima è l, x 5 l , x 12 l e tutti gli altri x1 0).
x1
=
=
=
=
Questo esempio illustra una più vasta classe di problemi denominati problemi di Set Covering.2 Qualsiasi problema di copertura dell' insieme può essere descritto in termini generali come potenziali attività (le sequenze di volo) e caratteristiche (i voli). Ogni attività possiede alcune delle caratteristiche ma non tutte. L'obiettivo è determinare la combinazione meno costosa delle attività che tutte insieme coprono (cover) ciascuna caratteristica almeno una volta. Così, ponendo S,. come l' insieme di tutte le attività che possiedono la caratteristica i, almeno una componente dell ' insieme S,. deve essere inclusa fra le attività scelte, ottenendo così il vincolo,
I>j 2: 1 }éS;
Il
12
per ciascuna caratteristica i . Per i problemi di set partitioning (simili al problemi di set covering) il vincolo è invece
LXJ=l }éS;
l
3 5
3
4
ed esattamente una componente di ogni insieme S,. deve essere incluso fra le attività scelte. Per l'esempio di pianificazione dell'equipaggio, ciò significa che ogni volo deve essere incluso esattamente una volta fra le sequenze di volo scelte, il che esclude la possibilità di avere equipaggi supplementari (come passeggeri) su un volo.
2 5 4
2
g
9
2 !n senso stretto, i problemi di set covering non includono altri vincoli fun zionali come accade nel precedente esempio dello scheduling di equipaggi. Inoltre, in alcuni casi si assume che i coefficienti nella funzione obiettivo (da minimizzare) siano tutti uguali a uno, ri servando la nomenclatura di Weighted Set Covering nel caso di costi più generali.
358
CAPITOLO 9
9.5
LA PROGRAMMAZIONE INTERA
LA RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE INTERA Può sembrare che i problemi di PLI siano relativamente semplici da risolvere. Dopo tutto. i problemi di programmazione lineare possono essere risolti in maniera estremamente efficiente e la sola differenza è che i problemi di PLI hanno meno soluzioni ammissibili da considerare. Infatti, i problemi di PLI pura con regione ammissibile limitata hanno un numero finito di soluzioni ammissibili. Sfortunatamente, ci sono due cose false in questo ragionamento. Una è che avere un numero finito di soluzioni ammissibili assicura che il problema è facilmente risolvibile. I numeri finiti possono essere immensamente grandi. Per esempio, si consideri il semplice caso di problemi di programmazione binaria; con n variabili: ci sono 2" soluzioni da considerare (alcune di queste soluzioni possono essere successivamente scartate perché violano i vincoli funzionali). Pertanto, ogni volta che n aumenta di l , il numero di soluzioni raddoppia. A questo schema ci si riferisce col nome di crescita esponenziale della difficoltà del problema. Con n = l O, ci sono più di l 000 soluzioni (l 024); con n = 20, ce ne sono più di un milione; con n = 30 più di un miliardo; e così via. Pertanto. persino i computer più veloci non sono in grado di risolvere questi problemi mediante una enumerazione esaustiva (cioè controllare ogni soluzione verificandone l'ammissibilità e, in caso affermativo, calcolando il valore della funzione obiettivo) per problemi di programmazione binaria aventi poco più di alcune dozzine di variabili, per non parlare di problemi generici di PLI con lo stesso numero di variabili intere. Algoritmi sofisticati, come quelli descritti nei paragrafi successivi, possono fare di meglio. Infatti, nel Paragrafo 9.8 verrà discusso come alcuni algoritmi hanno risolto con successo problemi di programmazione binaria di grandissime dimensioni. I migliori algoritmi oggi sono in grado di risolvere molti problemi di programmazione binaria pura con un migliaio di variabili e alcuni problemi di dimensione considerevolmente più grande (compresi problemi con decine o persino centinaia di migliaia di variabili). Ciononostante, a causa della crescita esponenziale, persino i migliori algoritmi non sono in grado di garantire la risoluzione di ogni possibile problema anche relativamente piccolo (meno di un centinaio di variabili binarie). A seconda delle loro caratteristiche, alcuni problemi di dimensioni relativamente piccole possono essere più difficili da risolvere di altri problemi di più grandi dimensioni. Quando si opera con variabili intere piuttosto che con variabili binarie, la dimensione dei problemi che possono essere risolti tende sostanzialmente a essere minore. Ci sono. però, delle eccezioni: CPLEX 8.0 ha risolto con successo un problema di PLI con 215 000 variabili intere, 75 000 vincoli funzionali e 6 000 000 di coefficienti non nulli dei vincoli. La seconda affermazione non vera è che la rimozione di alcune soluzioni ammissibili (quelle non intere) da un problema di programmazione lineare rende la risoluzione più semplice. Al contrario, è proprio perché ci sono tutte queste soluzioni ammissibili che si ha la garanzia (si faccia riferimento al Paragrafo 5 .l) che esiste un vertice ammissibile [e in corrispondenza una soluzione ammissibile di base] ottimo per l' intero problema. Questa garanzia è la chiave dell 'efficienza del metodo del simplesso. In conclusione, i problemi di programmazione lineare in generale sono molto più facili da risolvere dei problemi di PLI. Di conseguenza, i più famosi algoritmi per la programmazione intera inglobano il metodo del simplesso (o il metodo del simplesso duale) mettendo in relazione porzioni del problema di PLI con il corrispettivo problema di programmazione lineare (e cioè, lo stesso problema ma senza i vincoli di interezza). Per un qualsiasi problema di PLI, questo corrispondente problema di programmazione lineare è comunemente noto come il suo rilassamento lineare. Gli algoritmi presentati nei due paragrafi successivi mostrano come una sequenza di rilassamenti lineari per porzioni di problemi di PLI possa essere usata per risolvere il problema complessivo in maniera efficiente.
9.5
ERA Dopo tutto, namente efmissibili da mno un nu!le avere un isolvibile. I il semplice oluzioni da tate perché ~ro di solumziale del); con n = 1. Pertanto. ti mediante mmissibili,roblemi di 1on parlare ti sofisticaInfatti, nel o problemi ~gi sono in liaio di vaesi proble:ausa della ire la risoentinaio di ~nsioni rei più gran1menswne . Ci sono, 1 PLI con non nulli nmissibili tzione più bili che si 1issibile [e problema. :lusione, i ·e dei promo il merzioni del è, Io stesJesto cormo rilas~ome una 1ta per ri-
LA RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE INTERA
359
C'è un caso particolare in cui risolvere un problema di PLI non è più difficile che risolvere il suo rilassamento tramite il metodo del simplesso e cioè, quando la soluzione ottima al secondo problema soddisfa il vincolo di interezza del problema di PLI. Quando si verifica questo caso, la soluzione deve necessariamente essere ottima anche per il problema di PLI, poiché si tratta della soluzione migliore tra tutte le soluzioni ammissibili del problema rilassato, che include tutte le soluzioni ammissibili del problema originario di PLI. Pertanto, è comune che un algoritmo di PLI inizi applicando il metodo del simplesso al problema rilassato allo scopo di verificare se, per caso, si verifica la situazione appena descritta. Sebbene generalmente sia alquanto raro che la soluzione ottima del rilassamento sia intera, in realtà esistono tipi particolari di problemi di PLI per i quali è garantito che questo accada. Sono stati già trattati i casi più importanti nei Capitoli 7 e 8 e precisamente, il problema di flusso a costo minimo (con parametri interi) e i suoi casi particolari (compreso il problema di trasporto , il problema del! 'assegnamento, il problema di cammino minimo e il problema del massimo flusso). Per questi tipi di problemi si può avere tale garanzia perché essi posseggono una struttura speciale (per esempio, si veda la Tabella 7.6) che assicura che ogni soluzione di base ammissibile ha componenti intere, come stabilito dalla proprietà di interezza delle soluzioni data nei Paragrafi 7.1 e 8.6. Di conseguenza, questi casi particolari di problemi di PLI possono essere trattati come problemi di programmazione lineare, e possono essere risolti da una versione specializzata del metodo del simplesso. Nonostante questa semplificazione sia in qualche modo non comune, in pratica i problemi di PLI spesso hanno strutture speciali che possono essere sfruttate per semplificare il problema (Gli esempi 2 e 3 del paragrafo precedente rientrano in questa categoria, grazie ai loro vincoli di mutua esclusità o del tipo decisioni contingenti o ancora Set Covering). A volte, versioni di grandi dimensioni di questi problemi possono essere risolti con successo. Algoritmi ad hoc, progettati specificatamente per sfruttare alcuni tipi di strutture speciali, stanno diventando sempre più importanti nella programmazione intera. Pertanto, i tre principali fattori che detem1inano le difficoltà computazionale di un problema di PLI sono (l) il numero di variabili intere, (2) se queste variabili intere sono variabili binarie o generiche variabili intere e (3) l' esistenza di una speciale struttura del problema. Questa situazione è in contrasto con la programmazione lineare, dove il numero di vincoli (funzionali) è molto più importante del numero delle variabili. Nella programmazione intera, il numero di vincoli ha importanza (specialmente se deve essere risolto il corrispondente problema rilassato), ma è un fattore strettamente secondario rispetto agli altri fattori . Infatti, ci sono casi a volte in cui aumentando il numero di vincoli diminuisce il tempo computazionale perché il numero di soluzioni ammissibili si è sensibilmente ridotto . Per problemi di PLI mista, è più importante il numero di variabili intere piuttosto che il numero complessivo di variabili, poiché le variabili continue non hanno quasi alcun effetto sullo sforzo computazionale richiesto. Poiché i problemi di PLI sono, in generale, molto più difficili da risolvere rispetto a quelli di programmazione lineare, a volte si è tentati di usare una procedura di approssimazione che consiste nell ' applicare il metodo del simplesso al problema rilassato e poi approssimare i valori non interi nella soluzione finale all'intero più vicino. Tale approccio potrebbe essere corretto per alcune applicazioni, specialmente se i valori delle variabili sono talmente grandi che l' aprossimazione comporta un errore relativamente piccolo. Comunque, bisogna stare attenti a due tranelli insiti in questo approccio. Il primo è che una soluzione ottima di un problema di prograrrm1azione lineare non è necessariamente ammissibile dopo l' arrotondamento. Spesso è difficile capire in che modo deve essere arrotondata per mantenere l' ammissibilità. Potrebbe essere persino necessario modificare il valore di alcune variabili di una o più unità. Per illustrare questo concetto, si consideri il seguente problema: mass1mizzare
Z
= x2 ,
360
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
soggetto ai vincoli l
-x, + x2 < 1-
-
2
7 x 1 + x2 < - -2 e
x, :::: O,
X2::::
0
x, , x 2 interi. Come mostra la Figura 9.2, la soluzione ottima per il problema rilassato è x 1 = l +x2 = 2, ma è impossibile approssimare la variabile non intera x 1 a l o a 2 (o a qualsiasi altro intero) e mantenere l'ammissibilità. L'ammissibilità può essere mantenuta solo cambiando anche il valore intero di x 2 . È facile immaginare come queste difficoltà possano aumentare quando ci sono decine o centinaia di vincoli e variabili. Anche nel caso in cui una soluzione per il problema rilassato fosse approssimata con successo all'intero più vicino, rimane un'altra insidia. Non c'è garanzia che questa soluzione sia la soluzione intera ottima. Infatti, potrebbe essere anche molto lontana dali 'essere ottima in tem1ini del valore della funzione obiettivo. Questo concetto può essere illustrato dal seguente problema:
massimizzare
Z
= x 1 + 5x 2
soggetto ai vincoli
x, + lOx2 :::; 20
x,
: :;
2
e
x, :::: O,
X2::::
0
x,, x 2 interi.
• Figura9_2 Un esempio di problema di PLI in cui la soluzione ottima per il rilassamento lineare non può essere approssimata all'intero più vicino ottenendo soluzioni ammissibili.
xz
Le soluzioni ottenute approssimando all 'intero più vicino non sono ottime
3
21
·~ •
•
Regione ammissibile per problema rilassato
o
•l
•2
• Soluzione ottima del problema rilassato
~· •3
""
l 4
.. x,
9.5
361
LA RISOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE INTERA
Xz 3•;
_f --2
• Figura9.3
X1
= l
f.
ualsiasi alsolo camossano ausimata con uesta solut dal! ' esse~ssere illu-
Soluzione ottima del problema originario di PLI
•
Soluzione ottima • //del problema rilassato
--.=]..__,!:_:_lO "" -ri + 5x.:,_ ______
Un esempio in cui l'approssimazione della soluzione ottima per il rilassamento lineare all'intero più vicino fornisce una soluzione lontana dalla soluzione ottima del problema di
• o
PLI.
-....._Soluzione approssimata all 'intero più vicino
2
XJ
3
Poiché ci sono solo due variabili decisionali, questo problema può essere descritto graficamente (Figura 9.3). Sia il metodo grafico che il metodo del sirnplesso possono essere usati 9 per SCOprire che la SOluzione Ottima per il problema rilassato è X J = 2, Xz = S' COn Z
=
l i. Approssimando la variabile col valore non intero x 2
= ~
a x2
=
l , la soluzione
intera risultante è x 1 = 2, x 2 = l con Z = 7. Si noti che questa soluzione è lontana dalla soluzione ottima (x J. x2) = (0, 2) per la quale Z = 10. A causa di questi due problemi, un approccio migliore per trattare con problemi di PLI che sono troppo grandi per essere risolti in maniera esatta è usare uno degli algoritmi euristici disponibili. Questi algoritmi sono molto efficienti per problemi di grandi dimensioni, ma non forniscono la garanzia di determinare la soluzione ottima. Comunque essi tendono a essere molto più efficienti dell ' approccio appena discusso nel trovare soluzioni ammissibili di buona qualità. Uno degli sviluppi particolarmente interessanti nella Ricerca Operativa in questi ultimi anni è stato il rapido progresso nello sviluppo di algoritmi euristici (e meta-euristiche) molto efficienti per vari problemi di tipo combinatorio come i problemi di PLI. Nel Capitolo Il verranno di scussi tre importanti meta-euristiche (tabu search, simulated annealing, algoritmi genetici). Queste sofisticate euristiche possono essere applicate perfino a problemi di programmazione intera non-lineare che presentano molte soluzioni ottime locali lontane dalla soluzione ottima globale. Questi metodi possono anche essere applicate a problemi di ottimizzazione combinatoria, che sono spesso rappresentati in un modello che ha variabili intere ma anche alcuni vincoli che sono molto più complicati di quelli della PLI. Relativamente alla programmazione lineare intera, per problemi che sono abbastanza piccoli da poter essere risolti in maniera ottima, è disponibile ora un considerevole numero di algoritmi. Comunque, nessun algoritmo di PLI ha una efficienza computazionale che sia persino minimamente comparabile al metodo del simp lesso (fatta eccezione per tipi particolari di problemi). Pertanto, lo sviluppo di algoritmi di PLI ha continuato a essere un ' area di intensa attività di ricerca? Fortunatamente, sono state fatte alcune scoperte algoritmiche interessanti e ci si può aspettare un ulteriore progresso nei prossimi anni. Questi aspetti verranno discussi più a fondo nei Paragrafi 9.8 e 9.9 La strategia più tradizionale e famo sa impiegata dagli algoritmi di PLI è la tecnica branch-and-bound, assieme alle idee per enumerare implicitamente le soluzioni ammissibili intere. Nel prossimo paragrafo sarà presentata la tecnica di branch-and-bound in 3
Per un ' idea dell o stato anuale della ri cerca, si consu lti G. Comuéjols e R. Pull eyblank (eds.), " Special Issue on Integer Programming", Math ematical Programm ing Series B, 98(1-3); settembre 2003.
362
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
un contesto generale e la si illustrerà considerando un problema di programmazione binaria. Il Paragrafo 9.7 presenterà un altro algoritmo dello stesso tipo per problemi di PLI mista.
9.6
L'ALGORITMO DI BRANCH-AND-BOUND E LA SUA APPLICAZIONE ALLA PROGRAMMAZIONE BINARIA Poiché qualsiasi problema di PLI pura con variabili limitate ha soltanto un numero finito di soluzioni ammissibili, è naturale considerare l'uso di qualche tipo di procedura di enumerazione per l'individuazione della soluzione ottima. Purtroppo, come discusso nel paragrafo precedente, questo numero finito può essere (e solitamente è) molto grande. Di conseguenza, è di fondamentale importanza che tutta la procedura di enumerazione sia strutturata intelligentemente in modo che soltanto una frazione molto piccola delle soluzioni ammissibili debba essere realmente esaminata. La tecnica di branch-and-bound ha esattamente questo obiettivo: questa tecnica e sue varianti sono state applicate con successo a una varietà di problemi di Ricerca Operativa, ma è particolarmente nota per la sua applicazione ai problemi di PLI. Il concetto alla base della tecnica di branch-and-bound è divide and conquer (dividi e conquista). Poiché è difficile risolvere direttamente il problema originale esso viene suddiviso in problemi più piccoli fino a che questi problemi secondari non possano essere affrontati e risolti con successo. La divisione (branching) partiziona l 'intero insieme delle soluzioni ammissibili in sottoinsiemi sempre più piccoli. Successivamente si detennina un limite superiore (bounding) per la soluzione del problema nel sottoinsieme e si scarta (jathoming) il sottoinsieme se questo limite indica che questo sottoinsieme non può contenere una soluzione ottima per il problema originale. Verranno adesso descritti questi tre punti fondamentali - branching, bounding e fathoming- illustrandoli tramite l'app licazione di un algoritmo di branch-and-bound all'esempio (il problema California Manufacturing Co.) presentato nel Paragrafo 9.1 e riportato qui di seguito (con i vincoli numerati per i riferimenti successivi). Massimizzare
Z = 9xi + 5x2 + 6x3 + 4x4
soggetto ai vincoli
(l)
6xi
(2) (3)
- XI
(4)
+ 3xz + Sx3 + 2x4 :::; lO X3 + X4:::; l :::; o + X3 + - x2 + x4 :::; O
dove (5)
x1 variabile binaria,
per) = l , 2, 3, 4
Branching Quando si opera con variabili binarie, il modo più semplice per dividere l' insieme delle soluzioni ammissibili in sottoinsiemi è fissare il valore di una delle variabili {per esempio x 1) a xi =O per un sottoinsieme e a xi= l per l'altro sottoinsieme. Per l'esempio considerato, questo comporta la divisione del problema in due sottoproblemi più piccoli indicati di seguito.
Sottoproblema l: Fissato x i = O, il problema risultante è massumzzare
Z = 5x2 + 6x3 + 4x4
// 9.6 1illazione biblemi di PLI
BRANCH-AND-BOUND E PROGRAMMAZIONE BINARIA
soggetto ai vincoli
(l)
X3
(3)
XJ
(5)
+
:::;
lO
X4 :::;
l
:::; o
+ x4 :::; O -x2 x1 variabile binaria, per} = 2, 3, 4
Sottoproblema 2: Fissato x 1 = l , il problema risultante è
1mero finito
iura di enu;so nel paralde. Di conne sia strutte soluzioni d ha esattasuccesso a :ua applica-
Z = 9 + 5x2 + 6x 3 + 4x4
massimizzare soggetto ai vincoli
(l)
3x2 + 5x 3 + 2x 4
(2) (3)
?r (dividi e
1g e fatho1 all 'esem~ riportato
3x 2 + 5x 3 + 2x4
(2) (4)
~ZIONE
iene suddi) essere af:ieme delle termina un e si scarta può conte-
363
Figura 9.4 L'a lbero delle soluzioni ottenuto con la procedura di branching alla prima iterazione dell'algoritmo di branch-and-bound per l'esempio del Paragrafo 9.1. Variabile:
x, o
:::;
4
x 3 + x4
:::;
l
XJ
:::; l
+
(4)
- x2
(5)
x1 variabile binaria,
X4 :::;
O
per} = 2, 3, 4.
La Figura 9.4 mostra questa suddivisione (branching) nei sottoproblemi tramite un albero (come definito nel Paragrafo 8.2) con i rami (archi) dal nodo etichettato completo (corrispondente al problema iniziale con tutte le soluzioni ammissibili) ai due nodi che corrispondono ai due problemi secondari. Questo albero, che continuerà "a crescere ramificandosi " iterazione dopo iterazione, è noto come albero delle soluzioni (o albero di enumerazione) per l' algoritmo. La variabile usata per eseguire questa suddivisione a ogni iterazione assegnando i valori alla variabile (come sopra con x 1) è chiamata variabile di branching (metodi complessi per la selezione delle variabili di branching sono una parte importante delle procedure di branch-and-bound ma, per semplicità, in questo paragrafo esse saranno selezionate sempre in base alloro ordine naturale (x 1, x 2, .. . , x,). Nel corso del paragrafo si potrà osservare che uno di questi sottoproblemi può essere tagliato via (fathomed) immediatamente, mentre l'altro sottoproblema dovrà essere suddiviso ulteriormente in sottoproblemi ponendo x 2 = O o x 2 = l. Per altri problemi di PLI in cui le variabili intere hanno più di due possibili valori, l'operazione di branching può ancora essere eseguita fissando la variabile di branching a tutti i suoi possibili diversi valori, generando quindi più di due nuovi sottoproblemi. Tuttavia, un buon metodo alternativo è specificare un insieme di valori (per esempio, x1 :::; 2 o x1 2 3) per la variabile di branching per ogni nuovo sottoproblema. Questo è il metodo usato per la procedura presentata nel Paragrafo 9. 7.
Bounding
me delle esempiO consideindicati
Per ciascuno di questi sottoproblemi, si deve ottenere adesso un limite (bound) su quanto buona può essere la migliore soluzione ammissibile. Il modo standard di ottenere questa informazione consiste nel risolvere un semplicissimo rilassamento del sottoproblema. Nella maggior parte dei casi, un rilassamento di un problema è ottenuto semplicemente cancellando (" rilassando " ) un insieme dei vincoli che hanno reso il problema difficile da risolvere. Per i problemi di PLI, i vincoli più difficili sono quelli che impongono l' interezza delle variabili. Di conseguenza, il rilassamento più usato è il rilassamento lineare che cancella questo insieme di vincoli. Si consideri il problema descritto nel Paragrafo 9 .l ; il suo rilassamento lineare è ottenuto sostituendo l 'ultima riga del modello (x1 variabile binaria, per j = l , 2, 3, 4) con i vincoli x1 :::; l e x1 2 O per j = l , 2, 3, 4. Usando il metodo del simplesso per risolvere rapidamente questo rilassamento lineare si ottiene la soluzione ottima
CAPITOLO 9
364
LA PROGRAMMAZIONE INTERA
(x1, x2, x3, x4) = (
~,
l, O, l),
con Z = 16.5
Di conseguenza, Z :::; 16.5 per tutte le soluzioni ammissibili del problema di programmazione binaria originale (poiché queste soluzioni sono un sottoinsieme delle soluzioni ammissibili per il suo rilassamento lineare). In effetti, come riassunto sotto, questo limite di 16.5 può essere approssimato a 16, dato che tutti i coefficienti nella funzione obiettivo sono interi e tutte le soluzioni con componenti intere devono avere un valore intero di Z. Bound per il problema con vincoli di interezza:
z :::;
16
Allo stesso modo possono essere ottenuti limiti per i due sottoproblemi. I loro rilassamenti lineari sono ottenuti sostituendo i vincoli x1 variabile binaria perj = 2, 3, 4 con i vincoli O :::; x1 :::; l perj = 2, 3, 4. Applicando il metodo del simplesso si ottengono quindi le soluzioni ottime (più il valore fisso di x 1) indicato di seguito. Rilassamento lineare del sottoproblema l:
(x h Xz, x3, x4) = (0, l , O, l)
con Z = 9
Rilassamento lineare del sottoproblema 2:
(x1, x2, x3, x4) =
(1, :, O, :)
l con Z = 165
I bound risultanti per i sottoproblemi sono bound per il sottoproblema l : bound per il sottoproblema 2:
La Figura 9.5 riassume questi risultati, dove i valori al di sotto dei nodi sono i bound e sotto ciascuno bound vi è la soluzione ottima ottenuta per il rilassamento lineare.
• Figura9.5
l risultati della procedura di bounding alla prima iterazione dell'algoritmo di branch-and-bound per l'esempio del Paragrafo 9.1. Variabile:
z :::; 9 z :::; 16
XJ
o 9 (0, l , O, l )
Fathoming Un sottoproblema può essere tagliato via (fathomed) e quindi escluso da ogni ulteriore considerazione, nei tre modi descritti successivamente. Un modo è illustrato attraverso i risultati per il sottoproblema l ottenuto per il nodo x 1 = O in Figura 9.5. Si può notare che la (unica) soluzione ottima per il suo rilassamento lineare, (x~> x 2, x 3, x 4 ) = (0, l, O, 1), è una soluzione intera. Di conseguenza, questa soluzione deve essere anche la soluzione ottima per il sottoproblema l stesso. Questa soluzione deve essere memorizzata come la prima soluzione incombente (la migliore soluzione ammissibile trovata finora) per il problema originario, insieme al suo valore per Z. Questo valore è denotato da Z* = valore di Z per la soluzione incombente (valore dell ' incombente)
16
(~ , 1 , 0, 1) 16
(1 , ~, o, ~)
e quindi, a questo punto Z* = 9. Poiché questa soluzione è stata memorizzata, non c' è motivo di considerare, per il sottoproblema l , ulteriori suddivisioni a partire dal nodo x 1 = O. Questo potrebbe condurre soltanto ad altre soluzioni ammissibili che sono inferiori al valore dell ' incombente e non si alcun interesse per tali soluzioni. Poiché è stato risolto, il sottoproblema l non viene più preso in considerazione (fathomed). I risultati precedenti suggeriscono un test di fathoming molto importante. Dato che Z * = 9, non c' è motivo di considerare ulteriormente un sottoproblema per cui il bound è minore o uguale a 9, poiché un simile sottoproblema non può avere una soluzione ammissibile migliore del valore dell'incombente. Più in generale, un sottoproblema è eliminato ogni volta che si ha bound :::; Z*
9.6
BRANCH-AND-BOUND E PROGRAMMAZIONE BINARIA
365
Questo risultato non si presenta nell'iterazione corrente perché il secondo sottoproblema ha un limite di 16 che è maggiore di 9. Tuttavia, potrebbe accadere successivamente per i discendenti di questo (nuovi sottoproblemi generati a partire da questo sottoproblema ramificandosi ulteriormente attraverso "generazioni" successive). Inoltre, non appena vengono determinati nuovi valori dell'incombente con valori di Z* più grandi, diventa più semplice tagliare via sottoproblemi. Il terzo modo di tagliare via un sottoproblema è abbastanza semplice. Se il metodo del simplesso trova che un rilassamento lineare di un sottoproblema non ha soluzioni ammissibili, allora lo stesso sottoproblema non ha soluzioni ammissibili e così può essere escluso da successive considerazioni (fathomed). In tutti e tre i casi, si sta conducendo la ricerca di una soluzione ottima investigando ulteriormente soltanto quei sottoproblemi che potrebbero avere una soluzione ammissibile migliore del valore dell'incombente.
·rogrammaluzioni amto limite di biettivo sora di Z.
ilassamen)n i vincoli ndi le solu-
Sommario dei criteri di fathoming. successive considerazioni (jathomed) se
Un sottoproblema è tagliato via ed escluso da
Criterio l: il suo bo un d è :::; Z*
oppure Criterio 2: il suo rilassamento lineare non ha soluzioni ammissibili
oppure Criterio 3: la soluzione ottima per il suo rilassamento lineare ha componenti intere (se questa soluzione è migliore di quella incombente essa diventa la nuova soluzione incombente e il criterio l è riapplicato a tutti i sottoproblemi per tentare di eliminarli usando un nuovo e maggiore valore Z*).
)Und e sot-
La Figura 9.6 riassume i risultati dell'applicazione di questi tre criteri ai sottoproblemi l e 2 mostrando il corrente albero delle soluzioni. Soltanto il sottoproblema l è stato tagliato via con il criterio 3, come indicato da F(3) accanto al nodo x 1 = O. Il valore risultante dell'incombente è identificato sotto questo nodo. Le iterazioni successive illustreranno l 'applicazione dei tre criteri. Tuttavia, prima di continuare l'esempio, conviene riepilogare l'algoritmo per il caso di un problema di programmazione binaria (questo algoritmo suppone che tutti i coefficienti nella funzione obiettivo siano interi e che la scelta della variabile per il branching sia x 1, x 2 , ... , x n).
ti ulteriore oer il nodo ilassamentza, questa Questa soliore solulore per Z.
a, non c'è li nodo x 1 o inferiori tto risolto,
Dato che il bound è 1e ammiseliminato
Sommario dell'algoritmo di branch-and-bound per problemi con variabili binarie Inizializzazione: Porre Z* = -oo. Applicare il passo di bounding, il passo di fathoming e il test di ottimalità descritti sotto all'intero problema. Se non tagliato via, classificare questo problema come un "sottoproblema" ed eseguire la prima iterazione completa descritta sotto.
• Figura9.6 L'a lbero delle soluzion i al termine della prima iterazione dell'algoritmo di branch-and-bound per l'esempio del Paragrafo
Variabile:
x, F(3) __/
9 = Z* (0, l, O, l)= soluzione incombente
9.1. 16
16
366
CAPITOlO 9
LA PROGRAMMAZIONE INTERA
Singola iterazione:
l. Branching: tra i sottoproblemi rimanenti (unfathomed), selezionare quello che è stato generato più recentemente (in caso di parità scegliere il problema che ha il bound più grande). Generare a partire da questo nodo due nuovi sottoproblemi fissando la successiva variabile (la variabile di branching) a O oppure a l. 2. Bounding: per ogni nuovo sottoproblema, ottenere un bound applicando il metodo del simplesso al suo rilassamento lineare e approssimando per difetto il valore di Z della soluzione ottima risultante. 3. Fathoming: per ogni nuovo sottoproblema, applicare i tre criteri di fathoming prima descritti e scartare quei sottoproblemi che soddisfano uno dei criteri. Test di ottimalità: arrestarsi quando non rimangono più sottoproblemi; la soluzione incombente corrente è ottima. 4 Altrimenti eseguire un'altra iterazione. Il passo di branching per questo algoritmo permette di spiegare perché il sottoproblema da suddividere è selezionato in questo modo. Dato che questo sottoproblema è quello che più probabilmente contiene una soluzione ottima per il problema originario, un'opzione potrebbe essere quella di selezionare sempre il sottoproblema con il migliore bound. Il motivo di selezionare invece il sottoproblema creato più recentemente è che durante la fase di bounding vengono risolti i problemi di programmazione lineare (rilassamenti lineari). Piuttosto che eseguire ogni volta il metodo del simplesso dall'inizio, ogni rilassamento lineare è risolto mediante una riottimizzazione (soprattutto per problemi di grandi dimensioni). Questa riottimizzazione consiste nel modificare il tableau finale del precedente rilassamento lineare tenendo conto delle piccole differenze nel modello (proprio come si è fatto per l'analisi della sensitività) e nell'applicazione di poche iterazioni del metodo del sirnplesso. Questa riottimizzazione tende a essere molto più veloce rispetto a ricominciare da zero a condizione che il problema precedente e quello attuale siano sufficientemente simili. I problemi tenderanno a essere abbastanza simi li usando la regola di branching indicata, ma non quando si scelgono sottoproblemi in varie parti dell ' albero delle soluzioni come accade selezionando il sottoproblema con il miglior bound.
Completamento dell'esempio Lo schema per le iterazioni restanti è abbastanza simile a quello per la prima iterazione descritta precedentemente tranne che per le modalità con cui il fathoming si presenta. Di conseguenza, verranno riassunti brevemente i passi di branching e bounding focalizzando l'attenzione sul passo di fathoming.
lterazione 2. L'unico sottoproblema restante corrisponde al nodo XI = l in Figura. 9.6, e pertanto si procederà alla fase di branching a partire da questo nodo generando i due nuovi sottoproblemi indicati di seguito. Sottoproblema 3: fissare XI = l , x2 = 0: il problema risultante è massumzzare
Z = 9 + 6x3
+ 4x4
soggetto ai vincoli
(2)
+ 2x4 :::; 4 x 3 + x 4 :::; l
(3)
XJ
(l)
(4) (5) 4
5x3
:::; l
x 4 :::; O x1 variabile binaria,
per}= 3, 4
Se non c'è una soluzione incombente, la conclusione è che il problema non ha soluzioni ammissibili.
9.6
BRANCH-AND-BOUND E PROGRAMMAZIONE BINARIA
367
Sottoproblema 4: fissare x 1 = l , x 2 = l: il sottoproblema risultante è
~he
è stato bound più
mass1m1zzare
, la succes-
Z = 14 + 6x 3
+ 4x 4
soggetto ai vincoli netodo del di Z della prima de-
(l)
5x3
(2)
x3
(3)
XJ
(5)
l
l ::; l
x 4 ::; l
(4) luzione
+ 2x4 ::; + x 4 ::;
xJ variabile binaria,
per} = 3, 4
I rilassamenti lineari di questi sottoproblemi sono ottenuti sostituendo i vincoli xJ variabile binaria per} = 3, 4 con i vincoli O ::; xJ::; l per}= 3, 4 . Le soluzioni ottime (più i valori fissati di x 1 e di x 2 ) sono Rilassamento lineare del sottoproblema 3 :
oblema da lo che più lzione pod. Il moti: la fase di ti lineari). amento lidi dimen:edente ricome si è tetodo del comincia-
(x~, x2, X3, x4) =
(l, O,~ , O)
con Z = 13.2
rilassamento lineare del sottoproblema 4 : (x 1, x2, X3, x4)
=
(l , l , O,
~)
con Z = 16
I bound risultanti sono
~ntemente
z::; z::::;
bound per il sottoproblema 3:
1ching insoluzioni
bound per il sottoproblema 4:
13 16
Si noti che entrambi questi bound sono maggiori di Z* = 9, così il criterio l di fathoming fallisce in entrambi i casi . Anche il criterio 2 fallisce, dato che entrambi i rilassamenti lineari hanno soluzioni ammissibili (come indicato dall ' esistenza di una soluzione ottima). Purtroppo, anche il criterio 3 fallisce perché entrambe le soluzioni ottime includono variabili con valori non interi. La Figura 9.7 mostra l' albero delle soluzioni risultante. La mancanza di Falla destra di entrambi i nuovi nodi indica che essi rimangono unfathomed.
tzione de:senta. Di alizzando
n Figura. 11erando i • Figura9.7 L'albero delle soluzioni al termine della seconda iterazione dell'algoritmo di branch-and-bound per l'esempio del Paragrafo 9.1.
Vari abile:
x,
Xz
~F(3)
9 = Z* (0, l , O, l) =soluzione incombente
13
16
(1,0,
~.o)
16
16
(1, J,o.&)
368
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
lterazione 3. Finora, l' algoritmo ha generato quattro sottoproblemi. Il sottoproblema l è stato tagliato via e il sottoproblema 2 è stato sostituito dai sottoproblemi 3 e 4 che rimangono da studiare. Poiché sono stati generati simultaneamente, ma il sottoproblema 4 (x 1 = l , x 2 = l) ha un bound migliore (16 > 13), la successiva operazione di branching opera a partire dal nodo (x t. x 2) = (1, l) e genera i seguenti nuovi sottoproblemi (dove il vincolo 3 sparisce perché non contiene x 4 ).
Sottoproblema 5: fissare x 1 = l , x 2 = l , x 3 = 0: il problema risultante è Z = 14 + 4x 4
massimizzare soggetto ai vincoli
(l) 2x 4 (2), (4) x 4
:::;
l
:::;
l
(due volte)
x4 variabile binaria.
(5)
Sottoproblema 6: fissare x 1 = l , x 2 = l , x 3 = l : il problema risultante è Z = 20 + 4x 4
massimizzare soggetto ai vincoli
(l) (2) (4) (5)
2x 4
-:4
:::;
O
x4 :::; x4 :::;
x 4 variabile binaria.
I loro rilassamenti lineari vengono ottenuti sostituendo il vincolo 5 con
(5)
O :::; x4
:::;
l
e si hanno i seguenti risultati: rilassamento lineare del sottoproblema 5: (x 1,x2 ,x3 ,x4 )= (1 , 1, 0,
~).
conZ=l_!j/
Rilassamento lineare del sottoproblema 6:
nessuna soluzione ammissibile.
Bound per il sottoproblema 5:
z :::; 16.
Si noti come la presenza dei vincoli l e 5 nel rilassamento lineare del sottoproblema 6 impedisce qualsiasi soluzione ammissibile. Di conseguenza, questo sottoproblema è tagliato via dal criterio 2. Tuttavia, per il sottoproblema 5, questo criterio fallisce , così come il cril terio l (16 > 9) e il criterio 3 (x4 = non è intero).
2
Adesso l' albero delle soluzioni è quello mostrato in Figura 9.8.
lterazione 4. Rimangono da esaminare i sottoproblemi che corrispondono ai nodi (1 , O) e (1 , l , O) in Figura. 9.8. Il nodo generato più recentemente viene selezionato per la successiva operazione di branching. Dato che la variabile di branching x 4 è l 'ultima variabile, fissando il suo valore a O oppure a l si genera in realtà una singola soluzione piuttosto che problemi che richiedono un 'analisi più completa. Queste soluzioni sono X4
= 0:
X4
= 1:
(xt. x 2 , x 3 , x4 ) = (1 , l , O, O) ammissibile, con Z = 14 (xt. x 2 , x 3 , x4 ) = (1 , l , O, l ) non ammissibile
9.6
BRANCH-AND-BOUND E PROGRAMMAZIONE BINARIA
·oblema l he rimanta 4 (x 1 = g opera a il vincolo
Variabile:
x2
Xt
369
x3
~F(3 ) 9 = Z* (0, l , O, l) =Soluzione incombente
16
Figura9.8 L'albero delle soluzioni al termine della terza iterazione dell'algoritmo di branch-and-bound per l'esempio del Paragrafo 9.1.
16
16
(1, 1,o,4) 16 F(2)
Formalmente applicando i criteri di fathoming, si può notare che la prima soluzione soddisfa il criterio 3 e la seconda il criterio 2. Inoltre, questa prima soluzione ammissibile è migliore di quella dell'incombente (14 > 9) e così essa diventa il nuovo incombente, con Z* = 14. Poiché è stata determinata una nuova soluzione incombente, viene riapplicato il criterio di fathoming con il valore nuovo e più grande di Z* all'unico sottoproblema restante, quello al nodo (1 , 0).
Sottoproblema 3: Bound = 13 S: Z* = 14 Di conseguenza, questo sottoproblema ora è tagliato via. L'albero delle soluzioni così ottenuto è riportato in Figura 9.9. Si noti che non ci sono sottoproblemi rimanenti (unfathomed). Di conseguenza, il test di ottimalità indica che la soluzione corrente incombente
(x,, x 2,
X3, x 4 )
= ( l , l , O, O)
è ottima.
na 6 imtagliato ne il cri-
nodi (1 , o per la !a varia~ piutto-
Altre opzioni con la tecnica branch-and-bound In questo paragrafo è stata illustrata la tecnica di branch-and-bound descrivendo un algoritmo base di branch-and-bound per risolvere problemi di programmazione binaria. Tuttavia, la struttura generale della tecnica di branch-and-bound fornisce una grande flessibilità su come progettare uno specifico algoritmo per ogni tipo di problema. Ci sono molte opzioni disponibili e la costruzione di un efficiente algoritmo richiede l'introduzione di specifiche opzioni legate alla struttura del problema. Ogni algoritmo di branch-and-bound presenta gli stessi tre passi fondamentali: branching, bounding e fathoming. La flessibilità consiste proprio su come vengono effettuate queste operazioni. L 'operazione di branching consiste sempre nel selezionare un sottoproblema e suddivider/o in problemi più semplici. In questo caso la flessibilità risiede nelle regole utilizzate per la selezione e la suddivisione. Nell ' algoritmo prima presentato è stato selezionato il sottoproblema generato più recentemente, dato che esso si presta molto bene alla riottimizzazione per il rilassamento lineare a partire dal problema precedente. La selezione del sottoproblema con il migliore bound è l'altra regola più usata, perché tende a condurre ra-
370
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
pidamente a soluzioni incombenti migliori e così permettere di applicare la fase di fathoming. Ovviamente possono essere usate anche combinazioni delle due regole. Tipicamente (ma non sempre), la suddivisione viene in sottoproblemi viene fatta scegliendo una variabile di branching e assegnando a essa o singoli valori (come per l'algoritmo presentato prima) o intervalli di valori (come verrà mostrato nel paragrafo successivo). Algoritmi più sofisticati scelgono strategicamente la variabile di branching così da produrre sottoproblemi cui è più facile applicare i criteri di fathoming. La fase di bounding è solitamente realizzata risolvendo un rilassamento del problema in esame. Tuttavia, esiste una varietà di modi per costruire i rilassamenti di un problema. Per esempio, si consideri il rilassamento Lagrangiano, in cui l'intero insieme dei vincoli funzionali Ax :::; b (nella notazione matriciale) è cancellato (a parte eventualmente alcuni vincoli) e quindi la funzione obiettivo masstmtzzare
Z = ex
è sostituita con massimizzare
ZR = ex - À(Ax - b)
dove >. 2:: O. Se x* è una soluzione ottima per il problema originale, si ha Z :::; ZR, così la risoluzione del rilassamento Lagrangiano fornisce un valido bound. Se >. è scelto in maniera opportuna, questo bound tende a essere stretto (almeno paragonabile al bound ottenuto dal rilassamento lineare). Senza vincoli funzionali, questo nuovo problema può essere risolto in maniera estremamente rapida. Gli svantaggi sono che i criteri di fathoming 2 e 3 (modificato) non sono così potenti come accade per il rilassamento lineare. In generale, nella scelta del rilassamento l'obiettivo è duplice: esso deve essere risolto in modo relativamente rapido e fornire un bound stringente. Il rilassamento lineare è molto usato perché fornisce un eccellente compromesso fra questi due fattori. Un'opzione impiegata occasionalmente è quella di usare un rilassamento risolvibile rapidamente e quindi, se l'operazione di fathoming non è realizzata, rendere in qualche modo il rilassamento più efficiente per ottenere un bound più stringente. L' operazione difathoming è eseguita in modo molto simile a come descritto per l'algoritmo per problema di programmazione binaria. I tre criteri di fathoming possono essere formulati in termini più generali come segue. Criteri generali di fathoming. Un sottoproblema è tagliato via (fathomed) se un'analisi del suo rilassamento rivela che
•
Figura 9.9
L'albero delle soluzioni al termine della quarta iterazione dell'algoritmo di branch-and-bound per l'esempio del Paragrafo 9.1 .
Variabile:
X]
~
x2
X3
x4
)F(3)
_.....-..._
[com~
~F(1)
F(3) ../
16
14
16
= Z*
(1, l , O, 0) =soluzione incombente = soluzione ottima
l
~16
F(2)
F(2)
9.6
se di fatholue regole. ta sceglienl'algoritmo :uccessivo). i da produr-
:1 problema problema dei vincoli tente alcuni
1
ZR, così la elto in maJound attea può esseithoming 2 sere risolto è mol-
~are
olvibile raJalche moper l'algaono essere i) se un 'a-
1e incomben•~ 1e ottima
BRANCH-AND-BOUND E PROGRAMMAZIONE BINARIA
371
criterio l: per le soluzioni ammissibili del sottoproblema si ha Z :S: Z* , oppure criterio 2: il sottoproblema non ha soluzioni ammissibili, oppure criterio 3: è stata determinata una soluzione ottima del sottoproblema. Proprio come per l'algoritmo per la programmazione binaria, i primi due criteri sono applicati solitamente risolvendo il problema rilassato per ottenere un bound per il sottoproblema e quindi controllando se questo valore è minore o uguale aZ* (criterio l) o se il rilassamento non ha soluzioni ammissibili (criterio 2). Se il rilassamento differisce dal sottoproblema solo a causa dell ' omissione (rilassamento) di alcuni vincoli, allora il terzo criterio è applicato controllando se la soluzione ottinla ottenuta è ammissibile per il sottoproblema originario, nel qual caso deve essere ottima per questo problema. Per altri rilassamenti (come il rilassamento Lagrangiano ), è richiesta una analisi supplementare per determinare se questa soluzione ottima è tale anche per il problema originario. Se il problema in esame è un problema di minimizzazione piuttosto che di massimizzazione, sono disponibili due opzioni. Una è convertirlo in un problema di massimizzazione nel modo usuale (si faccia riferimento al Paragrafo 4.6). L'altra consiste nel modificare l'algoritmo di branch-and-bound; questo richiede il cambiamento del verso della diseguaglianza per il test di fathoming l da il bound per il sottoproblema è :::; Z*?
m il bound per il sottoproblema è ::;:: Z*? Finora, è stato descritto come usare la tecnica di branch-and-bound per determinare soltanto una soluzione ottima. Tuttavia, nel caso di più soluzioni ottime, è a volte desiderabile identificare tutte queste soluzioni ottime in modo da poter effettuare la scelta finale in base a fattori intangibili non inclusi nel modello matematico. Per determinare tutte le soluzioni, devono essere apportate solo alcune semplici modifiche alla procedura. In primo luogo, è necessario cambiare la diseguaglianza per il criterio di fathoming l (il bound per il sottoproblema :S: Z* ?) in una diseguaglianza stretta (il bound per il sottoproblema < Z*?), in modo che non venga tagliato via un sottoproblema se questo ha una soluzione ammissibile con valore della funzione obiettivo uguale a quella della soluzione incombente. Secondo, se il criterio di fathoming 3 è soddisfatto per la soluzione ottima per il sottoproblema si ha Z = Z* , allora occorre memorizzare questa soluzione come un 'altra soluzione incombente (ç:on identico valore della funzione obiettivo). Terzo, se il criterio 3 fornisce una nuova soluzione incombente è necessario controllare se la soluzione ottima ottenuta per il problema rilassato è unica. Se non lo è, allora bisogna identificare le altre soluzioni ottime per il problema rilassato e controllare se sono ottime anche per il sottoproblema, nel qual caso diventano anche soluzioni incombenti. Infine, quando il test di ottimalità determina che non ci sono insiemi rimanenti (unfathomed), tutte le attuali soluzioni incombenti sono soluzioni ottime. Anziché per determinare una soluzione ottima, la tecnica di branch-and-bound può essere usata per determinare una soluzione quasi ottima, generalmente con molto meno sforzo computazionale. Una soluzione è " sufficientemente buona" se il valore di Z è "abbastanza vicino" al suo valore ottimo (sia questo Z**). Abbastanza vicino può essere definito in uno di due modi: Z** - K :S: Z
oppure
(l - a)Z** :S: Z
dove K e a sono specifiche costanti (positive). Per esempio, se è scelta la seconda definizione e a = 0.05 , allora è richiesto di essere entro il 5 percento dal valore ottimo. Quando il valore Z per l 'attuale soluzione incombente (Z*) soddisfa o
Z** - K :S: Z*
oppure
(l - a)Z** :S: Z*
allora la procedura può essere terminata immediatamente scegliendo la soluzione incom-
372
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
bente come la soluzione quasi ottima cercata. Anche se in realtà la procedura non identifica una soluzione ottima e il corrispondente Z** , se questa soluzione (sconosciuta) è ammissibile (e quindi ottima) per il sottoproblema attualmente in esame, allora il criterio l di fathoming determina un bound superiore tale che Z**:::; bound in modo che oppure
bound - K :::; Z*
(l - a) bound :::; Z*
e questo implica che la corrispondente disuguaglianza precedente è soddisfatta. Anche se questa soluzione non è ammissibile per il corrente sottoproblema, un limite superiore ancora valido è ottenuto per il valore di Z per la soluzione ottima del sottoproblema. Così, soddisfare una di queste due ultime disuguaglianze è sufficiente a tagliare via questo sottoproblema perché il valore dell 'incombente è "abbastanza vicino" alla soluzione ottima del sottoproblema. Di conseguenza, per determinare una soluzione che è abbastanza vicina a essere ottima. è necessario soltanto una modifica nella usuale procedura di branch-and-bound. Questo cambiamento consiste nel sostituire l' usuale criterio l di fathoming per un sottoproblema bound :::; Z*? con bound - K :::; Z*? oppure (l -a) bound :::; Z*?
e quindi verificare questo criterio dopo il criterio 3 (in modo che una soluzione ammissibile con Z > Z* continui a essere mantenuta come il nuovo valore dell 'incombente). Il motivo che questo criterio l più debole è sufficiente è che, indipendentemente dal valore (sconosciuto) della soluzione ottima del sottoproblema vicino al bound del sottoproblema. il valore dell ' incombente continua a essere ancora abbastanza vicino a questa soluzione (se la nuova diseguaglianza è valida) e quindi il sottoproblema non deve essere più preso in considerazione. Quando non ci sono più sottoproblemi restanti, la corrente soluzione incombente sarà la soluzione quasi ottima desiderata. Tuttavia, è molto più facile tagliare via con questa nuovo criterio di fathoming (in entrambe le fonne) e così l'algoritmo opera molto più velocemente. Per un problema di grandi dimensioni , questa accelerazione può fare la differenza tra finire con una soluzione che è garantita vicina al valore ottimo e non terminare mai .
9.7
UN ALGORITMO DI BRANCH-AND-BOUND PER LA PROGRAMMAZIONE INTERA MISTA In questo paragrafo verrà affrontato il problema generale di PLI mista in cui alcune delle variabili (J di queste) devono assumere valori interi (non necessariamente O e l) mentre il resto sono ordinarie variabili continue. Per convenienza di notazione, le variabili saranno ordinate in modo che le prime I variabili siano le variabili che devono assumere solo valori interi e la forma generale del problema è Il
massimizzare
Z =
L
ci xi
)= l
soggetto ai vincoli 11
L::aux1 :::; bi, j= l
per i = l , 2, . . . , m
9.7
)n identifiiuta) è am:riterio l di
. Anche se periore anema. Così. questo sotone ottima .ere ottima. nd. Questo Jroblema
:~rnmissib i
e). Il motidal valore Jproblema. t soluzione ~più preso : soluzione :ile tagliare inno opera ~zione può timo e non
BRANCH-AND-BOUND PER LA PROGRAMMAZIONE INTERA MISTA
373
e
x1 2 O,
per j = l, 2, ... , n per j = l , 2, . .. , I; I
x1 variabile intera,
~
n
(Quando I = n, questo problema diventa un problema di PLI pura). Per risolvere questo problema, vetTà descritto un algoritmo di branch-and-bound che, con una serie di modifiche, ha fornito un metodo standard per problemi di PLI mista. La struttura di questo algoritmo fu sviluppata per prima da R. J. Dakin,5 sulla base di un algoritmo di branch-and-bound proposto da A. H. Lande A. G. Doig. 6 La struttura di questo algoritmo è abbastanza simile a quella dell'algoritmo presentato nel paragrafo precedente. La risoluzione dei rilassamenti lineari fornisce ancora la base per entrambi i passi di bounding e difathoming. In effetti, per trattare la generalizzazione da variabili binarie a variabili intere generali e da PLI pura a PLI mista sono necessari solo quattro cambiamenti nell'algoritmo già presentato. Un primo cambiamento riguarda la scelta della variabile di branching. Prima, la successiva variabile era scelta automaticamente secondo l'ordinamento naturale x 1, x 2 , . . . , x 11 • Adesso, le uniche variabili qui considerate sono le variabili che devono assumere valori interi e che hanno un valore non intero nella soluzione ottima per il rilassamento lineare del sottoproblema corrente. La regola seguita per la scelta tra queste variabili consi ste nel selezionare la prima secondo l'ordinamento naturale (ma di solito sono utilizzate regole più sofisticate). Il secondo cambiamento riguarda i valori assegnati alla variabile di branching per la generazione dei nuovi sottoproblemi. Prima, per i due nuovi sottoproblemi la variabile era fissata, rispettivamente, a O e a l . Adesso, la variabile che può solo assumere valori interi potrebbe, in generale, assumere un numero molto grande di valori interi e sarebbe inefficiente generare e analizzare tanti sottoproblemi secondari fissando la variabile a uno specifico valore intero. Di conseguenza, ciò che viene fatto preferibilmente è generare ancora due nuovi sottoproblemi specificando due intervalli di valori per la variabile. Per spiegare come questo viene fatto, si indichi con x1 la variabile di branching e con x/ il suo valore (non intero) nella soluzione ottima per il rilassamento lineare del sottoproblema corrente. Usando le parentesi quadre per denotare la parte intera inferiore [x/]= l'intero più
grande ~
x/
si ottiene rispettivamente l' intervallo dei valori per i due nuovi problemi secondari x1 ~ [x/ ] 2 [x/] + l. Ogni disuguaglianza diventa un vincolo aggiuntivo per quel nuovo sottoproblema. Per esempio, Se x/ = 3.5, allora x1 ~3 e x1 24
ex1
!cune delle ) mentre il ·ili saranno : solo valo-
sono i rispettivi vincoli supplementari per i nuovi sottoproblemi. Quando le due modifiche all'algoritmo descritto precedentemente sono fuse, può accadere un fenomeno interessante della ripetizione di una variabile di branching. Per illustrare ciò, con riferimento alla Figura 9.10, si ponga) = l con xj = 3.5 e si consideri il nuovo sottoproblema con x 1 ~ 3. Si supponga che, quando viene risolto il rilassamento lineare di un discendente di questo sottoproblema, si abbia x 1* = 1.25. Allora x 1 si ripete come variabile di branching e i due nuovi sottoproblemi generati hanno, rispettivamente, il vincolo supplementare x 1 ~ l e x 1 2 2 (così come il precedente vincolo supplementare x 1
~
3). Successivamente, si assuma che
x~
per un discendente del sottoproblema x 1
~
=
!,
quando è risolto il rilassamento lineare
l. Quindi x 1 si ripete ancora come variabile di
5
R.J. Dakin, "A Tree Search Algorithm for Mixed lnteger Programming Problems", Computer Journal, 8(3): 250-255 , 1965.
6
H. Lande A.G. Doig, " An Automatic Method of so lving Discrete Programming Problems", Econometrica, 28: 497-520, 1960.
374
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
branching e i due nuovi sottoproblemi generati hanno x 1 = O (a causa del nuovo vincolo
x 1 :::; O e il vincolo di non negatività su x 1) e x 1 = l (a causa del nuovo vincolo x 1 2: l e il precedente vincolo x 1 :::; 1). Il terzo cambiamento riguarda il passo di bounding. Prima, con un problema di PLI pura e coefficienti interi nella funzione obiettivo, il valore di Z per la soluzione ottima per il rilassamento PL del sottoproblema era approssimato per difetto per ottenere un bound, dato che qualsiasi soluzione ammissibile deve avere un valore intero di Z. Adesso, con alcune delle variabili non vincolate ad assumere valori interi, il bound è il valore di Z senza arrotondamento. La quarta e ultima modifica per ottenere un algoritmo per problemi di PLI mista riguarda il criterio 3 di fathoming. Prima, per un problema di PLI pura , la verifica del criterio consisteva nel determinare se la soluzione ottima per il rilassamento lineare avesse componenti intere, dato che ciò garantisce che la soluzione è ammissibile e di conseguenza ottima, per il sottoproblema. Adesso, con un problema di PLI mista, il criterio richiede soltanto che le variabili vincolate a essere intere siano in effetti intere nella soluzione ottima per il rilassamento lineare, perché questo basta a garantire che la soluzione sia ammissibile è quindi ottima, per il sottoproblema. Considerando queste quattro modifiche nell 'algoritmo presentato nel precedente paragrafo per la programmazione binaria si ottiene il seguente nuovo algoritmo per problemi di PLI mista.
Algoritmo di branch-and-bound per problemi di PLI mista lnizializzazione: porre Z* = - oo. Applicare le operazioni di bounding, fathoming e il test di ottimalità descritto di seguito al problema originale. Se non è tagliato via, classificare questo problema come un sottoproblema rimanente ed eseguire la prima iterazione completa. Singola iterazione: l. Branching: tra i restanti (unfathomed) sottoproblemi, selezionare quello che è stato generato più recentemente (in caso di parità si scelga il problema con il miglior valore
del bound). Tra le variabili vincolate ad assumere valori interi che non hanno un valore intero nella soluzione ottima per il rilassamento lineare, scegliere, come variabile di branching, la prima nell'ordine naturale. Sia x1 tale variabile e x j il relativo valore nella soluzione ottima. Generare due nuovi sottoproblemi aggiungendo rispettivamente i vincoli x; :::; [xj] e xi 2: [xj] + l. 2. Bounding : per ogni nuovo sottoproblema, ottenere il relativo bound applicando il metodo del simplesso al suo rilassamento lineare e usando il valore di Z per la soluzione ottima risultante.
• Figura 9.10 Ill ustrazione del fenomeno di una variabile bra nching ricorrente; la variabile x1 diventa per t re vo lte la variabile branching perché essa assume un valore non intero in corrispondenza della so luzione ottima per il rilassamento li neare in tre nodi .
l (14 , ... ) l (3 2, ...)
9.7
) vincolo 1 2 l e il 1a di PLI 1e ottima enere un . Adesso tlore di Z ta riguar-
:1 criterio sse comlenza otiede solle ottima 1missibinte paraproblemi
BRANCH-AND-BOUND PER LA PROGRAMMAZIONE INTERA MISTA
3. Fathoming: per ogni nuovo sottoproblema, applicare i tre criteri di fathoming indicati sotto e scartare quei sottoproblemi che sono tagliati via da uno qualunque dei criteri. Criterio]: il bo un d risulta minore o uguale aZ*, dove Z* è il valore della corrente soluzione incombente. Criterio 2: il rilassamento lineare non ha soluzioni ammissibili. Criterio 3: la soluzione ottima per il rilassamento lineare ha valori interi per tutte le variabili vincolate ad assumere solo valori interi (se questa soluzione è migliore di quella della soluzione incombente essa diventa la nuova soluzione incombente e il criterio l viene riapplicato a tutti i sottoproblemi unfathomed con questo nuovo più grande valore di Z*). Test di ottimalità : arrestarsi quando non ci sono più sottoproblemi; la corrente soluzione incombente è ottima. 7 Altrimenti eseguire un'altra iterazione.
Applicazione dell'algoritmo a un problema di PLI mista. Ve1Tà adesso illustrato questo algoritmo applicandolo al seguente problema di PLI mista: Z
massimizzare
= 4x 1 -
2x2
+ 7x3 -
X4
soggetto ai vincoli x1 X]+
+ 5x3 Xz -
:::; 10
X3
6x1- 5xz - x1 + 2x3 5 e il test 1ssificare •ne com-
375
-
2x4
:::;
l
<
o
:::;
3
e
x; 2 O, per) = l , 2, 3, 4 x; variabile intera, per)= l , 2, 3. Si può notare che il nwnero delle variabili vincolate ad assumere solo valori interi è l = 3, così x 4 è l'unica variabile continua.
stato ge>r valore 1n valore
iabile di !ore nellmente i
lnizializzazione. Dopo aver posto Z* = - oo, il rilassamento lineare di questo problema è ottenuto cancellando i vincoli di interezza per x; con) = l , 2, 3. Applicando il metodo del simplesso a questo rilassamento lineare si ottiene la soluzione ottima mostrata di seguito. Rilassamento lineare del problema originario:
(xl, X2, x3, x4) lo il me::>luzione
~···
...
}_
4,
o)
,
con Z = 14.25
Poiché questo problema ammette soluzioni ammissibili e questa soluzione ottima ha valori non interi per le variabili cui è richiesto di assumere solo valori interi, l'intero problema non è fathomed e così l'algoritmo continua con la prima completa iterazione descritta di seguito.
lterazione l. In questa soluzione ottima per il rilassamento lineare, la prima variabile che deve solo assumere valori interi e che ha nella soluzione ottima corrente un valore non intero è x 1 =
~
5 3 = ( 4' 2'
~, così x 1 diventa la variabile di branching. A partire dal nodo etichetta-
to "completo" utilizzando questa variabile di branching vengono generati i seguenti due sottoproblemi:
Sottoproblema l: Problema originale più il vincolo supplementare XJ
7
S )
Se non c'è una soluzione incombente, la conclusione è che il problema non ha soluzioni ammissibili.
376
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
Sottoproblema 2: Problema originale più il vincolo supplementare X1 ~
2
Eliminando di nuovo i vincoli di interezza e risolvendo i rilassamenti lineari di questi due sottoproblemi si ottengono i seguenti risultati . Rilassamento lineare del sottoproblema l : (x 1,X2, X3, X4 )
=
(1, ~ ,
~ , 0),
con Z = 14.2
Bound per il sottoproblema l:
z :::;: 14.2
Rilassamento lineare del sottoproblema 2:
nessuna soluzione ammissibile.
Questo risultato per il sottoproblema 2 significa che è tagliato via sulla base del criterio 2. Tuttavia, così come per il problema complessivo, il sottoproblema l non soddisfa i criteri di fathoming. Questi risultati sono riassunti nell'albero delle soluzioni mostrato in Figura 9.11.
lterazione 2. Figura
Con un solo sottoproblema rimanente (corrispondente al nodo x 1
:::;:
lassamento lineare e la sua soluzione ottima, la variabile di branching è x 2 , poiché x 2 non ha un valore intero. L'aggiunta dei vincoli x 2 due nuovi sottoproblemi.
l o x2
:::;:
~
X1
:S: l ,
X2
:S: l
Sottoproblema 4: Problema originale più i vincoli supplementari X1
X2 ~
:S: l ,
2
Risolvendo i corrispondenti rilassamenti lineari si ottengono i seguenti risultati. Rilassamento lineare del sottoproblema 3:
(x 1,
x 2 , x 3, x 4 )
11 ) = ( 65 , l , 6' O
,
con Z
=
14.16
con Z
=
14.16
z -< 14 _!_6
Bound per il sottoproblema 3:
Rilassamento lineare del sottoproblema 4 :
(x 1,
x 2 , x 3, x 4 )
=
14.2
(l, ~, ~, o) 14l 4 5 3 7 ) ( 4' 2' 4'
o
F(2)
5 (6
, 2, 611 ' O)
,
6
=S
2 genera quindi i seguenti
Sottoproblema 3: Problema originale più i vincoli supplementari
• Figura 9.11 L'albero delle soluzioni al termine della prima iterazione dell'algoritmo di branch-and-bound per il problema di programmazione binaria mista.
l in
9.11 ),la successiva operazione di branching parte da questo nodo. Esaminando il ri-
9.7
BRANCH-AND-BOUND PER LA PROGRAMMAZIONE INTERA MISTA
377
14.6
uesti due • Figura9.12 L'albero delle soluzioni al termine della seconda iterazione dell'algoritmo di branch-and-bound per il problema di programmazione binaria mista.
riterio 2. i criteri
t
l. 1 :::; l in ndo il ri-
6 · x2 = 5
seguenti
5 11 ( 6' 1,6,
l 145
o)
12.6
l
144
F(2)
5 11 ) ( 6, 2, 6 , 0
z :::;
Bound per il sottoproblema 4:
12.16
Poiché entrambi i problemi hanno soluzione e queste hanno valori non interi per le variabili che possono assumere solo valori interi, nessuno dei due problemi secondari può essere eliminato (Il criterio l non è ancora operativo, dato che Z* = - oo fino a quando non viene determinata la prima soluzione incombente). L'albero delle soluzioni è dato in Figura 9.12.
lterazione 3. Avendo solo due sottoproblemi rimanenti (3 e 4) generati simultaneamente, quello con il bound più grande (il sottoproblema 3, con 14.16 > 12.16) è selezionato per l' operazione di branching successiva. Poiché, nella soluzione ottima per questo rilassamento lineare del sottoproblema, x 1 =
!
non è intero, x 1 diventa la variabile di
branching. (Si noti inoltre che poiché x 1 stata scelta anche nell ' iterazione 1). Ciò conduce ai seguenti nuovi sottoproblemi.
Sottoproblema 5: Problema originale più i vincoli supplementari X! :::;
l
X2:::;
l
X ! :::;
0
(e pertanto x 1 = 0).
Sottoproblema 6: Problema originale più i vincoli supplementari X :o;
l
x2
:::;
X!
2: l
l
(e pertanto x 1 = l )
I risultati ottenuti risolvendo i relativi rilassamenti lineari sono indicati di seguito. Rilassamento lineare del sottoproblema 5: (x! ,X2,X3,X4) =
(0, 0, 2,
Bound per il sottoproblema 5: Rilassamento lineare del sottoproblema 6:
~).
con Z = 13.5
z :::; 13.5 nessuna soluzione ammissibile.
Il sottoproblema 6 risulta immediatamente eliminato in base al criterio 2. Tuttavia, si può notare che anche il sottop'roblema 5 può essere eliminato. Il criterio 3 è verificato perché
378
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
la soluzione ottima per il rilassamento lineare ha valori interi (t 1 = O, x 2 = O, x 3 = 2) per le tre variabili (Non importa che x 4 =
~ , dato che x4 non è vincolata ad assumere solo va-
lori interi). Questa soluzione ammissibile per il problema originale diventa la prima soluzione incombente: soluzione incombente= (O, O, 2,
~)
con Z* = 13.5
L'uso di questo valore di Z* nel criterio di fathoming l applicato all'unico sottoproblema (sottoproblema 4) ha successo, perché 12.16 :::; Z*. Questa iterazione ha permesso di eliminare in tutti e tre i modi possibili sottoproblemi. Per di più, adesso , non ci sono sottoproblemi restanti, così la soluzione incombente corrente è ottima. Soluzione ottima = (O, O, 2,
~)
con Z = 13.5.
Questi risultati sono riepilogati dall ' albero delle soluzioni riportato in Figura 9.13.
• Figura 9.13 L'a lbero delle soluzion i al termine della terza iterazione dell'algoritmo di branch-and-bound per il problema di prog ramm azione binaria mista.
F(3)
13.5
(O, O, 2, 14.16
14.5
~)
= soluzione incombente = soluzione ottima
F(2) F(1)
12.16
l
144
9.8
F(2)
IL METODO DI BRANCH-AND-CUT PER RISOLVERE PROBLEMI DI PROGRAMMAZIONE BINARIA Nella metà degli anni Ottanta, a causa del sensazionale progresso nelle metodologie risolutive, la programmazione intera ha rappresentato un' area di particolare sviluppo della Ricerca Operativa.
Background Per analizzare questo progresso nella giusta prospettiva, è bene considerarli anche da un punto di vista storico. Un'importante innovazione si è verificata negli anni Sessanta e all' inizio degli anni Settanta con lo sviluppo e il perfezionamento del metodo di branchand-bound. Problemi relativamente piccoli (con meno di 100 vmiabili) potevano essere risolti in maniera molto efficiente, ma un modesto aumento della dimensione del problema poteva causare un 'esplosione nel tempo di calcolo oltre limiti accettabili. Pochi erano i progressi nel contrastare questo aumento esponenziale del tempo computazionale all 'aumentare della dimensione del problemy.Molti importanti problemi che si presentavano nella pratica non potevano essere risolti.
9.8
BRANCH-AND-CUT E PROGRAMMAZIONE BINARIA
379
= 2) per
Una impot1ante innovazione proposta alla metà degli anni Ottanta, è stato il metodo di branch-and-cut per risolvere problemi di programmazione binaria. I primi risultati vanta-
solo va-
vano la risoluzione di problemi di grandi dimensioni con migliaia di variabili usando questo metodo. Ciò ha generato un grande interesse e ha condotto a una intensa attività di sviluppo e di ricerca per raffinare il metodo. Inizialmente, il metodo fu limitato a problemi di programmazione binaria pura, ma presto esteso a problemi di programmazione binaria mista e quindi anche ai problemi di PLI mista. Qui ci si limiterà alla descrizione dell'algoritmo per problemi di programmazione binaria. Il metodo di branch-and-cut è in grado oggi di risolvere problemi con alcune migliaia di variabili e in alcuni casi decine o centinaia di migliaia di variabili. Tuttavia questo metodo algoritmico non può risolvere consistentemente tutti i problemi di programmazione binaria con migliaia di variabili, o anche con centinaia di variabili. I problemi di grandi dimensioni che sono stati risolti sono caratterizzati da una matrice A sparsa, cioè con una percentuale di coefficienti diversi da zero nei vincoli funzionali abbastanza piccola (meno del 5%, o persino meno dell ' l %). In effetti, il metodo dipende fortemente da questa sparsità (fortunatamente, questo genere di sparsità è tipica dei problemi reali di grandi dimensioni). Per di più, ci sono altri fattori importanti oltre alla sparsità e la dimensione che influenzano la difficoltà nel risolvere un dato problema di PLI e quindi una attenzione particolare è sempre necessaria per la risoluzione di problemi di PLI di grandi dimensioni. Anche se la desctizione del metodo va oltre lo scopo e il livello di questo libro, viene comunque fomita qui una sua descrizione generale limitata al caso di problemi di programmazione binaria; quindi tutte le variabili introdotte successivamente in questo paragrafo sono variabili binarie. Il metodo usa principalmente una combinazione di tre tipi 8 di tecniche : preprocessamento automatico del problema, generazione di piani di taglio e tecniche intelligenti di branch-and-bound. Le tecniche di branch-and-bound sono già state descritte precedentemente . Un'introduzione agli altri due tipi di tecniche è fornita di seguito.
na solu-
~oblema
·oblemi. nte cor-
•mbente na
Preprocessamento automatico per problemi di programmazione binaria pura Il preprocessamento automatico del problema consiste in " una verifica mediante l'uso del computer" della formulazione del problema in modo da individuare nuove riformulazioni che rendono il problema più rapido da risolvere senza comunque eliminare soluzioni ammissibili. Queste nuove riformulazioni rientrano in tre categorie. )l
e riso, della
da un e al·anchere n)!ema ·ano 1 ll'aulvano
l
l. Fissare il valore di alcune variabili : identificare le variabili che possono essere fissate a uno dei loro possibili valori (o O oppure l) poiché l'altro valore non è presente in alcuna soluzione che è sia ammissibile che ottima. 2. Eliminare i vincoli ridondanti: identificare ed eliminare i vincoli ridondanti (vincoli che sono soddisfatti automaticamente dalle soluzioni che soddisfano tutti i altri vincoli). 3. Rendere i vincoli più stringenti: questo permette di ridurre la regione ammissibile per il rilassamento lineare senza eliminare nessuna soluzione ammissibile per il problema origirrario. Fissare il valore di alcune variabili. guente.
Un principio generale per fissare variabili è il se-
Se il valore di una variabile non può soddisfare un detem1inato vincolo, anche quando le altre va1iabili sono uguali al loro valore migliore al fine di soddisfare il vincolo, allora quella variabile deve essere fissata ali 'altro suo valore. L 8
o:n,e brevemente discusso nel Paragrafo 9.4, recentemente un ' ulteriore tecnica che ha giocato un ruolo signifi cativo per la determinazione di soluzioni ammissibili è stato l' uso di tecniche euristiche.
380
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
Per esempio, ciascuno dei seguenti vincoli di tipo :'S permette di fissare x 1 a O, dato che x 1 = l con i migliori valori delle altre variabili (O in presenza di un coefficiente nonnegativo e l in presenza di un coefficiente negativo) violerebbe il vincolo.
3x 1 :'S 2 3x 1 + x 2 :'S 2 5x 1 + x 2 - 2x 3 :'S 2
=;. =;. =;.
x 1 =O, x 1 =O, x 1 = O,
dato che dato che dato che
3(1) > 2 3(1) + 1(0) > 2 5(1) + 1(0) - 2(1) > 2
La procedura generale per controllare un qualunque vincolo del tipo :'S consiste nell ' identificare la variabile con il più grande coeffi ciente p ositivo e se la somma di quel coefficiente e di qualunque coefficiente negati vo eccede il termine noto, allora quella variabile deve essere fissata a O (una volta che una variabile è stata fi ssata, la procedura può essere ripetuta per la variabile con il successivo coefficiente positivo più grande ecc). Una procedura analoga con vincoli di tipo :::0: permette, invece, di fissare una variabile a l , come illustrato di seguito
3x 1 :::0: 2 3x 1 + x 2 :::0: 2 3x 1 + x 2 - 2x 3 :::0: 2
=;. =;. =;.
x 1 = l, x1 = l, x 1 =l ,
dato che dato che dato che
3(0) < 2 3(0) + l (l) < 2 3(0) + l (l)- 2(0) < 2
Un vincolo di tipo :::0: permette anche di fissare una variabile a 0:
x 1 + x 2 - 2x 3 :::0: l
=;.
x 3 = O,
dato che
l (l) + 1(1) - 2(1) < l
L'esempio seguente mostra come per un vincolo di tipo :::0: si possa fissare una variabile a l e un 'altra a O.
3x 1 + x 2 - 3x3 :::0: 2 e
=;. =;.
x1 = l, x 3 =0,
3(0) + l (l)- 3(0) < 2 3(1) + 1(1) - 3(1) < 2
dato che datoche
Allo stesso modo, un vincolo di tipo :'S con un tennine noto negativo permette di fissare una variabile a O o l come mostrato nell 'esempio seguente 3x 1 -2x 2 :'S -l
=;.
x 1 = 0,
datoche
3(1 ) -2(1) > - 1
e
=;.
x2
=l ,
dato che
3(0) - 2(0) > -l
Fissando il valore di una variabile si può a volte generare una reazione a catena tale da permettere di fissare altre variabili negli altri vincoli. Questo accade nei 3 vincoli considerati di seguito.
3x 1 + x 2 - 2x3 :::0: 2
= l
=}
X1
=}
x 4 = O,
=}
x6 = O
di conseguenza
x 1 + x 4 + x 5 :'S l
x5 = O
e quindi
-x5 + x 6 :'S O
In alcuni casi, per fissare una variabile, è possibile unire uno o più vincoli cmTispondenti ad alternative mutuamente esclusive con un altro vincolo, come illustrato di seguito,
/
8x 1 - 4x2 - 5x3 + 3x4 :'S 2 } X2 + X3 :'S l
=}
Xt
= 0
dato che 8(1)- max {4, 5}(1) + 3(0) > 2 Fissare alcune variabili può avere un drastico effetto sulla dimensione del problema da risolvere. Non è insolito eliminare in questo modo più della metà delle variabili del problema.
9.8
381
BRANCH-AND-CUT E PROGRAMMAZIONE BINARIA
Eliminare i vincoli ridondanti. Viene di seguito descritto un semplice modo per determinare se un vincolo è ridondante.
to che x 1 negativo
Se un vinco lo funzionale soddisfa persino la soluzione binaria più " difficile" , allora esso è ridondante e può essere eliminato dall'analisi successiva. Per un vincolo di tipo ::;, la soluzione binaria più difficile ha variabili uguali a l in corrispondenza di coefficienti nonnegativi e le altre variabili uguali a O (questi valori si invertono nel caso di un vinco lo di tipo ~).
Alcuni esempi sono presentati di seguito. ell' iden·/ coeffivariabile .ò essere
3x 1 + 2x2 3x 1 - 2x2
-::; -::;
è ridondante, dato che 3(1) + 2(1) -::; 6 è ridondante, dato che 3(1) - 2(0)-::; 3 è ridondante, dato che 3(0) - 2(1) ::;=: - 3
6 3
3x 1 - 2x2 2:: - 3
Nella maggior parte dei casi in cui un vincolo è stato identificato come ridondante esso non era ridondante nel modello originale ma è diventato tale dopo aver fissato alcune variabili. Degli 11 esempi precedenti in cui alcune variabili erano fissate, tutti tranne l'ultimo hanno reso ridondante un vincolo.
;ariabile
Rendere i vincoli più stringenti. 9 Massimizzare
Si consideri il seguente problema.
Z = 3x 1 + 2x2,
soggetto ai vincoli 2xl riabile a
+ 3x2-::; 4
e x~,
x 2 variabili binarie.
Questo problema ha esattamente tre soluzioni ammissibili - (0, 0), (1 , O) e (0, l) - e la soluzione ottima è (1 , O) con Z = 3. La regione ammissibile per il rilassamento lineare di questo problema è mostrato in Figura 9.14. La soluzione ottima per questo rilassamento li-
i fissare
neare è (l,
~)con Z = 4.3, che non è molto vicino alla soluzione ottima per il problema
originario. Un algoritmo di tipo branch-and-bound dovrebbe eseguire una significativa mole di lavoro per identificare la soluzione ottima del problema originario. tale da onside-
•
Figura 9.14
x2
Il rilassamento lineare (e la relativa regione ammissibile e la soluzione ottima) per l'esempio di programmazione binaria usato per illustrare il cambiamento di un vincolo.
massimizzare soggetto a e O ~x 1 ~
\ \
Z = 3x 1 + 2x2 , 2x 1 + 3x2 ~ 4 l,
O~x2~l
\ \ \ \ \ \
\
• \
Soluzione ottimale /del problema rilassato
'\
)ndenti
),
Ril assamento lineare
\
Regione ammissibile
____/
\ \
\
/
Soluzione ottimale
''' pmblom' o'igio~io
o
:ma da el pro9
Tecnica comunemente chiamata anche riduzione del coefficiente.
XJ
382
CAPITOLO 9
lA PROGRAMMAZIONE INTERA
x2
LP relaxation Massirnizzare Z = 3x 1 + 2x2> soggetto a x 1 + x2 :=; l e O :=; x 1 :=; 1, O :=; x 2 :=; l \
•
\ \ \ \ \ \ \ \
• Figura 9.15 Il ri lassamento lineare dopo il cambiamento del vincolo 2x1 + 3x2 ::; 4 in x1 + x2 ::; l per l'esempio di Figura 9.14.
Soluzione ottima sia per il rilassamento lineare sia per il problema originario
\
Regione ammissibile
\ \
\ \ ~
o
/ l\
Xl
Se il vincolo funzionale 2x 1 + 3x2 :::; 4 è sostituito da x 1 + x 2 :::; l , le soluzioni ammissibili per il problema originario rimangono esattamente le stesse - (0, 0), (l, O) e (0, l) - e la soluzione ottima è ancora (l , 0). Tuttavia, la regione ammissibile per il rilassamento lineare è stata notevolmente ridotta, come mostrato in Figura 9.15. In effetti, questa regione ammissibile è stata ridotta così tanto che la soluzione ottima per il rilassamento lineare è ora (l , 0), e pertanto la soluzione ottima per il problema originario è stata identificata senza avere bisogno di eseguire ulteriori calcoli. Questo è un esempio di un vincolo reso più stringente in un modo ~a ridurre la regione ammissibile per il rilassamento lineare senza l' eliminazione di nessuna soluzione ammissibile per il problema originario. Ciò era facile per questo problema in due variabili. La se· guente procedura algebrica può essere usata per rendere più stringente un qualunque vincolo di tipo :::; con un qualunque numero di variabili senza eliminare nessuna delle originarie soluzioni ammissibili. Procedura per rendere più stringente un qualunque vincolo di tipo :::;
Sia questo vincolo a 1x 1 + a 2x 2
+ .. . + a,,x
11 :::;
b.
l. Calcolare S = somma delle quantità ai positive.
2. Identificare ai =l O tale che S < b + l ai 1. (a) Se un tale ai non esiste, stop; il vincolo non può essere reso più stringente. (b) Se ai > O, andare al punto 3. (c) Se a1 < O, andare al punto 4. 3. (Caso a1 > O) Calcolare Zii = S - b e b = S- a1. Porre a1 = a1 e b punto l. 4. (Caso a1 < O) Aumentare a1 a a1 = b -S. Ritornare al punto l.
=b. Ritornare al
Applicando questa procedura al vincolo funzionale nel precedente esempio si ottiene: il vincolo è 2x 1 + 3x2 :::; 4
(a 1
= ____..2, az =
3, b
= 4).
l. s = 2 + 3 = 5. 2. a 1 soddisfa S < b + la1 l, dato che 5 < 4 + 2. Anche a2 soddisfa S < b + la2l, dato che 5 < 4 + 3. In modo arbitrario si scelga a 1 • 3. a1 = 5 - 4 = l e b = 5 - 2 = 3, e pertanto porre a 1 = l e b = 3. Il nuovo vincolo più stringente è x 1 + 3x2:::; 3 (a 1 = l , a2 = 3, b = 3).
9.8
BRANCH-AND-CUT E PROGRAMMAZIONE BINARIA
383
l. s =l+ 3 = 4. 2. a2 soddisfa S < b + la2 l, dato che 4 3.
a2 =
4- 3= l e più stringente è
b=
< 3 + 3. 4 - 3 = l, e pertanto pone a 2 = l e b = l. Il nuovo vincolo
x, + xz:::;
l
l. s = l+ l = 2. 2. Nessun ai 1- O soddisfa S < b + lai
(a,=
l,az = l,b= l )
l, stop; x 1 + x 2 :::;
l è il vincolo desiderato.
Se nella prima esecuzione del passo 2 nel precedente esempio si fosse scelto a 2 , allora il primo vincolo più stringente sarebbe stato 2x 1 + x 2 :::; 2. I passi successivi avrebbero condotto ancora a x 1 + x2 :::; l. Nell 'esempio seguente, la procedura rende il vincolo a sinistra più stringente ottenendo il vincolo sulla destra. La procedura è poi riapplicata per ottenere il terzo vincolo
4x 1
-
3x2 + x3 + 2x4 :::; 5
:::}
:::}
nmissibi1) - e la 1to lineal regione lineare è cata sen1 regione
: ammisli. La seque vinlle origi-
2x, - 3x2 + X3 + 2x4 :::; 3 2x 1 - 2x 2 + x 3 + 2x4 :::; 3
(Il Problema 9.8-3 richiede di applicare la procedura per verificare questi risultati). Per applicare direttamente questa procedura a un vincolo nella forma ~, è sufficiente covertirlo nella forma:::; (moltiplicando entrambi i termini per - l).
Generazione dei piani di taglio per problemi di programmazione binaria pura Un piano di taglio (o taglio) per un qualunque problema di PLI è un nuovo vincolo funzionale che riduce la regione ammissibile per il rilassamento lineare senza eliminare alcuna soluzione ammissibile per il problema di PLI. In effetti, è stato appena descritto un modo per generare piani di taglio per problemi di ·programmazione binaria, applicando la procedura per rendere più stringente un vincolo. Così , x 1 + x 2 :::; l è un piano di taglio per il problema considerato in Figura 9 .14, che riduci la regione ammissibile per il rilassamento lineare come mostrato in Figura 9.15. Oltre questa procedura, per la generazione di piani di taglio sono state sviluppate svariate altre tecniche che tendono a ridune il tempo necessario a un algoritmo di branchand-bound per determinare una soluzione ottima per un problema di programmazione binaria. L'attenzione venà focalizzata proprio su queste tecniche. Come esempio, si consideri il problema California Manufacturing Co. presentato nel Paragrafo 9.1 e usato per illustrare l'algoritmo di branch-and-bound nel Paragrafo 9.6. La soluzione ottima per il suo rilassamento lineare è indicata in Figura 9.5 ed è (x 1, x 2, x 3, x 4) = ( ~, l, O, 1). Uno dei vincoli funzionali è
6x, + 3x2 + 5x3 + 2x4 :::; lO mare al
x, + x2 +x4 :::; 2
ne:
!
Si può notare che, poiché le variabili sono binarie, questo vincolo implica che
l, dato
vincolo
Questo nuovo vincolo è un piano di taglio. Esso elimina una parte della regione ammissibile pe(j!_Jilassamento lineare, compreso la vecchia soluzione ottima, ( ~
,
l, O, l), ma
non elimina nessuna delle soluzioni ammissibili intere. L ' aggiunta di questo piano di taglio al modello originale migliorerà le prestazioni dell ' algoritmo di branch-and-bound descritto nel Paragrafo 9.6 (si faccia riferimento alla Figura 9.9) in due modi. Per prima cosa, la soluzione ottima per il nuovo rilassamento lineare (più stringente) è (l, l,
+,
0),
con Z = 15.2, così i bound per il nodo "completo", x 1 = l e il nodo (x 1, x 2) = (1, l) sono adesso 15 invece di 16. Secondo, è necessaria una iterazione in meno perché la soluzione
CAPITOLO 9
384
LA PROGRAMMAZIONE INTERA
ottima per il rilassamento lineare al nodo (x~> x 2 , x 3 ) = (1 , l , O) è adesso (1, l, O, 0), che fomisce una nuova soluzione incombente con Z* = 14. Di conseguenza, nella terza iterazione (si faccia riferimento alla Figura 9.8), questo nodo verrebbe eliminato dal criterio 3 e il nodo (x 1, x 2 ) = (1, O) verrebbe eliminato dal criterio l, rivelando quindi che questa soluzione incombente è la soluzione ottima per il problema originale. Di seguito viene descritta la procedura generale seguita per la generazione di piani di taglio.
Una procedura p er la generazione di piani di taglio
l. Considerare solo i vincoli funzionali nella forma :<::: che hanno coefficienti nonnegativi . 2. Determinare un gruppo di variabili (denominato una copertura minima del vincolo) tale che (a) il vincolo è violato se ogni variabile di questo gruppo è uguale a l e tutte le altre variabili sono uguali a O; (b) il vincolo viene soddisfatto se il valore di una qualunque di queste variabili viene cambiato da l a O. 3. Se N denota il numero delle variabili nel gruppo, il piano di taglio risultante ha la fo rma somma delle variabili del gruppo :<::: N - l. Applicando questa procedura al vincolo 6x 1 + 3x 2 che {xi. x 2 , x4 } è una copertura minima perché
+ 5x3 + 2x4
:<:::
10, si può osservare
(a) (! , l , O, l) viola il vincolo,
(b) il vincolo viene soddisfatto se il valore di una qualunque di queste tre variabili viene cambiato da l a O. In questo caso con N = 3, il piano di taglio risultante è x 1 + x 2 + x4 :<::: 2. Questo stesso vincolo ha inoltre una seconda copertura minima {x~> x 3 }, dato che (1 , O. l, O) viola il vincolo ma entrambi i punti (0, O, l, O) e (l , O, O, O) soddisfano il vincolo. Di conseguenza, x 1 + x 3 :<::: l è un altro valido piano di taglio. Il metodo di branch-and-cut consiste nel generare molti piani di taglio in maniera simile prima dell'applicazione di tecniche intelligenti di branch-and-bound. Il risultato di includere i piani di taglio può essere drammatico rendendo il rilassamento lineare molto più stringente. In alcuni casi, il gap tra il valore della soluzione ottima per il rilassamento lineare per il problema originario e il valore ottimo di questo problema è ridotto del 98%. Ironicamente, i primi algoritmi sviluppati per la programmazione intera, compreso l'algoritmo proposto da Ralph Gomory nell958, erano basati su piani di taglio (generati in modi diversi), ma, nella pratica, questo metodo è risultato insoddisfacente (tranne che per speciali classi di problema). Questi algoritmi erano basati solamente sui piani di taglio; i più recenti metodi combinano piani di taglio e tecniche di branch-and-bound (con il preprocessamento automatico del problema) e fomiscono un potente metodo algoritmico per risolvere i problemi di grandi dimensioni. A questi algoritmi ci si riferisce come algoritmi di tipo branch-and-cut ..
9.9
LA PROGRAMMAZIONE CON VINCOLI . \ Nessuna presentazione delle idee di base della programmazione intera può dirsi completa l oggi senza aver introdotto un interessante recente sviluppo- l'inclusione della tecniche di programmazione con vincoli (constraint programming) - che promette di incrementare enormemente la capacità di formulare e risolvere modelli di programmazione intera (queste stesse tecniche stanno anche iniziando a essere usate in aree affini della programmazione matematica, specialmente nella ottimizzazione combinatoria).
9.9
O, 0), che 'erza itera1criterio 3 questa so-
ji piani di
megativi . I vincolo) te le altre bili viene ha la for-
osservare
abili vie-
La natura della programmazione con vincoli Nella metà degli anni Ottanta, i ricercatori in informatica svilupparono la programmazione con vincoli combinando concetti di intelligenza artificiale con lo sviluppo di linguaggi di programmazione. L'obiettivo era realizzare un sistema di programmazione flessibile che includeva sia variabili che vincoli e allo stesso tempo permettesse la descrizione di procedure di ricerca che generassero valori ammissibili per le variabili. Ogni variabile ha un dominio di possibili valori , per esempio {2, 4, 6, 8, 10} . Invece dei vincoli usati nella programmazione matematica, c'è una grande flessibilità su come definire i vincoli . In particolare, i vincoli possono essere di uno qualunque dei tipi seguenti. l. Vincoli Matematici, per esempio, x + y < z. 2. Vincoli di tipo disgiuntivo, per esempio, i tempi per determinati task, nel problema da modellare, non possono coincidere. 3. Vincoli relazionali, per esempio, almeno tre task devono essere assegnati a una specifica macchina. 4. Vincoli espliciti, per esempio, benché sia x sia y abbiano domini {l, 2, 3, 4, 5}, (x, y) possono assumere solo i valori (1, 1), (2 , 3), oppure (4, 5). 5. Vincoli "unari", per esempio z è un intero tra 5 e 10. 6. Vincoli logici, per esempio, se x vale 5, allora y vale tra 6 e 8.
Quando si esprimono questi tipi di vincoli, la programmazione con vincoli permette l 'uso di varie funzioni logiche, come per esempio, IF, AND, OR, NOT e così sia. Excel comprende molte' di queste funzioni logiche. Per illustrare gli algoritmi usati dalla programmazione con vincoli per generare soluzioni ammissibili, si supponga che un problema abbia quattro variabili - xi, x 2 , x 3 , x 4 - e che i loro ·rispettivi domini siano XI
:he (1, O, 1colo. Di era Simitto di inlolto più nento lilei 98%. o l' algoti in moche per taglio; i n il premco per lgoritmi
)mp leta 1iche di nentare : intera 'Ogram-
385
LA PROGRAMMAZIONE CON VINCOLI
E {l , 2} , x 2 E {l, 2} ,
X3
E {l, 2, 3} , x4 E {1 , 2, 3, 4, 5},
dove il simbolo E significa che la variabile a sinistra appartiene ali 'insieme a destra. Si supponga inoltre che i vincoli siano
(l) tutte le variabili devono avere valori differenti, (2) XI +x3 = 4. Poiché i valori di l e 2 devono essere riservati per x i e x 2 , il primo vincolo implica immediatamente che x 3 E {3} , che quindi x 4 E { 4, 5} (questa procedura di eliminare possibili valori per le variabili è nota come riduzione del dominio). Quindi, poiché il dominio di x 3 è cambiato, il processo di propagazione dei vincoli si applica al secondo vincolo ottenendo che x 1 E {l}. Ciò modifica di nuovo la prima restrizione, cosicché XI
E {1} ,
X2
E {2} ,
X3
E {3} ,
X4
E {4, 5}
che è un elenco delle soluzioni ammissibili del problema. Questo tipo di ragionamento basato sull ' alternanza tra l'applicazione della riduzione del dominio e algoritmi di propagazione dei vincoli gioca un ruolo chiave in questo contesto. Dopo l' applicazione della propagazione dei vincoli e della riduzione del dominio a un problema, viene usata una procedura di ricerca per determinare l'insieme delle soluzioni ammissibili. Nell ' esempio sopra, poiché i domini di tutte le variabili, tranne x 4 , sono stati ridotti a un singOlo valore, la procedura di ricerca prova semplicemente i valori x 4 = 4 e x 4 = 5 per detemiinare l' insieme delle soluzioni ammissibili per questo problema. Per un problema con molti vincoli e variabili, la propagazione dei vincoli e la riduzione del dominio non riduce il dominio di ogni variabile a un singolo elemento. È dunque necessaria una procedura di ricerca che provi assegnamenti differenti ai valori delle variabili. Alla fine di questi assegnamenti, viene lanciato nuovamente l' algoritmo di propagazione dei vincoli e si ha una nuova riduzione del dominio. Il processo crea un albero di ricerca, che è simile all ' albero dell'algoritmo di branch-and-bound della programmazione intera.
386
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
Il procedimento complessivo per complessi problemi di PLI (o per problemi affini) prevede i seguenti tre passi:
l. formulazione di un modello compatto per il problema usando una varietà di vincoli (molti dei quali non rispetteranno il formato della programmazione intera); 2. ricerca efficiente di soluzioni ammissibili che soddisfino tutti questi vincoli; 3. ricerca di una soluzione ottima tra queste soluzioni ammissibili. La potenza della programmazione con vincoli risiede nella sua abilità di effettuare bene i primi due passi, laddove invece la forza principale della programmazione intera e dei suoi algoritmi risiede nell 'effettuare il terzo passo. Quindi, la programmazione con vincoli si adatta idealmente a un problema con molti e difficili vincoli e senza funzione obiettivo, cosicché l'unico scopo è quello di determinare una soluzione ammissibile. Comunque, essa si può anche estendere al terzo passo. Un modo per far ciò è enumerare le soluzioni ammissibili e calcolare il valore della funzione obiettivo per ognuna di queste. Ciò è estremamente inefficiente per problemi dove esistono numerose soluzioni ammissibili. Per aggirare questo ostacolo, l'approccio comune è quello di aggiungere un vincolo che limita fortemente la funzione obiettivo a valori che sono molto vicini a quella che si sa essere il valore ottimo. Per esempio, se l'obiettivo è massimizzare la funzione obiettivo e si sa in anticipo che il suo valore Z è approssimativamente l O per una soluzione ottima, si può aggiungere il vincolo Z ~ 9 cosicché le uniche soluzioni anunissibili rimanenti da elencare sono quelle molto vicine a essere quasi ottime. Ogni volta che una nuova soluzione migliore viene determinata durante la ricerca, il limite su Z viene ulteriormente rafforzato allo scopo di considerare solo soluzioni ammissibili che sono almeno buone quanto la migliore soluzione fmora determinata. Nonostante questo sia un ragionevole approccio per jl terzo passo, un approccio più interessante è integrare la programmazione con vincoli e la programmazione intera in maniera tale che ognuna di essa venga usata laddove è più forte - passi l e 2 per la programmazione con vincoli e passo 3 per la programmazione intera.
Le potenzialità della programmazione con vincoli Negli anni Novanta, le caratteristiche della programmazione con vincoli, compresi i potenti algoritmi di risoluzione erano incorporati in un certo numero di linguaggi di programmazione general-purpose, come pure in alcuni linguaggi special-purpose. Questo portò la scienza informatica sempre più vicina al Sacro Gral della programmazione: lasciare all ' utente il compito di specificare semplicemente il problema e demandarne la soluzione al computer. Non appena questi entusiasmanti sviluppi iniziarono a diffondersi al di là della comunità informatica, i ricercatori operativi compresero il grande potenziale che sarebbe derivato dall ' integrazione della programmazione con vincoli con le tecniche tradizionali della progranunazione intera (e anche con altre aree della programmazione matematica). La sua superiore flessibilità nell'esprimere i vincoli del problema avrebbe incrementato enormemente l'abilità nel formulare validi modelli per problemi sempre più complessi. Questo avrebbe anche portato a formulazioni molto più semplici e compatte. Inoltre, riducendo la dimensione della regione ammissibile e mantenendo allo stesso tempo efficiente la ricerca di soluzioni all'interno di tale regione, gli algoritmi di risoluzione dei vincoli avrebbero contribuito ad accelerare la capacità degli algoritmi della programmazione intera nella ricerca di soluzioni ottime. A causa delle loro sostanziali differenze, l'integrazione delJaProgrammazione con vincoli con la programmazione intera è un compito davvero arduo. Poiché la programmazione intera non riconosce molti dei vincoli della programmazione con vincoli, occorre tradurre dal linguaggio della programmazione con vincoli a quello della programmazione intera e viceversa: per gli anni a venire questa sarà indubbiamente una delle aree di ricerca in crescente sviluppo.
9.9
ti) preveli vincoli
re bene i : dei suoi ' incoli si >biettivo, 1que, es:ioni amestremaraggiraita forte~ il valo:n anticiaggiunare sono migliore allo scomigliore ::>più inin ma•rogrami
LA PROGRAMMAZIONE CON VINCOLI
Per illustrare il modo in cui la programmazione con vincoli può semplificare enormemente la formulazione di modelli di programmazione intera, introdurremo ora due dei più importanti "vincoli globali" della programmazione con vincoli. Un vincolo globale è un vincolo che esprime in maniera succinta uno schema globale nelle relazioni ammesse tra più variabili. Pertanto, un singolo vincolo globale spesso può sostituire ciò che normalmente avrebbe richiesto un grosso numero di tradizionali vincoli della programmazione intera, rendendo, allo stesso tempo, il modello molto più leggibile. Per chiarire il concetto, verranno proposti esempi molto semplici che non richiedono realmente l'uso della programmazione con vincoli per illustrare i vincoli globali, ma questi stessi esempi di vincoli possono anche essere usati per alcuni problemi molto più complessi.
Il vincolo "all-different" Il vincolo globale all-different specifica che tutte le variabili in un dato insieme devono assumere valori differenti. Se x 1, x 2 , . . . , x, sono le variabili considerate, il vincolo viene scritto in modo compatto come
all-different (x 1, x2. ... , x,) specificando al contempo il dominio di ciascuna delle variabili del modello (questi domini devono includere collettivamente almeno n valori differenti allo scopo di rispettare il vincolo). Per illustrare questo concetto, si consideri il classico problema dell'assegnamento presentato nel Paragrafo 7.3. Questo problema prevede l'assegnazione uno-a-uno di n risorse a n task con l'obiettivo di minimizzare il costo totale di questi assegnamenti. Sebbene il problema dell'assegnamento sia un problema particolarmente semplice da risolvere (come descritto nel Paragrafo 7.4) esso fa comprendere come il vincolo all-different possa semplificare enormemente la formulazione del modello. Con la formulazione tradizionale presentata nel Paragrafo 7.3, le variabili decisionali sono variabili binarie, Xij
~s i
i podi proQuesto one: late la so-
387
=
{~
se la risorsa i altrimenti
è assegnata al task j
per i,j = l , 2, ... , n. Ignorando per ora la funzione obiettivo, i vincoli funzionali sono i seguenti. Ogni risorsa i deve essere assegnata esattamente a un task: n
L:xu = 1
per i = l, 2, ... , n
)= l
;omuni:lerivato :Ila prosua su-
Ogni taskj deve essere eseguito esattamente da una risorsa: n
L:xu= 1
Questo :endo la L ricerca rebbero nella ri-
:on vmlillaziome tratone mricerca
per j = l , 2, . . . , n
i= l
~ norme-
Quindi, ci sono n 2 variabili e 2n vincoli funzionali. Per il modello molto più snello per la programmazione con vincoli le variabili sono y;
= task al quale la risorsa i è assegnata
per i = l , 2, . . . , n. Ci sono n task numerati l, 2, ... , n, cosicché ognuna delle variabili y; ha dominio {l, 2, ... , n}. Poiché a ogni risorsa deve essere assegnato un task differente, questo viene descritto in modo preciso dal singolo vincolo globale,
f
all-different 2
CYt, Y2, ... , Yn)
Quindi, piuttosto che avere n variabili e 2n vincoli funzionali, questo modello di programmazione con vincoli (esclusa la funzione obiettivo) ha solo n variabili e un singolo vincolo (più un dominio per ciascuna variabile).
388
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
Il prossimo vincolo globale è in grado di incorporare anche la funzione obiettivo in questo modello. Il vincolo "element"
Il vincolo globale element è quello usato più comunemente per determinare un costo o un profitto associato a una variabile intera. In particolare, si supponga che una variabile y abbia dominio {l , 2, . . . , n} e che il costo associato a ognuna di queste variabili sia rispettivamente cb c 2, . . . , C 11 • Il vincolo element (y, [c b Cz, ... , C
11 ] ,
z)
impone alla variabile z di eguagliare la y-esima costante nella lista [c 1, c2 , . • . , c 11 ]. In altre parole, z = cy. Questa variabile z ora può essere inclusa nella funzione obiettivo per fornire il costo associato a y. Per illustrare l'uso di questo vincolo, si consideri di nuovo il problema di assegnamento e sia eu = costo dell 'assegnazione della risorsa i al taskj per z, J , = l , 2, ... , n . Il modello completo di programmazione con vincoli (inclusa la funzione obiettivo per questo problema) è n
minimizzare
Z = l:z; i= l
soggetta a element (y;, [c n, c;2 , .. . , C;11 ] , z;) per i = l , 2, ... , n all-different (yl> yz, .. . Yn ) Y; E {l , 2, .. . , n} per i = l , 2, ... , n Questo modello completo ora ha 2n variabili e (n + l) vincoli (più un dominio per ciascuna variabile), che è ancora molto minore della tradizionale formulazione della programmazione intera presentata nel Paragrafo 7.3. Per esempio, quando n = 100, questo modello ha 200 variabili e l Ol vincoli, mentre il tradizionale modello di programmazione intera ha l O000 variabili e 200 vincoli funzionali. Come ulteriore esempio, si riconsideri l'Esempio 2 (Violazione dell 'assunzione di proporzionalità) presentato nel Paragrafo 9.4. In questo caso, le variabili decisionali originali sono x1 = numero di spot in TV allocati per il prodotto j
per)= l , 2, 3, con un totale di cinque spot da allocare per i tre prodotti. Poiché i profitti riportati nella Tabella 9.3 per diversi valori di ciascuna x1 non sono proporzionali a x1 , il Paragrafo 9.4 formula due modelli alternativi di programmazione intera, utilizzando variabili binarie ausiliarie. Entrambi i modelli sono alquanto complicati. Un modello di programmazione con vincoli che usa il vincolo element è molto più semplice. Per esempio, il profitto per il Prodotto l dato nella Tabella 9.3 è O, l , 3 e 3 per x 1 = O, l , 2 e 3, rispettivamente. Pertanto, tale profitto è semplicemente z 1 e il valore di z 1 è dato da element (x 1 + l , [0, l , 3, 3], z 1) La prima componente è x 1 + l invece che x 1 in quanto x 1 + l = l , 2, 3, o 4 ed esso è il 1 valore di questa componente che indica la scelta della posizione l , 2, 3~ o 4 nella lista [0, l , 3, 3] . Procedendo nello stesso modo per gli altri due prodotti, il modello complessivo risultante è massimizzare soggetto a
Z
= z 1 + zz + z3
9.9
LA PROGRAMMAZIONE CON VINCOLI
element (x 1 + l, [0, l , 3, 3], z 1)
vo in que-
element (x 2 element (x 3 costo o un 1bile y abia rispetti-
C11 ]. In alettivo per
~gnamen-
inclusa la
:r ciascuJrogram) modelne intera ~ di prooriginali
i profitti i a x1 , il .o varia)!to più e 3 per >re di z 1
sso è il lista [0, ,Jessivo
389
+ l , [0, O, 2, 3 ], z2) + l , [0, 21 , 2, 4] , z 3 )
x 1 +x2 + x 3 = 5 x1 E{0, 1, 2, 3} perj = l,2 , 3 Confrontando ora questo modello con i due modelli di programmazione intera per lo stesso problema (riportati nel Paragrafo 9.4), si nota come l' uso dei vincoli element fornisca un modello notevolmente più compatto e trasparente. I vincoli all-different ed element non sono altro che due dei possibili vincoli globali a disposizione, ma illustrano molto bene le potenzialità della programmazione con vincoli nel fornire un modello compatto e trasparente per un problema complesso . .
Alcuni sviluppi più recenti L'attività di ricerca relativa all' integrazione della programmazione con vincoli con la programmazione intera si sta muovendo lungo percorsi paralleli. L ' approccio più semplice è quello di usare simultaneamente entrambi i modelli di programmazione con vincoli e programmazione intera per rappresentare le parti complementari di un problema. Quindi, ogni vincolo importante viene incluso nel modello cui meglio si adatta, oppure, quando è possibile, in entrambi i modelli . Quando un algoritmo di programmazione con vincoli e un algoritmo di programmazione intera vengono applicati ai rispettivi modelli, le informazioni vengono scambiate tra i due modelli per focalizzare la ricerca sulle soluzioni ammissibili (quelle che soddisfano i vincoli di entrambi i modelli). Nonostante la doppia modellazione sia un buon primo passo, l'obiettivo è sempre quelIo di integrare pienamente la programmazione con vincoli e la programmazione intera di modo che possano essere usati un unico modello ibrido e un unico algoritmo. È questo tipo di integrazione che pern1etterà di unificare le forze delle due tecniche. Nonostante il pieno raggiungimento di questo obiettivo rimane una sfida temibile per la ricerca, vengono fatti dei progressi accettabili in questa direzione. 10 Recenti informazioni su questo argomento possono essere reperite nell 'articolo dell'autunno del 2002 del INFORMS Journal on Computing. Questo volume speciale è interamente dedicato all ' argomento della fusione della programmazione matematica (e in particolar modo di quella intera) con la programmazione con vincoli. Le pagine 315-316 e 352-353 di questa rivista includono riferimenti bibliografici relativi a un'ampia lista di applicazioni che hanno utilizzato con successo la programmazione matematica e la programmazione con vincoli. Le aree di applicazione comprendono la progettazione di rete, l'istradamento di veicoli, la definizione di turni di equipaggi, il classico problema del trasporto con costi lineari a tratti, problemi di gestione delle scorte, problemi di computer graphics, ingegneria del software, database, finanza e ottimizzazione combinatoria. Inoltre, vengono citate varie applicazioni a problemi di schedulazione, in quanto tale campo si sta dimostrando un'area particolarmente fertile per l'applicazione della programmazione con vincoli. 11 Per esempio, a causa dei molti e complicati vincoli di schedulazione delle gare, la programmazione con vincoli viene ora usata per determinare il calendario delle partite del campionato della National Football League negli Stati Uniti.
( °
1 Come esempio di tale progresso si faccia riferimento a V. Jain e LE. Grossman, "Algorithms for Hybrid MILP/CP Models fora Class of Optimization Problems", INFORMS Journal on Computing, 13(4): 258 -276, Fall 2001. 10 Per maggiori infonnazioni si faccia riferimento a P. Baptiste, C. LePape e W. Nuijten, Constraint-Based Scheduling: Applying Consrraint Programmino lo Scheduling Problems, Kluwer Academic Publi shers, Boston, MA, 2001.
390
CAPITOLO 9
LA PROGRAMMAZIONE INTERA
Queste applicazioni stanno solo iniziando ad attingere al potenziale derivante dali ' integrazione della prograrnn1azione con vincoli con la programmazione intera. Un ulteriore progresso verso il completamento di questa integrazione promette di aprire molte altre nuove opportunità per importanti applicazioni.
9.1 O CONCLUSIONI I problemi di PLI sorgono frequentemente poiché alcune o tutte le variabili decisionali devono assumere solo valori interi. Inoltre, molte applicazioni prevedono decisioni del tipo sì-no (comprese le relazioni combinatorie esprimibili in termini di tali decisioni) che possono essere rappresentate mediante variabili binarie (O-l ). Questi fattori hanno fatto della programmazione intera una delle tecniche più usate nella Ricerca Operativa. I problemi di PLI sono più difficili di quanto sarebbero senza i vincoli di interezza, e gli algoritmi disponibili per la programmazione intera sono generalmente molto meno efficienti del metodo del simplesso. I fattori più importanti che determinano il tempo di computazione sono il numero delle variabili intere e l'eventualità che il problema abbia le strutture speciali dei vincoli che possono essere sfruttate. Per un numero fissato di variabili intere, i problemi di programmazione binaria generalmente sono molto più facili da risolvere rispetto ai problemi con variabili intere generiche, ma l'aggiunta di variabili continue (PLI mista) potrebbe non incrementare sostanzialmente il tempo di computazione. Per tipi particolari di problemi con variabili binarie e una struttura speciale che può essere sfruttata da un algoritmo special-purpose, è possibile risolvere problemi molto grandi (con migliaia di variabili binarie). Ci sono altri problemi di dimensioni minori che non sono invece risolvibili. È ora ampiamente disponibile il software per la soluzione di problemi di PLI basati sulla tecnica di branch-and-bound o sue varianti. Alcuni più recenti algoritmi per PLI usano l'approccio basato su branch-and-cuc. Questo approccio algoritmico prevede la combinazione di un preprocessamento automatico del problema, la generazione di piani di tagli e tecniche intelligenti di branch-andbound. La ricerca in questo campo sta andando avanti, assieme allo sviluppo di nuovi pacchetti software che incorporano queste tecniche. L'ultimo sviluppo nella metodologia per problemi di PLI è l 'utilizzo della programmazione con vincoli. Questo approccio potrà aumentare enormemente la capacità di fommlare e risolvere modelli di PLI.
•
RIFERIMENTI BIBLIOGRAFICI l. Barnhart, C. , E.D. Johnson, G.L. Nemhauser, M.W.P. Savelsbergh e P.H. Vance: " Branch and
2. 3. 4. 5. 6. 7.
Price Column Generati an for Solving Huge Integer Programs", Operations Research, 46: 31 6329, 1998. Bixby, R.E. , M. Fenelon, Z. Gu, E. Rothberg e R. Wunderling: "MIP: Theory and Practice Closing the Gap ", Proceedings of!FIP TC7 Conference, Cambridge 1999. Crowder, H., E.L. Johnson e M. Padberg: "Solving Large-Scale Zero-Ope Linear Programming Problems" , Operations Research, 31: 803 -834, 1983. Hillier, F.S. e M. S. Hillier: lntroduction to Management Science: A Modeling and Case Studies Approach with Spreadsheets, 2nd ed., McGraw-Hillllrwin, Burr Ridge, IL, 2003, chap. 9. Hoffman, K.L. e M. Padberg: "Improving LP-Representations of Zero-One Linear Programs for Branch-and-Cut", ORSA Journal on Computing, 3: 121-134, 1991. Hooker, J.: Logic-Based Methods far Optimization: Combining Optimization and Constraim Satisfaction, Wi1ey, New York, 2000. Johnson, E.L., M.M. Kostreva e U.H. Suh1: "So1ving 0-1 Integer Programming Prob1ems Arising from Large Scale Planning Models ", Operations Research, 33: 803 -819, 1985 .
1
391
PROBLEMI
dali' integralteriore pro. altre nuove
8. Linderoth, J.T. e M.W.P. Savelsbergh: " A Computational Study ofSearch Strategies for Mixed Integer Programming" , INFORMS Journal on Computing, 11: 173-187, 1999 . 9. Nustig, I. e J.-F. Puget: "Program Does Not Equa! Program: Constraint Programming and Its Relationship to Mathematical Prograrnming", lnterfaces, 31(6): 29-53 , November-December 2001. 10. Nemhauser, G.L. e LA. Wolsey: Integer and Combinatoria/ Optimization, Wiley, New York, 1988, reprinted in 1999. 11. Schriver, A.: Th e01y of Linear and lnteger Programming, Wiley, New York, 1986. 12. Van Roy, T.J. e L.A. Wolsey: " Solving Mixed 0- 1 Programs by Automatic Reformulation", Operations Research, 35: 45-57, 1987. 13. Williams, H.P.: Mode/ Building in Mathematical Programming, 4th ed., Wiley, New York, 1999. 14. Wolsey, L.A.: Integer Programming, Wiley, New York, 1998. 15. Wolsey, L.A.: " Strong Formulations for Mixed Integer Programs: Valid Inequalities and Extended Formulations" , Ma thematical Programming Series B, 97( 12): 423-447, 2003.
;isionali deoni del tipo 1i) che pos) fatto della interezza, e :o meno efil tempo di ,lema abbia ;sato di valiù facili da riabili conlputazione. può essere )lto grandi :he non sobasati sulh-and-cw.
'automati~anch-and
nuovi pacogramma-
i formula-
PROBLEMI 9.1-1. Si riconsideri l'esempio della California Manufacturing Co. presentato nel Paragrafo 9.1. Il sindaco di San Diego ha contattato il presidente dell ' azienda per provare a convincerlo a costruire una fabbrica e probabilmente ùn magazzino per le vendite in quella città. Con gli incentivi sulla tassazione offerta all ' azienda, si stima che il valore attuale netto per la costruzione di una fabbrica a San Diego sia pari a 7 milioni di dollari e l'ammontare di capitale richiesto per far ciò sarebbe 4 milioni di dollari. Il valore attuale netto per la costruzione di un magazzino è 5 milioni di dollari e il capitale richiesto 3 milioni di dollari. (L'eventualità di costruire un magazzino è da considerare solo nel caso che si prendesse la decisione di costruire lì anche la fabbrica). Il presidente dell ' azienda vuole ora che i precedenti risulati venissero revisionati per tener conto di queste nuove alternative nel problema complessivo. L ' obiettivo è ancora quello di trovare combinazioni ammissibili di investimenti che massimizzino il valore attuale netto totale, e l'ammontare di capitale disponibile per questi investimenti è pari a l Omilioni di dollari.
(a) Si formuli un modello di programmazione binaria per questo problema (b) Si riporti questo modello su di un foglio Excel.
3ranch and 11,46:31 6td Practice ne
Linear
9.1-2* Una giovane coppia, Eve e Steven, vuole suddividersi i principali lavori domestici (fare la spesa, cucinare, lavare i piatti , e fare il bucato) in modo tale che ognuno abbia due compiti, ma che il tempo totale che essi dedicano a questi doveri sia minimo. La loro bravura sui vari doveri sono diverse, e i tempi che servono a ciascuno di loro per fare i lavori domestici sono dati dalla seguente tabella.
1se Studi es . 9. Programs
Tempo necessario per settimana
':onstraint Problems 5.
Eve Steven
l
Fare la spesa
Cucinare
Lavare i piatti
Lavanderia
4,5 ore 4,9 ore
7,8 ore 7,2 ore
3,6 ore 4,3 ore
2,9 ore 3,1 ore
(a) Si formuli un modello di programmazione binaria per questo
problema. (b) Si ripor1i questo modello su di un foglio Excel. 9.1-3. Il consiglio di amministrazione della Generai Wheels Co. sta considerando la possibilità di effettuare sette grossi investimenti di capitali. Ogni investimento può essere fatto una sola volta. Questi investimenti differiscono per il profitto stimato a lungo tem1ine (valore attuale netto) che genereranno come pure nella somma del capitale da impegnare, come mostrato nella tabella qui di seguito (in milioni di dollari):
Opportunità di investimento
Profitto stimato Capitale richiesto
l
2
3
4
5
6
7
17 43
10
28
15 34
19 48
7 17
13 32
9 23
L'ammontare totale di capitale disponibile per questi investimenti è di 100 milioni di dollari. Le opportunità di investimento l e 2 sono mutuamente esclusive così come lo sono la 3 e la 4. Inoltre, nè la 3 nè la 4 possono essere intraprese senza che una tra le prime due opportunità venga scelta. Non ci sono simili restrizioni per gli investimenti 5,6 e 7. L'obiettivo è selezionare la combinazione di investimenti di capitale che massimizzi il profitto totale stimato a lungo tem1ine (valore attuale netto).
(a) Si formuli un modello di programmazione binaria per questo problema. .r----
9.3-l. La divisione di Ricerca e Sviluppo della Progressive Company vuole sviluppare quattro possibili nuove linee di prodotti. Il management deve decidere quali di queste linee di prodotti verranno attivati e a che livelli. Un costo notevole è associato allo start-up della produzione di ogni prodotto, come mostrato nella prima colonna della tabella seguente. L'obiettivo è trovare il mix di prodotti che massimizza il profitto totale (il ritorno netto totale meno i costi di start-up ).
CAPITOLO 9
392
lA PROGRAMMAZIONE INTERA
Prodotto 2
1
Costo di start-up Ricavo marginale
$50000 70
$
$40000 60
$
4
3
$70000 90
$
$60000 80
$
Si considerino variabili decisionali continue x i, x 2, x 3, e x 4 corrispondenti ai livelli di produzione dei prodotti l, 2, 3 e 4 rispettivamente. Il management ha imposto la seguente politica su queste variabili.
l. Non più di due prodotti possono andare in produzione. 2. Il prodotto 3 o il prodotto 4 possono essere prodotti se si decide di produrre rispettivamente o il prodotto l o il prodotto 2. 3. 5xi
+ 3x2 + 6 x 3 + 4x4 :S 6000
oppure
4xi
+ 6x2 + 3x3 + 5x4 :S 6000.
(a) Introdurre variabili ausiliarie binarie per formulare un modello di programmazione binaria mista per questo problema. 9.3-2. Si supponga che un modello matematico si adatti alla programmazione lineare eccetto che per la restizione che lxi - x2 l = O, o 3, o 6. Si mostri come formulare questa restrizione per addattarsi a un modello di programmazione intera mista. 9.3-3. Si supponga che un modello matematico si adatti alla programmazione lineare eccetto che per le restizioni seguenti
l. Almeno una delle seguenti diseguaglianze sia soddisfatta:
xi +x2 +x3 + x 4 :S 4 3xi - x 2 - x3 + x 4 :S 3 2. Almeno due delle seguenti quattro diseguaglianze siano soddisfatte:
5xi + 3x2 + 3x3 - X4 :S IO 2xi + 5x2 - X3 + 3x4 :S IO - xi + 3x2 + 5x3 + 3x4 :S lO
lungo raggio, 3 milioni di dollari per ogni velivolo a medio raggio, e 2.3 milioni per ogni velivolo a piccolo raggio. Si prevede per l'azienda che siano disponibili un numero sufficiente di piloti addestrati per equipaggiare 30 nuovi aerei. Se fossero acquistati solo velivoli a corto raggio, le officine potrelr bero gestire fino a 40 nuovi aerei. Comunque, ogni velivolo a l medio raggio equivale a l velivoli a corto raggio, e ogni veli3 2 volo a lungo raggio equivale a l velivoli a corto raggio in ter-
3
mini di gestione in officina. Si desidera sapere quanti aereoplani di ciascun tipo dovrebbero essere comprati per massimizzare il profitto. (a) Si formuli un modello di PLI per questo problema. (b) Risolvere il problema mediante Excel. (c) Usando la rappresentazione binaria delle variabili, riformulare il modello precedente come problema di programmazione binaria. 9.3-5. La Fly-Right Airplane Company costruisce piccoli aere. da vendere ad aziende a uso dei loro dirigenti. Per soddisfare i bisogni di questi dirigenti, i clienti di questa compagnia a volte ordinano un velivolo personalizzato da acquistare. Quando ciò capita, ci si trova a fronteggiare un cospicuo costo di start-up per lanciare la produzione di questi aereoplani . La Fly-Right ha recentemente ricevuto richieste di acquisto da parte di tre clienti con scadenze molto stringenti. Comunque. poiché le fabbriche dell ' azienda sono già impegnate a evadere ordini precedenti, non è possibile accettare tutti e tre gli ordini. Pertanto, deve essere presa una decisione sul numero di aereoplani che l'azienda acconsentirà a produrre (se acconsentirà) per ciascuno dei tre clienti. I dati sono riportati nella tabella successiva. La prima riga fornisce i costi di start-up necessari per avviare la produzione degli aereoplani per ogni cliente. Una volta che la produzione è iniziata, il ritorno netto marginale (che è pari al prezzo di acquisto meno il costo marginale di produzione) da ciascun aereo prodotto è mostrato nella seconda riga. Nella terza riga ci sono le percentuali della capacità di produzione disponibili per la produzione di ciascun velivolo. L'ultima riga indica il numero massimo di aereoplani richiesti da ogni cliente. Cliente
3xi- x2+ 3x3 +5x4 :S IO Si mostri come formulare queste restrizioni per addattarsi a un modello di programmazioni intera mista. 9.3-4.* La Northeastem Airlines sta valutando l'acquisto di nuovi jet per passeggeri a lungo, medio e corto raggio. Il prezzo di acquisto è di 67 milioni di dollari per ogni velivolo a lungo raggio, 50 milioni di dollari per ogni velivolo a medio raggio, e 35 milioni di do1Jari per ogni velivolo a corto raggio. Il consiglio di amministrazione ha autorizzato una spesa massima di 1.5 miliardi di dollari per questi acquisti. Indipendentemente da quali velivoli vengono acquistati, si vuole che questi aereoplani vengano comunque utilizzati alla capacità massima. Si stima che il profitto annuale netto (dopo aver sottratto il costo relativo alla restituzione di capitale) è di 4.2 milioni di dollari per ogni velivolo a
Costo di start-up Ricavo marginale netto Capacità usata per aereo Ordine massimo
1
2
3
$3 milioni $2 milioni 20% 3 aerei
$2 milioni $3 milioni 40% 2 aerei
$0.8 milioni 20% 5 aerei
o
La Fly-Right vuole ora determinare quanti aereoplani produrre (se ne devono essere prodotti) per ciascun cliente per massimizzare il profitto totale del! ' azienda (il ritorno totale netto meno il costo di start-up ). (a) Si formuli un modello per questo problema con variabili sia intere che binarie. (b) Utilizzare Excel per risolvere questo problema.
393
PROBLEMI
1
medio rag-
numero suf>vi aerei. Se ci ne potrebti velivolo a e ogni veli-
9.4-1. Si riconsideri il problema della Fly-Right Airplane Co. descritto nel Problema 9.3 -5. Un ' analisi più dettagliata dei vari fattori di costo e di ritorno ha rilevato che il potenziale profitto derivante dalla produzione di aerei per ogni cliente non può essere espresso semplicemente in termini di costo di start-up e ritorno marginale netto fisso per ogni aereoplano prodotto. Invece, i profitti sono dati dalla seguente tabella.
aggio in ter-
Aeroplani prodotti o dovrebbe-
o
o
o
$1 m ilione $2 milioni $4 milioni
$1 milione $2 milioni
$1 milione $3 milioni $5 milioni $6 milioni $7 milioni
i, riformularammazione
3 4 5
ma riga forJzione degli me è iniziacquisto me) prodotto è J le percenproduzione massimo di
3
l 2
acquisto da Comunque. e a evadere e gli ordini. ro di aereotsentirà) per
2
l
o .a.
Jiccoli aerei soddisfare i gnia a volte Quando ciò start-up per
Profitto dal cliente
(a) Si formuli un modello di programmazione binaria per questo
problema che includa restrizioni per le alternative mutuamente esclusive. (b) Si formuli un altro modello di programmazione binaria per questo modello che comprenda restrizioni per decisioni contingenti. 9.4-2. Si riconsideri il problema della Wyndor Glass Co. presentato nel Paragrafo 3.1. L' amministrazione ha deciso ora che solo uno dei due nuovi prodotti andranno in produzione, e che la scelta deve essere effettuata sulla base della massimizzazione del profitto. Si introducano variabili ausiliarie binarie per formulare un modello di programmazione intera mista per questa nuova versione del problema. 9.4-3. Si consideri il seguente problema di programmazione intera non lineare.
Yu =
Z = 4x ~ -x ~+ !Ox ~ - x i
9.4-4.* Si consideri il seguente problema di cammino mtmmo (Paragrafo 9.3) dove i nodi sono in colonne consecutive e i soli percorsi possibili si muovono sempre in avanti di una colonna alla volta
I valori accanto agli archi rappresentano le distanze, e l' obiettivo è determinare il cammino minimo dall'origine alla destinazione. Tale problema può anche essere formulato come un problema di programmazione binaria avente sia alternative mutuamente esclusive che decisioni contingenti.
(a) Si formuli questo modello. Si identifichino i vincoli che corrispondono ad alternative mutuamente esclusive e quelle che si riferiscono a decisioni contingenti. 9.5-1.* Dato il seguente problema di PLI.
Massimizzare
-xi + 2xz:::; 4 XI -
dove XI
3
o
10.8 m ilioni
20% 5 aerei
ni produrre
r masstmtz-
:tto meno il
variabili sia
2 O,
xz 2 O
x i e x 2 sono intere.
Questo problema può essere riformulato in due modi differenti come un equivalente problema di programmazione binaria pura (con una funzione obiettivo lineare) con sei variabili binarie CYv e y 21 perj = l, 2, 3), a seconda dell ' interpretazione data alle variabili binarie. (a) Si formuli un modello di programmazione binaria per questo problema dove le variabili binarie hanno il significato Yu =
{b
se x; =i altrimenti
(b) Si formuli un modello di programmazione binaria per questo problema dove le variabili binarie hanno il significato
+
Xz
:S
x2
:::;
12
dove Xt
+xz:::; 3
Z = 5xi + xz
soggetto ai vincoli
soggetto ai vincoli XI
se x; 2 ) altrimenti
(c) Utilizzare Excel per risolvere il modello formulato al punto (c) e, quindi, identificare una soluzione ottima per (xi, x 2) per il problema originale.
4x i
Massimizzare
{b
2 O,
x i> x2
Xz
2 O
variabili intere.
(a) Risolvere questo problema graficamente. (b) Risolvere graficamente il rilassamento lineare. Approssimare questa soluzione alla soluzione intera più vicina e verificare se è ammissibile. Quindi enumerare tutte le soluzioni ottenute approssimando questa soluzione per il rilassamento lineare in tutti i modi possibili (cioè, approssimando ogni valore intero sia per eccesso che per difetto). Per ogni soluzione, cancolarne l' ammissibilità e, in caso affermativo, calcolare Z. Qualcuna di queste soluzioni è ottima per il problema di PLI? 9.5-2. Seguire le istruzioni del Problema 9.5-1 per il seguente problema di programmazione binaria.
Massimizzare soggetto ai vincoli
Z = 2xi
+ 5xz
CAPITOLO 9
394
LA PROGRAMMAZIONE INTERA
10x 1 + 30x2 :::; 30 :::; 75
mando ogni variabile all ' intero più vicino) è una soluzione ammissibile per il problema di PLI.
95x 1 - 30x2 dove
9.6-4.* Si consideri il problema di assegnamento con la seguente tabella dei costi:
x 1, x 2 variabili binarie. 9.5-3. Dire se ognuna delle seguenti affennazioni è Vera o Falsa, e quindi giustificate la vostra risposta riferendovi a frasi specifiche (citando la pagina) nel capitolo. (a) I problemi di programmazione lineare sono generalmente molto più semplici da risolvere rispetto ai problemi di PLI. (b) Per problemi di PLI, il numero di variab ili intere è generalmente più importante nel determinare la difficoltà computazionale rispetto al numero di vincoli funzionali. (c) Per risolvere un problema di PLI con una procedura appropriata, si può applicare il metodo del simplesso al rilassamento lineare e quindi approssimare ogni valore non intero all'intero più vicino. Il risultato sarà una soluzione amm issibile, ma non necessariamente ottima, del problema di PLI. 9.6-t.* Usare l'algoritmo di branch-and-bound presentato nel Paragrafo 9.6 per risolvere il seguente problema. Z = 2x, - Xz
Massimizzare
+ 5x3
- 3x4
x, -
Risorsa assegnata
2
3
4
5
39 64 49 48 59
65 84 50 45 34
69 24 61 55 30
66 92 31 23 34
57 22 45 50 18
(a) Progettare un algoritmo di branch-and-bound per 1isolvere tale problema specificando come effettuare i passi di branching, bouding e fathoming. (Suggerimento: per le risorse cui non è stato già assegnato un task, costruire il rilassamento cancellando i vincoli che ognuno di queste risorse deve eseguire esattamente un task). (b) Usare questo algoritmo per riso lvere questo problema.
9.6-5. Si consideri il rilassamento lagrangiano descritto alla fine del Paragrafo 9.6 .
+ 7x 3 -
x 2 + 2x 3
-
5x4
4x4
+ 4x 5 :::; 6 + 2x5 :::; O
dove
x1 variabile binaria,
per j = l , 2, ... , 5.
9.6-2. Usare l'algoritmo di branch-and-bound presentato nel Paragrafo 9.6 per risolvere il seguente problema in maniera interattiva. Minimizzare
l
2 3 4 5
l
+ 4xs
soggetto ai vincoli 3x, - 2x 2
Task
Z = 5x 1 + 6xz
+ 7x3 + 8x4 + 9xs
9.7-1.* Si consideri il seguente problema di PLI. Massimizzare
soggetto ai vincoli
3x, - x 2 + x 3 + X4 - 2x 5 2 2 x 1 + 3x2 - x3 - 2x4 + Xs 2 O -x , - Xz + 3x3 + X4 + Xs 2 l
Z = -3x 1 +5xz
soggetto ai vincoli
5x 1 - 7xz 2 3 dove
dove
x1 variabile binaria,
(a) Se x è una soluzione ammissibile per un problema di programmazione intera mista, mostrare che x deve anche essere una soluzione ammissibile per il conispondente rilassamento Lagrangiano. (b) Se x* è una soluzione ottima per un problema di programmazione intera mista, con valore della funzione obiettivo Z, mostrare che Z :::; Z'R, dove Z'R è il valore ottimo della funzione obiettivo per il corrispondente rilassamento Lagrangiano.
perj = l , 2, ... , 5.
Xj Xj
9.6-3. Si considerino le seguenti affermazioni riguardanti i problemi di PLI pura (in forma di massimizzazione) e il ri spetti vo rilassamento lineare. Dire se ogni affermazione è Vera o Falsa, e quindi giustificare la risposta. (a) La regione ammissibile per il rilassamento lineare è un sottoinsieme della regione ammissibile del problema di PLI. (b) Se una soluzione ottima per il rilassamento lineare ha componenti intere, allora il valore ottimo della funzion e obiettivo è lo stesso per entrambi i problemi. (c) Se una soluzione non intera è ammissibile per il rilassamento, allora la soluzione intera più vicina (ottenuta approssi-
:S 3 20
x1 variabile intera,
perj = l , 2.
(a) Risolvere questo problema graficamente. (b) Usare l'algoritmo di branch-and-bound presentato nel Paragrafo 9.7 per risolvere questo problema. Per ogni sottoproblema, risolvere il suo rilassamento lineare graficamente. (c) Usare la rappresentazi one binaria per le variabili intere per rifonnulare questo problema come w1 problema di programmazione binaria. (d) Usare l'algoritmo di branch-and-bound presentato nel Paragrafo 9.6 per risolvere il problema formulato nel punto (c).
395
PROBLEMI
ta soluzione
la seguente
9.7-2. Segu ire le istruzioni del Problema 9.7- 1 per il seguente problema di PLI. Minimizzare
Z = 2xl
x 1 + x2 2
5
57
22 45 50 18
er risolvere >si di branr le risorse rilassamenisorse deve
ema. :to alla fme ma di pro1che essere lassamento rogrammativo Z, mola funzione 1giano.
:ntato nel Jgni sottofìcam ente. intere per i program-
:ntato nel nel punto
3 26
dove
x 1 2 O,
xz 2 O
x 1, x 2 vari ab ili intere.
9.7-3. Si consideri l' esempio di PLI discusso nel Paragrafo 9.5 e illustrato in Figura 9.3. Usare l' algoritmo di branch-and-bound presentato nel Paragrafo 9.7 per riso lvere questo problema. 9.7-4. Un negozio produce due prodotti. Ogn i unità del primo prodotto richiede 3 ore sulla macchina l e 2 ore sulla macchina 2. Ogni unità del secondo prodotto richiede 2 ore sulla macchina l e 3 ore sulla macchina 2. La macchina l è disponibile solo 8 ore al giorno e la macchina 2 solo 7 ore al giorno. Il profitto per ogni unità venduta è 16 per il primo prodotto e IO per il secondo. Il totale di quanto prodotto in un giorno deve essere un multiplo di 0.25 (ciascun prodotto fina le). L ' obiettivo è determinare il mix di prodotti che massimizza il profitto. (a) Formulare un modello di PLI per questo problema. (b) Risolvere questo modello graficamente. (c) Usare l'analisi grafica per applicare l'algoritmo di branch-
and-bound presentato nel Paragrafo 9.7 per risolvere questo modello. 9.8-1.* Per ognuno dei seguenti vinco li per problemi di programmazione binaria pura, usare il vincolo per fissare quante più variabili possibili. (a) 4x i + x2 + 3x3 + 2x4::; 2 (b) 4xi - x2 + 3x3 + 2x4 ::; 2 (c) 4xi - x2 + 3x3 + 2x4 2 7
9.8-2. Usare il seguente insieme di vincoli per lo stesso problema di programmazione binaria pura per fissare quante più variabili possibili. Identificare inoltre i vincoli che diventano ridondanti a causa delle variabili fi ssate.
+ X7 ::; l x2 + X4 + x 6 ::; l x1 - 2xs + 2x6 2 2 X1 + X2- X4 ::; 0
3x3 -
3xi - 2x 2 + x 3
::;
3
+ 3xz
soggetto ai vi ncoli x 1 + 3x2
ti al seguente vinco lo (le variab ili sono tutte variabili binarie).
xs
9.8-3. Nel Paragrafo 9.8 si è indicato che il vinco lo 4x 1 - 3x2 + x 3 + 2x4 ::; 5 può essere reso più stringente nella forma 2x 1 3x 2 + x 3 + 2x4 ::; 3 e quindi a 2x 1 - 2x2 + x 3 + 2x 4 ::; 3. Si applichi la procedura per rendere vincoli più stringenti per confermare questi risu ltati. 9.8-4. Si applichi la procedura per rendere i vinco li più stringen-
9.8-5. Nel Paragrafo 9.8 è stato considerato un esempio di problema di programmazione binaria pura con il vinco lo 2x 1 + 3x2 ::; 4. Si mostri come app licando la procedura per generare piani di taglio a partire da questo vincolo si ottenga x 1 + x 2 ::; l. 9.8-6. Uno dei vincoli di un problema di programmazione binaria pura è
x1
+ 3x2 + 2x3 + 4x4
::; 5
Identificare tutte le coperture minime ottenute a partire da questo vincolo, e quindi costruire i corrispondenti piani di taglio. 9.8-7. Generare quanti più piani di taglio possibili a partire dal seguente vincolo per un problema di programmazione binaria pura.
3x1
+ 5x2 + 4x3 + 8x4
::; 10.
9.9-1. Si consideri il seguente problema. Massimizzare
Z = 3xl
+ 2x2 + 4x3 + X4
soggetto ai vincoli
X1 E {1 , 3}, X2 E {! , 2} , X3 E {2, 3} , X4 E {1 , 2, 3, 4} , tutte queste variabili devono avere valori differenti,
x1 + x2 +x3 + x4 ::; 10 Usare la tecnica della programmazione con vincoli (riduzione de i domini, propagazione delle restrizioni, procedura di ricerca, ed enumerazione) per identificare tutte le soluzioni ammissibili e quindi determinare una soluzione ottima. 9.9-2. Si consideri il seguente problema. Massimizzare Z = 5x1
-xf + 8x2 - ~ + lOx3 - ~ + !Sx4
- x~
+ 20xs -
x~
soggetto ai vincoli
X1 E {3, 6, 12} , X2 E {3 , 6} , X3 E {3, 6, 9, 12} , x4 E {6, 12}, x 5 E {9, 12, 15, 18} tutte queste variabili devono avere valori differenti,
x1 + x3 +x4 ::; 25 Usare la tecnica della programmazione con vincoli (riduzione dei domini, propagazione delle restrizioni, procedura di ricerca, ed enumerazione) per identificare tutte le soluzioni ammissibili e quindi detenninare una soluzione ottima. 9.9-3. Si consideri l'esempio introdotto nel Paragrafo 7.3. La Tabella 7.25 mostra la sua formulazione come problema di assegnamento. Si usino i vincoli globali per formu lare un modello compatto per questo problema di assegnamento.
C A lA l
o
Programmazione nonlineare
I
l ruolo fondamentale della programmazione lineare nella Ricerca Operativa è testimoniato dal fatto che la sua trattazione costituisce una parte considerevole di questo libro. Un'assunzione chiave della programmazione lineare è che tutte le funzioni coinvolte (funzioni obiettivo e vincoli) sono lineari. Sebbene questa assunzione sia sostanzialmente vera per svariati problemi pratici, in alcuni casi però non è valida. Infatti, molti economisti hanno rilevato che un certo grado di nonlinearità è la regola, piuttosto che l'eccezione. nei problemi di pianificazione economica. 1 Pertanto, spesso è necessario trattare direttamente con problemi di programmazione nonlineare, ed è questo l'argomento di questo capitolo. Nella fom1a generale, 2 il problema di programmazione nonlineare è determinare x =(x~> x 2 , . .. , X 11 ) tale da massimizzare
f(x ),
soggetto ai vincoli g;(x) :::; b;
per i= l , 2, ... , m
e x ~ O
in cui./(x) e g;(x) sono funzioni note delle n variabili decisionali. 3 Ci sono molti tipi differenti di problemi di programmazione nonlineare, a seconda delle caratteristiche delle funzioni .l(x) e g;(x). Ovviamente, algoritmi differenti vengono adoperati per differenti tipi di problemi. Quando le funzioni sono abbastanza semplici, il problema può essere risolto in maniera relativamente efficiente. In altri 'casi, persino risolvere problemi di piccola dimensione è una vera e propria sfida. La programmazione nonlineare è un argomento particolarmente vasto e non c'è spazio a sufficienza qui per una trattaziope completa. Comunque, prima verrà presentata qualche applicazione e poi saranno introdotte alcune idee basilari per la risoluzione di alcuni importanti tipi di problemi di progrltnmazione nonlineare. Le Appendici l e 2 contengono un utile background per questo capitolo, e si raccomanda una loro lettura prima di studiare i prossimi paragrafi.
1
Per esempio, si faccia riferimento a W.J. Baumol e R.C. Bushnell, "Error Produced by Linearization in Mathematical Programmino" , Econometria , 35: 44 7-4 71, 1967. 2 Le altre forme legittime corrispondono a quelle per la programmazione lin eare elencate nel Paragrafo 3.2. D Paragrafo 4.6 descrive come convertirle nella forma qui riportata. 3 Per semplicità, in tutto il capitolo si assume che tutte queste funzioni siano o differenziabili oppure lineari a traiti (questo caso è discusso nei Paragrafi l 0.1 e l 0.8).
10.1
10.1
ALCUNE APPLICAZIONI DELLA PROGRAMMAZIONE NONLINEARE
397
ALCUNE APPLICAZIONI DELLA PROGRAMMAZIONE NONLINEARE Gli esempi che seguono illustrano alcuni importanti tipi di problemi di programmazione nonlineare.
Mix ottimo di prodotti con elasticità di prezzo Nei problemi di mix ottimo di prodotti, come il problema della Wyndor Glass Co. del Paragrafo 3 .l , l'obiettivo è determinare il mi x ottimo dei livelli di produzione per i prodotti di un 'azienda, dati i vincoli relativi alle risorse necessarie a produrli, con lo scopo di massimizzare il profitto totale dell 'azienda. In alcuni casi, a ciascun prodotto è associato un profitto unitario fisso , cosicché la funzione obiettivo risultante è lineare . In molti altri problemi, ci sono alcuni fattori che introducono nonlinearità nella funzione obiettivo. Un esempio è quello della elasticità del prezzo, per cui la quantità di prodotto che può essere venduta è inversamente proporzionale al prezzo di vendita. In questo caso, la curva prezzo-domanda per un prodotto è simile a quella in Figura l 0.1, dove p(x) è il prezzo richiesto per poter vendere x unità di prodotto. Il profitto derivante dalla produzione e vendita di x unità di prodotto è quanto si ottiene dalla vendita, xp(x ), meno i costi di produzione e di distribuzione. Pertanto, se il costo unitario per la produzione e la distribuzione è c (si veda la linea tratteggiata in Figura l 0.1), il profitto derivante dalla produzione e dalla vendita di x unità è dato dalla funzione non lineare
è testimouesto libro. i coinvolte tnzialmente :i economi'eccezione. are direttaquesto ca1
P (x ) = xp (x) -ex come mostrato in Figura 10.2. Se ciascuno degli n prodotti dell 'azienda ha una funzione di profitto simile, sia essa P1 (x1), per produrre e vendere x1 unità di prodotto j (j = l , 2, ... , n), allora la funzione obiettivo complessiva è .----···-·-·-----11 /'
leterminare
·( J (x) = . '"
~accoman-
P1(xj)
}= l
\
.. /
che è somma di fun zioni nonlineari. Un altro motivo per cui sorgono nonlinearità nella funzione obiettivo è che il costo marginale per la produzione di una unità aggiuntiva di un dato prodotto varia con i livelli di produzione. Per esempio, il costo marginale può diminuire quando il livello di produzione viene aumentato a causa di un effetto noto come curva di apprendimento (produzione più efficiente con più esperienza). D 'altro canto, esso potrebbe invece aumentare perché potrebbero essere necessari provvedimenti quali il ricorso al lavoro straordinario o macchinari più costosi per incrementare ulteriormente la produzione.
conda deltgono adolici, il proo risolvere c'è spazio ta qualche alcuni im-
L
• Figura 10.1 Curva prezzo-domanda .
p(x)
o
N N
~
o.. :arization in
c
Costo unitario
grafo 3.2. Il
tre lineari a
Domanda
x
398
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE l
P(x)
g <..::
o
o:
• Figura 10.2 Funzione profitto.
Quantità prodotta
x
Nonlinearità può anche essere presente nei vincoli gi(x). Per esempio, se è presente una restrizione di budget sul costo totale di produzione, la funzione di costo sarà nonlineare se il costo marginale della produzione varia come descritto in precedenza. Per vincoli sugli altri tipi di risorse, la funzione gi(x) sarà una funzione nonlineare tutte le volte che l'uso della corrispondente risorsa non è strettamente proporzionale ai livelli di produzione.
Il problema di trasporto con sconti sui costi per maggiori volumi di merci trasportate Come è stato illustrato nell'esempio della P&T Company nel Paragrafo 7.1, una tipica applicazione del problema di trasporto è la determinazione di un piano ottimo per jl trasporto di merci da più sorgenti a varie destinazioni, soggetto a vincoli di domanda e di offerta, con lo scopo di minimizzare il costo totale di trasporto . Nel Capitolo 7 si è fatta l'assunzione che il costo per unità trasportata da una data sorgente a una data destinazione fosse fisso , indipendentemente dalla quantità trasportata. Nella realtà, ta1e costo è variabile. A volte sono previsti sconti per grosse quantità da trasportare, cosicché il costo marginale per il trasporto di una unità supplementare segue un andamento come quello mostrato in Figura 10.3. • Figura 10.3 Costo marginale di trasporto. 6.5 ~
c .@)
5
E g
4
Ol
....Ol
"'o u
3
0.6
1.5 2.7 4.5 Quantità trasportata
10.1
ALCUNE APPLICAZIONI DELLA PROGRAMMAZIONE NONLINEARE
399
' 18.6
13.2
-;;;
:§ ~ 8.4 o
u
3.9
•
e una reeare se il ugli altri 1so della
eli
1pica aptraspori offerta, l'assunne fosse abile. A 1rginale strato in
Figura 10.4
Funzione costo di trasporto.
0.6
1.5 2.7 4.5 Quantità trasportata
Il costo risultante di trasporto di x unità quindi è dato dalla funzione nonlineare C(x) , che è lineare a tratti con pendenza pari al costo marginale, come mostrata in Figura l 0.4. La funzione in Figura 10.4 consiste di un segmento con pendenza 6.5 da (0, O) a (0.6, 3.9), un secondo segmento con pendenza 5 da (0 .6, 3.9) a (1.5 , 8.4), un terzo segmento con pendenza 4 da (1.5, 8.4) a (2.7, 13.2) e un quarto segmento con pendenza 3 da (2.7 , 13.2) a (4.5, 18.6). Di conseguenza, se per ogni combinazione sorgente-destinazione si ha una funzione simile per il costo di trasporto, così che il costo per trasportare xu unità dalla sorgente i (i= l , 2, . .. , m) alla destinazione} U = l , 2, . .. , n) è dato da una funzione nonlineare Cu(xu) , allora la funzione obiettivo complessiva (da minimizzare) è m
f (x)
n
=L L Cu(xu) i= l } = l
Anche per questa funzione obiettivo nonlineare, i vincoli sono ancora i vincoli lineari del problema di trasporto presentato nel Paragrafo 7 .l.
Selezione di un portafoglio titoli in presenza di rischio Oggi è pratica comune per gli operatori finanziari usare modelli basati almeno parzialmente sulla programmazione nonlineare come guida nelle loro scelte. Poiché gli investitori sono preoccupati sia del ritorno atteso (guadagno) sia del rischio associato ai loro investimenti, viene usata la programmazione nonlineare per determinare un portafoglio che, sotto opportune ipotesi, fornisca un ottimo compromesso tra questi due fattori . Questo approccio è basato sul lavoro di ricerca di Markowitz e William Sharpe, vincitori nel 1990 del Premio Nobel per l' Economia. Per questo problema è stato formulato un modello di programmazione nonlineare nel modo seguente. Si supponga di considerare n titoli azionari da includere in un portafoglio, e siano x1 U = I, 2, ... , n) le variabili decisionali con·ispondenti al numero di quote dell' azione j da includere. Siano f-LJ e CJ11 la media e la varianza (stimate), del guadagno per ciascuna azione}, dove CJJJ misura il rischio dell ' azione stessa. Per i = l, 2, ... , n (i =!= j), sia inoltre CJu la covarianza del guadagno per ciascuna coppia di azioni i e j (poiché sarebbe difficile stimare tutti i valori CJu, l' approccio comune è ipotizzare un comportamento del mercato che permetta di calcolare CJu direttamente da CJ;; e CJ1j).
400
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
Quindi il valore atteso R(x) e la varianza V( x) del guadagno totale del! ' intero portafoglio sono ) 11
R(x) =
L
p,;x;
}= l
e 11
V(x) =
11
LL
!JiJXiXJ
i= l J= l
e quindi V(x) fornisce una misura del rischio associato al portafoglio. Un modo di considerare un compromesso tra questi due fattori è quello di usare V(x) come funzione obiettivo (da minimizzare) e imporre il vincolo che R(x) deve essere maggiore o uguale di una prefissata soglia. Il modello completo di programmazione nonlineare è quindi 11
mmtmtzzare
V(x) =
11
LL
!JiJX iXJ
i = l J= l
soggetto ai vincoli 11
L
P,jXj
~L
"""P x· ~ JJ
< B -
J= l 11
J= I
e x1
~
O per j = l , 2, . . . , n
in cui L è il ritorno minimo accettabile, P; è il prezzo di ogni quota del! ' azione j e B è il budget a disposizione. Uno svantaggio di questa formulazione è che è relativamente difficile scegliere un valore appropriato di L per ottenere il miglior compromesso tra R(x) e V(x). Pertanto, piuttosto che utilizzare un singolo valore per L , è pratica comune usare un approccio basato sulla programmazione (nonlineare) pararnetrica per generare la soluzione ottima in funzione di L per un ampio intervallo di valori di L. Il passo successivo è esaminare i valori di R(x) e di V(x) per queste soluzioni ottime al variare di L e quindi scegliere la soluzione che sembra dare il miglior compromesso tra queste due quantità. Questa procedura genera soluzioni su!!afrontiera efficiente del grafico bidimensionale (R(x) , V( x)) per valori x ammissibili. Infatti, il punto (R(x), V(x)) per un valore ottimo di x (per un fissato L) cade sulla frontiera dei punti ammissibili. Inoltre, ogni x ottimo è efficiente nel senso che nessuna altra soluzione ammissibile è altrettanto buona relativamente a una delle due quantità (R o V) e strettamente migliore relativamente all 'altra (V più piccola oR più grande).
ILLUSTRAZIONE. GRAFICA DI PROBLEMI DI PROGRAMMAZIONE NON LINEARE Quando un problema di programmazione nonlineare ha una o due variabili, esso può essere rappresentato graficamente in maniera simile a quanto fatto con l'esempio della Wyndor Glass Co. per la programmazione lineare nel Paragrafo 3 .l. Poiché una tale rappresentazione grafica è in grado di fornire un notevole ausilio alla comprensione delle proprietà delle soluzioni ottime per la programmazione lineare e nonlineare, verranno ora considerati alcuni esempi. Per evidenziare le differenze tra la programmazione lineare e quella nonlineare, si useranno alcune variazioni nonlineari del problema della Wyndor Glass Co.
10.2
ortafoglio
ILLUSTRAZIONE DI PROBLEMI DI PROGRAMMAZIONE NONLINEARE
x2
Massimizzare soggetto a
6
e
.,.,
+ 5x2>
x1 :s 4 9xt + 5x~ :s 216 x 1 ~ O, x2 ~ O
Z = 36 = 3x 1 + 5x2
Ragione ammissibile
• Figura 10.5 L'esempio Wyndor Glass Co. con il vincolo non lineare 9x? + 5xi ::; 216 che sostituisce il secondo e terzo vincolo originali .
2
0~------~---------L------------~
4
2
XJ
La Figura l 0.5 mostra cosa accade se le uniche variazioni apportate nel modello riportato nel Paragrafo 3 .l sono che tanto il secondo quanto il terzo vincolo sono sostituiti dal vincolo nonlineare 9xT + 5x~ :::; 216. Si paragoni la Figura 10.5 con la Figura 3.3. La soluzione ottima è ancora (x 1 , x 2 ) = (2, 6). Inoltre, essa ricade ancora sulla frontiera della regione ammissibile ma non è più un vertice. È possibile che la soluzione ottima sia un vertice ammissibile se si considera una differente funzione obiettivo (per esempio z = 3x 1 + x 2 ), ma il fatto che non deve essere necessariamente un vertice implica che non c'è più l'enorme semplificazione presente nella programmazione lineare per limitare la ricerca di una soluzione ottima ai soli vertici. Si supponga ora che i vincoli lineari del Paragrafo 3.1 non siano modificati, ma che la funzione obiettivo sia nonlineare. Per esempio
j e B è il
Z • Figura 10.6 L'esempio Wyndor Glass Co. con la regione ammissibile originale ma con la funzione obiettivo nonlineare Z = 126x1 + - 9x? + 182x2 - 13xi che sostituisce la funzione obiettivo originale.
x: 1
\
126xt - 9xT
=
l
\
\
13x~
+ 182x2-
Massimizzare soggetto a
Z= 126xl1_ 9xl + 182x2 - 213x2,
'\
l
31-
'"\
"""" Regione ammissibile
XJ ~O ,
le
'
-----z = 907 z = 857
\---------2 = 807
OL-------~---------L------------~
2
4
:S
Xt
3x 1 +
5l
ONE può esseJio della tale rapJne delle ·anno ora lineare e Wyndor
'' '' ''
4
di consite obiettiIle di una
re un vanto, piutio basato ta in fune i valori 1 soluzioedura geJer valori =tto L) ca:enso che jelle due più gran-
:-...
Z = 3x 1
401
XJ
2x2 2x2
4
:s 12 :s 18
X2 ~o
402
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
allora la rappresentazione grafica in Figura l 0.6 indica che la soluzione ottima è x1 =
~
, x 2 = 5, che
è ancora sulla frontiera della regione ammissibile (il valore di Z per
questa soluzione ottima è Z = 857; nella Figura 10.6 viene mostrato che il luogo dei punti con Z = 857 interseca la regione ammissibile in un solo punto, mentre il luogo dei punti con un qualsiasi altro valore di Z maggiore di 857 non interseca affatto la regione ammissibile). D'altro canto, se
Z = 54x 1 - 9~
+ 78x2 -
13~
allora la Figura 10.7 mostra che la soluzione ottima è (x 1, x 2 ) = (3, 3) , che è all'interno della regione ammissibile (si può verificare che questa soluzione è ottima verificando che questo punto è un punto di massimo globale non vincolato; poiché esso soddisfa anche i vincoli , allora deve essere anche una soluzione ottima per il problema vincolato). Pertanto, un algoritmo generale per risolvere tali problemi deve considerare tutte le soluzioni nella regione ammissibile, non solo quelle sulla frontiera. Un'altra complicazione che nasce nella programmazione nonlineare è che un massimo locale non è necessariamente un massimo globale (la migliore soluzione possibile). Per esempio, si consideri la funzione di una singola variabile disegnata in Figura 10.8. Nell'intervallo O ~x ~ 5, questa funzione ha tre massimi locali (x= O, x= 2 e x = 4) ma solo uno di questi (x = 4) è un massimo globale (similmente, ci sono minimi locali in x= l, 3 e 5 ma solo x= 5 è un minimo globale). • Figura 10.7
L'esempio Wyndor Glass Co. con la regione ammissibile originale ma con un'altra funzione obiettivo nonlineare Z = 54x, - 9xf + + 78x2 - 13xi che sostituisce la funzione obiettivo originale.
Massimizzare Z = 54x 1 - 2 9x 1 + 78x2- 213x2, soggetto a x1 ::; 4 2x2 ::; 12
xz
3x 1 + 2x2 ::; 18 .x 1 2: O, x 2 2: O
e 6r-------------~
Z= 117
4
z=
198
• (3, 3)
2
0~------------~--------------~--------------L-----~
2
4
6
XJ
10.2
ILLUSTRAZIONE DI PROBLEMI DI PROGRAMMAZIONE NONLINEARE
ottima è
403
f(x)
>re di Z per ~o
dei pundei pun:gione am~o
all'interno cando che ;fa anche i vincolato). te le solu-
• Figura 10.8 Una funzione con diversi massimi locali (x = O, 2, 4), ma in cui solo x = 4 è un massimo globale.
o
4
3
2
x
5
Gli algoritmi di programmazione nonlineare generalmente non sono in grado di distinguere tra un massimo locale e uno globale (eccetto determinando un altro massimo locale migliore). Pertanto, diventa di fondamentale importanza definire le condizioni che assicurano che un massimo locale è un massimo globale nella regione ammissibile. Quando si massimizza una qualunque funzione (due volte differenziabile) di una singola variabile J(x) senza alcun vincolo, tale garanzia si ha quando
massimo ibile). Per ~ura 10. 8. ~ e x = 4) Li locali in
t
éax2 PJ
:::::
o
. l. va lon. d.l
per tutti
x
Una tale funzione che sia sempre a "curvatura verso il basso " (o senza alcuna curvatura) viene detta una funzione concava. 4 Similmente, se :::; è sostituito da ?:, di modo tale che la funzione ha sempre "curvatura verso l' alto " (o nessuna curvahtra), essa è detta una funzione convessa 5 (quindi una fun zione lineare è sia concava sia convessa). Si veda la Figura 10.9 per un esempio di funzione concava e di funzione convessa. La Figura 10.8 mostra una funzione che non è né concava né convessa poiché alterna tratti a curvatura verso l'alto a tratti a curvatura verso il basso. Funzioni di più variabili possono essere concave o convesse quando abbiano curvatura verso il basso o verso l'alto. Questi concetti intuitivi sono stati definiti rigorosamente nell' Appendice l (le funzioni concave e convesse giocano un molo fondamentale nella programmazione nonlineare ). L' Appendice l fornisce inoltre un criterio pratico per verificare se una funzione di due variabile è concava, convessa o nessuna delle due.
'2·
• Figura 10.9 Esempi di (a) una funzione concava e (b) una funzione convessa.
j(x)
f (x)
Funzione concava
Funzione convessa
x
x (a)
-XJ
4 5
Le funzioni concave vengono alcune volte indicate come concave verso il basso . Le funzioni convesse vengono alcune volte indicate come concave verso l 'alto.
(b)
404
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
Un modo concreto per verificare questa proprietà per una funzione di più variabili, quando la funzione è somma di funzioni di una o due variabili è il seguente: se ogni funzione è concava, allora la fun zione somma è concava. Allo stesso modo, la funzione somma è convessa se ogni funzione è convessa. Per illustrare questo concetto, si consideri la funzione f (xi , x2, x3)
= 4x1 - xf - (x2 - x 3)2 = [4xi - xf] + [- (x2 - x3 ) 2]
che è la somma delle due funzioni che sono indicate fra parentesi quadre. La prima fu nzione 4x 1 - xf è funzione della singola variabile x 1, ed è una funzione concava in quanto 2 la sua derivata seconda è nonnegativa. La seconda funzione -(x2 - x 3 ) è una funzione delle variabili x 2 e x 3 , e il criterio per la concavità per funzioni di due variabili riportato nel! ' Appendice l mostra che la funzione è concava. Poiché entrambe le funzioni sono concave, la funzione soinmafix ~> x 2 , x 3 ) è anch' essa concava. Per un problema di programmazione nonlineare non vincolata, se la funzione obiettivo è concava allora un massimo locale è un anche un massimo globale (e similmente, per una funzione con vessa un minimo locale è anche un minimo globale). In presenza di vincoli, per garantire questa proprietà è necessaria un ' ulteriore condizione: la regione ammissibile deve essere un insieme convesso. Per questo motivo, gli insiemi convessi giocano un ruolo fondamental e nella programmazione nonlineare. Come discusso nel!' Appendice l , un insieme convesso è semplicemente un insieme di punti tali che, per ogni coppia di questi, l' intero segmento che li congiunge è costituito di punti anch ' essi appartenenti all ' insieme. Quindi, la regione ammissibile del problema originario della Wyndor Glass Co. (si vedano le Figure 10.6 o 10.7) è un insieme convesso. Infatti, la regione mnmissibile per un qualunque problema di programmazione lineare è un insieme convesso. Allo stesso modo, la regione ammissibile in Figura 10.5 è un insieme convesso. In generale, la regione ammissibile per un problema di programmazione nonlineare è un insieme convesso ogni qual volta le funzioni g;(x) [per i vincoli g; (x) :::; b;] sono fu nzioni convesse. Nell 'esempio di Figura 10.5, entrambe le funzioni g; (x) sono convesse. poiché g 1(x) = x 1 (una funzione lineare è sia concava sia convessa) e g 2(x) = 9xf + 5~ (sia 9xf sia 5~ sono funzioni convesse e quindi la somma è una funzione convessa). Poiché le due funzioni g;(x) sono convesse, la regione ammissibile di Figura 10.5 è un insieme convesso. Si consideri ora cosa accade quando una di queste funzioni g;(x) è invece una funzione concava. In particolare, si supponga che i soli cambiamenti nel problema originario della Wyndor Glass Co. siano che il secondo e il terzo vincolo funzionale vengano rimpiazzati da 2x 2 :::; 14 e 8x 1 - xf + 14x2 - x~ :::; 49. La nuova funzione g 3 (x) = 8x 1 - xf + 14x2 - ~ è una funzione concava, in quanto sia 8x 1 - xf che 14x 2 - ~ sono funzioni concave. La nuova regione ammissibile mostrata in Figura l 0.1O non è un insieme convesso. Infatti questa regione ammissibile contiene coppie di punti, per esempio, (0, 7) e (4, 3), tali che parte del segmento congiungente questi punti non rimane nella regione ammissibile. Di conseguenza, non si è in grado di garantire che un massimo locale sia anche un massimo globale. Infatti, questo esempio ha due massimi locali, (0, 7) e (4, 3), ma solo (0, 7) è il massimo globale. Quindi, per garantire che un massimo locale sia un massimo globale per un problema di progrmnmazione nonlineare con vincoli g;(x) :::; b; (i = l , 2, . . . , m) e x 2::: O, la funzione obiettivo .fi:x) deve essere una funzione concava e ogni g;(x) deve essere una funzione convessa. Tale problema è detto un problema di programmazione convessa, ed è uno dei principali problemi di programmazione nonlineare discussi nel successivo Paragrafo 10.3.
10.3
>ili, quani.mzione è somma è
Xz
Massimizzare Z soggetto a x1
= 3x 1 + Sx2 , ::;
2xz
obiettivo 1ente, per za di vin·e ammisi giocano nsieme di stituito di 1lema ori-
(0, 7)
= soluzione ottima
e
'' '' '' '' '' '' '' '' '' ' '' '' '' '' ' • Figura 10.10 L'esempio Wyndor Glass Co. con 2x2 ~ 14 e un vincolo nonlineare 8x1 - xf + 14x2 ~ 49 che sostituiscono il secondo e terzo vincolo origina li.
X]
o~--_.
____.____.____ 2
O,
Xz
2:
::;
49
O
'Z = 35 = 3x 1 + Sxz
(4, 3)
= massimo locale
'' '' '' '' '' ''
Regione ammissibile (non convesso)
x1
2:
4
::; 14
8x 1 .1 x 1 + 14x2 .1 x 2
''
rima funin quanto funzione riportato ioni sono
405
CLASSI DI PROBLEMI DI PROGRAMMAZIONE NONLINEARE
' Z
= 27 = 3x 1 + Sx2
~--~----~~
6
4
x,
~ onvesso.
lineare è un insie1lineare è >ano fun;onvesse, h 2l + Sx22 onvessa). 5 è un infunzione ario della iazzati da 4xz- x~,
1cave. La :o. Infatti 1, tali che sibile. Di maSSimO O, 7) è il Jroblema ~'la fununa funssa, ed è 1ccessivo
10.3
CLASSI DI PROBLEMI DI PROGRAMMAZIONE NONLINEARE I problemi di programmazione nonlineare si presentano in svariate forme . A differenza dei problemi di programmazione lineare, nessun singolo algoritmo può risolvere tutti questi differenti tipi di problemi. Invece, sono stati sviluppati algoritmi per varie classi (tipi speciali) di problemi di programmazione nonlineare. In questo paragrafo verranno brevemente introdotte le classi più importanti di problemi . I paragrafi successivi quindi descriveranno come possono essere risolti alcuni di questi problemi. Per semplificare la discussione, si farà l'ipotesi che i problemi sono stati comunque formulati (o riformulati) nella forma presentata all'inizio del capitolo.
Ottimizzazione nonvincolata I problemi di ottimizzazione nonvincolata non hanno, appunto, nessun vincolo sulla re-
gione ammissibile, e quindi l'obiettivo è semplicemente massimizzare
f(x )
per tutti i valori di x = (x 1, x2 , . . . , xn). Come riportato nell'Appendice 2, condizione necessaria affinché una particolare soluzione x = x* sia ottima nel caso in cui j{x) sia una funzione differenziabile è che
of
= 0
in x= x*
per j = l , 2, ... , n
OXj
Sej{x) è una funzione concava, questa condizione è anche sufficiente. Quindi il problema si riduce alla risoluzione del sistema di n equazioni ottenuto uguagliando a zero le n derivate parziali. Sfortunatamente, per funzioni nonlineari fi.x), queste equazioni spesso sono nonlineari, r.el qual caso difficilmente sarà possibile determinare analiticamente una solu-
406
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
zione. I Paragrafi l 0.4 e l 0.5 descrivono procedure algoritmiche di ricerca per determinare la soluzione x*, prima nel caso n= l e poi quando n > l. Tali procedure giocano anche un ruolo chiave nella risoluzione dei problemi descritti successivamente, laddove sono, invece, presenti vincoli. Il motivo è che molti algoritmi per i problemi di ottimizzazione vincolata sono progettati in maniera tale da focalizzare l'attenzione a ogni iterazione su una versione senza vincoli del problema originario. Quando per una variabile x1 è presente un vincolo di nonnegatività x1 ?: O, la precedente condizione necessaria e (forse) sufficiente cambia in
af 8x1
{:::::o
per x= x*
= 0 per x= x*
xJ =O se xJ > O se
per ogni j. Questa condizione è illustrata in Figura 10.11 , dove la soluzione ottima per un problema con una sola variabile è x = O anche se la derivata è negativa invece di zero. Poiché in questo esempio si massimizza una funzione concava con vincoli di nonnegatività sulle variabili, il fatto che la derivata sia minore o uguale a O per x = O è condizione sia necessaria sia sufficiente affinché x = O sia una soluzione ottima. Un problema che ha solo vincoli di nonnegatività ma nessun vincolo funzionale è un caso speciale della successiva classe di problemi.
Ottimizzazione con vincoli lineari I problemi di ottimizzazione con vincoli lineari sono caratterizzati da vincoli che si adattano perfettamente alla programmazione lineare, e infatti tutte le funzioni g;(x) sono lineari, ma la funzione obiettivo j(x) è nonlineare. Il problema è notevolmente semplificato dal fatto che si ha una sola funzione nonlineare da prendere in considerazione, assieme a una regione ammissibile lineare. Sono stati sviluppati un certo numero di algoritmi speciali basati su estensioni del metodo del simplesso allo scopo di trattare il caso di funzioni obiettivo nonlineari. Un caso particolare è quello della programmazione quadratica.
• Figura 10.11 Un esempio che illustra come una soluzione ottima può trovarsi in un punto in cui una derivata è negativa invece che zero, dato che quel punto si trova sulla frontiera di un vincolo di nonnegatività.
f(x)
Massimizzare soggetto a
28 24
j(x) = 24 - 2x - x2 x 2:: O
Massimo globale poichéf(x) è concava e per x
dx = -2::::; O
= O. Pettanto x = O è la soluzione ottima.
20 16
12
8
4
OL_--~--~--~--~x---~ x
10.3
:r determi·e giocano ~ , laddove ottimizzati iteraziopreceden-
na per un e di zero. megativiizione sia naie è un
si adattato lineari, ficato dal me a una i speciali funzioni
CLASSI DI PROBLEMI DI PROGRAMMAZIONE NONLINEARE
407
Programmazione quadratica I problemi di programmazione quadratica hanno ancora vincoli lineari, ma la funzione obiettivo j{x) è una funzione quadratica . Pertanto, la sola differenza tra questo problema e un problema di programmazione lineare è che alcuni dei termini della funzione obiettivo prevedono il quadrato di una variabile o il prodotto di due variabili. Sono stati sviluppati svariati algoritmi per questa classe di problemi, in particolare per il caso n cuif{x) è una funzione concava. Nel Paragrafo 10.7 verrà presentato un algoritmo che è un'estensione diretta del metodo del simplesso. La programmazione quadratica è molto importante perché queste fonnulazioni di questo tipo nascono in modo naturale in molte applicazioni. Per esempio, il problema della selezione del portafoglio ottimo descritto nel Paragrafo 10.1 ricade in questa categoria. Un ' altra ragione per l'importanza della programmazione quadratica è che un approccio comune per risolvere problemi di ottimizzazione nonlineare con vincoli lineari è quello di risolvere una sequenza di approssimazioni quadratiche del problema originario. Programmazione convessa La programmazione convessa copre una vasta classe di problemi (che racchiudono come casi speciali tutti i tipi precedenti) in cuij{x) è una funzione concava di cui si vuole determinare il massimo. Continuando a utilizzare la forma generale del problema presentata all' inizio del capitolo, le assunzioni sono che l. la funzionef{x) è una funzione concava; 2. ogni funzione gi(x) è una funzione convessa.
Come discusso alla fine del Paragrafo l 0.2, queste assunzioni sono sufficienti ad assicurare che un massimo locale è anche un massimo globale (se l'obiettivo fosse invece minimizzarej{x), soggetto ai vincoli g;(x) :S: b; e cioè - g;(x) 2:: - b; per i = l, 2, ... , m, la prima assunzione cambierebbe richiedendo che j{x) sia ora una funzione convessa, poiché questo assicura che un minimo locale è anche un minimo globale). Si vedrà nel Paragrafo l 0.6 che le condizioni necessarie e sufficienti per una tale soluzione ottima sono una generalizzazione naturale delle condizioni appena determinate per l' ottùnizzazione nonvincolata e la sua estensione nel caso di vincoli di nonnegatività. Nel Paragrafo l 0.9 si descriveranno quindi alcuni approcci algoritmici per risolvere problemi di programmazione convessa. Programmazione separabile La programmazione separabile è un caso particolare della programmazione convessa, in cui viene fatta l 'ulteriore ipotesi che 3. le funzioni i{x) e g;(x) sono funzioni separa bili. Una funzione separa bile è una funzione in cui ogni termine coinvolge una singola variabile, cosicché una funzione separabile è somma di funzioni ciascuna di una sola variabile. Sej{x) è una funzione separabile, essa può essere espressa come Il
f (x) = ~J} (x1 ) J= I
dove ogni funzione .fj(x;) include solo termini relativi a x1. Nella terminologia della programmazione lineare (si veda il Paragrafo 3.3), i problemi di programmazione separabile soddisfano l' ipotesi di additività ma non l' ipotesi di proporzionalità (valida per funzioni lineari). A scopo illustrativo, la funzione obiettivo considerata nella Figura l 0.6,
f (x i, x2) = 126xt - 9xf
+ 182x2 -
l3x~
408
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
è una funzione separabile perché può essere espressa come
f(x, , xz)
=.li (x,) +h (xz)
dovejj(x 1) = l26x 1 - 9xf eh(x2 ) = 182x2 - l3x~ sono ciascuna una funzione di una singola variabile. Analogamente, si può verificare che la funzione obiettivo di Figura 10.7 è anch'essa una funzione separabile. È importante distinguere i problemi di programmazione separabile da altri problemi di programmazione convessa, poiché questo tipo di problema può essere ben approssimato mediante un problema di programmazione lineare ed è quindi possibile utilizzare, in modo molto efficiente, il metodo del simplesso. Questo approccio è descritto nel Paragrafo 10.8 (per semplicità, si approfondirà il caso di vincoli lineari per cui questo approccio speciale è necessario solo per la funzione obiettivo). Programmazione non convessa La programmazione non convessa comprende tutti i problemi di programmazione nonlineare che non soddisfano le ipotesi della programmazione convessa. In questo caso, anche se si riesce a determinare un massimo locale, non vi è garanzia che esso sia anche un massimo globale. Non esiste un unico algoritmo in grado di determinare una soluzione ottima per tutti questi problemi, ma sono stati proposti buoni algoritmi che permettono di esplorare varie porzioni della regione ammissibile e determinare forse in un massimo globale. Si descriverà questo approccio nel Paragrafo l O.l O. Alcuni tipi particolari di problemi di programmazione non convessa possono essere risolti senza grosse difficoltà con metodi speciali. Due tipi molto importanti verranno discussi brevemente qui di seguito. Programmazione geometrica Quando si applica la programmazione nonlineare a problemi di progettazione in ingegneria, come pure a particolari problemi di economia e statistica, la funzione obiettivo e le funzioni che definiscono i vincoli spesso assumono la forma N
L
g(x) =
c;P;(x)
i= l
dove
P;(x)
=x~;' x~'.,
..
XG in 11
per i
= l, 2, ... , N
Le quantità c; e le au tipicamente rappresentano costanti fisiche, mentre le x; sono variabili di progetto. Queste funzioni generalmente non sono né convesse né concave e quindi le tecniche standard della programmazione convessa non possono essere applicate direttamente a questi problemi di programmazione geometrica. Un caso importante in cui il problema può essere trasformato in un equivalente problema di programmazione convessa e quello in cui tutti i coefficienti c; in ogni funzione sono strettamente positivi, cosicché le funzioni sono polinomi positivi generalizzati- (chiamati posinomi)- e si richiede di minimizzare la funzione obiettivo. Il problema di programmazione convessa equivalente con variabili y" y 2 , . . . , Y 11 è ottenuto imponendo x1 = eYi
per)= l, 2, ... , n
nel modello originale ed è quindi possibile applicare un algoritmo per la programmazione convessa. Per la risoluzione di questi specifici problemi di programmazione geometrica sono state sviluppate anche specifiche procedure risolutive, come pure per altri tipi di problemi di programmazione geometrica.6 6
R.J. Duffin, E. L. Peterson e C.M. Zener, Geometrie Programming, Wiley, New York, 1967; C. Beigher e D.T. Phillips, App/ied Geometrie Programming, Wiley, New York, 1976.
10.3
CLASSI DI PROBLEMI DI PROGRAMMAZIONE NONLINEARE
409
Programmazione frazionaria
ne di una gura 10.7 oblemi di rossimato ·e, in moParagrafo 1pproccio
ne nonlicaso, ananche un tzione otettono di ;imo gloessere ri:anno di-
Si supponga che la funzione obiettivo sia una funzione frazionaria, cioè, rapporto di due funzioni: massimizzare
f(x) = fì (x) h(x)
Tali problemi di programmazione frazionaria nascono, per esempio, quando si vuole massimizzare il rapporto tra rendimento e ore uomo utilizzate (produttività), o tra il profitto e il capitale impiegato, o tra il valore atteso e la deviazione standard di alcune misure di performance per un investimento di un portafoglio titoli (ritorno/rischio). Per specifiche forme difì(x) eh(x) sono state sviluppate alcune speciali procedure 7 di risoluzione. Quando possibile, l'approccio migliore per risolvere un problema di programmazione frazionaria è quello di trasformarlo in un equivalente problema standard per il quale è già disponibile una procedura risolutiva. A scopo illustrativo, si supponga che j(x) sia della forma
dove c e d sono vettori riga, x è un vettore colonna, e c0 e d0 sono scalari (il problema è quindi un problema di programmazione lineare frazionaria). Inoltre si assuma che le funzioni g;(x) che definiscono i vincoli siano lineari e quindi i vincoli in forma matriciale possano essere espressi nella forma Ax :::; b e x 2 O. Sotto opportune ipotesi, si può trasformare il problema in un problema equivalente di programmazione lineare ponendo y = dx
x + do
e
1
= dx
+do
cosicché x = ylt. Questo porta al problema mgegnetivo e le
masstmtzzare
Z = cy + c0 t
soggetto ai vincoli Ay- bt :SO dy
+ d0 t =
l
e
y20 variabi:ruindi le : direttali il pronvessa e ;icché le le di mi;:nte con
nazione •metrica i di pro-
che può essere risolto mediante il metodo del simplesso. Più in generale, lo stesso tipo di trasformazione può essere usata per convertire un problema di programmazione frazionaria con funzionifì (x) concava,h(x) convessa, e g;(x) convesse, in un problema equivalente di programmazione convessa.
Il problema di complementarità Quando si tratterà la programmazione quadratica nel Paragrafo 10.7, si incontrerà un esempio di come la risoluzione di certi problemi di programmazione nonlineare possa essere ricondotta alla risoluzione di un problema di complementarità. Date le variabili w~. w 2 , . . . , wP e ZJ. z 2 , . . . , zp, il problema di complementarità richiede di determinare una soluzione ammissibile per l' insieme di uguaglianze e disuguaglianze
w = F(z) 7
1er e D .T.
t20
w2 O z2 O
Il primo lavoro sulla programmazione frazionaria è A. Chames e W.W. Cooper, "Programming with Linear Fractional Functionals" , Naval Research Logistics Quater/y, 9: 181-186, 1962. Si faccia riferimento anche a S. Schaible, "A Survey ofFractional Programming", in S. Schaible e W.T. Ziemba (eds.), Generalized Concavity in Optimization and Economics, Academic Press, New York, 1981, pp. 417-440.
410
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
che soddisfi anche il vincolo detto di complementarità
wTz = O Qui, w e z sono vettori colonna, F è una data funzione vettoriale, e l'apice T indica l'operazione di trasposta (si veda l'Appendice 3). Il problema non ha una funzione obiettivo, quindi tecnicamente non è un problema di programmazione nonlineare. Il nome del problema di complementarità è legato alla presenza dei vincoli di complementarità che impongono che o wi
= O
o
zi
=O
(o siano entrambi zero)
per ogni i= l, 2, ... ,p
Un importante caso particolare è il problema di complementarità lineare, in cui F(z)
=q+ Mz
dove q è un vettore colonna e M è una matrice p x p. Per la risoluzione di questo problema (sotto appropriate ipotesi 8 sulla matrice M) sono stati sviluppati algoritmi efficienti. Tra questi va ricordato il metodo di Lemke che opera in modo simile al metodo del simplesso per la programmazione lineare. 9 Oltre a trovare applicazione nella programmazione nonlineare, i problemi di complementarità hanno applicazioni nella teoria dei giochi e nei problemi di equilibrio economico.
10.4
OTTIMIZZAZIONE NONVINCOLATA IN UNA SOLA VARIABILE In questo paragrafo verrà studiato il caso più semplice di un problema di ottimizzazione nonvincolata in una sola variabile x (n = l), con una funzione obiettivo f(x) da massimizzare differenziabile e concava. 1 Condizione necessaria e sufficiente affinché una particolare soluzione x= x* sia ottima (sia un massimo globale) è che
°
dj = dx
o
per x= x*
come mostrato in Figura 10.12. Se l'equazione può essere risolta analiticamente per x*, il procedimento è terminato . Se j{x) non è una funzione particolannente semplice, e quindi la derivata non è una funzione lineare o quadratica, potrebbe essere impossibile risolvere l'equazione analiticamente e sono disponibili algoritmi per la risoluzione numerica del problema. L'approccio seguito da queste procedure è costruire una sequenza di punti che convergono a una soluzione ottima. A ogni iterazione, a partire dal punto corrente si esegue una ricerca sistematica che culmina con l'identificazione ài un nuovo punto migliore. La procedura continua fino a quando la sequenza non converge a una soluzione ottima, nell'ipotesi che ne esista una. Si descri veranno ora due procedure di ricerca. La prima (metodo di bisezione) è stata scelta perché è una procedura intuitiva e semplice, la seconda (metodo di Newton) perché essa in genere gioca un ruolo fondamentale nella programmazione nonlineare.
8 Si faccia rife1imento a R.W. Cottle e G.B. Dantzig, " Complementary Pivot Theory of Mathematical Programming", Linem· Algebra and !ts Applications, 1: 103-1 25, 1966; e R.W Cottle, J.-S. Pang e R.E. Stone, Th e Linear Complementarily Problem, Academic Press, Boston, 1992. 9 Si faccia riferimento a C.E. Lemke, "Bimatrix Equilibrum Points and Mathematical Programming" , Management Scienze l l: 681 -689 ( 1965). 10 Nella parte in iziale dell 'Appendice 2 è discusso il caso generale di una funzione/ (x) non concava.
10.4
OTTIMIZZAZIONE NONVINCOLATA IN UNA SOLA VARIABILE
411
j(x)
df(x) =O dx
lica l'apeobiettivo, e del proà che imp • Figura 10.12 Il problema dell'ottimizzazione nonvincolata in una variabile quando la funzione non è concava.
to probleefficienti. >del sim-
izzazione la massiuna par-
per x*, il e quindi risolvere ~rica del · conver:gue una La pronell'ipo-
) è stata ) perché
x*
Il metodo di bisezione
i compieeconomi-
E
----+----r----------~----------------~----~~x
•
Questa procedura di ricerca può essere applicata quando f(x) è una funzione concava (e quindi la derivata seconda è negativa o nulla per ogni x) come mostrato in Figura l 0.12 ma può anche essere usata per altri tipi di funzioni. Sia x* la soluzione ottima, tutto ciò che occorre 1 1 è che df (x) > O per x< x * dx
l
df(x) = O per x = x * dx df(x ) < O per x> x * dx Queste condizioni sono automaticamente verificate sef(x) è concava, ma si verificano anche quando la derivata seconda è positiva per qualche valore di x (ma non tutti). L'idea alla base del metodo di bisezione è molto intuitiva: la pendenza (derivata) positiva o negativa per il punto corrente indica che si può ottenere un miglioramento spostandosi rispettivamente verso destra o sinistra. Pe1ianto, se la derivata calcolata in un particolare valore di x è positiva, allora x* deve essere più grande di x (si veda Figura 10.12), e quindi x diventa un estremo inferiore per il punto che verrà considerato al passo successivo. Viceversa, se la derivata è negativa, allora x* deve essere più piccolo di x, e quindi x diventa un estremo superiore. Quindi, dopo aver identificato entrambi i limiti e quindi un intervallo dove ricercare la soluzione, ogni nuovo punto scelto fornisce un nuovo intervallo più ristretto del precedente, riducendo quindi ulteriormente la ricerca. Fintanto che venga usata una regola ragionevole per scegliere il nuovo punto, la sequenza risultante deve convergere ad x*. In pratica, ciò vuoi dire continuare la ricerca fintanto che la distanza tra i due estremi dell'intervallo è sufficientemente piccola che il prossimo punto dista da x* meno di un valore prefissato. L'intero procedimento viene riassunto di seguito. Siano x'
x =
thematical .E. Stone,
:tmming" ,
= punto corrente,
:! = corrente estremo inferiore per x *, E
11
corrente estremo superiore per x*,
= tolleranza .
Un 'altra possibilità è che il grafico di f(x) sia piatto nella parte alta cosicché ogni punto in un intervallo [a, b] è ottimo. In questo caso, la procedura convergerà a una di queste soluzioni ottime se la derivata è positiva per x < a e negativa per x > b.
412
CAPITOlO 10
PROGRAMMAZIONE NONLINEARE
Sebbene ci siano molte regole logiche per selezionare un nuovo punto, quella usata nel metodo di bisezione è la regola del punto medio (tradizionalmente questo metodo è noto come il metodo di ricerca di Bolzano), che impone semplicemente di selezionare il punto medio tra il limite inferiore e superiore corrente.
Sommario del metodo di bisezione Inizializzazione: fissare E.. Si detenninino valori ,! e x iniziali tramite ispezione (o cercando valori di x in cui la derivata sia rispettivamente positiva e negativa). Si selezioni un punto iniziale
x'- !
+x 2
Passi di una singola iterazione: df(x) per x= x', dx
l. calcolare - -
df(x) 2. se ~ 2 O, allora,! =
x',
df(x) 3. se~ ::; O, allora x = x',
4. se l ezwnare . .l ' 1 nuovo punto x =
2x +x
Criterio di arresto : se x - ! ::; 2E., allora il nuovo punto x' deve trovarsi a distanza minore di E. da x*, stop. Altrimenti, si esegue una nuova iterazione.
Si illustrerà ora il metodo di bisezione applicandolo a un semplice esempio. Esempio
Si supponga che la funzione da massimizzare sia f (x ) = 12x - 3x4 - 2x6
mostrata in Figura 10.13. Le derivate prima e seconda sono df(x ) = 12(1 - x3- xs ) dx d2f(x) = -12(3x2 dx 2
+ 5x4)
Poiché la derivata seconda è minore o uguale a zero,f(x ) è una funzione concava, e quindi il metodo di bisezione può essere tranquillamente applicato per determinare il massimo globale (ipotizzando che esista un massimo globale). Una veloce ispezione di tale funzione (senza nemmeno disegnare il suo grafico qui riportato in Figura l 0.13) indica che f(x) è positiva per piccoli valori positivi di x, ma è negativa per x < O oppure x > 2. Pertanto, ! = O e x = 2 possono essere usati come iniziali estremi dell'intervallo, e il loro punto medio, x' = l è il punto iniziale. Sia E.= 0.01 la tolleranza nel criterio di arresto per cui l'algoritmo termina quando (x - !) ::; 0.02 e il valore finale è il punto medio di questo intervallo. ').'0 L'applicazione del metodo di bisezione porta alla sequenza di punti mostrata nella Tabella l 0.1. Questa tabella include sia i valori della funzione sia quelli della sua derivata calcolata per il punto generato alla precedente iterazione. Comunque, si noti che l'algoritmo, in realtà, non ha affatto bisogno di calcolaref(x') e che ha solo bisogno di calcolare la derivata o quanto basta per valutame il suo segno. Al termine dell'algoritmo si ottiene che x* :::::; 0.836
0.828125
10.4
OTTIMIZZAZIONE NONVINCOLATA IN UNA SOLA VARIABILE
usata nel odo è noto e il punto
413
f(x)
j(x)
o cercan-
= 12 -
3x 4 - 2x6
ezioni un
--~-L~~~-~-L~--L--L-L--L-~-L~--L-~,L~--L-~-L~--~x
• Figura 10.13 Grafico della funzione utilizzata per illustrare il metodo di bisezione.
Tabella 10.1 Applicazione del metodo di bisezione all'esempio IZa mino-
lterazione
df(x)
o l
2 3 4 5 6 7 Stop
- 12 + 10.12 + 4.09 - 2.19 + 1.31 - 0.34 + 0.51
x
Nuovo x '
2
l
l l l
0.875 0.875 0.84375 0.84375
0.5 0.75 0.875 0.8125 0.84375 0.828125 0.8359375
~
----ciX
o o 0.5 0.75 0.75 0.8125 0.8125 0.828125
f(x ') 7.0000 5.7812 7.6948 7.8439 7.8672 7.8829 7.8815 7.8839
Il metodo di Newton e quinmassimo
t,
:o qui rima è nee iniziali = 0.01 la 2 e il va-
J
1ta nella derivata l'algoritcolare la ene che
Nonostante il metodo di bisezione sia una procedura semplice e intuitiva, esso ha lo svantaggio di convergere in modo relativamente lento a una soluzione ottima. Ogni iterazione dimezza la differenza tra gli estremi. Pertanto, anche con la semplice funzione considerata precedentemente sono necessarie ben sette iterazioni per ridurre l'errore a meno di 0.01. Altre sette iterazioni occorrono per ridurre questo stesso errore a meno di 0.000 l. Il motivo alla base di questa convergenza lenta è che la sola informazione suf(x) che viene usata è il valore della sua derivata primaf '(x) nei vari punti x considerati. Ulteriori informazioni possono essere ottenute considerando anche la derivata seconda f"(x). Questo è proprio la maniera di procedere del metodo di Newton. 12 L'idea alla base del metodo di Newton è quella di approssimare, nell'intorno del punto corrente, la funzionef (x) con una funzione quadratica, e poi massimizzare (o minimizza12 Questo metodo è dovuto al grande matematico e fisico del XVII secolo, Sir lsaac Newton. Quando era ancora un giovane studente alla Università di Cambridge (Inghilterra), approfittò della chiusura per due a1mi dell ' università (a causa della peste bubbonica che devastò l'Europa nel 1664-65) per scoprire le leggi della gravitazione universale e inventare l'analisi infinitesimale (tra gli altri successi). Lo sviluppo dell 'anali si infinitesimale condusse a questo metodo.
414
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
re) la funzione approssimata per ottenere il nuovo punto (questa idea di operare con un'approssimazione quadratica della funzione obiettivo è una caratteristica chiave di molti algoritmi per classi molto generali di problemi di programmazione nonlineare). Questa approssimazione quadratica viene ottenuta troncando la serie di Taylor al secondo termine. In particolare, se x ; è il punto ottenuto all ' iterazione i che si vuole utilizzare all ' iterazione i + l (e quindi x 1 è il punto iniziale), la serie di Taylor troncata per x;+I è
f(x;+I) ;::::, j (x;)
+ j' (x; )(xi+ l -
~j" (x;)(xi+ l
x;)+
-x; )
2
Il punto x; è fissato all ' inizio dell' iterazione i, e quindi le quantitàf(x;) ,j '(x;) e f " (x;) sono costanti nella funzione approssimante a destra. Quindi, essa è una funzione quadratica nella variabile x;+I· Inoltre, questa funzione quadratica è una buona approssimazione di f (x;+I) nell ' intorno di X; e il suo valore e quello delle sue derivate prima e seconda sono esattamente gli stessi per x;+I =x;. Tale funzione quadratica può essere ora massimizzata nella maniera consueta ponendo uguale a zero la sua derivata prima e risolvendo per x;+l (si ricordi che si sta ipotizzando che f (x) è una funzione concava, e ciò implica che anche questa funzione quadratica è concava, e quindi che la soluzione ottenuta ponendo la derivata prima uguale a zero è un massimo globale). Questa derivata prima sarà
j' (xi+l) ;::::, j '(x;)
+j
"(x;)(xi+l - x; )
in quanto x;,j(x;),f' (x;) e f"(x;) sono costanti . Imponendo che la derivata prima della funzione a destra sia uguale a zero si ottiene
f '(x;+I) + f "(x;)(xi+ l - x;)= O che porta direttamente alla formula
. f ' (x;) Xi+! = X;--: j "(x;) Questa è la formula chiave che viene usata a ogni generica iterazione i per calcolare il successivo punto x;+1 a partire dal punto x; ottenuto al passo i e dopo aver calcolato la derivata prima e seconda in x ; (la stessa formula viene usata per minimizzare funzioni convesse). Questa procedura continua fino a quando la sequenza di punti converge. Un criterio per la convergenza è che lxi+! -x;! sia sufficientemente piccolo. Un altro è chef' (x ) sia quasi zero. Un altro ancora è che lf (xi+l )- f (x;)l sia piccolo. Per applicare il primo criterio, si fissa c e l'algoritmo termina quando lx;+ I - x;! ::; c. Sommario del metodo di Newton
Inizializzazione: fi ssare c. Si ponga i = l e si scelga il punto iniziale x;. Iterazione i : l. si calcoli f'(x;) e f"(x;) [Il calcolo di f(x;) è opzionale],
.
f'( x;)
2. SI pongax;+I =x;- f"(x;).
Criterio di arresto: se lx;+ I - x;i ::; c, stop; x;+I è la soluzione ottima. Altrimenti, si ponga i = i + l e si effettui una nuova iterazione.
Esempio Il metodo di Newton verrà ora applicato allo stesso esempio utilizzato per illustrare il metodo di bisezione. Come mostrato in Figura l 0.13, la funzione da massimizzare è f (x ) = 12x - 3x4
-
2x 6
10.5
erare con chiave di nlineare). l secondo zare all'iè
415
OTIIMIZZAZIONE NONVINCOLATA IN PIÙ VARIABili
Quindi, la formula per calcolare il nuovo punto (xi+ 1) a partire da quello attuale (x;) è
r '(x-)
.
X;+ l = X; -
l
f"(x;)
=X; -
12 (1- xl3 - xl5 ) -12(3xf + 5xi)
+ = X;
l - xl3
x5 3xf + Sx1 -
l
Dopo aver fissato ~ - = 0.00001 e scelto x 1 = l come punto iniziale, nella Tabella 10.2 sono riportati i risultati dell'applicazione del metodo di Newton a questo esempio. Dopo appena quattro iterazioni, questo metodo converge a x = 0.83762 soluzione ottima con un grado di precisione molto elevato. Confrontando questa tabella con la Tabella l 0.1 si può verificare quanto il metodo di Newton converge più rapidamente rispetto al metodo di bisezione. Ci vorrebbero circa 20 iterazioni per il metodo di bisezione per convergere con lo stesso grado di precisione alla soluzione alla quale il metodo di Newton converge in appena quattro iterazioni. Sebbene questa rapida convergenza sia tipica del metodo di Newton, la sua performance varia da problema a problema. Poiché il metodo è basato sull'utilizzo di un'approssimazione quadratica dif (x), la sua efficienza dipende comunque dal grado di accuratezza del!' approssimazione.
(x;) souadratica azione di nda sono 0 11
ponendo )tizzando tdratica è zero è un
Tabella 10.2 Applicazione del metodo di Newton
ima della
lterazione i
X;
f(x;)
f '(x1)
1 2 3 4
0.875 0.84003 0.83763
7 7.8439 7.8838 7.8839
- 12 - 2.1940 - 0.1325 - 0 0006
~
f "(x;) -
96 62.733 55.279 54.790
Xi+ l
0.875 0.84003 0.83763 0.83762
L__ _
tre il suederivata esse). 1 criterio f'(x ) sia mo criteL
I, SI
10.5
OTTIMIZZAZIONE NONVINCOLATA IN PIÙ VARIABILI Si consideri ora il problema di massimizzare una funzione concava f(x) in più variabili x = (x 1, x2 , . . . , Xn) in cui non esistono vincoli sui valori ammissibili. Si supponga che non sia possibile risolvere analiticamente il sistema di equazioni ottenuto ponendo a zero le derivate parziali (condizione necessa1ia e sufficiente per l' ottimalità, come mostrato nel Paragrafo 10.3), e che quindi deve essere usata una procedura numerica. Analogamente al caso di una sola variabile, esistono vari algoritmi per la risoluzione numerica di un tale problema. Una di queste (il metodo del gradiente) è una procedura particolarmente impottante perché identifica e utilizza la direzione lungo cui muoversi a partire dal punto corrente massimizzando il tasso a cui la funzionef(x) cresce. Questa è una delle idee chiave della programmazione nonlineare. Gli adattamenti di questa stessa idea allo scopo di prendere in considerazione anche i vincoli del problema sono una caratteristica fondamentale anche di molti algoritmi per l'ottimizzazione vincolata. Dopo aver discusso in dettaglio questa procedura, si descriverà brevemente come estendere il metodo di Newton al caso di più variabili.
ponIl metodo del gradiente
to per ilIassimiz-
Nel Paragrafo l 0.4, il valore della derivata veniva usato dal metodo di bisezione per selezionare una delle due possibili direzioni (incremento di x o decremento di x) lungo cui muoversi a partire dal punto corrente. L'obiettivo era raggiungere un punto in cui questa derivata fosse (essenzialmente) O. Nel caso in esame, ci sono innumerevoli possibili direzioni lungo cui muoversi; esse corrispondono a possibili differenti tassi di incremento delle variabili. L'obiettivo è raggiungere alla fine un punto in cui tutte le derivate parziali so-
416
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
no (essenzialmente) O. Un approccio naturale è usare i valori delle derivate parziali per scegliere la direzione lungo cui muoversi. Questa scelta richiede l 'uso del gradiente della funzione obiettivo, come descritto di seguito. Poiché si ipotizza che la funzione obiettivo f (x) sia differenziabile, essa possiede un gradiente, indicato con \lf (x), in ogni punto x. In particolare, il gradiente in uno specifico punto x = x' è il vettore i cui elementi sono le derivate parziali valutate in x = x' , cosicché
81 81 , . .. , ) 8X2 8X n
Vf( x') = (aD! , Xi
per x = x'
L' impostanza del gradiente è che la variazione (infinitesimale) di x che massimizza il tasso a cui la funzione f (x) cresce è una variazione proporzionale a Vf(x). Per esprimere questa idea dal punto di vista geometrico, la " direzione " del gradiente Vf(x') viene interpretata come la direzione del segmento diretto dali' origine (0, O, . . . , O) al punto (8j j 8x 1 , 8j j 8x2, . .. , 8j j 8x11 ) , con 8j j 8x1 valutata inx1 = xj. Il tasso a cui cresce la funzione f (x) è massimizzato se incrementi (infinitesimi) di x sono nella direzione del gradiente \lf(x). Poiché l'obiettivo è determinare la soluzione ammissibile che massimizzaf(x), è conveniente muoversi lungo la direzione del gradiente quanto più possibile. Siccome il problema in considerazione è non vincolato, questa interpretazione del gradiente suggerisce che una efficiente procedura di ricerca dovrebbe continuare a muoversi nella direzione del gradiente fmché non raggiunge (essenzialmente) una soluzione ottima x*, con Vf (x*) = O. Normalmente non sarebbe pratico modificare x in ma~iiera continua nella direzione di \lf( x ), poiché questa serie di cambiamenti richiederebbe una continua rivalutazione delle quantità Dj/ 8x1 e cambiare la direzione. Pertanto, un approccio migliore è continuare a muoversi in una direzione fissata a partire dal punto corrente, fermandosi quando f (x) non cresce ulterionnente. Questo è il nuovo punto in cui ricalcolare il gradiente e determinare la nuova direzione lungo cui muoversi. Con questo approccio, ogni iterazione comporta il cambiamento dell'attuale punto x' nel modo seguente: Porre
x' = x' + t*\lf( x')
dove t* è il valore (positivo) che massùnizzaf(x' + t= \lf(x')) ; cioè, f (x' + t* \lf(x')) Si noti chef(x'
= m a;x f 12:0
(x'
+ t\lf(x' ))
+ t\lf(x')) è semplicementef(x) dove
8/)
x1 =x1l + t ( Dx· J
.
per; = l , 2, ... , n X= X1
e che queste espressioni per x1 dipendono solo da quantità costanti e da t e quindi la funzione f (x ) diventa una funzione della sola variabile t. Questa procedura è ripetuta finché \lf(x ) = O entro un prefissato margine di tolleranza c, cioè, finché
aj l ::; é
l ax1
per;' = l ' 2 , . . . , n 13
Un'analogia può aiutare a chiarificare questa procedura. Si supponga che ci si debba arrampicare fino alla cima di una collina e si supponga inoltre di essere miopi, e quindi non 13
La regola per l'arresto fornirà generalmente una soluzione x che è vicina alla soluzione ottima x* , con un valore di f (x) che è molto vicino af(x*). Tuttavia, questo non può essere garantito, dato che è possibile che la funzione mantiene una pendenza positiva molto piccola (::O E) su una distanza abbastanza grande da x a x*.
10.5
wziali per ente della ssiede un .o specifi= x', co-
zza il tas~ sprimere
ene intera! punto cresce la zione del 1aSSlm!ZÌbi]e. ~ ione del e a muo;oluzione maniera ebbe una ,, un apJnto corto in cui n questo nodo se-
OTTIMIZZAZIONE NONVINCOLATA IN PIÙ VARIABILI
417
è possibile vedere dove effettivamente sia la cima della collina per poter incamminarsi lungo quella direzione. Quando si è fermi è possibile vedere il terreno sotto i propri pixçli abbastanza bene da poter determinare la direzione in cui la collina si inclina più deci~a mente verso l'alto. Si è inoltre in grado di camminare in linea retta. Mentre si cammina, si è anche in grado di distinguere quando non si sta più salendo (inclinazione zero lungo la direzione). Ipotizzando che la collina sia concava, si può usare il metodo del gradiente per arrivare in cima in modo efficiente. Questo esempio ha due variabili (x " x 2 ) che rappresentano le coordinate (ignorando l'altezza) della posizione corrente. La funzione f (x 1, x2 ) rappresenta l'altezza della collina nel punto (x " x 2 ). Si inizia ogni iterazione nella posizione corrente determinando la direzione (nel sistema di coordinate [x 1, x 2 ]) verso la quale la collina inizia a salire più rapidamente (la direzione del gradiente) e si procèçle in questa direzione fissata finché si continua a salire. Ci si ferma nel nuovo punto, continuando a procedere nella medesima direzione, non si sale più, e qui si esegue una nuova iterazione in un altra direzione. Si ripete questa procedura con un percorso in salita a zigzag, finché si raggiunge un punto in cui la pendenza è essenzialmente nulla lungo tutte le possibili direzioni. Sotto l'ipotesi che la collina [f(x 1, x2 )] sia concava, si è giunti alla vetta della collina. La parte più complessa di questa procedura è determinare, a ogni iterazione, la quantità t*, cioè il valore di t che massimizzaf nella direzione scelta. Poiché x e Vf( x) sono fissati e poichéf( x) è concava, questo problema è equivalente a massimizzare una funzione concava in una singola variabile t. Pertanto, può essere risolto dalle procedure per l'ottimizzazione nonvincolata in una variabile descritte nel Paragrafo 10.4 (considerando solo valori nonnegativi di t). Alternativamente, se f è una funzione semplice, è possibile ottenere una soluzione analiticamente ponendo uguale a zero la derivata rispetto a t.
Sommario del metodo del gradiente lnizializzazione: si scelga E e un punto iniziale x' . Si verifichi il soddisfacimento del criterio di arresto. lterazione: l. si esprimaf(x' + tVf(x')) come funzione di t ponendo XJ = x1l + t (
8/)
.
per 1 = l , 2, ... , n
x·
8 '}
X = X1
e quindi sostituendo queste espressioni inf(x) 2. si usi un metodo per l'ottimizzazione nonvincolata in una variabile per determinare t* che massimizzif(x' + t Vf( x')) con t::::: O (o in alternativa si determini questo valore analiticamente), 3. si ponga x' = x'+ t* Vf( x') . Quindi si verifichi il criterio di arresto. i la funa finché
Criterio di arresto: si valuti Vf(x') in x = x' . Si controlli se
8
!
1
8xj
l : :; E
per ogni}= l , 2, .. . , n .
In caso affermativo, il punto attuale x' è una approssimazione della soluzione ottima x* .
~ bb a
arndinon
un valohe la fun-
J
Altrimenti, si esegua una nuova iterazione. Si illustrerà ora questa procedura con un esempio.
Esempio
Si consideri il seguente problema in due variabili:
mass!mlzzare
f( x) = 2x ,x2 + 2x2 - x f - 2~
418
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
Quindi,
1
éJf = 2x2 - 2x1
OXJ
.-L
éJf = 2x1
~
+ 2- 4x2
OX2
Si può verificare che (si veda l' Appendice l) la funzionef (x) è concava. Per iniziare la procedura, dopo aver scelto un valore di E: sufficientemente piccolo (normalmente ben più piccolo di 0.1) si supponga che venga scelto x= (0, O) come punto iniziale. Poiché in questo punto le derivate parziali sono O e 2, il gradiente è
\lf(O, O) = (0, 2) Essendo 2
> E:, il criterio di arresto richiede di effettuare una nuova iterazione.
Iterazione l: essendo Oe 2 i valori delle derivate parziali, la prima iterazione inizia ponendo
=o+ t( O) = o
Xj
X2 = 0 + t(2) = 2t e dopo aver sostituito queste espressioni nellaf(x), si ottiene
f(x' +t \lf(x')) = f(O, 2t)
= 2 (0) (2t) + 2(2t) - 02
-
2(2t)
2
sP
= 4t-
Poiché
f(O , 2t* ) = max f(O , 2t) = max {4t- 8? } t:>:O
t:>: O
e d
- (4t dt
sP ) = 4 -
l6t
=o
ne segue che l
t* e quindi si pone
x' = (0,
O)+
!
(0, 2) =
=4
(O,
~)
Questo completa la prima iterazione. Per questa nuovo punto, il gradiente è
vf(o, ~) = Essendo l
(1,
o)
> E:, il criterio di arresto richiede di effettuare una nuova iterazione.
lterazione 2: per iniziare la seconda iterazione, si usino i valori l e O delle derivate parziali e si ponga
x = (o, quindi
~) +t(l, o) =
(t, ~)
10.5
419
OTTIMIZZAZIONE NONVINCOLATA IN PIÙ VARIABILI
~
f (x' + t\lf (x')) =f(O + t,
= (2t) (
+ Ot) =f(t,
~) + 2 ( ~) -
?-
~) 2(
~)
2
l 2
= t - fl+ Poiché :e piccolo 1me punto
!(t*,__!_) = !(t,__!_) = max
2
2
t~O
max t ~O
{t-?+__!_} 2
e
l)
t2 + 2
d (tdt
= l - 2t =
o
:ia ponensi ha
t* = __!_ 2 e ancora SI
ponga
xl =
(
l) + -l (l O) (l ')
O -
' 2
2
'
=
-
-
2 ' 2
Questo completa la seconda iterazione. Con un tipico valore di c piccolo, la procedura andrebbe avanti per molte iterazioni allo stesso modo. Un modo efficiente per organizzare questo lavoro è quello di realizzare una tabella come la Tabella l 0.3 che riassume le due precedenti iterazioni. Per ogni iterazione, la seconda colonna mostra il punto corrente e la colonna più a destra mostra l'eventuale nuovo punto, che quindi viene riportato nella riga successiva nella seconda colonna per la successiva iterazione. La quarta colonna riporta le espressioni di x1 in termini di t da sostituire inf(x) ottenendo così la quinta colonna. Tabella 10.3 Applicazione della procedura di ricerca basata sul gradiente lterazione
x'
l
(0, O)
2
(o,
'V f(x')
~)
(0,
2)
(l, O)
x'+ t 'V f(x')
f(x' + t'Vf(x'))
2t) (t,+)
4t -8t
(0,
t- t
2
2
+z-l
t*
x'+ t*'Vf(x')
l
(o, ~) c,+)
4 l 2
. Contmuando allo stesso modo, 1. success1.v1. puntJ. ottenuti. sono (-' , -3) , (3 - , -3) , 37
77
( 4 ' 8) , ( 8 ' 8) , . .. , come mostrato
24
44
nella Figura l ~.14. Questa sequenza di punti
converge a x* =(l , l), che è la soluzione ottima, come si può verificare poiché \1f (l , l ) = (0, O)
e parzia-
Poiché questo limite non è mai raggiunto, la procedura in realtà si arresterà in un qualche punto (a seconda di c) un poco al di sotto del punto (l , l). Come si vede dalla Figura 10.14, il metodo del gradiente procede a zig-zag attorno alla soluzione ottima piuttosto che muoversi in linea retta. Sono state sviluppate modifiche di questa procedura che accelerano la convergenza verso la soluzione ottima tenendo conto di questo comportamento a zig-zag.
420
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
Se f(x) non fosse una funzione concava, il metodo del gradiente convergerebbe ancora ma a un massimo locale. La sola modifica nella descrizione della procedura in questo caso è che t* ora corrisponderebbe al primo massimo locale dif(x + (\lj(x')) al crescere di t da O. Se l'obiettivo fosse invece minimizzare f(x), occorre modificare la procedura richiedendo di muoversi, a ogni iterazione, nella direzione opposta a quella del gradiente. In questo caso, la regola per ottenere il punto successivo è x' = x' - t* \lf (x') L' altra modifica è che t* ora è il valore di t (nonnegativo) che minimizzaf(x'- t\lf(x' )); cioè, f (x'- t*\lf(x')) = minf(x'- t\lf(x' )) r::=: o
x2
(~, ~) ~
(o,~)
t
.
(~, ~)
..
.
.•x* = (1, l )
... (~·~)
• Figura 10.14 Illustrazione di una procedura di ricerca basata sul gradiente con
f(x1, xz ) = 2x1 xz + 2xz +
(0,0) . __ _ __ _ _ __ __ __ _
- xf - 2xi.
~
XJ
Il metodo di Newton Il Paragrafo l 0.4 descrive come applicare il metodo di Newton per risolvere problemi di ottimizzazione nonvincolata in una variabile. La versione generale del metodo di Newton è progettata per risolvere problemi di ottimizzazione nonvincolata in più variabili. L'idea di base è la stessa di quella descritta nel Paragrafo l 0.4, e cioè, calcolare un'approssimazione quadratica della funzione obiettivof(x), dove in questo caso x = (x 1, x 2 , . .. , xn)· Questa funzione quadratica è ottenuta troncando al secondo termine la serie di Taylor nel punto corrente. Questa funzione approssimante viene quindi massimizzata (o minimizzata) per ottenere il nuovo punto da cui partire alla successiva iterazione. Quando la funzione obiettivo è concava e sia il punto attuale sia il suo gradiente \lj(x) sono vettori colonna, la soluzione x' che massimizza la funzione quadratica ha la forma 1
x'= x- [\7 2f (x)r \lf(x) dove \7 2f(x) è la matrice n x n (detta matrice hessiana) delle derivate seconde parziali di 1 j(x) calcolate nel punto corrente x e [\7 2f (x)r è l'inversa di questa matrice hessiana. Gli algoritmi di programmazione nonlineare che fanno uso del metodo di Newton (inclusi quelli che lo modificano per adattarlo a problemi di ottimizzazione vincolata) normalmente approssimano l'inversa della matrice hessiana in diversi modi. Queste approssimazioni del metodo di Newton sono note come metodi quasi-Newton (o metodi a metrica variabile). Successivamente nel Paragrafo l 0.9 si parlerà dell'importante ruolo di questi metodi nella programmazione nonlineare.
10.6
421
LE CONDIZIONI DI KARUSH-KUHN-TUCKER (KKn
Una descrizione particolareggiata di questi metodi va oltre gli obiettivi di questo libro, ma potranno essere trovati altri dettagli a riguardo in testi dedicati interamente alla programmazione nonlineare. 14
be ancora questo ca;rescere di 1ra richie-
LE CONDIZIONI DI .. J:~Jl!JS_I1-KUH·N·1 -TUCKER (KKT) PER L'OTTIMIZZAZI0N5_VINCOLATA \
Ldiente. In
In questo paragrafo verrà affrontato il problema di come riconoscere una soluzione ottima per un problema di programmazione nonlineare (con funzioni differenziabili). Quali sono le condizioni necessarie e (eventualmente) sufficienti che questa soluzione deve soddisfare? Nei paragrafi precedenti si è già accennato a quali siano queste condizioni per l'ottimizzazione nonvincolata, come riassunto nelle prime due righe della Tabella 10.4. All ' inizio del Paragrafo 10.3 sono già state definite queste condizioni per la semplice estensione al caso di vincoli di nonnegatività. Tali condizioni sono mostrate nella terza riga della Tabella 10.4. Come si può notare nell 'ultima riga della tabella, le condizioni per il caso generale prendono il nome di condizioni di Karush-Kuhn-Tucker (o condizioni KKT), poiché furono ricavate in maniera indipendente da Karush 15 e da Kuhn e Tucker. 16 Il risultato di base è incorporato nel seguente teorema .
t\lf(x'));
..
!J Tabella 10.4 Condizioni necessarie e sufficienti per l'ottimalità
Problema
Condizioni necessarie per l'ottimalltà
Anche sufficiente se
Nonvincolato, singola variabile
!!!__=o
f (x) concava
Nonvincolato, più variabili
~=0
(j = l , 2, ... , n)
Solo vincoli d i nonnegatività
~= 0
(j = l , 2, ... , n)
dx
fJx;
fJx; oppure
:<:::
f (x) concava
O se x; = O
f (x) concava e g; (x) convessa (i = l, 2, ... , m)
Condizioni di Karush-Kuhn-Tucker
Problema vinco lato generale
Sianof(x) , g 1 (x), g 2 (x), . . . , g 111 (x) funzioni differenziabili che soddisfano condizioni di regolarità. 17 Il punto
mi di otewton è } idea di nazione . Questa ~l punto ata) per
Teorema.
:\lf(x )
l--
x*
(xl' • x2, • ... ' xn*)
è una soluzione ottima per un problema di programmazione nonlineare solo se esistono m numeri reali u 1, u2 , ..• , u 111 tali che tutte le seguenti condizioni KKT sono soddisfatte:
of
'
orma
rziali di an a. 'lewton ta) nor>prossiL metridi que-
f (x ) concava
!lX ·
u
J
L/11 . u, . t= l
og;
UXj
111
2.
of L x; ( ~UX;
14
i= l
U;
-
a agi·) = o
loonx ~ x',pecognij~
1, 2, .. . ,n
X;
Per esempio, si vedano le pagine 315-339, 441-442 e 474 nel Riferimento bibliografico l citato alla fine di questo capitolo, come pure il riferimento citato nella nota 25. 15 W . Kamsh , "Minima of Functions of Severa! Variables with Jnequalities as Side Conditions," M.S. thesis, Department ofMathematics, University ofChicago, 1939. 16 H.W. Kuhn e A.W. Tucker, "Nonlinear Programming" , in Jerzy Neyman (ed. ), Procedings ofthe Second Berkeley Symposium, Un iversity ofCalifomia Press, Berkeley, 1951 , pp. 481-492. 17
Ibid., p. 483.
422
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
3. g;(x*) - b; ::::; O } .. per ogm 1 = l , 2, ... , m 4 _ u; [g;(x*) _ b;] = 0 O
per ogni)= l , 2, ... , n
6. u; 2: O
per ogni i = l , 2, ... , m
S.
xj 2:
Si noti che le condizioni 2 e 4 richiedono che il prodotto di due quantità sia uguale a zero e pertanto, queste condizioni impongono che almeno una delle due quantità deve essere uguale a zero. Di conseguenza, la condizione 4 può essere combinata con la condizione 3 nel seguente modo equivalente (3, 4)
g;(x*) - b; = O seu; =O )
(oppure:::;O
perognii = l , 2, ... , m
Allo stesso modo, la condizione 2 può essere combinata con la condizione l come segue
( l' 2)
of m og; --Z::::u; - = 0 OXj
i=l
OXj
(oppure ::::; O se
xj
=O)
per ogni)= l , 2, ... ,
n
Se m =O (caso di ottimizzazione nonvincolata), questa sommatoria non è presente e la condizione combinata (l , 2) si riduce alla condizione data nella terza riga della Tabella l 0.4. Quindi, per m > O, ogni termine della sommatoria modifica la condizione del caso m = O per incorporare l' effetto del corrispondente vincolo funzionale: Nelle condizioni l, 2, 4 e 6, le u; corrispondono alle variabili duali della programmazione lineare (si parlerà meglio di questa corrispondenza alla fine del paragrafo), e hanno una simile interpretazione economica. Esse si presentano nella derivazione matematica come moltiplicatori Lagrangiani (di cui si parla nella Appendice 2). Le condizioni 3 e 5 assicurano l'ammissibilità della soluzione. Le altre condizioni eliminano la maggior parte delle soluzioni ammissibili come candidati possibili per la soluzione ottima. Comunque, si noti che il soddisfacimento di queste condizioni non garantisce che la soluzione sia ottima. Come riassunto nell ' ultima colonna della Tabella l 0.4, occorrono ipotesi aggiuntive di convessità per garantire l' ottimalità. Tali ipotesi sono descritte nella seguente estensione del teorema. Corollario. Si ipotizzi chef(x) sia una funzione concava e che g 1 (x), g2(x), . . . , gm (x ) siano funzioni convesse (cioè, il problema considerato è un problema di programmazione convessa) e che siano soddisfatte le condizioni di regolarità. Allora, x* = (x~, x~, . .. , x;.) è una soluzione ottima se e solo se tutte le condizioni del teorema cono soddisfatte. Esempio. Per illustrare la formulazione e l'applicazione delle condizioni KKT, si consideri il seguente problema di programmazione non lineare in due variabili:
massirnizzare
f (x) = ln (x 1 + l )
+ x2
soggetto ai vincoli 2xl
+ X2::::; 3
e X[
2: 0
X2
2: 0
in cui In denota il logaritmo naturale. In questo caso m = l (un solo vincolo) e g 1 (x) = 2x 1 + x2 e pertanto g 1 (x) è convessa. Inoltre, si può facilmente verificare (si veda l'Appendice l) chef(x) è concava. Pertanto ogni soluzione che soddisfi le condizioni KKT sarà sicuramente una soluzione ottima.
10.6
LE CONDIZIONI DI KARUSH-KUHN-TUCKER (KKT)
423
Applicando le formule date nel teorema, si arriva alle seguenti condizioni KKT per questo esempio: 1U = 1).
XJ
suale a zero deve essere Jndizione 3
2U =
1).
1U = 2). 2U = 2).
+l
- 2u1 ::;
1
x 1( - XJ
+ l
o.
2ul) = O.
4.
l - UJ ::; O. xz( l - u 1) =O. 2xl + xz - 3 ::; O. u 1(2x 1 + xz - 3) = O.
s.
XJ
6.
UJ
3.
me segue
1 -
::::: O, X2::::: O. ::::: O.
I passi per la risoluzione delle condizioni KKT per questo esempio specifico sono evidenziati di seguito. ,n
e la Ila Tabella te del caso ~sente
ogramma), e hanno 1atematica :ioni 3 e 5 ;gior parte che la sorrono ipo~ nella se-
. . , g111 (x)
nmazione
. . . ' x*) Il
si consi-
1colo) e e (si vendizioni
l. u 1 2: l , dalla condizione l U = 2). x 1 2: O, dalla condizione 5.
1 - 2u 1 < O. + l Successivamente x 1 = O, dalla condizione 2() = l ). u 1 =/=- O implica che 2x 1 + x 2 - 3 = O, dalla condizione 4. I passi 3 e 4 implicano che x 2 = 3. x 2 =/=- O implica che u 1 = l , dalla condizione 2U = 2}. Nessuna condizione è violata da x 1 =O, x 2 = 3, u 1 = l .
2. Quindi, - -XJ
3. 4. S. 6.
7.
Quindi u 1 = l, x 1 =O, x 2 = 3 soddisfano tutte le condizioni. Di conseguenza, x*= (0, 3) è una soluzione ottima per questo problema. Questo particolare problema era relativamente semplice da risolvere in quanto i primi due passi descritti precedentemente portano velocemente alle conclusioni. La particolare sequenza di passi che occotrono per risolvere le condizioni KKT differisce da problema a problema. Quando la logica da seguire non è così evidente, è spesso utile considerare separatamente i differenti casi con le quantità x1 e u; uguali a O o maggiori di O e quindi si controlla ogni caso per verificare se uno di questi conduce alla soluzione . A scopo illustrativo, si supponga che questo approccio di considerare i differenti casi in maniera separata venga applicato all'esempio precedente. Per questo esempio, occorre considerare otto casi. Questi casi corrispondono alle otto combinazioni x 1 = O e x 1 > O, x 2 = O e x 2 > O e u 1 = O e u 1 > O. Ogni caso porta a una semplice espressione e a un'analisi delle condizioni. Si consideri per primo il caso x 1 = O, x 2 = O, e u 1 =O. Condizioni KKT p er il caso x 1 = O, x 2 = O u 1 = O
~ ::; O. Contraddizione. 0 1 1(j = 2). l - O ::; O. Contraddizione. 3. o + o ::; 3. (Tutte le altre condizioni sono ridondanti). 1U = 1).
Come elencati qui di seguito, gli altri tre casi in cui u 1 = O portano in un modo simile a una contraddizione, e quindi non c'è la possibilità di ottenere una soluzione ottima. Caso x 1 = O, x 2 > O, u 1 = O contraddice la condizione lU = 1), l(j = 2) e 2() = 2). Caso x 1 > O, x 2 = O, u 1 = O contraddice la condizione l(j = 1), 2() = l) e lU = 2). Caso x 1 > O, x 2 > O, u 1 =O contraddice la condizione 10 = 1), 2() = l) 10 = 2) e 20 = 2).
424
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
Il caso x 1 > O, x 2 > O, u 1 > O autorizza a eliminare questi moltiplicatori diversi da zero dalle condizioni 2() = l), 2() = 2) e 4, che quindi autorizza la cancellazione delle condizioni l (j = l), l (j = 2) e 3 essendo ridondanti, come riassunto qui di seguito.
Condizioni di KKT per il caso x 1 >O, x 2 > O, u 1 > O l l()= 1). - - - 2u 1 =O. XJ + l 2() = 2). l - UJ = O. 4. 2XJ + X 2 - 3 =O. (Tutte le altre condizioni sono ridondanti). . . x 1 = - l , che contra dd"1ce x Pertanto, u 1 = l e qmnd1 1
2
Si supponga ora di verificare il caso x 1 = O, x 2
>
> o.
O, u 1
>
O.
Condizioni di KKT per il caso x 1 = O, x2 > O, u 1 > O l lU = 1). 0+1 - 2uJ = O.
2() = 2). l - UJ = O. 4. O +x2 - 3 =O. (Tutte le altre condizioni sono ridondanti). Pertanto, x 1 = O, x 2 = 3, u 1 considerare gli altri casi.
l. A vendo determinato una soluzione, non è necessario
Per problemi più complessi di questo, potrebbe essere difficile, se non impossibile, ricavare una soluzione ottima direttamente dalle condizioni KKT. Nonostante ciò, queste conclizioni forniscono ancora importanti informazioni per l'identificazione di una soluzione ottima, e danno anche la possibilità di verificare se una soluzione è ottima. Ci sono anche altre importanti applicazioni indirette delle condizioni KKT. Una di queste applicazioni sorge nella teoria della dualità che è stato sviluppata per la programmazione nonlineare in maniera parallela alla teoria della dualità per la programmazione lineare presentata nel Capitolo 6. In pa1ticolare, per ogni problema di massimizzazione (detto problema prima/e), le condizioni di KKT possono essere usate per definire un problema duale che è un problema di minimizzazione. Le variabili nel problema duale 18 sono sia i moltiplicatori di Lagrange ui (i = l , 2, . .. , m) sia le variabili primali x1 () = l , 2, ... , n). Nel caso particolare in cui il problema primale sia un problema di programmazione lineare, le variabili x1 possono essere eliminate dal problema duale ed esso diventa il ben noto problema duale (in cui le variabili ui corrispondono alle variabili Yi nel Capitolo 6). Se il problema primale è un problema di programmazione convessa, è possibile stabilire alcune importanti relazioni tra il problema primale e il problema duale simili a quelle per la programmazione lineare. Per esempio, la proprietà forte della dualità del Paragrafo 6.1 , che stabilisce che i valori ottimi della funzione obiettivo dei due problemi sono uguali, vale anche in questo contesto. Inoltre, i valori delle variabili ui in una soluzione ottima per il pro.blema duale possono essere ancora interpretati come prezzi ombra (si vedano i Paragrafi 4.7 e 6.2): cioè, essi indicano il tasso di aumento del valore ottimo della funzione obiettivo per il problema primale per (piccoli) incrementi del termine noto del corrispondente vincolo. La teoria della dualità per la programmazione nonlineare è un argomento relativamente avanzato e il lettore interessato potrà far riferimento ad altri testi per ulteriori informazioni . 19 Nel prossimo paragrafo si vedrà un ' altra applicazione delle condizioni KKT. 18 Per dettagli su questa fommlazione si veda O. T. Mangasarian, Nonlinear Programming, McGraw-Hi ll, New York, l 969, Cap itolo 8. Per una analisi unificata dei vari approcci alla dualità nella programmazione nonlineare. si veda A.M. Geofrrion, " Duality in Nonlinear Programming: A Simplified Applications - Oriented Development" , SIAM Review, 13: 1-37, 1971. 19
lbid.
10.7
:rsi da zero Ielle condi-
10.7
425
LA PROGRAMMAZIONE QUADRATICA
LA PROGRAMMAZIONE QUADRATICA Come già detto nel Paragrafo 10.3 , il problema di programmazione quadratica differisce dal problema di programmazione lineare solo perché la funzione obiettivo comprende termini del tipo xJ e XiXJ (i -=f. j). Pertanto, usando la notazione matriciale introdotta all 'inizio del Paragrafo 5.2, il problema è l masstmtzzare f (x) = ex- xTQx
2
soggetto ai vincoli
e x 2: 0
Ax :::; b
in cui c è un vettore riga, x e b sono vettori colonna, Q e A sono matrici, e il simbolo T denota l' operatore trasposto (si veda l' Appendice 3). Gli elementi qy della matrice Q sono costanti note tali che qy = q1i (che è il motivo per cui c' è il fattore 112 nella funzione obiettivo). Effettuando le moltiplicazioni tra vettori e matrice, la funzione obiettivo può essere espressa in termini di queste quantità qy, e c1 (gli elementi del vettore c) e delle variabili, nel modo che segue: 1 n l n n f (x) = ex - - xTQx c1x1 - qyxixJ
=L
2
necessario
LL
2
)= l
i= l ) = l
Per ogni termine in cui i = j in questa doppia sommatoria, XiXJ = xJ e - _.!._% è il coeffi1 2 ciente di xJ . Se i i- j , allora (qiJxixJ + qJixJxi) = - qyxixJ e quindi - qy è il coefficien.le, ricava:ste condiuzione ot-
na di queammazione lineare detto pro~ma duale i moltipli. Nel caso :, le variaproblema problema mportanti nmazione lisce che i in questo :ma duale .7 e 6.2); Jer il proo. La teovanzato e
1-Hill, New non lineare. - Oriented
2
te del prodotto tra xi e x1 . Per illustrare meglio questa notazione, si consideri il seguente problema di programmazione quadratica. Massimizzare
j(x1 , x2) = 15xl
+ 30x2 + 4x lx2
- 2xi - 4~
soggetto ai vincoli x1
+ 2x2:::;
30
e Xl
2: 0 Xz 2: 0
In questo caso,
[Xi] X2
c= [15
30]
A = [l
2] b = [30]
x=
[
Q=
4 -4]
-4
8
Si noti che xTQx = [x1
xJ[- 4 -4]8 [xX2 4
1
2
= [( 4x l -
4x2)
(-4xl
]
+ 8x2 )] [:~]
= 4xi - 4xzx l - 4xlx2 + 8~
Moltiplicando per -
= qJJX21 + q21X2X1 + q1 2X 1X2 + q22XJ.?
+
si ottiene -
~
XTQX
=
-2xi
+ 4XJX2 - 4~
che è la parte nonlineare della funzione obiettivo per questo specifico esempio. Poiché l q 11 = 4 e q22 = 8, l'esempio illustra che % è il coefficiente di xJ nella funzione
2
426
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
obiettivo. Il fatto che q 12 = q2 1 = -4 mostra che sia -qy sia -qJi forniscono il coefficiente del prodotto tra x; e xi' Sono stati sviluppati diversi algoritmi per problemi di programmazione quadrati ca in cui la funzione obiettivo è una funzione concava. Un modo per verificare la concavità della funzione obiettivo è quello di verificare l'equivalente condizione che
xTQx 2 O per ogni x, e cioè, che Q sia una matrice semidefinita positiva. Si descriverà ora uno 20 di questi algoritmi, il metodo del simplesso modificato, che è molto popolare in quanto richiede solo l' uso del metodo del simplesso con qualche piccola modifica. La chiave per questo approccio è costruire le condizioni KKT ottenute nel paragrafo precedente e quindi esprimere nuovamente queste condizioni in una forma conveniente che assomigli molto alla programmazione lineare. Pertanto, prima di descrivere l'algoritmo, verrà svilupperà questa forma speciale delle condizioni KKT.
Le condizioni di KKT per la programmazione quadratica Con riferimento all'esempio precedente, le condizioni KKT per il problema di programmazione quadratica sono le seguenti. 1() = 2() = 1() = 2() =
3. 4.
1). 15 + 4x2- 4x 1 - u 1 :::; O. 1). x 1(15 + 4x2 - 4x 1 - u 1) = O. 2). 30 + 4x 1 - 8x2 - 2u 1 :::; O. 2). x2(30 + 4x 1 - 8x2 - 2u 1 ) =O. x, + 2x2 - 30 :::; O. u 1(x 1 + 2x2 - 30) =O.
5.
x,:::: O,
6.
u 1 2 O.
X2::::
O.
Per riscrivere queste condizioni in una forma più conveniente, si portino le costanti relative alle condizioni l (j = l), l (j = 2) e 3 a destra e quindi si introducano variabili slack nonnegative (denotate da y" y 2 e v" rispettivamente) allo scopo di convertire queste disuguaglianze in uguaglianze. 1() = 1).
1() = 2).
3.
u,
-4x 1 + 4xz + Yl 4x, - 8x2 - 2u, x 1 + 2xz
Si noti che la condizione pure Yl = O; cioè,
2() = 1). x 1y 1
2U =
- 15
= - 30
+ v1
30
l ) ora può essere riscritta semplicemente come x 1 = O op-
= O.
Allo stesso modo, le condizioni
2() = 2). 4.
=
+ Yz
2U =
2) e 4 possono essere sostituite con
X2Y2 = O, u 1v 1 =O.
Per ognuna di queste tre coppie - (x 1, y 1), (x2, Y2), (u 1, v 1) - le due variabili sono variabili complementari, poiché solo una delle due variabili può essere diversa da zero. Queste nuove forme per le condizioni 2U = l ), 2U = 2) e 4 possono essere combinate nell'unico vincolo =O x,y, +xzY2 +
u,v,
chiamata condizione di complementarità. 20 P. Wolfe, "The Simplex Method for Quadratic programming", Econometrics, 27: 382-398, 1959. In questo articolo viene sviluppata sia una forma ridotta dell 'algoritmo sia una completa. Viene qui presentata una versione della forma ridotta, che assume inoltre che o c = O o la funzione obiettivo è strettamente concava.
10.7
) il coeffiatica in cui avità della
LA PROGRAMMAZIONE QUADRATICA
Dopo aver moltiplicato per - l le condizioni l U= l ) e l U= 2) allo scopo di ottenere termini noti nonnegativi, si ottiene la forma finale per l'intero insieme di vincoli come mostrato di seguito: 4xl -4xl
·a uno 20 di quanto richiave per te e quindi tigli molto svilupperà
program-
427
4xl x1
- 4xz+
+ 8xz + 2u1 + 2xz
2': O,
X1Y1
u1 -y1
Xz 2': O,
+xzyz
+ U1V1
-
Yz
+ v1 u1
2': O,
Y1
= 15 = 30 = 30 2': O,
Yz 2': O,
v1
2': O
= 0
Questa forma è particolarmente gradita perché, fatta eccezione per la condizione di complementarità, si tratta di vincoli lineari. Per qualsiasi problema di programmazione quadratica, le condizioni KKT possono essere ridotte a questa stessa specifica forma che contiene solo vincoli lineari più la condizione di complementarità. In notazione matriciale, questa forma generale può essere espressa come
Qx
+ ATu- y =eT
Ax+v = b x ;:::: O u ;:::: O y ;:::: O
v;::::O
xTy+ urv=O
mti relati-
!bili slack este disu-
in cui gli elementi del vettore colonna u sono le quantità u; definite nel paragrafo precedente e gli elementi dei vettori colonna y e v sono variabili slack. Poiché si è ipotizzato che la funzione obiettivo del problema originario è concava e poiché i vincoli sono lineari e quindi convessi, vale il corollario al teorema del Paragrafo 10.6. Quindi, x sarà una soluzione ottima se e solo se esistono valori di y, u e v tali che (insieme a x) soddisfano contemporaneamente queste condizioni. Il problema originario si è quindi ridotto al problema equivalente di determinare una soluzione ammissibile per queste vincoli. È interessante notare che questo problema equivalente è un esempio di problema di complementarità lineare introdotto nel Paragrafo 10.3 e che un vincolo chiave per il problema di complementarità lineare è il vincolo di complementarità.
Il metodo del simplesso modificato 1
=O op-
variada zero. ombinate
10
'· ln questo n versione
Il metodo del simplesso modificato è basato sull'osservazione che, a eccezione della condizione di complementarità, le condizioni KKT nella forma ottenuta sopra non sono altro che vincoli lineari. Inoltre, la condizione di complementarità richiede semplicemente che non è ammissibile che entrambe le variabili complementari siano variabili (non degeneri) di base (le sole variabili strettamente positive). Pertanto, il problema si riduce a determinare una BFS iniziale per un qualsivoglia problema di programmazione lineare con questi vincoli, con questa ulteriore restrizione sulla scelta delle variabili di base (questa BFS iniziale potrebbe, in questo caso, essere anche la sola soluzione ammissibile). Come discusso nel Paragrafo 4.6, la ricerca di una tale BFS iniziale è relativamente semplice. Nel caso banale in cui eT :::; O (molto raro) e b ;:::: O, le variabili di base iniziali sono gli elementi di y e v e quindi la soluzione desiderata è x = O, u = O, y = -eT, v = b. Negli altri casi, occorre modificare il problema introducendo una variabile artificiale in ciascuna delle equazioni in cui c1 > O (aggiungere una variabile a sinistra) oppure b; < O (sottrarre una variabile a sinistra e quindi moltiplicare per - l) allo scopo di usare queste variabili artificiali (che saranno denotate con z 1, z 2 e così via) come variabili di base iniziali per il problema modificato (si noti che questa scelta di variabili di base iniziali soddisfa la condizione di complementarità, poiché x = Oe u = O in quanto sono variabili non di base).
428
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
Successivamente, si userà la Fase l del metodo del simplesso (si veda il Paragrafo 4.6) per determinare una BFS per il problema reale; cioè, si applicherà il metodo del simplesso (con una piccola modifica) al seguente problema di programmazione lineare minimizzare
Z=
LZJ j
soggetto ai vincoli lineari ottenuti dalle condizioni KKT, con l'aggiunta delle variabili artificiali. La sola variazione nel metodo del simplesso è la modifica della procedura per la selezione di una variabile entrante.
Regola di scelta della variabile entrante: quando si sceglie una variabile entrante, non si deve tener conto delle variabili non di base la cui variabile complementare è già una variabile di base; la scelta è ristretta alle altre variabili non di base secondo il criterio standard utilizzato dal metodo del simplesso Utilizzando questa regola la condizione di complementarità continua a valere per tutto l' algoritmo. Quando si ottiene una soluzione ottima
x* , u* , y* , v* , z 1 = O, ... , z 11 ==O per questo problema, x* è la soluzione ottima desiderata per il problema originario di programmazione quadratica. Non occorre la Fase 2 del metodo del simplesso. ~
Esempio. Si illustrerà ora questa procedura applicandola all'esempio introdotto all 'inizio di questo paragrafo. Come si può facilmente verificare dai risultati che sono nell 'Appendice l (si veda il Problema l 0.7- la), la funzione/(x 1, x 2 ) è strettamente concava e
Q=
[ 4 -4] - 4
8
è definita positiva. Il punto di partenza per risolvere questo esempio sono le condizioni KKT nella forma speciale ottenuta precendentemente. Dopo aver introdotto le necessarie variabili artificiali. il problema di programmazione lineare da risolvere esplicitamente col metodo del simplesso modificato è il seguente minimizzare Z = z 1 + zz soggetto ai vincoli 4x 1 - 4xz - 4x 1 + 8xz
+ u1 + 2ut
+zt
- YI
+ VJ
XI + 2Xz
= 15
+zz = 30
- Yz
= 30
e x1 :::: O,
Xz:::: O,
z 1 ::::O,
z2
::::
u1 :::: O,
YI :::: O,
Yz ::::O,
vi :::: O,
O.
La condizione di complementarità aggiuntiva XtYI
+ xzyz + u1 v 1 =
O,
non è qui implicitamente inclusa, in quanto l'algoritmo automaticamente rispetta questa condizione in base alla regola di scelta della variabile entrante. In particolare, per ognuna delle tre coppie di variabili complementari- (xi. y 1), (x 2 , y 2 ), (ui. v 1) - se una delle due variabili è già una variabile di base, l'altra variabile non è candidata a entrare in base. Le sole variabili diverse da zero sono le variabili di base; poiché l 'insieme iniziale delle variabili di b&se per il problema di programmazione lineare - ZJ. z 2 , v 1 - fornisce una BFS
10.7
:agrafo 4.6) :l simplesso
variabili arper la selemtrante, entare è >eco ndo e per tutto
429
LA PROGRAMMAZIONE QUADRATICA
iniziale che soddisfa la condizione di complementarità, questa condizione non può essere violata da una BFS successiva. La Tabella 10.5 riporta i risultati dell 'applicazione del metodo del simplesso modificato a questo problema. Il primo tableau mostra il sistema iniziale di equazioni dopo la conversione del problema da un problema di minimizzazione a uno di massimizzazione e dopo aver algebricamente eliminato le variabili di base iniziali dall'Equazione (0), proprio come era stato fatto per l'esempio della radioterapia nel Paragrafo 4.6. Le tre iterazioni procedono proprio come per il metodo del simplesso, tranne che per l'eliminazione di alcuni candidati come variabili entranti secondo la regola di scelta della variabile entrante. Nel primo tableau, u 1 non è candidato poiché la variabile complementare (v 1) è già una variabile di base (ma x 2 sarebbe stata scelta comunque poiché - 4 < - 3). Nel secondo tableau, sia u 1 sia Y2 non possono essere candidate (poiché v1 e x 2 sono già variabili di base), quindi x 1 viene automaticamente scelto essendo il solo candidato con coefficiente negativo nella riga O (laddove invece il metodo normale del simplesso avrebbe permesso la scelta o di x 1 o di u 1 in quanto hanno entrambi il coefficiente più negativo). Nel terzo tableau, sia y 1 sia y 2 non sono prese in considerazione (in quanto x 1 e x 2 sono già variabili di base). Comunque, u 1 non viene eliminata perché v1 non è più una variabile di base, e quindi viene scelta u 1 come variabile entrante.
rio di proTabella 10.5 Applicazione del metodo del simplesso modificato
tto all ' iniche sono 1le conca-
!te razione
a questa · ognuna elle due Jase. Le Ielle vama BFS
Termine Eq.
z - l
vl
(O) (l) (2) (3)
l
(O)
- l
zl
(l)
l
o
:Ila forma artificial i, del sim-
Variabile di base
zl z2
xl
o
o o o
o
l
-
x2
ul
Y1
- 4 - 4
- 3 l 2
l - l
4 -4 l
2 '--
o
- 2
o
2
o
8
l
- l
- 2
l
2
2
- l
-2
x2
(2)
o -2
l
vl
(3)
o
2
o
l
(O)
o
o - 25
zl
(l)
o o
o
- l
o
2 x2
(2)
xl
(3)
l
(O)
o o
l
5
2 l
8
l
o
l ~
o o
o
l
o
ul
(l)
o
o o
x2
(2)
o
o
- l
l
l
3
Xl - - - - - - - - - - - - - - - -------------------
(3) ---~~
o
l
--------- - -------
o --- -----
l
o
o o
l 4 l 2
zl
vl
Y2
o l l
l
o
-8
o
4
l
3
o o o o
o
o
l
2
o
o
l
l
o
o
l
- l
3 4
-l
o - 16 l o 8
l 4 l 2
o
o - 10
o 3 lO l 40 l 20
--- - ------ - - - - - - - - -- - - - - - - -
l
o o
4
2 5 l 20 l
o o
o
l
l
l
noto
z2
o 2 5 3 lO 2 5
l
2
l
-30
l
30
8
3l 4
l 4
22~
l
- 7_1_ 2
4 3
7~ 9l8
l
4
o
l
T6
o
-8
11 _l_ 4
l 3 lO l 40 l - 20
o
l 2 5 l - 20 l
l
o
- 45 15 30 30
10
l
3
9 12
----------------------------- ---------- - - - -
La soluzione ottima risultante per questa Fase l è x 1 = 12, x 2 = 9, u 1 = 3 con il resto delle variabili uguali a zero (il Problema 10.7-l c chiede di verificare che questa soluzione è ottima mostrando che x 1 = 12, x 2 = 9, u 1 = 3 soddisfano le condizioni KKT per il problema originario quando sono scritte nella forma data nel Paragrafo 10.6). Pertanto, la solu-
430
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
zione ottima per il problema di programmazione quadrati ca (che comprende solo le variabili x 1 e x2 ) è (x 1, x2 ) = (12, 9).
Alcune opzioni software È possibile utilizzare Excel per risolvere problemi di prograrrunazione quadratica. La procedura per usare Excel per questa classe di problemi è pressoché identica a quella della programmazione lineare. L'unica differenza sostanziale è che l'equazione immessa per la casella che contiene il valore della funzione obiettivo deve essere ora una equazione quadratica. A scopo illustrativo, si consideri nuovamente l'esempio introdotto all'inizio di questo paragrafo in cui la funzione obiettivo è
f (x ,, xz) = 15x, + 30xz + 4x, xz - 2xf - 4~ Si supponga che i valori di x 1 e x 2 siano nelle caselle B4 e C4 del foglio Excel, e che il valore della funzione obiettivo sia nella casella F4. Allora l'equazione per la casella F4 dovrà essere F4
=
15*B4 + 30*C4
+ 4*B4*C4- 2*(B4/\2)- 4*(C4/\2)
dove il simbolo /\2 indica l'elevamento al quadrato. Prima di risolvere il modello, bisogna assicurarsi che l'opzione ipotizzare un modello lineare non sia stata selezionata (poiché questo non è un modello di programmazione lineare). Si noti che il Risolutore di Excel non garantisce di determinare la soluzione ottima per problemi particolarmente difficili, specialmente per problemi di programmazione non convessa (l 'argomento del Paragrafo 10.10).
PROGRAMMAZIONE SEPARABILE Nel paragrafo precedente è stato mostrato come una classe di problemi di programmazione nonlineare può essere risolta tramite un 'estensione del metodo del simplesso. In questo paragrafo verrà considerata un'altra classe di problemi, detta programmazione separabile, che può essere ancora risolta con una variante del metodo del simplesso, perché un tale problema può essere approssimato con l'accuratezza desiderata mediante un problema di programmazione lineare avente un più grande numero di variabili. Come già accennato nel Paragrafo 10.3, nella programmazione separabile si assume che la funzione obiettivo f (x) sia concava, che ognuno dei vincoli g;(x) sia convesso, e che tutte queste funzioni siano funzioni separabili (funzioni in cui ogni termine dipende da un ' unica variabile). Comunque, per semplificare l'argomento, di seguito verrà trattato il caso speciale in cui le funzioni g;(x) convesse e separabili sono fun zioni lineari. Quindi, solo la funzione obiettivo richiederà particolare attenzione. Con le precedenti assunzioni, la funzione obiettivo può essere espressa come somma di funzioni concave ciascuna di una singola variabile Il
f (x) =
L _h (xJ) )= l
21
dove ogni _h(x1 ) ha una forma simile a quella mostrata in Figura 10.15 (uno dei due casi) nel dominio di ammissibilità dei valori di x1. Poichéf( x) rappresenta una misura di performance (per esempio il profitto totale), ogni termine_h (x1) rappresenta il contributo al pro21
f(x) è concava se e solo se ogn i j;{xj) è concava.
10.8
lo le varia-
a. ica a quelne immesuna equajotto ali ' i-
: che il vaIla F4 do-
), bisogna ta (poiché )ttima per :ione non
431
PROGRAMMAZIONE SEPARABILE
fitto dall ' attività) quando essa viene eseguita allivello x1. La condizione chef(x) sia separabile implica che vale l' assunzione di additività (Paragrafo 3.3); e cioè, non ci sono interazioni tra le diverse attività (non ci sono te1mini in cui compaiono prodotti di variabili) che influenzano il profitto totale al di là dei loro singoli contributi. L ' assunzione che ogni jj(x1 ) sia concava impone che la redditività marginale (la pendenza della curva di profitto) o non cambia o diminuisce (ma non aumenta mai) al crescere di x1. Curve di profitto concave sono la norma. Per esempio, potrebbe essere possibile vendere una quantità limitata di un certo prodotto a uno specifico prezzo, quindi un ulteriore quantità a un prezzo più basso, e forse alla fine un' altra quantità a un prezzo ancora più basso. Allo stesso modo, potrebbe essere necessario acquistare materie prime da fornitori a costi sempre più alti . In un altra situazione, potrebbe essere usato un processo di produzione più costoso (per esempio, facendo ricorso al lavoro straordinario) per incrementare il livello di produzione oltre un certo limite determinato. Questi tipi di situazioni possono portare a uno dei tipi di curva di profitto mostrati in Figura 10.15. Nel caso l , la pendenza decresce solo in specifici punti, ejj (x1 ) è unafimzione lineare a tratti (una sequenza di segmenti connessi). Nel caso 2, la pendenza decresce con continuità al crescere di x1, e quindi ./j(x;) è una generica fimzione concava. Una tale fun zione può essere approssimata con l' accuratezza desiderata da una funzione lineare a tratti, ed esattamente questo tipo di approssimazione viene usata nei problemi di programmazione separabile (la Figura l 0.15 mostra una funzione approssimante che consiste di appena tre segmenti, ma si può ottenere un 'approssimazione ancora migliore introducendo altri punti). Tale approssimazione è molto conveniente poiché una funzione lineare a tratti di una singola variabile può essere riscritta come unafimzione lineare di più variabili, con un vincolo particolare sui valori di queste variabili, come descritto di seguito.
Riformulazione come problema di programmazione lineare
lmmaziOIn questo
Il segreto per riscrivere una funzione lineare a tratti come una fimzione lineare è quello di usare una variabile diversa per ogni segmento. A scopo illustrativo, si consideri la funzione lineare a tratti ./j(x;) mostrata in Figura 10.15, caso l (oppure la funzione lineare a tratti approssimante nel caso 2), che ha tre segmenti nell ' insieme dei valori ammissibili di x1. Si introducano le tre nuove variabili x11, x12 e Xj 3 e si ponga
x1 = x; 1 +xJ2 +x;3
parabile, 1é un tale >blema di
a assume nvesso, e ! dipende ·à trattato i lineari.
:omma di
dove 0 :S Xjl :S Uj l
0 ::; Xj2 ::; Uj2
0 ::; Xj3 :Suj3
Quindi si usino le pendenze s1" s12 e s13 per riscrivere ./j (x;) come
./j(x;)
= s11 x11 + s12x12 + Sj3Xj3
con il vincolo speciale che
Xj2 = 0 Xj3 = 0
quando quando
x11 < u11 x12 < u1z
Per capire perché è necessario questo speciale vincolo, si supponga che x1 = l , dove > l (k = l , 2, 3), cosicché jj( l ) = s11. Si noti che
u1k
x11 +x;z +x;3 = l fa sì che
XjJ = l , Xj2 = O, Xj3 = 0 Xj l =O, Xj2 = l , Xj3 = 0 Xj i =O, x;z =O, Xj3 = l
due casi) ii perfor-
o al proe così via, dove
s; 1 > s;z
> s;3
=?
jj( l ) =
=?
jj ( l ) = Sj2
=?
./j( l ) = Sj3
Sj i
432
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
Caso l fix) è concava e lineare a tratto
fix)
PJ3
....., '~
:~
~
PJ2
.... a.
O)
g <.;:::
2 PJI
o..
Xj
o
Uj l
Uj l
+ Uj2
3
Livello dell'attivitàj
I
Ujk k= l X;2- J - xJ3
1--xJI--J..
.. 1
Caso 2
i)(x) è una fun zione concava
fix)
PJ3 -::.--??
·-.
-:;....-/
'~
:~
~'/'"
PJ2
'<;l
/''?
...
//
&
g
""/
<.;:::
o
0:;
Sj3
/
- - - i ) (x)
Sj2
~
- - - - - Approssimazione di i)(x)
PJI
r;
r;
f
r; r; SJI (pendenza) f;
• Figura 10.15 Forma delle curve di profitto per la programmazione separabile.
o
Xj Uj l
Uj l
+ Uj2
3
I
Livello dell'attivitàj Ujk
k =l 1--xJI
-!-
x12 - j - xj3
·l
Questo vincolo speciale permette solo la prima possibilità, che è la sola a dare il corretto valore di Jì (ì ). Sfortunatamente, il vincolo non si adatta al formato richiesto per la programmazione lineare, e quindi alcune funzioni lineari a tratti non possono essere riscritte in un formato utile per la programmazione lineare. Ma le funzioniJì (x;) pres~ qui in considerazione sono funzioni concave e pertanto s11 > s12 > ... , di modo che un algoritmo per massimizzare f (x) automaticamente dà la più alta priorità a usare xJI quando (in effetti) si incrementa x1
10.8
PROGRAMMAZIONE SEPARABILE
433
a partire da zero, la successiva priorità a usare XJ2, e così via, senza che sia mai necessario includere in maniera esplicita nel modello il vincolo speciale. Questa osservazione porta alla seguente proprietà fondamentale. Proprietà fondamentale della programmazione separabile. Se le funzioni f(x) e g; (x) soddisfano le assunzioni della programmazione separabili, e se le risultanti funzioni lineari a tratti vengono riscritte come funzioni lineari, allora la cancellazione del vincolo speciale fornisce un modello di programmazione lineare la cui soluzione ottima automaticamente soddisfa anche questo vincolo speciale. Si elaborerà ulteriormente, più avanti nel paragrafo, la logica che sta dietro questa proprietà fondamentale, nell 'ambito di un esempio specifico (si veda anche il Problema 10.84a).
Per scrivere il modello completo di progranunazione lineare nella notazione precedente, sia n1 il numero di segmenti di jj(x1) (o della funzione lineare a tratti che la approssima), cosicché n;
Xj
Xj = L XJk k= l
'attivitàj
è sostituita nel modello originale e n;
Jì(xJ) = L SJk XJk k= l
viene sostituita22 nella funzione obiettivo per j n
massimizzare
Z = L J= l
(
ni
L SJkXJk k= l
= l, 2, .. . , n. Il modello risultante è
)
Soggetto ai vincoli n
(
L aJi J= l
ni
)
L XJk k= l
$_
b; per i = l , 2, ... , m
XJk $_ u1k
per k = l , 2, . . . , n1; j = l , 2, . .. , n
e x1k 2: O per 1e diij(xj)
-
Xj
t ttivitàj
k =l, 2, ... , n1; } = l , 2, ... , n.
(i vincoli l:~= t x1k 2: O vengono eliminati poiché sono automaticamente soddisfatti dato che x1k 2: 0). Se alcune delle variabili originarie x1 non hanno un limite superiore, allora u1n1 = oo, e quindi i vincoli che riguardano questa quantità saranno cancellate. Un modo efficiente per risolvere questo problema 23 è usare una versione speciale del metodo del simplesso per trattare in maniera esplicita con limiti superiori sulle variabili. Dopo aver ottenuto una soluzione ottima per questo modello, si dovrà calcolare llj
Xj = L XJk k= l
corretto
tzione Iiformato :ione soimizzare menta x1
per j = l , 2, ... , n per identificare una soluzione ottima per l'originario modello di programmazione separabile (o per la sua approssimazione lineare a tratti). 22
Se una o più delle funzioni .!f(x1) sono già funzio ni lineari.!f (x1 ) = c1x1, allora n1 = l così nessuna di queste sostituzioni sarà necessaria per j.
23
Per un algoritmo specifico per la risoluzione di questo modello in maniera molto efficiente si veda R. Fourer, "A Specialized Algorithm for Picewise-Linear Programming III: Computational Anal sys is and Applications" , Mathematical Programming, 53 : 2 13-235, 1992. Oppure A.M. Geoffrion, "Objective Function Approximations in Mathematical Programming" , Mathematical Programming, 13: 23 -3 7, 1977.
434
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
Esempio. La Wyndor Glass Co. (si veda il Paragrafo 3.1) ha ricevuto un ordine speciale per manufatti da produrre negli impianti l e 2 per i prossimi 4 mesi. Per evadere questo ordine occorrerà spostare alcuni operai che lavorano per gli altri prodotti, e si dovrà ricorrere al lavoro straordinario per sfruttare appieno la capacità produttiva dei macchinari per questi prodotti. In particolare, per i due nuovi prodotti di cui si è discusso nel Paragrafo 3 .l , occorrerà del lavoro straordinario per utilizzare il restante 25% della capacità produttiva disponibile nell ' impianto l per il prodotto l e per il restante 50% della capacità produttiva disponibile nell'impianto 2 per il prodotto 2. Il costo addizionale per il lavoro straordinario ridurrà il profitto per ciascuna unità prodotta da 3 dollari a 2 dollari per prodotto l e da 5 dollari a l dollaro per il prodotto 2, e quindi le risultanti curve di profirto sono quelle in Figura l 0.16, entrambe le quali si adattano alla forma del Caso l di Figura 10.15. Il management ha deciso di impiegare lavoro straordinario piuttosto che assumere nuovi operai per questa situazione temporanea. Comunque, insiste che le squadre che lavorano a ciascun prodotto siano utilizzate completamente prima che si faccia ricorso lavoro straordinario. Inoltre, si ritiene che il corrente livello di produzione (x 1 = 2 per · prodotto l e x 2 = 6 per il prodotto 2) possa essere modificato temporaneamente se ciò servisse a migliorare la redditività totale. Pertanto, ha dato ordine al gruppo di Ricer' Operativa di rivedere i prodotti l e 2 per determinare il mix più redditizio per i prossimi 4 mesi. Formulazione. Il modello di programmazione lineare per il problema originario della Wyndor Glass Co. (già riportato nel Paragrafo 3.1) è il seguente massimizzare
Z
=
3x 1 + 5x2
soggetto ai vincoli
x, 2x2
:::;
4
:::;
12
3x, + 2xz :::; 18 e
x , 2 O xz 2 O
• Figura 10.16
Prodotto l
Profitti per i successivi 4 mesi per la Wyndor Glass Co.
Prodotto 2
18
g 15
2
E
e
0..
-o
o
"' "'o;
11
9
f-<
o
!-----;-: -----
l l
3 4 Tasso di produzione
l;:
e
0..
:0 o
"'"'o;
f-<
o
3 Tasso di produzione
6
10.8
line specia:lere questo lovrà ricorchinari per l Paragrafo :ità produtpacità pror il lavoro rllari per il ? di profilCaso l di
Occorre ora modificare questo modello per adattarlo alla nuova situazione descritta prima. A questo scopo, si pone x 1 = x 1R + x 1o per il tasso di produzione per il prodotto l, dove x 1R è il tasso di produzione ottenuto nelle ore di lavoro regolare e x 10 è il tasso incrementale di produzione ottenuto con il lavoro straordinario. Allo stesso modo, si definisce x 2 = x 2R + x 20 per il prodotto 2. Quindi, nella notazione generale del modello di programmazione lineare per la programmazione separa bile specificata prima, n = 2, n 1 = 2, e n2 = 2. Inserendo i dati della Figura 10.16 (compresi i livelli massimi di produzione sia per il lavoro ordinario sia per quello straordinario) in questo modello generale, si ottiene il modello specifico per questa applicazione. In particolare, il nuovo problema di programmazione lineare è determinare i valori di x 1R, x w , XzR e x 2o tali da massumzzare
assumere :Ire che laricorso al = 2 per il :nte se ciò ji Ricerca i proSSIIUJ
435
PROGRAMMAZIONE SEPARABILE
Z = 3x ,R
+ 2xw + SxzR + Xzo
soggetto ai vincoli XiR
+ XIQ
::::: 4 2(xzR + xzo) :::; 12
3(x ,R + xw )+ 2 (xzR +xzo):::; 18 X1 R ::::: 3
X10 ::::: l
XzR ::::: 3
Xzo ::::: 3
dove tario della
71
l l l
l l l l l l l
l l l
l l l l ~
6
XiR ~ 0
X10 ~ 0
XzR ~ 0
Xzo ~ 0
(si noti che i limiti superiori nella penultima riga del modello rendono i primi due vincoli ridondanti e quindi questi possono essere eliminati dal modello). Un fattore importante che non viene preso in considerazione esplicitamente in questa formulazione è che nulla nel modello impone che tutto il tempo di lavoro ordinario a disposizione per un prodotto sia pienamente utilizzato prima che venga impiegato del lavoro straordinario. In altre parole, potrebbe essere possibile avere x 10 > O anche quando x 1R < 3 e avere x 20 > O anche quando XzR < 3. Queste soluzioni, comunque, non sono accettabili per il management (vietare queste soluzioni è proprio lo scopo dello speciale vincolo discusso prima in questo paragrafo). La proprietà fondamentale della progra1mnazione separabile implica che, anche se il modello non include questo vincolo esplicitamente, lo fa implicitamente! Nonostante il modello abbia soluzioni anunissibili che sono inaccettabili, qualsiasi soluzione ottima per il modello ha la garanzia di essere una soluzione legittima che non sostituisce un eventuale tempo di lavoro ordinario con uno di lavoro straordinario (il ragionamento qui è analogo a quello sviluppato per il metodo del Big M discusso nel Paragrafo 4 .6, in cui soluzioni ammissibili ma mai ottime venivano accettate nel modello per una questione di convenienza). Pertanto, il metodo del simplesso potrà essere tranquillamente applicato a questo modello per determinare quale sia il mix di prodotti più redditizio. Si noti che due variabili decisionali relative a ciascun prodotto appaiano sempre insieme come somma, x 1R + x w o XzR + xzo , in ognuno dei vincoli funzionali. Petianto, è sempre possibile convertire una soluzione ammissibile in una nuova che abbia gli stessi livelli di produzione, x 1 = x 1R + x w e xz = Xz R + xzo , semplicemente sostituendo il più possibile la produzione realizzata con lavoro straordinario con quella con lavoro ordinario. Inoltre, la produzione con lavoro straordina1io è meno redditizia di quella con lavoro ordinario (la pendenza di ogni curva di profitto nella Figura l 0.16 è una funzione monotòna decrescente del livello di produzione), quindi questa conversione incrementa il profitto totale Z. Di conseguenza, ogni soluzione ammissibile che usi la produzione con lavoro straordinario per un prodotto, quando invece è ancora disponibile produzione con lavoro ordinario non può essere ottima. Per esempio, si consideri la soluzione ammissibile x 1R = l, x 10 = l, x 2 R = l, x 20 = 3, che porta a un profitto pari aZ= 13. Lo stesso livello di produzione x 1 = 2 e x 2 = 4 può
436
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
essere ottenuto con x 1R = 2, x 10 = O, x 2 R = 3, x 20 = l. Quest'ultima so luzione incrementa Z di (3 - 2)( l) + (5 - l )(2) = 9 con un profitto totale pari aZ = 22. La soluzione ottima per questo modello è x 1R = 3, x 10 = l , x 2 R = 3, x 20 = O, che è una soluzione ammissibile e accettabile dal management.
Alcune estensioni della programmazione separabile Finora si è trattato in modo specifico del caso particolare di programmazione separabile in cui la sola funzione nonlineare è la funzione obiettivof(x). Nel caso generale in cui i vincoli gi(x) non sono lineari ma sono fun zioni convesse e separabili, ogni gi(x) potrà essere espressa come somma di funzioni di variabili individuali Il
gi(x)
=L gu(xJ) )=l
dove ciascuna gu(x1 ) è una funzione convessa. Ancora una volta, ognuna di queste fun zioni può essere approssimata con il livello di approssimazione desiderata da una funzione lineare a tratti (se non è già in tale forma). L'unico nuovo vincolo è che per ogni variabile x1 U = l , 2, ... , n), tutte le approssimazioni lineari a tratti di tale variabile lfì(x1 ), g1J (x1 ) . . . . , g 11 u(x1 )] devono avere gli stessi punti in cui cambia la pendenza cosicché le stesse nuove variabili (x11 , x12 , ... , x1,u) possono essere usate per tutte queste funzioni lineari a tratti. Questa fommlazione porta a un modello di programmazione lineare simile a quello considerato precedentemente tranne che per ogni i e j , la variabile x1k ora ha coefficienti diversi in ciascun vinco lo i (questi coefficienti sono le corrispondenti pendenze delle funzioni lineari a tratti approssimanti gu(x)). Poiché si richiede che le gu(x1) siano convesse. essenzialmente la stessa logica precedente implica che la proprietà fondamentale della programmazione separabile continua a valere (si veda il Problema 10.8-4b). Uno svantaggio dell 'approssimazione mediante funzioni lineari a tratti, come descritto in questo paragrafo, è che per ottenere una buona approssimazione occorrono un gran numero di segmenti (e quindi, di variabili), in quanto occorre una griglia molto fitta per i punti in cui cambi la pendenza nelle immediate vicinanze di una soluzione ottima. Quindi, sono stati sviluppati 24 approcci molto sofisticati che usano una successione di funzioni lineari a tratti con due segmenti allo scopo di ottenere approssimazioni sempre migliori in questi intomi. Questo tipo di approccio tende a essere sia più veloce sia più accurato nell 'approssimazione di una soluzione ottima.
10.9
PROGRAMMAZIONE CONVESSA Alcuni casi patticolari della programmazione convessa sono stati già discussi nei Paragrafi l 0.4 e l 0.5 (problemi non vincolati), l O.7 (funzioni obiettivo con vincoli lineari) e 10.8 (funzioni separabili). La teoria per il caso generale (condizioni necessarie e sufficienti per l'ottimalità) è stata presentata nel Paragrafo l 0.6. In questo paragrafo, verranno trattati brevemente alcuni tipi di approcci usati per risolvere problemi generali di programmazione convessa (in cui la funzione obiettivo f(x) da massimizzare è concava e i vincoli gi(x) sono convessi), e quindi si presenterà un algoritmo per la programmazione convessa. Non esiste un singolo algoritmo che possa essere usato sempre per risolvere problemi di programmazione convessa. Sono stati invece sviluppati molti e differenti algoritmi, ciascuno con i suoi vantaggi e svantaggi, e la ricerca è ancora molto attiva in questo campo. A grandi linee, questi algoritmi ricadono in una delle seguenti tre categorie. 24
R.R. Meyer, "Two-Segment Separable Programmino", Management Science, 25: 385-395, 1979 .
10.9
1e incremen) =O, che è
.eparabile in in cm t vmpotrà essere
~ste
funziofunzione /ini variabile
x1), gv(x1) . 1é le stesse ni lineari a ile a quello ;oefficienti : delle fun, convesse. ntale della e descritto n gran nofitta per i 1e ottima. essione di ni sempre sia più ac-
437
PROGRAMMAZIONE CONVESSA
La prima categoria è quella degli algoritmi basati sul gradiente, in cui il metodo del gradiente presentato nel Paragrafo 10.5 è modificato così da inglobare le infonnazioni sui vincoli. Per esempio, un metodo del gradiente molto popolare è il metodo generalizzato del gradiente ridotto (GGR). Il Risolutore di Excel usa il metodo GGR per risolvere problemi di programmazione convessa. La seconda categoria di algoritmi - algoritmi sequenziali nonvincolati - include metodi che utilizzano .fimzioni di penalità o di barriera. Questi algoritmi convet1ono I' originario problema di ottimizzazione vincolata in una sequenza di problemi di ottùnizzazione nonvincolata le cui soluzioni ottime convergono alla soluzione ottima del problema originario. Ciascuno di questi problemi di ottimizzazione nonvincolata può essere risolto dagli algoritmi descritti nel Paragrafo l 0.5. Questa conversione viene ottenuta inglobando i vincoli o mediante una funzione di penalità (o una funzione barriera) che viene sottratta dalla funzione obiettivo allo scopo di imporre una penalità per la violazione dei vincoli (o persino per trovarsi vicini alla frontiera dei vincoli). Nell'ultima parte di questo paragrafo, si descriverà un algoritmo proposto intorno al 1960, chiamato la tecnica di minimizzazione sequenziale nonvincolata (Sequential Unconstrained Minimization Technique, SUMT), che aprì la strada a questa classe di algoritmi (I 'algoritmo SUMT ha anche motivato alcuni dei metodi a punti interni per la programmazione lineare). La terza categoria - algoritmi di approssimazione sequenziale - include metodi di approssimazione lineare e di approssimazione quadratica. Questi algoritmi sostituiscono la funzione obiettivo nonlineare con una successione di approssimazioni lineari o quadratiche. Per problemi di ottimizzazione con vincoli lineari, queste approssimazioni permettono l'applicazione ripetuta di algoritmi per la programmazione lineare o quadratica. Nonostante questi algoritmi siano particolannente adatti per problemi di ottimizzazione con vincoli lineari, alcuni di essi possono anche essere estesi a problemi con vincoli nonlineari usando opportune approssimazioni lineari . Come esempio di algoritmo di approssimazione sequenziale, verrà presentanto qui l'algoritmo di Frank-Wolfe 25 per problemi di programmazione convessa con vincoli lineari (cioè con vincoli del tipo Ax :::; be x ;:::: 0). Questa procedura è particolarn1ente semplice: essa combina approssimazioni lineari della funzione obiettivo (cosa che pennette quindi di usare il metodo del simplesso) con una procedura per l' ottimizzazione nonvincolata in una variabile (come descritto nel Paragrafo l 0.4).
Un algoritmo di approssimazione lineare sequenziale (algoritmo di Frank-Wolfe) Dato un punto ammissibile x', l'approssimazione lineare usata per la funzione obiettivo f(x) è la serie di Taylor troncata al primo ordine per f(x) in un intorno del punto x= x', e cioè
cussi nei ·li lineari) e e soffiverranno pro grami vincoli :onvessa. problemi itmi, ciaJ campo.
f(x') >=:!f(x')
+t a~~:')
(xj- x;)= f(x')
+ \i'f (x')(x- x')
dove le derivate parziali sono calcolate in x = x'. Poiché f(x') e V'f(x')x' sono costanti, esse possono essere trascurate per ottenere una funzione obiettivo lineare equivalente Il
g(x)
= V'f(x') x = L J= l
CJXJ
dove ci = 8f(x)
axi
per x = x'
25 M. Frank e P. Wolfe, "An Algorithm for Quadratic Programming", Nova/ Research Logistics Quarterly, 3: 95 - 11 O, 1956. Anche se progettato originalmente per la programmazione quadratica, questo algoritmo può essere facilmente esteso al caso di una funzione obiettivo concava.
438
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
Viene quindi applicato il metodo del simplesso (o la procedura grafica se n = 2) al risultante problema di programmazione lineare [massimizzare g (x) soggetto ai vincoli originari, Ax ::::; b e x ~ O] per determinare una sua soluzione ottima x LP· Si noti che il valore della funzione obiettivo lineare aumenta muovendosi lungo il segmento che congiunge x' con x LP (che si trova sulla frontiera della regione ammissibile). Comunque, l'approssimazione lineare potrebbe non essere particolam1ente valida per un punto x lontano da x' , e pertanto il valore della funzione obiettivo nonlineare potrebbe non continuare ad aumentare tra x' a xLP · Quindi, piuttosto che accettare semplicemente xLP come prossimo punto, si sceglie il punto che massimizza la funzione obiettivo nonlineare in questo segmento. Questo punto può essere determinato tramite una procedura per l'ottimizzazione nonvincolata in una variabile del tipo presentato nel Paragrafo l 0.4; la variabile scelta per questo scopo è la frazione t della distanza totale da x ' a xLP· Questo diventa quindi il huovo punto per la successiva iterazione deli ' algoritmo. La sequenza di punti generata converge a una soluzione ottima per il problema originario, e l' algoritmo termina quando il nuovo punto è sufficientemente vicino a questa soluzione ottima.
Sommario dell'algoritmo di Frank-Wolfe Inizializzazione: si scelga un punto iniziale xC 0l, per esempio, applicando una procedura per la programmazione lineare per la ricerca di una BFS iniziale. Si fissi k = l. Iterazione k: l. Per} = l , 2, ... , n, si calcoli
Of(x)
axi
per x =
x (k- 1)
e si ponga c1 uguale a questo valore. 2. Si trovi una soluzione ottima x~~ per il seguente problema di programmazione lineare. n
g (x)
Massimizzare
=L cixi J= l
soggetto ai vincoli Ax ::::; b
e
x ~
O
3. Con O ::::; t ::::; l , si ponga
h(t) = f (x) con x =
x (k- l )
+ t(xi~ -
x (k- l ) )
di modo che h(t) è il valore di f( x) lungo il segmento tra x (k- l ) (corrispondente a t = O) e x~J (corrispondente a t = 1). Si usi una qualche procedura per l'ottimizzazione nonvincolata in una variabile (si veda il Paragrafo 10.4) per massimizzare h(t) con O ::::; t ::::; l , e si ponga x (k) uguale al corrispondente x. Si verifichi il criterio di tem1inazione. Criterio di terminazione: se x (k- l l e x (k) sono sufficientemente vicini, stop: xC" l (o una qualche estrapolazione di x C0l, x 0 l, .. . , x Ck- l ), x (k) ) è la stima della soluzione ottima. Altrimenti, si ponga k = k + l e si esegua una nuova iterazione.
Si illustrerà ora questa procedura con un esempio Esempio. lineari:
Si consideri il seguente problema di programmazione convessa con vincoli
masstmtzzare
f( x) = 5x 1 -x~
+ 8x2 -
2x ~
10.9
~)
PROGRAMMAZIONE CONVESSA
439
soggetto ai vincoli
al risul-
li origina-
+ 2xz:::; 6
3x1
' alore del,giunge x' prossima) da x', e td aumenno punto, ;egmento . e nonvinJer questo lOVO pun)nVerge a il nuovo
e XJ
2: 0 Xz 2: 0
Si noti che
of
of =
= 5 - 2x
8- 4xz
oxz
OX!
e quindi il massimo nonvincolato x = (
~
,
2)
viola i vincoli fun zionali.
Iterazione 1: poiché x= (0, O) è ovviamente ammissibile (è la BFS iniziale), si sceglierà questo come punto iniziale x
xLJ
)[Ocedura
(x 1, xz) = (0, O)+ t[(O, 3)- (0, O)] = (0,
con O:::;
t :::;
l
3t)
come mostrato nella sesta colonna della Tabella l 0.6. Questa espressione porta a
h(t) = f(O, 3t) = 8(3t) - 2(3t) 2
= 24t - 18t2 cosicché il valore t =t* che massimizza h(t) per O :::; t :::; l può essere ottenuto ponendo dh (t ) = 24 - 36t = dt
: lineare. in modo tale che t*
=
2
3.
o
Questo risultato porta al successivo punto x (I ) =
(0, O)+
~
[(0, 3) - (0, O)]
= (0, 2), e questo completa la prima iterazione.
ndente a nizzazioh(t) con termina-
'l (o una
~
ottima.
1
vincoli
• Figura 10.17 Illustrazione dell'algoritmo di Frank-Wolfe.
xz
xz
'3
3
'' ''
'-,24 = Sx1
+ 8x2
'' '' '' ''
2
2
x <2)
x
LP
o
2 (a)
XJ
o
2 (b)
X[
440
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
Tabella 10.6 Applicazione dell'algoritmo di Frank-Wolfe all'esempio considerato k
x
l
2
Ct
Cz
x
(0, O)
5
8
(0, 3)
(0, 3t)
24t - 18f
3
(0, 2)
(O, 2)
5
o
(2, O)
(2t, 2 - 2t)
8 + 10t -1 2f
5
TI
(t,~)
x per h( t)
LP
h( t)
t*
2
xlkJ
Iterazione 2: per descrivere brevemente i calcoli che portano ai risultati nella seconda riga della Tabella 10.6, si noti che con x< 1) = (0, 2) si ha Ci
= 5 - 2(0) = 5
C2
= 8- 4(2) = 0
Per la funzione obiettivo g(x) = 5x 1, la risoluzione wafica del problema nella regione 2 ammissibile mostrata nella Figura l 0.17a detennina xL = (2, O). Pertanto, l'espressione 1 per il segmento tra x< ) e xfJ (si veda la Figura l O.l 7a) risulta essere
J
x = (0, 2) + t[( 2, O) - (0, 2)] =
(2t, 2 - 2t)
e quindi
h(t) = f(2t, 2- 2t)
= 5(2t) - (2t)2 + 8(2 - 2t) - 2(2 - 2t)2 = 8+10t-12t2 Ponendo
dh (t) dt .
SI
= 10 -
24t
=o
. . 15 p . ertanto, ottiene t"' =
2
2
x( )
= (0, 2) + = (
5 [(2, O) - (0, 2)] 12
~ ' ~)
che completa la seconda iterazione. La Figura l 0.17 b mostra i punti ottenuti nelle iterazioni 3, 4 e 5. Si può notare come questi punti continuano ad alternarsi tra due traiettorie che sembrano intersecarsi approssimativamente nel punto x
=
(l,~ ).
Questo punto è, infatti, la soluzione. ottima, come si
può verificare applicando le condizioni KKT del Paragrafo 10.6.
Questo esempio illustra una caratteristica comune dell ' algoritmo di Frank-Wolfe, cioè, che i punti si alternano tra due (o più) traiettorie. Quando questo accade, si possono estrapolare le traiettorie verso il comune punto di intersezione per stimare una soluzione ottima. Questa stima tende a essere migliore dell'uso dell'ultimo punto generato. La ragione è che i punti tendono a convergere piuttosto lentamente verso una soluzione ottima, e quindi l'ultimo punto potrebbe essere ancora lontano da quello ottimo.
Altri algoritmi per la programmazione convessa È opportuno sottolineare che l'algoritmo di Frank-Wolfe è solo uno degli algoritmi di approssimazione sequenziale. In genere, vengono usate a ogni iterazione approssimazioni
10.9 ;iderato
PROGRAMMAZIONE CONVESSA
441
quadratiche anziché lineari, poiché le approssimazioni quadratiche si avvicinano molto di più al problema originario e quindi fanno sì che la sequenza di soluzioni converga molto più rapidamente a una soluzione ottima di quanto non accada nel caso in Figura 10.17 b. Per questo motivo, anche se i metodi di approssimazione sequenziale lineare come quello dell'algoritmo di Frank-Wolfe sono relativamente semplici da applicare, i metodi di approssimazione sequenziale quadratica 26 sono ora generalmente preferibili nelle applicazioni reali. I più popolari tra questi sono i metodi quasi-Newton (o a metrica variabile). Come già detto nel Paragrafo 10.5, questi metodi usano un ' approssimazione del metodo di Newton e vengono modificati per tenere conto dei vincoli. Per accelerare l'algoritmo, i metodi quasi-Newton calcolano un'approssimazione quadratica della curvatura di una funzione nonlineare senza però calcolare esplicitamente le derivate (parziali) seconde (per problemi di ottimizzazione con vincoli lineari, la funzione nonlineare è esattamente la funzione obiettivo; se ci sono vincoli nonlineari , si tratta della funzione lagrangiana descritta nell'Appendice 2). Alcuni metodi di tipo quasi-Newton non formano né risolvono un problema di approssimazione quadratica a ogni iterazione, ma incorporano alcuni degli ingredienti base del metodo del gradiente. Un'altra classe di algoritmi risolve il problema vincolato originario costruendo e risolvendo una sequenza di problemi di ottimizzazione nonvincolata. Un importante algoritmo che ricade in questa classe e che è stato molto usato sin da quando è stato proposto negli anni Sessanta è la tecnica di minimizzazione sequenziale nonvincolata (Sequential Unconstrained Minimization Technique, SUMT). 27 Ci sono in realtà due versioni di SUMT, una delle quali è un algoritmo a punti esterni che opera con soluzioni non ammissibili usando unafimzione di penalità allo scopo di forzare la convergenza verso la regione ammissibile. Si descriverà qui l'altra versione, un algoritmo a punti interni che opera direttamente con soluzioni ammissibili usando unafimzione barriera per forzare i punti generati a rimanere all ' interno della regione ammissibile. Nonostante SUMT sia stato presentato inizialmente come una tecnica di minimizzazione, lo si presenterà qui come una tecnica di massimizzazione allo scopo di mantenere la consistenza con la restante parte del capitolo. Pertanto, si continuerà ad assumere che il problema sia nella forma proposta all'inizio del capitolo e che tutte le funzioni siano differenziabili.
x(k)
(0, 2)
(i;, i) :onda riga
a regione :pressione
Sequential Unconstrained Minimization Technique (SUMT) Come suggerito dal nome stesso, SUMT sostituisce il problema originario con una sequenza di problemi di ottimizzazione nonvincolata le cui soluzioni convergono a una sotre come tpprossicome si
•
luzione (massimo locale) del problema originario. Questo approccio è molto interessante in quanto i problemi di ottimizzazione nonvincolata sono molto più semplici da risolvere (si veda il Paragrafo l 0.5) di quelli con vincoli. Ogni problema nonvincolato in tale sequenza prevede la scelta di un valore strettamente positivo (sempre più piccolo) per uno scalare r e quindi la determinazione di una soluzione x del problema massimizzare
fe, cioè, to estrame ortiragione ttima, e
i di apnazioni
P(x; r) = f(x) - rB(x)
dove B(x) è una funzione barriera che ha le seguenti proprietà (per x ammissibili per il problema originario) l. B(x) è piccolo quando x è lontano dalla frontiera della regione ammissibile. 2. B(x) è grande quando x è vicino alla frontiera della regione ammissibile. 3. B(x) ----> oo al tendere a zero della distanza di x dalla frontiera della regione ammissibile.
26 Per una panoramica su questi metodi si faccia riferimento a M.J.D. Powell, " Variable Metric Methods for Constrained Optimization", in A. Bachem, M. Grotschel e B. Korte (eds.), Mathematical Programming: The State ofthe art, Sprinter-Verlag, Berlin, 1983, pp. 288-311.
27
Si veda il Riferimento bibliografico 3.
442
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
Pertanto, a partire da una soluzione iniziale ammissibile, nel massimizzare P(x; r), il termine B(x) fa sì che si ottiene una sorta di barriera che impedisce di attraversare (o perfino raggiungere) la frontiera della regione ammissibile per il problema originario. La scelta più comune di B(x) è
B(x) =
111
l
i= I
bi- gi(X)
L
Il
l
)= l
Xj
+L-:-
Per valori ammissibili di x, il denominatore di ogni termine è proporzionale alla distanza di x dalla frontiera del cotTispondente vincolo funzionale o vincolo di nonnegatività. Conseguentemente, ogni termine è un termine che tende a spingere lontano dalla frontiera e soddisfa le tre precedenti proprietà. Un 'altra caratteristica interessante di B(x) è che se tutte le assunzioni della programmazione convessa sono soddisfatt.e, P( x; r) è una funZIOne concava. Poiché B(x) confina la ricerca del massimo lontano dalla frontiera della regione ammissibile, cosa succede se la soluzione desiderata si trova proprio sulla frontiera? Questo è esattamente il motivo per cui SUMT prevede la risoluzione di una sequenza di problemi di ottimizzazione nonvincolata per valori di r che tendono a O (in cui la soluzione finale di ogni problema diventa la soluzione iniziale del successivo). Una possibilità è che ogni nuovo valore dir è ottenuto dal precedente moltiplicandolo per una costante (O < < 1), e 0.01. Non appenar si avvicina a O, P(x; r) approssima sempre meun tipico valore è gliof(x), e quindi il corrispondente massimo locale di P(x; r) converge al massimo locale del problema originario. Pertanto, è necessario risolvere solo un certo numero di problemi di ottimizzazione nonvincolata per ottenere per estrapolazione questa soluzione limite. Se il problema originario soddisfa le assunzioni della progranunazione convessa, allora sono disponibili informazioni utili per determinare un criterio di arresto della procedura. In particolare, se x è un massimo globale per P( x; r), allora
e
e=
e
+ rB(x)
f(x) <5_/(x*) <5_/(x)
dove x* è la soluzione ottima (sconosciuta) per il problema originario. Quindi, rB(x) è il massimo errore (relativamente alla funzione obiettivo) che si può avere usando x come approssimazione di x*, ed estrapolando oltre x per aumentaref(x) questo enore diminuirà ulterionnente. Se all'inizio si stabilisce una tolleranza, allora ci si può arrestare non appena rB(x) è inferiore a tale quantità. Sommario dell'algoritmo SUMT
lnizializzazione: si identifichi una soluzione iniziale ammissibile xCO) che non si trovi sulla frontiera della regione ammissibile. Si ponga k = l e si scelgano appropriati valori inil (per esempio, r = l e O.Ol).Z 8 ziali strettamente positivi per re
e<
e=
lterazione k: a partire da x(k- l)' si applichi una procedura di ottimizzazione nonvicolata (per esempio, il metodo del gradiente) come descritto nel Paragrafo l 0.5 per determinare un massimo locale x(k) di 111
P( x; r) = f(x) - r [
L
i= l
b _ '
l
( ) g, x
l
l +L~ Il
J= l xl
Criterio di arresto: se la differenza x(k- l) - x(k) è sufficientemente piccola, l'algoritmo tem1ina e x(k) (o un'estrapolazione di xC 0 l, x0 l, .. . , x(k- l)' x(k)) viene utilizzata come stima del massimo locale per il problema originario. Altrimenti, si ponga k = k + l , r = Br e si esegua un 'altra iterazione. 28
Un criterio ragionevole per la scelta iniziale dir è quella che rende rB (x) dello stesso ordine di grandezza di f (x) per soluzioni ammissibi li x che non sono particolarmente vicine alla frontiera.
10.9
r), il ter(o perfi-
Si noti che SUMT può essere esteso anche al caso di vinco li di uguaglianza g;(x) = b;. Per ogni vincolo di uguaglianza, il termine
- [b;- g; (x)] 2
sostituisce
Vr
distanza ~gatività .
zji-ontie:x) è che una fun~ ammis::;)uesto è lblemidi finale di 'gni nuo9 < l), e 1pre melO locale Jroblemi 1ite. ;a, allora ocedura.
B(x) è il
x come jiminuinon ap-
go ritmo )mesti-
-r
b; - g;(x)
nell 'espressione di P(x; r) e successivamente viene utilizzata la stessa procedura. Il numeratore - [b; - g; (x)] 2 impone una penalita in caso di una deviazione dal soddisfacimento del vincolo di eguaglianza, e quindi il denominatore aumenta notevolmente questa penalità al decrescere di r, forzando quindi la sequenza delle soluzioni a convergere verso un punto che soddisfa il vincolo. L'algoritmo SUMT è stato ampiamente usato grazie alla sua semplicità e versatilità. Gli analisti numerici hanno però scoperto che è relativamente incline a instabilità numerica, e quindi si consiglia sempre cautela nell'uso. Per ulteriori infonnazioni su questo argomento come pure simili analisi per altri algoritmi, si veda il Riferimento bibliografico 4. Esempio. riabili:
Per illustrare l'algoritmo SUMT, si consideri il seguente problema in due va-
massunizzare
f(x)
= x1x2
soggetto ai vincoli 2
x 1 + xz ::; 3
e x 1 :;::: O xz :;::: O
Anche se g 1 (x) = xf + x2 è convessa (poiché ogni termine è convesso), questo problema è un problema di programmazione non convesso poiché f(x) = x 1x 2 non è una funzione concava (si veda l' Appendice 1). Comunque, il problema è talmente vicino a essere un problema di programmazione convessa che l'algoritmo SUMT convergerà in questo caso a una soluzione ottima (si discuterà più avanti nel prossimo paragrafo della progranm1azione non convessa, e il ruolo dell'algoritmo SUMT nel trattare tali problemi). Per l' inizializzazione, (x 1, x2 ) = (l , l ) è una ovvia soluzione anm1issibile che non si trova sulla frontiera della regione ammissibile, e quindi si può porre x (0l =(l, 1). Scelte ragionevoli per re sono r = l e 0.01. A ogni iterazione,
e
:ovi suldori ini-
vi colata :rmmare
443
PROGRAMMAZIONE CONVESSA
e=
P(x; r)
= x1x2
- r
l ( 3 - xf - xz
l l ) +x, + -xz
Tabella 10.7 Illustrazione dell'algoritmo SUMT k
o l
2 3
{k)
r l
1 o- 2 1 o- 4
(k)
xl
Xz
l
l
0.90 0.987 0.998
1.36 1.925 1.993
l
l
l
2
, r =Br
ndezza di
Con r = l , applicando il metodo del gradiente partendo da (l , l) per massimizzare questa espressione, si giunge alla fine al punto x<') = (0.90, 1.36). Ponendo r = 0.01 e riapplicando il metodo del gradiente scegliendo come punto iniziale (0 .90, 1.36) si arriverà a x<2) = (0.987 , 1.925). Un'altra iterazione con r = 0.01(0.01) = 0.0001 porterà
444
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
da x< 21 a x< 3J = (0.998, 1.993). Questa sequenza di punti, riassunta in Tabella 10.7, molto chiaramente sta convergendo a (1, 2). Applicando le condizioni KKT a questa soluzione si può verificare che in effetti essa soddisfa le condizioni necessarie per l'ottimalità. Un'analisi grafica dimostra che (x h x 2 ) = (l, 2) è, infatti, un massimo globale. Per questo problema, non ci sono altri massimi locali a parte (x 1, x 2 ) =(l, 2) e quindi riapplicando SUMT partendo da diverse so luzioni iniziali si ottiene sempre la stessa soluzione.29
10.1 O PROGRAMMAZIONE NON CONVESSA (CON L'USO DI EXCEL) Le assunzioni della programmazione convessa (la funzione f(x) che deve essere massimizzata è concava e tutti i vincoli g;(x) sono convessi) sono molto convenienti perché garantiscono che ogni massimo locale è anche un massimo globale (se, invece, l'obiettivo è minimizzare f(x), allora occon·e assumere che f(x) sia una funzione convessa, perché questo garantisce che un minimo locale è anche un minimo globale). Purtroppo, i problemi di programmazione nonlineare che si presentano frequentemente nella realtà non soddisfano queste assunzioni. Quale approccio può essere allora usato per trattare tali problemi di programmazione non convessa?
Come risolvere problemi di programmazione non convessa Poiché ci sono molti differenti tipi di problemi di programmazione non convessa non esiste una singola risposta alla precedente domanda. Alcuni problemi sono molto più difficili da risolvere rispetto ad altri. Per esempio, un problema di massimizzazione in cui la funzione obiettivo è quasi convessa risulta essere, in generale, molto più difficile da risolvere rispetto a un problema in cui la funzione obiettivo è quasi concava (l ' esempio relativo all'uso de li 'algoritmo SUMT del Paragrafo l 0.9 mostra un caso in cui la funzione obiettivo è quasi concava e il problema poteva essere trattato come se fosse un problema di programmazione convessa). Allo stesso modo, il fatto di avere una regione ammissibile che non è un insieme convesso (perché alcune delle funzioni g;(x) non sono convesse) costituisce, generalmente, una complicazione aggiuntiva. Anche l'avere a che fare con funzioni che non sono differenziabili , o continue, costituisce una notevole complicazione. L ' obiettivo di molte ricerche è sviluppare efficienti procedure di ottimizzazione globale per determinare soluzioni globalmente ottime per vari tipi di problemi di programmazione non convessa. Come esempio, LINDO incorpora un algoritmo di ottimizzazione globale all 'interno del suo avanzato risolutore. In particolare, LINGO e What's Best hanno un'opzione "multistart" che petmette di generare automaticamente un numero di punti iniziali per il loro solutore per problemi di programmazione nonlineare al fine di determinare rapidamente una buona soluzione. L'algoritmo di ottimizzazione globale converte un problema di programmazione non convessa (anche nel caso di problemi la cui formulazione include funzioni logiche come IF, AND, OR e NOT) in sottoproblemi che sono rilassamenti convessi di parte del problema originale. La tecnica di branch-and-bound viene quindi usata per una ricerca esaustiva tra i sottoproblemi. Una volta che la procedura viene completata, si ha la garanzia che la soluzione determinata è una soluzione globalmente ottima (l'altra possibilità è che il problema non ammetta soluzioni).
29
La spiegazione tecn ica è chef( x) è una funzione quasi concava (strettamente) che condivide la proprietà delle funzioni concave in base alla quale un massimo locale è sempre un massimo globale. Per maggiori informazioni si faccia riferimento a M. Avriel , W.E. Diewert, S. Schaible e L Zang, Generalized Concavity, Plenum, New York, 1985.
10.10
PROGRAMMAZIONE NON CONVESSA (CON L'USO DI EXCEL)
445
Gli approcci per la soluzione di problemi di ottimizzazione globale sono svariati e non verranno qui trattati in maniera approfondita (si rimanda al Riferimento bibliografico 6 per maggiori dettagli). Verrà invece presentato un semplice caso e successivamente un approccio più generale alla fine del paragrafo.
7, molto luzione, timalità. ~qui ndi
.sa solu-
Uso del Risolutore di Excel per determinare un ottimo locale
)
L'attenzione verrà adesso focalizzata su alcuni semplici approcci usati per risolvere problemi di programmazione non convessa. In particolare, verranno considerati problemi (di massimizzazione) in cui la funzione obiettivo è vicina a essere concava o sull' intera regione ammissibile o all'interno delle principali parti della regione ammissibile. La complessità aggiuntiva dovuta alla presenza di vincoli g; (x) non convessi sarà ignorata e verranno trattati semplicemente vincoli lineari. Si inizierà illustrando come possono essere applicati algoritmi per la programmazione convessa a tali problemi e verrà qui utilizzato l'algoritmo per la programmazione convessa impiegato dal Risolutore di Excel per problemi di programmazione nonlineare. Come esempio, si consideri il seguente problema di programmazione non convessa in una variabile:
· massi·ché gaettivo è perché proble:m sodproble-
massnmzzare
Z = 0.5x 5
-
6x4 + 24.5x 3
-
39x2 + 20x
soggetto ai vincoli
x:S:5 x~O
ton esijifficili la funsolvere ~ ivo al>iettivo di proile che l costi:unzw-
• Figura 10.18
Il grafico del profitto per un problema di programmazione non convessa.
Profitto($) 6
globa~mma
azione >t hani punti :termi!rte un llazioilassaviene ra viemente
!età delrmazio-
n ,New
4
2
4 l x
-2 -4
-6
dove Z rappresenta il profitto. La Figura l 0.18 rappresenta il grafico della funzione obiettivo nella regione ammissibile mostrando quanto altamente non convessa sia questa funz ione. Tuttavia, se questo grafico non fosse disponibile, poiché per verificare che la funzione obiettivo non è concava nella regione ammissibile è richiesta una qualche analisi, la conclusione che questo non è un problema di programmazione convessa non sarebbe così immediata. Di conseguenza, si supponga che il Risolutore di Excel, progettato per risolvere problemi di programmazione convessa, venga applicato a questo esempio. La Figura l 0.19 mette in evidenza le difficoltà incontrate dal Risolutore di Ex ce l nel tentare di far fronte a questo problema. Il modello è semplice da fonnulare in un foglio elettronico, con x (C5) come cella modificabile e Profit (C8) come cella obiettivo (si noti che l'opzione del Risolutore, Assumere Modello Lineare, non è selezionata perché, in questo caso, non si tratta di un modello di programmazione lineare). Quando x= O è inserito come valore iniziale nella cella modificabile, il foglio elettronico di sinistra nella Figura 10.19 mostra che il Risolutore indica che x = 0.371 è la soluzione ottima con Profit = 3.19 dollari. Tuttavia, se come valore iniziale viene invece inserito x= 3, come nel foglio elettronico centrale in Figura 10.19, il Risolutore ottiene x= 3.126 come soluzione ottima con Profit = 6.13 dollari. Provando ancora un altro valore iniziale x= 4.7 nel foglio elettronico a destra, la soluzione ottima ora ottenuta è x = 5 con Profit = O dollari. Che cosa sta accadendo? La Figura l 0.18 aiuta a spiegare le difficoltà incontrate dal Risolutore di Ex ce l con questo problema. Usando x = Ocome punto iniziale, il picco è ottenuto per x = 0.371, come riportato nel foglio elettronico di sinistra in Figura 10.19. Iniziando, invece, con x= 3, il picco è raggiunto in x= 3.126, che è la soluzione trovata nel foglio di calcolo centrale. Usando la soluzione iniziale del foglio elettronico di destra x = 4.7, a causa del vincolo x ::; 5, x = 5 è la soluzione ottima. Questi tre valori rappresentano massimi locali (o ottimi locali) perché ciascuno di essi è un massimo in un intorno di quel punto. Tuttavia, solo il più grande di questi massimi locali è il massimo globale, cioè, il punto più alto dell'intero grafico. Così, il foglio elettronico centrale in Figura 10.19 riesce a determinare la soluzione globalmente ottima x= 3.126 con Profit = 6.13 dollari.
CAPITOLO 10
446
PROGRAMMAZIONE NONLINEARE
Il Risolutore di Excel usa il metodo generalizzato del gradiente ridotto, che adatta il metodo del gradiente descritto nel Paragrafo 10.5 per risolvere problemi di programmazione convessa. Questo algoritmo può essere pensato come una procedura di ascesa (hill-climbing). Esso parte dalla soluzione iniziale inserita nelle celle modificabili e inizia l 'ascesa fino a quando non raggiunge un picco (o il limite imposto dai vincoli) e riporta questa soluzione. Non c'è modo di ri levare se in qualche altra parte del grafico è presente un valore più alto. La stessa cosa accade con qualsiasi altro algoritmo di ascesa, come SUMT (descritto nel Paragrafo 10.9), che termina quando si incontra un massimo locale. Così, se SUMT fosse stata applicato a questo esempio con ciascuno delle tre punti iniziali usati in Figura l 0.19, si sarebbero determinati gli stessi tre massimi locali. c
_ __6~
D
"- C _;_ ....Q___.__ _E
D
A
1 ~ Soluzio ne lrami1e Excel
.LJ So lnzioue
Tf,liJiile
F
.J
Excel
..?J (Punto inizi,lle x • .t.7)
3
x=
0,371013
Profitto=
jo.5r
x=
5
5
- 6x'• +24,5x 3 -39x 2 3,192933
-20::rl
_ 8
l
4
Ma:s.s1movalore 5
Mass1movalore
0,371013
!
Profitto= !o.sxs -6~ +24,5:x- - 39x2 -20x! 3,192933 3
p;~etn ~detiusolutor; ;;;·~~- ~-- ~ ~ .. ~ imposta ce~ obiettivo: !ti- ~ Uguale
a:
C~
0
M&lS,
O Mn
O ~We di:
~-
!ereDe:
!C$5
"'$($5 "' '!>' <• Ma>:IIY'II..m
~ ~
5;) l loot<•• l
l
Qpoonl
l
1-1 l Com\;a l IB-st• l l ....... l co
L
i
B:
9 • 10 .
9 . ~·~
-...
,<"•"
Massimo valore
5
3
Profrtlo= jo.s::rs -6xc +24,5x - J9:c
2
.
-20xl
o
l'V\
O~oni del Risolutore ~"':!~• _ ~-="'~ .~ ,.~;,...~~ ~
Iempo rMS$imo: !ter~z:oni:
-
100
- 5e1:ondi
Appr_ossiMZIOiìe:
O,OOOCXll
T~anza:
5
Conyergenza:
0,0001
1
- - -%
o erewppon; modelo l:neare 0 Presoppotj non negativo Sbnla ~nvate
o ~ scala automatica
O !!!ostra~ risuld.o delle iterazioni Cetca
0 T~e
0 Qiretta
0 Ne
O ~dr""•
O ceooa!e
0 GnKioerti<-
• Figura 10.19 Un esempio di un problema di programmazione non convesso (mostrata in Figura l 0.18) in cui il Risolutore di Excel ottiene tre differenti soluzioni quando inizia con tre differenti soluzio ni iniziali.
10.11
CONCLUSIONI I problemi di ottimizzazione richiedono frequentemente che venga tenuto in considerazione il comportamento nonlineare. È a volte possibile riformulare queste nonlinearità per ricondursi a un modello di programmazione lineare, come accade per i problemi di programmazione separabile. Tuttavia, spesso, è necessario ricorrere a una specifica formulazione di programmazione non!ineare. Contrariamente al caso del metodo del simplesso per la programmazione lineare, non esiste un unico ed efficiente algoritmo per risolvere tutti i problemi di programmazione nonlineare. In effetti, alcuni di questi problemi non possono essere risolti in maniera soddisfacente con un algoritmo generale. Tuttavia, sono stati fatti considerevoli progressi per alcune importanti classi di problemi, quali i problemi di programmazione quadratica, di programmazione convessa, e alcuni speciali tipi di problemi di programmazione non convessa. Sono disponibili una varietà di algoritmi che si prestano bene per questi casi. Alcun i di questi algoritmi incorporano procedure altamente efficienti per l'ottimizzazione nonvincolata mentre altri usano una serie di approssimazioni lineari o quadratiche del problema originario.
447
PROBLEMI
atta il melTilnazione (hill-climia l'ascesa •rta questa nte un va-
Negli ultimi anni si è registrata una forte enfasi nello sviluppo di pacchetti software, affidabili e di alta qualità, per l'applicazione dei migliori di questi algoritmi (si rimanda al Riferimento bibliografico 8 per un'analisi di alcuni software disponibili per la programmazione nonlineare). Software quali MINOS sono stati sviluppati al Systems Optimization Laboratory della Stanford University. Questi pacchetti vengono ampiamente usati per risolvere molti dei problemi discussi in questo capitolo (così come i problemi di programmazione lineare). I costanti miglioramenti che sono stati apportati sia agli algoritmi sia ai software hanno permesso di inserire alcuni problemi piuttosto grandi nella gamma dei problemi computazionalmente ammissibili. La ricerca nella programmazione non lineare rimane molto attiva .
(descritto se SUMT in Figura
:r:=cJ
•
RIFERIMENTI BIBLIOGRAFICI l. Bazaraa, M.S., H.D. Sherali e C.M. Shetty: Nonlinear Programming: The01y and Algorithms, 2d ed ., Wiley, New York, 1993. 2. Bertsekas, D.P.: Nonlinear Programming, Athena Scientific, Belmont, MA, 1995. 3. Fiacco, A.V. e G.P. McCormick: Nonlinear Programming: Sequential Unconstrained Minimization Techniques , Classics in Applied Mathematics 4, Society for Industria! and Applied Mathematics, Philadelphia, 1990 (rep1i nt of a classi c book published in 1968). 4. Gill, P.E. , W. Murray e M.H. Wright: Practical Optimization, Academic Press, London, 198!. 5. Hillier, F.S. e M.S. Hillier: Introduction to Management Science: A Modeling and Case Studies Approach with Spreadsheets, 2nd ed. , McGraw-Hill/l!win, Boston, 2003, chap. 10. 6. Horst, R. e P.M. Pardalos (eds.): Handbook of Global Optimization, Kluwer Academic Publishers, Boston, 1995. 7. Miller, R.E. : Optimization: Foundations and Applications, Wiley, New York, 1999. 8. Nash, S.G.: Software Survey: NLP, ORJMS Today, June 1998, pp. 36-45 . 9. Nash, S.G. e A. Sofer: Linear and Nonlinea r Programming, McGraw-Hill, Boston, 1996. 10. Nemhauser, G.L. , A.H.G. Rinnooy Kan e M.J. Todd (eds.) : Optimization, Handbooks in Operations Research and Management Science, Volume l , North-Holland, Amsterdam, 1989. 11. Nesterov, Y. e A. Nemirovskii: Jnterior-Point Polynomial Algorithms in Convex Programming, Studies in Applied Mathematics !3, Society for Industria! and Applied Mathematics, Philadelphia, 1993.
valore
~
iderazio:arità per ti di proform ula-
:are, non llTiazione iera sod:ressi per ·atica, di vzon con!Sti casi. zzazione del pro-
•
PROBLEMI
10.1-1. Si consideri il problema di detenninare il mix ottimo per tre prodotti . Si supponga che l 'azienda abbia una qualche elasticità di prezzo nella vendita dei tre prodotti, e quindi i profitti sono differenti da quelli stabiliti nel Capitolo 3. In particolare, si supponga che i costi unitari per la produzione dei prodotti l, 2 e 3 siano rispettivamente 25 , l O e 15 dollari, e che i prezzi richiesti (in dollari) per poter vendere xl> x 2 , e x 3 unità siano rispettiva-~
3
-~
-~
mente (35 + !00x 1 ),( ! 5+40x2 ') ,e (20+50x3 ') . Si fom1Uli un modello di programmazione nonlineare per il problema della determinazione di quante unità di prodotto devono essere prodotte per massimizzare il profitto.
10.1-2. Per il problema della P & T Co. descritto nel Paragrafo 7.1 , si supponga che ci sia un 10% di sco nto nel costo per il trasporto del carico oltre i primi 40 per ciascuna combinazione fab-
brica magazzino per la vendita al dettaglio. Si disegnino grafici come in Figura l 0.3 e 10.4, che mostrino il costo marginale e il costo totale per il trasporto dalla fabbrica l al magazzino l. Si descriva quindi il modello complessivo di progranunazione nonlineare per questo problema.
10.2-1. Si consideri la variante dell'esempio della Wyndor Glass Co . rappresentato in Figura 10.5, in cui il secondo e terzo vincolo funzionale del problema originale (si veda il Paragrafo 3.1) sono stati sostituiti da 9xf + 5~ :::; 216 . Si dimostri che (x 1, x2 ) = (2, 6) con Z = 36 è una soluzione ottima mostrando che la retta della funzione obiettivo 36 = 3x 1 + 5x2 è tangente alla fron tiera della regione ammissibile nel punto (2, 6). (Suggerimento : Si esprima x 2 in tem1ini di x 1 su questa fi·ont iera, e quindi si differenzi questa espressione rispetto a x 1 per determinare la pendenza della fi·ontiera)
CAPITOLO 10
448
PROGRAMMAZIONE NONLINEARE
e
10.2-2. Si consideri la seguente funzione:
f(x) = 48x- 60_;
+x
(a) Si usino le derivate prima e seconda per detem1inare massimi e minimi locali dif(x). (b) Si usino le derivate prima e seconda per mostrare che f (x ) non ha né un massimo globale né un minimo globale in quanto è non limitata. 10.2-3. Per ciascuna delle seguenti funzioni , si dica se si tratta di funzione convessa, concava o nessuna dei due casi . (a) (b) (c) (d) (e)
f(x) = f (x ) = f(x) = f (x ) = f(x) =
lOx -
X1
3
.x2
x4 + 6xZ + l2x 2x3 - 3.xZ x4 + .xZ x 3 + x4
2:: 0
Xz
2:: 0.
(a) Trasformare questo problema in un equivalente problema di programmazione convessa. (b) Si usi il test descritto nell 'Appendice l per verificare che il modello fonnulato al punto (a) è un problema di programmazione convessa. 10.3-3. Si consideri il seguente problema di programmazione frazionaria: 2 massimizzare .f(x) = lOx1 + 20x + 10 3x l + 4xz + 20 soggetto ai vincoli
x1 3xl
+ 3x2 :::; 50 + 2x2 :::; 80
e 10.2-4. Si consideri il seguente problema di programmazione non lineare: massimizzare f (x) = x1 + xz soggetto ai vincoli
X1
2:: O
Xz
2:: O.
(a) Trasformare questo problema in un equivalente problema di programmazione lineare. (b) Risolvere mediante Excel il problema fonnulato al punto (a). Qual è la soluzione ottima per il problema originario?
xf+x~:::; l
10.4-1. * Si consideri il seguente problema:
e Xi
2:: 0
Xz
2:: 0.
massimizzare .f(x) = ~
(a) Verificare che questo è un problema di programmazione convessa. (b) Risolvere il problema graficamente. 10.2-5. Si consideri il seguente problema di programmazione non lineare:
Z=
mmumzzare
xi + 2x~
soggetto ai vincoli
xf + ~ 2:: 2
(no~ vi sono vinco li di nonnegatività). (a) Si usino criteri geometrici per determinare se la regione di ammissibilità è un insieme convesso . (b) Si usi poi l'algebra e l'analisi per determinare se la regione di ammissibilità è un insieme convesso. 10.3-1. Si consideri il seguente problema di ottimizzazione vincolato: mass tmlzzare f (x ) = -6x + 3.xZ - 2x3 soggetto ai vincoli x 2::
o.
10.3-2. Si consideri il seguente problema di programmazione geometrica: mmtmizzare
f (x) = 2x;- 2xz 1lxz 2
soggetto ai vincoli
4xlx2 +xfx~ :::; 12
2.x2 - 0.25x4
(a) Si applichi il metodo della bisezione per risolvere (in maniera approssimativa) questo problema. Usare una to lleranza c: = 0.04 e come intervallo iniziale! = O, x = 2.4. (b) Applicare il metodo di Newton, con c: = 0.00 l e x 1 = 1.2, a questo problema. 10.4-2. Si consideri il seguente problema: massimizzare .f(x) = 48x5 + 42~ + 3.5x- l6x 6 - 6lx4 - l6.5x2 (a) Si applichi il metodo della bisezione per risolvere (in maniera approssimata) questo problema. Usare una tolleranza c: = 0.08 e con intervallo iniziale! = -l, x = 4. (b) Applicare il metodo di Newton, con c: = 0.001 e x 1 = l , a questo problema. 10.4-3. Si consideri il seguente problema di programmazione convessa:
Z = x4
minimizzare
+ .x2 -
4x
soggetto ai vincoli x :::;
Si usino le derivate prima e seconda dif (x ) per ricavare una soluzione ottima.
+ 2x -
2
e
x
2:: O.
(a) Effettuare un semplice calcolo per verificare se la soluzione ottima è nell'intervallo O :::; x :::; l o nell ' intervallo l :::; x:::; 2 (Non occorre ricercare la soluzione ottima per determinare in quale intervallo essa ricade). Spiegare il ragionamento. (b) Si usi il metodo della bisezione con intervallo iniziale!= O, x = 2 e tolleranza c: = 0.02 per risolvere in maniera approssimata questo problema. (c) Si applichi il metodo di Newton, con c: = 0.0001 e x 1 = l , a questo problema.
449
PROBLEMI
icare che il i program-
10.4-4. Si consideri il problema di massimizzare una funzione differenziabile f (x ), senza vincoli, in una sola variabile x. Siano ero e x0 , rispettivamente, limite superiore e infetiore per un punto di massimo globa le (se ne esiste uno). Provare la seguente proprietà generale del metodo della bisezione (come descritta nel Paragrafo l 0.4) per risolvere tale problema.
unmazwne
(a) Dati ero, x0 , ed é = O, la sequenza delle soluzioni selezionata dalla regola del punto medio converge [Suggerim ento: si mostri che lim (x, - er,) = O, dove x, e er,, sono i limiti su-
1roblema di
n-+oo
(b)
(c)
(d)
oblema di punto (a).
o?
(e)
(f)
periore e inferiore identificati all ' iterazione n]. Sef(x) è concava [cosicché df(x )j dx è una funzione monotona decrescente di x], allora il punto limite identificato nella parte (a) deve essere un massimo globale. Sef(x) non è concava ovunque ma lo è nell'intervallo ero, x0 , allora il punto limite identificato nella parte (a) deve essere un massimo globale. Sef(x) non è concava nell ' intervallo ero, x0 , allora il punto limite identificato nella parte (a) non è necessariamente un massimo g lobale (provare ciò costruendo graficamente un controesempio). Se df (x)j dx < O per ogni x, allora non esiste ero finito. Se df(x) / dx > O per ogni x, allora non esiste x0 finito. In entrambi i casi,f(x) non ha un massimo globale. Sef(x) è concava e lim f (x )/ dx < O, allora non esiste ero finito. Sef(x) è concava e lim df (x)/ dx > O, allora non esix-oo
in manie·olleranza
= 1.2, a
10.5-1. Si consideri il seguente problema di ottimizzazione nonvincolato: masstmtzzare f (x) = 2xtX2 + x2 - x ~ - 2x ~
1
= l, a
nazione
(a) Partendo dalla soluzione iniziale (x ~> x 2 ) = (1 , 1), si applichi il metodo del gradiente con é = 0.25 per ottenere una soluzione approssimata. (b) Risolvere il sistema di equazioni lineari ottenuto imponendo = V f (x) = Oper calcolare la soluzione esatta. (c) Con riferimento alla Figura 10.14 come caso campione di un problema simile, si disegni il cammino definito dalle soluzioni ottenute al punto (a). Successivamente, si mostri come appare il completamento di questo percorso scegliendo tre punti successivi [basandosi sulla sequenza calcolata al punto (a) e in Figura 10.14]. Si mostri inoltre la solu zione esatta della parte (b) verso cui questa sequenza di punti converge.
10.5-2.* Partendo dalla soluzione iniziale (x 1, x 2 ) = (0, 0), si applichi il metodo del gradiente con é = 0.3 per ottenere una soluzione approssimata per il seguente problema: luzione ; x 2 inare in
s
l,
er = o, ~ppros -
=l , a
10.6-1. Si ticonsideri il modello di programmazione convessa in una variabile dato nel Problema 10.4-3. Si usino le condizioni KKT per ottenere una soluzione ottima per questo modello. 10.6-2. Si riconsideri il Problema 10.2-4. Si usino le condizioni KKT per verificare se (x 1, x2 ) = ( 1/ J2, 1/ J2) è una soluzione ottima. 10.6-3. Si consideri il seguente problema di programmazione convessa: massimizzare J (x ) = 24x 1 -x~ + l Ox2 -x ~ soggetto ai vincoli
Xt S 8 x2 S 7 e Xt
~ O
x2 ~
O.
x-+-oo
ste x0 finito . In entrambi i casi, fix) non ha un massimo globale.
n manieJlleranza
(a) Si descriva come la risoluzione di questo problema si riduce alla risoluzione di un problema di ottimizzazione nonvincolato in due variabili. (b) Partendo dalla soluzione iniziale (x 1, x2, x 3 ) = (l , l , l), si applichi il metodo del grad iente con é = 0.05 per risolvere (in modo approssimato) il problema in due variab ili identificato al punto (a).
massimizzare / (x) = 8x1 - XT - 12xz - 2x ~ + 2x1 x2 Quindi risolvere direttamente zione esatta.
=
V f (x)
= Oper ottenere la solu-
10.5-3. Si consideri il seguente problema di ottimizzazione nonvincolata: massimizzare /( x) = 3xt X2 + 3x2X3 - XT - 6x~ -x~
(a) Si usino le condizioni KKT per questo problema per determinare una soluzione ottima. (b) Si decomponga questo problema in due diversi problemi di ottimizzazione vincolata che trattino rispettivamente le variabili x 1 e x 2 • Per ognuno di questi due problemi, si disegni la funzione obiettivo nella regione ammissibile allo scopo di dimostrare che il valore di x 1 o x 2 ottenuto al punto (a) è ottimo. Provare successivamente che questo valore è ottimo usando solo le derivate prima e seconda della funzione obiettivo e i vincoli per i corrispondenti problemi.
10.6-4. Si consideri il seguente problema di ottimizzazione con vincoli lineari: massimizzare f (x) = ln (x 1 + l) - x ~ soggetto ai vincoli Xt
+ 2x2 S 3
Xt
~ O
e
x2
~ O
in cui In denota il logaritmo naturale (a) Verificare che questo problema è un problema di programmazione convessa. (b) Si usino le condizioni KKT per detenninare una soluzione ottima. (c) Si dimostri intuitivamente che la soluzione ottenuta al punto (b) è ottima.
10.6-5.* Usare le condizioni KKT per ottenere una soluzione ottima per ciascuno dei seguenti problemi. (a) Massimizzare soggetto ai vincoli Xt
+x2 S l
f( x) = x 1 + 2x2 - x ~
450
CAPITOLO 10
PROGRAMMAZIONE NONLINEARE
e XJ
:2:0
Xz
10.7-1. Si consideri l'esempio di programmazione quadratica presentato nel Paragrafo 10.7.
:2: 0. f(x) = 20xl
(b) Massimizzare
+ l Oxz
soggetto ai vincoli
xf + x1 +
x ~ S:: l 2xz S:: 2
e x 1 ;:::: O
x2
;::::
O.
10.6-6. Considerare il seguente problema di programmazione nonlineare:
Z = 2x T + x~
minimizzare
(a) Si usi il test dato nell'Appendice l per dimostrare che la funzione obiettivo è strettamente concava. (b) Si verifich i che la funzione obiettivo è strettamente concava dimostrando che Q è una matrice definita positiva; cioè, xTQx > O per ogni x i= O. (Suggerimento: ridurre xTQx a una somma di quadrati). (c) Si mostri che x 1 = 12, x 2 = 9 e u 1 = 3 soddisfano le condizioni KK.T scritte nella forma presentata nel Paragrafo 10.6. 10.7-2.* Si consideri il seguente problema di programmazione quadrati ca: massimizzare f( x) = 8x1 - xf
soggetto ai vincol i x1 +xz = IO x2
;::::
O.
10.6-7. Considerare il seguente problema di programmazione con vincoli lineari :
/(x) = xf
+ 4x~ + i6x3
+xz +x3 = 5
X1
:2: J
+ xz S:: 2
XJ
:2: 0
Xz
:2: 0.
(a) Si usino le condizioni KK.T per ricavare una soluzione ottima. (b) Si supponga ora che questo problema sia risolto col metodo modificato del simplesso . Si formuli il problema di programmazione lineare che deve essere trattato esplicitamente, e quindi si identifichi l'addizionale vincolo di complementarietà che viene automaticamente rispettato. (c) Si applichi il metodo modificato de l simplesso al problema fonnulato al punto (b). (d) Si usi Excel per risolvere direttamente il problema di programmazione quadratica. 10.7-3. Si consideri il seguente problema di programmazione quadrati ca:
soggetto ai vincoli Xi
XJ
e
(a) A quale tipo o tipi speciali di problemi di programmazione non lineare descritti nel Paragrafo l 0.3, questo problema può essere associato? Giustificare la risposta. (Suggerimento: convertire prima questo problema in un equivalente problema di programmazione nonlineare che soddisfa la forma data nel secondo paragrafo del capitolo, con m = 2 e n = 2) . (b) Ottenere le condizioni KK.T per questo problema. (c) Usare le condizioni KK.T per detetminare una soluzione ottima.
m1mmtzzare
massimizzare f(x) = 20x 1
e Xz
:2: l
x3
:2: J.
(a) Convertire questo problema in un equivalente problema di programmazione non lineare che soddisfa nella forma considerata all ' inizio del capitolo (secondo paragrafo), con m= 2 e n= 3. (b) Usare la forma ottenuta al punto (a) per determinare le condizioni KK.T per questo problema. (c) Usare le condiz ioni KK.T per verificare se (x 1, x 2 , x 3 ) = (2, l , 2) è una soluzione ottima. 10.6-8. Si usino le condizioni KK.T per determinare se (x 1, xz,
x 3 ) = (l , l , l) è una soluzione ottima per il seguente problema: minimizzare
Z = 2x 1 + x~ + x~
soggetto ai vincoli
xf + 2x ~ +x~ ;:::: 4 e x1
;::::
O
~
soggetto ai vincoli
e x1 ;:::: O
+ 4xz -
Xz ;:::: O
x 3 ;:::: O.
10.6-9. Si riconsideri il mode llo dato nel Problema l 0.2-5. Quali sono le condizioni KK.T per questo problema? Si usino queste condizioni per determinare se (x 1, x 2 ) = (1 , l ) è una soluzione ottima.
-
20xf
+ 50xz -
5x~
+ l8x1x2
soggetto ai vincoli X1
+
Xz
S:: 6
x 1 + 4xz S:: 18 e x 1 ;:::: O
x2
;::::
O.
Si supponga che questo problema sia risolto col metodo modificato del simplesso. (a) Si fom1uli il problema di programmazione lineare che deve essere trattato esplicitamente, e quindi si identifichi l 'addizionale vincolo di complementarità che viene automaticamente rispettato. (b) Si applichi il metodo modificato del simplesso al problema formu lato al punto (a) . 10.8-1. La MFG Corporation sta pianificando la produzione e vendita di tre differenti prodotti. Siano x 1, x 2 e x 3 il numero di unità da produrre ri spettivamente per ciascun prodotto . Le stime preliminari del profitto sono le seguenti: • per le prime 15 unità prodotte per il Prodotto l , il profitto unitario è approssimativamente 360 dollari. Il profitto unitario è solo di 30 dollari per ogni ulteriore unità del Prodotto l ;
PROBLEMI
quadratica che la funtte concava 'tiva; cioè, :re xTQx a o le condirafo 10.6.
451
• per le prime 20 unità del Prodotto 2 prodotte, il profitto unitario stimato è 240 dollari. Il profitto unitario è di 120 dollari per ognuna delle successive 20 unità e 90 dollari per ogni ulteriore unità addizionale; • per le prime l O unità del Prodotto 3, il profitto unitario è 450 dollari. Il profitto unitario è 300 dollari per ognuna delle successive 5 unità e 180 dollari per ogni ulteriore unità addizionale. Limitazioni su li 'uso delle risorse impongono le seguenti resh·izioni sulla produzione dei tre prodotti:
+x2 +x3 3xi + 2x2 XI
.mmazione
XI
+ 2x3
s; 60 s; 200 s; 70.
to quando il tasso di produzione è O, l , 2, 3. Si congiungano le coppie di punti consecutivi con linee tratteggiate. (d) Si usi la progral11l11azione separabi le basata su questa figura per formulare un modello di progral11l11azione lineare approssimato per questo problema. (e) Si risolva il modello. Qual è il consiglio per il management della Dorwyn relativamente al mix di prodotti da impiegare?
10.8-3. Si supponga che la tecnica della progranunazione separabile sia stata app licata a un certo problema (il "problema originale") per convertirlo nel seguente problema di progranm1azione lineare equivalente: massimizzare
Z = 5xii
+ 4xi2 + 2x 13 + 4x2I + X22
soggetto ai vi ncoli
3xtt 2Xtt
Il management vuo le conoscere quali valori di X I, x 1 e x 3 devono essere scelti per massimizzare il profitto totale.
+ 3x t2 + 3xl3 + 2x21 + 2x22 s; 25 + 2x12 + ~x13 - x21 - x22 s; IO
e
~ione
otti-
)l metodo programimente, e Jlementaproblema a di pro-
unazione
(a) Si disegni il grafico del profitto per ciascw10 dei tre prodotti. (b) Si usi la progral11l11azione separabile per fommlare un modello di programmazione per questo problema. (c) Si risolva il modello. Qual è il consiglio da dare al management riguardo i valori di xi, x 2 e x 3 da usare? (d) Si supponga ora che ci sia un ulteriore vincolo che impone che il profitto dei Prodotti l e 2 deve essere al massimo 9 000 dollari. Si usi la tecnica presentata nel Paragrafo 10.8 per aggiungere questo vincolo al modello f01mulato al punto (b). (e) Si ripeta la parte (c) per il modello formulato al punto (d).
10.8-2. * La Dorwyn Company ha due nuovi prodotti che dovranno competere con i due nuovi prodotti della Wyndor Glass Co. (descritti nel Paragrafo 3 .l). Il modello di progranunazione lineare mostrato sotto è stato formulato per determinare il mix di prodotti più conveniente. Massimizzare
8xix2
Z = 4xi
+ 6x2
soggetto ai vincoli XI
5xi
+ 3x2 s; + 2x2 s;
8 14
e
xi 2: O · modifi:he deve i l'addi)maticaroblema
zione e mero di .e stime tto uniitario è
x 2 2: O.
A causa della forte competitività della Wyndor, la direzione della D01wyn ha compreso che l'azienda ha bisogno di enom1i sforzi sul mercato per ottenere sostanziali introiti da questi prodotti. In particolare, si stima che per ottenere una produzione e una vendita di xi unità del Prodotto l per ogni settimana i costi settimanali di vendita sono x~ . I corrispondenti costi di vendita per il Prodotto 2 sono stimati in 2x i . Pertanto, la funzione obiettivo del modello è Z = 4xi + 6x2 - x~ - 2x~. La direzione della Dorwyn vorrebbe ora usare il modello riveduto per detem1inare il mix ottimo di prodotti. (a) Si verifichi che (x i, x2 ) = ( 2/
J3, ~)
è una soluzione ot-
tima, applicando le condizioni KK.T. (b) Si mostri in una tabella il profitto per ciascun prodotto quando il tasso di produzione è O, l , 2, 3. (c) Si disegni una figura come quella in Figura 10.1 5b che mostri i punti relativi al profitto settimanale per ciascun prodot-
s; X11 s; 2 s; 3 0 s; Xt3
s; X11 s; 3 s; l.
0
0
O s; X12
O s; x22
Qual era il modello matematico del problema originario? [Si definisca la funzione obiettivo o algebricamente o graficamente e si esprimano i vincoli algebricamente].
10.8-4. Per ciascuno dei seguenti casi, si provi che la proprietà chiave della programmazione separabile data nel Paragrafo 10.8 è valida (Suggerimento: si assuma che esista una soluzione ottima che violi questa proprietà, e quindi si provi a contraddire questa ipotesi mostrando che esiste una soluzione al11l11issibile migliore). (a) Il caso speciale della progral11l11azione separabile in cui tutte le funzioni g;(x) sono funzioni lineari. (b) Il caso generale della progral11l11azione separabile in cui tutte le funzioni sono funzioni nonlineari della forma designata. [Suggerimento: si pensi ai vincoli funzionali come a vincoli sulle risorse, in cui gij(xj) rappresenta il totale della risorsa i usata dall'attività) allivello xj, e quindi si usi ciò che l'ipotesi di connettività implica riguardo le pendenze della funzione approssimante lineare a tratti]
l 0.8-5. Si consideri il seguente problema di progral11l11azione nonlineare: massimizzare
Z = 5xi
+ x2
soggetto ai vincoli
2xT
+ x 2 s; s;
XT +xl
13 9
e
Xt 2: O
x 1 2: O.
(a) Si mostri che questo problema è un problema di progral11l11azione convessa . (b) Si usi la tecnica della progral11l11azione separabi le discussa alla fme del Paragrafo 10.8 per formulare un modello di programmazione lineare approssimato per questo problema. Si usino interi come punti in cui cambia la pendenza della fun zione lineare a tratti.
CAPITOLO 10
452
PROGRAMMAZIONE NONLINEARE
10.9-1. Si riconsideri il modello di programmazione convesso con vincoli lineari dato nel Problema· 10.6-4. Partendo dalla soluzione iniziale (x 1, x 2 ) = (0, 0), si esegue una iterazione dell'al goritmo Frank-Wolfe per ottenere esattamente la stessa soluzione che è stata trovata al punto (b) del Problema l 0.6-4, e quindi si usi una seconda iterazione per verificare che si tratta di una soluzione ottima (poiché è esattamente replicata). 10.9-2. Si consideri l'esempio di programmazione quadratica presentato nel Paragrafo l O. 7. Partendo dalla soluzione iniziale (x 1, x 2 ) 5 (5 , 5), si effettuino sette iterazioni dell'algoritmo di Frank-Wolfe. 10.9-3. Si consideri il seguente problema di programmazione convessa con vincoli lineari : massimizzare
f (x ) = 3x ,x2 + 40x ,
+ 30x2 -
4x~ - xi - 3x ~ - x i
soggetto ai vincoli 4x 1 + 3x2
::;
12
x 1 + 2x 2
::;
4
:x2 + x:<;500 e
x 2': O. (a) Si identifichino i valori amm issibili per x. Si ottengano le espressioni generali per le prime tre derivate di f (x ). Si usi questa informazione come aiuto per disegnare il grafico per f (x) nella regione ammissibile. Senza calcolarne i va lori , si identifichino i punti del grafico che corrispondono ai massimi e minimi locali. (b) Si usi il metodo di bisezione con é = 0.05 per cercare de i massimi locali. Si usi il grafico della parte (a) per identificare opportuni intervalli iniziali. Quali de i massimi locali è un massimo globale? (c) Partendo da x = 3 e x= 15 come soluzioni iniziali, si usi il metodo di Newton con é = 0.00 l per determinare un massimo locale. (d) Si risolva questo problema con l'uso di Excel con i seguenti punti iniziali: x = O, 5, l O, 15, 20, 25.
10.10-2. Si consideri il seguente problema di programmazione non convessa:
e
x 1 2': O
soggetto ai vincoli
massimizzare f( x)
x 2 2': O.
Partendo dalla soluzione iniziale (x" x 2 ) = (0, 0), si effettu ino due iterazioni dell'algoritmo di Frank-Wolfe.
x ~+ 2x ~
2x, -
x2
::;
+ 4x2 - x f - x ~
X1
2': 0
+
XTX2 = 2
2': 0
X2
2': 0
Nell ' applicazione dell 'algoritmo SUMT a questo problema, quale sarebbe la funzione non vi ncolata P(x; r) da massimizzare a ogni iterazione?
l
e X1
x1 x~
::; 4 ::; 3
x2
e
soggetto ai vincoli
x1 +
2x~ -x ~
soggetto ai vincoli
10.9-4.* Si consideri il seguente problema di programmazione convessa con vincoli lineari: masslmlzzare f (x) = 3x,
= 3x ,x2 -
X2 2': 0.
(a) Partendo dalla soluzione iniziale (x 1, x2 ) = (
~ , ~) , si ef-
fettuino tre iterazioni dell ' algoritmo di Frank-Wolfe. (b) Si usino le condizioni K.KT per verificare se la soluzione ottenuta al punto (a) è, in effetti, ottima.
10.11-1. Si consideri il seguente problema: massimizzare
Z = 4x 1 - XT
+ l Ox2 -x~
soggetto ai vincoli
XT + 4x ~::; 16 e
10.9-5.* Si consideri il seguente problema di programmazione convessa: massimizzare f (x) = - 2x 1 - (x2
-
3)
2
soggetto ai vincoli
x 1 2': 3
e
x 2 2': 3.
(a) Se ven isse app licato l'algoritmo SUMT a questo problema, quale sarebbe la funzione nonvincolata P(x; r) da massimizzare a ogni iterazione? (b) Si ricavi analiticamente la soluzione ottima per P(x; r), e quindi si ottenga la soluzione per r = l , 10- 2 , 10- 4 , 10- 6
10.10-1. Si consideri il seguente problema di programmazione non convessa: massimizzare f (x) = lOOOx - 400:x2
+ 40x3 -
x4
x 1 2': O
x2
2': O.
(a) Si tratta di un problema di programmazione convessa? Si risponda sì o no, e quindi si giustifichi la risposta. (b) È possibile applicare il metodo modificato del simplesso per risolvere questo problema? Si risponda sì o no, e quindi si giustifichi la lisposta (non risolvere il problema). (c) È possibile applicare l' algoritmo di Frank-Wolfe per risolvere questo problema? Si ri sponda sì o no, e quindi si giustifichi la risposta (non risolvere il problema). (d) Quali sono le condizioni K.KT per questo problema? Si usino queste condizioni per determinare se (x 1, x 2) = (1, l) è una soluzione ottima. (e) Si usi la tecnica della progranunazione separabile per formulare un modello di programmazione lineare approssimato per questo problema. Si usino valori interi come punti in cui cambia la pendenza per ogni funzione lineare a tratti.
~ngano
le
:x). Si usi rafico per valori, si ai massi~rcare
dei dentificaocali è un
Metaeuristiche
i, si usi il un massii seguenti
nmazione
~ma , qua11izzare a
;sa? Si rillesso per quindi si :r risolvei giustifi-
a? Si usiè
= (l , l)
er formu ·ossùnato mti in cui l.
N
ei capitoli precedenti sono stati descritti algoritmi che possono essere usati per ottenere una soluzione ottima per diversi tipi di problemi di Ricerca Operativa, compresi problemi di programmazione lineare, programmazione intera e programmazione nonlineare. Questi algoritmi si sono dimostrati strumenti insostituibili nella risoluzione di una grande varietà di problemi reali. Tuttavia, alcuni problemi sono così complessi che non è possibile ottenere una soluzione ottima. In tali situazioni, è ancora importante riuscire a determinare una buona soluzione ammissibile che sia almeno vicina a quella ottima. I metodi euristici sono usati comunemente per ricercare una tale soluzione. Un metodo euristico è una procedura che determina una buona soluzione ammissibile, ma non necessariamente una soluzione ottima per uno specifico problema in esame. Benché non possa essere fornita alcuna garanzia sulla qualità della soluzione ottenuta, un metodo euristico ben progettato fornisce solitamente una soluzione che è quasi ottima (o può concludere che il problema non ha soluzione). Inoltre questa procedura deve essere anche efficiente per trattare problemi di grandi dimensioni. Si tratta spesso di un algoritmo iterativo , in cui a ogni iterazione si ricerca una nuova soluzione migliore della migliore soluzione trovata fino ad allora. Quando, dopo un tempo prefissato, l'algoritmo termina, la soluzione che esso fornisce è la migliore che sia stata determinata in tutte le iterazioni eseguite. I metodi euristici spesso sono basati su criteri di buon senso ma questi devono essere definiti con attenzione per conformarsi allo specifico problema che si intende risolvere. Di conseguenza, i metodi euristici tendono a essere dei metodi ad-hoc, cioè ogni metodo è progettato solitamente per risolvere uno specifico tipo di problema piuttosto che una varietà di problemi. Per molti anni un team di Ricerca Operativa era quasi costretto a ricominciare da zero nella messa a punto di un metodo euristico che risolvesse il problema in esame, ogni volta che non fosse disponibile un algoritmo per l'individuazione della soluzione ottima non fosse disponibile. Il recente sviluppo di potenti metaeuristiche ha permesso di cambiare questo modo di operare. Una metaeuristica è una metodologia generale che fornisce sia una struttura generale sia linee guida strategiche per lo sviluppo di uno specifico metodo euristico che risolve un particolare tipo di problema. Le metaeuristiche sono diventate una delle tecniche più importanti tra gli strumenti a disposizione dell'esperto di Ricerca Operativa. Questo capitolo fornisce un 'introduzione alle metaeuristiche. Dopo la descrizione generale della natura delle metaeuristiche nel primo paragrafo, i tre paragrafi successivi introdurranno e illustreranno le tre metaeuristiche più comunemente usate .
CAPITOLO 11
454
11.1
METAEURISTICHE
LA NATURA DELLE METAEURISTICHE Per illustrare la natura delle metaeuristiche, verrà utilizzato un problema di programmazione nonlineare di piccole dimensioni ma moderatamente difficile.
Un esempio di un problema di programmazione nonlineare con ottimi locali multipli Si consideri il seguente problema. Massimizzare
f (x ) = 12x5
-
975x 4 + 28 000x3
-
345 000x2
+
l 800 OOOx
con il vincolo o ::; x ::; 31 La Figura 11.1 riporta il grafico della funzione obiettivof(x) per i valori ammissibili dellz variabile x. Questo grafico mostra che il problema ha tre ottimi locali, uno per x = 5, un altro per x = 20 e il terzo per x = 31 , e l' ottimo globale si trova in corrispondenza x= 20. La funzione obiettivo f (x ) è così complicata che sarebbe difficile determinare dove trova l'ottimo globale senza l'esame del grafico di Figura 11.1. Si potrebbe far ricorso all'analisi matematica, ma la determinazione di dove si trovano i punti critici richiederebbe la risoluzione di un ' equazione di quarto grado (ponendo la derivata prima uguale a zero ,. Diventerebbe comunque difficile determinare sef(x ) ha ottimi locali multipli o un singolo ottimo globale. Questo problema è un esempio di un problema di programmazione non convessa, uno speciale tipo di problema di programmazione nonlineare che tipicamente presenta ottimi locali multipli. Per questi difficili problemi di programmazione nonlineare, un metodo euristico semplice consiste n eli ' applicare una procedura di ricerca locale. A ogni iterazione, si effettua una ricerca nell ' intorno del punto corrente al fine di determinare una soluzione migliore. Questo processo termina quando non viene trovata nessuna soluzione migliore nell'intorno della soluzione corrente. Questo tipo di procedura può essere vista co-
• Figura 11.1 Grafico del valore della funzione obiettivo nell'intervallo ammissibile O ::; x ::; 31 per il problema di programmazione nonlineare. Gli ottimi locali si trovano in corrispondenza di x = 5, x = 20 e x = 31, ma solo x = 20 è un ottimo globale.
f(x) 5 x 106 ,_
4 x 106 ,_
3 x 106 ,_
2 x 106 ,_
l x 106
o
5
10
15
20
25
30
x
11.1
455
LA NATURA DELLE METAEURISTICHE
me una procedura di ascesa di tipo hill-climbing che, assumendo di voler massimizzare la funzione obiettivo, continua a risalire lungo il grafico della funzione obiettivo (scalare la collina) fino a che non viene raggiunto il punto più in alto. Una ben progettata procedura di miglioramento locale permetterà di convergere con successo a un ottimo locale, ma essa terminerà anche se questo ottimo locale non è un ottimo globale. Per esempio, il metodo del gradiente descritto nel Paragrafo l 0.5 è una procedura di miglioramento locale. Se in Figura 11 .1, si sceglie x = O come punto iniziale, si sale lungo il grafico della funzione per valori di x sempre maggiori fino a che non si raggiunge il punto x = 5 in cui la procedura termina. La Figura 11.2 mostra una tipica sequenza di valori dif(x) ottenuta con una procedura di miglioramento locale partendo da un punto lontano dal massimo. Poiché il problema di programmazione nonlineare rappresentato in Figura 11.1 è un problema monodimensionale, a esso potrebbe essere applicato anche il metodo di bisezione descritto nel Paragrafo 10.4. Quest'ultimo è un altro esempio di una procedura di miglioramento locale poiché ogni iterazione parte dalla soluzione corrente e ricerca una soluzione migliore nell'intorno di questa (tale intorno qui è identificato dal limite inferiore e limite superiore corrente). Per esempio, se la ricerca inizia con un limite inferiore pari a x = O e un limite superiore pari a x = 6 (Figura 11.1 ), la sequenza delle soluzioni ottenute con il metodo di bisezione è x= 3, x= 4.5 , x= 5.25, x= 4.875 e così via fino a convergere a x = 5. I valori corrispondenti della funzione obiettivo per queste quattro soluzioni sono, rispettivamente, 2975 milioni, 3286 milioni, 3300 milioni e 3302 milioni. La seconda iterazione produce un miglioramento relativamente grande rispetto alla prima (311 000), la terza iterazione determina un miglioramento abbastanza piccolo (14 000) mentre la quarta iterazione genera solo un miglioramento molto piccolo (2000). Come rappresentato in Figura 11 .2, questo andamento è tipico nelle procedure di miglioramento locali (anche se con una certa variazione nella velocità di convergenza al massimo locale). Proprio come la procedura di ricerca basata sul gradiente, anche il metodo di bisezione si potrebbe bloccare in corrispondenza dell ' ottimo locale x= 5, senza mai determinare l'ottimo globale x= 20. Come le altre procedure di miglioramento locale, sia il metodo del gradiente che il metodo di bisezione sono progettati in modo da cercare soluzioni migliori della soluzione corrente in un intorno di questa. Una volta che viene raggiunto un massimo locale, ci si deve arrestare dato che non è possibile determinare punti migliori in un suo intorno e questo è lo svantaggio di una procedura di miglioramento locale.
ogramma-
ottimi
;ibili della x = 5, un ndenza di re dove si ricorso aliederebbe le a zero). un singo-
'essa, uno nta ottimi tetodo eui iteraziouna soluZIOne nu~ vista co-
Quando una procedura di miglioramento locale anche ben progettata viene applicata a un problema di ottimizzazione con ottimi locali multipli, la procedura convergerà a un ottimo locale e quindi si arresta. Quale ottimo locale viene determinato dipende dal punto iniziale. In questo modo, la procedura determinerà l' ottimo globale solo se la ricerca inizia in un intorno di questo punto.
• Figura 11.2 Una tipica sequenza dei valori della funzione obiettivo ottenuti mediante una procedura di miglioramento locale che converge a un ottimo locale quando viene applicata a un problema di massimizzazione.
~
x
f(x)
Un piccolo Un miglioramento miglioramento molto piccolo
Il'
t
Un grande miglioramento
~
~
....
l
2
3
4
.-'
Iterazione
456
CAPITOLO 11
METAEURISTICHE
Per cercare di far fronte a questo svantaggio, si può pensare di ripetere un certo numero di volte la procedura di miglioramento locale partendo da punti iniziali scelti in maniera casuale. Iniziare da una nuova parte della regione ammissibile permetterà di arrivare spesso a un nuovo ottimo locale. Ripetendo ciò un numero di volte si aumenta la probabilità che il migliore degli ottimi locali ottenuti sia proprio l'ottimo globale. Questo approccio funziona molto bene per problemi di piccole dimensioni, come l'esempio di programmazione nonlineare in una variabile rappresentato in Figura 11.1. Funziona poco bene, invece, per problemi di grandi dimensioni e caratterizzati da una regione ammissibile complessa. Infatti, a seconda della funzione obiettivo di cui si vuole determinare l'ottimo e di quanto sia complessa la regione ammissibile questa idea di ripartire da differenti punti iniziali può essere o no vantaggiosa. Ciò che è necessario è un approccio più strutturato che usi le informazioni già raccolte e guidi la ricerca verso l'ottimo globale. Questo è il ruolo che giocano le metaeuristiche.
La natura delle metaeuristiche: una metaeuristica è una metodologia risolutiva generale che gestisce l'interazione tra le procedure di miglioramento locale e strategie a più alto livello al fine di creare un processo in grado di allontanarsi da un ottimo locale ed eseguire una ricerca approfondita di una regione ammissibile. Una caratteristica fondamentale di una metaeuristica è la sua abilità di allontanarsi da un ottimo locale. Dopo aver raggiunto (o quasi) un ottimo locale, le differenti metaeuristiche permettono di spostarsi da questo punto in modi diversi. Tuttavia, una caratteristica comune è che ai nuovi punti considerati immediatamente dopo un ottimo locale è pem1esso di avere un valore peggiore della funzione obiettivo. Di conseguenza, quando vene applicata una metaeuristica a un problema di massimizzazione (come l'esempio rappresentato in Figura 11.1 ), i valori della funzione obiettivo per la sequenza di soluzioni ottenute seguono un comportamento simile a quello mostrato in Figura 11.3. Così come in Figura 11.2. anche in questo caso il processo inizia usando una procedura di miglioramento locale per raggiungere un massimo locale (iterazione 4). Tuttavia anziché arrestarsi in tale punto, la metaeuristica può proseguire la ricerca muovendosi lungo l' altro lato del grafico fino a raggiungere un altro massimo locale (iterazione 8). Per verificare che questo è l'ottimo globale, la metaeuristica continua una ulteriore esplorazione prima di terminare (iterazione 12).
• Figura 11.3 Una tipica sequenza dei valori del la funzione obiettivo ottenuti mediante una metaeuristica che prima converge a un ottimo locale (iterazione 4) e poi riesce a superare tale ottimo per convergere all'ottimo globale (iterazione 8) di un problema di massimizzazione prima di concludere la ricerca (iterazione 12).
'
.....
2
4
6
8
10
12
Iterazione
.. '.
.
·.
'·i.
'
11 .1
umero di .niera care spesso ::>ilità che ccio fununazione vece, per :ssa. imo e di punti ini1 raccolte
istiche. va ge·ategie Jttimo rsi da un :uristiche ca comumesso di applicata entato in te seguoura 11.2, ocale per punto, la ~o fino a l'ottimo :erminare
~
LA NATURA DELLE METAEURISTICHE
~
·-
457
La Figura 11 .3 illustra sia un punto a favore sia uno a sfavore di una metaeuristica anche ben progettata. Il vantaggio è che essa tende a muoversi in maniera relativamente rapida verso le soluzioni migliori, e quindi fornisce un modo molto efficiente per gestire problemi complessi di grandi dimensioni. Lo svantaggio è che non c'è garanzia che la migliore soluzione determinata sia una soluzione ottima o addirittura una soluzione quasi ottima. Di conseguenza, ogni qual volta un problema può essere risolto con una procedura che può garantire l' ottimalità, quest'ultima deve essere preferita alla metaeuristica. Il ruolo delle metaeuristiche è quello di trattare problemi che risultano troppo grandi e troppo complessi per essere risolti con algoritmi esatti. Tutti gli esempi in questo capitolo sono troppo piccoli da richiedere l 'uso di metaeuristiche. Lo scopo di questi esempi è solo quello di illustrare in maniera semplice come le metaeuristiche possono costituire un approccio alla risoluzione di problemi molto più complessi. Il Paragrafo 11.3 illustrerà l'applicazione di una particolare metaeuristica all'esempio di programmazione nonlineare rappresentato in Figura 11.1. Il Paragrafo 11.4 applicherà quindi un 'altra metaeuristica a una variante di questo stesso esempio. Anche se, a volte, le metaeuristiche possono essere applicate a problemi difficili di programmazione nonlineare e programmazione intera, un 'area di applicazione molto più comune è rappresentata dai problemi di ottimizzazione combinatoria. Il successivo esempio è proprio di questo tipo.
Il problema del commesso viaggiatore Forse, il più famoso problema di ottimizzazione combinatoria è il problema del commesso viaggiatore (Traveling Salesman Problem, TSP). Il nome pittoresco deriva dal fatto che tale problema può essere descritto in termini di un commesso viaggiatore che deve visitare i clienti in diverse città. Partendo dalla città in cui abita, il commesso viaggiatore vuole determinare quale itinerario deve seguire per visitare ogni città esattamente una volta prima di ritornare a casa in modo da minimizzare la distanza totale percorsa. La Figura 11.4 mostra un esempio con sette città. La città l è la città in cui egli abita. Di conseguenza, partendo da questa città, il commesso viaggiatore deve scegliere un percorso per visitare ognuna delle altre città esattamente una volta prima di ritornare alla città l. Il numero accanto a ogni collegamento tra una coppia di città rappresenta la distanza (o costo o tempo) tra queste città. La distanza è la stessa in entrambe le direzioni (questo problema viene denominato come problema del commesso viaggiatore simmetrico). Anche se, in genere, per ogni coppia di città esiste in realtà un collegamento diretto, in questo esempio si assumerà che i collegamenti diretti sono solo quelli mostrati nella figura. L'obiettivo è determinare quale percorso minimizzi la distanza totale che il commesso viaggiatore deve percorrere. Alcune applicazioni del problema del commesso viaggiatore non hanno nulla in comune con i commessi viaggiatori. Per esempio, quando un camion lascia un centro di distribuzione per consegnare le merci in un certo numero di località, il problema di determinare l'itinerario più breve è un esempio di problema del commesso viaggiatore. Un altro caso riguarda la fabbricazione di circuiti stampati per il cablaggio di chip e di altri componenti. Al crescere del numero delle città, la difficoltà del problema aumenta rapidamente. Per un problema con n città e un collegamento tra ogni coppia di queste, il numero degli itinerari possibili da considerare è (n- 1)!/ 2 poiché ci sono (n- l ) possibilità per la prima città dopo la città di partenza, (n- 2) possibilità per la città successiva e così via. Al denominatore è presente il numero 2 perché per ogni itinerario vi è l'equivalente percorso inverso con esattamente la stessa distanza. Così, mentre per un problema con l O città devono essere considerate meno di 200 000 soluzioni ammissibili, un problema con 20 città ha approssimativamente 10 16 soluzioni ammissibili, mentre un problema con 50 città ne ha circa l 062 . Sorprendentemente, i potenti algoritmi basati sull 'approccio branch-and-cut introdotto nel Paragrafo 9.8 hanno avuto successo nel risolvere problemi di dimensioni notevoli ca-
458
CAPITOLO 11
METAEURISTICHE
• Figura 11.4 Esempio di un problema del commesso viaggiatore. Questo problema verrà usato in questo capitolo per illustrare il comportamento delle diverse metaeuristiche.
ratterizzati da molte centinaia (o addirittura migliaia) di città. Tuttavia, a causa della enorme difficoltà nel risolvere problemi di grandi dimensioni, i metodi euristici guidati dalle metaeuristiche continuano a essere un modo popolare per risolvere simili problemi. Questi metodi euristici richiedono la generazione di una sequenza di soluzioni anunissibili, in cui ogni nuova soluzione è ottenuta con piccoli aggiustamenti della soluzione corrente. Sono stati suggeriti diversi metodi per modificare la soluzione corrente. Grazie alla sua facile implementazione, un metodo largamente usato è il seguente. Un 'inversione di una sottosequenza (sub-tour reversal) modifica la sequenza delle città visitate nella soluzione corrente selezionando una sottosequenza delle città e invertendo semplicemente l'ordine in cui tale sottosequenza viene visitata (la sottosequenza che viene invertita può essere costituita soltanto da due città, ma potrebbe averne anche di più). Per illustrare una inversione di una sottosequenza, si supponga che la soluzione iniziale per l'esempio in Figura 11.4 consista nel visitare le città nell 'ordine: 1-2-3-4-5-6-7-1
Distanza = 69
Se si seleziona la sottosequenza 3-4 e la si inverte, si ottiene la seguente nuova soluzione: 1-2-4-3 -5-6-7-1
Distanza= 65
Questa particolare inversione di sottosequenza riduce la distanza percorsa da 69 a 65. La Figura 11 .5 mostra l' inversione di una sottosequenza, con a sinistra la soluzione in iziale e a destra la nuova soluzione. Le linee tratteggiate indicano i collegamenti che vengono eliminati dal percorso (a sinistra) o aggiunti al percorso (a destra) con l' inversione di questa sottosequenza. Si può notare che la nuova soluzione cancella esattamente due collegamenti dal precedente percorso e li sostituisce con due nuovi collegamenti per formare il nuovo percorso. Ciò è una caratteristica di ogni inversione di una sottosequenza (compresa quella in cui la sottosequenza consiste di più di due città). In questo modo, una patticolare inversione di una sottosequenza è possibile solo se i due nuovi collegamenti corrispondenti esistono realmente.
11.1
459
LA NATURA DELLE METAEURISTICHE
Questo successo nell'ottenere un percorso migliore eseguendo semplicemente una inversione di una sottosequenza, suggerisce il seguente metodo euristico per la ricerca di una buona soluzione ammissibile per un generico problema del commesso viaggiatore.
)
Algoritmo basato sull'inversione di una sottosequenza lnizializzazione. ziale.
Scegliere un qualunque percorso ammissibile come soluzione
Ini -
lterazione. Data la soluzione corrente, considerare tutti i possibili modi per effettuare un'inversione di una sottosequenza (escludere l' inversione dell'intero percorso). Selezionare quella sottosequenza che fornisce il maggiore decremento nella distanza percorsa (in caso di parità si può scegliere una qualunque di queste sottosequenze in modo arbitrario). Regola di arresto. Terminare quando nessuna inversione migliora la soluzione corrente. Accettare questa soluzione come la soluzione finale .
Se questo algoritmo viene applicato ali ' esempio, partendo con 1-2-3-4-5-6-7-1 come soluzione iniziale, ci sono quattro possibili inversioni di sottosequenze che migliorano questa soluzione, come elencato successivaJllente nella seconda, terza, quarta e quinta riga. Inversione Inversione Inversione Inversione
~Ila enordati dalle .1 mrurus;oluzione e. Grazie
~a
delcittà e sottotrebbe iniziale
69 68 65 65 66
• Figura 11.5 Una inversione di sottosequenza che sostituisce il tour di sinistra (la soluzione in izia le) con il tour di destra (la nuova soluzione) invertendo l'ordine con cui vengono visitate le città 3 e 4. La sottosequenza è 3-4. Questa inversione di sottoseq uenza si ottiene sostituendo le linee tratteggiate di sinistra con quelle a destra.
Q) \
luzione:
65 . :ione iniche venrsione di due colformare ~a (comna partilti corri-
Distanza = Distanza = Distanza = Distanza = Distanza =
Entrambe le soluzioni con Distanza = 65 forniscono la diminuzione più grande nella distanza percorsa, così si supponga che la prima di queste, 1-2-4-3-5-6-7-1 (come indicato nella parte destra della Figura 11.5), sia scelta in modo arbitrario come nuova soluzione. Ciò completa la prima iterazione. La seconda iterazione inizia con il percorso a destra nella Figura 11.5 come soluzione corrente. Per questa soluzione, c'è solo una inversione di una sottosequenza che fornisce un miglioramento, come elencato nella seconda riga di seguito.
1i.
~
1-2-3-4-5-6-7-1 1-3-2-4-5-6-7-1 1-2-4-3 -5-6-7-1 1-2-3-5-4-6-7-1 1-2-3-4-6-5-7-1
2-3: 3-4: 4-5 : 5-6:
12
'_8/,0 '
Il
l
\
\
G) Il
,'r;
'
G)- - - - -
4
/'-12 /
/
12 9
Il
'
G) ~
Distanza= 69
12
\'3
/
(iì
/
Distanza = 65
~
/
9
CAPITOLO 11
460
METAEURISTICHE
~ ,
12
I l ••
12
~
Distanza =65
1J
Distanza =64
cp~,~'IO l
l l
91
l
5
l
6
l l
12
l
6
12
- 'g
• Figura 11.6 L'inversione di una sottosequenza 3-5-6 che porta dalla soluzione a sin istra a una so luzione migliore a destra.
Inversione 3-5-6:
1-2-4-3-5-6-7-1 Distanza= 65 1-2-4-6-5-3-7-1 Distanza = 64
La Figura 11.6 mostra questa inversione di una sottosequenza, in cui l ' intera sottosequenza delle città 3-5-6 sulla sinistra viene adesso visitata nell ' ordine inverso (6-5-3) sulla destra. Così, il percorso a destra attraversa adesso il collegamento 4-6 invece di quello 4-3. così come il collegamento 3-7 anziché il collegamento 6-7, in modo da visitare le città 65-3 in questo nuovo ordine dopo avere visitato la città 4 e visitando dopo la città 7. Ciò completa la seconda iterazione. Alla prossima iterazione, si cercherà ancora una sottosequenza invertendo la quale si ottenga un miglioramento. Purtroppo, non ce ne sono e così l'algoritmo termina con la soluzione corrente come soluzione finale. La soluzione 1-2-4-6-5-3-7-1 è ottima? Purtroppo, no. La soluzione ottima è 1-2-4-6-7-5-3-1 Distanza= 63 (o 1-3-5-7-6-4-2-1 invertendo la direzione de li ' intero percorso) Tuttavia, questa soluzione non può essere raggiunta eseguendo inversioni di sottosequenze che migliorano 1-2-4-6-5-3-7-1. L' algoritmo appena descritto è un altro esempio di una procedura di miglioramento locale. Esso migliora la soluzione corrente a ogni iterazione. Quando nell'intorno non esiste una soluzione migliore, l'algoritmo tem1ina e la soluzione corrente è un ottimo locale. In questo caso, 1-2-4-6-5-3 -7-1 è effettivamente un ottimo locale perché nel suo intorno non c' è nessuna soluzione migliore che può essere raggiunta eseguendo una inversione di una sottosequenza. Ciò che è necessario per fornire una migliore probabilità di raggiungere un ottimo globale è usare una metaeuristica che pennetterà di allontanarsi da un ottimo locale. Nei tre successivi paragrafi, verranno presentate tre differenti metaeuristiche.
11.2 TABU SEARCH Tabu Search è una metaeuristica ampiamente utilizzata che usa criteri basati sul buon senso per permettere al processo di ricerca di allontanarsi da un ottimo locale. Dopo avere introdotto i concetti di base, la procedura verrà applicata alle soluzioni di un semp lice problema e quindi all 'esempio del commesso viaggiatore.
11.2
TABU SEARCH
461
Concetti di base
"0 'IO
osequensulla dewllo 4-3 e città 6tà 7. Ciò quale si :on la so-
Qualsiasi applicazione di Tabu Search include una procedura di ricerca locale specifica per il problema in questione (una procedura di ricerca locale opera proprio come una procedura di miglioramento locale salvo che non si richiede che la nuova soluzione sia migliore della soluzione precedente). Il processo inizia usando questa procedura nel modo usuale (accettando a ogni iterazione solo una soluzione migliore) fino a detem1inare un ottimo locale. Una strategia fondamentale della metaeuristica Tabu Search è che la ricerca continua permettendo, nel caso di un ottimo locale, mosse che non migliorano la soluzione corrente. Una volta che viene raggiunto un punto nell ' intorno del quale possono essere detem1inate soluzioni migliori, la procedura di miglioramento locale viene riapplicata per determinare un nuovo ottimo locale. A ogni iterazione si seleziona la mossa ammissibile che porta a una soluzione migliore o, quando una mossa di ascesa non è disponibile, si seleziona una mossa che porta a una soluzione peggiore. Il processo seguirà un comportamento come quello indicato nella Figura 11.3 , in cui l'ottimo locale è superato in modo da giungere all 'ottimo globale. Il pericolo nel! 'utilizzare questo approccio è che dopo essersi allontanati da un ottimo locale, il processo ritorni di nuovo allo stesso ottimo locale. Per evitare ciò, Tabu Search impedisce temporaneamente mosse che potrebbero ricondurre in una soluzione recentemente visitata. Una lista tabu memorizza queste mosse proibite, che vengono indicate come mosse tabu (questa mossa non viene impedita solo se si ritiene che una mossa tabu porti a una soluzione migliore della migliore soluzione ammissibile trovata fino a quel momento). Questo uso della memoria per guidare la ricerca per mezzo di liste tabu in cui viene memorizzata parte della storia recente della ricerca stessa è una caratteristica peculiare di questa metaeuristica legata alle sue origini nel campo del! ' intelligenza artificiale. Tabu Search può includere anche alcuni concetti più avanzati. Uno è l'intensificazione, che consiste nell 'esp lorare in maniera più completa una parte della regione ammissibi le ritenuta particolarmente indicata a contenere soluzioni molto buone. Un altro concetto è quello di differenziazione, che consiste nel forzare la ricerca nelle aree precedentemente inesplorate della regione ammissibile (una memoria a lungo termine può essere usata per facilitare l' implementazione di entrambi i concetti). Tuttavia, ci si soffermerà sulla forma base di Tabu Search riassunta di seguito senza esaminare a fondo questi ulteriori concetti.
Sommario di un algoritmo Tabu Search lnizializzazione. osequen-
•1ento loon esiste ocale. In ::>mo non 1e di una ngere un mo !oca-
uon senavere inlice pro-
Iniziare con una soluzione ammissibile.
lterazione. Usare una procedura di ricerca locale per definire le mosse ammissibili in un intorno della soluzione corrente. Escludere qualunque mossa presente nella corrente lista tabu a meno che la specifica mossa non generi una soluzione migliore della migliore soluzione trovata fino ad allora. Determinare quale delle mosse forniscono la soluzione migliore. Adottare questa soluzione come la successiva soluzione, senza considerare se essa è migliore o peggiore dell 'attuale. Modificare la lista tabu in modo da impedire un ritorno alla soluzione corrente. Se la lista tabu è piena, eliminare l'elemento che è da più tempo in tale lista in modo da fornire maggiore flessibilità per le future mosse. Criterio di arresto. Usare un criterio di arresto, quale un numero fissato di iterazioni, un massimo tempo di CPU stabilito a priori , oppure un numero fissato di iterazioni consecutive senza alcun miglioramento nel valore della funzione obiettivo (quest'ultimo è uno dei criteri più utilizzati). Inoltre arrestare la procedura se nell'intorno della soluzione corrente non ci sono mosse pennesse. Accettare come soluzione finale la migliore soluzione detenninata. Questa descrizione a grandi linee lascia alcune domande senza risposta. l. Quale procedura di ricerca locale deve essere usata? 2. Qual è la struttura di intorno che specifica le soluzioni immediatamente vicine (raggiungibili con una singola mossa)?
CAPITOLO 11
462
3. 4. 5. 6.
METAEURISTICHE
Come devono essere rappresentate le mosse ali 'interno della lista tabu? Quale mossa tabu deve essere aggiunta alla lista tabu a ogni iterazione? Per quanto tempo una mossa tabu deve rimanere tale? Quale criterio di arresto deve essere usato?
Questi sono tutti dettagli importanti che devono essere tenuti in considerazione nel risolvere un particolare tipo di problema, come illustrato dagli esempi successivi. Tabu Search fornisce soltanto una struttura generale e strategie di riferimento per sviluppare una specifica euristica adatta a una particolare situazione. La selezione dei parametri è una parte principale dello sviluppo di un metodo euristico di successo. I seguenti esempi illustrano l'uso della procedura Tabu Search.
Un problema di minimo albero ricoprente con vincoli Il Paragrafo 8.4 descrive il problema del minimo albero ricoprente. A partire da un grafo che ha tutti i nodi ma non ha ancora collegamenti fra questi, il problema consiste nel determinare quali collegamenti devono essere inseriti nel grafo. L'obiettivo è minimizzare il costo complessivo (o lunghezza) dei collegamenti inseriti in modo che esista un cammino tra ogni coppia di nodi. In un grafo con n nodi, per generare un cammino tra ogni coppia di nodi sono necessari (n- l) collegamenti (senza cicli). Un tale grafo viene chiamato un albero ricoprente (spanning tre e) . A sinistra nella Figura 11.7 viene mostrato un grafo con cinque nodi, in cui le linee tratteggiate rappresentano i potenziali collegamenti che possono essere inseriti all ' interno del grafo mentre il numero accanto a ogni linea tratteggiata rappresenta il costo associato all ' inserimento di quel particolare collegamento. Dunque, il problema è determinare quali dei quattro collegamenti devono essere inseriti nel grafo (senza creare cicli) per minimizzare il costo totale. A destra nella figura viene mostrato il minimo albero ricoprente, in cui le linee in grassetto rappresentano i collegamenti che sono stati effettivamente inseriti nel grafo con un costo totale pari a 50. Questa soluzione ottima è ottenuta facilmente applicando l'algoritmo " greedy" presentato nel Paragrafo 8.4. Per illustrare l'uso della metaeuristica Tabu Search, questo esempio viene complicato richiedendo che si tenga conto anche dei seguenti vincoli nella scelta dei collegamenti da includere nella rete. Vincolo l: il collegamento AD può essere inserito solo se viene incluso il collegamento DE.
• Figura 11.7 (a) Dati per un problema di minimo albero ricoprente prima di scegliere i collegamenti che devono essere inclusi nel grafo e (b) soluzione ottima per questo problema in cui le linee in grassetto rappresentano i collegamenti scelti.
. ®, , , '20
3Ò'.
3Ò''
@ ____ lD_ @- __5____ @ '
,
• -15
l
251
40' ,
40" ,
l
'@" (a)
(b)
11.2
463
TABU SEARCH
Vincolo 2: può essere inserito al più uno dei tre collegamenti - AD, CD e AB - .
nel risolm Search ma speciuna parte
un grafo :e nel denizzare il ::ammino ni coppia 1mato un i le linee !l'interno 1ssociato are quali ninimizte, in cui seriti nel ,te appli-
mplicato menti da gamento
1el grafo
Si può notare che la soluzione ottima nella Figura 11.7 (b) viola entrambi questi vincoli perché (l) il collegamento AD è inserito anche se non lo è DE e (2) sono inseriti sia AD che AB. Imponendo tali vincoli, l'algoritmo greedy presentato nel Paragrafo 8.4 non può più essere utilizzato per detenninare la nuova soluzione ottima. Per un problema di queste dimensioni, probabilmente, la soluzione può essere determinata rapidamente per ispezione. Tuttavia, si può osservare come Tabu Search potrebbe essere usato sia per questo problema che per problemi di più grandi dimensioni per cercare una soluzione ottima. Il modo più semplice per essere sicuri che i vincoli vengano tenuti in considerazione è l' imposizione di una penalità quando questi sono violati: l. imporre una penalità di 100 se viene violato il vincolo l. 2. imporre una penalità di l 00 se vengono inseriti due dei tre collegamenti specificati nel
vincolo 2. Aumentare questa penalità a 200 se sono inclusi tutti e tre i collegamenti. Una penalità di l 00 è abbastanza grande da garantire che non vengano violati i vincoli, nel caso in cui esistano soluzioni ammissibili. Raddoppiare questa penalità se il vincolo 2 viene gravemente violato fornisce un incentivo per ridurre quanti dei 3 collegamenti sono inseriti nella soluzione corrente a ogni iterazione dell'algoritmo Tabu Search. Esistono 3 variati modi per rispondere alle sei domande precedenti necessarie per specificare l'algoritmo Tabu Search. l. Procedura di ricerca locale: a ogni iterazione, scegliere la migliore soluzione immediatamente vicina alla soluzione corrente che non è dichiarata inammissibile dal suo stato tç~bu . 2. Struttura dell'intorno: una soluzione immediatamente vicina alla soluzione corrente è una soluzione che è raggiunta aggiungendo un singolo collegamento ed eliminando uno degli altri collegamenti del ciclo che si forma in seguito all'aggiunta di questo nuovo collegamento (affinché si continui ad avere uno albero ricoprente è necessario che il collegamento eliminato appartenga a questo ciclo). 3. Forma delle mosse tabu: elencare i collegamenti che non devono essere eliminati. 4. Aggiunta di una mossa tabu: a ogni iterazione, dopo la scelta del collegamento che deve essere aggiunto, inserire anche questo collegamento nella lista tabu. 5. Dimensione massima della lista tabu: ogni volta che una mossa tabu viene aggiunta a una lista piena, eliminare da questa la massa inserita da più tempo (dato che, per il problema considerato, un albero ricoprente contiene solo quattro collegamenti, la lista tabu deve essere molto piccola in modo da fornire sufficiente flessibilità nella scelta del collegamento che deve essere eliminato a ogni iterazione). Per questo esempio una scelta ragionevole per la lunghezza della lista tabu è 2. 6. Regola di arresto: l' algoritmo termina dopo un numero fissato (3 in questo caso) di iterazioni consecutive senza un miglioramento nel valore della funzione obiettivo (l ' algoritmo si atresta anche in corrispondenza di una qualsiasi iterazione in cui la soluzione corrente non ha soluzioni immediatamente vicine che non siano escluse a causa del loro stato tabu).
Una volta che questi dettagli sono stati specificati, si può adesso procedere con l'applicazione dell'algoritmo Tabu Search all 'esempio considerato. Inizialmente, una scelta ragionevole per la soluzione iniziale è la soluzione ottima per la versione senza vincoli del problema come mostrato in Figura 11.7(b). Poiché questa soluzione viola entrambi i vincoli (ma con l 'inclusione di solo due dei tre collegamenti specificati nel vincolo 2), è necessario imporre per due volte una penalità pari a l 00. Di conseguenza, il costo complessivo di questa soluzione è costo = 20 + l O + 5 + 15 = 250.
+ 200 (vincoli di penalità)
464
CAPITOLO 11
METAEURISTICHE
Le tre opzioni per l'aggiunta di un collegamento alla rete di Figura 11.7(b) sono BE, CD e DE. Se si sceglie BE, il ciclo risultante è BE-CE-AC-AB, così le tre opzioni per l'eliminazione di un collegamento sono CE, AC e AB (a questo punto, nessun collegamento è stato ancora aggiunto alla lista tabu). Se si cancellasse CE, il cambiamento nel costo sarebbe 30 - 5 = 25 senza modifiche nelle penalità, così il costo totale aumenterebbe da 250 a 275 . Allo stesso modo, se, invece, si cancellasse AC, il costo totale aumenterebbe da 250 a 250 + (30 - IO)= 270. Tuttavia, se il collegamento cancellato fosse il collegamento AB, i costi dei collegamenti cambierebbero di 30 - 20 = l O mentre la penalità diminuirebbe da 200 a 100 perché il vincolo 2 non sarebbe più violato e così il costo totale diventerebbe 50 + 10 + l 00 = 160. Questi risultati sono riassunti nelle prime tre righe della Tabella Il. l. lterazione 1.
Tabella 11.1 Le opzioni per l'aggiunta di un collegamento e l'eliminazione di un altro collegamento nell'iterazione 1 Aggiungere
Eliminare
Costo
BE BE BE
CE AC AB
75 70 60
+ 200 = 275 + 200 = 270 + 100 = 160
CD CD
AD AC
60 65
+ 100 = 160 + 300 = 365
DE DE DE
CE AC AD
85 80 75
+ 100 = 185 + 100 = 180 + o = 75
f-
Minimo
Le due righe seguenti nella Tabella 11.1 riportano i calcoli se invece fosse aggiunto al grafo il collegamento CD. In questo caso, il ciclo generato è CD-AD-AC, così AD e AC sono le uniche opzioni per cancellare un collegamento. La scelta AC sarebbe una scelta particolarmente sbagliata dato che il vincolo l continuerebbe a essere violato (con una penalizzazione di l 00) e a questo punto sarebbe necessario imporre una penalizzazione di 200 per la violazione del vincolo 2 i tre collegamenti specificati nel vincolo sarebbero ora tutti inclusi nel grafo. L'eliminazione di AD permetterebbe di soddisfare il vincolo l e di non aumentare la penalità per il vincolo 2. Le ultime tre righe della tabella mostrano le opzioni nel caso in cui fosse aggiunto il collegamento DE. Il ciclo generato aggiungendo questo collegamento è DE-CE-ACAD, così CE, AC e AD sono candidati per l'eliminazione. Il vincolo l è sempre soddisfatto, e l'eliminazione di AD permette di soddisfare anche il vincolo 2. Eliminando completamente le penalizzazioni, il costo totale per questa opzione diventa soltanto 50 + (40 - 15) = 75. Poiché questo è il costo più piccolo per tutte le otto opzioni disponibili nell ' intorno della soluzione corrente, si sceglie questa particolare mossa aggiungendo DE ed eliminando AD. Questo è indicato nella porzione della Figura 11.8 relativa all ' iterazione l e l'albero ricoprente risultante all ' inizio dell ' iterazione 2 è mostrato immediatamente a destra. Per completare l' iterazione, dato che DE è stato aggiunto al grafo, esso è il primo collegamento inserito nella lista tabu. Questo eviterà l'eliminazione successiva di DE e il ritorno alla soluzione da cui è iniziata questa iterazione. Riassumendo, durante questa prima iterazione sono state prese le seguenti decisioni: • aggiungere il collegamento DE al grafo, • eliminare il collegamento AD dal grafo, • aggiungere il collegamento DE alla lista tabu.
~-·~d "l
11.2
di Figura
B, così le ;to punto, E, il cam:osto total costo tocancella-
- 20 = lO iù violato riassunti
465
TABU SEARCH
lterazione 2. La parte destra in alto della Figura 11.8 indica che le corrispondenti decisioni prese all ' iterazione 2 sono le seguenti: • aggiungere il collegamento BE al grafo, • inserire questo collegamento nella lista tabu, • eliminare il collegamento AB dal grafo. La Tabella 11.2 riassume i passi che hanno condotto a queste decisioni determinando che la mossa nella sesta riga fornisce il costo più piccolo. Le mosse elencate nella prima e settima riga della tabella richiedono l 'eliminazione di DE, che si trova nella lista tabu. Di conseguenza, queste mosse sono tenute in conto soltanto se forniscono una soluzione migliore rispetto alla migliore soluzione detenninata finora, che ha un costo pari a 75. Questo non accade per il caso in esame; la riga 7 indica che questa mossa non fornisce una soluzione migliore mentre per la prima riga non è necessario alcun calcolo aggiuntivo perché questa mossa riconduce alla soluzione precedente.
Tabella 11.2 Le opzioni per l'aggiunta di un collegamento e l'eliminazione di un altro collegamento nell'iterazione 2
Aggiungere
to al grae AC so;elta par.na penale di 200 • ora tutti e di non giunto il ·CE-AC~e soddiminando tanto 50 1i dispoaggiun.8 relatimostrato colleil ritor-
10 ~
;ioni:
Eliminare
Costo
AD AD AD
DE* CE AC
(Movimento tabu)
BE BE BE
CE AC AB
100 + o 95 + o 85 + o
CD CD
DE* CE
85 + 100 = 185 80 + 100 = 180 = 100 = 95 = 85 r Min imo
60 + l 00 = 160 95 + 100 = 195
* Movimento tabu . Verrebbe considerato solo se risultasse in una soluzione migliore della migliore soluzione trovata in precedenza.
Si noti che la mossa considerata nella sesta riga è eseguita anche se genera una nuova soluzione che ha un costo maggiore (85) rispetto alla soluzione corrente (75). Ciò vuoi dire che la soluzione corrente è un ottimo locale perché tutti i suoi vicini (quelli che possono essere raggiunti con una sola mossa e che sono elencati nella Tabella 11.2) hanno costo maggiore. Tuttavia, la mossa verso il migliore delle soluzioni vicine permette di allontanarsi dali ' ottimo locale e continuare la ricerca dell'ottimo globale. Prima di procedere con l' iterazione 3, si deve osservare che forme più sofisticate di Tabu Search potrebbero esser utilizzate nella selezione del miglior vicino. Più in generale, i metodi Tabu Search possono cambiare il significato di "miglior vicino" , a seconda della sua storia, usando forme di memoria aggiuntive per gestire i processi di differenziazione e di intensificazione. Come accennato precedentemente, l 'intensificazione focalizza la ricerca in una regione identificata precedentemente contenente soluzioni particolarmente promettenti mentre la differenziazione guida la ricerca in nuove promettenti regioni .
lterazione 3. La parte inferiore a sinistra della Figura 11.8 riassume le decisioni assunte all'iterazione 3: • aggiungere il collegamento CD al grafo, • includere questo nuovo collegamento nella lista tabu, • eliminare il collegamento DE dal grafo. La Tabella 11 .3 indica che questa mossa porta al migliore vicino della soluzione corrente.
CAPITOLO 11
466
METAEURISTICHE
lterazione l
lterazione 2
Costo= 50 + 200 (vincoli di penalità)
Costo= 75
3Ò', Aggiungi
3Ò'' l-----~
'
'E l
40,, , , Aggiungi
Nuovo costo= 75 (ottimo locale)
'JS '
Nuovo costo = 85 (allontanamento dall'ottimo locale)
Iterazione 3
Soluzione Ottima
Costo= 85
Costo = 70
,
"''20
,
,
"' , '20
"'
@------!Q
10
A
25·
'
' '
Nuovo costo= 70 (è superato lo stato tabu)
'
'
'15
25l
40' "'
Le iterazioni successive trovano soluzioni peggiori
• Figura 11.8
Applicazione di un algoritmo Tabu Search al problema del minimo albero ricoprente mostrato in Figura 11.7 con i due vincoli aggiuntivi.
Una caratteristica interessante di questa mossa è che essa viene eseguita anche se risulta una mossa tabu. Il motivo per cui viene effettuata è che, determina una soluzione che è migliore (con un costo di 70) della migliore soluzione detetminata fino a ora (con un costo di 75). Ciò permette di non tenere in conto che si tratta di una mossa tabu (varianti di Tabu Search includono una varietà di criteri per non tenere in nessun conto dello stato di tabu).
11.2
TABU SEARCH
467
Tabella 11.3 Le opzioni per l'aggiunta di un collegamento e l'eliminazione di un altro collegamento nell'iterazione 3 Aggiungere
ungi
)
Costo
Eliminare
AB AB AB
BE* CE AC
AD AD AD
DE* CE AC
60 95 90
+ 100 = 160 + o = 95 + o = 90
CD CD
DE* CE
70 105
+ o = 70 + o = 105
--
----~------- -
--
------ - -
(Movimento tabu) 100 + o = 100 95 + o = 95
~Minimo
- - - ------
• Movimento tabu. Verrebbe considerato solo se la nuova soluzione fosse mig liore della migliore soluzione determinata fino ad ora.
Prima di iniziare la successiva iterazione è necessario apportare un' ulteriore modifica alla lista tabu: • eliminare il collegamento DE dalla lista tabu.
)
i due
;e risulta ne che è n un colrianti di ) stato di
Questo per due motivi: primo, la lista tabu è costituita da collegamenti che, normalmente, non dovrebbero essere eliminati dal grafo durante l' iterazione corrente (con l'eccezione indicata sopra), ma DE non è più nel grafo, secondo, poiché la dimensione della lista tabu è posta uguale a due e esattamente due altri collegamenti (BE e CD) sono stati aggiunti alla lista da meno tempo, il collegamento DE è comunque cancellato automaticamente dalla lista. La soluzione corrente mostrata in basso a destra nella Figura 11 .8 è, in effetti, la soluzione ottima (l'ottimo globale) per il problema. Tuttavia, l'algoritmo Tabu Search non ha modo di determinare che questa è la soluzione e pertanto deve proseguire con un'altra iterazione. L'iterazione 4 inizia con questa soluzione e con il collegamenti BE e CD nella lista tabu. Dopo avere completato questa iterazione e altre due, l'algoritmo termina poiché tre iterazioni consecutive non apportano miglioramenti al migliore valore della funzione obiettivo (che ha un costo di 70). Con un algoritmo Tabu Search ben progettato, la migliore soluzione determinata dopo che l'algoritmo ha eseguito un modesto numero di iterazioni è già una buona soluzione ammissibile. Essa potrebbe essere perfino la soluzione ottima, ma non vi è alcuna garanzia riguardo a ciò. La selezione di un criterio di arresto che permette una lunga esecuzione dell'algoritmo, incrementa la probabilità di raggiungere l'ottimo globale. Dopo la progettazione e l'applicazione di un algoritmo Tabu Search a questo esempio, si considera l'applicazione di questa procedura al problema del commesso viaggiatore presentato nel Paragrafo 11.1.
Tabu Search per il problema del commesso viaggiatore Ci sono varie analogie tra il problema di minimo albero ricoprente e il problema del commesso viaggiatore. In entrambi i casi, il problema è scegliere quale collegamento includere nella soluzione (una soluzione per un problema del commesso viaggiatore può essere descritta come la sequenza di collegamenti che il commesso viaggiatore effettua nel visitare le città). In entrambi i casi, l'obiettivo è minimizzare il costo complessivo o la distanza associata ai collegamenti che sono inclusi nella soluzione. Infine, in entrambi i casi, è disponibile una procedura di ricerca locale che consiste nell ' aggiungere ed eliminare collegamenti nella soluzione corrente in modo da ottenere una nuova soluzione.
468
CAPITOLO 11
METAEURISTICHE
Per problemi di minimo albero ricoprente, la procedura di ricerca locale descritta nel sortoparagrafo precedente si realizza con l' aggiunta e l'eliminazione di un singolo collegamento a ogni iterazione. La conispondente procedura per il problema del commesso viaggiatore descritta nel Paragrafo 11.1 consiste neli 'uso di una inversione di una sottosequenza per aggiungere ed eliminare una coppia di collegamenti a ogni iterazione. Grazie alle analogie tra questi due tipi di problemi, il progetto di un algoritmo Tabu Search per il problema del commesso viaggiatore può essere abbastanza sim ile a quello appena descritto per l'esempio relativo al problema di minimo albero ricoprente. In particolare, usando lo schema di un algoritmo base Tabu Search descritto precedentemente, alle sei domande lì poste può essere risposto come riportato di seguito in modo simile a quanto fatto precedentemente. l. Algoritmo di ricerca locale: a ogni iterazione, scegliere il migliore vicino della soluzione corrente che non è dichiarato inammissibile dal suo stato tabu . 2. Struttura dell'intorno: un vicino della soluzione corrente è una soluzione che è ottenuta mediante una inversione di una sottosequenza, come descritto nel Paragrafo l L . e illustrato in Figura 11.5 . Tale inversione richiede l'aggiunta di due collegamenti e r eliminazione di altri due collegamenti dalla soluzione con·ente (si esclude la possibi li di invertire semplicemente l'intero percorso). 3. Forma delle mosse tabu: elencare i collegamenti per i quali l'inversione di una particolare sottosequenza diventa tabu se entrambi i collegamenti cancellati in questa operazione sono sulla lista (ciò eviterà che si ritorni a una soluzione immediatamente precedente). 4. Aggiunta di una mossa tabu: a ogni iterazione, dopo la scelta dei due collegamen da aggiungere alla soluzione conente, inserire anche questi due collegamenti nella lista tabu. S. Massima dimensione della lista tabu: viene fissata uguale a quattro (due da ciascuna delle due iterazioni più recenti). Ogni qual volta una coppia di collegamenti viene aggiunta a una lista già piena, si eliminano i due collegamenti che sono all'interno della lista da più tempo. 6. Criterio di arresto: l' algoritmo termina dopo tre iterazioni consecutive senza ave: conseguito nessun miglioramento nel valore della funzione obiettivo (l ' algoritmo si arresta anche se per la soluzione conente tutti i vicini sono esclusi a causa del loro stato tabu).
Per applicare questo algoritmo all'esempio considerato (si veda la Figura 11.4), si inizia con la stessa soluzione, 1-2-3-4-5 -6-7-1, come nel Paragrafo l L L Partendo con questa soluzione iniziale, l'algoritmo di inversione di una sottosequenza (un algoritmo di miglioramento locale) porta in due iterazioni (si faccia riferimento alle Figure 11.5 e 11.6) all'ottimo locale 1-2-4-6-5-3-7-1 , in corrispondenza del quale l'algoritmo termina. A parte l'aggiunta di una lista tabu, l'algoritmo Tabu Search è identico, come riassunto di seguito.
Soluzione iniziale: 1-2-3-4-5-6-7-1 Lista Tabu: vuota.
Distanza= 69
Iterazione l: scegliere di invertire 3-4 (si veda la Figura 11 .5). Collegamenti eliminati: 2-3 e 4-5 Collegamenti aggiunti: 2-4 e 3-5 Lista tabu: collegamenti 2-4 e 3-5 Distanza = 65 Nuova soluzione: 1-2-4-3-5-6-7-1 Iterazione 2: scegliere di invertire 3-5-6 (si veda la Figura 11 .6). Collegamenti eliminati: 4-3 e 6-7 (non sono sulla lista tabu) Collegamenti aggiunti: 4-6 e 3-7 Lista Tabu: collegamenti 2-4, 3-5, 4-6 e 3-7 Nuova soluzione: 1-2-4-6-5-3-7- 1 Distanza = 64
11.2
'itta nel sotJ/o colleganesso viagna sottose-
Tuttavia, piuttosto che terminare, l'algoritmo Tabu Search ora si allontana da questo ottimo locale (indicato nella parte destra della Figura 11 .6 e nella parte sinistra della Figura 11.9) muovendosi nel migliore vicino della soluzione corrente anche se la sua lunghezza è maggiore. Tenendo conto della disponibilità limitata di collegamenti fra coppie dei nodi in Figura 11.4, la soluzione corrente ha soltanto i due vicini elencati di seguito.
1e.
ritmo Tabu ile a quello te. In parti emente, alio simile a
Inversione 6-5-3 : 1-2-4-3-5-6-7-1 Inversione 3-7: 1-2-4-6-5 -7-3 - 1
Distanza = 65 Distanza = 66
(si sta escludendo l' inversione della sottosequenza 2-4-6-5-3-7 che porta a 1-7-3-5-6-4-21 perché questo è semplicemente lo stesso cammino nella direzione opposta). Tuttavia, si deve escludere il primo di questi vicini perché richiederebbe la cancellazione dei collegamenti 4-6 e 3-7, che è vietato dato che entrambi questi collegamenti sono nella lista tabu (questa mossa potrebbe essere ancora permessa se migliorasse la migliore soluzione trovata finora, ma così non è): l'esclusione impedisce semplicemente di ritornare nuovamente alla soluzione precedente. Di conseguenza, il secondo di questi vicini viene scelto come soluzione successiva, come riassunto di seguito.
della soluche è otteLgrafo 11 .1 nenti e l'epossibilità
Iterazione 3: Scegliere di invertire 3-7 (si veda la Figura 11.9). Collegamenti cancellati: 5-3 e 7-1 Collegamenti aggiunti: 5-7 e 3-1 Lista tabu: 4-6, 3-7, 5-7 e 3-1 (2-4 e 3-5 ora sono eliminati dalla lista).
una partioperamte prece~sta
Nuova soluzione: 1-2-4-6-5-7-3-1
llegamenti nella lista
Distanza= 66
La sottosequenza che viene invertita in questa iterazione si vede in Figura 11.9, in cui le linee tratteggiate mostrano i collegamenti appena eliminati (a sinistra) e aggiunti (a destra) per ottenere la nuova soluzione. Si noti che uno dei collegamenti cancellati è 5-3 anche se questo era sulla lista tabu alla fine dell'iterazione 2. Ciò è possibile dato che una inversione di una sottosequenza è tabu solo se entrambi i collegamenti cancellati si trovano nella lista tabu. Si noti inoltre che nella lista tabu aggiornata alla fine dell ' iterazione 3 sono stati eliminati i due collegamenti presenti nella lista da più tempo (quelli aggiunti ali 'iterazione l) dato che la massima dimensione della lista tabu è fissata a quattro. La nuova soluzione corrente ha i quattro vicini elencati di seguito.
ciascuna viene agerno della
1
enza aver tmo si arloro stato ', si inizia :juesta somigliorai) ali ' otti'arte l' ag5Uito.
469
TABU SEARCH
Inversione 2-4-6-5-7 : 1-7-5-6-4-2-3-1 Inversione 6-5: 1-2-4-5-6-7-3- 1
Distanza = 65 Distanza = 69
• Figura 11.9 Inversione della sottosequenza 3-7 nell'iterazione 3 che porta dalla soluzione a sinistra alla nuova soluzione a destra.
12
12
IO
)o
(] Distanza = 64
i? '
9
GfDi~anza
= 66
9 l
7
7
470
CAPITOLO 11
METAEURISTICHE
Inversione 5-7: 1-2-4-6-5-7-3-1 Inversione 7-3: 1-2-4-6-5-3-7-1
Distanza = 63 Distanza = 64
Tuttavia, il secondo di questi vicini è tabu perché entrambi i collegamenti eliminati (4-6 e 5-7) si trovano nella lista tabu. Anche il quarto vicino (che è la soluzione precedente) è tabu per lo stesso motivo. Così, le uniche opzioni disponibili sono il primo e il terzo vicino. Dato che questo ultimo ha lunghezza minore, esso diventa la successiva soluzione, come riassunto di seguito.
Iterazione 4: scegliere di invertire 5-7 (si veda la Figura 11.1 0). Collegamenti eliminati: 6-5 e 7-3 Collegamenti aggiunti: 6-7 e 5-3 Lista tabu: 5-7,3-1 ,6-7 e 5-3 (4-6 e 3-7 sono adesso eliminati dalla lista). Nuova soluzione: 1-2-4-6-7-5-3-1
Distanza= 63
La Figura 11.10 mostra l' inversione di questa sottosequenza. La nuova soluzione ha una distanza pari a 63, che è minore di qualsiasi soluzione precedente. In effetti, questa nuova soluzione sembra essere la soluzione ottima. Tuttavia l'algoritmo Tabu Search non tem1ina. L'unico vicino della soluzione corrente è la soluzione ottenuta nella precedente iterazione. Ciò richiederebbe la cancellazione dei collegamenti 6-7 e 5-3, che sono entrambi nella lista tabu (per evitare di ritornare nuovamente alla soluzione precedente). Poiché non vi sono altri vicini, il criterio di arresto è soddisfatto e l'algoritmo termina con 1-2-4-6-7-5-3-1 (la migliore delle soluzioni) come soluzione finale. Anche se questo non è garantito, in questo caso si è ottenuta la soluzion ottima del problema. Questo particolare algoritmo è solo un esempio di un possibile algoritmo Tabu Search per il problema del commesso viaggiatore e vari dettagli potrebbero essere modificati e in un parecchi modi. Per esempio, tipicamente l'algoritmo non termina quando tutte le mosse disponibile sono proibite a causa della loro condizione tabu, ma invece seleziona proprio la " minima mossa tabu". Un 'ulteriore importante caratteristica del metodo generale Tabu Search include l'uso di più intomi. L'elemento aggiuntivo più significativo è adoperare strategie di intensificazione e diversificazione, come accennato prima. In generale però i punti principali di un approccio di Tabu Search a " memoria corta" sono esattamente quelli illustrati in precedenza.
• Figura 11.10 Inversione dell a sottoseq uenza 5-7 nel l'iterazione 4 che porta dalla soluzione a sinistra alla nuova soluzione a destra (che sem bra la so luzione ottima).
12
12
l
IO
____-G)
~ . Distanza = 66
:
•
~
l ~0, 3 cv--.. '0 Distanza = 63
9' 9
G5
11.3
SIMULATED ANNEALING
471
Entrambi gli esempi considerati in questo paragrafo rientrano nella categoria dei problemi di ottimizzazione combinatoria su grafo. Questa è un'area di applicazione particolarmente comune per gli algoritmi Tabu Search. Il profilo generale di questi algoritmi ingloba i principi presentati in questo paragrafo, mentre i dettagli dipendono dalla struttura dei problemi considerati.
1ati (4-6 e ente) è tazo vicino. me, come
11.3
SIMULATED ANNEALING Simulated Annealing è un ' altra metaeuristica ampiamente usata e che permette al procedimento di ricerca di allontanarsi da un ottimo locale. Per meglio confrontare questa metaeuristica con la tecnica Tabu Search, la si applicherà allo stesso problema del commesso viaggiatore prima di riconsiderare l'esempio di programmazione nonlineare descritto nel Paragrafo 11.1. Ma prima, si esamineranno i concetti base di questa metaeuristica.
1e ha una sta nuova :corrente zione dei ~e nuovaarresto è ni) come ;oluzione 'u Search 'icati e in ~le mosiona progenerale è adopeerale pe.ttamente
ra (che
l IO
Concetti di base Con riferimento alla Figura 11.1 è stato descritto il concetto che la ricerca di un ottimo globale per un problema complesso di massimizzazione è simile al problema di determinare quale fra un certo numero di colline fosse la più alta, e quindi scalare la cima di questa par1icolare collina. Sfortunatamente, un procedimento matematico di ricerca non può beneficiare della vista che gli permetterebbe di individuare la collina più alta; è come fare un 'escursione in una densa nebbia in cui il solo indizio disponibile è che, muovendosi lungo una certa direzione, si sale o si scende. Un approccio, adottato dalla procedura Tabu Search, è quello di scalare la collina muovendosi lungo la direzione più ripida finché si raggiunge la cima e poi riscendere a valle per cercare un'altra collina da scalare. Lo svantaggio di questo approccio è che si spende molto tempo (in tennini di iterazioni) per scalare ogni collina che si incontra piuttosto che andare alla ricerca della collina più alta. Di contro, l'approccio usato in Simulated Annealing è quello di porre l' attenzione soprattutto sulla ricerca della collina più alta. Poiché la collina più alta potrebbe essere ovunque nella regione ammissibile, per prima cosa si effettuano passi in direzioni casuali (tranne per qualche direzione che viene esclusa a priori in quanto porta verso il basso piuttosto che verso l' alto) allo scopo di esplorare quanto più possibile la regione ammissibile. Poiché la maggior parte dei passi arrunessi sono verso l'alto, la ricerca a poco a poco si concentrerà verso quelle direzioni che portano verso l'alto, escludendo (parzialmente) quelle che vanno verso il basso. Se si ha a disposizione sufficiente tempo, il processo spesso sarà in grado di scalare e raggiungere la cima della collina più alta. In particolare, ogni iterazione della procedura di ricerca nella metaeuristica Simulated Annealing si muove dall'attuale punto verso un nuovo punto in un intorno di quello corrente così come avviene per la tecnica Tabu Search. La differenza consiste nella modalità di selezione del nuovo punto vicino. Sia
Zc = il valore della funzione obiettivo per l'attuale punto, Zn = il valore della funzione obiettivo per l'attuale nuovo punto candidato, T = un parametro che misura la tendenza ad accettare l 'attuale candidato come successivo punto qualora questo non sia migliore del punto corrente.
La regola per la selezione di quale fra i punti in un intorno sarà scelto come punto successivo è la seguente.
Regola per la selezione della mossa: nell'intorno del punto corrente, si seleziona in maniera casuale un candidato. Ipotizzando che l'obiettivo sia quello di massimizzare la funzione obiettivo, si accetterà o si rifiuterà questo candidato secondo la regola seguente:
472
CAPITOlO 11
METAEURISTICHE
se Zn 2: Zc, si accetta il candidato. se Z11
< Zc, si accetta il candidato con la seguente probabilità:
. } = e' m . cm. x = Z11 T Zc p ro b{ accettaziOne (se l'obiettivo è quello di minimizzare, invece, si invertono Z e Zc nelle formule precedenti). Se il candidato viene rifiutato, si ripete questa procedura per un nuovo punto candidato che viene ancora una volta selezionato in maniera casuale (l'algoritmo termina se non vi sono altri candidati). 11
Pertanto, se il candidato considerato è migliore del corrente, esso viene sempre accettato e diventa il punto successivo. Se è peggiore, la probabilità di accettazione dipende da quanto peggiore esso sia (e da T). La Tabella 11.4 mostra un campione di valori di probabilità. da una probabilità molto alta quando il candidato è solo leggermente peggiore (relativamente a T) del punto corrente a una probabilità estremamente bassa quando è molto peggiore. Tabella 11.4 Alcuni valori della probabilità per cui la regola di selezione accetterà una mossa di discesa (quando l'obiettivo è la massimizzazione) Zn- Zc T
X=
-
0.01 0.1 0.25 0.5 1
-2 -3 -4 -5
Prob{accettazione} = e" 0.990 0.905 0.779 0.607 0.368 0.135 0.050 0.018 0.007
In altre parole, la regola per la selezione accetta una mossa che è solo leggermente di discesa, ma raramente accetterà un passo che comporta un significativo peggioramento. Partendo da un valore relativamente grande di T si avrà all'inizio una probabilità relativamente alta di accettazione di mosse di discesa, cosa che pennette alla procedura di proseguire in direzioni casuali. La diminuizione graduale del valore di T, farà sì che diminuirà gradualmente la probabilità di accettazione delle mosse di discesa, e quindi aumenterà l'enfasi sulle direzioni di ascesa. Quindi, la scelta dei valori di T controlla il grado di casualità nel processo di accettazione di passi di discesa. Questa componente casuale, che non è presente in Tabu Search, conferisce a questo algoritmo molta flessibilità nel muoversi verso zone diverse della regione ammissibile con la speranza di determinare una soluzione migliore. Il metodo classico per implementare la regola di selezione della mossa, per determinare se un dato passo può essere accettato, è quello di paragonare un numero casuale tra O e l alla probabilità di accettazione. Si può pensare a tale numero casuale come a un'osservazione casuale di una distribuzione uniforme tra O e l. Ci sono diversi metodi per generare numeri casuali; la funzione Excel CASUALEO genera tali numeri. Se numero casuale < Prob{ accettazione}, allora si accetta un passo di discesa. Altrimenti, non lo si accetta. Perché Simulated Annealing usa questa particolare formula per Prob{ accettazione} nella regola di selezione della mossa? Il motivo è che questo metodo si basa su una analogia col processo fisico del raffreddamento. Il processo prevede la fusione di un metallo o ve-
11.3
rmule 1UOVO
'al go-
:cettato e da quan>babilità, peggwre 1uando è
.te di di·amento. relativali proseiminuirà menterà lo di catale, che te! muouna so-
:nninare traOe l osservasenerare
e} nella malogia lo o ve-
SIMULATED ANNEALING
473
tro ad altissima temperatura e quindi il successivo lento raffreddamento finché si raggiunge uno stato stabile di bassa energia con le proprietà fisiche desiderate. A ogni temperatura T durante questo processo, il livello di energia degli atomi nella sostanza è fluttuante ma tende a diminuire. Un modello matematico di come il livello di energia fluttua ipotizza che i cambiamenti si verificano in maniera casuale ma solo alcuni incrementi vengono accettati. In particolare, la probabilità di accettazione di un incremento quando la temperatura è T ha la stessa forma proposta nella regola della selezione della mossa. L'analogia con un problema di ottimizzazione nella forma di minimizzazione è che il livello di energia nello stato attuale del sistema corrisponde al valore della funzione obiettivo per l'attuale soluzione del problema. L'obiettivo di far raggiungere alla sostanza uno stato stabile con un livello di energia quanto più piccolo possibile corrisponde a raggiungere una soluzione ammissibile il cui valore della funzione obiettivo sia il più piccolo possibile. Come per il processo di raffreddamento fisico, un punto chiave nella progettazione e di un algoritmo Simulated Annealing per un problema di ottimizzazione è quello di selezionare un' opportuna schedulazione della temperatura da usare (in virtù dell'analogia con il raffreddamento fisico, ci si riferirà a T come alla temperatura). Per questa schedulazione occorre specificare un valore iniziale per T, relativamente grande, e i successivi valori sempre minori. Occorre anche specificare quanti passi (iterazioni) devono essere eseguiti per ogni valore di T. La scelta dei parametri che si adattino bene al problema in esame è un fattore chiave per l'efficacia dell'algoritmo. Verrà specificata più avanti una particolare schedulazione della temperatura che sembra opportuna per i due esempi presi in considerazione in questo paragrafo, ma ne possono essere considerate molte altre diverse. Con queste premesse, è possibile dare una descrizione più specifica dell'algoritmo Simulated Annealing.
Descrizione di un algoritmo Simulated Annealing lnizializzazione.
Si inizi con un punto iniziale ammissibile.
lterazione. Si usi la regola di selezione della mossa per scegliere il punto successivo (se non viene accettato nessuno dei punti vicini, l'algoritmo termina). Controllo della temperatura. Quando è stato effettuato il numero desiderato di iterazioni per il corrente valore di T, si diminuisca T al successivo valore e si ricominci con questo nuovo valore. Criterio di arresto. Quando è stato effettuato il numero di iterazioni desiderato per il valore più piccolo della temperatura T (o quando nessun punto nell'interno corrente è accettato), l'algoritmo termina. La soluzione finale è il migliore punto ottenuto in una delle iterazioni eseguite (comprese quelle effettuate per valori elevati di 1).
Prima di applicare questo algoritmo a uno specifico problema, occorre specificare un numero di dettagli che dipendono dalla tipologia del problema. l. Come scegliere il punto iniziale? 2. Qual è la struttura di intorno che specifica quali punti sono vicini (raggiungibili in una singola mossa)? 3. Quale meccanismo usare nella regola di selezione della mossa per scegliere in maniera casuale uno dei punti ne Il ' intorno del punto corrente come corrente candidato come punto successivo? 4. Qual è la schedulazione più significativa della temperatura?
Verrà ora illustrato come rispondere a queste domande nel caso di due particolari probleIru.
474
CAPITOLO 11
METAEURISTICHE
Simulated Annealing per il problema del commesso viaggiatore Si riprenderà ora il problema del commesso viaggiatore che descritto nel Paragrafo 11. 1 e illustrato nella Figura 11.4 e si mostrerà un modo di rispondere ai quattro quesiti posti p n ma. l. Punto iniziale: si può scegliere come punto iniziale una qualsiasi soluzione ammissibile generando la sequenza in maniera casuale, ma è più utile scegliere una sequenza che sembra già una buona soluzione ammissibile. Per esempio, la soluzione ammissibile 12-3-4-5-6-7-1 potrebbe essere una scelta ragionevole. 2. Struttura dell'intorno: un vicino del punto con·ente è un nuovo punto che viene raggiunto mediante una inversione di una sottosequenza come descritto nel Paragrafo l l. l e illustrato in Figura 11.5 (è esclusa la semplice inversione dell ' intera sequenza). 3. Selezione casuale di un vicino: la selezione di una sottosequenza da invettire richiede la selezione di una posizione nella corrente sequenza in cui la sottosequenza inizia e una posizione in cui la sottosequenza termina. La posizione iniziale può essere ovunque tranne che nella prima e ultima posizione (riservati per la città di partenza) e nella penultima. La posizione finale deve essere successiva alla posizione iniziale, e non può essere l'ultima posizione (non è ammesso inoltre scegliere la seconda posizione come iniziale e la penultima come finale, poiché ciò significherebbe semplicemente invertire l'intera sequenza). Come verrà illustrato nel seguito, vengono usati numeri casuali per dare uguali probabilità di selezione a ogni aspirante posizione ini ziale e finale . Se si verifica che questa selezione delle posizioni iniziale e finale non è ammissibile (poiché i collegamenti che servono per completare la sequenza non sono disponibili), questo processo viene ripetuto finché viene ottenuta una selezione ammissibile. 4. Schedulazione della temperatura: vengono effettuate cinque iterazioni per ognuno dei cinque valori di T (T 1, T2 , T3 , T4, T5 ) con
T1 = 0.2Zc dove Zc è il valore della fun zione obiettivo per il punto iniziale, T2 = 0.5T~o T3 = 0.5Tz, T4 = 0.5T3, T5 = 0.5h Questa particolare schedulazione della temperatura è solo una di quelle possibili. Scegliere T 1 = 0.2Zc è ragionevole poiché T 1 tende a essere molto più grande paragonato ai valori tipici di lZ11 - Zc l, cosa che incoraggerà una ricerca quasi casuale nella regione ammissibile per scoprire dove dovrebbe concentrarsi successivamente la ricerca. Comunque, quando il valore di T si riduce a T5 , non verrà accettata quasi nessuna mossa che non porta un miglioramento, e quindi l'enfasi ricadrà sul miglioramento del valore della funzione obiettivo. Quando si ha a che fare con problemi di grandi dimensioni, occorrono probabilmente più di cinque iterazioni per un fissato valore di T. Inoltre, i valori di T vanno ridotti molto più lentamente rispetto alla schedulazione appena definita. Ci si concentrerà ora su come viene effettuata la selezione casuale del vicino. Si supponga che la soluzione iniziale sia 1-2-3-4-5-6-7 - l. Soluzione iniziale: 1-2-3-4-5-6-7-1
Zc = 69
T 1 = 0.2Zc = 13.8
La sottosequenza che ven·à invertita può cominciare ovunque tra la seconda posizione (attualmente la città 2) e la sesta posizione (attualmente la città 6). A queste cinque posizioni possono essere assegnate le stesse probabilità dando a ciascuna di queste un intervallo di valori come indicato di seguito. 0.0000-0.1999: la sottosequenza inizia nella posizione 2. 0.2000-0.3999: la sottosequenza inizia nella posizione 3.
11.3
:tfo l !.l :iti posti
475
SIMULATED ANNEALING
0.4000-0.5999: la sottosequenza inizia nella posizione 4. 0.6000-0.7999: la sottosequenza inizia nella posizione 5. 0.8000-0.9999: la sottosequenza inizia nella posizione 6. Si supponga che venga generato il numero 0.2779.
missibi:nza che sibile 1~ne rag:tragrafo .enza). ~ richie:a inizia > essere tenza) e iziale, e 1a posimplice!Sati nuiniziale n è am:ono dirmnissi-
0.2779: si sceglie una sottosequenza che comincia nel punto 3. Iniziando nel punto 3, la sottosequenza da invertire deve terminare tra le posizioni 4 e 7. A queste quattro posizioni sono assegnate le stesse probabilità tramite la seguente corrispondenza con un intervallo di valori 0.0000-0.2499: 0.2500-0.4999: 0.5000-0.7499: 0.7500-0.9999:
la sottosequenza tennina nella posizione 4 . la sottosequenza tennina nella posizione 5. la sottosequenza termina nella posizione 6. la sottosequenza termina nella posizione 7.
Supponendo che ora il numero generato sia 0.0461 si ha 0.0461: si sceglie di terminare la sottosequenza nella posizione 4. Poiché i punti 3 e 4 attualmente indicano che le città 3 e 4 sono la terza e la quarta città visitata nella sequenza, verrà invertita la sottosequenza costituito dalle città 3-4. Si inverta 3-4 (si veda la Figura 11.5): 1-2-4-3-5-6-7-1 Questo diventa il nuovo punto candidato. Poiché
Zn = 65 < Zc = 69
ognuno
)Ssibili. 1gonato regione ricerca. 1 mossa . valore
ilmente i molto
Z11 = 65
esso è migliore del corrente punto (bisogna ricordare che l'obiettivo qui è minimizzare la distanza totale del tour) e quindi questo candidato viene automaticamente accettato come punto successivo. La scelta della sottosequenza da invertire è stata fortunata perché ha portato a una so luzione ammissibile. Ma ciò non sempre accade; per esempio, se si fosse scelta la sottosequenza 2-3 -4-5 così da ottenere la sequenza 1-5-4-3 -2-6-7-1, questa non sarebbe stata una soluzione ammissibile poiché non ci sono connessioni tra le città l e 5 come pure tra le città 2 e 6. Quando ciò accade, occorre generare nuove sequenze di numeri casuali finché si ottiene una soluzione ammissibile (può essere escogitata una procedura più sofisticata allo scopo di generare numeri casuali solo per i collegamenti esistenti). Per illustrare un caso in cui l'attuale candidato come prossimo punto è peggiore di quello corrente, si supponga che alla seconda iterazione venga scelta l'inversione della sottosequenza 3-5-6 (come in Figura 11.6) per ottenere 1-2-4-6-5-3-7-1 , che ha distanza totale pari a 64. Si supponga poi che alla terza iterazione si scelga 3-7 (come in Figura 11.9) per ottenere 1-2-4-6-5-7-3-1 (che ha una distanza totale pari a 66) come punto candidato. Poiché 1-2-4-6-5-3-7-1 (con una distanza totale di 64) è il punto corrente all'iterazione 3, ora si ha
Si sup-
sizione te posilterval-
Zc = 64
Z = 66 11
T, = 13.8
Pertanto, poiché l'obiettivo è la minimizzazione della funzione obiettivo, la probabi lità di accettare 1-2-4-6-5-7-3-1 come successivo punto è Prob {accettazione} =
e(Z,-Z,)JT,
= e-2/ 13.8
= 0.865 Se il successivo numero casuale generato è inferiore a 0.865, questo candidato verrà accettato. Altrimenti, ven·à scartato.
476
CAPITOLO 11
METAEURISTICHE
La Tabella 11.5 mostra i risultati che si ottengono applicando l'algoritmo Simulated Annealing a questo problema. Si noti che alle iterazioni 14 e 16 è stata ottenuta la soluzione migliore 1-3-5-7-6-4-2-1 (che quindi sarà la soluzione ottima insieme alla sequenza equivalente nella direzione opposta, 1-2-4-6-7-5-3-1) e finale . Data la casualità inserita nell 'algoritmo, la sequenza di punti generati sarà di volta in volta differente. A causa di questa caratteristica, l'algoritmo Simulated Annealing viene solitamente applicato più volte allo stesso problema per aumentare la probabilità di successo. È possibile anche usare un punto iniziale differente a ogni ripetizione dell'algoritmo per favorire un'esplorazione più completa dell ' intera regione ammissibile. Prima di passare al prossimo esempio, verrà mostrato come le caratteristiche avanzate di Tabu Search possano essere combinate in maniera opportuna con Simulated Annealing. Un modo è quello di applicare la caratteristica dell 'oscillazione strategica di Tabu Search alla schedulazione della temperatura per Simulated Annealing. L'oscillazione strategica modifica la schedulazione della temperatura diminuendo le temperature più rapidamente ma anche facendole crescere e decrescere strategicamente. Alternativamente si può prevedere l'applicazione delle strategie legate alla lista di candidati nella metaeuristica Tabu Search alla regola di selezione della mossa per Simulated Annealing. L'idea è quella di scandagliare più punti vicini per vetificare se è possibile determinare una mossa migliore prima di applicare la regola casuale di accettazione o rifiuto del candidato attuale. A volte queste modifiche hanno prodotto risultati significativi. Come suggeriscono queste idee per l'applicazione delle caratteristiche di Tabu Search a Simulated Annealing, un algoritmo ibrido che combina le idee di differenti metaeuristiche può a volte dare risultati migliori di un algoritmo che si basa unicamente su una singola metaeuristica. Sebbene in questo capitolo sono state presentate in modo separato le tre metaeuristiche più usate, a volte chi fa uso di questi algoritmi in modo intelligente è solito scegliere tra le varie idee delle differenti metaeuristiche per progettare i propri algoritmi. Tabella 11.5 Un'applicazione dell'algoritmo Simulated Annealing al problema del commesso viaggiatore
lterazlone
T
Soluzione
13.8 13.8 13.8 13.8 13.8 6.9 6.9 6.9 6.9 6.9 3.45 3.45 3.45 3.45 3.45 1.725 1.725 1.725 1.725 1.725 0.8625 0.8625 0.8625 0.8625 0.8625
1-2-3-4-5-6-7-1 1-3-2-4-5-6-7-1 1-2-3-4-5-6-7-1 1-3-2-4-5-6-7-1 1-3-2-4-6-5-7-1 1-2-3-4-6-5-7-1 1-2-3-4-5-6-7-1 1-3-2-4-5-6-7-1 1-2-3-4-5-6-7 -l 1-2-3-5-4-6-7 -l 1-2-3-4-5-6-7 -l 1-2-3-4-6-5-7-1 1-3-2-4-6-5-7-1 1-3-7-5-6-4-2-1 1-3-5-7-6-4-2-1 1-3-7-5-6-4-2-1 1-3-5-7-6-4-2-1 1-3-7-5-6-4-2-1 1-3-2-4-6-5-7-1 1-2-3-4-6-5-7-1 1-3-2-4-6-5-7-1 1-3-7-5-6-4 -2-1 1-3-2-4-6-5-7-1 1-2-3-4-6-5-7-1 1-3-2-4-6-5-7-1 1-3-7-5-6-4-2-1
o l 2 3 4 5 6 7 8 9 lO 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Lunghezza 69 68 69 68 65 66 69 68 69 65 69 66 65 66 63 r- Minimo 66 63 r- Minimo 66 65 66 65 66 65 66 65 66
11.3
nulated :oluzio:quenza inserita ausa di )iÙ voie usare razione tzate di .ealing. Search ategica unente prevel Tabu tella di igliore \. volte Search :uristisillgo'le tre solito itmi .
a
477
SIMULATED ANNEALING
Simulated Annealing per un problema di programmazione nonlineare Si riconsideri ora il problema di programmazione nonlineare (in una sola variabile) che è stato descritto nel Paragrafo 11 .1. Il problema è massimizzare
f (x) = 12x5
975x4
-
+ 28 000x3 -
345 000x 2
+l
800 OOOx
soggetto ai vincoli
o:::: x:::: 31 Il grafico della funzione f (x ) in Figura 11.1 rivela che ci sono ottimi locali per x = 5, x = 20 e x = 31 , ma solo x = 20 è un ottimo globale . Questo è un caso particolare del più generale problema di programmazione non lineare massJmizzare
f (x 1,
• • •
, x,)
soggetto ai vincoli
L;:::: X; ::::
U;
per)= l , ... , n
dove L1 e U1 sono costanti (L1 < U1). Avere limiti relativamente stringenti su ciascuna variabile è una caratteristica altamente desiderabile per l'efficienza di un algoritmo Simulated Annealing, come pure per gli Algoritmi Genetici che saranno discussi nel paragrafo successivo. Uno o due vincoli funzionali possono anche essere presenti quando la dimensione del problema è 2. Nell ' esempio considerato si ha
L1 = 0
n= l
U 1 =31
con nessuno vincolo funzionale. Per questo problema, le seguenti scelte caratterizzano l'algoritmo Simulated Annealing.
l. Punto iniziale: si può scegliere come punto iniziale una qualsiasi soluzione ammissibile, ma è consigliabile scegliere un punto che è già una buona soluzione ammissibile. In assenza di un qualsiasi indizio su dove si possa detenninare una buona soluzione ammissibile, è ragionevole posizionare ogni variabile x1 a metà strada tra il suo limite inferiore L1 e il suo limite superiore U; così da iniziare la ricerca al centro della regione ammissibile (per tale motivo, x = 15.5 è stato scelto come soluzione iniziale per l'esempio in questione). 2. Struttura dell'intorno: ogni soluzione ammissibile è considerata un vicino dell'attuale soluzione. Comunque, il metodo descritto successivamente per selezionare un vicino come candidato per il successivo punto dà la preferenza a soluzioni ammissibili che sono relativamente vicine all'attuale soluzione, dando comunque la possibilità di spostamenti verso parti differenti della regione ammissibile. 3. Selezione casuale di un vicino: si fissi aj =
U; -
limo
Quindi, dato l'attuale punto (x 1,
1imo
si pongax1 = x1 + N(O, a1)
LJ
. per} = l '
r
••• , X 11 )
o
o
o
'
n
,
per)= l , .. . , n
dove N(O , a1) è un valore casuale ottenuto da una distribuzione normale avente media zero e deviazione standard a1. Se questa non è una soluzione ammissibile, si ripeta questo processo (partendo di nuovo dall ' attuale soluzione) tante volte fino a quando si ottiene una soluzione anunissibile. 4. Schedulazione della temperatura: come per il problema del commesso viaggiatore, vengono effettuate cinque iterazioni per ognuno dei cinque valori di T (T 1, T2 , T3 , T4 , T5 ) a turno, e
478
CAPITOLO 11
METAEURISTICHE
TI = 0.2Zc dove Zc è il valore della funzione obiettivo per la soluzione iniziale,
T2 = o . 5T~. T3 = 0.5h T4 = 0.5T3, T5 = 0.5T4. La ragione per porre u1 = ( ~ - L1) / 6 nella selezione di un punto vicino è che quando la variabile x1 si trova a metà tra L1 e ~. ogni nuovo valore ammissibile della variabile si trova all'interno di tre deviazioni standard dal valore attuale. Ciò comporta una alta probabilità che il nuovo valore si muova verso uno dei suoi limiti anche se è molto più alta la probabilità che il nuovo valore sarà relativamente vicino al valore attuale. Ci sono diversi metodi per generare un valore casuale N( O, u1) da una distribuzione normale; la funzione Excel, INV.NORM(CASUALE(),O,u1), genera un tale valore casuale. Per illustrare come questo algoritmo può essere applicato all'esempio in questione, si scelga come punto iniziale x = 15.5. Pertanto,
Zc = / (15 .5) = 3741121
e
TI = 0.2Zc = 748224
Poiché
U - L 31 u -- - 6- -
o=
5.167
il passo successivo sarà quello di generare un valore N(O , 5.167) da una distribuzione normale avente media zero e questa deviazione standard. Si supponga che questo valore sia - 7.5. L' attuale candidato viene quindi ottenuto ponendo
x = 15.5 + N( O, 5.167) = 15.5-7.5 = 8 Tabella 11.6 Un'applicazione dell'algoritmo Simulated Annealing a un problema di programmazione nonlineare lterazione
T
Soluzione
748 224 748 224 748 224 748 224 748 224 374 112 374 112 374112 374 112 374112 187 056 187 056 187 056 187 056 187 056 93 528 93 528 93 528 93 528 93 528 46 764 46 764 46 764 46 764 46 764
x = 15.5 x = 17.557 x = 14.832 x= 17.681 x = 16.662 x= 18.444 x= 19.445 x= 21.437 x = 18.642 x= 22.432 x= 21.081 x= 20.383 x= 21.216 x = 21.354 x = 20.795 x= 18.895 x = 21.714 x= l9.463 x = 20.389 x = 19.83 x = 20.68 x = 20.031 x = 20.184 x= 19.9 x = 19.677 x= 19.377
o l 2
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
f(x) 3741121.0 4 167 533.956 3 590 466.203 4188641.364 3 995 966.078 4 299 788.258 4 386 985.033 4 302 136.329 4 322 687.873 4 113 901.493 4 345 233.403 4 393 306.255 4 330 358.125 4 313 392.276 4 370 624.01 4 348 060.727 4 259 787.734 4 387 360.1 4 393 076.988 4 398 710.575 4 378 591.085 4 399 955 .913 r Massimo 4 398 462.299 4 399 551.462 4 395 385.618 4 383 048.039
11.4
479
ALGORITMI GENETICI
cosicché
zia le,
Zn = f(x) = 3055616 Poiché
Z11
748224
0 916
la probabilità di accettare x = 8 come punto successivo è Prob{accettazione} = e20 ·9 16 = 0.400 Pertanto, x= 8 verrà accettato solo se il successivo numero casuale generato (tra O e 1), è inferiore a 0.400. Quindi, x = 8 ha una alta probabilità di essere scartato (in una successiva iterazione quando T è molto più piccolo, la scelta x = 8 sarà quasi sicuramente respinta). Questa è una scelta fortunata poiché la Figura 11.1 rivela che la ricerca dovrebbe concentrarsi sulla porzione della regione ammissibile tra x = l O e x = 30. La Tabella 11.6 riporta i risultati ottenuti applicando l ' algoritmo Simulated Annealing a questo problema di programmazione nonlineare. Si noti come i punti variano notevolmente nella regione ammissibile durante le prime iterazioni, ma poi iniziano a concentrarsi ne li 'area vicino alla soluzione ottima in modo molto più netto durante le iterazioni successive quando T è sufficientemente piccolo. La migliore soluzione x = 20.031 viene ottenuta alla venhmesima delle 25 iterazioni totali considerate. La soluzione ottima reale è x = 20.
te, si scel-
:wne norvalore sia
11.4
1assimo
Zc = 3 055 616 - 3 741 121 = _ _
T
quando la ariabile si a alta proto più alta :i sono dide; la fun-
·blema
-
ALGORITMI GENETICI Gli algoritmi genetici fomiscono un terzo tipo di metaeuristica che differisce alquanto dai primi due tipi. Questa metodologia tende a essere particolarmente efficace nell ' esplorazione varie porzioni della regione ammissibile e nell'evolvere gradualmente verso le migliori soluzioni ammissibili. Dopo l'introduzione dei concetti fondamentali per questo tipo di metaeuristica, verrà applicato un algoritmo genetico allo stesso esempio di programmazione nonlineare appena considerato con in più il vincolo che la variabile deve assumere valori interi. Quindi lo stesso approccio sarà applicato allo stesso problema del commesso viaggiatore considerato nei paragrafi precedenti.
Concetti di base Proprio come Simulated Annealing è basato su un' analogia con un fenomeno naturale, gli algoritmi genetici risultano influenzati da un'altra forma di fenomeno naturale . In questo caso, l'analogia riguarda la teoria dell 'evoluzione biologica formulata da Charles Darwin nella metà del XIX secolo. Ogni specie di piante e di animali è caratterizzata da una grande variabilità. Darwin osservò che gli individui che più si adattano alle variazioni dell'ambiente hanno più probabilità di sopravvivere nella generazione successiva. Il campo della genetica modema fomisce una ulteriore spiegazione di questo processo di evoluzione e della relativa selezione naturale. In qualsiasi specie che si riproduce attraverso la riproduzione sessuale, la prole eredita alcuni dei cromosomi da ciascuno dei due genitori e i geni all ' intemo dei cromosomi determinano le diverse caratteristiche. Un figlio che eredita le caratteristiche migliori dei genitori ha una maggiore probabilità di sopravvivere e raggiungere l'età adulta e diventare a sua volta un genitore e trasferire parte delle sue caratteristiche alla generazione successiva. Grazie a questo processo, la popolazione tende a migliorare lentamente col tempo. Un secondo fattore che contribuisce a questo processo è una mutazione casuale, percentualmente piccola, nel DNA dei cromosomi. Così, capita occasionalmente che una mutazione modifichi le caratteristiche che un figlio eredita dal genitore. Anche se la maggior parte delle mutazioni non hanno alcun effetto e
480
CAPITOLO 11
METAEURISTICHE
non sono dannose, alcune mutazioni portano a miglioramenti. I figli con mutazioni desiderabili hanno maggiore probabilità di sopravvivere e contribuire al futuro pool genetico della specie. Il trasferimento di questi concetti nel campo dei problemi dell'ottimizzazione avviene in un modo piuttosto naturale. Le soluzioni ammissibili per un particolare problema corrispondono ai membri di una particolare specie, in cui l' idoneità (fitness) di ogni individuo viene adesso misurata dal valore della funzione obiettivo. Piuttosto che considerare una singola soluzione alla volta (come avviene per Tabu Search e Simulated Annealing), adesso si opera con un'intera popolazione di soluzioni. 1 A ogni iterazione (generazione) di un algoritmo genetico, la popolazione corrente consiste dell'insieme delle soluzioni attualmente considerate. Queste soluzioni sono gli individui attualmente in vita della specie. Alcuni individui (e soprattutto i migliori) sopravvivono fino all'età adulta e diventano genitori e hanno figli (nuove soluzioni) che condividono alcune delle caratteristiche (geni) di entrambi i loro genitori. Dato che i migliori individui della popolazione hanno più probabilità di diventare genitori rispetto ad altri, un algoritn1o genetico tende a generare p opolazioni di soluzioni via via migliori. Occasionalmente si verificano mutazioni cosicché alcuni figli possono acquisire caratteristiche (a volte desiderabili) che non sono possedute dai genitori. Questo pennette a un algoritmo genetico di esplorare una nuova, forse migliore, parte della regione ammissibile rispetto a quella considerata precedentemente. Infine, la sopravvivenza dei migliori dovrebbe condurre un algoritmo genetico verso una soluzione (la migliore di tutte quelle considerate) che è quasi ottima. Anche se l'analogia con il processo di evoluzione biologica definisce il cuore di qualsiasi algoritmo genetico, non è necessario attenersi rigidamente a questa analogia. Per esempio, alcuni algoritmi genetici (compreso quello descritto di seguito) permettono alla stessa soluzione di essere un genitore per più generazioni (iterazioni). In questo modo, l'analogia è necessaria solo in partenza e non nella definizione dei dettagli dell 'algoritmo che meglio si adatta al problema in esame. Qui viene presentato il profilo di un tipico algoritmo genetico che ven·à impiegato nei due esempi che verranno poi considerati.
Sommario di un algoritmo genetico lnizializzazione. Si scelga una popolazione iniziale costituita da soluzioni ammissibili, generate in maniera casuale. Valutare la qualità (il valore della funzione obiettivo) per ogni individuo di questa popolazione. Generica iterazione. Usare un processo casuale che privilegi gli individui migliori della popolazione corrente per selezionare alcuni di questi (in numero pari) che diventeranno genitori. Selezionare i gen itori in maniera casuale e consentire che ogni coppia generi due figli (le nuove soluzioni ammissibili) le cui caratteristiche (geni) sono una combinazione casuale delle caratteristiche dei genitmi, a parte mutazioni occasionali (ogni qual volta la combinazione casuale delle caratteristiche e di tutte le mutazioni provocano una soluzione non ammissibile, si ha un "aborto", e così il processo di concepimento viene ripetuto fino a quando non nasca un figlio che corrisponde a una soluzione ammissibile). I figli e alcuni individui scelti tra i migliori della popolazione corrente formano la nuova popolazione per l 'iterazione successiva (la cui dimensione è la stessa di quella precedente e quindi occorre scartare alcuni membri della popolazione corrente). Valutare la qualità di ogni nuovo individuo (i figli) nella nuova popolazione. Criterio di arresto. Usare un qualunque criterio d'arresto, come un numero fissato di iterazioni, una quantità stabilita di tempo di CPU, o un numero fissato di iterazioni conse1
Una delle strategie di intensificazione della Tabu Search mantiene una popolazione di soluzioni migliori. La popolazione è usata per creare cammini che collegano questi indi vidui e per rilanciare la ricerca lungo questi camm ini .
11.4
ALGORITMI GENETICI
481
ioni desigenetico
cutive senza alcun miglioramento nella migliore soluzione determinata fino a quel momento. La soluzione finale è la migliore soluzione determinata.
~avviene
Anche in questo caso, prima che questo algoritmo possa essere implementato è necessario rispondere alle seguenti domande.
ma COrrlndividuo ~rare una 1g), adesne) di un ni attuala specie. 1tano gehe (geni) più pro~rare pocosicché ossedute òrse mitemente. erso una di qual>gia. Per tono alla odo, l'algoritmo gato nei
missibiivo) per
l. Quale è la dimensione della popolazione? 2. Come devono essere selezionati i membri della popolazione corrente che devono diventare genitori? 3. In che modo, le caratteristiche dei figli devono essere derivate dalle caratteristiche dei genitori? 4. Come introdurre mutazioni nelle caratteristiche dei figli? 5. Quale regola di an·esto deve essere usata?
Di seguito si forniranno alcune possibili risposte alle precedenti domande. l. Dimensione della popolazione: dieci è una dimensione ragionevole per problemi di piccole dimensioni ma, normalmente, popolazioni molto più numerose sono usate per problemi di grandi dimensioni. 2. Selezione dei genitori: selezionare in modo casuale quattro dei cinque migliori membri della popolazione (in base al valore della funzione obiettivo) si assume qui una popolazione costituita da l O individui. I genitori sono scelti sia tra i membri migliori della popolazione sia (in quantità minore) tra tutti gli altri: questi diventano genitori. Selezionare in modo casuale due tra i 5 peggiori membri della popolazione: anche essi diventano genitori. Accoppiare in modo casuale i sei genitori in modo da ottenere tre coppie. 3. Trasferimento delle caratteristiche (geni) dai genitori ai figli: questo processo è alquanto dipendente dal tipo di problema in esame. 4. Mutazioni: la probabilità che una caratteristica ereditata da uno dei figli muti in una caratteristica opposta è generalmente fissata a 0.1 (per problemi di grandi dimensioni si usano comunemente probabilità di mutazione ancora più piccoli). 5. Criterio di arresto: solitamente, l'algoritmo termina dopo cinque iterazioni consecutive che non abbiano apportato miglioramenti alla migliore soluzione ottenuta fino ad allora.
Un algoritmo genetico per un problema di programmazione nonlineare migliori di venteJpia gecombi~ni qual mo una o VIene ;ibile). I t nuova cedente mlità di ssato di conse-
~liori . ~o
La questi
Verrà qui applicato un algoritmo genetico al problema di programmazione nonlineare descritto nel Paragrafo 11.1 (si veda la Figura 11.1) e affrontato alla fine del precedente Paragrafo usando un algoritmo di tipo Simulated Annealing. Tuttavia, viene adesso aggiunto il vincolo che l'unica variabile x del problema può assumere solo valori interi. Poiché O ::; x ::; 31, il problema ha 32 soluzioni ammissibili, x= O, l, 2, ... , 31 (tali limitazioni sono molto importanti per un algoritmo genetico, poiché si riduce lo spazio di ricerca). Questo è un esempio di un problema di programmazione nonlineare intera. Quando si applica un algoritmo genetico, per rappresentare le soluzioni del problema vengono spesso usate stringhe di cifre binare. Una simile codifica delle soluzioni risulta particolarmente conveniente nei vari passi di un algoritmo genetico, compreso il processo di concepimento dei figli da parte dei genitori. Questa codifica è semplice da realizzare per il problema in esame perché si può scrivere in modo semplice ogni valore di x in base 2 e poiché 31 è il massimo valore ammissibile per x, per scrivere ogni valore ammissibile sono richieste solo cinque cifre binarie. Le cinque cifre binarie saranno sempre tutte incluse anche quando la cifra o le cifre più a sinistra sono zero. Quindi, per esempio,
x= 3 x= lO x= 25
è è è
00011 in base 2, 01010 in base 2, 11001 in base 2.
482
CAPITOLO 11
METAEURISTICHE
Ciascuna delle cinque cifre binarie rappresenta uno dei geni in cui i due possibili valori binari descrivono quali delle due possibili caratteristiche verranno trasferite in quel gene per contribuire a formare il carattere generale. Quando entrambi i genitori hanno la stessa caratteristica, essa sarà trasferita a entrambi i figli (tranne quando si verifica una mutazione). Tuttavia, quando i due genitori hanno caratteristiche opposte per lo stesso gene, il figlio erediterà quella caratteristica in modo casuale. Per esempio, se i due genitori sono P l: P2:
00011 0101 O
e
poiché la prima, la terza e la quarta cifra binaria sono uguali, i figli diventano automaticamente (escludendo mutazioni) Cl: C2:
Ox01x OxOlx
e
dove x indica che questa particolare cifra non è ancora definita. Per identificare queste cifre sconosciute vengono usati numeri casuali, con la naturale corrispondenza 0.0000-0.4999 0.5000-0.9999
corrisponde alla cifra O corrisponde alla cifra l
Per esempio, se i quattro numeri casuali generati sono 0.7265, 0.5190, 0.0402 e 0.3639 le due cifre non ancora definite per il primo figlio sono entrambe l e le due cifre non definite per il secondo figlio sono entrambe O. I figli sono allora (in assenza di mutazioni) Cl :
01011
C2:
00010
e
Questo particolare metodo di generazione dei figli dai genitori è noto come uniform erossover. Esso è, forse, il più intuitivo dei vari metodi alternativi che sono stati proposti in letteratura per questa specifica operazione. Per quanto riguarda la possibilità di mutazioni che influenzano il patrimonio genetico dei figli , poiché, nell'algoritmo in esame, la probabilità di una mutazione di un qualsiasi gene (far assumere alla cifra binaria il valore opposto) è posta uguale a O.l , si può fissare che 0.0000-0.0999
corrisponde a una mutazione,
0.1000-0.9999
corrisponde a nessuna mutazione.
Per esempio, se per i successivi 10 numeri casuali generati , solo l' ottavo è minore di 0.1000, ciò indica che nessuna mutazione si presenta nel primo figlio, ma il terzo gene (cifra) nel secondo figlio cambia il suo valore . Di conseguenza, i due figli sono Cl:
01011
C2:
00110
e
In base decimale, i due genitori corrispondono alle soluzioni, x = 3 e x = l O, mentre i figli sarebbero stati (in assenza di mutazioni) x = 11 e x = 2. Tuttavia, a causa della mutazione, i figli diventano x = 11 e x = 6. Per questo particolare esempio, qualsiasi valore intero di x tale che O :::; x :::; 31 (in base l O) corrisponde a una soluzione ammissibile e pertanto anche ogni numero di 5 cifre binarie è una soluzione ammissibile. Di conseguenza, il suddetto processo di generazione dei figli non provoca mai un "aborto " (una soluzione non ammissibile). Tuttavia, se il limite superiore su x fosse stato, invece, x :::; 25 , allora alcune soluzioni generate dovrebbero essere scartate. Ogni volta che si scarta una soluzione l' intero processo di generazione di un figlio è ripetuto fino a ottenere una soluzione ammissibile. Questo esempio include soltanto una singola variabile. Per un problema di programmazione nonlineare in più variabili, ogni membro della popolazione userebbe di nuovo la ba-
11.4 ALGORITMI GENETICI
valori bigene per .tessa catazione). , il figlio
omatica-
ueste ci-
.3639 le definii)
1
m cros•posti in senetico siasi ge.re che
inore di w gene
1tre i fia muta:in base re binaone dei .!limite >ero este di un ·amma) la ba-
483
se 2 per mostrare il valore di ciascuna variabile. II processo di generazione dei figli dovrebbe dunque essere ripetuto nello stesso modo, una variabile alla volta. La Tabella 11.7 mostra l'applicazione completa dell 'algoritmo a questo esempio riportando sia la fase di inizializzazione (parte a della tabell a) che la prima iterazione (parte b della tabella). Durante l' inizializzazione, ciascun individuo della popolazione iniziale è ottenuto generando in maniera casuale cinque numeri e fissando la cifra binaria a zero se il numero casuale generato è minore di 0.49999 e l altrimenti, così da ottenere le cinque cifre binarie. II corrispondente valore di x in base l O è inserito quindi nella funzione obiettivo per valutare la qualità di quell'individuo della popolazione. I cinque migliori individui della popolazione iniziale sono (nell'ordine) 10, 8, 4, l e 7. Per selezionare in maniera casuale i quattro individui che devono diventare genitori, viene generato un numero casuale per scegliere quello che deve essere rifiutato, dove 0.00000.1999 corrisponde all ' espulsione del primo individuo elencato (l'individuo 10), 0.20000.3999 corrisponde al rifiuto del secondo individuo, e così via. Con un valore pari a 0.9665, il quinto individuo elencato (l ' individuo 7) non diventa un genitore. Dei cinque peggiori individui della popolazione iniziale (2, l , 6, 5 e 9), i due che diventeranno genitori verranno selezionati in maniera casuale. Si supponga che, in questo caso, i numeri casuali generati siano 0.5634 e O. l 270. Per il primo numero casuale, 0.0000-0 .1999 corrisponde a selezionare il primo individuo (l ' individuo 2), 0.20000.3999 corrisponde a selezionare il secondo individuo, e così via, in modo che quello selezionato in questo caso risu lta essere il terzo individuo (6). Dato che, adesso, per la selezione dell'ultimo genitore rimangono solo quattro individui (2, l , 5 e 9), gli intervalli cotTispondenti per il secondo numero casuale sono 0.0000-0.2499, 0.2500-0.4999, 0.50000.7499 e 0.7500-0.9999. Poiché 0.1270 ricade nel primo di questi intervalli, il primo individuo restante (2) viene selezionato come genitore. II passo successivo è accoppiare i sei genitori - gli individui 10, 8, 4, l , 6 e 2. Per determinare il compagno del primo individuo elencato (l O) si fa ricorso a un numero casuale. Il numero casuale 0.8204 indica che il primo individuo dovrebbe essere accoppiato con il quinto genitore (2). Per accoppiare il successivo individuo (8), il numero casuale succe~ o, i v o è 0.0198, che appartiene all'intervallo 0.0000-0.3333, così il primo dei tre geli . tc:~Lanti (4) viene scelto come compagno dell'individuo 8. Questo comporta dunque che i due genitori restanti (l e 6) formino l'ultima coppia . La parte (b) della Tabella 11.7 mostra i figli che sono generati da questi genitori usando il processo precedentemente illustrato. Si noti che si sono verificate delle mutazioni nel terzo gene del secondo figlio e nel quarto gene del quarto figlio. Generalmente, i sei figli hanno un grado di idoneità (fitness) relativamente alto. In effetti, per ogni coppia di genitori, entrambi i figli risultano essere migliori dei genitori. Ciò non accade sempre, ma è abbastanza comune. Nel caso della seconda coppia di genitori , entrambi i figli sembrano migliori dei genitori. Casualmente, entrambi i figli (x = l 9 e x = 20) sono in realtà super;:::-ri ·~ 1ua!unque individuo della precedente popolazione data nella parte (a) della tabella. r . .. · ~ vnnare la nuova popolazione per l ' iterazione successiva, tutti i sei figli rimangono insieme ai quattro migliori individui della popolazione precedente (l O, 8, 4 e l). Le iterazioni successive procedono in modo simile. Poiché dalla discussione nel Paragrafo 11.1 (si veda la Figura 11 .1) si sa che x= 20 (la migliore soluzione generata nelI 'iterazione l) è realmente la soluzione ottima per questo esempio, le iterazioni successive non apportano nessun nuovo miglioramento. Di conseguenza, la regola di arresto fa terminare l'algoritmo dopo cinque ulteriori iterazioni e produce x= 20 come soluzione finale. Anche se questo era un esempio con valori interi, gli algoritmi genetici possono essere applicati anche a problemi nel continuo come un problema di programmazione nonlineare senza vincoli di interezza. In questo caso, il valore di una variabile continua (o una buona approssimazione) dovrebbe essere rappresentato con un numero decimale in base 2. Per esempio, x = 23 è l Ol 11.1 Ol 00 in base 2 e x = 23.66 è un ben approssimato da l O111 .1 Ol Ol in base 2. Tutte le cifre binarie sia a sinistra che a destra del punto decimale possono essere trattati come prima in modo da far ottenere i figli dai genitori.
f
484
CAPITOLO 11
METAEURISTICHE
Tabella 11.7 Applicazione dell'algoritmo genetico al problema di programmazione nonlineare: (a) passo di inizializzazione e (b) iterazione l. Individuo
Popolazione iniziale
Valore di x
l 2 3 4 5 6 7 8 9 lO
ol l l l oo l oo ol ooo l ol l l ol ol o ol ool oo l o l l ool o l l l l o l ol ol
15 4 8 23 lO 9 5 18 30 21
(a)
(b)
Qualità della soluzione 3 628 125 3 234 688 3 055 616 3 962 091 2 950 000 2 978 613 3 303 125 4239216 l 350 000 4353187
Qualità della soluzione
Individuo
Genitori
Figli
Valore di x
lO 2
l ol ol ool oo
ool ol l ooo l
5 17
3 303 125 4 064 259
19 20
4357164 4 400 000
11 15
2 980 63 7 3 628 125
ool o ol l l
8 4
l l
l 6
ol l l l o l ool . . .. . .. .
l l
oo l l ol oo
ol ol ol l l
l l
·-----
Un algoritmo genetico per il problema del commesso viaggiatore Nei Paragrafi 11.2 e 11.3 gli algoritmi Tabu Search e Simulated Annealing descritti, sono stati applicati al particolare problema del commesso viaggiatore presentato nel Paragrafo 11.1 (si veda la Figura 11.4). Si vedrà ora come un algoritmo genetico possa essere applicato allo stesso esempio. Piuttosto che usare cifre binarie, in questo caso si continuerà a rappresentare ogni soluzione in maniera naturale come la sequenza delle città visitate. Per esempio, la prima soluzione considerata nel Paragrafo 11.1 è la sequenza che visita le città nell'ordine 1-2-3-4-56-7- l, e la città l è la città da cui il tour inizia e in cui finisce . Occorre sottolineare, comunque, che gli algoritmi genetici per il problema del commesso viaggiatore spesso usano altri metodi più sofisticati per codificare le soluzioni. In generale, questi metodi per la rappresentazione delle soluzioni (spesso usando sequenze di cifre binarie) fanno sì che sia più facile e naturale generare i figli, dare origine a mutazioni , mantenere la proprietà di ammissibilità, e così via. Lo sviluppo di un appropriato schema di codifica è un punto chiave dello sviluppo di un efficiente algoritmo genetico per qualsiasi tipo di applicazione. Una complicazione per questo particolare esempio è che, in un certo senso, esso è troppo semplice. A causa del numero eccessivamente limitato di collegamenti tra coppie di città come si vede dalla Figura 11.4, questo problema ha non più di l O diverse soluzioni ammissibili, scartando sequenze che sono semp licemente l'inversione di una sequenza già considerata. Pertanto, non è possibile avere una popolazione iniziale con l O distinte soluzioni tali che i risultanti sei genitori possano quindi riprodurre figli diversi che sono anche distinti dagli individui della popolazione iniziale (inclusi i genitori). Per fortuna, un algoritmo genetico può ancora operare ragionevolmente bene anche laddove vi è una quantità modesta di soluzioni distinte in una popolazione o in due popolazioni successive. Per esempio, anche quando entrambi i genitori in una coppia sono identici, è ancora possibile per i loro figli differire dai genitori grazie al fenomeno della mutazione.
11.4
ità della uzlone 1628 125 l 234 688 l 055 616 l 962 091 ~ 950 000 ~ 978 613 :303125 ~ 239 216 350 000 ' 353187
tà della •zio ne 303 125 064 259 357 164 400 000 980 637 628 125
:ti, sono tragrafo e applini soluJa solu~ - 3-4-5-
comunmo altri rappre. più fanmtsst'e dello
è tropppie di luzioni nza già e solu' anche anche 'popoa sono o della
ALGORITMI GENETICI
485
Pertanto un algoritmo genetico per il problema del commesso viaggiatore non deve includere alcuna specifica procedura per evitare duplicati delle soluzioni. Ciascuna delle l O soluzioni nella popolazione iniziale può essere ottenuta come segue. Partendo dalla città di inizio della sequenza, vengono generati numeri casuali per selezionare la città successiva · tra quelle città che hanno un collegamento alla città iniziale (città 2, 3 e 7 in Figura 11.4). Vengono generati nuovamente numeri casuali per selezionare la terza città tra quelle rimanenti che hanno un collegamento alla seconda città selezionata. Questo procedimento continua finché capita che o ogni città viene inclusa una volta nella sequenza (più ovviamente il ritorno alla città di partenza dall 'ultima città visitata) o viene raggiunto un punto morto in quanto non ci sono collegamenti verso qualsiasi città tra le rimanenti che devono ancora essere visitate. In quest'ultimo caso, l'intero processo di generazione di una soluzione ricomincia usando altri numeri casuali. Si usano numeri casuali anche per la riproduzione di figli a partire da una coppia di genitori. Per illustrare questo procedimento, si consideri la seguente coppia di genitori: P!: P2:
1-2-3-4-5-6-7-1 1-2-4-6-5-7-3-1
Non tenendo conto per ora delle possibilità di mutazione, il principio generale è che i collegamenti usati in ogni sequenza del genitore sono i geni che formano il corredo genetico e quindi ognuno dei geni (collegamenti) ereditati da un figlio deve provenire da un genitore o dall'altro, o da entrambi (l'unica eccezione descritta successivamente è che da ungenitore si può anche ereditare un 'inversione di una sottosequenza). Pertanto, poiché una sequenza deve cominciare dalla città l, un collegamento iniziale del figlio deve provenire da uno dei collegamenti del genitore che connettono la città l a un'altra città. Per il genitore P1, questi collegamenti sono 1-2 e 1-7 (si considera anche il collegamento 1-7, poiché esso è equivalente a percorrere il tour nella direzione opposta). Per il genitore P2, i collegamenti corrispondenti sono 1-2 (nuovamente) e 1-3. Il fatto che entrambi i genitori abbiano il collegamento 1-2 aumenta la probabilità che esso verrà ereditato dal figlio. Quindi, usando un numero casuale per determinare quale collegamento verrà ereditato dal figlio, l'intervallo 0.0000-0.4999 corrisponde a ereditare il collegamento 1-2 mentre gli intervalli 0.50000-0.7499 e 0.7500-0.9999 cmTisponderanno rispettivamente alla scelta dei collegamenti 1-7 e 1-3. Si supponga che venga scelto 1-2. Dopo 1-2, un genitore usa il collegamento 2-3 mentre l 'altro usa 2-4. Pertanto, nella generazione del figlio , verrà fatta una scelta casuale tra queste due opzioni. Si supponga che venga scelto 2-4. Ci sono ora tre opzioni per il collegamento che seguirà 1-2-4 poiché il primo genitore usa due collegamenti (4-3 e 4-5) per connettersi alla città 4 nel proprio tour, e il secondo genitore usa il collegamento 4-6 (il collegamento 4-2 viene ignorato poiché la città 2 si trova già nel nuovo tour). Si supponga che venga scelto (in modo casuale) 4-3 per formare 1-2-4-3 come parte del nuovo tour. Una nuova caratteristica di questo procedimento per la generazione della sequenza corrispondente a un figlio è l'uso dell'inversione di una sottosequenza del genitore. La città successiva a 1-2-4-3 deve essere una delle città non ancora visitate (città 5, 6, o 7), ma il primo genitore non ha un collegamento dalla città 3 ad alcuna di queste altre città. Il motivo è che il figlio sta usando un ' inversione della sottosequenza (inversione della sottosequenza 3-4) della sequenza di questo genitore, 1-2-3-4-5-6-7-1. Il completamento di questa inversione di sottosequenza richiede l'aggiunta del collegamento 3-5, e questa diventa una delle opzioni per il successivo collegamento nella nuova sequenza corrispondente al figlio. L'altra opzione è il collegamento 3-7 fornito dal secondo genitore (il collegamento 3-1 non è un'opzione possibile poiché la città l deve essere l'ultima nella sequenza). Viene selezionata in maniera casuale una di queste scelte. Si supponga che la scelta cada sul collegamento 3-5, che fornirà quindi 1-2-4-3-5. Per continuare questa sequenza, le opzioni per il collegamento successivo sono 5-6 (fornito da entrambi i genitori) e 5-7 (fornito dal secondo genitore). Si supponga che la
486
CAPITOLO 11
METAEURISTICHE
scelta casuale tra 5-6, 5-6 e 5-7 sia 5-6 e quindi finora la sequenza è 1-2-4-3-5-6. Poiché la sola città non ancora visitata è la città 7, viene aggiunto automaticamente il collegamento 6-7, seguito dal collegamento 7- 1. Pertanto, la sequenza completa corrispondente al figlio sarà
c l:
1-2-4-3-5-6-7 -l
La Figura 11.5 nel Paragrafo 11.1 mostra quanto il figlio assomigli al primo genitore: la sola differenza è l'inversione della sottosequenza ottenuta invertendo il collegamento 3-4 nel genitore. Se invece fosse stato scelto il collegamento 5-7 da aggiungere a 1-2-4-3-5, la sequenza sarebbe stata completata automaticamente in 1-2-4-3-5-7-6-1. Però, non esiste un collegamento 6- 1 (si veda Figura 11.4), e si sarebbe raggiunto un punto morto giungendo nella città 6. Quando ciò accade, si è verificato un insuccesso e l' intero procedimento deve essere ripetuto con nuovi numeri casuali finché viene ottenuto un figlio che corrisponde a una sequenza completa. Dopodiché, il procedimento viene ripetuto per ottenere il secondo figlio. Bisogna a questo punto aggiungere un' altra caratteristica - la possibilità di mutazioni per completare la descrizione del procedimento di generazione dei figli. Ogni qual volta si sceglie il collegamento successivo per la sequenza del figlio , vi è una qualche probabilità (di solito pari a 0.1) che si verifichi una mutazione. Quindi, quando il corrispondente numero casuale è inferiore a 0.1000, la scelta del collegamento nella maniera normale sopra descritta viene scartata (sempre che esistano scelte alternative). Invece, vengono identificati tutti gli altri collegamenti dalla città corrente a una città che non è ancora nel tour (inclusi i collegamenti non fomiti da alcun genitore), e viene selezionato in maniera casuale uno di questi come successivo collegamento nella sequenza. Per esempio, si supponga che si verifichi una mutazione quando si genera il primo collegamento per il figlio. Anche se 1-2 era stata la scelta casuale per il primo collegamento, questo verrà ora scartato a causa della mutazione. Poiché la città l ha anche collegamenti alle città 3 e 7 (si veda Figura 11.4), verrebbero scelti o il collegamento 1-3 o il collegamento 1-7 come primo collegamento nella sequenza (poiché i genitmi e le loro corrispondenti sequenze usano uno o l'altro di questi collegamenti, in questo caso ciò può essere visto come far partire la sequenza corrispondente al figlio invertendo la direzione di una delle sequenze dei genitori). Si descriverà ora la procedura generale per la generazione di un figlio da una coppia di genitori.
Procedura di generazione di un figlio l. Inizializzazione: si identifichi la città di partenza come città corrente. 2. Opzioni per la scelta del collegamento successivo: si identifichino tutti i collegamenti dalla città corrente a ogni altra città che non si trovi ancora nella nuova sequenza ma che sia usata da entrambi i genitori in una delle due direzioni. Inoltre, si aggiunga qualsiasi collegamento che serve per completare un'inversione di una sottosequenza che la sequenza del figlio sta effettuando in una porzione della sequenza di un genitore. 3. Selezione del collegamento successivo: si gene1i un numero casuale per selezionare una delle opzioni identificate al passo 2. 4. Mutazione: si generi un numero casuale e se questo è inferiore a 0.1000, si verifica una mutazione e il collegamento scelto al passo 3 viene scartato (a meno che non sia l'unico collegamento dalla città corrente a un'altra città che non è ancora compresa nella sequenza). Se il collegamento viene scartato, occorre identificare tutti gli altri collegamenti dalla città corrente a un ' altra città non ancora nella sequenza (inclusi i collegamenti non usati da nessun genitore). Si generi un numero casuale per selezionare uno di questi collegamenti. 5. Continuazione: si aggiunga il collegamento scelto al passo 3 (se non si sono verificate mutazioni) o al passo 4 (se si è verificata una mutazione) alla sequenza attualmente in-
11.5
~nitore: la nento 3-4
Questa procedura viene applicata a ogni coppia di genitori per ottenere i due figli. La Tabella 11 .8 mostra i risultati della fase di inizializzazione e la prima iterazione di questo algoritmo all'esempio in questione. A causa della natura casuale dell'algoritmo, i risultati intermedi (e forse anche la soluzione migliore) variano ogni vo lta che l'algoritmo viene eseguito. Il fatto che l'esempio abbia solo un numero relativamente piccolo di soluzioni ammissibili si riflette nei risultati mostrati nella Tabella 11.8. Gli individui l, 4, 6 e l O sono identici, e così pure gli individui 2, 7 e 9 (l'individuo 2 perc01Te la sequenza nella direzione opposta). Pertanto, la generazione casuale dei 10 individui della popolazione iniziale ha avuto come risultato che ci sono solo cinque soluzioni ammissibili distinte. Allo stesso modo, quattro dei sei figli generati (gli individui 12, 14, 15 e 16) sono identici a uno dei loro genitori (l ' individuo 14 percorre la sequenza nella direzione opposta rispetto al suo genitore). Due dei figli (individui 12 e 15) sono migliori (nel senso che percorrono una distanza più breve) rispetto a uno dei genitori, ma non rispetto a entrambi. Nessuno di questi figli fornisce una soluzione ottima (che ha lunghezza pari a 63). Ciò dimostra il fatto che un algoritmo genetico potrebbe richiedere molte generazioni (iterazioni) prima che la soluzione naturale porti a una soluzione ottima del problema in esame.
a sequente un col:iungendo nento de:orrispon1ere il se-
pondem.~
;:oppt
487
completa del figlio e si identifichi nuovamente come città corrente la città di arrivo. Se c'è più di una città non ancora inclusa nella sequenza, si ripetono i passi 2-4 per selezionare i collegamenti successivi . Altrimenti, si vada al passo 6. 6. Completamento: se rimane una sola città, si aggiunga il collegamento relativo alla città corrente verso quella città. Quindi, si aggiunga il collegamento verso la città di partenza per completare la sequenza. Se però il necessario collegamento non esiste, si è verificato un insuccesso, e la procedura deve ricominciare dal passo l.
-6. Poiché llegamenente al fi-
1tazioni al volta si robabilità dente nutale sopra dentificatr (incl · 1le uno 1e si veri;e 1-2 er:o. della mt;). Yerreb' nella=uesti
CONCLUSIONI
11.5
CONCLUSIONI Alcuni problemi di ottimizzazione (compresi vari problemi di ottimizzazione combinatoria) sono complessi al punto che potrebbe non essere possibile determinare una soluzione ottima applicando gli algoritmi esatti presentati nei capitoli precedenti. In tali casi, metodi euristici vengono comunemente usati per la ricerca di una buona (ma non necessariamente ottima) soluzione ammissibile. Sono disponibili diverse metaeuristiche che forniscono una struttura generale e linee guida strategiche per la progettazione di uno specifico algoritmo per un particolare problema. Una caratteristica chiave di queste procedure metaeuristiche è la loro capacità di "allontanarsi " da ottimi locali ed effettuare una ricerca robusta nella regione ammissibile. In questo capitolo sono stati introdotti i tre tipi più importanti di metaeuristiche. Tabu Search si sposta a ogni iterazione dali 'attuale soluzione verso la migliore soluzione in un intorno, come accade in una procedura di miglioramento locale, tranne che pennette spostamenti che non comportano miglioramenti della funzione obiettivo nel caso in cui uno spostamento migliorativo non sia disponibile. Esso incorpora memoria a breve termine della ricerca appena effettuata allo scopo di favorire spostamenti verso nuove zone della regione ammissibile piuttosto che ritornare indietro verso soluzioni già prese in considerazione. Inoltre, può impiegare strategie di intensificazione e di diversificazione basate su memoria a lungo termine per concentrare la ricerca su regioni promettenti. Simulated Annealing prova a spostarsi dall'attuale soluzione verso una nuova soluzione vicina, ammettendo occasionalmente anche spostamenti che non portano a un miglioramento. Però, esso seleziona la soluzione vicina in maniera casuale e usa una analogia con il procedimento fisico di raffreddamento per determinare se questo punto vicino debba essere scartato nel caso in cui non fosse migliore dell'attuale soluzione. Il terzo tipo di metaeuristica, algoritmi genetici, opera con un' intera popolazione di soluzioni a ogni iterazione. L ' algoritmo usa una analogia con la teoria biologica dell 'evoluzione della specie, incluso
488
CAPITOLO 11
METAEURISTICHE
il concetto selezione naturale, allo scopo di scartare alcune delle soluzioni (specialmente quelle peggiori) e rimpiazzarle con nuove. Questo processo di sostituzione vede coppie di individui che sono sostituiti, sulla base di alcune caratteristiche, da coppie di nuovi individui, come i figli rimpiazzano i genitori. Per dovere di concretezza, è stato descritto un algoritmo base per ogni metaeuristica e quindi si è adattato questo algoritmo a due specifici problemi. Dai vari ricercatori sono state sviluppate molte varianti di ciascun algoritmo che meglio si adattano alle caratteristiche dei problemi che via via si vanno a trattare. Per esempio, sono state proposte letteralmente dozzine di varianti dell'algoritmo genetico per il problema del commesso viaggiatore presentato nel Paragrafo 11.4 (comprese diverse procedure per la generazione dei figli) e la ricerca sta ancora valutando quale sia il più efficiente (alcuni dei metodi migliori per il problema del commesso viaggiatore usano strategie speciali "k-opt" e "ejection chain" appositamente studiate per tenere in conto della struttura del problema). In questo capitolo ci si è soffermati sui concetti base e i concetti intuitivi inglobati in ciascuna metaeuristica piuttosto che sui dettagli di ciascun algoritmo che è stato presentato. Alcuni algoritmi euristici in realtà altro non sono che un ibrido di tipi differenti di metaeuristiche e combinano le loro migliori caratteristiche. Per esempio, Tabu Search con memoria a breve termine (senza la componente della diversificazione) è molto efficiente nel determinare ottimi locali ma non altrettanto a effettuare ampie esplorazioni di tutte le zone della regione di ammissibilità per determinare dove possa risiedere l' ottimo globale. laddove un algoritmo genetico ha caratteristiche opposte. Pertanto, un algoritmo migliore può a volte essere ottenuto semplicemente utilizzando all'inizio un algoritmo genetico per provare a identificare le regioni migliori e quindi utilizzare Tabu Search per ottenere velocemente la soluzione migliore. Ci sono anche molte altre metaeuristiche che sono meno importanti di queste tre qui presentate, ed è possibile utilizzare idee di queste ultime in un algoritmo euristico. La chiave per la progettazione di un algoritmo euristico efficiente è incorporare qualsiasi idea che possa operare bene per il problema in questione piuttosto che rispettare rigidamente la filosofia di una particolare euristica .
•
RIFERIMENTI BIBLIOGRAFICI l. Abramson, D: "Constructing School Timetables Using Simu lated Annealing: Sequential and Parallel Algorithms", Management Science, 37: 98- 113, 1991. 2. Christou, I.T., A. Zakarian, J. -M. Liu e H. Carter: "A Two-Phase Genetic Algorithm for LargeScale Bidline-Generation Problems at Delta Air Li nes", lntelfaces, 29(2): 51-65, SeptemberOctober 1999. 3. Gen, M. e R. Cheng, Genetic Algorithms and Engineering Optimization, Wiley, New York. 2000. 4. Glover, F. : " Tabu Search: A Tutorial" , fntelfaces, 20(4): 74-94, July-August 1990. 5. Glover, F. e G . Kochenberger (eds.): Handbook of Metaheuristics, Kluwer Academic Publishers, Boston, MA, 2003. (Questo riferimento bibliografico fornisce una panoramica aggiornata di tutte le metaeuristiche considerate nel capitolo e di ulteriori altre.) 6. Glover, F. e M. Laguna: Tabu Search, Kluwer Academic Publishers, Boston, MA, 1997. 7. Gorman, M.: "An Application ofGenetic and Tabu Searches to the Freight Railroad Operating Pian Problem ", An nals ofOperations Research, 18: 51-69, 1998. 8. Gutin, G. e A. Punnen (eds.): The Traveling Salesman Problem and lts Variations, Kluwer Academic Publishers, Boston, MA, 2002. 9. Haupt, R.L. e S.E. Haupt: Practical Genetic Algorithms, Wiley, New York, 1998. 10. Kelly, J.P. e J. Xu : "A Set-Partitioning-Based Heuristic for the Vehicle Routing Problem' '. INFORMS Journal an Computing, 11: 161-172, 1999. (Questo riferimento bibliografico descrive una applicazione di Tabu Search.) 11. Liaw, C.-F.: "Applying Simulated Annealing to the Open Shop Scheduling Problem", IlE Transactions, 31:457-465, 1999. 12. Michalewicz, Z. e D.B. Fogel : How ToSo/ ve !t: Modern Heuristics, Springer, Berlin, 2002. 13. Mitchell, M. : An lntroduction to Genetic Algorithms, MIT Press, Cambridge, MA, 1998 .
489
PROBLEMI
14. Reeves, C.R.: " Genetic Algorithms for the Operations Researcher", JNFORMS Journal on Computing, 9: 231 - 250, 1997. (Also see pp . 251-265 for commentaries on this feature article.) 15. Sarker, R. , M. Mohammadian e X. Yao (eds.): Evolutionary Optimization, Kluwer Academic Publishers, Boston, MA, 2002. 16. Weigel, D. e B. Cao : "Applying GIS and OR Techniques to Solve Sears TechnicianDispatching and Home Delivery Problems", lnterfaces, 29(1): 112- 130, January-February 1999. (Questo riferimento bibliografico descrive una applicazione insignita di premio di Tabu Search e altre tecniche.)
~cialmente
:coppie di ovi indivieuristica e atori sono aratteristite letteralo viaggiame dei fili migliori "ejection In questo ;cuna menti di me~arch con efficiente di tutte le ) globale, 1 migliore 1etico per 1ere velomo meno ime in un ficiente è piuttosto
•
PROBLEMI
11.1-1. Si consideri il problema del commesso viaggiatore mostrato qui di seguito, in cui la città l è la città di partenza.
11.2-1.* Si consideri il problema del minimo albero ricoprente descritto di seguito, in cui le linee tratteggiate rappresentano i possibili collegamenti che possono essere inseriti nel grafo e i valori accanto a ogni linea tratteggiata rappresentano i costi asso ciati al collegamento.
,@, ~
,
~
,
l
12 l
6
'
18
@ ----~ --@- - _o_ - - - ~@ ,
' 24~,
' '16
ential and for Large~ptember-
ew York,
1\cademic 1mica ag-
17. )perating , Kluwer
roblem ", :o descri:m", IlE
:002. 8.
' 36 ' '
(a) Elencare tutti i possibili tour, escludendo quelli che semplicemente invertono quelli precedentemente elencati. Calcolare la lunghezza complessiva di ognuno di questi tour e quindi identificare il tour ottimo. (b) Partendo con 1-2-3-4-5- 1 come soluzione iniziale, applicare l'algoritmo di inversione di una sottosequenza a questo problema. (c) Applicare l'algoritmo di inversione di una sottosequenza a questo problema usando 1-2-4-3 -5- 1 come soluzione iniziale. (d) Applicare l'algoritmo di inversione di una sottosequenza a questo problema usando 1-4-2-3-5-1 come soluzione iniziale.
11.1-2. Si riconsideri l' esempio del problema del commesso viaggiatore mostrato in Figura 11.4. (a) Quando nel Paragrafo 11.1 è stato applicato l' algoritmo come soluzione iniziale a questo problema, la prima iterazione ha determinato che l'inversione di due sottosequenze (3-4 e 4-5) forniscono il maggiore decremento nella lunghezza totale del tour. Nel Paragrafo 11.1 è stato arbitrariamente scelto di invertire le sottosequenze 3-4. Si determini cosa sarebbe accaduto se invece fosse stata scelta la seconda possibilità (inversione 3-5). (b) Applicare l'algoritmo di inversione della sottosequenza a questo problema usando 1-2-4-5-6-7-3-1 come soluzione iniziale.
~
',®,~ Tale problema ha anche le due seguenti restrizioni: • Restrizione l: non più di uno dei tre collegamenti - AB, BC, e AE - può essere incluso. • Restrizione 2: il collegamento AB può essere incluso solo se viene incluso il collegamento BD. Pattendo con la soluzione iniziale in cui i collegamenti inseriti sono AB, AC, AE, e CD, si applichi l'algoritmo Tabu Search presentato nel Paragrafo 11.2 a questo problema.
11.2-2. Si riconsideri il problema del commesso viaggiatore trattato nel Problema I l. I - l. Partendo con I -2-4-3-5- I come soluzione iniziale, si applichi l'algoritmo Tabu Search a questo problema. 11.3-1. Durante l' applicazione dell'algoritmo Simulated Annealing a un certo problema, si perviene a un ' iterazione in cui T= 2 e il valore della funzione obiettivo per l' attuale soluzione è 30. Questa soluzione ha quattro soluzioni vicine e i valori della fun zione obiettivo per questi sono rispettivamente 29, 34, 31, e 24. A turno, per ciascuno di questi vicini, si vuole detenninare la probabilità che la regola di selezione della mossa accetti questo vicino qualora venga selezionato come candidato.
490
CAPITOLO 11
METAEURISTICHE
(a) Determinare questa probabilità per ognuno dei vicini quando l'obiettivo è massimizzare la funzione obiettivo. (b) Detenninare questa probabilità per ogn uno dei vic ini quando l'obiettivo è minimizzare la funzione obiettivo. 11.3-2. Si riconsideri il problema del commesso viaggiatore mostrato nel Problema 11. l -l. Impiegando 1-2-3-4-5- l come soluzione iniziale, effettuare la prima iterazione de ll ' algoritmo Simulated Annealing per questo problema. 11.3-3. Si consideri il seguente problema di programmazione non convessa. Massimizzare
f (x ) = x 3
-
60.x2
+ 900x + l 00
Massimizzare
f (x ) = x 6 - 136x 5 + 6800x4 + 1 570 ooo.x2 - s ooo ooox
-
155 OOOx1
soggetto ai vinco li
o :<:: x :<:: 50. (a) Con x = 2.5 come soluzione iniziale, si esegua la prima iterazione dell'algoritmo Simu lated Anneal ing presentato nel Paragrafo 11.3. 11.4-1. Per ciascuna delle seguenti coppie di genitori, si generino i loro due figli app licando l' algoritmo genetico presentato nel Paragrafo 11.4 per un problema di programmazione intera nonlineare in una sola variabile x, nell 'intervallo O :<:: x :<:: 63. (a) I genitori sono 010011 e 100101.
soggetto ai vinco li 0 :S x:S3 l.
(b) I genitori sono 000010 e 001101.
(a) Si usino la derivate prima e seconda dif(x ) per determinare i punti critici (compresi gli estremi dell'interva llo di ammissibilità). (b) Disegnare il grafico della funzionef(x). (c) Usando x= 15 .5 come soluzione iniziale, si effettui la prima iterazione dell ' algoritmo Simulated Annealing presentato nel Paragrafo l l .3.
(c) I genitori sono 100000 e 101000.
11.3-4. Si consideri il problema di programmazione non convessa presentato nel Paragrafo l O. l O e descritto in Figura l 0.18. (a) Con x = 2.5 come soluzione iniziale, si esegua la prima iterazione dell 'algoritmo Simulated Annealing presentato nel Paragrafo l 1.3.
11.3-5. Si consideri il problema di programmazione non convessa.
11.4-2. * Si consideri un problema del conunesso viaggiatore con 8 città (città l , 2, . .. , 8) in cui la città l rappresenta la città di partenza, ed esistono collegamenti tra ogni coppia di città. Per ognuna delle seguenti coppie di genitori, si generino i loro due figli applicando l' algoritmo genetico presentato nel Paragrafo l l .4. (a) I genitori sono 1-2-3-4-7-6-5-8- l e l -5-3-6-7-8-2-4-l. (b) I genitori sono 1-6-4-7-3-8-2-5- 1 e 1-2-5-3-6-8-4-7- l. (c) I genitori so no 1-5-7-4-6-2-3-8- 1 e 1-3-7-2-5-6-8-4- l.
11.4-3. Si riconsideri il problema del commesso viaggiatore mostrato nel Problema l l. l -l . (a) Si effettuino le fasi di inizializzazione e la prima iterazione dell'algoritmo genetico presentato nel Paragrafo 11.4.
5 000x3
Jrima ite:ntato nel
si generinel ~ ra nonli~ ntato
Teoria delle decisioni atore con
ttà di par~er ognu~ figli
ap-
1.4. l.
l. l. ttore mo-
l
capitoli precedenti sono stati dedicati principalmente al problema di come prendere una decisione quando sono note le conseguenze delle varie alternative con un ragionevole grado di certezza. Questo tipo di informazione permette di formulare modelli matematici (di programmazione lineare, programmazione a numeri interi, di programmazione non lineare ecc.) con funzione obiettivo che specificano le conseguenze stimate di ogni combinazione di decisioni. Sebbene queste conseguenze di solito non possono essere previste con certezza, esse si possono stimare almeno con una sufficiente precisione da giustificare l'uso di tali modelli (insieme all'analisi di sensitività ecc.). Tuttavia, spesso devono essere prese decisioni in condizioni di maggiore incertezza. Ecco alcuni esempi. l. Un imprenditore immette un nuovo prodotto sul mercato. Quale sarà la reazione dei po-
terazione 4.
2.
3.
4.
S.
tenziali clienti? Quanto bisognerà produrne? Il prodotto dovrà essere testato su una piccola parte del mercato prima di decidere una distribuzione allargata? Quanta pubblicità occorre per lanciare il prodotto con successo? Una società finanziaria intende investire acquistando titoli di borsa. Quali sono i settori di mercato e i titoli con migliori prospettive? Come si muoverà l'economia? E i tassi di interesse? Quanto questi fattori influenzano le decisioni di investimento? Una società fa un'offerta in una gara d'appalto. Quali saranno i costi effettivi del progetto? Quali altre compagnie potrebbero concorrere? Quali sono le loro probabili offerte? Una società agricola seleziona le miscele di sementi e il bestiame per la stagione imminente. Quali saranno le condizioni del tempo? Quale sarà l'andamento dei prezzi? Quali saranno i costi? Una compagnia petrolifera deve decidere se trivellare in una particolare zona. Che probabilità ci sono di trovare petrolio? Quanto se ne potrà trovare? Fino a quale profondità bisogna trivellare? I geologi dovrebbero analizzare ulteriormente il sito, prima di eseguire la trivellazione?
Questi sono tipi di decisioni da prendere con un alto grado di incertezza, per le quali è stata sviluppata la teoria delle decisioni. Essa fornisce un insieme di regole e metodologie per una scelta razionale quando le conseguenze delle scelte sono incerte. Una questione comune da affrontare nella teoria delle decisioni è se operare una scelta immediatamente o se fare prima qualche indagine (incorrendo in una certa spesa) per ridurre il livello di incertezza sulle conseguenze della decisione presa. Per esempio, si potrebbe testare un nuovo prodotto con un ristretto nwnero di consumatori, per verificame la reazione, prima di decidere se procedere con una produzione e un marketing su grande scala. Si farà riferimento a questo tipo di indagine come a una sperimentazione. Pertanto,
492
CAPITOLO 12
TEORIA DELLE DECISIONI
la teoria delle decisioni distingue due casi: decisioni prese sulla base di sperimentazioni e decisioni prese senza aver effettuato sperimentazioni. Il primo paragrafo introduce un esempio che sarà utilizzato in tutto il capitolo a scopo illustrativo . Nei Paragrafi 12.2 e 12.3 si descrivono i principi fondamentali di questa teoria relativamente sia al caso con sperimentazione sia a quello senza sperimentazione. Verrà introdotto e descritto l'albero delle decisioni, uno strumento utile per rappresentare e analizzare il processo decisionale in presenza di più scelte. Il Paragrafo 12.5 introduce la teoria della utilità, che fornisce un modo per calibrare le possibili conseguenze delle decisioni per rispecchiare il vero valore di queste conseguenze per chi prende la decisione (il decisore). Il capitolo si conclude con una valutazione dell'applicazione pratica della teoria delle decisioni e alcune applicazioni di cui hanno beneficiato molto le organizzazioni coinvolte.
12.1 ESEMPIO La GOFERBROKE COMPANY possiede un terreno in cui si suppone ci sia del petrolio. Uno studio geologico ha concluso che vi è l possibilità su 4 di trovare del petrolio. Un'altra compagnia petrolifera si è offerta di comprare il terreno per $90 000. Tuttavia. la Goferbroke sta considerando la possibilità di tenere il teiTeno ed effettuare essa stessa delle trivellazioni in cerca di petrolio. Il costo della trivellazione è di $100 000. Se viene trovato del petrolio, l'entrata risultante (stimata) sarà di $800 000, per cui il valore atteso del profitto per la compagnia (dopo aver sottratto le spese di trivellazione) è di $700 000. Ci sarà invece una perdita di $100 000 (il costo della trivellazione) se non c 'è petrolio. La Tabella 12.1 riassume questi dati. Il Paragrafo 12.2 descrive come decidere se eseguire la trivellazione oppure vendere il terreno basandosi solo su questi dati (si farà riferimento a quest' ultimo come al primo problema della Goferbroke Co.) Tuttavia, prima di decidere se vendere o trivellare, si può valutare la possibilità di condurre una più dettagliata prospezione con metodo sismico a riflessione, per avere una stima migliore della probabilità di trovare petrolio. Il Paragrafo 12.3 tratta questo caso di decisione con sperùnentazione, per il quale saranno forniti i dati aggiuntivi necessari. Per questa compagnia una perdita di $100 000 sarebbe piuttosto seria. Nel Paragrafo 12.5, verrà descritto come migliorare la valutazione delle conseguenze dei vari risultati possibili. TABELLA 12.1 Profitti probabili per la Goferbroke Company. Stato del terreno Alternative
Petrolio
No-petrolio
Eseguire la trivellazione Vendere il terren o
$700000 $ 90000
- $100000 $ 90000
l su 4
3 su 4
Possibilità dello stato
12.2
Payoff
DECISIONE SENZA SPERIMENTAZIONE Prima di cercare una soluzione per il primo problema della Goferbroke Co., verrà presentato un quadro generale del problema di decisioni . In termini generali, il decisore deve scegliere una alternativa in un insieme di possibili decisioni. L'insieme contiene tutte le alternative ammissibili su come procedere con il problema in esame.
12.2
tazioni e , a scopo esta teoztazione. ~esentare
oduce la !lle decisione (il Ila teoria zzazwm
petrolio. 'uttavia, :a stessa )e viene ·e atteso
rooooo.
>li o. se ese·à riferidi conuna stio di detra grafo risultati
DECISIONE SENZA SPERIMENTAZIONE
493
La scelta è effettuata in condizioni di incertezza, perché il risultato dipenderà da fattori casuali che sono fuori dal controllo del decisore. Questi fattori casuali determinano quale sarà la situazione nel momento in cui l'alternativa scelta verrà eseguita. Ciascuna di queste possibili situazioni è detta stato possibile. Per ogni combinazione decisione-stato, si conosce il guadagno (payojj) risultante. Il payoff è una misura quantitativa delle conseguenze del risultato per il decisore. Spesso il payoff è rappresentato dal guadagno monetario netto (profitto), anche se si possono usare altri tipi di misura (come viene descritto nel Paragrafo 12.5). Se le conseguenze del risultato non sono completamente certe anche quando lo stato è noto, allora il payoff diventa un valore atteso (in senso statistico). Di solito, è usata una tabella di payoff per mostrare il guadagno corrispondente per ogni combinazione decisione-stato. Tutta questa teoria può essere interpretata in termini di teoria dei giochi. Senza entrare nei dettagli, il decisore e la natura possono essere visti come due giocatori; le alternative e i possibili stati possono essere visti come strategie dei rispettivi giocatori e ogni combinazione di strategie determina un payoff per il giocatore l (il decisore). Da questo punto di vista, il problema si può articolare nei seguenti punti: l. il decisore deve scegliere una delle possibili decisioni alternative; 2. la natura allora sceglierà uno dei possibili stati; 3. ogni combinazione di decisione e stato determina un payoj]; come riportato in tabella
di payoff; 4. questa tabella viene usata per trovare l'alternativa ottima per la decisione, secondo un appropriato criterio. Verranno presentati tre possibili criteri, dove il primo (il criterio maxmin) deriva proprio dalla teoria dei giochi. Tuttavia, vi è una importante differenza rispetto alla classica teoria dei giochi. Nella teoria dei giochi, si assume che entrambi i giocatori siano razionali e scelgano la loro strategia nel proprio interesse. Questa descrizione si adatta ancora al decisore, ma certamente non alla natura. Al contrario, la natura ora è un giocatore passivo che sceglie le sue strategie (stati) in modo casuale. Questa differenza implica che il criterio della teoria dei giochi per scegliere la strategia ottimale spesso in questo contesto non è interessante. Occorre aggiungere un ulteriore elemento a questo quadro . Il decisore generalmente dovrà tenere conto di alcune informazioni relative alla probabilità dei possibili stati. Tali informazioni di solito si traducono in una distribuzione di probabilità, dove lo stato è trattato come una variabile casuale e questa distribuzione viene detta distribuzione a priori. Le distribuzioni a priori spesso sono soggettive, nel senso che possono dipendere dall 'esperienza o dall ' intuito di un individuo. Le probabilità per i vari stati come fornito dalla distribuzione a priori sono dette probabilità a priori. 1
io
Formulazione dell'esempio secondo la teoria delle decisioni
D
Come indicato nella Tabella 12.1 , la Goferbroke Co. può considerare due possibili decisioni alternative: eseguire la trivellazione per cercare il petrolio oppure vendere il terreno. Gli stati possibili sono l'esistenza o meno di petrolio, che corrispondono alle intestazioni Petrolio e No-petrolio della Tabella 12.1. Poiché è stato stimato che c'è l possibilità su 4 di trovare del petrolio (e quindi 3 su 4 di non trovar! o), le probabilità a priori dei due stati di natura sono rispettivamente 0.25 e 0.75 e la tabella di payoff(Tabella 12.2) si può ricavare direttamente dalla Tabella 12.1. In seguito, questa tabella di payoff verrà usata per determinare l'alternativa ottima secondo ciascuno dei tre criteri che verranno proposti.
)
Jresen)SSibili con il
1
Per una descrizione del! 'accurato processo che generalmente si usa per ottenere queste probabilità a priori, si veda M. H. Merkhofer " QuantifY ing Judgmental Uncerta inty: Methodology, Experiences and Insights", IEEE Transactions on Systems, Man, and Cybernetics, 17: 741 -752 , 1987.
494
CAPITOLO 12
TEORIA DELLE DECISIONI
TABELLA 12.2 Tabella di payoff per la formulazione del problema della Goferbroke Co. secondo la teoria delle decisioni. Stato Alternative
Petrolio
No-petrolio
l. Trivellazione 2. Vendita del terreno
700 90
- 100 90
Probabilità a priori
0.25
0.75
Il criterio maxmin del payoff Se il problema in esame viene visto come un gioco con la natura come avversario, allora l'alternativa può essere scelta applicando il criterio maxmin del payoff.
Criterio maxmin del payoff: per ogni alternativa possibile, si cerca il minimo fra i payoff relativi a tutti i possibili stati della natura. Successivamente si cerca il massimo di questi minimi payoff. L'alternativa scelta è quella il cui payoffminimo coincide con questo massimo. La Tabella 12.3 mostra l'applicazione di questo criterio all ' esempio considerato. Essendo il payoff minimo per la vendita (90) maggiore di quello relativo alla trivellazione (-l 00). si sceglie la seconda alternativa (vendere il terreno). Questo criterio fornisce la migliore garanzia di payoff. Indipendentemente da quale sia il vero stato per il nostro esempio, il payoff ottenuto dalla vendita del terreno non può essere inferiore a 90, e questa è la migliore garanzia disponibile. Questo criterio considera un punto di vista pessimistico, secondo il quale è probabile che si verifichi il peggiore stato qualunque sia l'alternativa scelta, per cui si deve scegliere l'alternativa che fornisce il miglior payoff nel peggiore caso. Questa spiegazione è abbastanza valida quando si compete con un avversario razionale e malevolo. Tuttavia, questo criterio non si usa spesso in questo contesto perché risulta un criterio estremamente conservativo. In effetti, esso assume che la natura sia un avversario consapevole e che voglia infliggere il maggior danno possibile al decisore. La natura non è un avversario malevolo, e il decisore non deve considerare unicamente il peggiore payoff di ogni alternativa. Questo è vero specialmente quando il peggiore payoff per una alternativa deriva da uno stato relativamente improbabile. Quindi, questo criterio è usato di solito solo una persona molto cauta.
Il criterio di massima verosimiglianza Il seguente criterio si focalizza sullo stato più probabile.
Criterio di massima verosimiglianza: si identifica lo stato più probabile (quello con probabilità a priori più alta). Per questo stato, si cerca l 'alternativa con il massimo payoff. Si sceglie questa alternativa. Applicando questo criterio all'esempio considerato (Tabella 12.4), si vede che lo stato No-petrolio ha la probabilità più alta. Per questo stato, l'alternativa di vendere ha il massimo payoff, per cui si sceglie di vendere il terreno. Qui lo stato più importante è quello più probabile, per cui l'alternativa scelta per questo stato è la migliore. La decisione si basa sull'assunzione che un risultato favorevole abbia maggiore possibilità di attuarsi per questo stato piuttosto che per qualunque altro. Inoltre, il criterio non si basa su stime soggettive e discutibili delle probabilità dei vari stati, tranne per il fatto di identificare quello più probabile.
12.2
DECISIONE SENZA SPERIMENTAZIONE
495
Il maggiore inconveniente è che esso ignora completamente molte informazioni rilevanti. Non viene considerato nessun stato oltre a quello più probabile. In un problema con molti stati possibili, la probabilità di quest'ultimo può essere abbastanza piccola, per cui concentrarsi solo sullo stato più probabile è piuttosto rischioso. Anche in questo esempio, dove la probabilità a priori dello stato No-petrolio è 0.75 , questo criterio ignora il payoff estremamente allettante di 700, relativo al caso in cui la compagnia esegue la trivellazione e trova il petrolio. In effetti, questo criterio non permette di scommettere su una bassa probabilità con un payoff grande, non importa quanto allettante possa essere la scommessa. TABELLA 12.3 Applicazione del criterio maxmin del payoff al primo problema della Goferbroke Co. Stato
, allora
fra i zssi.nci-
Alternative
Minino
Petrolio
No-petrolio
l. Trivellazione 2. Vendita "del terreno
700
- 100
- 100
90
90
90
Probabi lità a priori
0.25
0.75
~
Valore massimo
TABELLA 12.4 Applicazione del criterio di massima verosimiglianza al primo problema della Goferbroke Co.
ssendo - 100),
Stato Petrolio
No-petrolio
mie sia mò es1sidera )re stalisce il
Alternative l. Trivellazione 2 . Vendita del terreno
700 90
- 100
- 100
90
90
Probabilità a priori
0.25
0.75
~ionale
La regola di decisione di Bayes 2
ulta un ersario .ra non :ggiore >er una
->
Massimo in questa colonna
i Massimo
Il terzo criterio è quello che in genere viene più usato, ed è la regola di decisione di Bayes.
Regola di decisione di Bayes: usando le migliori stime disponibili delle probabilità dei vari stati (le probabilità a ptiori), si calcola il valore atteso del payoffper ogni alternativa possibile. Si sceglie l'alternativa con il massimo payoff atteso. Per l'esempio considerato, questi valori attesi si calcolano direttamente dalla Tabella 12.2 nel seguente modo:
ello ssi-
) stato massi-
E[Payoff(trivellazione)] = 0.25(700) + 0. 75( - l 00) = 100. E[Payoff(vendita)] = 0.25(90) + 0.75(90) = 90 Poiché l 00 è maggiore di 90, l 'altemativa scelta è di trivellare. Si noti che questa scelta è in contrasto con quella presa usando i due criteri precedenti. Il grande vantaggio di questa regola decisionale è che essa ingloba tutte le informazioni disponibili, inclusi tutti i payoff e le migliori stime disponibili delle probabilità dei vari stati della natura.
r que-
>le ab-
altro. tri sta-
2
L'origine di questo nome è che questo criterio è spesso attribuito al reverendo inglese Thomas .Bayes vissuto nel Diciottesimo secolo che ha conquistato fama come filosofo e matematico (La stessa idea di base ha radici anche più lontane nel campo dell 'economia). Questa regola di decisione a volte viene anche detta criterio del valore monetario atteso (EM F) , sebbene questo no n sia un termine appropriato per quei casi in cui la mi sura del payo ff no n è in dena ro.
496
CAPITOLO 12
TEORIA DELLE DECISIONI
Queste stime di probabilità sono spesso troppo soggettive per essere attendibili. Non c'è un modo accurato di prevedere il futuro , incluso uno stato futuro della natura, anche in termini di probabilità. Questo ragionamento ha una qualche validità. La ragionevolezza delle stime di probabilità dovrebbe essere accertata in ogni situazione individuale. Ciò nonostante, in molte circostanze, l'esperienza passata e l'attuale evidenza autorizzano a effettuare stime ragionevoli di queste probabilità. Queste informazioni dovrebbero fornire delle basi più solide per decidere, per cui è meglio tenerne conto piuttosto che ignorarle. Inoltre, si può condurre una sperimentazione per migliorare queste stime, come si vedrà nel prossimo paragrafo. La regola di decisione di Bayes verrà applicata nel resto di questo capitolo. Infine, per valutare l'effetto di possibili inesattezze nelle probabilità a priori, spesso è utile condurre un 'analisi della sensitività.
Analisi della sensitività e regola di decisione di Bayes L'analisi della sensitività ha applicazioni in vari campi della ricerca operativa al fine di studiare l'effetto causato dagli errori di alcuni valori usati nel modello matematico. In questo caso, il modello matematico è rappresentato dalla tabella di payoff mostrata nella Tabella 12.2. In questa tabella, le quantità che sono più discutibili sono le probabilità a priori e pertanto l'analisi delle sensitività si concentrerà su questi valori, anche se un simile approccio si può applicare ai valori di payoff nella tabella. La somma delle due probabilità a priori deve essere uguale a l, per cui incrementandone una automaticamente l'altra diminuisce della stessa quantità, e viceversa. La direzione della Goferbroke Co. ritiene che probabilmente le reali possibilità di trovare del petrolio in quel terreno variano tra il 15% e il35%. In altre parole, la probabilità a priori di trovare petrolio si trova in un intervallo che va da 0.15 a 0.35, e quindi la probabilità a priori che il terreno sia privo di petrolio può variare da 0.85 a 0.65. Sia p = probabilità a priori di trovare del petrolio
allora, per ogni p, il valore atteso del payoff relativo alla trivellazione è E[Payoff(trivellazione)] = 700p- 100(1 - p) = 800p- 100 Nella Figura 12.1 viene riportato il grafico di questo valore atteso in funzione di p. Poiché il payoffrelativo alla vendita del terreno è 90 (indipendentemente da p), la retta orizzontale nella Figura 12.1 corrisponde al valore atteso E[Payoff(vendita)] in funzione di p. I quattro punti nella Figura 12.1 indicano il payoff atteso per le due decisioni alternative quando p = 0.15 oppure p = 0.35. Per p = 0.15, si può decidere di vendere il terreno con un ampio margine (si ha un payoff atteso di 90 mentre è solo di 20 per la trivellazione). Mentre per p= 0.35, si può decidere di trivellare con un ampio margine di successo (payoff atteso = 180, con solo 90 per la vendita). Quindi, la decisione dipende sensibilmente da p . Questa analisi ha rivelato che è importante, se possibile, determinare una stima più precisa del vero valore di p. Nella Figura 12.1 , il punto in cui le due rette si intersecano è il punto di transizione, dove la decisione si sposta da un 'alternativa (vendere il terreno) all'altra (trivellare) al crescere della probabilità a priori. Per trovare questo punto, si pone E[Payoff(trivellazione)] = E[Payoff(vendita)] 800p - 100 = 90 190 p = -=0.2375 800 Conclusione: si deve vendere il terreno se p < 0.2375 si deve trivellare per cercare il petrolio se p > 0.2375
12.3
Non c'è mche in
497
DECISIONE CON SPERIMENTAZIONE
700
~volezza
Trivellare
i:i: o ~ o. 600 -.:;
autoriz'rebbero Jsto che .e, come 1el resto
Regione in cui la decisione è trivellare per cercare il petrolio
'O
o
É 500
""~
~ 400
>
;pesso è
L
è vendere il terreno
300
fine di In queta nella 1bilità a
m simintandoreziOn
200
• FIGURA 12.1 Rappresentazione g rafica del payoff atteso in funzione della probabilità a priori di trovare petrolio, per ogni decisione alternativa del primo problema della Goferbroke Co.
etrolio troYare iori eh
100
F------~---+------------------- Vendere
o -1oov
0.2
t
0.4
Punto di transizione
0.6
0.8
il terreno
1.0
Probabilità a priori di trovare petrolio (p)
Quindi, per migliorare la stima del vero valore di p, il punto chiave è stabilire se è minore o maggiore di 0.2375. Per problemi che hanno più di due decisioni alternative, si può effettuare lo stesso tipo di analisi. La differenza principale è che ci sono più di due rette (una per ogni alternativa) nella rappresentazione grafica corrispondente alla Figura 12.1. Tuttavia, per ogni particolare valore della probabilità a priori, la retta con valore più alto indica ancora quale alternativa scegliere. Con più di due rette, ci possono essere più punti di transizione in cui la decisione si sposta da un'alternativa all'altra. Per un problema con più di due stati possibili, l'approccio più immediato è focalizzare l'analisi della sensitività solo su due stati alla volta. Questo significa studiare cosa succede quando la probabilità a priori di uno stato aumenta al pari decrescere della probabilità a priori dell'altro stato, mantenendo fisse le probabilità a priori dei restanti stati. Questa procedura si può ripetere per tutte le possibili coppie di stati . I professionisti a volte usano pacchetti software per eseguire questo tipo di analisi , in particolare per tracciare i grafici. Poiché la decisione della Goferbroke Co. dipende molto dalla reale probabilità di trovare petrolio, si dovrebbe considerare seriamente la possibilità di condurre una prospezione con metodo sismico a riflessione, per stimare questa probabilità in modo più accurato. Questa opzione verrà analizzata in dettaglio nei prossimi due paragrafi.
Poiehe 120llla-
te mari-
izione. al ere-
12.3
DECISIONE CON SPERIMENTAZIONE In molti casi reali le stime preliminari delle probabilità dei vari stati possono essere migliorate mediante una ulteriore analisi. Queste migliori stime sono dette probabilità a posteriori. Prima verrà completato l'esempio della Goferbroke Co. con sperimentazione, poi verrà descritto come calcolare le probabilità a posteriori, e infine verrà discusso come decidere se conviene condurre una sperimentazione.
498
CAPITOLO 12
TEORIA DELLE DECISIONI
Completamento dell'esempio Come menzionato alla fine del Paragrafo 12.1, prima di prendere una decisione si può \"aIutare se condurre una dettagliata prospezione del terreno con metodo sismico a riflessione per ottenere una stima migliore della probabilità che ci sia del petrolio. Il costo di tale operazione è di $30 000. Questo esame esegue degli scandagli sismici che indicano se la struttura geologica c:L terreno è favorevole alla presenza di petrolio. I possibili risultati di questa indagine ricadono nelle seguenti due categorie: USS: scandagli sismici sfavorevoli; è poco probabile che ci sia del petrolio. FSS: scandagli sismici favorevoli; è molto probabile che ci sia del petrolio. In base alle esperienze precedenti, se ci fosse del petrolio, allora la probabilità di ottenere scandagli sismici sfavorevoli è P(USS l Stato= Petrolio) = 0.4
per cui
P(FSS l Stato= Petrolio) = l - 0.4 = O.
Analogamente, se non ci fosse del petrolio (cioè il vero stato è No-petrolio), allora si p stimare che la probabilità di ottenere scandagli sismici sfavorevoli è P(USS l Stato= No-petrolio) = 0.8 per cui P(FSS l Stato= No-petrolio) = l - 0.8 = o..:.. Questi dati verranno usati per calcolare le probabilità a posteriori dei rispettivi stati volta noti i risultati degli scandagli sismici.
Probabilità a posteriori In termini generali, sia n = numero dei possibili stati;
P(Stato = stato i) = probabilità a priori che il vero stato sia stato i, per i= l , 2, ... , n; Risultato = risultato della sperimentazione (una ' riabile casuale); Risultato j = un possibile Risultato;
valore
della
variabile
P( Stato = stato i l Risultato = risultato j) = Probabilità a posteriori che il vero sta sia lo stato i, noto che Risultato = ris"·tatoj, per) = l , 2, ...,n.
La domanda da porsi è la seguente: Date P( Stato = stato i) e ?(Risultato
= risultato j l Stato =
stato i), per i = l , 2, ... , n.
qual è P( Stato = stato i l Risultato = risultato j)? La risposta si ottiene combinando le seguenti formule dalla teoria della probabilità: P( Stato = stato i Risultato = risultato j) = P (Stato = stato i, Risultato = risultato j ) 1
? (Risultato = risultato j ) Il
?(Risultato = risultato j) =
L P( Stato = stato k, Risultato = risultato j) k= !
P( Stato = stato i, Risultato = risultato j) =
= ?(Risultato = risultato j
l Stato =
stato i)(P(Stato = stato i,.
12.3
499
DECISIONE CON SPERIMENTAZIONE
Pertanto, per ogni i= l , 2, ... ,n, la formula per il calcolo della corrispondente probabilità a posteriori è
si può vat riflessiosto di tale
P( Stato = stato i l Risultato = risultato l) =
P(Risu1tato =risultato liStato = stato i)P(Stato = stato i)
logica del ne ricado-
Il
L ?(Risultato = risultato liStato = stato k)P(Stato = stato i) k=l
(Questa fommla è nota come teorema di Bayes perché fu determinata da Thomas Bayes, lo stesso matematico a cui è attribuita la regola di decisione di Bayes). Ritornando all'esempio e applicando la formula precedente si ottengono i seguenti risultati. Se il risultato della prospezione sismica corrisponde a scandagli sfavorevoli (USS), allora le probabilità a posteriori sono
i ottenere
. I es tato = Petrolw. l Rtsu tato = USS) =
0.4(0.25) ( ) ( ) 0.4 0.25 + 0.8 0.75
).4 = 0.6.
P
>rasi può
P(Stato = No-petrolio Risultato = USS) = 1 - _!.._ = 1
7
0.6(0.25 ) - _! P(Stato =Petrolio l Risultato = FSS) = 0.6(0.25) + 0.2(0.75) - 2
stati una
P(Stato = No-petrolio l Risultato = FSS) = 1 -
(una vavariabile
i7 .
Analogamente, se gli scandagli sono favorevoli (FSS), allora
).8 = 0.2.
lto sia lo
l 7
• FIGURA 12.2 Diagramma ad albero delle probabilità per il problema comp leto della Goferbroke Co. Esso mostra tutte le probabilità coinvolte nel calcolo della probabilità a posteriori di ogni stato, noti i risultati della prospezioni sismica .
Probabilità a pnon P( stato)
Probabilità condizionate P(risultatolstato)
1
2
=
l
2
Probabilità composte P( stato e risultato)
0.25(0.6) = 0.15 f\6 ~\\0
~'?e\'-o
stato = risul-
~ro
Probabilità a posteriori P(statolrisultato)
~ oo~i ~5
Petrolio e FSS
Petrolio, dato FSS
ò.~\0
ss, u~ o.., J<); da~
':>
\J'Y~"\.0
etr0 ,.
''o
/«.:'s.c ~
0.25(0.4)
=0.1~
Petrolio e USS
%t ~0.14
Petrolio, dato USS
' ... ,n,
t:
+a~-?s "'o_~,.
:ato l )
0.75(0.2) = 0.15
;o('l/-~ /o
C\~\,0
cysS, e\\o'Ì.\o u~o-'V ss o ' da,
·8
No-petrolio e FSS
= 0.5
No-petrolio, dato FSS
~ ~:~ ~.2·~6
0.75(0.8) = 0.6 etrof.· Jo No-petrolio e USS
O-p
stato i).
~ oo~i
No-petrolio, dato
l
ussll
l l
Probabilità non condizionate: P(FSS) = 0.15 + 0.15 = 0.3 : P(risultato) P(USS) = 0.1 + 0.6 = 0.7 __________ _ ___ _)
CAPITOLO 12
500
TEORIA DELLE DECISIONI
Il diagramma ad albero delle probabilità in Figura 12.2 mostra un modo di organizzare questi calcoli in maniera intuitiva. Le probabilità a priori nella p1ima colonna e le probabilità condizionate nella seconda colonna sono parte dei dati in ingresso del problema. Moltiplicando ogni probabilità della prima colonna con le probabilità della seconda colonna si ottengono le corrispondenti probabilità composte nell a terza colonna. Ciascuna probabilità composta diventa il numeratore nel calcolo della con·ispondente probabilità a posteriori nella quarta colonna. Sommando le probabilità composte relative allo stesso risultato (come indicato in basso alla figura) si ottiene il denominatore per ogni probabilità posteriori relativa a quel risultato. La Figura 12.3 mostra un modello per il calcolo delle probabilità a posteriori mediam Ex ce!. Dopo aver eseguito questi calcoli, è possibile applicare la regola di decisione di Bayes. usando le probabilità a posteriori al posto di quelle a priori . Considerando ancora i payo ~ (in unità di migliaia di dollari) della Tabella 12.2 e sottraendo il costo della sperimentazione, si ottengono i seguenti risultati.
Valori attesi del payoffse il risultato corrisponde a scandagli sismici sfavorevoli ( USS): E[Payoff(trivellazione l Risultato = USS) =
+
(700 ) +
~
(- l 00) - 30
= - 15.7 E[Payoff(vendita l Risultato = USS) =
~
(90)
+~
(90) - 30
= 60 Valori attesi del payoffse il risultato corrisponde a scandagli sismici favorevoli (FSS):
E[Payoff(trivellazione l Risultato = FSS) =
~
(700) +
~ (-
100) - 30
= - 270 . . l l E[Payoff(vend1ta l Risultato = FSS) = (90) + (90) - 30
2
2
= 60 • FIGURA 12.3 Modello per il calcolo delle probabilità a posteriori con Excel, per il problema completo della Goferbroke Co. A
Calco lo
c
B Probabilit~
D
()
FSS 0,6 0,2
uss
12 13 14 15 16 17 18 19
8 Probabilità
M
N
o
Q
P Risultato 0.3 0,7
uss 0,4 0,8
P stato Risultato stato Petrolio No-Petrolio 0,5 0.5 0,1428S71 0,8571429 '
c
a esteriori
Risultato =05 =ES =FS =05 =Hs
K
P(RisuHato 1Stato Risultato
Oati:
Probabilità a posteriori Risultato FSS
H
a Posteriori
P Risultato =MATR.SOMMA .PRODOTTO(C6:C1 O;D6: 01 O) =MATR.SOMMA .PROOOTTO(C6:C1 O;E6:E1O) =MATR.SOMMA.PRODOTTO(C6:C1 O;F6:F1 O) •MATR.SOMMA .PROOOTTO(C6:C1 O; ()6:()1 O) =MATR .SOMMA .PROOOTTOCC6:C1 O: H6: H1 Ol
D Prstato 1Risultato stato =86 =87 =C7'D71MA TR .SOMMA.PRODOTTO(C6:C10;06:D1 O) =C6'06JMA TR .SOMMA.PRODOTTO(C6:C1 O;D6:D1 O) =C6'E6JMATR .SOMMA .PRODOTTO(C6:C1 O;E6:E1 O) =C7'E7 JMATR.SOMMA.PROOOTTO(C6:C1 0;06:01 O) =C6'F6JMATR .SOMMA .PROOOTTO(C6:C1 O;F6:F1 O) =C7'f7JMATR.SOMMA.PROOOTTO(C6:C1 0;06:01 0) =C6'()6JMA TR .SOMMA .PROOOTTO(C6:C1 o:G6:()1 O) =C7'()7 !MA TR .SOMMA.PROOOTTO(C6:C1 0;06:01 O) =C6'H6JMA TR .SOMMA .PRODOTTO(C6:C1 O:H6:H1 0) =C7'H7JMA TR.SOMMA .PROOOTTOCC6:C1 0:06:01 0)
R
12.3
'rganizzare le probabiproblema. nda colonscuna proJilità a poesso risulobabilità a i mediante :di Bayes, ra i payoff mentazio-
501
DECISIONE CON SPERIMENTAZIONE
Poiché l'obiettivo è massimizzare il payoff atteso, questi risultati detenninano la strategia ottimale mostrata nella Tabella 12.5. Tuttavia, questa analisi non chiarisce se è conveniente spendere $30 000 per conduiTe la sperimentazione (la prospezione con metodo sismico a riflessione). Forse sarebbe meglio evitare questa ulteriore spesa e usare la soluzione ottima fornita dall'analisi senza sperimentazione (trivellare il tetTeno per cercare il petrolio, con un payoff atteso di $100 000). Questa questione verrà affrontata di seguito. TABELLA 12.5 Strategia ottimale con sperimentazione, secondo la regola di decisione di Bayes, per il problema completo della Goferbroke Co. Alternativa Risultato della prospezione sismica ottimale
uss FSS
Payoff atteso escluso il costo dell'indagine
Payoff atteso incluso il costo dell'indagine
90 300
60 270
Vendere il terreno Trivellare
1/i (USS):
Il valore della sperimentazione
i (FSS):
Prima di eseguire un qualsiasi esperimento, si dovrebbe determinare il suo potenziale valore. Vengono di seguito presentati due metodi complementari per valutare questo valore. Il primo metodo assume (non realisticamente) che l'esperimento eliminerà tutte le incertezze su quale sia il vero stato, e poi calcola in modo rapido quale sarà la correzione del valore atteso del payoff(ignorando il costo dell'esperimento). Questa quantità, detta valore atteso de !l 'informazione pe1jetta, fornisce un limite superiore per il valore potenziale dell'esperimento. Perciò, conviene eseguire l'esperimento solo se questo limite superiore è inferiore al suo costo. Se invece questo limite superiore è maggiore del costo dell'esperimento, allora si può applicare il secondo metodo (meno rapido) che calcola l'effettivo miglioramento del payoff atteso ottenuto eseguendo l'esperimento (ignorando il costo dell'esperimento stesso). Il confronto tra questo miglioramento e il suo costo permette di stabilire se tale esperimento deve essere eseguito.
Q
R
Valore atteso dell'informazione perfetta. Si supponga che l'esperimento possa identificare senza alcun dubbio quale sia il vero stato, e quindi fornisca una informazione "perfetta". Qualunque sia lo stato determinato, si sceglie naturalmente l'altemativa con il massimo payoffper quello stato. Non si sa a priori quale sarà questo stato, per cui un calcolo del payoff atteso con informazione perfetta (ignorando il costo dell 'esperimento) richiede che, per ogni stato, il massimo payoff sia pesato con la probabilità a priori di quello stato. Questo calcolo è mostrato in basso alla Tabella 12.6 per il problema della Goferbroke Co., e il valore atteso dell ' informazione perfetta è 242.5 . Quindi, se la Goferbroke Co. fosse in grado di stabilire se c'è petrolio nel tetTeno prima di decidere cosa fare, il payoff atteso al momento (prima si avere questa informazione) sarebbe di $242 500 (escluso il costo dell 'esperimento che ha fornito l' informazione). TABELLA 12.6 Valore atteso del payoff con l'informazione perfetta per il problema completo della Goferbroke Co. Stato Petrolio
No-petrolio
l. Trivellazione 2. Vendita del terreno
700 90
- 100 90
Payoff massimo Probabilità a priori
700 0.25
Alternativa
Payoff atteso con informazione perfetta
90 0.75
502
CAPITOLO 12
TEORIA DELLE DECISIONI
Per valutare se l'esperimento deve essere eseguito, si usa questa quantità per calcolare il valore atteso dell'informazione perfetta. Il valore atteso dell'informazione perfetta, abbreviato EVPI (Expected Value of Pe1ject Information) , si ottiene nel seguente modo: EVPI = valore atteso del payoff con l 'informazione petfetta - valore atteso del payoff senza sperimentazione.3 Quindi , siccome la sperimentazione di solito non fornisce un ' infonnazione perfetta, EVPI fornisce un limite superiore sul valore atteso della sperimentazione.
Per questo esempio, si è determinato, nel Paragrafo 12.2, che il valore atteso del payoff senza sperimentazione (secondo la regola di decisione di Bayes) è 100. Pertanto, EVPI = 242.5 - 100 = 142.5. Poiché 142.5 è maggiore di 30 (costo della sperimentazione), è conveniente effettuare la prospezione. Per esserne sicuri, si procede con il secondo metodo di valutazione del potenziale beneficio della sperimentazione. Valore atteso della sperimentazione. Piuttosto che ottenere solo un limite superiore per l'incremento atteso del payoff(escluso il costo dell 'esperimento) dovuto alla sperimentazione si cercherà ora di calcolare direttamente questo incremento. Questa quantità è detta valore atteso della sperimentazione. Per determinare questa quantità si deve prima calcolare il valore atteso del payoff senza sperimentazione (escluso il costo de !l'esperimento) questo valore si ottiene ripetendo i calcoli descritti precedentemente per determinare le probabilità a posteriori, la strategia ottimale risultante con la sperimentazione e il corrispondente valore atteso del payoff (escluso il costo dell'esperimento) per ogni possibile risultato dell'esperimento. Ciascuno di questi payoff attesi deve essere pesato con la probabilità del con·ispondente risultato, cioè
payoff atteso con la sperimentazione =
=
l: P (Risultato = risultato j)E[payof~Risultato = risultato j ]. j
dove la sommatoria è su tutti i possibili valori dij. Per l'esempio considerato, sono stati già ricavati i termini a secondo membro di questa equazione. l valori di ?(Risultato = risultato j) per i due possibili risultati della prospezione - sfavorevole (USS) e favorevole (FSS) - sono stati calcolati in fondo al diagramma ad albero delle probabilità nella Figura 12.2 e sono P(USS)
= 0.7,
P(FSS)
= 0.3.
Per la strategia ottimale con sperimentazione, il cotTispondente payoff atteso (escluso il costo della prospezione sismica) per ogni risultato è stato ottenuto nella terza colonna della Tabella 12.5 E[Payoff l Risultato = USS] = 90 E[Payoff l Risultato = FSS] = 270 Con questi valori , Valore atteso del payoff con la sperimentazione
= 0.7(90) + 0.3(300) = 153
Ora è possibile calcolare il valore atteso della sperimentazione. 3 Il valore dell'info rmazione peifetta è una variabile casuale uguale al payoff con infmmazione perfetta meno il payoff senza sperimentazione. La qu antità EVPI è il valore atteso di questa variabile casual e.
12.4
L'ALBERO DELLE DECISIONI
503
Il valore atteso della sperimentazione, abbreviato EVE (Expected Value of Experimenta ti o n), si ottiene nel seguente modo:
)]are il
EVE = valore atteso del payoff con sperimentazione - valore atteso del payoff senza sperimentazione.
lue of
Quindi, la quantità EVE identifica il valore potenziale della sperimentazione. !nza
Per la Goferbroke Co.,
EVE = 153 - 100 = 53.
for-
Poiché questo valore è maggiore di 30, costo di una dettagliata prospezione con metodo sismico a riflessione, conviene effettuare la sperimentazione.
payoff
1are la lei po-
tperiosperintità è ff senendo i 5ia otJayoff .scuno ultato,
atoj] ,
~uesta
JeZIOma ad
uso il a del-
neno il
12.4
L'ALBERO DELLE DECISIONI L'albero delle decisioni fornisce un utile strumento per visualizzare il problema e per organizzare il calcolo già descritto nei due paragrafi precedenti. Questi alberi sono utili soprattutto quando si deve prendere una sequenza di decisioni .
Costruzione dell'albero delle decisioni L'esempio considerato coinvolge una sequenza di due decisioni: l. si deve condurre una prospezione sismica prima della scelta finale? 2. quale scelta fare (trivellare per cercare il petrolio oppure vendere il terreno)?
Il cotTispondente albero delle decisioni (prima di inserire i valori numerici ed eseguire calco li) è mostrato nella Figura 12.4 . I punti di congiunzione nell'albero delle decisioni sono detti nodi e le linee sono dette rami. Un nodo decisione, rappresentato da un quadratino, indica che una decisione deve essere presa in quel punto del processo. Un nodo evento, rappresentato da un cerchio, indica che in quel punto si verifica un evento casuale. Quindi, nella Figura 12.4, la prima decisione è rappresentata dal nodo decisione a. Il nodo b è un nodo evento che rappresenta l' evento casuale corrispondente al risultato della prospezione sismica. I due rami uscenti dal nodo evento b rappresentano le due possibil i scoperte della prospezione. Successivamente, si ha la seconda decisione (nodi c, d, ed e) con le rispettive due scelte possibili . Se la decisione è trivellare per cercare il petroli o, allora si incontra un altro nodo evento (nodi/, g, e h), e i rami uscenti corrispondono ai due possibili stati. Si noti che il percorso seguito dal nodo a per raggiungere un qualsiasi ramo termina le (eccetto quello in basso) è deternlinato dalle decisioni prese e da eventi casuali che sono fuori dal controllo del decisore. Questa è una caratteristica dei problemi affrontati con la teoria delle decisioni. Il prossimo passo nella costruzione dell ' albero delle decisioni è inserire i valori come mostrato nella Figura 12.5. I valori riportati al di sopra o al di sotto dei rami che non sono in parentesi sono i flussi di pagamenti (in migliaia di dollari) che si verificano per quei rami. Per ogni percorso lungo l'albero dal nodo a a un ramo tenninale, questi stessi valori sono poi sommati per ottenere il payoff totale risultante indicato in grassetto alla destra di quel ramo. Gli altri valori sono le probabilità degli eventi casuali. In particolare, poiché ogni ramo uscente da un nodo evento rappresenta un possibile evento casuale, la probabilità che questo evento si verifichi per quel nodo è inserita tra parentesi lungo il ramo corri spondente. Dal nodo evento h, le probabilità sono probabilità a priori di questi stati, per-
504
CAPITOLO 12
TEORIA DELLE DECISIONI
·o<::-~
»'1>"'~ ~
"'z._. . .
.:,0\.~
o'-~
c:,'\'1>"'
b ~
.Ò'
rV ~
péll/orel/
e
O/e
~
-<""
$rfl.) o"
'l.J"J
" a
• FIGURA 12.4 Valore atteso del payoff con l'informazione perfetta per il problema completo della Goferbroke Co.
%S' S't ;l]q
· o<::-~
P'bs
:ot'<. 'oiJt>
»'1>"'~
. ~ '~
No-petrolio
"-'.....~
ché in questo caso non è stata condotta alcuna prospezione sismica per ottenere maggiori informazioni. Invece, i nodi eventife g seguono dalla decisione di eseguire la prospezione sismica (e quindi di trivellare). Pertanto, le probabilità relative a questi nodi evento sono probabilità a posteriori, condizionate dal risultato della prospezione. Questi valori sono riportati nelle Figure 12.2 e 12.3 . Infine, vi sono i due rami uscenti dal nodo evento b. In questo caso i valori sono le probabilità dei risultati della prospezione sismica, Favorevole (FSS) o Sfavorevole (USS), calcolate in fondo al diagramma delle probabilità nella Figura 12.2 o nelle celle Cl5:Cl6 della Figura 12.3.
Analisi del problema Avendo costruito l'albero delle decisioni, e calcolati tutti i valori numerici , si è pronti per analizzare il problema mediante la seguente procedura. l. Partire dal lato destro dell'albero delle decisioni e spostarsi di una colonna alla volta. Per ogni colonna, eseguire o il passo 2 o il passo 3 a seconda che i nodi in quella colonna siano nodi evento o nodi decisione. 2. Per ogni nodo evento, calcolare il valore atteso del payo.ff" moltiplicando il payoff atteso di ogni ramo (indicato in grassetto sulla destra del ramo) per la probabilità di quel ramo e poi sommando le quantità ottenute. Riportare questo payoff atteso in grassetto accanto al nodo, e designare questa quantità anche come il payoff atteso per il ramo che ha condotto a questo nodo. 3. Per ogni nodo decisione, confrontare i payoff attesi dei suoi rami e scegliere l'alternativa il cui ramo ha payoff atteso maggiore. Indicare questa scelta sul! 'albero delle decisioni inserendo due barre su ogni ramo scartato.
12.4
L'ALBERO DELLE DECISIONI
505
Payoff . (.0 \A-?Ì)
t> eH~
-~~1,~
«.,~'"-//'\~~:)
800
670
o
No-petrolio (0 .857)
-130
60
~"\.Ì o'-~
;..d/ s'~. .o'./ 1:) .
IQ
5)
670
?eH~ \
b
~
800
. è" !ìf
o
No-petrolio (0.5)
~
.~
l
~
- 130
~
ò.o
l;)
7ì
60
l<;t;'
a
•
FIGURA 12.5
· IQ '2.5J ?etr~
J\.'ess0
volta. :olon-
fattei quel etto ramo rnatideci-
.~~1,~
.Oros
L'a lbero delle decisioni della Figura 15.4 dopo l'inserimento delle probabil ità degli eventi casuali e dei payoff.
ggwn pezwtto so)ri sonto b. ;mica, lbilità
""- O
l)él h.'-......
"~''l/\,~~:)
\0('<:. tol) 0
800
700
o
No-petrolio (0. 75)
-100
90
Per iniziare questa procedura, si consideri la colonna dei nodi più a destra, cioè i nodi eventoj; g , e h. Eseguendo il passo 2, si ottengono i correspondenti payoffattesi (EP): l 6 EP = - (670) + - (-130 ) = - 15.7
7 l
EP =
2
EP =
4
l
7
(670) + (700) +
l 2 (-
3
4
per il nodof
130) = 270
per il nodo g
(-100 ) = 100
per il nodo h
Questi valori vanno inseriti accanto ai rispettivi nodi, come mostrato nella Figura 12.6. Successivamente, ci si sposta nella colonna a sinistra, che è costituita dai nodi decisione c, d, ed e. Il payoff atteso per un ramo che conduce a un nodo evento è riportato in grassetto sopra il nodo evento. Al passo 3 vengono eseguite le seguenti operazioni. Nodo c:
l' alternativa trivellazione ha EP = - 15.7 l' alternativa vendita ha EP = 60 60 > - 12.7, per cui si sceglie l'alternativa vendita
Nodo d:
l' alternativa trivellazione ha EP = 270 l'alternativa vendita ha EP = 60 270 > 60, per cui si sceglie l' alternativa trivellazione
506
CAPITOLO 12
TEORIA DELLE DECISIONI
Payoff . (O \ll.-3)
"-15.7 ·,o<::-" (j·
·.O.~~~'V
",'-'
60
_.. ,
?etr~
670
o
800
- - - - 130 No-petrolio (0.857)
\:\\:\
0':\Ì
60
o'-e, .0.
.o.O~
s'<~
\:\
·
123
"e, 270 . o'
<§'lh
J.~""'
.o
tV ~
péi~ ore l-c
.e
~
.;:"'!~
:§:
4
6-o
O/e (O
-3)
"'~,.o. /. 270 /_...'\\:\\:\
(O 5)
670
?et~
o
800
(g
No-petrolio (0.5)
- 130
dl
l
60
123 • FIGURA 12.6 L'albero finale delle decisioni che visualizza l'ana lisi del problema completo della Goferbroke Co.quandoipayoffsono espressi in termini monetari.
.
~
..._______o
ssu), '-----. l}c{ r.
""''bs
\De<. 'o/Je
0
~~""'
"'~"e,
<::-e, 100
. l() '25) ?etr~
800
(h
100~\:\
o
No-petrolio (0. 75)
Vendita
Nodo e:
700
-100
90
l 'alternativa trivellazione ha EP = l 00 l'alternativa vendita ha EP = 90 100 > 90, per cui si sceglie l'alternativa trivellazione
Per ogni alternativa scelta, il payoff atteso è mostrato in grassetto sopra il corrispondente nodo decisione. L'alternativa selezionata è anche identificata inserendo due barre sui rami scartati. Spostandosi di un 'altra colonna a sinistra, si arriva al nodo b. Poiché questo è un nodo evento, si deve eseguire il passo 2 della procedura. Il payoff atteso per ciascuno dei suoi rami è riportato sul successivo nodo decisione. Pertanto, il payoff atteso è EP
= 0.7(60) + 0.3(270) = 123 per il nodo b
che viene scritto sopra questo nodo come mostrato nella Figura 12.6. Infine, ci si sposta a sinistra sul nodo a, che è un nodo decisione. Eseguendo il passo 3, si ottiene Nodo a:
Eseguire la prospezione ha EP = 123 Nessuna prospezione ha EP = l 00 123 > l 00, per cui si sceglie di fare la prospezione sismica
Il payoff atteso 123 va inserito sopra il nodo e due barre indicano il ramo scartato. Questa procedura è stata eseguita spostandosi nella fase di analisi da destra verso sinistra. Tuttavia, avendo completato l'albero delle decisioni in questo modo, si può leggere l'albero da sinistra verso destra per vedere l'effettiva progressione degli eventi. Le doppie
12.5
)
507
barre escludono percorsi indesiderati. Quindi, dati i payoff per i risultati finali a destra, la regola di decisione di Bay es suggerisce di seguire solo i percorsi rimasti aperti da sinistra verso destra per raggiungere il massimo payoff atteso possibile. Seguendo questi percorsi nella Figura 12.6, si arriva alla seguente strategia ottima, secondo la regola di decisione di Bayes.
Payoff
-
TEORIA DELL'UTiliTÀ
670
-130
Strategia ottima: Eseguire la prospezione con metodo sismico a riflessione. Se il risultato è sfavorevole, vendere il terreno. Se il risultato è favorevole, trivellare per cercare il petrolio. Il valore atteso del payoff(incluso il costo della prospezione) è 123 ($123 000).
60
Questa (unica) soluzione ottima naturalmente è la stessa ottenuta nel paragrafo precedente senza l'uso del! ' albero delle decisioni (si faccia riferimento alla strategia ottima con sperimentazione data nella Tabella 12.5 e la conclusione alla fine del Paragrafo 12.3 secondo la quale conviene eseguire la sperimentazione). Per un qualunque albero delle decisioni , questa procedura per induzione all'indietro conduce sempre alla detetminazione della strategia ottima, dopo che sono state calcolate le probabilità dei rami uscenti dai nodi .
670
--130
60
12.5
TEORIA DELL'UTILITÀ
700
- -100
90
'ondente sui rami
Jn nodo dei suoi
)asso 3,
>O Sl!11-
eggere doppie
Finora, n eli ' applicazione della regola di decisione di Bayes, si è ipotizzato che il payoff atteso in termini monetari fosse una misura appropriata delle conseguenze di una specifica scelta. Tuttavia, in molte situazioni questa assunzione non è appropriata. Per esempio, si supponga che a una persona sia offerta la scelta di (l) accettare una possibilità 50:50 di vincere $ 100 000 o niente oppure (2) di ricevere $ 40 000 con certezza. Molte persone preferirebbero i 40 000 dollari anche se il payoff atteso per la possibilità di vincere $100 000 è di $50 000. Un ' azienda potrebbe non essere disponibile a investire una grossa somma di denaro in un nuovo prodotto quando il profitto atteso è significativo se c' è un rischio di perdere l' investimento e quindi finire in bancarotta. La gente stipula delle assicurazioni anche se sono investimenti poveri dal punto di vista del payoff atteso. Questi esempi invalidano la regola di decisione di Bayes? Fortunatamente, la risposta è no, perché c'è un modo per trasfom1are i valori monetari secondo una scala appropriata che riflette le preferenze del decisore. Questa scala è dettafimzion e di utilità monetaria.
La funzione di utilità per il denaro La Figura 12.7 mostra una tipica funzione di utilità u(M). Essa indica che, per una persona con questa funzione di utilità il valore per 30 000 dollari è il doppio di l O000 e il valore per l 00 000 è il doppio che quello di 30 000. Questo riflette il fatto che la priorità più alta per questa persona è ottenere i primi $ 1O000. Quando la funzione ha questa pendenza decrescente al crescere della quantità di denaro si dice che si ha una utilità monetaria marginale decrescente e una persona con questo tipo di funzione di utilità è detta avversa al rischio. Tuttavia, non tutti gli individui hanno una utilità marginale decrescente. Alcune persone sono amanti del rischio anziché avverse, ed esse vivono cercando il " grande risultato " . La pendenza della loro funzione di utilità aumenta al crescere della quantità di denaro, per cui esse hanno una utilità monetaria marginale crescente. Il caso intermedio è quello di un individuo indifferente al rischio, che attribuisce al denaro esattamente il suo valore nominale e l'utilità è semplicemente proporzionale alla quantità di denaro coinvolta. Sebbene alcune persone sembrano essere neutrali al rischio quando solo una quantità piccola di denaro è in gioco, è difficile essere veramente neutrali in presenza di una grossa somma di denaro.
508
CAPITOLO 12
TEORIA DELLE DECISIONI
u(M)
4--- ------ -- -- - ---- - - ----- - - -------
3
2 - ---------
• FIGURA 12.7 Una tipica funzione di utilità per il denaro: u(M) è l'util ità per una quantità di denaro M.
o
$ l o000
$30 000
$60 000
$100 000
M
È anche possibile avere una combinazione di questi comportamenti. Per esempio, un individuo potrebbe essere essenzialmente indifferente al rischio per piccole quantità di denaro, ma diventare un amante del rischio per modiche somme, e avverso al rischio per grosse somme. Ino ltre, l'attitudine verso il rischio può variare nel tempo e in base alle circostanze. L'attitudine verso il rischio può anche essere diversa quando si tratta di finanze personali rispetto a quando si decide per conto di un'organizzazione. Per esempio, i dirigenti di un 'azienda commerciale devono considerare la situazione della compagnia e la filosofia collettiva della direzione nel determinare l 'attitudine appropriata verso il rischio quando devono prendere decisioni gestionali. 4 Persone diverse hanno funzioni di utilità diverse e questo ha un'implicazione importante per le decisioni in condizioni di incertezza. Quando nell'analisi di un problema mediante la teori a delle decisioni viene considerata una jimzione di utilità monetaria, questa funzione deve essere determinata in modo da adattarsi alle preferenze e ai valori del decisore (che può essere un singolo individuo o un gruppo di persone).
Il calcolo della funzione di utilità si basa sulla seguente proprietà fondamentale . Per la funzione di utilità monetaria vale la seguente proprietà: due alternative sono indifferenti al decisore se esse hanno la stessa utilità attesa. 4
Per una panoramica su lle forme della funzione di utilità per 332 proprietari-dirigenti e l' impatto di questa forma sul comportamento organizzativo, si veda J. M. E. Pennings e A. Smidts, "The Shape of Utility Functions and Organizational Behavior", Manegem enl Science, 49: 1251 - 1263, 2003.
12.5
TEORIA DELL'UTILITÀ
509
Per illustrare questa proprietà, si supponga che per il decisore la funzione di utilità sia quella mostrata nella Figura 12.7. Inoltre si assuma che a questa persona sia offerta la seguente opportunità. Offerta: ricevere $100 000 (utilità = 4) con probabilità p o niente (utilità = O) con probabilità (l - p). Quindi, E(utilità) = 4p, per questa offerta. Pertanto, per ciascuna delle seguenti tre coppie di alternative, la prima e la seconda alternativa sono indifferenti al decisore: l. l'offerta conp = 0.25 [E(utilità) =l ] oppure avere sicuramente $10000 (utilità= l); 2. l'offetta con p= 0.5 [E(utilità) = 2] oppure avere sicuramente $30 000 (utilità = 2); 3. l 'offerta con p = 0.75 [E( utilità) = 3] oppure avere sicuramente $60 000 (utilità= 3).
---
Questo esempio illustra anche un modo con cui si può costruire la funzione di utilità. La stessa ipotetica offerta deve essere presentata: avere una grossa somma di denaro (per esempio, $100 000) con probabilità p oppure niente. Per ciascuna delle somme minori (per esempio, $1 O000, $30 000 e $60 000), si deve identificare quale valore di p rende indifferente la scelta tra l'offerta precedente e la somma in denaro: l 'utilità corrispondente a questa minore somma di denaro è p volte l 'utilità della somma di denaro ne li' offerta. Nella funzione di utilità la scala (per esempio, utilità = l per $1 O000) è irrilevante. Quello che conta sono solo i valori relativi dell'utilità. Tutte le utilità possono essere moltiplicate per una costante qualunque senza che questo cambi l'alternativa che ha la più grande utilità attesa. Il ruolo fondamentale della funzione di utilità nella teoria delle decisioni può essere così riassunto.
indidena· groscirco-
Quando per misurare il valore relativo dei possibili risultati è usata la funzione di utilità del decisore e nella regola di decisione di Bayes si sostituiscono i payoff monetari con le corrispondenti utilità. Pertanto, la scelta ottima (o la serie di scelte) è quella che massimizza l'utilità attesa.
perso!nti di osofia uando
Occorre menzionare che si possono costruire funzioni di utilità anche quando alcune o tutte le conseguenze importanti delle alternative non sono monetarizzabili (per esempio, le conseguenze della decisione di un medico nel trattare un paziente riguardano la salute futura del paziente). Tuttavia, in queste circostanze, è importante includere il valore di questi giudizi nel processo di decisione. Questo non è necessariamente semplice, poiché può richiedere di attribuire un valore a quello che si desidera o a conseguenze intangibili. In ogni caso, è comunque importante inserire questi giudizi nel processo decisionale.
M
1
ortan-
Jna
usi
) di
en-
5ta fornctions
Applicazione della teoria dell'utilità al problema della Goferbroke Co. Alla fine del Paragrafo 12.1 , si è menzionato che la Goferbroke Co. opera senza grossi capitali, per cui una perdita di $ 100 000 avrebbe conseguenze piuttosto serie. L'azienda ha già contratto molti debiti per portare avanti l'attività. Lo scenario peggiore sarebbe spendere $30 000 per una prospezione sismica e poi perdere anche $ 100 000 per la trivellazione perché non c'è il petrolio. Questo scenario non porterebbe la compagnia in bancarotta, ma la lascerebbe in una posizione finanziaria precaria. D' altra parte, trovare il petrolio è una prospettiva allettante, perché un guadagno di $700 000 assicurerebbe alla compagnia solide basi finanziarie. Per applicare 1afunzione di utilità del decisore al problema così come è stato descritto nei Paragrafi 12.1 e 12.3, è necessario identificare l'utilità per tutti i possibili payoffmo-
510
CAPITOLO 12
TEORIA DELLE DECISIONI
netari. In unità di migliaia di dollari, questi possibili payoff e le corrispondenti utilità sono elencati nella Tabella 12.7. Come punto di partenza nella costruzione della funzione di utilità, naturale porre l'utilità di un importo nullo uguale a zero, per cui u(O) = O. Un passo successivo appropriato è quello di considerare lo scenario peggiore e quello migliore e porre la seguente domanda.
e
Si supponga di avere solo le seguenti due alternative. L' alternativa l è di non fare nulla (payoff e utilità = 0). L' alternativa 2 è di avere una probabilità p di un payoff di 700 e una probabilità l -p di ottenere un payoff di -130 (perdita di 130). Per quale valore di p queste due altemative risultano indifferenti?
s·
. La scelta de l d ectsore e' p = l
Se si indica con u(M) l'utilità di un payoff monetario pari a M, questa scelta di p implica che
4 l su (- 130) +-su(700)
=o
(utilità dell ' alternativa 1).
I valori di u( - 130) o di u(700) possono essere definiti in modo arbitrario (con la sola condizione che il primo sia negativo e il secondo positivo) per stabilire la scala della funzione di utilità. Se si sceglie u( - 130) = - 150 (una scelta conveniente perché rende u(M) approssimativamente uguale a M quando M si avvicina a 0), allora questa equazione fornisce u(700) = 600. Per valutare u( - l 00), si deve scegliere p tale che per il decisore siano indifferenti un payoff di - 130 con probabilità p o un payoff certo di - 100. La scelta è p= 0.7, per cui
u( - 100) =p u(-130) = 0.7 (- 150) = - 105 TABELLA 12.7 Utilità per il problema completo della Goferbroke Co. Payoff monetario
Utilità
- 130 - 100 60 90 670 700
- 150 - 105 60 90 580 600
Per ottenere u(90), si deve selezionare un valore di p tale che siano indifferenti un payoff di 700 con probabilità p o un payoff certo di 90. La scelta è p= 0.15, per cui u(90) =p u(700) = 0.15(600) = 90
A questo punto, si può tracciare una curva passante per u( - 130), u( -:- 100), u(90) , e u(700) per detern1inare la funzione di utilità del decisore come mostrato nella Figura 12.8. I valori su questa curva per M = 60 e M= 670 forniscono le corrispondenti utilità, u(60) = 60 e u(670) = 580, che completano i valori nella Tabella 12.7. Nella Figura 12.8, la retta tratteggiata con pendenza 45° rappresenta il valore monetario M corrispondente alla quantità di denaro M . Questa retta ha fornito il valore dei payoff usati nei paragrafi precedenti. Si noti come u(M) è essenzialmente uguale a M per piccoli valori (positivi o negativi) di M , e come u(M) gradualmente si allontani da M per valori grandi di M. Questa è una proprietà tipica per un individuo moderatamente avverso al rischio.
Un approccio alternativo per stimare u(M) La precedente procedura per detenninare la funzione u(M) chiede ripetutamente di fare una scelta difficile su quale probabilità rende due alternative indifferenti. Molte persone
12.5
ità sono
TEORIA DELL'UTILITÀ
511
sarebbero a disagio nel prendere questo tipo di decisione. Pertanto, a volte si usa un approccio alternativo per stimare la funzione di utilità. Si assume che la funzione di utilità abbia una specifica espressione matematica, e poi si adatta questa espressione in modo che essa approssimi il più possibile l'attitudine verso il rischio del decisore. Per esempio, una funzione particolannente usata (per la sua relativa semplicità) è la funzione di utilità esponenziale,
le porre approeguente l
nulla tma
(
ueste
doveR è la tolleranza al rischio della persona in questione. Questa funzione ha un'utilità marginale decrescente, per cui è utilizzata per rappresentare un individuo avverso al rischio . Una grande avversione al rischio corrisponde a un valore piccolo di R (in corrispondenza del quale il grafico della funzione si incurva rapidamente), mentre una moderata avversione al rischio corrisponde a un valore grande di R (in corrispondenza del quale la funzione si incurva più gradualmente). Siccome il decisore per il caso della Goferbroke Co. ha un'avversione al rischio relativamente piccola, il grafico della funzione di utilità nella Figura 12.8 si incurva piuttosto lentamente. Il valore di R per il quale si ha u(670) = 580 e u(700) = 600 è approssimativamente R = 2250. D 'altra parte, il decisore diventa molto più avverso al rischio quando si possono verificare grosse perdite di denaro, poiché questo comporterebbe la bancarotta, per cui il valore diR per il quale u( -130) = - 150 si riduce a circa 465.
li ca che
•la conmzione M) ap! fornienti
M)
u(M ) = R l - e- •
~
W1
:m
• FIGURA 12.8 La funzione di utilità per il denaro del proprietario della Goferbroke Co.
u(M) //
~,o//
""'"" / o<::'/ c':\.<$' /
o' / ~~-..;// / / /
// / / /
/ / /
payoff
90), e r;igura i utili=
~randi
hio.
i fare rsone
/ /
/ /
/. .(;
4-
4-
~
-0
/
512
CAPITOlO 12
TEORIA DEllE DECISIONI
Sfortunatamente, non è possibile usare due valori diversi di R per la stessa funzione di utilità. Uno svantaggio della funzione di utilità esponenziale è che essa assume una avversione al rischio costante (un valore fisso diR), indipendentemente da quanto denaro è coinvolto . Questo non si adatta alla situazione della Goferbroke Co. perché l'attuale scarsità di denaro rende il decisore molto preoccupato di perdere una grossa somma. In altre situazioni nelle quali le conseguenze di una potenziale perdita non sono gravi. la funzione di utilità esponenziale può essere un'approssimazione ragionevole. In tal caso è facile stimare il valore appropriato di R. Basta determinare per quale valore di R le seguenti due alternative sono indifferenti:
A 1 : una scommessa 50 : 50 in cui può guadagnare R dollari con probabilità 0.5 oppure perdere
~
dollari con probabilità 0.5 ;
A2 : nessun guadagno né perdita.
L'uso dell'albero delle decisioni per l'analisi del problema della Goferbroke Co. con le utilità La fun zione di utilità monetaria (Tabella 12.7 e Figura 12.8), si può usare in un albero delle decisioni nel seguente modo. La procedura in cui si usa l'albero delle decisioni per anali zzare il problema è identica a quella descritta nel paragrafo precedente con la sola differenza che ora si sostituiscono i payoff monetmi con le utilità. Pe1ianto, il valore ottenuto per va lutare ogni biforcazione dell'albero ora è il valore atteso de li ' utilità anziché del payoff (monetario). Di conseguenza, le decisioni ottime selezionate con la regola di decisione di Bayes massimizzano l'utilità attesa per il problema nel suo complesso.
Quindi, l'albero finale delle decisioni mostrato nella Figura 12.9 assomiglia a quello nella Figura 12.6 riportato nel Paragrafo 12.4. I nodi e i rami sono esattamente gli stessi, così come le probabilità per i rami uscenti dai nodi evento. A solo scopo infonnativo, vengono ancora riportati i payoff monetari totali alla destra dei rami terminali (ma non sono più riportati i singoli payoff monetari accanto a ciascun ramo). Tuttavia, ora bisogna aggiungere le utilità sul lato destro. Sono questi valori che vengono usati per calcolare le utilità attese ripor1ate accanto a tutti i nodi. Queste utilità attese portano alle stesse decisioni nei nodi a, c, e d come nella Figura 12.6, ma la decisione nel nodo e ora cambia da trivellazione a vendita . Tuttavia, la procedura di induzione all'indietro lascia ancora il nodo e su un cammino ch iuso. Pertanto, la strategia ottima resta la stessa ottenuta alla fine del Paragrafo 12.4 (eseguire una prospezione sismica; vendere il terreno se il risultato è sfavorevole; trivellare se il risultato è favorevole). L'approccio usato nei paragrafi precedenti di massimizzare i valori attesi dei payoff monetari equivale ad assumere che il decisore sia indifferente al rischio, per cui u(M ) = M. Utilizzando invece la teoria dell'utilità, la soluzione ottima riflette l'attitudine al rischio del decisore. Con un atteggiamento moderatamente avverso al rischio, la strategia ottima non è cambiata rispetto a prima. Invece per un decisore in qualche modo più avverso al rischio, la soluzione ottima si sposta verso l 'approccio più conservativo di vendere immediatamente il terreno senza fare la prospezione (si veda il Problema 12.5-1). La teoria d eli 'uti lità aiuta a fornire un approccio razionale nelle scelte in condizioni di incertezza. Tuttavia, molte persone non si trovano sufficientemente a loro agio con la nozione relativamente astratta di utilità, o a operare con le probabilità per determinare una funzione di utilità, per essere disposte ad applicare questo approccio. Di conseguenza, la teoria del! 'utilità non è molto usata nella pratica.
12.6
513
l'APPLICAZIONE PRATICA DELLA TEORIA DELLE DECISIONI
me di utiavversio:o è coin;carsità di
Payoff Utilità monetario
670
580
-130
- 150
60
60
670
580
- 130
-150
60
60
700
600
-100 ~ ~ ..
- 105
90
90
. o"'"'-45.7
»'bo'V"'
(]'r:::__
<\.~~"' 60
no gravi, 1 tal caso i R le se-
?V~ - ~ · ,.
0":-ì
._.o·'ù" '
5 oppure
o'-"'
c_,"-.'1>
. o""'215 »'1>"'"'
.,~
··'"'
.~r§ ~rv
(g
<\.'-'~
215
<3{)§:
~.0>
q;
bero del-
quelpayoff albero ;isioni il prot
Ilo nella ssi , così
1
payoff per cui titudine 1 strateJdo più di ven-
-1 ). lioni di 1 la noare una ~n za , la
• FIGURA 12.9 L'albero finale delle decisioni per il problema completo della Goferbroke Co., in cu i viene usata la funzione di utilità per il denaro del proprietario per massimizzare l'uti lità attesa.
12.6
.
~'bo
0
1>"'
1\!es
....
Sql)iì
<\.'-' 90
Pros
«-"'71.25
(f;'r;:::_
\òe<.
'ol)e
L'APPLICAZIONE PRATICA DELLA TEORIA DELLE DECISIONI In un certo senso, l'esempio usato in questo capitolo (il problema della Goferbroke Co.) è una tipica applicazione della teoria delle decisioni. Come per altre applicazioni, il management doveva prendere decisioni (Eseguire una prospezione sismica? Trivellare o vendere il terreno?) in condizioni di grande incertezza. Si tratta di decisioni difficili perché i corrispondenti payoff non sono prevedibili. L' esito dipende da fattori che erano fuori dal controllo del decisore (nel terreno c' è petrolio oppure no?). Pertanto, il decisore ha bisogno di un metodo e una tecnica per decidere in modo razionale in questa situazione incerta. Queste sono le caratteristiche tipiche delle applicazioni della teoria delle decisioni. Tuttavia, per altri motivi , il problema della Goferbroke Co. non è un ' applicazione così ricoiTente. È stata molto semplificata per includere solo due possibili stati (Petrolio e Nopetrolio), mentre nei casi reali c'è un numero considerevole di stati possibili. Per esempio, gli stati potrebbero essere: No-petrolio, presenza di una piccola quantità di petrolio, una moderata quantità, una grande quantità, e un 'enorme quantità, più varie possibilità riguardanti la profondità alla quale si trova il petrolio e le condizioni del suolo che incidono sul costo della trivellazione. Il decisore considera solo due alternative per ciascuna delle due decisioni nell'esempio mentre le applicazioni reali di solito coinvolgono più decisioni, più alternative per ciascuna di esse, e molti stati possibili . Quando si devono trattare problemi più complessi, l'albero delle decisioni può diventare enorme, con molte migliaia di rami terminali . In questo caso, chiaramente non è possibile costruire l' albero a mano né calcolare le probabilità a posteriori e il payoffatteso (o le utilità attese) per i vari nodi per identificare le decisioni ottime. Fortunatamente, sono di-
514
CAPITOLO 12
TEORIA DELLE DECISIONI
sponibili eccellenti pacchetti software (soprattutto per personal computer) per svolgere questi calcoli. Inoltre, sono state sviluppate e inglobate nei vari software particolari tecniche algebriche per trattare eventuali problemi molto complessi. 5 Anche l'analisi della sensitività può diventare ponderosa per problemi di grandi dimensioni: Sebbene sia nom1almente presente nei pacchetti software, la quantità di dati generata può facilmente "sommergere" un'analista. Pertanto, sono state sviluppate alcune tecniche grafiche, per organizzare i dati in modo comprensibile e leggibile. 6 Sono disponibili anche altri tipi di tecniche grafiche che sono di complemento all 'albero delle decisioni nel rappresentare e risolvere i problemi della teoria delle decisioni . Una tecnica che è diventata abbastanza popolare è il diagramma di influenza, comunque si continuano a sviluppare altre e differenti procedure. 7 Molte decisioni strategiche in affari sono prese collettivamente da diversi membri del management. Una tecnica per prendere decisioni di gruppo è quella detta decision conferencing. Questo è un procedimento in cui il gruppo si riunisce per discutere la decisione da prendere con l'aiuto di un 'analista e di un coordinatore. Il coordinatore lavora direttamente con il gruppo per aiutarlo a organizzare e focalizzare la discussione, a pensare al problema in modo creativo, a portare in superficie le ipotesi, e ad affrontare la serie completa dei problemi coinvolti. L'analista usa la teoria delle decisioni affiancando il gruppo nell'esplorare le implicazioni delle varie decisioni alternative. L'analista imposta e risolve modelli, con l'ass istenza di un sistema di supporto per le decisioni di gruppo, e poi applica l 'analisi della sensitività per rispondere alle domande del gruppo relative alle eventuali conseguenze di una scelta. 8 Le applicazioni della teoria delle decisioni di solito coinvolgono una collaborazione tra la persona (o il gruppo), che deve prendere una decisione di tipo manageriale, e un'analista (o un gruppo di analisti) espe110 in Ricerca Operativa. Alcune aziende non hanno un membro dello staff qualificato per svolgere la funzione di analista. Pertanto, sono state costituite società di consulenza specializzate in teoria delle decisioni per svolgere questo ruolo. La teoria delle decisioni è ampiamente usata nel mondo. Per ragioni di riservatezza, di solito le compagnie non pubblicano articoli su riviste specializzate per descrivere le tecniche della Ricerca Operativa, inclusa la teoria delle decisioni . Fortunatamente, talora sono pubblicati articoli su questi specifici argomenti, un buon numero dei quali sulla rivista Jnterfaces . Gli ar1icoli relativi alla teoria delle decisioni fomiscono delle preziose idee sull'applicazione pratica di questa tecnica. La Tabella 12.8 riassume brevemente la natura di alcune applicazioni della teoria delle decisioni apparse su Interfaces . Per ogni applicazione, l'ultima colonna della tabella indica il numero della rivista che contiene il corrispondente articolo. Si può osservare nelle altre colonne la varietà di organizzazioni e applicazioni. Per ogni specifica applicazione, si può intuire quanto sia incerta la situazione e come la teoria delle decisioni sia una naturale tecnica da usare. Per maggiori approfondimenti sull'applicazione pratica della teoria delle decisioni, un buon punto di partenza è il numero di novembre-dicembre 1992 della rivista Intelfaces. Questo è un numero speciale dedicato interamente alla teoria delle decisioni e all'analisi 5
Per esempio, si veda l'anicolo di C. W. Kirkwood, " An Algebraic Approach to Formulating and Solving Large Models for Seguenti al Decisions under Uncertainty", Management Science, 39: 900-913 , July 1993. 6
Per ulteriori informazioni , si veda l' articolo di T. G. Eschenbach , "Spiderplots versus Tornado Diagrams for Sensitivity Analysis", !ntelfaces, 22:40-46, Nov. -Dec. 1992.
7
Per esempio, si consulti l'articolo di P. P. Schnoy, "A Comparison of Graphical Techniques for Decision Analysis" , European Journa/ of Operationa/ Research, 78: 1-21, Oct. 13, 1994. Vedere anche l'articolo di Z. Cova liu e R. M. Oli ver, " Representation and Solution of Decision Problems Using Sequential Decision Diagrams", Management Science, 41: 1860-1881 , Dee. 1995, così come i Capitoli 4 e 9 del testo di K. T. Marshall e R. M. Oli ver, Decision Making and Forecasting, McGraw-Hill , New York, 1995. 8 Per ulteriori informazioni, si consul ino i due articoli su decision conferencing nel numero di novembre-dicembre 1992 della rivista lntelfaces, dove in uno si descrive un'applicazione effettuata in Australia e nell'altro sono riassunte le esperienze di 26 casi di decisioni collegiali svolte in Ungheria.
12.6
•lgere :ecni.men:nera:ecm'albe. Una 1ue si ri del onfesione rettal.re al comuppo sol ve lppli1tuali ae tra ali sta nem;titui-
o. za, di :ecnisono ivista e suldelle indile alne, Sl :urale
u, un 'àces. nali si .olving
'ms · for ~c ision J
di Z.
del rischio. Contiene molti articoli interessanti, incluse le descrizioni dei metodi di base, dell'analisi di sensitività, e del decision conferencing. Contiene anche vari articoli relativi alle applicazioni elencate nella Tabella 12.8 . TABELLA 12.8 Alcune applicazioni della teoria delle decisioni
Organizzazione
Applicazione
Numero della rivista lnterfaces
Amoco Oil Co.
Va lutazione delle strategie di vendita dei suoi prodotti nelle stazioni di servizio.
dicembre, 1982
Ohio Edison Co.
Va lutazione e selezione di un'appa recchiatura per il controllo di emissione parcellizzata per una centrale elettrica a carbone.
febbraio, 1983
Sistema Elettrico del New England
Determinazione di un'appropriata offerta d'appalto per i diritti di recupero di una nave arenata.
marzo-aprile, 1984
Servizio Nazionale Meteorologico
Sviluppo di un piano per rispondere alle prevision i e agli awisi di inondazione.
maggio-giug no, 1984
Amministrazioni Forestali Nazionali
Pianificazione di incendi per migliorare la foresta e l'ecosistema dei pascoli.
settembre-ottobre, 1984
Torneo Oil Corp.
Scelta tra due si ti in cui scavare un pozzo petrolifero (74 diversi stati).
marzo-aprile, 1986
Decisione personale
Applicazione di criteri di decisione, senza l'uso di probabilità, per scegliere tra un mutuo a tasso fisso e uno a tasso variabile.
maggio-giugno, 1986
Servizio Postale degli Stati Uniti
Scelta tra sei alternative per un programma di automazione postal e (il risparm io stimato è di 200 milioni di dollari).
marzo-aprile, 1987; gennaio-febbra io, 1988.
Santa Clara Un iversity
Valutazione della possibilità di implementa re un programma per eseguire un test sull'uso di sostanze farmaceutiche da parte dei loro atleti.
maggio-giugno, 1990
lndependent Living Center (Australia)
Mediante una decisone di gruppo è stato sviluppato una strategia per riorganizzare il centro.
novembre-dicembre, 1992
DuPont Corp.
Varie applicazioni per la pianificazione di strategie; una di queste ha portato a un guadagno di 175 milioni di dollari.
novembre-dicembre, 1992
British Columbia Hydro an d Power Authority
Costruzione di una funzione di utilità per chiarire le compensazioni di valore per molte questioni strategiche.
novembre-dicembre, 1992
Dipartimento della Difesa degli Stati Uniti
Perfezionamento del proced imento di decisione per l'acquisizione di sistemi di armi.
novembre-d icembre, 1992
Industria di dispositivi elettrici
Considerazione dei rischi ambientali e della salute nella gestione di rifiuti sol idi ed emissioni nell'atmosfera.
novembre-d icembre, 1992
Una banca internazionale anon ima
Sviluppo di un programma per la gestione di casi di incendi e mancanza di elettricità.
novembre-dicembre, 1992
Generai Motors
Più di 40 progetti in cui è stata applicata la teoria delle decisioni nell'arco di 5 anni.
novembre-dicembre, 1992
Southern Company (azienda pubblica di distribuzione di energia elettrica)
Valutazione di programmi alternativi per la costruzione e la manutenzione preventiva di ve icoli a motore.
maggio-giugno, 1993
ICI Americas
Selezione di progetti di ricerca e sviluppo che hanno pochi dati a disposizione per la loro valutazione.
novembre-dicembre, 1993
Associazione Nazionale Federale Ipoteche
Selezione di un portafoglio di ipoteche immobiliari
maggio-giugno, 1994
~cision
K. T. dicemo sono
515
L'APPLICAZIONE PRATICA DELLA TEORIA DELLE DECISIONI
(segue)
CAPITOLO 12
516
TEORIA DELLE DECISIONI
TABELLA 12.8 Alcune applicazioni della teoria delle decisioni (continua)
Organizzazione
Applicazione
Numero della rivista lnterfaces
Oglethorpe Power Corp.
Valutazione della possibilità di investire in un sistema di trasmissione del modo di finanziarlo.
marzo-aprile, 1995
Phillips Petroleum Co.
Va lutazione di opportun ità per ricercare il petrolio con una linea di condotta coerente sui rischi che si corrono.
novembre-d icemb re, 1995
Sistema di Energ ia Elettrica
Programmazione degli orari per la manutenzione preventiva delle un ità di generatori elettrici.
luglio-agosto, 1996
Decisione personale
Uso di alberi delle decisioni, per stabil ire se e quando subire un nuovo intervento per correg gere la miopia.
marzo-apri le, 1997
Duke University
Scoperta che un risultato positivo su un certo esame medico ha una probabilità a posteriori molto alta di essere falso.
maggio-giugno, 1999
Westinghouse Corp.
Valutazione di potenziali progetti di ricerca e sviluppo .
novembre-dicembre, 1999
Eastman Kodak Co.
378 progetti hanno utilizzato la teoria delle decisioni neg li anni '90 e questo ha contribuito per circa un miliardo di dollari al fatturato della compagnia.
settembre-ottobre, 2001
Bayer Pharmaceuticals
Valutazione della fattibilità tecnica e del potenzia le mercato di nuovi med icinali.
novembre-dicembre, 2002
Workers' Compensation Board of British Columbia
Uso di alberi delle decisioni per ottimizzare una prima mediazione per ridurre il costo di richieste di alti pagamenti da parte delle assicurazion i.
luglio-agosto, 2003
GE Energy Rentals
Uso di alberi delle decisioni per automatizzare l'assegnazione di linee di credito ai clienti.
settembre-ottobre, 2003
---------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
12.7
----------
CONCLUSIONI La teoria delle decisioni è diventata un 'importante tecnica per eseguire scelte in condizioni di incertezza. È caratterizzata dal fatto di elencare tutte le possibili azioni, identificare i payoff di tutti i possibili risultati, e quantificare le probabilità soggettive per tutti i possibili eventi casuali. Quando questi dati sono disponibili, la teoria delle decisioni diventa un potente strumento per determinare l'azione ottimale da compiere. Un 'opzione che può essere inclusa nell 'analisi è di eseguire una sperimentazione per ottenere delle stime migliori delle probabilità dei possibili stati. L'albero delle decisioni è un utile strumento di visualizzazione per analizzare questa opzione o una serie di decisioni. La teoria delle utilità fornisce un modo di includere nell'analisi l'attitudine verso il rischio del decisore. Sono disponibili un numero sempre crescente di pacchetti software per eseguire questo tipo di analisi .
•
RIFERIMENTI BIBLIOGRAFICI l. Clemen, R.T.: Making Hard Decisions: An !ntroduction to Decision Ana/ysis, 2"d ed., Duxbury Press, Belmont, CA, 1996. 2_ Clemen, R. T. e T. Reilly: Making Hard Decisions with Decision Tools , Duxbury Press, Pacific Grove, CA, 200 l.
517
PROBLEMI
3. Fishbum, P.C.: "Foundations of Decision Analysis: A long the Way" , Management Science, 35: 387-405 , 1989. 4. Fishbum, P.C.: Nonlinear Preference and Utility Theory, The Johns Hopkins Press, Baltimore, MD, 1988. 5. Goodwin, P. e G. Wright: Decision Analysis far Management Judgment, Wiley, New York, 1998. 6. Hammond, J.S., R.L. Keeney e H. Raiffa: Smart Choices: A Practical Guide to Making Better Decisions, Harvard Business School Press, Cambridge, MA, 1999. 7. Hillier, F.S. e M .S. Hillier: Introduction to Management Science: A Modeling and Case Studies Approach with Spreadsheets , 2"d ed. , McGraw-HilVlrwin, Burr Ridge, IL, 2003 , chap. 12. 8. Keeney, R.L.: " Foundations for Making Smart Decisions", ilE Solutions, May 1999, 24-30. 9. Maxwell, D .T.: "Software Survey: Decisi o n Analysis", ORJMS Today, lune 2002, 44-51 .
re,
l99
re,
•
PROBLEMI
12.2-1.* La Silicon Dynamics ha sviluppato un nuovo chip che le consentirà di iniziare a produiTe e vendere Personal Computer, se lo desidera. Altemativamente, può vendere i diritti sul chip per 15 milioni di dollari. Se la compagnia sceglie di costruire computer, il profitto dipende dall'abilità della compagnia di vendere computer nel primo anno. La società ha contatti sufficienti dagarantirsi una vendita di IO 000 computer. D'altra parte, se questo computer diventa popolare, la compagnia può vendere anche 100 000 computer. A scopo di analisi , questi due li velli di vendita sono considerati come i due possibili esiti dell'azione di immettere il computer sul mercato, ma non è chiaro quali siano le loro probabilità a priori. Il costo di installazione di una catena di assemblaggio è di 6 milioni di dollari. La differenza tra il prezzo di vendita e il costo variabi le di ogni computer è di 600 dollari.
re,
(a) Fommlare questo problema secondo la teoria delle decisioni ,
lizio:are 1
;sibi-
(b)
ta un
(c) ~r
ot-
è un (d)
Il.
il ri1esto
ed. , acific
(e)
identificando le decisioni altemative, gli stati e la tabella di payoff. Tracciare un grafico che rappresenta il payoff atteso per ciascuna di queste alternative in funzione della probabilità a priori di vendere l O000 computer. Facendo riferimento al grafico tracciato in (b) , calcolare algebricamente il punto di transizione . Spiegare il significato di questo punto. Tracciare un grafico che rappresenta il payoff atteso (secondo la regola di decisione di Bayes) in funzione della probabilità a priori di vendere l O000 computer. Assumendo che le probabilità a priori dei due livelli di ven dita siano entrambe 0.5 , quale alternativa si deve scegliere?
12.2-2. Jean C lark è il direttore della Midtown Saveway Grocery Store. Egli deve rifomire la sua scorta di fragole; il suo fomitore può procurargli quante cassette di fragole desidera. Tuttavia, poiché queste fragole sono già molto mature, deve venderle domani e scartare tutte quelle che non sono state vendute. Jean stima che domani sarà in grado di vendere l O, Il , 12 o 13 cassette. Può comprare le fragole a 3 dollari la cassetta e vender-
le per 8 dollari la cassetta ma deve ora decidere quante cassette acquistare. Jean ha controllato le registrazioni delle vendite gioma li ere di fragole e su questa base, stima che le probabilità a priori di vendere domani Il , 12, 13 o 14 cassette di fragole so no rispettivamente 0.2, 0.4, 0.3 e O. l.
(a) F01mulare questo problema secondo la teoria delle decis ion i, identificando le decisioni altemative, gli stati e la tabe ll a di payoff. (b) Quante cassette di fragole deve comprare Jean se app lica il criterio maxmin del payoff? (c) Quante cassette deve comprare secondo il criterio di massima verosimiglianza? (d) Quante cassette deve comprare secondo la regola di decisione di Bayes? (e) Jean ritiene che le probabilità a priori sono abbastanza esatte per la vendita di l Oe di 13 cassette, ma è incerto su come distribuire le probabilità a priori relative alla vend ita di Il 12 cassette. Riapplicare la regola di decisione di Bayes quando le probabilità a priori per le l l e le 12 cassette sono (i) 0.2 e 0.5 , (ii) 0.3 e 0.4, (iii) 0.5 e 0.2.
e
12.2-3. Data la seguente tabella di payoff (in unità di migliaia di dollari) per un problema di teoria delle decisioni: Stato Alternativa A1 A2 Probabilità a priori
l
51
52
53
220 200
170 180
11 o 150
0.6
0.3
0.1
(a) Quale alternativa si deve scegliere secondo il criterio maxmin del payoff? (b) Quale altemativa si deve scegliere secondo il criterio di massima verosimiglianza?
518
CAPITOLO 12
TEORIA DELLE DECISIONI
(c) Qua le alternativa si deve scegliere secondo la regola di decisione di Bayes? (d) Applicando la regola di decisione di Bayes, eseguire graficamente l 'analisi delle sensitività rispetto alle probabilità a priori degli stati SI e s2(senza cambiare la probabilità a priori dello stato S 3) per determinare il punto di transizione in cui la decisione cambia da un'alternativa al l'altra. Calcolare poi algebricamente questo punto. (e) Ripetere il punto (d) per le probabilità a priori degli stati S 1 e S3. (t) Ripetere il punto (d) per le probabilità a priori degli stati S 2 e S3. (g) Se le probabilità a priori date avessero un margine di errore del IO% rispetto alle reali probabilità degli stati di natura, quale alternativa si dovrebbe scegliere? 12 .2-4.* Un nuovo tipo di aeroplano deve essere acquistato dalla Air Force, e si deve determinare il numero di motori di ricambio da ordinare. Air Force deve ordinare questi motori in lotti da cinque, e può scegliere solo tra 15, 20 o 25 ricambi. Il fornitore di questi motori ha due impianti e Air Force deve prendere una decisione prima di sapere quale impianto vetTà utili zzato. Tuttavia, Air Force sa dalle esperienze precedenti, che due terzi di tutti i tipi di motori di un aereo sono prodotti nell'impianto A, e solo un terzo di essi vengono prodotti nell ' impianto B. Sa inoltre che il numero di motori di ricambio richiesti quando la produzione avviene nell'impianto A è approssimato da una distribuzione di Poisson con media = 21 , mentre quando la produzione avviene nell ' impianto B questo numero è approssimato da una distribuzione di Poisson con media = 24. Il costo di un motore di ricambio acquistato ora è $ 400 000, mentre il costo dello stesso motore aumenta a $ 900 000 se l'acquisto viene fatto più avanti. I ricambi devono sempre essere disponibili quando so no necessari, e i motori che non vengono usati saranno distrutti quando gli aeroplani diventano obsoleti. I costi di mantenimento e gli interessi vanno trascurati. Da questi dati, sono stati calcolati i costi totali (payoff negativi) che sono elencati nella seguente tabella.
e
e
Stato Alternativa Ordine 15 Ordine 20 Ordine 25
e= 21
8= 24
1.155 x l 0 7 1.012 x l 0 7 l .047 x l 0 7
1.414 x l 0 7 1.207 x l 0 7 1.135 x l 0 7
Detern1inare l'alternativa ottima secondo la regola di decisione di Bayes. 12.3-1.* Si riconsideri il Problema 12.2-1. L'amministratore della Silicon Dynamics ora sta considerando la possibilità di una ricerca di mercato qualificata al costo di l milione di dollari per prevedere quale dei due livelli di richiesta è probabile che si verifichi. Le esperienze precedenti indicano che una tale ricerca di mercato è attendibile in due terzi dei casi. (a) Calcolare l'EVPI per questo problema. (b) La risposta del punto (a) indica che conviene eseguire questa ricerca di mercato?
(c) Tracciare un diagramma ad albero delle probabilità per ottenere le probabilità a posteriori dei due livelli di richiesta per ciascuno dei due possibili risultati della ricerca di mercato. (d) Calcolare l' EVE. Conviene questa ricerca di mercato? 12.3-2. Betsy Pitzer prende delle decisioni usando la rego la di decisione di Bayes. Per il suo attuale problema, Betsy ha costruito la seguente tabella di payoff (in unità di dollari).
Stato Alternativa A1 A2 A3 -
l
Probabilità a priori
51
5z
53
50 20
100 lO 40
- 100 - lO - 40
0.5
0.3
0.2
o
(a) Quale alternativa deve scegliere Betsy? (b) Calcolare l' EVPI. (c) Qual è il massimo che Besty dovrebbe fare per avere più informa zioni su quale stato si verificherà? 12.3-3. Si riconsideri l'esempio della Goferb roke Co. , inclusa l'analisi svolta nel Paragrafo 12.3. Con l' aiuto di un geologo, sono stati ottenuti alcuni dati storici che forni scono informazioni più precise sulla probabilità di ottenere scandagli sismici favorevoli su questo tipo di terreno. Nello specifico, quando c'è pett·olio nel terreno, si hanno scandagli favorevoli per 1'80% dei casi. Questa percentuale cambia al 40% quando non vi è petrolio. (a) Modificare la Figura 12.2 per detetminare le nuove probabilità a posteriori. (b) Qual è la strategia risultante ottima? 12.3-4.* Vincent Cuomo è il consu lente finan ziario per la Fine Fabrics Mill. Egli deve decidere se accordare un credito di $100 000 a un potenziale nuovo cliente, un imprenditore nel settore dell'abbigliamento. Vincent suddivide in tre categorie il valo re (in termini di credito) di una compagnia: a basso rischio, a medio rischio e ad alto rischio, ma non sa in quale categoria rientra questo potenziale cliente. L'esperienza indica che il 20% delle compagnie simili a quella di questo imprenditore sono a basso 1ischio. il 50% sono a medio rischio e il 30% sono ad alto rischio. Se si accorda il credito, il profitto atteso per il caso a basso rischio è ($15 000, per quello a medio rischio è $1 O000 e per quello ad alto rischio è $20 000. Se il credito non viene concesso, l'imprenditore si rivolgerà altrove. Vincent può chiedere la consulenza di un ' organizzazione che si occupa di valutare l'affidabilità di un 'azienda al costo di $5 000 per ogni azienda valutata. Per ciascuna categoria di capacità creditizia, la seguente tabella mostra in percentuale i risultati della valutazione da patte dell ' agenzia.
Valutazione del credito Basso Medio Alto
Registrazione del credito effettivo Basso
Medio
Alto
50% 40% 10%
40% 50% 10%
20% 40% 40%
PROBLEMI
à per otteper nercato. tto? ~h iesta
. regola di ha costrui-
53
- 100
-lO - 40 0.2
ere più in-
inclusa ologo, soonnazioni !ci favorec'è petro\, dei casi. rolio. e probabil.,
er la Fine ~redito di :nel settoe il valore >,a medio entra quelelle com;o rischio, '·Se si acri schio è Ilo ad alto tprenditoulenza di à di un 'a. ciascuna :ra in pert.
t iv o
1lto 'Oo/o Oo/o Oo/o
519
(a) Formulare questo problema secondo la teoria delle decisioni, identificando le decisioni alternative, gli stati e la tabella di payoff quando non viene richiesto il servizio dell'agenzia di valutazione del credito. (b) Assumendo che questa organizzazione non venga consul tata, applicare la regola di decisione di Bayes per stabilire quale alternativa scegliere. (c) Calcolare l'EVPI. Questo risultato indica quale importanza si dovrebbe dare all ' agenzia di valutazione del credito? (d) Si assuma ora che tale agenzia di valutazione del credito venga consultata. Tracciare un diagramma ad albero delle probabilità per calcolare le probabilità a posteriori dei vari stati per ciascuna delle tre possibili valutazioni per questo potenziale cliente. (e) Determinare la strategia ottima. 12.3-5. La Hit-and-Miss Manufacturing Company produce pezzi che hanno una probabilità p di essere difettosi. Questi pezzi sono prodotti in lotti da 150. L'esperienza indica che per un intero lotto p è 0.05 oppure 0.25 . Inoltre, per 1' 80% dei lotti prodotti, p = 0.05 (e quindi p = 0.25 per il restante 20%). Questi pezzi sono poi usati in una successiva fase di assemblaggio, e in definitiva la loro qualità è detenninata prima che il prodotto finale lasci lo stabilimento. La compagnia può o collaudare ciascun pezzo in un lotto al costo di l O dollari il lotto e sostituire i pezzi difettosi , oppure usare direttamente i pezzi senza collaudo. Se si sceglie la seconda opzione, il costo della revisione finale è di $100 per ogni pezzo difettoso. Siccome per il collaudo occorrono degli ispettori della qualità e dell'attrezzatura, la decisione di collaudare va presa 2 giorn i prima dell ' inizio del collaudo . Tuttavia, è anche possibile sceg liere un pezzo da un lotto, mandarlo in un laboratorio per l'ispezione, conoscere la sua qualità (difettoso o non difettoso) prima di decidere riguardo al collaudo. ll costo di questa ispezione iniziale è di $125. (a) Formulare questo problema secondo la teoria delle decisioni, identificando le decisioni alternative, gli stati e la tabella di payoff se il singolo pezzo non viene ispezionato a priori. (b) Assumendo che il pezzo non venga ispezionato a priori, applicare la regola di decisione di Bayes per stabilire quale altemativa bisogna scegliere. (c) Calcolare l'EVPI. Questo risultato indica quale importanza si dovrebbe dare all ' ispezione a priori del singolo pezzo? {d) Si assuma ora che il pezzo sia ispezionato. Con l'ausilio di Excel, calcolare le probabilità a posteriori dei vari stati di natura per ciascuno dei due possibili risultati di questa ispezione. (e) Calcolare l'EVE. Co nviene ispezionare il singolo pezzo? (f) Detenninare la strategia ottima. 12.4-l. * Riconsiderare il Problema 12.3-l. L'amministratore della Silicon Dynamics vuo le ora un albero delle decisioni che visualizzi l'intero problema. Costruire questo albero e risolvere il problema. 12.4-2. È dato il seguente albero delle decisioni, nel quale i valori tra parentesi sono le probabilità e i valori all 'estrema destra sono i payoff di questi punti tenninali. Analizzare questo albero delle decisioni per ottenere la strategia ottima.
_ , - - - - - - - - 2 500 (0.4)
' - - - - -- - - 700
900
800
750 12.4-3. L 'amministratore delegato della Macrosoft Corporation ha 100 milioni di dollari da investire. La richiesta è di investire l'intera somma nel primo anno in azioni o in titoli di stato (ma non in entrambi) e poi di rinvestire questi fondi in azioni o in titoli di stato (ma non in entrambi) nel secondo anno. L'obiettivo è di massimizzare il va lore monetario dei fondi atteso per la fine del secondo rumo. I tassi annuali di interesse per questi investimenti dipendono dalla situazione economica, come viene indicato nella seguente tabella. Situazione economica Crescita Recessione Depressione
Tasso di interesse Azioni
Titoli di stato
20% - l Oo/o - 50%
5o/o l Oo/o 20%
Le probabilità di crescita, recessione e depressione per il primo anno sono rispettivamente 0.7, 0.3 e O. Se si verifica una crescita economica nel primo anno, queste probabilità restano invariate per il secondo anno. Mentre se si ve1ifica una recessione nel primo anno, queste probabilità diventano rispettivamente 0.2, 0.7 e O. l per il secondo an no. (a) Costruire l'albero delle decisioni per questo problema. (b) Analizzare questo albero e determinare la strategia ottima. 12.4-4. Considerare lo scenario del Problema 12.3-4. (a) Costruire l' albero delle decisioni, inserendo tutti i payoff ma non le probabilità. (b) Calcolare le probabilità per i rami uscenti dai nodi evento. (c) Applicare la procedura di induzione all'indietro per detelmi nare la strategia ottima.
520
CAPITOLO 12
TEORIA DELLE DECISIONI
12.4-5. Considerare lo scenario del Problema 12.3-5. (a) Costruire l 'albero delle decisioni, inserendo tutti i payoff ma non le probabilità. (b) Calcolare le probabilità per i rami uscenti dai nodi evento . (c) Applicare la procedura di induzione all ' indietro per detern1inare la strategia ottima. 12.5-1. Riconsiderare il problema della Goferbroke Co. in cui il proprietario ha deciso, vista la precaria situazione finanziaria della compagnia, di avere un approccio molto più avverso al rischio. Pertanto, ha modificato le utilità date nella Tabella 12.7 nel seguente modo: u( - 130) = - 200, u(- 100) = - 130, u(60) = 60, u(90) = 90, u(670) = 440 e u(700) = 450 . Modificare e analizzare l'albero delle decisioni corrispondente alla Figura 12.21 e determinare la strategia ottima. 12.5-2. * Si supponga di vivere in un ' area in cui è possibile che si verifichi un forte terremoto e si consideri la possibilità di stipulare un ' assicurazione sulla casa per i danni dovuti a un terremoto, al costo di $180 all ' anno. La probabilità che durante un anno un terremoto danneggi la casa è di 0.001. Se questo succede, si stima che il costo del danno (completamente coperto dall' assicurazione) sia di $160000. Il valore complessivo dei beni (inclusa la casa) è di $250 000.
(a) Applicare la regola di decisione di Bayes per stabilire quale altemativa (stipulare l' assicurazione oppure no) massimizza il valore atteso dei tuoi beni dopo un anno. (b) Considerare una funzione di utilità del tipo Vx che misuri il valore che si attribuisce a un patrimonio di x dollari (x ~ 0). Mettere a confronto, per il prossimo anno, l 'utilità di ridurre il patrimonio di una somma pari al costo dell' assicurazione contro il terremoto con l 'utilità attesa nel caso in cui non si stipula l'assicurazione. Conviene stipulare l' assicurazione? 12.5-3. Si vuole costruire una funzione di utilità personale u(M) al variare di M (espresso in migliaia di dollari). Dopo aver posto u(O) = O, si pone u(l) = l come utilità di ricevere $ 1000. Si vuole poi determinare u(lO) e u(5) .
(a) Considerare le seguenti offerte ipotetiche:
A 1: Ottenere $ 1O000 con probabilità p. Ottenere Ocon probabilità l - p. A 2 : Ottenere sicuramente $1000.
Porsi la seguente domanda: quale .valore di p rende le due altemative indifferenti? Supponendo che la risposta sia p = 0.125, calcolare u(IO). (b) Ripetere il punto (a) cambiando la seconda offerta in $5000. In tal caso il valore di p che rende le due alternative indifferenti ora è p = 0.5625 . Calcolare u(5). (c) Ripetere i punti (a) e (b), con una scelta personale di p. 12.5-4. Si vuole scegliere tra due decisioni alternative A 1 e A 2 mediante il seguente albero delle decisioni, ma si è incerti sul valore della probabilità p per cui si esegue anche un ' analisi della sensitività relativa a p.
p
1- p
10
-5
A1
3
A2
-2 2
o La funzione di utilità è
u(M ) =
{Z2
se M ~ O, se M < O.
(a) Per p = 0.25, dete1minare quale alternativa è ottima nel senso che massimizza l'utilità attesa del payoff. (b) Determinare l' intervallo di valori di p tra O e 0.5 per i quali questa alternativa resta ottima.
p. A1 e Az ti sul valisi della
---
IO
-----
-5 3
-2 --
2
o
nel sen:r i quali
Teoria delle code
L
e code (file di attesa) sono parte della vita di tutti i giorni. Tutti aspettano in coda per comprare il biglietto del cinema, per fare un deposito bancario, per pagare il negoziante, per spedire un pacco postale, per essere serviti al bar, per fare un giro al parco dei divertimenti ecc. Tuttavia, dover aspettare non è solo un disagio della singola persona ma il tempo che la popolazione di una nazione perde aspettando in coda è uno dei principali fattori sia nella qualità della vita sia nell 'efficienza dell 'economia del Paese. Per esempio, prima della sua disgregazione, l 'Unione Sovietica era famosa per le lunghissime code a cui i cittadini erano costretti per comprare beni di prima necessità. Anche negli Stati Uniti, si è stimato che gli americani trascorrono 37 miliardi di ore ogni anno aspettando in coda. Se invece questo tempo fosse sfruttato in modo produttivo, si avrebbe a disposizione ogni anno l'equivalente del lavoro annuale di circa 20 milioni di persone! Neanche questa immagine scioccante descrive completamente l' impatto causato dalle attese eccessive. Oltre alle persone in fila, si verifica anche una inefficienza dovuta ad altri tipi di attesa. Per esempio, ritardare la riparazione di un macchinario può causare una perdita nella produzione. Veicoli (inclusi gli autocarri e le navi) che devono attendere per lo scarico possono ritardare le successive spedizioni. Aerei che aspettano di decollare o atterrare possono creare caos nella tabella oraria dei voli successivi. Ritardi nelle trasmissioni delle telecomunicazioni dovuti a una saturazione delle linee possono causare errori nei dati . Dover aspettare per eseguire lavori può creare problemi per la produzione successiva. Ritardare servizi oltre la scadenza può causare una perdita per gli affari futuri. La teoria delle code è lo studio di tutti questi vari aspetti. Vengono utilizzati modelli di code per rappresentare i vari tipi di sistemi di file di attesa (sistemi che coinvolgono un qualche tipo di coda) che sorgono nella pratica. Le formule che si ricavano indicano come i relativi sistemi devono operare, e la quantità media di attesa che si verifica nelle varie circostanze. Perciò , questi modelli di code sono molto utili per stabilire come agisce un sistema di file di attesa può operare nel modo più efficace. Se si fornisce al sistema un 'elevata capacità di servizio si potrebbe incorrere in costi eccessivi, ma se non se ne fornisce abbastanza si potrebbe verificare un 'attesa molto lunga con tutte le sue infelici conseguenze. Questi modelli permettono di determinare un giusto equilibrio tra il costo del servizio e il tempo di attesa. Dopo una discussione di carattere generale, questo capitolo presenterà la maggior parte dei modelli più elementari di code e i risultati fondamentali. Nel Paragrafo 13.10 si discute come si possono utilizzare le informazioni fomite dalla teoria delle code per progettare sistemi di file di attesa che minimizzano il costo totale del servizio e d eli 'attesa.
522
CAPITOLO 13
13.1
TEORIA DELLE CODE
ESEMPIO Il pronto soccorso del COUNTY HOSPIT AL fornisce cure immediate per i casi di emergenza portati all 'ospedale da un 'ambulanza o da un 'auto ptivata. A qualsiasi ora c'è sempre un dottore in servizio nel pronto soccorso. Tuttavia, a causa di una crescente tendenza a usare queste strutture per i casi urgenti piuttosto che andare da un medico privato, l'ospedale deve effettuare ogni anno un numero sempre maggiore di visite di pronto soccorso. Come risultato, è diventato abbastanza comune che i pazienti che arrivano durante le ore di punta (in prima serata) debbano aspettare il loro turno per essere visitati. Pertanto, è stato proposto che venga assegnato un secondo dottore al pronto soccorso, in modo che si possano trattare due casi urgenti contemporaneamente. Al management dell'ospedale è stato assegnato il compito di studiare questa proposta. 1 Sono stati raccolti i dati rilevanti degli anni passati e usati per una previsione per l'anno successivo. Riconoscendo che il pronto soccorso è un sistema di file di attesa, sono stati applicati diversi modelli alternativi della teoria delle code per prevedere le caratteristiche del sistema con uno o due dottmi, come si vedrà nei prossimi paragrafi di questo capitolo (si faccia riferimento alle Tabelle 13.2 e 13.3).
13.2
LE COMPONENTI FONDAMENTALI DEl MODELLI DI CODA Il processo di coda fondamentale Il processo fondamentale assunto dalla maggior parte dei modelli di coda è il seguente. I clienti che richiedono un servizio sono generati nel tempo da una sorgente dei clienti. Questi clienti entrano nel sistema e si mettono in coda. A un certo punto, viene selezionato, mediante una qualche regola nota come disciplina della coda, un elemento nella coda per essere servito. Il servizio richiesto viene poi effettuato dal meccanismo di servizio , dopo il quale il cliente abbandona il sistema. Questo processo è rappresentato nella Figura 13.1. Di seguito verranno discusse varie assunzioni alternative riguardo ai vari elementi del processo di coda.
Sorgente dei clienti Una caratteristica della sorgente dei clienti è la sua dimensione. Cioè il numero totale di clienti che possono richiedere un servizio, (il numero totale dei potenziali clienti). La dimensione si può assumere finita o infinita e quindi la sorgente dei clienti è limitata o illimitata. Poiché i calcoli sono molto più semplici nel caso infinito, spesso si assume che ta• Figura 13.1 Il processo base di coda.
Sistema di attesa
,---------------- - ---, l l
l l
l
Sorgente degli arrivi
Clienti
: l l l
l
Coda
r----
Meccanismo di servizio
l l l l l l l
Clienti serviti
l
L ____________________ ~
1 Per un effetti vo caso di studio di questo tipo, si faccia riferimento a W. Blaker Bolling, " Queueing Mode! of a Hospital Emergency Room " , Industriai Engin eering, settembre 1972, pp. 26-31.
13.2
ji emer; ' è semendenza ato, l' osoccor1rante le rtanto, è o che si >edale è >er l 'anono stattteristito capi-
LE COMPONENTI FONDAMENTALI DEl MODELLI DI CODA
523
le sorgente sia illimitata anche quando la dimensione effettiva è un numero finito sufficientemente grande; questo è sottinteso per ogni modello di coda che non fa esplicitamente un 'assunzione diversa. Il caso finito è analiticamente più difficile perché il numero di clienti nel sistema influisce sul numero dei potenziali clienti fuori dal sistema in ogni momento . Tuttavia, l'assunzione finita deve essere fatta se il tasso con cui sono generati nuovi clienti dipende in modo significativo dal numero di clienti nel sistema. Occorre anche specificare il modello statistico con cui i clienti sono generati nel tempo. Di solito si assume che essi vengano generati secondo un processo di Poisson, cioè il numero di clienti generati fino a uno specifico momento ha una distribuzione di Poisson. Come verrà discusso nel Paragrafo 13 .4, questo è il caso in cui gli arrivi nel sistema si verificano casualmente ma a un tasso medio fissato , indipendentemente da quanti clienti siano già presenti (per cui la dimension e della sorgente degli arrivi è infìnita). Un' assunzione equivalente è che la distribuzione di probabilità del tempo che intercmTe tra due arrivi consecutivi è una distribuzione esponenziale (le proprietà di questa disttibuzione sono descritte nel Paragrafo 13.4). Ci si riferisce all ' intervallo di tempo tra due arrivi consecutivi come tempo di interarrivo (interarrival time). Ogni specifica assunzione insolita sul comportamento dei clienti che arrivano nel sistema deve essere specificata. Un esempio è la rinuncia (balking): se la coda è troppo lunga il cliente rifiuta di entrare nel sistema e viene perso.
La coda uente. I clienti. selezioto nella !i servito nella enti del
La coda è dove i clienti aspettano prima di essere serviti . Una coda è caratterizzata dal numero massimo di clienti che può contenere. Le code sono infinite o finite, a seconda che questo numero sia infinito o finito. Per la maggior parte dei modelli l'assunzione standard è che la coda sia infinita, anche quando es iste effettivamente un limite superiore finito (relativamente grande) sul numero consentito di clienti, questo perché un tale limite complicherebbe notevolmente l'analisi. Tuttavia, per sistemi in cui questo limite superiore è abbastanza piccolo da poter essere raggiunto frequentemente, diventa necessario assumere che la coda siafinita .
Disciplina della coda )tale di La di1 o il/icheta-
-
Per disciplina della coda si intende l'ordine con cui i membri della coda sono selezionati per il servizio. Per esempio, potrebbe essere casuale oppure in base all ' ordi ne di arrivo (' ' il primo che arriva è il primo a essere serv ito " 2 ) , oppure in base a una qualche procedura di priorità, o in base a qualche altro ordine. Di solito nei modelli di code si assume di utilizzare l'ordine di arrivo, a meno che non ne sia specificato un altro differente.
Schema di servizio Il servizio consiste in una o più strutture di servizio, ciascuna delle quali contiene uno o più canali di servizio paralleli, detti serventi. Se c' è più di una struttura di servizio, il cliente può ricevere il servizio da una sequenza di queste (canali di servizio in serie). In una data struttura, il cliente entra in uno dei canali di servizio paralleli ed è completamente servito dal serventi. Un modello di coda deve specificare l'organizzazione delle strutture e il numero di servente (canali paralleli) di ciascuna. I modelli più elementari assumono una singola struttura di servizio con un servente o un numero finito di serventi. Il tempo trascorso da un cliente presso una struttura di servizio, dali ' inizio del servizio fino al suo completamento, è il tempo di servizio. Un modello per un particolare sistema di file di attesa deve specificare la distribuzione di probabilità dei tempi di servizio per ogni servente (e possibilmente per i diversi tipi di clienti), sebbene sia comune assumere
•del of a 2
In questo caso si parla di disciplina dell a coda di tipo FIFO (First In, First Out).
524
CAPITOLO 13
TEORIA DELLE CODE
la stessa distribuzione per tutti i serventi (per i modelli in questo capitolo vale questa assunzione). La distribuzione del tempo di servizio che si assume più frequentemente (soprattutto perché è molto più trattabile di qualunque altra) è la distribuzione esponenziale discussa nel Paragrafo 13.4, e la maggior parte dei modelli sarà di questo tipo. Altre importanti distribuzioni dei tempi di servizio sono la distribuzione deterministica (o degen ere), con tempo di servizio costante, e la distribuzione di Erlang (gamma), che sono illustrate dai modelli presentati nel Paragrafo 13.7.
Un processo elementare di coda La teoria delle code è stata applicata a molti tipi diversi di situazioni in cui ci sono file di attesa. Tuttavia, il tipo di situazione più comune è la seguente: una singola fila di attesa (che a volte può essere vuota) si forma di fronte a una singola struttura di servizio, nell a quale ci sono uno o più serventi. Ogni cliente è servito da uno dei serventi , eventualmente dopo un 'attesa in coda. Il sistema è rappresentato nella Figura 13 .2. Si noti che il processo di coda nell'esempio illustrato nel Paragrafo 13.1 è di questo tipo. La sorgente genera clienti nella forma di pazienti che richiedono cure mediche. Il pronto soccorso è la struttura di servizio e i medici sono i serventi. Un servente non necessariamente deve essere un singolo individuo; può essere un gruppo di persone, per esempio, una squadra di riparazione che opera insieme per rispondere alle richieste di un cliente. Inoltre, i serventi non necessariamente devono essere delle persone. In molti casi, un servente può essere una macchina, un veicolo, un dispositivo elettronico ecc. Analogamente, i clienti nella fila di attesa non necessariamente sono persone. Per esempio, possono essere oggetti in attesa di una certa operazione che deve essere eseguita da una macchina, oppure possono essere automobili che aspettano al casello autostradale. Non è necessario che ci sia fisicamente una fila che si forma di fronte a una struttura che costituisce la struttura di servizio. I membri della coda possono anche essere sparsi in un ' area mentre aspettano che un servente venga da loro, come nel caso di automobili che aspettano di essere riparate. Il servente o il gruppo di serventi assegnato a una data area costituisce la struttura di servizio per quell ' area. La teoria delle code fornisce ancora il numero medio di attese, il tempo medio di attesa ecc., perché è irrilevante se i clienti aspettano insieme in gmppo. L'unico requisito essenziale affinché la teoria sia applicabile è che le variazioni nel numero di clienti in attesa per un dato servizio si verifichino esattamente come se la situazione fisica descritta nella Figura 13.2 (o una equivalente) fosse valida.
• Figura 13.2 Un elementare sistema di file di attesa (ogni cliente è indicato da una C e ogni servente da 5).
Clienti serviti
r------- --- --- l l l l
Clienti
l : l
.,.
C
c
~
Coda c C C C C
~~~~~~~~---,:
----
c
s
C C
S S
l l l l
Struttura di servizio
l l l
[______________ j _______________ j c
l
Clienti serviti
s
l
13.2
1esta asttemente menzia\ltre imdegenemo illu-
o file di ji attesa io, nella alme n te
LE COMPONENTI FONDAMENTALI DEl MODELLI DI CODA
525
A eccezione del Paragrafo 13.9, tutti i modelli di coda discussi in questo capitolo sono del tipo elementare rappresentato nella Figura 13.2. Molti di questi modelli inoltre assumono che tutti i tempi di interarrivo e i tempi di servizio siano indipendenti e identicamente distribuiti. Tali modelli sono convenzionalmente etichettati nel seguente modo:
r
Distribuzione dei tempi di interarrivo
.r) l- l- ~ Numero di serventi
Distribuzione dei tempi di servizio,
uesto ti1iche. Il
e dove M = distribuzione esponenziale, descritta nel Paragrafo 13 .4, D = distribuzione deterministica (tempi costanti), descritta nel Paragrafo 13 .7, Ek = distribuzione di Erlang con parametro k, descritta nel Paragrafo 13.7, G =generica distribuzione (una qualunque distribuzione arbitraria consentita), 3 come discusso nel Paragrafo 13.7.
;sere un · nspon;ere delpositivo )no perve essecasello
Per esempio, il modello M/Mis discusso nel Paragrafo 13 .6 assume che il tempo di interarrivo e il tempo di servizio siano variabili casuali con distribuzione esponenziale e che il numero dei serventi sia s con s intero positivo. Il modello M / G/1 discusso nel Paragrafo 13 .7 assume che il tempi di interarrivo abbiano una distribuzione esponenziale, ma non pone restrizioni su quale distribuzione di probabilità hanno i tempi di servizio, mentre il numero dei serventi deve essere esattamente l. Nel Paragrafo 13 .7 sono introdotti anche vari altri modelli che si adattano a questo tipo di notazione.
struttura ;parsi 111 >bili che ata area ra il nuaspettale è che tamente 1lida.
Terminologia e notazione
l l l l l l l l l l l l l
__ _j
A meno che non sia specificato differentemente, sarà usata la seguente notazione e tenninologia standard: stato del sistema = numero di clienti nel sistema. lunghezza della coda = numero di clienti che attendono di essere serviti. = stato del sistema meno il numero di clienti che sono attualmente serviti. N(t) = numero di clienti nel sistema all'istante t (t~ 0). Pn (t) = probabilità di avere esattamente n clienti nel sistema all 'istante t (il valore all'istante O è dato). s = numero di serventi nel sistema . .À 11 = tasso medio d'arrivo (numero atteso di arrivi per unità di tempo) quando n clienti sono già nel sistema. J.tn = tasso medio di servizio per il sistema (numero atteso di clienti per i quali è stato completato il servizio per unità di tempo) quando n clienti sono nel sistema. La quantità J.tn rappresenta il numero medio combinato nell'unità di tempo per tutti i serventi occupati (quelli che stanno servendo clienti). .À, J.t, p = vedi di seguito. Quando À 11 è costante essa è denotata con .À. Analogamente quando il numero medio di servizi per servente occupato è costante per ogni n ~ l , questa costante è denotata con J.t (in questo caso, ~Ln = SJ.t quando n ~ s, cioè quando tutti gli s serventi sono occupati). Le quantità, 1/À e llj.t sono rispettivamente il valore atteso del tempo di interarrivo (cioè
3
Quando ci si riferisce al tempo di interarrivo, per convenzione si sostituisce il simbolo G con CI =generica distribuzione indipendente.
526
CAPITOLO 13
TEORIA DELLE CODE
l'intervallo atteso tra due mTivi) e il valore atteso del tempo di servizio (o più brevemente il tempo atteso di servizio). Inoltre, p = )·J(sf..L) è il coefficiente di utilizzazione, cioè la frazione di tempo nella quale i singoli serventi sono impegnati; infatti Àl(sf..L) rappresenta la capacità di servizio del sistema (sf..L) che in media viene utilizzata nell 'unità di tempo dai clienti che arrivano (À). È necessario anche introdurre una particolare notazione per descrivere i risultati in regime stazionario. Quando un sistema ha iniziato a operare da poco, lo stato del sistema (numero di clienti nel sistema) dipende fortemente dallo stato iniziale e dal tempo trascorso. Si dice che il sistema è in una condizione transitoria. Tuttavia, dopo che è trascorso un tempo abbastanza lungo, lo stato del sistema diventa essenzialmente indipendente dallo stato iniziale e dal tempo trascorso (eccetto in particolari circostanze). 4 Il sistema ha quindi raggiunto la condizione di regime stazionario , in cui la distribuzione di probabilità dello stato del sistema resta la stessa nel tempo (distribuzione stazionaria o in regime stazionario). La teoria delle code tende a focalizzare l'interesse soprattutto nella condizione di regime stazionario, in parte perché il caso transitorio è più difficile da studiare (alcuni risultati relativi al regime transitorio esistono, ma generalmente vanno oltre lo scopo di questo libro). La seguente notazione assume che il sistema sia in condizione di regime stazionario:
Pn = probabilità di avere esattamente n clienti nel sistema. 00
L = numero atteso di clienti nel sistema= 2::::: nP11 • n=O 00
Lq = lunghezza attesa della coda (escluso i clienti attualmente serviti) = 2::::: (n - s )Pn. II =S
"W = tempo di pem1anenza nel sistema (incluso il tempo di servizio) per ogni singolo cliente. W = E("W) . "W q = tempo di pem1anenza nella coda (escluso il tempo di servizio) per ogni singolo cliente. Wq = E ("Wq) ·
Relazioni tra L, W, Lq e Wq Assumendo che si ha
À 11
sia costante (À) per ogni n, si può dimostrare che in regime stazionario
L =ÀW Poiché John D.C. Little 5 ne ha fornito la prima dimostrazione rigorosa, a volte ci si riferisce a questa equazione come alla formula di Little. Inoltre, la stessa dimostrazione prova anche che
Lq = ÀWq Se i valori À 11 non sono uguali, allora si può utilizzare>:, la media asintotica dei tassi d'arrivo (più avanti venà mostrato come si può determinare>: in alcuni casi fonda111entali). Se il tempo medio di servizio è costante ( l / f..L ) per ogni n 2 l , allora l
W= Wq+ f. L
4 Quando À e /L sono defi niti , queste circostanze insolite sono che p ~ l , nel qual caso lo stato del sistema tende a crescere contin uamente co l passare del tempo.
5
J.D.C. Little, "A Prooffor the Queueing Fommla: L = .X. W", Operations Research, 9(3): 383-387, 1961 ; fare riferimento anche a S. Stidharn, Jr., "A Last Word on L = .X. W" , Operations Research, 22(2): 417-421 , 1974.
13.3
ESEMPI DI SISTEMI REALI DI FILE DI ATTESA
527
Queste relazioni sono estremamente importanti perché pennettono di detenninare le quattro quantità fondamentali L , W, L q e Wq quando una di esse sia stata ricavata analiticamente. Questo è molto comodo perché spesso alcune di queste quantità sono molto più facili da determinare di altre per un particolare modello.
te è la ~n
~nta
npo
re~ma ~or-
>rso dal1 ha Jiliime l lO-
iare ;co~gi-
Pn.
;o lo
;o lo
:m o
'eriova
'ar-
~n de
fare l.
l[..~ 13.3
ESEMPI DI SISTEMI REALI DI FILE DI ATTESA La descrizione di un sistema di file di attesa vista nel Paragrafo 13.2 può apparire relativamente astratta e applicabile solo a situazioni pratiche molto particolari. In realtà, i sistemi di file di attesa sono sorprendentemente presenti in una grande varietà di contesti diversi. Verranno qui menzionati brevemente alcuni esempi di sistemi reali di file di attesa che possono essere classificati in diverse categorie. Verranno poi descritti sistemi di file di attesa di alcune importanti società (e di una città) e gli studi fatti per progettarli.
Alcune classi di sistemi di attesa Un' importante classe di sistemi di file di attesa che si incontrano nella vita di ogni giorno è quella dei sistemi di servizio commerciali, dove clienti esterni ricevono servizi da organizzazioni commerciali. Molti di questi coinvolgono un servizio uno-a-uno in un luogo fissato, come il negozio di un barbiere (i barbieri sono i serventi), lo sportello di una banca, la cassa di un supermercato, il bar (canali di servizio in serie). Appartengono a questa categoria anche sistemi leggermente differenti, come riparazioni di apparecchi domestici (il servente va dai clienti), distributori automatici (il servente è la macchina), stazioni di benzina (le automobili sono i clienti). Un'altra classe importante è quella dei sistemi di servizio di trasporto . Per alcuni di questi sistemi i veicoli sono i clienti, come le automobili che aspettano a un casello o a un semaforo (il ~ervente) , un camion o una nave che aspettano di essere caricati o scaricati dall'equipaggio (il servente). Un esempio particolare di questo tipo è un parcheggio, dove le auto sono i clienti e i posti auto sono i serventi, ma non ci sono code perché i clienti che arrivano vanno a parcheggiare altrove se il parcheggio è pieno. In altri casi, i veicoli, come i taxi, le macchine dei pompieri e gli ascensori , sono i serventi. Negli ultimi anni, la teoria delle code è stata applicata soprattutto ai sistemi di servizio interni, dove i clienti che ricevono il servizio sono interni all 'organizzazione. Esempi sono i sistemi di movimentazione dei materiali, dove le unità di movimentazione (i serventi) spostano i carichi (i clienti); i sistemi di manutenzione, dove le squadre di manutenzione (i serventi) riparano le macchine (i clienti), e le stazioni di collaudo, dove gli ispettori di controllo della qualità (i serventi) ispezionano gli articoli (i clienti). Inoltre, le macchine possono essere viste come serventi i cui clienti sono i lavori che devono eseguire. Un esempio sempre appartenente a questa categoria è un centro di elaborazione dati, dove ogni computer è visto come un servente. Inoltre la teoria delle code è applicabile anche ai sistemi di servizio sociale. Per esempio, un sistema giuridico è una rete di code, dove i tribunali sono le strutture di servizio, i giudici (o le liste di giurati) sono i serventi, e i casi in attesa di essere processati sono i clienti. Analogamente per il sistema legislativo i clienti sono i progetti di legge che aspettano di essere esaminati. Anche vari sistemi sanitari sono sistemi di file di attesa. Se ne è già visto un esempio nel Paragrafo 13 .l (il pronto soccorso di un ospedale), ma possono essere visti come serventi anche le ambulanze, le macchine a raggi X e i letti di un ospedale, ciascuno nel proprio sistema di file di attesa. Analogamente, le famiglie che aspettano un'abitazione, o altri servizi sociali, possono essere viste come i clienti in un sistema di file di attesa. Sebbene queste sono quattro importanti categorie di file di attesa, esse non esauriscono ancora la lista. Infatti, la teoria delle code inizialmente fu applicata nei primi anni del Novecento all ' ingegneria telefonica (il fondatore della teoria delle code, A. K. Erlang, era
528
CAPITOLO 13
TEORIA DELLE CODE
un impiegato della Compagnia Telefonica Danese a Copenhagen), ed è questa tuttora un'importante applicazione. Inoltre, ciascuno ha le proprie code - compiti per casa, libri da leggere ecc. Questi esempi sono sufficienti per intuire che i sistemi di file di attesa pervadono davvero molte aree della società.
Alcune applicazioni di sistemi di file di attesa I prestigiosi premi Franz Edelman Awards far Management Science Achievement sono assegnati ogni anno dali 'lnstitute of Operations Research an d Management Sciences (INFORMS) per le migliori applicazioni della Ricerca Operativa. Un numero piuttosto elevato di questi premi è stato assegnato per applicazionj innovative di teoria delle code per la progettazione di sistemi di file di attesa. Di seguito verrà fornita brevemente una descrizione di alcune di queste applicazioni. Uno tra i primi vincitori del primo premio (descritto nel numero di novembre 1975, parte 2, della rivista lnterfaces) fu la Xerox Corporation. La compagnia aveva recentemente introdotto un nuovo sistema di duplicazione che si stava dimostrando particolarmente utile · e i clienti domandavano che i tecnici della Xerox riducessero i tempi di attesa per la riparazione delle macchine. Un gruppo di Rjcerca Operativa allora ha applicato la teoria delle code per studiare come meglio rispondere a queste nuove richieste. Il risultato fu sostituire le precedenti zone con un solo tecnico con zone più grandi con tre tecnici. Questo cambiamento ha avuto l'impressionante effetto sia di ridurre in modo sostanziale i tempi medi di attesa dei clienti sia di incrementare l' impiego dei tecnici di oltre il 50%. Nel Paragrafo 3.5, è stata descritta un 'applicazione della United Airlines (numero di gennaio 1986 di Interfaces) che come risultato portò a un risparmio annuale di oltre 6 milioni di dollari. Questa applicazione era relativa alla schedulazione dei turni di lavoro di 4000 assistenti alla vendita e prenotazioni e personale di supporto della United, presso i suoi 11 uffici, e di l 000 impiegati presso i l O principali aeroporti. Dopo aver determinato quanti impiegati fossero necessari in ogni zona durante ogni mezz' ora della settimana, è stato discusso come la programmazione lineare sia stata applicata per la stesura degli orari di lavoro per andare incontro a queste richieste di servizio in modo più efficiente. Tuttavia, non si è mai spiegato come sono state detenninate le richieste sul numero di impiegati necessari. Queste richieste di servizio sono state determinate utilizzando la teoria delle code. Ogni specifica zona (per esempio, i punti di check-in in un aeroporto) costituisce un sistema di file di attesa in cui gli impiegati sono i serventi. Dopo aver valutato il tasso medio d'arrivo durante ogni periodo di 30 minuti nell 'arco della settimana, si sono usati i modelli di teoria delle code per deterrillnare il numero minimo di serventi in grado di fornire un servizio soddisfacente. L. L. Bean, Inc., la grande azienda che vende i suoi prodotti su catalogo e per televendita, si è basata principalmente sulla teoria delle code per studiare come allocare le sue risorse. L'articolo che descrive questo studio è nel numero di gennaio 1991 di lnterfaces, e altri articoli che danno informazioni aggiuntive sono nel numero di novembre 1989 e di marzo-aprile 1993 di questa stessa rivista. Le chiamate telefoniche che arrivano al callcenter per gli ordini sono i clienti in un grande sistema di file di attesa, dove i centralinisti sono i serventi. Le domande chiave fatte durante lo studio furono le seguenti: l. quante linee telefoniche devono essere attivate per le chiamate in arrivo al call-center?
2. quanti centralinisti devono essere presenti nei vari turni di lavoro? 3. quanti clienti possono rimanere in attesa che si liberi un centralinista? (si noti che in questo caso il sistema ha una coda finita). Sulla base delle risposte a queste domande, i modelli di teoria delle code forniscono una indicazione di quanto sia impegnato il sistema. Il gruppo di Rjcerca Operativa ha stimato attentamente il costo dovuto a mancate vendite poiché alcuni clienti trovano il segnale di
13.3
1ttora libri . per-
sono :nces tosto code a de, par1ente utile ' parae coire le nbia:di di rodi
5 mi-
·ro di :sso i inato .na, è ora n .ente. li im-
-::ode. sisteJedio od elre un
endinsore ale di callinisti
ter?
he in
) una tmato aie di
ESEMPI DI SISTEMI REALI DI FILE DI ATTESA
529
occupato o sono tenuti in attesa troppo a lungo. Aggiungendo i costi per la televendita, si è in grado di determinare la combinazione che minimizza il costo totale atteso. Come ri sultato di questo studio è stato ottenuto un risparmio da 9 a l O milioni di dollari l 'anno. La città di New York ha una lunga tradizione nell'utilizzo delle tecniche di Ricerca Operativa per pianificare e gestire molti dei suoi complessi sistemi di servizio urbani. Per il Dipartimento dei Vigil i del Fuoco e per il Dipartimento di Polizia, sono stati fatti studi, iniziati negli ultimi anni Sessanta, che coinvolgono la teoria delle code (gli incendi e le emergenze sono i clienti nei rispettivi sistemi). Successivamente, studi di Ricerca Operativa più importanti (inclusi alcuni che coinvolgono la teoria delle code) sono stati fatti per il Dipartimento di Igiene Pubb lica, il Dipartimento dei Trasporti, il Dipartimento della Salute e gli Ospedali, il Dipartimento di Protezione Ambientale, l'Amministrazione e Bilancio e altri dipartimenti. Poiché questi studi hanno avuto molto successo, molti di tali dipartimenti hanno al proprio interno i loro gruppi di Ricerca Operativa. Lo studio premiato che verrà qui descritto riguarda il sistema di arresto e chiamata in giudizio nella città di New York. Questo sistema consiste in tutte le procedure svolte da quando l'individuo viene arrestato fino a quando viene chiamato in giudizio (la prima comparizione davanti a un giudice che stabilisce se vi sono motivi validi per l'arresto). Prima di questo studio, gli arrestati nella città (i clienti di un sistema di file di attesa) erano in custodia, in attesa di essere chiamati in giudizio, mediamente per 40 ore (a volte anche per più di 70 ore). Questi tempi di attesa erano considerati eccessivi, perché gli arrestati erano tenuti in luoghi affollati e rumorosi che erano stressanti e dannosi e spesso fisicamente pericolosi. Per revisionare il sistema, è stato fatto uno studio di Ricerca Operativa durato due anni e sono state applicate la teoria delle code e la simulazione. Tale studio ha condotto a cambiamenti radicali, nel modo di operare e nella linea di condotta, che hanno contemporaneamente ridotto il tempo di attesa a meno di 24 ore e portato a un rispaqnio annuale di 9.5 milioni di dollari (per i dettagli, si veda il numero di gennaio 1993 di Jnterfaces) . Il primo premio nel 1993 del Franz Edelman Awards for Management Science Achievement fu vinto dalla AT &T per uno studio che (come il precedente) combinava l 'uso della teoria delle code con la simulazione (numero di gennaio-febbraio 1994 di Jnterfaces). I modelli di teoria delle code erano applicati sia alla rete di telecomunicazioni della AT &T sia ai call-center dei clienti. Lo scopo era sviluppare un sistema user-friendly basato su personal computer che i clienti potessero usare per progettare o revisionare i loro call-center. Dal 1992, questo sistema è stato usato circa 2000 volte dai clienti della AT &T, poiché i call-center costituiscono una delle industrie maggiormente in crescita negli Stati Uniti. Il risultato, per questi clienti, è stato un profitto annuale di più di 750 milioni di dollari. La KeyCorp è una delle più grandi compagnie bancarie degli Stati Uniti, con più di 1300 filiali e oltre 6000 cassieri. Lo studio di Ricerca Operativa svolto da questa compagnia (numero di gennaio 1996 di Jnterfaces) si è concentrato sull ' uso della teoria delle code per migliorare il funzionamento del sistema di file di attesa di ciascuna filiale in cui i cassieri servono i clienti. Il risultato è stato lo sviluppo di un Service Excellence Management System (SEMS) la cui parte fondamentale è un sistema di controllo della performance che raccoglie i dati su base continua per ogni componente discreta di ogni transazione del cassiere con un processo completamente automatizzato. Questo sistema permette di misurare le attività della filiale e di generare resoconti sui tempi di attesa dei clienti, l'abilità del cassiere e i livelli di rendimento. Questi resoconti aiutano i dirigenti a definire gli orari di lavoro dei cassieri per meglio andare incontro alle esigenze dei clienti. Essi individuano anche opportunità per aumentare il rendimento e il servizio fornito riformulando le metodologie del servizio e fornendo standard di performance. Questi sforzi hanno portato a una riduzione del 53% del tempo medio di servizio, un miglioramento impressionante nei tempi di attesa dei clienti e un maggiore incremento nel livello di soddisfazione del cliente. La previsione è che, nell'arco di 5 anni, SEMS ridurrà le spese del personale di 98 milioni di dollari.
CAPITOLO 13
530
TEORIA DELLE CODE
La Hewlett-Packard (HP) è una multinazionale leader nella costruzione di apparecchiature elettroniche. Nel 1993, la compagnia ha installato un sistema di assemblaggio meccanizzato per stampanti a getto d'inchiostro presso i suoi stabilimenti di Vancouver e Washington, per andare incontro alla crescente domanda di tali stampanti. Fu subito evidente che il sistema installato non era abbastanza veloce o affidabile per raggiungere i target di produzione desiderati. Pertanto, fu riunito un gruppo di esperti di gestione, provenienti dalla HP e dal Massachusetts Institute of Technology (MIT), per studiare come revisionare il sistema per migliorarne il rendimento. Come è descritto nel numero di gennaio-febbraio 1998 di Interfaces, il gruppo HP/ MIT si è subito reso conto che il sistema di assemblaggio poteva essere visto come uno speciale tipo di sistema di file di attesa, dove i clienti (le stampanti da assemblare) passavano attraverso una serie di serventi (operazioni di assemblaggio) in una sequenza fissata. Un particolare modello di coda per questo tipo di sistema fornì rapidamente i risultati analitici che erano necessari per definire come modificare il sistema affinché raggiungesse la capacità richiesta nel modo più economico. I cambiamenti includevano l'aggiunta, in punti strategici, di uno spazio in cui depositare le parti dell'oggetto in costruzione (buffer), per meglio mantenere il flusso di semilavorati verso le postazioni successive e ridurre gli effetti di guasti delle macchine. Il nuovo progetto ha incrementato la produttività di circa il 50% e ha portato a un incremento delle entrate approssimativamente di 280 milioni di dollari dalla vendita delle stampanti e un 'entrata aggiuntiva dalla vendita dei prodotti accessori . Questa applicazione innovativa di modelli di teoria delle code ha fornito alla HP anche un nuovo metodo per progettare, in seguito, sistemi rapidi ed efficienti in altri settori. Ci sono molte altre applicazioni della teoria delle code per la progettazione di sistemi di file di attesa che sono state premiate, così come numerosi articoli che descrivono altre applicazioni di successo. I vari esempi presentati in questo paragrafo forniscono comunque un ' idea dei tipi di applicazioni e dell'impatto che possono avere.
13.4
IL RUOLO DELLA DISTRIBUZIONE ESPONENZIALE Le caratteristiche dei sistemi di file di attesa sono in gran parte determinate da due proprietà statistiche: la distribuzione di probabilità dei tempi di interarrivo e quella dei tempi di servizio . Per un sistema reale di file di attesa, queste distribuzioni possono avere qualunque forma. La sola restrizione è che non si abbiano valori negativi. Tuttavia, per formulare un modello di teoria delle code che sia una buona rappresentazione del sistema reale, è necessario specificare la forma assunta da ciascuna di queste distribuzioni . Per essere utile, tale forma deve essere sufficientemente realistica in modo che il modello fornisca previsioni ragionevoli, e allo stesso tempo sufficientemente semplice in modo che il modello sia matematicamente trattabile. In base a queste considerazioni, la distribuzione di probabilità più importante nella teoria delle code è la distribuzione esponenziale. Sia T una variabile casuale che rappresenta l'intervallo tra arrivi o il tempo di servizio (un arrivo o un completamento del servizio verranno indicati genericamente come eventi). Questa variabile casuale ha una distribuzione esponenziale con parametro a se la sua funzione di densità di probabilità è
fr(t) = { ~e-etr
per t 2 O per t< O
il cui grafico è mostrato nella Figura 13 .3. In questo caso, le probabilità cumulative sono
P{T ::; t}= l - e - etr P{ T > t} = e - etr
(t 2 O)
13.4
:hiatu1ecca1ver e :o evi~ i tarJrovene reo HP/ te uno passafissasultati mges;iunta, 1zione sive e >duttinte di endita •de ha j effiistemi altre >munJ
IL RUOLO DELLA DISTRIBUZIONE ESPONENZIALE
531
fr(r)
a
• Figura 13.3 La funzione densità di probabilità della distribuzione esponenziale.
o
E(T) =
&
e il valore atteso e la varianza di T sono rispettivamente
l
E(T ) = ~
l var (T) = ~
Quali sono le implicazioni per il modello quando si assume che T ha una distribuzione esponenziale? Per rispondere a tale questione, verranno esaminate sei proprietà principali della distribuzione esponenziale.
Proprietà l:fr(t) è una funzione strettamente decrescente di t (t 2: 0). Una conseguenza della Proprietà l è che
P{ O :S T :S .6.t} > P{ t :S T :S t + .6.t}
~pro
tempi :qua:r forstema 'er esforniche il LZIOne
rviZIO
'enti). .a sua
ono
per ogni valore strettamente positivo di .6.t e t. Questo segue dall ' osservazione che queste probabilità sono le aree sottese dal grafico difr(t) nei rispettivi intervalli di lunghezza .6.t, e che l'altezza media della curva è minore per la seconda probabilità. Pertanto, non solo è possibile ma anche relativamente probabile che T assuma un valore piccolo vicino a zero. Infatti,
P{o -< T -< ~~}= 0.393 2 a mentre
11 31} P {-< T < - = 0.383 2 a -
- 2 a
per cui è più probabile che il valore assunto da T sia " piccolo" [cioè, meno della metà di E(T)] piuttosto che "vicino" al suo valore medio [cioè, distante non più della metà di
E( T)] anche se il secondo intervallo è grande il doppio del primo . È questa una proprietà ragionevole per T? Se T rappresenta il tempo di servizio, la risposta dipende dalla natura del servizio. Se il servizio richiesto è essenzialmente identico per ogni cliente, con il servente che esegue sempre la stessa sequenza di operazioni, allora i tempi di servizio effettivi tendono a essere vicini al valore medio. Si possono verificare piccole deviazioni dalla media, ma di solito solo a causa di variazioni minori n eli 'efficienza del servente. È praticamente impossibile avere un tempo di servizio molto minore del valore medio, perché occorre un tempo minimo per eseguire le operazioni richieste anche per un servente che lavora al massimo della velocità. La distribuzione esponenziale chiaramente non fornisce una buona approssimazione della distribuzione dei tempi di servizio per questo tipo di situazione.
532
CAPITOLO 13
TEORIA DELLE CODE
D'altra parte, si consideri il caso in cui i compiti richiesti al servente differiscono da cliente a cliente. La natura del servizio può essere la stessa, ma il tipo specifico e la durata del servizio può variare. Questo è il caso del problema del pronto soccorso del County H ospitai discusso nel Paragrafo 13 .l. I dottori si imbattono in una grande varietà di emergenze mediche e nella maggior parte dei casi, la durata della visita è breve, ma un paziente occasionate può richiedere una visita prolungata. Analogamente, i cassieri di una banca o di un negozio di alimentari sono altri serventi per i quali il servizio richiesto spesso è di breve durata ma occasionalmente le operazioni richieste dal cliente sono abbastanza laboriose. Una distribuzione esponenziale dei tempi di servizio sembra abbastanza plausibile per questo tipo di situazione. Se T rappresenta il tempo di interarrivo, la Proprietà l esclude situazioni in cui potenziali clienti rimandano il loro ingresso nel sistema vedendo un altro cliente entrare prima di loro. D'altra parte, è completamente consistente con il comune fenomeno degli arrivi che si verificano "casualmente" , descritto dalle seguenti proprietà. Quindi, quando i tempi d'arrivo vengono rappresentati graficamente sull'asse dei tempi, sembrano addensarsi in alcune aree poi separati da intervalli grandi; questo perché piccoli intervalli tra arrivi hanno una probabilità grande mentre tempi di interarrivo grandi hanno una probabilità piccola; una tale modalità irregolare è una caratteristica della casualità. Proprietà 2: mancanza di memoria.
Questa proprietà può essere enunciata matematicamente nel seguente modo:
P{ T > t +
~t i
T>
~t} =
P{ T > t}
per ogni valore positivo di t e ~t. In altre parole, la distribuzione di probabilità del tempo d 'attesa per .l'evento (arrivo o completamento del servizio) è sempre lo stesso, indipendentemente da quanto tempo (~t) sia già passato. In effetti, il processo " dimentica" la sua storia. Questo sorprendente fenomeno si verifica con la distribuzione esponenziale perché
P{T > t + ~t i T > ~t} = P{T > ~t, T > t + ~t} P{T > ~t} P{T > t+ ~t} P{T > ~t} e - a(t+ll.t ) e - a ll.t
= e- at =P{ T > t} Per i tempi di interarrivo, questa proprietà descrive la situazione comune in cui il tempo di attesa fino al prossimo arrivo è completamente indipendente dall'istante in cui si è verificato l'ultimo arrivo. Per i tempi di servizio, questa proprietà è più difficile da interpretare. Non ci si deve aspettare che essa sia valida in una situazione in cui il servente deve eseguire la stessa sequenza di operazioni per ogni cliente, perché allora un servizio che già dura da molto implica che probabilmente restano poche operazioni da completare. Tuttavia, nel caso in cui le operazioni variano da cliente a cliente, questa proprietà può essere abbastanza realistica. In questo caso, se un servizio considerevole è già stato svolto per un cliente, la sola implicazione può essere che questo particolare cliente abbia richiesto un servizio più lungo di quelli svolti per la maggior parte dei clienti. Proprietà 3: il minimo di variabili casuali esponenziali indipendenti ha una distribuzione esponenziale.
13.4
clien.ta del ounty emerlzienbanca o è di labos ibile >otenpnma arrivi i tem11Sarsi arrivi tbilità
Il RUOLO DELLA DISTRIBUZIONE ESPONENZIALE
533
Per enunciare matematicamente questa proprietà, siano Tt. T2, ... , T11 variabili casuali esponenziali indipendenti con parametri rispettivamente a 1, a 2 , ... , a 11 • Inoltre sia U una variabile casuale che assume come valore il minimo dei valori assunti da T 1, T2 , . . . , T11 ; cioè,
U = min{T, , h ... , Tn } Quindi, se T; rappresenta il tempo trascorso fino al momento in cui si verifica un particolare evento, allora U rappresenta il tempo trascorso fino al momento in cui si verifica il primo di n eventi diversi. Si noti che per ogni t ~ O,
P{ U > t} = P{ T, > t, T2 > t, . . . , Tn > t}
= P{T, > t}P{T2 >t}·· ·P{Tn >t} -
e -al t e - Cl2 1 . . . e O:nl
= exp ( -
t a;t) l=
l
per cui U ha una distribuzione esponenziale con parametro Il
a = .L: a; i= l
empo i pena " la 1ziale
po ven>retadeve >che ~m
~tare .
ò esvolto chi e-
u-
Questa proprietà ha importanti implicazioni per i tempi di interarrivo. In particolare, si supponga che ci siano (n) diversi tipi di clienti, e che per ogni tipo (tipo i) questi intervalli abbiano una distribuzione esponenziale con parametro a; (i= l , 2, ... , n). Per la Proprietà 2, il tempo d 'attesa da un istante specificato fino al prossimo arrivo di un cliente di tipo i ha questa stessa distribuzione . Pertanto, se T; è il tempo d ' attesa misurato dall'istante in cui arriva un cliente di tipo qualunque, allora per la Proprietà 3 l'intervallo tra gli arrivi U per il sistema ha ancora una distribuzione esponenziale con parametro a come definito dali 'ultima equazione. Di conseguenza, nel modello si può scegliere di ignorare la distinzione tra i vari clienti e avere ancora una distribuzione esponenziale degli intervalli tra gli arrivi. Le implicazioni sono anche più importanti per i tempi di servizio nei modelli di coda a più serventi. Per esempio, si consideri la situazione in cui tutti i serventi hanno la stessa distribuzione esponenziale dei tempi di servizio con parametro J..L. In questo caso, sia n il numero di serventi attualmente attivi, e sia T; il tempo di servizio restante per il servente i (i = l , 2, ... , n), che ha anch' esso una distribuzione esponenziale con parametro a ; = J..L. Allora U, il tempo fino alla prossima conclusione di un servizio svolto da uno qualsiasi di questi serventi, ha una distribuzione esponenziale con parametro a = nJ..L. In effetti, il sistema di coda attualmente opera proprio come un sistema con un singolo servente e in cui i tempi di servizio hanno una distribuzione esponenziale con parametro nJ..L. Più avanti nel capitolo, si farà spesso uso di questa implicazione per analizzare i modelli a più serventi. Quando si usa questa proprietà, a volte è utile determinare anche le probabilità per stabilire quale delle variabili casuali esponenziali risulterà quella che ha il valore minimo. Per esempio, si potrebbe voler calcolare la probabilità che un particolare servente j termini per primo tra n serventi esponenziali occupati. È abbastanza immediato mostrare che questa probabilità è proporzionale al parametro ai" In particolare, la probabilità che T) risulti essere la più piccola delle n variabili casuali è a·
P{Tj = U} = - ,-, -1
-
L a;
perj =l, 2, ... , n
i= l
Proprietà 4: relazione con la distribuzione di Poisson. Se il tempo tra due occorrenze consecutive di un particolare evento (per esempio, arrivi o conclusione di un servizio svolto da un servente continuamente occupato) ha una distribu-
534
CAPITOLO 13
TEORIA DELLE CODE
zione esponenziale con parametro a, la Proprietà 4 mostra quale è l'implicazione di questa ipotesi sulla distribuzione di probabilità per il numero di volte che questo evento si verifica in uno specifico periodo di tempo . In particolare, sia X(t) il numero di occorrenze nel tempo t (t ~ 0), dove il tempo O rappresenta l' istante a partire dal quale inizia il conteggio. L' implicazione è che P{X (t) =n} = (at)"e- a' n!
per n= O, l, 2, .. .;
cioè, X(t) ha una distribuzione di Poisson con parametro a t. Per esempio, per n = O, P{X (t) =O} = e- at
che è proprio la probabilità, secondo una distribuzione esponenziale, che il primo evento si verifichi dopo l'istante t. La media di questa distribuzione di Poisson è E{X( t)} = a t
per cui il numero atteso di eventi per unità di tempo è a . Quando gli eventi sono contati su base continua, si dice che il processo di conteggio {X(t); t ~ O} è un processo di Poisson con parametro a. Questa proprietà fornisce informazioni utili sul completamento del servizio quando i tempi di servizio hanno una distribuzione esponenziale con parametro f-L· In questo caso, sia X( t) il numero di servizi completati nel tempo t da un servente continuamente occupato , dove a = f-L. Per i modelli di coda con più serventi, X(t) è definito come il numero di servizi completati in un tempo t da n serventi continuamente occupati, dove a = 11f-L. Tale proprietà è anche particolarmente utile per descrivere il comportamento probabilistico degli arrivi quando gli intervalli tra gli arrivi hanno una distribuzione esponenziale con parametro À : In questo caso, X(t) è il numero di arrivi nel tempo t, dove a = À è la tasso medio d 'arrivo. Pertanto, gli atTivi si verificano secondo un processo di arrivi di P o isso n con parametro À. Per questi modelli di coda gli arrivi sono di tipo poissoniano . A volte si usa l'espressione che gli arrivi si verificano casualmente, intendendo che essi si verificano secondo un processo di Poisson. Un'interpretazione intuitiva di questo fenomeno è che ogni intervallo di tempo di lunghezza fissata ha la stessa possibilità di avere un arrivo indipendentemente da quando è avvenuto l' arrivo precedente, come è suggerito dalla seguente proprietà. Proprietà 5: per ogni valore positivo di t, P { T :S t + Llt iT piccolo.
> t}
~a
Llt, per Llt
Ancora una volta sia T l' intervallo di tempo tra l' ultimo evento di un certo tipo (arrivo o completamento di un servizio) e l'evento successivo dello stesso tipo e si supponga che sia già trascorso un tempo t senza che tale evento si sia verificato. Dalla Proprietà 2 segue che la probabilità che l'evento si verifichi nel prossimo intervallo di tempo di lunghezza fissata Llt è costante, indipendente da quanto sia grande o piccolo t. La Proprietà 5 implica che, quando il valore di Llt è piccolo, questa probabilità costante può essere approssimata molto bene da a Llt. Dunque, quando si considerano valori piccoli di Llt, questa probabilità è essenzialmente proporzionale a Llt, con un fattore di proporzionalità a . Infatti, a è il numero medio di eventi per unità di tempo, per cui il numero atteso di eventi nell 'intervallo di lunghezza Llt è esattamente a Llt. La sola ragione per cui la probabilità del verificarsi di un evento differisce leggermente da questo valore è il fatto che si possa verificare più di un evento, che ha una probabilità trascurabile quando Llt è piccolo. Per verificare perché matematicamente vale la Proprietà 5, si noti che il valore costante della probabilità (per un fissato valore di Llt > O) è proprio P { T :S t + Llt l T > t}= P{ T :S Llt } = l -
e- o.b.t
13.4
di que) si ve)rrenze il con-
535
Il RUOlO DEllA DISTRIBUZIONE ESPONENZIAlE
per ogni t 2': O. Poiché lo sviluppo in serie della funzione ex è
x"
e' = l +x+ I:= n= 2
n.1
si ha
P{ T~ t+ 6.t l T>
t} = l- l + a 6.t-
2:::: 00
(
n=2
;:::;; a 6.t
evento
contati di
!SSO
ando i ) caso, ccupa1ero di babili~nziale
a tasso oisson :he es:sto feji avesugge-
6.t Tivo o ga che segue shezza impliJrossita pro[nfatti, tti nelità del a veri>Stante
6.t)" - a n.1
per 6.t piccolo6
perché i termini della sommat01ia diventano trascurabili per valori di a 6.t sufficientemente piccoli. Poiché T può rappresentare i tempi di interarrivo o i tempi di servizio, questa proprietà fornisce un 'approssimazione conveniente della probabilità che si verifichi un evento di qualche interesse nel prossimo (piccolo) intervallo di tempo 6.t. Un' analisi basata su questa approssimazione può anche essere resa esatta considerando dei limiti appropriati per 6.t ----> O.
Proprietà 6: insensibilità all'aggregazione o alla disaggregazione (proprietà additiva). Questa proprietà è importante soprattutto per verificare che il processo di arrivi è di tipo poissoniano. Pertanto, la proprietà verrà descritta in questi termini, anche se può essere applicata direttamente alla distribuzione esponenziale (intervalli esponenziali tra gli arrivi) per la Proprietà 4. Si consideri l'aggregazione (combinazione) di diversi processi di arrivo di Poisson in un unico processo di atTivi . In particolare, si supponga che ci siano (n) diversi tipi di clienti, e i clienti di ogni tipo (tipo i) arrivino secondo un processo di Poisson con parametro À; (i = l, 2, .. ., n). Assumendo che questi processi siano indipendenti, da questa proprietà discende che il processo degli arrivi aggregato (arrivo di clienti di qualunque tipo) deve essere ancora di Poisson, con parametro (tasso medio d'arrivo) À = À 1 + ).. 2 + ... + )..,,. In altre parole, un processo di P oisson è insensibile al! 'aggregazione. Questa parte della proprietà segue direttamente dalle Proprietà 3 e 4. La Proprietà 4 implica che i tempi di interanivo, per i clienti di tipo i, hanno una distribuzione esponenziale con parametro À;. Dalla Proprietà 3 segue che anche i tempi di interarrivo per tutti i clienti devono avere una distribuzione esponenziale, con parametro À = ).. 1 + >.. 2 + .. . + Àw Usando ancora la Proprietà 4 segue che il processo degli arrivi aggregato è di tipo poissomano. La seconda parte della Proprietà 6 ("insensibilità alla disaggregazione") si riferisce al caso inverso, dove è noto che il processo degli arrivi aggregato (ottenuto combinando i processi di anivo per diversi tipi di clienti) è di Poisson con parametro À, ma la questione ora riguarda la natura dei processi disaggregati (i singoli processi di arrivo per i vari tipi di cliente). Assumendo che ogni cliente che atTiva ha unafissata probabilità p; di essere di tipo i (i= l, 2, ... , n), con n
À; = p;À
e
2::=P; = l i= l
questa proprietà implica che anche il processo degli arrivi per i clienti di tipo i deve essere di Poisson con parametro À;. In altre parole, un processo di Poisson è insensibile alla disaggregazione. 6
Più precisamente,
lim P{T :S t+.6.t iT > t} = a. lll- 0
.6.t
536
CAPITOLO 13
TEORIA DEllE CODE
Come esempio dell'utilità di questa seconda parte della proprietà, si consideri la seguente situazione. Clienti non distinguibili tra loro arrivano secondo un processo di Poisson con parametro À. Ogni cliente che arriva ha una fissata probabilità p di rinunciare (andare via senza entrare nel sistema), per cui la probabilità di entrare nel sistema è l - p. Quindi, ci sono due tipi di clienti - quelli che rinunciano e quelli che entrano nel sistema. La proprietà assicura che ogni tipo di cliente arriva secondo un processo di Poisson, rispettivamente con parametri pÀ e (l - p)À. Perciò, i modelli di coda che assumono un processo di arrivi di Poisson possono ancora essere usati per analizzare la performance del sistema di attesa per quei clienti che entrano nel sistema.
I·D~ 3.5
IL PROCESSO DI NASCITA E MORTE I modelli di coda più semplici assumono che gli ingressi (clienti che arrivano) e le uscite (clienti che partono) dal sistema di attesa si verificano secondo un processo di nascita e morte. Questo importante processo nella teoria della probabilità ha applicazioni in vari settori. Nel contesto della teoria delle code, il termine nascita si riferisce all 'arrivo di un nuovo cliente nel sistema, e morte si riferisce alla uscita dal sistema di un cliente servito. Lo stato del sistema al tempo t (t 2 0), indicato da N(t), è il numero di clienti nel sistema all'istante t. Il processo di nascita e morte descrive in termini probabilistici come cambia N(t) al variare di t. Nascite e morti individuali si verificano casualmente, e il tasso medio di occorrenze per unità di tempo dipende solo dallo stato corrente del sistema. Più precisamente, le assunzioni del processo di nascita e morte sono le seguenti. Assunzione l. Dato N(t) =n, la distribuzione di probabilità corrente del tempo d 'attesa per la prossima nascita (arrivo) è esponenziale con parametro À 11 (n = O, l , 2, ... ). Assunzione 2. Dato N( t) = n, la distribuzione di probabilità corrente del tempo d'attesa per la prossima morte (completamento del servizio) è esponenziale con parametro f.i.n (n=1,2, .. .). Assunzione 3. La variabile casuale dell'Assunzione l (il tempo d'attesa per la prossima nascita) e la variabile casuale dell'Assunzione 2 (il tempo d'attesa per la prossima morte) sono indipendenti. La prossima transizione nello stato del processo è
n
--+
n
+l
(una singola nascita)
l
(una singola morte),
oppure n --+ n -
a seconda che la prima o la seconda variabile casuale sia più piccola. In un sistema di file di attesa, À 11 e f.i.n rappresentano rispettivamente il tasso medio d'arrivo e il numero medio di servizi per unità di tempo, quando ci sono n clienti nel sistema. Per alcuni sistemi, i valori di À 11 sono gli stessi per ogni n, e anche le quantità f.i.n non dipendono da n tranne per valori piccoli di n (per esempio n = O) in cui un servente è inattivo. Tuttavia, per altri sistemi questi valori possono cambiare molto al variare di n. Per esempio, \ , può variare con n se, al crescere di n, diventa sempre più probabile che i potenziali clienti che arrivano rinunciano a entrare nel sistema. Analogamente, f.i.n può essere diverso al variare di n se, al crescere della lunghezza della coda, diventa sempre più probabile che i clienti in coda rinuncino al servizio (abbandonano il sistema senza essere stati serviti).
Analisi del processo di nascita e morte Il processo di nascita e morte è un particolare tipo di catena di Markov a tempo continuo.
13.5
t ente
con e via ji, ci pneJente
537
Il PROCESSO DI NASCITA E MORTE
t
Stato:
Ao
A,
A2
An- 2
ILI
IL2
IL3
J.Ln -
An -
A,
l
J
• Figura 13.4 Il diagramma del processo di nascita e morte.
IL n
l
J.Ln
+ l
lffiVI
.ttesa
tscite
·ita e vari ji un vito. tema mbia 1edio :CJsa-
Poiché la Proprietà 4 per la distribuzione esponenziale implica che i parametri \, e 1-ln sono valori medi per unità di tempo, si possono riassumere le assunzioni 1-3 mediante il diagramma mostrato nella Figura 13.4. Gli archi in questo diagramma indicano le transizioni possibili per lo stato del sistema (come specificato dall ' Assunzione 3), e i valori per ogni arco corrispondono al tasso medio per quella transizione (come specificato dalle Assunzioni l e 2) quando il sistema è in uno specifico stato. A parte alcuni casi particolari, l'analisi del processo di nascita e morte è molto difficile quando il sistema è in una condizione transitoria . In questo caso, sono stati ottenuti alcuni risultati sulla distribuzione di probabilità per N(t) ,7 ma sono troppo complicati per essere di qualche utilità pratica. D 'altra parte, è relativamente immediato determinare questa distribuzione dopo che il sistema ha raggiunto una condizione di regime stazionario (assumendo che si possa raggiungere questa condizione). Questa derivazione può essere ottenuta direttamente dal diagramma del processo di nascita e morte, nel seguente modo. Si consideri un particolare stato del sistema n (n = O, l , 2, ... ). A partire dal! 'istante O, si supponga di contare il numero di volte in cui il processo entra in questo stato e del numero di volte in cui esso lascia questo stato:
d 'at-
E 11 (t) = numero di volte in cui il processo entra nello stato n nel ' intervallo O, t.
I.
d 'atro 1-ln
·ossi:sima
L 11 (t) = numero eli volte in cui il processo lascia lo stato n O, t. Poiché i due tipi di eventi (entrata e uscita) si devono alternare, questi due valori devono sempre essere uguali o differire esattamente di l ; cioè,
IEn(t) - Ln(t) l ~ l Dividendo ambo i membri per t e facendo tendere t ad infinito, si ottiene
l
lim l En (t) _ Ln (t) l= O { -->00
t
t
lim En (t) = numero medio di volte in cui il processo entra nello stato n, per unità di t tempo.
{ -->00
el sità f.hn :nte è
{ --> 00
lim Ln(t) = numero medio di volte in cui il processo lascia lo stato n, per unità di t tempo .
n.
nuo.
per cm
Dividendo E11 (t) e L11 (t) per t, si ottiene il numero effettivo di eventi per unità di tempo, e per t -+ oo si ottiene il numero atteso di eventi per unità di tempo:
tedio
abile e, 1-ln sem;enza
l
E11 (t ) _ Ln(t) ~ _,!_ t t t
Questi risultati conducono al seguente principio fondamentale .
Principio di stazionarietà. Per ogni stato n (n = O, l, 2, .. .),il numero medio di ingressi è uguale al numero medio di uscite.
7
S. Karlin e J. McGregor, " Many Server Queueing Processes with Poisson lnput and Exponential Service Times " , Pacific Journal ofMathematics, 8: 87-11 8, 1958.
538
CAPITOLO 13
TEORIA DELLE CODE
L'equazione che esprime questo principio è detta equazione di equilibrio per lo stato n. Dopo aver impostato le equazioni di equilibrio per tutti gli stati in termini delle probabilità P11 (sconosciute), si può risolvere questo sistema di equazioni (più l'equazione che impone che la somma delle probabilità deve essere l) per calcolare queste pro ba bi lità. Per descrivere un'equazione di equilibrio, si consideri lo stato O. Il processo entra in questo stato solo dallo stato l . Quindi, la probabilità in regime stazionario di essere nello stato l (P 1) rappresenta la frazione di tempo che il processo dovrebbe impiegare per entrare nello stato O. Per ogni unità di tempo cumulativa che il processo spende nello stato l , il numero atteso di volte che lascia lo stato l per entrare nello stato O è /-L t. Da ogni altro stato, questo numero è O. Pertanto, il numero medio di volte che il processo lascia lo stato corrente per entrare nello stato O per unità di tempo (tasso medio d 'entrata) è
p,, P, + 0(1- P, ) = p,, P, Per lo stesso motivo, il tasso medio d 'uscita deve essere >.oP0 , per cui l'equazione di equilibrio per lo stato O è
p,,P, = ÀoPo Per ogni altro stato ci sono due possibili transizioni entrambe dentro e fuori dallo stato. Pertanto, ogni termine delle equazioni di equilibtio per questi stati rappresenta la somma dei tassi medi relativi alle due transizioni coinvolte. Queste equazioni di equi librio sono riassunte nella Tabella 13 .l. Si noti che la prima equazione contiene due variabili (P 0 e P 1) , le prime due equazioni contengono tre variabili (P 0 , P 1 e P 2), e così via, per cui c'è sempre una variabile "extra " . La procedura da utilizzare è quella di risolvere queste equazioni in funzione di una delle variabili, la più conveniente è P 0 . Dunque, la prima equazione si usa per determinare P 1 in funzione di P0 ; questo risultato e la seconda equazione sono usati per determinare P 2 in funzione di P 0 ecc. Alla fine, poichè la somma delle probabilità è l , è possibile determinare P 0 .
Risultati per il processo di nascita e morte Applicando questo metodo, si ottengono i seguenti risultati:
Stato:
0:
Ào
P,
= -Po fLt
1:
Pz
=
fL2
p3
2:
=
;\2
-
fL 3
17 -
n:
l:
+ - l (fL,Pt - AoPo)
-À l Pl
_
PII
-
P n+l
-
P2
Àn-1
-
fLn
+
p
J.Ln + l
l - (fL 2P 2 fL 3
-
_ A1A0 p ()
fL 2
fL 2 fL1
=
A1P 1)
l (
p
..L
•
,
p
n- 2
_ l _( f.L np n - A' n - l p n - l ) J.Ln + l
Per semplificare la notazione, sia Àn - 1 Àn -2 ... Ào
f-Ln/-LII - 1 . . . /-LI
Àz p fL 3
n- l + fL n - 1 n - 1 - lln-2 fLn
-~p n
C"=
=~P,
fL 2
per n= l , 2, ...
) _ Àn- 1p -
-
ÀzÀtÀo
2
fL n
Po
fL 3 fL2fLI
n- l
"- n - t"-n - 2 · ··
Ao Po
fLn fLn - 1 · · · fLt
=~P,,
À nÀn- 1 ... Ào
J.Ln +l
fLn+ tfLn · •• fLt
Po
13.5
~ato n. Jabilite im-
1tra in : nello entrao l, il -o sta' stato
IL PROCESSO DI NASCITA E MORTE
Tabella 13.1 Equazioni di equilibrio per il processo di nascita e morte
Stato
numero medio di ingressi
o
= numero medio di uscite
p.,, P, = Ao Po AoPo + p.,z Pz = (A 1 + 1L1 )P, A, P, + p.,3P3 = (A z + p.,z)Pz
l 2
n- 1
An- 2Pn- 2 + !LnPn = (A n- l + !Ln- l)Pn- 1 An- l Pn- 1 + !Ln+lpn+l = (A n+ !Ln)Pn
n
e sia C11 equi-
539
= l per n = O. Quindi, le probabilità in regime stazionario sono
P"= CnPo per n= O, l, 2, . . . Poiché 00
stato. ?m ma sono 1zioni ·iabile me di deterdeter-
LP, = l 11= 0
si ha che
(~ Cn)Po = l e pertanto
(f: cn) _,
DOSSi-
Po =
n=O
Quando un modello di coda si basa sul processo di nascita e morte, lo stato n rappresenta il numero di clienti nel sistema, e le misure della petformance del sistema (L , Lq, W e Wq) si possono ottenere immediatamente dopo aver calcolato le probabilità ? 11 dalle fmmule precedenti. Le definizioni di L e Lq date nel Paragrafo 13.2 specificano che 00
00
L= l:nP11
Lq
= L (n -
s)P11
n=s
1!=0
Inoltre, le relazioni date alla fine del Paragrafo 13.2 implicano
W=!:_ >:
I:Q.Po
Wq
L
= -4À
l
Po
dove>: è la media asintotica dei tassi d'arrivo. Poiché À 11 è il tasso medio d' arrivo quando il sistema è nello stato n (n = O, l , 2, ... ) e P 11 è la frazione di tempo in cui il sistema è in questo stato, 00
>: = L
ÀnPn
11 = 0
Alcune delle espressioni appena date coinvolgono sommatorie con un numero infinito di tennini . Fortunatamente, queste sommatorie hanno soluzioni analitiche per un numero di
540
CAPITOLO 13
TEORIA DELLE CODE
casi interessanti, 8 come si vedrà nel prossimo paragrafo. Altrimenti, possono essere approssimate con la somma di un numero finito di termini. Questi risultati in regime stazionario sono stati determinati assumendo che i parametri Àn e f-in hanno valori tali che il processo può effettivamente raggiungere una condizione stazionaria. Questa assunzione vale sempre se Àn = O per qualche valore di n maggiore dello stato iniziale, per cui solo un numero finito di stati (quelli minori di questo n) sono possibili. Vale sempre anche quando per À e IL si ha che (si faccia riferimento a 00
"Terminologia e notazione" nel Paragrafo 13.2) p= Àl (sf.L) < l. Non vale se
,L Cn
= oo.
n= l
Il Paragrafo 13.6 descrive diversi modelli di coda che sono casi particolari del processo di nascita e morte. Pertanto, i risultati generali (in regime stazionario) appena visti saranno usati molte volte per ottenere i risultati specifici per questi modelli.
13.6
MODELLI DI CODE BASATI SUL PROCESSO DI NASCITA E MORTE Poiché, per il processo di nascita e morte, i parametri .À0 , Àh ... e f.-i~> f.L 2 , ... possono assumere un qualunque valore nonnegativo, si ha una grande flessibilità nel modellare un sistema di file di attesa e i modelli più usati nella teoria delle code si basano direttamente su questo processo. Dalle Assunzioni l e 2 (e per la Proprietà 4 della distribuzione esponenziale) segue che questi modelli hanno arrivi di tipo poissoniano e tempi di servizio esponenziali. I modelli differiscono solo per come Àn e f-in variano al variare di n. In questo paragrafo verranno presentati tre di questi modelli per tre importanti tipi di file di attesa.
Il modello
M/M/s
Come descritto nel Paragrafo 13.2, il modello M /Mis assume che tutti i tempi di interarrivo siano indipendenti e identicamente distribuiti secondo una distribuzione esponenziale (cioè, il processo degli arrivi è di Poisson), che tutti i tempi di servizio sono indipendenti e distribuiti secondo un'altra distribuzione esponenziale, e che il numero dei serventi è s (un intero positivo). Di conseguenza, questo modello è un caso particolare del processo di nascita e morte in cui il tasso medio d'arrivo e il numero medio di servizi per servente occupato ne/l 'unità di tempo (rispettivamente À e f.L) sono costanti indipendentemente dallo stato del sistema. Quando il sistema ha solo un servente (s = l), i parametri per il processo di nascita e morte sono Àn = À (n= O, l , 2, ... ) e f-in= f.L (n= l , 2, ... ).Il diagramma del processo risultante è mostrato nella Figura 13 .Sa. Tuttavia, quando il sistema ha più serventi (s > 1), le quantità f-in non possono essere espresse così semplicemente. Si ricordi che f-in rappresenta il numero medio di servizi completati per unità di tempo per il sistema globale quando ci sono n clienti presenti. Quando il numero medio di servizi per servente occupato è f.L, il numero medio globale dei servizi completati per n serventi occupati deve essere nf.L. Pertanto, f-in = nf.L quando n :::; s, mentre f-in = Sf.L quando n ~ s cioè quando tutti gli s serventi sono occupati. Il diagramma del processo per questo caso è mostrato nella Figura 13.5b. Quando Sf.L supera il tasso medio d'arrivo, cioè quando À
p=-< l Sf.L
8
Queste soluzioni si basano sui seguenti ben noti risultati per la somma di una serie geometrica: N
l_
x N+ I
"""" x" = - -·- L.,
n= O
l - x
l L: x" = -l -x 00
11= 0
se
per ogni x
lxi < l
i
l
13.6
MODELLI DI CODE BASATI SUL PROCESSO DI NASCITA E MORTE
e ap-
(a) Caso di singolo servente (s = l)
metri lione giore sono 1to a
À
À
À11
=À
J.LI/
=p.,
541
per n= O, l, 2, ... per n= l , 2, ...
À
À
À
À
J.L
J.L
J.L
Stato:~ J.L
J.L
J.L
(b) Caso di più serventi (s > l)
Àl/ =
per n= O, l, 2, ...
À
= 00.
per n = l , 2, ... , s per n= s, s + l , ...
Jnp.,
J.L"
:esso ara n-
À
• Figura 13.5 Diagrammi del processo per il modello M/M/s.
À
= \ sp.,
À
À
À
(s - l)p.,
SJ.L
SJ.L
À
Stato:~ J.L
2p.,
3p.,
TE assusistette su men~spo
o pa-
·arritziale denti ti è s .so di
il sistema raggiungerà una condizione stazionaria. In questa situazione, i risultati in regime stazionario determinati nel Paragrafo 13.5 per il processo di nascita e morte sono applicabili direttamente. Tuttavia, questi risultati si semplificano considerevolmente per questo modello e producono espressioni in forma chiusa per P,, L , Lq ecc., come viene mostrato di seguito. Risultati per il caso di un singolo servente (M/M/1). il processo di nascita e morte sono dati da
À)" = p" c"= (--;
per n = O, l , 2, ...
Pertanto,
Pn= p"Po
pern = 0, 1, 2, ...
dove
e ocdallo ocesmma
ssere :rvizi ;enti. )baie tdo n dia-
Per s = l , le quantità C" per
Po
~ (t, p") '
=(G) -l =l - p Quindi,
Pn = (l - p)p"
per n = O, l, 2, ...
Di conseguenza,
L = _Ln (l - p)p 11 n=O
= (1 -
p)p
f : n=O
=
(p!l )
p
(l-p )p: (fpn) p
1/ = 0
=( l - p)p _!}___ ( - '- ) dp l - p p
À
l - p
f.-L - À
542
CAPITOLO 13
TEORIA DELLE CODE
Analogamente, 00
Lq =
2:)n -
l )Pn
n= l
=L - 1(1 - Po) À2
p,(p, - >. )
Quando À ;:::: p,, cioè il tasso medio d'arrivo supera il numero medio di servizi, la soluzione precedente "esplode" (perché la serie per il calcolo di P 0 diverge) . In questo caso, la coda continua a crescere senza limiti. Se il sistema inizia a operare senza clienti presenti, per un breve periodo di tempo il servente potrebbe riuscire a sostenere i clienti che arrivano, ma poi a lungo andare diventerebbe impossibile. Anche quando À = p,, il numero atteso di clienti nel sistema cresce lentamente nel tempo perché, anche se è possibile un ritorno temporaneo alla situazione in cui non sono presenti clienti, la probabilità che sia presente un numero enorme di clienti cresce significativamente nel tempo. Assumendo che À < p,, è possibile detenninare la distribuzione di probabilità del tempo di permanenza nel sistema (incluso il tempo di servizio) 'W per un arrivo casuale quando la disciplina della coda è di tipo FIFO. Se questo arrivo trova n clienti già nel sistema, allora dovrà aspettare n + l tempi di servizio esponenziali, incluso il suo. Per il cliente che è attualmente servito, vale la proprietà di assenza di memoria della distribuzione esponenziale discussa nel Paragrafo 13.4. Pertanto, siano TI> T2 , ... variabili casuali indipendenti dei tempi di servizio con una distribuzione esponenziale con parametro p,, e sia
Sn+l = T1 + Tz + · · · + Tn+l
per n = O, l , 2, ...
per cui Sn+l rappresenta il tempo di permanenza condizionato dalla presenza di n clienti nel sistema. Nel Paragrafo 13.7 si mostrerà che Sn+l ha una distribuzione di Erlang. 9 Poiché la probabilità che un arrivo casuale trovi n clienti nel sistema è P, segue che 00
P{'W > t}=
L
PnP{Sn+l > t}
n=O
che dopo vari passaggi algebrici si riduce a
P{'W >t} = e-p.(l- p)r per t ;:::: O La conclusione sorprendente è che 'W ha una distribuzione esponenziale con parametro p,(l -p). Perciò, l
W = E ('W) = p, ( l-p) l p,-À
Questi risultati includono nel tempo di attesa anche il tempo di servizio. In alcuni contesti (per esempio, il problema del pronto soccorso del County Hospital), il tempo di attesa più rilevante è proprio prima dell'inizio del servizio. Quindi, è importante calcolare il tempo di permanenza nella coda (escluso il tempo di servizio) 'W q per un arrivo casuale quando la disciplina della coda è di tipo FIFO. Se non ci sono clienti già presenti nel sistema, allora questo arrivo viene servito immediatamente, per cui
P{'Wq = O} = Po = l - p
9
Al di fuori della teoria delle code, questa di stribuzione è nota come distribuzione gamma.
13.6
MODELLI DI CODE BASATI SUL PROCESSO DI NASCITA E MORTE
543
Se invece ci sono n > O clienti già presenti, allora deve aspettare n tempi di servizio esponenziali fino a quando inizia a essere servito, per cui 00
2.:: P 11 P{S11 > t}
P{"Wq > t}=
11= 1 00
2.:: (l -
=
11
p)p P{S11 >t}
n= l 00
.ZIO-
=p
), la enti, "I val
2.:: PII P{SII+l >t} 11= 0
> t}
= pP {''!tV
al-
per t
= pe- ;t(l-p)r
~
O
n n-
: sia
Si
'em-
P{"Wq =O} >O. Tuttavia, la distribuzione di probabilità condizionata di "Wq dato "W q > O, è una distribuzione esponenziale con parametro p,( l - p), come W, perché
Jan:ma, ente spoJen-
noti
che
Wq
P{"W
non
q
ha
esattamente
etro
testi più npo ndo tllo-
distribuzione
esponenziale
perché
> t l'W > O} = p{"Wq > t} = e-;t(l- p)t per t > O P{"Wq > O}
q
-
Calcolando il valor medio (non condizionato) di "Wq (oppure applicando le fommle) Lq = ÀWq o Wq = W - l / p,), si ha
Wq = E ("Wq) .enti ng.9
una
À
=
p,(p,- À)
Quando s > l , i fattori C11 diventano
Risultati per il caso di più serventi (s > 1).
(V p,)" CII = {
per n = l , 2, ... , s
(À;~)' (~)
n- s =
sp,
s!
(Àj p,)" s! s11 -s
Di conseguenza, se À < sp, [per cui p = Àj (sp,)
per n = s, s + l , ...
< 1], allora l
Po = ~------------------~
[l + ~ (À~~)II + (À;~r ~c: r-sl s-1
[
2.:: n=O
(Àj p,)ll n!
+
(Àj p,)'
l
s!
l - V(sp,)
l
dove nell ' ultima sommatoria il tennine per n = O vale l perché per convenzione O! Questi fattori c/1 forniscono anche
(Àj p, )" p 0
se O :::; n :::; s
n!
Pn
=
{
( j )s À f.l
s!sn-s
Po
se
n~ s
=
l.
544
CAPITOLO 13
TEORIA DELLE CODE
Inoltre, 00
Lq =
L (n - s )Pn ll = S
00
= L}Ps+j }=0
-- Loo J. (>, j J-Ll )' }= 0
p,; J-LY P~ .!!_ (rJ )
- P
-
o
= Po
~ dp
s!
f rJ) .!!_ (- 1·)
(>.. / J-L )s P.!!_ ( s!
= Po
rJ Po
s.
dp
(>../ J-LY s!
J=O
l - p
P dp
Po( >.. j J-LY P 2
s! ( l - P)
Lq
Wq= T
l
W = Wq+J-L
L=
À(
Wq +
~)
= Lq +
~
La Figura 13 .6 mostra come L cambia al variare di p per diversi valori di s. Il metodo usato nel caso di un singolo servente per detenninare la distribuzione di probabilità dei tempi di attesa si può estendere anche al caso di più serventi. In questo caso si ottiene 10 (per t ~ O) P {W
> t} = e - Ja
[l -
+ Po(>../J-LY ---,----'-'--:-'-
(l-
s!( l - p)
e- f.lr (s- 1->./f.l) )]
s - 1-À/ J-L
e P{Wq
> t} = (l - P{Wq =O} ) e'f.l( l -p) r
dove s- 1
P{"W' q = O} =
L
Pn
n=O
Le formule precedenti per le varie misure di performance (incluso P 11 ) sono relativamente complesse per essere calcolate manualmente. Tuttavia, mediante un foglio Excel, si possono eseguire questi calcoli per qualsiasi valore di t, s, À e f.J,, a condizione che À < SJ-L. Se À ~ SJ-L, e quindi il tasso medio d'arrivo supera il numero medio massimo di servizi completati, allora la coda cresce senza limiti, per cui le precedenti soluzioni in regime stazionario non sono applicabili.
L'esempio del County Hospital con il modello M/M/s. Per il problema del pronto soccorso del County Hospital (Paragrafo 13 . l), il management ha concluso che le emergenze arrivano completamente a caso (è un p r ocesso di arr ivi di Poisson ), per cui i tempi 10
Quando s - l -
>.f p, = O, la ( l
- e- w(s- J- >.fr•))j (s - l - >./{t) deve essere rimpiazzato da p,t.
13.6
MODELLI DI CODE BASATI SUL PROCESSO DI NASCITA E MORTE
545
L lOOr---.---~---.----,---.----,---.----,---.---~
o
·~
= o ·;::;
s
}
<1.)
E
'5b ~
lO
.5 m
E
2 ·;n }
Q)
=
E
.~
u
:0 1.0 o }
~
o ..... <1.)
E :::>
z
• Figura 13.6
0.1
Valori di L per il modello protso si
0.4
0.5
0.6
0.7
Coefficiente di utili zzazione
0.8
0.9
1.0 À
p= SJ.L
di interarrivo hanno una distribuzione esponenziale. Inoltre il tempo impiegato da un medico per trattare i vari casi segue approssimativamente una distribuzione esponenziale. Pertanto il modello M/Mis è in questo caso appropriato. Basandosi su dati storici, si è stimato che nel turno in esame i pazienti arrivano a un tasso medio di l ogni mezz 'ora e a un medico occorrono in media 20 minuti per visitare ogni paziente. Quindi, assumendo un'ora come unità di tempo, l
2
l
l
J..L
3
): =
l
mezz' ora per paziente
e .
- = - di ora per paz1ente, per cm
!fVI ZI
À
~ sta-
~onto
0.3
M/M/s.
1ente pos-
:merempi
0.2
= 2 pazienti all'ora
e J..L =
3 pazienti all'ora.
Le due alternative che vengono considerate sono continuare ad avere solo un dottore durante questo turno (s = l ) oppure aggiungere un secondo dottore (s = 2). In entrambi i casi, p= -
À
< l
SJ..L
/
546
CAPITOLO 13
TEORIA DELLE CODE
per cui il sistema raggiunge una condizione di regime stazionario. In realtà, poiché À è molto diverso durante gli altri turni, il sistema non raggiungerà mai veramente una condizione stazionaria, ma il management ritiene che i risultati in regime stazionario forniscano comunque una buona approssimazione. Pertanto, le equazioni precedenti sono usate per ottenere i risultati mostrati nella Tabella 13 .2. Sulla base di questi risultati, si può concludere che per il prossimo anno un singolo dottore sarebbe inadeguato per fornire un trattamento rapido, veloce come richiesto da un pronto soccorso. Si vedrà più avanti (Paragrafo 13.8) come si può verificare questa conclusione applicando un altro modello di coda che fornisce una migliore rappresentazione del sistema reale. Tabella 13.2 Risultati in regime stazionario del modello M/Mis per il problema del County Hospital
s= 2
s=l p
l
2 9
l
+(tr
(+r
3 l
Po
3
P;
Pn
2
l 3 l 2 l 3
l
per n 2: 2
Lq
l
4 3
L
l
2
3 4
w;,
l
3
2 d.1 ora
l d.1 ora 24
w
l un'ora
B3 d.1 ora
P{'Wq > O}
0.667
0.167
0.404
0.022
0.245
0.003
P{'Wq >
~}
P{9.Vq > l}
l
TI
P{'Wq > t)
l
le- '
..:!._e- 4'
P{'W > t)
l
e- '
..:!._e- 3 '(3 - e- ~
3
6
2
Il modello M/Mis con coda finita (modello M/M/s/K) Nella discussione sulle code nel Paragrafo 13 .2, si è menzionato che a volte i sistemi di file di attesa hanno una coda finita ; cioè non è permesso che il nwnero di clienti nel sistema superi un valore fissato (indicato con K), per cui la capacità della coda è K - s. Ogni cliente che arriva quando la coda è "piena" non può entrare nel sistema e quindi lo abbandona per sempre. Dal punto di vista del processo di nascita e morte, il tasso medio di arrivi nel sistema diventa zero. Pertanto, l'unica modifica da apportare al modello M/Mis nel caso di una coda finita è cambiare i parametri \ , in Àn = {
~
per n= O, l , 2, ..., K - l per n:::: K
Poiché À 11 = O per alcuni valori di n, un sistema rappresentato da questo modello raggiungerà sempre una condizione stazionaria, anche quando p = .\j(sp,) :::: l.
13.6
é Àè
ondi:;cano :e per
) dot-
ia un
. conzione
MODELLI DI CODE BASATI SUL PROCESSO DI NASCITA E MORTE
Questo modello è comunemente indicato con MIM/s/K, dove la presenza del quarto simbolo lo distingue dal modello M/Mis; l'unica differenza è che K è finito per il modello MI M/s/K mentre K = oo per il modello M/Mis. L'interpretazione fisica usuale per il modello M/Mis/K è che c'è una sala d'attesa limitata che può contenere al massimo K clienti nel sistema. Per esempio, per il problema del pronto soccorso del County Hospital, questo sistema avrebbe effettivamente una coda finita se ci fossero solo K posti e se la regola fosse quella di mandare a un altro ospedale i pazienti che arrivano qualora non ci sono posti vuoti . Un' altra possibi le interpretazione è che i clienti che arrivano vanno via e "svolgono altrove i loro affari " quando trovano nel sistema troppi clienti (K) davanti a loro, perché non sono disposti a sopportare una lunga attesa. Questo fenomeno di rinuncia (balking) è abbastanza comune nei sistemi di servizio commerciali. Tuttavia, ci sono altri modelli disponibili che si adattano anche meglio a questa interpretazione. Il diagramma del processo per questo modello è identico a quello mostrato nella Figura 13.5 per il modello M/Mis , con la differenza che questa volta si ferma con lo stato K.
Risultati per il caso di un singolo servente (M/ M/l l K).
c. ~ {
~ ~ )" ~ p "
In questo caso,
per n = O, l , 2, ... , K per n > K
Pertanto, per p
i-
l,
11
Po =
K
2.).\ftL)" n=O
[
l - (À/tL( +Il l - .\ j IL
1-p l - pK+ l
quindi
p n --
1- p n l - pK+ l p
per n = O, l , 2, ..., K
Dunque, K
L =
LnP
11
n=O
1- p l - pK+ l
1 -p
di fi sisteOgni Jban-
l - pK+ l
nel
- (K = p p l - p
d
K
p
2.::: -
(p")
n=O dp
p:p (~p")
l - p p _c!_ l - pK+ l dp
1 am-
/s
547
(l _
p K+ l ) l- p
+
l ) p K + K pK+ 1 ( 1 - p K+ l)( l - p)
+l
(K + l )pK+ l
l - pll. -t- 1
gmn11
Se p= l , allora P,= I/(K + I) per n = O, l , 2, ..., K, quindi L= K/ 2.
548
CAPITOLO 13
TEORIA DEllE CODE
Come al solito (quando s
=
l),
Lq =L- (1 - Po) Si noti che i risultati precedenti non richiedono À < f-L (cioè p < 1). Quando p < l , può succedere che il secondo termine nell 'espressione finale di L converga a O per K ___., oo, per cui tutti i risultati precedenti convergono ai risultati cmTispondenti del modello M /M/1. Le distribuzioni dei tempi di attesa si possono determinare usando lo stesso ragionamento adottato per il modello MIM I!. Tuttavia, in questo caso non si ottengono delle espressioni semplici, per cui è necessario eseguire i calcoli con l'ausilio di computer. Fortunatamente, anche se L i- ÀW e Lq i- ÀWq perché i parametri À11 non sono uguali per ogni n (si faccia riferimento alla fine del Paragrafo 13.2), i tempi medi di attesa per i clienti che entrano nel sistema si possono ancora ottenere direttamente dalle espressioni date alla fine del Paragrafo 13 .5:
W=~
Wq =
>:
0!À
dove 00
: \ =L ÀnPn n=O
K- 1
=
LÀPn n=O
= À( l - PK) Risultati per il caso di più serventi (s > 1). Poiché questo modello non consente più di K clienti nel sistema, K è il massimo numero di serventi che si possono usare. Quindi, si assume s ::::; K. In tal caso, C11 diventa
Cn =
Dunque,
(À/ J-L )" n! (À/ J-L )' s!
l
per n = O, l , 2, ... , s
( s~)"-s=
per n = s, s + l , .. ., K per
(À~~)n
Pn =
dove
(À/ J-L)"
l
Po
n>K
per n = O, l , 2, ... , s
(À/ J-L )" Po per n = s, s + l , ... , K s!sn-s o per n > K
l
~ = ~----------~~----~
[~ (À~~)" + (À~~y n~l c~r-s]
(anche in queste formule si usa la convenzione O! = !.) Adattando il calcolo di Lq per il modello M/Mis a questo caso, si ottiene
L
= q
Po(À/J-L)s~ [l - PK-s s!(l -
Pt
(K - s) pK-s (l- p)]
13.6
MODElli DI CODE BASATI SUl PROCESSO DI NASCITA E MORTE
549
dove p= >.. j (sJ-L). 12 Si può mostrare che
conispon-
L=~ nPn + Lq +s ( l - ~P,)
J
?;!Ona. delle tputer. :~Ii per clienti date
Le quantità W e Wq si ottengono proprio come nel caso di un singolo servente. Particolannente interessante è il caso K = s, cioè la capacità della coda è K- s = O e quindi i clienti che arrivano quando tutti i serventi sono occupati abbandonano immediatamente il sistema. Questo potrebbe accadere, per esempio, in una rete telefonica con s linee: quando tutte le linee sono impegnate, la persona che telefona trova il segnale di occupato e chiude. Questo tipo di sistema (un sistema di attesa senza coda) viene detto sistema a perdita di Erlang perché studiati per la prima volta da A.K. Erlang, un ingegnere danese che lavorava in una compagnia telefonica, considerato il fondatore della teoria delle code. Ora è abbastanza comune fornire al sistema telefonico di un call-center alcune linee extra per porre le chiamate in attesa ma, una volta esaurite queste linee, ulteriori chiamate troveranno il segnale di occupato. Anche questo sistema si adatta a questo modello, dove (K- s) è il numero di linee che mantengono la chiamata in attesa.
Il modello M/Mis con popolazione finita
1te più 2uindi,
Assumiamo ora che la sola variazione dal modello M/Mis sia che la sorgente degli arrivi è limitata (come è stato definito nel Paragrafo 13 .2); cioè la dimensione della sorgente è finita. In questo caso sia N tale dimensione. Allora, quando il numero di clienti nel sistema di attesa è n (n = O, l, 2, ... ,N), sono rimasti solo N - n potenziali clienti nella sorgente degli arrivi. L'applicazione più importante di questo modello riguarda il problema della riparazione delle macchine, dove a uno o più addetti alla manutenzione è affidato il compito di mantenere in funzione un gruppo di N macchine riparando le quando si rompono. Gli addetti alla manutenzione sono i serventi del sistema di file di attesa se lavorano separatamente su diverse macchine, mentre l'intera squadra è vista come un singolo servente se i suoi membri lavorano insieme su un macchinario. Ogni macchina guasta è considerata un cliente, mentre è fuori dal sistema quando è in funzione. Si noti che ogni membro della popolazione si alterna tra la condizione di essere dentro o fuori dal sistema. Pertanto, l'analogo del modello M!Mis per questa situazione assume che ogni intervallo di tempo che il singolo membro trascorre fiwri dal sistema (cioè il tempo trascorso dal momento in cui abbandona il sistema fino a quando ritorna la volta successiva) ha una distribuzione esponenziale con parametro >... Quando n membri sono al! 'interno, e quindi N - n sono fiwri , la distribuzione di probabilità del tempo d 'attesa fino al prossimo arrivo nel sistema è la distribuzione del minimo dei tempi d'attesa per ciascuno degli N - n membri esterni al sistema. Le Proprietà 2 e 3 della distribuzione esponenziale implicano che questa è ancora una distribuzione esponenziale con parametro À 11 = (N - n)>... Quindi, questo modello è un caso particolare del processo di nascita e morte il cui diagramma è mostrato nella Figura 13.7. Poiché À 11 = O per n = N, ogni modello che descrive questo sistema raggiungerà una condizione stazionaria e i risultati disponibili per il regime stazionario sono riassunti di seguito.
12 Se p= l , è necessario applicare a questa espressione di Lq la regola di De L'Hopital due volte. Altrimenti , tutti questi risultati per il sistema a più serventi valgono per ogni p > O. La ragione per cui si può raggiungere una condizione di regime stazionario anche quando p 2: l è che À, = O per n 2: K, e quindi il numero dei clienti nel sistema non può continuare a crescere indefinitamente.
550
CAPITOLO 13
TEORIA DELLE CODE
A =
= l)
(a) Caso di singolo servente (s
Il
=
ILII
N A (N - l)A
(N - n
IL
(b) Caso di più serventi (s
>
A
l)
=
11
(N- s
NA (N- l )A
Stato: ~ IL
IL
+ 2)À
ILII =
• Figura 13.7 Diagrammi dei processi per il modello M/ Mis con popolazione finita.
per n= O, l , 2, ...,N per n :=:::N per n= l , 2, ...
n)A ,
+
(N - n
l )A
À
~ IL IL
Stato: ~ IL
I(No -
(CN-
l
(N - s
IL
per n = O, l, 2, ... ,N per n :=:::N per n= l , 2, ... , s per n = s, s + l , ...
n)À,
O,
nIL, SIL,
+ 2)A
cEO
+
l)A
À
~ (s - l)IL SIL
21L
Risu ltati per il caso di un singolo servente (s trodotti nel Paragrafo 13 .5 risultano
= l ).
~ SIL
Quando s
= l, i fattori C" in-
11
_ Cn -
À ) "= N(N - l )···(N-n+ l ) ( {
f.-t
N! ( -À ) (N- n)! f.-t
O
pern
per questo modello. Pertanto, usando ancora la convenzione O! = l ,
Po =
p"
~ N
N! ( (N- n )!
[
N!
= (N -
n) !
À ) "]
P:
(À)" p: Po
se n = l, 2, ... ,N
N
Lq =
2.: (n -
l )Pn
n= l
che si possono ridurre a À+J.t
Lq =N - - - ( ! - Po) À
N
L=
2.: nPn = Lq + l - Po 11 = 0
=N- -f.-t (1-Po) À
Infine,
W=!:_
x
e
Wq -- - = LqÀ
dove oo
N
n=O
n=O
X= 2.: À,,Pn = 2.: (N -
n)ÀP11
= À(N -
L)
n >N
13.7
MODELLI DI CODA CON DISTRIBUZIONI NON ESPONENZIALI
Per N;::: s
Risultati per il caso di più serventi (s > 1).
(>.)" M N! (>.)" (N - n)!s!sn-s p,
(N-N!n)! n! Cn =
551
> l,
per n= O, l , 2, ..., s per n= s, s + l , ... ,N
o
per n> N
Quindi,
(À)" M (À)" M
N! (N - n)!n! PII=<
se O :::; n :::; s
Po
N!
(N-:- n )!s!s n-s
Po
o
se s:::; n :::; N se n> N
dove
Po = , m-
[ s- 1
~
N!
(N - n)! n!
(>.)"
N!
N
M + f,;
(N- n)!s!sn-s
(>.)"] M
Infine, N
Lq =
2....:: (n- s) Pn n= s
e
L=
f
n=O
nP, + Lq + s (l -f Pn) n=O
che forniscono poi W e Wq mediante le stesse relazioni usate nel caso di un singolo servente. Per entrambi i casi, è stato dimostrato che le formule precedenti per P11 e P0 (e quindi anche quelle per Lq, L, W e Wq) valgono anche per una generalizzazione di questo modello.1 3 In particolare, si può trascurare l' assunzione che i tempi trascorsi dai membri della popolazione jì10ri dal sistema di attesa abbiano una distribuzione esponenziale, anche se questo porta il modello fuori dall'ambito dei processi di nascita e morte. Fintanto che questi tempi sono identicamente distribuiti con media 1/À (e continua a valere l'assunzione di tempi di servizio esponenziali), essi possono avere una qualunque distribuzione di probabilità.
13.7
MODELLI DI CODA CON DISTRIBUZIONI NON ESPONENZIALI Tutti i modelli di teoria delle code visti nel paragrafo precedente si basano sul processo di nascita e morte quindi i tempi di interarrivo e i tempi di servizio devono avere distribuzioni esponenziali. Come si è visto nel Paragrafo 13.4, questo tipo di distribuzione di probabilità ha molte proprietà utili, ma si adatta solo a certi tipi di sistemi di file di attesa. In particolare, l'ipotesi di tempi di interarrivo esponenziali implica che gli arrivi si verificano casualmente (si ha un processo di Poisson), e questa è un 'approssimazione ragionevole in molte situazioni ma non nel caso in cui gli arrivi sono accuratamente programmati o rego13
B.D. Bunday e R.E. Scraton, " The G/M/r Machine Interference Mode!", Europea n Journal o.f Operarional Research, 4: 399-402 , 1980.
552
CAPITOLO 13
TEORIA DELLE CODE
lati. Inoltre, la distribuzione effettiva dei tempi di servizio spesso si discosta molto dalla forma esponenziale, in particolare quando i servizi richiesti dai clienti sono abbastanza simili. Pertanto, è importante avere a disposizione altri modelli di code che usano distribuzioni alternative. Sfortunatamente, l'analisi matematica dei modelli di coda con distribuzioni non esponenziali è molto più complicata ed è stato possibile ottenere risultati utili solo per alcuni di questi modelli. Questa analisi va oltre il livello di questo libro, per cui in questo paragrafo ci si limita a riassumere tali modelli e a descrivere i relativi risultati.
Il modello M/G/1 Come è stato già descritto nel Paragrafo 13.2, nel modello MIGli il sistema di file di attesa ha un singolo servente e un processo di arrivi di Poisson (distribuzione esponenziale dei tempi di interarrivo) con un tasso medio d'arrivo Àflssato. Come al solito, si assume che i clienti hanno tempi di servizio indipendenti con la stessa distribuzione di probabilità, ma non ci sono restrizioni su quale debba essere tale distribuzione. Infatti, è sufficiente conoscere (o stimare) solo la sua media l iJ-L e la sua varianza (i. Un sistema di questo tipo può raggiungere una condizione stazionaria se p = Àj J-L < l . I risultati in regime stazionario 14 disponibili per questo modello generale sono i seguenti:
Po = l - P À20"2
Lq
+ p2
= 2(1 -P)
L = p+Lq
wq =-LÀq l W= Wq+1-L
Vista la complessità dell'analisi di un modello che permette una qualsiasi distribuzione dei tempi di servizio, è notevole avere ottenuto una formula così semplice per Lw Questo è uno dei risultati più importanti della teoria delle code perché è facile da usare e il modello MIGli rappresenta i sistemi di attesa più frequentemente riscontrati. L'equazione per Lq (o la sua corrispondente per Wq) è nota come formula di Pollaczek-Khintchine, così chiamata dopo che i due pionieri nello sviluppo di questa teoria hanno ricavato separatamente questa fommla nei primi anni Trenta. Per ogni valore atteso 11J-L del tempo di servizio, le quantità L q, L, Wq e W crescono al crescere di u 2 . Questo risultato è importante perché indica che non solo la velocità media del servente ma anche la continuità del suo lavoro influisce molto sulla performance della struttura di servizio. Questo punto chiave sarà illustrato nel prossimo sottoparagrafo. Quando la distribuzione dei tempi di servizio è esponenziale, si ha u 2 = l / J-L 2 e i risultati precedenti si riconducono a quelli del modello MIMII dati all'inizio del Paragrafo 13.6. La completa flessibi lità di questo modello nella scelta della distribuzione dei tempi di servizio è estremamente utile, per cui è un peccato che gli sforzi nel tentativo di ricavare risultati analoghi nel caso di più serventi non abbiano avuto lo stesso successo. Tuttavia, alcuni risultati per sistemi a più serventi sono stati ottenuti nei casi particolari descritti dai due modelli seguenti.
14
È disponibile anche una fonnula ricorsiva per il calcolo della distribuzione di probabilità del numero di clienti nel sistema; si faccia riferimento all 'articolo di A. Hordijk e H.C. Tijms, " A Simp le Proof of the Equi valence of the Limiting Distribution of the Continuous-T ime an d the Embedded Process of the Queue Size in the MIGl i Queue", Statistica Neerlandica, 36: 97-100, 1976.
13.7
dalla siribu~a
~spo
lcuni para-
attelziale su me abili:iente < l. enti:
MODELLI DI CODA CON DISTRIBUZIONI NON ESPONENZIALI
553
Il modello M l D /s Quando il servizio consiste essenzialmente n eli 'esecuzione dello stesso lavoro di routine per tutti i clienti, si tende ad avere piccole variazioni nel tempo di servizio richiesto. Il modello M/D/s spesso fornisce una rappresentazione ragionevole per questo tipo di situazione, perché assume che tutti i tempi di servizio siano effettivamente uguali a una fissata costante (distribuzione deterministica dei tempi di servizio) e che il processo degli arrivi sia di Poisson con tasso medio d'arrivo À fissato. Nel caso di un singolo servente, il modello M/DI I è un caso particolare del modello MI G/1 con a 2 = O, per cui la formula di Pollaczek-Khintchine diventa
Lq
=
p2 2(1- p)
e L, Wq e W sono ricavati da Lq come si è appena visto. Si noti che Lq e Wq sono esattamente metà dei valori corrispondenti per il caso della distribuzione esponenziale dei tempi di servizio (il modello MIMll visto nel Paragrafo 13 .6), dove a 2 = l l p, 2 , per cui riducendo a 2 si può migliorare molto la performance del sistema di attesa. Per la versione a più serventi (MID/s), è disponibile un metodo piuttosto articolato 15 per determinare la distribuzione di probabilità in regime stazionario del numero di clienti nel sistema e la sua media [assumendo che p = ,\j(sp,) < 1]. Questi risultati sono stati riassunti in tabelle per svariati casi, 16 e le medie (L) sono rappresentate graficamente nella Figura 13.8.
Il modello M/Ekls
tzione Iuesto lodelJer Lq ' così aratamo al media : della
Il modello MID/s assume una variazione nulla dei tempi di servizio (a = 0), mentre la distribuzione esponenziale dei tempi di servizio assume una variazione molto grande (a = l l p,). Tra questi due casi estremi (O < a < l l p,), rientrano la maggior parte delle effettive distribuzioni. Un altro tipo di distribuzione teorica dei tempi di servizio che si inserisce in questa varietà è la distribuzione di Erlang. La funzione di densità di probabilità della distribuzione di Erlang è
f(t) =
(p,k/ tk- le-kf-IJ l )!
(k-
per t> O
-
dove p, e k sono parametri della distribuzione strettamente positivi e k è intero (a parte la definizione dei parametri e la restrizione su k, questa distribuzione è identica alla distribuzione gamma). La sua media e deviazione standard sono . l me d Ja = -
p,
e risullgrafo npi di ;avare ttavia, tti dai
i clienti ence of M/Gil
. . deviaZIOne standard
=
l
l
rr_ · -
vk
p,
Quindi, k è il parametro (parametro di forma) che specifica il grado di variabilità dei tempi di servizio rispetto alla media. La distribuzione di Erlang è una distribuzione molto importante nella teoria delle code per due motivi. Per descrivere il primo, si supponga che Tt. T2 , ..• , Tk siano k variabili casuali indipendenti aventi una stessa distribuzione esponenziale la cui media è l l (kp,).
15
Si faccia riferimento al testo di N.U. Prabhu Queues and !n ventories, Wiley, New York, 1965, pp. 32-24; si veda anche pp. 286-288 nel n. 5 dei Riferimenti bibliografici . 16 F.S. Hillier e O.S. Yu, con D. Avis, L. Fossett, F. Lo e M. Reiman, Queueing Tables and Graphs, Elsevier North-Holland, New York, 198 1.
554
CAPITOLO 13
TEORIA DELLE CODE
L
o
·~
§
·;::; f:l V1
E
'5'o ~
.5 o:l
E
~
.~
V1
v<: c .~
u
:0 oV1 ~
(;i
e
E
:J
z
• Figura 13.8 Valori di L per il modello
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Coefficiente di utilizzazione
M/0/s.
0.8
0.9
1.0 À.
p = SJJ-
Allora la loro somma
T = Tt
+ T2 + ... + Tk
ha una distribuzione di Erlang con parametri 11 e k. La discussione fatta per la distribuzione esponenziale nel Paragrafo 13.4 ha suggerito che il tempo richiesto per eseguire certi tipi di lavori potrebbe avere una distribuzione esponenziale. Tuttavia, il servizio complessivo richiesto da un cliente potrebbe consistere non in un compito specifico ma in una sequenza di k compiti che il servente deve eseguire. Se i tempi impiegati per svolgere ciascun compito sono indipendenti e hanno la stessa distribuzione esponenziale, il tempo di servizio totale avrà una distribuzione di Erlang. Questo è il caso in cui un servente deve eseguire lo stesso compito " esponenziale" k indipendenti volte per ciascun cliente. La distribuzione di Erlang è molto utile anche perché consiste in una famiglia (a due parametri) di distribuzioni con solo valori nonnegativi. Le distribuzioni empiriche dei tempi di servizio di solito possono essere approssimate abbastanza bene dalla distribuzione di Erlang. Infatti, sia la distribuzione esponenziale sia quella deterministica (costante) sono casi particolari della distribuzione di Erlang, rispettivamente con k = l e k = oo. Valori intermedi di k forniscono distribuzioni intermedie con media = l l /1, moda = (k - l ) l (kM ) e varianza = l l (k11 2 ), come si intuisce dalla Figura 13.9. Pertanto, dopo aver stimato la media e la varianza di una distribuzione empirica dei tempi di servizio, queste formule possono essere usate per scegliere il valore di k a cui corrispondono i valori che più si avvicinano alle stime.
13.7
MODELLI DI CODA CON DISTRIBUZIONI NON ESPONENZIALI
555
f(t)
E
IL
:.0
e"'o.
..0
"O
'S ·v;
k= 3
s::
"O
k=2
§
.N
k= l
s::
::> LI.
• Figura 13.9 Una famiglia di distribuzioni di Erlang con media costante l l f.L·
o IL
Tempo di servizio
Il modello M/Et/ l è un caso particolare del modello M!Gi l dove i tempi di servizio hanno una distribuzione di Erlang con parametro di forma = k. Applicando la formula di Pollaczek-Khintchine con CJ 2 = l /(kp, 2 ) (e i risultati dedotti per il modello M/G/1) , si ottiene )...2 /( kp, 2)
2(1 - p)
Lq =
..
tempi me di 1 sono on m:kp, ) e lame-
2k
)... 2
p,(p,- >.. )
)... Wq = ~ p, (p,- >.. )
W = Wq+ -
l
1-L
'IL
..1e pa-
l+ k
l +k
)\
mzio~rti ti>lessi1a see cialpo di : deve
+ p2
L = >..W Nel caso di più serventi (M/Ek!s), la relazione tra la distribuzione di Erlang e la distribuzione esponenziale appena descritta può essere utilizzata per formulare un processo modifi cato di nascita e morte in termini di fasi di servizio esponenziali (k per ogni cliente). Tuttavia, non è stato possibile determinare in regime stazionario [quando p= )...j (sp,) < l] una soluzione generale per la distribuzione di probabilità del numero di clienti nel sistema come si è ottenuto nel Paragrafo 13.5. Invece, è necessario usare una teoria avanzata per risolvere numericamente i casi individuali. Ancora una volta, questi risultati sono stati ottenuti e tabulati per numerosi casi. 17 Le medie sono fomite graficamente nella Figura 13 .l Oper alcuni casi e s = 2.
l modelli con arrivi non di Poisson Tutti i modelli di coda presentati finora assumono un processo di arrivi di Poisson (tempi di interarrivi esponenziali). Tuttavia, questa assunzione è violata se gli arrivi sono programmati o regolati in modo che non avvengano casualmente; in tal caso occorre usare un altro modello. Se i tempi di servizio hanno una distribuzione esponenziale con un parametro fissato, è possibile determinare subito tre modelli di questo tipo . Questi modelli sono ottenuti semplicemente scambiando la distribuzione dei tempi di interarrivo con quella dei tempi di servizio dei tre modelli precedenti. Quindi, il primo modello (GIIM/s) non impone restri
)OSso-
:inano 17
Ibid.
556
CAPITOLO 13
TEORIA DELLE CODE
L 100~-------,----,---,----,----,----,---,----,---,
o ·c O) t:
.No .'9
)
O)
E '@)
10
O)
....
~
ro
E
~
·o; d)
t:
~
.~ u 1.0
:.a o
)
E
""o~
E ::l
z
0.1
• Figura 13.10 Valori di L per il modello M!Ek/ 2.
0.2
0.3
0.4
0.5
0.6
0.7
Coefficiente di utilizzazione
0.8
0.9
1.0 p=
À Sf.L
zioni su quale debba essere la distribuzione dei tempi di interarrivo. Per questo caso, sono disponibili alcuni risultati in regime stazionario 18 (in particolare riguardo le distribuzioni dei tempi di attesa) sia per la versione a un singolo servente che per quella a più serventi, ma questi risultati non sono di facile interpretazione come le semplici espressioni date per il modello M/G/ 1. Il secondo modello (D/Mis) assume che tutti gli intervalli tra gli arrivi sono uguali a una costante fissata, che rappresenta un sistema di file di attesa in cui gli arrivi sono programmati a intervalli regolari. Il terzo modello (Ek!M!s) assume una distribuzione di Erlang per i tempi di interarrivo, che fornisce una via di mezzo tra arrivi programmati regolarmente (costanti) e arrivi completamente casuali (esponenziali). Per questi ultimi due modelli sono stati tabulati una lunga serie di risultati numerici, inclusi i valori di L rappresentati graficamente nelle Figure 13.11 e 13.12. Se né i tempi di interarrivo né i tempi di servizio per un sistema di file di attesa hanno una distribuzione esponenziale, allora ci sono altri tre modelli per i quali sono disponibili risultati numerici. 19 Uno di questi modelli (E 11 ,/Ekls) assume una distribuzione di Erlang per entrambi questi tempi. Gli altri due modelli (Ek!Dis e D!Ekls) assumono che uno di questi tempi abbia una distribuzione di Erlang e l 'altro sia uguale a una costante fissata.
18 19
Per esempio, si veda pp. 248 -260 del n. 5 dei Riferimenti bibliografici. Hillier e Yu, op.cit.
sono lioni ·enti, e per trrivi li arribuproquevalo-
anno nibili rlang no di ta.
13.7
MODELLI DI CODA CON DISTRIBUZIONI NON ESPONENZIALI
557
L
IOOr-- -, -- -, - - -- ,- -- ,- -- , - -- - , -- -, ---.----.- --,
·~
cac o
·;::; ;:!
"' (\)
.§
IO
t>J)
~
·= O)
E
~
·v; "'
-.:;
c ·.;:: c
~ (.)
"O
1.0
o
"' ::: (\)
O)
p
E
:l
z
0.1
• Figura 13.11 Valori di L per il modello
0.2
0.3
0.4
0 .5
0.6
Coefficiente di utilizzazione
0/M/s.
0.7
0.8
0.9
l. O À
p= SJ.L
Altri modelli Sebbene siano stati presentati in questo paragrafo un gran numero di modelli di coda che coinvolgono distribuzioni non esponenziali, si è lontani dall 'esaurire la lista. Per esempio, un 'altra distribuzione che occasionalmente viene usata sia per i tempi di interarrivo che per i tempi di servizio è la distribuzione iperesponenziale. La caratteristica principale di questa distribuzione è che anche se sono permessi solo valori nonnegativi, la sua deviazione standard f7 è maggiore della sua media l l f.-L. Questa caratteristica è in contrasto con la distribuzione di Erlang, in cui (j < l l f.-L, in ogni caso a parte per k = l (distribuzione esponenziale) nel qual caso si ha f7 = l l f.-L. Per illustrare una situazione ipotetica in cui si può verificare che f7 > l l f.-L, si supponga che il servizio fornito sia la riparazione di qualche tipo di macchinario o veicolo. Se molte delle riparazioni risultano di routine (piccoli tempi di servizio) ma alcune riparazioni occasionalmente richiedono un controllo minuzioso (tempi di servizio molto lunghi), allora la deviazione standard tenderà a essere abbastanza grande rispetto alla media, nel qual caso può essere usata la distribuzione iperesponenziale per rappresentare la distribuzione del tempo di servizio. Nello specifico, questa distribuzione dovrebbe assumere che ci siano delle probabilità fissate, p e (l -p), sul tipo di riparazione richiesta, che il tempo necessario per ogni tipo di riparazione abbia una distribuzione esponenziale, ma che i parametri di queste due distribuzioni esponenziali siano diversi. (In generale, la distribuzione iperesponenziale è la composizione di due o più distribuzioni esponenziali).
558
CAPITOLO 13
TEORIA DELLE CODE
L
100
.2
ac
o ·;:;
s
"'
E
·~
10
....
= o:l
E
!l
·v; "' O)
c
c .~
o
:0 1.0 o
fl"'o:l p
~
z:::>
O. l • Figura 13.12 Valori di L per il modello
o
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Coefficiente di utilizzazione
Ek / M/ 2.
0.8
0.9
l. O A
p = SJ.L
Un'altra famiglia di distribuzioni che vengono usate è quella delle distribuzioni del tipo di fase (alcune delle quali sono anche dette distribuzioni erlanghiane generalizzate). Queste distribuzioni sono ottenute suddividendo il tempo totale in un numero di fasi , ciascuna delle quali ha una distribuzione esponenziale, con parametri che possono essere diversi e fasi che possono essere in serie o in parallelo (o entrambe). Un gruppo di fasi è in parallelo quando il processo seleziona una delle fasi da eseguire ogni volta in modo casuale secondo specifiche probabilità. Questo approccio è, in effetti, il modo con cui è stata determinata la distribuzione iperesponenziale, che quindi è una particolare distribuzione del tipo di fase. Un altro caso particolare è la distribuzione di Erlang, dove tutte le k fasi sono in serie e hanno distribuzioni esponenziali aventi lo stesso parametro. Quindi le distribuzioni del tipo di fase, non avendo queste restrizioni, possono fornire una maggiore flessibilità nel descrivere l'effettiva distribuzione dei tempi di interarrivo o dei tempi di servizio osservata nel sistema reale. Questa flessibilità è preziosa specialmente quando la distribuzione osservata non è trattabile analiticamente e di conseguenza non può essere usata per studiare il modello, e quando il rapporto tra media e deviazione standard della distribuzione osservata non si avvicina a uno dei valmi disponibili per la distribuzione di Erlang (Vk per k = l , 2, .. . ). Sono disponibili molti risultati per i modelli che hanno varie distribuzioni del tipo di fase (inclusa la distribuzione iperesponenziale).20 20
L.P. Seelen, H. C. Tijms e M. H. Van Hoorn, Tab/es far Multi-Server Queues, North-Holland, Amsterdam, 1985.
13.8
13.8
MODELLI DI CODA CON DIFFERENTI DISCIPLINE DI PRIORITÀ
559
MODELLI DI CODA CON DIFFERENTI DISCIPLINE DI PRIORITÀ In questi modelli la disciplina della coda si basa su un sistema di priorità. Quindi, l'ordine con cui i membri della coda sono selezionati è basato su priorità assegnate. Molti sistemi reali di file di attesa sono descritti meglio da questi modelli. Alcune operazioni sono anticipate rispetto ad altre, e ai clienti importanti può essere data la precedenza sugli altri. Pertanto, l'uso dei modelli con specifica gestione della coda spesso fornisce una fmezza molto gradita rispetto ai modelli di coda più comuni. Verranno qui presentati due di questi modelli. Siccome per entrambi le assunzioni sono le stesse, a parte per la politica di gestione della coda, prima verranno descritti i modelli contemporaneamente e poi verrmmo riassunti i loro risultati separatamente.
l modelli
po
e). iadiin ~a
ata one
asi di)re di , la ;:re :Ila di di
am,
Entrambi i modelli assumono che ci siano N classi di priorità (la classe l ha la priorità più alta e la classe N la più bassa) e che quando un servente si libera per iniziare a servire un nuovo cliente in coda, il cliente selezionato è il membro della classe con priorità più alta che ha aspettato più a lungo. In altre parole, i clienti vengono serviti in base all'ordine della loro classe di priorità, applicando la regola FIFO all'interno di ciascuna classe. Per ogni classe di priorità si assume un processo di arrivi di Poisson e di tempi di servizio esponenziali. A parte per un caso particolare che si vedrà più avanti, questi modelli assumono anche che il tempo atteso di servizio sia lo stesso per tutte le classi di priorità. Tuttavia, i modelli ammettono che il tasso medio d'arrivo sia diverso per le varie classi. La distinzione tra i due modelli è dovuta al tipo di priorità, che può essere con o senza diritto di prefazione. Nel vaso di priorità senza diritto di prelazione, un cliente attualmente servito non può essere rimandato in coda quando entra nel sistema di attesa un cliente con priorità più alta. Pertanto, una volta iniziato, il servizio deve essere completato senza interruzioni. Il primo modello assume questo tipo di gestione della coda. Nel caso di priorità con diritto di prelazione, il cliente attualmente servito viene rimandato in coda quando un cliente con priorità più alta entra nel sistema. Un servente perciò si libera subito per servire immediatamente il nuovo arrivo. Quando un servente riesce a terminare un servizio, il prossimo cliente da servire viene selezionato nel modo descritto all'inizio di questo sottoparagrafo, per cui normalmente un cliente potrà tornare in coda più volte e il suo servizio sarà completato dopo vari tentativi. A causa della proprietà di mancanza di memoria della distribuzione esponenziale, non bisogna preoccuparsi di definire a quale punto viene ripreso il servizio quando il cliente torna dal servente; la distribuzione del tempo di servizio restante è sempre la stessa (per una qualunque altra distribuzione dei tempi di servizio, diventa importante distinguere i sistemi in cui il servizio del cliente rimandato in coda riprende dal punto in cui è stato interrotto, dai sistemi dove invece il servizio deve ricominciare dall ' inizio). Il secondo modello assume una gestione della coda con possibilità di prelazione. Per entrambi i modelli, se fosse ignorata la distinzione tra i clienti che appartengono a diverse classi di priorità la Proprietà 6 della distribuzione esponenziale implica che tutti i clienti arrivano secondo un processo di arrivi di Poisson. Inoltre, tutti i clienti hanno la stessa distribuzione esponenziale dei tempi di servizio. Di conseguenza, i due modelli risultano effettivamente identici al modello M/Mis studiato nel Paragrafo 13.6, eccetto per l'ordine con cui vengono serviti i clienti. Pertanto, nel calcolo del numero totale dei clienti nel sistema, si può applicare la distribuzione in regime stazionario del modello M/Mis anche a questi due modelli e, di conseguenza, si possono usare anche le fonnule di L e di Lq e i risultati W e Wq sul tempo di attesa (mediante la formula di Little) per un cliente. Quello che cambia è la distribuzione dei tempi di attesa, che era stata determinata nel Paragrafo 13.6 assumendo una disciplina della coda di tipo FIFO. Con questa gestione della coda, la distribuzione ha una varianza molto più grande perché i tempi di attesa dei clienti nella classe con priorità più alta tendono a essere molto più piccoli di quelli secon-
560
CAPITOLO 13
TEORIA DELLE CODE
do una disciplina FIFO, mentre i tempi di attesa per classi con priorità più bassa tendono a essere molto più grandi. Analogamente, il numero totale di clienti nel sistema tende a essere distribuito in modo sproporzionato verso le classi con bassa priorità. Ma questa condizione è proprio la ragione per cui si impongono priorità nel sistema di attesa: si vuole migliorare la performance per ciascuna delle classi ad alta priorità a spese della performance per le classi a bassa priorità. Per quantificare questo miglioramento, bisogna determinare il valore delle misure di performance, come il valore atteso del tempo di permanenza nel sistema e il numero atteso dei clienti nel sistema, per ciascuna classe di priorità. Di seguito sono fomite le espressioni di queste misure per i due modelli.
Risultati per il caso senza diritto di prelazione Sia Wk il valore atteso del tempo di permanenza nel sistema in regime stazionario (il tempo di servizio è incluso) per un membro della classe con priorità k. Allora Wk=
l
l
ABk - t Bk
+f..L
per k = l , 2, ... N
dove Sf..L- À
A =s!
s
s l
-
L
r1.
~ +sJ.L
J=O l·
r
Bo = l k
LÀ; Bk=l- ~ Sf..L
s = numero di serventi f..L =tasso medio d'arrivo per servente occupato À;
= tasso medio d'arrivo per la classe di priorità i N
À = LÀ; i= l
r = -
À
f..L
Questo risultato assume che k
LÀ;
per cui la classe di priorità k può raggiungere una condizione di stazionarietà. La formula di Little si applica ancora alle singole classi di priorità, per cui L k, il numero atteso di membri della classe di priorità k in regime stazionario (inclusi quelli serviti), è L k = ÀkWk
per k = l, 2, ... , N
Per determinare il valore atteso del tempo di permanenza nella coda (il tempo di servizio è escluso) per la classe di priorità k, si sottrae semplicemente l l f..L da Wk; la corrispondente lunghezza attesa della coda si ottiene ancora moltiplicando per Àk· Nel caso particolare in cui s =l, l'espressione di A diventa A= J.L 2 l À.
Il caso di un singolo servente e priorità senza diritto di prelazione La precedente assunzione che il tempo atteso di servizio l l f..L sia lo stesso per tutte le classi di priorità è abbastanza restrittiva. In pratica, questa assunzione viene violata poiché i clienti appartenenti a classi diverse richiedono servizi diversi.
13.8
o ;1-
.e rrl1-
MODELLI DI CODA CON DIFFERENTI DISCIPLINE DI PRIORITÀ
Fortunatamente, per il caso particolare di un solo servente, è possibile ammettere diversi tempi medi di servizio e ottenere ancora gli stessi risultati. Sia l l /-Lk la media della distribuzione esponenziale dei tempi di servizio per la classe di priorità k, cioè /-Lk = numero medio di servizi per unità di tempo per la classe di priorità k
per k = l , 2, .. .,N Il valore atteso del tempo di permanenza nel sistema in regime stazionario per un membro della classe k è a_k wk = bk- lbk
1-
561
l
+
per k = l , 2, .. .,N
/-Lk
dove k
ak
Ài
=L {J i =l
l
bo = l k
bk
= 1-
2::::~ /-Li
i= l
Questi risultati sono validi quando k
À
L: -/-Li' <
l
i= l
che è condizione necessaria affinché la classe k possa raggiungere una condizione di stazionarietà. La formula di Little si può usare per ottenere le principali misure di performance per ogni classe di priorità.
Risultati per il caso con diritto di prelazione Per il modello con priorità con diritto di prelazione, è necessario assumere che il tempo atteso di servizio sia lo stesso per tutte le classi di priorità. Usando la stessa notazione del modello precedente, la possibilità di prelazione può modificare il valore atteso del tempo totale di permanenza nel sistema (tempo totale di servizio incluso):
1/ J-L Wk
!la di
:IO
Bk- IBk
per k = 1,2, ... , N
per il caso a un singolo servente (s = 1). Quando s > l, si può calcolare Wk mediante una procedura iterativa che verrà illustrata nell 'esempio del County Hospital. La quantità Lk continua a soddisfare la relazione Lk
:nIre
=
=
ÀkWk
per k
=
l , 2, ... ,N
I risultati corrispondenti per la coda (escludendo i clienti attualmente serviti) si possono ottenere ancora da Wk e Lk come nel caso senza diritto di prelazione. A causa della proprietà di mancanza di memoria della distribuzione esponenziale, le prelazioni non influenzano in alcun modo il processo dei servizi (completamento di uno o più servizi). Il valore atteso del tempo totale di servizio per un cliente è ancora l l f-L·
L'esempio del County Hospital con priorità l S-
éi
Per il problema del pronto soccorso del County Hospital, il management ha notato che i pazienti non sono curati in base all'ordine di arrivo. Piuttosto sembra che l'infermiera all' ingresso divida i pazienti in tre categorie: (l) casi critici, per i quali un pronto intervento
562
CAPITOLO 13
TEORIA DELLE CODE
è vitale per la sopravvivenza; (2) casi gravi, per i quali un intervento in breve tempo è importante per prevenire un ulteriore peggioramento delle condizioni; (3) casi stabili, per i quali il trattamento può essere ritardato senza gravi conseguenze. I pazienti vengono quindi trattati secondo questo ordine di priorità, dove quelli che appartengono alla stessa categoria sono soccorsi in base all'ordine di arrivo. Un dottore interrompe il trattamento di un paziente se arriva un nuovo caso con la più alta priorità. Approssimativamente il 10% dei pazienti rientra nella prima categoria, il 30% rientra nella seconda e il 60% rientra nella terza. Siccome i casi più gravi, dopo un intervento di emergenza, saranno mandati all'ospedale per ulteriori cure, la durata media di una visita non varia molto da una categoria all'altra. Il management ha quindi deciso di usare un modello di coda con priorità per rappresentare questo sistema di file di attesa, dove le tre categorie di pazienti costituiscono le classi di priorità. Siccome il trattamento è interrotto dall 'arrivo di una caso con massima priorità, il modello più appropriato è quello con priorità con diritto di prelazione. Considerando i dati visti in precedenza (J.L = 3 e À = 2), dalle percentuali precedenti si ricava che À 1 = 0.2, Àz = 0.6 e >. 3 = 1.2. La Tabella 13.3 fornisce i tempi attesi di permanenza nella coda (quindi escludendo la durata del trattamento) risultanti per le rispettive classi di priorità 21 quando uno (s = l) o due (s = 2) dottori sono in servizio (nella Tabella 13.3 sono elencati anche i risultati corrispondenti per il modello con priorità senza diritto di prelazione, per mostrare l'effetto delle prelazioni). • Tabella 13.3 Risultati in regime stazionario per i modelli con disciplina per priorità per il problema del County Hospital
Priorità con diritto di prelazione s= 1
s=2
0.933 0.733 0.333
A BI
82 83 l w~- - p, l
W2 - p,
w--.!.. 3 p,
s=l
-
4.5 0.933 0.733 0.333
-
s= 2 36 0 .967 0.867 0.667
0.024 ore
0.00037 ore
0.238 ore
0 .029 ore
0.154 ore
0 .00793 ore
0.325 ore
0 .033 ore
0.06542 ore
0.889 ore
0 .048 ore
1.033 ore ------- '-- -
Priorità senza dlrittto di prelazlone
--------
Calcolo dei risultati per il caso di priorità con diritto di prelazione Per s = 2, questi risultati sono ottenuti nel seguente modo. Poiché i tempi di attesa per i clienti della classe di priorità l non dipendono dalla presenza di clienti nelle classi con priorità più bassa, W1 sarà lo stesso per qualsiasi valore di ,\2 e >. 3 , incluso >. 2 = O e >. 3 = O. Pertanto, W1 deve essere uguale al corrispondente valore W del modello a una classe (il modello M/Mis visto nel Paragrafo 13.6) cons = 2, J.L = 3 e À = ,\ 1 = 0.2, quindi
W1 = W = 0.33370 ore
per
À
= 0.2
e
l W1 - - = 0.33370- 0.33333 = 0.00037 ore J.L
21 Si noti che quando k > l questi valori attesi non possono ancora essere interpretati come i tempi attesi prima che inizi il trattamento, perché il trattamento può essere interrotto almeno una volta, incrementando così il tempo necessario per completare il servizio.
13.8
1
:t
a
MODELLI DI CODA CON DIFFERENTI DISCIPLINE DI PRIORITÀ
Si considerino ora le prime due classi di priorità. I clienti in queste classi non dipendono dalle classi con priorità più bassa (in questo caso solo la classe 3), che quindi possono essere ignorate nell 'analisi. Sia W 1_ 2 il tempo atteso di permanenza nel sistema (il tempo di servizio è incluso) per un paziente in una di queste due classi; la probabilità che un arrivo 3 e per la classe 2 si ha invece À Àz À = . sia nella classe l è )q l (À 1 + ,\ 2 ) = 4 l+ ? . d"1, Qum l 3 W1 - 2 = 4 W, + 4 Wz
+
Inoltre, poiché il tempo w,_2è lo stesso per qualunque disciplina di gestione della coda, esso deve coincidere anche con il tempo W del modello M/Mis (Paragrafo 13.6), con s = 2, J1 = 3 e À = À 1 + Àz = 0.8, da cui si ottiene
w, _z = 1-
W= 0.33937 ore
per À = 0.8
Combinando questi due risultati, si ha
1-
e a
Wz = ; [0.33937 -
l-
à
563
( Wz -
~
~
(0.33370)] = 0.34126 ore
= 0.00793 ore)
Inflne, sia W 1_3 il tempo atteso di permanenza nel sistema (tempo di servizio incluso) per paziente in una delle tre classi di priorità; le probabilità di un arrivo nelle classi l, 2 o 3 sono rispettivamente 0.1, 0.3 e 0.6. Pertanto,
Wt -3 = 0.1W, +0.3Wz +0.6W3 Inoltre, W 1_ 3 deve essere uguale al tempo W del modello M /Mis (Paragrafo 13.6), con = 2, J1 = 3 e À = À 1 + Àz + À 3 = 2, quindi (dalla Tabella 13.2)
s
w, _3 = W = 0.375 ore
per
À
=2
Di conseguenza,
W3 =
0 ~ 6 [0.375- 0.1 (0.33370)- 0.3(0.34126)]
= 0.39875 ore ( W3 -
~
= 0.06542 ore)
I risultati per Wq del modello M /Mis potevano essere usati, esattamente nello stesso modo, anche per determinare direttamente le quantità wk - l l /1·
2, la sVt
'ls
na po
Conclusioni. Quando s = l , i valori di Wk - l l J.L nella Tabella 13 .3 per il caso di priorità con diritto di prelazione indicano che la presenza di un solo dottore provocherebbe in media un'attesa di un minuto e mezzo (0.024 ore) per i casi critici, più di 9 minuti per i casi gravi e più di un ' ora per i casi stabili (invece nel caso in cui la disciplina è per ordine di arrivo, si è visto nella Tabella 13.2 che l'attesa media è Wq = di ora per ogni paziente). Tuttavia, questi valori rappresentano aspettazioni statistiche, per cui alcuni pazienti dovranno attendere più a lungo del tempo medio relativo alla loro classe di priorità. Questa attesa non è tollerabile per i casi critici e quelli gravi, dove pochi minuti possono essere vitali. Invece i risultati nella Tabella 13.3 per s = 2 (caso di priorità con diritto di prelazione) indicano che, aggiungendo un secondo dottore, si eliminerebbe virtualmente l'attesa per tutti tranne che per i casi stabili. Pertanto, il management raccomanda che il prossimo anno ci siano due dottori in servizio nel pronto soccorso durante le ore di prima serata. Il consiglio dei dirigenti del County Hospital ha approvato questa proposta e contemporaneamente ha aumentato il costo del pronto soccorso!
f
564
CAPITOLO 13
13.9
TEORIA DELLE CODE
RETI DI CODE Finora sono stati considerati solo sistemi di attesa che hanno una singola struttura di servizio con uno o più serventi. Tuttavia, i sistemi di file di attesa che si incontrano a volte sono effettivamente delle reti di code, cioè reti di strutture di servizio in cui i clienti devono ricevere un servizio da alcune o da tutte queste strutture. Per esempio, in alcuni casi per l completamento di una lavorazione occorre passare attraverso una sequenza di gruppi di macchine (strutture di servizio). È quindi necessario studiare l 'intera rete per ottenere delle informazioni come il valore atteso del tempo totale di permanenza nel sistema, il numero atteso di clienti, ecc. A ca~sa dell ' importanza delle reti di code, la ricerca in questa area è stata molto attiva. Tuttavia, questa è un'area particolarmente difficile, per cui ci si limiterà a una breve inu·oduzione. Il seguente risultato è di tale importanza per le reti di code che la sua scoperta e le sue implicazioni meritano un'attenzione particolare. Questo risultato fondamentale è la cosiddetta proprietà di equivalenza tra il processo degli arrivi e il processo delle partenze per un sistema di attesa. Proprietà di equivalenza: si assuma che una struttura di servizio con s serventi e una coda infinita abbia un processo di arrivi di Poisson con parametro À, e per ogni servente la stessa distribuzione esponenziale del tempo di servizio con parameu·o p, (il modello M/Mis), dove sp, > À. Allora anche il processo delle partenze in regime stazionario è di Poisson 22 con parametro À. Si noti che questa proprietà non fa assunzioni sul tipo di disciplina della coda. Che sia per ordine d'arrivo, casuale, o con priorità come nel Paragrafo 13.8, i clienti serviti lasceranno la struttura di servizio secondo un processo di Poisson. L'implicazione cruciale per le reti di code è che se questi clienti devono poi andare in un'alu·a struttura per un ulteriore servizio, anche questa seconda struttura avrà an·ivi di Poisson. Se la distribuzione del tempo di servizio è esponenziale anche per questa struttura, si potrà ancora applicare la proprietà di equivalenza che quindi può fornire degli arrivi di Poisson per una terza struttura, e così via.
Code infinite in serie Si assuma che i clienti devono ricevere un servizio presso una serie di m strutture secondo una sequenza fissata . Inoltre si assuma che ogni struttura di servizio ha una coda infinita (non ci sono limitazioni sul numero di clienti che possono accedere alla coda). Questa serie di strutture costituisce un sistema di code infinite in serie. Inoltre i clienti arrivano presso la prima struttura secondo un processo di Poisson con parametro À e ogni struttura i (i = l , 2, ...,m) ha una distribuzione esponenziale del tempo di servizio con parametro p,; per i suoi s; serventi, dove S;J.-t; > À. Dalla proprietà di equivalenza, segue che (in regime stazionario) ogni struttura di servizio ha un processo di arrivi di Poisson con parametro À. Pertanto, il modello elementare M/Mis nel Paragrafo 13.6 (o il suo corrispondente con disciplina per priorità, nel Paragrafo 13.8) può essere usato per analizzare ciascuna struttura di servizio indipendentemente dalle altre! La possibilità di poter usare il modello M/Mis per ottenere tutte le misure di performance di ogni struttura in modo indipendente, anziché dover analizzare le interazioni tra le varie strutture, è una grande semplificazione. Per esempio, la probabilità di avere n clienti presso una data struttura è data dalla formula per P 11 vista nel Paragrafo 13.6 per il modello M/Mis. La probabilità composta di avere n 1 clienti presso la struttura l , n2 clienti presso la struttura 2 e così via, è il prodotto delle singole probabilità ottenute in questo modo sempli22
Per una dimostrazione, si faccia riferimento all'articolo di P.J. Burke, "The Output of a Queueing System", Operations Research , 4(6): 699-704, 1956.
13.9
RETI DI CODE
565
ce. In particolare, questa probabilità composta può essere espressa nel seguente modo:
P{(N,, Nz, ... , nm) = (n,, nz, ... , nm)} = P" 1P" 2 ... P""' )
l li
l.
,_ e
1-
Questa espressione semplice della soluzione è detta soluzione in forma di prodotto. Analogamente, il valore atteso del tempo totale di permanenza nel sistema e il numero atteso di clienti si può ottenere semplicemente sommando le corrispondenti quantità ottenute per le rispettive strutture. Sfortunatamente, la proprietà di equivalenza e le sue implicazioni non valgono per il caso di code .finite discusso nel Paragrafo 13.6. Questo caso effettivamente è molto importante nella pratica, perché esiste spesso una limitazione sulla lunghezza della coda. Per esempio, in una linea di produzione di solito è disponibile solo una limitata quantità di spazio di fronte a ciascuna struttura (stazione) per depositare del materiale. Per tali sistemi di code finite in serie, non esiste una soluzione semplice in forma di prodotto. Le strutture invece devono essere analizzate congiuntamente, e per questo motivo sono stati ottenuti solo dei risultati limitati.
!r
Reti di Jackson
~r
l-
le ~e
I sistemi di code infinite in serie non sono gli unici casi dove è possibile applicare il modello M/Mis per analizzare ogni struttura di servizio indipendentemente dalle altre. Un altro importante tipo di rete con questa proprietà (soluzione in forma di prodotto) è la rete di Jackson , ii cui nome deriva dallo studioso che per prima ha caratterizzato la rete e ha dimostrato che per essa vale tale proprietà. 23 Le caratteristiche di una rete di Jackson sono le stesse che per il sistema di code infinite in serie, con la differenza che ora i clienti visitano le strutture di servizio in ordine diverso (e possono anche non visitame qualcuna!). Per ogni struttura, i clienti provengono sia dall ' esterno del sistema (secondo un processo di Poisson) che da altre strutture. Queste caratteristiche sono riassunte di seguito.
1-
Una rete di Jackson è un sistema costituito da m strutture di servizio, dove la struttura i (i= l , 2, ... , m) ha
)-
a,
l. una coda infinita; 2. clienti che arrivano dall 'esterno del sistema secondo un processo degli arrivi di Poisson con parametro a;; 3. s; serventi con una distribuzione esponenziale dei tempi di servizio con parametro /-li·
lo ta e-
Un cliente che lascia la struttura i si dirige alla struttura) (j =l, 2, ... , m) con probabilitàpu o abbandona il sistema con probabilità m
lO
q;= I -
ra ro ~l -
ete 1a
LPu i= l
Per una rete di questo tipo vale la seguente proprietà chiave. In condizioni di regime stazionario, ogni struttura) (j = l, 2, ... , m) in una rete di Jackson si comporta come se fosse un sistema di attesa M/Mis indipendente con tasso medio d'arrivo m
Àj = Gj
n-
a1ti lo la li1" ,
+L
À;pij
i= l
con SJ/-lJ > ÀJ.
Questa proprietà non può essere dimostrata direttamente dalla proprietà di equivalenza (il ragionamento diventerebbe circolare), ma intuitivamente si vede che è supportata da essa. Dal punto di vista intuitivo (non tecnicamente corretto), per ogni struttura i, i processi di 23
Si faccia riferimento all ' aiticolo di J.R. Jackson, " Jobshop-Like Queueing Systems" , Management Science, 10( 1): 131-142, 1963.
566
CAPITOLO 13
TEORIA DELLE CODE
arrivi provenienti da varie sorgenti (fuori dal sistema o da altre strutture) sono processi di Poisson indipendenti, per cui il processo complessivo degli arrivi è di Poisson con parametro À.; (per la Proprietà 6 vista nel Paragrafo 13.4). Allora la proprietà di equivalenza implica che il processo complessivo delle partenze dalla struttura i deve essere di Poisson con parametro À;. Scomponendo questo processo delle partenze (ancora per la Proprietà 6), il processo dei clienti che vanno dalla struttura i alla struttura} deve essere di Poisson con parametro À;Pu· Esso diventa uno dei processi degli arrivi di Poisson per la struttura} e in tal modo contribuisce a mantenere la serie di processi di Poisson in tutto il sistema. L'equazione ottenuta per calcolare >..1 è basata sul fatto che À; può essere visto sia come tasso medio di partenza che come tasso medio d 'arrivo dei clienti che usano la struttura i. Poiché Pu è la frazione di clienti che lasciano la struttura i per poi andare alla struttura}, il tasso medio con cui i clienti provenienti dalla struttura i arrivano alla struttura j è À;Pu· Sommando per i= l , 2, ... ,m, e poi aggiungendo a1 a questa somma, si ottiene il tasso totale d 'arrivo alla struttura} da tutte le sorgenti. Per ricavare >-y da questa equazione occorre conoscere À ; per i -:f. j, ma questi valori sono incogniti e sono dati dalle corrispondenti equazioni. Pertanto, la procedura è quella di ricavare contemporaneamente À" À 2, ... , À 111 come soluzione del sistema lineare. Per illustrare questi calcoli, si consideri una rete di Jackson con tre strutture di servizio con i parametri indicati nella Tabella 13.4. Il sistema lineare corrispondente, nelle incognite >..1 per} = l, 2, 3, è il seguente
=l + 0.1À2 + 0.4>..3 À2 = 4 + 0 .6ÀJ + 0.4>..3 À3 = 3 + 0.3ÀJ + 0.3>..2
ÀJ
Ciascuna equazione fornisce il tasso totale d 'arrivo per la struttura corrispondente. La soluzione di questo sistema è: ÀJ =
5
7
À2 = 10
À3
=2
Ora, ciascuna delle tre strutture può ora essere analizzata indipendentemente usando la formula del modello M/Mis data nel Paragrafo 13 .6. Per esempio, la distribuzione del numero di clienti N; = n; presso la struttura i, è data da
Àl
p;=
-
S;f..L;
per i = 1
2 l
per i = 2
2 3 4
per i = 3
Sostituendo questi valori (e i parametri nella Tabella 13.4) nella formula per P11 si ha
l (l) P", =2 2
111
per la struttura l
l
per n 2 = O
3 l
Pnz =
3
+(+)"2-1
per n 2
=
l
per n 2
~
2
per la struttura 2
3
3 )" p/13 = 4l ( 4
per la struttura 3
13.1 O APPliCAZIONE DELLA TEORIA DELLE CODE
ii
567
• Tabella 13.4 Dati per l'esempio di una rete di jackson
l-
éa
Struttura j
tll
s,
a,
/J-j
Pii
i=
tà
i =l i ;= 2 i =3
lll
tj
l
2 l
lO lO lO
1
o
l 4
0.6 0.3
3
i= 2
i= 3
0.1
0.4 0.4
o
0.3
o
1e
i. il
Allora la probabilità composta di (n t. n2 , n 3 ) è data semplicemente del prodotto
P{(N, , N2, N3) = (n, , n2, n3) } = Pn ,Pn2 Pn 3
ij .
?-
In modo analogo, si può calcolare il numero atteso di clienti L; presso la struttura i (Paragrafo 13.6) ottenendo
D-
di
4
L,= l
IO
Lz
=3
L3 = 3
Il valore atteso del numero totale di clienti nell ' intero sistema è
u-
L = L,
l
+ L2 + L3 =53
Ottenere W, il valore atteso del tempo totale di permanenza nel sistema (inclusi i tempi di servizio) per un cliente, è più complicato. Non si può semplicemente sommare i tempi attesi di permanenza nelle rispettive strutture, perché un cliente non necessariamente passa esattamente una volta da ogni struttura. Tuttavia, si può ancora usare la formula di Little, dove il tasso medio d' arrivo nel sistema è la somma dei tassi medi d'arrivo dall'esterno alle strutture: À = a 1 + a 2 + a 3 = 8. Quindi
o-
L
2
a, + a2 + a3
3
W=---la u-
Per concludere, si noti che esistono altri tipi di reti di code in cui le singole strutture di servizio possono essere analizzate indipendentemente dalle altre. Infatti, trovare reti di code aventi una soluzione in forma di prodotto è stato il cuore della ricerca in questo campo. Informazioni aggiuntive si possono trovare nei Riferimenti bibliografici l, 2, 12 e 14.
13.10
APPLICAZIONE DELLA TEORIA DELLE CODE A causa del valore delle informazioni fomite dalla teoria delle code, essa è ampiamente usata per guidare la progettazione (o la revisione) di sistemi di file di attesa. In questo paragrafo verranno presentate alcune applicazioni di questa teoria. La decisione più comune quando si progetta un sistema di file di attesa è stabilire quanti serventi sono necessari . Le possibili decisioni riguardano: l. 2. 3. 4. 5.
numero di serventi presso una struttura di servizio, efficienza del servente, numero di strutture di servizio, quantità di spazio per l'attesa in coda priorità per eventuali categorie diverse di clienti.
Le due principali considerazioni nel prendere questo tipo di decisioni sono (l) il costo del servizio fornito , (2) le conseguenze dovute all'attesa dei clienti nel sistema. Fornire un ' eccessiva capacità di servizio può essere molto costoso. Pertanto, l' obiettivo è determinare un giusto equilibrio tra il costo del servizio e i tempi di attesa.
568
CAPITOLO 13
TEORIA DELLE CODE
Per cercare questo equilibrio, sono disponibili due approcci fondamentali. Il primo è fissare uno o più criteri per ottenere un livello di servizio soddisfacente in termini di tempo di attesa. Per esempio, un possibile criterio potrebbe essere che il tempo medio di permanenza nel sistema non superi un tempo prefissato. Un altro criterio potrebbe essere che almeno il 95% dei clienti non deve aspettare più di un tempo prestabilito. Si possono usare anche criteri analoghi in termini di numero atteso di clienti nel sistema (o della distribuzione di probabilità di questo valore). Il criterio potrebbe essere enunciato anche in tetmini di tempo di permanenza o numero di clienti in coda invece che nel sistema. Di solito, una volta che sono stati fissati i criteri, si può stabilire per tentativi qual è il progetto meno costoso che li soddisfa tutti. L'altrq approccio fondamentale per la ricerca della soluzione migliore è valutare i costi associati all 'attesa dei clienti. Per esempio, si supponga che il sistema di attesa sia un sistema di servizio interno (descritto nel Paragrafo 13.3), dove i clienti sono gli impiegati di una compagnia for-profit. Far aspettare questi impiegati produce una perdita nella produttività, e quindi una perdita nei profitti. Questa perdita è il costo dell'attesa associato al sistema. Esprimendo questo costo in funzione del tempo di attesa, il problema di determinare la soluzione migliore si può porre in tetmini di minimizzare il costo totale atteso (costo del servizio più costo dell'attesa) per unità di tempo. Un esempio di questo secondo approccio per il calcolo del numero ottimo di serventi è mostrato di seguito Qual è il numero ottimo di serventi? Per formulare la funzione obiettivo quando la variabile decisionale è il numero di serventi, siano E(TC) = valore atteso del costo totale per unità di tempo,
E(SC) = costo medio del servizio per unità di tempo, E(WC) = costo medio dell'attesa per unità di tempo. L'obiettivo è scegliere il numero di serventi in modo da minimizzare E(TC) = E(SC)
+ E(WC)
Quando ogni servente ha lo stesso costo, il costo del servizio è E(SC) = C,s dove Cs è il costo marginale per unità di tempo per ogni cliente nel sistema. Pertanto, dopo aver stimato le costanti Cs e C\V) si deve scegliere il valore di s tale da minimizzare E(TC) = Css + CwL Scegliendo il modello di coda che si adatta meglio a questo sistema, si può ottenere il valore di L per diversi valori di s . Incrementando s decresce L, prima rapidamente e poi più lentamente. La Figura 13.13 mostra la forma generale delle curve E(SC), E(WC) e E(TC) in funzione del numero s di serventi (per rendere meglio l' idea, sono state disegnate come curve continue anche se gli unici valori possibili di s sono s = l , 2, ... ). Calcolando E(TC) per valori successivi di s fino a quando E(TC) smette di decrescere e inizia a crescere, si trova direttamente il numero di servente che minimizza il costo totale. Il seguente esempio illustra questo procedimento. Un esempio L'Acme Machine Shop ha un magazzino in cui sono tenuti gli attrezzi usati dai meccanici dell 'officina. Due assistenti dirigono questo magazzino. Essi distribuiscono gli attrezzi ai meccanici che arrivano e li richiedono. Gli attrezzi vengono poi restituiti quando non ser-
13.10
569
APPLICAZIONE DEllA TEORIA DEllE CODE
:sa> di
ennean)ne i di ma co-
o
o.
E
B
:a ·.;s ·a::l ....
4)
o.
o
)Sti si-
~
"' .8
~ati
roato tereso
ti è
en-
o
u
Costo dell'attesa
• Figura 13.13 Le curve dei costi attesi utilizzate per determinare il numero di serventi necessari.
Numero dei serventi (s)
vono più. Ci sono state lamentele poiché i meccanici perdono troppo tempo aspettando di essere serviti al magazzino, per cui sembra che siano necessari più assistenti. D'altra parte, il management sta facendo pressioni per ridurre le spese, e questa riduzione comporta anche un minor numero di assistenti. Per risolvere questo conflitto, si sta conducendo uno studio per stabilire quante persone dovrebbero esserci nel magazzino. Il magazzino costituisce un sistema di file di attesa, dove gli assistenti sono i serventi e i meccanici sono i clienti. Dopo aver raccolto alcuni dati sui tempi di interarrivo e sui tempi di servizio, il gruppo di Ricerca Operativa ha concluso che il modello che meglio rappresenta il sistema è il modello M/Mis . Le stime sul tasso medio d'arrivo À e sul numero medio di servizi per unità di tempo (per servente) f.L sono: À
= 120 clienti ali' ora
f.L = 80 clienti ali' ora
jo-
per cui il fattore di utilizzazione per i due assistenti è
p=~- 120 Sf.L -
vapiù
:10-
rve
per >va lu-
i Cl
ai
er-
2 (80) = 0.75
Il costo totale per ogni assistente nel magazzino è di circa 20 dollari all'ora, quindi Cs = $20. Quando un meccanico è impegnato, il valore della sua produzione media è di circa 48 dollari all'ora, quindi Cw = $48. Pertanto, si deve ora calcolare il numero di serventi (assistenti) s tale da minimizzare E(TC) = $20 s
+ $48 L
Nella Figura 13.14 è illustrato un foglio Excel che calcola questi costi con il modello M/Mis per questo esempio. Esso calcola E(SC), E(WC) e E(TC), dopo che sono stati inseriti il costo unitario del servizio Cs, il costo unitario dell'attesa Cw, e il numero di serventi s. Tentando ripetutamente per vari valori di s, il foglio Excel può indicare in pochi secondi quale valore minimizza E(TC). Nella figura sono indicati i risultati ottenuti per s = 3. La Tabella 13.5 mostra i dati che sarebbero generati da questo foglio Excel ripetendo i calcoli per s = l , 2, 3, 4, 5. Poiché il fattore di utilizzazione per s = l è p = 1.5, un solo assistente non sarebbe in grado di soddisfare le richieste dei clienti, per cui questa opzione va scartata. Tutti i valori di s più grandi di l sono accettabili, ma per s = 3 il costo totale
CAPITOLO 13
570
TEORIA DELLE CODE
atteso è il più piccolo. Inoltre, s = 3 diminuisce il costo totale attuale (rispetto a s = 2) di 61 dollari ali' ora. Perciò, nonostante la direttiva di ridurre le spese (che include il costo degli assistenti di magazzino), è conveniente che un terzo assistente sia assegnato al magazzino. Si noti che questa decisione ridurrebbe il fattore di utilizzazione da 0.75 a 0.5. Comunque, per il miglioramento nella produttività dei meccanici (che sono molto più costosi degli assistenti), corrispondente a una riduzione del tempo di attesa nel magazzino, la direzione adotta questa proposta.
D
B
A
G
l
Analisi Economica del sistema di magazzino utensii per ACME
+--
~
Dati 120
1-. = ~
=
s
=..
BO 3
·i
--
.
-
__ Prob ryv > t) :: O,025817 ~ quando t::._ 0,05
l _l
Risultati . ··- -··1·:7368421 05 - =--~
-~
tasso medio d'arrivo tasso medio di servizio numero di serventi
~-=---=-~-
- r-r
· { - - ::::_
-
---
-
- .-
l
-
--
--
--------
20,00
co~rvente/unità di tem~
48,00
cos~~tesa/unità
'
_
_
t l
-L_-----~_-~~---·
B 18 Costo del servizio 19 Costo dell'atte sa 20 Costo Totale
-
OD1447'<84 ~
o001973684 - - o.5 '
_Q ,21052~16
1
- Jl ,315789474 0,236842105
2
-~~ 4+--
._
5r _ 6.
_Q,_02960__§263 0,014§0~632 Q,00740J..~6
t : _ ,: -
c =cs•s =cw•L - CostPfService +CostONI/aiting
l
_Q}~§9~lg~6,__
--- ~
--
---i
0,118421053
_
8
--
- -
o 3
--+=-=-
l
____,_
,_
_ [ _ __
di tem po __
~
~~
P.
-l-
r-=
t- -
_ ,__ -
n
- - ___,__ - -- ,Cost o del servizio _ _60 1 . _ _ _ _ _ ____, CEsto deJI'attesa ·--! 83,3__6~4~ _ ___ _ _ _ _ _ _ _ Co~Tot~ 143,3684_ _ _ _ _ __ _____ '
-
...e.
Prob (1/Vq > t) = O,000587 qu~do t= 0,05 Anal isi Economica
-
-_w Wq , - . - - -
0 ,236842105
_
~
:~~ -
J
-
_j
o ,003700658
- - L_
--t
-
Nomi di Ce lle CostOfService CostONI/aiting L
Celle C18 C19
s
C6 C20
-
G4
TotaiCost
• Figura 13.14 Foglio Excel usato per l'analisi economica effettuata per scegliere il modello.
• Tabella 13.5 Calcolo di f(TC) per diversi valori di s nell'esempio dell'Acme Machine Shop
s
p
L
l 2 3 4 5
l .50 0.75 0.50 0.375 0.30
3.43 1.74 1.54 1.51
- - -L_______ _
00
f(SC)
= C,s
$20 $40 $60 $80 $100
f(WC)
= CwL 00
$164 .57 $83 .37 $74.15 $72.41
f(TC)
= f(SC) + f(WC)
!"
x
$204.57 $143.37 $154.15 $172.41
1
13.11
di ao
CONCLUSIONI
571
CONCLUSIONI
ta-
I sistemi di file di attesa sono presenti in tutti i contesti della società. L'adeguatezza di questi sistemi può avere un effetto importante sulla qualità della vita e della produttività. La teoria delle code studia i sistemi di file di attesa formulando modelli matematici del loro funzionamento e poi usa questi modelli per fare delle misure della performance. Questa analisi fornisce informazioni vitali per progettare sistemi di attesa che raggiungono effettivamente un equilibrio appropriato tra il costo del servizio fornito e il costo associato all'attesa per quel servizio. Questo capitolo ha presentato i modelli principali della teoria delle code per i quali sono disponibili risultati particolarmente utili. Tuttavia, si sarebbero potuti considerare molti altri modelli interessanti. Infatti, diverse migliaia di articoli di ricerca che formulano e/o analizzano i modelli di coda sono già stati pubblicati nella letteratura sceintifica, e molti altri sono in corso di pubblicazione ogni anno! La distribuzione esponenziale gioca un ruolo fondamentale nella teoria delle code per rappresentare la distribuzione degli intervalli tra gli arrivi e dei tempi di servizio, perché ci permette di rappresentare il sistema di attesa come una catena di Markov in tempo continuo. Per la stessa ragione, le distribuzioni del tipo di fase come la distribuzione di Erlang, dove il tempo totale è suddiviso in varie fasi che hanno una distribuzione esponenziale, sono molto utili . Sono stati ottenuti dei risultati analitici utili solo per un numero relativamente piccolo di modelli di coda che fanno queste assunZioni. I modelli con disciplina per priorità sono utili per situazioni abbastanza comuni in cui alcune categorie di clienti hanno una priorità sulle altre nel ricevere il servizio. In un altro tipo di situazione comune, i clienti devono ricevere il servizio presso diverse strutture. I modelli per le reti di code stanno raggiungendo un uso diffuso per queste situazioni. Questa è un 'area della ricerca in corso particolarmente attiva. Quando non è disponibile un modello trattabile che fornisce una rappresentazione ragionevole del sistema di file di attesa, un approccio comune è quello di ottenere una notevole quantità di dati sulla performance mediante lo sviluppo di un programma su computer che simula il funzionamento del sistema. Il Paragrafo 13 .l O descrive brevemente come la teoria delle code può essere applicata per aiutare a progettare degli effettivi sistemi di attesa .
:o-
o.
•
RIFERIMENTI BIBLIOGRAFICI l. Chao, X., M. Miyazawa e M. Pinedo: Queueing Networks: Customers, Signals and Product Form, Wiley, New York, 1999.
C)
2. Chen, H. e D.D. Yao: Fundamentals of Queueing Networks: Pe;jòrmance, Asymptotics, and Optimization, Springer, New York, 2001. 3. Cooper, R.B.: Introduction to Queueing The01y, 2"d ed., Elsevier North-Holland, New York, 1981 (distribuito anche dal George Washington University Continuing Engineering Education Program, Washington, DC). 4. Cooper, R.B.: " Queueing Theory" , cap. 10 in D.P. Heyman e M.J. Soble (eds.), Stochastic Models, North Holland, Amsterdam e New York, 1990 (questa survey è distribuita anche dal George Washington University Continuing Engineering Education Program, Washington, DC). 5. Gross, D. e C.M. Harris : Fundamentals ofQueueing Theory, 3rd ed. , Wiley, New York, 1998. 6. Hall, R.W.: Queueing Methods: Far Services and Manufacturing, Prentice-Hall, Upper Saddle River, NJ, 1991. 7. Hillier, F.S. e M. S. Hillier: Introduction to Management Science: A Modeling and Case Studies Approach with Spreadsheets, 2"d ed., McGraw-Hill!Irwin, Burr Ridge, IL, 2003 . cap. 14. 8. Kleinrock, L. : Queueing Systems, Vol. I: Theory, Wiley, New York, 1975. 9. Nordgren, B.: " The Problem with Waiting Times", IlE Solutions, May 1999, pp. 44-48. 10. Papadopoulos, H.T., C. Heavy e J. Browne: Queueing Theory in Man ufacturing Systems Analysis and Design, Chapman Hall, London, 1993 .
572
CAPITOLO 13
TEORIA DELLE CODE
11. Prabhu, N.U.: Foundations ofQueueing Theory, Kluwer Academic Publishers, Boston, 1997. 12. Serfozo, R.: Introduction lo Stochastic Networks , Springer, New York, 1999. Stidham, S. , Jr.: "Analysis, Design, and Contro! ofQueueing Systems", Operations Research, 50: 197-216, 2002. 13. Walrand, J.: An lntroduction lo Queueing Networks, Prentice-Hall, Englewood Cliffs, NJ, 1988. 14. Wolff, R. W.: Stochastic Modeling and the Theo1y ofQueues, Prentice-Hall, Englewood Cliffs, NJ, 1989 .
•
PROBLEMI
13.2-1. * Si consideri un tipico negozio di barbiere. Dimostrare che è un sistema di file di attesa descrivendo le sue componenti.
conoscono le distribuzioni di probabilità dei tempi di interarrivo e dei tempi di servizio per questo sistema, per cui si devono usare le relazioni tra queste misure della performance).
13.2-2. * Newell e Jeff sono due barbieri che lavorano in un negozio di loro proprietà. Essi mettono a disposizione due postazioni per i clienti che aspettano il loro turno per tagliarsi i capelli, per cui il numero di clienti nel negozio varia da O a 4. Per n = O, l, 2, 3, 4, le probabilità P11 che ci siano esattamente n clienti nel negozio sono Po = P1 = P2 = ?3 = ?4 =
13.2-5. Spiegare perché il fattore di utilizzazione p in un sistema di attesa a un singolo servente deve essere uguale a l - Po, dove ? 0 è la probabilità di avere O clienti nel sistema.
(a) Calcolare L. Qual è il significato di L? (b) Per ciascuno dei possibili valori del numero dei clienti nel sistema di attesa, specificare quanti clienti sono nella coda. Calcolare poi Lq . Qual è il significato di Lq? (c) Determinare il numero atteso di clienti sotto servizio . (d) Sapendo che arrivano una media di 4 clienti all 'ora e aspettano per tagliarsi i capelli, detenninare W e Wq. Descrivere queste due quantità in termini che hanno un sign ificato per Newell e Jeff. (e) Sapendo che Newell e Jeff lavorano con la stessa velocità, qual è la durata media di un taglio?
(a) L = Lq + (1 - Po ) (b) L = Lq + p (c) P 0 = l - p
-f6,
tr,
-&,
tr,
tr ·
13.2-3. Per ciascuna delle seguenti affermazioni, stabilire se è vera o falsa e giustificare la risposta facendo riferimento a una specifica affermazione nel capitolo. (a) La coda è dove i clienti aspettano nel sistema fi no a quando il loro servizio è completato . (b) I modelli di file di coda per convenzione assumono che la coda può contenere solo un numero limitato di clienti. (c) La disciplina più comune di una coda è per ordine di arrivo (FIFO). 13.2-4. La M idtown Bank ha sempre due cassieri in servizio. I clienti arrivano per ricevere un servizio da un cassiere, con un tasso medio di 40 all 'ora. Un cassiere impiega mediamente 2 minuti per servire un cliente. Quando entrambi i cassieri sono occupati, un cliente che arriva si deve accodare a un 'unica fila per aspettare di essere servito . L' esperienza ha mostrato che i clienti aspettano in fila mediamente l minuto prima che il servizio richiesto inizi.
(a) Spiegare perché questo è un sistema di attesa. (b) Determinare le principali misure della performance - Wq, W, L" e L - per questo sistema di attesa. (Suggerimento: non si
13.2-6. Si consideri un sistema di file di attesa a un singolo servente con una distribuzione qualsiasi dei tempo di servizio e una distribuzione qualsiasi dell'intervallo tra gli arrivi (il modello GI/Gil). Usare solo le defin izioni e le relazioni fondamenta li date nel Paragrafo 13.2 per verificare le seguenti relazioni generali :
13.3-1. Identificare i clienti e i serventi del sistema di file di attesa per ciascuna delle seguenti situazioni. (a) Un supem1ercato. (b) Una stazione dei vigili del fuoco. (c) Il casello per il pagamento del pedaggio per il passaggio su un ponte. (d) Un negozio per la riparazione di biciclette. (e) Una banchina d'imbarco. (f) Un gruppo di macchine semiautomatiche assegnate a un operatore. (g) L'attrezzatura per la movimentazione dei materiali in un 'area industriale. (h) Una rivendita di prodotti idraulici. (i) Un gruppo di dattilografe. 13.4-1. Un sistema di file di attesa ha due serventi, una distribuzione esponenziale dei tempi di interarrivo con una media di 2 ore, e una distribuzione esponenziale del tempo di servizio con una media di 2 ore per ogni servente. Inoltre, un cliente è appena arrivato alle 12:00.
(a) Qual è la probabilità che il prossimo arrivo avverrà (i) prima delle 13 :00, (ii) tra le 13:00 e le 14:00 e (iii) dopo le 14:00? (b) Se non arrivano altri clienti prima delle 13:00, qual è la probabilità che il prossimo arrivo avverrà tra le 13:00 e le 14:00?
573
PROBLEMI
:h,
J,
(c) Qual è la probabilità che il numero di arrivi tra le 13:00 e le 14:00 sarà (i) O, (ii) l e (iii) 2 o maggiore? (d) Se entrambe i serventi stanno servendo un cliente alle 13:00, qual è la probabilità che per nessuno dei due i! servizio sarà completato (i) prima delle 14:00, (ii) prima delle 13 : IO e (iii) prima delle 13:01?
f!.,
arIe:). teoo,
erna
Uo la-
li :
at-
su
un
'a-
13.4-2. Un sistema di file di attesa con tre serventi ha un processo degli arrivi controllato che fornisce clienti in un tempo tale da mantenere i serventi continuamente occupati. I tempi di servizio hanno una distribuzione esponenziale con media 0.5. I tre servente iniziano il servizio al tempo t = O; il primo completamento di un servizio avviene al tempo t = l . Date queste informazioni, determinare il tempo atteso dopo t = l fino al prossimo completamento di un servizio. 13.4-3. Si consideri un sistema di file di attesa con due tipi di clienti. I clienti di tipo l e 2 arrivano secondo un processo di Poisson con un tasso medio d'arrivo di 5 all'ora. Il sistema ha due serventi che servono entrambi i due tipi di clienti. Per entrambi i tipi, i tempi di servizio hanno una distribuzione esponenziale con una media di l O minuti. Il servizio è fornito in base all ' ordine di arrivo (FIFO). (a) Qual è la distribuzione di probabilità (e la media) del tempo tra due aJTivi consecutivi di clienti di tipo qualsiasi? (b) Quando arriva un particolare cliente di tipo 2, trova due clienti di tipo l sul punto di essere serviti e nessun altro cliente ne l sistema. Qual è la distribuzione di probabilità (incluso la sua media) del tempo di petmanenza nella coda per questo cliente di tipo 2? 13.4-4. Per ciascuna delle seguenti affermazioni relative ai tempi di servizio modellati da una distribuzione esponenziale, stabilire se è vera o falsa e giustificare la risposta facendo riferimento a specifiche affermazioni nel capitolo (con la citazione della pagina). (a) Il valore atteso e la varianza dei tempi di servizio sono sempre uguali. (b) La distribuzione esponenziale fornisce sempre una buona approssimazione dell'effettiva distribuzione del tempo di servizio quando ogni cliente richiede le stesse operazioni di servizio. (c) Presso una struttura con s serventi (s > l ), con esattamente s clienti già nel sistema, un nuovo arrivo avrebbe un tempo medio di attesa prima che inizi il servizio di IlJ.L unità di tempo, dove J.L è il numero medio di servizi per unità di tempo per ciascun servente occupato.
IU-
2
on na na
13.5-1. Si consideri il processo di nascita e morte con J.L, = 2 (per n= 1, 2, ... ), Ào = 3,.\ 1 = 2, .\ 2 =l eÀ, = 0pern = 3, 4, ... (a) Disegnare il diagramma del processo. (b) Calcolare P 0 , P 1, P2 , P3 e P, per n = 4, 5, .. . (c) Calcolare L, Lq, W e W".
?
:o\e
13.5-2. Si consideri il processo di nascita e morte. I tassi di nascita sono .\0 = 2, À1 = 3, .\ 2 = 2, .\ 3 = l , e À, =O per n > 3. I SSJ di morte sono J.LI = 3, J.Lz = 4, J.L3 = l e J.L11 = 2 per n > 4.
(a) Costruire il diagramma di questo processo di nascita e morte. (b) Determinare le equazioni di equilibrio. (c) Risolvere queste equazioni per determinare la distribuzione di probabilità in regime stazionario P0 , P ~o .... 13.5-3. Si consideri il processo di nascita e morte con À, = 2 (per n = O, l , ... ), J.LI = 2 e J.L, = 4 per n = 2, 3, ... (a) Disegnare il diagramma del processo. (b) Calcolare P0 e P 1• Fornire poi un'espressione generale di P, in funzion e di P 0 per n = 2, 3, ... (c) Si consideri un sistema di attesa con due serventi che è descritto da questo processo. Qual è il tasso medio d'arrivo per questo sistema? Qual_è il tasso medio d'an·ivo per ciascun servente quando è impegnato a servire un cliente? 13.5-4. Si consideri un sistema di file di attesa con un solo servente in cui i tempi di interarrivo hanno una distribuzione esponenziale con parametro À e i tempi di servizio hanno una distri buzione esponenziale con parametro J.L. Inoltre, i clienti rinunciano (ab-bandonano il sistema senza essere stati serviti) se il loro tempo di attesa nella coda cresce troppo. In particolare, assumiamo che il tempo che ogni cliente è disposto ad aspettare in coda, prima di rinunciare, ha una distribuzione esponenziale con media 118. (a) Costruire il diagramma del processo per questo sistema di attesa. (b) Detetminare le equazioni di equilibrio. 13.5-5.* Un piccolo negozio di alimentari ha solo una cassa con un cassiere a tempo pieno. I clienti arrivano alla cassa " casualmente" (cioè, secondo un processo di arrivi di Poisson) con un tasso medio d ' arrivo di 30 all'ora. Quando c'è un solo cliente alla cassa, viene servito dal cassiere da solo, con un tempo atteso di servizio di 1.5 minuti. Tuttavia, vi è una seconda persona che quando più di un cliente è alla cassa deve aiutare il cassiere mettendo la merce acquistata nei sacchetti . Questo aiuto riduce il tempo atteso necessario per servire un cliente a l minuto . In entrambi i casi, la distribuzione del tempo di servizio è esponenziale. (a) Costruire il diagramma del processo per questo sistema. (b) Qual è la distribuzione di probabilità in regime stazionario del numero di clienti alla cassa? (c) Calcolare L del sistema. (Suggerimento: fare riferimento al calcolo di L per il modello M!Mil visto all'inizio del Paragrafo 13 .6.) Usare questa informazione per determinare Lq, W e W".
13.6-1. * La 4M Company ha come lavorazione primaria l'utilizzo di un solo tornio a torretta per la sua industria di pavimentazioni. Le commesse arrivano a questo centro secondo un processo di Poisson con un tasso medio d ' arrivo di 2 al giorno. Il tempo di lavorazione per ciascun ordine ha una distribuzione esponenziale con media pari a di giornata. Poiché le commesse richiedono spazio, quelle che non sono in corso di lavorazione sono temporaneamente messe in un deposito che si trova a una certa distanza dalla macchina. Tuttavia, per tisparmiare tempo nel prenderle, il direttore di produzione vuole proporre di aggiungere più spazio accanto al tornio in modo da poter deposita-
t
574
CAPITOLO 13
TEORIA DELLE CODE
re altre tre commesse oltre a quella in corso di lavorazione (le restanti continueranno a essere sistemate temporaneamente nel deposito). Secondo questa proposta, per quale frazione di tempo questo spazio sarà adeguato per tenere le commesse in attesa? (a) Usare le formule disponibili per calcolare la risposta. (b) Usare Ex ce! per ottenere le probabilità necessarie. 13.6-2. Si consideri il modello M/M/I , con
À
< f.L·
(a) Determinare la probabilità in regime stazionario che il tempo
effettivo di permanenza di un cliente nel sistema sia più lungo di quello atteso, cioè P{"W > W}. (b) Determinare la probabilità in regime stazionario che il tempo effettivo di permanenza di un cliente nel coda sia più lungo di quello atteso, cioè P{"Wq > Wq}. 13.6-3. Verificare le seguenti relazioni per un sistema di file di attesa MIMII: 1 - Po f.L =
WqPo
13.6-4. Date le seguenti affermazioni relative a un sistema di fi le di attesa MIMI l e al suo fattore di utilizzazione p, stabilire se sono vere o false e giustificare la risposta.
(a) La probabilità che un cliente debba aspettare prima che inizi il suo servizio è proporzionale a p. (b) Il numero atteso di clienti nel sistema è proporzionale a p . (c) Se p è aumentato da p = 0.9 a p = 0.99, l'effetto di ulteriori incrementi di p su L, Lq, W e Wq sarà relativamente piccolo fintanto che p < l.
so medio d' arrivo di 2 al minuto . Tuttavia, gli affari stanno aumentando e le proiezioni di gestione prevedono che fra un anno il tasso medio d' arrivo sarà di 3 al minuto. La durata dell ' operazione tra cassiere e cliente ha una distribuzione esponenziale con media di l minuto. La direzione ha fissato le seguenti linee guida per ottenere un livello soddisfacente del servizio ai clienti: • il numero medio di clienti che aspettano in fila per essere serviti non deve essere maggiore di l • almeno il 95% del tempo, il numero di clienti che aspettano in fila non deve essere maggiore di 5 • per almeno il 95% dei clienti, il tempo passato in fila ad aspettare che inizi il servizio non deve superare i 5 minuti. (a) Usare il modello M/Mis per stabilire quanto queste indicazioni siano attualmente soddisfatte. (b) Valutare quanto queste indicazioni saranno soddisfatte fra un anno se non cambia il numero di cassieri. (c) Determinare quanti cassieri saranno necessari fra un anno per soddisfare completamente queste linee guida. 13.6-8. Si consideri il modello M/Mis con un tasso medio d'arrivo di IO clienti all'ora e un tempo atteso di servizio di 5 minuti. Usare Excel per calcolare e stampare le varie misure della performance (rispettivamente con t = l O e t = O, per le due probabilità del tempo di attesa) quando il numero di servente è l , 2, 3, 4 e 5. Allora, per ciascuno dei seguenti criteri possibili per ottenere un livello soddisfacente del servizio (dove l'unità di tempo è l minuto), usare i risultati ottenuti per determinare quanti servente sono necessari per soddisfare il criterio.
(a) Lq ~ 0.25 13.6-5. I clienti arrivano in un sistema di file di attesa con un solo servente secondo un processo di Poisson con tempi medi di interarrivo pari a 25 minuti. I tempi di servizio hanno una distribuzione esponenziale con media di 30 minuti. Stabilire se le seguenti affermazioni sono vere o false e giustificare la risposta. (a) Il servente sarà sempre occupato dopo l'arrivo del primo
cliente. (b) La coda crescerà senza limiti. (c) Se viene aggiunto un secondo servente con la stessa distribuzione del tempo di servizio, il sistema può raggiungere una condizione di regime stazionario.
(b)
L ~
(c) Wq (d)
0.9 ~
w~
0.1
6
(e) P{"Wq > O} ~ 0.01 (f) P{"W
> IO}
~ 0.2
s
(g)
LPn 2: 0.95 n=O
13.6-9. Si consideri un sistema di file di attesa M/M/2 con = 4 e f.L = 3. Determinare il numero medio dei servizi completati per unità di tempo durante i periodi in cui non ci sono clienti che aspettano in coda. À
13.6-6. Per ciascuna delle seguenti affermazioni relative a un sistema di file di attesa M/M/I , stabilire se è vera o falsa e giustificare la risposta facendo riferimento a specifiche affermazioni nel capitolo (con la citazione della pagina).
(a) Il tempo di permanenza nel sistema ha una distribuzione esponenziale. (b) Il tempo di permanenza nella coda ha una distribuzione esponenziale. (c) Il tempo di permanenza nel sistema condizionato al numero di clienti già presenti nel sistema ha una distribuzione di Erlang (gamma). 13.6-7. La Security & Trust Bank ha 4 cassieri per servire i clienti. I clienti arrivano secondo un processo di Poisson con tas-
13.6-10. Dato un sistema di file di attesa M/M/2 con À = 4 all'ora e f.L = 6 all'ora. Determinare la probabilità che un cliente che arriva debba aspettare più di 30 minuti in coda, sapendo che almeno 2 clienti sono già nel sistema. 13.6-11. La People's Software Company ha appena avviato un call-center per fornire assistenza tecnica sul suo nuovo pacchetto software. Due tecnici rispondono alle chiamate, e il tempo richiesto da ciascun rappresentante per rispondere alle domande dei clienti ha una distribuzione esponenziale con media di 8 minuti. Le chiamate arrivano secondo un processo di Poisson con un tasso medio di IO all'ora.
PROBlEMI u-
575
Entro il prossimo anno, ci si aspetta che il tasso medio d'arrivo delle chiamate si riduca a 5 all'ora, per cui l' idea è di ridurre poi il numero dei tecnici a uno.
10
aJn
(a) Assumendo che J.1. continuerà a essere di 7.5 chiamate all ' ora per il sistema di attesa dell ' anno prossimo, determinare L, Lq, W e Wq sia per il sistema attuale sia per quello dell'anno prossimo. Per ciascuna di queste quattro misure della performance, quale sistema fornisce il valore più piccolo? (b) Assumere ora che J.1. si possa regolare quando il numero dei rappresentanti tecnici viene ridotto a uno. Determinare algebricamente il valore di J.1. che produrrà lo stesso valore di W del sistema attuale. (c) Ripetere la parte (b) con Wq al posto di W.
ln
:r-
in ~t-
:a13.6-12. Per ciascuno dei seguenti modelli, scrivere le equazioni di equilibrio e mostrare che esse sono verificate dalla soluzione data nel Paragrafo 13.6 per la distribuzione in regime stazionario del numero di clienti nel sistema.
'ra 110
(a) Il modello M /M/l. (b) Il modello M/M/l con coda finita, per K = 2. (c) Il modello M /M / 1 con sorgente degli arrivi finita, per N = 2.
ritti. ~r
13.6-13. Janet sta progettando di aprire una piccola stazione di auto-lavaggio, e deve decidere quanto spazio riservare alle macchine in attesa. Stima che i clienti dovrebbero arrivare casualmente (cioè, secondo un processo degli arrivi di Poisson) con un tasso medio d'arrivo di l ogni 4 minuti, a meno che l'area di attesa sia piena, nel qual caso i clienti devono portare la loro macchina altrove. Il tempo necessario per lavare una macchina ha una distribuzione esponenziale con media di 3 minuti. Calcolare la frazione attesa di potenziali clienti persi a causa dello spazio di attesa inadeguato se esso è costituito da (a) O spazi (escluso quello riservato al lavaggio dell a macchina), (b) 2 spazi e (c) 4 spazi.
Jl-
,4 te-
'è ~ r-
(a) Se aumenta u 2 (con À e J.1. fissati), Lq e L diminuiscono mentre Wq e W restano invariati. (b) Quando si deve scegliere tra una tartaruga (J.l. e u 2 piccoli) e una lepre (J.l. e u 2 grand i) come servente, la tartaruga vince sempre perché fornisce un Lq più piccolo. (c) Fissati À e J.l., il valore di Lq relativo a una distribuzione esponenziale dei tempi di servizio è il doppio di quello relativo a dei tempi di servizio costanti. 13.7-4.* Il centro di manutenzione della Friendly Skies Airline ha strutture per revisionare un solo motore di un aereo per volta. Pertanto, per restituire gli aer..ei il prima possibile, la politica è stata quella di scaglionare la revisione dei quattro motori di ciascun aereo. In altre parole, solo un motore è revisionato per ogni aereo che arriva in officina. Secondo questa politica, gli aerei arrivano secondo un processo di Poisson con un tasso medio d' arrivo di l al giorno. Il tempo richiesto per la revisione di un motore ha una distribuzione esponenziale con media di mezza giornata. È stato proposto di cambiare la politica in modo che tutti i quattro motori siano revisionati consecutivamente ogni volta che un aereo arriva in officina. Sebbene questo quadruplicherebbe il tempo atteso di servizio, ogni aereo dovrebbe andare in manutenzione solo una volta su quattro. La direzione deve ora decidere se continuare a lavorare nel modo attuale o se accettare la proposta. L 'obiettivo è di minimizzare la quantità media di tempo di volo perso al giorno dall ' intera flotta per la revisione dei motori.
(a) Confrontare le due alternative rispetto alla quantità media di tempo di volo perso da un aereo ogni volta che va in manutenzione. (b) Confrontare le due alternative rispetto al numero medio di aerei che perdono tempo di volo perché sono in manutenzione. (c) Quale di queste due valutazioni è la più appropriata per prendere una decisione? Spiegare.
13.7-1.* Si consideri il modello MIGl i. (a) Confrontare il valore atteso del tempo di permanenza nella coda se la distribuzione del tempo di servizio è (i) esponenziale, (ii) uniforme, (ii) di Erlang con deviazione standard a metà strada tra il caso uniforme e quello esponenziale. (b) Qual è l'effetto sul valore atteso del tempo di permanenza nella coda e sulla lunghezza attesa della coda se entrambi i valori À e J.1. sono raddoppiati e la scala della distribuzione del tempo di servizio è modificata di conseguenza? ·
on lel ti
~lt te
he
un tto ride lion
l
13.7-2. Si consideri il modello M/G/ 1 con À = 0.2 e
J.1.
= 0.25.
(a) Qual è il rapporto tra Lq relativo a u = 4 e Lq relativo a u = O? Qual è la conclusione che si può trarre sull ' importanza di ridurre la variabilità dei tempi di servizio? (b) Calcolare la riduzione di Lq quando u cambia da 4 a 3, da 3 a 2, da 2 a l e da l a O. Qual è la riduzione massima? Qual è la più piccola? 13.7-3. Date le seguenti affermazioni relative a un sistema di attesa M IGli, dove u 2 è la varianza dei tempi di servizio, stabi lire se sono vere o false e giustificare la risposta.
13.8-1. * La Southeast Airlines è una piccola compagnia aerea che fa servizio pendolare principalmente nello Stato della Florida. La loro biglietteria in aeroporto ha come staff un solo agente. Ci sono due linee separate - una per la prima classe e una per le classe economica. Quando l 'agente è pronto per un altro cliente, viene servito il prossimo passeggero di prima classe se ce ne sono in coda. Altrimenti, viene servito il prossimo passeggero in classe economica. I tempi di servizio hanno una distribuzione esponenziale con media di 3 minuti per entrambi i tipi di clienti. Durante le 12 ore della giornata in cui la biglietteria è aperta, i passeggeri arrivano casualmente con un tasso medio d'arrivo di 2 passeggeri di prima classe all'ora e 10 passeggeri di classe economica all'ora. (a) Quale tipo di modello di coda rappresenta questo sistema? (b) Determinare le principali misure della performance - L, Lq, W e W" - sia per la prima classe sia per la classe economica. (c) Qual è il rapporto tra il valore atteso del tempo di permanenza in coda per i clienti di prima classe e quello per i clienti in classe economica? (d) Determinare il numero medio di ore al giorno in cui l'agente è impegnato.
576
CAPITOLO 13
TEORIA DELLE CODE
13.8-2. * Un particolare centro di lavorazione può essere rappresentato come un sistema di file di attesa con un singolo servente, dove i lavori arrivano secondo un processo di Poisson, con una media di 8 al giorno. Sebbene i lavori che arrivano sono di tre tipi diversi, il tempo richiesto per eseguirne uno qualsiasi ha la stessa distribuzione esponenziale, con una media di 0.1 giorni lavorativi. La pratica è di lavorare sulle commesse che arrivano in base all'ordine di arrivo. Tuttavia, è importante che le conm1esse di tipo l non debbano aspettare a lungo, mentre l' attesa è moderatamente importante per le commesse di tipo 2 ed è relativamente poco importante per quelle di tipo 3. Questi tre tipi arrivano rispettivamente con un tasso medio di 2, 4, e 2 al giorno. Poiché tutti i tre tipi hanno avuto in media dei ritardi piuttosto lunghi, è stato proposto che le commesse vengano selezionate secondo un'appropriata disciplina per priorità. Calcolare il tempo medio di attesa (incluso il servizio) per ciascuno dei tre tipi di commesse se la disciplina della coda è (a) per ordine di arrivo, (b) per priorità senza diritto di prelazione e (c) per priorità con diritto di prelazione.
13.8-3. Si riconsideri il sistema descritto nel Problema 13.4-3. Si supponga che i clienti di tipo l siano più importanti di quelli di tipo 2. Se si cambia la disciplina della coda da FIFO a un sistema di priorità in cui i clienti di tipo l hanno una priorità senza diritto di prelazione sui clienti di tipo 2, questo incrementerebbe, diminuirebbe o manterrebbe invariato il valore atteso del numero totale di clienti nel sistema?
Struttura j
s,
PIJ
ILI
al
i= 1
i= l i=2 i=3
l l l
40 50 30
lO 15 3
o 0.5 0.3
l= 2
i= 3
0.3
0.4 0.5
o
0.2
o
(a) Determinare mediante Excel il tasso medio d' arrivo totale
per ciascuna struttura. (b) Determinare la distribuzione in regime stazionario ,del numero di clienti presso la struttura l , presso la struttura 2 e presso la struttura 3. Mostrare poi la soluzione in forma di prodotto per la distribuzione congiunta del numero di clienti presso le rispettive strutture. (c) Qual è la probabilità che tutte le strutture abbiano delle code vuote (nessun cliente in attesa di essere servito)? (d) Detem1inare il valore atteso del numero totale di clienti nel sistema. (e) Determinare il valore atteso del tempo totale di permanenza nel sistema (incluso i tempi di servizio) di un cliente.
(b) Verificare, usando Excel, la risposta del punto (a) calcolando il valore atteso del numero totale di clienti nel sistema per ciascuna di queste due discipline di coda.
13.10-1. Si faccia riferimento all'analisi economica del numero di serventi da fornire a un sistema di attesa fatta nel Paragrafo 13.1 O, dove si introduce un modello dei costi fondamentale con l'obiettivo di minimizzare E(TC) = C,s + C,L . Lo scopo di questo problema è osservare l'effetto che i valori di Cs e di C.v hanno sul numero ottimale di servente. Si supponga che il sistema in considerazione possa essere rappresentato dal modello M/Mis con À = 8 clienti all 'ora e /.l= l O clienti all'ora. Usare Excel per fare l'analisi economica con il modello M/Mis per determinare il numero ottimale di servente in ciascuno dei seguenti casi.
13.9-1. Si consideri una rete di Jackson con tre strutture di servizio i cui parametri sono fomiti nella seguente tabella.
(a) C, = $100 e C..,= $10. (b) C, = $100 e C.., = $100. (c) Cs = $1 0 e C.., = $100.
(a) Determinare la risposta senza eseguire alcun calcolo.
.<" 3
APPE (N D I C E
le e-
s
oIU
Convessità
ie
te! za
ro fo
.'
)0
ome si è visto nel Capitolo l O, il concetto di convessità è un importante concetto nella Ricerca Operativa, specialmente nel! 'ambito della programmazione nonlineare. Pertanto, in questa appendice verranno presentate le proprietà delle funzioni concave e convesse e degli insiemi convessi.
C
di
-
~w
FUNZIONI CONCAVE O CONVESSE DI UNA SINGOLA VARIABILE
p-
IO
Definizioni: una funzione f(x) di una variabile è una funzione convessa se, per ogni coppia x' e x" di valori di x (con x' < x"), si ha
il in
f[Ax" +(l - À)x'] :::; V (x") +( l - À)f(x')
1
.
per ogni valore di À tale che O < À < l. Una funzione è strettamente convessa se si può sostituire :::; con <. È una funzione concava (rispettivamente una funzione strettamente concava) se la condizione precedente vale quando si sostituisce < con > (rispettivamente con > ). Questa definizione di funzione convessa ha un'interpretazione geometrica istruttiva. Si consideri il grafico della funzionef(x) mostrato nella Figura Al.l, dovef(x) è decrescente per x < l, costante per l :::; x :::; 2 e crescente per x> 2. Allora P = (x',f(x' )) e Q = (x",J(x")) sono due punti sul grafico di f(x) , e (Ax" +( l - À)x', Àf(x" ) +(l - À)f("-i )), con O < À < l , sono i punti del segmento di estremi P e Q (esclusi gli estremi). Quindi, nella definizione, la disuguaglianza :::; indica che questo segmento si trova al di sopra del grafico della funzione o è coincide con esso, come è mostrato nella Figura A l. l. Pertanto, la funzione f (x) è convessa se per ogni coppia di punti del grafico di f(x) il segmento che li congiunge sta interamente al di sopra del grafico di f(x ) o coincide con esso.
Per esempio, per i valori x' e x" scelti nella Figura A 1.1 il segmento si trova al di sopra del grafico dif(x ) (esclusi i due estremi che invece appartengono alla curva). Questo si verifica anche per altri valori di x' e x" con x' < l o x" > 2. Se l :::; x' < x" :::; 2, allora l' intero segmento è contenuto nel grafico di f (x). Pertanto questa funzione è convessa. Questa interpretazione geometrica indica che f (x) è convessa se "curva solo verso l'alto" (a volte ci si riferisce a questa condizione dicendo che è concava verso l 'alto , mentre per una funzione concava si dice che è concava verso il basso). Per essere più precisi, se la derivata seconda di f(x) è definita per tutti i valori di x, allora f(x) è convessa se e solo se d 2f (x)j dx 2 ?: Oper ogni x. Le definizioni di funzione strettamente convessa, fimzione concava, e fimzione strettamente concava hanno analoghe interpretazioni geometriche. Queste interpretazioni sono riassunte di seguito in termini della derivata seconda della funzione, che fornisce un utile test dello stato della funzione. Test di convessità per una funzione di una variabile: siaf(x) una funzione di una sola variabile che ammette derivata seconda per tutti i possibili valori di x. A!!oraf(x) è d 2f(x) l. convessa se e solo se - --2 dx bile valore di x;
.
.
?: Oper ogm possi-
d2f(x) 2. strettamente convessa se e solo se - - 2 - > O dx per ogni possibile valore di x; 2 . . d f(x ) 3 . concava se e so lo se~ :::; 0 per ogni possibile valore di x; xd2f(x) 4. strettamente concava se e solo se - - -2 < O dx per ogm· poss1'b'l 1 e va lore d'1x.
Si noti che una funzione strettamente convessa è anche convessa, ma una funzione convessa non è strettamente
578
APPENDICE 1
CONVESSITÀ
j{x)
j{x " )· - - -
f{x')l- - - _ _ _ _ _ -------
• Figura A 1.1 Una funzione convessa.
P
x'
f(x)
~ x'
x"
x
• Figura A 1.2 Una funzione strettamente convessa.
convessa se la sua derivata seconda è uguale a zero per alcuni valori di x. Analogamente, una funzione strettamente concava è concava, ma non è vero il viceversa. Le figure dalla A l. l alla A 1.6 mostrano alcuni esempi che illustrano queste definizioni e il test di convessità. Applicando questo test alla funzione nella Figura Al.! , al crescere di x la pendenza della curva (cioè la derivata prima) cresce (per O ::; x < l e x > 2) o resta costante (per l ::; x ::; 2). Quindi la derivata seconda è sempre nonnegativa, e questo assicura che la funzione è convessa. Tuttavia, essa non è strettamente convessa perché la derivata seconda è uguale a zero per l ::; x ::; 2. La funzione nella Figura Al.2 è strettamente convessa perché la sua pendenza è sempre crescente per cui la sua derivata seconda è sempre maggiore di zero. La funzione lineare a tratti mostrata nella Figura Al.3 cambia la sua pendenza in x = l. Di conseguenza, in questo punto non è definita la derivata prima e la derivata seconda, per cui non si può applicare il test di convessità precedente (poiché la derivata seconda è uguale a zero per O ::; x < l e per x > l , la funzione può essere convessa o concava a seconda del suo comportamento in x = l).
-
----
............--
2
x"
Applicando la definizione di funzione concava, si vede che per O < x ' < l e per x" > l (come mostrato nella Figura Al.3) il segmento congiungente i punti (x ',J(x' )) e (x" ,J(x" )) si trova al di sotto del grafico dif(x), esclusi gli estremi del segmento. Se O ::; x' < x" ::; l oppure l ::; x' < x ", allora l' intero segmento appartiene al grafico dif(x). Pertanto,f(x) è concava (ma non strettamente concava). La funzione mostrata nella Figura A 1.4 è strettamente concava perché la sua derivata seconda è sempre minore di zero. Come è illustrato nella Figura A1.5 , ogni funzione lineare ha derivata seconda nulla per cui è sia concava che convessa. La funzione nella Figura Al.6 non è né convessa né concava perché al crescere di x la pendenza varia crescendo o decrescendo, per cui la derivata seconda su certi intervalli è negativa mentre su altri è positiva.
FUNZIONI CONCAVE O CONVESSE DI PIÙ VARIABILI Il concetto di funzione concava o convessa in una sola variabile può essere generalizzato a funzioni in più variabili. Sef(x ) è sostituita daf(x 1, x 2 , ... , x 11 ) , la definizione è ancora valida se si sostituisce x con (x ~, x 2 , ... , X 11 ). Analogamente, la corrispondente interpretazione geometrica è ancora valida dopo aver generalizzato i concetti di punti e segmenti. Quindi, un valore particolare di (x, y) è interpretato come un punto nello spazio bidimensionale, ogni possibile valore di (x~, x 2 , ... , xm) può essere visto come un punto dello spazio m-dimensionale (euclideo). Ponendo m = n+ l, i punti del grafico dif(x 1, X2 , ... , x 11 ) diventano i possibili valori di (x ~, x 2 , ... , X 11 ) , f(x~, x 2 , ... , X 11 ). Un punto (x~, x 2 , ... , x,, Xn + J) si trova al di sopra, ap-
APPENDICE l
CONVESSITÀ
579
{(x)
/
/
/
/
/
/
/
/
?
/
------
/
/
/
y
• Figura A 1.3 Una funzione concava .
/
//
x"
x'
x
f(x)
f(x) ((x)
le la ))
~
~
Il-
re 'ite
x'
.l'
te re
x
x
x • Figura A 1.5 Una funzione che è sia convessa sia concava.
• Figura A 1.4 Una funzione strettamente concava.
• Figura A 1.6 Una funzione che non è né convessa né concava .
li1e
Jé
nn-
partiene, o si trova al di sotto del grafico di f(x 1, x 2, ... , x 11 ), a seconda che Xn + l sia rispettivamente maggiore, uguale, o minore dif(xh x2, ... , X 11 ).
Definizione: il segmento congiungente due punti (x ~ ,x ~, ... ,x;,) e (x'( , x~ , ... , x;;) è l' insieme di punti
(x,,
X2, ... , X 111 )
= [Ax'( + (1 - À)x'1,
Àx~
+ (1 -.-\)x; , ... , Àx;;, + (1 -.-\)x~, ]
ali.
n-
,).
e-
con O ::;
Quindi, un segmento in uno spazio m-dimensionale è una generalizzazione del concetto di un segmento in uno spazio bidimensionale. Per esempio, se
di
è
e,
)-
À::; l
(x;, x;)
= (2, 6)
(x'(,
x~) =
(3, 4)
allora il segmento che li congiunge è l'insieme di punti
(x 1, x2 ) = [3À + 2(1 - À), 4,\ + 6(1- À)]
•).
,, )
p-
dove O ::;
À ::;
l
Definizione: una funzionef(x 1, x 2 , .. . , X 11 ) è convessa se per ogni coppia di punti del grafico di f(x 1,
x 2 , ..• , x 11 ), il segmento che li congiunge si trova interamente al di sopra o appartiene al grafico di f(x h x 2 , ... , X 11 ). È una funzione strettamente convessa se questo segmento, eccetto gli estremi, si trova tutto al di sopra di questo grafico. Le funzioni concave e le funzioni strettamente concave sono definite esattamente nello stesso modo, con la differenza che per esse il segmento deve stare sotto anziché sopra. Così come la derivata seconda (quando esiste nel dominio della funzione) può essere usata per stabilire se una funzione di una sola variabile è convessa, le derivate parziali seconde possono essere usate per stabilire se funzioni di più variabili sono convesse, anche se in modo più complicato. Per esempio, se ci sono due variabili ed esistono le derivate parziali seconde, allora il test di convessità verifica se tutte le tre espressioni nella prima colonna della Tabella Al. l soddisfano le disuguaglianze mostrate nelle rispettive colonne per tutti i possibili valori di (x 1, x 2 ). Quando ci sono più di due variabili, il test di conyessità è una generalizzazione di quello mostrato nella Tabella Al. l. La funzione,f(x 1, x 2 , . •. , X 11 ) è convessa se e solo se
APPENDICE 1
580
CONVESSITÀ
Tabella A 1.1 Test di convessità per una funzione in due variabili. Espressione fJ 2f(Xl, Xz) fJ 2f (x1, Xz ) _ [ 8 2f(x1, Xz) oxf 8x~ OX] OXz
r
82f(x1, xz ) axf fJ 2f (x1, xz) fJx~
Convessa
Strettamente convessa
Concava
Strettamente concava
~ o
>0
~ o
>0
~ o
>0
:s; o
<0
~ o
>0
:s; o
<0
Valori di (x1 , xz) --
--------
Tutti i valori possibili - --
--- ------- - --- - - - - - - - - - - - - - - - - - - -- - - - - - - - - -·-
la sua matrice hessiana n x n è semidefinita positiva per tutti i possibili valori di (x 1, xz, ... , X 11 ). Per illustrare il test di convessità in due variabili, si consideri la funzione
j(x1, x2)
(xl - xd =x~ - 2x1x2 + x~
=
Allora,
(l)
fJZj(xl, x2) 8 2j(x1, x2) OXT 8x~
2
2
8 j(x1, x2)] = [ 0XJOX2
2(2) - (- 2) 2 = (2) (3)
2 8 f(xJ, x2) OXT
=2> O
0 2j(x 1, x2)
=2> O
o
= -j(x1, xz) = -(x l - x2f
2 2 8 g(xl, x2)] = [
OX 10X2
sono entrambe funzioni convesse, come si può vedere calcolando le loro derivate seconde. Pertanto, la somma di queste funzioni
= x41 + 3x21 - Sx1 + 2x1x2 + x22
g(x1, x2)
= -xi - 3x~ + Sx 1 - 2x 1x2 - x~
è una funzione concava. 2
-2(-2) - 2
(6)
+~
è una funzione convessa, mentre la sua opposta
In questo caso,
8 2g(x1, x2) 8 2g(x1, x2) 8xf 8x~
Ji(xl, x2) =x~ + 2x1x2
!( x1, x2 )
=-X~ +2XlX2 -~
(5)
i.
e
Poiché le tre quantità sono tutte nonnegative, f(x~. x 2) è convessa, ma non è strettamente convessa perché la prima espressione è uguale a zero anziché strettamente positiva. Si consideri ora la funzione :
(4)
non sono convesse soddisfano le condizioni di convessità in certi intervalli. Una funzione è convessa in un intorno di un particolare punto se la sua derivata seconda o le sue derivate parziali seconde soddisfano le condizioni di convessità in quel punto. Questo concetto tornerà utile nell'Appendice 2. Infme si riportano due proprietà particolarmente importanti delle funzioni convesse o concave. La prima è che se f(x~. x 2 , . . . , X11 ) è una funzione convessa, allora g(x 1, x 2 , •.. , X11 ) = - f(x~. x 2 , . .. , X11 ) è una funzione concava, e viceversa, come visto nell 'esempio precedente dovef(x 1, x 2) = (x 1 - x 2 La seconda è che la somma di funzioni convesse è una funzione convessa e la somma di funzioni concave è una funzione concava. Per esempio,
Jì (xl) =xi+ 2x~ - Sx1
8x~
g(x1, x2)
-------------------
=o
82g(x1, x2) = - 2 < O
OXT 0 2g(xl, x2) = -2 < O 8x~
Poiché le tre espressioni sono tutte nonpositive, g(x~. x 2 ) è una funzione concava, ma non è strettamente concava perché la prima espressione è uguale a zero. Finora la convessità è stata trattata come una proprietà generale di una funzione. Tuttavia, molte funzioni che
INSIEMI CONVESSI Il concetto di funzione convessa conduce in modo abbastanza naturale al relativo concetto di insieme convesso. Quindi, sef(x~. x 2 , ... , x 11 ) è una funzione convessa, allora l' insieme di punti che appartengono o si trovano al di sopra del grafico dif(x~. x 2 , ... , x 11 ) costituiscono un insieme convesso. Analogamente, l' insieme di punti che appartengono o si trovano al di sotto del grafico di una funzione concava costituiscono un insieme convesso. Questi casi sono illustrati nelle Figure Al.7 e A1.8 per funzioni di
APPENDICE l
tà 10
ue n,le lrse
CONVESSITÀ
una sola variabile. Inoltre, gli insiemi convessi hanno l'importante proprietà che, per ogni famiglia di insiemi convessi, i punti comuni a tutti gli insiemi della famiglia (cioè la loro intersezione) costituiscono un insieme convesso. Pertanto, l'insieme dei punti che appartengono o stanno al di sopra del grafico di una funzione convessa e appartengono o stanno al di sotto del grafico di una funzione concava, come è illustrato nella Figura Al.9, è un insieme convesso. Quindi gli insiemi convessi intuitivamente possono essere visti come l'insieme di punti il cui bordo inferiore è il grafico di una funzione convessa e il cui bordo superiore è il grafico di una funzione concava. Sebbene questa descrizione degli insiemi convessi mediante funzioni convesse e funzioni concave possa essere utile per dare un ' idea della loro natura, la loro effettiva defmizione è indipendente da tali funzioni .
Definizione: un insieme convesso è un insieme di punti tale che, per ogni coppia di punti dell ' insieme, il segmento che li congiunge è interamente contenuto nell ' insieme.
581
La distinzione tra insiemi convessi e insiemi che non sono convessi è illustrata nelle Figure Al . l O e Al.ll. L'insieme di punti mostrato nella Figura Al. lO non è convesso perché esistono molte coppie di punti, per esempio (l, 2) e (2, l), tali che il segmento che li congiunge non è interamente contenuto nell ' insieme. Questo non accade per i punti dell'insieme mostrato nella Figura Al.ll che è convesso. Infine, introduciamo il concetto di punto estremo di un insieme convesso.
Definizione: un punto estremo di un insieme convesso è un punto dell ' insieme che non appartiene ad alcun segmento congiungente altri due punti distinti d eli' insieme. Per esempio, i punti estremi dell'insieme convesso mostrato nella Figura A 1.11 sono (0, 0), (0, 2), (l, 2), (2, l), (l, O) e tutti gli infiniti punti del bordo compresi tra (2, l) e (l , 0). Se invece questa parte del bordo fosse stata un segmento, allora gli unici punti estremi dell ' insieme sarebbero stati i cinque punti elencati.
!r-
:sa-
• FiguraA1.7 Esempio di un insieme convesso determinato da una funzione convessa.
• Figura A 1.8 Esempio di un insieme convesso determinato da una funzione concava.
f(x)
• Figura A 1.9 Esempio di un insieme convesso determinato da una funzione convessa e una funzione concava.
xz
f(x)
lidi
ao. ra
x,
x
• Figura A1.10 Esempio di un insieme che non è convesso.
x
• Figura A 1.11 Esempio di un insieme convesso. x2
x2
2 1------.. 2 f-----.
0-
Je
n-
Je
ISi
di
o
2
x,
o
2
x,
l C E
Metodi classici di ottimizzazione uesta appendice riesamina i metodi classici dell'analisi matematica per determinare una soluzione che massimizza o minirnizza (l) una funzione di una sola variabile, (2) una funzione di più variabili e (3) una funzione di più variabili con vincoli di uguaglianza. Si assume qui che le funzioni considerate abbiano derivata prima e seconda continue e derivate parziali prime e seconde continue. Alcuni dei concetti discussi di seguito sono stati descritti brevemente nei Paragrafi 10.2 e 10.3 .
Q
OTTIMIZZAZIONE NON VINCOLATA DI UNA FUNZIONE DI UNA VARIABILE Si consideri una funzione di una sola variabile, come mostrata nella Figura A2.1. Condizione necessaria affinché una particolare soluzione x = x• sia un minimo o un massimo è che df(x) dx
=0
in x= x*
Nella Figura A2.1 ci sono cinque punti che soddisfano questa condizione. Per avere maggiori informazioni su questi cinque punti critici, è necessario esaminare la derivata seconda. Se d 2f(x) ~> 0
mx = x * o
allora x* è almeno un minimo locale (cioè f(x*) :S f(x) per ogni x sufficientemente vicino a x*). Usando la tenninologia introdotta neli' Appendice l , x* è un minimo relativo sef(x) è strettamente convessa in un intorno di x*. Analogamente, una condizione sufficiente affinché x* sia un massimo locale (supponendo che esso soddisfi la condizione necessaria) è chef(x) sia strettamente concava in un intorno di x* (cioè la derivata seconda è negativa in x*). Se la derivata seconda è nulla è necessario esaminare
le derivate di ordine superiore (in questo caso il punto potrebbe anche essere un punto di flesso). Per determinare un minimo globale è (cioè una soluzione x* tale che f(x*) :S f(x) per ogni x), è necessario confrontare i minimi locali e identificare quello per il quale si ha il più piccolo valore dif(x). Se questo valore è minore dif(x) per x -. - oo e per x-. +oo (o agli estremi del suo dominio, se essa è definita su un intervallo limitato), allora questo punto è un minimo globale. Tale punto è mostrato nella Figura A2.1, insieme al massimo globale, che è determinato in modo analogo. Tuttavia, se f(x) è una funzione convessa o concava, l'analisi diventa molto più semplice. In particolare, se f(x) è una funzione convessa, come quella mostrata nella Figura Al. l , allora una qualunque soluzione x* tale che f(x) = O mx =x* dx o
è automaticamente un mznzmo globale. In altre parole, questa condizione è non solo necessaria ma anche sufficiente per un minimo globale di una funzione convessa. Questa soluzione non necessariamente deve essere unica perché la funzione potrebbe rimanere costante in un certo intervallo nel quale la sua derivata è nulla. D'altra parte, se f (x) è strettamente convessa, allora questa soluzione deve essere l'unico minimo globale (tuttavia, se la funzione è sempre decrescente o sempre crescente, e quindi la sua derivata è diversa da zero per tutti i valori di x, allora non esiste un minimo globale in corrispondenza di un valore finito di x). Analogamente, se f(x ) è una funzione concava, allora la condizione df(x) = O mx =x* dx o
è sia necessaria sia sufficiente affinché x* sia un massimo globale.
APPENDICE 2
583
METODI ClASSICI DI OTTIMIZZAZIONE
((x)
Massimo
globale ...............
Minimo
• Figura A2.1 Una funzione che ha diversi massimi e minimi.
ou-
io a-
globale x
OTTIMIZZAZIONE NON VINCOLATA PER UNA FUNZIONE DI PIÙ VARIABILI L'analisi per una funzione di più variabilif(x), dove x = (x~> x 2 , ... , x 11 ), è analoga. Quindi, condizione necessaria affinché una soluzione x = x* sia un minimo o un massimo è che
H-
ni a-
·è le,
·a, se
la
.e, 'fi;a.
ca to :e, ne ola ra a-
of(x)
=
in x = x* per j = l , 2, ... , n
Dopo aver determinato i punti critici che soddisfano questa condizione, ciascuno di questi punti viene classificato come minimo locale o massimo locale se la funzione è rispettivamente strettamente convessa o strettamente concava in un intorno del punto (occorre un'analisi più approfondita se per la funzione non vale nessuna di queste due proprietà in un intorno del punto.) Il minimo globale e il massimo globale si determinano confrontando i minimi e i massimi locali e poi controllando il valore della funzione quando alcune delle variabili tendono a -oo o a +oo. Tuttavia, se la funzione è convessa o cancava, allora un punto critico deve essere un minimo globale o un massimo globale.
OTTIMIZZAZIONE VINCOLATA CON VINCOLI DI UGUAGLIANZA Si consideri ora il problema della ricerca del minimo o del massimo della funzione f(x), con i vincoli che x deve soddisfare tutte le seguenti equazioni:
< n. Per esempio, se n = 2 e m =
masstmtzzare
j (x 1, x2 )
= XT + 2x2
= l
/Il
h(x, À)
= f( x)
- L À;[g;(x) -
b;]
i= l
dove le nuove variabili À = (À~> À 2 , .. . , À 11 ) sono dette moltiplicatori di Lagrange. Il punto chiave è che per tutti i valori ammissibili di x, g;(x) - b; =O
per ogni i
per cui h(x, À) = f(x). Pertanto, si può mostrare che se (x, À) = (x*, .X*) è un minimo o un massimo locale per la funzione non vincolata h(x, À ), allora x • è un punto critico per il problema originale. Il metodo si riduce all'analisi della funzione h(x, À) mediante il procedimento appena descritto per l'ottimizzazione non vincolata. Quindi, si pongono le n + m derivate parziali prime uguali a zero: oh of -L,/ \oox;g,- = o ox - -ox m
oh
l , il problema è:
+~
In questo caso, (x 1, x 2 ) deve appartenere alla circonferenza di centro l'origine e raggio l , per cui l'obiettivo è determinare il punto su questa circonferenza che fornisce il più grande valore difCx~> x 2). Questo esempio sarà risolto dopo aver delineato un approccio generale al problema. Un classico metodo usato per affrontare questo problema è il metodo dei moltiplicatori di Lagrange. Questo procedimento inizia definendo la funzione lagrangiana
OÀ;
gm(x) = bm dove m
g(x1, x2) = x~
1
g1 (x)= b 1 g2(x) = b 2
·ra
10
o
OXj
con la condizione che
J
= - g;(x)
i= l
+ b; =O
o
Per J- l , 2, ... , n o
-
J
per i= l , 2, ... , m
e si detenninano i punti critici risolvendo queste equazioni per (x, À) . Si noti che le ultime m equazioni sono equivalenti ai vincoli del problema originale, per cui qui vengono considerate solo soluzioni ammissibili. Dopo un'ulteriore analisi per determinare il massimo globale o il mi-
584
APPENDI CE 2
METODI CLASSICI DI OTTIMIZZAZIONE
nimo globale di h, il valore di x risultante è allora la soluzione cercata del problema originale. Dal punto di vista del calcolo, il metodo dei moltiplicatori di Lagrange non è un procedimento particolarmente potente. Spesso è praticamente impossibile risolvere le equazioni per determinare i punti critici. Inoltre, anche se si determinano tali punti, essi sono in numero talmente elevato (spesso infinito) che non è pratico il tentativo di determinare un massimo o un minimo globale. Tuttavia, per certi tipi di problemi, questo metodo può a volte essere usato con successo. Come esempio, si consideri il problema introdotto precedentemente. In questo caso,
h(x i, xz)
--
=
xf + 2xz - À(xf + x~ - l )
per cui
oh
~ UXi
oh
=
2x i -
2 AAi '"- -- O
_ 0
~ = 2 - 2'-UXz AA2 -
oh
m
= - (xf + xf - l )=
o
La prima equazione implica che À = l oppure X i = O. Se À = l , allora le altre due equazioni implicano che x 2 = l e x i =O. Se X i = l , allora la terza equazione implica che x 2 = ± l. Pertanto, i due punti critici del problema originale sono (x ~. x 2 ) = (0, l) e (0, - l). Quindi, è evidente che questi due punti sono rispettivamente il massimo e il minimo assoluto .
A
Se : l :he gi1te :il
p p
Le matrici e le operazioni con le matrici
u
na matrice è una tabella di numeri. Per esempio,
A~ [H]
è una matrice 3 x 2 (dove 3 x 2 si legge "3 per 2") perché è una tabella di numeri con tre righe e due colonne. Le matrici sono indicate in questo libro con lettere maiuscole in grassetto. I valori nella tabella sono detti gli elementi della matrice. Per esempio, B= [
-~
o
2.4
-l
G11
A=
[
G12
...
Gin
.~.~~..... ~~.~.....·.·.: .... ~~:: Gm)
Gm2
···
kA
l
3[
V3, -4,
[3 l ~ ò - 2] 3 = 15 o _L
-n
Per sommare due matrici A e B, si sommano semplicemente gli elementi corrispondenti, per cui
A+B=
llau+bull
Per esempio,
= llaiJ II
[~ ~] + [~ ~] = [~ ~]
Gmn
è una matrice m x n, dove a 1 l> ... , a11111 sono gli elementi della matrice; Il aiJ Il è la notazione in forma compatta per indicare la matrice il cui elemento appartenente alla riga i e alla colonna} è aiJ per i = l, 2, ... , m ej =l , 2, ... ,n.
= ll kaiJII
Per esempio,
V3J 15
è una matrice 2 x 4 i cui elementi sono l, 2.4, O, 2, - l e 15. In termini più generali,
Le matrici A e B sono dette uguali (A = B) se e solo se tutti gli elementi corrispondenti sono uguali (aiJ = biJ per ogni i ej). L' operazione di moltiplicazione di una matrice per uno scalare (per scalare si intende un numero che verrà qui indicato con k) è eseguita moltiplicando ogni elemento della matrice per k, per cui
Analogamente, la sottrazione è così definita:
A - B= A+ ( - l )B per cui
A-B=I Iau - bu ll OPERAZIONI CON LE MATRICI Poiché le matrici non hanno un valore numerico, esse non possono essere sommate, moltiplicate ecc., .come se fossero dei singoli numeri. Tuttavia, a volte può essere utile eseguire certe manipolazioni su tabelle di numeri. Pertanto, sono state sviluppate delle regole per eseguire operazioni con le matrici che sono analoghe alle operazioni aritmetiche. Per descriverle, consideriamo due matrici A = Il aiJ Il e B = Il biJ Il che hanno lo stesso numero di righe e lo stesso numero di colonne.
Per esempio,
[~
~] - [ ~ ~]
= [ -~ ; ]
Si noti che, con l'eccezione della moltiplicazione per uno scalare, tutte le operazioni precedenti sono definite solo quando le due matrici coinvolte hanno la stessa dimensione. Tutte queste operazioni sono immediate perché si riducono all ' esecuzione delle stesse operazioni aritmetiche tra elementi cmTispondenti nelle matrici.
586
APPENDICE 3
LE MATRICI E LE OPERAZIONI CON LE MATRICI
Esiste un'ulteriore operazione elementare: la moltiplicazione di matrici. Per calcolare l'elemento che si trova nella riga i e nella colonna j della matrice risultante dalla moltiplicazione della matrice A per la matrice B, è necessario moltiplicare ogni elemento della riga i di A per il corrispondente elemento della colonna j di B e poi sommare questi prodotti. Per fare questa moltiplicazione elemento-per-elemento, bisogna imporre la seguente condizione sulle dimensioni di A e di B: La moltiplicazione di matrici AB è definita se e solo se il numero di colonne di A è uguale al numero di righe di B.
Quindi, se A è una matrice m x n e B è una matrice n x s, allora il loro prodotto è
AB =
Il
t a;kb~
1(3)+ 2(2) 1(1) +2 (5) ] 4(3) + 0(2) 4(1) + 0(5) [ 2(3) + 3(2) 2(1) + 3(5)
~]
7 11] 12 4 [ 12 17
=
Ax= b dove
A~
[l
- l
5
5
4
-6
D'altra parte, se si cerca di moltiplicare queste matrici nell' ordine inverso, il prodotto risultante
nx~ r~il b ~ [m
La moltiplicazione di matrici è stata introdotta per eseguire questo tipo di moltiplicazione. Si noti che la divisione di matrici non è definita. Sebbene le operazioni con le matrici che sono state introdotte fin qui non godono di alcune proprietà delle operazioni aritmetiche, esse soddisfano le seguenti proprietà
Il
e questo prodotto è una matrice m x s. Se invece A è una matrice m x n e B è una matrice r x s, con n -1- r, allora AB non è definita. Il seguente esempio mostra la moltiplicazione di due matrici.
, [~ ~][:
Questo sistema può essere scritto in forma matriciale nel seguente modo:
A + B = B+A (A+ B) + C = A + (B + C) A(B + C) = AB + AC A(BC) = (AB)C quando le relative dimensioni di queste matrici sono tali che le operazioni indicate risultino defmite. Un altro tipo di operazione sulle matrici, che non ha un'analoga operazione aritmetica, è l'operazione di calcolo della trasposta . Questa operazione consiste semplicemente nello scambiare le righe con le colonne della matrice. Questo spesso è utile per eseguire l' operazione di moltiplicazione nel modo desiderato. Quindi, per ogni matrice A = Il a iJ Il, la sua trasposta Ar è AT =
iiaJiii
Per esempio, se
[; ;l u~l
h[! ~l
non è definito . Nel caso in cui entrambi i prodotti AB e BA siano definiti, in generale si ha che
allora AT =
[~
l 3
~]
AB -1- BA Quindi, la moltiplicazione di matrici deve essere vista come una particolare operazione le cui proprietà sono piuttosto diverse da quelle della moltiplicazione aritmetica. Per capire perché è stata adottata questa particolare defmizione, si consideri il seguente sistema di equazioni:
X! 3xi
+ 5X3 +
20 + 5x2 + 4x3 + 5x4 = 30 + x 2 - 6x3 + 2x4 = 20
2x1 -
X2
X4
=
PARTICOLARI TIPI DI MATRICI In aritmetica, O e l giocano un ruolo speciale. Esistono anche matrici che giocano un ruolo analogo nella teoria delle matrici. In particolare, la matrice che è l'analogo di l è la matrice identità I, che è una matrice quadrata (cioè il numero di righe uguale al numero di colonne) i cui elementi sono tutti nulli tranne quelli lungo la diagonale principale che sono uguali a l .
APPENDICE 3
el
allora
Quindi, l
o
lO
I=
o o l o
o o
O
o
+ A12B2 ] A21b1 + A 22 B 2
AB = [ a11b1
o o o
VETTORI
Il numero di righe o di colonne di I può essere qualunque. L'analogia tra I e l segue dal fatto che per una qualsiasi matrice A,
Un vettore è una particolare matrice costituita da una sola riga o da una sola colonna
[x,, X2,
X=
IA = A = AI
li-
n-
e-
A+O = A
OA =O = AO
m
x=
A-A=O
e
dove la dimensione di O in ogni caso è tale che l'operazione coinvolta risulti definita. In certe occasioni, è utile suddividere la matrice in varie matrici più piccole, dette sottomatrici. Per esempio, un possibile modo per suddividere una matrice 3 x 4 è il seguente
ra,, l
a12 a22
a32
a13 a23 a33
a"]
A12] A22
dove
10
"la
di ta l l
o-
[
Pertanto, per ogni matrice A,
tiliadi
A12 = [a12,
al3,
a14]
A22 = [ a22 a32
a23
a24] a34
a33
A21 = [ a21] a31
sono tutte sottomatrici di A. Per queste matrici suddivise, anziché eseguire le operazioni elemento per elemento, è possibile eseguirle in termini di sottomatrici, qualora la suddivisione sia tale che le operazioni risultano definite. Per esempio, se B è una matrice 4 x l così suddivisa
B~ [~ij ~ [!:]
XJ X2 .
X=
j
;n
è un vettore colonna . (I vettori sono indicati con delle lettere minuscole in grassetto.) Questi vettori a volte sono anche detti vettori n-dimensionali per indicare che essi hanno n elementi. Per esempio,
[.~o.... ~o........:. ·:· · ·o~j
1a
.. . , Xn]
è un vettore riga, e
dove la dimensione di I è data dal numero di righe o dal numero di colonne della matrice A in modo che l'operazione di moltiplicazione risulti definita. Analogamente, la matrice che è l'analogo di O è la matrice nulla O, che è la matrice di dimensione qualsiasi i cui elementi sono tutti O. Quindi,
o= l li
587
LE MATRICI E LE OPERAZIONI CON LE MATRICI
[l, 4, - 2, ~ , 7]
è un vettore 5-dimensionale. Un vettore nullo O è o un vettore riga o un vettore colonna i cui elementi sono tutti O, cioè
O~
[0, O, ... ,O[
oppme
O~ m
Sebbene sia usato lo stesso simbolo Oper i due tipi di vettori, così come per la matrice nulla, normalmente il contesto permette di stabilire con quale tipo si sta lavorando. Una ragione per cui i vettori giocano un ruolo importante nella teoria delle matrici è che una qualsiasi matrice m x n può essere suddivisa in m vettori riga o in n vettori colonna, e quindi si possono analizzare le proprietà importanti delle matrici in termini di questi vettori. Si consideri un insieme di n-vettori xl> x2 , ... , X 111 dello stesso tipo (cioè, sono tutti vettori riga o tutti vettori colonna).
Definizione: un insieme di vettori xl> x 2 , ... , X 111 è detto linearmente dipendente se esistono m nwneri cl> c 2 , ... , C111 non tutti nulli tali che C tXI
+ C2X2 + ... + C
117 Xm
=0
Altrimenti l' insieme di vettori è detto linearmente indipendente. Per esempio, se m = 3 e X1
= [1 , l, l]
X2
= [0, l , l]
x 3 = [2, 5, 5]
588
APPENDICE 3
LE MATRICI E LE OPERAZIONI CON LE MATRICI
esistono tre numeri c 1 = 2, c2 = 3 e c 3 = - l, tali che 2x, + 3x2 -
X3
= [2, 2, 2] + [0, 3, 3] - [2, 5, 5]
=[O, O, O] per cui x 1, x2 , x3 sono linearmente dipendenti. Si noti che per mostrare che essi sono lineannente dipendenti si devono determinare tre particolari valori (c" c 2 , c 3) tali che c 1x 1 + c2 x2 + c3 x3 = O, e questo non è sempre facile. Si noti anche che questa equazione implica che x3 = 2x 1 +3x 2 Quindi, x 1, x2 , x3 sono linearmente dipendenti perché uno di essi è combinazione lineare degli altri. Mentre se cambiamo x3 in
x3
lonna di una matrice è il rango dell'insieme dei suoi vettori colmma.
Per esempio, se la matrice A è
A=
l[ l l] O l 2 5
l 5
allora l' esempio precedente di vettori linearmente dipendenti mostra che il rango di riga di A è 2. Anche il rango di colonna di A è 2. Infatti, i primi due vettori colonna sono linearmente indipendenti mentre il secondo vettore colonna meno il terzo è uguale a O. Il fatto che A abbia lo stesso rango di riga e rango di colonna non è una coincidenza, come afferma il seguente teorema generale.
= [2, 5, 6],
allora x" x2. x3 sono linearmente indipendenti perché è impossibile esprimere uno di questi vettori (per esempio x3 ) come combinazione lineare degli altri due. Definizione: il rango di un insieme di vettori è il più grande numero di vettori linearmente indipendenti che si possono scegliere nell'insieme.
Teorema A3.2: il rango di riga e il rango di colonna di una matrice sono uguali.
Quindi, è sufficiente parlare di rango di una matrice. L'ultimo concetto è l'inversa di una matrice. Per ogni numero k =/= O, esiste sempre il reciproco (o inverso) k - 1 = 1/k tale che kk- 1 = l = k - 1k
Riprendendo l'esempio precedente, il rango dell 'insieme dei tre vettori x" x2 , x 3 è 2 (ogni coppia di vettori è linearmente indipendente), ma è diventato 3 dopo aver cambiato x3 . Definizione: una base per un insieme di vettori è un sottoinsieme di vettori linearmente indipendenti tali che ogni altro vettore dell'insieme può essere espresso come una loro combinazione lineare (cioè, ogni vettore dell'insieme è uguale alla somma di multipli dei vettori del sottoinsieme).
Nell'esempio precedente, ogni coppia dei vettori (per esempio, x 1 e x2) costituiva una base per {x" x2 , x3 } prima che x 3 fosse cambiato. Dopo aver cambiato x 3 , la base coincide con l' insieme dei tre vettori. Il seguente teorema mette in relazione le ultime due definizioni. Teorema A3.1: un sottoinsieme di r vettori linearmente indipendenti estratto da un insieme di vettori è una base se e solo se l'insieme ha rango r.
ALCUNE PROPRIETÀ DELLE MATRICI Dati i risultati precedenti relativi ai vettori, è ora possibile presentare alcuni importanti concetti relativi alle matrici. Definizione: il rango di riga di una matrice è il rango dell'insieme dei suoi vettori riga. Il rango di co-
Esiste un concetto analogo valido nella teoria delle matrici? In altre parole, data una matrice A non nulla, esiste una matrice A _ , tale che
AA- 1 = I = A- 1A? Se A non è una matrice quadrata (cioè, se il numero di righe e il numero di colonne di A sono diversi), la risposta è no, perché queste matrici prodotto avrebbero necessariamente un numero di righe diverso per poter definire la moltiplicaziOne (e quindi l'uguaglianza non avrebbe senso). Tuttavia, se A è quadrata, allora la risposta è sì in certe circostanze, come è specificato dalla seguente definizione e dal Teorema A3 .3. Definizione: una matrice è detta non singolare se il suo rango è uguale sia al numero di righe sia al numero di colonne. Altrimenti è detta singolare.
Quindi, solo le matrici quadrate possono essere non singolari. Un metodo utile per testare la singolarità è fornita dal fatto che una matrice quadrata è non singolare se e solo se il suo determinante è diverso da zero. Teorema A3.3: (a) se A è non singolare, allora esiste un 'unica matrice non singolare A - I, detta inversa di A, tale che AA _ ,=I= A - 'A. (b) Se A è non singolare e B è una matrice per la quale AB = I oppure BA = I, allora B = A - l. (c) Solo le matrici non singolari ammettono inversa.
APPENDICE 3
Per illustrare il concetto di matrice inversa, si consideri la seguente matrice
A=[5l -4] -1 Si noti che A è non singolare perché il suo determinante, 5( -l) - l( -4) = - l , è diverso da zero . Pertanto, A ammette inversa, che risulta essere :n-
go ;o:olo ci-
~l
;o)
TI -
ste
nsta lala !n-
erm-
intita ;;o-
A- 1= [
~
-4] -5
589
LE MATRICI E LE OPERAZIONI CON LE MATRICI
Infatti,
AA
- l
= [
5l --4]1 [ll -4] [~ ~] - 5
e
A A= [ ll -4] [5l -4] - 5 - 1 [~ - l
n
Risposte parziali ai problemi proposti
Capitolo 3 3.1-1. (a)
x2
2
o
2
3
4
5
6
X]
3.4-4. Lo Stabilimento l spedisce 200 unità al Cliente 2 e 200 unità al Cliente 3. Lo Stabilimento 2 spedisce 300 unità al Cliente l e 200 unità al Cliente 3. 3.6-1. (c, e) Uso della risorsa per unità di ogni attività l
Risorsa
Risorsa disponibile
Totale
Attività l
Attività 2
1 2 3
2 3 2
1 3 4
10 20 20
Contributo per unità
20 3.333
30 3.333
$ 166.67
< < :::;
Capitolo 4 4.1-4. (a) I vertici ammissibili sono (0, 0), (0, 1), Ct), 1), 4.3-1. (x 1, x2, x3)
= (0, l O, 6.666); Z = 70.
4.6-1. (a, c) (x 1, x 2 ) = (2, l); Z = 7. 4.6-2. (a, c, e) (x1 , x2, x3) 4.6-9. (a, c)
=C-h f, O); Z = 7.
Cx1, x2)= (- -},
Jf); Z =
°.
8 7
c-t,+), (1, +)e (l , 0).
10 20 20
592
RISPOSTE PARZIALI Al PROBLEMI PROPOSTI
Capitolo 5 5.1-1. (a) (x 1, x 2 ) = (2, 2) è soluzione ottima. Altri vertici ammissibili sono (0, 0), (3, 0), e (0, 3). 5.2-2. (x 1, xz, x3, x4, x 5 ) = (0, 5, O,
-h O); Z =
50 è soluzione ottima.
5.3-1. (a) Il termine noto è Z = 8, x 2 = 14, x6 = 5, x 3 = Il. (b)x1 =O, 2xl - 2xz + 3x3 = S,x1 +xz -x3 = 3.
Capitolo6 6.3-1. (c) Soluzioni di base Complementari Problema primale
Problema duale Z= W
Soluzione di base
Ammissibile?
Ammissibile?
Soluzione di base
(0, O, 20, l O)
Sì
o
No
(4, O, O, 6)
Sì
24
No
( l+ , o,o, - 5f)
(0, 5, l O, O)
Sì
40
No
(0, 4, - 2, O)
Sì e ottima
45
Sì e ottima
No No
60 80
Sì Sì
(2+, 3{ ,o, o) (l O, O, - 30, O) (0, l O, O, - l O)
(0, O, - 6, - 8)
(+, 3+, o, o) (0, 6, O, 4) (4, O, 14, O)
6;6-1. (d) Non è soluzione ottima, poiché 2y 1 + 3y2 2: 3 non è verificata da y7 =t, 5. Y *2 -- .l.. (f) Non è soluzione ottima, poiché 3y 1 + 2yz
2: 2 non è verificata da Y7 = t, Yi =
f.
6.7-1. Nuove Soluzioni di base
Parte
(Xl, Xz, X3, X4,
(0, (0, (0, (0, (0, (0, (0, (0, (0,
(a) (b) (c) (d) (e) (f)
(g) (h) (l)
6. 7-2. - l
30, O, O, 20, O, O, l O, O, O, 20, O, O, 20, O, O, l O, O, O, 20, O, O, 20, O, O, 20, O, O,
Xs)
- 30) - l O) 60) l O) l O) 40) l O) l O, X6 = - l O) O)
'
Ammissibile?
Ottima?
No No Sì Sì Sì Sì Sì No Sì
No No Sì Sì Sì No Sì No Sì
~~ ~~
o : : ; e : : ; ...!f
Capitolo 7 7.2-4. (a) x 11 = 3, x 12 = 2, x 22 = l , x 23 = l, x 33 = l , x 34 = 2; tre iterazioni per ottenere la soluzione ottima. (b, c) x1 1 = 3, x12 = O, X14 = 2, X23 = 2, X32 = 3; già soluzione ottima.
7.2-6. Sia xu la spedizione dallo stabilimento i verso il centro di distribuzione}. Allora x13 = 2,x14 = lO,x22 = 9,x23 = 8,x31 = lO ,x32 = l ; costo= $20200.
593
RISPOSTE PARZIALI Al PROBLEMI PROPOSTI
Capitolo 8 0),
8.3-2. (a) O __... A __... B __... D __... T oppure O __... A __... B __... E __... D __... T, con lunghezza = 16. 8.4-1. (a) {(0, A); (A , B); (B, C); (B, E) ; (E, D); (D, 1)}, con lunghezza = 18. 8.5-1. Arco
(6, 7)
5
Flusso
8.8-2. (a) Cammino critico: Inizio __... A __... C Durata totale = 12 settimane (b) Nuovo piano
->
->
Fine
Attività
Durata
Costo
A B
3 settimane 3 settimane 3 settimane 2 settimane 2 settimane
$54,000 $65,000 $68,666 $41,500 $80,000
c D E
-)
E
7834 risparmiati
Capitolo 9 9.1-2. (a) Minimizzare Z = 4.5Xe111 + Soggetto a ...L
Xem Xsm
7.8Xec
+ 3.6Xed + 2.9XeJ. +
4.9Xs111
+ 7.2Xsc + 4.3Xsd + 3.lxst,
+ Xec + Xed + Xet = 2 + Xse + Xsd + Xst = 2 Xem +xsm Xec + x sc Xed - Xsd Xet - Xst
= = = =
l l l l
e con le xiJ variabili binarie. 9.3-4. (b, d) (lungo, medio, corto) = (14, O, 16), con un profitto di 95,6 milioni di dollari .
9.4-4 . (a ) s·Iaxu.. --
{l
se l'arco j
-4
j è contenuto nel percorso minimo
O altrimenti
Alternative mutualmente esclusive: Per gli archi nelle stesse colonne, solamente un arco è contenuto nel percorso minimo. Decisioni possibili: il percorso minimo esce dal nodo i solo se entra nel nodo i. 9.5-1. (a) (x 1, x2 ) = (2, 3) è ottima. 9.6-1. (xl , x2, X3,
X4 ,
xs ) = (0, O, l , l , 1), con Z = 6.
9.6-4. (b) Task Risorsa assegnata
ere 9. 7-1. (a, b) (xl , x2) = (2, l) è ottima.
ora
Capitolo 10 10.4-1. La soluzione approssimata = 1.0125. 10.5-2. La soluzione esatta è (x 1• x2) = (2, -2).
2
3
4
5
3
2
4
5
594
RISPOSTE PARZIALI Al PROBLEMI PROPOSTI
10.6-5. (a) (x 1, x 2 ) = (l - 3- 1/ 2, 3 - I/2). 10.7-2. (a) (x 1, x2 ) = (2, O) è soluzione ottima. (b) Minimizzare Z = z 1 + z2,
Soggetto a
+
+
u1- y 1 z1 2x2+ u1 - y2 +z2 x 1 + x2 +v, x, ;:::: O, x2 ;:::: O, u, ;:::: O, Y1 ;:::: O, 2x 1
= 8
= 4 = 2 Y2 ;:::: O,
v, ;:::: O, z, ;:::: O, z2 ;:::: O.
Z = 3x ll - 3x,2 - 3x 12 - 15x l3 + 4x2 1 - 4x23,
10.8-2. (b) Massirnizzare
Soggetto a x 11 + x12 + X13 + 3x21 + 3x22 + 3x23 :::; 8 5x 11 + 5x 12 + 5xl3 + 2x2 1 + 2x22 + 2x23 :::; 14
e
O :Sxu:::; l ,
peri = 1, 2, 3;} = 1, 2,3 .
10.9-4. (a) (x, , x2)
= (
+,~) .
10.9-5. (a) P (x; r ) = - 2x, - (x2 - 3)2 - r ( (b)
(x 1, x2 )
= [3
r)I /2
+ (2
( r )I /3]
,3+ 2
.
l-
3
x
x,-
l-
+ 2
3
) ·
-
Capitolo 11 11.2-1. La migliore soluzione presenta i collegamenti AC, BC, CD, e DE. 11.4-2. (a) Per il primo figlio , le scelte per i primi collegamenti sono 1-2, 1-8, 1-5 e 1-4, così, in base ai valori random 0,09656 e 0.96657 verrà scelto il collegamento 1-2 e non si avrà alcuna mutazione. Le possibilità per il cecondo collegamento sono 2-3, 2-8 e 2-4, e così via. Una mutazione si avrà con il quinto collegamento. Il primo figlio clompleto sarà 1-2-8-5-6-4-7-3-1 .
Capitolo 12 12.2-1. (a)
Stato
Alternativa Vendere l O 000 Costruire computer Vendita dei diritti
Vendere 100000
o
54
15
15
(c) Sia p = probabi lità a priori di vendere 10000 computer. Dovrebbero essere costruiti quando p :::; 0.722, e venduti quando p > 0.722 . 12.2-4. Ordinate 25 . 12.3-1. (a) EVPI = Payoff atteso (con informazione perfetta) - Payoff atteso (senza sperirnentazione) = 34.5 - 27 = 7.5 milioni di dollari.
595
RISPOSTE PARZIALI Al PROBLEMI PROPOSTI
(d)
p (Scoperta l Stato) Scoperta
Dati Stato
Probabilità a posteriori
Vendere 10000
Vendere 100000
0.5 0.5
0.666666667 0.333333333
0.333333333 0.666666667
Vendere l O000 Vendere l 00 000
P (Stato l Scoperta)
·Probabilità a posteriori Scoperta
Stato
P Scoperta
Vendere 10000
Vendere 100000
0.5 0.5
0.666666667 0.333333333
0.333333333 0.666666667
Vendere l O000 Vendere l 00 000
l
12.3-3. (b) EVPI = Payoff atteso (con informazione perfetta) - Payoff atteso (senza sperimentazione) = 53 - 35 = $18. (c) Betsy dovrebbe scegliere di spendere fino a $18 per ottenere più informazioni. 12.3-4. (a)
Stato
Alternativa Basso rischio
Medio rischio
Alto rischio
- 15 000
10000
20000
o
o
o
0.2
0.5
0.3
Estendere il credito Non estendere il credito Probabilità a priori
(c) EVPI = Payoff atteso (con informazione perfetta) - Payoff atteso (senza sperimentazione) = 11 000 - 8000 = $3000. Questo indica che non è necessaria la consulenza dell' organizzazione.
-4, si
t
·, e 'lrà
12.4-1. La strategia ottimale è di non fare una ricerca di mercato e costruire computer. 12.5-2. (a) Scegliere di non fare l'assicurazione (il payoff atteso è $249,840). (b) u (assicurazione) = 499.82, u (no assicurazione) = 499.8. La strategia ottimale è di stipulare l'assicurazione.
Capitolo 13 13.2-1. Sorgente degli arrivi: popolazione con i capelli; clienti: clienti che devono tagliarsi i capelli; e così via per la coda, la disciplina della coda e il meccanismo di servizio. 13.2-2. (b) Lq = 0.375 . (d) W - Wq = 24.375 minuti.
Ii ti
13.5-5. (b) Po
=
6
(c) L =
~ , Pn = ( ~) ( ~ 3
r
l
l
s' Lq =S' w= 25' Wq = 50
1e-
13.6-1. (a) P 0
+ P 1 + P2 + P 3 + P4 =
0.96875 oppure 97% del tempo.
13.6-8. (a) 0.429. 13.7-1. (a) Wq (esponenziale) = 2Wq (uniforme)= l
(b) Wq (nuovo)=
~
~
Wq (Erlang).
Wq (vecchio) e Lq (nuovo) = Lq (vecchio) per tutte le distribuzioni.
596
RISPOSTE PARZIALI Al PROBlEMI PROPOSTI
13.7-4. (a, b) Secondo l'attuale politica un aereo perde l giorno di tempo di volo mentre secondo la politica proposta ne perde 3.25 . Secondo l'attuale politica l aereo al giorno perde tempo di volo invece di 0.8125 aerei . 13.8-1. (a) Questo sistema è un esempio di sistema di attesa con priorità senza diritto di prelazione. Wq per i passeggeri di prima classe 0.033 (c) Wq per 1· passeggen· m · c lasse economtca · = O.083 = 0.4. 13.8-2. (a) W =
l
2
(b) W1 = 0.20, Wz = 0.35, W3 = 1.10. (c) W 1 = 0.125, W2 = 0.3125 , W3 = 1.250.
Indice analitico
tre
di
A
1l
albero, 284 - delle soluzioni (Branch & Bound), 363 - ricoprente (spanning tree), 284 - ricoprente ammissibile, 311 algoritmi - a punti interni, 123 - basati sul gradiente, 437 - del cammino aumentante, 296 - di approssimazione sequenziale, 437 - di branch-and-bound, 362 - di Frank-Wolfe, 437 - di Karmarkar, 123 - di tipo esponenziale, 125 - di tipo polinomiale, 125 - euristici, 361 - genetici, 4 79 - sequenziali nonvincolati, 437 - SUMT, 441 AMPL, 69 analisi - marginale dei costi, 325 - postottimale, 14, 114 arco - non orientato, 282 - orientato, 282
B balking, 54 7 BFS, 83 , 143 - alberi ricoprenti ammissibili, 311 - degenere, 143 branch-and-cut, 384
c cammino, 283 - aumentante, 296 - critico, 321 capacità - dell'arco, 285 - residua del cammino aumentante, 296
- residue, 296 celle di dati, 61 - donatrici, 257 - riceventi, 257 charge, 348 ciclo, 284 coda, 522 coefficiente - di utilizzazione, 526 - tecnologico, 118 colonna pivot, 90 combinazione convessa, 95 complementarità, 177 - lineare, 41 O condizione - di complementarità, 171 , 426 - di Karush-Kuhn-Tucker (KKT), 421 - di regin1e stazionario, 526 - transitoria, 526 connessi, 284 copertura minima del vincolo, 384 costo ridotto, 203 CPLEX, 69 Criticai Path Method (CPM), 281,319 crashing - di un 'attività, 323 - di un progetto, 323 criterio - di massima verosimiglianza, 494 - maxrnin del payoff, 494 curva prezzo-domanda, 397
D decisioni - alternative, 492 - - mutuamente esclusive, 338 - contingenti, 338 - senza sperimentazione, 492-493, 495 destinazione fittizia, 242 differenziazione, 461 disciplina della coda, 522-523 distribuzione di Erlang, 553 dualità debole, 170
E elasticità del prezzo, 397 elemento pivot, 91 eliminazione Gaussiana, 88 equazione di equilibrio, 538
F Fathoming, 364, 370 Fixed charge, 348 flusso netto, 288 forma - aumentata, 82 - canonica, 142 formula - di Little, 526 - di Pollaczek-Khintchine, 552 frontiera efficiente, 400 funzione - barriera, 437 - concava,403 , 577 - convessa, 403 , 577 - di penalità, 437 - di utilità esponenziale, 511 - lagrangiana, 583 - obiettivo, l O - separabile, 407 - strettamente concava, 577 - strettamente convessa, 577
G GAMS, 69 gradiente, 416
insieme convesso, 141 ,404 intensificazione, 461 intervallo - di ammissibilità, 120, 197-198 - di ottimalità, 120, 202 inversa di una matrice, 588 inversione di una sottosequenza, 458 ipotesi
598
-
INDICE ANALITICO
di additività, 36 dicertezza, 39 di divisibilità, 38 di proporzionalità, 33
L LINDO, 69 Vettori - linearmente dipendenti, 587 - indipendenti, 587 LINGO, 69 linguaggio di modellazione, 68 lista tabu, 461
M massimo - globale, 582 - locale, 582 matrice, 588 - hessiana, 420 - identità I, 586 - nulla O, 587 meccanismo di servizio, 522 metaeuristica, 14, 361 , 453 metodi quasi-Newton, 420 metodo - a barriera, 123 - dei moltiplicatori di Lagrange, 583 - del Big M, 98 - del gradiente, 415 - delle due fasi, l 06 - del simplesso, 2, 23 , 76 - - modificato, 426 - - per problemi di trasporto, 248 - - rivisitato, 122, 134, 145, 150 - - rivisto, 145 - - su rete, 302, 309 - di approssimazione di Russell, 253 - di Vogel, 252 - di branch-and-cut, 379 - di eliminazione di Gauss-Jordan, 88 - di Newton, 413, 414, 420 - duale del simplesso, 115, 172 - euristico, 453 - primate-duale, 115 - SOB , 182 - ungherese, 271 , 274 minimizzazione sequenziale nonvincolata, 437 minimo albero ricoprente, 289, 291 mm1m0 - globale, 582 - locale, 582 moltiplicatori Lagrangiani, 422 mosse tabu, 461 MPL, 69
N nodo, 282 - decisione, 503 - destinazione, 236 - di trasferimento, 285 - domanda, 285 - evento, 503 - sorgente, 236
p parametri sensibili, 118 payoff, 493 PERT (Program Evaluation and Review), 319 piani di taglio, 379, 383 preprocessamento automatico, 379 prezzi ombra, 115-116, 169 priorità - con diritto di prelazione, 559 - senza diritto di prelazione, 559 probabilità a posteriori , 497 problema - artificiale, 97 - del commesso viaggiatore, 457 - del massimo flusso, 281 , 294 - del minimo albero ricoprente (spanning tree), 281 - di assegnamento, 234, 262, 306 - di cammino minimo, 281 , 308 - di complementarità, 409 - di flusso a costo minimo, 301 - di massimo flusso , 308 - di progettazione di reti, 294 - di programmazione convessa, 404 - di Set Covering, 356-357 - di set partitioning, 357 - di trasporto, 234, 306 - duale, 165 - primate, 165 procedure - di ricerca locale, 454 - euristiche, 14 . processo di arrivi di Poisson, 523 , 534 programmazione - binaria, 337 - convessa, 407 ·- frazionaria, 409 - geometrica, 408 - lineare - - frazionaria, 409 - - intera, 336 - - intera mista, 336 - - parametrica, 121 , 213 - non convessa, 408 - parametrica, 121 - quadratica, 407 - separabile, 407
proprietà - di complementarità, 179 - di equivalenza, 564 punti critici, 5 82 punto - di crash, 324 - di transizione, 496 - normale, 324
R rango di una matrice, 588 - di colonna, 588 - di riga, 588 rappresentazione binaria, 349 regione ammissibile, 26, 30 regola del nord-ovest, 251 rete - AOA, 321 - AON, 321 - connessa, 284 - delle attività, 320 - non orientata, 283 - orientata, 283 - residua, 296 riga pivot, 91 rilassamento, 363 - Lagrangiano, 3 70 - lineare, 358 Risolutore in Excel, 61
s sensitività, 118 Simulated Annealing , 4 71 singolare, 588 sistema a perdita, 549 soluzione - ammissibile, 30 - aumentata, 82 - complementare, 171 - - ottima, ~ 71 - di base, 82-83, 142 - - ammissibile, 82 - - degenere, 94 - incombente, 364 - non ammissibile, 30 - ottima, 31 - quasi ottima, 371 soluzioni di base complementari, 177 sorgente dei clienti, 522 - fittizia, 245-246 sottomatrici, 587 spigolo, 77 stato, 493
T tableau, 89 Tabu Search, 460
INDICE ANALITICO
taglio, 299, 383 tempo - di interarrivo, 523, 532 - di servizio, 523 teorema di Bayes, 499 teoria - della dualità, 118 - delle decisioni, 491 test - del minimo rapporto, 87 - di ottimalità, 78
u utilità monetaria marginale - crescente, 507 - decrescente, 507
599
v
- slack, 81 - surplus, l 02 - uscente, 87 vetiici, 77, 135, 282 - adiacenti, 77 , 83 , 137 - ammissibili, 77, 139 - non ammissibili, 77 vettore, 587 vincoli, l O - attivi, 117 - di conservazione del flusso, 54 - di tipo "either-or", 345
valore atteso - dell ' informazione perfetta, 502 - della sperimentazione, 502 - del taglio, 299 - monetario atteso, 495 variabile - artificiale, 97, III - binarie, 337 - complementari, 426 - decisionali, IO - di base, 83 , 94, 142 - di branching, 363 - entrante in base, 86 - indicatrice, 142 - non di base, 83, 142
w Weighted Set Covering, 357 What's Best, 69
\
:-----""--:-"7'"""~ t:2
7
Frederick S. Hillier Gerald J . Lieberman
·\
Rice.rca ~perativa
Frederick S. Hillier è Professar Emeritus of Operations Research presso la Stanford University. Gerald J. Lieberman è stato Professar Emeritus of Operations Research and Statistics presso la Stanford University.
·come lo stesso nome sèmbra suggerire, la Ricerca operativa (Operations Research) è 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. Questo testo, la cui prima ""édizione americana fu pubblicata nel 1967, è giunto' all'ottava édizione e costituisce un riferimento aggiornato sulla materia. Lo scopo degli Autori è introdurre gli studenti ai metodi e ai modelli della Ricerca operativa, mantenendo un elevato standard di chiarezza, organizzando la trattazione tramite numerose illustrazioni e molti esempi utili, e proponendo divertenti esercitazioni. I concetti matematici sono stati mantenuti a un livello relativamente elementare e la maggior parte dei capitoli ·non richiede nozioni matematiche superiori a quelle fornite nella ~cuola secondaria. Sul sito web www.ateneonline.it/hìllier è possibile reperire materiale di supporto al testo.
•
l lllllllllllllllllllllllllllll 85250708245
ls
E
PS I
ISBN 88-386-6242-8
SEGRETARIATO EUROPEO PER LE PUBBUCAZIONI SCIENTIFICHE
.... .... !!
'
t
l
www.mcgraw-hill .it www.ateneonline.it
l
9 788838 662423