Sei sulla pagina 1di 273

RICERCA OPERATIVA

per i corsi di Laurea in Ingegneria BTRR e MMER

Dispense del corso

a cura di Laura Palagi


www.dis.unroma1.it/~ palagi

25 Gennaio 2010

Dimostrazioni non in programma


Lemma 4.1.1 Teorema 5.1.6 Teorema 5.3.3 Teorema Teorema 6.3.9 Teorema 6.3.10 Teorema 6.3.11 teorema 7.4.1 Teorema 7.4.4 Corollario 7.6 Teorema 8.2.1 (Lemma di Farkas) Teorema 10.1.10 Teorema 10.2.1 Teorema 10.4.2 Teorema 13.5.1.

Capitolo 1

Introduzione
La Ricerca Operativa ` e una disciplina relativamente giovane. Il termine Ricerca Operativa ` e stato coniato in ambito militare verso la ne degli anni 30 e deriva dal termine inglese Operational Research, ovvero la ricerca sulle operazioni (militari). La Ricerca Operativa (di seguito indicata con lacronimo RO) si occupa dello sviluppo e dellapplicazione di metodi quantitativi per la soluzione di problemi di decisione che si presentano nella gestione di imprese e organizzazioni. Quando la complessit` a dei sistemi era relativamente contenuta, e la quantit` a di dati disponibili estremamente limitata, il personale esperto era suciente a prendere le decisioni necessarie alla conduzione dellimpresa. La crescente complessit` a dei sistemi aziendali congiuntamente allenorme quantit` a di dati messa a disposizione dallinformatizzazione capillare ha reso indispensabile lutilizzo di strumenti automatici di decisione che attraverso la modellazione matematica permettano la soluzione di problemi di grandi dimensioni. La RO, quindi, ` e caratterizzata dalluso di modelli matematici deniti e risolti al ne di fornire indicazioni ai decisori nellatto della scelta. Non a caso, la RO ` e anche nota come management science, e cio` e la Scienza della Gestione, denizione che ne sintetizza nalit` a e ambizioni.

1.1

Breve storia della Ricerca Operativa

Il termine Ricerca Operativa, si ` e detto, ` e legato alle prime applicazioni della RO per aumentare lecienza di operazioni militari della Seconda Guerra Mondiale. Tuttavia esistono esempi importanti di anticipazione dei metodi della RO in anni pi` u lontani; il pi` u famoso risale a F. Taylor che nel 1885 elabor` o uno studio sui metodi di produzione; prima ancora, nel 1776, G. Monge aveva studiato un problema di trasporti. Tuttavia la nascita della RO ` e legata agli studi che negli anni immediatamente precedenti alla Seconda Guerra Mondiale vennero condotti in Gran Bretagna per risolvere problemi strategici e tattici in operazioni militari. Pi` u in particolare questi studi erano legati alluso eciente di un nuovo strumento di difesa: il radar. Infatti nel
A questo paragrafo sono associate le slide della lezione disponibili http://www.dis.uniroma1.it/~ or/meccanica/slide prima lezione09-10.pdf
0

sul

sito

1937 la Royal Air Force inizi` o degli esperimenti di un sistema di controllo della difesa aerea basato sulluso di una stazione radar situata a Bawdsey Research Station, nella costa est; gi` a dai primi esperimenti si resero conto che era molto dicile gestire ecientemente le informazioni provenienti dal radar. Nel luglio 1938 furono compiuti altri esperimenti con laggiunta di quattro stazioni radar lungo la costa nella speranza che il sistema di controllo migliorasse sia in copertura sia in ecienza; invece non fu cos` ; dai nuovi esperimenti emersero seri problemi: cera la necessit` a di coordinare e correlare le tante informazioni, spesso anche in conitto tra di loro, che venivano ricevute dalle stazioni radar aggiunte. Nellimminenza della Guerra si rese necessario tentare qualche nuovo approccio; perci` o il sovrintendente della Bawdsey Research Station propose di sviluppare un programma di ricerca che riguardasse gli aspetti operativi del sistema e non pi` u solamente quelli prettamente tecnici che erano da considerare soddisfacenti. Il termine Operational Research Ricerca nelle operazioni (militari) fu coniato per descrivere questa nuova branca delle scienze applicate. Fu quindi selezionato un gruppo di scienziati di vari discipline per costituire un OR team; il progetto fu diretto dal comandante in capo della Royal Air Force, Air Chief Marshal Sir Hugh Dowding. Nellestate del 1939 la Gran Bretagna eettu` o lultima esercitazione pre-bellica dove si evidenzi` o un notevole miglioramento nelle operazioni di difesa aerea grazie al contributo del gruppo di scienziati. Nacque quindi una vera e propria sezione che pi` u tardi, nel 1941, prese il nome formale di Operational Research Section. Durante il conitto mondiale furono molteplici e importanti i contributi strategici di questa sezione permettendo di salvare piloti e aerei. Al termine della guerra, alcuni degli scienziati coinvolti nel progetto formarono nuclei di ricercatori per lo sviluppo post bellico e la loro attivit` a si estese a campi diversi da quello militare; in particolare, con lespandersi delle iniziative industriali e con lavvento dei computer che sono uno strumento essenziale per la risoluzione dei problemi, c` e stata unespansione dellutilizzo della RO allinterno di diverse realt` a applicative. Dagli anni 60 in poi le applicazioni della RO hanno avuto diusione crescente, inizialmente nellambito di grandi gruppi industriali e succesivamente, grazie anche alla disponibilit` a di grandi potenze di calcolo a costi contenuti, in quasi ogni settore industriale, nei servizi e nelle amministrazioni pubbliche.

1.2

La Ricerca Operativa oggi

Ai nostri giorni la rilevanza applicativa delle tecniche della RO ` e riconosciuta e apprezzata in ambito industriale. Negli ultimi cinque anni il numero di addetti del settore ` e infatti cresciuto di un fattore 100. Contestualmente, si ` e allargata la richiesta di esperti di RO nelle imprese manifatturiere e di servizi: un laureato, esperto di tecniche della RO pu` o ragionevolmente aspirare, per esempio, a ricoprire incarichi di responsabilit` a nelle industrie manifatturiere, nella assicurazioni, nel marketing, nelle societ` a di consulenza aziendale, nella pianicazione e, sempre di pi` u, nelle telecomunicazioni. Alcuni esempi di problemi possono essere risolti per mezzo delle tecniche della RO sono i seguenti: Finanza e Investimenti; si vuole rispondere a domande del tipo: quanto dobbiamo investire, e come? Dove rimediare i capitali necessari? Quanto ci coster` a? Alcuni esempi sono:

Selezione degli investimenti: si tratta di scegliere, fra un vasto insieme di alternative di investimento, quali attivare e quali no in presenza di vincoli di budget e con lobiettivo di massimizzare i ricavi. Scelta del portafoglio; consiste nel decidere in quali titoli e con quali quote investire i nostri capitali in modo da massimizzare il ricavo atteso, oppure minimizzare il rischio, etc. Determinazione del prezzo di derivati nanziari; si vuole determinare il prezzo di un prodotto derivato nanziario (per esempio di unopzione o di un future) in funzione del tempo e dellandamento del titolo sottostaste. pianicazione della produzione; come assegnare la forza lavoro alle varie attivit` a della nostra impresa? Su quali macchine e per quanto tempo ci conviene eettuare i nostri processi? Si tratta di pianicare i livelli di produzione e/o lutilizzazione di risorse; si hanno spesso problemi di allocazione ottima di risorse cio` e problemi riguardanti la distribuzione di risorse limitate tra alternative concorrenti in modo da minimizzare il costo complessivo o massimizzare il guadagno totale; tali risorse possono essere materie prime, manodopera, tempi di lavoro su macchine, capitali investiti. gestione ottima delle scorte; si tratta di determinare i livelli di produzione e di scorte nella gestione di materiali grezzi, prodotti in lavorazione etc.; quando e quanto conviene riordinare materiali o beni in modo da ottenere il miglior compromesso fra costi di riordino e di produzione/acquisto e costi di immagazzinamento. Conviene, cio` e, ordinare o produrre pi` u spesso minori quantit` a per far fronte alla domanda corrente, oppure ordinare/produrre maggiori quantit` a e lasciarle in magazzino per soddisfare anche la domanda futura? localizzazione e dimensionamento di impianti; Quanti depositi di unimpresa di distribuzione alimentare costruire e dove localizzarli per servire i negozi a dettaglio in unarea dinteresse? Dove costruire degli ospedali (o scuole o stazioni dei vigili del fuoco) in modo da ottimizzare il servizio fornito? Dove conviene costruire le stazioni di base di una rete GSM/UMTS per coprire soddisfacentemente territorio e traco, e con che potenza dovranno trasmettere? In senso lato, si tratta di problemi in cui si deve decidere dove istallare impianti di produzione in modo da rifornire in modo ottimale aree distribuite su un territorio. progetto di reti di comunicazione / telecomunicazione; si tratta di denire i collegamenti e dimensionare le capacit` a di una rete stradale, di telecomunicazione, di trasmissione dati, etc., in modo da garantire il traco tra le varie origini e destinazioni e minimizzare il costo complessivo; ad esempio, per instradare le comunicazioni telefoniche e dati fra Roma e Venezia, conviene costruire una nuova linea ad alta velocit` a in bra ottica fra Firenze e Bologna oppure istallare un ponte radio a larga banda? determinazione di ussi ottimi; si devono inviare merci (informazioni, telecomunicazioni, corrente elettrica, etc.) da alcune sorgenti (origini) a un certo numero di destinazioni utilizzando una rete di strade (bre ottiche, doppini telefonici, cavi coassiali, emettitori) in modo da soddisfare le richieste minimizzando i costi di trasporto.

assegnazione di frequenze di trasmissione; quali frequenze (prese da una banda limitata) devo assegnare a una rete di trasmettitori radio-televisivi in modo da minimizzare le interferenze reciproche o massimizzare la copertura del territorio? sequenziamento; quali processo o operazione eettuare prima e quali dopo? Per esempio, come sequenziare i treni sulla rete in modo da evitare conitti sulle tratte e minimizzare i tempi morti, le attese alle stazioni, etc.? project planning; come sequenziare le molteplici attivit` a di un progetto? Quanto durer` a il progetto? Come devono essere gestite le risorse? allocazione ottima di componenti elettronici (VLSI design); come disegnare una piastra madre in modo da minimizzare le lunghezze dei percorsi seguiti dai segnali elettrici? determinazione dei turni del personale; si tratta, ad esempio, di assegnare ai convogli il personale viaggiante sui treni (conducenti, bigliettai, etc.) in modo da minimizzare il numero di viaggi a vuoto (necessari per riportare il personale alla loro sede). Un problema analogo si presenta nellassegnazione di equipaggi (piloti, hostess, stewart) a voli. manutenzione di beni; cio` e il problema di decidere quando e se eettuare la manutenzione di alcuni beni soggetti ad usura, in modo da minimizzare il costo complessivo. istradamento di veicoli; quali percorsi devono seguire i veicoli di una otta di automezzi per, ad esempio, raccogliere limmondizia, o rifornire una rete di negozi, in modo da minimizzare le distanze complessive percorse? studi sulla struttura del DNA; come assegnare sequenze a geni minimizzando la probabilit` a dellerrore sperimentale? Come determinare un albero logenetico massimizzando la verosimiglianza? progettazione di forme ottime; che forma deve avere una macchina in modo da presentare meno resistenza possibile allaria? Che prolo deve evere lala di un aereo in modo da massimizzare la portanza? calcolo delle traiettorie ottime; qual ` e la traiettoria che permette ad un veicolo spaziale di arrivare sulla luna e tornare usando la quantit` a minima di carburante? ricostruzione di immagini; come si possono visualizzare le informazioni fornite, per esempio, da una TAC in modo da renderle pi` u leggibili possibili per il medico? progettazione strutturale ; qual ` e il progetto di un ponte o di un grattacielo che resiste meglio a venti molto forti o alle sollecitazioni derivanti da un terremoto?

yield management ; Letteralmente traducibile come Gestione del ritorno economico. In una azienda caratterizzata da variet` a di servizi e di prezzi, domanda variabile nel tempo, stabilire quanti e quali servizi vendere avendo incertezza sulla domanda futura, allo scopo di massimizzare il protto globale. Si tratta di un problema diuso tra le compagnie di trasporto aereo, ferroviario, marittimo, ma anche per catene alberghiere e di noleggio auto. Questa lista, lungi dallessere esaustiva, serve a mettere in evidenza le potenzialit` a degli strumenti della RO nella risoluzione di problemi applicativi complessi e disparati. In Italia la penetrazione della RO ` e stata piuttosto lenta. La situazione ` e rovesciata negli Stati Uniti e nellEuropa Centro-Settentrionale ove la crescita del settore ` e stata formidabile. Le ragioni del ritardo sono in primo luogo culturali: mancanza di conoscenze approfondite da parte delle aziende, insucente disseminazione dei risultati da parte dellaccademia. Lentamente, questa situazione va modicandosi anche in Italia, e la sensibilit` a delle aziende ` e fortemente cresciuta negli ultimi due-tre anni. In particolare ci si ` e resi conto che linformatizzazione capillare e laccresciuta potenza di calcolo non sono sucienti a risolvere i problemi dellorganizzazione aziendale in modo ottimale. A confermare questo asserto si consideri il seguente, illuminante esempio (dovuto a G. B. Dantzig1 ): si supponga di essere a capo di unazienda che impiega 70 dipendenti e deve assegnare ciascuno di essi a 70 dierenti mansioni; poich e le capacit` a lavorative di ogni singolo dipendente sono diverse, non ` e indierente per lazienda come eettuare lassegnamento. Naturalmente si deve fare in modo che ciascun dipendente sia assegnato ad una sola mansione e che ciascuna mansione sia svolta esattamente da un dipendente. Il problema consiste nel confrontare le 70! possibilit` a che ci sono per selezionare quella migliore nel senso che permetta di ottenere il maggiore utile per lazienda. Le possibilit` a sono un numero molto grande, pi` u grande di 10100 . Ora si supponga di disporre di un calcolatore capace di eettuare un milione di calcoli al secondo e che sia in funzione dal tempo del big bang; avrebbe questo calcolatore oggi nellanno 2000 esaminato tutte le 70! combinazioni possibili ? La risposta ` e no. Supponiamo allora di disporre di un calcolatore che possa eettuare un bilione di assegnamenti per ogni nano secondo; la risposta sarebbe ancora no. Supponiamo allora di riempire la supercie terrestre di calcolatori di questo tipo che lavorano in parallelo; la risposta sarebbe ancora no. Si dovrebbe disporre in verit` a di 1040 terre ciascuna ricoperta di calcolatori di questo tipo, in funzione dal tempo del big bang no a quando il sole si raredder` a. Da questo esempio facile da enunciare si deduce come in certe situazioni sia assolutamente impossibile esaminare tutti i casi possibili per determinare qual ` e il migliore. Per questo, prima dellavvento della RO, lunica possibilit` a era adarsi al buon senso di persone guidate dallesperienza che stabilivano regole ad hoc di base che dovevano essere seguite per risolvere i problemi (ad hoc ground-rule approach). A questo tipo di approccio si contrappone la RO, il cui contributo centrale consiste nellintroduzione del cosiddetto approccio modellistico-ottimizzatorio per la soluzione di un problema di decisione. In questo approccio si organizza lanalisi di un problema reale in due fasi: la rappresentazione del problema attraverso un modello matematico che ne astragga gli
1 G.B. Dantzig - Linear Programming the story about it began: some legends, a little about historical signicance, and comments about where its many mathematical programming extensions may be headed in History of Mathematical programming - a collection of personal reminiscences, J.K. Lenstra, A.H.G. Rinnooy Kan and A. Schrijver eds., NOrth Holland (1991).

aspetti essenziali e che schematizzi le interrelazioni esistenti tra i diversi aspetti del fenomeno che si sta studiando; lo sviluppo di metodi matematici ecienti (algoritmi di soluzione) per determinare una soluzione ottima del problema o una sua buona approssimazione. Naturalmente, per costruire correttamente un modello matematico-ottimizzatorio che rappresenti un particolare fenomeno, si devono individuare i parametri di controllo signicativi e un criterio per la valutazione della qualit` a della soluzione. La determinazione del modello ` e unattivit` a complessa e non completamente formalizzabile, che deve far ricorso da una parte a una conoscenza approfondita delle caratteristiche del problema in esame e dallaltra a strumenti che provengono da diverse branche della matematica. Una volta determinato il modello corretto, la RO si occupa di fornire una procedura esplicita per determinare una soluzione di un problema; tale procedura pu` o essere rappresentata da metodi matematici analitici o, come pi` u spesso accade, da metodi numerici che determinano la soluzione del problema mediante specici algoritmi di calcolo. Da quanto detto si pu` o capire come la RO sia una metodologia tipicamente interdisciplinare, applicabile nei pi` u svariati contesti e come proprio dagli stimoli provenienti da campi anche molto distanti tra di loro tragga una delle principlai ragioni della sua attuale vitalit` a.

1.3

Lapproccio modellistico

Il termine modello ` e di solito usato per indicare una costruzione articiale realizzata per evidenziare propriet` a speciche di oggetti reali. Esistono modelli concreti (come ad esempio i prototipi di aerei o automobili), ma pi` u spesso, come nella Ricerca Operativa, si considerano modelli astratti cio` e modelli matematici che usano il simbolismo dellalgebra per mettere in evidenza le relazioni principali delloggetto che deve essere modellato. I modelli di cui si tratter` a in seguito sono quindi modelli matematici, e sono costituiti da un insieme di relazioni che descrivono in modo semplicato, ma rigoroso, uno o pi` u fenomeni del mondo reale. La nozione di modello matematico per rappresentare il mondo reale non ` e certo nuova: gi` a Pitagora nel IV secolo a.C. tentava di costruire un modello matematico dellUniverso. Linteresse per la modellistica matematica ` e notevolmente cresciuto e attualmente si conda che attraverso modelli matematici sia possibile rappresentare molteplici aspetti del mondo reale e studiarne le propriet` a. Ci` o ha portato ad un enorme sviluppo delle applicazioni della modellistica matematica anche al di fuori delle tradizionali applicazioni alle scienze siche. Si ` e cos` avuta di fatto una vasta utilizzazione di modelli matematici in settori lontani dagli ambiti pi` u tradizionali come, ad esempio, le scienze sociali, la biologia, le scienze ambientali, la psicologia. Come esempi concreti, si pensi agli studi sulla dinamica della popolazione, sulla diusione delle epidemie, sul risanamento ambientale. Questa notevole diusione della modellistica matematica ` e anche dovuta al fatto che levoluzione di un modello matematico pu` o essere rapidamente studiata grazie alluso di moderni calcolatori elettronici. ` evidente come in molti casi le situazioni rappresentate da un modello sono molto complesse E e alcune volte inuenzate da fenomeni di natura aleatoria; per questa ragione, sono state denite diverse classi di modelli matematici: modelli stocastici che considerano grandezze che possono essere inuenzate da fenomeni aleatori e modelli deterministici che considerano grandezze esatte; inoltre a seconda che le interazioni tra le grandezze sono immediate o distribuite nel tempo, si parla di modelli statici e di modelli dinamici. Lapproccio modellistico per risolvere un problema di decisione o, pi` u in generale, limpiego di metodi matematici per la soluzione di problemi applicativi, viene di solito realizzato attraverso diverse fasi. Tali fasi possono essere schematizzate nel seguente modo: Descrizione e Analisi del problema Costruzione del modello Analisi del modello Selezione di buone soluzioni (simulazione e/o ottimizzazione) Validazione del modello Descrizione e Analisi del problema La prima fase consiste nellanalisi della struttura del problema e nellindividuazione dei dati necessari per una descrizione per una corretta denizione del problema. Si tratta cio` e di individuare i parametri di controllo e di individuare i legami logico-funzionali che deniscono il problema e lo/gli obiettivi. Costruzione di un modello matematico Nella fase di costruzione del modello matematico si deve fornire una descrizione formalizzata del problema di decisione facendo uso del linguaggio della matematica. Si dovr` a cercare, quindi,

una corrispondenza tra relazioni del mondo reale (relazioni tecnologiche, leggi siche, vincoli di mercato, etc.) e relazioni matematiche (equazioni, disequazioni, dipendenze logiche, etc.). relazioni del mondo reale relazioni matematiche

La costruzione di un modello richiede valutazioni e scelte non facilmente codicabili in un procedimento standard. In particolare, per la costruzione di modelli soddisfacente ` e necessaria una conoscenza approfondita dellapplicazione dinteresse e dei metodi matematici di soluzione. La conoscenza dellapplicazione assicura che il modello sia soddisfacente e risponda alle domande concrete che lutilizzatore gli porr` a. La conoscenza dei metodi permette la denizione di modelli risolvibili, cio e per i quali ` e possibile (al termine del processo di modellazione) la determinazione di soluzioni di buona qualit` a. ` importante ribadire che un modello ` E e denito per mezzo delle relazioni che lo costituiscono ed ` e quindi necessario che tali relazioni siano il pi` u possibile indipendenti dai dati introdotti nel modello; questo perch e uno stesso modello deve poter essere usato in dierenti occasioni con dati (cio` e costi, disponibilit` a di risorse, limiti tecnologici, etc.) diversi. Lo studio di questo aspetto, come gi` a detto, rientra nella fase di analisi del modello sotto il nome di analisi della stabilit` a del modello rispetto ai dati introdotti. In generale, la costruzione formale di un modello di Programmazione Matematica si pu` o sintetizzare come segue:

1. Associare opportune variabili di decisione alle grandezze reali. Tali variabili costituiscono le incognite del problema. 2. Esprimere quantitativamente i legami esistenti tra le variabili e le limitazioni derivanti da considerazioni di carattere sico, economico, etc. Tali legami e limitazioni deniscono i vincoli. Linsieme dei valori delle variabili per cui i vincoli sono soddisfatti costituisce linsieme ammissibile. 3. Esprimere formalmente lobiettivo che si intende minimizzare o massimizzare.

Analisi del modello matematico Segue lanalisi del modello che prevede la deduzione per via analitica, in riferimento a determinate classi di problemi, di alcune importanti propriet` a; le principali sono: esistenza della soluzione ottima; condizioni di ottimalit` a, cio` e una caratterizzazione analitica della soluzione ottima; stabilit` a delle soluzioni al variare dei dati o di eventuali parametri presenti. Lo studio delle condizioni di ottimalit` a ha sia motivazioni di natura teorica, sia motivazioni di natura algoritmica. Dal punto di vista teorico, una condizione di ottimalit` a pu` o servire a

caratterizzare analiticamente le soluzioni di un problema di ottimo e quindi consentire di svolgere analisi qualitative, anche in assenza di soluzioni numeriche esplicite; un esempio ` e lanalisi della sensibilit` a delle soluzioni di un problema di ottimo rispetto a variazioni parametriche. Selezione di buona soluzione La successiva fase di selezione di buona soluzione corrisponde alla possibilit` a di determinare tra tutte le scelte possibili costituite dalle soluzioni ammissibili, quella ottima o una sua buona approssimazione. I problemi di ottimizzazione che si presentano nella pratica sono di solito cos` complessi che non ` e possibile determinarne una soluzione per via analitica. La complessit` a` e determinata innanzi tutto dal numero di variabili e di vincoli, che deniscono la dimensione del problema; e poi dalla eventuale presenza di funzioni non lineari tra le funzioni che deniscono lobiettivo e/o i vincoli. Se il modello ` e molto semplice pu` o essere possibile risolvere le relazioni e utilizzare i dati a disposizione per determinare una soluzione analitica. La soluzione analitica ` e possibile solo nel caso di poche variabili e di funzioni estremamente semplici, e cio` e solo nei casi che si utilizzano come esempi ed esercizi nei testi e sulla lavagna. Molto spesso, anche se esiste una soluzione analitica ` e estremamente complessa e la sua determinazione richiede molte risorse di calcolo; ad esempio invertire una matrice ` e un banale esempio per il quale esiste una formula analitica, ma che dal punto di vista numerico pu` o per certe istanze non essere aatto banale. Quindi, nella pratica, per determinare una buona soluzione di un problema di ottimizzazione occorre fare ricorso alluso del calcolatore. I due aspetti pi` u importanti e in qualche modo complementari nella ricerca Operativa delluso del calcolatore per la soluzione di un modello matematico sono la simulazione e lottimizzazione. Il processo di simulazione utilizza un modello matematico che consente di visualizzare leetto di alcune decisioni sul sistema in esame senza che queste debbano essere realizzate eettivamente sul processo reale. La simulazione consiste quindi nella valutazione numerica delle funzioni che deniscono il modello per alcuni valori delle variabili di interesse allo scopo di vericare come inuenzino alcune misure di performance delluscita. Molto spesso, i modelli per i quali si utilizza la simulazione includono qualche aspetto di natura stocastica e anche dinamica (di evoluzione nel tempo). La simulazione pu` o essere usata come strumento per lottimizzazione nel senso che colui che prende le decisioni pu` o procedere per tentativi e scegliere la migliore tra varie alternative possibile. Il modello matematico implementato nel simulatore consente di valutare leetto delle sue decisioni sul sistema nel suo complesso. Questo tipo di approccio ` e detto analisi di scenari. Lanalisi di scenari ` e particolarmente utile nel caso di sistemi estremamente complessi e per i quali una rappresentazione analitica di tutti i legami logico-funzionali pu` o non essere possibile. La soluzione determinata tramite lanalisi di scenari possibili non ha per` o alcuna garanzia di essere quella ottima o una sua approssimazione. Luso della simulazione come strumento di ottimizzazione pu` o essere poco signicativo sebbene estremamente essibile; viceversa pu` o avere un ruolo molto signicativo nella successiva fase di validazione del modello in quanto consente di individuare imprecisioni e/o errori nel modello stesso. Non si deve confondere quindi il ruolo di ottimizzazione e simulazione. Dato un modello, il processo di ottimizzazione consiste nella determinazione della soluzione ottima, se esiste, o almeno di una sua buona approssimazione. Nella pratica, per risolvere un problema di ottimizzazione occorre fare ricorso ad un algoritmo iterativo, cio` e ad un programma di calcolo che, a partire da una approssimazione iniziale x0 della soluzione, determina, con una appropriata se-

quenza di operazioni che deniscono una successione di valori {xk }, una nuova approssimazione x . La possibilit` a di realizzazione di algoritmi ` e fortemente legata alla capacit` a di denire condizioni di ottimalit` a che caratterizzano la soluzione ottima di un certo modello. Lanalisi del modello matematico e la denizione di un algoritmo per la sua soluzione sono aspetti fortemente legati tra di loro. Molto spesso software di ottimizzazione e di simulazione sono integrati con software statistico o con fogli elettronici (spreadsheets). La combinazione di simulazione e/o ottimizzazione con la visualizzazione dei risultati ` e una combinazione vincente. La visualizzazione rende luscita del processo di simulazione e/o di ottimizzazione molto pi` u comprensibile e aggiunge spesso maggior credibilit` a al modello, soprattutto nei confronti di un pubblico non tecnico. Luso di fogli elettronici per la costruzione di modelli per luso di simulazione e di ottimizzazione sar` a discusso in un capitolo successivo. Validazione del modello La soluzione numerica ottenuta al passo precedente deve poi essere valutata praticamente. Questa fase di costruzione del modello non deve essere sottovalutata. I motivi di inattendibilit` a di un modello possono essere molti; in particolare la maggior dicolt` a consiste nellottenere dati e/o informazioni validi. Spesso questo ` e legato al diverso linguaggio utilizzato dagli esperti del problema reale e dagli esperti di ottimizzazione. Informazioni essenziali sono spesso trascurate perch e talmente scontate per lesperto del problema da non dover essere raccontate. O viceversa modelli matematici troppo dettagliati possono produrre soluzioni incomprensibili. La validazione del modello pu` o avvenire attraverso una verica sperimentale oppure con metodi di simulazione, allo scopo di ottenere, in questa fase di interazione con lesperto, un modello matematico sempre pi` u attendibile. La denizione di un modello si congura quindi come un processo di rafnamento iterativo, che pu` o essere schematizzato come rappresentato in Figura 1.1.

10

ANALISI DEL PROBLEMA

COSTRUZIONE DEL MODELLO

ANALISI DEL MODELLO

SOLUZIONE NUMERICA

VALIDAZIONE DEL MODELLO

Figura 1.1: Fasi dellapproccio modellistico


Vantaggi dellapproccio modellistico Esistono diverse ragioni per adottare lapproccio modellistico per la soluzione di problemi: si riassumono di seguito le principali. Maggiore comprensione del problema. Il modello ` e una rappresentazione semplicata del problema e spesso la sua costruzione consente di individuare propriet` a strutturali del problema che altrimenti non sarebbero aatto evidenti. Possibilit` a di risolvere matematicamente il problema. Grazie al modello ` e possibile analizzare matematicamente il problema ed ottenere cos` una soluzione che, soprattutto in riferimento a scopi di pianicazione, permette di adottare strategie che da una sola analisi strutturale del problema non apparirebbero evidenti o che a volte potrebbero essere perno controintuitive. Deduzione analitica di importanti propriet` a. Nella fase di analisi del modello ` e possibile dedurre per via analitica alcune importanti propriet` a del problema sulla base dei risultati disponibili per la classe di problemi a cui si fa riferimento.

11

Possibilit` a di simulazioni. Con un modello ` e possibile eettuare esperimenti che spesso non ` e possibile eettuare direttamente nella realt` a. La fase di simulazione ` e un passo fondamentale nella costruzione di un modello che pu` o essere utilizzata per vericare leetto di una decisione, non necessariamente quella ottima, su un prototitpo del sistema e non sul sistema stesso; ad esempio, luso di un modello consente di studiare gli eetti delladozione di una particolare misura economica in un paese senza la necessit` a di sperimentarla direttamente. Il decision maker ha uno strumento che gli consente di valutare leetto di una sua decisione senza essere necessariamente in grado di capire laspetto modellistico del problema. Critiche allapproccio modellistico Le principali critiche allapproccio modellistico possono essere sintetizzate nei seguenti due punti: Impossibilit` a di quanticare soddisfacentemente con opportuni valori numerici alcuni dati richiesti dal modello; questo accade, ad esempio, nel tentativo di quanticare con un costo o con un protto alcuni valori sociali soprattutto in relazione a scopi di pianicazione. La qualit` a delle risposte che un modello produce potrebbero dipendere profondamente dallaccuratezza dei dati introdotti. La qualit` a delle risposte fornite dal modello dipende dallaccuratezza della sua denizione: la fase di validazione e cruciale per valutare la soluzione numerica ottenuta e completare il modello introducendo elementi trascurati in una prima fase.

1.4

Un primo esempio di costruzione di un modello matematico

Come primo esempio di costruzione di un modello matematico analizziamo un semplice problema di pianicazione degli investimenti.

Esempio 1.4.1 Capital Budgeting. Supponiamo di dover investire 1000 sul mercato nanziario. Supponiamo inoltre che il mercato ora tre tipi diversi di investimenti A, B, C ciascuno caratterizzato da un prezzo dacquisto e da un rendimento netto, che sono riassunti nella seguente tabella: A B C costo 750 200 800 rendimento 20 5 10 Si vuole decidere quali degli investimenti eettuare per massimizzare il rendimento sapendo che gli investimenti A, B, C non si possono eettuare in modo parziale cio` a non sono frazionabili. Analisi del problema e costruzione del modello. Si tratta di un problema di pianicazione degli investimenti. Si devono denire formalmente le variabili di decisione, linsieme delle soluzioni ammissibili e la funzione obiettivo.

12

Variabili di decisione. In questo caso il decisore vuole semplicemente sapere, per ogni investimento, se tale investimento deve essere eettuato oppure no. Una scelta naturale delle variabili di decisione ` e la seguente: xi = 0 non si eetua linvestimento iesimo 1 si eettua linvestimento iesimo i = A, B, C (1.1)

Insieme ammissibile. In base alla denizione delle variabili, le possibili scelte compatibili con il nostro budget sono: (0) non si eettuano investimenti xA = xB = xC = 0 (1) si eettua linvestimento A; xA = 1, xB = xC = 0 (2) si eettua linvestimento B; xA = 0, xB = 1, xC = 0 (3) si eettua linvestimento C; xA = xB = 0, xC = 1 (4) si eettuano gli investimenti A e B; xA = xB = 1, xC = 0 (5) si eettuano gli investimenti B e C; xA = 0, xB = xC = 1. (6) si eettuano gli investimenti A e C; xA = 1, xB = 0, xC = 1. (7) si eettuano gli investimenti A, B e C; xA = xB = xC = 1. Tra queste solo alcune sono compatibili con il nostro budget. In particolare, notiamo che le possibilit` a A, C e A, B, C non sono ammissibili in quanto il costo supera la nostra disponibilit` a, come si evince dalla Tabella 1.4. Linsieme ammissibile o` e costituito dalle scelte (0) (5) ed ` e dato da: 1 0 0 1 0 0 S = 0 , 0 , 1 , 0 , 1 , 1 0 0 0 1 0 1 Si tratta quindi di un sottoinsieme dei vettori di IR3 a componenti 0 1 ovvero S {0, 1}3 Funzione obiettivo. Lobiettivo che ci proponiamo ` e la massimizzazione del rendimento totale. Quindi dobbiamo esprimere la funzione obiettivo che corrisponde al rendimento netto relativo ` possibile ottenere la soluzione ottima valutando esaustialla scelta di x = (xA , xB , xC )T in S E vamente la funzione obiettivo per ogni elemento di S , ottenendo in relazione alle possibili scelte i valori riportati nella Tabella 1.4. La soluzione ottima ` e ovviamente quella corrispondente alla scelta (4), cio` e alleettuare gli investimenti A e B, con valore della funzione obiettivo pari a 25. Questo rappresentazione del problema ha alcuni difetti, in particolare: 1. Linsieme ammissibile S ` e rappresentato in modo estensivo, cio` e elencando tutte le soluzioni ammissibili. In questo caso la cardinalit` a dellinsieme ammissibile ` e al pi` u quella di {0, 1}3 cio` e 23 , ma in generale, se la dimensione del problema fosse pi` u grande sarebbe impossibile valutare esaustivamente le soluzioni del problema. Se, ad esempio, il numero degli investimenti fosse stato 100 (che dal punto di vista delle applicazioni reali ` e del tutto verosimile) la cardinalit` a dellinsieme ammissibile sarebbe stata 2100 e per la

13

costi rendimento

(0) 0 0

(1) 750 20

(2) 200 5

Investimento (3) (4) (5) 800 950 1000 10 25 15

(6) 1550 30

(7) 1750 35

Tabella 1.1: Tabella costi e rendimenti relativi a tutte le possibili combinazioni di investimento
valutazione di 2100 possibilit` a anche supponendo di utilizzare un calcolatore che eettui 1010 valutazioni al secondo (velocit` a superiore a quella raggiungibile dai calcolatori attuali) occorrerebbero 1020 secondi, cio` e 3000 miliardi di anni ! 2. Il modello non ` e indipendente dai dati del problema, cio` e cambiando i dati del problema (prezzi e/o rendimenti) sarebbe necessario cambiare completamente il modello. In genere si cerca di dare una rappresentazione intensiva dellinsieme ammissibile S , cio` e individuare le propriet` a P (x) che consentono di distinguere le soluzioni ammissibili dagli elementi dellinsieme {0, 1}3 che non lo sono. Si vuole quindi scrivere linsieme S in una forma del tipo: S = x {0, 1}3 : vale la propriet` a P (x) . Nellesempio, la propriet` a distintiva degli elementi di S ` e il costo complessivo che non deve essere superiore a 1000. Possiamo esprimere matematicamente questa relazione come: P (x) : 750xA + 200xB + 800xC 1000 e quindi linsieme ammissibile si pu` o scrivere S = x = (xA , xB , xC )T {0, 1}3 : 750xA + 200xB + 800xC 1000 . Anche la funzione obiettivo pu` o essere scritta in forma pi` u sintetica come: f (x) = 20xA + 5xB + 10xC . In conclusione, il problema di decisione pu` o essere posto nella forma: max (20xA + 5xB + 10xC ) 750xA + 200xB + 800xC 1000 xi {0, 1} i = A, B, C.

14

Capitolo 2

Modelli di Ottimizzazione
2.1 Introduzione

In questo capitolo ci occuperemo pi` u nel dettaglio di quei particolari modelli matematici noti come Modelli di Ottimizzazione che rivestono un ruolo centrale nella RO. In termini generali, data una funzione f : IRn IR, ed S IRn , un problema di Ottimizzazione pu` o essere formulato nella forma: min f (x) (P O) x S.

Quindi un problema di Ottimizzazione consiste nel determinare, se esiste, un punto di minimo della funzione f tra i punti dellinsieme S . I problemi di ottimizzazione sono spesso denominati, con terminologia equivalente, problemi di Programmazione Matematica. Osserviamo subito che un problema di massimo si pu` o sempre ricondurre a un problema di minimo, cambiando di segno la funzione obiettivo. Infatti, i punti di massimo (ove esistano) del problema max f (x) xS coincidono con i punti di minimo del problema min f (x) xS e risulta: max f (x) = min(f (x)).
xS xS

In base a tale osservazione ci si pu` o riferire esclusivamente, senza perdita di generalit` a, a problemi di minimizzazione. La funzione f viene chiamata funzione obiettivo e linsieme S insieme ammissibile cio` e linsieme delle possibili soluzioni del problema. Un punto x S si chiama soluzione ammissibile.

15

Linsieme ammissibile S ` e un sottoinsieme di IRn e quindi x = (x1 , x2 , . . . , xn )T ` e una variabile vettoriale n-dimensionale e la funzione obiettivo f ` e una funzione di n variabili reali f (x1 , x2 , . . . , xn ).

2.2

Denizioni preliminari

Si riportano di seguito alcune denizioni fondamentali riguardanti i problemi di Ottimizzazione.

Denizione 2.2.1 (Problema inammissibile) Il problema di ottimizzazione (PO) si dice inammissibile se S = , cio` e se non esistono soluzioni ammissibili.

Denizione 2.2.2 (Problema illimitato) Il problema di ottimizzazione (PO) si dice illimitato (inferiormente) se comunque scelto un valore M > 0 esiste un punto x S tale che f (x) < M . Un esempio di PO illimitato inferiormente ` e dato da f (x) = x3 e S = {x : x 2}. Infatti, al tendere di x a la funzione obiettivo tende anchessa a . Notiamo che se, con la stessa funzione obiettivo, si cambia linsieme S , e si pone S = {x : x 0}, il problema non ` e pi` u illimitato inferiormente.

Denizione 2.2.3 (Punto di minimo globale) Si dice che il problema di ottimizzazione (PO) ammette soluzione ottima (nita) se esiste un x S tale che risulti f (x ) f (x), per ogni x S.

Il punto x ` e detto soluzione ottima o minimo globale e il corrispondente valore f (x ) di dice valore ottimo. Per esempio, se si pone f = x2 e S = I R, lottimo ` e lorigine, e il corrispondente valore ottimo ` e zero. Se si prende S = {x : x 2}, lottimo ` e 2 e il valore ottimo 4. In molti problemi di ottimo, in cui la ricerca di soluzioni globali pu` o risultare dicile, pu` o avere interesse anche la ricerca di soluzioni di tipo locale. Indichiamo allora con U (x) un intorno di un punto x e consideriamo la denizione seguente.

16

Denizione 2.2.4 (Punto di minimo locale) Un punto x S si dice punto di minimo locale di f su S se esiste un intorno U (x ) di x tale che: f (x ) f (x), per ogni x S U (x ),

e, in tal caso, si dice che f (x ) ` e un minimo locale di f su S . Si dice che x S ` e un punto di minimo locale stretto di f su S se esiste un intorno U (x ) di x tale che: f (x ) < f (x), per ogni x S U (x ), x = x . Per esempio, se si pone f = x2 e S = {x : 2 x 1}, lottimo (minimo globale) ` e x = 2 di valore ottimo -4, ed il punto x = 1 ` e un minimo locale di valore pari a 1. ` immediato rendersi conto del fatto che E un punto di minimo globale ` e anche un punto di minimo locale, ma non ` e vero in generale il viceversa. Naturalmente si pu` o anche presentare il caso in cui la funzione obiettivo ` e limitata inferiormente su S ossia: inf f (x) > ,
xS

ma tuttavia non esistono punti di minimo globale di f su S . Risolvere un problema di ottimizzazione signica quindi, in pratica: - stabilire se linsieme ammissibile ` e non vuoto, oppure concludere che non esistono soluzioni ammissibili; - stabilire se esistono soluzioni ottime, oppure dimostrare che il problema non ammette soluzioni ottime; - determinare (eventualmente in modo approssimato) una soluzione ottima. Allinterno dei problemi di Ottimizzazione si possono distinguere le seguenti importanti classi di problemi:

17

Problemi di Ottimizzazione Continua. Le variabili possono assumere tutti i valori reali (x IRn ); ed inoltre si parla di problemi di ottimizzazione continua vincolata se S IRn non vincolata se S = IRn . Problemi di Ottimizzazione Discreta. Le variabili sono vincolate ad essere numeri interi (x Zn ); si possono distinguere allinterno di questa classe di problemi altre due classi: programmazione a numeri interi se S Zn ottimizzazione booleana se S {0, 1}n . Problemi misti. Solo alcune delle variabili sono vincolate ad essere intere.

2.3

Problemi di Programmazione Matematica

Di solito linsieme ammissibile S viene descritto da una numero nito di diseguaglianze del tipo g (x) 0, dove g ` e una funzione denita su IRn a valori reali. Cio` e, formalmente, date m n funzioni gi : IR IR, i = 1, . . . , m si esprime S nella forma S = {x IRn | g1 (x) 0, g2 (x) 0, . . . , gm (x) 0} . Ogni diseguaglianza gi (x) 0 prende nome di vincolo e linsieme ammissibile ` e quindi formato da tutti quei punti x IRn che sono soluzione del sistema di diseguaglianze g1 (x) g2 (x) g3 (x) . . . 0 0 0 0

gm (x)

Osservazione 2.3.1 In questa formulazione dellinsieme S si sono utilizzati vincoli di diseguaglianza nella forma di minore o uguale, ma ` e chiaro che questa notazione include i casi in cui i vincoli sono espressi con vincoli di disuguaglianza nella forma di maggiore o uguale e vincoli di uguaglianza; infatti si pu` o sempre trasformare un vincolo di maggiore o uguale del tipo g (x) 0 in un vincolo di minore o uguale semplicemente riscrivendolo nella forma g (x) 0. Inoltre un vincolo di uguaglianza g (x) = 0 pu` o essere riscritto nella forma equivalente delle due diseguaglianze g (x) 0 e g (x) 0.

18

Quindi si pu` o riscrivere il problema di ottimizzazione (PO) nella forma min f (x) gi (x) 0, i = 1, . . . , m. Un problema di questo tipo viene chiamato problema di Programmazione Matematica. I problemi di Programmazione Matematica si possono classicare in base alle propriet` a della funzione obiettivo e dei vincoli prendendo in considerazione, tra le pi` u signicative la linearit` a, la convessit` a. Una prima distinzione ` e quella che fa riferimeno allipotesi di linearit` a. Da tale punto di vista, possiamo distinguere: - problemi di Programmazione Lineare (PL), in cui lobiettivo ` e una funzione lineare del tipo c1 x1 + c2 x2 + + cn xn , e i vincoli sono espressi da un sistema di equazioni e disequazioni lineari, cio` e esprimibili nella forma ai1 x1 + . . . + ain xn ( / =)bi - problemi di Programmazione Non Lineare (PNL), in cui lobiettivo oppure i vincoli non sono tutti lineari. I problemi di PNL corrispondono alla situazione pi` u generale. I problemi non vincolati rientrano nella classe di PNL, infatti, in tal caso f ` e necessariamente una funzione non lineare da Rn in R; ` e facile vericare che se f fosse lineare il problema non ammetterebbe soluzione. Inoltre, in linea di principio, possono essere formulati come problemi di PNL anche i problemi combinatori. La classicazione dei problemi di Programmazione Matematica in base alla propriet` a di convessit` a sar` a arontata nel Capitolo 5. Alcuni esempi di problemi di Programmazione Matematica sono i seguenti: Esempio 2.3.2 Si consideri una funzione obiettivo di due variabili f (x1 , x2 ) = 2x1 + x2 che si vuole minimizzare, con i vincoli 2x1 + x2 1, x1 0, x2 0. Si ottiene il problema min 2x1 + x2 x1 + x2 1 x1 0 x2 0 che ` e nella forma (2.1) dove g1 (x1 , x2 ) = x1 + x2 1, g2 (x1 , x2 ) = x1 , g3 (x1 , x2 ) = x2 . Linsieme ammissibile ` e descritto attraverso da tre vincoli. Poich e tutte le funzioni che compaiono sono lineari nella variabili x1 e x2 , questo problema ` e un problema di Programmazione Lineare.
2 1 2 Esempio 2.3.3 Si consideri una funzione obiettivo f (x1 , x2 ) = (x1 1 che si 2 ) + (x2 2 ) vuole massimizzare, con i vincoli x1 + x2 1, x1 1, x2 1. Si ottiene il problema
1 2 1 2 ) (x2 2 ) min (x1 2 x1 + x2 1 x1 1 x2 1

(2.1)

19

che ` e nella forma (2.1) dove g1 (x1 , x2 ) = 1 x1 x2 , g2 (x1 , x2 ) = x1 1, g3 (x1 , x2 ) = x2 1. Linsieme ammissibile ` e un poliedro; la funzione obiettivo ` e quadratica. Si tratta quindi di un problema di Programmazione Non Lineare.
2 Esempio 2.3.4 Si consideri una funzione obiettivo f (x1 , x2 ) = 3x3 1 + 7x1 + x2 che si vuole 1 minimizzare, con vincoli x1 + x2 2 , x1 0, x2 1. Si ottiene il problema 2 min 3x3 1 + 7x1 + x2 x1 + x2 1 2 x1 0 x2 1

che ` e un problema di Programmazione Non Lineare che pu` o essere facilmente ricondotto nella forma (2.1) riscrivendo gli ultimi due vincoli nella forma x1 0 e x2 1. Esempio 2.3.5 Si consideri una funzione obiettivo f (x1 , x2 ) = x1 +x2 che si vuole minimizzare sulla regione ammissibile descritta dal vincolo di uguaglianza 4x1 x2 = 2. Il problema risultante ` e: min x1 + x2 4x1 x2 = 2 che ` e un problema di Programmazione Lineare con un solo vincolo di uguaglianza.

2.4

Esempi di modelli di Programmazione Matematica

Come primi esempi di costruzione di modelli verranno ora analizzati dei semplici problemi di pianicazione della produzione e un problema di progettazione industriale. Esempio 2.4.1 (Un problema di produzione (allocazione di risorse)) Un coloricio produce due tipi di coloranti C1 e C2 utilizzando 3 preparati base in polvere P1, P2, P3 che vengono sciolti in acqua. La dierente concentrazione dei preparati base d` a origine ai due diversi tipi di coloranti. Le quantit` a (in ettogrammi) di preparati base necessarie per produrre un litro di colorante di ciascuno dei due tipi ` e riportato nella seguente tabella C1 P1 P2 P3 1 1 C2 1 2 1

Ogni giorno la quantit` a di ciascuno dei preparati base (in ettogrammi) della quale il coloricio pu` o disporre ` e la seguente P1 750 P2 1000 P3 400

Il prezzo di vendita del colorante C1 ` e di 7 Euro al litro, mentre il colorante C2 viene venduto a 10 Euro al litro. Determinare la strategia ottimale di produzione giornaliera in modo da massimizzare i ricavi ottenuti dalla vendita dei due coloranti.

20

Formulazione. Si vuole costruire il modello di Programmazione Lineare che rappresenti il problema in analisi considerando le limitazioni date dalle produzioni eettivamente realizzabili. ` immediato associare le variabili di decisione ai quantitativi di coloranti prodotti. Siano, E quindi, rispettivamente x1 e x2 i quantitativi (in litri) da produrre giornalmente dei due coloranti. Nel formulare il modello di Programmazione Lineare si deve vericare che siano soddisfatte le ipotesi fondamentali: Proporzionalit` a. I consumi dei preparati base e i ricavi ottenibili sono proporzionali ai quantitativi di coloranti prodotti. Ad esempio, per produrre una quantit` a x2 di colorante C2 si consumano 2x2 ettogrammi di P2 e dalla vendita di x2 litri di C2 si ricavano 10x2 migliaia di lire indipendentemente dalla quantit` a prodotta e venduta dellaltro tipo di colorante. Additivit` a. I consumi dei preparati base e i ricavi rispettivamente associati alla produzione dei due coloranti sono additivi, nel senso che per produrre x1 litri di colorante C1 e x2 di C2 si consumano x1 +2x2 ettogrammi di preparato di base P2 e si ricavano 7x1 +10x2 migliaia di lire. Continuit` a. Ogni variabile introdotta nel modello pu` o assumere tutti i valori reali nellintervallo di ammissibilit` a. Variabili. Come gi` a detto, prendiamo come variabili di decisione x1 e x2 , rispettivamente i quantitativi (in litri) di colorante C1 e C2 da produrre giornalmente. ` rappresentata dal protto totale che per le ipotesi fatte ` Funzione obiettivo. E e dato (in Euro) da 7x1 + 10x2 . Vincoli. Poich e il consumo di preparati base non pu` o essere superiore alla disponibilit` a si deve avere x1 + x2 750 x1 + 2x2 1000 x2 400. Inoltre si deve esplicitare il vincolo di non negativit` a sulle variabili x1 0, x2 0. Quindi la formulazione nale ` e max 7x1 + 10x2 x1 + x2 750 x1 + 2x2 1000 x2 400 x1 0, x2 0.

21

Esempio 2.4.2 (Un problema di pianicazione della produzione industriale)) Unindustria chimica fabbrica 4 tipi di fertilizzanti, Tipo 1, Tipo 2, Tipo 3, Tipo 4, la cui lavorazione ` e adata a due reparti dellindustria: il reparto produzione e il reparto confezione. Per ottenere fertilizzante pronto per la vendita ` e necessaria naturalmente la lavorazione in entrambi i reparti. La tabella che segue riporta, per ciascun tipo di fertilizzante i tempi (in ore) necessari di lavorazione in ciascuno dei reparti per avere una tonnellata di fertilizzante pronto per la vendita. Tipo 1 Tipo 2 Tipo 3 Tipo 4 Reparto produzione 2 1.5 0.5 2.5 Reparto confezionamento 0.5 0.25 0.25 1 Dopo aver dedotto il costo del materiale grezzo, ciascuna tonnellata di fertilizzante d` a i seguenti protti (prezzi espressi in Euro per tonnellata) protti netti Tipo 1 250 Tipo 2 230 Tipo 3 110 Tipo 4 350

Determinare le quantit` a che si devono produrre settimanalmente di ciascun tipo di fertilizzante in modo da massimizzare il protto complessivo, sapendo che settimanalmente il reparto produzione pu` o lavorare al pi` u 100 ore mentre il reparto confezionamento pu` o lavorare al pi` u 50 ore settimanali. Analisi del problema e costruzione del modello. Si tratta di un problema di pianicazione della produzione industriale. Costruiamo un modello di Programmazione Matematica rappresentante il problema in analisi supponendo di voler pianicare la produzione settimanale. Variabili di decisione. La scelta delle variabili di decisione e molto delicata: infatti la qualit a dellintero modello dipender a da essa. In genere, per stabilire lopportuno insieme di variabili di decisione, conviene porsi la seguente domanda: che cosa vuole sapere il decisore alla ne del processo di ottimizzazione? Ancora meglio, cosa gli e suciente sapere, per prendere le sue decisioni? In questo caso, ad esempio, tutto ci o che il decisore deve conoscere sono le quantit a di fertilizzante da produrre per ciascun tipo. Dunque introduciamo le variabili reali x1 , x2 , x3 , x4 rappresentanti rispettivamente le quantit` a di prodotto del Tipo 1, Tipo 2, Tipo 3, Tipo 4 da fabbricare in una settimana. Funzione Obiettivo. Ciascuna tonnellata di fertilizzante contribuisce al protto totale secondo la tabella data. Quindi il protto totale sar` a 250x1 + 230x2 + 110x3 + 350x4 . (2.2)

Lobiettivo dellindustria sar` a quello di scegliere le variabili x1 , x2 , x3 , x4 in modo che lespressione (2.2) del protto sia massimizzata. La (2.2) rappresenta la funzione obiettivo. Vincoli. Ovviamente la capacit` a produttiva della fabbrica limita i valori che possono assumere le variabili xj , j = 1, . . . , 4; infatti si ha una capacit` a massima lavorativa in ore settimanali di ciascun reparto. In particolare per il reparto produzione si hanno a disposizione al pi` u 100 ore settimanali e poich e ogni tonnellata di fertilizzante di Tipo 1 utilizza il reparto produzione per 2 ore, ogni tonnellata di fertilizzante di Tipo 2 utilizza il reparto produzione per 1.5 ore e cos` via per gli altri tipi di fertilizzanti si dovr` a avere 2x1 + 1.5x2 + 0.5x3 + 2.5x4 100. (2.3)

22

Ragionando in modo analogo per il reparto confezionamento si ottiene 0.5x1 + 0.25x2 + 0.25x3 + x4 50. (2.4)

Le espressioni (2.3), (2.4) costituiscono i vincoli del modello. Si devono inoltre esplicitare vincoli dovuti al fatto che le variabili xj , j = 1, . . . 4 rappresentando quantit` a di prodotto non possono essere negative e quindi vanno aggiunti i vincoli di non negativit` a x1 0, x2 0, x3 0, x4 0. La formulazione nale sar` a quindi max 25x1 + 23x2 + 11x3 + 35x4 2x1 + 1.5x2 + 0.5x3 + 2.5x4 100 0.5x1 + 0.25x2 + 0.25x3 + x4 50 x1 0, x2 0, x3 0, x4 0.

Questa formulazione ` e un problema matematico ben denito e costituisce il modello di Programmazione Matematica rappresentante il problema di pianicazione della produzione industriale in analisi. Si tratta, in questo caso, di un problema di programmazione lineare.

Esempio 2.4.3 (Dimensionamento ottimo) Unindustria deve costruire un silos di forma cilindrica. Tale silos deve essere posto in un magazzino appoggiato su una delle basi. Tale magazzino ` e a pianta rettangolare di dimensioni metri 20 10 ed ha un tetto spiovente lungo il lato di 10 metri, che ha altezza massima di metri 5 e altezza minima di metri 3. Per costruire questo silos deve essere usato del materiale plastico sottile essibile che pu` o essere tagliato, modellato e incollato saldamente. Sapendo che si dispone di non pi` u di 200 m2 di tale materiale plastico si costruisca un modello che permetta di determinare le dimensioni del silos (raggio di base ed altezza) in modo da massimizzare la quantit` a di liquido che pu` o esservi contenuto. Analisi del problema e costruzione del modello. Si tratta di determinare il dimensionamento ottimale di un contenitore cilindrico per uso industriale cercando di massimizzare il suo volume tenendo presente che deve essere contenuto in un magazzino di dimensioni ssate. Si devono denire formalmente le variabili di decisione, linsieme delle soluzioni ammissibili e la funzione obiettivo. ` immediato introdurre due variabili x e y che rappresentano rispet Variabili di decisione. E tivamente la lunghezza (in metri) del raggio di base e dellaltezza del contenitore cilindrico. Funzione obiettivo. La funzione obiettivo ` e rappresentata dal volume del contenitore cilindrico ed ` e data da x2 y. Vincoli. Il diametro della base non pu` o superare le dimensioni del magazzino e quindi deve essere 2x 10.

23

La limitazione dellaltezza del contenitore varia al variare del diametro di base in quanto il tetto ` e spiovente. Dato che la pendenza del tetto ` e del 20%, dovr` a risultare y 5 0.2 2x. Inoltre disponendo solo di una quantit` a limitata di materiale plastico la supercie totale del contenitore cilindrico non pu` o superare 200m2 e quindi deve risultare 2x2 + 2xy 200. Si devono inne esplicitare i vincoli di non negativit` a x 0, y 0. La formulazione complessiva risulta quindi max x2 y x5 y 5 0.2 2x 2x2 + 2xy 200 x 0, y 0.

Il modello ` e quindi un modello di programmazione non lineare. Esempio 2.4.4 (Discriminazione del prezzo) Consideriamo un monopolista che operi su due mercati distinti (ad es. nazionale ed estero) ciascuno con una diversa funzione di domanda. Indichiamo con xi loerta sul mercato i = 1, 2 e con Pi = fi (xi ) la funzione di domanda inversa sul mercato i. Supponiamo inoltre che il costo di produzione sia proporzionale con una costante c alla oerta complessiva x1 + x2 . Il problema consiste nel massimizzare il protto del monopolista. Analisi del problema e costruzione del modello. ` immediato considerare le due variabili x1 , x2 che rappresentano Variabili di decisione. E loerta sui due mercati distinti del bene. Funzione obiettivo. Su vuole massimizzare il protto, ovvero ricavo meno costi. La funzione ricavo ` e x1 f1 (x1 ) + x2 f (x2 ), mentre il costo ` e c(x1 + x2 ). Il protto totale sar` a quindi f (x) = x1 f1 (x1 ) + x2 f (x2 ) c(x1 + x2 ). Vincoli. Poich e le due variabili rappresentano unoerta si tratta di quantit` a non negative xi 0 per i = 1, 2. Pi` u in generale nel caso di n mercati distinti, posto x = (x1 , . . . , xn )T si ha linsieme ammissibile: S = {x Rn : x 0} . Il problema di ottimizzazione corrispondente ` e
n n

max
xS i=1

xi fi (xi ) c
i=1

xi .

24

Molto spesso le funzioni fi (xi ) hanno un andamento lineare del tipo fi (xi ) = ai mi xi con mi > 0.

La funzione ricavo risulta essere quindi una funzione quadratica del tipo
n

xi (ai mi xi ) = xT M x + aT x
i=1 T con M matrice diagonale ad elementi positivi diag{mi }n i=1 e a = (a1 . . . , an ) .

Esempio 2.4.5 (Problemi di approssimazione o di curve tting) Supponiamo assegnata una funzione continua : R R e supponiamo di voler approssimare (t) su un intervallo assegnato [tmin , tmax ] per mezzo di un polinomio di grado n: pn (t; x) = x0 + x1 t + x2 t2 + x3 t3 + . . . + xn tn , in cui xj , per j = 1, . . . , n sono i coecienti (incogniti) del polinomio. Supponiamo che la funzione sia nota in modo discreto, cio e si conoscono i valori (ti ) che la funzione assume nei punti ti [tmin , tmax ] per i = 1, . . . , m. Si possono denire gli errori ei (x) = (ti ) pn (ti ; x), i = 1, . . . , m,

che rappresentano la dierenza tra il valore efettivo della funzione (ti ) e il valore ottenuto con la funzione approssimante pn (ti ; x), dove si e posto x = (x0 , x1 , . . . , xn ) Rn+1 . allora possibile considerare diverse funzioni di ottimo E 1. minimizzazione dellerrore quadratico medio
m

min
i=1

ei (x)2 ,

2. minimizzazione del massimo valore assoluto dellerrore min max |ei (x)|.
1im

3. minimizzazione della somma dei valore assoluto dellerrore


m

min
i=1

|ei (x)|.

Analisi del problema e costruzione del modello. Si tratta di problemi di ottimizzazione non vincolata. Osserviamo che nel caso 1, la funzione obiettivo e quadratica nelle incognite x. Successivamente vedremo che problemi del tipo 2 e 3 possono essere ricondotti a problemi di programmazione lineare.

25

Capitolo 3

Modelli di Programmazione Lineare


In questo capitolo esaminiamo in modo pi` u dettagliato la Programmazione Lineare. In particolare saranno presentati alcuni modelli di PL pi` u o meno classici.

3.1

Struttura di un problema di Programmazione Lineare

Come abbiamo gi` a visto nel Capitolo 2 un problema di Programmazione Lineare ` e caratterizzato da una funzione obiettivo lineare (da minimizzare o massimizzare) della forma
n

f (x) = c1 x1 + . . . + cn xn =
j =1

cj xj

e da un numero nito m di vincoli lineari della forma a11 x1 + a21 x1 + . . . am1 x1 + ... ... ... ... +a1n xn +a2n xn . . . +amn xn b1 b2 . . . bm .

(3.1)

dove con intendiamo , oppure =. Introducendo il vettore c IRn , denito c = (c1 , . . . , cn )T , x IRn denito x = (x1 , . . . , xn )T , il vettore b = (b1 , . . . , bm )T e la matrice (m n) a11 . . A= . am1 ... a 1n . . .

. . . amn

un generico problema di Programmazione Lineare pu` o essere scritto nella forma min cT x Ax b.

26

Si osservi che, indicando con aT i , i = 1, . . . , m, le righe della matrice A, ciascun vincolo del problema, ovvero ciascuna disuguaglianza della (3.1) pu` o essere scritto nella forma aT bi , i x i = 1, . . . , m con pari a , oppure =. Un problema di PL consiste nel minimizzare (massimizzare) una funzione obiettivo lineare su un poliedro. Tra le forme di poliedri pi` u usate nella denizione di problemi di PL abbiamo le seguenti: (a) S = {x Rn : Ax = b} (b) S = {x Rn : Ax b} (c) S = {x Rn : Ax = b, x 0} (forma standard) In R2 sono poliedri, ad esempio, gli insiemi deniti come segue.

x2 x2 x2 3 3 3

S
x1 3 1 3 x1 3 x1

S S

a)

b)

c)

Figura 3.1: Esempi di poliedri in I R2 .


(a) S = {x R2 : x1 + x2 = 3} rappresentato in a) di Figura 3.1. La matrice A = (1 1) e b = 3. (b) S = {x R2 : x1 + x2 3, x1 1} rappresentato in b) di Figura 3.1. 1 1 3 La matrice A = eb= 1 0 0

27

(c) (forma standard) S = {x R2 : x1 + x2 = 3, x1 0, x2 0} rappresentato in c) di Figura 3.1. La matrice A = (1 1) e b = 3. In generale per` o ` e sempre possibile sempre riportarsi ad una delle forme (b) o (c) con ` da notare che non ` semplici trasformazioni dei vincoli o delle variabili. E e possibile ricondursi nel caso generale a problemi con soli vincoli di uguaglianza del tipo min cT x Ax = b. Tali problemi sono in eetti di scarsa rilevanza pratica in quanto ` e possibile dimostrare che se esiste una soluzione ammissibile e il problema non ` e illimitato allora tutte le soluzioni ammissibili sono ottime. In particolare vale il teorema 10.2.1.

Trasformazioni dei vincoli Osserviamo che si pu` o sempre supporre che il secondo membro di un vincolo di uguaglianza o disuguaglianza sia non negativo. Infatti, se cos` non fosse, basta moltiplicare per (1) (ovvero cambiare di segno) ad entrambi i membri del vincolo e, eventualmente cambiare il verso della disuguaglianza. Supponiamo quindi nel seguito, senza perdere di generalit` a che bj 0. Da disuguaglianza a uguaglianza Con lintroduzione di opportune variabili aggiuntive non negative, ogni vincolo di disuguaglianza pu` o sempre essere posto nella forma di vincolo di uguaglianza. Infatti un vincolo del tipo aT j x bj , pu` o essere riscritto nella forma aT j x + xn+1 = bj , con xn+1 0 (3.2)

ove la variabile xn+1 rappresenta la dierenza, non negativa, tra il secondo e il primo membro della disuguaglianza (3.2), e viene detta variabile di slack. Daltra parte una disuguaglianza del tipo aT (3.3) j x bj , pu` o essere posta nella forma aT j x xn+1 = bj , con xn+1 0

ove la variabile xn+1 rappresenta la dierenza, non negativa, tra il primo e il secondo membro della disuguaglianza (3.3), e viene detta variabile di surplus. Quando la distinzione non ` e necessaria, le variabili slack e di surplus vengono chiamate variabili ausiliarie. Esempio 3.1.1 Il sistema di vincoli 3x1 5x1 8x1 + x2 + 4x3 6x3 + 9x3 = 5 7 2

28

pu` o essere riscritto nella forma 3x 1 5x1 8x1 x4 x5 x2 0 0 + + + 4x3 6x3 9x3 + x4 = 5 = 7 x5 = 2

avendo introdotto la variabile slack x4 e la variabile di surplus x5 , entrambe non negative. 2 ` anche possibile trasformare vincoli di uguaglianza in Da uguaglianza a disuguaglianza E vincoli di disuguaglianza. Considerato il vincolo aT j x = bj si pu]o trasformare in due vincoli di disuguaglianza aT j x bj aT j x bj

Trasformazioni delle variabili Nei problemi di programmazione lineare si pu` o sempre


assumere che le variabili di decisione siano non negative, e cio` e che per ogni i risulti xi 0. Infatti se per qualche i deve risultare xi 0, basta eettuare la sostituzione xi = xi , e vincolata in segno, basta sostituire ad con xi 0; se per qualche i la variabile xi non ` essa la dierenza tra due variabili aggiuntive entrambe vincolate in segno, cio` e basta porre + xi = x+ x , con x 0 , e x 0 . i i i i Esempio 3.1.2 Sia dato il vincolo x1 + 0.5x2 3 con x2 0 e con x1 non vincolata. Ponendo x1 = x1 x3 e x2 = x2 , equivale al vincolo x1 0.5x2 x3 3 con xi 0, i = 1, 2, 3. 2

3.2

Trasformazioni equivalenti

Consideriamo alcune formulazioni equivalenti di PL relative ad alcune importanti classi di problemi. In particolare, analizziamo il caso in cui la funzione obiettivo ` e il massimo tra funzioni lineari oppure nella funzione obiettivo sono presenti dei valori assoluti.

3.2.1

Funzione obiettivo di tipo max

Si consideri il problema min


xS

1im

max {cT i x + di }

(3.4)

n n in cui S ` e un poliedro e cT i x + di , i = 1, . . . , m sono assegnate con x IR , ci IR . Il problema n (3.4) ha una funzione obiettivo che ` e della forma max1im hi (x) con hi : R R che, in generale, risulta non dierenziabile e dunque non lineare. Un esempio di funzione di questo

29

20

15

10

0 -10

-5

10

Figura 3.2: max 2x, x, 1 2x + 9


tipo per n = 1 e m = 3 ` e rappresentato in Figura 3.2. I problemi di questo tipo sono di solito chiamati problemi minimax. Aggiungendo una variabile v R ` e possibile mostrare che tale problema ` e equivalente al problema di Programmazione Lineare: minx,v v xS cT i x + di v, i = 1, . . . , m. (3.5)

Per dimostrare lequivalenza dei problemi (3.4) e (3.5), dobbiamo fare vedere che data una soluzione x del problema (3.4) possiamo determinare una soluzione (x, v ) del problema (3.5) e viceversa. Supponiamo di avere una soluzione x del problema (3.4). Posto x = x e v = max1im {cT ` e ammissibile per il problema (3.5), i x + di } abbiamo che la coppia (x, v ) infatti x = x S cT + di v = max {cT + di }. i x i x
1im

Inoltre v v per ogni (x, v ) ammissibile. Viceversa, sia data una soluzione ottima (x, v ) del problema (3.5), una soluzione ammissibile del problema (3.4) ` e x = x S . Si tratta anche della soluzione ottima perche
v v = max {cT i x + di } 1im

30

3.2.2

Funzione modulo
min |cT x|
xS

Si consideri il problema

(3.6)

con x IRn , c IRn . Il problema (3.6) pu` o essere equivalentemente scritto nella forma

20 15 10 5 0 10 5 -10 -5 0 5 10 -10 -5 0

Figura 3.3: Curve di livello della funzione f (x, y ) = |x + y |


min max{cT x, cT x}
xS

(3.7)

e dunque applicando la trasformazione descritta per il problema (3.4), si ottiene il problema equivalente minx,v v cT x v (3.8) cT x v x S. Sono inoltre equivalenti i seguenti problemi: minx,v min
xS 1im

max |hi (x)|

v v hi (x) v, i = 1, . . . , m x S.

31

3.3

Semplici esempi di problemi di programmazione lineare

Chiariremo meglio i concetti nora esposti con alcuni esempi. I problemi descritti hanno una funzione essenzialmente esemplicativa. In casi concreti, un problema di programmazione lineare pu` o avere un numero di variabili di decisione e un numero di vincoli dellordine delle decine e centinaia di migliaia.

3.3.1

Problemi di miscelazione.

Si tratta di problemi in cui si hanno a disposizione un certo numero di sostanze ciascuna delle quali ha un certo costo ed un determinato contenuto di componenti utili. Si vuole ottenere la miscela pi` u economica di queste sostanze tale che contenga una certa quantit` a di ciascuno dei componenti. vediamo un semplice esempio.

Un problema di miscelazione
Unindustria conserviera deve produrre succhi di frutta mescolando polpa di frutta e dolcicante ottenendo un prodotto nale che deve soddisfare alcuni requisiti riguardanti il contenuto di vitamina C, di sali minerali e di zucchero. La polpa di frutta e il dolcicante vengono acquistati al costo rispettivamente di Lire 400 e Lire 600 ogni ettogrammo. Inoltre dalle etichette si ricava che 100 grammi di polpa di frutta contengono 140 mg di vitamina C, 20 mg di sali minerali e 25 grammi di zucchero, mentre 100 grammi di dolcicante contengono 10 mg di sali minerali, 50 grammi di zucchero e non contengono vitamina C. I requisiti che il prodotto nale (cio` e il succo di frutta pronto per la vendita) deve avere sono i seguenti: il succo di frutta deve contenere almeno 70 mg di vitamina C, almeno 30 mg di sali minerali e almeno 75 grammi di zucchero. Si devono determinare le quantit` a di polpa di frutta e di dolcicante da utilizzare nella produzione del succo di frutta in modo da minimizzare il costo complessivo dellacquisto dei due componenti base. Formulazione. Si vuole costruire un modello di Programmazione Lineare che rappresenti il problema in analisi tenendo presente i requisiti di qualit` a richiesti. Si verica facilmente che le ipotesi fondamentali di un modello di Programmazione Lineare sono soddisfatte. ` naturale associare la variabili di decisione alle quantit` Variabili. E a di polpa di frutta e di dolcicante da utilizzare per la produzione del succo di frutta. Quindi siano x1 e x2 rispettivamente le quantit` a espresse in ettogrammi di polpa di frutta e di dolcicante che devono essere utilizzate. ` rappresentata dal costo complessivo dellacquisto dei due componenti Funzione obiettivo. E base e quindi ` e data da 400x1 +600x2 . Questa espressione naturalmente deve essere minimizzata. Vincoli. Poich e un ettogrammo di polpa contiene 140 mg di vitamina C e il dolcicante non contiene vitamina C, il primo vincolo da considerare riguardante il contenuto di vitamina C del succo di frutta si pu` o scrivere nella forma 140x1 70.

32

Analogamente per rispettare il requisito sul contenuto di sali minerali del succo di frutta si dovr` a imporre il vincolo 20x1 + 10x2 30. Inne il vincolo sul contenuto di zucchero del succo di frutta si pu` o esprimere nella forma 25x1 + 50x2 75. Inne si deve esplicitare il vincolo di non negativit` a sulle variabili cio` e x1 0, x2 0. Quindi la formulazione nale ` e min 400x1 + 600x2 140x1 70 20x1 + 10x2 30 25x1 + 50x2 75 x1 0, x2 0

Formalmente, supponiamo di disporre di n sostanze diverse che indichiamo con S1 , S2 , . . . , Sn ciascuna delle quali contenga una certa quantit` a di ciascuno degli m componenti utili che indichiamo con C1 , C2 , . . . , Cm . Supponendo che ogni sostanza Sj abbia costo unitario cj , j = 1, . . . , n S1 S2 Sn c1 c2 cn si desidera ottenere la miscela pi` u economica che soddis alcuni requisiti qualitativi, cio` e contenga una quantit` a non inferiore a bi di ciascun Ci , i = 1, . . . , m C1 b1 C2 b2 Cm bm .

Si indichi con aij , i = 1, . . . , m, j = 1, . . . , n la quantit` a di componente Ci presente nella sostanza Sj . Si pu` o cos` costruire la seguente tabella C1 . . . Ci . . . Cm S1 a11 . . . a i1 . . . am1 Sj a 1j . . . aij . . . amj Sn a 1n . . . ain . . . amn

Supponendo che valgano le ipotesi di proporzionalit` a, additivit` a ed inoltre assumendo che le quantit` a di sostanze da utilizzare siano frazionabili, si pu` o formulare questo problema in termini di un problema di Programmazione Lineare.

33

Generalizzando quanto fatto nellesempio,` e naturale introdurre le variabili di decisione x1 , x2 , . . . , xn rappresentanti la quantit` a di ciascuna sostanza S1 , S2 , . . . , Sn da utilizzare nella miscela. Introducendo come spazio delle variabili lo spazio delle nuple reali IRn si pu` o considerare un x IRn denendo x = (x1 , . . . , xn )T . La funzione obiettivo pu` o essere scritta
n

z = c1 x1 + . . . + cn xn =
j =1

cj xj .

Introducendo c IRn , denito c = (c1 , . . . , cn )T , la funzione obiettivo pu` o essere scritta in notazione vettoriale z = cT x. Si devono introdurre i seguenti vincoli: Vincoli di qualit` a. Tenendo conto del fatto che la miscela deve contenere una quantit` a non inferiore a bi di ciascun componente Ci si dovr` a avere
n

aij xj bi ,
j =1

i = 1, . . . , m.

Si devono considerare i vincoli di non negativit` a sulle variabili cio` e xj 0, j = 1, . . . , n. Introducendo la matrice (m n) a11 . A= . . am1 ... a 1n . . .

. . . amn

e il vettore b = (b1 , . . . , bm )T la formulazione completa del problema pu` o essere scritta nella forma min cT x (3.9) Ax b x 0, x IRn . Nella pratica, potrebbe essere necessario introdurre ulteriori vincoli: possono essere presenti limitazioni superiori o inferiori sulle variabili cio` e xj L, xj M , j = 1 , . . . , n; se ` e richiesto anche che la miscela contenga una quantit` a non superiore ad un valore di di ciascun componente Ci si dovr` a aggiungere alla formulazione un altro vincolo di qualit` a:
n

aij xj di ,
j =1

i = 1, . . . , m;

in alcuni casi si richiede che una certa sostanza appartenga alla miscela solo se unaltra sostanza vi appartiene (o non vi appartiene). Questi vincoli sono detti disgiuntivi e la loro formalizzazione matematica sar` a discussa nel Capitolo 12.

34

3.3.2

Modelli di trasporto.

a destinazioni indicate con Sono denite m localit` a origini indicate con O1 , . . . , Om , e n localit` D1 , . . . , Dn . Ogni origine Oi , (i = 1, . . . , m) pu` o fornire una certa disponibilit` a ai 0 di merce che deve essere trasferita dalle origini alle destinazioni O1 a1 D1 b1 Om am . Dn bn .

Ad ogni destinazione Dj , (j = 1, . . . , n) ` e richiesta una quantit` a bj 0 di merce.

Supponiamo che il costo del trasporto di una unit` a di merce da Oi a Dj sia pari a cij . Tali costi nella realt` a sono spesso collegati alle distanze tra origini e destinazioni. Si pu` o cos` costruire la seguente tabella O1 . . . Oi . . . Om D1 c11 . . . ci1 . . . cm1 Dj c1j . . . cij . . . cmj Dn c1n . . . cin . . . cmn

Il problema consiste nel pianicare i trasporti in modo da soddisfare le richieste delle destinazioni minimizzando il costo del trasporto complessivo nella seguente ipotesi: la disponibilit` a complessiva uguaglia la richiesta complessiva, cio` e
m n

ai =
i=1 j =1

bj ;

(3.10)

si escludono possibilit` a di giacenze nelle origini, cio` e tutta la merce prodotta in una origine deve essere trasportata in una delle destinazioni; si escludono possibilit` a di giacenze nelle destinazioni, cio` e la quantit` a totale che arriva in una destinazione Dj deve uguagliare la richiesta bj . Formulazione. Si vuole dare una formulazione del problema in esame in termini di un problema di programmazione lineare supponendo quindi che siano vericate le ipotesi di linearit` a e continuit` a. Variabili. Per ogni coppia di origine e decisione xij rappresentanti la quantit` a di variabili D1 O1 x11 . . . . . . Oi . . . Om xi1 . . . xm1 destinazione Oi , Dj si introducono le variabili di merce da trasportare da Oi , a Dj . Si tratta di mn Dj x 1j . . . xij . . . xmj Dn x 1n . . . xin . . . xmn

35

Funzione obiettivo. La funzione obiettivo da minimizzare sar` a data da costo totale del trasporto e quindi da
m n

z=
i=1 j =1

cij xij .

Vincoli. Per le ipotesi fatte, si avranno due tipi di vincoli: vincoli di origine
n

xij = ai
j =1

i = 1, . . . , m;

(3.11)

impongono che tutta la merce prodotta in una origine sia trasportata alle destinazioni; si tratta di m vincoli; vincoli di destinazione
m

xij = bj
i=1

j = 1 , . . . , n;

(3.12)

impongono che la quantit` a totale di merce che arriva in ciascuna delle destinazioni uguaglia la richiesta; si tratta si n vincoli. Si devono inne considerare i vincoli di non negativit` a delle variabili xij 0 i = 1 , . . . , n; j = 1, . . . , m.

Si ` e cos` ottenuta una formulazione del problema dei trasporti con mn variabili e m + n + mn vincoli: m n min cij xij i=1 j =1 n xij = ai i = 1, . . . , m (3.13) j =1 m xij = bj j = 1, . . . , n i =1 xij 0 i = 1, . . . , n; j = 1, . . . , m. ` chiaro che per le ipotesi fatte dovr` E a risultare
m n n m m n

Osservazione 1

xij =
i=1 j =1 j =1 i=1

xij =
i=1

ai =
j =1

bj .

Anzi vale il seguente risultato

36

Teorema 3.3.1 Condizione necessaria e suciente anch e il problema (3.13) ammetta soluzione, cio` e che esista una soluzione ammissibile, ` e che risulti
m n

ai =
i=1 j =1

bj .

(3.14)

Tale risultato chiarisce perch e nella formulazione classica del problema dei trasporti si adotta lipotesi (3.10) cio` e che la disponibilit` a complessiva uguagli la richiesta complessiva. Passiamo, ora, ad analizzare alcune varianti della formulazione classica del problema dei trasporti; pu` o infatti accadere che non tutte le rotte di trasporto siano disponibili: se non ` e possibile il trasporto da una certa origine Oi ad una destinazione Dj si pone, per convenzione, cij = . Oppure possono esistere rotte di trasporto Oi Dj in cui vi sono limitazioni sulle quantit` a massima di merci trasportabili uij . Questo produce dei vincoli del tipo xij uij . Inne, si pu` o supporre che la disponibilit` a complessiva possa essere superiore alla domanda cio` e
m n

ai
i=1 j =1

bj .

(3.15)

In tal caso, possono essere ammesse giacenze nelle origini e/o nelle destinazioni; se si accetta di avere giacenze nelle origini, allora i vincoli di origine diventano
n

xij ai
j =1

i = 1, . . . , m;

se si accetta di avere giacenze nelle destinazioni, allora i vincoli di destinazione diventano


m

xij bj
i=1

j = 1, . . . , n.

Anche nel caso in cui valga la (3.15), il problema dei trasporti pu` o essere posto nella sua formulazione classica, cio` e con soli vincoli di uguaglianza, introducendo una destinazione ttizia che abbia una richiesta pari a
m n

ai
i=1 j =1

bj

e ponendo uguale a zero il costo per raggiungere questa destinazione ttizia da qualsiasi origine.

Un problema di trasporto
Consideriamo unindustria che produce un bene di consumo in due stabilimenti di produzione, situati rispettivamente a Pomezia e a Caserta. La produzione viene prima immagazzinata in due depositi, situati uno a Roma e laltro a Napoli. Quindi i prodotti vengono distribuiti alla rete di vendita al dettaglio. Per ogni unit` a di prodotto, il costo del trasporto dallo stabilimento al deposito ` e dato dalla Tabella:

37

Pomezia Caserta

Roma 1 3.5

Napoli 3 0.5

Costi di trasporto euro/unit` a La capacit` a produttiva dei due stabilimenti ` e limitata, per cui ogni settimana il bene in questione non pu` o essere prodotto in pi` u di 10000 unit` a nello stabilimento di Pomezia e in pi` u di 8000 unit` a nello stabilimento di Caserta. Inoltre le statistiche di vendita informano che ogni settimana vengono vendute mediamente 11000 unit` a tramite il deposito di Roma e 4600 unit` a tramite il deposito di Napoli. Lindustria vuole minimizzare il costo del trasporto della merce dagli stabilimenti ai depositi, assicurando che i depositi ricevano settimanalmente le quantit` a medie prima indicate. Le variabili di decisione sono le quantit` a del bene di consumo trasportate settimanalmente, che possiamo associare alle variabili x1 , x2 , x3 , x4 nel seguente modo: quantit` a quantit` a quantit` a quantit` a trasportata trasportata trasportata trasportata da da da da Pomezia a Roma Pomezia a Napoli Caserta a Roma Caserta a Napoli x1 x2 x3 x4

che corrisponde in forma di tabella a Pomezia Caserta Roma x1 x3 Napoli x2 x4

Variabili decisione La funzione obiettivo ` e il costo sostenuto settimanalmente per il trasporto: z (x1 , x2 , x3 , x4 ) = x1 + 3x2 + 3.5x3 + 0.5x4 . Osserviamo che i ai = 18000 e j bj = 15600, dunque siamo nellipotesi (3.15) e supponiamo di accettare giacenze nelle origini. Poich` e i due stabilimenti hanno capacit` a produttiva limitata deve essere x1 + x2 10000 x3 + x4 8000. Poich` e si vuole garantire il rifornimento medio settimanale (senza giacenza), deve essere x1 + x3 = 11000 x2 + x4 = 4600. Inne evidentemente deve risultare xi 0, i = 1, 2, 3, 4, e quindi il problema di programmazione lineare per lindustria dellesempio ` e il seguente: min z = x1 + 3x2 + 3.5x3 + 0.5x4 x1 + x2 10000 x3 + x4 8000 x1 + x3 = 11000 x2 + x4 = 4600 xi 0, i = 1, 2, 3, 4.

38

3.3.3

Un problema di Yield Management ferroviario

Una compagnia ferroviaria vende i biglietti per il treno che eettua il percorso dalla citt` a A (Roma) alla B (Bologna) eettuando una fermata intermedia F1 (Firenze).

x13 x12 x23

L1

L2

Figura 3.4: Un treno con percorso composto da due tratte L1 , L2 e tre Origini-Destinazione (1,2), (2,3), (1,3)
Le tarie sono ssate a priori e dipendono solo dalla distanza tra le origini-destinazioni. In particolare i prezzi in Euro (1a classe) per per ciascuna possibile Origine-Destinazione (O-D) coperta dal treno sono riportati nella Tabella 3.3.3.

O-D Taria

A-F1 42,35

A-B 53,20

F1 -B 18,59

Tabella 3.1: Tarie per le tre possibili O-D coperte dal treno
Il numero di posti disponibili sul treno ` e pari a 700. Allinizio del periodo di prenotazione la domanda per ciascuna origine-destinazione (O-D) ` e incerta, ma ` e nota una previsione sulla domanda il cui valor (medio) ` e riportato in Tabella 3.3.3.

O-D

A-F1 420

A-B 355

F1 -B 335

Tabella 3.2: Domanda prevista per le tre possibili O-D coperte dal treno
Il problema consiste nel determinare quanti posti vendere su ciascuna Origine -Destinazione (O-D) coperta dal treno in modo da massimizzare il protto. Formulazione. Si vuole costruire un modello di Programmazione Lineare che rappresenti il problema in analisi tenendo presente i requisiti richiesti. Si assume che la domanda eettiva per ciascuna origineDestinazione sar` a almeno pari al valor medio .

39

` naturale associare la variabili di decisione alle quantit` Variabili. E a di posti prenotabili su ciascuna Origine-Destinazione possibile. In questo caso, sono le tre variabili x12 , x13 e x23 che rappresentano rispettivamente i posti prenotabili sulla tratta A-F1 , A-B, F1 -B. ` rappresentata dal protto (atteso) relativo alla vendita e quindi ` Funzione obiettivo. E e data da 42, 35x12 + 53, 20x13 + 18, 59x23 . Questa espressione naturalmente deve essere massimizzata. Vincoli. Osserviamo innanzitutto che, poich e per ipotesi si avranno almeno domande per ciascuna Origine-Destinazione, ` e necessario imporre i vincoli x12 420 x13 355 x23 335 in quanto non ` e sensato prenotare pi` u posti della domanda eettiva. Inoltre devono essere imposti i vincoli legato alla capacit` a di posti del treno. In particolare, nel tratto da A ad F1 sono presenti sia i viaggiatori che si recano da A ad F1 che quelli che vanno da A ad B. cos nel tratto dal F1 a B sono presenti sia i viaggiatori che vanno da A ad B che quelli che vanno da F1 a B. Avremo quindi 2 vincoli x12 + x13 700 x23 + x13 700 Inne si deve esplicitare il vincolo di non negativit` a sulle variabili cio` e x12 , x23 , x13 0. In principio le variabili rappresentano dei posti, e quindi si dovrebbero esplicitare anche i vincoli di interezza. Questi vincoli possono essere omessi come sar` a chiarito in un prossimo capitolo. Quindi la formulazione nale ` e max 42, 35x12 + 53, 20x13 + 18, 59x23 x12 + x13 700 x23 + x13 700 0 x12 420 0 x13 355 0 x23 335 (x12 , x23 , x13 intere)

3.3.4

Minimizzazione dello scarto massimo

Un caso di particolare interesse nei problemi di approssimazione del tipo 2.4.5 consiste nel caso in cui sono noti n punti del piano (xi , yi ) che possono corrispondere a dati sperimentali o a misurazioni e si vuole approssimare la funzione y = (x) con un polinomio di primo grado (ovvero una retta) del tipo y = ax + b in cui vuole minimizzare 1. minimizzazione del massimo valore assoluto dellerrore min max |ei (x)|.
1im

2. minimizzazione della somma dei valore assoluto dellerrore


m

min
i=1

|ei (x)|.

40

Soluzione Si vuole costruire un modello di Programmazione Lineare utilizzando le trasformazioni nel paragrafo 3.2. Variabili. Le variabili sono naturalmente i valori di a, b R. Funzione obiettivo min max. Nel primo caso la funzione obiettivo ` e f (m, q ) = max {|at + b y (t)|} = max{|b|, |a + b 1|, |2a + b 4|, |3a + b 9|}.
t=0,1,2,3

Vincoli. Non ci sono vincoli espliciti, ma per poter ricondurre il problema di min max{|b|, |a + b 1|, |2a + b 4|, |3a + b 9|}
a,b

ad un problema di Programmazione Lineare ` e necessario introdurre una variabile aggiuntiva x R ed i vincoli max{|b|, |a + b 1|, |2a + b 4|, |3a + b 9|} x. Si ottiene il problema di PL: mina,b,x x x b x x a + b 1 x x 2a + b 4 x x 3a + b 9 x x 0.

osserviamo che il vincolo x 0 ` e implicato dagli altri vincoli e dunque puo essere eliminato. Funzione obiettivo somma di moduli. Nel secondo caso la funzione obiettivo ` e f (m, q ) =
t=0,1,2,3

|at + b y (t)| = |b| + |a + b 1| + |2a + b 4| + |3a + b 9|.

Vincoli. Non ci sono vincoli espliciti, ma per poter ricondurre il problema di min (|b| + |a + b 1| + |2a + b 4| + |3a + b 9|)
a,b

ad un problema di Programmazione Lineare ` e necessario introdurre le variabile aggiuntive xi R, i = 1, . . . , 4 ed i vincoli |b| x1 |a + b 1| x2 |2a + b 4| x3 |3a + b 9| x4 .

Si ottiene il problema di PL: min(a,b)R2 ,xR4 x1 + x2 + x3 + x4 x1 b x1 x2 a + b 1 x2 x3 2a + b 4 x3 x4 3a + b 9 x4 . osserviamo che anche in questo caso il vincolo x 0 ` e implicato dagli altri vincoli e dunque puo essere eliminato.

41

Capitolo 4

Soluzione graca di problemi PM in 2 variabili


In questo paragrafo si vuole fornire una interpretazione geometrica di un problema di Programmazione matematica. In particolare, quando un problema di Programmazione matematica ` e denito solamente in due variabili, si pu` o rappresentare ecacemente il problema sul piano cartesiano e si pu` o determinare una sua soluzione in maniera elementare con semplici deduzioni geometriche. Le situazioni che verranno presentate nel seguito vogliono rappresentare un punto di partenza intuitivo per la trattazione di problemi di Programmazione Lineare in n variabili; i risultati che verranno dedotti per via elementare nel caso bidimensionale trovano, infatti, una generalizzazione consistente nel caso di un generico problema di Programmazione Lineare.

4.1

Rappresentazione di vincoli nel piano cartesiano

In questo paragrafo si richiamano le rappresentazioni geometriche nel piano di alcune curve note in modo analitico.

4.1.1

Vincoli lineari
a1 x1 + a2 x2 = c (4.1)

Nel piano cartesiano Ox1 x2 lequazione lineare

rappresenta una retta che partiziona il piano in due semipiani. Ciascun semipiano ` e caratterizzato da punti P (x1 , x2 ) che soddisfano la disequazione ax1 + bx2 c oppure la disequazione ax1 + bx2 c. Quindi ogni disequazione del tipo ax1 + bx2 c oppure ax1 + bx2 c

individua univocamente un semipiano. Si riporta, ora, un semplice risultato geometrico che verr` a utilizzato nel seguito. Lemma 4.1.1 Si considera una famiglia di rette parallele a1 x1 + a2 x2 = c (4.2)

42

con a1 , a2 IR ssati e con c IR. Il vettore a =

a1 individua una direzione ortogonale alle a2 rette della famiglia (4.2) ed ` e orientato dalla parte in cui sono le rette della famiglia ottenute per valori crescenti della c, cio` e verso il semipiano in cui risulta a1 x1 + a2 x2 c.

Dimostrazione. Sia x un vettore di componenti x1 e x2 . La famiglia di rette (4.2) pu` o essere scritta in forma vettoriale aT x = c. Siano ora x ez due punti appartenenti alla retta aT x = c. Risulta quindi aT z =c e aT x =c

e sottraendo membro a membro queste due uguaglianze si ottiene aT ( zx ) = 0. Quindi il vettore a ` e ortogonale al vettore z x che individua la direzione della famiglia di rette cio` e il vettore a rappresenta una direzione ortogonale alla famiglia di rette (4.2). Si consideri ora un punto x = (x1 , x2 )T appartenente alla retta aT x = c e un punto y = (y1 , y2 )T tale che aT y c. Si vuole dimostrare che il punto y appartiene al semipiano individuato dalla retta aT x = c verso il quale ` e orientato il vettore a. Infatti, per le ipotesi fatte, si ha aT y c e aT x =c e sottraendo membro a membro queste due relazioni si ottiene aT ( yx ) 0 e questo signica che langolo che il vettore y x forma con il vettore a deve essere acuto e quindi il vettore a deve essere orientato verso il semipiano ove si trova il punto y , cio` e il semipiano individuato dalla diseguaglianza aT x c. (Figura 4.1) Come esempio del risultato riportato dal lemma appena dimostrato, si consideri la disug3 uaglianza lineare 3x1 + x2 6. Il vettore a = individua una direzione ortogonale alla retta 1 3x1 + x2 = 6 ed ` e orientato verso il semipiano individuato dalla disuguaglianza 3x1 + x2 6 (Figura 4.2). Nella pratica, per determinare quale dei due semipiani ` e individuato dalla disuguaglianza lineare a1 x1 +a2 x2 c si pu` o procedere semplicemente in questo modo: dopo aver rappresentato la retta a1 x1 + a2 x2 = c per individuare qual ` e il semipiano di interesse, si pu` o scegliere un punto P del piano (lorigine degli assi ` e il pi u semplice) e valutare lespressione a1 x1 + a2 x2 in questo punto; se il valore cos` ottenuto ` e maggiore o uguale di c allora il semipiano individuato dalla disuguaglianza lineare a1 x1 + a2 x2 c ` e quello contenente il punto P ; in caso contrario ` e quello opposto.

4.1.2

Vincoli quadratici

Nel piano cartesiano Ox1 x2 le equazioni quadratiche rappresentano delle coniche. Consideriamo delle equazioni del tipo h(x1 , x2 ) = 0 polinomi di grado massimo pari a due. Ci limiteremo a richiamare le equazioni h = 0 della circonferenza e della parabola.

43

ax>

y _ x ax
T C

Figura 4.1: Interpretazione geometrica del Lemma 4.1.1

3x 1+ x2

6 a 1111111 0000000 0000000 1111111


2

3x 1+ x2

>

Figura 4.2: Rappresentazione del vincolo lineare 3x1 + x2 6 44

Nel piano cartesiano Ox1 x2 lequazione quadratica h(x1 , x2 ) = (x1 a1 )2 + (x2 a2 )2 r2 = 0 (4.3)

rappresenta una circonferenza di centro C=(a1 a2 )T e raggio ssato r. Il gradiente di h ` e dato h(x) = 2(x1 a1 ) 2(x2 a2 ) =2 x1 x2 a1 a2

Ad una circonferenza possono essere associati due insiemi S = {x IR2 : (x1 a1 )2 + (x2 a2 )2 r2 } S = {x IR2 : (x1 a1 )2 + (x2 a2 )2 r2 } la cui intersezione ` e la circonferenza stessa. S ` e linsieme dei punti interni alla circonferenza, mentre S rappresenta i punti esterni. Nel piano cartesiano Ox1 x2 le equazioni quadratiche riconducibili alla forma h(x1 , x2 ) = x2 a1 x2 1 + a2 x1 + a3 = 0 h(x1 , x2 ) = x1 a1 x2 2 + a2 x2 + a3 = 0 rappresentano rispettivamente una parabola con asse parallelo allasse delle ordinate e ascissa 2 del vertice pari a 2a a1 e una parabola con asse parallelo allasse delle ascisse e ordinata del a2 vertice pari a 2a1 . Consideriamo senza perdere di generalit` a la prima delle due equazioni e gli insiemi individuati dai due vincoli di disuguaglianza corrispondenti S = {x IR2 : x2 a1 x2 1 + a2 x1 + a3 } S = {x IR2 : x2 a1 x2 1 + a2 x1 + a3 } S ` e linsieme dei punti che si trova internamente alla parabola stessa e S ` e linsieme dei punti esterni.

4.2

Rappresentazione di funzioni obiettivo

Quanto esposto nel paragrafo precedente ` e utile anche per esaminare la variazione di una funzione lineare/quadratica che rappresenta la funzione obiettivo di un problema di Programmazione Matematica. In particolare, data una generica funzione obiettivo f (x1 , x2 ), si rappresentano le curve di livello della funzione ovvero le curve f (x1 , x2 ) = k (4.4)

ottenuta al variare di k . Se il problema ` e di minimizzazione, si cercher` a di ottenere un valore pi u basso possibile per la k in corrispondenza di valori ammissibili per x1 e x2 ; viceversa, se il problema ` e di massimizzazione, si cercher` a ottenere un valore pi u alto possibile per la k .

4.2.1

Funzioni lineari

In due variabili, la funzione obiettivo di un problema di Programazione Lineare ` e unespressione del tipo f (x1 , x2 ) = c1 x1 + c2 x2 da massimizzare o da minimizzare. Per rappresentare questa

45

funzione obiettivo su un piano cartesiano Ox1 x2 si considera la famiglia di rette parallele (k = C) c1 x1 + c2 x2 = C (4.5) ottenuta al variare di C , che rappresentano le rette di livello della funzione. Sulla base di quanto esposto nel paragrafo precedente, valori superiori della C si determinano traslando le rette nel c1 verso individuato dal vettore che rappresenta, quindi, una direzione di crescita per la c2 funzione c1 x1 + c2 x2 . Ovviamente, la direzione opposta sar` a una direzione di decrescita. Quindi, geometricamente, un problema di massimizzazione consister` a nel considerare la traslazione nel verso della direzione di crescita della funzione obiettivo, mentre in un problema di minimizzazione si considera la traslazione nel verso opposto (Figura 4.3)
x2

12 11 10 9 8 7 6 5 4 3 2 1 x1 direzione di crescita

2 x 1 +x 2=8

6 2 x +x =12 1 2 2 x 1 +x 2=10

Figura 4.3: Rette di livello della funzione 2x1 + x2

4.2.2

Funzioni quadratiche
f (x1 , x2 ) = (x1 a1 )2 + (x2 a2 )2 (4.6)

In due variabili, consideriamo la funzione obiettivo quadratica

Per rappresentare questa funzione obiettivo su un piano cartesiano Ox1 x2 si considera la famiglia di curve (k = r2 ) (4.7) (x1 a1 )2 + (x2 a2 )2 = C 2

46

ottenuta al variare di C , che rappresentano circonferenze concentriche di raggio variabile C . Se il problema ` e di massimizzazione si vuole trovare il massimo valore di raggio ottenibile in corrispondenza di valori ammissibili per x1 e x2 ; viceversa se si tratta di minimizzazione. Osserviamo che se il centro della circonferenza base ` e ammissibile, esso costituisce il punto di minimo globale.

4.3

Esempi di risoluzione graca

Verranno considerati alcuni esempi di problemi di Programmazione Matematica. Esempio 4.3.1 Sia la funzione obiettivo da minimizzare: f (x) = x1 e sia linsieme ammissibile F denito dai vincoli: (x1 3) + (x2 2) = 13 2 (x1 4) + x2 2 16 Determinare gracamente, se esiste, un punto di minimo. Soluzione. Questo esempio evidenzia geometricamente la denizione di minimo locale vincolato in un problema a 2 variabili.
2 2

x2

B C

x1

Figura 4.4: Soluzione graca in I R2 dellEsempio 4.3.1.


Linsieme ammissibile F , rappresentato in Figura (4.4), ed ` e dato dallarco di circonferenza e esso ` e compatto e f ` e continua, in base al Teorema di ACB (tratteggiato in verde). Poich Weierstrass, lesistenza di un minino globale ` e assicurata.

47

Le curve di livello x1 = k sono rette parallele allasse delle ordinate con valore crescente allaumentare di k . Si determina il punto di minimo globale nel punto A = (0, 0)T di valore f = 0. Si osserva che il punto C ` e un massimo globale, mentre il punto B risulta essere un minimo locale. Esempio 4.3.2 Sia dato il problema di ottimizzazione vincolata min 2x1 + 3x2 6x1 + x2 2 x2 12 x1 4x2 2 x1 , x2 0 Determinare, se esiste, un punto di minimo globale. Esempio 4.3.3 Si consideri la funzione obiettivo: f (x) = 1 (x1 2 + x2 2 ) 2

e sia linsieme ammissibile F denito dai vincoli: x1 + x2 = 1 2 (x1 1) + x2 2 Determinare se esiste un punto di minimo. Soluzione. Linsieme ammissibile F e dato dal segmento di retta che ha per estremi i punti x = 1
1 1 , 2 2 2 2 T 1 4

ex = 1+

1 1 , 2 2 2 2

T.

Lesistenza di una soluzione e garantita dal Teorema di Weierstrass poich e la funzione obiettivo e continua e linsieme ammissibile e compatto. Le curve di livello della funzione obiettivo 1 (x1 2 + x2 2 ) = r2 2 sono circonferenze di centro lorigine e raggio r. Esempio 4.3.4 Si consideri ora il problema di allocazione ottima di risorse del Paragrafo 2.4.1 che ` e rappresentato dal seguente problema di Programmazione Lineare: max 7x1 + 10x2 x1 + x2 750 x1 + 2x2 1000 x2 400 x1 0, x2 0. Sul piano cartesiano Ox1 x2 ciascun vincolo individua un semipiano. In particolare, in Figura 4.6 ` e evidenziato il semipiano individuato dal primo vincolo x1 + x2 750.

48

Figura 4.5: Soluzione graca in I R2 dellEsempio 4.3.3.


In Figura 4.7 ` e evidenziato il semipiano individuato dal secondo vincolo x1 + 2x2 1000. Inne in Figura 4.8 ` e evidenziato il semipiano individuato dal terzo vincolo x2 400. Ovviamente i vincoli di non negativit` a delle variabili x1 0 e x2 0 rappresentano rispettivamente il semipiano delle ascisse non negative e il semipiano delle ordinate non negative. Linsieme ammissibile del problema di Programmazione Lineare che stiamo esaminando ` e dato quindi dallintersezione di tali semipiani e si pu` o indicare con S = (x1 , x2 ) IR2 | x1 + x2 750, x1 + 2x2 1000, x2 400, x1 0, x2 0 . Tale regione di piano prende nome di regione ammissibile, ` e un insieme convesso ed ` e rappresentato in Figura 4.9. Tutti i punti P (x1 , x2 ) appartenenti a questa regione sono punti dellinsieme ammissibile del problema e quindi tutti i punti di questa regione costituiscono soluzioni ammissibili del problema. Si consideri ora la funzione obiettivo 7x1 + 10x2 e si consideri la famiglia di rette 7x1 + 10x2 = C ottenute al variare del parametro C . Esse costituiscono le curve di livello della funzione in due variabili f (x1 , x2 ) = 7x1 + 10x2 che sono ovviamente delle rette come rappresentato in Figura 4.10. In riferimento al problema di allocazione ottima rappresentato dal problema di Programmazione Lineare che stiamo esaminando, il parametro C rappresenta il protto totale che deve

49

Figura 4.6: Semipiano individuato dal vincolo x1 + x2 750

Figura 4.7: Semipiano individuato dal vincolo x1 + 2x2 1000 50

Figura 4.8: Semipiano individuato dal vincolo x2 400

Figura 4.9: La regione ammissibile S 51

Figura 4.10: Curve di livello della funzione f (x1 , x2 ) = 7x1 + 10x2 e punto di ottimo
essere massimizzato. Per C = 0 si ottiene la linea di livello passante per lorigine del piano Ox1 x2 . Ovviamente, scegliendo x1 = 0 e x2 = 0 (che ` e un punto ammissibile in quanto (0, 0) S ) si ottiene il protto totale nullo. Allaumentare del valore di tale protto, cio` e allaumentare del valore della costante C , gracamente si ottengono rette parallele alla retta di livello passante per lorigine traslate nella direzione di crescita della funzione 7x1 + 10x2 7 data dal vettore (Figura 4.10). Poich e si desidera massimizzare la funzione obiettivo, 10 si cercher` a di raggiungere il valore pi u alto per la C ottenuto scegliendo per x1 e x2 valori ammissibili cio` e tali che (x1 , x2 ) S . Osservando la rappresentazione graca della regione ammissibile S si deduce che allaumentare di C , le rette di livello della funzione obiettivo intersecano la regione ammissibile nch e C 6000. Tale valore ` e ottenuto per x1 = 500 e x2 = 250 e non esistono altri punti della regione ammissibile in cui la funzione obiettivo assume valori maggiori. Il valore 6000 ` e, quindi, il massimo valore che la funzione obiettivo pu` o raggiungere soddisfacendo i vincoli. Tale soluzione ottima ` e raggiunta in corrispondenza del punto P di coordinate (x1 , x2 ) = (500, 250); tale punto non ` e un punto qualsiasi, ma costituisce quello che nella geometria piana viene detto vertice del poligono convesso che delimita la regione ammissibile. Il fatto che lottimo del problema ` e raggiunto in corrispondenza di un vertice della regione ammissibile non ` e casuale, ma come si vedr` a in seguito, ` e una caratteristica fondamentale di un generico problema di Programmazione Lineare. Si osservi n dora che la frontiera della regione ammissibile ` e denita dalle rette x1 + x2 = 750, x1 + 2x2 = 1000, x2 = 400, x1 = 0, x2 = 0

52

e che ogni intersezione di due di queste rette ` e un vertice della regione ammissibile; il numero di queste possibili intersezioni (non tutte necessariamente appartenenti alla regione ammissibile) ` e ovviamente pari al pi u a 10. Si osservi, inne, che nel punto di ottimo sono attivi i vincoli x1 + x2 750 e x1 + 2x2 1000 mentre non ` e attivo il vincolo x2 400.

Figura 4.11: Esempio di soluzione non unica


Nel caso particolare che abbiamo esaminando, la soluzione ottima determinata ` e unica, ma in generale pu` o accadere che le rette di livello della funzione obiettivo siano parallele ad un segmento del perimetro del poligono che delimita la regione ammissibile; in questo caso potrebbe accadere che esistano pi u punti ammissibili in cui la funzione assume lo stesso valore ottimo e quindi la soluzione non sarebbe pi u unica; nel problema in esame, ci` o accadrebbe, ad esempio, se la funzione obiettivo fosse cx1 + 2cx2 con c costante reale positiva (Figura 4.11); infatti, tutti i punti del segmento AB rappresentano soluzioni ottime. Tuttavia, anche in questo caso si pu` o sempre trovare un vertice che costituisce una soluzione ottima.

Esempio 4.3.5 Consideriamo ora un problema di miscelazione descritto nel paragrafo 3.3.1 che ` e rappresentato

53

dal seguente problema di Programmazione Lineare: min(400x1 + 600x2 ) 140x1 70 20x1 + 10x2 30 25x1 + 50x2 75 x1 0, x2 0 Nelle gure che seguono rappresentati i vincoli lineari di questo problema; In particolare nella Figura 4.12 ` e evidenziato il semipiano individuato dal vincolo 140x1 70. Nella Figura 4.13

Figura 4.12: Semipiano individuato dal vincolo 140x1 70


e nella Figura 4.14 sono evidenziati rispettivamente i semipiani individuati dai vincoli 20x1 + 10x2 30 e 25x1 + 50x2 75. Ovviamente i vincoli di non negativit` a delle variabili x1 0 e x2 0 rappresentano rispettivamente il semipiano delle ascisse non negative e il semipiano delle ordinate non negative. Linsieme ammissibile del problema di Programmazione Lineare che stiamo esaminando ` e dato quindi dallintersezione di tali semipiani e si pu` o indicare con S = (x1 , x2 ) IR2 | 140x1 70, 20x1 + 10x2 30, 25x1 + 50x2 75, x1 0, x2 0 . Linsieme S rappresenta la regione ammissibile del problema di Programmazione Lineare in esame ed ` e rappresentata in Figura 4.15. Tutti i punti P (x1 , x2 ) appartenenti a questa regione sono punti dellinsieme ammissibile del problema e quindi tutti i punti di questa regione costituiscono soluzioni ammissibili del prob-

54

Figura 4.13: Semipiano individuato dal vincolo 20x1 + 10x2 30

Figura 4.14: Semipiano individuato dal vincolo 25x1 + 50x2 75 55

Figura 4.15: La regione ammissibile S


lema. Si osservi che, a dierenza della regione ammissibile del problema considerato nellesempio precedente, la regione ammissibile S ` e illimitata. Ora, tracciando le curve di livello della funzione obiettivo 400x1 +600x2 si ottiene la famiglia di rette 400x1 + 600x2 = C. Trattandosi di un problema di minimizzazione si vuole determinare il valore pi u basso di C ottenuto scegliendo per x1 e x2 valori ammissibili cio` e tali che (x1 , x2 ) S . Osservando la rappresentazione graca della regione ammissibile S e osservando che la direzione di decrescita 400 ` e quella opposta al vettore , si deduce che al diminuire di C , le rette di livello della 600 funzione obiettivo intersecano la regione ammissibile nch e C 1000 (Figura 4.16) Tale valore ` e ottenuto per x1 = 1 e x2 = 1 e non esistono altri punti della regione ammissibile in cui la funzione obiettivo assume valori minori. Il valore 1000 ` e, quindi, il minimo valore che la funzione obiettivo pu` o raggiungere soddisfacendo i vincoli. Tale soluzione ottima ` e raggiunta in corrispondenza del punto P di coordinate (x1 , x2 ) = (1, 1); si osservi che anche in questo caso tale punto ` e un punto particolare della regione ammissibile. Si osservi, inne che in questo punto sono attivi i vincoli 20x1 + 10x2 30 e 25x1 + 50x2 75 mentre risulta non attivo il vincolo 140x1 70. Abbiamo esaminato due esempi di interpretazione geometrica e soluzione graca di problemi di Programmazione Lineare in due variabili. In entrambe i problemi ` e stato possibile

56

Figura 4.16: Curve di livello della funzione 400x1 + 600x2 e punto di ottimo
determinare una soluzione ottima. Tuttavia ` e facile dedurre, sempre per via geometrica, che un problema di Programmazione Lineare pu` o non ammettere soluzione ottima. Ad esempio, se nellEsempio 4.3.4 sostituiamo il vincolo x2 400 con il vincolo x2 1000, la regione ammissibile sarebbe vuota nel senso che non esisterebbe nessun punto del piano che soddisfa tutti i vincoli. In questo caso il problema risulterebbe inammissibile e questo indipendentemente dalla funzione obiettivo e dal fatto che il problema ` e in forma di minimizzazione o massimizzazione. Un altro esempio di problema di Programmazione Lineare che non ammette soluzione ottima si pu` o ottenere considerando il problema dellEsempio 4.3.5 e supponendo che la funzione obiettivo debba essere massimizzata anzich e minimizzata. In questo caso nella regione ammissibile (che ` e illimitata) la funzione obiettivo pu` o assumere valori arbitrariamente grandi cio` e tali che comunque scelto un valore M > 0 esiste un punto in cui la funzione obiettivo assume valore maggiore di M ; questo signica che il problema ` e illimitato superiormente e quindi non pu` o esistere una soluzione ottima. Sulla base di queste considerazioni sulla geometria di un problema di Programmazione Lineare (PL) in due variabili si pu` o intuire che le situazioni che si possono vericare sono le seguenti:

57

il problema di PL ammette soluzione ottima (che pu` o essere o non essere unica) in un vertice del poligono convesso che delimita la regione ammissibile; il problema di PL non ammette soluzione ottima perch e la regione ammissibile ` e vuota la regione ammissibile ` e illimitata e la funzione obiettivo ` e illimitata superiormente (se il problema ` e di massimizzazione) o illimitata inferiormente (se il problema ` e di minimizzazione).

Quindi se si suppone che esiste un punto ammissibile, cio` e che la regione ammissibile sia non vuota, allora sembrerebbe di poter dedurre che o il problema di Programmazione Lineare ammette soluzione ottima in un vertice del poligono convesso che delimita la regione ammissibile oppure ` e illimitato. Questi asserti, ora semplicemente dedotti intuitivamente per via geometrica, hanno in eetti una validit` a generale e verranno enunciati e dimostrati in maniera rigorosa nel capitolo 10. Come ultima considerazione intuitiva si vuole citare la possibilit` a che la regione ammissibile sia
x
2

1111111111111111111111111111 0000000000000000000000000000 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111

Figura 4.17: Regione ammissibile costituita da una striscia di piano


costituita da una striscia di piano, cio` e dalla porzione di piano compresa tra due rette parallele (Figura 4.17). In questo caso non esistono vertici per la regione ammissibile e il problema risulta

58

illimitato ad eccezione del caso particolare in cui le rette di livello della funzione obiettivo sono parallele alle rette che delimitano la striscia di piano; in questo caso si hanno innite soluzioni. La non esistenza di vertici in questo caso si intuisce essere legata al fatto che la regione ammissibile costituita da una striscia di piano contiene rette. Infatti nei casi delle regioni ammissibili S e S dei problemi di Programmazione Lineare dellEsempio 4.3.4 e dellEsempio 4.3.5 non esistono rette interamente contenute in S o in S . Anche la regione illimitata S pu` o contenere semirette, ma non rette. Nel caso in cui la regione ammissibile non contiene nemmeno semirette (che ` e il caso della regione S dellEsempio 4.3.4), cio` e la regione ammissibile sia chiusa e limitata, ` e possibile garantire lesistenza di un minimo (e un massimo) assoluto per funzioni continue grazie al teorema di Weierstrass.

59

Capitolo 5

Problemi di ottimizzazione convessa e concava


Tra i problemi di Ottimizzazione sono di particolare interesse i cosiddetti problemi convessi. Per poter denire correttamente cosa si intende per problema convesso ` e necessario introdurre alcuni concetti preliminari.

5.1

Insiemi Convessi

Denizione 5.1.1 Un vettore y in I Rn si dice combinazione convessa di p 1 vettori 1 p x , . . . , x se risulta


p p

y=
i=1

i x i
i=1

i = 1

i 0 i = 1, . . . , p.

Possiamo allora introdurre la seguente denizione

Denizione 5.1.2 Siano x e y due punti in I Rn . Linsieme dei punti di I Rn ottenuti come z = (1 )x + y, al variare di nellintervallo [0, 1] viene denito come segmento chiuso di estremi x e y e viene sinteticamente indicato con [x, y ]. Esempio 5.1.3 Nella gura 5.1 ` e rappresentato il segmento in I R2 avente per estremi i punti x = (1, 1)T e y = (8, 5)T . Per = 0 ritroviamo il punto x, mentre per = 1 ritroviamo il punto y ; i punti segnati nella gura come xa , xb e xc corrispondono rispettivamente a valori di pari a 0.25, 0.5 e 0.75.

60

x2 = 0.75

x2

4 = 0.5 3 = 0.25 2 xa =0 1 x1 xb

xc

x1 1 2. 75 4. 5 6. 25 8

Figura 5.1: Esempio di segmento.


Dalla gura 5.1 risulta ovvio che il concetto di segmento ` e la generalizzazione, al caso di I Rn dell usuale concetto di segmento valido nel piano. Notiamo anche come, nel caso in cui gli estremi appartengano ad I R1 , e sono quindi due numeri (scalari), diciamo a e b, il concetto di segmento di estremi a e b coincida con quello di intervallo [a, b], fatto che giustica la notazione [x, y ] impiegata per indicare il segmento.

Denizione 5.1.4 Un insieme X I Rn ` e convesso se per ogni coppia di punti appartenenti allinsieme, appartengono allinsieme anche tutti i vettori ottenibili come loro combinazione convessa. Utilizzando il concetto di segmento chiuso, la denizione di insieme convesso pu` o essere riformulata nel modo seguente: Un insieme X ` e convesso se per ogni coppia di vettori x, y X si ha [x, y ] X . Dalla denizione segue che linsieme vuoto e linsieme costituito da un solo vettore sono insiemi convessi (banali). Il pi` u semplice insieme convesso non banale ` e il segmento di estremi x, y I Rn . Esempio 5.1.5 In I R2 gli insiemi (a) , (b) della gura 5.2 sono convessi, mentre gli insiemi (c), (d) della stessa gura non lo sono. Infatti agli insiemi (c),(d) appartengono coppie di punti, quali quelle segnate nella gura, tali che il segmento che li congiunge presenta dei punti non appartenenti allinsieme; ci` o non avviene invece comunque si prendano coppie di punti negli insiemi (a) e (b). Una importante propriet` a degli insiemi convessi ` e espressa dal seguente teorema.

61

d a b c

Figura 5.2: Insiemi convessi e non convessi.


Teorema 5.1.6 Lintersezione di due insiemi convessi ` e un insieme convesso. Dimostrazione: Siano X1 , X2 I Rn due insiemi convessi e sia X = X1 X2 la loro intersezione. Siano x ed y due vettori in X , allora x, y X1 ed x, y X2 . Poich e X1 ed X2 sono insiemi convessi abbiamo che [x, y ] X1 e che [x, y ] X2 . Ma allora [x, y ] X e linsieme X ` e convesso 2 Esempio 5.1.7 Linsieme (e) della gura 5.2 ` e dato dallintersezione di due insiemi convessi ed ` e convesso Dal Teorema (5.1.6) si pu` o derivare, con un semplice ragionamento induttivo, il seguente corollario. Corollario 5.1.8 Lintersezione di un numero nito di insiemi convessi ` e un insieme convesso. Passiamo ora a considerare dei particolari insiemi convessi che rivestono un ruolo importante nella teoria della programmazione lineare. Consideriamo lespressione a1 x1 + . . . + an xn = b che, con notazione vettoriale possiamo scrivere aT x = b, con a I Rn e b I R. Possiamo allora dare le seguenti denizioni.

Denizione 5.1.9 Sia a un vettore di I Rn e b un numero reale. Linsieme H = {x I Rn : aT x = b} ` e detto iperpiano denito dallequazione aT x = b. Gli insiemi S S = = {x I Rn : aT x b} {x I Rn : aT x b}

sono detti semispazi chiusi deniti dalle disequazioni aT x b e aT x b. Nel caso dello spazio I R2 il concetto di iperpiano coincide con quello di retta, mentre nel caso 3 dello spazio I R il concetto di iperpiano coincide con quello di piano. In maniera intuitiva, i semispazi possono essere pensati come l insieme dei punti che giacciono da una stessa parte rispetto alliperpiano.

62

x2

5 4 3 2 1

10x 1 + 5x2 25

x1

10x + 5x =25 10x1 + 5x2 25

Figura 5.3: Retta e semipiani individuati da unequazione lineare.


Esempio 5.1.10 Con riferimento alla gura 5.3, liperpiano (= retta) 10x1 + 5x2 = 25 divide lo spazio (= piano) in due semispazi: S = {x I R2 : 10x1 + 5x2 25}, indicato in grigio nella 2 gura, e S = {x I R : 10x1 + 5x2 25}, indicato in bianco nella gura. Notiamo che liperpiano H fa parte di tutti e due i semispazi e che lintersezione dei due semispazi coincide con liperpiano. In termini insiemistici abbiamo che H S, H S, S S = H.

I semispazi e gli iperpiani sono insiemi convessi. Teorema 5.1.11 Un semispazio chiuso ` e un insieme convesso. Dimostrazione: Dimostreremo il teorema per un semispazio S = {x I Rn : aT x b}, la dimostrazione per il semispazio S ottenuto invertendo il verso della disequazione ` e analoga. Consideriamo due generici vettori x ed y appartenenti ad S , vogliamo dimostrare che ogni vettore z [x, y ] appartiene ad S , ovvero soddisfa la relazione aT z b. Sia z = x + (1 )y con 0 1. Poich e x ed y appartengono ad S abbiamo che T T a x b e a y b. Inoltre, poich e ed 1 sono reali non negativi abbiamo che aT (x + (1 )y ) = aT x + (1 )aT y b + (1 )b = b e quindi che aT z b 2

Utilizzando il Teorema (5.1.11) e il Teorema (5.1.6) e ora facile dimostrare che anche un iperpiano ` e un insieme convesso.

63

Corollario 5.1.12 Un iperpiano ` e un insieme convesso. Dimostrazione: Un iperpiano ` e lintersezione di due semispazi chiusi (S e S ). Per il Teorema (5.1.11) un semispazio chiuso ` e un insieme convesso mentre, per il Teorema (5.1.6), lintersezione di due insiemi convessi ` e un insieme convesso. 2

5.1.1

Poliedro e punti estremi di un insieme convesso

In particolare ` e usuale introdurre la seguente denizione: Denizione 5.1.13 Un insieme P I Rn ` e un poliedro se ` e lintersezione di un numero nito di semispazi chiusi e iperpiani. In I R3 possibili poliedri sono i cubi, i tetraedi ecc. In R2 sono poliedri, ad esempio, i segmenti, le rette, poligoni piani, ecc. Naturalmente, risulta: Un poliedro ` e un insieme convesso. Introduciamo ora il concetto di punto estremo, che ha un ruolo molto importante nello studio dei problemi di Programmazione lineare. Denizione 5.1.14 (Punto estremo) Sia C Rn un insieme convesso. Un punto x C si dice punto estremo di C se non pu` o essere espresso come combinazione convessa di due punti di C distinti da x, o, equivalentemente, se non esistono y, z C con z = y tali che x = (1 )y + z, con 0 < < 1. Sono esempi di punti estremi: per un cerchio, i punti della circonferenza che lo delimita; per un segmento [x1 , x2 ], gli estremi x1 , x2 ; per un triangolo, i suoi vertici (non sono punti estremi i punti dei lati che non siano vertici). Linsieme dei punti estremi di un insieme convesso C verr` a indicato con il simbolo Ext(C ), ossia: Ext(C ) = {x C : x ` e punto estremo di C }. Un insieme convesso pu` o non ammettere punti estremi. Ad esempio, un iperpiano, un semispazio, una sfera aperta non hanno punti estremi. Osserviamo inoltre che Ext(C ) ` e contenuto nella frontiera di C e quindi nessun insieme convesso aperto pu` o ammettere punti estremi. Esempio 5.1.15 Nellinsieme di gura 5.4 il punto A non ` e un punto estremo, in quanto ` e interno al segmento che congiunge i punti B e C, anchessi appartenenti allinsieme; lo stesso vale per il punto D, interno al segmento [E,F]. Sono invece punti estremi dellinsieme i punti E, F, G, H.

64

B D

E
Figura 5.4: Punti estremi di un insieme.
Nel caso in cui linsieme convesso sia un poliedro, i punti estremi sono detti anche vertici.1

5.2

Funzioni convesse e concave

Denizione 5.2.1 Una funzione f (x) si dice convessa su un insieme convesso C se, presi comunque due punti y, z C risulta che: f ((1 )y + z ) (1 )f (y ) + f (z ), [0, 1]. (5.1)

La funzione f (x) si dice poi strettamente convessa se, per y, z C , y = z ,risulta f ((1 )y + z ) < (1 )f (y ) + f (z ),
1

(0, 1).

In realt` a la denizione di vertice ` e concettualmente diversa, ma si dimostra che un punto di un poliedro ` e punto estremo se e solo se ` e un vertice.

65

Denizione 5.2.2 Una funzione f (x) si dice concava su un insieme convesso C se, presi comunque due punti y, z C risulta che: f ((1 )y + z ) (1 )f (y ) + f (z ), [0, 1]. (5.2)

La funzione f (x) si dice poi strettamente concava se, per y, z C , y = z ,risulta f ((1 )y + z ) > (1 )f (y ) + f (z ), (0, 1).

Una funzione f (x) si dice (strettamente) concava su un insieme convesso C se la funzione f (x) ` e (strettamente) convessa su C . Nella (5.1) y, z, f (y ), f (z ) sono dati, e varia tra 0 e 1. Se mettiamo in esplicita evidenza la dipendenza da , introducendo la funzione ( ) = f ((1 )y + z ) otteniamo per una funzione strettamente convessa che: ( ) < (1 )(0) + (1) (0, 1) Questultima relazione mette in evidenza che, se si rappresenta gracamente nel piano (, ) la funzione ( ), il graco della funzione nellintervallo (0, 1) si trova al di sotto del segmento, detto secante, che congiunge i punti (0, (0)) e (1, (1)) e coincide solo negli estremi del segmento. Si pu` o concludere che una funzione strettamente convessa ` e caratterizzata dalla propriet` a di avere il graco sempre al di sotto di ogni sua secante. Una funzione lineare del tipo cT x + b ` e sia convessa che concava (ma NON ` e strettamente convessa o strettamente concava).

5.3

Problemi di ottimizzazione

Dal punto di vista delle propriet` a di convessit` a possiamo distinguere: - problemi di programmazione convessa: sono i problemi di minimo in cui la funzione obiettivo ` e convessa e linsieme ammissibile ` e un insieme convesso (o anche i problemi di massimo in cui la funzione obiettivo ` e concava e linsieme ammissibile ` e convesso) - problemi di programmazione concava: sono i problemi di minimo in cui la funzione obiettivo ` e concava e linsieme ammissibile ` e un insieme convesso (o anche i problemi di massimo in cui la funzione obiettivo ` e convessa e linsieme ammissibile ` e convesso) - problemi generali, in cui non sono soddisfatte tali condizioni. Riconoscere che un problema di ottimizzazione ` e convesso o concavo fornisce importanti informazioni qualitative sulle sue soluzioni. Osserviamo che Una problema con insieme ammissibile convesso S e funzione obiettivo lineare ` e sia convesso che concavo.

66

e dunque Una problema di Programmazione Lineare ` e sia convesso che concavo. Esempio 5.3.1 Sia dato il problema max x2 x2 x3 1 0 x1 + x2 1 x1 , x2 0,

dire se ` e convesso. Si tratta di un problema di massimo con funzione obiettivo lineare e quindi concava. Linsieme ammissibile ` e rappresentato in gura 5.5. Si tratta di un insieme convesso. Quindi il problema dato ` e convesso. Notiamo che, poich e la funzione obiettivo ` e lineare, si tratta anche di un problema di massimizzazione di una funzione convessa su insieme convesso e cio` e di un problema concavo !

1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 -0.2 -0.2

0.2

0.4

0.6

0.8

1.2

Figura 5.5: Insieme ammissibile S dellEsempio 5.3.1


Per riconoscere se un problema generale ` e convesso o concavo dobbiamo vericare che S sia un insieme convesso, e che f (x) sia convessa/concava su S , il che non ` e sempre facile. Consideriamo un insieme S denito da vincoli di uguaglianza e disuguaglianza: gi (x) 0, i = 1, . . . , m hj (x) = 0, j = 1, . . . , p. (5.3)

67

Nel caso in cui gi per i = 1, . . . , m e hj per j = 1, . . . , p siano funzioni lineari, S ` e un poliedro e quindi un insieme convesso. Se invece qualche gi o hj ` e non lineare possiamo utilizzare la seguente proposizione fornisce una condizione solo suciente per la convessit` a di S . Teorema 5.3.2 Sia g : Rn R e S = {x Rn : g (x) 0, }. Se la funzione g (x) e convessa in I Rn , allora linsieme S ` e convesso. Dimostrazione. Siano y e z due punti appartenenti a S . Per la convessit` a di g si ha g ((1 )y + z ) (1 )g (y ) + g (z ) Quindi poich e g (y ) 0 e g (z ) 0, si ottiene g ((1 )y + z ) 0 con [0, 1], Ovvero tutti i punti del segmento [y, z ] sono in S che dimostra che linsieme S i ` e convesso. possibile quindi enunciare la seguente condizione suciente. E Teorema 5.3.3 Sia S = {x Rn : gi (x) 0, i = 1, . . . , m hj (x) = 0, j = 1, . . . , p}. con [0, 1],

Se per ogni i le funzioni gi (x) sono convesse in I Rn , e per ogni j le funzioni hj sono funzioni e convesso. del tipo aT j x bj , allora linsieme S ` Dimostrazione. Linsieme ammissibile S ` e ottenuto come intersezione degli insiemi S i = {x n j n T R : gi (x) 0} e H = {x R : aj x bj = 0} che nelle ipotesi poste sono convessi per la proposizione 5.3.2 e per il Corollario 5.1.12. Il risultato segue dal Corollario 5.1.8. Otteniamo quindi la seguente condizione suciente per riconoscere se un problema ` e convesso o concavo. Teorema 5.3.4 Sia dato il Problema min f (x) gi (x) 0, i = 1, . . . , m hj (x) = 0, j = 1, . . . , p. (5.4)

Si assuma che i vincoli di disuguaglianza siano dati da funzioni gi (x) convesse in I Rn , e che i vincoli di uguaglianza siani dati da funzioni del tipo aT j x bj . Se la funzione obiettivo f (x) ` e una funzione convessa in I Rn , il Problema (5.4) ` e convesso. Se la funzione obiettivo f (x) ` e una funzione concava in I Rn , il Problema (5.4) ` e concavo. Notiamo che, la condizione suciente del Teorema 5.3.3 non ` e soddisfatta nellEsempio 5.3.1 a causa della non convessit` a del vincolo x3 x 0. 2 1

68

5.3.1

Problema di ottimizzazione convesso

I problemi di ottimizzazione convessi sono di particolare importanza per due motivi. Il primo ` e che la grande maggioranza dei problemi di ottimizzazione che si incontrano nella pratica sono convessi. Il secondo ` e che la convessit` a induce alcune propriet` a che semplicano lanalisi e la soluzione di un problema convesso. Una delle propriet` a pi` u signicative ` e la seguente: Teorema 5.3.5 [Assenza di ottimi locali] Sia S Rn un insieme convesso e f una funzione convessa su S . Allora, il problema min f (x) xS o non ha soluzione, o ha solo soluzioni globali; non pu` o avere soluzioni esclusivamente locali. Dimostrazione. La dimostrazione ` e per assurdo. Ammettiamo che esista un minimo globale x e che x sia una soluzione locale, ma non globale, di minxS f (x). Allora risulta f (x ) < f ( x). La costruzione utilizzata nella dimostrazione ` e illustrata schematicamente nella gura 5.6.

Figura 5.6: Costruzione geometrica utilizzata nella dimostrazione del Teorema 5.3.5 N.B. nella gura x e il minimo locale, e x rappresenta il minimo globale
Consideriamo il segmento [ x, x ]: per la convessit` a di f , si ha: f ((1 ) x + x ) (1 )f ( x) + f (x ) = f ( x) + (f (x ) f ( x)), per ogni [0, 1]. Il termine (f (x ) f ( x)) risulta < 0, per ogni (0, 1], e si annulla solo per = 0. Quindi, poich` e in ogni punto x ( x, x ] risulta f (z ) < f ( x), non esiste nessun intorno di raggio > 0 in cui x pu` o soddisfare la denizione di minimo locale.

69

5.3.2

Problema di ottimizzazione concavo

I problemi di programmazione concava costituiscono una classe molto ampia di problemi non convessi, che include numerose classi di problemi inerentemente dicili. La dicolt` a principale che si manifesta nella soluzione di problemi di tipo concavo risiede nel fatto che possono esssere presenti molti punti di minimo locale che non sono punti di minimo globale. In casi del genere la ricerca delle soluzioni globali pu` o divenire un problema di natura combinatoria, che pu` o richiedere, nel caso peggiore, tempi di calcolo esponenzialmente crescenti con le dimen` possibile dimostrare, in particolare, che, sotto opportune ipotesi, molti sioni del problema (E problemi di ottimizzazione combinatoria possono essere riformulati come problemi (continui) di programmazione concava.). Per i problemi di programmazione concava ` e possibile dimostrare che le soluzioni ottime, ove esistano, appartengono alla frontiera dellinsieme ammissibile. Pi` u precisamente vale il risultato seguente. Teorema 5.3.6 [Assenza di soluzioni ottime interne] Sia S Rn un insieme convesso e f una funzione concava su S . Allora, se esiste un punto di minimo globale del problema min f (x) xS e se la funzione obiettivo non ` e costante su S , ogni punto di minimo globale appartiene alla frontiera di S . Dimostrazione. Supponiamo che il problema ammetta soluzione e che x sia una soluzione ottima. Poich` e, per ipotesi, f non ` e costante su S deve esistere un punto x S tale che f ( x) > f (x ) = min f (x).
xS

Supponiamo ora che z S sia un punto interno allinsieme ammissibile. Deve allora esistere una sfera aperta B (z ; ) con centro in z e raggio > 0 tutta contenuta in S . Sulla retta congiungente x con z possiamo allora determinare un y B (z ; ) S tale che z appartenga al segmento [ x, y ] e risulti y = z , ossia possiamo trovare un con 0 < 1 tale che z = (1 ) x + y. Per la concavit` a di f e lipotesi che sia f ( x) > f (x ), tenendo conto del fatto che f (y ) f (x ) e che 1 > 0 (perch` e y = z ), si ottiene: f (z ) (1 )f ( x) + f (y ) > (1 )f (x ) + f (x ) = f (x ). Ci` o dimostra che f (z ) > f (x ) e quindi che non pu` o esistere una soluzione ottima in un punto interno. 2 Per quanto riguarda la Programmazione Lineare, poich e si tratta di un problema sia convesso che concavo, abbiamo, come immediata conseguenza, il seguente corollario Corollario 5.3.7 Se un problema di Programmazione Lineare ammette soluzione, allora il minimo globale si trova sulla frontiera del poliedro ammissibile. Nel seguito vedremo che nel caso in cui linsieme ammissibile sia un poliedro, vale una propriet` a pi` u forte. In particolare, nel caso di problemi di Programmazione Lineare (Capitolo 10), almeno un punto di minimo globale deve trovarsi su un vertice del poliedro ammissibile.

70

5.4

Caratterizzazione funzioni convesse continuamente differenziabili

Se f ` e una funzione convessa dierenziabile possiamo dare condizioni necessarie e sucienti di convessit` a espresse per mezzo delle derivate prime o seconde dalla funzione. Ci limitiamo a riportare i risultati seguenti. Teorema 5.4.1 (Condizioni necessarie e sucienti di convessit` a) Sia C un insieme convesso aperto, sia f : C R e supponiamo che f sia continuo su C . Allora f ` e convessa su C se e solo se, per tutte le coppie di punti x, y C si ha: f (y ) f (x) + f (x)T (y x). (5.5)

Inoltre f ` e strettamente convessa su C se e solo se, per tutte le coppie di punti x, y C con y = x, si ha: f (y ) > f (x) + f (x)T (y x). (5.6) Dal punto di vista geometrico, la condizione del teorema precedente esprime il fatto che una funzione ` e convessa su C se e solo se in un qualsiasi punto y C lordinata f (y ) della funzione non ` e inferiore alle ordinate dei punti del piano tangente al grafo della funzione in un qualsiasi altro punto x di C . Nel teorema successivo riportiamo una condizione necessaria e suciente di convessit` a espressa per mezzo delle derivate seconde. Teorema 5.4.2 (Condizioni necessarie e sucienti di convessit` a) Sia C un insieme convesso aperto, sia f : C R e supponiamo che la matrice Hessiana 2 f sia continua su C . Allora f ` e convessa su C se e solo se, per ogni x C , la matrice 2 f (x) ` e semidenita positiva. Se si prendono in considerazione le derivate seconde, non ` e vero, in generale, che una condizione necessaria di convessit` a stretta ` e la denita positivit` a della matrice Hessiana (basti pensare alla funzione y = x4 in x = 0). Si pu` o stabilire tuttavia che se la matrice Hessiana ` e denita positiva allora f ` e strettamente convessa. Teorema 5.4.3 (Condizione suciente di convessit` a stretta) Sia C un insieme convesso aperto, sia f : C R e supponiamo che la matrice Hessiana 2 f sia continua e denita positiva su C . Allora f ` e strettamente convessa su C .

5.4.1

Funzioni e forme quadratiche

Tra le funzioni di particolare interesse in problemi di Programmazione Matematica ci sono le funzioni quadratiche. Una funzione quadratica ` e una funzione del tipo q (x) = 1 T x Ax + cT x, 2

dove A ` e una matrice quadrata e simmetrica di dimensione (n n), con elementi aij = aji , i, j = 1, . . . , n. Il gradiente e la matrice hessiana sono f (x) = Ax 2 f (x) = A.

71

Data una matrice A si denisce forma quadratica associata alla matrice A la funzione
n n

xT Ax =
i=1 j =1

aij xi xj .

(5.7)

Una forma quadratica ` e quindi una particolare funzione quadratica in cui il termine lineare ` e identicamente nullo (c = 0). Si verica facilmente che il gradiente e lHessiano della forma quadratica sono dati rispettivamente da 2Ax e 2A. La forma quadratica xT Ax si dice: - denita positiva, se risulta xT Ax > 0 x I Rn , x = 0; - semidenita positiva se risulta xT Ax 0 x I Rn ; - indenita se per qualche x risulta xT Ax > 0, e per altri x risulta xT Ax < 0. Corrispondentemente, si dice che la matrice A associata alla forma quadratica ` e rispettivamente denita positiva, semidenita positiva, indenita. La forma quadratica xT Ax si dice (semi)denita negativa se xT Ax ` e (semi)denita positiva. Nel caso di funzioni quadratiche, la matrice hessiana A ` e costante e la condizione di convessit` a dei Teoremi 5.4.2 e 5.4.3 diventa: Teorema 5.4.4 Una funzione quadratica q (x) ` e convessa su I Rn se, e solo se, risulta: 1 T y Ay 0, 2 per ogni y I Rn ;

inoltre, la funzione q (x) ` e strettamente convessa su I Rn se e solo se risulta 1 T y Ay > 0, 2 per ogni y I Rn .

Notare che nel caso di funzione quadratica la condizione di stretta convessit` a ` e condizione necessaria e suciente. Per vericare se una matrice A ` e denita positiva, si pu` o utilizzare un semplice test. Criterio 1 Siano Ak , k = 1 . . . , n gli n minori principali della matrice A, detti sottomatrici principali di nord-ovest, cio` e le n sottomatrici con elementi aij , i, j = 1, . . . , k ,ottenute da A eliminando le ultime n k righe e colonne. Denotato con detAk il determinante di Ak , risulta che: -A` e denita positiva se, e solo se, detAk > 0 , per k = 1, . . . , n. Si osserva che se A ` e semidenita positiva allora risulta detAk 0, ma non ` e vero in generale il viceversa. Basta prendere come esempio la matrice A= 0 0 0 2a22

72

con a22 < 0 e la forma quadratica associata


2 a11 x2 1 + 2a12 x1 x2 + a22 x2

in cui a11 = a12 = 0. I minori principali A1 e A2 hanno determinante nullo, e quindi soddisfano il criterio detAk 0, ma q (x) ` e semidenita negativa !!! Per vericare se una matrice A ` e semidenita positiva si deve applicare un criterio molto pi` u oneroso riportato di seguito. Criterio 2 Siano Dik ,jk le sottomatrici di A con elementi aij ,ottenute da A eliminando n k righe e colonne in tutti i possibili modi, dette minori principali di A, ovvero le sottomatrici con elementi aij , i = i1 , . . . , ik , j = j1 , . . . , jk , per 1 k n. Denotato con detDik ,jk il determinante di Dik ,jk , si ha: -A` e semidenita positiva se, e solo se, Dik ,jk 0 per ogni 1 k n. Osserviamo che il criterio fornisce delle condizioni sucienti di NON convessit a. In particolare, data una matrice A quadrata e simmetrica, se risulta aii < 0 per qualche i = 1, . . . , n allora la matrice NON ` e semidenita posiitva (n e dunque denita positiva). Analogamente se risulta detDik ,jk < 0 per un qualunque minore principale allora la matrice NON ` e semidenita posiitva. Per analizzare se una matrice A ` e denita/semidenita negativa si possono applicare i criteri precedenti alla matrice A associata alla forma quadratica. Un altro test per vericare il segno di una forma quadratica consiste nel determinare gli autovalori della matrice A, cioe i valori i , i = 1, . . . , n che risolvono lequazione di grado n: det(A I ) = 0, ove I ` e la matrice identica di ordine n. Se la matrice A ` e simmetrica, si ha che gli autovalori sono tutti reali. Risulta che: -A` e denita positiva se, e solo se, i > 0 , per i = 1, . . . , n; -A` e semidenita positiva se, e solo se, i 0 per i = 1, . . . , n; -A` e indenita, altrimenti. ` evidente che il test basato sui minori ` E e di pi` u semplice impiego di quello basato sugli autovalori: infatti calcolare determinanti, no allordine n, ` e piu semplice che risolvere unequazione di grado n. Nel seguito indicheremo min (A) e max (A) rispettivamente il pi` u piccolo e il pi` u grande autovalore di una matrice A. Esempio 5.4.5 Un esempio di funzione quadratica strettamente convessa ` e la funzione
2 4x2 1 + 8x2 x1

rappresentata in gura 5.7.

73

Figura 5.7: Graco della funzione quadratica convessa DellEsempio 5.4.5.

74

Capitolo 6

Problemi di ottimizzazione non vincolata


6.1 Introduzione

Con riferimento al problema di ottimizzazione minxRn f (x), iniziamo in questo capitolo lo studio delle condizioni di ottimalit` a. Nei successivi capitoli aronteremo lo studio delle condizioni di ottimalit` a in relazione alle classi di problemi vincolati di nostro interesse. In termini molto generali, una condizione di ottimalit` a` e una condizione (necessaria, suciente, necessaria e suciente) perch e un punto x risulti una soluzione ottima (locale o globale) del problema. Ovviamente, una condizione di ottimalit` a sar` a signicativa se la verica della condizione risulta pi` u semplice o pi` u vantaggiosa (da qualche punto di vista) rispetto allapplicazione diretta della denizione. Le condizioni di ottimalit` a si esprimono infatti, tipicamente, attraverso sistemi di equazioni, sistemi di disequazioni, condizioni sugli autovalori di matrici opportune. Lo studio delle condizioni di ottimalit` a ha sia motivazioni di natura teorica, sia motivazioni di natura algoritmica. Dal punto di vista teorico, una condizione di ottimalit` a pu` o servire a caratterizzare analiticamente le soluzioni di un problema di ottimo e quindi consentire di svolgere analisi qualitative, anche in assenza di soluzioni numeriche esplicite; un esempio ` e lanalisi della sensibilit` a delle soluzioni di un problema di ottimo rispetto a variazioni parametriche. Dal punto di vista algoritmico, una condizione necessaria pu` o servire a restringere linsieme in cui ricercare le soluzioni del problema originario e a costruire algoritmi nalizzati al soddisfacimento di tale condizione; una condizione suciente pu` o servire a dimostrare che un punto ottenuto per via numerica sia una soluzione ottima del problema e quindi a denire criteri di arresto del procedimento risolutivo.

6.2

Direzioni di discesa

Allo scopo di denire condizioni di ottimalit` a` e necessario introdurre la seguente denizione.

75

Denizione 6.2.1 (Direzione di discesa) Sia f : Rn R e x Rn . Si dice che un vettore > 0 tale che d Rn , d = 0 ` e una direzione di discesa per f in x se esiste t f (x + td) < f (x), per ogni ]. t (0, t

Il concetto di direzione di discesa ci consentir` a di caratterizzare i minimi locali di una funzione. Nel caso di funzione lineare f (x) = cT x, si ottiene facilmente applicando la denizione cT (x + td) = cT x + tcT d < cT x per ogni t > 0

che una direzione ` e di discesa se e solo risulta cT d < 0 per ogni t > 0. Osserviamo che, in questo caso particolare, la caratterizzazione di direzione di discesa non dipende dal punto x in cui ci troviamo. Se f ` e una funzione lineare, ossia se f (x) cT x allora d ` e una direzione di discesa (in un qualsiasi punto x I Rn ) se e solo se cT d < 0. In generale, per funzioni continuamente dierenziabili, ` e possibile caratterizzare la direzione di discesa utilizzando informazioni sulle derivate prime della funzione. Vale in particolare la seguente condizioni suciente: Teorema 6.2.2 (Condizione di discesa) Supponiamo che f sia continuamente dierenziabile nellintorno di un punto x Rn e sia d Rn un vettore non nullo. Se risulta f (x)T d < 0, allora la direzione d ` e una direzione di discesa per f in x. ` noto (vedi Appendice A) che per una qualunque funzione continuamente Dimostrazione. E dierenziabile possiamo scrivere f (x + td) = f (x) + tf (x)T d + (x, t) dove (x, t) soddisfa lim t0 scrivere (6.1)

(x, t) = 0. Per valori sucientemente piccoli di t possiamo dunque t f (x + td) f (x) tf (x)T d;

se f (x)T d < 0 risulta allora f (x + td) f (x) < 0 che quindi dimostra che d ` e una direzione di discesa. Ricordando che f (x)T d = f (x) d cos dove ` e langolo compreso tra f (x) e d, dal punto di vista geometrico la condizione f (x)T d < 0 esprime il fatto che se una direzione d forma un angolo ottuso con il gradiente di f in x, allora d ` e una direzione di discesa per f in x. Sia f continuamente dierenziabile e sia d Rn un vettore non nullo. Se langolo tra f (x) e d soddisfa > 90o allora d ` e di discesa per f in x.

76

Tra le direzioni di discesa, un ruolo particolarmente importante ` e svolto dalla direzione dellantigradiente d = f (x). Se f (x) = 0, la direzione dellantigradiente d = f (x) ` e sempre una direzione di discesa, infatti risulta f (x)T d = f (x)T f (x) = f (x)
2

< 0.

La denizione ` e illustrata nella gura 6.1, con riferimento agli insiemi di livello di una funzione in R2 . La direzione dellantigradiente ` e utilizzata per la denizione di un semplice algoritmo

f(x)=f( x*) x*

Figura 6.1: Esempio di direzione d di discesa in I R2 .


per la determinazione di punti di minimo (vedi il paragrafo 6.4). Naturalmente ` e possibile dare una condizione suciente analoga al teorema 6.2.2 anch e una direzione sia di salita. Sia f sia continuamente dierenziabile nellintorno di un punto x Rn e sia d Rn un vettore non nullo. Se risulta f (x)T d > 0, allora la direzione d ` e una direzione di salita per f in x. Naturalmente se f (x) = 0, la direzione del gradiente d = f (x) ` e sempre una direzione di salita in x.

f( x*)

> 90o

x*+t d

f(x)<f( x*)

direzione di discesa

x*

77

Osserviamo che nel caso di funzione lineare f = cT x, risulta f (x) = c, quindi la condizione espressa dal Teorema 6.2.2 coincide con la caratterizzazione ottenuta in base della denizione di direzione di discesa. Nel caso lineare, la relazione (6.1) vale con (x, t) 0 e dunque la condizione del Teorema 6.2.2 caratterizza tutte e sole le direzioni di discesa. Si tratta cio` e di una condizione necessaria e suciente, mentre nel caso generale ` e solo una condizione suciente. Nel caso di funzione lineare vale quindi la seguente caratterizzazione: Sia f ` e una funzione lineare, ossia f (x) cT x allora 1. d ` e una direzione di discesa in x se e solo se f (x)T d = cT d < 0; 2. d ` e una direzione di salita in x se e solo se f (x)T d = cT d > 0; 3. d ` e una direzione lungo cui la funzione si mantiene costante rispetto al valore in x se e solo se f (x)T d = cT d = 0. Nel caso generale, la condizione di discesa enunciata ` e solo suciente, in quanto possono esistere direzioni di discesa tali che f (x)T d = 0. Illustriamo le varie possibilit` a nel seguente esempio. Esempio 6.2.3 Consideriamo la funzione
2 f (x) = x3 1 + x2 3x1 .

sia dato il punto x = (1, 0)T e la direzione d = (1, 0)T . Il gradiente della funzione vale f (x) = 3x2 13 2x2 .

Si verica facilmente che il gradiente della funzione si annulla nel punto x , quindi la condizione suciente espressa dal teorema 6.2.2 non ` e soddisfatta in quanto f ( x)T d = 0. La direzione d ` e per` o di discesa in x . Infatti risulta x + td = (1 t, 0)T e la funzione vale: f ( x + td) = (1 t)3 3(1 t) = 1 t3 3t 3t2 + 3 + 3t = t3 + 3t2 + 2. tale che t3 3t2 + 2 < 2 = f ( . La Mostriamo che esiste un valore di t x) per ogni 0 < t t 3 2 condizione che si ottiene ` e t 3t < 0 che risulta vericata per qualunque valore di t > 0, quindi eettivamente la direzione ` e di discesa nel punto. si consideri ora il punto x = (1, 0)T e la stessa direzione d = (1, 0)T . Si verica facilmente che il gradiente della funzione si annulla nel punto x , e quindi la condizione suciente espressa dal teorema 6.2.2 anche in questo caso non ` e soddisfatta in quanto f ( x)T d = 0. In questo caso per` o la direzione d non ` e di discesa, risulta infatti x + td = (1 t, 0)T e la funzione vale: f ( x + td) = (1 t)3 3(1 t) = 1 t3 3t + 3t2 3 + 3t = t3 + 3t2 2 > 0 tale che per ogni t (0, t ] risulta t3 + 3t2 = Dobbiamo quindi vericare se esiste un t 2 t (t +3) < 0. Si verica facilmente che la condizione ` e vericata solo per valori di t abbastanza grandi (t > 3) e quindi d non ` e di discesa. Si tratta invece di una direzione di salita, infatti < 3, si ottiene che f ( ]. scegliendo t x + td) > f ( x) per ogni t (0, t T Consideriamo ora il punto x = (0, 0) in cui il gradiente di f vale f ( x) = (3, 0)T . Risulta T che la direzione d = (1, 0) ` e di salita in x , mentre la direzione opposta d = (1, 0)T ` e di discesa.

78

Dallesempio e dalle considerazioni precedenti risulta evidente che dato in un punto x ed una direzione d, sono possibili solo questi casi: Sia f sia continuamente dierenziabile nellintorno di un punto x Rn e sia d Rn un vettore non nullo. 1. se f (x)T d < 0 allora la direzione ` e di discesa in x; 2. se f (x)T d > 0 allora la direzione ` e di salita in x; 3. se f (x)T d = 0 allora non si pu` o concludere se la direzione ` e di discesa o di salita in x o lungo la quale la funzione si mantiene costante. La condizione del teorema 6.2.2 diventa anche necessaria nel caso di convessit` a della funzione obiettivo. Teorema 6.2.4 Se f ` e convessa allora una direzione d ` e di discesa in un punto x se e solo se f (x)T d < 0.

Dimostrazione. Sia f convessa, dobbiamo solo dimostrare che la condizione f (x)T d < 0 ` e necessaria (la sucienza ` e data dal teorema 6.2.2). Sia x I Rn e sia d una direzione di discesa per f in x. Possiamo scrivere per la convessit` a della funzione f (x + d) f (x) + f (x)T d. Se per assurdo fosse f (x)T d 0 allora per > 0 sucientemente piccolo, si avrebbe f (x + d) f (x) contraddicendo lipotesi che d sia di discesa. Se f ` e dierenziabile due volte ` e possibile caratterizzare landamento di f lungo una direzione assegnata tenendo conto anche delle derivate seconde e di ci` o si pu` o tener conto, come si vedr` a in seguito, per stabilire condizioni di ottimo del secondo ordine. Introduciamo la denizione seguente. Denizione 6.2.5 (Direzione a curvatura negativa) Sia f : Rn R due volte continuamente dierenziabile nellintorno di un punto x Rn . Si dice che un vettore d Rn , d = 0 ` e una direzione a curvatura negativa per f in x se risulta dT 2 f (x)d < 0.

Una direzione a curvatura negativa ` e quindi tale che la derivata direzionale seconda ` e negativa in x, per cui diminuisce localmente la derivata direzionale del primo ordine. In particolare vale il risultato seguente.

79

Teorema 6.2.6 (Condizione di discesa del secondo ordine) Sia f : Rn R due volte continuamente dierenziabile nellintorno di un punto x Rn e sia d Rn un vettore non nullo. Supponiamo che risulti f (x)T d = 0, e che d sia una direzione a curvatura negativa in x, ossia che dT 2 f (x)d < 0. Allora la direzione d ` e una direzione di discesa per f in x.

Dimostrazione. Poich ef ` e dierenziabile due volte, si ha: 1 f (x + td) = f (x) + tf (x)T d + t2 dT 2 f (x)d + (x, td) 2 in cui (x, td)/t2 0. Essendo per ipotesi f (x)T d = 0, si pu` o scrivere: f (x + td) f (x) 1 (x, td) = dT 2 f (x)d + 2 t 2 t2 (x, td) = 0, t2 per valori sucientemente piccoli di t si ha f (x + td) f (x) < 0, per cui d ` e una direzione di discesa.
t0

e quindi, poich e

lim

Esempio 6.2.7 Consideriamo la funzione delesempio 6.2.3,


2 f (x) = x3 1 + x2 3x1 .

nel punto x = (1, 0)T . La direzione d = (1, 0)T ` e tale che f ( x)T d = 0, quindi la condizione suciente espressa dal teorema 6.2.2 non ` e soddisfatta. Verichiamo la condizione del Teorema 6.2.6. La matrice hessiana ` e 2 f (x) = 6x1 0 0 2 =
x

6 0 0 2

Risulta allora dT 2 f ( x)d = 6 e quindi la direzione soddisfa la condizione suciente del Teorema 6.2.6, per cui si pu` o concludere che ` e di discesa.

6.3

Ottimizzazione non vincolata

Abbiamo gi` a osservato nel capitolo 2 che i problemi non vincolati sono una particolare classe di problemi non lineari, in cui S = Rn . Il problema in oggetto ` e quindi
xI Rn

min f (x),

(P N V )

80

con f : I Rn I R non lineare e continuamente dierenziabile. Osserviamo preventivamente che in questo caso non si pu` o applicare in modo diretto il teorema di Weierstrass per lesistenza di un minimo. Condizioni di esistenza possono essere comunque ottenute con riferimento ad un insieme ammissibile ttizio. In particolare, dato un qualunque punto x in cui la funzione vale f ( x), e si considera linsieme non vuoto (contiene almeno x ) L( x) = {x I Rn : f (x) f ( x)}. Possiamo allora considerare il problema vincolato min f (x) x L( x) (P N V L)

Se x non ` e il minimo globale di (P-NV), allora il minimo globale x , se esiste, sicuramente si trova in L( x). Infatti per denizione f (x ) f (x) per ogni x e quindi in particolare vale anche f (x ) f ( x). Quindi risolvere (P-NV) e equivalente a risolvere (P-NVL). Per assicurare lesistenza di un minimo globale di (P-NVL) (e quindi di (P-NV), possiamo ` suciente richiedere che esista un x utilizzare il teorema di Weierstrass. E per cui linsieme L( x) sia compatto. Se esiste un x I Rn per cui linsieme L( x) e compatto, allora il problema (P-NV) ammette un minimo globale. Deriviamo ora le condizioni di ottimo per (P-NV). Una conseguenza immediata della Denizione 6.2.1 di direzione di discesa ` e la condizione necessaria di minimo locale enunciata nel teorema successivo. Teorema 6.3.1 (Condizione necessaria di minimo locale) Sia x S un punto di minimo locale del problema (P) allora non pu` o esistere in x una direzione di discesa per f . La condizione necessaria pu` o consentire di selezionare tra tutti i punti ammissibili i potenziali candidati ad essere punti di minimo locale. Per ricavare delle condizioni di ottimalit` a dalla condizione enunciata nel Teorema 6.3.1 occorre utilizzare una caratterizzazione analitica delle direzioni di discesa. In eetti la verica della condizione espressa dal Teorema 6.3.1 ` e essenzialmente equivalente allapplicazione della denizione di minimo locale. Si pu` o per` o specicare ulteriormente la condizione necessaria utilizzando la caratterizzazione di direzione di discesa. Si ottiene allora la seguente condizione necessaria. Se x ` e un punto di minimo locale del del problema (P) non pu` o esistere una direzione d Rn T in x tale che f (x ) d < 0. Tale condizione pu` o essere equivalentemente enunciata come segue. Teorema 6.3.2 (Condizione necessaria di minimo locale) Se x ` e un punto di minimo locale del del problema (P), allora risulta f (x )T d 0 per ogni direzione d Rn .

81

Ricordando che f (x )T d = f (x ) d cos dove ` e langolo compreso tra f (x ) e d, dal T punto di vista geometrico la condizione f (x ) d 0 richiede che 0o 90o per ogni d. Se x ` e un punto di minimo locale del del problema (P), allora per ogni d langolo formato con f (x ) ` e 0o 90o . Si ottiene quindi la seguente condizione necessaria. Teorema 6.3.3 (Condizione necessaria di minimo locale non vincolato) Sia f : Rn R continuamente dierenziabile su Rn e sia x Rn . Se x ` e un punto di minimo locale non vincolato di f in Rn allora si ha f ( x ) = 0 . Dimostrazione. Se x Rn ` e un punto di minimo locale non possono esistere direzioni di discesa in x . Se f (x ) = 0, esisterebbe una direzione d = f (x ) = 0 di discesa in x . Ma questo ` e assurdo. Denizione 6.3.4 (Punto stazionario) Sia f : Rn R continuamente dierenziabile su Rn . Un punto x tale che f ( x) = 0 si dice punto stazionario di f . I possibili candidati ad essere punti di minimo locale del problema (P-NV) si determinano determinando le soluzioni di f (x) = 0. Esempio 6.3.5 Sia dato il problema f (x1 , x2 ) = x1 4 + x2 4 3x1 x2 , sapendo che esiste un punto di minimo, determinarlo utilizzando le condizioni necessarie. Il gradiente della funzione ` e dato da: f = 4x3 1 3x2 4x3 2 3x1 x2

Dallannullamento del gradiente si ottiene il sistema 4x3 1 3x2 = 0 4x3 2 3x1 = 0


256 8 27 x2

3 =0

3 x1 = 4 3 x2

Si ottengono le soluzioni: A(0, 0), B 23 , 23 , C 23 , 23 . Le curve di livello della funzione sono nella Figura 6.2 da cui si individuano i tre punti stazionari. Il punto (0, 0)T ` e un punto di sella con valore della funzione f (0, 0) = 0. I punti B, C = 23 , 23 abbiamo 2 f = 3 3 1 1 3 2

sono punti di minimo globale di valore della funzione obiettivo f = 9 8.

82

1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1

4 Figura 6.2: Curve di livello della funzione x4 1 + x2 3x1 x2 .

Senza ulteriori ipotesi sulla funzione obiettivo, la condizione ` e solo necessaria. Ricordando che se f (x ) = 0 la direzione d = f (x ) ` e di salita nel punto x , si ottiene che la condizione f (x ) = 0 ` e anche necessaria di massimo locale. In generale si hanno questi possibili casi. Sia f : Rn R continuamente dierenziabile su Rn e sia x Rn tale che f (x ) = 0 allora ` e vera una delle seguenti aermazioni: 1. x ` e un minimo locale (non esistono in x direzioni di discesa); 2. x ` e un massimo locale (non esistono in x direzioni di salita); 3. x ` e un punto di sella (esistono in x sia direzioni di discesa che di salita). Un esempio di punto di sella ` e in Figura 6.3. Teorema 6.3.6 (Condizione suciente di minimo globale non vincolato) Sia f : Rn R continuamente dierenziabile su Rn e sia x Rn . Si supponga che f sia convessa. Se f (x ) = 0, allora x ` e un punto di minimo globale di f su Rn . Inoltre, se f ` e strettamente n convessa su R , allora x ` e lunico punto di minimo globale di f su Rn . Dai teoremi 6.3.3 e 6.3.6 si ottiene quindi una condizione necessaria e suciente di minimo globale non vincolato. Teorema 6.3.7 (Condizione necessaria e suciente di minimo globale non vincolato) Sia f : Rn R, con f continuo su Rn e si supponga che f sia convessa. Allora x ` e un punto di minimo globale di f su Rn se e solo se f (x ) = 0. Inoltre, se f ` e strettamente convessa su Rn e se in x si ha f (x ) = 0, allora x ` e lunico punto stazionario di f e costituisce anche lunico punto di minimo globale della funzione.

83

f(x) salita

discesa

x*
x2 x1

Figura 6.3: Esempio di punto di sella in I R2 .


Possiamo dare delle condizioni che utilizzano la caratterizzazione del secondo ordine di direzione di discesa espressa al Teorema 6.2.6. In particolare quindi abbiamo: Teorema 6.3.8 (Condizione necessaria del 2o ordine di minimo locale) Se x ` e un punto di minimo locale del del problema (P), allora per ogni d tale che f (x )T d = 0 risulta dT 2 f (x )T d 0 per ogni direzione d Rn

Se si considera la matrice Hessiana si ottiene una condizione necessaria del secondo ordine.

Teorema 6.3.9 (Condizione necessaria del secondo ordine) Sia f : Rn R due volte continuamente dierenziabile in un intorno di x Rn . Allora, se x ` e un punto di minimo locale non vincolato di f si ha: (a) f (x ) = 0; (b) 2 f (x ) ` e semidenita positiva, ossia y 2 f (x )y 0, per ogni y Rn .

84

Dimostrazione. La (a) segue dalla caratterizzazione di direzioni di discesa del secondo ordine data dal Teorema 6.2.6. Se tuttavia 2 f (x ) ` e denita positiva, si pu` o stabilire un risultato pi` u forte, che riportiamo nel teorema successivo. Teorema 6.3.10 (Condizione suciente del secondo ordine) Sia f : Rn R due volte continuamente dierenziabile in un intorno di x Rn . Supponiamo che valgano le condizioni: (a) f (x ) = 0 (b) la matrice Hessiana ` e denita positiva in x , ossia: y 2 f (x )y > 0 per ogni y Rn , y = 0.

Allora x ` e un punto di minimo locale stretto. Dimostrazione. Utilizzando il Teorema di Taylor, e tenendo conto del fatto che f (x ) = 0, possiamo scrivere: 1 f (x + d) = f (x ) + 2 d 2 f (x )d + o(2 ), 2 e quindi si ottiene: 1 o( 2 ) f (x + d) f (x ) = d 2 f (x )d + 2 2 2 Quindi per valori di piccoli, lultimo termine ` e trascurabile (o(2 )/2 0 per 0), per cui f (x + d) f (x ) > 0 per ogni d, il che prova lenunciato. Dai risultati precedenti si possono dedurre facilmente condizioni necessarie e condizioni sucienti di massimo locale (basta infatti imporre condizioni di minimo su f ). In particolare, la condizione che x sia un punto stazionario, ossia tale che f (x ) = 0 ` e condizione necessaria sia perch e x sia un punto di minimo, sia perch` e x sia un punto di massimo. Una condizione necessaria del secondo ordine per un massimo locale ` e che f (x ) = 0 e 2 f (x ) sia semidenita negativa. Una condizione suciente di massimo locale ` e che f (x ) = 0 e 2 f (x) sia semidenita negativa in un intorno di x . Condizione suciente perch` e x sia un punto di massimo locale stretto ` e che f (x ) = 0 e 2 f (x ) sia denita negativa. Se risulta f (x ) = 0 e la matrice Hessiana 2 f (x ) ` e indenita (ossia, esistono vettori d per cui d 2 f (x )d > 0 e altri per cui d 2 f (x )d < 0) allora si pu` o escludere che x sia un punto di minimo o di massimo locale e x viene usualmente denominato punto di sella. Un punto di sella ` e un punto stazionario in corrispondenza al quale esistono sia direzioni di discesa (quando d 2 f (x )d < 0) sia direzioni di salita (quando d 2 f (x )d > 0). o Se f (x ) = 0 e 2 f (x ) ` e semidenita (negativa o positiva) non si pu` o determinare la natura di x in assenza di altre informazioni. Tuttavia se 2 f (x ) non ` e semidenita positiva (negativa) si pu` o escludere che x sia un punto di minimo (massimo).

85

Una classe di particolare interesse di funzioni non lineari ` e quella delle funzioni quadratiche, ovvero del tipo 1 f (x) = xT Qx + cT x 2 n con Q matrice simmetrica n n e c I R . Poich e la matrice hessiana di una funzione quadratica ` e costante ` e facile vericare la convessit` a della funzione (vedi paragrafo 5.2 del Capitolo 5). Nel caso quadratico ` e anche possibile formalizzare i risultati di esistenza di un minimo globale. Vale in particolare la seguente caratterizzazione.
T T Teorema 6.3.11 (Minimizzazione di una funzione quadratica) Sia q (x) = 1 2 x Qx+c x, n con Q simmetrica e c R . Allora:

1. q (x) ammette un punto di minimo se e solo se Q ` e semidenita positiva ed esiste x tale che Qx + c = 0; 2. q (x) ammette un unico punto di minimo globale se e solo se Q ` e denita positiva; 3. se Q ` e semidenita positiva ogni punto x tale che Qx + c = 0 ` e un punto di minimo globale di q (x). Dimostrazione. Ricordiamo che risulta q (x) = Qx + c e 2 f (x) = Q. Inoltre se risulta Q semidenita positiva, q (x) ` e convessa, se risulta Q denita positiva, q (x) ` e strettamente convessa. Assegnati x , x Rn e posto x = x + s si pu` o scrivere: 1 q (x) = q (x + s) = q (x ) + (Qx + c)T s + sT Qs. 2 (6.2)

Supponiamo ora che Qx + c = 0 e che Q sia semidenita positiva; in tal caso dalla (6.2) segue q (x) q (x ) per ogni x Rn . Inversamente, se q ammette un punto di minimo x , per il Teorema 6.3.3 deve essere q (x ) = 0 T e risulta q (x) q (x ) per ogni x I Rn . Dalla (6.2) segue 0 q (x) q (x ) = 1 2 s Qs con s = x x , ovvero Q 0. Ci` o prova la (1). La (2) segue dalla (1) e dal fatto che, sT Qs > 0 per ogni s se e solo se Q ` e denita positiva. Inne, la (3) segue ancora dalla (6.2) perch` e per ogni x tale che q (x ) = 0 si ha q (x) q (x ). Illustriamo questo teorema con un esempio. Esempio 6.3.12 Sia data la funzione q (x1 , x2 ) = 1 2 (x2 1 + x2 ) x1 . 2

Studiamo le esistenza e la natura dei punti estremali al variare dei parametri e . Scriviamo il gradiente e la matrice hessiana di q . Si ha q = x1 1 x2 2 q = 0 0

86

0.5

0.5

1 1 0.5 0 0.5 1 0 0.5 1 1.5

Figura 6.4: Graco di q (x1 , x2 ) per = = 1.


1 , 0 . Inoltre la 2 matrice q ` e denita positiva; si tratta quindi dellunico punto di minimo globale. Se = 0 e ` e qualsiasi, non esiste soluzione al sistema q = 0. Notare che se 0 la matrice ` e semidenita positiva, ma questo non assicura lesistenza del minimo globale. T 1 Se > 0 e = 0, esistono innite soluzioni al sistema q = 0 ed ` e , con qualsiasi. Inoltre la matrice 2 q ` e semidenita positiva; si tratta quindi di inniti punti di minimo globale. Se > 0 e > 0, allora esiste un unica soluzione al sistema q = 0 ed ` e 1 Se < 0 e > 0 si ha ununica soluzione ( , 0). Ma la matrice hessiana ` e indenita; si tratta quindi di un punto di sella. T 1 Nel caso di < 0 e < 0 , allora esiste un unica soluzione al sistema q = 0 ed ` e ,0 . Inoltre la matrice 2 q ` e denita negativa; si tratta quindi dellunico punto di massimo globale. 2
T

87

3 1 0.5 0 0.5 1 0 0.5 1 1.5

Figura 6.5: Graco di q (x1 , x2 ) per = 0 = 1.

6.4

Utilizzo algoritmico delle condizioni di ottimo non vincolate


min f (x) (6.3)

Consideriamo il problema di ottimizzazione non vincolata:


xR n

in cui f : Rn R e supponiamo vericata la seguente ipotesi che garantisce lesistenza di un punto di minimo x : Ipotesi 1 La funzione f : Rn R ` e una funzione continuamente dierenziabile ed esiste un x0 Rn tale che linsieme di livello Lx0 sia compatto. Gli algoritmi per la soluzione del problema (6.3) consentono, in generale, soltanto la determinazione di punti stazionari di f , ossia di punti dellinsieme := { Rn : f ( ) = 0}. In generale si riesce anche a garantire che, se x0 non ` e gi` a un punto stazionario, vengano comunque ottenuti punti in cui la funzione obiettivo assume un valore inferiore al valore assunto nel punto iniziale x0 e ci` o consente di ottenere soluzioni soddisfacenti in molte applicazioni. Se la funzione obiettivo ` e convessa, la determinazione di un punto stazionario risolve completamente il problema, poich e, come ` e noto, ogni punto stazionario di una funzione convessa ` e un punto di minimo globale.

88

0 0.2 0.4 0.6 0.8 1 1 0.5 0 0.5 1 0 0.5 1 1.5

Figura 6.6: Graco di q (x1 , x2 ) per = 1 = 0.


Gli algoritmi che ci proponiamo di studiare possono essere descritti per mezzo dello schema concettuale seguente: Schema generico di algoritmo di ottimizzazione non vincolata 1. Si ssa un punto iniziale x0 Rn e si pone k = 0. 2. Se xk stop. 3. Si calcola una direzione di discesa dk Rn . 4. Si calcola un passo k R lungo dk ; 5. Si determina un nuovo punto xk+1 = xk + k dk . Si pone k = k + 1 e si ritorna al Passo 2. Commentiamo brevemente lo schema considerato. 1. Scelta del punto iniziale. Il punto iniziale dellalgoritmo ` e un dato del problema e deve essere fornito in relazione alla particolare funzione che si intende minimizzare. Il punto x0 dovrebbe essere scelto come la migliore stima disponibile della soluzione ottima, eventualmente facendo riferimento a un modello semplicato della funzione obiettivo. Nella maggior parte dei casi, tuttavia, non esistono criteri generali per eettuare una buona scelta di x0 .

89

4 3 2 1 0 1 2 2 1 0 1 2 2 1 1.5 0 0.5 0.5

Figura 6.7: Graco di q (x1 , x2 ) per = 1 = 1.


Nella soluzione di problemi applicativi (non convessi) pu` o essere conveniente ripetere la ricerca a partire da punti iniziali dierenti, ad esempio generati casualmente, e scegliere poi il punto stazionario migliore tra quelli cos` determinati. 2. Criterio di arresto. La verica eettuata al Passo 2 sullappartenenza di xk allinsieme equivale a controllare se f (xk ) = 0. In pratica, per lutilizzo su calcolatore con precisione nita, occorre specicare un criterio di arresto. Una possibilit` a consiste nellarrestare lalgoritmo quando f (xk ) (6.4)

in cui > 0 ` e un valore sucientemente piccolo (valori standard richiedono [108 , 103 ]). Per quanto riguarda la scelta della norma, tra le pi` u utilizzate ci sono 2 e . n 2 e x Ricordiamo che x 2 = x = max 1in {|xi |}. i=1 i 3. Scelta della direzione. I criteri seguiti nella scelta della direzione di ricerca dk individuano il particolare metodo di ottimizzazione utilizzato. Tra i metodi esistenti, il metodo del gradiente (o metodo della discesa pi` u ripida) utilizza come direzione dk = f (xk );

90

1 0 1 2 3 4 2 1 0 1 2 2 1 1.5 0 0.5 0.5

Figura 6.8: Graco di q (x1 , x2 ) per = = 1.


4. Calcolo del passo. Il calcolo dello scalare k > 0 costituisce la cosiddetta ricerca unidimensionale o ricerca di linea e viene eettuato valutando la funzione obiettivo lungo la direzione dk . Per la ricerca unidimensionale sono disponibili diversi algoritmi che possono prevedere il calcolo del punto di minimo di f (xk + dk ) rispetto a (ricerca di linea esatta) oppure lindividuazione di un intervallo di valori accettabili per k ai ni dellottenimento della convergenza (ricerca di linea inesatta). In questo corso non entreremo nel dettagli delle Ricerche di Linea.

6.5

Modelli di ottimizzazione non vincolata

Esempio 6.5.1 Il problema di discriminazione del prezzo 2.4.4 in generale e un problema di programmazione quadratica strettamente convessa del tipo min xT M x (a c)T x x 0. Si osservi che il minimo non vincolato x , ovvero il punto che annulla il gradiente della funzione ai ci obiettivo 2M x (a c) = 0, ha componenti x . Dunque se ai ci 0 pe ogni i, il i = 2mi punto x ha tutte le componenti non negative ed e ottimo (unico) anche del problema vincolato. Vediamo un esempio numerico. Un monopolista che produce un unico bene ha due tipi di clienti A e B. Si indicano con xA e xB le quantit` a di bene oerte dal monopolista ai due clienti. I

91

clienti di tipo A sono disposti a pagare il prezzo fA (xA ) = 50 5xA e i clienti di tipo B sono disposti a pagare il prezzo fB (xB ) = 100 10xB . Il costo di produzione dipende solo dalla quantit` a di prodotto nale x = xA + xB ed ` e C = 90 + 20x. Seguendo il modello precendente si ottiene per il protto lespressione: f (xA , xB ) = xA PA + xB PB [90 + 20(xA + xB )] = (50 5xA )xA + (100 10xB )xB 90 20(xA + xB )

e deve essere massimizzato. Raggruppando e portando in forma standard di minimizzazione, si ottiene il problema 2 min 5x2 A + 10xB 30xA 80xB 90 x 0. Si tratta di un problema quadratico con f = 10xA 30 20xB 80 2 f = 10 0 0 20

La mat rice hessiana ` e denita positiva, ed esiste un unico punto di che annulla il gradiente x = (3, 4)T che ha componenti positive, dunque e soluzione del problema vincolato originario. Esempio 6.5.2 (Minimi quadrati) Un caso di particolare interesse nei problemi di approssimazione del tipo 2.4.5 consiste nel caso in cui son noti n punti del piano (xi , yi ) che possono corrispondere a dati sperimentali o a misurazioni e si vuole approssimare la funzione y = (x) con un polinomio di primo grado (ovvero una retta) del tipo y = mx + q . Si deniscono gli errori ei (xi ) = yi (mxi + q ), i = 1, . . . , n,

e si pu o considerare il problema di ottimizzazione non vincolata


n n

minm,q
i=1

ei (xi )2 =
i=1

(mxi + q yi )2 .

Si osservi che la funzione obiettivo ` e quadratica. Vediamo un semplice esempio numerico. Sia (t), t R una funzione nota sperimentalmente che assume i valori seguenti: t (t) 0 0 1 1 2 4 3 9

Si vuole approssimare (t) con una funzione del tipo f (t) = at + b. Deniamo gli errori ei (ti ) nei 4 valori di t assegnati: |b|, |a + b 1|, |2a + b 4|, |3a + b 9|. Il problema di minimi quadrati corrispondente e min b2 + (a + b 1)2 + (2a + b 4)2 + (3a + b 9)2 .

92

Si tratta di un problema quadratico del tipo min con Q a b 14 6 6 4


T

a b

+ cT

a b 72 28

c=

93

Capitolo 7

Ottimizzazione vincolata
7.1 Introduzione
min f (x)
xS

Con riferimento al problema di ottimizzazione

con S Rn , illustriamo nel seguito alcune condizioni di ottimalit` a in relazione alle classi di problemi di nostro interesse. In particolare ci riferiremo a problemi i cui S ` e un generico insieme convesso, a problemi di programmazione matematica con insieme ammissibile poliedrale. Al ne di individuare le condizioni di ottimo, introduciamo il concetto di direzione ammissibile che insieme al concetto di direzione di discesa introdotto nel Capitolo 6 consentir` a di caratterizzare i punti di minimo locale.

7.2

Direzione ammissibile

Una direzione ` e ammissibile in un punto x S se ` e possibile muoversi lungo tale direzione mantenendosi in S . Pi` u formalmente possiamo dare la seguente denizione riferita ad un generico insieme S I Rn .

Denizione 7.2.1 (Direzione ammissibile) Sia S un sottoinsieme di Rn e x S . Si dice che un vettore d Rn , d = 0 ` e una direzione ammissibile per S in x se esiste tmax > 0 tale che x + td S, per ogni t [0, tmax ].

Esempio 7.2.2 Sia dato linsieme (poliedro) S = {x R2 : x1 + x2 3, x1 1, x2 0}

94

x2

(1,1)

x1

Figura 7.1: Poliedro Esempio 7.2.2.


rappresentato in Figura 7.1 e consideriamo il punto ammissibile x = (1, 1) (indicato con un puntino rosso in gura). ` facile convincersi che la direzione d = (1, 0) ` E e ammissibile in x . Risulta infatti x + td = Sostituendo nei vincoli si ha: 1. x1 + x2 = (1 + t) + 1 = 2 + t che risulta 3 per valori di t 1. 2. x1 = 1 + t che risulta 1 per ogni t 0; 3. x2 = 1 > 0. Quindi per ogni t [0, 1] (tmax = 1) risulta x + td S . ` altrettanto facile convincersi che la direzione opposta d = (1, 0) non ` E e ammissibile in x . Risulta infatti 1 1 1t y=x + t(d) = +t = 1 0 1 Sostituendo nei vincoli si ha: 1. x1 + x2 = (1 t) + 1 = 2 t che risulta 3 per valori di t 1. 2. x1 = 1 t che risulta 1 solo per t 0; 1 1 +t 1 0 = 1+t 1

95

3. x2 = 1 > 0 per ogni t. Quindi NON esiste un tmax > 0 per cui il punto y appartiene ad S . La direzione non ` e dunque ammissibile. Il concetto di direzione ammissibile ` e riferito ad un generico insieme S non necessariamente poliedrale n e con particolari propriet` a. Vedremo nel seguito come caratterizzare le direzioni ammissibili nel caso id particolari insiemi ammissibili.

7.3

Condizioni di ottimo vincolate


min f (x) xS

In questo paragrafo ricaviamo le prima condizioni di ottimalit` a per il generico problema (P )

Una conseguenza immediata della Denizione 6.2.1 di direzione di discesa e della Denizione 7.2.1 di direzione ammissibile ` e la condizione necessaria di minimo locale enunciata nel teorema successivo. Teorema 7.3.1 (Condizione necessaria di minimo locale) Sia x S un punto di minimo locale del problema (P) allora non pu` o esistere una direzione ammissibile in x che sia anche di discesa per f . Dimostrazione. Sia x un minimo locale. Per assurdo, se esistesse una direzione d al tempo stesso ammissibile e di discesa in x , allora in ogni intorno di x sarebbe possibile trovare, per t > 0 abbastanza piccolo, un punto x + td S tale che f (x + td) < f (x ), il che contraddice lipotesi che x sia un punto di minimo locale. La condizione necessaria pu` o consentire di selezionare tra tutti i punti ammissibili i potenziali candidati ad essere punti di minimo locale. Il risultato espresso nel Teorema 7.3.1 pu` o essere poco signicativo qualora vi siano regioni (di frontiera) dellinsieme ammissibile, tali che nei punti di queste regioni non esistano aatto direzioni ammissibili. In tal caso, la condizione del Teorema 7.3.1 non ` e in grado di discriminare le soluzioni ottime dagli altri punti ammissibili. Una situazione del genere si verica, tipicamente, quando siano presenti vincoli di eguaglianza non lineari. Consideriamo, a titolo esemplicativo, un problema in due variabili. Esempio 7.3.2 Sia dato il problema min x2 2 x2 1 + x2 = 1 Lunico punto di minimo ` e il punto (0, 1)T . Se consideriamo un qualsiasi punto (x1 , x2 ) S linsieme delle direzioni ammissibili ` e vuoto e quindi la condizione del Teorema 7.3.1 ` e soddisfatta in ogni punto di S e non d` a alcuna informazione aggiuntiva per la selezione di punti candidati ad essere ottimi. Tale situazione ` e illustrata nella gura 7.2. 2

96

x2

(x1,x2) x1

(0,-1)

Figura 7.2: Esempio 7.3.2 in cui in qualunque punto ammissibile non esiste direzione ammissibile. Per ricavare delle condizioni di ottimalit` a dalla condizione enunciata nel Teorema 7.3.1 occorre utilizzare una caratterizzazione analitica delle direzioni di discesa e delle direzioni ammissibili. In eetti la verica della condizione espressa dal Teorema 7.3.1 ` e essenzialmente equivalente allapplicazione della denizione di minimo locale. Si pu` o per` o specicare ulteriormente la condizione necessaria utilizzando la caratterizzazione di direzione di discesa del teorema 6.2.2. Si ottiene allora la seguente condizione necessaria. Se x ` e un punto di minimo locale del problema (P) non pu` o esistere una direzione ammissibile d Rn in x tale che f (x )T d < 0. Tale condizione pu` o essere equivalentemente enunciata come segue. Teorema 7.3.3 (Condizione necessaria di minimo locale) Se x ` e un punto di minimo locale del del problema (P), allora risulta f (x )T d 0 per ogni direzione ammissibile d Rn in x .

Ricordando che f (x )T d = f (x ) d cos dove ` e langolo compreso tra f (x ) e d, dal T punto di vista geometrico la condizione f (x ) d 0 richiede che 0o 90o per ogni d ammissibile.

97

Se x ` e un punto di minimo locale del del problema (P), allora per ogni d ammissibile langolo formato con f (x ) ` e 0o 90o . La condizione espressa dal Teorema 7.3.3 ` e solo necessaria di minimo locale. Illustriamo la condizione con un esempio. Esempio 7.3.4 Sia dato il problema di ottimizzazione
2 min x2 1 x2 1 x1 1 1 x2 1

Si tratta della minimizzazione di una funzione quadratica concava su un poliedro (la regione ammissibile e le curve di livello della funzione obiettivo sono rappresentate in Figura 7.3.) Geometricamente si individuano i minimi globali sui vertici del cubo ammnissibile. Consideri-

x2

(1,1)

x1

Figura 7.3: Illustrazione Esempio 7.3.4.


amo il punto di minimo x = (1, 1)T . Il gradiente della funzione obiettivo ` e f (x) = 2x1 2x2

e in x vale f (x ) = (2, 2)T (freccia rossa in Figura 7.3). Si osservi che il gradiente della funzione obiettivo NON si annulla in x . Le direzioni ammissibili d nel punto x sono in base

98

alla denizione le soluzioni del sistema denito da x + td con t 0 (in Figura 7.3 sono i vettori nella regione compresa tra le frecce blu), cio` e: x 1 + td1 x 1 + td1 x 2 + td2 x 2 + td2 = 1 + td1 = 1 + td1 = 1 + td2 = 1 + td2 1 1 1 1

ovvero le direzioni ammissibile sono quelle che soddisfano 2 + td1 0 td1 0 2 + td2 0 td2 0. La seconda e quarta condizione impongono d1 , d2 0, mentre la prima e terza impongono solo delle condizioni sullo spostamento t e richiedono rispettivamente che 0 t 2/|d1 | e d1 0 t 2/|d2 |. Dunque risulta f (x )T d = (2 2) = 2(d1 + d2 ) 0 per ogni d d2 ammissibile (ovvero tale che d1 , d2 0). Quindi la condizione necessaria ` e soddisfatta. Sia dato ora il punto x = (0, 0)T interno alla regione ammissibile (nessun vincolo attivo). Ogni vettore d I R2 ` e ammissibile in x . Inoltre risulta f ( x)T d = 0 per ogni d, in quanto f ( x) = 0, quindi ` e vericata la condizione necessaria. Ciononostante il punto x non ` e un minimo locale, anzi ` e un massimo. Infatti per ogni d I R2 risulta x + td = (td1 , td2 )T e la 2 funzione vale f ( x + td) = t2 (d2 1 + d2 ). Per ogni t = 0 e d 0 risulta
2 f ( x + td) = t2 (d2 x ) = 0, 1 + d2 ) < f (

ovvero qualunque d non identicamente nulla ` e di discesa in x .

Possiamo dare delle condizioni che utilizzano la caratterizzazione del secondo ordine di direzione di discesa espressa al Teorema 6.2.6. In particolare quindi abbiamo: Teorema 7.3.5 (Condizione necessaria del 2o ordine di minimo locale) Se x ` e un punto di minimo locale del del problema (P), allora per ogni d ammissibile in x tale che f (x )T d = 0 risulta dT 2 f (x )T d 0 per ogni direzione ammissibile d Rn in x . A partire dalle condizioni espresse dai teoremi 7.3.3 e 7.4.3 ` e possibile ricavare condizioni pi` u speciche in base alle caratterizzazioni delle direzioni ammissibili, e quindi in base alla struttura e alle propriet` a delle funzioni che deniscono i vincoli del problema. Considereremo nel seguito solo i casi di nostro interesse.

7.4

Ottimizzazione su insieme convesso generico

Consideriamo un problema di ottimo in cui in cui supponiamo che linsieme ammissibile S sia un insieme convesso, ovvero min f (x) (P CON V ) x S. Possiamo caratterizzare le direzioni ammissibili di questo insieme.

99

Teorema 7.4.1 (Direzioni ammissibili insieme convesso) Sia S I Rn un insieme convesso e sia x un qualsiasi punto di S . Allora comunque si ssi x S tale che x = x , la direzione d=xx ` e una direzione ammissibile per S in x . Dimostrazione. Sia x S . Comunque preso x S , con x = x , per la convessit` a di S , si ha che (1 ) x + x S per ogni [0, 1] e quindi x + (x x ) S per ogni [0, 1]. Da cui segue che la direzione d = x x ` e una direzione ammissibile per S in x . ` facile vericare che, inversamente, se d = 0 ` E e una direzione ammissibile per S in x allora esiste un punto x S e uno scalare t tale che d = t(x x ). Quindi utilizzando direttamente il teorema 7.3.3, otteniamo la seguente condizione necessaria. Teorema 7.4.2 (Condizioni necessarie di minimo locale con insieme ammissibile convesso) Sia x S un punto di minimo locale del problema (P-CONV) e supponiamo che f sia continuamente dierenziabile su I Rn . Allora si ha: f (x )T (x x ) 0, per ogni x S. (7.1)

Dim. Osserviamo innanzitutto che in base al teorema 7.4.1 la direzione d = x x ` e una direzione ammissibile per f in S per ogni x S . Se esistesse d = x x tale che f (x )T d < 0 per il Teorema 6.2.2 la direzione ammissibile d sarebbe di discesa ma questo ` e assurdo perch e in base al Teorema 7.3.1 sappiamo che non pu` o esistere una direzione ammissibile di discesa in x . Nel caso che f sia convessa, si pu` o dimostrare che la condizione ` e anche suciente. Vale in eetti il seguente risultato. Teorema 7.4.3 (Condizioni necessarie e sucienti di minimo globale nel caso convesso) Sia S un sottoinsieme convesso di Rn e supponiamo che f sia una funzione convessa continuamente dierenziabile su I Rn . Allora x S ` e un punto di minimo globale del problema (P-CONV) se e solo se f (x )T (x x ) 0, per ogni x S. (7.2)

Dimostrazione. La necessit` a segue dal Teorema 7.4.2. La sucienza segue dal Teorema 5.4.1. Infatti, se f ` e convessa e x S deve essere, per ogni x S : f (x) f (x ) + f (x )T (x x ), e quindi se vale la (7.2) si ha che f (x) f (x ) per ogni x S , il che prova che x ` e un punto di minimo globale. Teorema 7.4.4 (Condizioni necessarie del secondo ordine di minimo locale con insieme ammissibile convesso)

100

Sia x S un punto di minimo locale del problema (P-CONV). Se f ` e due volte continuamente dierenziabile su un insieme aperto contenente S , risulta (x x )T 2 f (x )(x x ) 0, per ogni xS tale che f (x ) (x x ) = 0. (7.3)

Dimostrazione. In base al Teorema 7.3.1 sappiamo che non pu` o esistere una direzione ammissibile di discesa. Se f ` e due volte continuamente dierenziabile ed esiste x S tale che la direzione ammissibile d = x x soddis f (x )T d = 0. Applicando il teorema 6.2.6 si ottiene allora la (7.3). Consideriamo il seguente esempio in cui i vincoli sono solo limitazioni superiori ed inferiori sulle variabili. Esempio 7.4.5 Consideriamo lesempio 7.3.4
2 min x2 1 x2 1 x1 1 1 x2 1

Linsieme ammissibile ` e convesso, quindi le condizioni necessarie richiedono che in un punto x T risulti f (x ) (x x ) 0 per ogni x S . In particolare in questo caso f = e deve risultare quindi 2 x1 (x1 x 1 ) 2 x2 (x2 x 2 ) 0 per ogni 1 x1 1 1 x2 1. 2x1 2x2

Verichiamo che le condizioni sono soddisfatte in x = (1, 1)T . Deve risultare 2(x1 1) 2(x2 1) 0 per ogni 1 x1 1 1 x2 1. Il termine x1 1 0 per punti x S e analogamente x2 1 0 per x S , quindi la condizione ` e eettivamente soddisfatta.

7.5

Ottimizzazione su un poliedro

Una classe signicativa di problemi di programmazione matematica ` e quella in cui linsieme ammissibile ` e un poliedro. Consideriamo, senza perdita di generalit` a (vedi considerazione del capitolo 3), un poliedro denito come S = {x I Rn : Ax b} in cui A ` e una matrice reale m n e b I Rm . Il problema in esame ` e quindi min f (x) Ax b (P P OL)

in cui f ` e una funzione continuamente dierenziabile. Ci proponiamo nel seguito di particolarizzare le condizioni di ottimo gi` a enunciate nei paragra precedenti per ricavare condizioni di ottimo (locale e globale) che tengano conto della struttura dellinsieme ammissibile.

101

7.6

Direzioni ammissibili di un poliedro

Per caratterizzare le direzioni ammissibili di un poliedro ` e necessario introdurre ulteriori denizione. A tal scopo analizziamo nuovamente lesempio 7.2.2. Esempio 7.6.1 Consideriamo nuovamente il poliedro S = {x R2 : x1 + x2 3, x1 1, x 2 0} in Figura 7.1 e il punto ammissibile x = (1, 1).

x2

x2

(1,1)

(1,1)

x1

x1

Figura 7.4: Semispazi individuati rispettivamente dai vincoli x1 + x2 3 e x1 1 dellEsempio


7.6.1. In Figura 7.4 sono rappresentati i due semispazi deniti singolarmente dai due vincoli x1 + x2 3 e x1 1 che deniscono il poliedro S . Se valutiamo i vincoli in x = (1, 1)T (in rosso nella gura 7.4) abbiamo: x 1 + x 2 < 3, x 1 = 1 x 2 > 0 ovvero solo il vincolo x1 1 ` e soddisfatto alluguaglianza. Dalla gura 7.4 ` e evidente che nel punto x ogni direzione d I Rn ` e ammissibile rispetto al vincolo x1 + x2 3 a patto di scegliere adeguatamente il valore dello spostamento t. Analogamente rispetto al vincolo x2 0 (non rappresentato in gura 7.4) che individua il primo e secondo quadrante, nel punto x ogni direzione ` e ammissibile. Se invece consideriamo il semispazio individuato dal vincolo x1 1 ` e evidente che non tutte le direzioni sono ammissibili. Ad

102

esempio la direzione d = (1 0)T (considerata nellesempio 7.2.2 e disegnata in rosso in gura 7.4) non consente di mantenere lammissibilit` a del vincolo per nessun valore di t > 0. Da queste semplici osservazioni appare evidente che in un punto ammissibile, le direzioni ammissibili sono determinate da quei vincoli che sono soddisfatti alluguaglianza. Mentre il valore di tmax dipende dal valore degli altri vincoli. Introduciamo allora la seguente denizione:

Denizione 7.6.2 (Vincoli attivi) Sia S = {x Rn : Ax b} e sia x S . Se x soddisfa = bi si dice che il vincolo i-esimo ` e attivo in x . il aT i x Dato x S si indica con I ( x) linsieme degli indici di tutti i vincoli attivi n x , ovvero: I ( x) = {i {1, . . . , m} : aT = bi } i x

Nellesempio 7.2.2, in x ` e attivo il secondo vincolo e cio` e I ( x) = {2}. La denizione 7.6.2 di vincolo attivo non ` e legata alla particolare forma del poliedro, ma pu` o essere estesa al caso generale. In particolare, notiamo che i vincoli di uguaglianza sono, per denizione, sempre attivi in un punto ammissibile. Possiamo quindi aermare Dato un poliedro denito come S = {x I Rn : Ax = b}, risulta I ( x) = {1, . . . , m}.

Dato un poliedro in forma standard S = {x I Rn : Ax = b, x 0}, i vincoli attivi sono quelli di uguaglianza pi` u gli eventuali componenti di x j = 0, ovvero risulta I ( x) = {1, . . . , m} {j {1, . . . , n} : x j = 0 }. Possiamo ora caratterizzare le direzioni ammissibili di un poliedro. Teorema 7.6.3 Dato il poliedro S = {x Rn : Ax b}. Sia x un punto ammissibile e sia I ( x) = {i {1, . . . , m} : aT x = b } linsieme degli indici attivi in x . Una direzione d ` e i i ammissibile in x se e solo se risulta aT i d 0, per ogni i I ( x). (7.4)

Inoltre per ogni direzione ammissibile d, il punto x + td ` e ammissibile per ogni valore di t che soddisfa la condizione aT bj j x (7.5) 0 < t tmax = min T d| | a j / I ( x): aT d< 0 j j dove si intende che, se linsieme {j / I ( x ) : aT e vuoto, il j d < 0} su cui si eettua il minimo ` valore tmax = .

103

Dimostrazione. Sia x tale che aT bi per ogni i = 1, . . . , m. Deniamo un punto x = x + td i x con t > 0. Verichiamo che le direzione ammissibili sono tutte e sole quelle per cui vale la (7.4). Si tratta quindi di vericare le condizioni su d per cui risulta aT x + td) = aT + taT i ( i x i d bi per ogni t > 0.

T x): + taT = bi da cui aT Per ogni i I ( x), vale aT i d = bi + tai d. Quindi si ottiene per i I ( i x i x

aT + taT i x i d bi per ogni t > 0

se e solo se

aT i d 0.

T Per ogni j / I ( x), vale aT > bi da cui aT + taT j x j x j d > bj + taj d. Abbiamo due possibili casi: T T 1.) aj d 0 oppure 2.) aj d < 0. T Se aT e sempre ammissibile rispetto j d 0, allora per ogni t > 0 risulta bj + taj d bj e il punto ` T al vincolo j esimo. Se invece aj d < 0, ` e necessario scegliere t abbastanza piccolo in modo T che aT x t | a d | continui ad essere b per t > 0. In ogni caso (1. o 2.) la direzione risulta j j j ammissibile.

Verichiamo che il valore di tmax deve soddisfare la (7.5). Sia quindi data d ammissibile. Dalle considerazioni precedenti si ha che per ogni i I ( x), vale aT ( x + td ) b per ogni t > 0. i i Consideriamo allora gli indici j / I ( x). Abbiamo gi` a visto che nel caso aT j d 0, possiamo T T T T scrivere per ogni t > 0 aj ( x + td) = aj x + taj d aj x > bj per ogni t > 0. d < 0 in cui sappiamo che t non pu` o assumere tutti i valori Consideriamo allora il caso aT j positivi. Dobbiamo trovare il valore di t che soddisfa la condizione di ammissibilit` a espressa da T T T T T aT ( x + td ) = a x + ta d = a x t | a d | b . Risolvendo la condizione a x t |aT j j j j j j i j d| bj si ottiene che bj aT j x t . |aT i d| Poich e questo deve valere per ogni j / I ( x) e tale che aT j d < 0, si ottiene la limitazione data dalla (7.5). Introduciamo la seguente notazione matriciale: indichiamo con AI ( x)| n x) la matrice |I ( ) , si ha costituita dalle righe di A con indice in I ( x), ovvero, se A = (aT i =1 ,...,m i
T AI ( x) = (ai )iI ( x) .

Sia x S , le direzioni ammissibili in x sono tutte e sole le soluzioni del sistema lineare AI ( x) d 0
T dove AI ( e la matrice AI ( x) = {i : aT = bi }. x) ` x) = (ai )iI ( x) e I ( i x

Illustriamo con un esempio.

104

Esempio 7.6.4 Sia dato il poliedro 3x1 2x2 30 2x1 x2 12 x1 0 x2 0 ed il punto ammissibile x = (0, 12)T . Risulta 3 x1 2 x2 = 12 > 30 2 x1 x 2 = 12 x 1 = 0 x 2 = 12 > 0 Quindi I ( x) = {2, 3} e le direzioni ammissibili d = (d1 , d2 ) devono soddisfare il sistema 2d1 d2 0 d1 0 Il valore di tmax si ottiene considerando i vincoli non attivi e dipende ovviamente dalla partico = (1, 2)T . Risulta aT d lare direzione ammissibile considerata. Sia, ad esempio d 1 = 34 < 0 e T e individuato dal primo vincolo e si ha in particolare a4 d = 1 > 0. Quindi il valore di tmax ` tmax = b1 aT 3 x1 2 x2 + 30 6 1x = = = 6. T 1 |a1 d| 3d1 2d2

In gura 7.5 ` e rappresentato il poliedro, il punto x , linsieme delle direzioni ammissibili (insieme compreso tra le due frecce blu tratteggiate), i punto ottenibili spostandosi da x lungo le direzioni ammissibili (regione compresa tra le due frecce blu a tratto intero) e il valore del passo tmax = (1, 2)T . Il punto x = (6, 24)T ` relativo alla direzione ammissibile d + tmax d e indicato in rosso in gura 7.5. 2 Corollario 7.6.5 Dato il poliedro S = {x I Rn : Ax b}. Sia x un punto ammissibile e sia T I ( x) = {i {1, . . . , m} : ai x = bi } linsieme degli indici attivi in x e supponiamo che esista un vettore d non nullo tale che aT i d = 0, per ogni i I ( x).

Allora le direzioni d e d sono ammissibili in x ed esistono valori t+ max > 0 e tmax > 0 tali che

x + td S per ogni t [0, t+ max ) x td S per ogni t [0, t max ) con t+ max =
j / I ( x):

min

aT bj j x T d| | a aT d< 0 j j

t max =

j / I ( x):

min

aT bj j x Td a aT d> 0 j j

(7.6)

Si intende che se linsieme degli indici su cui viene calcolato il minimo ` e vuoto, il corrispondente valore t+ max e/o tmax vale . Dimostrazione. La dimostrazione segue facilmente dal Teorema 7.6.3, applicandolo separatamente alla due direzioni d e d. 2

105

x2 tmax
(0,12)

x1

Figura 7.5: Poliedro Esempio 7.6.4.


Dato un poliedro S = {x I Rn : Ax b} e un punto x S . Supponiamo che esista una tale che direzione d AI ( x) d = 0 I ( x) = {i {1, . . . , m} : aT = bi }. i x

con t [0, t ] ` Allora il punto y = x td max e ammissibile e risulta I (y ) I ( x) t [0, t max ]. Naturalmente ` e possibile caratterizzare anche le direzioni ammissibili nel caso di poliedri in forma standard S = {x I Rn : Ax = b, x 0}. Preventivamente consideriamo il caso di soli vincoli di uguaglianza Ax = b. Sia x un punto ammissibile, ovvero tale che Ax = b. La denizione di direzione ammissibile d richiede che A( x + td) = b per t sucientemente piccolo. Sviluppando si ottiene Ax + tAd = b + tAd = b Ad = 0 per ogni t.

Si osservi che in questo caso, t pu` o assumere qualunque valore non nullo (anche negativo).

106

Dato un poliedro denito da un sistema di equazioni lineari del tipo Ax = b, e un punto ammissibile x . Una direzione d ` e ammissibile se e solo se risulta Ad = 0. Inoltre ogni punto del tipo x + td ` e ammissibile per ogni valore di t = 0. Riportiamo senza dimostrazione il seguente risultato relativo a poliedri in forma standard. Teorema 7.6.6 (Direzioni ammissibili di un poliedro in forma standard) Sia dato un poliedro del tipo {x I Rn : Ax = b, x 0} e sia x un punto ammissibile e sia J ( x) = {j {1, . . . , n} : x j = 0}. Una direzione d ` e ammissibile in x se e solo se risulta Ad = 0, dj 0 per ogni j J ( x). (7.7)

Inoltre per ogni direzione ammissibile d, un punto x + td ` e ammissibile per ogni valore di t che soddisfa la condizione x j 0 t tmax = min j: x j =0: dj <0 |dj | dove si intende che se linsieme su cui si eettua il minimo {j : x j = 0 : dj < 0} ` e vuoto, il valore tmax = .

7.7

Condizioni di ottimo su un poliedro

Utilizzando la caratterizzazione di direzioni ammissibili per un poliedro, possiamo applicare il teorema 7.3.1 ed ottenere la seguente condizione necessaria. Teorema 7.7.1 (Condizione necessaria di minimo locale su un poliedro) Se x ` e un punto di minimo locale del problema (P-POL) allora risulta f (x )T d 0 per ogni direzione d Rn : aT i d 0,
i I (x ) = {i : aT i x = bi }.

Questa condizione pu` o essere formulata come non esistenza di soluzione di una sistema lineare. Utilizzando la notazione matriciale introdotta precedentemente, possiamo scrivere la condizione necessaria espressa dal teorema 7.7.1 come segue. Se x ` e un punto di minimo locale di (P-POL) allora non esiste una soluzione d Rn al sistema di disequazioni lineari AI (x ) d 0, (7.8) f (x )T d < 0. Illustriamo questa condizione necessaria con un esempio.

107

Esempio 7.7.2 Consideriamo il problema min (x1 + 10)2 + (x2 12)2 3x1 2x2 30 2x1 x2 12 x1 0, x2 0 il cui poliedro ` e stato descritto nellEsempio 7.6.4. Consideriamo il punto ammissibile x = (0, 12)T che risulta essere minimo (vedi Figura 7.6 per le curve di livello della funzione obiettivo e la regione ammissibile).

x2

x1

Figura 7.6: Poliedro Esempio 7.7.2.


Il sistema delle direzione ammissibili ` e gi` a stato denito nellEsempio 7.6.4. Il gradiente della funzione obiettivo 2(x1 + 10) f (x) = 2(x2 12) che in x vale f ( x) = (20, 0)T . Il sistema (7.8) diventa 2d1 d2 0 d1 0 20d1 < 0 che non ha ovviamente soluzione (le ultime due disequazioni incompatibili). (7.9) 2

108

Ricordando che un poliedro ` e un insieme convesso e quindi vale la caratterizzazione delle direzione ammissibili data nel teorema 7.4.1 ` e possibile applicare il Teorema 7.4.3 e ottenere il seguente risultato. Teorema 7.7.3 (Condizione necessaria e suciente di minimo globale su un poliedro) Sia f (x) convessa. Un punto x S ` e un minimo globale per problema (P-POL) se e solo se f (x )T d 0 per ogni direzione d Rn : aT i d 0,
i I (x ) = {i : aT i x = bi }.

Anche in questo caso si pu` o riscrivere la condizione come: Sia f una funzione convessa. Un punto x S ` e minimo globale di (P-POL) se e solo se non esiste una soluzione d Rn al sistema di disequazioni lineare AI d 0, f (x )T d < 0. Consideriamo nuovamente un esempio. Esempio 7.7.4 Consideriamo nuovamente il problema dellEsempio 7.7.2. La funzione obiettivo ` e strettamente convessa. Quindi la condizione (7.10) ` e necessaria e suciente di minimo globale. Quindi il punto (0, 12)T che la verica ` e un minimo globale. Verichiamo cosa succede in un punto diverso, ad esempio x = (0, 0)T . In x risulta I ( x) = {3, 4} e le direzioni ammissibili soddisfano: d1 0, d2 0. Inoltre si ha f ( x) = (20, 24)T , quindi il sistema (7.10) ` e 20d1 24d2 < 0 d1 0 d2 0 In Figura 7.7 sono rappresentate le direzioni ammissibili (tutti i vettori tra le due frecce blu) ` facile vericare che esistono soluzioni e il gradiente della funzione obiettivo (freccia rossa). E 6 al sistema; in particolare sono soluzione tutti i vettori d = (d1 , d2 )T tali che 0 d1 < 5 d2 . Quindi, come gi` a sapevamo, il punto x non ` e minimo globale in quanto non ` e soddisfatta la condizione necessaria e suciente. 2 Possiamo inoltre dare una condizione necessaria del secondo ordine utilizzando il teorema 7.3.3. Teorema 7.7.5 (Condizioni necessarie del 2o ordine di minimo locale sul poliedro) Sia x un punto di minimo del Problema (P-POL). Allora risulta
dT 2 x f (x )d 0 T per ogni d I R n : aT i d 0, i I (x ) e f (x ) d = 0.

(7.10)

Le considerazioni svolte nel caso di poliedro descritto da soli vincoli di disuguaglianza Ax b, possono essere applicate anche a poliedri deniti da vincoli di uguaglianza e disuguaglianza.

109

x2

x1

Figura 7.7: Poliedro Esempio 7.7.4.


Possiamo infatti utilizzare la caratterizzazione delle direzioni ammissibili data nel paragrafo 7.6. Consideriamo allora il caso pi u generale di problema min f (x) aT i x bi aT j x = bj i = 1, . . . , m j = 1, . . . , p (7.11)

Se x ` e minimo globale del problema (7.11) allora non esiste una soluzione d Rn al sistema di disequazioni lineare aT i d0 aT j d=0 f (x )T d < 0 i I (x ) {1, . . . , m} j = 1, . . . , p .

Un esempio importante ` e un problema con vincoli in forma standard del tipo: min f (x) Ax = b x0 (P P OL ST )

In questo caso, utilizzando la condizione espressa dal Teorema 7.6.6, possiamo aermare:

110

Se x ` e minimo globale del problema (P-POL-ST) allora non esiste una soluzione d Rn al sistema di disequazioni lineare Ad = 0, (7.12) dJ (x ) 0 f (x )T d < 0. con J (x ) = {j {1, . . . , n} : x j = 0}. Naturalmente anche in questo caso le condizioni diventano necessarie e sucienti nel caso in cui la funzione obiettivo sia convessa.

7.7.1

Condizioni di ottimo per la Programmazione Lineare

Tra i problemi di minimizzazione su poliedro particolare interesse rivestono i problemi di Programmazione Lineare del tipo min cT x ( P L) Ax b. Utilizzando il teorema 7.7.3, possiamo enunciare la seguente condizione che caratterizza ulteriormente (rispetto ai risultati del Capitolo 10) le soluzioni ottime di un problema di Programmazione Lineare. Sia dato il problema (PL). Un punto x ` e minimo globale se e solo se non esiste una soluzione d Rn al sistema di disequazioni lineare AI (x ) d 0, cT d < 0. (7.13)

Analogamente nel caso di problemi di Programmazione Lineare in forma standard del tipo min cT x Ax = b x 0, possiamo aermare: Un punto x ` e minimo globale del problema di Programmazione Lineare (PL-ST) se e solo se non esiste una soluzione d Rn al sistema di equazioni e disequazioni lineari Ad = 0, dJ (x ) 0 c d < 0. con J (x ) = {j {1, . . . , n} : x j = 0}. Le condizioni di non esistenza di soluzioni di un sistema lineare ottenute in questo paragrafo, possono essere formulate in modo equivalente come condizioni di esistenza di un diverso
T

(P L ST )

(7.14)

111

sistema di equazioni. Questa nuova formulazione costituisce la forma classica delle condizioni di ottimo per problemi di programmazione matematica. Sar` a descritta nel Capitolo 9.

7.8

Utilizzo algoritmico delle condizioni di ottimo per problemi con vincoli convessi
min f (x)
xS

Consideriamo il problema di ottimizzazione vincolata: (7.15)

in cui f : Rn R con S convesso e supponiamo vericata la seguente ipotesi (semplicativa) che garantisce lesistenza di un punto di minimo x S : Ipotesi 2 La funzione f : Rn R ` e una funzione continuamente dierenziabile ed S sia compatto. Gli algoritmi per la soluzione del problema (7.15) consentono, in generale, soltanto la determinazione di punti dellinsieme := { Rn : f ( )T (x ) 0, per ogni x S }. Un possibile schema concettuale di algoritmo ` e il seguente: Schema generico di algoritmo di ottimizzazione vincolata per S convessi 1. Si ssa un punto iniziale x0 S e si pone k = 0. 2. Se xk stop. 3. Si calcola una direzione ammissibile e di discesa dk Rn . 4. Si calcola un passo k R lungo dk ; 5. Si determina un nuovo punto xk+1 = xk + k dk S . Si pone k = k + 1 e si ritorna al Passo 2. Per i commenti generali rimandiamo al paragrafo 6.4. Qui ci limitiamo a commentare i seguenti punti: Scelta della direzione e Criterio di arresto. Assegnato un punto xk , possiamo considerare il problema vincolato min f (xk )T (x xk ).
xS

(7.16)

Osserviamo che la funzione obiettivo ` e lineare e poich e si ` e supposto che S sia compatto il problema precedente ammette una soluzione xk . La direzione dk = xk xk ` e una direzione ammissibile in xk . Se allottimo risulta f (xk )T (xk xk ) 0 allora il punto xk ` e ottimo per il problema (7.15) (e dunque risulta soddisfata la verica eettuata al Passo 2 sullappartenenza di xk allinsieme ). Viceversa se f (xk )T (xk xk ) < 0 la direzione dk = xk xk risulta ` dunque possibile determinare con opportuni metodi un passo k > 0 essere anche di discesa. E

112

lungo dk , tale che xk+1 S e f (xk+1 ) < f (xk ). Lalgoritmo cos` denito ` e noto come Metodo di Frank-Wolfe o Conditional gradient method. Osserviamo che se linsieme ammissibile S ` e un poliedro, ovvero ` e denito da vincoli lineari, il sottoproblema (7.16) relativo al calcolo della direzione diviene un problema di programmazione lineare.

113

Capitolo 8

Teoremi dellalternativa
8.1 Introduzione

Nel capitolo 7, le condizioni di ottimo per problemi con vincoli lineari sono state formulate come NON esistenza di soluzione di un sistema di equazioni e disequazioni lineari. Tali condizioni possono essere riscritte come condizioni di esistenza di soluzioni di un diverso sistema di equazioni e disequazioni lineare. A tale scopo si utilizzano i cos` detti teorema dellalternativa. I teoremi dellalternativa consentono di ridurre il problema della non esistenza di soluzioni di un sistema di equazioni e disequazioni lineari assegnato a quello dellesistenza di soluzioni di un altro sistema lineare. Un risultato di alternativa relativo a due assegnati sistemi lineari (I) e (II), consiste nel dimostrare che: Il sistema (I) ha soluzione se e solo se il sistema (II) non ha soluzione.

8.2

Il Lemma di Farkas

Tra i teoremi di alternativa per i sistemi di disequazioni lineari, uno dei pi` u noti, e anche quello che utilizzeremo nei prossimi capitoli, ` e il Lemma di Farkas che si pu` o enunciare nella forma seguente. Teorema 8.2.1 (Lemma di Farkas) Sia B matrice p n e g I Rn . Il sistema Bd 0 non ha soluzione d I Rn se e solo se il sistema BT u = g ha soluzione u I Rp . u0 (II ) gT d < 0 (I )

114

Dimostrazione. [(II) ha soluzione (I) non ha soluzione.] Sia u soluzione del sistema del sistema (II), ovvero che la coppia (I) e supponiamo per assurdo che esista una soluzione d soddis: u , d 0 < 0, Bd gT d T B u =g u 0. Allora si pu` o scrivere:
u 0 0 = 0 Bd u T B d BT u =g

0, gT d

soddis g T d < 0. che contraddice lipotesi che d [(I) non ha soluzione (II) ha soluzione.] La dimostrazione di questa implicazione ` e in due parti. Si dimostra preliminarmente che se (I) non ha soluzione allora esiste un vettore u Rp tale ch B T u = g . Successivamente dimostreremo che u 0. Se (I) non ha soluzione, allora in particolare non esiste una soluzione nemmeno al sistema di equazioni lineari Bd = 0 g T d = 1 [(I )eq ]. Il sistema [(I)eq] si pu` o scrivere in forma matriciale come segue: B gT d= 0 1

` noto che tale sistema non ha soluzione se e solo se E rango e quindi se: rango B gT 0 1 = rango B gT + 1. (8.1) B gT = rango B gT 0 1

Daltra parte, lultima riga (g T 1) ` e linearmente indipendente dalle righe di (B 0) e quindi: rango B gT 0 1 = rango B 0 + 1 = rango(B ) + 1. (8.2)

Dalle (8.1) (8.2), tenendo conto del fatto che il rango di una matrice ` e eguale al rango della trasposta, si ottiene rango BT g = rango B gT = rango(B )

e ci` o implica che il sistema B T u = g ha soluzione, ovvero esiste una rappresentazione di g del tipo:
p

g=
i=1

ui bi .

(8.3)

Dimostriamo ora che u 0. La dimostrazione ` e per induzione sul numero di disequazioni che compongono il sistema, ovvero sul numero di righe p della matrice B .

115

Dimostriamo innanzitutto che la tesi ` e vera per p = 1 e quindi supponiamo che dR: g T d < 0, bT 1 d 0.

Quindi per la (8.3) risulta g = ub1 con u R. Se c = 0, il risultato ` e ovvio in quanto si pu` o = b1 = 0. assumere u = 0. Se c = 0 deve anche essere b1 = 0 e possiamo considerare il vettore d 2 0. Si ottiene quindi Ne segue che bT > 0 e quindi, per ipotesi, deve risultare cT d 1 d = b1 = (ub1 )T (b1 ) = u b1 gT d che implica u 0. Supponiamo ora che il risultato sia vero per una matrice con p 1 righe e dimostriamo che vale per una matrice con p righe. Quindi supponiamo che: non esista d Rn tale che Bd 0, g T d < 0 con B matrice p n. Sappiamo che esiste u Rp tale che vale la (8.3). Tra tutti i possibili u per cui vale la (8.3) determiniamo un vettore u con il massimo numero di componenti non negative e indichiamo con s il numero di componenti non negative di u . Riordiniamo le componenti di u e conseguentemente le colonne di B in modo che le componenti non negative siano le prime s, ovvero risulti u 1 , . . . , u s 0, Allora possiamo scrivere
s p1 2

0,

(8.4)

u s+1 , . . . , u p < 0.

g=
i=1

u i bi +
i=s+1

u i bi + u p bp .

Si tratta di dimostrare che deve essere s = p. Per assurdo supponiamo che s < p. Possiamo scrivere
m1

g=g +
i=s+1

u i bi ,

(8.5)

avendo posto g =

u i bi + u p bp
i=1

(8.6)

La dimostrazione procede in due passi principali. Si dimostra inizialmente che

[Aermazione 1]

Se d Rn :

Bd 0 cT d < 0

d Rn :

Bd 0 g T d < 0

Successivamente che [Aermazione 2] Se d Rn : Bd 0 g T d < 0 = d Rn : bT i d 0, g T d < 0. i = 1, . . . , p 1,

116

Se [Aermazione 1] e [Aermazione 2] sono vere, come conseguenza dellipotesi 8.4, si ha che d Rn tale che bT i d 0 i = 1, . . . , p 1 g T d < 0. (8.7)

Ma poich e il sistema (8.7) ` e di dimensione p 1, soddisfa lipotesi induttiva e quindi esiste un u Rp1 tale che
p1 i=1

g =

u i bi ,

u i 0, i = 1, . . . , p 1.

Sostituendo questa espressione di g nella denizione (8.6) di c, si ottiene:


p1 p1 m1

g= g +
i=s+1 s

u i bi =
p1 i=s+1 p1 i=1

u i bi +
i=s+1

u i bi

=
i=1 s

u i bi + u i bi +
i=1 i=s+1

( ui + u i )bi ( ui + u i )bi + 0 bp

Quindi c risulta essere la combinazione lineare dei vettori bi con s + 1 coecienti non negativi u 1 , . . . , u s , u p = 0. Ma questo ` e assurdo perch e per ipotesi avevamo supposto che s fosse il massimo numero di coecienti non negativi nella denizione di g . Si tratta quindi di dimostrare che valgono le [Aermazione 1] e [Aermazione 2]. Dimostrazione [Aermazione 1]. Sia d tale che Bd 0, e quindi, per ipotesi g T d 0; moltiplicando scalarmente la (8.5) per d si ottiene
p1

0 u i bT i d per ogni d : bi d 0 i = 1, . . . , p.

0 gT d = g T d +
i=s+1 p1

Poich eu s+1 , . . . , u p1 < 0, la


i=s+1

u i bT i d 0 e quindi deve essere necessariamente: g T d 0 per ogni d : Bd 0.

L[Aermazione 1] ` e cos dimostrata. Dimostrazione [Aermazione 2]. Per denizione (8.6), g ` e la combinazione lineare dei vettori bi con coecienti u 1 , . . . , u s , 0, . . . , 0, u p tutti non negativi tranne lultimo u p . La dimostrazione ` e Rn tale che bT d 0 per per assurdo, quindi supponiamo che non sia vera, cio` e che esista d i < 0. Per denizione di g i = 1, . . . , p 1 e g T d possiamo scrivere = g T d
s i=1

p bT d. u i bT i d+u p

117

Se bT i d 0 per i = 1, . . . , p 1, allora

s i=1

< 0 se u i bT p < 0 e quindi g T d i d 0. Daltra parte u

e un vettore tale che e solo se risulta bT p d > 0. Quindi d ` bT i d0 i = 1, . . . , p 1 bT p d > 0,

0 che contraddice g < 0. Quindi anche l[Aermazione ma allora per ipotesi deve essere g T d T d 2] ` e dimostrata.

118

Capitolo 9

Le condizioni di Karush-Kuhn-Tucker
9.1 Introduzione

In questo capitolo deriveremo le condizioni necessarie di Karush-Kuhn-Tucker (KKT) per problemi vincolati in cui S ` e descritto da vincoli di disuguaglianza e/o di uguaglianza lineari. Si tratta di formulare in modo alternativo le condizioni necessarie del paragrafo 7.5. A questo scopo si devono utilizzare i teoremi dellalternativa descritti nel Capitolo 8.

9.2

Le condizioni di Karush-Kuhn-Tucker

Consideriamo il problema di ottimizzazione su un poliedro e senza perdita di generalit` a ci riferiamo inizialmente ad un poliedro con soli vincoli di disuguaglianza. Il problema in considerazione ` e quindi: min f (x) (P P OL) Ax b Nel paragrafo 7.5 abbiamo derivato le condizioni necessarie di ottimo: Se x ` e un punto di minimo locale allora non esiste una soluzione d Rn al sistema di disequazioni lineare AI (x ) d 0, (9.1) f (x )T d < 0.
T dove AI (x ) ` e la matrice AI (x ) = (aT i )iI (x ) di dimensione |I (x )|n e I (x ) = {i : ai x = bi }.

Identicando il sistema (9.1) con il sistema (I) del Lemma di Farkas, e utilizzando il Lemma di Farkas, possiamo aermare quanto segue.

119

Non esiste una soluzione d Rn al sistema di disequazioni lineare (9.1) se e solo se esiste una soluzione del sistema
AT I (x ) u = f (x ),

u 0. dove u ` e un vettore di dimensione |I (x )|. Esempio 9.2.1 Consideriamo il sistema (7.9) ottenuto nellesempio 7.7.2: 2d1 d2 0 d1 0 20d1 < 0 A cui corrispondono AI (x ) = 2 1 1 0 f (x ) = (20, 0)T .

(9.2)

Il sistema (7.9) non ammette soluzione. Applicando il Lemma di Farkas deve esistere un vettore uI R2 tale che u 0 e T 2 1 u1 20 = 1 0 u2 0 Il sistema si scrive 2u1 + u2 = 20 u1 = 0 u1 0, u2 0 2

che ammette la soluzione u1 = 0, u2 = 20.

Utilizzando il Lemma di Farkas, possiamo stabilire le condizioni di ottimo per (P-POL), note come condizioni di Karush-Kuhn-Tucker (KKT), nella forma seguente. Teorema 9.2.2 (Condizioni di Karush-Kuhn-Tucker per (P-POL)) Sia x un punto di minimo locale del problema (P-POL). Allora esiste un vettore Rm tale che risultino soddisfatte le condizioni seguenti: (i) Ax b, (ii) f (x ) AT = 0, (iii) 0,
T (iv) i (bi ai x ) = 0 per i = 1, . . . , m.

Dimostrazione. Sia x un punto di minimo locale; poich e x deve essere ammissibile vale la (i). Inoltre non deve ammettere soluzione il sistema (9.1). Abbiamo gi` a osservato che, identicando il sistema (9.1) con il sistema (I) del Lemma di Farkas, possiamo aermare che esiste una soluzione u del sistema (9.2).

120

m Sia u i 0, i I (x ) una soluzione del sistema precedente e deniamo un vettore R ponendo: u per i I (x ) i (9.3) i = 0 per i / I (x ).

Risulta ovviamente 0 ed ` e soddisfatta la (iii). Inoltre, la (iv) ` e una conseguenza immediata della denizione (9.3) di . Abbiamo infatti che
T i (bi ai x ) = T u i (bi ai x ) = 0 per i I (x ) T per i / I (x ). 0(bi ai x ) = 0

Inne, ricordando che la (9.2) pu` o essere scritta f (x ) =


iI (x )

u i ai possiamo scrivere

f (x ) =
iI (x )

u i ai +
iI (x )

0 ai = AT .

` quindi soddisfatta la (ii). E

Il vettore I Rm si dice moltiplicatore di Lagrange (generalizzato) relativo ai vincoli Ax b. La condizione (iv) ` e nota come condizione di complementarit` a ed esprime il fatto che in un T punto di minimo locale deve essere nullo, per ciascun vincolo, il prodotto i (bi ai x ), per cui, se il vincolo non ` e attivo, si deve annullare il corrispondente moltiplicatore. Tenuto conto che 0 e Ax b 0 la condizione (iv) si pu` o scrivere equivalentemente come segue. La condizione di complementarit` a` e
m

T (b Ax ) =
i=1

T i (bi ai x ) = 0.

Le condizioni enunciate si possono esprimere in una forma equivalente facendo riferimento alla funzione Lagrangiana. La funzione Lagrangiana per il problema (P-POL) ` e denita come L(x, ) = f (x) + T (b Ax) Indicando con x L(x, ) = f (x) AT il gradiente di L rispetto a x, la condizione (ii) esprime il fatto che nel punto (x , ) deve annullarsi il gradiente della funzione Lagrangiana rispetto a x, per cui la coppia (x , ) costituisce un punto stazionario della funzione Lagrangiana. Possiamo allora riscrivere le condizioni di KKT come segue

121

(Condizioni necessarie di Karush-Kuhn-Tucker) Sia x un punto di minimo locale del problema (P-POL). Allora esiste un vettore I Rm tale che risultino soddisfatte le condizioni seguenti: (i) Ax b, (ammissibilit` a) (ii) x L(x , ) = 0 (stazionariet` a), (iii) 0, a). (iv) T (b Ax ) = 0 (complementarit` I punti candidati ad essere minimo di un problema del tipo (P-POL) possono essere determinati risolvendo le condizioni di KKT. Introduciamo allora la seguente denizione. I Un punto x ` e detto punto di KKT del problema (P-POL) se esiste Rm tale che valgano le condizioni: (i) Ax b, ) = 0, (ii) L( x, 0, (iii) T (b Ax (iv) ) = 0. I possibili candidati ad essere minimo locale sono quindi i punti di KKT. Esempio 9.2.3 Consideriamo il problema max 1 x2 2 + x1 2 x1 x2 1 1 2 x1 + x2 1 x1 0

Determiniamo tutti punti di KKT. Mettiamo innanzitutto il problema nella forma (P-POL). 1 min x2 2 x1 2 x1 + x2 1 1 2 x1 x2 1 x1 0 La funzione Lagrangiana per questo problema ` e: 1 1 L(x, ) = x2 2 x1 + 1 (1 + x1 x2 ) + 2 (1 + x1 + x2 ) 3 x1 2 2 Le condizioni di KKT sono:

122

(i) (ammissibilit` a) x1 + x2 1 1 x1 x2 1 2 x1 0 (ii) (stazionariet` a) 1 1 + 1 + 2 3 = 0 2 2 2x2 1 + 2 = 0 1 , 1 , 3 0 (iv) (complementarit` a) 1 (1 + x1 x2 ) = 0 1 2 (1 + x1 + x2 ) = 0 2 3 x1 = 0 Determiniamo i punti di KKT esaminando tutti i casi possibili. Dalla condizione 3 x1 = 0 si ottiene che (iv)2 1 (ii)2 (ii)3 x2 = 1 2 = 0, 1 = 2 3 = 2 ( i) 3 (iv)1 (ii)2 (ii)3 x = 0 1 x 1 x2 = 1 1 = 0, 2 = 2, 3 = 1 2 2 (ii)2 (ii)3 1 (iv) 1 < x2 < 1 1 = 2 = 0, x2 = 0, 3 = 2 0 = 3 x 1 = (ii)1 1 (iv)1 3 1 (ii)2 2 = 0 x2 = , x1 = 1 = , 2 4 4 (iv)1,2 +(i) (ii)1,2 4 1 7 1 3 = 0 1 > 0 x1 = , x2 = , 2 = 1 = > 0 3 3 9 9 2 (ii)1 (ii)2 (iv) 2 1 = 0 2 = 1, x2 = 1 2 , x1 = 1. Quindi abbiamo trovato 5 punti di KKT 1. (0, 1)T con moltiplicatori = (2 , 0, 3/2)T con valore della funz. obiettivo f = 1; 2. (0, 1)T con moltiplicatori = (0 , 2, 1/2)T con valore della funz. obiettivo f = 1; 3. (3/4, 1/4)T con moltiplicatori = (1/2 , 0, 0)T con valore della funz. obiettivo f = 7/16; 4. (4/3, 1/3)T con moltiplicatori = (1/9 , 7/9, 0)T con valore della funz. obiettivo f = 7/9; 5. (1, 1/2)T con moltiplicatori = (0 , 1, 0)T con valore della funz. obiettivo f = 3/4;

(iii) (non negativit` a)

123

Poich e linsieme ammissibile ` e compatto, esiste un punto di minimo globale e si trova tra i punti di KKT determinati so pra. Si tratta di scegliere quello con valore della funzione obiettivo minore: si tratta dei due punti (0, 1) e (0, 1). 2

Ricordando che la condizione (9.1) diventa necessaria e suciente di ottimo globale nellipotesi che f sia convessa, otteniamo che anche le condizioni di KKT sono necessarie e sucienti di ottimo globale nellipotesi che f sia convessa. Vale infatti il teorema seguente. Teorema 9.2.4 (Condizioni necessarie e sucienti di ottimo globale) Sia f una funzione convessa con f continuo in I Rn . Un punto x ` e minimo globale di (P-POL) m se e solo se esiste I R tale che valgano le condizioni: (i) Ax b, (ii) f (x ) AT = 0, (iii) 0, (iv) T (b Ax ) = 0. Se inoltre f ` e strettamente convessa e valgono le condizioni precedenti, allora il punto x ` e lunico punto di minimo globale di f su S . Esempio 9.2.5 Consideriamo il problema dellEsempio 7.7.2 min (x1 + 10)2 + (x2 12)2 3x1 2x2 30 2x1 x2 12 x1 0, x2 0 Si tratta di un problema convesso. La funzione Lagrangiana per questo problema ` e la funzione L: I R2 I R4 I R denita come: L(x, ) = (x1 + 10)2 + (x2 12)2 + 1 (30 3x1 + 2x2 ) + 2 (12 2x1 + x2 ) 3 x1 4 x2 Le condizioni di KKT in un punto x ammissibile richiedono che valga x L(x, ) = con 2(x1 + 10) 31 22 3 2(x2 12) + 21 + 2 4 0 1 (30 3x1 + 2x2 ) = 0 2 (12 2x1 + x2 ) = 0 3 x1 = 0 4 x2 = 0 =0

124

Possiamo facilmente vericare che il punto ammissibile x = (0, 0)T non soddisfa le condizioni di KKT. Infatti dalle condizioni di complementarit a si ottiene che 2 = 1 = 0. Sostituendo in x L(x, ) = 0 si ha 20 3 = 0 24 4 = 0 da cui si ottiene il valore 4 = 24 < 0 che non ` e accettabile. Consideriamo invece il punto (0, 12)T . In questo caso dalle condizioni di complementarit a si ottiene che 4 = 1 = 0. Sostituendo in x L(x, ) = 0 si ha 20 22 3 = 0 2 = 0 da cui si ottiene 2 = 0 e 3 = 20 > 0. Quindi il punto (0, 12)T soddisfa le condizioni di KKT. 2 Possiamo inoltre enunciare anche le condizioni necessarie del secondo ordine Teorema 9.2.6 (Condizioni necessarie del 2o ordine di minimo locale sul poliedro) Sia x un punto di minimo del Problema (P-POL). Allora esiste un vettore Rm tale che risultino soddisfatte le condizioni di KKT ed inoltre risulta
dT 2 x L(x , )d 0 per ogni d I R n : aT i d 0, i I (x )

e f (x )T d = 0.

2 La dimostrazione segue banalmente osservando che 2 x L(x , ) = f (x ) e quindi si tratta di una semplice riscrittura del Teorema 7.7.5.

Dalle condizioni di KKT per problemi nella forma (P-POL) si possono anche derivare direttamente le condizioni di KKT per un problema con poliedro pi` u generale. Analizziamo inizialmente il caso di poliedro descritto da soli vincoli di uguaglianza min f (x) Ax = b con A matrice m n. Il sistema di equazioni Ax = b si pu` o equivalentemente scrivere come Ax b e Ax b, e dunque il problema si scrive: min f (x) Ax b Ax b Associando ai vincoli i moltiplicatori 1 , 2 I Rm , con 1 , 2 0, la funzione Lagrangiana ` e:
T T L(x, 1 , 2 ) = f (x) + T 1 (b Ax) + 2 (b + Ax) = f (x) + (1 2 ) (b Ax).

Se si pone = 1 2 , si pu` o scrivere L(x, ) = f (x) + T (b Ax)

125

dove Rm pu` o assumere qualunque valore (positivo, negativo, nullo) in quanto dierenza di due quantit` a non negative. Inoltre la condizione di complementarit` a` e banalmente soddisfatta in ogni punto ammissibile. Dunque possiamo aermare: (Condizioni necessarie di Lagrange) Sia x un punto di minimo locale del problema min f (x) Ax = b Esiste un vettore I Rm tale che x L(x , ) = f (x ) AT = 0 Consideriamo ora un problema in in forma standard min f (x) Ax = b x0 e la funzione Lagrangiana per il problema (P-ST). La funzione Lagrangiana per il problema (P-ST) ` e denita come L(x, , ) = f (x) + T (Ax b) T x Si derivano facilmente le condizioni di ottimo. Teorema 9.2.7 (Condizioni di Karush-Kuhn-Tucker per (P-ST)) Sia x un punto di minimo locale del problema (P-ST). Allora esistono un vettore I R n e I Rm tale che risultino soddisfatte le condizioni seguenti: (i) Ax = b, x 0 (ammissibilit` a), (ii) x L(x , , ) = f (x ) + AT = 0 (stazionariet` a), (iii) 0, (iv) T x = 0 (complementarit` a). Naturalmente le condizioni di KKT possono essere scritte per un qualunque problema di minimizzazione su un poliedro1 . Nel caso generale supponiamo di avere un problema denito da vincoli di uguaglianza e disuguaglianza del tipo. min f (x) Dx = h Ax b
1

(P ST )

(P GEN)

Nel caso in cui linsieme ammissibile non sia un poliedro, ` e ancora possibile denire le condizioni necessarie di KKT purch e i vincoli soddisno opportune ipotesi dette condizioni di qualicazione dei vincoli. In questo corso non si trattano vincoli non lineari generici.

126

in cui D ` e una matrice p n, A ` e una matrice q n, h I Rp , b I Rq . Allora La funzione Lagrangiana per (P-GEN) ` e L(x, , ) = f (x) + T (b Ax) + T (Dx h), con I Rq , I Rp . Inoltre Le condizioni di KKT per il problema (P-GEN) sono soddisfatte in un punto (x , , ) I Rn I Rq I Rp se: (i) Ax b, Dx = h (ammissibilit` a), (ii) x L(x , , ) = f (x ) AT + DT = 0 (stazionariet` a), (iii) 0, (iv) T (b Ax ) = 0 (complementarit` a). Teorema 9.2.8 (Condizioni di Karush-Kuhn-Tucker per (P-GEN)) Sia x un punto di minimo locale del problema (P-GEN). Allora esistono vettori Rq , I Rp tali che risultino soddisfatte le condizioni seguenti: (i) x L(x , , ) = 0, (ii) 0,
T (iii) i (bi ai x ) = 0 per i = 1, . . . , q .

Esempio 9.2.9 Consideriamo la seguente modica del problema dellEsempio 9.2.3. max 1 x2 2 + x1 2 x1 x2 = 1 1 2 x1 + x2 1 x1 0

Determiniamo tutti punti di KKT. Mettiamo innanzitutto il problema nella forma (P-GEN). 1 min x2 2 x1 2 x1 x2 = 1 1 2 x1 x2 1 x1 0 La funzione Lagrangiana per questo problema ` e: 1 1 L(x, ) = x2 2 x1 + (1 + x1 x2 ) + 1 (1 + x1 + x2 ) 2 x1 2 2 Le condizioni di KKT sono:

127

(i) (ammissibilit` a) x1 x2 = 1 1 x1 x2 1 2 x1 0 (ii) (stazionariet` a) 1 1 + + 1 2 = 0 2 2 2x2 + 1 = 0 1 , 2 0 (iv) (complementarit` a) 1 1 (1 + x1 + x2 ) = 0 2 2 x1 = 0 esaminando tutti i casi possibili. Dalla condizione 3 x1 = 0
2 x2 = 1 1 = 0, = 2 2 = 3/2

(iii) (non negativit` a)

Determiniamo i punti di KKT si ottiene che ( i) x1 = 0 0 = 2 x 1 = 2 = 0 imponiamo

(iv)

(ii)2

(ii)3

1 = 0 1 > 0

1 1 = 1/2, x2 = 1/4, x1 = 3/4

(ii)

(ii)2

(iv)

(iv)2 +(i)

x1 = 4/3, x2 = 1/3,

(ii)1 +(ii)2

1 =

7 9

= 1 9.

Quindi abbiamo trovato 3 punti di KKT 1. x1 = (0, 1)T con moltiplicatori = 2 e = (0, 3/2)T con valore della funz. obiettivo f = 1; 2. x2 = (3/4, 1/4)T con moltiplicatori = 1/2 e = (0, 0)T con valore della funz. obiettivo f = 7/16; 3. x3 = (4/3, 1/3)T con moltiplicatori = 1/9 e = (7/9, 0)T con valore della funz. obiettivo f = 7/9; Poich e linsieme ammissibile ` e compatto, esiste un punto di minimo globale e si trova tra i punti di KKT determinati sopra. Si tratta di scegliere quello con valore della funzione obiettivo minore: si tratta del punto x1 = (0, 1). 2 Possiamo inoltre scrivere le condizioni necessarie del secondo ordine. In particolare si ha: Teorema 9.2.10 (Condizioni necessarie del 2o ordine) Sia x un punto di minimo locale del problema (P-GEN). Allora esistono vettori I Rp e I Rq tali che risultino soddisfatte le condizioni di KKT e inoltre risulta
z T 2 xx L(x , , )z 0

per ogni z : Dz = 0, AI (x ) z 0 e f (x )T z = 0

128

Consideriamo nuovamente lesempio 9.2.9. Esempio 9.2.11 Consideriamo i 3 punti di KKT precedentemente determinati e verichiamo se soddisfano le condizioni necessarie del secondo ordine. La funzione Lagrangiana per questo problema ` e: 1 1 L(x, ) = x2 2 x1 + (1 + x1 x2 ) + 1 (1 + x1 + x2 ) 2 x1 2 2 il cui hessiano ` e 0 0 2 = 2 f (x). xx L(x, , ) = 0 2
2 Quindi per ogni z = (z1 , z2 )T risulta z T 2 xx L(x , , )z = 2z2 . Inoltre f =

1/2 . 2x2 Consideriamo il punto x1 = (0, 1)T . Dobbiamo determinare i vettori z che deniscono le direzioni ammissibili. In x1 ` e attivo il vincolo di disuguaglianza x1 0, quindi le direzioni ammissibili sono i vettori z R2 che risolvono il sistema z1 z2 = 0 z1 0,

ovvero tutti i vettori del tipo z = (t, t)T con t 0. Inoltre deve risultare f (x1 )T z = (t, t)T 1 2 2 1 = t + 2t = 0 , 2

da cui si ottiene t = 0 e z = (0, 0)T . La condizione necessaria del secondo ordine quindi ` e soddisfatta in quanto 2t2 0. Consideriamo il punto x2 = (3/4, 1/4)T . In x2 non ` e attivo nessun vincolo di disuguaglianza, quindi le direzioni ammissibili sono i vettori z R2 che risolvono il sistema z1 z2 = 0 ovvero tutti i vettori del tipo z = (t, t)T . Inoltre deve risultare f (x2 )T z = (t, t)T 1 2
1 2

1 1 = t + t = 0. 2 2

La condizione necessaria del secondo ordine quindi NON ` e soddisfatta in quanto 2t2 0 non 2 ` e vericata qualunque sia t. Il punto x non pu` o essere un minimo locale. Consideriamo il punto x3 = (4/3, 1/3)T . In x3 ` e attivo il primo vincolo di disuguaglianza, quindi le direzioni ammissibili sono i vettori z R2 che risolvono il sistema z1 z2 = 0 1 2 z1 z2 0 ovvero tutti i vettori del tipo z = (t, t)T con t 0. Inoltre deve risultare f (x3 )T z = (t, t)T 1 2 2 3 1 2 = t t = 0, 2 3

che ` e vericata per t = 0. Quindi lunico vettore z = (0, 0)T e la condizione necessaria del secondo ordine quindi ` e soddisfatta in quanto 2t2 0 ` e vericata. 2

129

Capitolo 10

Teoria della Programmazione Lineare


In questo capitolo i risultati dei capitoli precedenti saranno applicati a problemi di Programmazione Lineare (PL). Abbiamo gi` a visto che linsieme ammissibile di un problema di programmazione lineare ` e un poliedro e dunque un insieme convesso e che la PL ` e un problema sia concavo che convesso. Dunque, se ammette soluzione, il minimo globale (non necessariamente unico) si trova sulla frontiera dellinsieme ammissibile. Ci proponiamo di studiare alcune propriet` a dei poliedri che consentano di caratterizzare le soluzioni ottime di un problema di programmazione Lineare. Successivamente si deriva la teoria della dualit` a per la PL a partire dalle condizioni di KKT.

10.1

Caratterizzazione dei vertici di un poliedro

Passiamo ora a caratterizzare in modo algebrico i vertici di un poliedro in forma Ax b. Teorema 10.1.1 (Vertici di un poliedro) Sia dato un poliedro S = {x Rn : Ax b}. Un punto x S ` e un vertice se e solo se esistono n righe aT i della matrice A corrispondenti ai vincoli attivi in x linearmente indipendenti, cio` e se e solo se risulta rango{AI ( x) } = n dove AI ( x)| n costituita dalle righe di A con indice in I ( x) x) la matrice |I ( Dimostrazione. Dimostriamo la parte necessaria, ovvero che se x ` e un vertice, allora rango({ai i I ( x)}) = n. Per assurdo supponiamo che il rango sia p < n. Il sistema omogeneo aT i d=0 i I ( x)

in I ( x) equazioni e n incognite, ha rango inferiore a n e dunque ammette una soluzione non nulla. Dal teorema 7.6.3, sappiamo che d ` e una particolare direzione ammissibile; notiamo

130

inoltre che, poich e anche d ` e soluzione del sistema omogeneo, anche d ` e una direzione ammissibile. Allora possiamo considerare i due punti y=x + td z=x + t(d) e sappiamo che per valori di t sucientemente piccoli sono entrambi ammissibili1 . Osserviamo per` o che possiamo scrivere 1 1 x = y+ z 2 2 ovvero x pu` o essere ottenuto come combinazione convessa con coeciente = 1 2 di due punti ammissibili e distinti. Ma questo contraddice che x sia un vertice. Dimostriamo la parte suciente, ovvero che se rango{ai i I ( x)} = n allora x ` e un vertice. Osserviamo preliminarmente che la condizione rango({ai i I ( x)}) = n implica che x sia lunica soluzione del sistema aT x). i x = bi per ogni i I ( Procediamo ora per assurdo e supponiamo che il punto x non sia un vertice. Allora non pu` o essere lunico punto ammissibile e in particolare esisteranno due punti ammissibili v e w distinti da x e tali che x possa essere espresso come combinazione convessa di v e w ovvero x = (1 )v + w Per ogni i I ( x) possiamo scrivere
T = (1 )aT bi = aT i v + ai w i x T Osserviamo che deve essere necessariamente aT x). Se cos` non i v = bi e ai w = bi per ogni i I ( T fosse, e aT v > b e/o a w > b si avrebbe lassurdo i i i i T = (1 )aT bi = aT i v + ai w > (1 )bi + bi = bi . i x

con (0, 1).

Ma allora otteniamo che sia v che w sono soluzioni del sistema aT x). i x = bi per ogni i I ( Ma questo contraddice che x sia lunica soluzione. Possiamo enunciare alcuni corollari che discendono direttamente dal teorema appena dimostrato. Corollario 10.1.2 Sia dato un poliedro S = {x I Rn : Ax b}. Se la matrice A ha un numero di righe linearmente indipendenti minore di n, allora S non ha vertici. In particolare se m < n allora S non ha vertici. Corollario 10.1.3 Un poliedro S = {x I Rn : Ax b} ha un numero nito di vertici, pari al massimo a m! m = n n!(m n)!
1

per trovare il valore di t basta applicare la formula (7.5) alle due direzioni d e d.

131

Esempio 10.1.4 Sia dato il poliedro dellEsempio 7.6.4 3x1 2x2 30 2x1 x2 12 x1 0 x2 0 che possiamo scrivere in forma matriciale 3 2 2 1 1 0 0 1 30 12 0 . 0

x1 x2

x2

x1

Figura 10.1: Poliedro Esempio 10.1.4.


Il poliedro ` e rappresentato in gura 10.1 e i vertici sono indicati con un puntino rosso. Verichiamo che la condizione espressa dal Teorema 10.1.1 ` e vericata. I tre vertici sono i punti v1 = 0 12 v2 = 0 0 v3 = 6 24 .

In v1 sono attivi i vincoli 2x1 x2 12, x1 0, ovvero I (v1 ) = {2, 3}. Consideriamo le righe della matrice A corrispondenti 2 1 1 0 che si verica sono linearmente indipendenti.

132

In v2 sono attivi i vincoli 3x1 2x2 30, x1 0, ovvero I (v1 ) = {1, 3}. Consideriamo le righe della matrice A corrispondenti 3 2 1 0 che si verica sono linearmente indipendenti. In v3 sono attivi i vincoli 2x1 x2 12, 3x1 2x2 30, ovvero I (v1 ) = {1, 2}. Consideriamo le righe della matrice A corrispondenti 3 2 che si verica sono linearmente indipendenti. 2 1 2

Si noti che il teorema 10.1.1 non esclude che in un vertice siano attivi pi` u di n vincoli. Esempio 10.1.5 Consideriamo il poliedro dellEsempio 10.1.4 con laggiunta di un vincolo x2 24, ovvero: 3x1 2x2 30 2x1 x2 12 x2 24 x1 0, x2 0 Si verica gracamente che il punto v3 = 6 ` e ancora un vertice. Osserviamo che in v3 24 sono ora attivi tre vincoli I (v3 ) = {1, 2, 3} e le righe della matrice A corrispondenti sono: 3 2 2 1 0 1

Si verica facilmente che il rango di questa matrice ` e 2. Esempio 10.1.6 Sia dato il poliedro x1 + 2x2 + x3 3 3x1 x2 + x3 2 2x1 + x2 + x3 3 4x1 + x2 + 2x3 4 elenchiamo i vertici. In forma matriciale possiamo scrivere 1 2 3 x1 3 1 1 x2 2 1 1 x3 4 1 2 3 2 . 3 4

4! m! Si ha n = 3 e m = 4. Il numero massimo di vertici ` e quindi n!(m n)! = 3! = 4 e si ottengono considerando tutte le possibili combinazioni di tre righe della matrice A. consideriamo quindi i casi possibili:

133

1. I = {1, 2, 3}; il sistema aT e il punto i x = bi con i I ha rango pari a 3 e lunica soluzione ` (1, 1, 0)T che per` o non risulta ammissibile, perch e risulta (4 1 2)(1, 1, 0)T < 4; 2. I = {1, 2, 4} il rango della matrice ` e 2 < n, quindi non pu` o essere un vertice; 3. I = {2, 3, 4} il sistema ammette lunica soluzione (3, 2 , 5) che ` e ammissibile e quindi ` e un vertice; 4. I = {1, 3, 4} il sistema ammette lunica soluzione (2, 2, 3) che ` e ammissibile e quindi ` e un vertice.

Tuttavia bisogna porre attenzione al fatto che esistono poliedri che non contengono vertici. Un esempio e dato nella gura 10.2 in cui il poliedro ` e la parte di piano contenuta tra due rette parallele r1 e r2 .

r1 1111111111111111111111111111 0000000000000000000000000000 x2 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 r2 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 x1 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111 0000000000000000000000000000 1111111111111111111111111111
Figura 10.2: Poliedro senza vertici.
Vedremo nel prossimo paragrafo che il caso in cui il poliedro non ha vertici ` e lunico caso in cui il problema di PL corrispondente pu` o avere soluzione ottima (ovviamente sulla frontiera) senza che nessuna soluzione coincida con un vertice. Risulta quindi interessante capire quando un poliedro pu` o non ammettere vertice. A tal scopo introduciamo la seguente denizione Denizione 10.1.7 (Retta) Sia S un poliedro. Il poliedro contiene una retta se esiste un punto x S e una direzione d I Rn tale che x + td S per ogni t I R. La caratterizzazione dei casi in cui un poliedro non ammette vertici ` e riportata nel seguente risultato, di cui omettiamo la prova.

134

Teorema 10.1.8 Un poliedro P non vuoto non ha vertici se e solo se contiene una retta. ` evidente che il poliedro nella Figura 10.2 contiene rette (in particolare contiene, per E esempio, r1 , r2 ) e quindi, non contiene vertici. Osservazione 10.1.9 Nel caso le variabili del problema di PL siano vincolate ad essere tutte non negative ovvero tra i vincoli compaiono x 0, questo implica che il poliedro ammissibile ` e interamente contenuta nel primo ortante e quindi non pu` o contenere rette. Quindi, in base al teorema precedente, tutti i poliedri contenuti nel primo ortante o sono vuoti o hanno dei vertici. Notiamo che questa ` e sicuramente la classe di poliedri che pi` u frequentemente si incontra nelle applicazioni. Possiamo dunque aermare: Se un poliedro S {x IRn : x 0}

` e non vuoto, ammette sempre almeno un vertice. Abbiamo osservato nel Capitolo 3 che ` e possibile passare da una rappresentazione di un poliedro ad altre equivalenti. In particolare ci interessa qui notare che un poliedro del tipo S = {x IRn : Ax b, x 0} (con A matrice m n) pu` o essere trasformato in forma standard con laggiunta di variabili di surplus come segue S = x s IRn+m : Ax s = b, x 0, s 0 .

Possiamo mettere in relazione i vertici di S con i vertici di S . Vale infatti il seguente risultato. Teorema 10.1.10 x ` e un vertice del poliedro S = {x IRn : Ax b, x 0} se e solo se x x con s = Ax b ` e un vertice di S = IRn+m : Ax s = b, x 0, s 0 . s s Dimostrazione. Osserviamo preliminarmente che x S se e solo se per denizione Ax b=s 0. Supponiamo che x sia un vertice di S ma per assurdo esistono altri due punti distinti x s e = (1 ) x1 s1 x1 s1 S e + x2 s2 x2 s2 S x s non sia vertice di S . Dunque x Ax b S . Infatti

S tali che per qualche (0, 1)

Ax1 s1 = b, Ax2 s2 = b, x1 0, s1 0, x2 0, s2 0.

135

Dunque x1 S e x2 S . Inoltre x1 = x2 altrimenti s1 = Ax1 b = Ax2 b = s2 e dunque x1 x2 i due punti S e S non sarebbero distinti. Ma allora risulta anche 1 s s2 x = (1 )x1 + x2 che contraddice lipotesi che x sia un vertice. x Supponiamo ora S sia un vertice di S , ma, per assurdo, x NON sia vertice di Ax b S . Allora esistono due punti x1 , x2 S tali che x = (1 )x1 + x2 per qualche (0, 1). x1 s1 S e x2 s2 S . Inoltre si ha

Siano s1 = Ax1 b 0 e s2 = Ax2 b 0, dunque

(1 )s1 + s2 = (1 )(Ax1 b) + (Ax2 b) = A (1 )x1 + x2 b = Ax b=s che contraddice lipotesi che ( x, s )T sia un vertice di S .

10.2

Il teorema fondamentale della PL


min cT x
xS

Consideriamo ora il problema di Programmazione Lineare

` da notare che il caso di problemi con soli vincoli di uguaglianza del tipo con S poliedro. E min cT x Ax = b con A matrice m n e di scarsa rilevanza pratica in quanto ` e possibile dimostrare che se esiste una soluzione ammissibile e il problema non ` e illimitato allora tutte le soluzioni ammissibili sono ottime. Quindi il problema con soli vincoli di uguaglianza, si riduce essenzialmente allo studio di sistemi di equazioni lineari. In particolare vale il seguente risultato. Teorema 10.2.1 Sia dato il problema di PL min cT x Ax = b con A matrice m n. Se esiste un punto x tale che Ax = b allora 1. il problema ` e illimitato inferiormente (in questo caso esiste un direzione d ammissibile tale che cT d < 0) oppure 2. tutte le soluzioni ammissibili sono ottime (in questo caso per ogni direzione d ammissibile risulta cT d = 0)

136

Dimostrazione. Se x ` e soluzione unica del sistema Ax = b, allora banalmente ` e anche ottima (e non esiste alcuna direzione d = ammissibile perch e il sistema Ad = 0 non ammette soluzione non nulla). Supponiamo quindi che x non sia lunico punto ammissibile, allora per ogni d tale che Ad = 0, le direzione d sono ammissibili e risulta A( x td) = b per ogni t > 0. Se per ogni d ammissibile risulta cT d = 0 allora possiamo scrivere cT ( x + td) = cT x , cio` e tutte le soluzioni ammissibili hanno lo stesso valore della funzione obiettivo. Se invece esiste una d ammissibile per cui cT d = 0, possiamo senza perdere di generalit` a supporre che sia cT d < 0 (altrimenti sarebbe suciente considerare la direzione d). La direzione d ` e di discesa e possiamo scrivere cT ( x + td) = cT x + tcT d = cT x t|cT d|. Al tendere di t ad di ha cT ( x + td) . Nel seguito quindi faremo riferimento solo a problemi di Programmazione Lineare con vincoli di disuguaglianza e senza perdere di generalit a considereremo solo problemi del tipo min cT x Ax b (10.1)

Si tratta quindi di stabilire se un problema di PL ammette soluzione e come caratterizzare la soluzione ottima. Abbiamo gi` a dimostrato con i Teoremi 5.3.5 e 5.3.6 che se esiste una soluzione ottima, allora si trova sulla frontiera del poliedro. Il Teorema Fondamentale della Programmazione Lineare caratterizza in modo pi` u completo i problemi di Programmazione Lineare. Teorema 10.2.2 (Teorema Fondamentale della Programmazione Lineare) Sia dato un problema di PL. Allora una e una sola delle seguenti aermazioni ` e vera: 1. La regione ammissibile ` e vuota; 2. Il problema ` e illimitato; 3. Il problema ammette soluzioni ottime. Se il problema ammette soluzioni ottime e il poliedro che denisce la regione ammissibile ha dei vertici, allora almeno una soluzione ottima cade su un vertice. Nella dimostrazione del teorema fondamentale della PL, faremo riferimento a problemi di PL in forma (10.1) ed useremo lipotesi (solo semplicativa della dimostrazione) che il poliedro non contenga rette, che, in base al Teorema 10.1.8, ci assicura lesistenza di almeno un vertice del poliedro. Teorema 10.2.3 (Teorema fondamentale della PL) Sia dato il problema di PL in forma (10.1). Supponiamo che il poliedro S = {x Rn : Ax b} non contenga rette. Allora ` e vera una e una sola delle delle seguenti tre aermazioni. (a) Il problema non ammette soluzioni ammissibili (la regione ammissibile ` e vuota). (b) Il problema ` e illimitato inferiormente sulla regione ammissibile.

137

(c) Esiste almeno una soluzione ottima e almeno una di esse ` e un vertice del poliedro. Dimostrazione. Ovviamente le tre aermazioni dellenunciato sono incompatibili, nel senso che se ` e vera una, non possono essere vere le altre due. Quindi, per dimostrare il teorema, baster` a mostrare che non pu` o succedere che non si verichi nessuna delle tre. Mostreremo questo facendo vedere che se non sono vere n e (a) n e (b), allora deve essere vera la (c). Supponiamo quindi che la regione ammissibile sia non vuota e che il problema non sia illimitato inferiormente. La dimostrazione ` e divisa in due parti. Nella prima parte dimostriamo la seguente aermazione Per ogni punto x S , esiste un vertice v k tale che cT v k cT x. La seconda parte utilizza invece risultati gi` a noti. In particolare, dal Teorema 10.1.3, sappiamo che i vertici del poliedro sono in numero nito; li indichiamo con v 1 , . . . v p . Quindi tra tutti i vertici v i possiamo scegliere quello per cui il valore della funzione obiettivo ` e minore, che indichiamo con v . Risulta quindi cT v cT v i per ogni vertice v i e quindi in particolare possiamo scrivere anche per il vertice v k determinato nel prima parte cT v cT v k Mettendo insieme le due aermazioni in rosso, possiamo nalmente scrivere cT v cT v k cT x, per ogni x S

il che prova che laermazione (c) ` e vera. Si tratta quindi di dimostrare che esiste un vertice v tale che cT v cT x per ogni x ammissibile. Se il poliedro contiene solo un punto v allora v ` e ovviamente la soluzione ottima ed ` e anche un vertice. Supponiamo allora che il poliedro contenga pi` u di un punto (e quindi inniti). Sia x una soluzione ammissibile che non sia un vertice, dimostriamo che ` e possibile trovare un vertice v tale che cT v cT x . La dimostrazione ` e costruttiva. Poich ex non ` e un vertice, per il Teorema 10.1.1, il sistema aT i I ( x) i d = 0, non nulla. Dunque, per il Corollario non ha rango massimo e quindi ammette una soluzione d con t [0, t ] 7.6.5, d sono direzioni ammissibili e i punti x + td con t [0, t+ td max ] e x max + sono ammissibili. Si dimostra ora che min{tmax , tmax } < , cio` e che lo spostamento lungo ` almeno una delle due direzioni d e nito. soddisfa una delle due condizioni: A questo scopo, osserviamo che la direzione d = 0; (i) cT d = 0. (ii) cT d = 0 ovviamente anche cT (d ) = 0. Poich Se cT d e il poliedro non contiene rette deve risultare + che almeno uno tra tmax e tmax ` e < . Senza perdita di generalit` a possiamo assumere che sia t+ max < . = 0, possiamo assumere, senza perdere di generalit` < 0 (altrimenti Se invece cT d a, che cT d T potremmo scegliere la direzione d che ` e ammissibile e tale che c (d) < 0). La direzione d risulta dunque essere una direzione di discesa (vedi paragrafo 6.2) dunque per ogni t > 0 risulta cT ( x + td) = cT x + tcT d = cT x t|cT d| < cT x per ogni t > 0.

138

Il punto x + td ` e ammissibile per 0 t t+ max , Supponiamo che t possa . Si ottiene


t

lim cT ( x + td) = cT x |cT d| lim t = .


t

Poich e per ipotesi il problema non ` e illimitato, questo non si pu` o vericare, dunque t e necessariamente t+ max < . ` In entrambi i casi otteniamo che x + td e ammissibile per 0 t t+ max < . Deniamo il punto y=x + t+ max d; 0 risulta ricordando che cT d
T T cT y = cT x t+ . max |c d| c x

Verichiamo quali vincoli sono attivi in y . Ricordando che per i I ( x) risulta aT i d = 0, otteniamo T T x + t+ = bi i I ( x) aT i y = ai ( max d) = ai x Quindi I ( x) I (y ). Facciamo ora vedere che I ( x) I (y ), ovvero che in y ` e attivo almeno un vincolo in pi` u rispetto ad x . Consideriamo quindi i vincoli NON attivi in x e si indichi con jmax / I ( x) un indice per cui: aT bjmax jmax x t+ max = T | |a d
jmax

(cio` e un indice per cui ` e raggiunto il minimo nella formula (7.6)). Per denizione risulta che lindice jmax / I ( x) e aT jmax d < 0. Possiamo allora scrivere:
T T T T T aT + t+ t+ jmax x = ajmax x max ajmax d = ajmax x max |ajmax d| = ajmax x T aj x bjmax T max | = bj |ajmax d max | |aT d jmax

Quindi abbiamo che I (y ) I ( x) {jmax }, cio` e in y ` e attivo almeno un vincolo che non era attivo in x . Osserviamo che potrebbe esistere pi` u di un indice per cui ` e raggiunto il minimo nella formula (7.6). In questo caso avrei attivi in y tanti vincoli in pi` u rispetto a x quanti sono tali indici. Abbiamo quindi dimostrato che, a partire da un qualunque punto ammissibile x che non ` e un vertice, possiamo determinare un nuovo punto y con valore della funzione obiettivo non superiore e con un numero di vincoli attivi linearmente indipendenti maggiore rispetto a x . Se y non ` e un vertice, possiamo ripetere lo stesso procedimento no a quando non troviamo un punto in cui sono attivi n vincoli linearmente indipendenti, cio` e un vertice. Quindi abbiamo dimostrato laermazione che ci serviva: Per ogni punto x S , esiste un vertice v tale che cT v cT x. La dimostrazione ` e conclusa. 2 Illustriamo con un esempio la tecnica costruttiva utilizzata nella dimostrazione del teorema precedente. Esempio 10.2.4 Consideriamo il problema di PL min 4x1 x2 3x1 2x2 30 2x1 x2 12 x1 0, x2 0

139

x2

v3 v2

v1
3 9 13

x
t+max

x1

Figura 10.3: Figura relativa allEsempio 10.2.4.


il cui poliedro ` e riportato in Figura 10.3. Il poliedro ha tre vertici che abbiamo gi` a calcolato nellEsempio 10.1.4, che indichiamo con v 1 , v 2 , v 3 (puntini rossi in gura). Sia x = (3, 0) un punto ammissibile (puntino blu in gura). Si verica facilmente che x non ` e un vertice. Infatti I ( x) = {4} (` e attivo solo il vincolo x2 0) e risulta ovviamente rango{ai i I ( x)} = 1 < n = 2. Consideriamo allora il sistema omogeneo aT 4d=0 ovvero d2 = 0.

= (1, 0) Quindi una qualunque direzione del tipo (d1 , 0)T con d1 = 0 ` e ammissibile in x . Sia d T una possibile soluzione (indicata in azzurro in Figura 10.3). Risulta c d = 4d1 = 4 < 0 e si consideri il punto = (3, 0)T + t(1, 0)T = (3 t, 0)T . x + td Calcoliamo il valore di t+ max = min 9 + 30 6 + 12 3 , , 3 2 1 = min{13, 9, 3} = 3.

Si osservi in Figura 10.3 che i valori 13,9,3 che compaiono dentro il min per il calcolo di t+ max sfonda rispettivacorrispondono rispettivamente al valore del passo t per cui il punto x + td mente il primo, il secondo e il terzo vincolo. Il valore di t+ max = 3 corrisponde al massimo valore del passo t per cui il punto rimane ammissibile. Sia allora
T y=x + t+ max d = (0, 0)

x) {3}. Inoltre la riga a3 ` e linearmente indipendente da a4 . Si Risulta I (y ) = {3, 4} = I ( tratta del vertice v 1 .

140

10.3

Problemi di PL in forma standard


min cT x Ax = b x 0.

Consideriamo in questo paragrafo i problemi di PL in forma standard, ovvero del tipo: (10.2)

Possiamo caratterizzare i vertici di un poliedro in forma standard utilizzando la struttura particolare e osservando che in punto ammissibile x risulta I ( x) = {1, . . . , m} {i : x i = 0 }. Vale il seguente teorema che si riporta senza dimostrazione. Teorema 10.3.1 (Vertici di un poliedro in forma standard) Sia dato un poliedro S = {x I Rn : Ax = b, x 0}. Un punto x S ` e un vertice se e solo se le colonne della matrice A corrispondenti a componenti positive di x , sono linearmente indipendenti. Osserviamo innanzitutto che, per losservazione 10.1.9, risulta vero il seguente risultato. Corollario 10.3.2 Sia dato un poliedro del tipo S = {x I Rn : Ax = b, x 0}. Se il poliedro non ` e vuoto, ammette sempre un vertice. Nel caso di problemi di PL in forma standard, ricordando che in questo caso il poliedro ammissibile non contiene rette, possiamo enunciare il teorema fondamentale come segue: Teorema 10.3.3 (Teorema fondamentale della PL) Sia dato il problema di PL in forma min cT x Ax = b x 0. Allora ` e vera una e una sola delle delle seguenti tre aermazioni. (a) Il problema non ammette soluzioni ammissibili (la regione ammissibile ` e vuota). (b) Il problema ` e illimitato inferiormente sulla regione ammissibile. (c) Esiste almeno una soluzione ottima e almeno una di esse ` e un vertice del poliedro. Abbiamo gi a osservato che e sempre possibile scrivere un poliedro nella forma standard aggiungendo eventuali variabili di slack. In particolare dato un poliedro P Ax b x0 e posisbile metterlo in forma standard introducendo le variabili le m variabili s ottenendo il poliedro PS Ax s = b x, s 0 possibile dimostrare che esiste una corrispondenza biunivoca tra i vertici di P e i vertici di E PS [2]. Teorema 10.3.4 Un vettore x Rn e vertice del poliedro P se e solo se il vettore ( x, s ) n m R R con s = Ax b e vertice del poliedro PS .

141

10.4

Cenni sul metodo del simplesso per la Programmazione Lineare

Il Metodo del Simplesso ` e certamente lalgoritmo di ottimizzazione pi` u famoso e pi` u utilizzato nelle applicazioni. Proposto nel 1947 da G.B.Dantzig, ha subito, negli oltre 50 anni di vita, numerosi miglioramenti che, pur non modicando in modo sostanziale la semplice struttura logica ideata da Dantzig, ne hanno certamente migliorato lecienza computazionale e la facilit` a di uso. Esistono oggi numerosi package commerciali che implementano il Metodo del Simplesso e consentono la soluzione di problemi di Programmazione Lineare con milioni di variabili. Lo scopo di questo capitolo ` e quello di fornire una descrizione della struttura logica del Metodo senza entrare nei dettagli implementativi delle varie operazioni elementari (inversioni di matrici sparse, gestione dei passi degeneri, etc.) delle quali il Metodo si compone. Tali questioni sono molto rilevanti se si vuole realizzare un algoritmo eciente e robusto ma possono essere trascurate se si vuole semplicemnete sesere in grado di interpretare loutput di un qualunque software che implementa tale metodo (vedi anche il capitolo 15). Il Metodo del Simplesso si applica a problemi di Programmazione Lineare in forma standard del tipo: min cT x Ax = b x 0n (10.3)

con b 0m . Non vi ` e perdita di generalit` a nellassumere che il problema sia in forma standard e con termini noti non negativi. Lobiettivo del metodo del simplesso ` e quello di individuare una soluzione di base ammissibile ottima del problema (10.3) ovvero un vertice ottimo del poliedro P = {x I Rn : Ax = b, x 0n }.

Lidea di cercare la soluzione ottima in un vertice della regione ammissibile, invece, trova giusticazione nei risultati dei capitoli precedenti e, in particolare, nel Teorema 10.2.3. Il Metodo del Simplesso ` e caratterizzato dalle seguenti operazioni principali: 1. Individuazione di una prima base ammissibile B (se esiste). 2. Verica dellottimalit` a della soluzione di base ammissibile corrente. 3. Verica dellillimitatezza del problema. 4. Costruzione di una nuova base ammissibile. Descriveremo brevemente una implementazione del Metodo del Simplesso, detta implementazione in due fasi. In tale implementazione, la procedura che consente di vericare se il problema di PL ` e ammissibile e, in caso aermativo, individua la prima base ammissibile viene detta Fase I del Metodo del Simplesso. Se il problema non possiede una soluzione di base ammissibile allora il poliedro P ` e vuoto ed il problema ` e inammissibile. In tal caso la Fase I termina segnalando linammissibilit` a del problema.

142

La Fase II del Metodo del Simplesso ` e caratterizzata dalle operazioni (2), (3) e (4). In tale fase, a partire da una SBA, lalgoritmo costruisce una sequenza di soluzioni di base ammissibili, vericando, ad ogni iterazione, lottimalit` a della SBA corrente e lillimitatezza del problema. Sotto opportune condizioni, lalgoritmo converge in un numero nito di iterazioni alla soluzione ottima del problema (10.3). Alla base della struttura della Fase II, ci sono le operazioni di verica dellottimalit` a di una SBA, di verica dellillimitatezza del problema (10.3) e di costruzione di una nuova SBA. Nel seguito descriveremo solo il criterio di ottimalit a usando nel simplesso perch e costitusce un informazione contenuta negli output dei software commerciali.

10.4.1

Soluzione di Base Ammissbile (SBA) e costi ridotti

Una sottomatrice B (m m) di A si dice matrice di base di A se ` e non singolare. Data una matrice di base B , ` e sempre possibile, eventualmente riordinando le colonne, esprimere la matrice A nella forma A = (B, N ) dove N ` e la matrice denita dalle colonne fuori base. Analogamente si possono partizionare i vettori x= xB xN , c= cB cN

le variabili xB si dicono variabili di base e le variabili xN variabili fuori base. Quindi si pu` o riscrivere il problema in forma standard come segue:
T min cT B xB + cN xN BxB + N xN = b xB 0, xN 0

Poich e B ` e non singolare per ipotesi, possiamo esprimere le variabili di base xB in funzione delle variabili xN e si ottiene xB = B 1 b B 1 N xN (10.4) e sostituendo si pu` o scrivere:
1 T 1 min cT b + (cT N )xN BB N cB B 1 1 B b B N x N 0m , xN 0

(10.5)

Questo problema nelle sole variabili xN ` e detto problema ridotto ed ` e ottenuto per proiezione delle variabili xB nel sottospazio delle variabili xN . Data una base B , una soluzione del tipo xB = B 1 b, xN = 0 si dice Soluzione Ammissibile di Base (SBA) se e solo se B 1 b 0. Le SBA ed i vertici di un poliedro in forma standard sono in stretta relazione. Vale infatti il seguente teorema. Teorema 10.4.1 [2] Dato un poliedro in forma standard, un punto x ` e un vertice se e solo se ` e una SBA.

143

Il problema (10.5), nelle sole variabili xN , ` e equivalente al problema (10.3). In particolare, risulta ovvio vericare quanto segue. x B Un vettore x = ` e una soluzione ammissibile di (10.3) se e solo se il vettore x N ` e x N una soluzione ammissibile di (10.5) e x B = B 1 b B 1 N x N . Inoltre, il valore della funzione obiettivo del problema (10.3) calcolata in x ` e uguale al valore della funzione obiettivo del B 1 b problema ridotto calcolata in x N . Di conseguenza, se x = ` e la soluzione di base 0nm ammissibile associata alla matrice B , abbiamo che x N = 0nm ` e la soluzione corrispondente del problema ridotto e che cT B 1 b ` e il valore della funzione obiettivo per entrambi i problemi. I coecienti di xN nella funzione obiettivo del problema ridotto sono le componenti del vettore denito da: T 1 T = cT N N cB B che ` e detto vettore dei coecienti ridotti. Le considerazioni appena svolte ci consentono di formulare un criterio suciente di ottimalit` a per una soluzione di base ammissibile. Teorema 10.4.2 (Criterio di Ottimalit` a) Sia x = B 1 b , una soluzione di base am0nm missibile per il problema (10.3). Se il vettore dei coecienti ridotti ` e non negativo, ovvero se: T 1 cT N 0T N cB B nm , allora la soluzione di base ammissibile x = B 1 b 0nm ` e ottima per il problema (10.3).

Dimostrazione. Dobbiamo dimostrare che, se il vettore dei coecienti ridotti ` e non negativo, risulta cT x cT x per una qualunque soluzione ammissibile x. Calcoliamo cT x = cT B + cT N = cT B = Bx Nx Bx T 1 cB B b. Una qualunque soluzione ammissibile x del problema (10.3) pu` o essere suddivisa in xB T . Allora risulta che cT x = cT B xB + cN xN e ricordando lespressione (10.4) di xB xN
1 cT x = cT b + T xN BB

Daltra parte, per ipotesi 0 e x ` e ammissibile e quindi, in particolare, xN 0, quindi si ha:


1 cT x cT b = cT x . BB

Ma la precedente relazione mostra che la soluzione di base ammissibile x associata alla matrice di base B ` e ottima per il problema (10.3). 2

144

Esercizio 10.4.3 Sia dato il problema di PL in forma standard min x1 + 3x2 + x3 x1 + 5x2 + 2x3 = 6 2x1 + x2 x4 = 2 x1 0, x2 0, x3 0 x4 0

Le soluzioni di Base ammissibili (SBA) sono 1. x1 = x2 = 0 (non ammissibile) 2. x1 = x3 = 0 (non ammissibile) 3. x1 = x4 = 0 (non ammissibile) 4. x2 = x3 = 0, x1 = 6, x4 = 10 (SBA) 5. x2 = x4 = 0, x1 = 1, x3 = 6. x3 = x4 = 0, x1 =
4 9 5 2

(SBA)

x2 = 10 9 (SBA). 6 x1 6 0 Consideriamo la SBA ; le variabili di base xB = = , le variabili fuori 0 x4 10 10 x2 1 0 base xN = = 0; la matrice di base B = . I coecienti di costo ridotto x3 2 1 1 0 T 1 T = cT N richiede il calcolo dellinversa B 1 = . Dunque sostituendo si N cB B 2 1 ottiene T = ( 3 1) (1 0) 1 2 0 1 5 1 2 0 = ( 2 1 ) 0,

dunque non ` e possibile concludere nulla sulla ottimlit` a della soluzione.

145

Capitolo 11

Condizioni di ottimo per la PL e teoria della dualit` a


In questo capitolo utilizzeremo le condizioni di KKT del capitolo 9 per derivare le condizioni necessarie e sucienti di ottimo per la programmazione lineare.

11.1

Le condizioni di ottimalit` a nella Programmazione Lineare

Nel caso in cui la funzione obiettivo sia lineare ovvero del tipo f (x) = cT x, i problemi (P-POL), (P-ST), (P-GEN) analizzati nel paragrafo 7.7 sono problemi di Programmazione Lineare. Poich e si tratta di problemi convessi le condizioni di KKT sono necessarie e sucienti. Consideriamo inizialmente il problema di PL min cT x Ax b La funzione Lagrangiana si scrive L(x, ) = cT x + T (b Ax) e le condizioni di KKT sono le seguenti. Teorema 11.1.1 (Condizioni di KKT per il problema (PL)) Un punto x ` e minimo globale del problema di Programmazione Lineare (PL) se e solo se esiste I Rm tale che valgano le condizioni: (i) Ax b, (ii) c = AT , (iii) 0, ( P L)

146

(iv) T (b Ax ) = 0. Osserviamo che la (i) e una condizione nelle sole varibaili x, le (ii) e (iii) sono condizioni nei soli moltiplicatori . La condizione di complementarit a (iv) del Teorema 11.1.1 pu` o essere scritta in modo equivalente utilizzando la condizione (ii). In particolare possiamo scrivere (ricordando che (AT )T = T A) 0 = T (b Ax ) = T b T Ax = T b x T c. Possiamo quindi scrivere le condizioni necessarie e sucienti di KKT in una forma equivalente e pi` u diusamente utilizzata come condizioni di ottimo per la Programmazione Lineare. (Condizioni necessarie e sucienti di ottimo per (PL)) Un punto x ` e minimo globale del problema di Programmazione Lineare min cT x Ax b se e solo se esiste I Rm tale che valgano le condizioni: (i) Ax b, (ii) c = AT , (iii) 0, (iv) bT = cT x . Possiamo fare qualche ulteriore considerazione. Le condizioni (ii) e (iii) esprimono il fatto che I Rm deve essere ammissibile rispetto ai vincoli lineari AT = c 0 Il sistema (11.1) rappresenta un poliedro in forma standard nello spazio I Rm . Consideriamo allora un x I Rn soluzione ammissibile del problema (PL), e un I Rm appartenente al poliedro denito da (11.1), ovvero una coppia (x, ) che soddisfa Ax b, Osservando che T (b Ax) = cT x
m i=1 (iv) (ii)

(P L)

(11.1)

0, AT = c.

(11.2)

i (bi aT i x) 0, possiamo facilmente scrivere cT x + T (b Ax) bT + (cT T A)x bT .

(0, bAx)

=
(AT =c)

147

Per ogni coppia (x, ) che soddisfa Ax b, 0, AT = c risulta cT x bT . Si tratta di un risultato molto signicativo, che riprenderemo pi` u avanti. Notiamo che, in particolare, poich e il minimo globale x del problema (PL) ` e ammissibile, otteniamo immediatamente che vale cT x bT (11.3) per ogni che soddisfa (11.1). Possiamo quindi aermare che una qualunque soluzione I Rm che soddisfa (11.1) consente di determinare una limitazione inferiore al valore ottimo del problema (PL). Per migliorare la limitazione inferiore espressa dalle disuguaglianza (11.3), si pu` o rendere quanto pi` u possibile grande il termine di destra bT della disuguaglianza (11.3), cio` e si pu` o massimizzare la quantit` a bT al variare del vettore IRm , tra tutti i vettori che soddisfano AT = c, 0. Pi u formalmente si pu` o cercare la soluzione del problema max bT AT = c 0 (11.4)

Si tratta di un problema di PL in forma standard (` e suciente cambiare verso allottimizzazione da max a min). Possiamo dimostrare che le condizioni necessarie e sucienti di minimo globale per questo problema sono le stesse condizioni per il problema (PL). Questo signica che i moltiplicatori del teorema 11.1.1 sono la soluzione ottima del problema (11.4). Abbiamo infatti il seguente teorema. Teorema 11.1.2 (Dualit` a forte (condizioni di ottimalit` a) per la (PL-ST)) Un punto m I R ` e minimo globale del problema di Programmazione Lineare (11.4) se e solo se esiste x I Rn tale che valgano le condizioni: (i) AT = c, (ii) 0, (iii) Ax b, (iv) bT = cT x . Dimostrazione. Si utilizza il teorema 9.2.7 applicato a (PL-ST). Osserviamo che (PL-ST) ` e in forma di massimizzazione e che ` e denito nello spazio I Rm . La funzione Lagrangiana per (PL-ST) ` e L(, x, v ) = bT + xT (AT c) v T dove x I Rn (righe di AT ) e v I Rm . Per il teorema 9.2.7 esistono dei vettori x I Rn e v I Rm (dimensione ) tali che (a) AT = c, 0,

148

(b) b + Ax v = 0, (c) v 0, (d) v T = 0. La (a) ` e esattamente la (i) e (ii). Dalla condizione (b) si pu` o ricavare v ed eliminarlo dalle altre condizioni in cui ` e presente. Si ha b + Ax = v . Imponendo la (c) v 0 si ottiene b + Ax 0

che ` e la (iii). Sostituendo in (d) si ha poi 0 = v T = (b + Ax )T = bT + x T AT = bT + x T c che ` e la (iv). Possiamo quindi concludere che le condizioni necessarie e sucienti di ottimo per i problemi di Programmazione Lineare (PL) e (PL-ST) sono le stesse. ` evidente la forte relazione che esiste tra i due problemi di Programmazione Lineare (PL) E e (PL-ST). Questa coppia di problemi viene detta primale-duale. (Problema primale e duale) Il problema min cT x Ax b e il problema max bT AT = c 0 costituiscono una coppia primale-duale di Programmazione Lineare. In maniera del tutto simmetrica, il problema (PL) risulter` a il problema duale del problema (PL-ST). La coppia primale (P)-duale (D) costituita dai problemi (PL) e (PL-ST) ` e solo una possibile coppia primale-duale. Siamo ora in grado di riformulare delle condizioni di ottimalit` a in riferimento alla coppia primaleduale (PL) e (PL-ST). (P L ST )

(P L)

149

Condizioni di Ottimalit` a IRm . Allora x sono soluzioni ottime rispettivamente per la coppia Siano dati x IRn e e min cT x Ax b max bT AT = c 0 (P L ST )

(P L)

se e solo se valgono le seguenti condizioni (i) Ax b, (ammissibilit` a primale) = c, 0 (ammissibilit` (ii) AT a duale); (coincidenza dei valori delle funzioni obiettivo). (iii) cT x = bT La costruzione del problema duale a partire da un qualsiasi problema di PL ` e rimandata nel prossimo paragrafo. I risultati che abbiamo ricavato per la coppia primale-duale (PL) e (PL-ST) possono essere generalizzati ad una qualunque coppia primale-duale (P)-(D) e costituiscono i risultati fondamentali della teoria della dualit` a. In particolare, le condizioni necessarie e sucienti di ottimo per la Programmazione Lineare costituiscono invece il cosiddetto teorema della dualit` a forte. Teorema 11.1.3 (Teorema della Dualit` a Forte) Se il problema primale (P) ammette una soluzione ottima x allora anche il problema duale (D) ammette una soluzione ottima . Simmetricamente, se il problema duale (D) ammette una soluzione ottima allora anche il problema primale (P) ammette una soluzione ottima x . Inoltre i valori delle funzioni obiettivo dei due problemi allottimo sono uguali cio` e risulta cT x = bT . Ricordando inoltre che x ` e un minimo del problema (PL), e quindi risulta cT x cT x per ogni x tale che Ax b, possiamo aermare: (Limitazione superiore ed inferiore per il valore ottimo del problema (PL)) ) che Sia x un minimo globale del problema di Programmazione Lineare (PL). Per ogni ( x, T soddisfa Ax b, 0, A = c, risulta cT x cT x bT . Analogamente per il problema in forma standard possiamo dare una limitazione inferiore e superiore al valore ottimo bT . Infatti, presa una qualunque coppia (x, ) che soddisfa (11.2), si pu` o scrivere bT
(AT =c)

= =

bT + xT (c AT ) cT x + T (b Ax) cT x.

(0, bAx)

150

Possiamo allora aermare: (Limitazione superiore ed inferiore per il valore ottimo del problema (PL-ST)) ) Sia un minimo globale del problema di Programmazione Lineare (PL-ST). Per ogni ( x, che soddisfano (11.2), si ha bT cT x . bT La relazione tra i valori delle funzioni obiettivo del problema primale e duale in un qualunque punto ammissibile primale-duale che abbiamo ricavato in relazione alla coppia primale-duale (PL) e (PL-ST) pu o essere generalizzato ad una qualunque coppia primale-duale (P)-(D) e costituisce un risultato noto come Teorema della dualit` a debole. Teorema 11.1.4 (Teorema della Dualit` a debole) Per ogni soluzione ammissibile x del prob del problema di PL duale (D) si ha lema di PL primale (P) ed ogni soluzione ammissibile cT x bT ` cio` e il valore della funzione obiettivo duale in e minore o uguale del valore della fuzione obiettivo primale in x . Da cui si ottiene il seguente corollario. Corollario 11.1.5 Se x ` e una soluzione ammissibile del problema primale (P) e u una soluzione ammissibile del problema duale (D) tali che cT x = bT (11.5)

allora x eu sono soluzioni ottime rispettivamente per il problema primale (P) e per il problema duale (D). Utilizzando il teorema della dualit` a debole possiamo anche derivare delle condizioni di illimitatezza di un problema di PL. Vale in particolare questo risultato. Teorema 11.1.6 (Condizione di illimitatezza del primale) Se il problema primale (P) ` e illimitato (inferiormente) allora il problema duale (D) ` e inammissibile. Viceversa se il problema duale (D) ` e illimitato (superiormente) allora il problema primale (P) ` e inammissibile. Dim.: Supponiamo che (P) sia illimitato e che, per assurdo, il problema duale (D) sia am del problema duale (D). Allora, per il missibile, cio` e che esista una soluzione ammissibile per ogni soluzione amTeorema 11.1.4 (Teorema della Dualit` a debole), risulta cT x bT missibile x del problema primale (P). Ma questo contraddice lipotesi che (P) sia illimitato inferiormente. Viceversa

Sulla base dei risultati no ad ora esaminati si evince che data un coppia primaleduale di problemi di Programmazione Lineare possono vericarsi le seguenti situazioni: o entrambi ammettono soluzione ottima, oppure se uno ` e illimitato laltro ` e inammissibile, oppure sono

151

entrambi inammissibili. Queste possibilit` a sono riportate schematicamente nella tabella che segue.

DUALE

ottimo finito

illimitato superior.

inammissibile

ottimo finito

SI

NO

NO

PRIMALE

illimitato inferior.

NO

NO

SI

inammissibile

NO

SI

SI

11.2

Costruzione del duale di un problema di PL

La coppia di problemi primale-duale denita nel paragrafo precedente ` e solo una delle possibile coppie primali-duali di problemi di Programmazione Lineare. Si consideri un problema Programmazione Lineare scritto nella forma pi` u generale cio` e nella forma T min cT 1 y + c2 z Cy + Dz = h (11.6) Ey + F z g y0 in cui le variabili sono (y, z )T I Rn suddivise in y IRn1 con y 0 e z IRn1 , non e vincolata in segno. Corrispondentemente abbiamo c1 IRn1 , c2 IRn2 . I vincoli sono p di disuguaglianza e q di uguaglianza con i vettori h IRp e g IRq . Le matrici C, D, E, F hanno dimensioni adeguate: C matrice p n1 , D matrice p n2 , E matrice q n1 , F matrice q n2 . La notazione in cui ` e scritto questo generico problema di Programmazione Lineare (11.6) ` e tale da evidenziare separatamente gli elementi che intervengono nella formulazione: le variabili sono partizionate nella variabili y vincolate in segno e z non vincolate in segno e corrispondentemente anche i coecienti di costo della funzione obiettivo sono partizionati in c1 e c2 ; i vincoli sono scritti suddividendo quelli di uguaglianza (=) e quelli di disuguaglianza ( 0). Osservazione importante Nella denzione di regole per la costruzione del problema duale di un generico problema di PL ` e essenziale mettere il problema nella forma indicata, con particolare attenzione al verso dellottimizzazione, cio` e min o max, e al verso dei vincoli di disuguaglianza che corripondentemente devono essere nella forma o .

152

Per costruire il problema duale del problema (11.6) ` e suciente riportarsi alla forma del problema (PL) con soli vincoli di disuguaglianza . A tale scopo riscriviamo il problema (11.6) nella forma equivalente T min cT 1 y + c2 z Cy + Dz h Cy Dz h Ey + F z g y0 ovvero in forma matriciale min c1 c2 C C E In1
T

z y

D D F 0

y z

h h , g 0

dove In1 ` e la matrice identit` a di ordine n1 . Quindi il problema (11.6) ` e stato ricondotto nella forma (PL) in cui C C A= E In1 D D F 0 h h b= g 0 c1 c2

c=

Siamo quindi in grado di scrivere il duale di questo problema nella forma (PL-ST) max bT AT = c 0 in cui AT = C D C D E F In1 0

e il vettore delle variabili duali si pu o decomporre in = (u, v, w, t)T I Rm = I R2p+q+n1 . Il problema duale si scrive in forma matriciale max T h u h v g w 0 t C D C D E F In1 0

u v = w t

c1 c2

u, v, w, t 0. Sviluppando si ottiene

153

max hT u hT v + g T w C T u C T v + E T w + In1 t = c1 DT u DT v + F T w = c2 u 0, v 0, w 0, t 0

max che ` e equivalente a

hT (u v ) + g T w C T (u v ) + E T w + t = c1 DT (u v ) + F T w = c2 u 0, v 0, w 0, t 0.

Eettuando il cambio di variabili u v = si ottiene il seguente problema max hT + g T w C T + E T w + t = c1 DT + F T w = c2 w 0, z 0. Eliminando la variabile t utilizzando il primo vincolo t = d C T E T w possiamo ancora scrivere max hT + g T w C T + E T w c1 DT + F T w = c2 w0

(11.7)

nelle variabili (, w) IRq IRp , con non vincolata in segno e w 0. Il problema (11.7) ` e il problema duale del problema (11.6) che viene detto problema primale. Osservazione importante Le variabili (x, y ) sono dette variabili primali e corrispondono ai moltiplicatori dei vincoli lineari di tipo generale del problema duale. Le variabili (, w) sono dette variabili duali e corrispondono ai moltiplicatori dei vincoli lineari di tipo generale del problema primale. I due problemi costituiscono la generica coppia coppia primaleduale.
T min cT 1 y + c2 z Cz + Dy = h Ez + F y g y0

max

(P )

hT + g T w C T + E T w c1 DT + F T w = c2 w 0.

(D )

Dallosservazione dei due problemi si deducono facilmente le propriet` a fondamentali di una coppia primaleduale; innanzitutto un problema ` e di minimizzazione mentre laltro ` e di massimizzazione. Inoltre poich e la matrice dei coecienti dei vincoli di un problema si ottiene trasponendo quella dellaltro, si ha che ad ogni variabile di un problema corrisponde un vincolo nellaltro. Si osserva inoltre uno scambio tra i termini noti di un problema e i coecienti della funzione obiettivo dellaltro. Queste propriet` a possono essere cos` schematicamente riassunte: il problema duale di un problema di minimizzazione ` e un problema di massimizzazione e simmetricamente, il problema duale di un problema di massimizzazione ` e un problema di minimizzazione; ad ogni vincolo di uguaglianza del problema primale ` e associata una variabile nel problema duale non vincolata in segno;

154

ad ogni vincolo di disuguaglianza (di maggiore o uguale) del problema primale ` e associata una variabile nel problema duale vincolata in segno; ad ogni variabile vincolata in segno del problema primale ` e associato un vincolo di disuguaglianza ( se il problema ` e di massimizzazione, se il problema ` e di minimizzazione) del problema duale; ad ogni variabile non vincolata in segno del problema primale ` e associato un vincolo di uguaglianza del problema duale. Queste corrispondenze possono essere riassunte nella tabella che segue dove gli insieme I , J , M e N sono insiemi di indici: PRIMALE min cT x DUALE max bT u

= bi , i I VINCOLI bi , i J xj 0, j M VARIABILI xj , j N libere

ui , i I , libere VARIABILI ui , i J , u i 0 cj , j M VINCOLI = cj , j N

Esempio 11.2.1 Si consideri il seguente problema di Programmazione Lineare max 4x1 + 3x2 + 2x3 x1 + 2x2 + 3x3 8 2x1 x3 7 3x1 + 4x2 x3 5 x2 + x3 6 x2 0 Il problema duale ` e il seguente problema di minimizzazione min 8u1 + 7u2 + 5u3 + 6u4 u1 + 2u2 + 3u3 = 4 2u1 + 4u3 + u4 3 3u1 u2 u3 u4 = 2 u1 0, u2 0, u3 0, u4 0.

155

Esempio 11.2.2 Si consideri il seguente problema di Programmazione Lineare min 2x1 3x2 + x3 3x1 + x2 + 5x3 7 x1 + x2 6x3 9 4x1 x2 2x3 = 8 x1 0, x2 0. Dopo aver riscritto il secondo vincolo come x1 x2 + 6x3 9 si pu` o formulare facilmente il problema duale associato max 7u1 9u2 + 8u3 3u1 u2 + 4u3 2 u1 u2 u3 3v 5u1 + 6u2 2u3 = 1 u1 0, u2 0.

Esempio 11.2.3 Si consideri il problema di Programmazione Lineare min x1 + 3x2 x1 + 4x2 24 5x1 + x2 25 x1 0, x2 0 Geometricamente si ricava facilmente che questo problema ammette soluzione ottima nel punto (x1 , x2 ) = (4, 5) e il valore ottimo della funzione obiettivo ` e pari a 19. Se si considera il problema duale max 24u1 + 25u2 u1 + 5u2 1 4u1 + u2 3 u1 0, u2 0; si ricava facilmente (geometricamente) che, in accordo con quanto previsto dal Teorema della 14 1 Dualit` a Forte, anche questo problema ammette soluzione ottima nel punto (u1 , u2 ) = , 19 19 e il valore ottimo della funzione obiettivo vale 19. Esempio 11.2.4 Si consideri il problema di Programmazione Lineare max 2x1 + 3x2 2x1 + x2 3 1 2 x1 + x2 6 x1 0, x2 0.

Geometricamente si ricava che il problema ` e illimitato superiormente. Quindi, per lanalisi teorica vista deve risultare che il suo duale ` e inammissibile. E infatti se si considera il problema duale associato min 3u1 + 6u2 2u1 1 2 u2 2 u1 + u2 3 u1 0, u2 0 si vede facilmente che questo problema non ammette soluzioni ammissibili.

156

11.3

Interpretazione della Dualit` a

Se un problema di Programmazione Lineare proviene da una precisa classe di problemi applicativi e dunque ha una struttura bene denita, il suo corrispondente duale si pu` o prestare ad essere interpretato come problema applicativo diverso ma collegato al problema primale.

11.3.1

Il duale del problema di allocazione ottima di risorse

Si consideri nuovamente il semplice problema di allocazione ottima dellEsempio 2.4.1 che ` e rappresentato dal seguente problema di Programazione Lineare: max (7x1 + 10x2 ) x1 + x2 750 x1 + 2x2 1000 x2 400 x1 0, x2 0.

(11.8)

Ricordiamo che le variabili x1 e x2 sono associate rispettivamente ai quantitativi di colorante C1 e C2 da produrre e che la produzione avviene utilizzando tre preparati base P1, P2 e P3 dei quali si ha una disponibilit` a massima rispettivamente pari a 750, 1000 e 400 ettogrammi. Supponiamo, ora di voler sottrarre preparati base dalla produzione dei coloranti per venderli direttamente. Indichiamo con u1 , u2 e u3 i prezzi associati rispettivamente alla vendita diretta di un ettogrammo di preparato base P1, P2 e P3. Supponendo di destinare tutti i preparati alla vendita diretta, il protto che si otterrebbe sarebbe 750u1 + 1000u2 + 400u3 . (11.9)

Naturalmente si vorr` a fare in modo che questa operazione di sottrazione dei preparati base dalla produzione dei coloranti e vendita diretta risulti economicamente conveniente e quindi mentre si vuole minimizzare lespressione (11.9) anch e i prezzi di vendita risultino competitivi sul mercato, si imporr` a che il protto ottenuto vendendo direttamente i quantitativi di preparato base necessario per ottenere un litro di colorante sia maggiore o uguale del protto associato alla vendita di un litro di colorante stesso; quindi, utilizzando i dati del problema riportati nella tabella dellEsempio 2.4.1, si deve imporre che risulti u1 + u2 7 per quanto riguarda il colorante C1 e u1 + 2u2 + u3 10 per quanto riguarda il colorante C2 e naturalmente deve essere u1 0, u2 0 e u3 0. Quindi il modello lineare che rappresenta loperazione sopra descritta ` e il seguente: min (750u1 + 1000u2 + 400u3 ) u1 + u2 7 u1 + 2u2 + u3 10 u1 0, u2 0, u3 0. Esaminando questo problema si vede immediatamente che esso rappresenta il problema duale del problema dato (11.8).

157

In generale, se si considera un generico problema di allocazione ottima di m risorse Ri , i = 1, . . . , m con la possibilit` a di fabbricare n prodotti Pj , j = 1, . . . , n, come abbiamo gi` a esaminato nel capitolo precedente si pu` o formulare questo problema come max cT x Ax b x0 (11.10)

dove ricordiamo x IRn ` e il vettore avente per componenti i livelli di produzione di ciascuno dei prodotti, c IRn il vettore dei protti netti e b IRm il vettore delle disponibilit` a massima di ciascuna delle risorse. Supponiamo ora di voler sottrarre risorse alla produzione per venderle direttamente e siano ui , i = 1, . . . , m i prezzi unitari associati alla vendita delli-esima risorsa. Supponendo che per ciascuna risorsa si voglia destinare alla vendita una quantit` a pari alla disponibilit` a massima di quella risorsa, si ottiene un protto pari a b1 u1 + b2 u2 + + bm um . Per rendere competitivi sul mercato i prezzi unitari ui da assegnare alle risorse vendute direttamente, si vogliono scegliere i valori pi u bassi possibile per le ui , ma naturalmente, anch e questa operazione di vendita diretta in luogo della fabbricazione dei prodotti risulti conveniente si deve imporre che il protto ottenuto vendendo direttamente le risorse necessarie per fabbricare un prodotto sia maggiore o uguale al protto che si ricaverebbe dalla vendita del prodotto nito. Quindi per ogni prodotto, si deve imporre che valga a11 u1 + a12 u1 + . . . a1n u1 + ... ... ... ... +am1 um +am2 um . . . +amn um c1 c2 . . . cn

con ui 0, i = 1, . . . , m e dove le quantit` a aij rappresentano la quantit` a di risorsa Ri necessaria per fabbricare una unit` a di prodotto Pj . Quindi il problema da risolvere pu` o essere scritto nella forma min bT u AT u c u0 che ` e il problema duale del problema (11.10).

11.3.2

Il duale del problema di miscelazione.

Si consideri il problema di miscelazione dellEsempio 3.3.1 che ` e rappresentato dal seguente problema di Programmazione Lineare: min 400x1 + 600x2 140x1 70 20x1 + 10x2 30 25x1 + 50x2 75 x1 0, x2 0.

158

Ricordiamo che le variabili x1 e x2 rappresentano le quantit` a di polpa di frutta e di dolcicante da utilizzare nella produzione del succo di frutta che deve avere come requisito un contenuto minimo di 70 mg di vitamina C, 30 mg di sali minerali e 75 grammi di zucchero. Supponiamo ora che unindustria farmaceutica venda compresse di nutrimenti puri, cio` e compresse di vitamina C, di sali minerali e di zucchero e che vuole immettere queste compresse su un ipotetico mercato come oerta sostitutiva al succo di frutta per lacquisizione di vitamina C, di sali minerali e di zucchero. Naturalmente questa industria farmaceutica vuole massimizzare il protto ricavato dalla vendita delle compresse, ma al tempo stesso deve dare un prezzo alle compresse tale da essere competitiva. Siano allora u1 , u2 e u3 i prezzi di vendita rispettivamente di 1 mg di vitamina C, di 1 mg di sali minerali e di 1 grammo di zucchero; supponendo che la vendita di questi nutrimenti puri sia pari ai fabbisogni minimi (cio` e a 70 mg di vitamina C, a 30 mg di sali minerali e a 75 grammi di zucchero), lespressione del protto dellindustria farmaceutica che dovr` a essere massimizzata ` e 70u1 + 30u2 + 75u3 . Anch e i prezzi di vendita dei componenti puri in compresse ssati dallindustria siano concorrenziali, si deve imporre che il costo unitario dei nutrimenti puri sia minore o uguale al prezzo che si dovrebbe pagare per avere la stessa quantit` a di componente attraverso gli ingredienti del succo di frutta, cio` e dalla polpa di frutta e dal dolcicante. Quindi si devono imporre i seguenti vincoli 140u1 + 20u2 + 25u3 10u2 + 50u3 Inoltre dovr` a essere u1 0, u2 0, u3 0. Quindi il problema complessivo formulato dallindustria farmaceutica ` e max 70u1 + 30u2 + 75u3 140u1 + 20u2 + 25u3 400 10u2 + 50u3 600 u1 0, u2 0, u3 0 400 600.

che ` e il problema duale del problema di miscelazione considerato. In generale, consideriamo un generico problema di miscelazione in cui si hanno n sostanze Sj , j = i, . . . , n ciascuna delle quali contiene una quantit` a aij di componente utile Ci , i = 1, . . . , m. Come abbiamo gi` a esaminato nel capitolo precedente un problema di miscelazione di questo tipo si pu` o formulare come min cT x Ax b (11.11) x0 dove ricordiamo che x IRn ` e il vettore avente per componenti le quantit` a di ciascuna sostanza da introdurre nella miscela, c IRn il vettore dei costi unitari delle sostanze, b IRm il vettore dei requisiti minimi di componenti utili da introdurre nella miscela, e A IRmn la matrice i cui elementi sono le aij . Supponiamo ora che unindustria sia in grado di fornire componenti utili allo stato puro e che voglia immettere sul mercato questi componenti utili e siano ui , i = 1, . . . , m i prezzi unitari da assegnare a ciascuno di essi. Supponendo che la richiesta del mercato sia pari ai fabbisogni

159

minimi della miscela, cio` e per ciascun componente pari a bi , il protto totale dellindustria che vende i componenti utili allo stato puro ` e b1 u1 + b2 u2 + + bm um . Inoltre, anch e i prezzi ui assegnati dallindustria ai componenti puri siano concorrenziali, si deve imporre che il costo dei componenti puri sia minore o uguale al prezzo che dovrebbe pagare per avere la stessa quantit` a di componente ottenuto attraverso le sostanze e quindi deve valere
m

aij ui cj ,
i=1

j = 1, . . . , n.

Inoltre si deve imporre ui 0, i = 1, . . . , m. Quindi il problema formulato si pu` o scrivere nella forma max bT u AT u c u0

che ` e immediato vericare essere il problema duale del problema di miscelazione assegnato (11.11).

11.3.3

Il duale del problema dei trasporti

Si consideri un problema di trasporto che ` e rappresentato dal seguente problema di Programmazione Lineare: min(250x1 + 100x2 + 85x3 + 120y1 + 80y2 + 150y3 ) x1 x1 + + x2 + x3 + x2 + x3 y1 y1 + y2 + y3 y2 y3 = = = = = 50 55 30 40 35

x1 0, x2 0, x3 0, y1 0, y2 0, y3 0. dove x1 , x2 , x3 rappresentano rispettivamente quantit` a di acqua da trasportare dal primo stabilimento a tre impianti e y1 , y2 , y3 rappresentano rispettivamente la quantit` a di acqua da trasportare dal secondo stabilimento a tre impianti. Ricordiamo inoltre che la disponibilit` a giornaliera di acqua presso i due stabilimenti ` e rispettivamente di 50 e 55 ettolitri di acqua, mentre le richieste giornaliere di acqua presso i tre impianti sono rispettivamente di 30, 40 e 35 ettolitri. Supponiamo ora che una compagnia specializzata in trasporto di acqua (esterna allindustria) voglia proporsi allindustria di acque minerali per eettuare il trasporto dellacqua dagli stabilimenti agli impianti. Naturalmente la compagnia di trasporti, per convincere lindustria di acque minerali ad avvalersi del servizio di trasporto esterno, dovr` a proporre dei prezzi di trasporto vantaggiosi. A tale scopo la compagnia dei trasporti propone allindustria di prelevare un ettolitro di acqua da ciascuno dei due stabilimenti per un prezzo unitario (in migliaia

160

di lire) rispettivamente pari a u1 e u2 e di consegnare un ettolitro di acqua a ciascuno dei tre impianti per un prezzo unitario (in migliaia di lire) rispettivamente pari a v1 , v2 e v3 . Quindi la compagnia dei trasporti vorr` a massimizzare la funzione che fornisce il suo protto complessivo che ` e data da 50u1 + 55u2 + 30v1 + 40v2 + 35v3 . Tuttavia anch e loerta della compagnia dei trasporti risulti vantaggiosa per lindustria delle acque minerali i prezzi del trasporto proposti dovranno risultare non superiori a quelli che lindustria avrebbe eettuando in proprio i trasporti stessi. Quindi dovr` a risultare u1 + v1 u1 + v2 u1 + v3 u2 + v1 u2 + v2 u2 + v3 250 100 85 120 80 150.

Quindi, la compagnia dei trasporti dovr` a risolvere il problema max (50u1 u1 u1 u1 + 55u2 + 30v1 +v1 +v1 +v2 +v3 + 40v2 +v2 +v3 u2 u2 u2 + 35v3 ) 250 100 85 120 80 150

che si verica immediatamente essere il problema duale del problema dei trasporti assegnato. In generale, consideriamo ora un generico problema dei trasporti gi` a esaminato nel capitolo precedente. Supponiamo che unazienda voglia provvedere in proprio ad eettuare il trasporto di materiali e che quindi cerchi di risolvere il problema dei trasporti
m n

min
i=1 j =1 n

cij xij xij = ai i = 1, . . . , m j = 1, . . . , n i = 1 , . . . , n; j = 1, . . . , m (11.12)

j =1 m

xij = bj xij 0
i=1

dove, ricordiamo, che le cij rappresentano il costo del trasporto dallorigine i alla destinazione j , le ai le disponibilit` a alli-esima origine e le bj le richieste alla j -esima destinazione. Supponiamo, ora che una compagnia che esegue trasporti voglia proporsi a questa azienda, come alternativa vantaggiosa alleettuazione dei trasporti in proprio; a tale scopo questa compagnia propone allazienda di prelevare ununit` a di prodotto dallorigine i per un prezzo unitario

161

ui e di consegnare una unit` a di prodotto alla destinazione j per un prezzo unitario vj . Per assicurare che i suoi prezzi siano competitivi rispetto a quelli che lazienda avrebbe eettuando i trasporti in proprio, la compagnia di trasporti deve fare s` che risulti ui + vj cij per ogni i = 1, . . . , m e j = 1, . . . , n. Daltra parte la compagnia di trasporti vuole scegliere i prezzi da proporre u1 , . . . , um e v1 , . . . , vn in modo da massimizzare il suo protto complessivo. Poich e le quantit` a ai e bj di prodotto rispettivamente disponibili allorigine i e richieste alla destinazione j sono note alla compagnia di trasporti, questa cercher` a di massimizzare la funzione
m n

max
i=1

ai ui +
j =1

bj vj .

Quindi il problema che la compagnia di trasporti formula per determinare quali prezzi ui e vj proporre allazienda ` e il seguente
m n

max
i=1

ai ui +
j =1

bj vj i = 1, . . . , m, j = 1, . . . , n

(11.13)

ui + vj cij

che ` e il problema duale del problema dei trasporti (11.12).

11.3.4

Analisi di sensitivit` a alla variazione dei dati

Nei modelli reali le variabili (primali) possono rappresentare, ad esempio, livelli di produzione e i coecienti di costo possono essere associati ai protti ricavati dalla vendita dei prodotti. Quindi la funzione obiettivo di un problema primale indica direttamente come un aumento della produzione pu` o inuenzare il protto. Sempre in relazione, ad esempio, ad un modello per la pianicazione della produzione, i vincoli di un problema (primale) possono rappresentare una limitazione dovuta alla limitata disponibilit` a delle risorse; ora, un aumento della disponibilit` a delle risorse pu` o consentire un aumento della produzione e quindi anche del protto, ma questa relazione tra aumento della disponibilit` a delle risorse e aumento del protto non si deduce facilmente dal problema formulato (il problema primale). Uno dei possibili usi della dualit` a` e quello di rendere esplicito leetto dei cambiamenti nei vincoli (ad esempio in quelli di disponibilit` a di risorse) sul valore della funzione obiettivo. Lanalisi della sensitivit` a si occupa proprio di stabilire come si modica la soluzione ottima di un modello lineare in conseguenza di variazioni dei dati. Un ruolo fondamentale in questa analisi ` e giocato dai cosidetti prezzi ombra, che, misurano i costi impliciti associati ai vincoli. Come vedremo, i prezzi ombra sono nientaltro che le variabili duali.

11.3.5

Interpretazione geometrica della variazione dei dati sui problemi primale duale

Consideriamo la seguente coppia di problemi primale-duale di programmazione lineare:

162

max 2x1 + 6x2 x1 + 2x2 5 (P ) x1 + x2 4 x1 , x2 0

min 5u1 + 4u2 u1 + u2 2 2u1 + u2 6 u1 , u2 0

(D)

Supponiamo che il problema primale rappresenti un semplice problema di produzione in cui x1 , x2 rappresentano livelli di attivit` a produttiva e in vincoli corrispondano a due risorse limitate. La soluzione graca dei problemi (P) e (D) ` e riportata in Figura 11.1.

u2 x2 SD
k=15 k=0

SP x1
k=15 k=0

u1

Figura 11.1: Soluzione graca della coppia primale duale


Il problema primale ha unica soluzione x = (0, 5/2)T , il duale ammette lunica soluzione ottima u = (3, 0)T . Si osserva geometricamente (ed ` e ovvio anche dal valore delle variabili duali u ) che in x ` e attivo un solo vincolo del problema primale, il primo. Questo signica che il livello di produzione ottima corrisponde ad utilizzare completamente la prima risorsa (x 1 + 2x2 = 5), mentre la seconda risorsa ` e in eccesso (x1 + x2 = 2, 5 < 4). Inoltre il livello di produzione ottima pone x = 0 che signica che il prodotto rappresentato da x1 non ` e prodotto. 1 Ci si possono porre allora due diverse domande 1. conviene acquisire una quantit` a maggiore di risorsa relativa al primo vincolo ? Quanta e a quale prezzo ? 2. quando diventa conveniente produrre anche il prodotto x1 ?

163

Possiamo rispondere a queste domande facendo delle analisi di tipo geometrico sul problema primale e duale.

Cambiamenti nei termini noti dei vincoli. Acquisire una quantit` a maggiore di risorsa
relativa al primo vincolo signica incrementare il r.h.s del vincolo da 5 a 5 + con 0. Da un punto di vista analitico i due problemi (P) e (D) diventano max 2x1 + 6x2 x1 + 2x2 5 + (P ) x1 + x2 4 x1 , x2 0 min (5 + )u1 + 4u2 u1 + u2 2 2u1 + u2 6 u1 , u2 0

(D)

Geometricamente un aumento di del r.h.s. del primo vincolo, corrisponde a spostare il vincolo verso lalto. La situazione ` e rappresentata geometricamente in Figura 11.2, in rosso ` evidente che la soluzione ottima si sposta nel punto x = (0, 5+ )T di valore le variazioni. E 2 (5+ ) cT = cT x + 3 . Laumento nella funzione obiettivo ` e quindi pari a 3 . Il massimo x = 6 2 valore che pu` o assumere corrisponde al valore per cui il vincolo x1 + 2x2 5 + passa per il punto (0, 4)T , ovvero = 3.

u2 x2

max

max

SD
(5+ )/2

SP
=5

k=15+3 =5+

x1

u1

Figura 11.2: Soluzione graca della coppia primale duale al variare di


Per > 3, il primo vincolo non gioca pi` u alcun ruolo nella denizione della regione ammissibile e la risorsa che diventa vincolante ` e la seconda.

164

Nel problema duale, un variazione di corrisponde ad una variazione del coeciente angolare della funzione obiettivo. La regione ammissibile del problema duale ` e rimasta invariata. Il valore = 3 corrisponde alla funzione obiettivo 8u1 + 4u2 rappresentata in rosso in Figura 11.2 per valore = 0. Le curve di livello di questa funzione sono parallele al secondo vincolo del problema duale. La soluzione ottima del problema duale (D) rimane la soluzione u = (3, 0)T T per 3. Poich e la soluzione ottima u = u il valore c u = (5 + )3 = 5u1 + u1 . La variazione del valore ottimo ` e 3 pari a quanto determinato nel caso primale. Il valore 3 = u a in pi` u 1 rappresenta anche quanto sono disposto a pagare al massimo ununit` di tale risorsa. Per valori di > 3, la soluzione ottima del problema duale cambia e diventa il punto (0, 6)T di valore 24 indipendente dal valore di . Possiamo riassumere le considerazioni fatte n qui nella seguente aermazione Laumento della prima risorsa (r.h.s. primo vincolo) di un valore produce un aumento della funzione obiettivo pari a u e 3. 1 = 3 purch Il valore ottimo della variabile duale u rappresenta il massimo costo arontabile per laumento 1 di una unit` a di risorsa. e detto prezzo ombra relativo alla prima risorsa (al primo vincolo). Lintervallo Il valore u 1 =3` 03` e lintervallo entro cui la previsione sulla variazione della funzione obiettivo ` e valida. (In realt` a si pu` o prevedere anche un decremento ).

11.3.6

Interpretazione economica della dualit` a e prezzi ombra

Come visto nellesempio, in generale, le variabili duali (i prezzi ombra) rappresentano leetto di cambiamenti nel termine noto dei vincoli. Si consideri, infatti un generico problema di Programmazione Lineare (in forma standard) (P), il suo duale (D) ed inoltre si consideri il problema (P ) ottenuto modicando il termine noto da b a b + (con = (1 . . . , m )T IRm ) e il corrispondente problema duale (D ): min cT x Ax = b x0 min cT x Ax = b + x0

(P)

(D)

max bT u AT u c

(P )

(D )

max(b + )T u AT u c

Siano x e u rispettivamente la soluzione ottima del problema (P) e del problema (D). Siano inoltre x () e u () rispettivamente la soluzione del problema (P ) e del problema (D ) Dalle formulazioni di questi problemi si possono facilmente dedurre due osservazioni: la variazione del termine noto b nel problema primale si riette in un cambiamento dei coecienti della funzione obiettivo del problema duale;

165

la regione ammissibile del problema (D) e del problema (D ) sono uguali; da questo segue che se u IRm ` e soluzione ottima del problema (D) allora u ` e ammissibile per il problema (D ), ma non necessariamente ` e ottima per (D ). Inoltre per il Teorema della dualit` a forte applicato alla coppia primaleduale (P)(D) deve essere cT x = bT u , (11.14) mentre, sempre per il Teorema della dualit` a forte ma applicato alla coppia primaleduale (P ) (D ) deve essere cT x () = (b + )T u (). (11.15) Se la soluzione ottima x soddisfa unopportuna ipotesi (cio` e che in x non ci siano pi` u di n vincoli attivi) e se il vettore ha componenti sucientemente piccole allora si pu` o dimostrare che: u () = u . (11.16) Utilizzando la (11.14), la (11.15) e la (11.16) si ha: cT x () = (b + )T u () = bT u + T u = cT x + T u , che pu` o essere riscritta nella seguente forma: cT x () cT x = 1 u1 + 2 u2 + . . . + m um , (11.18) (11.17)

dove = (1 , . . . , m )T . Dalla precedente relazione segue che una possibile interpretazione della variabile duale ui ` e quella di essere un prezzo associato ad un incremento unitario del termine noto bi . Per questa ragione le variabili duali ui , i = 1, . . . , m, vengono denominate prezzi ombra. Il prezzo ombra di un vincolo rappresenta la variazione del valore della funzione obiettivo quando il r.h.s. del vincolo ` e aumentato di una unit` a, mentre tutti gli altri dati del problema sono ssati. Sebbene la (11.16) (e di conseguenza la (11.18)) valga solamente sotto opportune ipotesi, in molte situazioni pratiche, le variabili duali ui , i = 1, . . . , m, forniscono delle utili indicazioni su quale componente bi variare per migliorare il valore ottimo della funzione obiettivo. Ricordiamo i principi generali che regolano luso dei prezzi ombra. 1. I prezzi ombra sono tanti quanti i vincoli lineari generali (esclusi i vincoli di non negativit` a sulle variabili). 2. lunit` a di misura dei prezzi ombra ` e espressa in (unit` a di misura funzione obiettivo)/(unit` a misura vincolo). 3. I prezzi ombra corrispondono al valore delle variabili duali (allottimo), ovvero ai moltiplicatori di KKT relativi alla soluzione ottima primale.

166

Capitolo 12

Programmazione Lineare Intera


La Programmazione Lineare Intera (PLI) tratta il problema della minimizzazione (massimizzazione) di una funzione lineare di pi` u variabili, soggetta a vincoli di uguaglianza e disuguaglianza lineari ed alla restrizione che una o pi` u variabili possano assumere soltanto valori interi. Si tratta dunque di problemi del tipo (PLI pura) min cT x Ax b x Z n; o in cui solo alcune della variabili sono vincolate ad assumere valore intero (PLI mista): min cT x Ax b x1 Z n1 , x2 Rn2 ; con x = (x1 x2 ) e n1 + n2 = n. Grazie alla generalit` a del modello, un grandissimo numero di problemi reali possono essere rappresentati da modelli di Programmazione Intera. In generale, i modelli di Programmazione Lineare Intera sono adatti alle applicazioni caratterizzate dallindivisibilit` a delle risorse e dalla necessit` a di scegliere tra un numero nito di alternative. Queste applicazioni includono problemi operativi quali la distribuzione di beni ed il sequenziamento delle attivit` a produttive; problemi di pianicazione quali la gestione ottima del portafoglio titoli e la localizzazione degli impianti ed inne problemi di progettazione quali il progetto di circuiti VLSI ed il progetto di sistemi automatici di produzione (robotica). Un problema di Ottimizzazione Combinatoria ` e un particolare problema di PLI in cui le variabili sono vincolate ad assumere solo valori {0, 1}. Nelle ipotesi che la regione ammissibile di PLI sia costituita da un insieme nito di punti, in linea di principio potrebbe essere sempre possibile risolvere il problema di PLI calcolando il valore della funzione obiettivo in ogni punto ammissibile e scegliendo quello che la minimizza. Deniremo questo metodo Enumerazione Totale. Se la cardinalit` a dellinsieme ammissibile di PLI ` e piccola allore lenumerazione totale non solo ` e possibile, ma ` e certamente il modo migliore di risolvere un problema di PLI. Se, viceversa, la cardinalit` a dellinsieme delle soluzioni ammissibili ` e molto grande, lenumerazione totale diviene non proponibile (vedi anche lesempio dovuto a Dantzig descritto nel paragrafo 1.2).

167

Osserviamo che se abbiamo un problema di PLI con dieci variabili e supponiamo che ognuna di queste variabili possa assumere dieci valori diversi, il numero di possibili punti ammissibili ` e di 1010 , cio` e 10 miliardi. Questo semplice esempio mostra che lenumerazione totale ` e raramente utile nei casi pratici, dove spesso il numero di variabili intere ` e dellordine delle centinaia se non delle migliaia. Le questioni teoriche poste da tali problemi e le tecniche usate per la loro soluzione hanno caratteristiche molto diverse da quelle relative ai problemi di ottimizzazione continua studiati nei precedenti capitoli. In generale la PLI ` e da un punto di vista algortimo pi` u dicile della PL anche nel caso binario. Lo scopo di questo capitolo ` e quindi quello di dare alcune indicazioni sulle peculiariet` a dei problemi di Programmazione Lineare Intera (PLI) e studiare una classe di algoritmi per la loro risoluzione.

12.1

Formulazioni Classiche di Problemi Lineari Interi

In questo paragrafo vengono presentati esempi classici di problemi che possono essere formulati come problemi di PLI. Il primo uso delle variabili intere (binarie) che esamineremo ` e anche il pi` u naturale. Si supponga di dover modellare il fatto che un dato evento possa vericarsi oppure no. La natura binaria del problema suggerisce immediatamente lidea di modellare questa dicotomia per mezzo di una variabile x che pu o assumere solo valori 0, 1. In particolare, si porr` a x = 1 se levento si verica e x = 0 altrimenti. Successivamente vedremo come le variabili intere e le disequazioni che le collegano possano essere usate come linguaggio formale per esprimere una serie di relazioni tra eventi.

12.1.1

Knapsack (zaino) binario

Supponiamo di avere n progetti. Il j -esimo progetto, j = 1, . . . , n, ha un costo pari a aj ed un valore pari a cj . Ciascun progetto scelto deve essere realizzato completamente e non ` e accettata una realizzazione parziale del progetto. Inne esiste un budget b disponibile per la realizzazione dei progetti. Il problema di scegliere un sottoinsieme dei progetti allo scopo di massimizzare la somma dei valori senza superare il limite imposto dal budget ` e il cosiddetto problema di knapsack binario. Variabili. Per ogni progetto i = 1, . . . , n introduciamo le seguenti variabili binarie xi = 1 0 se il progetto i ` e selezionato altrimenti.
n j =1

Il vincolo sul budget (spazio) ` e dunque


n

aj xj b e il problema di scrive

max
j =1 n

cj xj aj xj b
j =1

xj {0, 1}

j = 1, . . . , n.

168

In questo caso levento ` e costituito dalla eettuazione (o meno) del singolo progetto. In generale, questi problemi di scelta tra progetti possono avere pi` u vincoli (si pensi al caso in cui il budget sia mensile e si voglia pianicare per pi` u di un mese); in tal caso il problema viene detto di knapsack multidimensionale. Un esempio di problema di knapsack ` e lesempio 1.4.1 di Capital Budgeting nel Capitolo ??.

12.1.2

Assegnamento

Un generico problema di assegnamento consiste nel determinare il modo ottimale di assegnare lavori a persone o, pi` u in generale, di assegnare mezzi (persone, macchine, etc. ) ad attivit` a. Supponiamo che n persone P1 ,. . . ,Pn , debbano svolgere n lavori L1 ,. . . , Ln ; ciascun lavoro deve essere svolto esattamente da una persona e ciascuna persona deve svolgere un lavoro. Naturalmente le persone hanno diversi livelli di esperienza, competenza ed abilit` a e quindi si pu` o introdurre un costo dellassegnamento della persona i al lavoro j ; indichiamo tale costo con cij e supponiamo che sia noto. Questo costo pu` o, ad esempio, essere interpretato come tempo medio impiegato dalla persona i ad eseguire il lavoro j . Il problema ` e quello di assegnare i lavori alle persone minimizzando il costo totale di realizzazione di tutti i lavori. Questo tipo di problemi sorge in molte situazioni pratiche: esempi tipici sono i problemi di assegnamento del personale allinterno di una azienda e i problemi di assegnare determinati mezzi di trasporto ad alcune particolari linee. Esaminiamo, ora una formulazione. Formulazione. Variabili. Per ogni lavoro i e per ogni persona j , (i, j = 1, . . . , n) introduciamo le seguenti variabili binarie 1 se la persona i ` e assegnata al lavoro j xij = 0 altrimenti. Si tratta di n2 variabili: L1 Lj Ln P1 x11 x1j x1n . . . . . . . . . . . . Pi . . . Pn xi1 . . . xn1
n

xij . . . xnj

xin . . . xnn

Funzione obiettivo. La funzione obiettivo da minimizzare sar` a data dal costo totale cio` e da cij xij .
i=1 j =1

Naturalmente, se le cij anzich e essere dei costi fossero i valori utili ricavati dallassegnamento della persona i al lavoro j , allora la funzione obiettivo andrebbe massimizzata. Vincoli. (Vincoli di assegnamento.) Poich e esattamente una persona deve essere assegnata al lavoro j , allora si avranno i seguenti n vincoli
n

xij = 1
i=1

j = 1, . . . , n.

169

Inoltre, poich e ciascuna persona deve essere assegnata ad una sola attivit` a, si avranno altri n vincoli
n

xij = 1
j =1

i = 1, . . . , n.

La formulazione completa sar` a, quindi, data da n n min cij xij i =1 j =1 n xij = 1 i=1 n xij = 1 j =1 xij {0, 1}, i, j = 1, . . . , n. Osservazione 12.1.1 Nel seguito di questo capitolo si vedr a che in eetti il problema di assegnamento pu` o essere formulato rimuovendo il vincolo di interezza, cio e equivalentemente come un problema di PL. Il vincolo xij {0, 1} corrisponde a 0 xij 1 con xij intero; rimuovere il vincolo di interezza corrisponde dunque al problema: n n min cij xij i=1 j =1 n xij = 1 i=1 n xij = 1 j =1 0 xij 1, i, j = 1, . . . , n. Esempio 12.1.2 In un Dipartimento universitario, sono attivati cinque corsi diversi che possono essere tenuti da cinque professori. Ogni professore esprime delle preferenze sul corso che vorrebbe tenere, indicando un punteggio. A preferenza pi` u alta corrisponde un punteggio pi` u alto. I punteggi sono riportati nella seguente tabella: insegnante1 insegnante2 insegnante3 insegnante4 insegnante5 corso1 7 7 4 5 4 corso2 5 9 6 4 5 corso3 4 7 5 5 5 corso4 4 9 8 7 8 corso5 5 4 5 4 9

Si vuole assegnare ciascun professore ad un corso cercando di massimizzare il valore medio inteso come media delle preferenze. Formulazione Variabili. Le variabili di decisione sono le variabili booleane:

170

1 se linsegnante i ` e assegnata al corso j i, j = 1, . . . , 5. 0 altrimenti. Funzione obiettivo. Indicando con cij il punteggio assegnato dallinsegnante i alla corso j , la funzione obiettivo ` e il valore medio delle preferenze: xij = 1 5
5 5

cij xij .
i=1 j =1

Vincoli. I vincoli di assegnamento sono: x11 + x12 + x13 + x14 + x15 x21 + x22 + x23 + x24 + x25 x31 + x32 + x33 + x34 + x35 x41 + x42 + x43 + x44 + x45 x51 + x52 + x53 + x54 + x55 x11 + x21 + x31 + x41 + x51 x12 + x22 + x32 + x42 + x52 x13 + x23 + x33 + x43 + x53 x14 + x24 + x34 + x44 + x54 x15 + x25 + x35 + x45 + x55 =1 =1 =1 =1 =1 =1 =1 =1 =1 =1

Quindi, complessivamente il problema si scrive: 5 5 min cij xij i =1 j =1 x11 + x12 + x13 + x14 + x15 = 1 x21 + x22 + x23 + x24 + x25 = 1 x31 + x32 + x33 + x34 + x35 = 1 x41 + x42 + x43 + x44 + x45 = 1 x51 + x52 + x53 + x54 + x55 = 1 x + x21 + x31 + x41 + x51 = 1 11 x12 + x22 + x32 + x42 + x52 = 1 x13 + x23 + x33 + x43 + x53 = 1 x14 + x24 + x34 + x44 + x54 = 1 x + x25 + x35 + x45 + x55 = 1 15 0 xij 1 e xij intero i, j

12.2
12.2.1

Uso di variabili booleane per modellare condizioni logiche


Problema del costo sso.

Nei modelli di Programmazione Lineare le variabili di decisione rappresentano usualmente i livelli ai quali le varie attivit` a vengono svolte e la funzione obiettivo da minimizzare ` e una

171

funzione lineare di tali variabili. In molti problemi pratici, tuttavia, tale ipotesi non ` e giusticata in quanto il costo di una attivit` a, in funzione del livello cui essa viene svolta, pu` o avere un andamento come quello riportato in Figura 12.1.
costo

coeff. ang. c

x : livello dell'attivit

Figura 12.1: Costo dellattivit` a j.


In particolare, il costo dellattivit` aj` e zero se xj = 0 (cio` e se lattivit` a non ` e avviata) ed ` e invece uguale a fj + cj xj se xj > 0 con fj positivo. La funzione relativa allattivit aj` e quindi zj (x) = 0 fj + cj xj se xj = 0 se xj > 0

Il valore fj ` e detto costo sso dellattivit` a j e deve essere pagato solamente se lattivit` a j viene svolta ad un livello non nullo. Per esempio, supponiamo che la variabile xj rappresenti la quantit` a di petrolio greggio che deve essere trasportata da un pozzo A ad una raneria B . In questo caso, se il pozzo A non rifornisce la raneria B il costo complessivo di trasporto ` e ovviamente nullo. Se, al contrario, si decide di inviare una quantit` a non nulla xj di greggio da A a B , al costo di trasporto cj xj (proporzionale alla quantit` a trasferita) dovr` a essere sommato il costo sso di costruzione delloleodotto fj . Se indichiamo che Jf le attivit` a che prevedono un costo sso, la funzione obiettivo pu` o essere genericamente scritta come z (x) = cj xj + zj (x).
j / Jf j Jf

` formulazione Chiaramente la funzione z (x) ` e discontinua nellorigine e quindi non ` e lineare. E linearizzare la funzione obiettivo introducendo, per ciascuna attivit` a, una variabile yj che valga 1 quando xj > 0 e 0 quando xj = 0, cio` e yj = 0 se xj = 0 1 altrimenti

In questo modo la funzione obiettivo pu` o essere scritta


n

z (x) =
j =1

cj xj +
j Jf

yj fj = cT x + f T y,

172

dove y {0, 1}|Jf | ` e il vettore le cui componente sono yj e z (x) ` e una funzione lineare. Il problema ha per o delle variabili binarie. Si deve inoltre imporre un vincolo che consenta di modellare la condizioni logiche xj > 0 yj = 1 xj = 0 yj = 0 Osserviamo infatti che in assenza di tale vincolo e nellipotesi che fj 0, nella soluzine ottima il valore di yj sarebbe = 0 trattandosi di un problema di minimizzazione. Dunque la condizione xj = 0 yj = 0 non necessita di essere imposta. Se supponiamo di conoscere un limite superiore per la variabile xj , cio` e un valore positivo maggiore del pi` u grande valore che pu` o assumere la xj , il vincolo xj yj 0 forza la variabile yj ad assumere valore 1 se xj > 01 . Infatti se xj > 0, il vincolo impone yj xj > 0 e dunque yj > 0 (cio e yj = 1). Il problema di costo sso di PLI pu` o essere quindi formulato, assumendo che tutti i costi ssi fj siano positivi, nel modo seguente: (F C 2) min z (x) = cT x + f T y Ax = b xj yj , x 0n yj {0, 1},

j Jf j Jf

dove ` e un numero positivo maggiore del pi` u grande valore che pu` o essere assunto da ciascuna delle variabili xj in una soluzione ottima. Se xj > 0 la variabile yj sar` a forzata ad assumere il valore 1 ed il suo costo sso si aggiunger` a al valore della funzione obiettivo. Esempio 12.2.1 In una centrale elettrica sono a disposizione tre generatori e ogni giorno si deve decidere quali usare di giorno e quali di notte per assicurare una produzione di almeno 4000 megawatts di giorno e di almeno 2800 megawatts di notte. Luso di un generatore comporta la presenza di personale tecnico che sorvegli il suo funzionamento; tale personale viene retribuito in maniera diversa tra il giorno e la notte e a seconda del tipo di generatore; tali costi di attivazione sono riportati nella tabella che segue (in migliaia di lire) insieme al costo per ogni megawatt prodotta e alla massima capacit` a di produzione in megawatts per ogni singolo periodo (giorno/notte). Costo attivazione giorno notte 750 1000 600 900 800 1100 Costo per megawatt 3 5 6 Capacit` a max 2000 1700 2500

Generatore A Generatore B Generatore C


1

Osserviamo che la condizione xj > 0 yj = 1 ` e equivalente a yj = 0 xj = 0. Inoltre, volendo modellare la condizione yj = 1 xj = 0, si pu o imporre il vincolo xj (yj 1) 0.

173

Formulare un modello di PLI che permetta di rappresentare il problema in analisi. Formulazione. ` un problema di costo sso e pu` E o essere formulato in termini di Programmazione Lineare Intera come appena descritto in generale. Per brevit` a di notazione, chiameremo 1o periodo il o giorno e 2 periodo la notte. Variabili. Indichiamo con xAi , xBi e xCi , i = 1, 2, i megawatts generati rispettivamente dai generatori A, B e C nel periodo i. Inoltre, per ottenere una formulazione lineare, ` e necessario introdurre sei variabili 0 1, Ai , Bi e Ci , i = 1, 2, denite come segue : Ai = 1 0 se il generatore A ` e attivato nelli-esimo periodo se nelli-esimo periodo il generatore A non ` e attivato i = 1, 2.

Analoga ` e la denizione per le altre variabili Bi e Ci , i = 1, 2. Funzione obiettivo. La funzione obiettivo da minimizzare pu` o esser scritta 3xA1 + 3xA2 + 5xB1 + 5xB2 + 6xC1 + 6xC2 + 750A1 + +1000A2 + 600B1 + 900B2 + 800C1 + 1100C2 . Vincoli. Si devono considerare i vincoli sulla richiesta cio` e xA1 + xB1 + xC1 4000 xA2 + xB2 + xC2 2800. Inoltre, per quanto esposto nel caso generale si devono considerare i vincoli xAi 2000Ai 0 xBi 1700Bi 0 xCi 2500Ci 0 i = 1, 2 i = 1, 2 i = 1 , 2.

Quindi la formulazione complessiva pu` o essere scritta min 3xA1 + 3xA2 + 5xB1 + 5xB2 + 6xC1 + 6xC2 + +750A1 + 1000A2 + 600B1 + 900B2 + 800C1 + 1100C2 x + xB1 + xC1 4000 A 1 x + xB2 + xC2 2800 A 2 xA1 2000A1 0 xB1 1700B1 0 xC1 2500C1 0 x A2 2000A2 0 x B2 1700B2 0 x C2 2500C2 0 x i = 1, 2 A i 0, xBi 0, xCi 0, Ai {0, 1}, Bi {0, 1}, Ci {0, 1} i = 1, 2.

174

12.2.2

Variabili indicatrici

Un altro classico uso di variabili 0 1, consiste nellindicare le relazioni di dipendenza tra alcune grandezze di un problema; tali variabili binarie vengono dette variabili indicatrici. Supponiamo di conoscere un limite superiore per la variabile x, cio` e un valore M positivo maggiore del pi` u grande valore che pu` o assumere la x; allora introducendo il vincolo x M 0 (12.1)

la variabile {0, 1} ` e forzata ad assumere valore 1 se x > 0; abbiamo, quindi, modellato la condizione logica x>0=1 (12.2) e quindi anche la condizione equivalente = 0 x = 0; ma la (12.1) non implica il viceversa della (12.2) cio` e = 1 x > 0; infatti dalla (12.1) si ha che se = 1 allora 0 x M , che ` e sempre vericato. Tuttavia, in alcuni casi, pu` o essere necessario imporre la condizione =1x>0 (12.3)

(che ` e equivalente a x = 0 = 0). La condizione logica (12.3) non si pu` o facilmente rappresentare con un vincolo; Supponiamo, ad esempio, che in un problema di miscelazione una variabile x rappresenti la quantit` a di un ingrediente da includere nella miscela e quindi si ha x 0; si pu` o usare una variabile indicatrice {0, 1} per distinguere tra il caso in cui x = 0 e x > 0. La condizione logica (12.3) aerma che se = 1 allora lingrediente rappresentato da x deve apparire nella miscela, ma non fornisce nessuna indicazione sulla quantit` a dellingrediente. In realt` a ` e pi` u verosimile imporre una condizione logica del tipo =1xm>0 cio` e se = 1 allora la variabile x assume un valore almeno pari ad m. La (12.4) ` e rappresentabile dal vincolo x m 0. (12.5) (12.4)

Riepilogando possiamo considerare il seguente schema: se x ` e una variabile non negativa e {0, 1} ed inoltre x < M e m > 0, allora x M 0 implica x m 0 implica x>0=1 =0x=0 =1xm x = 0 = 0.

Analizziamo, ora, un esempio di miscelazione in cui applichiamo quanto appena esposto. Esempio 12.2.2 Sia data la seguente tavola di valori nutrizionali che riporta il tipo di alimento, il costo unitario, le unit` a di sostanze (proteine, carboidrati, grassi, vitamine, calcio) per unit` a di alimento

175

costo 1 2 3 4 5 0.15 0.23 0.79 0.47 0.52

prot. 0 1 5 2 0

carb. 7 0 0 2 3

grassi 1 3 4 1 0

vitam. 1 1 0 3 2

calcio 0 4 1 0 1

Formulare un problema di PLI che permetta di trovare una dieta di costo minimo sapendo che si devono assumere almeno 3 unit` a di proteine, 10 unit` a di carboidrati, 2 unit` a di grasso, 3 unit` a di vitamine e 2 unit` a di calcio e sapendo che se ` e presente lalimento 1 la dieta non pu` o contenere lalimento 5. Formulazione. ` un classico problema di miscelazione; le quantit` E a di alimenti presenti nella dieta si suppongono frazionabili. A causa della presenza di una condizione logica, ` e necessario utilizzare, in aggiunta alle variabili del problema, una variabile 0 1 per modellarla cio` e per esprimere con un vincolo il legame tra la presenza nella dieta dellalimento 1 e dellalimento 5. Variabili di decisione. Introduciamo come variabili del problema le unit` a di alimenti presenti nella dieta, xi con i = 1, . . . , 5. Inoltre, introduciamo la variabile booleana {0, 1}. Vincoli. Si hanno i seguenti vincoli: Vincoli di qualit` a: la dieta deve contenere alcuni valori minimi di sostanze nutrizionali; dalla tabella si ottiene che deve essere x2 + 5x3 + 2x4 3 7x1 + 2x4 + 3x5 10 x1 + 3x2 + 4x3 + x4 2 x1 + x2 + 3x4 + 2x5 3 4x2 + x3 + x5 2 Vincolo logico: se nella dieta ` e presente lalimento 1 allora non deve esserci lalimento 5. Vogliamo quindi denire dei vincoli che consentano di esprimere le seguenti condizioni logiche x1 > 0 =1 =1 x5 = 0

Secondo quanto descritto, ci` o pu` o essere modellato introducendo i vincoli x1 M 0 x5 M (1 ) 0 dove M ` e un numero positivo maggiore del pi` u grande valore che possono assumere le variabili.

176

Vincoli di non negativit` a: Si tratta di quantit` a di alimenti, e quindi deve essere xi 0 i = 1, . . . , 5.

` il costo da minimizzare ed ` Funzione obiettivo. E e data da 0.15x1 + 0.23x2 + 0.79x3 + 0.47x4 + 0.52x5 . Complessivamente la formulazione di PLI per questo problema pu` o essere scritta min (0.15x1 + 0.23x2 + 0.79x3 + 0.47x4 + 0.52x5 ) x 2 + 5x3 + 2x4 3 7 x 1 + 2x4 + 3x5 10 x + 3x2 + 4x3 + x4 2 1 x1 + x2 + 3x4 + 2x5 3 4x2 + x3 + x5 2 x1 M 0 x5 M (1 ) 0 xi 0 i = 1, . . . , 5 {0, 1}.

12.2.3

Il problema del commesso viaggiatore

Siano assegnate n citt` a che un commesso viaggiatore deve visitare in una settimana e la matrice D di dimensioni n n delle distanze fra tutte le coppie di citt` a. Pi` u precisamente gli elementi della matrice D sono deniti nel seguente modo. D(i, j ) 0 indica la distanza della citt` a i dalla citt` a j, D(i, i) = 0 per tutti gli i, D(i, j ) = D(j, i) per tutte le coppie (i, j ). Il commesso viaggiatore, partendo dalla citt` a in cui abita (sia per esempio la citt` a 1), vuole eettuare tutte le visite e ritornare alla ne alla citt` a di partenza, percorrendo una strada di lunghezza complessiva minima. Introducendo le variabili binarie xij con il seguente signicato. xij = 1 se la citt` a j viene visitata subito dopo la citt` a i, xij = 0 se la citt` a j non viene visitata subito dopo la citt` a i, e indicando con linsieme di tutte le possibili partizioni (R, S ) dellinsieme di citt` a (ossia tali che: RU S = {insieme di tutte le citt` a}, R = , S = , R S = ), ` e possibile formulare il

177

problema come programmazione a numeri interi:


n n

min
i=1 j =1 n

[D(i, j )xij ] xij = 1


i=1 n

per j = 1, 2, . . . , n per i = 1, 2, . . . , n per (R, S )

xij = 1
j =1

xij 1 x {0, 1}nn .


iR,j S

Il primo insieme di vincoli garantisce che in ogni citt` a il commesso viaggiatore provenga da una sola altra citt` a. Il secondo insieme di vincoli garantisce che dopo ogni citt` a il commesso viaggiatore prosegua per una sola altra citt` a. Il terzo insieme di vincoli garantisce che la soluzione fornita dal modello sia formata da un unico percorso che attraversa tutte le citt` ae non da una serie disgiunta di percorsi che visitano sottoinsiemi diversi di citt` a. Se non fosse per il terzo insieme di vincoli, il problema sarebbe uguale a quello dellassegnamento visto sopra. Il terzo insieme di vincoli complica il problema, facendo s` che non sia risolubile con la programmazione lineare. In eetti si tratta di uno dei piu dicili problemi combinatori con cui si ha normalmente a che fare e la sua soluzione richiede tipicamente algoritmi complessi e notevole dispendio di tempo di calcolo. Si noti che il terzo insieme di vincoli ha cardinalit` a esponenziale rispetto al numero di citt` a da visitare. Si tratta infatti di 2n2 vincoli (in eetti esiste una formulazione pi` u sosticata che permette di scrivere il problema con solo n2 vincoli aggiuntivi introducendo n variabili aggiuntive non binarie).

12.3

Relazioni tra PL e PLI

IN questo paragrafo, senza perdere di generalit a, faremo riferimento a problemi di PLI pura cio` e del tipo: zI = min cT x Ax b (P LI ) x intera Indichiamo con SI = {x Z n : Ax b} la regione ammissibile del problema PLI e con x I SI la soluzione ottima, cio` e cT x = z . I I Si chiama rilassamento lineare o rilassamento continuo il problema di PL ottenuto da PLI eliminando il vincolo di interezza: z = min cT x Ax b ( P L)

Indichiamo con S il poliedro nello spazio continuo S = {x Rn : Ax b} e con x S la soluzione ottima del rilassamento, cio` e cT x = z . La regione di un Problema di PLI ` e ovviamente contenuta in quella del suo rilassamento PL (che ` e ottenuto, lo ripetiamo, eliminando un vincolo da PLI) ovvero SI S . Di conseguenza il

178

valore ottimo di PL ` e sicuramente non peggiore (migliore o al pi u uguale) di quello di PLI cio e (trattandosi di minimizzazione) z zI , ovvero la soluzione del rilassamento lineare costituisce un limite inferiore al valore ottimo della soluzione ottima intera In generale dati due insiemi S S risulta
xS

min f (x) min f (x).


xS

Per chiarire ulteriormente quanto detto facciamo un semplice esempio informale. Supponiamo di voler trovare lo studente pi` u giovane di una facolt a. Si tratta di trovare lo studente (punto ammissibile) che minimizza la funzione obiettivo che associa ad ogni studente la sua et` a. Consideriamo poi il problema di trovare lo studente pi` u giovane di tutta luniversit` a. Ovviamente linsieme ammissibile di questo nuovo problema ` e pi` u ampio di quello del problema precedente, comprendendo tutti gli studenti di tutte le facolt` a (problema rilassato). Se noi risolviamo il problema rilassato il valore ottimo che troviamo (et` a dello studente pi` u giovane di tutta luniversit` a) ` e ovviamente minore o tuttal pi` u uguale al valore ottimo del problema di trovare lo studente pi` u giovane della facolt` a che ci interessa. Se poi risulta che lo studente pi` u giovane di tutta luniversit` a` e proprio uno studente della facolt` a dinteresse, allora ` e ovvio che questo studente ` e anche la soluzione ottima del problema originario, ` e cio` e lo studente pi` u giovane della facolt` a che ci interessa. Dunque se la soluzione ottima del prblema di PL x S ` e intera, signica che x SI e dunque si tratta anche della soluzione ottima del problema di PLI. Se la soluzione ottima del rilassamento lineare x S ` e intera allora questa ` e anche la soluzione ottima del problema di PLI, cio` e x = x I. Se, invece, anche una sola delle componenti di x S non ` e intera x non ` e ammissibile per PLI, dunque tantomeno ottima. Si pu` o allora essere tentati di determinare una soluzione ottima di PLI arrotondando x a un punto a coordinate intere vicino a x . Questa Soluzione per Arrotondamento pu` o essere un metodo pratico di grande utilit` a per la soluzione di PLI, se tutte variabili del problema sono variabili intere che rappresentano il numero di oggetti indivisibili usati o prodotti, ed ` e ragionevole aspettarsi che le variabili stesse abbiano valori abbastanza grandi allottimo. Inoltre i vincoli lineari dovrebbero essere tali da poter facilmente decidere se lammissibilit` a` e preservata arrotondando una variabile non intera al pi` u vicino valore intero (o, per esempio, al pi` u vicino valore intero inferiore). Per esempio, se x1 rappresenta il numero di automobili di un certo modello che devono essere assemblate durante un mese e se esiste una limitazione inferiore su x1 , ` e ragionevole aspettarsi che un valore x 1 = 1000.1 possa essere arrotondato a 1001 senza che venga violata lammissibilit` a. Se tutte le variabili del problema sono di questo tipo e se esiste un metodo semplice di passare dalla soluzione non intera x di PR a una soluzione vicina, intera e ammissibile per PLI, allora un ragionevole approccio pratico alla soluzione di PLI ` e quello di risolvere il suo rilassamento lineare ed arrotondare quindi la soluzione. Tuttavia, se il valore delle variabili della soluzione ottima del rilassamento lineare ` e presumibilmente piccolo, questa tecnica non ` e molto sensata. Se, per esempio, x1 rappresenta il

179

numero di portaaeri che devono essere costruite dallesercito italiano, ` e intuitivo capire che ` e molto dicile decidere se si debba arrotondare x 1 = 2.5 a 2 o a 3, e che le due possibilit` a portano a risultati completamente diversi. La situazione diventa ancora pi` u drammatica quando le variabili intere sono, in realt` a, variabili binarie. In questi problemi le variabili 0-1 indicano quale di due possibili scelte alternative deve essere attuata. In questo caso larrotondamento ` e totalmente privo di senso logico.

Figura 12.2: Soluzione per arrotondamento: primo esempio.


Consideriamo lesempio di gura 12.2. Supponiamo che la soluzione del rilassamento lineare sia a ( x = a). Il punto a ha tutte le componenti non intere e tutti i punti a componenti intere ottenuti arrotondando le sue componenti allintero immediatamente superiore o inferiore non sono ammissibili per PLI. Da questo esempio dovrebbe risultare chiaro, inoltre, che ` e possibile costruire problemi PLI in cui la soluzione ottima del relativo rilassamento lineare ` e lontana quanto si vuole dal pi` u vicino punto ammisibile di PLI. Anche nel caso in cui possa essere trovato un punto ammissibile vicino a x , questi pu` o essere molto lontano dalla soluzione ottima di PLI. Un esempio al riguardo ` e dato nella gura 12.3, dove la soluzione ottima del rilassamento lineare ` e a, b ` e la soluzione ottenuta per arrotondamento, mentre c ` e la vera soluzione di PLI. Esempio 12.3.1 [3] Sia consideri il problema min x1 x2 2x1 + 5x2 5 2x1 2x2 1 x 0, intero le cui soluzioni ammissibili sono: 0 0 e lottimo ` e x I = 1 1
di valore zI = 2.

0 1

1 1

180

b a

direzione di crescita della funzione obiettivo

Figura 12.3: Soluzione per arrotondamento: secondo esempio.


Risolvendo il suo rilassamento lineare min x1 x2 2x1 + 5x2 5 2x1 2x2 1 x0

(12.6)

5 9 si determina la soluzione x 1 = 2 = 2.5, x2 = 2 con valore della funzione obiettivo z = 2 . Arrotondando questa soluzione sia allintero superiore che inferiore si ottengono le due soluzioni 2 3 , che NON sono ammissibili. In gura 12.4 ` e disegnata la regione ammissibile S e 2 1 SI .

Dunque arrotondare una soluzione non intera pu` o non essere una buona strategia. Inoltre ` e bene sottolineare che larrotondamento pu` o essere computazionalmente oneroso. Infatti data una soluzione frazionaria x I Rn , possono esistere 2n vettori interi ottenuti arrotondando le componenti non intere di x al valore intero superiore o inferiore pi` u prossimo, e non si vede con quale criterio si possa sceglierne uno quale soluzione di PLI. Inoltre molti (se non tutti) di questi 2n vettori possono non essere ammissibili per PLI, e il problema di determinare un vettore a componenti intere, ammissibile per PLI, e vicino a x pu` o essere, in generale, un problema di dicolt` a paragonabile alla soluzione di PLI. Osserviamo per` o che uno stesso problema di PLI pu` o essere descritto in modo equivalente in diversi modi. Esempio 12.3.1 (continua) Consideriamo il problema dellesempio 12.6 a cui aggiun-

181

Figura 12.4: Soluzione graca Esempio 12.6.


giamo il vincolo x1 1

min x1 x2 2x1 + 5x2 5 2x1 2x2 1 x1 1 x 0, intero

(12.7)

La regione ammissibile SI ` e invariata, mentre la regione ammissibile e la soluzione ottima del suo rilassamento lineare cambia (vedi gura 12.5). Se consideriamo il problema min x1 x2 2x1 + 5x2 5 2x1 2x2 2 x2 1 x 0, intero (12.8)

otteniamo la regione ammissibile in Figura 12.6 e la soluzione del rilassamento lineare coincide con x a: la soluzione del I . Questultima rappresentazione ha quindi uninteressante propriet` problema rilassato coincide con la soluzione ottima intera. S tratta dunque di una formulazione ideale.

182

Figura 12.5: Soluzione graca Esempio 12.7.


Naturalmente la formulazione ideale non ` e in genere conosciuta. Se lo fosse, il problema di PLI si potrebbe risolvere utilizzando un metodo per la PL che individua un vertice ottimo per (ovvero con il metodo del simplesso). E o possibile identicare dei problemi che godono di questa propriet a. In particolare diamo la seguente denzione: Denizione 12.3.2 Un poliedro si dice interose tutti i suoi vertici sono interi.

12.4

Propriet` a di interezza e totale unimodularit` a

Allo scopo di ottenere una caratterizzazione dei poliedro interi, utilizziamo per semplicit a la formulazione di poliedro in forma standard P = {x IRn : Ax = b, x 0}. Ricordiamo la corrispondenza mostrata nel paragrafo 10.4.1 tra vertici di un poliedro in forma standard e Soluzioni di Base Ammissibili (individuate dal metodo del simplesso), xB = B 1 b Rm , xN = 0. Dunque vogliamo ottenee una condizione che garantisca che B 1 b sia intero per qualunque scelta della base B . Osserviamo preliminarmente che vale il seguente teorema: Teorema 12.4.1 Se una matrice quadrata B con elementi interi ha determinante 1, allora la sua inversa e intera

183

Figura 12.6: Soluzione graca Esempio 12.8.


La dimostrazione e banale, ricordando la construzione della matrice inversa che e data dalla matrice aggiunta (intera se B e intera) diviso il determinante. Introduciamo la seguente denizione Denizione 12.4.2 [2] Una matrice a componenti intere A (m n) di rango m si dice unimodulare se ogni sottomatrice quadrata m m non singolare di A ha determinante di valore 1, 1. Dunque possiamo aermare [2] Sia A una matrice (m n) a componenti intere. Allora condizione suciente anch e il poliedro P = {x IRn : Ax = b, x 0} abbia tutti i vertici interi, per ogni b intero, ` e che la matrice A sia unimodulare. Si dice invece che una matrice A e totalmente unimodulare se ogni sottomatrice quadrata di A ha determinante in {1, 0, 1}. Teorema 12.4.3 Sia A una matrice (m n) a componenti intere. Allora condizione suciente anch e il poliedro P = {x IRn : Ax b, x 0}

184

abbia tutti i vertici interi, per ogni b intero, ` e che la matrice A sia totalmente unimodulare. ` quindi interessante poter individuare condizioni che garantiscano lunimodularit` E a di una matrice a componenti intere A (m n). Una ovvia condizione necessaria per la totale unimodularit` a` e che la matrice abbia tutti elementi aij {0, 1, 1}. Non ` e per` o una condizione suciente, infatti basta scegliere banalmente una 1 1 matrice del tipo con determinante pari a 2. 1 1 Si pu` o dare una condizione suciente di totale unimodularit` a [2]: Teorema 12.4.4 Sia A una matrice (m n) con elementi aij {0, 1, 1}. Se 1. ogni colonna abbia al pi` u due elementi diversi da zero; 2. ` e possibile partizionare gli indici di riga in due sottoinsiemi Q1 e Q2 tali che (i) se la colonna j contiene due elementi aij = 0 e akj = 0 dello stesso segno allora i Q1 e k Q2 ; (ii) se la colonna j contiene due elementi aij = 0 e akj = 0 di segno opposto allora o i, k Q1 oppure i, k Q2 ; allora A ` e totalmente unimodulare. Esempio 12.4.5 Vericare che la matrice

1 1 1

1 0 0

1 0 1

che non soddisfa la condizione suciente, e totalmente unimodulare. Per matrici che hanno al pi u due elementi diversi da zero per ogni colonna, la condizione 2 del teorema precedente diventa una condizione necessaria e suciente di totale unimodularit` a: Teorema 12.4.6 Sia A una matrice (m n) con elementi aij {0, 1, 1} e tale che ogni colonna abbia al pi` u due elementi diversi da zero. Allora A ` e totalmente unimodulare se e solo se ` e possibile partizionare gli indici di riga in due sottoinsiemi Q1 e Q2 tali che: (i) se la colonna j contiene due elementi aij = 0 e akj = 0 dello stesso segno allora i Q1 e k Q2 ; (ii) se la colonna j contiene due elementi aij = 0 e akj = 0 di segno opposto allora o i, k Q1 oppure i, k Q2 .

Teorema 12.4.7 Se una matrice A ` e totalmente unimodulare, lo sono anche le matrici A I A I A I A I

185

Esempio 12.4.8 Dire se la seguente matrice mazione): 0 1 0 0 0 0 1 0 1 1 1 0 1 0 0 1

` e totalmente unimodulare (dimostrando laffer1 1 0 0 1 1 0 0 1 0 0 1 0 1 0 1

Soluzione. La condizione necessaria ` e vericata, poich e gli elementi sono tutti 0, 1. Inoltre ogni colonna di A ha al pi` u due elementi non nulli, quindi sono vericate le ipotesi del Teorema 12.4.4. Costruiamo la partizione degli indici di riga. Se la riga 1 Q1 allora la riga 2 Q2 , ma la riga 3 non pu` o stare n e in Q1 per lelemento a12 n e in Q2 per lelemento a13 . Quindi la matrice non ` e totalmente unimodulare. Esempio 12.4.9 Dire se la seguente matrice ` e totalmente unimodulare dimostrando laermazione. 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 Soluzione. Sono vericate le ipotesi del Teorema 12.4.4. Esiste una partizione degli indici di riga, Q1 = {1, 2, 3}, Q2 = {4, 5, 6}, che soddisfa le condizioni (i) (ii), quindi la matrice ` e totalmente unimodulare. Esempio 12.4.10 Vericare che la matrice del problema di assegnamento 12.1.2 e totalmente unimodulare. Esempio 12.4.11 Vericare che la matrice del problema di trasporto 3.3.2 e totalmente unimodulare. Esempio 12.4.12 Vericare che la matrice del problema di revenue management 3.3.3 e totalmente unimodulare.

12.5

Tecniche di soluzione per problemi di PLI


min cT x Ax b 0xU x intera

In forma del tutto generale un problema di PLI pu` o essere scritto come

(P LI )

dove U ` e un vettore a n componenti che limita superiormente il valori che possono essere assunti dalle variabili. La presenza di questo vincolo implica che la regione ammissibile del problema PLI

186

` e limitata. Questa assunzione semplicher` a le considerazioni svolte in questo paragrafo. Essa ` e, peraltro, non limitativa, in quanto in ogni problema reale il valore assunto dalle componenti delle soluzioni ammissibili ` e sempre limitato superiormente da qualche costante. In questo paragrafo consideriamo alcune tecniche risolutive per problemi di PLI. In particolare, dopo alcune brevi considerazione sulla soluzione per enumerazione totale e sulla soluzione approssimata per arrotondamento di problemi di PLI, descriveremo una delle pi` u note famiglie di algoritmi per la soluzione esatta di problemi di PLI: gli algoritmi di Branch and Bound. Prima di procedere vogliamo introdurre un concetto molto importante, quello di problema rilassato, che verr` a ampiamento ripreso e utilizzato nel seguito. Dato il problema PLI si denisce suo rilassamento lineare (o problema rilassato associato) il seguente problema. min cT x Ax b 0 x U. (P R)

Si tratta cio` e di un problema di PL ottenuto eliminando dal problema PLI il vincolo di interezza. La regione di un Problema di PLI ` e ovviamente contenuta in quella del suo rilassamento PR (che ` e ottenuto, lo ripetiamo, eliminando un vincolo da PLI) e quindi ne segue che il valore ottimo di PR ` e sicuramente maggiore o uguale di quello di PLI. In particolare, se la soluzione ottima di PR ` e intera allora questa ` e anche la soluzione ottima di PLI.

12.5.1

La Tecnica del Branch and Bound

Abbiamo gi` a visto che una possibile, semplice tecnica di soluzione per PLI, purtroppo quasi mai utilizzabile in pratica, ` e l enumerazione totale. Il Branch and Bound (BB) fornisce, allora, una metodologia di ricerca della soluzione ottima che eettua una esplorazione parziale dellinsieme delle soluzioni ammisibile. In particolare la funzione obiettivo viene calcolata per una sottoinsieme (piccolo) delle soluzioni ammissibili con la propriet` a di contenere almeno una soluzione ottima. Descriviamo ora in maggior dettaglio i vari aspetti della procedura. Sia S (0) linsieme delle soluzioni ammissibili PLI. Una partizione di S (0) ` e una famiglia di sottoinsiemi (S (1) , . . . , S (r) ), r 2 tale che: S (i) S (j ) = e per ogni coppia
r

1i<jr

S (i) = S (0)
i=1

Evidentemente, la soluzione ottima del problema originario ` e data dal massimo tra i valori z (1) = cT x(1) , . . . , z (r) = cT x(r) dove x(i) ` e la soluzione ottima del sottoproblema PLIi denito dal problema di minimizzare la funzione obiettivo del problema PLI sulla regione ammissibile S (i) (nel seguito, con un piccolo abuso di notazione, indicheremo spesso con S (i) sia la regione ammissibile sia il sottoproblema PLIi ). Se un certo sottoproblema PLIi risulta, a sua volta, di dicile soluzione si partiziona ulteriormente linsieme S (i) producendo nuovi sottoproblemi ed iterando la procedura no a che il problema originario non risulti decomposto in problemi elementari di facile soluzione. Cerchiamo di chiarire la procedura con un esempio informale. Supponiamo di dover trovare la persona pi` u giovane di un Ateneo. Risolvere questo problema confrontando le et` a di tutti gli studenti fra loro (enumerazione totale) pu` o risultare in un processo troppo lungo. Si pu` o allora

187

chiedere ai presidi di ogni facolt` a qual ` e lo studente pi` u giovane delle loro facolt` a e scegliere il pi` u giovane tra questi studenti. Abbiamo decomposto il problema originario in pi` u sottoproblemi: la determinazione dello studente pi` u giovane di ogni facolt` a. In alcuni casi la risoluzione di questi sottoproblemi pu` o essere agevole. In altri casi il preside pu` o non essere in grado di fornire facilmente il nome dello studente pi` u giovane della sua facolt` a. In questo caso si pu` o scomporre ulteriormente il problema. Per esempio, il preside pu` o chiedere a tutti i direttori di Corso di Laurea di fornirgli il nome dello studente pi` u giovane che frequenta listituto stesso. Da questi egli potr` a cos` risalire al nome dello studente pi` u giovane della facolt` a. E cos` via. ` evidente che la procedura appena descritta non compie una totale enumerazione dellinsieme E S ed ` e computazionalmente eciente solo se il numero dei sottoproblemi generati si mantiene estremamente limitato e quindi solo se la strategia di soluzione dei sottoproblemi ` e sucientemente ecace. In generale per` o, risolvere un sottoproblema pu` o essere altrettanto gravoso che risolvere ` per questo che, in luogo della soluzione esatta del problema S (i) il problema originario. E si preferisce calcolare un lower bound di z (i) e cio` e un valore L(i) z (i) . Tale valore viene poi confrontato con il miglior valore z (ad un certo passo della procedura) della funzione obiettivo calcolata in un punto ammissibile (ottimo corrente). Se il valore approssimato risulta non inferiore a quello dellottimo corrente, ovvero se z L(i) z (i)

si deduce che non esiste nellinsieme S (i) un punto in cui la funzione obiettivo abbia un valore migliore di z . Un tale risultato ci permette di sospendere lesame dellinsieme S (i) e di eliminarlo dalla lista dei sottoproblemi da risolvere. Per tornare allesempio informale precedente, supponiamo che il preside di una facolt` a abbia comunicato che ha uno studente di et` a 17 anni e 3 mesi (ottimo corrente). Supponiamo anche che il preside di unaltra facolt` a, pur senza sapere esattamente qual ` e laltezza esatta del suo studente pi` u alto, sia riuscito ad avere la certezza, con mezzi solo a lui noti, che ogni studente ` evidente che ` della sua facolt` a non ` e pi` u giovane di 18 anni (lower bound). E e inutile fare lo sforzo di cercare di trovare let` a esatta del pi` u giovane studente della sua facolt` a, perch e comunque non sar` a lo studente pi` u giovane. Evidentemente la soluzione del problema originario sar` a tanto pi` u eciente quanto migliori saranno i valori dei limiti inferiore (lower bound) ed a loro volta tali valori approssimeranno tanto meglio il valore ottimo del sottoproblema quanto pi` u ecace sar` a stata la decomposizione del problema originario. Di conseguenza lecienza della tecnica del BB dipende essenzialmente dalla qualit` a delle due strategie che ne caratterizzano la struttura: (a) Strategia di Soluzione, ovvero la strategia per il calcolo di un valore che approssimi per eccesso (in un problema di massimo) il valore ottimo di un sottoproblema. (b) Strategia di Separazione, ovvero la strategia per la scelta della partizione dellinsieme delle soluzioni ammissibili di un sottoproblema. ` anche evidente che a seconda della strategia di soluzione e di quella di separazione adottate, E lo schema generale appena descritto si concretizzer` a in un algoritmo dierente. Nel seguito di questo paragrafo descriveremo un possibile schema (semplicato) di BB che corrisponde a uno degli schemi di BB pi` u utilizzati nella pratica dando al contempo maggiore sistematicit` a al metodo presentato.

188

Ricordiamo che vogliamo risolvere un problema di PLI della seguente forma min cT x Ax b 0xU x intera (P LI )

Questo problema, nel seguito sar` a indicato anche come problema S (0) . Nel corso del metodo considereremo dei sottoproblemi che hanno una struttura simile. Pi` u precisamente considereremo sottoproblemi S (i) con la seguente struttura. min cT x Ax b l(i) x u(i) x intera, (Si )

dove i vettori n dimensionali l(i) e u(i) sono calcolati dallalgoritmo. Nel seguito indicheremo, inoltre, con x(i) e z (i) rispettivamente una soluzione ottima e il valore ottimo di Si . La strategia che proponiamo per calcolare un limite inferiore L(i) di z (i) ` e la seguente: dato il problema S (i) , risolvere il suo rilassamento lineare. Indichiamo con x (i) la soluzione ottima del rilassamento lineare di S (i) e con L(i) il corrispondente valore ottimo. Per quanto visto precedentemente il valore ottimo L(i) cos` ottenuto costituisce un limite inferiore di z (i) , inoltre il rilassamento lineare ` e facilmente risolubile con il metodo del simplesso. Dobbiamo ora descrivere un metodo per la separazione di un generico S (i) . Supponiamo di aver risolto il rilassamento lineare di S (i) e sia x (i) la sua soluzione ottima e, come gi` a detto, con (i) ( i) U il corrispondente valore ottimo. Se x ha tutte componenti intere allora x (i) = x(i) e il problema non va separato. Se U (i) ` e minore o uguale allottimo corrente, cio` e al valore massimo della funzione obiettivo nora trovato, il problema non pu` o dar origine ad una soluzione intera migliore di quella corrente e non ` e necessario separarlo per trovare la sua soluzione ottima intera. Supponiamo quindi che nessuno di questi due casi si sia vericato, e vediamo come (i) seperare questo sottoproblema. Sia x j una componente non intera del vettore x (i) (almeno una ne deve esistere), j la sua parte intera inferiore (ossia il pi` u grande intero minore o uguale (i) (i) a x j ) e j la sua parte intera superiore (ossia il pi` u piccolo intero maggiore o uguale a x j ). Ovviamente valgono le seguenti relazioni: j < j j j = 1. Separiamo il problema S (i) nei seguenti due problemi min cT x Ax b (l(i) )1 x u(i) x intera, e min cT x Ax b l(i) x (u(i) )2 x intera, (l(i) )1 j = (i) lj j se i = j se i = j

(u(i) )2 j =

(i) uj j

se i = j se i = j

189

Notiamo che ` e facile convincersi che lunione delle regioni ammissibili di questi due problemi d` a la regione ammissibile del problema S (i) , di modo tale che questa ` e in eetti una separazione del problema S (i) del tipo prima considerato. Per concludere vogliamo osservare che dobbiamo considerare un altro caso che nora non abbiamo menzionato. Nel risolvere il rilassamento del problema S (i) pu` o accadere che la regione ammissibile del rilassamento risulti vuota. Siccome la regione ammissibile del problema S (i) ` e contenuta in quella del suo rilassamento, questo vuol dire che il problema S (i) ha regione ammissibile vuota, e quindi non c` e bisogno di separarlo. Abbiamo ora tutti gli elementi per descrivere il metodo di B& B proposto. 1. Inizializzazione Inizialmente il problema S (0) = P LI ` e lunico problema candidato. La procedura inizia con lapplicazione della strategia di soluzione ad S (0) ottenendo un primo lower bound U (0) . Inoltre, viene calcolato un upper bound z per il problema S (0) , cio` e un valore sicura mente non inferiore a quello z della soluzione ottima. Tale valore viene usualmente ottenuto in corrispondenza ad una soluzione ammissibile x facile da individuare (ad es. mediante una semplice euristica). I valori x ez vengono successivamente aggiornati nel corso della procedura non appena vengono individuate soluzioni ammissibili per il problema originario con un valore pi` u alto della funzione obiettivo. Se non ` e possibile individuare facilmente una soluzione ammissibile si pu` o porre z = , mentre x viene, per il momento lasciato indenito. Se lottimo del problema rilassato x (0) appartiene allinsieme S (0) il problema ` e risolto. Altrimenti ` e necessario applicare una strategia di separazione al problema S (0) ottenendo due nuovi problemi candidati S (1) ed S (2) . Calcoliamo gli lower bound dei nuovi problemi ottenendo i valori U (1) ed U (2) . Se S (1) (S (2) ) ` e vuoto allora ad U (1) (U (2) ) viene convezionalmente assegnato il valore (che vuol dire, in pratica, che il problema viene eliminato). 2. Passo generico dellalgoritmo. Ad un generico passo dellalgoritmo supponiamo di avere la lista L = {S (1) , . . . , S (q) } dei sottoproblemi che non sono ancora stati partizionati (problemi terminali). Supponiamo inoltre che per ciascun sottoproblema S (i) sia stato calcolato lupper bound U (i) . Illustriamo ora brevemente le possibili azioni dellalgoritmo in un passo generico. 2.1. Chiusura dei sottoproblemi dominati dallottimo corrente Se L(i) z , detto (z (i) ) il valore ottimo della funzione obiettivo per il problema S (i) , abbiamo che: z (i) L(i) z e quindi che nessuna soluzione migliore di z pu` o essere contenuta in S (i) . In tal caso il problema (i) S pu` o essere eliminato della lista dei problemi candidati e viene denito chiuso. Possiamo quindi immaginare che per tutti i problemi terminali superstiti (aperti) sia vericata la condizione U (i) > z . Se tutti i problemi terminali sono chiusi, lalgoritmo termina e lottimo corrente ` e una soluzione ottima del problema. Se, al contrario, la lista dei problemi terminali contiene almeno un problema aperto, si procede nel modo seguente: 2.2. Scelta del problema aperto da esaminare Esistono diverse strategie di scelta, tra queste le pi` u usate sono le seguenti:

190

(1) Scelta del problema con il massimo lower bound. Tale scelta ha lo scopo di esaminare per primi quei problemi in cui ` e pi` u probabile trovare una soluzione ottima. Infatti, se la strategia di soluzione produce buone soluzioni approssimate, a valori alti del lower bound corrisponderanno alti valori delle soluzioni ottime dei sottoproblemi. Pertanto, esaminando il sottoproblema aperto cui corrisponde il massimo valore del upper bound si avr` a una maggiore probabilit` a di individuare la soluzione ottima. (2) Scelta con criterio di priorit` a LIFO (Last In First Out). In questo caso i sottoproblemi terminali sono gestiti dalla procedura secondo lo schema a stack. In particolare, il problema scelto ` e lultimo problema generato nella fase di separazione. 2.3. Esame di un sottoproblema terminale Sia S (i) il problema scelto in accordo ad uno dei criteri presentati al punto 2.1 e sia L(i) llower boundassociato ad S (i) . Inoltre, sia x (i) lottimo del problema rilassato, cio` e il punto che (i) T (i) soddisfa L = c x . Abbiamo le seguenti possibilit` a: 2.3.1. x (i) appartiene ad S (i) Se lottimo del problema rilassato x (i) appartiene ad S (i) abbiamo che esso ` e ottimo anche (i) per il sottoproblema S . Inoltre poich e il problema S (i) ` e aperto abbiamo che L(i) > z e quindi che x (i) ` e una soluzione ammissibile del problema originario con valore della funzione obiettivo (cT x (i) = L(i) ) migliore di z . Di conseguenza, possiamo porre x =x (i) e z = L(i) . (i) (aggiornamento dellottimo corrente). In ogni caso il problema S viene chiuso e si inizia il passo successivo. 2.3.2. x (i) non appartiene ad S (i) In tal caso si deve applicare la strategia di separazione precedentemente illustrata, produrre i due nuovi sottoproblemi ed aggiungerli alla lista dei problemi terminali, calcolare i loro upper bound, eliminare il problema S (i) dalla lista dei problemi terminali ed iniziare il passo successivo. 2 ATTENZIONE: se invece di un problema di minimo si ha a che fare con un problema di massimizzazione, cio` e max cT x Ax b 0xU

x intera

Il valore della soluzione del problema rilassato costituisce un upper bound U e risulta zI U. Una qualunque soluzione ammissbile intera costituisce invece il lower bound.

12.5.2

Esempi

Completiamo con degli esempi di applicazione del metodo appena descritto.

Esempio 1. Sia dato il seguente problema di programmazione lineare a numeri interi2 :


(S (0) ) max 3x1 + x2
2

Ricordiamo che con Z si indica linsieme dei numeri interi

191

7x1 + 2x2 22 2x1 + 2x2 1 1 x1 4 0 x2 3 x1 , x2 Z

Il problema ` e un problema di massimizzazione, quindi le soluzioni dei problemi rilassati forniranno dei limiti superiori (upper bounds) al valore della soluzione ottima intera. Inoltre, il valore della funzione obiettivo calcolato in corrispondenza ad una soluzione ammissibile fornir` a un limite inferiore (lower bound). La soluzione ottima x (0) del rilassamento lineare di S (0) ` e x (0) = (7/3, 17/6) e fornisce un upper bound pari a U (0) = z ( x(0) ) = 59/6 = 9.8333 . . .. Se eettuiamo un semplice arrotondamento allintero inferiore delle componenti di x (0) T (0) otteniamo il vettore x = (2, 2). Poich` e tale vettore ` e ammissibile per S , possiamo porre lottimo corrente pari ad x ed il primo lower bound al valore z ( x) = 8. Non ` e possibile chiudere il problema S (0) in quanto la soluzione x non ` e intera e lupper bound ` e strettamente maggiore del lower bound. Il problema viene quindi inserito nella lista L dei problemi candidati. Viene selezionato un problema in L = {S (0) }. In particolare, viene estratto dalla lista il problema S (0) . Si procede quindi alla separazione di S (0) . Possiamo separare rispetto ad una qualsiasi delle variabili non intere, per semplicit` a decidiamo di separare rispetto alla variabile con indice pi` u piccolo (x1 ). A tale scopo, aggiungiamo ai vincoli della formulazione di S (0) , i due vincoli x1 3 (x1 x 1 3 ) e x1 2 (x1 x 1 4 ), ottenendo i due problemi seguenti : (S (1) ) max 3x1 + x2 7x1 + 2x2 22 2x1 + 2x2 1 1 x1 2 0 x2 3 x1 , x2 Z

(S (2) ) max

3x1 + x2 7x1 + 2x2 22 2x1 + 2x2 1 3 x1 4 0 x2 3 x1 , x2 Z

3 4

Ricordiamo che x 1 indica il pi` u piccolo numero intero maggiore o uguale a x 1 Ricordiamo che x 1 indica il pi` u grande numero intero minore o uguale a x 1

192

Il rilassamento lineare del problema S (1) ha soluzione x (1) = (2, 5/2) di valore U (1) = z ( x ) = 8.5. La soluzione del rilassamento lineare del problema S (2) ` e, invece, x (2) = (3, 1/2) (2) (2) di valore U = z ( x ) = 9.5. Entrambi i problemi non sono eliminabili e vengono quindi inseriti nella lista L.
(1)

Viene scelto un problema nella lista L = {S (1) , S (2) } dei problemi candidati. In particolare esaminiamo il problema S 1 La prima componente di x (1) ` e intera mentre la seconda componente ` e frazionaria. Scegliamo quindi la variabile x2 per eettuare la separazione. A tale scopo, aggiungiamo alla formulazione di S (1) i due vincoli x2 2 e x2 3 . In tal modo, otteniamo o i due problemi seguenti : (S (3) ) max 3x1 + x2 7x1 + 2x2 22 2x1 + 2x2 1 1 x1 2 0 x2 2 x1 , x2 Z

(S (4) ) max 3x1 + x2 7x1 + 2x2 22 2x1 + 2x2 1 1 x1 2 3 x2 3 x1 , x2 Z La soluzione del rilassamento lineare del problema S (3) ` ex (3) = (2, 2) ed ha valore U (3) = (4) z ( x ) = 8. Il problema S , invece, non ha soluzioni ammissibili. Di conseguenza, poniamo U (4) = . ` possibile chiudere sia il problema S (3) che il problema S (4) . Il primo in quanto la soluzione E del rilassamento lineare ` e intera, il secondo in quanto non ha soluzione ammissibili (ovvero poich` e U (4) < z ). Nessuno dei due viene quindi inserito nella lista L. Si osservi che, pur essendo x (3) una soluzione intera, non aggiorniamo lottimo corrente in (3) quanto x =x . Estraiamo dalla lista L = {S (2) } il problema S (2) (unico problema rimasto) ed eettuiamo la separazione rispetto alla variabile x(2) (infatti la seconda componente di x(2) ` e frazionaria). Dobbiamo aggiungere alla formulazione di S (2) i due vincoli x2 0 e x2 3 . In tal modo, otteniamo i due problemi seguenti :
(3)

(S (5) ) max 3x1 + x2 7x1 + 2x2 22 2x1 + 2x2 1

193

3 x1 4 0 x2 0 x1 , x2 Z

(S (6) ) max

3x1 + x2 7x1 + 2x2 22 2x1 + 2x2 1 3 x1 4 1 x2 3 x1 , x2 Z

La soluzione del rilassamento lineare del problema S (5) ` e x (5) = (3.14 . . . , 0) ed ha val(5) (5) (6) ore U = z ( x ) = 9.428 . . .. Il problema S , invece, non ha soluzioni ammissibili. Di conseguenza, poniamo U (6) = . Il problema S (6) viene chiuso in quanto non ha soluzione ammissibili, il problema S (5) non ` e eliminabile e va quindi inserito nella lista L. Infatti il suo valore ottimo ` e pari a 9.428 . . ., poich e tale valore ` e migliore di quello della soluzione intera trovata (ossia 8), il problema non ` e eliminabile (nella sua regione ammissibile potrebbe trovarsi una soluzione intera migliore di quella corrente). Nella lista L vi ` e ora solo il problema S 5 , che viene quindi scelto. Viene eettuata la separazione rispetto alla variabile x1 . A tale scopo, si aggiungono alla formulazione di S (5) i due vincoli x1 2 e x1 4, ottenendo i due problemi: (S (7) ) max 3x1 + x2 7x1 + 2x2 22 2x1 + 2x2 1 3 x1 3 0 x2 0 x1 , x2 Z

(S (8) ) max

3x1 + x2 7x1 + 2x2 22 2x1 + 2x2 1 4 x1 4 0 x2 0 x1 , x2 Z

194

La soluzione del rilassamento lineare del problema S (7) ` ex (7) = (3, 0) ed ha valore U (7) = (8) z ( x ) = 9. Il problema S , invece, non ha soluzioni ammissibili. Di conseguenza, poniamo U (8) = . I problemi S (7) e S (8) possono essere chiusi: il primo in quanto la soluzione ottenuta ` e intera, il secondo in quanto non ha soluzione. La soluzione intera di S (7) ` e migliore di quella corrente e quindi la soluzione corrente viene aggiornata (si pone x T = (3, 0)). La lista L ` e ora vuota, il procedimento quindi termina. La soluzione ottima ` e data dalla soluzione corrente, ossia dalla soluzione del problema S (7) : I vari passi della procedura di soluzione possono essere schematizzati utilizzando il cosiddetto Albero di Enumerazione riportato in gura 12.7. In tale albero i nodi indicano i problemi mentre i rami stabiliscono le relazioni padre-glio (generatore-generato) nel processo di generazione.
(7)

Figura 12.7: Albero di enumerazione.

Esempio 2. Passiamo ora ad esaminare, pi` u sinteticamente il secondo esempio. Sia dato il
seguente problema di programmazione lineare a numeri interi. max x1 + x2 2x1 + 5x2 30 4x1 3x2 6 0 x1 0 x2 x1 , x2 Z Notiamo che in questo problema non sono esplicitamente presenti gli upper bound sule variabili. Essendo comunque la regione ammissibile del problema rilassato limitato, non ` e comunque ` facile convincersi che nulla cambia nellapplicazione dellalgoritmo necessario inserirli esplicitamente. E e nella sua validit` a. (S (0) )

195

Poniamo inizialmente z = e risolviamo il rilassamento lineare di S (0) . Si ottiene 114 60 54 U (0) = x(0) = ( , ). 13 13 13 Essendo U (0) > z si separa rispetto alla variabile x1 . Si elimina S (0) dalla lista L, e vi si aggiungono i due nuovi problemi S 1 e S 2 individuati dai seguenti vincoli aggiuntivi. S1 : S2 : Si avr` a pertanto L = {S 1 , S 2 }. Si sceglie S 1 da L e si risolve il suo rilassamento. Si ottiene U1 = 42 5 x 1 = 4 x 2 = 22 5 x1 4 x1 5.

Essendo U 1 > z si elimina S 1 da L e vi si aggiungono, invece altri due problemi, S 3 e S 4 , individuati dai seguenti vincoli aggiuntivi. S3 : S4 : Risulta pertanto L = {S 2 , S 3 , S 4 }. Si sceglie S 3 da L e si risolve il suo rilassamento. Si ottiene U3 = 8 x 1 = 4 x 2 = 4 x1 4 x1 4 x2 4 x2 5.

Essendo U 3 > z ed essendo intera la soluzione trovata, si pone z = U3 = 8 x 1 = x 1 = 4 x 2 = x 2 = 4,

e si elimina il problema S 3 . Risulta a questo punto L = {S 2 , S 4 }. Si sceglie S 4 da L e si risolve il suo rilassamento. Si ottiene U4 = 15 2 x 1 = 5 2 x 2 = 5

Essendo U 4 < z si chiude S 4 e la lista diventa L = {S 2 }. Si sceglie S 2 dalla lista e si risolve il suo rilassamento. Si vede che non esistono soluzioni ammisibili. Si chiude S 2 e la lista L ` e vuota. La soluzione corrente ` e la soluzione ottima. z = 8 x 1 =4 x 2 = 4.

12.6

Il problema del Knapsack

Descriveremo ora in modo completo un algoritmo di Branch and Bound per la soluzione di un problema di Knapsack. In particolare, descriveremo la procedura per individuare un upper bound del problema e la strategia di separazione utilizzata. Il problema ` e il seguente: max cT x aT x b xi {0, 1}, i = 1, . . . , n

196

dove a e c sono vettori in I Rn a componenti non negative e b > 0 ` e un numero reale. Questo problema ha linteressante propriet` a che la soluzione del suo rilassamento lineare pu` o essere ottenuta, senza usare il metodo del simplesso, nel modo seguente: 1. Si ordinano le variabili secondo i rapporti valore/ingombro decrescenti in modo tale che: c1 c2 cn ... a1 a2 an 2. Si determina lindice h {1, . . . , n} tale che:
h

ai
i=1 h+1

b > b

ai
i=1

(ponendo h = 0 se a1 > b). 3. La soluzione del rilassamento lineare del problema di knapsack sar` a il vettore x cos` denito: x 1 = . . . = x h = 1 x h+2 = . . . = x n = 0 x h+1 = (b
h i=1

ai )

ah+1

Esempio Nellesempio, oltre alla strategia di calcolo del upper bound descritta nel 12.6,
useremo una tecnica di separazione binaria sulla variabile frazionaria e sceglieremo il problema da esaminare in base alla strategia LIFO. Esempio 12.6.1 Sia dato il seguente problema: (S0 ) max 4x1 + 4x2 + 3x3 + x4 2x1 + 3x2 + 3x3 + 2x4 7 x {0, 1}n risolvere con il metodo del Branch and Bound. Osserviamo innanzitutto che gli indici delle variabili soddisfano le condizioni di ordinamento dei rapporti valore/ingombro. 1. Inizializzazione La soluzione ottima del rilassamento lineare ` e:

197

2 x 0 = [1, 1, , 0] 3 Il valore corrispondente dell upper bound ` e U0 = 10. Una soluzione ammissibile (ma non ottima) del problema ` ex = [1, 1, 0, 0], ottenuta arrotondando allintero inferiore le componenti di x 0 . Il suo valore (lower bound) ` e z = 8 Poich` e lottimo rilassato non ` e intero (e quindi non appartiene a S0 = S ) dobbiamo separare il problema S0 . Poich` e la componente ( x0 )3 ` e frazionaria, scegliamo la variabile x3 e la ssiamo ad 1 e 0 ottenendo, rispettivamente, i problemi S1 ed S2 , le cui formulazioni sono: (S1 ) max 4x1 + 4x2 + 3x3 + x4 2x1 + 3x2 + 2x4 4 x {0, 1}n , x3 = 1

(S2 )

max 4x1 + 4x2 + 3x3 + x4 2x1 + 3x2 + 2x4 7 x {0, 1}n , x3 = 0

Calcoliamo, utilizzando la strategia sopra descritta, le soluzioni ottime dei problemi rilassati: 2 x 1 = [1, , 1, 0], 3 x 2 = [1, 1, 0, 1]

I valori dei corrispondenti upper bounds saranno U1 = 9. 6 ed U2 = 9. La lista dei problemi terminali sar` a L = {S1 , S2 }. Passo 1. (1a) Chiusura dei problemi terminali dominati dallottimo corrente Poich` e U1 > z e U2 > z nessuno dei due problemi pu` o essere chiuso. (1b) Scelta del problema (aperto) da esaminare Si adotta una strategia LIFO. Viene scelto il problema S2 . (1c) Esame del problema scelto Poich` ex 2 appartiene ad S2 (infatti ` e una soluzione intera) lottimo corrente viene aggiornato. In particolare, si pone z = U2 = 9 ed x =x 2 = [1, 1, 0, 1]. Il problema S2 viene poi rimosso dalla lista dei problemi terminali che diviene L = {S1 }. Passo 2. (2a) Chiusura dei problemi terminali dominati dallottimo corrente. Poich` e U1 > z lunico problema nella lista non pu` o essere chiuso. (2b) Scelta del problema (aperto) da esaminare. Ovviamente S1 .

198

(2c) Esame del problema scelto Poich` ex 1 non appartiene ad S1 (infatti ` e una soluzione non intera) lottimo corrente non viene aggiornato. Di conseguenza, il problema S1 deve essere decomposto. Poich` e la componente ( x1 )2 ` e frazionaria, scegliamo la variabile x2 e ssiamola a 0 ed 1 ottenendo i problemi S3 ed S4 le cui formulazioni sono: (S3 ) max 4x1 + 4x2 + 3x3 + x4 2x1 + 2x4 4 x {0, 1}n , x3 = 1, x2 = 0

(S4 )

max 4x1 + 4x2 + 3x3 + x4 2x1 + 2x4 1 x {0, 1}n , x3 = 1, x2 = 1

Calcoliamo le soluzioni ottime dei problemi rilassati: x 3 = [1, 0, 1, 1], 1 x 4 = [ , 1, 1, 0] 2

I valori dei corrispondenti upper bound saranno U3 = 8 ed U4 = 9. La lista dei problemi terminali sar` a L = {S3 , S4 }. Passo 3. (3a) Chiusura dei problemi terminali dominati dallottimo corrente. Poich` e Ui z per i = 3, 4 entrambi iproblemi possono essere chiusi. Di conseguenza la soluzione ottima ` ex = [1, 1, 0, 1] di valore z = 9. Esempio 12.6.2 Risolvere il problema di knapsack dellesercizio 12.6.1, utilizzando il metodo del Branch and Bound utilizzando come strategia di scelta del problema da esaminare il criterio del massimo upper bound.

199

Capitolo 13

Gra e modelli su gra


In questo capitolo introduciamo la nozione di grafo ed alcune denizioni ad essa collegate. I gra sono una struttura matematica molto usata nelle applicazioni e si prestano a rappresentare problemi apparentemente molto diversi tra di loro con un linguaggio semplice ed unicato. Questo spiega la loro importanza nella matematica applicata e, in particolare, nella Ricerca Operativa.

13.1

Denizioni fondamentali

Un grafo non orientato G = (V, E ) ` e denito da un insieme nito V (G) = {v1 , . . . , vn } di elementi detti nodi o vertici e da un insieme E (G) = {e1 , . . . , em } V V di coppie non ordinate di nodi dette archi o spigoli. Dato larco e = (v, w) = (w, v ), i nodi v e w sono detti estremi di e, e si dice che larco e incide su u e v . Una comoda rappresentazione del grafo viene mostrata in gura 13.1a. I nodi sono rappresentati da cerchi, mentre gli archi sono tratti di curva congiungenti i due estremi. Per il grafo G = (V, E ) rappresentato in gura si ha V = {v1 , v2 , v3 , v4 , v5 } E = {e1 , e2 , e3 , e4 , e5 , e6 } = {(v1 , v2 ), (v2 , v3 ), (v1 , v5 ), (v3 , v5 ), (v3 , v4 ), (v4 , v5 )}. Se gli estremi di un arco coincidono, larco ` e detto loop (Fig. 13.1b). I gra di cui ci occuperemo nel seguito non conterranno loop, a meno che non sia altrimenti specicato. Due nodi u, v sono detti adiacenti (reciprocamente) se larco (u, v ) appartiene ad E . Nella gura sono adiacenti, per esempio, i nodi v1 e v2 . Due archi sono detti adiacenti se hanno un estremo in comune, come gli archi e2 ed e4 in gura. Si denisce intorno di un nodo v in G, indicato con (v ), linsieme dei nodi adiacenti a v . Nella gura (v5 ) = {v1 , v3 , v4 }. Un nodo v si dice isolato se (v ) = . Si denisce stella di v in G, indicata con (v ), linsieme degli archi incidenti su v . Nella gura (v5 ) = {e3 , e4 , e6 }. Si denisce sottografo di G = (V, E ) un grafo H = (W, F ) tale che W V e F E . Si denisce sottografo indotto da W V in G = (V, E ) il grafo H = (W, F ), ove linsieme degli archi F ` e tale che larco (u, v ) appartiene a F se e solo se: (u, v ) W e (u, v ) E . Informalmente possiamo dire che il sottografo H eredita tutti gli archi di G i cui estremi sono entrambi contenuti nel sottoinsieme W . In gura 13.2 vengono mostrati due sottogra del grafo

200

v2

e2

v3 e5

e1 v1 e3

e4 e6 v5

v4 v

a)
Figura 13.1: a) Grafo non-orientato

b)
b) Loop

di gura 13.1. Il primo non ` e un sottografo indotto (manca larco e4 ), mentre il secondo ` e indotto in G dallinsieme di nodi {v2 , v3 , v4 , v5 }.

v2

e2

v3

v2

e2

v3 e5

e1 v1 e3 v5

e4 e6 v5

v4

a)
Figura 13.2: a) Sottografo

b)
b) Sottografo indotto

Un grafo orientato G = (V, E ) ` e denito da un insieme nito V (G) = {v1 , . . . , vn } di elementi detti nodi e da un insieme E (G) = {e1 , . . . , em } V V di coppie ordinate di nodi dette archi. Larco e = (v, u), si dice orientato dal nodo v al nodo u. I nodi v e u sono detti estremi di e, e si dice che larco e incide su v e u. Notiamo che a dierenza del caso non orientato, larco (v, u) ` e distinto dallarco (u, v ). Una rappresentazione del grafo orientato viene mostrata in gura 13.3. Lunica dierenza con la rappresentazione del grafo non orientato sta nella presenza sullarco di una freccia che indica lorientamento dellarco stesso. Analogamente al caso non-orientato, si denisce stella di v in G, indicata con (v ), linsieme degli archi incidenti su v . In gura 13.3, (v1 ) = {e1 , e2 , e5 }. La stella (v ) pu` o essere partizionata in stella entrante e (v ), cio` e linsieme degli archi entranti in v , e in stella uscente u (v ), linsieme degli archi uscenti da v . Nellesempio, e (v1 ) = {e2 }, mentre u (v1 ) = {e1 , e5 }. Analogamente lintorno (v ) pu` o essere partizionato in e (v ) = {w : (w, v ) e (v )} e u u (v ) = {w : (w, v ) (v )}. Sottogra e sottogra indotti sono deniti come per il caso

201

v2

e3

v3 e6 v4 testa v coda

e1 v1

e2

e4 v5 u

e5

a)
Figura 13.3: a) Grafo orientato
non orientato.

b)
b) Arco orientato

Cammini, Cammini Orientati, Cicli. Dato un grafo G = (V, E ) (indierentemente orientato o non orientato), ove V = {v1 , . . . , vn } e E = {e1 , . . . , em } diremo cammino in (di) G, un insieme ordinato P = {vj0 , eh1 , vj1 , eh2 , . . . , vjp1 , ehp , vjp } con: jk {1, . . . , n}, hi {1, . . . , m}, per k = 0, . . . , p e i = 1, . . . , p, e con larco ehi incidente sui nodi vji1 e vji .1 Notiamo che nel caso del grafo orientato, lorientamento degli archi del cammino ` e indierente. Si richiede semplicemente che larco ehi incida sui nodi vji1 e vji . I nodi vj0 e vjp sono detti estremi del cammino P . Un cammino ` e detto semplice se gli archi e i nodi che lo deniscono sono tutti distinti.

v2

e2

v3 e5

v2

e3

v3

e1 v1 e3 v5

v4 v1

e2 v5

e5

a)
Figura 13.4: Cammini semplici

b)

In gura 13.4a ` e mostrato un cammino semplice del grafo non orientato di gura 13.1, P = {v5 , e3 , v1 , e1 , v2 , e2 , v3 , e5 , v4 }, mentre in gura 13.4b ` e mostrato il cammino semplice
Spesso, quando non c` e possibilit` a di ambiguit` a, un cammino viene indicato indicando la sequenza dei soli nodi o quella dei soli archi
1

202

del grafo orientato di gura 13.3, P = {v5 , e5 , v1 , e2 , v2 , e3 , v3 }. In gura 13.5a ` e mostrato il cammino (non semplice) del grafo non orientato di gura 13.1, P = {v1 , e1 , v2 , e2 , v3 , e5 , v4 , e6 , v5 , e4 , v3 , e5 , v4 }. Notiamo che se in un grafo esiste un cammino fra i nodi u e v , esister` a un cammino semplice fra u e v . In un grafo orientato, chiameremo cammino orientato un cammino P = {vj0 , eh1 , vj1 , . . . , ehp , vjp } tale che ehi = (vji1 , vji ). Nel cammino orientato ` e dunque importante anche lorientamento degli archi. In gura 13.5b ` e mostrato il cammino orientato del grafo orientato di gura 13.3, P = {v1 , e1 , v2 , e3 , v3 , e4 , v5 }. Se u e v sono, rispettivamente, il primo e lultimo nodo di un cammino orientato P , si dir` a che P va da u a v .2

v2

e2 v3

v3 e5 e5 e4 v5 v4 e6 v4 e1 v1

v2

e3

v3

e1 v1

e4 v5

a)
Figura 13.5: a) Cammino (non semplice)

b)
b) Cammino orientato

Un cammino ` e detto chiuso se i suoi estremi coincidono. Deniremo ciclo un cammino chiuso C = {vj0 , eh1 , vj1 , . . . , vhp1 , vhp1 , ehp , vj0 }, tale che {vj0 , eh1 , vj1 , . . . , ehp1 , vhp1 } ` e un cammino semplice. Il cammino chiuso P = {v1 , e1 , v2 , e2 , v3 , e3 , v4 , e4 , v2 , e5 , v5 , e6 , v1 } di gura 13.6a non ` e un ciclo perch` e il cammino P = {v1 , e1 , v2 , e2 , v3 , e3 , v4 , e4 , v2 , e5 , v5 } non ` e semplice (il nodo v2 ` e contenuto due volte). In gura 13.6b ` e mostrato un ciclo. Notiamo che ancora una volta lorientamento degli archi nei gra orientati ` e indierente. Per i gra orientati si denisce ciclo orientato un camino orientato chiuso C = {vj0 , eh1 , vj1 , . . . , ehp1 , vhp1 , ehp , vj0 }, tale che {vj0 , eh1 , vj1 , . . . , ehp1 , vhp1 } ` e un cammino orientato semplice (Fig. 13.6c)

Alberi. Dato un grafo G = (V, E ) (orientato o non orientato), un nodo v V si dice connesso a un nodo u V se esiste un cammino (non necessariamente orientato) tra v e u. Un grafo (orientato o non orientato) ` e detto aciclico se non contiene cicli (non necessariamente orientati) come sottogra. Si dice albero un grafo aciclico e connesso. Ogni grafo aciclico ` e lunione di uno o pi` u alberi e viene detto foresta. In gura 13.7a ` e mostrato un albero, in gura 13.7b una foresta.
e detto bipartito se ` e possibile trovare Gra bipartiti Un grafo G = (V, E ) non orientato ` una partizione V1 , V2 dei suoi nodi
2

tale che gli estremi di ogni arco appartengono uno a V1 e

Spesso, quando si tratta di gra orientati e non ci sia possibilit` a di ambiguit` a, si indica col nome di cammino quello che pi` u propriamente dovrebbe essere chiamato cammino orientato 3 Deve risultare, cio` e, V1 V2 = V e V1 V2 =

203

v1 e1 v2

e6 e5 e4 e2 v3

v5

v4 e3

a)

b)

c)
c) Ciclo orientato

Figura 13.6: a) Cammino chiuso b) Ciclo

v1 v2

v1 v6 v3 v2 v3 v5

v4

v5

v6

v7

v4

a)
Figura 13.7: a) Albero

b)
b) Foresta

204

uno a V2 . Nella gura 13.8 ` e riportato un esempio di grafo bipartito.

Figura 13.8: Grafo bipartito


Spesso un grafo bipartito viene indicato, mettendo in evidenza la partizione dellinsieme dei nodi, come G = (V1 , V2 , E ).

13.2

Rappresentazioni di un grafo

Un grafo G(V,E) pu` o essere rappresentato in molti modi diversi. Nelle pagine precedenti abbiamo gia incontrato due modi diversi: la rappresentazione estensiva e quella graca. Nella rappresentazione estensiva vengono elencati tutti gli elementi dellinsieme V e tutti quelli dellinsieme E , nella rappresentazione graca, invece, il grafo viene rappresentato mediante un disegno in cui ai nodi si fanno corrispondere piccoli cerchi e agli archi tratti di curva congiungenti i cerchi. Gi` a da questi due esempi si capisce che, bench e concettualmente equivalenti, questi modi diversi di rappresentare un grafo possano avere caratteristiche molto dierenti. Per esempio, la rappresentazione graca ` e molto immediata e ci d` a subito una visione intuitiva delle caratteristiche del grafo, e molta della terminologia introdotta nora ` e ispirata proprio dalla rappresentazione graca. Tuttavia, se, come spesso accade nella pratica, il grafo ha moltissimi nodi (per esempio migliaia) si capisce subito che la rappresentazione graca non ` e pi` u di pratica utilit` a. Allora ` e utile avere a disposizione diversi modi di rappresentare un grafo. La decisione di scegliere una rappresentazione piuttosto che unaltra andr` a poi fatta di volta in volta in base al problema che si vuole risolvere, alle dimensioni del grafo, alle sue caratteristiche etc. Nel seguito consideriamo la rappresentazione di un grafo tramite la matrice di incidenza. Tale rappresentazione ` e preferibile in alcune applicazioni della Ricerca Operativa per la sua corrispondenza ad alcune formulazioni standard di modelli di ottimizzazione e la conseguente maggior facilit` a di analisi del modello. La matrice di incidenza ` e una matrice n m. La matrice ha quindi un numero di righe pari al numero di nodi e un numero di colonne pari al numero di archi. Nel caso di gra non orientati, il generico elemento ai,j della matrice sar` a aij = 1 0 se arco j incide su nodo i altrimenti

205

Nel caso di gra orientati, il generico elemento ai,j della matrice sar` a pari a 1 se larco j -esimo esce dal nodo i, sar` a pari a 1 se larco j -esimo entra nel nodo i, sar` a pari a 0 se larco j -esimo non incide sul nodo i, ovvero 1 se arco j esce dal nodo i 1 se arco j entra nel nodo i 0 altrimenti Nella matrice di incidenza ogni colonna ha esattamente due elementi diversi da zero; essi sono in corrispondenza delle due righe della matrice relative ai due nodi estremi dellarco. aij = Osservazione 13.2.1 La matrice di incidenza di un grafo orientato ` e totalmente unimodulare. Infatti la condizione del Teorema 12.4.6 ` e soddisfatta ponendo tutti gli indici di riga in uno dei due insiemi (ad es. Q1 = {1, . . . , n}, Q2 = ). Esercizio 13.2.2 Dato il grafo G mostrato in Figura 13.9, scrivere la corrispondente matrice dincidenza nodi-archi.

7 1 3 6

Figura 13.9: Esercizio 13.2.2


Soluzione. Per scrivere la matrice dincidenza nodi-archi, dobbiamo innanzitutto numerare arbitrariamente gli archi. In particolare, scegliamo e1 = (1, 2), e2 = (1, 3), e3 = (2, 4), e4 = (2, 5), e5 = (3, 2), e6 = (3, 5), e7 = (3, 6), e8 = (4, 5), e9 = (5, 6), e10 = (5, 7), e11 = (6, 2), e12 = (7, 6), la corrispondente matrice dincidenza sar` a:

206

1 2 3 4 5 6 7

e1

-1 1 0 0 0 0 0

e2 -1 0 1 0 0 0 0

e3 0 -1 0 1 0 0 0

e4 0 -1 0 0 1 0 0

e5 0 1 -1 0 0 0 0

e6 0 0 -1 0 1 0 0

e7 0 0 -1 0 0 1 0

e8 0 0 0 -1 1 0 0

e9 0 0 0 0 -1 1 0

e10 0 0 0 0 -1 0 1

e11 0 1 0 0 0 -1 0

e12 0 0 0 0 0 1 -1

13.3

Alcuni esempi di problemi su grafo

In questa ultima sezione verranno formulati alcuni problemi utilizzando il formalismo dei gra. Scopo di questi esempi non ` e quello di dare una panoramica completa di quei problemi la cui formulazione (e risoluzione) ` e basata sui gra (non sarebbe suciente un intero corso dedicato a questo tema!). Piuttosto vogliamo mostrare come problemi molto diversi tra loro possano essere formulati (e risolti) usando una rappresentazione basata sui gra, che spesso contribuisce a rendere chiari problemi apparentemente molto intricati, dando cos` , inoltre, una prova dellimportanza della scelta di un buon modello nella risoluzione di un problema e della necessit` a di disporre di un ampio spettro di modelli per poter adeguatamente modellare problemi pratici.

13.3.1

Modelli di distribuzione di usso a costo minimo

Modelli di distribuzione di usso a costo minimo nascono naturalmente quando si voglia determinare il modo pi` u economico di trasportare merci da alcune origini a delle destinazioni attraverso una rete sica. Per formulare questo problema consideriamo una rete orientata G = (V, E ) con associato ad ogni arco (i, j ) E un costo cij (negativo, positivo o nullo), una capacit` a uij 0 ed un limite inferiore lij , con 0 lij uij . Supponiamo inoltre che a ciascun nodo i di V sia associato un numero intero b(i), con la convenzione che: - b(i) > 0 indica la presenza di oerta (il nodo i viene detto origine); - b(i) < 0 indica la presenza di domanda (il nodo i viene detto destinazione); - b(i) = 0 indica lassenza di oerta e di domanda (il nodo i viene detto di trasferimento). Nel seguito supporremo valida la seguente ipotesi: Ipotesi di ammissibilit` a. Loerta totale uguaglia la domanda totale; ovvero, formalmente: b(i) = 0.
iV

(13.1)

Denizione 13.3.1 Un usso ammissibile in una rete G ` e un vettore non negativo x IR|E | che soddisfa i seguenti vincoli: vincoli di capacit` a: per ogni arco (ij ) E :

207

lij xij uij . vincoli di bilanciamento della massa: per ogni nodo k V xjk
(jk) (k) (ki) + (k)

xki = b(k ).

Il costo di un usso ` e denito come la somma cij xij .


(ij )E

Il problema del usso a costo minimo, si pu` o enunciare come segue: trovare una distribuzione ammissibile di usso sulla rete G tale in modo da minimizzare il costo totale. Se si indica con AG la matrice dincidenza della rete, con b = (b(1), . . . , b(n))T il vettore m della domanda/oerta, con c IRm il vettore dei costi e con l IRm + ed u IR+ i vettori le cui componenti rappresentano il limite inferiore e la capacit` a dellarco corrispondente, il problema di usso a costo minimo pu` o essere scritto nel seguente modo: min cT x AG x = b lxu (PC )

Nel caso di rete non capacitata, cio` e quando si abbia lij = 0 e uij = , allora il problema di usso a costo minimo si scrive: min cT x AG x = b x0 (Q).

In questo caso il problema ` e anche noto in letteratura come problema di trasferimento (transhipment problem). Osservazione 1 Questa formulazione richiede n vincoli di bilanciamento ed m vincoli di non negativit` a. In realt` a per` o, sommando i vincoli di bilanciamento si ottiene:
n n

akj xij =
k=1 (ij )E n k=1

b(k ).

In eetti, poich e per ipotesi si ha k=1 b(k ) = 0, e inoltre la somma delle righe della matrice dincidenza ` e uguale alla riga nulla (vedi Teorema ??), si ottiene lidentit` a 0 = 0. Quindi, in realt` a unequazione dei vincoli di bilanciamento si pu` o ottenere come combinazione lineare delle altre ed ` e quindi ridondante. Osservazione 2 Lipotesi di ammissibilit` a consente di assicurare lesistenza di una soluzione ). Si ha infatti, il seguente teorema: ammissibile per il problema di trasferimento (P Teorema 13.3.2 (Ipotesi di ammissibilit` a) Condizione necessaria e suciente per lesistenza di una soluzione ammissibile per problema di trasferimento (Q) ` e cha valga (13.1).

208

Teorema 13.3.3 (Propriet` a di interezza) Dato un problema di usso a costo minimo che soddisfa lipotesi di ammissibilit` a, se i vettori l, u e b sono interi non negativi, se il problema ha una soluzione ottima, allora ha una soluzione intera dello stesso valore. Grazie a questultima propriet` a, ` e possibile costruire algoritmi polinomiali che consentano di trascurare eventuali vincoli di interezza sulle variabili, riducendo cos` un problema di ottimizzazione combinatoria in un problema di ottimizzazione continua. Alcuni problemi classici di ottimizzazione su reti possono essere formulati come problemi di usso a costo minimo. Nei prossimi paragra analizzeremo alcuni modelli su reti che sono una particolarizzazione dei modelli di usso a costo minimo. Esempio 13.3.4 (Modello di usso a costo minimo) Una unit` a portarei navale deve compiere una missione di tre giorni in oceano. Sono noti i seguenti fabbrisogni giornalieri di aerei necessari per portare a termine la missione: Aerei ` noto inoltre che E - non sono possibili rifornimenti in oceano; - non si pu` o usare un aereo dopo una giornata di missione se non dopo una revisione; - le revisioni possono essere fatte di giorno o di notte con costi diversi; in particolare, revisionare di giorno costa 8, revisionare di notte costa 15; - un aereo nuovo costa 20; - le squadre di revisione sono in grado di revisionare quanti aerei si desidera. Formulare il problema di PL per decidere quanti aerei nuovi imbarcare e quanti aerei (e quando) revisionare per portare a termine la missione a costo minimo. Analisi del problema Si tratta di un problema di usso a costo minimo su reti spazio-temporali. Formulazione Per determinare quali sono le variabili di decisione si devono individuare le possibilit` a di acquisto e/o di revisione nei tre giorni di missione. Distinguiamo i seguenti intervalli temporali: T1 : primo giorno; si possono utilizzare solo aerei nuovi. Indichiamo questa quantit` a con x1 00 . T2 : notte tra il primo ed il secondo giorno; si possono revisionare gli aerei usati il primo giorno; T3 : il secondo giorno; si possono utilizzare aerei nuovi ed aerei revisionati nel periodo T2 . 2 Indichiamo rispettivamente con x2 a. 00 e x12 queste quantit` Si possono inoltre revisionare aerei usati il primo giorno. T4 : notte tra il secondo ed il terzo giorno; si possono revisionare aerei usati il primo o il secondo giorno. 1o giorno 40 2o giorno 70 3o giorno 60

209

T5 : terzo giorno; si possono utilizzare aerei nuovi oppure aerei utilizzati il primo giorno e revisionati nel periodo T2 , T3 o T4 oppure aerei utilizzati il secondo giorno e revisionati 3 3 3 3 nel periodo T4 . Indichiamo queste quantit` a rispettivamente con x3 00 , x12 , x13 , x14 , x24 . Variabili. Le variabili di decisione sono quindi le quantit` a di aerei utilizzati, cio` e: xk ij dove lapice k = 1, 2, 3 indica il giorno. I pedici ij indicano rispettivamente il giorno in cui gli aerei sono stati usati ed il periodo in cui sono stati revisionati. Osserviamo che non ha alcun senso revisionare aerei usati il secondo giorno nel periodo T5 perch e non potrebbero essere mai utilizzati. Lindice i vale 1, 2, lindice j vale 2, 3, 4 (con riferimento allintervallo temporale Tj .) Questa situazione ` e schematizzata nella seguente tabella: 1o giorno x1 00 2o giorno x2 00 x2 12 3o giorno x3 00 x3 12 x3 13 x3 x3 24 14

nuovi revisionati T2 T3 T4

Vincoli. Per quanto riguarda i vincoli abbiamo: vincoli di non negativit` a: si tratta di quantit` a di aerei utilizzati, quindi: xk ij 0 k, i, j

vincoli di interezza: si tratta di quantit` a indivisibili xk ij Z ; vincoli di domanda: sono noti i fabbisogni giornalieri di aerei. Il primo giorno dobbiamo avere 40 aerei, quindi : x1 00 = 40. Il secondo giorno gli aerei utilizzati devono essere pari a:
2 x2 00 + x12 = 70.

Analogamente per il terzo giorno


3 3 3 3 x3 00 + x12 + x13 + x14 + x24 = 60

vincoli di continuit` a: la quantit` a di aerei revisionati nel periodo Tj non pu` o superare la quantit` a di aerei disponibile in quel periodo:
3 3 3 1 x2 12 + x12 + x13 + x14 x00 x3 70 . 24

210

Inoltre la quantit` a totale di aerei usata non pu` o superare la quantit` a totale di aerei che ` e stata acquistata; supponendo che gli aerei usati vadano ad un deposito nale, si ha che il primo giorno vengono mandati al deposito nale gli aerei usati che non sono pi` u revisionati, cio` e:
2 3 3 3 x1 00 (x12 + x12 + x13 + x14 )

analogamente il secondo giorno:

70 x3 24

ed il terzo giorno tutti gli aerei usati vanno al deposito, cio` e 60. 1 2 3 La quantit` a di aerei nuovi ` e pari a x00 + x00 + x00 , quindi complessivamente dovremo avere:
2 3 2 3 3 3 3 x1 00 + x00 + x00 = 40 x12 x12 x13 x14 + 70 x24 + 60,

cio` e
3 3 3 3 2 3 x2 00 + x00 + x12 + x12 + x13 + x14 + x24 = 130

(13.2)

Funzione obiettivo. La funzione obiettivo ` e il costo totale dovuto allacquisto e alla revisione dergli aerei. Gli aerei nuovi costano 20 e corrispondono ai valori di i = j = 0, quindi il costo totale di acquisto ` e
3

20
k=1

3 2 3 xk 00 = 20(x00 + x00 + x00 ).

Gli aerei revisionati di giorno (corrispondono al periodo T3 ) costano 8, quindi: 8


k,i 3 xk i3 = 8x13

Gli aerei revisionati di notte (corrispondono ai periodi T2 , T4 ) costano 15 quindi: 15


k,i j =2,4 2 3 3 3 xk ij = 15(x12 + x12 ) + 15(x14 + x24 ).

Complessivamente, il problema si scrive: 3 2 3 3 3 2 3 minx 20(x3 00 + x00 + x00 ) + 8x13 + 15(x12 + x12 + x14 + x24 ) 1 x00 = 40 2 x2 00 + x12 = 70 3 3 3 3 3 x00 + x12 + x13 + x14 + x24 = 60 2 3 3 3 x12 + x12 + x13 + x14 x1 00 3 x24 70 3 2 3 3 3 3 x2 00 + x00 + x12 + x12 + x13 + x14 + x24 = 130 k xij 0 k, i, j k xij Z

211

Vediamo come questo problema pu` o essere interpretato come un modello di usso a costo minimo. Si tratta di denire una rete in cui archi e/o nodi corrispondono ad aerei usati e/o revisionati in intervalli di tempo diversi. Costruiamo una rete orientata in questo modo: introduciamo un nodo sorgente s che rappresenta lo stato iniziale, ovvero il deposito da cui si possono acquistare arei nuovi. Siano 1, 2, 3 tre nodi che rappresentano linizio rispettivamente del primo, secondo e terzo giorno. Avremo gli archi (s, 1), (s, 2), (s, 3) con un usso su di essi che rappresenta il numero di aerei nuovi acquistati il primo, secondo e terzo giorno. Introduciamo anche un nodo pozzo t che rappresenta lo stato nale, ovvero il deposito degli aerei usati. Siano 1 , 2 , 3 tre nodi che rappresentano la ne rispettivamente del primo, secondo e terzo giorno. Avremo gli archi (1 , t), (2 , t), (3 , t) con un usso su di essi che rappresenta il numero di aerei usati il primo, secondo e terzo giorno e che non sono pi` u revisionati. Inoltre ci saranno gli archi (1, 1 ), (2, 2 ), (3, 3 ) con un usso su di essi che rappresenta il numero di aerei utilizzati durante il primo, secondo, terzo giorno. Ovviamente questo usso ` e ssato e noto (sono i fabbrisogni giornalieri). Introduciamo poi altri tre nodi 4, 5, 6 che corrispondono agli intervalli di tempo T2 , T3 , T4 , cio` e esiste larco (i , j ) con i = 1 , 2 , 3 e j = 4, 5, 6 se ` e possibile revisionare gli aerei usati nel giorno i durante lintervallo di tempo corrispondente a j. In particolare avremo gli archi: (1 , 4) (1 , 5) (1 , 6) (2 , 6) aerei aerei aerei aerei usati usati usati usati il il il il 1 1 1 2 giorno giorno giorno giorno revisionati revisionati revisionati revisionati T2 T3 T4 T4

Non ci sono archi di questo tipo uscenti da 3 . Ci sono anche archi del tipo (j, i) con j = 4, 5, 6 e i = 1, 2, 3 se ` e possibile utilizzare aerei revisionati nel periodo corrispondente a j il giorno i. In particolare avremo gli archi: (4, 2) aerei revisionati T2 (4, 3) aerei revisionati T2 (5, 3) aerei revisionati T3 (6, 3) aerei revisionati T4 usati usati usati usati il il il il 2 3 3 3 giorno giorno giorno giorno

Non ci sono archi di questo tipo entranti in 1. Complessivamente la rete ` e riportata in Figura 13.10 Osservazione Notiamo che si tratta di determinare il usso a costo minimo su una rete (non capacitata) con alcuni valori di usso assegnati. Il nodo s ` e il nodo origine con b(s) = 3 2 ) < 0 . Il nodo t ` e il nodo destinazione con b ( t ) > 0. tutti gli altri nodi sono + x (x1 + x 00 00 00 di trasferimento con b(i) = 0. Il vincolo (13.2) corrisponde allipotesi di ammissibilit` a. Mentre gli altri vincoli di continuit` a sono i vincoli di conservazione ai nodi di trasferimento 1 e 2 . I vincoli di domanda sono i vincoli di conservazione negli altri nodi di trasferimento. Validazione del modello Si pu` o osservare che si possono eliminare alcuni archi dalla rete del modello e quindi alcune variabili. In particolare, si pu` o eliminare larco (4, 3) perch e non conviene revisionare di notte aerei che potrebbero essere revisionati il giorno successivo (non ci sono limitazioni sul numero di aerei che si possono revisionare). Inoltre si pu` o eliminare larco (1 , t) perch e il primo giorno conviene revisionare quanti pi` u aerei possibile piuttosto che comperarne di nuovi. Con lo stesso ragionamento si pu` o eliminare larco (s, 3) cio` e non comperare aerei nuovi il terzo giorno, ma usare solo aerei revisionati, poich e la quantit` a di aerei necessaria ` e inferiore al numero di aerei

212

40

1'

4 S 2
70

2'

5 3 3'

60

Figura 13.10: Rete relativa allEsercizio 13.3.4


3 usati il secondo giorno. Questo corrisponde ad eliminare le variabili x3 00 , x12 . Quindi, il vincolo (13.2) diventa: 1 3 x2 00 + x00 = 70 x24 + 60

Con queste considerazioni si ottiene il seguente modello: 3 3 2 3 1 min 20(x2 00 + x00 ) + 8x13 + 15(x12 + x14 + x24 ) 1 x00 = 40 x2 + x2 12 = 70 00 3 3 + x x3 14 + x24 = 60 13 3 2 x12 + x13 + x3 14 = 40 3 70 x 24 + x3 x2 24 = 90 00 k xij 0 k, i, j

Modelli di trasporto. Il problema di trasporto denito nel paragrafo 3.3.2, pu` o essere
formulato come problema di usso a costo minimo su una rete non capacitata in cui non ci sono nodi di trasferimento. Infatti, possiamo associare a questo problema un grafo bipartito G = (X, Y, E ); linsieme X rappresenta i nodi origini ed i nodi di Y sono i nodi destinazione. Linsieme dei nodi ` e V = X Y (|V | = n + m). Esiste un arco per ogni coppia ij con i X e j Y (|E | = nm). A ciascun arco (ij ) ` e associato un costo. Per ogni (i, j ) E , lij = 0 e uij = . Inne, per ogni nodo i X , si pone b(i) = ai , mentre per ogni nodo i Y , si pone b(i) = bj . Lipotesi (3.10) corrisponde allipotesi di ammissibilit` a. Una rete corrispondente a un problema di trasporto viene detta rete di trasporto. Il problema di trasporto, come caso particolare del problema di usso a costo minimo, gode ancora della propriet` a espressa dal Teorema di interezza. Quindi, se nel problema dei trasporti

213

ai , i = 1, . . . , m e bj , j = 1, . . . , n sono interi e se il problema ammette soluzione ottima, allora ha una soluzione ottima intera.

Modelli di assegnamento I problemi di assegnamento sono un caso particolare del problema di trasporti in cui si ha lo stesso numero di origini e di destinazioni. Un generico problema di assegnamento consiste nel determinare il modo ottimale di assegnare lavori a persone o, pi` u in generale, di assegnare mezzi (persone, macchine, etc. ) ad attivit` a. Supponiamo che n persone P1 ,. . . ,Pn , debbano svolgere n lavori L1 ,. . . , Ln ; ciascun lavoro deve essere svolto esattamente da una persona e ciascuna persona deve svolgere un lavoro. Naturalmente le persone hanno diversi livelli di esperienza, competenza ed abilit` a e quindi si pu` o introdurre un costo dellassegnamento della persona i al lavoro j ; indichiamo tale costo con cij e supponiamo che sia noto. Questo costo pu` o, ad esempio, essere interpretato come tempo medio impiegato dalla persona i ad eseguire il lavoro j . Il problema consiste, quindi, nellassegnare i lavori alle persone minimizzando il costo totale di realizzazione di tutti i lavori. Questo tipo di problemi sorge in molte situazioni pratiche: esempi tipici sono i problemi di assegnamento del personale allinterno di una azienda e i problemi di assegnare determinati mezzi di trasporto ad alcune particolari linee. Esempi di questo tipo verranno esaminati in dettaglio nel seguito. Se indichiamo con X linsieme delle persone (|X | = n), con Y linsieme dei lavori (|Y | = n) e con E linsieme degli assegnamenti possibili, cio` e delle possibili coppie (ij ) con i X e j Y, allora il problema di assegnamento ` e un problema di usso a costo minimo su una rete di trasporto rappresentata da un grafo bipartito con V = X Y e b(i) = 1 per ogni i X e b(j ) = 1 per ogni j Y. Inoltre per ogni (ij ) si ha lij = 0 e uij = 1.
Esempio 13.3.5 Assegnazione delle aule. In una facolt` a universitaria vi sono nello stesso orario n corsi e m aule disponibili. Per ragioni di capienza delle aule e di attrezzature disponibili, ogni corso pu` o essere tenuto solo in alcune delle aule. Il problema ` e quello di stabilire quale ` e il numero massimo di corsi che ` e possibile tenere nellorario considerato. Il problema pu` o essere scritto come problema su gra nel seguente modo: sia G(V, E ) un grafo bipartito in cui linsieme di nodi V = V1 V2 in cui linsieme V1 corrisponde ai corsi, linsieme di nodi V2 corrisponde alle aule ed esiste un arco fra due nodi i e j (con i appartenente ad V1 e j appartenente a V2 ) se (e solo se) il corso i pu` o essere tenuto nellaula j . Il problema di stabilire qual ` e il numero massimo di corsi che ` e possibile tenere nellorario considerato pu` o ora essere formulato come il problema di scegliere sul grafo il massimo numero di archi (corrispondenti ad assegnazioni di corsi ad aule) tali che due archi scelti non siano mai adiacenti. Infatti se due archi fossero adiacenti in un nodo dellinsieme V1 , allora vorrebbe dire che uno stesso corso si tiene contemporaneamente in due aule diverse. Se due archi fossero adiacenti in un nodo dellinsieme V2 , allora vorrebbe dire che in una stessa aula si tengono contemporaneamente due corsi. In entrambi i casi le assegnazioni di aule non sono ovviamente ammissibili. Questo problema ` e detto di accoppiamento bipartito. Esempio 13.3.6 In un Dipartimento universitario, sono attivati cinque corsi diversi che possono essere tenuti da cinque professori. Ogni professore esprime delle preferenze sul corso che vorrebbe tenere, indicando un punteggio. A preferenza pi` u alta corrisponde un punteggio pi` u alto. I punteggi sono riportati nella seguente tabella:

214

insegnante1 insegnante2 insegnante3 insegnante4 insegnante5

corso1 7 7 4 5 4

corso2 5 9 6 4 5

corso3 4 7 5 5 5

corso4 4 9 8 7 8

corso5 5 4 5 4 9

Si vuole assegnare ciascun professore ad un corso cercando di massimizzare il valore medio inteso come media delle preferenze. Analisi Si tratta di un problema di assegnamento in cui i lavori sono i corsi. Indichiamo con cij il punteggio assegnato dal professore i al corso j. Formulazione Variabili. Le variabili di decisione sono le variabili booleane: 1 se linsegnante i ` e assegnata al corso j i, j = 1, . . . , 5. 0 altrimenti. Funzione obiettivo. Indicando con cij il punteggio assegnato dallinsegnante i alla corso j , la funzione obiettivo ` e il valore medio delle preferenze: xij = 1 5
5 5

cij xij .
i=1 j =1

Vincoli. I vincoli di assegnamento sono: x11 + x12 + x13 + x14 + x15 x21 + x22 + x23 + x24 + x25 x31 + x32 + x33 + x34 + x35 x41 + x42 + x43 + x44 + x45 x51 + x52 + x53 + x54 + x55 x11 + x21 + x31 + x41 + x51 x12 + x22 + x32 + x42 + x52 x13 + x23 + x33 + x43 + x53 x14 + x24 + x34 + x44 + x54 x15 + x25 + x35 + x45 + x55 =1 =1 =1 =1 =1 =1 =1 =1 =1 =1

Quindi, complessivamente il problema si scrive: 5 5 min i=1 j =1 cij xij x11 + x12 + x13 + x14 + x15 x21 + x22 + x23 + x24 + x25 x31 + x32 + x33 + x34 + x35 x + x42 + x43 + x44 + x45 41 x51 + x52 + x53 + x54 + x55 x11 + x21 + x31 + x41 + x51 x12 + x22 + x32 + x42 + x52 x13 + x23 + x33 + x43 + x53 x14 + x24 + x34 + x44 + x54 x15 + x25 + x35 + x45 + x55 xij 0

=1 =1 =1 =1 =1 =1 =1 =1 =1 =1

215

Colorazione di una carta geograca. Il problema ` e quello di stabilire il numero minimo di colori necessario per colorare una carta geograca, assegnando colori alle varie nazioni rappresentate sulla carta, in modo che due nazioni adiacenti (che quindi abbiano un tratto di frontiera in comune) siano sempre colorate in modo diverso. Si suppone che ogni nazione sia formata da una unica regione connessa e che nazioni adiacenti abbiano una linea di conne in comune di lunghezza maggiore di zero (e non quindi solo un singolo punto in comune). Assegnando ad ogni nazione un nodo di un grafo e collegando due nodi se e solo se le due nazioni corrispondenti sono adiacenti, si ottiene un grafo (che viene detto planare). La famosa congettura dei quattro colori, ormai da chiamare teorema dei quattro colori, aerma che ogni carta geograca ` e colorabile utilizzando al pi` u quattro colori. Questa congettura era gi` a nota nel 1840. Nel corso di oltre un secolo sono state fornite dimostrazioni per molti casi particolari del problema (oltre a molte dimostrazioni della congettura, poi rivelatesi sbagliate o valide per particolari classi di gra). Solo nel 1976 la congettura ` e stata dimostrata in tutta la sua generalit` a usando gli strumenti della teoria dei gra. Attraversamento di un ume Su di una riva di un ume vi ` e un pastore con un cane
lupo, un agnello e un cesto di cavoli. Per attraversare il ume il pastore dispone di una piccola barca che permette di trasportare, oltre al pastore, un solo altro passeggero (il cane lupo, lagnello o il cesto di cavoli). Se su di una riva restano soli il cane lupo e lagnello, il cane lupo puo uccidere lagnello. Se restano soli lagnello e il cesto di cavoli, lagnello puo mangiare i cavoli. Il problema ` e quello di stabilire se ` e possibile trasferire tutto sullaltra riva del ume senza mai lasciare soli cane lupo e agnello o agnello e cesto di cavoli. Il problema puo essere facilmente formulato come problema di esistenza di un cammino su di un opportuno grafo. Sia dato il grafo G = (V, E ) dove i nodi corrispondono a tutti i possibili stati ammissibili del sistema pastore-lupo-agnello-cavoli. I possibili stati ammissibili del sistema sono i seguenti: PLAC pastore, lupo,agnello e cavoli sulla riva di partenza nessuno sulla riva di arrivo PLC pastore, lupo e cavoli sulla riva di partenza agnello sulla riva di arrivo PAC pastore, agnello e cavoli sulla riva di partenza lupo sulla riva di arrivo PLA pastore,lupo e agnello sulla riva di partenza cavoli sulla riva di arrivo PA pastore e agnello sulla riva di partenza lupo e cavoli sulla riva di arrivo LC lupo e cavoli sulla riva di partenza pastore e agnello sulla riva di arrivo A agnello sulla riva di partenza pastore lupo,e cavoli sulla riva di arrivo L lupo sulla riva di partenza pastore,agnello e cavoli sulla riva di arrivo C cavoli sulla riva di partenza pastore,lupo e agnello sulla riva di arrivo nessuno sulla riva di partenza pastore,lupo,agnello e cavoli sulla riva di arrivo Altri stati del sistema non sono ammissibili; per esempio non ` e ammissibile lo stato PL in quanto lascerebbe agnello e cavoli soli sulla riva di arrivo.

216

PLAC

LC

PLC

PLA

PAC

PA

Figura 13.11: Esistenza tra un cammino tra due nodi


Nel grafo G esiste un arco tra due nodi se ` e possibile passare da uno allaltro dei due stati corrispondenti con un solo viaggio in barca. Il grafo associato al problema viene riportato in gura 13.11. Si noti che in questo caso il grafo ` e simmetrico in quanto, se ` e possibile passare dal nodo A al nodo B, allora ` e anche possibile passare da B a A; per semplicit` a quindi il grafo viene riportato come grafo non orientato. Lesistenza di una soluzione equivale allesistenza di un cammino tra il nodo PLAC e il nodo . Il numero minimo di viaggi necessario per compiere loperazione ` e pari a 7 e corrisponde al cammino con il minimo numero di archi tra il nodo PLAC e il nodo . Si noti che esistono due possibili cammini semplici tra i due nodi, entrambi con 7 archi.

13.4
13.4.1

Il problema del cammino minimo


Denizione del problema

Dato un grafo orientato G = (V, E ), associamo a ciascun arco e = (u, v ) E un numero reale le , detto peso dellarco. Per ogni cammino orientato P = {v1 , e1 , . . . , ep , vp }, denotiamo con l(P ) il peso di P , ossia la somma dei pesi degli archi di P . Il problema del cammino minimo pu` o essere enunciato nel modo seguente: dati due nodi s V e t V , trovare un cammino orientato P in G da s a t di peso minimo. Si osservi che (i) se non esiste un cammino orientato da s a t in G, il problema non ha soluzioni ammissibili; (ii) se esiste un ciclo orientato in G di peso negativo la soluzione del problema ` e illimitata (poich e conterr` a tale ciclo ripetuto un numero illimitato di volte). In Figura 13.12 ` e mostrato un grafo orientato contenente un ciclo orientato di peso negativo. I pesi degli archi sono mostrati in gura in prossimit` a di ciascun arco. Un cammino minimo conterr` a i nodi e gli archi del ciclo un numero illimitato di volte. Il problema del cammino minimo dal nodo s al nodo t, pu` o essere formulato come problema di usso a costo minimo, fatte le seguenti assunzioni:

217

1 2

1 t

5
Figura 13.12: Grafo con ciclo di peso negativo

la rete sia non-capacitata; per ogni nodo i V {s, t}, si ponga b(i) = 0; si ponga b(s) = 1 e b(t) = 1. ` facile vedere che ogni usso ammissibile corrisponde a inviare un usso unitario dal nodo s E al nodo t; utilizzando lipotesi di interezza del usso su ogni arco, un usso unitario corrisponde a un cammino diretto da s a t (formato dagli archi il cui usso corrispondente ` e uguale a uno). Dunque, il usso di costo minimo corrisponder` a al cammino di costo minimo da s a t. ` possibile formulare il problema del cammino minimo come problema di Programmazione E Lineare associando una variabile booleana xij con ogni arco (i, j ) E . In particolare un modello lineare pu` o essere cos` costruito: Variabili. Si deniscono le variabili booleane 1 se (i, j ) P 0 altrimenti Il vettore x Rm si chiama vettore di incidenza del cammino P. Funzione obiettivo. La funzione obiettivo ` e il peso del cammino: xij = cij xij .
(i,j )E

Vincoli. I vincoli devono imporre che si abbia eettivamente un cammino semplice da s a t, cio` e: in ciascun nodo k che non sia s o t incidono esattamente due archi del cammino, uno entrante e laltro uscente. Questo si esprime con i vincolo: xik
(ik) (k) (kj ) + (k)

xkj = 0

k V {s, t}

dalla sorgente s esce esattamente un arco e nel pozzo t entra esattamente un arco; cio` e:
(it) (t)

xit (is) (s) xis

(tj ) + (t)

xtj = 1 (sj ) + (s) xsj = 1

218

Se poniamo b = (1 1 0 . . . 0)T , e consideramo la matrice di incidenza A della rete G, allora questi vincoli si possono esprimere in forma matriciale come: Ax = b.

13.5

Cammini minimi e massimi su gra aciclici

Una classe di gra orientati di particolare interesse in campo applicativo ` e la classe di gra aciclici. Per esempio il grafo di attivit` a di un progetto con vincoli di precedenza fra le attivit` a ` e aciclico (vedi il capitolo Tecniche reticolari di programmazione delle attivit` a). La ricerca di cammini minimi o massimi su tali gra ` e uno strumento di progetto di notevole importanza. Come si vedr` a nel seguito, i due problemi di minimo e di massimo sono, in questo caso particolare, risolti da due algoritmi identici eccetto che per la sostituzione di un massimo a un minimo nella formula ricorsiva alla base del procedimento. Nel seguito verr` a prima considerato il caso di un problema di cammino minimo. Per poter procedere con la descrizione dellalgoritmo, ` e necessario studiare prima una particolare tecnica di numerazione dei nodi di un grafo aciclico.

13.5.1

Numerazione topologica dei nodi di un grafo

Una caratteristica peculiare dei gra aciclici (sia G = (V, E ) il grafo, con|V | = n e |E | = m) consiste nella possibilit` a di numerare i nodi del grafo con i numeri 1,2,3,....,n-1,n in modo tale che: se esiste un arco dal nodo i al nodo j allora j > i Tale numerazione viene detta numerazione topologica dei nodi del grafo e non ` e in generale unica. Non tutti i gra possono essere numerati topologicamente. In eetti lesistenza di una numerazione topologica dei nodi di un grafo caratterizza esattamente la classe dei gra aciclici. Vale infatti il seguente teorema. Teorema 13.5.1 Un grafo ` e aciclico se e solo se esiste una numerazione topologica dei suoi nodi. Dimostrazione. Sucienza. Supponiamo che esista una numerazione topologica dei nodi e facciamo vedere che l esistenza di un ciclo porterebbe ad una contraddizione. Possiamo assumere che i nodi siano numerati topologicamente, indicheremo li-esimo nodo di questa particolare numerazione, come vi . Se esiste un ciclo (orientato) vuol dire che esiste una successione di nodi (vi , vj , vk , . . . , vr , vs ) tali che - esistono gli archi (vi , vj ), (vj , vk ), . . ., (vr , vs ); - vi = vs . Ma allora, da una parte, siccome la numerazione ` e topologica abbiamo i < j < k < . . . < r < s, cio` e i < s, mentre dallaltra, poich e vi = vs abbiamo i = s. Questa ` e una contraddizione e cos` il grafo deve essere aciclico. Necessit` a. Supponiamo che il grafo sia aciclico e mostriamo che deve esistere almeno una numerazione topologica. La dimostrazione ` e costruttiva, faremo cio` e vedere che esiste una numerazione topologica costruendone una.

219

Come primo passo osserviamo che se il grafo ` e aciclico, deve esistere almeno un nodo che non abbia archi entranti. Infatti, se ci` o non fosse vero, potremmo ragionare nel modo seguente. Prendiamo un nodo qualunque, chiamiamolo v1 . Siccome tutti i nodi hanno archi entranti esiste un nodo predecessore di v1 , indichiamolo con v2 ; notiamo che per come abbiamo scelto v2 esiste larco (v2 , v1 ) (attenzione, questa ` e una numerazione non topologica). Possiamo ripetere il ragionamento con v2 e trovare un nodo v3 tale che esista l arco (v3 , v2 ). Siccome stiamo supponendo, per assurdo, che tutti gli archi abbiano degli archi entranti, possiamo ripetere il ragionamento quante volte vogliamo. Notiamo che ogni nodo generato deve essere diverso dai precedenti, altrimenti avremmo trovato un ciclo, contraddicendo laciclicit` a del grafo. Daltra parte, arrivati a vn i nodi del grafo sono niti e quindi il predecessore di vn che stiamo supponendo esistente per assurdo, deve per forza essere uno dei nodi gi` a esaminati. Cos` si viene a formare un ciclo. Quindi dato un grafo aciclico deve per forza esistere almeno un nodo che non ha archi entranti. Prendiamo uno di questi nodi e numeriamolo con il numero 1. Eliminiamo dal grafo il nodo 1 e tutti gli archi uscenti da esso. Il nuovo grafo che otteniamo ` e ovviamente ancora un grafo aciclico. Quindi per lo stesso ragionamento fatto prima deve esistere almeno un nodo che non ha archi entranti. Prendiamo uno di questi nodi e numeriamolo con il numero 2. Notiamo che ovviamente se consideriamo il grafo originario il nodo 2 pu` o avere archi entranti, ma solo provenienti dal nodo 1 e quindi la condizione i < j ` e rispettata. Possiamo ora ripetere il procedimento n volte (quanti sono i nodi) ed ottenere cos` una numerazione topologica del grafo. 2 Il precedente teorema ` e importante, anche perch e nella dimostrazione della necessit` a` e sostanzialmente dato un algoritmo per numerare topologicamente i nodi di un grafo. Riesponiamo qui lalgoritmo per chiarezza. - Siccome il grafo ` e aciclico, deve esistere almeno un nodo con solo archi uscenti; - individuiamo uno di questi nodi e attribuiamogli il numero 1; - cancelliamo il nodo numerato e tutti gli archi adiacenti, nel nuovo grafo ridotto individuiamo un nodo con soli archi uscenti e attribuiamogli il numero 2, e cos` via no ad aver numerato tutti i nodi La correttezza e validit` a di questa procedura ` e stata provata nella dimostrazione della necessit` a del Teorema 13.5.1. Notiamo che se ad un certo punto dellapplicazione della procedura non possiamo procedere, se succede cio` e che ad un determinato passo non riusciamo a trovare un nodo senza archi entranti, questo vuol dire che il grafo considerato contiene un ciclo. Quindi la procedura per la numerazione topologica di un grafo pu` o anche essere utilizzata per determinare se un grafo ` e aciclico o meno. Come esempio consideriamo il grafo di gura 13.13. Si tratta di decidere se il grafo ` e aciclico e, in caso, numerare i nodi topologicamente. I vari passi dellalgoritmo sono riportati qui di seguito Passo 1 2 3 4 Nodo senza archi entranti A B C D Nodi non ancora numerati B,C,D C,D D Numerazione A=1 B=2 C=3 D=4

220

Figura 13.13: Numerazione dei nodi di un grafo


Il procedimento ` e terminato con la numerazione di tutti i nodi. Il grafo ` e dunque aciclico e la numerazione trovata ` e topologica. Supponiamo ora che nel precedente grafo larco (B, D) sia orientato da D a B . Ovviamente si verrebbe a creare un ciclo. Se proviamo ad applicare la procedura per la determinazione di una numerazione topologica possiamo iniziare numerando il nodo A come nodo 1. Ma dopo non possiamo pi` u procedere perch e eliminato il nodo A e gli archi da esso uscenti ((A,B) e (A,C)) non ` e pi` u possibile individuare un nodo che non abbia archi entranti.

13.5.2

Un algoritmo per il cammino minimo su gra aciclici

La numerazione dei nodi di un grafo aciclico descritta nella sezione precedente consente di costruire un algoritmo di soluzione per il problema di cammino minimo particolarmente semplice. Infatti, nella ricerca di un cammino tra una qualsiasi coppia di nodi i e j del grafo, a causa della numerazione attribuita ai nodi, si pu` o aermare che: se j < i allora non esistono cammini da i a j ; se j > i allora gli unici nodi che ` e necessario considerare nella ricerca del cammino da i a j sono i nodi con indice k tale che i < k < j . Infatti, se il cammino passasse per un nodo h > j , allora non potrebbe tornare su j , a causa della mancanza di archi che collegano nodi con indice maggiore a nodi con indice minore; se passasse per un nodo h < i, allora dovrebbe esistere un cammino da i a h, il che comporterebbe lesistenza di archi che collegano nodi con indice maggiore a nodi con indice minore. Sulla base di queste considerazioni, ` e possibile impostare un algoritmo per il calcolo dellalbero dei cammini minimi tra un nodo del grafo (per esempio il nodo 1) e tutti i nodi con indice superiore (per quelli con indice inferiore non esiste sicuramente un cammino; ovviamente, se il nodo di partenza ` e quello contrassegnato con lindice 1, allora si tratta di calcolare lalbero dei cammini minimi tra il nodo 1 e tutti gli altri). Lalgoritmo per il calcolo dellalbero dei cammini minimi dal nodo 1 a tutti gli altri nodi si basa sul calcolo in sequenza dei cammini minimi dal nodo 1 al nodo 2, dal nodo 1 al nodo 3, dal nodo 1 al nodo 4, e cos via. Indichiamo con: - pi,j il peso dellarco (i, j ) che parte dal nodo i e arriva al nodo j ;

221

- e (i) linsieme dei nodi predecessori del nodo i; - d (i) il valore del cammino minimo dal nodo 1 al nodo i; - J (i) il nodo che precede i su tale cammino (nel caso il cammino minimo non sia unico, allora se ne sceglie uno qualsiasi fra quelli minimi). Possiamo allora illustrare lalgoritmo per il calcolo dei percorsi minimi. - d (1) := 0; J (1) := 1; - per j = 2, 3, 4, . . . , n 1, n ripeti la seguente serie di operazioni d (j ) := minie (j ) {d (i) + pi,j }; J (j ) := valore di i per cui si ` e vericato il minimo; Si noti che una volta assegnato un peso d (i) a un nodo (cio` e un valore del cammino minimo dal nodo 1 al nodo considerato), tale peso non viene pi` u modicato nel corso dellalgoritmo, ma indica in modo denitivo il valore del cammino. Questo ` e dovuto al fatto, gi` a citato, che tutti i nodi successivi non devono essere considerati per il calcolo del percorso dal nodo 1 al nodo i. Inoltre dai valori J (i) ` e possibile ricostruire in modo immediato lalbero (o uno dei possibili alberi) dei cammini minimi. La dimostrazione della correttezza della procedura segue immediatamente dal Teorema ??. Esempio 13.5.2 Come esempio consideriamo il grafo di gura 13.14.

2 1 1 3 3 1 1 3 4

Figura 13.14: Percorso minimo su gra aciclici


Si tratta di determinare lalbero dei cammini minimi tra il nodo 1 e tutti gli altri nodi. I vari passi dellalgoritmo, corrispondenti alla successione di nodi visitati, (si osservi che in questo caso particolare lindice del passo coincide con lindice del nodo visitato) portano alla seguente successione di valori d (i) e J (i)

222

Passo 1 2 3 4

Valore di d (i) d (1) = 0 d (2) = 1 d (3) = min{3, 1 + 1} = 2 d (4) = min{1 + 3, 2 + 1} = 3

Valore di J (i) J (1) = 1 J (2) = 1 J (3) = 2 J (4) = 3

Il corrispondente albero dei cammini minimi ` e riportato in gura 13.15

2 1 1 1 1 3 4

Figura 13.15: Albero dei cammini minimi

Esempio 13.5.3 Sia dato il grafo di Figura 13.16. Determinare lalbero dei cammini minimi,

B 4 A 3 D 2 3 C

1 5 10 3 2 2

E 4 F 3 G

Figura 13.16: Grafo Esercizio 13.5.3


utilizzando lalgoritmo per gra aciclici. Soluzione. Si deve prima numerare topologicamente il grafo. I passi sono riportati nella seguente tabella ed il grafo risultante in Figura 13.17

223

Passo 1 2 3 4 5 6 7

Nodo senza archi entranti A BoD B C EoG G F

Nodi non ancora numerati B,C,D,E,F,G B,C,E,F,G C,E,F,G E,F,G F,G F

Numerazione A=1 D =2 B=3 C=4 E=5 G=6 F=7

Osserviamo che la numerazione topologica in questo esempio non e unica; infatti ai passi 2 e 5 potevamo scegliere tra due nodi. Applichiamo ora lalgoritmo. I passi sono riportati nella

3 4 1 3 2 2 3 4

1 5 10 3 2 2

5 4 7 3 6

Figura 13.17: Numerazione topologica del grafo di Figura 13.16


seguente tabella Passo 1 2 3 4 5 4 4 Valore di d (i) d (1) = 0 d (2) = 3 d (3) = 4 d (4) = min{0 + 2, 3 + 2, 4 + 3} = 2 d (5) = min{4 + 1, 2 + 5} = 5 d (6) = min{3 + 2, 2 + 3} = 5 d (7) = min{2 + 10, 5 + 4, 5 + 3} = 8 Valore di J (i) J (1) = 1 J (2) = 1 J (3) = 1 J (4) = 1 J (5) = 3 J (6) = 4 J (7) = 6

Il corrispondente albero dei cammini minimi ` e riportato in gura 13.18.

13.5.3

Un algoritmo per il cammino massimo su gra aciclici

Se il problema di ottimo ` e quello della determinazione del cammino di peso massimo sul grafo, allora ` e facile convincersi che basta sostituire nella formula ricorsiva al min un max e tutte le considerazioni fatta continuano, in questo caso particolare di gra aciclici, a essere valide. Lalgoritmo per il calcolo dei cammini massimi su graci aciclici ` e allora il seguente

224

4 3

5 5

4 2 2 3 6 5
Figura 13.18: Albero dei cammini minimi

- f (1) := 0; J (1) := 1; - per j = 2, 3, 4, . . . , n 1, n ripeti la seguente serie di operazioni f (j ) := maxie (j ) {f (i) + pi,j }; J (i) := valore di i per cui si ` e vericato il massimo; Come esempio consideriamo sempre il grafo di gura 13.14 Si tratta di determinare lalbero dei cammini massimi tra il nodo 1 e tutti gli altri nodi. I vari passi dellalgoritmo portano alla seguente successione di valori f (i) e J (i) Passo 1 2 3 4 Valore di f (i) f (1) = 0 f (2) = 1 f (3) = max{3, 1 + 1} = 3 f (4) = max{1 + 3, 3 + 1} = 4 Valore di J (i) J (1) = 1 J (2) = 1 J (3) = 1 J (4) = 2 (oppure J (4) = 3)

225

Capitolo 14

Tecniche reticolari di programmazione delle attivit` a


I progetti di grandi dimensioni sono costituiti da pi` u attivit` a, che devono essere tutte completate anch e il progetto di cui fanno parte sia completato, ma che possono essere iniziate e svolte indipendentemente luna dallaltra, purch e sia rispettata una data sequenza. Queste condizioni sono caratteristiche di molti progetti di sviluppo e produzione, ad esempio nel settore aeronautico ed aereospaziale, o di costruzione, ad esempio nellingegneria civile, o di manutenzione di grossi sistemi; tutti progetti in cui il numero di attivit` a costituenti pu` o essere dellordine delle migliaia. La gestione di un progetto consiste nel coordinamento dellesecuzione delle varie attivit` a, unitamente al controllo dei tempi e dei costi di esecuzione. Poich e questo ` e evidentemente un problema di rilevante importanza economica, e a volte strategica, per esso sono state sviluppate, a partire dal 1958, alcune tecniche particolarmente ecaci, tra cui hanno assunto un ruolo importante il PERT (Program Evaluation and Review Technique) e il CPM (Critical Path Method). Il CPM, descritto in questo capitolo, si applica quando al tempo di esecuzione di ogni attivit` a pu` o essere attribuito un valore certo, pi` u o meno lungo a seconda di quanto si decide di spendere per lesecuzione dellattivit` a stessa; ` e esperienza comune che se si riduce il tempo di esecuzione di unattivit` a il suo costo aumenta e viceversa. Il CPM ha come scopo principale quello di pianicare e controllare i tempi di esecuzione di un progetto, rendendo minima la spesa complessiva, e trova larga applicazione in programmi riguardanti la manutenzione periodica di grossi impianti industriali, e lavori di produzione e costruzione per cui esiste una consolidata esperienza, cosicch e si possono ritenere note con esattezza le relazioni costo-tempo di esecuzione. Alla base del CPM ` e la rappresentazione del progetto mediante un grafo orientato, secondo opportune norme che costituiscono largomento iniziale di questo capitolo. Poich e in questo contesto, al grafo rappresentativo del progetto viene dato il nome di diagramma reticolare, le tecniche descritte in questo capitolo vengono chiamate tecniche reticolari di programmazione delle attivit` a.

226

14.1

Il diagramma reticolare di un progetto

In questa sezione spieghiamo come sia possibile associare ad un progetto un diagramma reticolare (cio` e un grafo orientato) e deniamo alcune grandezze fondamentali per lo studio dei tempi di completamento di un progetto.

14.1.1

La costruzione del diagramma

Alla base dei metodi reticolari di programmazione c ` e la costruzione del diagramma reticolare, che rappresenta la successione temporale e la reciproca dipendenza delle varie attivit` a che concorrono allesecuzione del progetto, attivit` a che devono essere completate prima che il progetto possa considerarsi eseguito. Il primo passo nella costruzione del diagramma reticolare consiste nellindividuazione e nellelencazione di tutte le attivit` a coinvolte nellesecuzione del progetto, con un livello di disaggregazione tale per cui le si possa considerare ciascuna distinta da tutte le altre. Segue una fase di rappresentazione graca, che d` a luogo al disegno di un grafo orientato in cui ogni attivit` a` e rappresentata da un arco o ramo i cui nodi estremi rappresentano, secondo la direzione del ramo, linizio e il termine dellattivit` a in questione. Pertanto nei diagrammi reticolari unattivita A ` e rappresentata come in gura 14.1, ove i nodi i e j rappresentano rispettivamente linizio e il termine dellattivit` a.

Figura 14.1: Rappresentazione graca dell attivit` aA


Naturalmente tra le varie attivit` a esistono delle precedenze, per cui, per ciascuna attivit` a, esistono altre attivit` a che devono essere completate prima che quella in questione possa avere inizio. Il caso pi` u semplice di precedenza quello indicato in gura 14.2a, ove lattivit` a A precede lattivit` a B, e il nodo j rappresenta il termine dellattivit` a A e linizio dellattivit` a B. In gura 14.2b ` e rappresentato il caso in cui lattivit` a A precede lattivit` a B che a sua volta precede lattivit` a C. Pu` o per` o anche avvenire che due attivit` a, la A e la B precedano una terza, la C, senza che tra A e B esista una relazione di precedenza: questo caso, in cui le attivit` aAeB possono essere svolte in parallelo, ` e rappresentato in gura 14.2c. In gura 14.2d abbiamo il caso in cui le due attivit` a B e C, tra cui non sussistono precedenze, sono entrambe precedute dallattivit` a A. Per esprimere il fatto che lattivit` a A precede lattivit` a B si utilizza la notazione A < B , per esprimere il fatto che lattivit` aB` e preceduta dallattivit` a A, si utilizza la notazione B>A. Nel disegnare il diagramma reticolare si utilizzano le seguenti regole fondamentali, alcune delle quali gi` a implicitamente enunciate: 1. Le attivit` a sono rappresentate dai rami del grafo. 2. Linizio di unattivit` a` e subordinato al completamento di tutte quelle che la precedono: in termini di diagramma reticolare ci` o signica che rami diretti verso un nodo rappresentano attivit` a da completare prima che abbiano inizio le attivit` a rappresentate da rami aventi origine nel nodo stesso. 3. La lunghezza dei rami o la loro forma non hanno signicato.

227

4. Due nodi non possono essere collegati da pi` u di un ramo. 5. Linizio del progetto ` e rappresentato da un nodo contrassegnato con zero. 6. Tutti i nodi sono numerati in modo che, se esiste un ramo diretto dal nodo i al nodo j , risulta i < j . 7. Il grafo pu` o avere un solo nodo iniziale e un solo nodo nale. Delle suddette regole, le prime tre tengono conto della logica interna del grafo; le altre quattro sono richieste dai metodi di analisi del grafo, metodi che utilizzano tabulazioni ed uso di calcolatori. Per quanto riguarda la regola 6, ricordiamo che una siatta numerazione ` e detta numerazione topologica e che nel capitolo sui cammini minimi abbiamo visto che ` e possibile dare una numerazione topologica ai nodi di un grafo orientato se e solo se il grafo ` e aciclico. Bisogna quindi chiedersi se il diagramma reticolare di un progetto ` e un grafo aciclico. La risposta ` e ovviamente positiva. Se infatti esistesse un ciclo (orientato) nel diagramma reticolare di un progetto, questo vorrebbe dire, per come abbiamo costruito il diagramma reticolare stesso, che esistono delle attivit` a che non possono iniziare prima di essere state concluse, e questo e ovviamente assurdo. La regola 4, inne, ha lo scopo di rendere univoca la corrispondenza tra coppie di nodi ed attivit` a, corrispondenza che potrebbe venire meno quando alcune attivit` a possono essere svolte in parallelo, come accade nel seguente esempio. Esempio 14.1.1 Consideriamo le attivit` a A, B, C, D, con le relazioni di precedenza A < B, C; B, C < D. Il grafo costruito ignorando la regola 4 ` e quello di 14.3, in cui alla coppia di nodi (1,2) non ` e associata in maniera univoca unattivit` a. Quando la regola 4 non ` e esplicitamente soddisfatta dal progetto, come accade nell Esempio 14.1.1, occorre ricorrere ad un articio che consiste nellintrodurre un attivit` a ttizia, cui va associato un tempo di esecuzione nullo: nel caso dellEsempio 2, introducendo lattivit` a ttizia X si ottiene il grafo della 14.4, che rispetta la regola 4. Con l introduzione di attivit` a ttizie ` e quindi possibile individuare ogni attivit` a mediante la coppia ordinata dei nodi estremi. Esempio 14.1.2 In gura 14.5 ` e rappresentato il caso di un progetto il cui completamento richiede lesecuzione di 9 attivit` a, tra cui sussistono le relazioni di precedenza: A < B,C; B < D, E; C < F; D < G; E,F < H; G,H < I.

Il progetto rappresentato in 14.5 verr` a pi` u volte riutilizzato a scopo esemplicativo; ad esso faremo pertanto riferimento con il nome di progetto P1. Un altro caso in cui ` e richiesta lintroduzione di unattivit` a ttizia si verica quando due attivit` a precedono entrambe una terza attivi` a, e una sola delle due ne precede una quarta. In questo caso ` e solo lintroduzione di unattivit` a ttizia che rende possibile la costruzione del grafo, come si vede nel prossimo esempio. Esempio 14.1.3 Un progetto prevede, tra la altre, le attivit` a B, C, D, E, che devono essere svolte rispettando le precedenze: B,C < D ; C < E . Dal diagramma di gura 14.6 si rileva come solo lintroduzione dellattivit` a ttizia Y rende possibile la rappresentazione di questa parte del progetto.

228

Nel diagramma reticolare ogni nodo (ad eccezione del primo e dellultimo) rappresenta il termine di alcune attivit` a e linizio di altre. Pertanto, in questo contesto, i nodi vengono anche chiamati eventi.

14.1.2

Il percorso critico

Abbiamo nora visto come sia possibile costruire un grafo che rappresenti lesecuzione di un progetto, dopo che il progetto stesso ` e stato decomposto in attivit` a, o fasi, di cui si siano analizzate le relazioni di precedenza. Non abbiamo per` o nora tenuto conto del tempo richiesto per lesecuzione delle varie attivit` a che compongono il progetto, e che ovviamente condizionano il tempo di esecuzione complessivo. Poich e i metodi reticolari di programmazione hanno, come gi` a detto, lo scopo di controllare i tempi di esecuzione delle attivit` a al ne di ottenere il rispetto del tempo di completamento del progetto, occorre aggiungere alla analisi qualitativa delle precedenze gi` a eettuata anche unanalisi quantitativa che determini i valori temporali corrispondenti agli eventi descritti dal grafo, e individui i limiti entro cui tali valori temporali possono variare senza pregiudicare il valore del tempo complessivo di completamento. Per effettuare questanalisi associamo ad ogni attivit` a (i, j ) un tempo di esecuzione tij . Nel CPM, il tempo di esecuzione tij ` e assunto come variabile certa. In ogni progetto esiste un certo insieme di attivit` a che sono di particolare importanza ai ni della determinazione del tempo di completamento dellintero progetto, nel senso che se si verica un ritardo nel completamento di una di queste attivit` a, si verica un ritardo anche nel completamento del progetto. Altre attivit` a invece sono meno importanti, nel senso che possono anche subire un ritardo, entro certi ` evidente l importanza di distinguere tra questi limiti, senza che lintero progetto ne risenta. E due tipi di attivit` a, cos` come quella di determinare il limite entro cui il completamento di ogni attivit` a del secondo tipo pu` o essere ritardato. Quanto esposto in questo paragrafo serve proprio a consentire questa analisi. Supponiamo dunque che ad ogni attivit` a (i, j ) sia associato il tempo di esecuzione tij ; per le attivit` a ttizie il tempo di esecuzione ` e ovviamente nullo. Denizione 14.1.4 (Tempo minimo di raggiungimento del nodo i) Si denisce tempo minimo di raggiungimento del nodo i, e si indica con ti , il minimo tempo entro cui possono essere terminate tutte le attivit` a aerenti al nodo i. Data la denizione precedente viene del tutto naturale denire il tempo di completamento minimo del progetto nel seguente modo. Denizione 14.1.5 (Tempo minimo di completamento del progetto) Si denisce tempo minimo di completamento dellintero progetto, e si indica con T , il tempo minimo di raggiungimento del nodo nale T = tf . In base alle regole di costruzione del diagramma reticolare di un progetto ` e facile convincersi che il tempo minimo di raggiungimento di un nodo i coincide con il peso del cammino massimo dal nodo iniziale al nodo i, dove i pesi degli archi sono dati dalle durate tij delle attivit` a che essi rappresentano. Poich e il diagramma reticolare ` e aciclico e i nodi sono gi` a numerati in modo topologico, ` e immediato applicare l algoritmo per i cammini massimi su gra aciclici al ne di calcolare i tempi di raggiungimento minimi. Esempio 14.1.6 (Esempio14.1.1 continua) Consideriamo il diagramma reticolare del progetto P1, e associamo alle attivit` a A, B, ..., I i seguenti tempi di esecuzione, espressi in giorni lavorativi:

229

tempo tempo tempo tempo tempo tempo tempo tempo tempo

di di di di di di di di di

esecuzione esecuzione esecuzione esecuzione esecuzione esecuzione esecuzione esecuzione esecuzione

di di di di di di di di di

A: t01 = 5 B: t12 = 7 C: t13 = 3 D: t24 = 4 E: t25 = 5 F: t25 = 6 G: t46 = 2 H: t56 = 8 I : t67 = 2.

Nella gura 14.1.2 i tempi di esecuzione delle attivit` a sono stati associati ai rami del diagramma reticolare del progetto. Posto t0 = 0, possiamo calcolare per i successivi nodi i tempi minimi di raggiungimento, espressi in giorni, utilizzando lalgoritmo dei cammini massimi. per il nodo 1, t1 = t0 + t01 = 0 + 5 = 5 per il nodo 2, t2 = t1 + t12 = 5 + 7 = 12 per il nodo 3, t3 = t1 + t13 = 5 + 3 = 8 per il nodo 4, t4 = t2 + t24 = 12 + 4 = 16 per il nodo 5, t5 = max(t2 + t25 , t3 + t35 ) = max(12 + 5, 8 + 6) = 17 per il nodo 6, t6 = max(t4 + t46 , t5 + t56 ) = max(16 + 2, 17 + 8) = 25 per il nodo 7, t7 = t6 + t67 = 25 + 2 + 27; avremo inoltre per il tempo minimo di completamento del progetto, T = t7 = 27 giorni. Oltre al tempo minimo di completamento dellintero progetto, ` e opportuno introdurre anche la nozione di tempo minimo di completamento per ogni attivit` a. Indichiamo le attivit` a con (i, j ). Ovviamente unattivit` a pu` o avere inizio, al pi` u presto, dopo il tempo ti dallinizio dellesecuzione del progetto, in quanto perch e lattivit` a possa avere inizio deve essere stato raggiunto il nodo i; di conseguenza se lattivit` a richiede un tempo di esecuzione pari a tij , non potr` a essere completata prima di un tempo pari a ti + tij . Possiamo quindi dare la denizione seguente: Denizione 14.1.7 (Tempo minimo di completamento dellattivit` a) Si denisce tempo minimo di completamento dellattivit` a (i, j ), e si indica con Cij , il valore Cij = ti + tij . Esempio 14.1.8 (Esempio 14.1.1 continua) Consideriamo ancora il progetto P1. Per le attivit` a del progetto, tenendo conto dei tempi di raggiungimento dei nodi calcolati nellEsempio 5, abbiamo i seguenti tempi minimi di completamento espressi in giorni: per lattivit` a A: C01 = t0 + t01 = 5 per lattivit` a B: C12 = t1 + t12 = 5 + 7 = 12 per lattivit` a C: C13 = t1 + t13 = 5 + 3 = 8 per lattivit` a D: C24 = t2 + t24 = 12 + 4 = 16 per lattivit` a E: C25 = t2 + t25 = 12 + 5 = 17 per lattivit` a F: C35 = t3 + t35 = 8 + 6 = 14 per lattivit` a G: C46 = t4 + t46 = 16 + 2 = 18 per lattivit` a H: C56 = t5 + t56 = 17 + 8 = 25 per lattivit` a I: C67 = t6 + t67 = 25 + 2 = 27. Nelle tecniche reticolari di programmazione sono di fondamentale importanza le denizioni di attivit` a critica e di percorso critico che ora diamo.

230

Denizione 14.1.9 (Attivit` a critica) Sia T il tempo minimo di completamento di un progetto, corrispondente a un insieme {tij } di valori pressati dei tempi di esecuzione delle singole attivit` a. Unattivit` a (h, k ) viene detta attivit` a critica se un variazione positiva comunque piccola ma non nulla del suo tempo di esecuzione comporta una variazione della stessa entit` a nel tempo minimo di completamento del progetto; e cio` e, unattivit` a (h, k ) ` e critica se, sostituito thk con thk + t , con t = 0 il tempo minimo di completamento del progetto diventa T + t, per qualunque valore positivo di t . Denizione 14.1.10 (Percorso critico) Dato il diagramma reticolare di un progetto, si dice percorso critico qualsiasi cammino (orientato) dal nodo iniziale al nodo nale in cui tutti i rami corrispondono ad attivit` a critiche.

Esempio 14.1.11 (Esempio 14.1.1 continua) Nel progetto P1 lattivit` aE` e critica: infatti se si pone t25 = 5 + t, si ottiene per i tempi di raggiungi mento dei nodi 5, 6, 7 : per il nodo 5, t5 = max(t2 + t25 , t3 + t35 ) = max(12 + 5 + t, 8 + 6) = 17 + t per il nodo 6, t6 = max(t4 + t46 , t5 + t56 ) = max(16 + 2, 17 + t + 8) = 25 + t per il nodo 7, t7 = t6 + t67 = 25 + t + 2 = 27 + t; invece lattivit` a F non critica; infatti posto t35 = 6 + t , si ottiene per il tempo di raggiungimento del nodo 5 : t5 = max(t2 + t25 , t3 + t35 ) = max(12 + 5, 8 + 6 + t) = 17 e cio` e lo stesso valore di prima, almeno ntanto chet non supera i 3 giorni; e ovviamente se t5 non varia, non variano neanche i tempi minimi di raggiungimento dei nodi successivi. Procedendo nello stesso modo con le altre attivit` a, possiamo constatare che anche A, B, H, I sono attivit` a critiche; e quindi il percorso individuato dai nodi (0, 1, 2, 5, 6, 7) un percorso critico .

Domanda 3 Con riferimento al progetto P1, supponiamo che il tempo di esecuzione dellattivit` a H passi da 8 a 10 giorni. Come varia il tempo minimo di completamento del progetto? Domanda 4 Sempre con riferimento al progetto P1, supponiamo ora che il tempo di esecuzione dellattivit` a G passi da 2 a 6 giorni. Come varia il tempo minimo di completamento del progetto?

Domanda 5. In un diagramma reticolare di programmazione pu` o esistere pi` u di un percorso


critico ? La determinazione dei percorsi critici ` e evidentemente di fondamentale importanza nelle tecniche reticolari di programmazione. Infatti le attivit` a critiche sono quelle su cui pi` u stretto deve essere il controllo di chi gestisce lesecuzione del progetto, nei casi in cui un ritardo dellesecuzione complessiva comporta una penalit` a, che pu` o essere sia economica, sia di immagine. Vediamo allora come sia possibile determinare i percorsi e le attivit` a critiche, con un procedimento pi` u sistematico di quello adottato nellEsempio 7. Tale determinazione si basa sul calcolo di due grandezze che contraddistinguono ogni nodo: la prima ` e il tempo minimo di raggiungimento, gi` a denito; la seconda ` e il tempo massimo di raggiungimento, che ora deniamo.

231

Denizione 14.1.12 (Tempo massimo di raggiungimento del nodo) Si denisce tempo massimo di raggiungimento del nodo i, e si indica con Ti , il massimo tempo entro cui tutte le attivit` a aerenti al nodo i devono essere terminate, pena un aumento del tempo minimo di esecuzione del progetto. Sulla base delle denizioni date, si comprende che per il nodo nale f risulta Tf = tf . Per eettuare il calcolo del tempo massimo di raggiungimento di un nodo intermedio i, supponiamo di avere gi` a disponibili i tempi massimi di raggiungimento di tutti i nodi successori di i. Sia k uno dei nodi successori di i; anch e tutte le attivit` a aerenti al nodo k siano terminate entro il tempo Tk ` e necessario in particolare che lattivit` a (i, k ) non inizi dopo listante Tk tik , e cio` e che Ti , tempo massimo di raggiungimento del nodo i, non sia superiore a Tk tik . Poich e tale condizione deve valere per tutti i nodi successori del nodo i, abbiamo che Ti = min(Tk tik ),
k>i

ove la ricerca del minimo va fatta solo per quegli indici k > i per cui esiste un ramo (i, k ) . Esempio 14.1.13 (Esempio 14.1.1 continua) Considerato il progetto P1, determiniamo i tempi massimi di raggiungimento dei nodi. Posto T7 = t7 = 27, otteniamo : per il nodo 6, T6 = T7 t67 = 27 2 = 25 per il nodo 5, T5 = T6 t56 = 25 8 = 17 per il nodo 4, T4 = T6 t46 = 25 2 = 23 per il nodo 3, T3 = T5 t35 = 17 6 = 11 per il nodo 2, T2 = min(T4 t24 , T5 t25 ) = min(23 4, 17 5) = 12 per il nodo 1, T1 = min(T2 t12 , T3 t13 ) = min(12 7, 11 3) = 5 per il nodo 0, T0 = T1 t01 = 5 5 = 0.

Domanda 6. Risulta sempre T0 = 0, come avviene nellEsempio 8?


Data unattivit` a (i, j ) consideriamo ora la dierenza Tj Cij tra il tempo massimo di raggiungimento del nodo j e il tempo minimo di completamento dellattivit` a in questione. Questa dierenza fornisce evidentemente la misura di quanto tempo pu` o essere ritardato il completamento dellattivit` a (i, j ) senza che si determini un aumento del tempo minimo di completamento dellintero progetto. Abbiamo in proposito la denizione seguente: Denizione 14.1.14 (Tempo di slittamento di unattivit` a) Si denisce tempo di slittamento, o margine di tempo dellattivit` a (i, j ) il valore Tj Cij che indica di quanto tempo pu` o essere ritardato il completamento dellattivit` a (i, j ) senza che si determini un aumento del tempo minimo di completamento dellintero progetto. Esempio 14.1.15 (Esempio 14.1.1 continua) Determiniamo i tempi di slittamento delle attivit` a del progetto P1. Otteniamo: per lattivit` a A : T1 C01 = 5 5 = 0 per lattivit` a B : T2 C12 = 12 12 = 0 per lattivit` a C : T3 C13 = 11 8 = 3 per lattivit` a D : T4 C24 = 23 16 = 7 per lattivit` a E : T5 C25 = 17 17 = 0

232

per lattivit` a F : T5 C35 = 17 14 = 3 per lattivit` a G : T6 C46 = 25 18 = 7 per lattivit` a H : T6 C56 = 25 25 = 0 per lattivit` a I : T7 C67 = 27 27 = 0 Si verica immediatamente che il tempo di slittamento dellattivit` a (i, j ) ` e anche dato dallespressione Tj ti tij . Sulla base delle denizioni date, possiamo facilmente vericare le seguenti propriet` a: a) Tutte la attivit` a (i, j ) il cui tempo di slittamento Tj Cij ` e nullo sono critiche . b) Le attivit` a critiche individuano uno o pi` u percorsi critici e non esistono attivit` a critiche che non appartengono ad un percorso critico. Se ad ogni ramo del grafo associamo una lunghezza pari al tempo di esecuzione dellattivit` a corrispondente, ` e anche immediato convincersi che vale il seguente teorema. Teorema 14.1.16 I percorsi critici sono tutti e soli i cammini di lunghezza massima tra il nodo iniziale e quello nale del diagramma reticolare. Esempio 14.1.17 (Esempio 14.1.1 continua) Per il progetto P1 le caratterizzazioni a) e b) sono di verica immediata, tenendo conto di quanto gi` a visto negli Esempi 7 e 9 . Per quel che riguarda il Teorema 14.1.16 il grafo di gura 14.1.2 presenta i tre cammini (0, 1, 2, 4, 6, 7), (0, 1, 2, 5, 6, 7) , (0, 1, 3, 5, 6, 7) di lunghezza pari rispettivamente a 20, 27, 24 ; e infatti il secondo cammino corrisponde al percorso critico.

Ai ni della determinazione delle attivit` a critiche e dei percorsi critici ` e quindi basilare saper calcolare, per ogni nodo i, i corrispondenti tempi minimo e massimo di raggiungimento, ti e Ti . Infatti note queste grandezze, e i tempi di esecuzione delle attivit` a, ` e possibile calcolare anche il tempo minimo di completamento e il tempo di slittamento delle varie attivit` a. Abbiamo gi` a visto in precedenza come calcolare i tempi minimi di raggiungimento, quindi passiamo ad illustrare una semplice tecnica per calcolare i tempi massimi di raggiungimento. Il calcolo di Ti per ogni nodo i pu` o essere eettuato con un algoritmo molto semplice che, assumendo Tf = tf , procede per valori di i decrescenti. Infatti, se supponiamo noti tutti i tempi di raggiungimento dei nodi k con k > i, la denizione stessa di Tj , massimo tempo entro cui deve essere raggiunto il nodo i pena un aumento del tempo di completamento del progetto, porta alla seguente formula Ti = min(Tk tik ),
k>i

ove la minimizzazione va fatta solo rispetto agli indici k > i per cui esiste unattivit` a (i, k ). Sfruttando questa formula, e tenendo conto che, sempre per la denizione, risulta Tf = tf , possiamo allora dare un semplice algoritmo per il calcolo dei tempi di raggiungimento massimi. 1) Si pone i = f e Tf = tf ; 2) si sostituisce i con i 1; 3) si calcola: Ti = mink>i (Tk tik ), ove la minimizzazione va fatta solo rispetto agli indici k > i per cui esiste unattivit` a (i, k );

233

4) si confronta i con 0 : se i > 0 si torna al passo 2); se i = 0 stop. E opportuno notare che se siamo interessati a determinare solo il tempo di completamento minimo e, eventualmente, un percorso critico, il metodo pi` u rapido ` e quello di applicare un algoritmo per la determinazione dei percorsi di lunghezza massimi. Tuttavia il procedimento indicato in questo paragrafo consente di individuare tutti i percorsi critici e una serie di percorsi sottocritici, in ordine crescente di distanza dalla criticit` a, la cui conoscenza pu` o essere utile nella pianicazione dei lavori. Se infatti si ordinano le attivit` a del progetto secondo il loro tempo di slittamento, abbiamo come gi` a detto che le attivit` a critiche sono quelle con tempo di slittamento nullo; le rimanenti attivit` a individuano percorsi non critici, ma tanto pi` u vicini ad essere critici quanto pi` u i tempi di slittamento delle attivit` a costituenti tali percorsi sono ridotti. Quindi ordinare le attivit` a secondo il loro tempo di slittamento consente di individuare su quali attivit` a opportuno tenere il controllo pi` u stretto nel corso dellesecuzione del progetto. Esempio 14.1.18 Un progetto consiste nellesecuzione di una serie di attivit` a indicate con A, B, ..., T con le seguenti relazioni di precedenza: A, B, C possono iniziare immediatamente; D, E > A; F > B; G, H > D; I > F, G; J,K > C; M,L > J; N > K,L; O > M,N; P > H,I,O; R,Q> P; S > Q; T > R,S . Costruiamo il diagramma reticolare del progetto, numerando i nodi in modo che se il ramo (i, j ) rappresenta unattivit` a, risulta i < j . Utilizzando le regole prima elencate, otteniamo il grafo di gura 14.8. Associamo alle attivit` a A, B, ..., T i seguenti tempi di esecuzione (giorni): A : 5; B : 9; C : 14; D : 4; E : 3; F : 10; G : 6; H : 12; : 10; J : 3; K : 4; L : 5; M : 5; N : 8; O : 18; P : 3; Q : 6; R : 13; S : 5; T : 7. Eettua lanalisi del diagramma reticolare del progetto, determinando il tempo minimo e massimo di raggiungimento di ogni nodo, il tempo minimo di completamento e il tempo di slittamento di ogni attivit` a, e il percorso critico.

14.2

Il CPM

Il CPM una tecnica che tiene conto, oltre che del tempo di esecuzione delle attivit` a di un progetto, anche del loro costo in funzione del tempo di esecuzione; e consente di pianicare la riduzione del tempo di completamento di un progetto con il minimo aumento di costo. Nel CPM si assume che il tempo eettivamente richiesto per lesecuzione di ogni attivit` a coincida sempre con certezza con quello programmato, per cui si escludono le aleatoriet` a presenti invece nel PERT. Alla base del CPM c losservazione che, nella gran parte dei casi, il costo di un attivit` a dipende fortemente dal tempo impiegato per la sua esecuzione. Data unattivit` a (i, j ), nel CPM si assume che il costo di esecuzione cij sia legato al tempo di esecuzione tij da una relazione lineare del tipo cij = kij tij hij , aij tij bij ,

ove kij e hij sono opportune costanti positive e aij e bij rappresentano rispettivamente il valore minimo e il valore massimo ammissibili del tempo di esecuzione tij la relazione costo-tempo ` e rappresentata gracamente nella gura 14.9. Il fatto che se si diminuisce il tempo di esecuzione di unattivit` a il suo costo aumenta ` e facilmente comprensibile, tenuto conto del maggiore impegno di risorse che in genere ` e richiesto, e trova conferma nellesperienza corrente.

234

Sulla base di quanto abbiamo visto nella prima sezione, si comprende che, se si vuole ridurre il tempo di completamento di un progetto, ` e superuo agire sui tempi di esecuzione di ` anche superuo ridurre i tempi di esecuzione di attivit` a non appartenenti a percorsi critici. E attivit` a critiche oltre il valore per cui diventano critici altri percorsi, che in tal caso verrebbero a determinare il tempo di completamento del progetto; in altre parole se si ha pi` u di un percorso critico, per ottenere una riduzione del tempo di completamento del progetto occorre ridurre contemporaneamente i tempi di tutti i percorsi critici. Uno degli scopi del CPM ` e appunto quello di individuare le attivit` a che consentono una riduzione del tempo di completamento del progetto al costo minore. Concettualmente la procedura del CPM ` e la seguente: sia {tij } una scelta dei tempi di esecuzione delle singole atticit` a , con aij tij bij e sia ij il margine disponibile per la riduzione del tempo di esecuzione della generica fase: ij = tij aij . Individuiamo il percorso critico, e supponiamo che ne esista uno solo. Determiniamo poi l attivit` a appartenente al percorso critico (che ` e quindi critica) su cui ` e possibile guadagnare tempo al minimo costo unitario. Questa attivit` a` e quella che ha il valore pi` u piccolo di hij tra quelle con margine diponibile non nullo, cio` e` e l attivit` a (p, q ) per cui risulta: hp,q = min{hij : (i, j ) percorso critico, ij > 0}. ` possibile cos` E , agendo sull attivit` a (p, q ), eettuare una prima riduzione del tempo di esecuzione del progetto al costo minimo. L entit` a di questa riduzione ` e limitata da un lato dal margine disponibile pq (non possiamo scegliere un valore di ppq minore di aij ), e dall altro dalla condizione che non diventi critico un altro percorso. Esempio 14.2.1 (Esempio 14.1.1, continua) Consideriamo il progetto P1, e ammettiamo che per le attivit` a A, B, ..., I valga una relazione costo-tempo di esecuzione del tipo rappresentato in gura 14.9, con i parametri aij , bij e hij dati dalla seguente tabella : A 3 5 3 B 3 7 2 C 1.5 3 6 D 3 4 4 E 3.5 5 3.5 F 5 6 1 G 1 2 3 H 7 8 1 I 1.5 2 4

aij bij hij

ove hij ` e dato in 105 Lire/giorno. Si assuma che sia tij = bij ; questo corrisponde ai tempi di esecuzioni dell esempio 5. Sappiamo gi` a (Esempio 14.1.11) che con questi tempi di esecuzione il percorso critico ` e unico, ` e dato da (A, B, E, H, I) e il tempo minimo di completamento del progetto ` e tf = 27; inoltre gli altri due cammini possibili, (A, B, D, G, I) e (A, C, F, H, I) hanno una lunghezza di 20 e 24 rispettivamente. Supponiamo allora di voler ridurre la durata del progetto al costo minimo. Dobbiamo agire sulle attivit` a critiche, cio` a A, B, E, H o I. Tra queste attivit` a, quella che presenta il pi` u

235

basso valore di hij ` e H, per cui risulta h56 = 1. Il margine disponibile per la riduzione di H ` e 56 = t56 a56 = 8 7 = 1 . Quindi H pu` o essere ridotto tutt al pi` u di 1. Se lo riducessimo di pi` u scenderemmo sotto la soglia inferiore a56 . Siccome nessun altro percorso diventa critico, possiamo in eetti ridurre la durata di H da 8 a 7. La lunghezza del percorso critico ` e ora 26. Notiamo che riducendo la durata di H abbiamo ridotto anche la lunghezza del percorso (A, C, F, H, I), che passa da 24 a 23. La spesa sostenuta per questa riduzione ` e data da h56 t56 = 1 1 = 1. Se siamo soddisfatti della durata, possiamo fermarci. Supponiamo invece di voler ridurre ulteriormente il tempo di completamento del progetto. Consideriamo di nuovo le attivit` a del percorso critico. H non pu` o pi` u essere ridotta perch` e il suo margine ` e nullo. L attivit` a del percorso critico con un hij pi` u piccolo, tra quelle con un margine di riduzione non nullo ` e ora B. Il margine disponibile di riduzione di B ` e 12 = t12 a12 = 7 3 = 4. Questo margine non ` e per` o interamente sfruttabile. Infatti notiamo che se riduciamo la durata di B di tre giorni la durata del percorso critico diventa 23, pari a quella di (A, C, F, H, I). Quindi se riduciamo la durata di B da 7 giorni a 4 giorni, abbiamo due percorsi critici, (A, B, E, H, I) e (A, C, F, H, I) della durata di 23 giorni. Ogni ulteriore riduzione della durata della sola attivit` a B sarebbe a questo punto ininuente sulla durata della progetto, che sarebbe determinata, a questo punto, dal percorso (A, C, F, H, I). Riduciamo allora, per il momento, la durata di B da 7 a 4 giorni. A questo punto la durata del progetto ` e 23 giorni e la spesa sostenuta ` e h56 t56 + h12 t12 = 1 1 + 2 3 = 7. Se i percorsi critici sono pi` u di uno, allora la riduzione di tf si ottiene riducendo contemporaneamente, e della stessa quantit` a, i tempi di esecuzione di attivit` a situate su tutti i percorsi critici, in modo da ridurra l attivit` a di tutti i percorsi critici, della stessa misura. Esempio 14.2.2 (Esempio 14.2.1, continua) Riprendiamo l esempio 14.2.1, e supponiamo di voler ridurre il tempo di completamento a 22 giorni dai 23 a cui eravamo arrivati. Siccome abbiamo due percorsi critici,(A, B, E, H, I) e (A, C, F, H, I), dobbiamo ridurre la durata dei due percorsi al costo unitario minore possibile. In questo caso si vede facilmente che sono possibili due soluzioni. Possiamo ridurre di un giorno la durata dall attivit` a A, che f` a parte di tutti e due i percorsi critici, al costo unitario di h01 = 3. In alternativa, possiamo ridurre, sempre di un giorno, l attivit` a B, che appartiene al percorso (A, B, E, H, I), e quella F, che appartiene al percorso (A, C, F, H, I), al costo unitario h12 + h35 = 2 + 1 = 3 uguale al precedente. La situazione pu` o anche essere pi` u complicata. Per esempio ` e necessario tener presente che quando si riducono i tempi di pi` u attivit` a contemporaneamente, pu` o accadere che alcuni percorsi subiscano una riduzione multipla. Il costo complessivo minimo per la riduzione del tempo di completamento, si otterr` a in tal caso bilanciando, se possibile, questa riduzione multipla con un opportuno aumento del tempo delle attivit` a per cui questo ` e possibile senza inuenzare tf . ` anche possibile dare una procedura pi` E u sistematica per determinare quali devono essere i tempi di esecuzioni da assegnare alle varie attivit` a per completare l esecuzione di un dato progetto in un tempo pressato e a costo minimo. Questa procedura costituisce uninteressante applicazione della Programmazione Lineare. Infatti, tenendo conto di quanto detto sui costi di esecuzione delle attivit` a, avremo che il costo

236

totale dellesecuzione del progetto ` e dato dalla somma dei costi delle attivit` a, e cio` e dalla cij =
ij ij

kij
ij

tij hij

con aij tij bij per ogni attivit` a (i, j ), e dove le sommatorie si intendono estese alle coppie di indici(i, j ) cui corrisponde un ramo nel diagramma reticolare del progetto. Inoltre abbiamo che il valore pi` u piccolo del tempo minimo di completamento del progetto, compatibile con le limitazioni sui tempi di esecuzione delle singole attivit` a, pu` o essere ottenuto prendendo per tutte le attivit` a tij = aij ; denotiamo con Tmin questo valore. Analogamente il valore pi` u grande del tempo minimo di completamento del progetto, che denotiamo con Tmax , pu` o essere ottenuto prendendo per tutte le attivit` a tij = bij . Sia ora T un valore compreso tra Tmin e Tmax : Tmin T Tmax e supponiamo di volere completare il progetto entro il tempo T, con il minimo costo complessivo. Tenendo conto del fatto che nella formula del costo il primo termine ij kij rappresenta una costante, e il secondo termine appare con un segno negativo, minimizzare il costo complessivo equivale a massimizzare la funzione obiettivo z = ij tij hij . A questo punto possiamo scrivere per il CPM la formulazione come problema di Programmazione Lineare, rispetto alle variabili ti e tij , nel seguente modo: max
ij tij hij

ti + tij tj 0 per ogni (i, j ) tij bij tij aij tf = T t0 = 0 ti , tij 0. La soluzione di questo problema fornisce i valori tij dei tempi di esecuzione delle attivit` a cui corrisponde, al minimo costo complessivo, un tempo minimo di completamento del progetto pari a T . Per quel che riguarda le variabili ti , c` e da osservare che i valori forniti dalla soluzione del problema di programmazione lineare coincidono con i tempi minimi di raggiungimento dei nodi solo se per ogni indice j esiste almeno un indice i per cui il vincolo ti + tij tj 0 soddisfatto con il segno di uguaglianza, come si comprende facilmente ricordando la procedura per il calcolo dei tempi minimi di raggiungimento dei nodi. Se questa condizione non soddisfatta, i tempi minimi di raggiungimento dei nodi possono essere determinati con la procedura abituale, a partire dai valori tij forniti dalla soluzione del problema di programmazione lineare. Per quel che riguarda il problema di programmazione lineare del CPM, ` e opportuno tenere presente che, data la sua particolarit` a, per esso esistono algoritmi specici pi` u ecienti di quello del ` anche da osservare che il problema formulato pu` simplesso. E o essere risolto pi` u volte, in funzione del parametro T, con opportuni algoritmi che consentono di ridurre al minimo i calcoli necessari (Programmazione Lineare Parametrica); si ottiene una relazione costo complessivo minimo - tempo minimo di completamento che data gracamente da una spezzata del tipo di quella rappresentata in gura 14.2. per ogni (i, j ) per ogni (i, j )

237

Esercizio 1. Un progetto P2 comporta lesecuzione delle 7 attivit` a A, B, C, D, E, F, G, tra


cui sussistono le relazioni di precedenza: A < B,C; C < D,E; D,E < F; B,F < G . Associamo alle attivit` a i seguenti tempi di esecuzione, espressi in settimane: A, 3 settimane; B, 2; C, 1; D, 4 ; E, 1; F, 2; G. Costruire il diagramma reticolare del progetto. Determinare il tempo minimo di completamento del progetto. Determinare il percorso critico per il progetto P2 . Determina i tempi massimi di raggiungimento dei nodi del progetto P2. Determina i tempi di slittamento per le attivit` a del progetto P2.

238

a)

A< B

b)

A<B<C

A k B C l A,B < C

j c) A k

B i j C

A < B,C

Figura 14.2: Rappresentazione graca delle regole di precedenza

B 0 A 1 C
Figura 14.3: Una coppia di nodi che non individua univocamente un attivit` a

239

1 C

X 2

Figura 14.4: Introduzione di un attivit` a ttizia

4 D 0 A 1 B 2 E C F 3 H 5 G 6 I 7

Figura 14.5: Diagramma reticolare del progetto P1

Figura 14.6: Introduzione dell attivit` a ttizia Y 240

4 A (5) B (7) C F (6) 3 D (4) 2 E (5) (3) 5 H (8) G (2) 6 I (2)

Figura 14.7: Tempi di esecuzione delle attivit` a del progetto P1

1
A B 9 14 C 5

D 4

4
G 6 H 12 I 10 M

F 10

R 13 N 8 O 18 P 3 Q 6 S 5 T 7

J 3

6
K 4

L 5

10

11

12

13

Figura 14.8: Diagramma reticolare del progetto P3

241

ci j ki j

tij ai j bi j

Figura 14.9: Relazione costo-tempo per l esecuzione dell attivit` a (i, j )

ci j

T min

T max

Figura 14.10: Relazione tipica tempo minimo di completamento - costo minimo di un progetto

242

Capitolo 15

Uso di Excel per lanalisi e soluzione di Modelli di Programmazione Matematica


15.1 Introduzione

La soluzione graca di problemi di ottimizzazione che abbiamo visto nel Capitolo 3 pu` o essere utilizzata solo nel caso in cui il numero di variabili sia due. I problemi applicativi hanno normal` necessario utilizzare sistemi di calcolo automatici per trattare sia mente pi` u di due variabili. E grandi quantit` a di dati che di operazioni logico-aritmetiche. Esistono molti software per risolvere problemi di Programmazione Matematica a diversi livelli di complessit` a. Alcuni prodotti software integrano anche linguaggio di modellizzazione con il/i solutore/i in un unico pacchetto commerciale. Si tratta di prodotti di ottimizzazione comprensivi di tutto lambiente di calcolo, cosiddetti sistemi di modellizzazione stand-alone che sono in grado di fornire linterfaccia completa tra i dierenti livelli di formulazione, soluzione, e analisi della modellizzazione. I sistemi di tipo stand-alone tendono ad essere i pi` u vantaggiosi a livello di costruzione di prototipo, quando il lavoro ` e incentrato sulla costruzione di un modello accettabile e nel dimostrare che lapproccio ` e sucientemente promettente per giusticare investimenti maggiori. In questo modo per` o si incoraggia fortemente (quando non ` e obbligato) luso di un particolare solutore. Quindi ` e una scelta ragionevole in situazioni in cui la velocit` a e la versatilit` a non sono le questioni pi` u importanti. Questo ` e spesso il caso di sistemi altamente specializzati, in cui la qualit` a dellinterfaccia ` e laspetto fondamentale e linsieme di problemi che il solutore deve trattare appartengono ad una classe relativamente stretta e ben denita. Rientrano in questa categoria alcuni dei pi` u elementari linguaggi di modellizzazione cos` come i prodotti di ottimizzazione inseriti in programmi di foglio elettronico (spreadsheet). In questo capitolo utilizzeremo Microsoft c Oce Excel 2003 e il suo solutore Excel Solver (http://www.solver.com/).

243

15.2

Uso di fogli elettronici per la descrizione di un modello matematico

Il primo passo per lutilizzo di fogli elettronici per lanalisi e la soluzione di un problema di ottimizzazione richiede la conversione della formulazione del problema in un foglio elettronico utilizzabile da opportuno software. Si tratta di rappresentare i dati, le variabili, le funzioni di vincolo, e la funzione obiettivo. Ci sono diversi modi di organizzare un foglio elettronico per rappresentare un modello di ottimizzazione. In generale per` o` e consigliabile seguire uno stesso schema di base che consente una immediata visualizzazione ed individuazione dei parametri e dei dati. In particolare divideremo la costruzione del foglio elettronico in quattro sezioni: Dati di ingresso, Variabili di decisione, Funzione obiettivo, Vincoli. A titolo esemplicativo, consideriamo il semplice modello di capital budgeting dellesempio 1.4.1 del capitolo ??, la cui formulazione matematica ` e: max (20x1 + 5x2 + 10x3 ) 750x1 + 200x2 + 800x3 1000 xi {0, 1} i = 1, 2, 3.

Inserimento dati di ingresso. Si tratta di inserire in una tabella Excel i valori numerici
che sono utilizzati nel modello. I dati non devono essere posti necessariamente in una posizione particolare nella tabella, ma nel seguito, per identicarli in modo facile, sono stati posizionati il pi` u possibile nella parte alta a sinistra del foglio elettronico. In alcuni casi pu` o essere utile deviare da questa convenzione, quando alcune posizioni sono pi` u naturali ed intuitive. Le celle di una tabella excel sono individuate dalla posizione di colonna (indicata da una lettera dellalfabeto) e di riga (un numero).

Figura 15.1: Dati relativi al problema di Capital Budgeting.


In gura 15.1 ` e riportato il le Excel relativo allinserimento dei primi dati di Capital Budgeting. Per ciascun progetto 1,2,3 sono riportati i valori di investimento (celle B3, C3, D3), ovvero i valori dei coecienti dei vincoli, e i guadagni (celle B4, C4, D4), ovvero i coecienti della funzione obiettivo. Sono state incluse delle caselle di commento (le prime due righe e la prima colonna) che consentono di identicare facilmente di che tipo di dato si tratta (investimento/guadagno relativo

244

al progetto 1/2/3). Se cambiano i dati (costi, guadagni), ` e necessario modicare questa parte del le Excel. Si pu` o notare che non ` e stato ancora inserito il valore del dato relativo al budget. In eetti, questo valore ha una posizione pi` u naturale come si vedr` a nel seguito. In gura 15.2 ` e riportato il le Excel relativo al modello completo, che descriviamo in dettaglio.

Celle variabili (Variabili di decisione). Le celle variabili rappresentano il valore delle


variabili di decisione del modello. Al momento dellutilizzo del solutore, queste celle sono considerate come incognite e come output conterranno il valor ottimo della soluzione. Nel nostro ` necessario esempio le variabili di decisione x1 , x2 , x3 sono assegnate alle celle B7, C7, D7. E assegnare un valore iniziale a queste celle per poterle utilizzare. Nel nostro esempio x1 = 0=B7, x2 = 1=C7, x3 = 0=D7. Osserviamo che nellesempio di capital budgeting le variabili possono assumere solo valori interi (in particolare 0,1). In questa fase di rappresentazione del modello in una tabella excel, non ` e possibile dare indicazioni di questo tipo. ` utile inserire delle celle di tipo descrittivo sopra le celle variabili. Ad esempio, noi abbiamo E indicato il nome della variabile. Inoltre le celle variabili sono evidenziate con un colore azzurro (vedi gura 15.2). Il colore non ha alcun ruolo nel foglio elettronico se non stilistico. Evidenziare le celle usando un colore diverso (o circondandole con una linea pi` u evidente), rende ilfoglio elettonico pi` u semplice da leggere.

Celle vincoli. Si tratta di creare delle celle che contengano le formule che deniscono il
left hand side (l.h.s.) dei vincoli. Il right hand side =r.h.s del vincolo DEVE essere un valore numerico e deve essere contenuto in unaltra cella. Nel nostro esempio il valore del l.h.s. del vincolo, cio` e la formula 8x1 + 6x2 + 5x3 , ` e inserito in cella B 10. Poich e il valore del l.h.s deve essere confrontato con il valore del r.h.s. ` e utile porre questi due valori vicini. La posizione naturale del valore di budget ` e nella cella D10 separata dalla B 10 da una cella intermedia C 10 che contiene il simbolo . Tale simbolo non ha alcuna funzione di controllo, ma serve solo a rendere pi` u leggibile il le. . Il valore in B10 ` e calcolato inserendo una funzione Excel. Si ` e utilizzata la funzione B10=MATR.SOMMA.PRODOTTO(B3:D3;B7:D7) che realizza la seguente operazione B10=B3*B7+C3*C7+D3*D7
2 1

` possibile anche inserire in una cella, una funzione logica che mi indichi se il vincolo E ` e soddisfato o violato. In particolare, nel nostro esempio, abbiamo inserito nella cella E 7
La sintassi della funzione ` e =MATR.SOMMA.PRODOTTO(Blocco1,Blocco2) e moltiplica ogni cella del Blocco1 e del Blocco2 e somma il risultato. In generale i blocchi devono avere la stessa dimensione, cio` e stesso numero di righe e stesso numero di colonne. Nella versione inglese, la funzione ` e =SUMPRODUCT(Block1,Block2). 2 Nel caso in cui sia necessari riprodurre una sequenza di formule di questo tipo in cui cambia solo un blocco ad es. =B3*B8+C3*C8+D3*D8,per potervottenre valori coretti eetuando la copia della cella originaria ` e necessario inserire i dollari nela formula, ovvero =MATR.SOMMA.PRODOTTO(B 3:D3;B7:D7)
1

245

(adiacente al valore delle variabili di decisione) la funzione logica Excel SE, che restituisce restituisce il valore ammissibile (vero) o non ammissibile (falso) in base alla dierenza tra il valore delle celle D10 (budget) e B 10 (spesa eettiva). La sintassi ` e: =SE(D10-B10 >= 0;"AMMISSIBILE";"NON AMMISSIBILE") Questa opzione pu` o essere utile nel caso si utilizzi Excel per analisi di scenario. ` possibile Celle obiettivo. La cella obiettivo contiene il valore della funzione obiettivo. E utilizzare altre celle per ottenere risultati intermedi. Il valore della funzione obiettivo ` e ovviamente una funzione dei dati presenti nelle celle variabili. Anche in questo caso ` e opportuno inserire delle celle di commento che aiutino nella visualizzazione. Nel nostro esempio si tratta di assegnare la formula 20x1 + 5x2 + 10x3 . Il valore della funzione obiettivo ` e assegnato alla cella B13 ed ` e dato dalla formula B 13 = B 4 B 7 + C 4 C 7 + D4 D7 realizzata con la funzione B10=MATR.SOMMA.PRODOTTO(B4:D4;B7:D7)

Figura 15.2: Tabella Excel relativa al problema di Capital Budgeting.

15.3

Uso di excel per analisi di scenario

Luso di Excel come foglio elettronico per una descrizione del modello, pu` o essere utilizzata per vericare le conseguenze di diversi possibili cambiamenti.

246

La tabella costruita no a questo punto consente di fare semplici analisi di possibili scenari, modicando manualmente il valore delle variabili di decisione nelle celle B7, C7, D7. Ad esempio nella tabella di gura 15.3 ` e stata data un diverso valore alle celle variabili, ottenendo una soluzione ammissibile con una certo valore della funzione obiettivo.

Figura 15.3: Analisi di scenario per il problema di Capital Budgeting.


In particolare, possono essere modicati anche i valori dei dati, ottenendo immediatamente il nuovo valore del guadagno e dellinvestimento necessario. Questo tipo di approccio ` e detto What if..? (letteralmente Che succede se...?) e la sua essibilit` a costituisce laspetto che rende luso di fogli elettronici un utile supporto alle decisioni. Dal punto di vista dellottimizzazione, non ` e stato fatto ancora nulla e la soluzione ottenuta con analisi di scenario non ha nessuna garanzia di essere quella ottima n e una sua approssimazione. ` ovvio che Si tratta di una formalizzazione del modello esaustivo descritto nellesempio 1.4.1. E i possibili scenari possono essere troppi per poterli analizzare tutti anche nel caso in cui siano niti come nellesempio di Capital Budgeting che stiamo analizzando. Microsoft c Oce Excel 2003 include nel Menu u Strumenti il tool Scenari... che consente di eettuare an analisi du tipo What If memorizzando in modo permanente le combinazioni di dati di input che sono state utilizzate. Supporta anche la generazione automantica di un Riepilogo Scenari che realizza un confronto aaincando i risultati. ` utile invece utilizzare il modello in forma tabellare cos` E costruito per determinare la soluzione ottima mediante un algoritmo di ottimizzazione.

247

15.4

Uso di Excel-Solver per la soluzione del modello matematico

Microsoft Excel dispone di una funzione tra i Componenti aggiuntivi (Add-In) che ` e chiamata Solutore (Solver) che consente di determinare la soluzione ottima di problemi di Programmazione matematica (PL, PLI, e alcuni classi particolari di PNL). La procedura di ottimizzazione utilizzata per la PL ` e il metodo del simplesso. Non entreremo aatto nel merito delle procedure utilizzate per la PNL e la PLI.

Installazione Solutore. Il solutore ` e parte integrante di Excel. Si trova la voce Solutore


sotto il men` u Strumenti (Tools). Nel caso la voce Solutore non compaia nel men` u Strumenti, deve essere installato procedendo come segue (vedi anche gura 15.17 a ne capitolo): 1. dalla voce del men` u Strumenti selezionare la voce Componenti aggiuntivi 2. selezionare Componente aggiuntivo Solutore e cliccare OK. Nel caso la voce Componente aggiuntivo Solutore non compaia nemmeno sotto la voce Componenti aggiuntivi, signica che Excel non ` e stato installato completamente ed ` e necessario avere il programma di setup di Excel.

Impostazione del modello per il Solutore. Dalla voce Strumenti selezionare Solutore.
A questo punto appare la nestra Parametri del Risolutore illustrata in Figura 15.4. Si
Seleziona la funzione max o min come richiesto dal problema

Specifica la cella che contiene il valore della funzione obiettivo

Clicca qui per risolvere il modello

Clicca qui per uscire senza risolvere il modello

Clicca qui per specificare il tipo di modello e I parametri del risolutore

In questarea sono elencati tutti i vincoli del modello

Indica le celle che contengono le variabili Clicca qui per aggiungere un nuovo vincolo

Seleziona un vincolo e clicca qui per modificarlo Seleziona un vincolo e clicca qui per eliminarlo

Figura 15.4: Finestra Parametri del Risolutore.


tratta della nestra principale del Risolutore ed ` e utilizzata per identicare gli elementi che costituiscono il modello. Nella parte in alto a sinistra della nestra compare letichetta Imposta

248

cella obiettivo e una cella che deve contenere lindirizzo della cella della funzione obiettivo. Questa cella pu` o essere editata oppure riempita con il corretto valore semplicemente cliccando sulla cella corrispondente sul foglio elettronico (N.B. La nestra Parametri del Risolutore pu` o essere spostata in modo da rendere visibili le celle del le). Una volta impostata la cella obiettivo ` e necessario specicare se si tratta di un problema di massimizzazione o di minimizzazione, selezionando il tasto Max o Min nella riga successiva. Le variabili di decisione devono essere specicate indicando nella cella etichettata con Cambiando le celle (By Changing Cells) lindirizzo delle celle variabili. Anche in questo caso ` e possibile scrivere direttamente nella cella o riempirla selezionando sul foglio elettronico le celle variabili. Un intervallo di celle pu` o essere specicato, scrivendo il valore della prima ed ultima cella separati da due punti. Ulteriori variabili non contigue possono essere aggiunte separate da virgola. I vincoli devono essere elencati nella sottonestra Vincoli: (Subject to the Constraints). Selezionando il tasto Aggiungi(Add) compare la nestra Aggiungi vincolo rappresentata in gura 15.5.

Clicca qui per selezionare lespressione logica appropriata Specifica la/e cella/e che contengono il l.h.s. del/dei vincolo/i

Specifica la/e cella/e che contengono il r.h.s. del/dei vincolo/i

Clicca qui per definire lultimo vincolo e ritornare alla finestra Parametri del Risolutore

Microsoft Excel Help system Clicca qui per tornare alla finestra Parametri del Risolutore senza aggiungere vincoli

Clicca qui per definire tutti eccetto lultimo vincolo e ritornare alla Finestra Parametri del Risolutore

Figura 15.5: Finestra Aggiungi Vincolo.


I vincoli possono essere inseriti uno alla volta. Questo procedimento pu` o per` o essere molto lungo nel caso di problemi con molti vincoli. in alternativa si possono inserire pi` u vincoli insieme se sono adiacenti e se hanno lo stesso vincolo relazionale (cio` e , oppure =). Il l.h.s del vincolo deve essere inserito nella cella con etichetta Riferimento:. Successivamente cliccando il tasto si apre una tendina che consente di specicare il tipo di vincolo. Il r.h.s. dei vincoli o inserire il valore della cella deve essere inserito nella nestra con etichetta Vincolo:. Si pu`

249

appropriata semplicemente cliccando sulla cella corrispondente nel foglio Excel. N.B. Il r.h.s. del vincolo immesso nel solutore DEVE esser un valore numerico e quindi non deve contenere funzioni. Tipicamente se erroneamente si inserisce una funzione nel r.h.s., excel Solver interpreta il modello come Non Lineare e applica procedure di ottimizzazione diverse dal simplesso non arrivando a convergere al minimo. Tra le possibili tipologie di vincoli compaiono anche le opzioni int e bin. Servono rispettivamente a specicare che le variabili possono assumere solo valori interi o binari. In questo caso nel campo Riferimento: devono essere inserite le variabili interessate, mentre il campo Vincolo: rimane vuoto. Nel nostro esempio le variabili sono binarie; questo vincolo pu` o essere specicato in modo diretto indicando che le celle B7,C7,D7 sono binarie, oppure imponendo alle variabili la coppia di vincoli B7,C7,D7 0, B7,C7,D7 1 e specicando che si tratta di variabili intere. In Figura 15.6 ` e illustrata questa procedura. Notiamo che i vincoli di non negativit` a possono anche essere omessi in questa fase di specica del modello; in questo caso devono per` o essere specicati tra le Opzioni del Solutore (vedi paragrafo successivo). Prima della soluzione del modello ` e necessario selezionare il tasto Opzioni sulla destra della nestra Parametri del Risolutore. Nel caso si stia risolvendo un problema di Programmazione Lineare (o di Programmazione Lineare Intera) ` e necessario selezionare lopzione Presupponi il ` anche possibile specicare qui che modello lineare nella nestra Opzioni del Risolutore. E le variabili sono non negative, se non ` e gi` a stato specicato esplicitamente tra i vincoli del modello, selezionando lopzione Presupponi non negativo. Vedi la Figura 15.6 per i dettagli. A questo punto, uscendo dalla nestra con il tasto OK, lattuale impostazione delle opzioni del Solutore ` e salvata insieme con il foglio Excel e ne diventa parte integrante.

15.5

Soluzione di un modello di PL o PLI.

Una volta deniti i parametri del Risolutore e settati i valori nelle Opzioni, si pu` o tentare di risolvere il problema pigiando il tasto Risolvi (Solve). Quando il Solutore ha terminato il calcolo della soluzione ottima, compare la nestra Risultati del Solutore rappresentata in Figura 15.7.

Leggere i risultati di ottimizzazione Il messaggio in alto indica se il solutore ` e stato


in grado o meno di determinare la soluzione ottima del modello. Qualora non sia stato possibile determinare la soluzione ottima, ` e possibile cambiare alcune delle opzioni nella nestra Opzioni del Solutore per cercare di migliorare le prestazioni dellalgoritmo. In particolare, si possono cambiare i valori di tempo massimo, iterazioni, approssimazione, tolleranza, convergenza che stabiliscono i termini per cui lalgoritmo utilizzato dal Solutore si ferma. Cliccando il tasto OK, si torna al foglio Excel. Si verica che il valore di alcune celle ` e stato modicato. In particolare le celle di decisione contengono il valore della soluzione (ottima) determinata dal Solutore, e la cella obiettivo contiene il corrispondente valore della funzione obiettivo. Anche il valore del l.h.s dei vincoli ` e calcolato utilizzando il valore corrente delle variabili di decisione. ` Cambiando i dati del modello, la soluzione ottima non viene automaticamente aggiornata. E quindi necessario far risolvere nuovamente il problema. La tabella Excel per il problema di capital Budgeting risolto ` e riportata in Figura 15.8. Osserviamo che abbiamo risolto un problema di PLI. Excel-Solver ` e in grado di risolvere problemi di PLI di piccole dimensioni. Quando il numero di variabili ` e troppo alto, la determinazione della soluzione ottima, pu` o richiedere troppo tempo o non convergere aatto.

250

Parametri per algoritmo

m
Seleziona questa opzione se le funzioni che definiscono vincoli e obiettivo sono lineari Seleziona questa opzione se le variabili Sono vincolate ad essere non negative e non e` gia` stato specificato nei vincoli Parametri per modelli non lineari

Figura 15.6: Opzioni del risolutore.

15.6

Ulteriori informazioni fornite dal Solutore

Tutti i software di PL forniscono un numero di informazioni aggiuntive oltre al valore ottimo delle variabili di decisione e della funzione obiettivo. Il Solver di Microsoft Excel produce tre fogli opzionali che sono: Rapporto valori, Rapporto sensibilit` a e Rapporto limiti. Da notare che il Rapporto sensibilit` a e il Rapporto limiti sono privi di signicato per problemi a variabili intere, come sar` a chiaro pi` u avanti. Per questo motivo, illustreremo i risultati dei Rapporti non pi` u per il problema di Capital budgeting, ma per il problema di Programmazione Lineare di allocazione ottima descritto nel Paragrafo 2.4.1. Il modello matematico ` e max 7x1 + 10x2 x1 + x2 750 x1 + 2x2 1000 (15.1) x2 400 x1 0, x2 0 relativo allallocazione ottima di due risorse e la sua soluzione con metodo graco ` e stata determinata nelEsempio 4.3.4. Una possibile rappresentazione in una tabella Excel ` e riportata in 15.9. Impostando il modello nel solutore si determina la soluzione ottima. Nella tabella Excel, i valori iniziali delle celle variabili sono stati posti a (5, 6)T e la soluzione ottima ` e x (500, 250)T .

251

Questo messaggio specifica se il Solutore ha trovato o no la soluzione ottima

Selezionare il rapporto che si desidera generare

Questo bottone specifica al Solutore se deve o non memorizzare il valore ottimo delle variabili e generare i rapporti selezionati nella finestra in alto a destra

Annulla il risultato del Solutore e ripristina i valori originali nel foglio Excel Torna al foglio Excel

Figura 15.7: Finestra Risultato del Solutore.


I tre Rapporti possono essere richiesti una volta che il Solutore ha trovato la soluzione ottima del problema di PL. La richiesta deve essere fatta dalla nestra Risultato del Solutore (vedi Figura 15.7), selezionando nella parte in altro a destra il rapporto che si desidera generare.

Rapporto valori
Il Rapporto valori per il problema di Allocazione ottima (15.1) ` e riportato in gura 15.9. Il Rapporto valori ` e diviso in tre sezioni: funzione obiettivo, celle variabili, vincoli. Per quanto riguarda le prime sue sezioni, sono riportati i valori iniziali e i valori ottenuti dal Solutore. Nella sezione dedicata ai vincoli, per ogni vincolo oltre al valore del l.h.s. e alla relativa formula (in formato excel) fornisce indicazioni sullo stato. In particolare lo stato di un vincolo pu` o essere Vincolante o Non Vincolante. Si intende che il vincolo ` e rispettivamente attivo (ovvero soddisfatto alluguaglianza) o non attivo (ovvero soddisfatto con la disuguaglianza stretta) nella soluzione ottima determinata dal Solutore. Lultima colonna della sezione dedicata ai vincoli Tolleranza ` e la dierenza (slack) tra il valore del l.h.s e il valore del r.h.s.. Questa informazione ` e di interesse quando i vincoli si riferiscono ad una risorsa limitata (come nel caso dellesempio di allocazione ottima delle risorse). In questo caso infatti la Tolleranza indica quanta della risorsa disponibile non ` e stata utilizzata. Nellesempio 15.1, allottimo sono attivi i vincoli x1 + x2 750, x1 + 2x2 1000, mentre il vincolo x2 400 relativo alla disponibilit` a di e la dierenza tra la disponibilit` a preparato 3 ` e non attivo. Il valore della Tolleranza=150 che ` ` ovvio che la soluzione ottima del di preparato 3 (=400) e la quantit` a utilizzata (=250). E problema (15.1) rimane invariata se la quantit` a disponibile di preparato 3 viene aumentata o

252

Figura 15.8: Risultato del Solutore per il problema di Capital budgeting.


ridotta no al valore 250.

Rapporto sensibilit` a e prezzi ombra Lanalisi di senibilit` a si occupa di valutare come


la soluzione ottima di un problema di PL cambia al variare dei dati che deniscono listanza del problema sotto studio. Abbiamo arontato questo problema nel paragrafo 11.3.5. Qui ci limitiamo a descrivere il foglio prodotto dal Solver di Microsoft Excel. Il Rapporto sensibilit` a ` e generato da Excel su richiesta. Il le generato per il problema di allocazione ottima di risorse in 2.4.1 ` e in gura 15.12. Il rapporto ` e diviso in due parti. Nella parte superiore per ogni cella variabile ` e riportato il valor e della soluzione ottima. Se una variabile ` e nulla, signica che non ` e vantaggioso produrla. La colonna Costo ridotto di questa attivit` a indica quanto maggiore dovrebbe essere il protto per unit` a relativo a questa variabile anch e sia inserita nella soluzione ottima ad un valore non nullo. Se il costo ridotto relativo alla variabile xi ` e negativo pari a i , questo signica che il protto relativo a quella variabile deve aumentare da ci (valore indicato in tabella nella colonna Coeciente oggettivo) a ci + i perch e esista una soluzione ottima con xi > 0. Le colonne aumento e decremento ammissibile corrispondono alla variazione in aumento o diminuzione per ci per cui la soluzione rimane ottima. Datra parte se una variabile ` e gi` a positiva allottimo, le colonne Incremento/Decremento conu o in meno, il protto relativo a quella cella variabile sentito indicano quanto deve variare in pi` anch e la soluzione data non sia pi` u ottima.

253

Figura 15.9: Tabella Excel relativa al problema di allocazione di risorse.


Ad esempio nel problema di allocazione ottima di risorse in 2.4.1, la cella variabile $B$9 che corrisponde alla produzione di Colorante di tipo 1, lattuale coeciente della funzione obiettivo ` e 7, mentre Incremento e Decremento consentiti sono rispettivamente 3 e 2. Questo signica che se il coeciente c1 della funzione obiettivo varia nellintervallo [5, 10] i cui estremi corrispondono a 7 2 e 7 + 3, la soluzione ottima rimane invariata. Se invece il coeciente c1 viene modicato ad un valore al di fuori dellintervallo [5, 10] la soluzione ottima cambia. Per sapere come cambia la soluzione ` e necessario risolvere nuovamente il modello con il Solutore. Il valore dellIncremento e Decremento consentiti pu` o essere anche pari a 1.E + 30 (= 1030 ) intendendo in questo modo una valore grande a piacere. Si intende che il valore di protto unitario pu` aumentare o diminuire senza limiti e la soluzione ottima non cambier` a. Nella parte inferiore del Rapporto di sensibilit` a, ci sono tante righe quanti sono i vincoli (esclusi eventuali vincoli di limitazione inferiore e superiore delle variabili e in vincoli di non negativit` a). e riportato il valore del l.h.s nella soluzione ottima, Per ogni vincolo nella colonna Valore nale ` e il valore del r.h.s. nella colonna Vincolo a destra. Naturalmente se i valori del l.h.s. e r.h.s. coincidono signica che il vincolo ` e attivo nella soluzione ottima (vedi anche il Rapporto Valori). Un vincolo attivo sta ad indicare una risorsa utilizzata completamente, no al limite massimo della sua disponibilit` a. Per queste risorse si pu` o valutare se e quando pu` o essere conveniente acquisire una maggiore quantit` a di risorsa. La colonna Prezzo ombra indica i valori dei prezzi ombra relativi a quella risorsa (vedi anche il paragrafo 11.3.5). Nella tabella in gura 15.12 relativa al problema di allocazione ottima di risorse 2.4.1, il prezzo ombra relativo al primo

254

Microsoft Excel 10.0 Rapporto valori Foglio di lavoro: [allocazione.xls]Allocazione ottima di risorse Data di creazione: 28/04/2004 16.59.50

Cella obiettivo (Max) Cella Nome $B$19 profitto max

Valori originali 95

Valore finale 6000

Celle variabili Cella Nome $B$9 variabili di decisione colorante 1 $C$9 variabili di decisione colorante 2

Valori originali 5 6

Valore finale 500 250

Vincoli Cella Nome $B$14 preparato 1 utilizzato $B$15 preparato 2 utilizzato $B$16 preparato 3 utilizzato

Valore della cella Formula Stato 750 $B$14<=$D$14 Vincolante 1000 $B$15<=$D$15 Vincolante 250 $B$16<=$D$16 Non vincolante

Tolleranza 0 0 150

Figura 15.10: Rapporto Valori per il problema di allocazione ottima di risorse in 2.4.1.
vincolo (corrispondente alla risorsa Preparato 1) ` e 4. Questo signica che ciascuna unit` a aggiuntiva di Preparato 1 al di sopra delle 750 gi` a disponibili consente di aggiungere 4 al protto totale. Naturalmente questa analisi ` e valida solo entro certi limiti espressi nelle colonne Incremento consentito e Decremento consentito. Nel caso del Preparato 1 questi limiti sono 250 e 150 rispettivamente. Questo signica che ogni unit` a aggiunta no al massimo di 250 produce un incremento del protto di 4 per unit` a, e ogni unit` a sottratta no ad un massimo di 150 produce una diminuzione di protto di 4 per unit` a. Al di fuori di questo range non ` e possibile utilizzare i prezzi ombra per prevedere cosa succede. Lunico modo per vericare come si modica la soluzione ` e di far risolvere nuovamente il modello con i nuovi dati. Lanalisi dei prezzi ombra ` e identica per ciascun vincolo attivo. Per i vincoli non attivi il valore del prezzo ombra ` e ovviamente nullo. Questo ` e sensato dal punto di vista economico; difatti poich e la risorsa non ` e stata utilizzata completamente (` e inn eccesso) non ` e conveniente acquisire una maggiore quantit` a. IN questo caso lIncremento consentito ` e innito, perch e il prezzo ombra rimane nullo qualunque sia la quanit` a aggiuntiva. Il decremento consentito ` e per` o limitato (nel nostro esempio a 150), perch e uneccessiva riduzione della risorsa pu` o portarla ad essere vincolante. Il decremento massimo consentito ` e pari esattamente al valore di Tolleranza relativo al vincolo riportato nel Rapporto Valori. ` importante ricordare che nellanalisi che abbiamo fatto, ` E e stato modicato un solo input alla volta.Per sapere cosa succede modicando pi` u input alla volta ` e necessario utilizzare il Solutore.

255

550 aumento di P3 a 550 400 x*=(500,250) 250 400 x* diminuzione di P3 a 250

(a) Aumento di risorsa Preparato 3 fino a 550

(b) Diminuzione di risorsa Preparato 3 fino a 250

Figura 15.11: Interpretazione graca del cambiamento del valore della risorsa prepapato 3
del problema in 2.4.1.

Linee guida nelluso del Rapporto di sensibilit` a 1. Nella sezione relativa alle Celle variabili se una variabile ` e attualmente nulla, il suo costo ridotto indica quanto pi` u vantaggiosa (ad esempio minor costo o maggior protto) deve essere il suo coeciente nella funzione obiettivo in modo che tale variabile risulti positiva nella soluzione ottima. 2. Nella sezione relativa alle Celle variabili se sono presenti dei vincoli di limitazione superiore o inferiore su una variabile, il suo costo ridotto indica quanto pi` u svantaggiosa (ad esempio maggior costo o minor protto) deve essere il suo coeciente nella funzione obiettivo in modo che il valore di tale variabile sia diminuito. 3. Nella sezione relativa ai Vincoli, il valore del prezzo ombra indica di quanto aumenterebbe il valore della funzione obiettivo (per un problema di massimizzazione) per un incremento unitario del r.h.s. del vincolo corrispondente.

Rapporto limiti 256

Microsoft Excel 10.0 Rapporto sensibilit Foglio di lavoro: [allocazione.xls]Allocazione ottima di risorse Data di creazione: 28/04/2004 16.59.50

Celle variabili Cella Nome $B$9 variabili di decisione colorante 1 $C$9 variabili di decisione colorante 2 Vincoli Cella Nome $B$14 preparato 1 utilizzato $B$15 preparato 2 utilizzato $B$16 preparato 3 utilizzato Valore ombra finale Prezzo 750 4 1000 3 250 0 Vincolo consentito consentito a destra Incremento Decremento 750 250 150 1000 150 250 400 1E+30 150 Valore ridotto oggettivo consentito consentito finale Costo Coefficiente Incremento Decremento 500 0 7 3 2 250 0 10 4 3

Figura 15.12: Rapporto Sensibilit` a per il problema di allocazione ottima di risorse in 2.4.1.
Il Rapporto limiti produce informazioni poco interessanti gi` a presenti negli altri Rapporti. Non verranno discusse aatto.

15.7

Yield management ferroviario


max 42, 35x12 + 53, 20x13 + 18, 59x23 x12 + x13 700 x23 + x13 700 0 x12 420 0 x13 355 0 x23 335 (x12 , x23 , x13 intere)

Riprendiamo il semplice esempio del paragrafo 3.3.3 la cui formulazione matematica ` e:

e la tabella Excel che lo rappresenta ` e in gura 15.14. Osserviamo luso di due funzioni logiche che consentono visivamente di dire se una soluzione ` e ammissibile rispetto ai due gruppi di vincoli di capacit` a =SE(E(B10 -D10 >= 1; B11-D11 >= 1);"NON ammissibile";"ammissibile") e di limitazione superiore sulle variabili

257

Microsoft Excel 10.0 Rapporto limiti Foglio di lavoro: [allocazione.xls]Rapporto limiti 1 Data di creazione: 28/04/2004 16.59.50

Obiettivo Cella Nome $B$19 profitto max

Valore 6000

Variabile Cella Nome $B$9 variabili di decisione colorante 1 $C$9 variabili di decisione colorante 2

Valore 500 250

Limite Risultato inferiore obiettivo 0 2500 0 3500

Limite Risultato superiore obiettivo 500 6000 249,9999999 5999,999999

Figura 15.13: Rapporto Limiti per il problema di allocazione ottima di risorse in 2.4.1.
=SE(E(B14-D14>=1;B15-D15>=1;B16-D16>=1);"NON ammissibile";"ammissibile") Inoltre nella denizione dei vincoli allinterno del solutore ` e possibile raggruppare i vincoli dello stesso tipo insieme, come in gura 15.15.

258

Figura 15.14: Il problema di yield Management ferroviario.

259

Definizione di vincoli a gruppi omogenei

Figura 15.15: Denizione dei vincoli nel problema di yield mangement.

260

Microsoft Excel 10.0 Rapporto valori Foglio di lavoro: [ym.xls]yield semplice Data di creazione: 28/04/2004 15.08.56

Cella obiettivo (Max) Cella Nome $B$20 profitto rm-fi

Valori originali 11414

Valore finale 40490,8

Celle variabili Cella Nome $B$8 booking limit rm-fi $C$8 booking limit rm-bo $D$8 booking limit fi-bo

Valori originali 100 100 100

Valore finale 420 280 420

Vincoli Cella $B$11 $B$12 $B$15 $B$16 $B$17

Nome tratta 1 rm-fi tratta 2 rm-fi rm-fi rm-fi rm-bo rm-fi fi-bo rm-fi

Valore della cella 700 700 420 280 420

Formula $B$11<=$D$11 $B$12<=$D$12 $B$15<=$D$15 $B$16<=$D$16 $B$17<=$D$17

Stato Vincolante Vincolante Vincolante Non vincolante Non vincolante

Tolleranza 0 0 0 75 15

Figura 15.16: Rapporto valori per il problema di YM.

261

Figura 15.17: Installazione del solutore in Excel.

262

Appendice A

Richiami di Analisi e geometria


A.1 Richiami sulla dierenziazione in Rn

Richiamiamo alcuni concetti essenziali sulla differenziazione delle funzioni denite su Rn , la cui conoscenza ` e richiesta nello studio dei problemi di ottimizzazione di tipo differenziabile. Nel seguito supponiamo, per semplicit` a, che f sia una funzione denita su tutto Rn ; ` e immediato tuttavia estendere le denizioni qui riportate al caso in cui x appartiene ad un insieme aperto D Rn .

A.1.1

Derivate del primo ordine di una funzione reale

Un qualsiasi vettore assegnato d Rn non nullo denisce una direzione in Rn . Una prima nozione di derivata che si pu` o introdurre ` e quella di derivata direzionale. Denizione A.1.1 (Derivata direzionale) Sia f : Rn R. Si dice che f ammette derivata direzionale Df (x, d) nel punto x Rn lungo la direzione d Rn se esiste nito il limite
t0

lim +

f (x + td) f (x) := Df (x, d). t

Se consideriamo f come funzione di una sola variabile xj , supponendo ssate tutte le altre componenti possiamo introdurre il concetto di derivata parziale rispetto a xj . Denizione A.1.2 (Derivata parziale) Sia f : Rn R. Si dice che f ammette derivata parziale f (x)/xj nel punto x Rn rispetto alla variabile xj se esiste nito il limite f (x1 , . . . , xj + t, . . . , xn ) f (x1 , . . . , xj , . . . , xn ) f (x) := . t0 t xj lim Lesistenza della derivata parziale f (x)/xj nel punto x implica, ovviamente, che esistano e coincidano le derivate direzionali lungo le direzioni ej e ej . Se f ammette derivate parziali rispetto a tutte le componenti possiamo denire il gradiente di f nel punto x.

263

Denizione A.1.3 (Gradiente) Sia f : Rn R ed x Rn . Se esistono le derivate parziali prime di f in x deniamo gradiente di f in x il vettore f (x) Rn f (x) x1 . . . . f (x) := f (x) xn A dierenza di quanto avviene sulla retta reale, nel caso di Rn l esistenza del gradiente non consente, in generale, di poter approssimare, con la precisione voluta, il valore di f nellintorno di x con una funzione lineare dellincremento. Una tale possibilit` a` e legata ad una nozione pi` u forte di differenziabilit` a, che non riportiamo qui. ` da notare che la sola esistenza di f non implica, in generale, la propriet` E a di differenziabilit` a. Si dimostra, tuttavia, che se f (x) esiste ed ` e continuo rispetto ad x, allora f ` e differenziabile in x. (La continuit` a del gradiente ` e una condizione suciente per la differenziabilit` a in senso forte.) Dal teorema precedente segue che se f (x) ` e continuo si pu` o scrivere, per ogni d Rn : f (x + d) = f (x) + f (x) d + (x, d), dove (x, d) soddisfa:
d 0

lim

(x, d) = 0. d

Se f ` e differenziabile, ` e immediato vericare che esiste anche la derivata direzionale di f lungo una qualsiasi direzione d Rn e risulta: lim f (x + td) f (x) = f (x) d. t

t 0+

A.1.2
n

Differenziazione di un vettore di funzioni

Sia g : R Rm un vettore a m componenti di funzioni reali. Possiamo introdurre la denizione seguente, che estende la nozione di gradiente. Denizione A.1.4 (Matrice Jacobiana) Sia g : Rn Rm e x Rn . Se esistono le derivate parziali prime gi (x)/xj , per i = 1 . . . , m e j = 1 . . . n in x deniamo matrice Jacobiana di g in x la matrice m n g1 (x) g1 (x) ... x1 xn ... ... J (x) := . . . . gm (x) gm (x) ... x1 xn

264

Valgono le stesse considerazioni sulla differenziabilit` a che abbiamo fatto nel paragrafo precedente, ovvero, la sola esistenza della matrice Jacobiana in x non implica la differenziabilit` a. Se per` o J (x) ` e continua si pu` o scrivere, per ogni d Rn : g (x + d) = g (x) + J (x)d + (x, d), dove (x, d) soddisfa: (x, d) = 0. d d 0 Se m = 1 si ha ovviamente J (x) = g (x) . Per analogia con la notazione usata per il gradiente si pu` o usare anche la notazione g (x) per indicare la derivata prima di g , ossia lim g (x) = J (x) = ( g1 (x), . . . , gm (x) ) .

A.1.3
n

Derivate del secondo ordine di una funzione reale

Sia f : R R una funzione reale. Con riferimento alle derivate del secondo ordine, possiamo introdurre innanzitutto la denizione seguente. Denizione A.1.5 (Matrice Hessiana) Sia f : Rn R e x Rn . Se esistono le derivate parziali seconde 2 f (x)/xi xj , per i = 1 . . . , n e j = 1 . . . n in x deniamo matrice Hessiana di f in x la matrice n n 2 2 f (x) f (x) . . . x1 2 x1 xn ... ... ... . 2 f (x) := 2 2 f (x) f (x) ... xn x1 xn 2 Se 2 f (x) ` e continua si pu` o scrivere, per ogni d Rn : 1 f (x + d) = f (x) + f (x) d + d 2 f (x)d + (x, d), 2 dove (x, d) soddisfa: (x, d) lim = 0. d 2 d 0 Nelle stesse ipotesi si ha anche, come si ` e detto, che la matrice Hessiana 2 f (x) ` e una matrice simmetrica, ossia si ha, per i, j = 1 . . . , n: 2 f (x) 2 f (x) = . xi xj xj xi Osserviamo anche che se 2 f (x) ` e continua si pu` o scrivere f (x + d) = f (x) + 2 f (x)d + (x, d), con
d 0

lim

(x, d) = 0. d

265

A.1.4

Teorema della media e formula di Taylor

Nel caso di funzioni differenziabili valgono anche i risultati seguenti (che si possono tuttavia stabilire sotto ipotesi pi` u deboli). Teorema A.1.6 (Teorema della Media) Sia f : Rn R una funzione differenziabile. Allora, per ogni h Rn , si pu` o scrivere f (x + h) = f (x) + f (z ) h, in cui z Rn ` e un punto opportuno (dipendente da x e h) tale che z = x + h, con (0, 1). Utilizzando le derivate seconde si ha il risultato seguente. Teorema A.1.7 Teorema di Taylor Sia f : Rn R una funzione due volte differenziabile. Allora, per ogni h Rn si pu` o scrivere: 1 f (x + h) = f (x) + h f (x) + h 2 f (w)h 2 in cui w Rn ` e un punto opportuno (dipendente da x e h) tale che w = x + h, con (0, 1). Nel caso di funzioni vettoriali g : Rn Rm non ` e possibile stabilire un teorema della media. Esempi Alcuni esempi di interesse di funzioni differenziabili sono: f (x) = c x; si ha: f (x) = c, 2 f (x) = 0; 2 f (x) = Q; f (x) = 1 2 x Qx + c x, (con Q simmetrica); si ha: f (x) = Qx + c; f (x) = Ax b 2 ; si ha: f (x) = 2A (Ax b); 2 f (x) = 2A A

266

Riferimenti
[1] C. Mannino, L. Palagi e M. Roma. Complementi ed Esercizi di Ricerca Operativa. Edizione Ingegneria 2000, Roma, 1998. [2] Antonio Sassano. Modelli e Algortimi della Ricerca Operativa. Franco Angeli Editore, Roma, 1999. Libro [3] Fabio Schoen Modelli di Ottimizzazione per le decisioni. Societ` a Editrice Esculapio, Bologna, 2006.

267

Indice
1 Introduzione 1.1 Breve storia della Ricerca Operativa . 1.2 La Ricerca Operativa oggi . . . . . . . 1.3 Lapproccio modellistico . . . . . . . . 1.4 Un primo esempio di costruzione di un . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . modello matematico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . 1 . 2 . 7 . 12 . . . . . . . . . . . . . . . . . . . . 15 15 16 18 20 26 26 29 29 31 32 32 35 39 40 42 42 42 43 45 45 46 47 60 60 64 65

2 Modelli di Ottimizzazione 2.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . 2.2 Denizioni preliminari . . . . . . . . . . . . . . . . 2.3 Problemi di Programmazione Matematica . . . . . 2.4 Esempi di modelli di Programmazione Matematica

3 Modelli di Programmazione Lineare 3.1 Struttura di un problema di Programmazione Lineare . 3.2 Trasformazioni equivalenti . . . . . . . . . . . . . . . . . 3.2.1 Funzione obiettivo di tipo max . . . . . . . . . . 3.2.2 Funzione modulo . . . . . . . . . . . . . . . . . . 3.3 Semplici esempi di problemi di programmazione lineare 3.3.1 Problemi di miscelazione. . . . . . . . . . . . . . 3.3.2 Modelli di trasporto. . . . . . . . . . . . . . . . . 3.3.3 Un problema di Yield Management ferroviario . 3.3.4 Minimizzazione dello scarto massimo . . . . . . . 4 Soluzione graca di problemi PM in 2 variabili 4.1 Rappresentazione di vincoli nel piano cartesiano . 4.1.1 Vincoli lineari . . . . . . . . . . . . . . . . 4.1.2 Vincoli quadratici . . . . . . . . . . . . . 4.2 Rappresentazione di funzioni obiettivo . . . . . . 4.2.1 Funzioni lineari . . . . . . . . . . . . . . . 4.2.2 Funzioni quadratiche . . . . . . . . . . . . 4.3 Esempi di risoluzione graca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 Problemi di ottimizzazione convessa e concava 5.1 Insiemi Convessi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.1 Poliedro e punti estremi di un insieme convesso . . . . . . . . . . . . . . . 5.2 Funzioni convesse e concave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

268

5.3

5.4

Problemi di ottimizzazione . . . . . . . . . . . . . . . . . . . . . . 5.3.1 Problema di ottimizzazione convesso . . . . . . . . . . . . 5.3.2 Problema di ottimizzazione concavo . . . . . . . . . . . . Caratterizzazione funzioni convesse continuamente dierenziabili 5.4.1 Funzioni e forme quadratiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . non vincolate . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

66 69 70 71 71 75 75 75 80 88 91 94 94 94 96 99 101 102 107 111 112

6 Problemi di ottimizzazione non vincolata 6.1 Introduzione . . . . . . . . . . . . . . . . . . . 6.2 Direzioni di discesa . . . . . . . . . . . . . . . 6.3 Ottimizzazione non vincolata . . . . . . . . . 6.4 Utilizzo algoritmico delle condizioni di ottimo 6.5 Modelli di ottimizzazione non vincolata . . .

7 Ottimizzazione vincolata 7.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Direzione ammissibile . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 Condizioni di ottimo vincolate . . . . . . . . . . . . . . . . . . . . . . . 7.4 Ottimizzazione su insieme convesso generico . . . . . . . . . . . . . . . 7.5 Ottimizzazione su un poliedro . . . . . . . . . . . . . . . . . . . . . . . 7.6 Direzioni ammissibili di un poliedro . . . . . . . . . . . . . . . . . . . . 7.7 Condizioni di ottimo su un poliedro . . . . . . . . . . . . . . . . . . . 7.7.1 Condizioni di ottimo per la Programmazione Lineare . . . . . . 7.8 Utilizzo algoritmico delle condizioni di ottimo per problemi con vincoli

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . convessi

8 Teoremi dellalternativa 114 8.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 8.2 Il Lemma di Farkas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 9 Le condizioni di Karush-Kuhn-Tucker 119 9.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 9.2 Le condizioni di Karush-Kuhn-Tucker . . . . . . . . . . . . . . . . . . . . . . . . 119 10 Teoria della Programmazione Lineare 10.1 Caratterizzazione dei vertici di un poliedro . . . . . . . . . . . 10.2 Il teorema fondamentale della PL . . . . . . . . . . . . . . . . . 10.3 Problemi di PL in forma standard . . . . . . . . . . . . . . . . 10.4 Cenni sul metodo del simplesso per la Programmazione Lineare 10.4.1 Soluzione di Base Ammissbile (SBA) e costi ridotti . . . 11 Condizioni di ottimo per la PL e teoria della dualit` a 11.1 Le condizioni di ottimalit` a nella Programmazione Lineare . 11.2 Costruzione del duale di un problema di PL . . . . . . . . . 11.3 Interpretazione della Dualit` a . . . . . . . . . . . . . . . . . 11.3.1 Il duale del problema di allocazione ottima di risorse 11.3.2 Il duale del problema di miscelazione. . . . . . . . . 11.3.3 Il duale del problema dei trasporti . . . . . . . . . . 11.3.4 Analisi di sensitivit` a alla variazione dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 130 136 141 142 143 146 146 152 157 157 158 160 162

269

11.3.5 Interpretazione geometrica della variazione dei dati sui problemi primale duale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 11.3.6 Interpretazione economica della dualit` a e prezzi ombra . . . . . . . . . . . 165 12 Programmazione Lineare Intera 12.1 Formulazioni Classiche di Problemi Lineari Interi . . . . . 12.1.1 Knapsack (zaino) binario . . . . . . . . . . . . . . 12.1.2 Assegnamento . . . . . . . . . . . . . . . . . . . . 12.2 Uso di variabili booleane per modellare condizioni logiche 12.2.1 Problema del costo sso. . . . . . . . . . . . . . . . 12.2.2 Variabili indicatrici . . . . . . . . . . . . . . . . . . 12.2.3 Il problema del commesso viaggiatore . . . . . . . 12.3 Relazioni tra PL e PLI . . . . . . . . . . . . . . . . . . . . 12.4 Propriet` a di interezza e totale unimodularit` a . . . . . . . 12.5 Tecniche di soluzione per problemi di PLI . . . . . . . . . 12.5.1 La Tecnica del Branch and Bound . . . . . . . . . 12.5.2 Esempi . . . . . . . . . . . . . . . . . . . . . . . . 12.6 Il problema del Knapsack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 168 168 169 171 171 175 177 178 183 186 187 191 196 200 200 205 207 207 217 217 219 219 221 224 226 227 227 229 234

13 Gra e modelli su gra 13.1 Denizioni fondamentali . . . . . . . . . . . . . . . . . . . . . 13.2 Rappresentazioni di un grafo . . . . . . . . . . . . . . . . . . 13.3 Alcuni esempi di problemi su grafo . . . . . . . . . . . . . . . 13.3.1 Modelli di distribuzione di usso a costo minimo . . . 13.4 Il problema del cammino minimo . . . . . . . . . . . . . . . . 13.4.1 Denizione del problema . . . . . . . . . . . . . . . . . 13.5 Cammini minimi e massimi su gra aciclici . . . . . . . . . . 13.5.1 Numerazione topologica dei nodi di un grafo . . . . . 13.5.2 Un algoritmo per il cammino minimo su gra aciclici . 13.5.3 Un algoritmo per il cammino massimo su gra aciclici 14 Tecniche reticolari di programmazione 14.1 Il diagramma reticolare di un progetto 14.1.1 La costruzione del diagramma . 14.1.2 Il percorso critico . . . . . . . . 14.2 Il CPM . . . . . . . . . . . . . . . . . delle attivit` a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15 Uso di Excel per lanalisi e soluzione di Modelli di Programmazione Matematica 243 15.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 15.2 Uso di fogli elettronici per la descrizione di un modello matematico . . . . . . . . 244 15.3 Uso di excel per analisi di scenario . . . . . . . . . . . . . . . . . . . . . . . . . . 246 15.4 Uso di Excel-Solver per la soluzione del modello matematico . . . . . . . . . . . . 248 15.5 Soluzione di un modello di PL o PLI. . . . . . . . . . . . . . . . . . . . . . . . . . 250 15.6 Ulteriori informazioni fornite dal Solutore . . . . . . . . . . . . . . . . . . . . . . 251 15.7 Yield management ferroviario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

270

A Richiami di Analisi e geometria A.1 Richiami sulla dierenziazione in Rn . . . . . . . . . . . A.1.1 Derivate del primo ordine di una funzione reale . A.1.2 Differenziazione di un vettore di funzioni . . . . A.1.3 Derivate del secondo ordine di una funzione reale A.1.4 Teorema della media e formula di Taylor . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

263 263 263 264 265 266

271

Potrebbero piacerti anche