231
Dispense del corso RICERCA OPERATIVA per i corsi di Laurea in Ingegneria BTRR e MMER a cura di Laura Palagi www.dis.uniroma1.it/~ palagi 29 Novembre 2012

Dispense del corso RICERCA OPERATIVA

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Dispense del corso RICERCA OPERATIVA

Dispense del corso

RICERCA OPERATIVAper i corsi di Laurea in Ingegneria BTRR e MMER

a cura di Laura Palagi

www.dis.uniroma1.it/~ palagi

29 Novembre 2012

Page 2: Dispense del corso RICERCA OPERATIVA

Corso: Ricerca Operativa (Laurea e Laurea Magistrale)Settore: MAT09 - Crediti: 6

Sapienza Universita di RomaA.A. 2012-2013

Obiettivi. Introdurre gli studenti alla programmazione matematica e allaloro applicazione in campo ingegneristico, logistico, economico, organizza-tivo. Fornire gli strumenti per: riconoscere classi di modelli standard (inparticolare di programmazione lineare sia continua che a variabili intere, diprogrammazione convessa), individuare le soluzioni ottime utilizzando con-dizioni di ottimo.

Programma

Docente: Laura Palagi

Programma.Il programma coincide con il contenuto delle dispense.

La parte relativa alla modellistica matematica non e argomento in sede diesame scritto. E soprattutto utile ai fini della prova di laboratorio di RO.

NON sono in programma le seguenti dimostrazioni/teoremi:

1. dimostrazione del Lemma 4.1.1

2. dimostrazione dei teoremi 5.1.6, 5.1.11, 5.3.2, 5.3.3

3. dimostrazione dei teoremi 6.2.4, 6.3.10, 6.3.11

4. il paragrafo 7.4

5. la dimostrazione del teorema 8.2.1 (Lemma di Farkas)

6. il teorema 10.2.1

7. il teorema 12.4.4, il teorema 12.4.6

1

Page 3: Dispense del corso RICERCA OPERATIVA

Capitolo 1

Introduzione

La Ricerca Operativa e una disciplina relativamente giovane. Il termine Ricerca Operativae stato coniato in ambito militare verso la fine degli anni ‘30 e deriva dal termine inglese“Operational Research”, ovvero la ”ricerca sulle operazioni (militari)”.

La Ricerca Operativa (di seguito indicata con l’acronimo RO) si occupa dello sviluppo edell’applicazione di metodi quantitativi per la soluzione di problemi di decisione che si presen-tano nella gestione di imprese e organizzazioni.

Quando la complessita dei sistemi era relativamente contenuta, e la quantita di dati disponi-bili estremamente limitata, il personale esperto era sufficiente a prendere le decisioni necessariealla conduzione dell’impresa.

La crescente complessita dei sistemi aziendali congiuntamente all’enorme quantita di datimessa a disposizione dall’informatizzazione capillare ha reso indispensabile l’utilizzo di stru-menti automatici di decisione che attraverso la modellazione matematica permettano la soluzionedi problemi di grandi dimensioni.

La RO, quindi, e caratterizzata dall’uso di modelli matematici definiti e risolti al fine difornire indicazioni ai “decisori” nell’atto della scelta. Non a caso, la RO e anche nota comemanagement science, e cioe la Scienza della Gestione, definizione che ne sintetizza finalita eambizioni.

1.1 Breve storia della Ricerca Operativa

Il termine Ricerca Operativa, si e detto, e legato alle prime applicazioni della RO per aumentarel’efficienza di operazioni militari della Seconda Guerra Mondiale. Tuttavia esistono esempi im-portanti di anticipazione dei metodi della RO in anni piu lontani; il piu famoso risale a F. Taylorche nel 1885 elaboro uno studio sui metodi di produzione; prima ancora, nel 1776, G. Mongeaveva studiato un problema di trasporti. Tuttavia la nascita della RO e legata agli studi chenegli anni immediatamente precedenti alla Seconda Guerra Mondiale vennero condotti in GranBretagna per risolvere problemi strategici e tattici in operazioni militari. Piu in particolarequesti studi erano legati all’uso efficiente di un nuovo strumento di difesa: il radar. Infatti nel

0A questo paragrafo sono associate le slide della lezione disponibili sul sitohttp://www.dis.uniroma1.it/~ or/meccanica/slide prima lezione09-10.pdf

1

Page 4: Dispense del corso RICERCA OPERATIVA

1937 la Royal Air Force inizio degli esperimenti di un sistema di controllo della difesa aereabasato sull’uso di una stazione radar situata a Bawdsey Research Station, nella costa est; gia daiprimi esperimenti si resero conto che era molto difficile gestire efficientemente le informazioniprovenienti dal radar. Nel luglio 1938 furono compiuti altri esperimenti con l’aggiunta di quat-tro stazioni radar lungo la costa nella speranza che il sistema di controllo migliorasse sia incopertura sia in efficienza; invece non fu cosı ; dai nuovi esperimenti emersero seri problemi:c’era la necessita di coordinare e correlare le tante informazioni, spesso anche in conflitto tra diloro, che venivano ricevute dalle stazioni radar aggiunte. Nell’imminenza della Guerra si resenecessario tentare qualche nuovo approccio; percio il sovrintendente della Bawdsey ResearchStation propose di sviluppare un programma di ricerca che riguardasse gli aspetti operativi delsistema e non piu solamente quelli prettamente tecnici che erano da considerare soddisfacenti.Il termine “Operational Research” – Ricerca nelle operazioni (militari) – fu coniato per descri-vere questa nuova branca delle scienze applicate. Fu quindi selezionato un gruppo di scienziatidi vari discipline per costituire un “OR team”; il progetto fu diretto dal comandante in capodella Royal Air Force, Air Chief Marshal Sir Hugh Dowding. Nell’estate del 1939 la GranBretagna effettuo l’ultima esercitazione pre-bellica dove si evidenzio un notevole miglioramentonelle operazioni di difesa aerea grazie al contributo del gruppo di scienziati. Nacque quindi unavera e propria sezione che piu tardi, nel 1941, prese il nome formale di “Operational ResearchSection”. Durante il conflitto mondiale furono molteplici e importanti i contributi strategici diquesta sezione permettendo di salvare piloti e aerei.

Al termine della guerra, alcuni degli scienziati coinvolti nel progetto formarono nuclei diricercatori per lo sviluppo post bellico e la loro attivita si estese a campi diversi da quellomilitare; in particolare, con l’espandersi delle iniziative industriali e con l’avvento dei com-puter che sono uno strumento essenziale per la risoluzione dei problemi, c’e stata un’espansionedell’utilizzo della RO all’interno di diverse realta applicative.

Dagli anni ’60 in poi le applicazioni della RO hanno avuto diffusione crescente, inizialmentenell’ambito di grandi gruppi industriali e succesivamente, grazie anche alla disponibilita digrandi potenze di calcolo a costi contenuti, in quasi ogni settore industriale, nei servizi e nelleamministrazioni pubbliche.

1.2 La Ricerca Operativa oggi

Ai nostri giorni la rilevanza applicativa delle tecniche della RO e riconosciuta e apprezzatain ambito industriale. Negli ultimi cinque anni il numero di addetti del settore e infatti cresciutodi un fattore 100. Contestualmente, si e allargata la richiesta di esperti di RO nelle impresemanifatturiere e di servizi: un laureato, esperto di tecniche della RO puo ragionevolmenteaspirare, per esempio, a ricoprire incarichi di responsabilita nelle industrie manifatturiere, nellaassicurazioni, nel marketing, nelle societa di consulenza aziendale, nella pianificazione e, sempredi piu, nelle telecomunicazioni.

Alcuni esempi di problemi possono essere risolti per mezzo delle tecniche della RO sono iseguenti:

• Finanza e Investimenti;si vuole rispondere a domande del tipo: quanto dobbiamo investire, e come? Doverimediare i capitali necessari? Quanto ci costera? Alcuni esempi sono:

2

Page 5: Dispense del corso RICERCA OPERATIVA

– Selezione degli investimenti:si tratta di scegliere, fra un vasto insieme di alternative di investimento, quali atti-vare e quali no in presenza di vincoli di budget e con l’obiettivo di massimizzare iricavi.

– Scelta del portafoglio;consiste nel decidere in quali titoli e con quali quote investire i nostri capitali inmodo da massimizzare il ricavo atteso, oppure minimizzare il rischio, etc.

– Determinazione del prezzo di derivati finanziari;si vuole determinare il prezzo di un prodotto derivato finanziario (per esempiodi un’opzione o di un future) in funzione del tempo e dell’andamento del titolosottostaste.

• pianificazione della produzione;come assegnare la forza lavoro alle varie attivita della nostra impresa? Su quali macchinee per quanto tempo ci conviene effettuare i nostri processi?Si tratta di pianificare i livelli di produzione e/o l’utilizzazione di risorse; si hanno spessoproblemi di allocazione ottima di risorse cioe problemi riguardanti la distribuzione dirisorse limitate tra alternative concorrenti in modo da minimizzare il costo complessivo omassimizzare 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 mododa ottenere il miglior compromesso fra costi di riordino e di produzione/acquisto e costi diimmagazzinamento. Conviene, cioe, ordinare o produrre piu spesso minori quantita perfar fronte alla domanda corrente, oppure ordinare/produrre maggiori quantita e lasciarlein magazzino per soddisfare anche la domanda futura?

• localizzazione e dimensionamento di impianti;Quanti depositi di un’impresa di distribuzione alimentare costruire e dove localizzarli perservire i negozi a dettaglio in un’area d’interesse? Dove costruire degli ospedali (o scuoleo stazioni dei vigili del fuoco) in modo da ottimizzare il servizio fornito? Dove convienecostruire le stazioni di base di una rete GSM/UMTS per coprire soddisfacentementeterritorio e traffico, e con che potenza dovranno trasmettere? In senso lato, si trattadi 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 definire i collegamenti e dimensionare le capacita di una rete stradale, ditelecomunicazione, di trasmissione dati, etc., in modo da garantire il traffico tra le varieorigini e destinazioni e minimizzare il costo complessivo; ad esempio, per instradare lecomunicazioni telefoniche e dati fra Roma e Venezia, conviene costruire una nuova lineaad alta velocita in fibra ottica fra Firenze e Bologna oppure istallare un ponte radio alarga banda?

• determinazione di flussi ottimi; si devono inviare merci (informazioni, telecomunicazioni,corrente elettrica, etc.) da alcune sorgenti (origini) a un certo numero di destinazioniutilizzando una rete di strade (fibre ottiche, doppini telefonici, cavi coassiali, emettitori)in modo da soddisfare le richieste minimizzando i costi di trasporto.

3

Page 6: Dispense del corso RICERCA OPERATIVA

• assegnazione di frequenze di trasmissione;quali frequenze (prese da una banda limitata) devo assegnare a una rete di trasmetti-tori radio-televisivi in modo da minimizzare le interferenze reciproche o massimizzare lacopertura del territorio?

• sequenziamento;quali processo o operazione effettuare prima e quali dopo? Per esempio, come sequenziarei treni sulla rete in modo da evitare conflitti sulle tratte e minimizzare i tempi morti, leattese alle stazioni, etc.?

• project planning;come sequenziare le molteplici attivita di un progetto? Quanto durera il progetto? Comedevono essere gestite le risorse?

• allocazione ottima di componenti elettronici (VLSI design);come disegnare una piastra madre in modo da minimizzare le lunghezze dei percorsiseguiti 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 perriportare il personale alla loro sede). Un problema analogo si presenta nell’assegnazionedi equipaggi (piloti, hostess, stewart) a voli.

• manutenzione di beni;cioe il problema di decidere quando e se effettuare la manutenzione di alcuni beni soggettiad usura, in modo da minimizzare il costo complessivo.

• istradamento di veicoli;quali percorsi devono seguire i veicoli di una flotta di automezzi per, ad esempio, rac-cogliere l’immondizia, o rifornire una rete di negozi, in modo da minimizzare le distanzecomplessive percorse?

• studi sulla struttura del DNA;come assegnare sequenze a geni minimizzando la probabilita dell’errore sperimentale?Come determinare un albero filogenetico massimizzando la verosimiglianza?

• progettazione di forme ottime;che forma deve avere una macchina in modo da presentare meno resistenza possibileall’aria? Che profilo deve evere l’ala 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 tornareusando la quantita minima di carburante?

• ricostruzione di immagini;come si possono visualizzare le informazioni fornite, per esempio, da una TAC in mododa renderle piu 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 oalle sollecitazioni derivanti da un terremoto?

4

Page 7: Dispense del corso RICERCA OPERATIVA

• yield management ;Letteralmente traducibile come ”Gestione del ritorno economico”. In una azienda carat-terizzata da varieta di servizi e di prezzi, domanda variabile nel tempo, stabilire quanti equali servizi vendere avendo incertezza sulla domanda futura, allo scopo di massimizzareil profitto globale. Si tratta di un problema diffuso tra le compagnie di trasporto aereo,ferroviario, marittimo, ma anche per catene alberghiere e di noleggio auto.

Questa lista, lungi dall’essere esaustiva, serve a mettere in evidenza le potenzialita deglistrumenti della RO nella risoluzione di problemi applicativi complessi e disparati.

In Italia la penetrazione della RO e stata piuttosto lenta. La situazione e rovesciata negliStati Uniti e nell’Europa Centro-Settentrionale ove la crescita del settore e stata formidabile. Leragioni del ritardo sono in primo luogo culturali: mancanza di conoscenze approfondite da partedelle aziende, insufficente disseminazione dei risultati da parte dell’accademia. Lentamente,questa situazione va modificandosi anche in Italia, e la sensibilita delle aziende e fortementecresciuta negli ultimi due-tre anni. In particolare ci si e resi conto che l’informatizzazione capil-lare e l’accresciuta potenza di calcolo non sono sufficienti a risolvere i problemi dell’organizzazioneaziendale 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 un’azienda che impiega 70 dipendenti e deve assegnareciascuno di essi a 70 differenti mansioni; poiche le capacita lavorative di ogni singolo dipendentesono diverse, non e indifferente per l’azienda come effettuare l’assegnamento. Naturalmente sideve fare in modo che ciascun dipendente sia assegnato ad una sola mansione e che ciascunamansione sia svolta esattamente da un dipendente. Il problema consiste nel confrontare le70! possibilita che ci sono per selezionare quella migliore nel senso che permetta di ottenere ilmaggiore utile per l’azienda. Le possibilita sono un numero molto grande, piu grande di 10100.Ora si supponga di disporre di un calcolatore capace di effettuare un milione di calcoli al secondoe che sia in funzione dal tempo del big bang; avrebbe questo calcolatore oggi nell’anno 2000esaminato tutte le 70! combinazioni possibili ? La risposta e no. Supponiamo allora di disporredi un calcolatore che possa effettuare un bilione di assegnamenti per ogni nano secondo; larisposta sarebbe ancora no. Supponiamo allora di riempire la superficie terrestre di calcolatoridi questo tipo che lavorano in parallelo; la risposta sarebbe ancora no. Si dovrebbe disporre inverita di 1040 terre ciascuna ricoperta di calcolatori di questo tipo, in funzione dal tempo delbig bang fino a quando il sole si raffreddera.

Da questo esempio facile da enunciare si deduce come in certe situazioni sia assolutamenteimpossibile esaminare tutti i casi possibili per determinare qual e il migliore. Per questo,prima dell’avvento della RO, l’unica possibilita era affidarsi al buon senso di persone guidatedall’esperienza che stabilivano regole “ad hoc” di base che dovevano essere seguite per risolverei problemi (“ad hoc” ground-rule approach).

A questo tipo di approccio si contrappone la RO, il cui contributo centrale consiste nell’introduzionedel cosiddetto approccio modellistico-ottimizzatorio per la soluzione di un problema di decisione.In questo approccio si organizza l’analisi di un problema reale in due fasi:

• la rappresentazione del problema attraverso un modello matematico che ne astragga gli

1G.B. Dantzig - Linear Programming the story about it began: some legends, a little about historicalsignificance, and comments about where its many mathematical programming extensions may be headedin History of Mathematical programming - a collection of personal reminiscences, J.K. Lenstra, A.H.G.Rinnooy Kan and A. Schrijver eds., NOrth Holland (1991).

5

Page 8: Dispense del corso RICERCA OPERATIVA

aspetti essenziali e che schematizzi le interrelazioni esistenti tra i diversi aspetti delfenomeno che si sta studiando;

• lo sviluppo di metodi matematici efficienti (algoritmi di soluzione) per determinare unasoluzione ottima del problema o una sua buona approssimazione.

Naturalmente, per costruire correttamente un modello matematico-ottimizzatorio che rap-presenti un particolare fenomeno, si devono individuare i parametri di controllo significativi eun criterio per la valutazione della qualita della soluzione. La determinazione del modello eun’attivita complessa e non completamente formalizzabile, che deve far ricorso da una partea una conoscenza approfondita delle caratteristiche del problema in esame e dall’altra a stru-menti che provengono da diverse branche della matematica. Una volta determinato il modellocorretto, la RO si occupa di fornire una procedura esplicita per determinare una soluzione diun problema; tale procedura puo essere rappresentata da metodi matematici analitici o, comepiu spesso accade, da metodi numerici che determinano la soluzione del problema mediantespecifici algoritmi di calcolo. Da quanto detto si puo capire come la RO sia una metodologiatipicamente interdisciplinare, applicabile nei piu svariati contesti e come proprio dagli stimoliprovenienti da campi anche molto distanti tra di loro tragga una delle principlai ragioni dellasua attuale vitalita.

6

Page 9: Dispense del corso RICERCA OPERATIVA

1.3 L’approccio modellistico

Il termine modello e di solito usato per indicare una costruzione artificiale realizzata per ev-idenziare proprieta specifiche di oggetti reali. Esistono modelli concreti (come ad esempio iprototipi di aerei o automobili), ma piu spesso, come nella Ricerca Operativa, si consideranomodelli astratti cioe modelli matematici che usano il simbolismo dell’algebra per mettere inevidenza le relazioni principali dell’oggetto che deve essere modellato. I modelli di cui si trat-tera in seguito sono quindi modelli matematici, e sono costituiti da un insieme di relazioni chedescrivono in modo semplificato, ma rigoroso, uno o piu fenomeni del mondo reale. La nozionedi modello matematico per rappresentare il mondo reale non e certo nuova: gia Pitagora nel IVsecolo a.C. tentava di costruire un modello matematico dell’Universo. L’interesse per la mod-ellistica matematica e notevolmente cresciuto e attualmente si confida che attraverso modellimatematici sia possibile rappresentare molteplici aspetti del mondo reale e studiarne le pro-prieta. Cio ha portato ad un enorme sviluppo delle applicazioni della modellistica matematicaanche al di fuori delle tradizionali applicazioni alle scienze fisiche. Si e cosı avuta di fatto unavasta utilizzazione di modelli matematici in settori lontani dagli ambiti piu tradizionali come,ad esempio, le scienze sociali, la biologia, le scienze ambientali, la psicologia. Come esempiconcreti, si pensi agli studi sulla dinamica della popolazione, sulla diffusione delle epidemie,sul risanamento ambientale. Questa notevole diffusione della modellistica matematica e anchedovuta al fatto che l’evoluzione di un modello matematico puo essere rapidamente studiatagrazie all’uso di moderni calcolatori elettronici.

E evidente come in molti casi le situazioni rappresentate da un modello sono molto complessee alcune volte influenzate da fenomeni di natura aleatoria; per questa ragione, sono state definitediverse classi di modelli matematici: modelli stocastici che considerano grandezze che possonoessere influenzate 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, siparla di modelli statici e di modelli dinamici.

L’approccio modellistico per risolvere un problema di decisione o, piu in generale, l’impiegodi metodi matematici per la soluzione di problemi applicativi, viene di solito realizzato at-traverso 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 problemaLa prima fase consiste nell’analisi della struttura del problema e nell’individuazione dei datinecessari per una descrizione per una corretta definizione del problema. Si tratta cioe di in-dividuare i parametri di controllo e di individuare i legami logico-funzionali che definiscono ilproblema e lo/gli obiettivi.

Costruzione di un modello matematicoNella fase di costruzione del modello matematico si deve fornire una descrizione formalizzatadel problema di decisione facendo uso del linguaggio della matematica. Si dovra cercare, quindi,

7

Page 10: Dispense del corso RICERCA OPERATIVA

una corrispondenza tra relazioni del mondo reale (relazioni tecnologiche, leggi fisiche, vincoli dimercato, 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 codificabili in un pro-cedimento standard. In particolare, per la costruzione di modelli soddisfacente e necessariauna conoscenza approfondita dell’applicazione d’interesse e dei metodi matematici di soluzione.La conoscenza dell’applicazione assicura che il modello sia soddisfacente e risponda alle do-mande concrete che l’utilizzatore gli porra. La conoscenza dei metodi permette la definizionedi modelli ”risolvibili”, cioe per i quali e possibile (al termine del processo di modellazione) ladeterminazione di soluzioni di buona ”qualita”.

E importante ribadire che un modello e definito per mezzo delle relazioni che lo costituisconoed e quindi necessario che tali relazioni siano il piu possibile indipendenti dai dati introdottinel modello; questo perche uno stesso modello deve poter essere usato in differenti occasionicon dati (cioe costi, disponibilita di risorse, limiti tecnologici, etc.) diversi. Lo studio di questoaspetto, come gia detto, rientra nella fase di analisi del modello sotto il nome di analisi dellastabilita del modello rispetto ai dati introdotti.

In generale, la costruzione formale di un modello di Programmazione Matematica si puo sinte-tizzare come segue:

1. Associare opportune variabili di decisione alle grandezze reali. Tali variabili costi-tuiscono le incognite del problema.

2. Esprimere quantitativamente i legami esistenti tra le variabili e le limitazioniderivanti da considerazioni di carattere fisico, economico, etc. Tali legami e limi-tazioni definiscono i vincoli. L’insieme dei valori delle variabili per cui i vincoli sonosoddisfatti costituisce l’insieme ammissibile.

3. Esprimere formalmente l’obiettivo che si intende minimizzare o massimizzare.

Analisi del modello matematicoSegue l’analisi del modello che prevede la deduzione per via analitica, in riferimento a determi-nate classi di problemi, di alcune importanti proprieta; le principali sono:

– esistenza della soluzione ottima;

– condizioni di ottimalita, cioe una caratterizzazione analitica della soluzione ottima;

– stabilita delle soluzioni al variare dei dati o di eventuali parametri presenti.

Lo studio delle condizioni di ottimalita ha sia motivazioni di natura teorica, sia motivazionidi natura algoritmica. Dal punto di vista teorico, una condizione di ottimalita puo servire a

8

Page 11: Dispense del corso RICERCA OPERATIVA

caratterizzare analiticamente le soluzioni di un problema di ottimo e quindi consentire di svol-gere analisi qualitative, anche in assenza di soluzioni numeriche esplicite; un esempio e l’analisidella sensibilita delle soluzioni di un problema di ottimo rispetto a variazioni parametriche.

Selezione di “buona” soluzioneLa successiva fase di selezione di “buona” soluzione corrisponde alla possibilita di determinaretra tutte le scelte possibili costituite dalle soluzioni ammissibili, quella ottima o una sua buonaapprossimazione.

I problemi di ottimizzazione che si presentano nella pratica sono di solito cosı complessiche non e possibile determinarne una soluzione per via analitica. La complessita e determinatainnanzi tutto dal numero di variabili e di vincoli, che definiscono la dimensione del problema;e poi dalla eventuale presenza di funzioni non lineari tra le funzioni che definiscono l’obiettivoe/o i vincoli.

Se il modello e molto semplice puo essere possibile risolvere le relazioni e utilizzare i dati adisposizione per determinare una soluzione analitica. La soluzione analitica e possibile solo nelcaso di poche variabili e di funzioni estremamente semplici, e cioe solo nei casi che si utilizzanocome esempi ed esercizi nei testi e sulla lavagna. Molto spesso, anche se esiste una soluzioneanalitica e estremamente complessa e la sua determinazione richiede molte risorse di calcolo; adesempio invertire una matrice e un banale esempio per il quale esiste una formula analitica, mache dal punto di vista numerico puo per certe istanze non essere affatto banale. Quindi, nellapratica, per determinare una “buona” soluzione di un problema di ottimizzazione occorre farericorso all’uso del calcolatore.I due aspetti piu importanti e in qualche modo complementari nella ricerca Operativa dell’usodel calcolatore per la soluzione di un modello matematico sono la simulazione e l’ottimizzazione.

Il processo di simulazione utilizza un modello matematico che consente di visualizzarel’effetto di alcune decisioni sul sistema in esame senza che queste debbano essere realizzateeffettivamente sul processo reale. La simulazione consiste quindi nella valutazione numericadelle funzioni che definiscono il modello per alcuni valori delle variabili di interesse allo scopodi verificare come influenzino alcune misure di performance dell’uscita. Molto spesso, i modelliper i quali si utilizza la simulazione includono qualche aspetto di natura stocastica e anchedinamica (di evoluzione nel tempo).La simulazione puo essere usata come strumento per l’ottimizzazione nel senso che colui cheprende le decisioni puo procedere per tentativi e scegliere la “migliore” tra varie alternativepossibile. Il modello matematico implementato nel simulatore consente di valutare l’effetto dellesue decisioni sul sistema nel suo complesso. Questo tipo di approccio e detto analisi di scenari.L’analisi di scenari e particolarmente utile nel caso di sistemi estremamente complessi e per iquali una rappresentazione analitica di tutti i legami logico-funzionali puo non essere possibile.La soluzione determinata tramite l’analisi di scenari possibili non ha pero alcuna garanziadi essere quella ottima o una sua approssimazione. L’uso della simulazione come strumentodi ottimizzazione puo essere poco significativo sebbene estremamente flessibile; viceversa puoavere un ruolo molto significativo nella successiva fase di validazione del modello in quantoconsente di individuare imprecisioni e/o errori nel modello stesso.Non si deve confondere quindi il ruolo di ottimizzazione e simulazione. Dato un modello, ilprocesso di ottimizzazione consiste nella determinazione della soluzione ottima, se esiste, oalmeno di una sua buona approssimazione. Nella pratica, per risolvere un problema di ottimiz-zazione occorre fare ricorso ad un algoritmo iterativo, cioe ad un programma di calcolo che, apartire da una approssimazione iniziale x0 della soluzione, determina, con una appropriata se-

9

Page 12: Dispense del corso RICERCA OPERATIVA

quenza di operazioni che definiscono una successione di valori xk, una nuova approssimazionex∗. La possibilita di realizzazione di algoritmi e fortemente legata alla capacita di definirecondizioni di ottimalita che caratterizzano la soluzione ottima di un certo modello.

L’analisi del modello matematico e la definizione di un algoritmo per la sua soluzione sonoaspetti fortemente legati tra di loro.Molto spesso software di ottimizzazione e di simulazione sono integrati con software statisticoo con fogli elettronici (spreadsheets). La combinazione di simulazione e/o ottimizzazione conla “visualizzazione” dei risultati e una combinazione vincente. La visualizzazione rende l’uscitadel processo di simulazione e/o di ottimizzazione molto piu comprensibile e aggiunge spessomaggior credibilita al modello, soprattutto nei confronti di un pubblico non tecnico.L’uso di fogli elettronici per la costruzione di modelli per l’uso di simulazione e di ottimizzazionesara discusso in un capitolo successivo.

Validazione del modelloLa soluzione numerica ottenuta al passo precedente deve poi essere valutata praticamente.Questa fase di costruzione del modello non deve essere sottovalutata. I motivi di inattendibilitadi un modello possono essere molti; in particolare la maggior difficolta consiste nell’ottenere datie/o informazioni validi. Spesso questo e legato al diverso linguaggio utilizzato dagli esperti delproblema reale e dagli esperti di ottimizzazione. Informazioni essenziali sono spesso trascurateperche talmente scontate per l’esperto del problema da non dover essere raccontate. O viceversamodelli matematici troppo dettagliati possono produrre soluzioni incomprensibili.La “validazione” del modello puo avvenire attraverso una verifica sperimentale oppure conmetodi di simulazione, allo scopo di ottenere, in questa fase di interazione con l’esperto, unmodello matematico sempre piu attendibile.

La definizione di un modello si configura quindi come un processo di raffinamento iterativo,che puo essere schematizzato come rappresentato in Figura 1.1.

10

Page 13: Dispense del corso RICERCA OPERATIVA

ANALISI DEL PROBLEMA

COSTRUZIONEDEL MODELLO

ANALISI DEL MODELLO

SOLUZIONENUMERICA

VALIDAZIONEDEL MODELLO

Figura 1.1: Fasi dell’approccio modellistico

Vantaggi dell’approccio modellisticoEsistono diverse ragioni per adottare l’approccio modellistico per la soluzione di problemi: siriassumono di seguito le principali.

– Maggiore comprensione del problema.Il modello e una rappresentazione semplificata del problema e spesso la sua costruzioneconsente di individuare proprieta strutturali del problema che altrimenti non sarebberoaffatto evidenti.

– Possibilita di risolvere matematicamente il problema.Grazie al modello e possibile analizzare matematicamente il problema ed ottenere cosı unasoluzione che, soprattutto in riferimento a scopi di pianificazione, permette di adottarestrategie che da una sola analisi strutturale del problema non apparirebbero evidenti oche a volte potrebbero essere perfino controintuitive.

– Deduzione analitica di importanti proprieta.Nella fase di analisi del modello e possibile dedurre per via analitica alcune importantiproprieta del problema sulla base dei risultati disponibili per la classe di problemi a cuisi fa riferimento.

11

Page 14: Dispense del corso RICERCA OPERATIVA

– Possibilita di simulazioni.Con un modello e possibile effettuare esperimenti che spesso non e possibile effettuare di-rettamente nella realta. La fase di simulazione e un passo fondamentale nella costruzionedi un modello che puo essere utilizzata per verificare l’effetto di una decisione, non nec-essariamente quella ottima, su un prototitpo del sistema e non sul sistema stesso; adesempio, l’uso di un modello consente di studiare gli effetti dell’adozione di una partico-lare misura economica in un paese senza la necessita di sperimentarla direttamente. Ildecision maker ha uno strumento che gli consente di valutare l’effetto di una sua decisionesenza essere necessariamente in grado di capire l’aspetto modellistico del problema.

Critiche all’approccio modellisticoLe principali critiche all’approccio modellistico possono essere sintetizzate nei seguenti duepunti:

– Impossibilita di quantificare soddisfacentemente con opportuni valori numerici alcuni datirichiesti dal modello; questo accade, ad esempio, nel tentativo di quantificare con un costoo con un profitto alcuni valori sociali soprattutto in relazione a scopi di pianificazione.

– La qualita delle risposte che un modello produce potrebbero dipendere profondamentedall’accuratezza dei dati introdotti.

La qualita delle risposte fornite dal modello dipende dall’accuratezza della sua definizione:la fase di validazione e cruciale per valutare la soluzione numerica ottenuta e completare ilmodello introducendo elementi trascurati in una prima fase.

1.4 Un primo esempio di costruzione di un modello matem-atico

Come primo esempio di costruzione di un modello matematico analizziamo un semplice prob-lema di pianificazione degli investimenti.

Esempio 1.4.1 – Capital Budgeting. Supponiamo di dover investire £1000 sul mercatofinanziario. Supponiamo inoltre che il mercato offra tre tipi diversi di investimenti A,B,Cciascuno caratterizzato da un prezzo d’acquisto e da un rendimento netto, che sono riassuntinella seguente tabella:

A B Ccosto 750 200 800rendimento 20 5 10

Si vuole decidere quali degli investimenti effettuare per massimizzare il rendimento sapendo chegli investimenti A, B, C non si possono effettuare in modo parziale cioa non sono frazionabili.

Analisi del problema e costruzione del modello.

Si tratta di un problema di pianificazione degli investimenti. Si devono definire formalmente levariabili di decisione, l’insieme delle soluzioni ammissibili e la funzione obiettivo.

12

Page 15: Dispense del corso RICERCA OPERATIVA

– Variabili di decisione. In questo caso il decisore vuole semplicemente sapere, per ogni investi-mento, se tale investimento deve essere effettuato oppure no. Una scelta naturale delle variabilidi decisione e la seguente:

xi = 0 non si effetua l’investimento i−esimo

1 si effettua l’investimento i−esimoi = A,B,C (1.1)

– Insieme ammissibile. In base alla definizione delle variabili, le possibili scelte compatibili conil nostro budget sono:

(0) non si effettuano investimenti xA = xB = xC = 0

(1) si effettua l’investimento A; xA = 1, xB = xC = 0

(2) si effettua l’investimento B; xA = 0, xB = 1, xC = 0

(3) si effettua l’investimento C; xA = xB = 0, xC = 1

(4) si effettuano gli investimenti A e B; xA = xB = 1, xC = 0

(5) si effettuano gli investimenti B e C; xA = 0, xB = xC = 1.

(6) si effettuano gli investimenti A e C; xA = 1, xB = 0, xC = 1.

(7) si effettuano gli investimenti A, B e C; xA = xB = xC = 1.

Tra queste solo alcune sono compatibili con il nostro budget. In particolare, notiamo che lepossibilita A, C e A, B, C non sono ammissibili in quanto il costo supera la nostra disponibilita,come si evince dalla Tabella 1.4.

L’insieme ammissibile oe costituito dalle scelte (0)− (5) ed e dato da:

S =

000

,

100

,

010

,

001

,

110

,

011

Si tratta quindi di un sottoinsieme dei vettori di IR3 a componenti 0− 1 ovvero

S ⊆ 0, 13

– Funzione obiettivo. L’obiettivo che ci proponiamo e la massimizzazione del rendimento totale.Quindi dobbiamo esprimere la funzione obiettivo che corrisponde al rendimento netto relativoalla scelta di x = (xA, xB , xC)T in S E possibile ottenere la soluzione ottima valutando esausti-vamente la funzione obiettivo per ogni elemento di S, ottenendo in relazione alle possibili sceltei valori riportati nella Tabella 1.4.La soluzione ottima e ovviamente quella corrispondente alla scelta (4), cioe all’effettuare gliinvestimenti A e B, con valore della funzione obiettivo pari a £25.

Questo rappresentazione del problema ha alcuni difetti, in particolare:

1. L’insieme ammissibile S e rappresentato in modo estensivo, cioe elencando tutte lesoluzioni ammissibili. In questo caso la cardinalita dell’insieme ammissibile e al piuquella di 0, 13 cioe 23, ma in generale, se la dimensione del problema fosse piu grandesarebbe impossibile valutare esaustivamente le soluzioni del problema. Se, ad esempio, ilnumero degli investimenti fosse stato 100 (che dal punto di vista delle applicazioni realie del tutto verosimile) la cardinalita dell’insieme ammissibile sarebbe stata 2100 e per la

13

Page 16: Dispense del corso RICERCA OPERATIVA

Investimento(0) (1) (2) (3) (4) (5) (6) (7)

costi 0 750 200 800 950 1000 1550 1750rendimento 0 20 5 10 25 15 30 35

Tabella 1.1: Tabella costi e rendimenti relativi a tutte le possibili combinazioni diinvestimento

valutazione di 2100 possibilita anche supponendo di utilizzare un calcolatore che effet-tui 1010 valutazioni al secondo (velocita superiore a quella raggiungibile dai calcolatoriattuali) occorrerebbero 1020 secondi, cioe 3000 miliardi di anni !

2. Il modello non e indipendente dai dati del problema, cioe cambiando i dati del problema(prezzi e/o rendimenti) sarebbe necessario cambiare completamente il modello.

In genere si cerca di dare una rappresentazione intensiva dell’insieme ammissibile S, cioeindividuare le proprieta P (x) che consentono di distinguere le soluzioni ammissibili dagli ele-menti dell’insieme 0, 13 che non lo sono. Si vuole quindi scrivere l’insieme S in una forma deltipo:

S =x ∈ 0, 13 : vale la proprieta P (x)

.

Nell’esempio, la proprieta distintiva degli elementi di S e il costo complessivo che non deveessere superiore a £1000. Possiamo esprimere matematicamente questa relazione come:

P (x) : 750xA + 200xB + 800xC ≤ 1000

e quindi l’insieme ammissibile si puo scrivere

S =x = (xA, xB , xC)T ∈ 0, 13 : 750xA + 200xB + 800xC ≤ 1000

.

Anche la funzione obiettivo puo essere scritta in forma piu sintetica come:

f(x) = 20xA + 5xB + 10xC .

In conclusione, il problema di decisione puo essere posto nella forma:

max (20xA + 5xB + 10xC)750xA + 200xB + 800xC ≤ 1000xi ∈ 0, 1 i = A,B,C.

14

Page 17: Dispense del corso RICERCA OPERATIVA

Capitolo 2

Modelli di Ottimizzazione

2.1 Introduzione

In questo capitolo ci occuperemo piu nel dettaglio di quei particolari modelli matematici noticome 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 puo essere formulatonella forma:

min f(x)x ∈ S.

(PO)

Quindi un problema di Ottimizzazione consiste nel determinare, se esiste, un punto di minimodella funzione f tra i punti dell’insieme S. I problemi di ottimizzazione sono spesso denominati,con terminologia equivalente, problemi di Programmazione Matematica.Osserviamo subito che un problema di massimo si puo sempre ricondurre a un problema diminimo, cambiando di segno la funzione obiettivo. Infatti, i punti di massimo (ove esistano)del problema

max f(x)x ∈ S

coincidono con i punti di minimo del problema

min −f(x)x ∈ S

e risulta: maxx∈S

f(x) = −minx∈S

(−f(x)).

In base a tale osservazione ci si puo riferire esclusivamente, senza perdita di gene-ralita, a problemi di minimizzazione.

La funzione f viene chiamata funzione obiettivo e l’insieme S insieme ammissibile cioel’insieme delle possibili soluzioni del problema. Un punto x ∈ S si chiama soluzione ammissibile.

15

Page 18: Dispense del corso RICERCA OPERATIVA

L’insieme ammissibile S e un sottoinsieme di IRn e quindi x = (x1, x2, . . . , xn)T e unavariabile vettoriale n-dimensionale e la funzione obiettivo f e una funzione di n variabili realif(x1, x2, . . . , xn).

2.2 Definizioni preliminari

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

Definizione 2.2.1 (Problema inammissibile) Il problema di ottimizzazione (PO) si diceinammissibile se S = ∅, cioe se non esistono soluzioni ammissibili.

Definizione 2.2.2 (Problema illimitato) Il problema di ottimizzazione (PO) si dice il-limitato (inferiormente) se comunque scelto un valore M > 0 esiste un punto x ∈ S tale chef(x) < −M .

Un esempio di PO illimitato inferiormente e dato da f(x) = x3 e S = x : x ≤ 2. Infatti, altendere di x a −∞ la funzione obiettivo tende anch’essa a −∞. Notiamo che se, con la stessafunzione obiettivo, si cambia l’insieme S, e si pone S = x : x ≥ 0, il problema non e piuillimitato inferiormente.

Definizione 2.2.3 (Punto di minimo globale) Si dice che il problema di ottimizzazione(PO) ammette soluzione ottima (finita) 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 dicevalore ottimo.

Per esempio, se si pone f = x2 e S = IR, l’ottimo e l’origine, e il corrispondente valore ottimoe zero. Se si prende S = x : x ≥ 2, l’ottimo e 2 e il valore ottimo 4.

In molti problemi di ottimo, in cui la ricerca di soluzioni globali puo risultare difficile, puoavere interesse anche la ricerca di soluzioni di tipo “locale”. Indichiamo allora con U(x) unintorno di un punto x e consideriamo la definizione seguente.

16

Page 19: Dispense del corso RICERCA OPERATIVA

Definizione 2.2.4 (Punto di minimo locale) Un punto x∗ ∈ S si dice punto di minimolocale 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 6= x∗.

Per esempio, se si pone f = −x2 e S = x : −2 ≤ x ≤ 1, l’ottimo (minimo globale) e x = −2di valore ottimo -4, ed il punto x = 1 e un minimo locale di valore pari a 1.

E immediato rendersi conto del fatto che

un punto di minimo globale e anche un punto di minimo locale, ma non e vero in generale ilviceversa.

Naturalmente si puo anche presentare il caso in cui la funzione obiettivo e limitata inferiormentesu S ossia:

infx∈S

f(x) > −∞,

ma tuttavia non esistono punti di minimo globale di f su S.“Risolvere” un problema di ottimizzazione significa quindi, in pratica:

- stabilire se l’insieme ammissibile e non vuoto, oppure concludere che non esistono soluzioniammissibili;

- stabilire se esistono soluzioni ottime, oppure dimostrare che il problema non ammettesoluzioni ottime;

- determinare (eventualmente in modo approssimato) una soluzione ottima.

All’interno dei problemi di Ottimizzazione si possono distinguere le seguenti importanticlassi di problemi:

17

Page 20: Dispense del corso RICERCA OPERATIVA

• Problemi di Ottimizzazione Continua.

Le variabili possono assumere tutti i valori reali (x ∈ IRn); ed inoltre si parla diproblemi 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 distinguereall’interno di questa classe di problemi altre due classi:

– programmazione a numeri interi se S ⊆ Zn

– ottimizzazione booleana se S ⊆ 0, 1n.

• Problemi misti.

Solo alcune delle variabili sono vincolate ad essere intere.

2.3 Problemi di Programmazione Matematica

Di solito l’insieme ammissibile S viene descritto da una numero finito di diseguaglianze deltipo g(x) ≤ 0, dove g e una funzione definita su IRn a valori reali. Cioe, formalmente, date mfunzioni gi : IRn → 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 l’insieme ammissibile e quindiformato da tutti quei punti x ∈ IRn che sono soluzione del sistema di diseguaglianze

g1(x) ≤ 0g2(x) ≤ 0g3(x) ≤ 0

...gm(x) ≤ 0

Osservazione 2.3.1 In questa formulazione dell’insieme S si sono utilizzati vincoli di dis-eguaglianza nella forma di minore o uguale, ma e chiaro che questa notazione include i casi incui i vincoli sono espressi con vincoli di disuguaglianza nella forma di maggiore o uguale e vin-coli di uguaglianza; infatti si puo sempre trasformare un vincolo di maggiore o uguale del tipog(x) ≥ 0 in un vincolo di minore o uguale semplicemente riscrivendolo nella forma −g(x) ≤ 0.Inoltre un vincolo di uguaglianza g(x) = 0 puo essere riscritto nella forma equivalente delle duediseguaglianze g(x) ≤ 0 e −g(x) ≤ 0.

18

Page 21: Dispense del corso RICERCA OPERATIVA

Quindi si puo riscrivere il problema di ottimizzazione (PO) nella forma

min f(x)gi(x) ≤ 0, i = 1, . . . , m.

(2.1)

Un problema di questo tipo viene chiamato problema di Programmazione Matematica.

I problemi di Programmazione Matematica si possono classificare in base alle proprieta dellafunzione obiettivo e dei vincoli prendendo in considerazione, tra le piu significative la linearita,la convessita.Una prima distinzione e quella che fa riferimeno all’ipotesi di linearita. Da tale punto di vista,possiamo distinguere:

- problemi di Programmazione Lineare (PL), in cui l’obiettivo e una funzione lineare deltipo

c1x1 + c2x2 + · · ·+ cnxn,

e i vincoli sono espressi da un sistema di equazioni e disequazioni lineari, cioe esprimibilinella forma

ai1x1 + . . . + ainxn ≥ (≤ / =)bi

- problemi di Programmazione Non Lineare (PNL), in cui l’obiettivo oppure i vincoli nonsono tutti lineari.

I problemi di PNL corrispondono alla situazione piu generale. I problemi non vincolati rientranonella classe di PNL, infatti, in tal caso f e necessariamente una funzione non lineare da Rn inR; e facile verificare che se f fosse lineare il problema non ammetterebbe soluzione.Inoltre, in linea di principio, possono essere formulati come problemi di PNL anche i problemicombinatori.

La classificazione dei problemi di Programmazione Matematica in base alla proprieta diconvessita sara affrontata 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 chesi vuole minimizzare, con i vincoli 2x1 + x2 ≤ 1, x1 ≥ 0, x2 ≥ 0. Si ottiene il problema

min 2x1 + x2

x1 + x2 ≤ 1x1 ≥ 0x2 ≥ 0

che e nella forma (2.1) dove g1(x1, x2) = x1 + x2 − 1, g2(x1, x2) = −x1, g3(x1, x2) = −x2.L’insieme ammissibile e descritto attraverso da tre vincoli. Poiche tutte le funzioni che com-paiono sono lineari nella variabili x1 e x2, questo problema e un problema di ProgrammazioneLineare.

Esempio 2.3.3 Si consideri una funzione obiettivo f(x1, x2) = (x1 − 12 )2 + (x2 − 1

2 )2 che sivuole massimizzare, con i vincoli x1 + x2 ≥ 1, x1 ≤ 1, x2 ≤ 1. Si ottiene il problema

min −(x1 − 12 )

2 − (x2 − 12 )

2

x1 + x2 ≥ 1x1 ≤ 1x2 ≤ 1

19

Page 22: Dispense del corso RICERCA OPERATIVA

che e nella forma (2.1) dove g1(x1, x2) = 1− x1 − x2, g2(x1, x2) = x1 − 1, g3(x1, x2) = x2 − 1.L’insieme ammissibile e un poliedro; la funzione obiettivo e quadratica. Si tratta quindi di unproblema di Programmazione Non Lineare.

Esempio 2.3.4 Si consideri una funzione obiettivo f(x1, x2) = 3x31 + 7x2

1 + x2 che si vuoleminimizzare, con vincoli x1 + x2 ≤ 1

2 , x1 ≥ 0, x2 ≥ 1. Si ottiene il problema

min 3x31 + 7x2

1 + x2

x1 + x2 ≤ 12

x1 ≥ 0x2 ≥ 1

che e un problema di Programmazione Non Lineare che puo essere facilmente ricondotto nellaforma (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 minimizzaresulla regione ammissibile descritta dal vincolo di uguaglianza 4x1 − x2 = −2. Il problemarisultante 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 dipianificazione della produzione e un problema di progettazione industriale.

Esempio 2.4.1 (Un problema di produzione (allocazione di risorse)) Un colorificio pro-duce due tipi di coloranti C1 e C2 utilizzando 3 preparati base in polvere P1, P2, P3 che ven-gono sciolti in acqua. La differente concentrazione dei preparati base da origine ai due diversitipi di coloranti. Le quantita (in ettogrammi) di preparati base necessarie per produrre un litrodi colorante di ciascuno dei due tipi e riportato nella seguente tabella

C1 C2

P1 1 1P2 1 2P3 - 1

Ogni giorno la quantita di ciascuno dei preparati base (in ettogrammi) della quale il colorificiopuo disporre e la seguente

P1 P2 P3750 1000 400

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

20

Page 23: Dispense del corso RICERCA OPERATIVA

Formulazione.Si vuole costruire il modello di Programmazione Lineare che rappresenti il problema in analisiconsiderando le limitazioni date dalle produzioni effettivamente realizzabili.

E immediato associare le variabili di decisione ai quantitativi di coloranti prodotti. Siano,quindi, rispettivamente x1 e x2 i quantitativi (in litri) da produrre giornalmente dei due col-oranti.

Nel formulare il modello di Programmazione Lineare si deve verificare che siano soddisfattele ipotesi fondamentali:

• Proporzionalita.I consumi dei preparati base e i ricavi ottenibili sono proporzionali ai quantitativi di col-oranti prodotti. Ad esempio, per produrre una quantita x2 di colorante C2 si consumano2x2 ettogrammi di P2 e dalla vendita di x2 litri di C2 si ricavano 10x2 migliaia di lireindipendentemente dalla quantita prodotta e venduta dell’altro tipo di colorante.

• Additivita.I consumi dei preparati base e i ricavi rispettivamente associati alla produzione dei duecoloranti sono additivi, nel senso che per produrre x1 litri di colorante C1 e x2 di C2 siconsumano x1+2x2 ettogrammi di preparato di base P2 e si ricavano 7x1+10x2 migliaiadi lire.

• Continuita.Ogni variabile introdotta nel modello puo assumere tutti i valori reali nell’intervallo diammissibilita.

– Variabili. Come gia detto, prendiamo come variabili di decisione x1 e x2, rispettivamente iquantitativi (in litri) di colorante C1 e C2 da produrre giornalmente.– Funzione obiettivo. E rappresentata dal profitto totale che per le ipotesi fatte e dato (in Euro)da 7x1 + 10x2.– Vincoli. Poiche il consumo di preparati base non puo essere superiore alla disponibilita sideve avere

x1 + x2 ≤ 750x1 + 2x2 ≤ 1000

x2 ≤ 400.

Inoltre si deve esplicitare il vincolo di non negativita sulle variabili

x1 ≥ 0, x2 ≥ 0.

Quindi la formulazione finale e

max 7x1 + 10x2

x1 + x2 ≤ 750x1 + 2x2 ≤ 1000x2 ≤ 400x1 ≥ 0, x2 ≥ 0.

21

Page 24: Dispense del corso RICERCA OPERATIVA

Esempio 2.4.2 (Un problema di pianificazione della produzione industriale)) Un’industriachimica fabbrica 4 tipi di fertilizzanti, Tipo 1, Tipo 2, Tipo 3, Tipo 4, la cui lavorazionee affidata a due reparti dell’industria: il reparto produzione e il reparto confezione. Per ot-tenere fertilizzante pronto per la vendita e necessaria naturalmente la lavorazione in entrambi ireparti. La tabella che segue riporta, per ciascun tipo di fertilizzante i tempi (in ore) necessaridi lavorazione in ciascuno dei reparti per avere una tonnellata di fertilizzante pronto per lavendita.

Tipo 1 Tipo 2 Tipo 3 Tipo 4Reparto produzione 2 1.5 0.5 2.5Reparto confezionamento 0.5 0.25 0.25 1

Dopo aver dedotto il costo del materiale grezzo, ciascuna tonnellata di fertilizzante da i seguentiprofitti (prezzi espressi in Euro per tonnellata)

Tipo 1 Tipo 2 Tipo 3 Tipo 4profitti netti 250 230 110 350

Determinare le quantita che si devono produrre settimanalmente di ciascun tipo di fertilizzantein modo da massimizzare il profitto complessivo, sapendo che settimanalmente il reparto pro-duzione puo lavorare al piu 100 ore mentre il reparto confezionamento puo lavorare al piu 50ore settimanali.

Analisi del problema e costruzione del modello.Si tratta di un problema di pianificazione della produzione industriale. Costruiamo un mod-ello di Programmazione Matematica rappresentante il problema in analisi supponendo di volerpianificare la produzione settimanale.– Variabili di decisione. La scelta delle variabili di decisione e molto delicata: infatti la qualitadell’intero modello dipendera da essa. In genere, per stabilire l’opportuno insieme di variabilidi decisione, conviene porsi la seguente domanda: che cosa vuole sapere il decisore alla fine delprocesso di ottimizzazione? Ancora meglio, cosa gli e sufficiente sapere, per prendere le suedecisioni? In questo caso, ad esempio, tutto cio che il decisore deve conoscere sono le quantita difertilizzante da produrre per ciascun tipo. Dunque introduciamo le variabili reali x1, x2, x3, x4

rappresentanti rispettivamente le quantita di prodotto del Tipo 1, Tipo 2, Tipo 3, Tipo 4da fabbricare in una settimana.– Funzione Obiettivo. Ciascuna tonnellata di fertilizzante contribuisce al profitto totale secondola tabella data. Quindi il profitto totale sara

250x1 + 230x2 + 110x3 + 350x4. (2.2)

L’obiettivo dell’industria sara quello di scegliere le variabili x1, x2, x3, x4 in modo che l’espressione(2.2) del profitto sia massimizzata. La (2.2) rappresenta la funzione obiettivo.– Vincoli. Ovviamente la capacita produttiva della fabbrica limita i valori che possono assumerele variabili xj , j = 1, . . . , 4; infatti si ha una capacita massima lavorativa in ore settimanali diciascun reparto. In particolare per il reparto produzione si hanno a disposizione al piu 100 oresettimanali e poiche ogni tonnellata di fertilizzante di Tipo 1 utilizza il reparto produzione per2 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 dovra avere

2x1 + 1.5x2 + 0.5x3 + 2.5x4 ≤ 100. (2.3)

22

Page 25: Dispense del corso RICERCA OPERATIVA

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 esplicitarevincoli dovuti al fatto che le variabili xj , j = 1, . . . 4 rappresentando quantita di prodotto nonpossono essere negative e quindi vanno aggiunti i vincoli di non negativita

x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0.

La formulazione finale sara quindi

max 25x1 + 23x2 + 11x3 + 35x4

2x1 + 1.5x2 + 0.5x3 + 2.5x4 ≤ 1000.5x1 + 0.25x2 + 0.25x3 + x4 ≤ 50x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0.

Questa formulazione e un problema matematico ben definito e costituisce il modello di Program-mazione Matematica rappresentante il problema di pianificazione della produzione industrialein analisi. Si tratta, in questo caso, di un problema di programmazione lineare.

Esempio 2.4.3 (Dimensionamento ottimo) Un’industria deve costruire un silos di formacilindrica. Tale silos deve essere posto in un magazzino appoggiato su una delle basi. Talemagazzino e a pianta rettangolare di dimensioni metri 20× 10 ed ha un tetto spiovente lungo illato di 10 metri, che ha altezza massima di metri 5 e altezza minima di metri 3. Per costruirequesto silos deve essere usato del materiale plastico sottile flessibile che puo essere tagliato,modellato e incollato saldamente. Sapendo che si dispone di non piu di 200 m2 di tale materialeplastico si costruisca un modello che permetta di determinare le dimensioni del silos (raggio dibase ed altezza) in modo da massimizzare la quantita di liquido che puo esservi contenuto.

Analisi del problema e costruzione del modello.

Si tratta di determinare il dimensionamento ottimale di un contenitore cilindrico per uso in-dustriale cercando di massimizzare il suo volume tenendo presente che deve essere contenuto inun magazzino di dimensioni fissate.

Si devono definire formalmente le variabili di decisione, l’insieme delle soluzioni ammissibilie la funzione obiettivo.– Variabili di decisione. E immediato introdurre due variabili x e y che rappresentano rispet-tivamente la lunghezza (in metri) del raggio di base e dell’altezza del contenitore cilindrico.

– Funzione obiettivo. La funzione obiettivo e rappresentata dal volume del contenitore cilindricoed e data da

πx2y.

– Vincoli. Il diametro della base non puo superare le dimensioni del magazzino e quindi deveessere

2x ≤ 10.

23

Page 26: Dispense del corso RICERCA OPERATIVA

La limitazione dell’altezza del contenitore varia al variare del diametro di base in quanto il tettoe spiovente. Dato che la pendenza del tetto e del 20%, dovra risultare

y ≤ 5− 0.2 · 2x.

Inoltre disponendo solo di una quantita limitata di materiale plastico la superficie totale delcontenitore cilindrico non puo superare 200m2 e quindi deve risultare

2πx2 + 2πxy ≤ 200.

Si devono infine esplicitare i vincoli di non negativita x ≥ 0, y ≥ 0.La formulazione complessiva risulta quindi

max x2yx ≤ 5y ≤ 5− 0.2 · 2x2πx2 + 2πxy ≤ 200x ≥ 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 l’offerta sul mercato i = 1, 2e con Pi = fi(xi) la funzione di domanda inversa sul mercato i. Supponiamo inoltre che il costodi produzione sia proporzionale con una costante c alla offerta complessiva x1 +x2. Il problemaconsiste nel massimizzare il profitto del monopolista.

Analisi del problema e costruzione del modello.– Variabili di decisione. E immediato considerare le due variabili x1, x2 che rappresentanol’offerta sui due mercati distinti del bene.

– Funzione obiettivo. Su vuole massimizzare il profitto, ovvero ricavo meno costi. La funzionericavo e

x1f1(x1) + x2f(x2),

mentre il costo e c(x1 + x2). Il profitto totale sara quindi

f(x) = x1f1(x1) + x2f(x2)− c(x1 + x2).

– Vincoli. Poiche le due variabili rappresentano un’offerta si tratta di quantita non negativexi ≥ 0 per i = 1, 2.

Piu in generale nel caso di n mercati distinti, posto x = (x1, . . . , xn)T si ha l’insieme ammissibile:

S = x ∈ Rn : x ≥ 0 .

Il problema di ottimizzazione corrispondente e

maxx∈S

n∑

i=1

xifi(xi)− c

n∑

i=1

xi.

24

Page 27: Dispense del corso RICERCA OPERATIVA

Molto spesso le funzioni fi(xi) hanno un andamento lineare del tipo

fi(xi) = ai −mixi con mi > 0.

La funzione ricavo risulta essere quindi una funzione quadratica del tipo

n∑

i=1

xi(ai −mixi) = −xT Mx + aT x

con M matrice diagonale ad elementi positivi diagmini=1 e a = (a1 . . . , an)T .

Esempio 2.4.5 (Problemi di approssimazione o di curve fitting)Supponiamo di conoscere i valori φ(ti) che una funzione continua φ : R → R assume in puntiti con i = 1, . . . , N in un intervallo [tmin, tmax]. Si vuole approssimare φ(t) su un intervalloassegnato [tmin, tmax] per mezzo di un polinomio di grado n:

pn(t; x) =n∑

k=0

xktk,

in cui xk, per k = 0, . . . , n sono i coefficienti (incogniti) del polinomio e in cui si e posto

x = (x0, x1, . . . , xn) ∈ Rn+1.

Si possono definire gli errori

ei(x) = φ(ti)− pn(ti; x), i = 1, . . . , m,

che rappresentano la differenza tra il valore effettivo della funzione φ(ti) e il valore ottenuto conla funzione approssimante pn(ti;x). E allora possibile considerare diverse funzioni di ottimo

1. minimizzazione dell’errore quadratico medio

minm∑

i=1

ei(x)2,

2. minimizzazione del massimo valore assoluto dell’errore

min max1≤i≤m

|ei(x)|.

3. minimizzazione della somma dei valore assoluto dell’errore

minm∑

i=1

|ei(x)|.

Si tratta di problemi di ottimizzazione non vincolata. Osserviamo che nel caso 1, la funzioneobiettivo e quadratica nelle incognite x (si veda l’esempio 6.5.2). I problemi del tipo 2 e 3hanno funzione obiettivo che non e continuamente differenziabile. Nel paragrafo 3.3.4 si vedrache problemi del tipo 2 e 3 possono essere ricondotti a problemi di programmazione lineare.

25

Page 28: Dispense del corso RICERCA OPERATIVA

A titolo di esempio numerico sia φ(t), t ∈ R una funzione nota sperimentalmente che assume ivalori seguenti:

t 0 1 2 3Φ(t) 0 1 4 9

Si vuole approssimare la funzione y = φ(t) con un polinomio di primo grado (ovvero una retta)del tipo y = x1t + x0 in cui x0, x1 sono le incognite. Si definiscono gli errori

ei(xi) = yi − (x1ti + x0), i = 1, . . . , 4.

I tre problemi diventano:

minx

[x2

0 + (x1 + x0 − 1)2 + (2x1 + x0 − 4)2 + (3x1 + x0 − 9)2]

minx

max|x0|, |x1 + x0 − 1|, |2x1 + x0 − 4|, |3x1 + x0 − 9|

minx

[|x0|+ |x1 + x0 − 1|+ |2x1 + x0 − 4|+ |3x1 + x0 − 9|]

26

Page 29: Dispense del corso RICERCA OPERATIVA

Capitolo 3

Modelli di ProgrammazioneLineare

In questo capitolo esaminiamo in modo piu dettagliato la Programmazione Lineare. In parti-colare saranno presentati alcuni modelli di PL piu o meno classici.

3.1 Struttura di un problema di Programmazione Lineare

Come abbiamo gia visto nel Capitolo 2 un problema di Programmazione Lineare e caratterizzatoda una funzione obiettivo lineare (da minimizzare o massimizzare) della forma

f(x) = c1x1 + . . . + cnxn =n∑

j=1

cjxj

e da un numero finito m di vincoli lineari della forma

a11x1+ . . . +a1nxn ' b1

a21x1+ . . . +a2nxn ' b2... . . .

......

am1x1+ . . . +amnxn ' bm.

(3.1)

dove con ' intendiamo ≤,≥ oppure =.Introducendo il vettore c ∈ IRn, definito c = (c1, . . . , cn)T , x ∈ IRn definito x = (x1, . . . , xn)T ,il vettore b = (b1, . . . , bm)T e la matrice (m× n)

A =

a11 . . . a1n...

...am1 . . . amn

un generico problema di Programmazione Lineare puo essere scritto nella forma

min cT xAx ' b.

27

Page 30: Dispense del corso RICERCA OPERATIVA

Si osservi che, indicando con aTi , i = 1, . . . ,m, le righe della matrice A, ciascun vincolo del

problema, ovvero ciascuna disuguaglianza della (3.1) puo essere scritto nella forma aTi x ' bi,

i = 1, . . . ,m con ' pari a ≤,≥ oppure =.

Un problema di PL consiste nel minimizzare (massimizzare) una funzione obiettivo lineare suun poliedro.

Tra le forme di poliedri piu usate nella definizione 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 definiti come segue.

x1

x2

a)

3

3

x1

x2

S

3

31 x1

x2

c)

3

3

S

S

b)

Figura 3.1: Esempi di poliedri in IR2.

(a) S = x ∈ R2 : x1 + x2 = 3 rappresentato in a) di Figura 3.1. La matrice A = (1 1) eb = 3.

(b) S = x ∈ R2 : x1 + x2 ≤ 3, x1 ≥ 1 rappresentato in b) di Figura 3.1.

La matrice A =(

1 11 0

)e b =

(30

)

28

Page 31: Dispense del corso RICERCA OPERATIVA

(c) (forma standard) S = x ∈ R2 : x1 + x2 = 3, x1 ≥ 0, x2 ≥ 0 rappresentato in c) diFigura 3.1. La matrice A = (1 1) e b = 3.

In generale pero e sempre possibile sempre riportarsi ad una delle forme (b) o (c) consemplici trasformazioni dei vincoli o delle variabili. E da notare che non e possibile ricondursinel caso generale a problemi con soli vincoli di uguaglianza del tipo

min cT xAx = b.

Tali problemi sono in effetti di scarsa rilevanza pratica in quanto e possibile dimostrare che seesiste una soluzione ammissibile e il problema non e illimitato allora tutte le soluzioni ammissibilisono ottime. In particolare vale il teorema 10.2.1.

Trasformazioni dei vincoli Osserviamo che si puo sempre supporre che il secondo mem-bro 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, senzaperdere di generalita che bj ≥ 0.

Da disuguaglianza a uguaglianza Con l’introduzione di opportune variabili aggiuntivenon negative, ogni vincolo di disuguaglianza puo sempre essere posto nella forma di vincolo diuguaglianza. Infatti un vincolo del tipo

aTj x ≤ bj , (3.2)

puo essere riscritto nella forma

aTj x + xn+1 = bj , con xn+1 ≥ 0

ove la variabile xn+1 rappresenta la differenza, non negativa, tra il secondo e il primo membrodella disuguaglianza (3.2), e viene detta variabile di slack. D’altra parte una disuguaglianza deltipo

aTj x ≥ bj , (3.3)

puo essere posta nella forma

aTj x− xn+1 = bj , con xn+1 ≥ 0

ove la variabile xn+1 rappresenta la differenza, non negativa, tra il primo e il secondo membrodella disuguaglianza (3.3), e viene detta variabile di surplus. Quando la distinzione non enecessaria, le variabili slack e di surplus vengono chiamate variabili ausiliarie.

Esempio 3.1.1 Il sistema di vincoli

3x1 + 4x3 ≤ 5−5x1 + x2 − 6x3 = −78x1 + 9x3 ≥ 2

29

Page 32: Dispense del corso RICERCA OPERATIVA

puo essere riscritto nella forma

3x1 + 4x3 + x4 = 55x1 − x2 + 6x3 = 78x1 + 9x3 − x5 = 2x4 ≥ 0x5 ≥ 0

avendo introdotto la variabile slack x4 e la variabile di surplus x5, entrambe non negative. 2

Da uguaglianza a disuguaglianza E anche possibile trasformare vincoli di uguaglianza invincoli di disuguaglianza. Considerato il vincolo aT

j x = bj si pu]‘o trasformare in due vincoli didisuguaglianza

aTj x ≤ bj

−aTj x ≤ −bj

Trasformazioni delle variabili Nei problemi di programmazione lineare si puo sempreassumere che le variabili di decisione siano non negative, e cioe che per ogni i risulti xi ≥ 0.Infatti se per qualche i deve risultare xi ≤ 0, basta effettuare la sostituzione xi = −x′i ,con x′i ≥ 0; se per qualche i la variabile xi non e vincolata in segno, basta sostituire adessa la differenza tra due variabili aggiuntive entrambe vincolate in segno, cioe basta porrexi = x+

i − x−i , con x+i ≥ 0, e x−i ≥ 0.

Esempio 3.1.2 Sia dato il vincolox1 + 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 diproblemi. In particolare, analizziamo il caso in cui la funzione obiettivo e il massimo trafunzioni lineari oppure nella funzione obiettivo sono presenti dei valori assoluti.

3.2.1 Funzione obiettivo di tipo max

Si consideri il problema

minx∈S

(max

1≤i≤mcT

i x + di)

(3.4)

in cui S e un poliedro e cTi x+di, i = 1, . . . , m sono assegnate con x ∈ IRn, ci ∈ IRn. Il problema

(3.4) ha una funzione obiettivo che e della forma max1≤i≤m hi(x) con hi : Rn → R che, ingenerale, risulta non differenziabile e dunque non lineare. Un esempio di funzione di questo

30

Page 33: Dispense del corso RICERCA OPERATIVA

0

5

10

15

20

-10 -5 0 5 10

Figura 3.2: max2x,−x, 1

2x + 9

tipo per n = 1 e m = 3 e rappresentato in Figura 3.2. I problemi di questo tipo sono di solitochiamati problemi minimax.

Aggiungendo una variabile v ∈ R e possibile mostrare che tale problema e equivalente alproblema di Programmazione Lineare:

minx,v vx ∈ ScTi x + di ≤ v, i = 1, . . . , m.

(3.5)

Per dimostrare l’equivalenza dei problemi (3.4) e (3.5), dobbiamo fare vedere che data unasoluzione 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∗∗ =max1≤i≤mcT

i x∗ + di abbiamo che la coppia (x, v)∗∗ e ammissibile per il problema (3.5),infatti

x∗∗ = x∗ ∈ S cTi x∗∗ + di ≤ v∗∗ = max

1≤i≤mcT

i x∗∗ + di.

Inoltre v∗∗ ≤ v per ogni (x, v) ammissibile.Viceversa, sia data una soluzione ottima (x, v)∗ del problema (3.5), una soluzione ammissibiledel problema (3.4) e x∗∗ = x∗ ∈ S. Si tratta anche della soluzione ottima perche‘

v ≥ v∗ = max1≤i≤m

cTi x∗ + di

31

Page 34: Dispense del corso RICERCA OPERATIVA

3.2.2 Funzione modulo

Si consideri il problemaminx∈S

|cT x| (3.6)

con x ∈ IRn, c ∈ IRn. Il problema (3.6) puo essere equivalentemente scritto nella forma

-10-5

05

10 -10

-5

0

5

10

0

5

10

15

20

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

minx∈S

maxcT x,−cT x (3.7)

e dunque applicando la trasformazione descritta per il problema (3.4), si ottiene il problemaequivalente

minx,v vcT x ≤ vcT x ≥ −vx ∈ S.

(3.8)

Sono inoltre equivalenti i seguenti problemi:

minx∈S

(max

1≤i≤m|hi(x)|

) minx,v v−v ≤ hi(x) ≤ v, i = 1, . . . , mx ∈ S.

32

Page 35: Dispense del corso RICERCA OPERATIVA

3.3 Semplici esempi di problemi di programmazione lin-eare

Chiariremo meglio i concetti finora esposti con alcuni esempi. I problemi descritti hanno unafunzione essenzialmente esemplificativa. In casi concreti, un problema di programmazione lin-eare puo avere un numero di variabili di decisione e un numero di vincoli dell’ordine delle decinee 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 dellequali ha un certo costo ed un determinato contenuto di componenti utili. Si vuole ottenere lamiscela piu economica di queste sostanze tale che contenga una certa quantita di ciascuno deicomponenti.vediamo un semplice esempio.

Un problema di miscelazione

Un’industria conserviera deve produrre succhi di frutta mescolando polpa di frutta e dolcificanteottenendo un prodotto finale che deve soddisfare alcuni requisiti riguardanti il contenuto divitamina C, di sali minerali e di zucchero. La polpa di frutta e il dolcificante vengono acquistatial costo rispettivamente di Lire 400 e Lire 600 ogni ettogrammo. Inoltre dalle etichette si ricavache 100 grammi di polpa di frutta contengono 140 mg di vitamina C, 20 mg di sali minerali e25 grammi di zucchero, mentre 100 grammi di dolcificante contengono 10 mg di sali minerali,50 grammi di zucchero e non contengono vitamina C. I requisiti che il prodotto finale (cioeil succo di frutta pronto per la vendita) deve avere sono i seguenti: il succo di frutta devecontenere almeno 70 mg di vitamina C, almeno 30 mg di sali minerali e almeno 75 grammi dizucchero. Si devono determinare le quantita di polpa di frutta e di dolcificante da utilizzarenella produzione del succo di frutta in modo da minimizzare il costo complessivo dell’acquistodei due componenti base.

Formulazione.Si vuole costruire un modello di Programmazione Lineare che rappresenti il problema in analisitenendo presente i requisiti di qualita richiesti. Si verifica facilmente che le ipotesi fondamentalidi un modello di Programmazione Lineare sono soddisfatte.

– Variabili. E naturale associare la variabili di decisione alle quantita di polpa di frutta e didolcificante da utilizzare per la produzione del succo di frutta. Quindi siano x1 e x2 rispettiva-mente le quantita espresse in ettogrammi di polpa di frutta e di dolcificante che devono essereutilizzate.

– Funzione obiettivo. E rappresentata dal costo complessivo dell’acquisto dei due componentibase e quindi e data da 400x1+600x2. Questa espressione naturalmente deve essere minimizzata.

– Vincoli. Poiche un ettogrammo di polpa contiene 140 mg di vitamina C e il dolcificante noncontiene vitamina C, il primo vincolo da considerare riguardante il contenuto di vitamina C delsucco di frutta si puo scrivere nella forma

140x1 ≥ 70.

33

Page 36: Dispense del corso RICERCA OPERATIVA

Analogamente per rispettare il requisito sul contenuto di sali minerali del succo di frutta sidovra imporre il vincolo

20x1 + 10x2 ≥ 30.

Infine il vincolo sul contenuto di zucchero del succo di frutta si puo esprimere nella forma

25x1 + 50x2 ≥ 75.

Infine si deve esplicitare il vincolo di non negativita sulle variabili cioe

x1 ≥ 0, x2 ≥ 0.

Quindi la formulazione finale e

min 400x1 + 600x2

140x1 ≥ 7020x1 + 10x2 ≥ 3025x1 + 50x2 ≥ 75x1 ≥ 0, x2 ≥ 0

Formalmente, supponiamo di disporre di n sostanze diverse che indichiamo con S1,S2, . . . ,Sn

ciascuna delle quali contenga una certa quantita di ciascuno degli m componenti utili cheindichiamo 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 piu economica che soddisfi alcuni requisiti qualitativi, cioe con-tenga una quantita non inferiore a bi di ciascun Ci, i = 1, . . . , m

C1 C2 · · · Cm

b1 b2 · · · bm.

Si indichi con aij , i = 1, . . . , m, j = 1, . . . , n la quantita di componente Ci presente nella sostanzaSj. Si puo cosı costruire la seguente tabella

S1 · · · Sj · · · Sn

C1 a11 · · · a1j · · · a1n

......

......

Ci ai1 · · · aij · · · ain

......

......

Cm am1 · · · amj · · · amn

Supponendo che valgano le ipotesi di proporzionalita, additivita ed inoltre assumendo che lequantita di sostanze da utilizzare siano frazionabili, si puo formulare questo problema in terminidi un problema di Programmazione Lineare.

34

Page 37: Dispense del corso RICERCA OPERATIVA

Generalizzando quanto fatto nell’esempio,e naturale introdurre le variabili di decisione x1, x2, . . . , xn

rappresentanti la quantita di ciascuna sostanza S1,S2, . . . ,Sn da utilizzare nella miscela. In-troducendo come spazio delle variabili lo spazio delle n−uple reali IRn si puo considerare unx ∈ IRn definendo x = (x1, . . . , xn)T .

La funzione obiettivo puo essere scritta

z = c1x1 + . . . + cnxn =n∑

j=1

cjxj .

Introducendo c ∈ IRn, definito c = (c1, . . . , cn)T , la funzione obiettivo puo essere scritta innotazione vettoriale

z = cT x.

Si devono introdurre i seguenti vincoli:

• Vincoli di qualita.Tenendo conto del fatto che la miscela deve contenere una quantita non inferiore a bi diciascun componente Ci si dovra avere

n∑

j=1

aijxj ≥ bi, i = 1, . . . , m.

• Si devono considerare i vincoli di non negativita sulle variabili cioe xj ≥ 0, j = 1, . . . , n.

Introducendo la matrice (m× n)

A =

a11 . . . a1n...

...am1 . . . amn

e il vettore b = (b1, . . . , bm)T la formulazione completa del problema puo essere scritta nellaforma

min cT xAx ≥ bx ≥ 0, x ∈ IRn.

(3.9)

Nella pratica, potrebbe essere necessario introdurre ulteriori vincoli:

• possono essere presenti limitazioni superiori o inferiori sulle variabili cioe xj ≥ L, xj ≤ M ,j = 1, . . . , n;

• se e richiesto anche che la miscela contenga una quantita non superiore ad un valore di diciascun componente Ci si dovra aggiungere alla formulazione un altro vincolo di qualita:

n∑

j=1

aijxj ≤ di, i = 1, . . . ,m;

• in alcuni casi si richiede che una certa sostanza appartenga alla miscela solo se un’altrasostanza vi appartiene (o non vi appartiene). Questi vincoli sono detti disgiuntivi e laloro formalizzazione matematica sara discussa nel Capitolo 12.

35

Page 38: Dispense del corso RICERCA OPERATIVA

3.3.2 Modelli di trasporto.

Sono definite m localita origini indicate con O1, . . . ,Om, e n localita destinazioni indicate conD1, . . . ,Dn. Ogni origine Oi, (i = 1, . . . ,m) puo fornire una certa disponibilita ai ≥ 0 di merceche deve essere trasferita dalle origini alle destinazioni

O1 · · · Om

a1 · · · am.

Ad ogni destinazione Dj, (j = 1, . . . , n) e richiesta una quantita bj ≥ 0 di merce.

D1 · · · Dn

b1 · · · bn.

Supponiamo che il costo del trasporto di una unita di merce da Oi a Dj sia pari a cij . Tali costinella realta sono spesso collegati alle distanze tra origini e destinazioni. Si puo cosı costruire laseguente tabella

D1 · · · Dj · · · Dn

O1 c11 · · · c1j · · · c1n

......

......

Oi ci1 · · · cij · · · cin

......

......

Om cm1 · · · cmj · · · cmn

Il problema consiste nel pianificare i trasporti in modo da soddisfare le richieste delle destinazioniminimizzando il costo del trasporto complessivo nella seguente ipotesi:

• la disponibilita complessiva uguaglia la richiesta complessiva, cioem∑

i=1

ai =n∑

j=1

bj ; (3.10)

si escludono possibilita di giacenze nelle origini, cioe tutta la merce prodotta in una originedeve essere trasportata in una delle destinazioni; si escludono possibilita di giacenze nelle des-tinazioni, cioe la quantita totale che arriva in una destinazione Dj deve uguagliare la richiestabj .

Formulazione.Si vuole dare una formulazione del problema in esame in termini di un problema di program-mazione lineare supponendo quindi che siano verificate le ipotesi di linearita e continuita.

– Variabili. Per ogni coppia di origine e destinazione Oi, Dj si introducono le variabili didecisione xij rappresentanti la quantita di merce da trasportare da Oi, a Dj. Si tratta di mnvariabili

D1 · · · Dj · · · Dn

O1 x11 · · · x1j · · · x1n

......

......

Oi xi1 · · · xij · · · xin

......

......

Om xm1 · · · xmj · · · xmn

36

Page 39: Dispense del corso RICERCA OPERATIVA

– Funzione obiettivo. La funzione obiettivo da minimizzare sara data da costo totale deltrasporto e quindi da

z =m∑

i=1

n∑

j=1

cijxij .

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

• vincoli di origine

n∑

j=1

xij = ai 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∑

i=1

xij = bj j = 1, . . . , n; (3.12)

impongono che la quantita totale di merce che arriva in ciascuna delle destinazioniuguaglia la richiesta; si tratta si n vincoli.

Si devono infine considerare i vincoli di non negativita 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+mnvincoli:

min

m∑

i=1

n∑

j=1

cijxij

n∑

j=1

xij = ai i = 1, . . . , m

m∑

i=1

xij = bj j = 1, . . . , n

xij ≥ 0 i = 1, . . . , n; j = 1, . . . , m.

(3.13)

Osservazione 1 E chiaro che per le ipotesi fatte dovra risultare

m∑

i=1

n∑

j=1

xij =n∑

j=1

m∑

i=1

xij =m∑

i=1

ai =n∑

j=1

bj .

Anzi vale il seguente risultato

37

Page 40: Dispense del corso RICERCA OPERATIVA

Teorema 3.3.1 Condizione necessaria e sufficiente affinche il problema (3.13) ammetta soluzione,cioe che esista una soluzione ammissibile, e che risulti

m∑

i=1

ai =n∑

j=1

bj . (3.14)

Tale risultato chiarisce perche nella formulazione classica del problema dei trasporti si adottal’ipotesi (3.10) cioe che la disponibilita complessiva uguagli la richiesta complessiva.

Passiamo, ora, ad analizzare alcune varianti della formulazione classica del problema deitrasporti; puo infatti accadere che non tutte le rotte di trasporto siano disponibili: se non epossibile 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 quantitamassima di merci trasportabili uij . Questo produce dei vincoli del tipo xij ≤ uij .

Infine, si puo supporre che la disponibilita complessiva possa essere superiore alla domandacioe

m∑

i=1

ai ≥n∑

j=1

bj . (3.15)

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

n∑

j=1

xij ≤ ai i = 1, . . . , m;

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

m∑

i=1

xij ≥ bj j = 1, . . . , n.

Anche nel caso in cui valga la (3.15), il problema dei trasporti puo essere posto nella suaformulazione classica, cioe con soli vincoli di uguaglianza, introducendo una destinazione fittiziache abbia una richiesta pari a

m∑

i=1

ai −n∑

j=1

bj

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

Un problema di trasporto

Consideriamo un’industria che produce un bene di consumo in due stabilimenti di produzione,situati rispettivamente a Pomezia e a Caserta. La produzione viene prima immagazzinata indue depositi, situati uno a Roma e l’altro a Napoli. Quindi i prodotti vengono distribuiti allarete di vendita al dettaglio. Per ogni unita di prodotto, il costo del trasporto dallo stabilimentoal deposito e dato dalla Tabella:

38

Page 41: Dispense del corso RICERCA OPERATIVA

Roma NapoliPomezia 1 3Caserta 3.5 0.5

Costi di trasporto euro/unita

La capacita produttiva dei due stabilimenti e limitata, per cui ogni settimana il bene inquestione non puo essere prodotto in piu di 10000 unita nello stabilimento di Pomezia e in piudi 8000 unita nello stabilimento di Caserta. Inoltre le statistiche di vendita informano che ognisettimana vengono vendute mediamente 11000 unita tramite il deposito di Roma e 4600 unitatramite il deposito di Napoli. L’industria vuole minimizzare il costo del trasporto della mercedagli stabilimenti ai depositi, assicurando che i depositi ricevano settimanalmente le quantitamedie prima indicate.

Le variabili di decisione sono le quantita del bene di consumo trasportate settimanalmente,che possiamo associare alle variabili x1, x2, x3, x4 nel seguente modo:

quantita trasportata da Pomezia a Roma x1

quantita trasportata da Pomezia a Napoli x2

quantita trasportata da Caserta a Roma x3

quantita trasportata da Caserta a Napoli x4

che corrisponde in forma di tabella a

Roma NapoliPomezia x1 x2

Caserta x3 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 nell’ipotesi (3.15) e supponiamodi accettare giacenze nelle origini.Poiche i due stabilimenti hanno capacita produttiva limitata deve essere

x1 + x2 ≤ 10000x3 + x4 ≤ 8000.

Poiche si vuole garantire il rifornimento medio settimanale (senza giacenza), deve essere

x1 + x3 = 11000x2 + x4 = 4600.

Infine evidentemente deve risultare xi ≥ 0, i = 1, 2, 3, 4, e quindi il problema di programmazionelineare per l’industria dell’esempio e il seguente:

min z = x1 + 3x2 + 3.5x3 + 0.5x4

x1 + x2 ≤ 10000x3 + x4 ≤ 8000x1 + x3 = 11000x2 + x4 = 4600xi ≥ 0, i = 1, 2, 3, 4.

39

Page 42: Dispense del corso RICERCA OPERATIVA

3.3.3 Un problema di Yield Management ferroviario

Una compagnia ferroviaria vende i biglietti per il treno che effettua il percorso dalla citta A(Roma) alla B (Bologna) effettuando una fermata intermedia F1 (Firenze).

1 2 3

x12 x23

x13

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 tariffe sono fissate a priori e dipendono solo dalla distanza tra le origini-destinazioni. Inparticolare 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 A-F1 A-B F1-BTariffa 42,35 53,20 18,59

Tabella 3.1: Tariffe per le tre possibili O-D coperte dal treno

Il numero di posti disponibili sul treno e pari a 700.All’inizio 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 Tabella3.3.3.

O-D A-F1 A-B F1-Bµ 420 355 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 profitto.

Formulazione.Si vuole costruire un modello di Programmazione Lineare che rappresenti il problema in analisitenendo presente i requisiti richiesti. Si assume che la domanda effettiva per ciascuna origine-Destinazione sara almeno pari al valor medio µ.

40

Page 43: Dispense del corso RICERCA OPERATIVA

– Variabili. E naturale associare la variabili di decisione alle quantita di posti prenotabili suciascuna Origine-Destinazione possibile. In questo caso, sono le tre variabili x12, x13 e x23 cherappresentano rispettivamente i posti prenotabili sulla tratta A-F1, A-B, F1-B.

– Funzione obiettivo. E rappresentata dal profitto (atteso) relativo alla vendita e quindi e datada 42, 35x12 +53, 20x13 +18, 59x23. Questa espressione naturalmente deve essere massimizzata.

– Vincoli. Osserviamo innanzitutto che, poiche per ipotesi si avranno almeno µ domande perciascuna Origine-Destinazione, e necessario imporre i vincoli

x12 ≤ 420x13 ≤ 355x23 ≤ 335

in quanto non e sensato prenotare piu posti della domanda effettiva.Inoltre devono essere imposti i vincoli legato alla capacita 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 chevanno da A ad B. cosı nel tratto dal F1 a B sono presenti sia i viaggiatori che vanno da A adB che quelli che vanno da F1 a B. Avremo quindi 2 vincoli

x12 + x13 ≤ 700x23 + x13 ≤ 700

Infine si deve esplicitare il vincolo di non negativita sulle variabili cioe x12, x23, x13 ≥ 0.In principio le variabili rappresentano dei posti, e quindi si dovrebbero esplicitare anche i vincolidi interezza. Questi vincoli possono essere omessi come sara chiarito in un prossimo capitolo.

Quindi la formulazione finale e

max 42, 35x12 + 53, 20x13 + 18, 59x23

x12 + x13 ≤ 700x23 + x13 ≤ 7000 ≤ x12 ≤ 4200 ≤ x13 ≤ 3550 ≤ x23 ≤ 335(x12, x23, x13 intere)

3.3.4 Minimizzazione dello scarto massimo

Consideriamo i casi 2 e 3 definiti nel Esempio 2.4.5.Si vuole costruire un modello di Programmazione Lineare equivalente ai problemi

1. minimizzazione del massimo valore assoluto dell’errore

min max1≤i≤m

|ei(x)|.

2. minimizzazione della somma dei valore assoluto dell’errore

minm∑

i=1

|ei(x)|

41

Page 44: Dispense del corso RICERCA OPERATIVA

utilizzando le trasformazioni nel paragrafo 3.2. Nel primo caso la funzione obiettivo e

f(m, q) = maxi=0,1,2,3

|x1ti + x0 − y(ti)| = max|x0|, |x1 + x0 − 1|, |2x1 + x0 − 4|, |3x1 + x0 − 9|.

– Vincoli. Non ci sono vincoli espliciti, ma per poter ricondurre il problema di

minx1,x0

max|x0|, |x1 + x0 − 1|, |2x1 + x0 − 4|, |3x1 + x0 − 9|

ad un problema di Programmazione Lineare e necessario introdurre una variabile aggiuntivaz ∈ R ed i vincoli

max|x0|, |x1 + x0 − 1|, |2x1 + x0 − 4|, |3x1 + x0 − 9| ≤ z.

Si ottiene il problema di PL:

minx1,x0,z z−z ≤ x0 ≤ z−z ≤ x1 + x0 − 1 ≤ z−z ≤ 2x1 + x0 − 4 ≤ z−z ≤ 3x1 + x0 − 9 ≤ zz ≥ 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

|x1ti + x0 − y(ti)| = |x0|+ |x1 + x0 − 1|+ |2x1 + x0 − 4|+ |3x1 + x0 − 9|.

– Vincoli. Non ci sono vincoli espliciti, ma per poter ricondurre il problema di

minx

(|x0|+ |x1 + x0 − 1|+ |2x1 + x0 − 4|+ |3x1 + x0 − 9|)

ad un problema di Programmazione Lineare e necessario introdurre le variabile aggiuntive zi ∈R, i = 1, . . . , 4 ed i vincoli

|x0| ≤ z1 |x1 + x0 − 1| ≤ z2 |2x1 + x0 − 4| ≤ z3 |3x1 + x0 − 9| ≤ z4.

Si ottiene il problema di PL:

minx∈R2,z∈R4

z1 + z2 + z3 + z4

−z1 ≤ x0 ≤ z1

−z2 ≤ x1 + x0 − 1 ≤ z2

−z3 ≤ 2x1 + x0 − 4 ≤ z3

−z4 ≤ 3x1 + x0 − 9 ≤ z4.

osserviamo che anche in questo caso il vincolo x ≥ 0 e implicato dagli altri vincoli e dunquepuo‘ essere eliminato.

42

Page 45: Dispense del corso RICERCA OPERATIVA

Capitolo 4

Soluzione grafica di problemi PMin 2 variabili

In questo paragrafo si vuole fornire una interpretazione geometrica di un problema di Program-mazione matematica. In particolare, quando un problema di Programmazione matematica edefinito solamente in due variabili, si puo rappresentare efficacemente il problema sul pianocartesiano e si puo determinare una sua soluzione in maniera elementare con semplici deduzionigeometriche. Le situazioni che verranno presentate nel seguito vogliono rappresentare un puntodi partenza intuitivo per la trattazione di problemi di Programmazione Lineare in n variabili; irisultati che verranno dedotti per via elementare nel caso bidimensionale trovano, infatti, unageneralizzazione 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 curvenote in modo analitico.

4.1.1 Vincoli lineari

Nel piano cartesiano Ox1x2 l’equazione lineare

a1x1 + a2x2 = c (4.1)

rappresenta una retta che partiziona il piano in due semipiani. Ciascun semipiano e caratter-izzato da punti P (x1, x2) che soddisfano la disequazione ax1 + bx2 ≥ c oppure la disequazioneax1 + 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 cheverra utilizzato nel seguito.

Lemma 4.1.1 Si considera una famiglia di rette parallele

a1x1 + a2x2 = c (4.2)

43

Page 46: Dispense del corso RICERCA OPERATIVA

con a1, a2 ∈ IR fissati e con c ∈ IR. Il vettore a =(

a1

a2

)individua una direzione ortogonale alle

rette della famiglia (4.2) ed e orientato dalla parte in cui sono le rette della famiglia ottenuteper valori crescenti della c, cioe verso il semipiano in cui risulta a1x1 + a2x2 ≥ c.

Dimostrazione. Sia x un vettore di componenti x1 e x2. La famiglia di rette (4.2) puo esserescritta in forma vettoriale

aT x = c.

Siano ora x e z 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 (z − x) = 0.

Quindi il vettore a e ortogonale al vettore z− x che individua la direzione della famiglia di rettecioe 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 puntoy = (y1, y2)T tale che aT y ≥ c. Si vuole dimostrare che il punto y appartiene al semipianoindividuato dalla retta aT x = c verso il quale e orientato il vettore a. Infatti, per le ipotesifatte, si ha

aT y ≥ c e aT x = c

e sottraendo membro a membro queste due relazioni si ottiene

aT (y − x) ≥ 0

e questo significa che l’angolo θ che il vettore y − x forma con il vettore a deve essere acutoe quindi il vettore a deve essere orientato verso il semipiano ove si trova il punto y, cioe ilsemipiano individuato dalla diseguaglianza aT x ≥ c. (Figura 4.1)

Come esempio del risultato riportato dal lemma appena dimostrato, si consideri la disug-

uaglianza lineare 3x1+x2 ≥ 6. Il vettore a =(

31

)individua una direzione ortogonale alla retta

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 disuguaglianzalineare a1x1+a2x2 ≥ c si puo procedere semplicemente in questo modo: dopo aver rappresentatola retta a1x1 + a2x2 = c per individuare qual e il semipiano di interesse, si puo scegliere unpunto P del piano (l’origine degli assi e il piu semplice) e valutare l’espressione a1x1 + a2x2 inquesto punto; se il valore cosı ottenuto e maggiore o uguale di c allora il semipiano individuatodalla disuguaglianza lineare a1x1 + a2x2 ≥ c e quello contenente il punto P ; in caso contrarioe quello opposto.

4.1.2 Vincoli quadratici

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

44

Page 47: Dispense del corso RICERCA OPERATIVA

a x T

a x T C≤

y

C

a

-

_

x

x1

2

x

θ

>

Figura 4.1: Interpretazione geometrica del Lemma 4.1.1

2

6

>3x + x 1

a

2 6

3x + x 1 2 ≤ 6

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

45

Page 48: Dispense del corso RICERCA OPERATIVA

Nel piano cartesiano Ox1x2 l’equazione 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 fissato 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 ≤ r2S≥ = x ∈ IR2 : (x1 − a1)2 + (x2 − a2)2 ≥ r2

la cui intersezione e la circonferenza stessa. S≤ e l’insieme dei punti ”interni“ alla circonferenza,mentre S≥ rappresenta i punti “esterni”.

Nel piano cartesiano Ox1x2 le equazioni quadratiche riconducibili alla forma

h(x1, x2) = x2 −(a1x

21 + a2x1 + a3

)= 0

h(x1, x2) = x1 −(a1x

22 + a2x2 + a3

)= 0

rappresentano rispettivamente una parabola con asse parallelo all’asse delle ordinate e ascissadel vertice pari a − a2

2a1e una parabola con asse parallelo all’asse delle ascisse e ordinata del

vertice pari a − a22a1

. Consideriamo senza perdere di generalita la prima delle due equazioni egli insiemi individuati dai due vincoli di disuguaglianza corrispondenti

S≤ = x ∈ IR2 : x2 ≤ a1x21 + a2x1 + a3

S≥ = x ∈ IR2 : x2 ≥ a1x21 + a2x1 + a3

S≤ e l’insieme dei punti che si trova “internamente” alla parabola stessa e S≥ e l’insieme deipunti “esterni”.

4.2 Rappresentazione di funzioni obiettivo

Quanto esposto nel paragrafo precedente e utile anche per esaminare la variazione di una fun-zione lineare/quadratica che rappresenta la funzione obiettivo di un problema di Program-mazione Matematica. In particolare, data una generica funzione obiettivo f(x1, x2), si rappre-sentano 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 cerchera di ottenere un valorepiu basso possibile per la k in corrispondenza di valori ammissibili per x1 e x2; viceversa, se ilproblema e di massimizzazione, si cerchera ottenere un valore piu alto possibile per la k.

4.2.1 Funzioni lineari

In due variabili, la funzione obiettivo di un problema di Programazione Lineare e un’espressionedel tipo f(x1, x2) = c1x1 + c2x2 da massimizzare o da minimizzare. Per rappresentare questa

46

Page 49: Dispense del corso RICERCA OPERATIVA

funzione obiettivo su un piano cartesiano Ox1x2 si considera la famiglia di rette parallele (k =C)

c1x1 + c2x2 = C (4.5)

ottenuta al variare di C, che rappresentano le rette di livello della funzione. Sulla base di quantoesposto nel paragrafo precedente, valori superiori della C si determinano traslando le rette nel

verso individuato dal vettore(

c1

c2

)che rappresenta, quindi, una direzione di crescita per la

funzione c1x1 + c2x2. Ovviamente, la direzione opposta sara una direzione di decrescita.Quindi, geometricamente, un problema di massimizzazione consistera nel considerare la

traslazione nel verso della direzione di crescita della funzione obiettivo, mentre in un problemadi minimizzazione si considera la traslazione nel verso opposto (Figura 4.3)

1 22 x +x =12

1

2 x +x =8

2 3 4 5 6 x1

x 2

1

2

3

4

5

6

8

7

9

10

11

12

direzione di crescita

1 22 x +x =10

1 2

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

4.2.2 Funzioni quadratiche

In due variabili, consideriamo la funzione obiettivo quadratica

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

Per rappresentare questa funzione obiettivo su un piano cartesiano Ox1x2 si considera la famigliadi curve (k = r2)

(x1 − a1)2 + (x2 − a2)2 = C2 (4.7)

47

Page 50: Dispense del corso RICERCA OPERATIVA

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 ottenibilein 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 diminimo globale.

4.3 Esempi di risoluzione grafica

Verranno considerati alcuni esempi di problemi di Programmazione Matematica.

Esempio 4.3.1 Sia la funzione obiettivo da minimizzare:

f(x) = x1

e sia l’insieme ammissibile F definito dai vincoli:

(x1 − 3)2 + (x2 − 2)2 = 13(x1 − 4)2 + x2

2 ≤ 16

Determinare graficamente, se esiste, un punto di minimo.Soluzione. Questo esempio evidenzia geometricamente la definizione di minimo locale vinco-lato in un problema a 2 variabili.

x1

x2

A

B

C

Figura 4.4: Soluzione grafica in IR2 dell’Esempio 4.3.1.

L’insieme ammissibile F , rappresentato in Figura (4.4), ed e dato dall’arco di circonferenzaACB (tratteggiato in verde). Poiche esso e compatto e f e continua, in base al Teorema diWeierstrass, l’esistenza di un minino globale e assicurata.

48

Page 51: Dispense del corso RICERCA OPERATIVA

Le curve di livello x1 = k sono rette parallele all’asse delle ordinate con valore crescenteall’aumentare di k. Si determina il punto di minimo globale nel punto A = (0, 0)T di valoref∗ = 0. Si osserva che il punto C e un massimo globale, mentre il punto B risulta essere unminimo locale.

Esempio 4.3.2 Sia dato il problema di ottimizzazione vincolata

min 2x1 + 3x2

6x1 + x22 − x2 ≤ 12

x1 − 4x2 ≤ −2x1, x2 ≥ 0

Determinare, se esiste, un punto di minimo globale.

Esempio 4.3.3 Si consideri la funzione obiettivo:

f(x) =12(x1

2 + x22)

e sia l’insieme ammissibile F definito dai vincoli:

x1 + x2 = 1(x1 − 1)2 + x2

2 ≤ 14

Determinare se esiste un punto di minimo.

Soluzione. L’insieme ammissibile F e dato dal segmento di retta che ha per estremi i punti

x =(1− 1

2√

2, 1

2√

2

)T

e x =(1 + 1

2√

2, 1

2√

2

)T.

L’esistenza di una soluzione e garantita dal Teorema di Weierstrass poiche la funzioneobiettivo e continua e l’insieme ammissibile e compatto.

Le curve di livello della funzione obiettivo

12(x1

2 + x22) = r2

sono circonferenze di centro l’origine e raggio r.

Esempio 4.3.4Si consideri ora il problema di allocazione ottima di risorse del Paragrafo 2.4.1 che e rappresen-tato dal seguente problema di Programmazione Lineare:

max 7x1 + 10x2

x1 + x2 ≤ 750x1 + 2x2 ≤ 1000x2 ≤ 400x1 ≥ 0, x2 ≥ 0.

Sul piano cartesiano Ox1x2 ciascun vincolo individua un semipiano. In particolare, in Figura 4.6e evidenziato il semipiano individuato dal primo vincolo x1 + x2 ≤ 750.

49

Page 52: Dispense del corso RICERCA OPERATIVA

Figura 4.5: Soluzione grafica in IR2 dell’Esempio 4.3.3.

In Figura 4.7 e evidenziato il semipiano individuato dal secondo vincolo x1 + 2x2 ≤ 1000.Infine in Figura 4.8 e evidenziato il semipiano individuato dal terzo vincolo x2 ≤ 400.Ovviamente i vincoli di non negativita delle variabili x1 ≥ 0 e x2 ≥ 0 rappresentano

rispettivamente il semipiano delle ascisse non negative e il semipiano delle ordinate non negative.L’insieme ammissibile del problema di Programmazione Lineare che stiamo esaminando e

dato quindi dall’intersezione di tali semipiani e si puo 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 rappre-sentato in Figura 4.9.

Tutti i punti P (x1, x2) appartenenti a questa regione sono punti dell’insieme ammissibiledel problema e quindi tutti i punti di questa regione costituiscono soluzioni ammissibili delproblema.

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 indue variabili f(x1, x2) = 7x1 + 10x2 che sono ovviamente delle rette come rappresentato inFigura 4.10.

In riferimento al problema di allocazione ottima rappresentato dal problema di Program-mazione Lineare che stiamo esaminando, il parametro C rappresenta il profitto totale che deve

50

Page 53: Dispense del corso RICERCA OPERATIVA

Figura 4.6: Semipiano individuato dal vincolo x1 + x2 ≤ 750

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

51

Page 54: Dispense del corso RICERCA OPERATIVA

Figura 4.8: Semipiano individuato dal vincolo x2 ≤ 400

Figura 4.9: La regione ammissibile S

52

Page 55: Dispense del corso RICERCA OPERATIVA

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 l’origine del pianoOx1x2. Ovviamente, scegliendo x1 = 0 e x2 = 0 (che e un punto ammissibile in quanto(0, 0) ∈ S) si ottiene il profitto totale nullo. All’aumentare del valore di tale profitto, cioeall’aumentare del valore della costante C, graficamente si ottengono rette parallele alla rettadi livello passante per l’origine traslate nella direzione di crescita della funzione 7x1 + 10x2

data dal vettore(

710

)(Figura 4.10). Poiche si desidera massimizzare la funzione obiettivo,

si cerchera di raggiungere il valore piu alto per la C ottenuto scegliendo per x1 e x2 valoriammissibili cioe tali che (x1, x2) ∈ S. Osservando la rappresentazione grafica della regioneammissibile S si deduce che all’aumentare di C, le rette di livello della funzione obiettivo inter-secano la regione ammissibile finche C ≤ 6000. Tale valore e ottenuto per x1 = 500 e x2 = 250e non esistono altri punti della regione ammissibile in cui la funzione obiettivo assume valorimaggiori. Il valore 6000 e, quindi, il massimo valore che la funzione obiettivo puo raggiungeresoddisfacendo i vincoli. Tale soluzione ottima e raggiunta in corrispondenza del punto P dicoordinate (x1, x2) = (500, 250); tale punto non e un punto qualsiasi, ma costituisce quello chenella geometria piana viene detto vertice del poligono convesso che delimita la regione ammissi-bile. Il fatto che l’ottimo del problema e raggiunto in corrispondenza di un vertice della regioneammissibile non e casuale, ma come si vedra in seguito, e una caratteristica fondamentale diun generico problema di Programmazione Lineare. Si osservi fin d’ora che la frontiera dellaregione ammissibile e definita dalle rette

x1 + x2 = 750, x1 + 2x2 = 1000, x2 = 400, x1 = 0, x2 = 0

53

Page 56: Dispense del corso RICERCA OPERATIVA

e che ogni intersezione di due di queste rette e un vertice della regione ammissibile; il numero diqueste possibili intersezioni (non tutte necessariamente appartenenti alla regione ammissibile)e ovviamente pari al piu a 10. Si osservi, infine, che nel punto di ottimo sono attivi i vincolix1 + 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 puo accadere che le rette di livello della funzione obiettivo siano parallele adun segmento del perimetro del poligono che delimita la regione ammissibile; in questo casopotrebbe accadere che esistano piu punti ammissibili in cui la funzione assume lo stesso valoreottimo e quindi la soluzione non sarebbe piu unica; nel problema in esame, cio accadrebbe, adesempio, 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 puo sempre trovare un vertice che costituisce una soluzioneottima.

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

54

Page 57: Dispense del corso RICERCA OPERATIVA

dal seguente problema di Programmazione Lineare:

min(400x1 + 600x2)140x1 ≥ 7020x1 + 10x2 ≥ 3025x1 + 50x2 ≥ 75x1 ≥ 0, x2 ≥ 0

Nelle figure che seguono rappresentati i vincoli lineari di questo problema; In particolare nellaFigura 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 negativita delle variabili x1 ≥ 0 e x2 ≥ 0 rappresentano rispettiva-mente il semipiano delle ascisse non negative e il semipiano delle ordinate non negative.

L’insieme ammissibile del problema di Programmazione Lineare che stiamo esaminando edato quindi dall’intersezione di tali semipiani e si puo indicare con

S =

(x1, x2) ∈ IR2 | 140x1 ≥ 70, 20x1 + 10x2 ≥ 30, 25x1 + 50x2 ≥ 75, x1 ≥ 0, x2 ≥ 0

.

L’insieme S rappresenta la regione ammissibile del problema di Programmazione Lineare inesame ed e rappresentata in Figura 4.15.

Tutti i punti P (x1, x2) appartenenti a questa regione sono punti dell’insieme ammissibile delproblema e quindi tutti i punti di questa regione costituiscono soluzioni ammissibili del prob-

55

Page 58: Dispense del corso RICERCA OPERATIVA

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

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

56

Page 59: Dispense del corso RICERCA OPERATIVA

Figura 4.15: La regione ammissibile S

lema. Si osservi che, a differenza della regione ammissibile del problema considerato nell’esempioprecedente, la regione ammissibile S e illimitata.

Ora, tracciando le curve di livello della funzione obiettivo 400x1+600x2 si ottiene la famigliadi rette

400x1 + 600x2 = C.

Trattandosi di un problema di minimizzazione si vuole determinare il valore piu basso di Cottenuto scegliendo per x1 e x2 valori ammissibili cioe tali che (x1, x2) ∈ S. Osservando larappresentazione grafica della regione ammissibile S e osservando che la direzione di decrescita

e quella opposta al vettore(

400600

), si deduce che al diminuire di C, le rette di livello della

funzione obiettivo intersecano la regione ammissibile finche 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 chela funzione obiettivo puo raggiungere soddisfacendo i vincoli. Tale soluzione ottima e raggiuntain corrispondenza del punto P di coordinate (x1, x2) = (1, 1); si osservi che anche in questocaso tale punto e un punto particolare della regione ammissibile. Si osservi, infine che in questopunto sono attivi i vincoli 20x1 + 10x2 ≥ 30 e 25x1 + 50x2 ≥ 75 mentre risulta non attivo ilvincolo 140x1 ≥ 70.

Abbiamo esaminato due esempi di interpretazione geometrica e soluzione grafica di prob-lemi di Programmazione Lineare in due variabili. In entrambe i problemi e stato possibile

57

Page 60: Dispense del corso RICERCA OPERATIVA

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, cheun problema di Programmazione Lineare puo non ammettere soluzione ottima. Ad esempio, senell’Esempio 4.3.4 sostituiamo il vincolo x2 ≤ 400 con il vincolo x2 ≥ 1000, la regione ammis-sibile sarebbe vuota nel senso che non esisterebbe nessun punto del piano che soddisfa tutti ivincoli. In questo caso il problema risulterebbe inammissibile e questo indipendentemente dallafunzione 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 ot-tima si puo ottenere considerando il problema dell’Esempio 4.3.5 e supponendo che la funzioneobiettivo debba essere massimizzata anziche minimizzata. In questo caso nella regione ammis-sibile (che e illimitata) la funzione obiettivo puo assumere valori arbitrariamente grandi cioetali che comunque scelto un valore M > 0 esiste un punto in cui la funzione obiettivo assumevalore maggiore di M ; questo significa che il problema e illimitato superiormente e quindi nonpuo esistere una soluzione ottima.

Sulla base di queste considerazioni sulla geometria di un problema di ProgrammazioneLineare (PL) in due variabili si puo intuire che le situazioni che si possono verificare sono leseguenti:

58

Page 61: Dispense del corso RICERCA OPERATIVA

• il problema di PL ammette soluzione ottima (che puo essere o non essere unica) inun vertice del poligono convesso che delimita la regione ammissibile;

• il problema di PL non ammette soluzione ottima perche

– la regione ammissibile e vuota

– la regione ammissibile e illimitata e la funzione obiettivo e illimitata superi-ormente (se il problema e di massimizzazione) o illimitata inferiormente (se ilproblema e di minimizzazione).

Quindi se si suppone che esiste un punto ammissibile, cioe che la regione ammissibile sianon vuota, allora sembrerebbe di poter dedurre che o il problema di Programmazione Lineareammette soluzione ottima in un vertice del poligono convesso che delimita la regione ammissibileoppure e illimitato.

Questi asserti, ora semplicemente dedotti intuitivamente per via geometrica, hanno in effettiuna validita generale e verranno enunciati e dimostrati in maniera rigorosa nel capitolo 10.Come ultima considerazione intuitiva si vuole citare la possibilita che la regione ammissibile sia

x

2x

1

Figura 4.17: Regione ammissibile costituita da una striscia di piano

costituita da una striscia di piano, cioe 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

59

Page 62: Dispense del corso RICERCA OPERATIVA

illimitato ad eccezione del caso particolare in cui le rette di livello della funzione obiettivo sonoparallele alle rette che delimitano la striscia di piano; in questo caso si hanno infinite soluzioni.

La non esistenza di vertici in questo caso si intuisce essere legata al fatto che la regioneammissibile costituita da una striscia di piano contiene rette. Infatti nei casi delle regioni am-missibili S e S dei problemi di Programmazione Lineare dell’Esempio 4.3.4 e dell’Esempio 4.3.5non esistono rette interamente contenute in S o in S. Anche la regione illimitata S puo conteneresemirette, ma non rette.

Nel caso in cui la regione ammissibile non contiene nemmeno semirette (che e il caso dellaregione S dell’Esempio 4.3.4), cioe la regione ammissibile sia chiusa e limitata, e possibilegarantire l’esistenza di un minimo (e un massimo) assoluto per funzioni continue grazie alteorema di Weierstrass.

60

Page 63: Dispense del corso RICERCA OPERATIVA

Capitolo 5

Problemi di ottimizzazioneconvessa e concava

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

5.1 Insiemi Convessi

Definizione 5.1.1 Un vettore y in IRn si dice combinazione convessa di p ≥ 1 vettorix1, . . . , xp se risulta

y =p∑

i=1

λixi

p∑

i=1

λi = 1 λi ≥ 0 i = 1, . . . , p.

Possiamo allora introdurre la seguente definizione

Definizione 5.1.2 Siano x e y due punti in IRn. L’insieme dei punti di IRn ottenuti come

z = (1− β)x + βy,

al variare di β nell’intervallo [0, 1] viene definito come segmento chiuso di estremi x e y eviene sinteticamente indicato con [x, y].

Esempio 5.1.3 Nella figura 5.1 e rappresentato il segmento in IR2 avente per estremi i puntix = (1, 1)T e y = (8, 5)T . Per β = 0 ritroviamo il punto x, mentre per β = 1 ritroviamo il puntoy; i punti segnati nella figura come xa, xb e xc corrispondono rispettivamente a valori di β paria 0.25, 0.5 e 0.75.

61

Page 64: Dispense del corso RICERCA OPERATIVA

5

4

3

2

1x1

xa

xb

xc

x2

1 2.75 4.5 6.25 8

β = 0

β = 0.25

β = 0.5

β = 0.75

1 x

x2

Figura 5.1: Esempio di segmento.

Dalla figura 5.1 risulta ovvio che il concetto di segmento e la generalizzazione, al caso diIRn dell’ usuale concetto di segmento valido nel piano.

Notiamo anche come, nel caso in cui gli estremi appartengano ad IR1, e sono quindi duenumeri (scalari), diciamo a e b, il concetto di segmento di estremi a e b coincida con quello diintervallo [a, b], fatto che giustifica la notazione [x, y] impiegata per indicare il segmento.

Definizione 5.1.4 Un insieme X ⊆ IRn e convesso se per ogni coppia di punti appartenentiall’insieme, appartengono all’insieme anche tutti i vettori ottenibili come loro combinazioneconvessa.

Utilizzando il concetto di segmento chiuso, la definizione di insieme convesso puo essere rifor-mulata nel modo seguente:

Un insieme X e convesso se per ogni coppia di vettori x, y ∈ X si ha [x, y] ⊆ X.

Dalla definizione segue che l’insieme vuoto e l’insieme costituito da un solo vettore sono insiemiconvessi (banali). Il piu semplice insieme convesso non banale e il segmento di estremi x, y ∈IRn.

Esempio 5.1.5 In IR2 gli insiemi (a) , (b) della figura 5.2 sono convessi, mentre gli insiemi (c),(d) della stessa figura non lo sono. Infatti agli insiemi (c),(d) appartengono coppie di punti,quali quelle segnate nella figura, tali che il segmento che li congiunge presenta dei punti nonappartenenti all’insieme; cio non avviene invece comunque si prendano coppie di punti negliinsiemi (a) e (b).

Una importante proprieta degli insiemi convessi e espressa dal seguente teorema.

62

Page 65: Dispense del corso RICERCA OPERATIVA

a b cd

e

Figura 5.2: Insiemi convessi e non convessi.

Teorema 5.1.6 L’intersezione di due insiemi convessi e un insieme convesso.

Dimostrazione: Siano X1, X2 ⊆ IRn 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. Poiche X1 ed X2 sono insiemiconvessi abbiamo che [x, y] ⊆ X1 e che [x, y] ⊆ X2. Ma allora [x, y] ⊆ X e l’insieme X econvesso 2

Esempio 5.1.7 L’insieme (e) della figura 5.2 e dato dall’intersezione di due insiemi convessied e convesso

Dal Teorema (5.1.6) si puo derivare, con un semplice ragionamento induttivo, il seguentecorollario.

Corollario 5.1.8 L’intersezione di un numero finito di insiemi convessi e un insieme convesso.

Passiamo ora a considerare dei particolari insiemi convessi che rivestono un ruolo importantenella teoria della programmazione lineare.Consideriamo l’espressione

a1x1 + . . . + anxn = b

che, con notazione vettoriale possiamo scrivere aT x = b, con a ∈ IRn e b ∈ IR. Possiamo alloradare le seguenti definizioni.

Definizione 5.1.9 Sia a un vettore di IRn e b un numero reale. L’insieme

H = x ∈ IRn : aT x = b

e detto iperpiano definito dall’equazione aT x = b. Gli insiemi

S≤ = x ∈ IRn : aT x ≤ bS≥ = x ∈ IRn : aT x ≥ b

sono detti semispazi chiusi definiti dalle disequazioni aT x ≤ b e aT x ≥ b.

Nel caso dello spazio IR2 il concetto di iperpiano coincide con quello di retta, mentre nel casodello spazio IR3 il concetto di iperpiano coincide con quello di piano. In maniera intuitiva, isemispazi possono essere pensati come l’ insieme dei punti che “giacciono” da una stessa parterispetto all’iperpiano.

63

Page 66: Dispense del corso RICERCA OPERATIVA

10x1 + 5x2 †25

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

10x 1 + 5x2 ‡25 5

4

3

2

1

10x + 5x =25

1 2 3 4 5 6 x 1

x 2

Figura 5.3: Retta e semipiani individuati da un’equazione lineare.

Esempio 5.1.10 Con riferimento alla figura 5.3, l’iperpiano (= retta) 10x1 + 5x2 = 25 dividelo spazio (= piano) in due semispazi: S≥ = x ∈ IR2 : 10x1 +5x2 ≥ 25, indicato in grigio nellafigura, e S≤ = x ∈ IR2 : 10x1 + 5x2 ≤ 25, indicato in bianco nella figura.

Notiamo che l’iperpiano H fa parte di tutti e due i semispazi e che l’intersezione dei duesemispazi coincide con l’iperpiano. 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 ∈ IRn : aT x ≤ b, ladimostrazione 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 ognivettore z ∈ [x, y] appartiene ad S≤, ovvero soddisfa la relazione aT z ≤ b.

Sia z = βx + (1 − β)y con 0 ≤ β ≤ 1. Poiche x ed y appartengono ad S≤ abbiamo cheaT x ≤ b e aT y ≤ b. Inoltre, poiche β 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 uniperpiano e un insieme convesso.

64

Page 67: Dispense del corso RICERCA OPERATIVA

Corollario 5.1.12 Un iperpiano e un insieme convesso.

Dimostrazione: Un iperpiano e l’intersezione 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), l’intersezionedi 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 definizione:

Definizione 5.1.13 Un insieme P ⊆ IRn e un poliedro se e l’intersezione di un numero finitodi semispazi chiusi e iperpiani.

In IR3 possibili poliedri sono i cubi, i tetraedi ecc. In R2 sono poliedri, ad esempio, isegmenti, 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 studiodei problemi di Programmazione lineare.

Definizione 5.1.14 (Punto estremo) Sia C ⊆ Rn un insieme convesso. Un punto x ∈ C sidice punto estremo di C se non puo essere espresso come combinazione convessa di due puntidi C distinti da x, o, equivalentemente, se non esistono y, z ∈ C con z 6= 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 unsegmento [x1, x2], gli estremi x1, x2; per un triangolo, i suoi vertici (non sono punti estremi ipunti dei lati che non siano vertici). L’insieme dei punti estremi di un insieme convesso C verraindicato con il simbolo Ext(C), ossia:

Ext(C) = x ∈ C : x e punto estremo di C.

Un insieme convesso puo non ammettere punti estremi. Ad esempio, un iperpiano, un semis-pazio, una sfera aperta non hanno punti estremi.

Osserviamo inoltre che Ext(C) e contenuto nella frontiera di C e quindi nessun insieme convessoaperto puo ammettere punti estremi.

Esempio 5.1.15 Nell’insieme di figura 5.4 il punto A non e un punto estremo, in quanto einterno al segmento che congiunge i punti B e C, anch’essi appartenenti all’insieme; lo stessovale per il punto D, interno al segmento [E,F]. Sono invece punti estremi dell’insieme i punti E,F, G, H.

65

Page 68: Dispense del corso RICERCA OPERATIVA

HA

B

CF

D

E

G

Figura 5.4: Punti estremi di un insieme.

Nel caso in cui l’insieme convesso sia un poliedro, i punti estremi sono detti anche vertici.1

5.2 Funzioni convesse e concave

Definizione 5.2.1 Una funzione f(x) si dice convessa su un insieme convesso C se, presicomunque 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 6= z,risulta

f((1− β)y + βz) < (1− β)f(y) + βf(z), β ∈ (0, 1).

1In realta la definizione di vertice e concettualmente diversa, ma si dimostra che un punto di unpoliedro e punto estremo se e solo se e un vertice.

66

Page 69: Dispense del corso RICERCA OPERATIVA

Definizione 5.2.2 Una funzione f(x) si dice concava su un insieme convesso C se, presi co-munque 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 6= 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 evidenzala dipendenza da β, introducendo la funzione

φ(β) = f((1− β)y + βz)

otteniamo per una funzione strettamente convessa che:

φ(β) < (1− β)φ(0) + βφ(1) β ∈ (0, 1)

Quest’ultima relazione mette in evidenza che, se si rappresenta graficamente nel piano (β, φ) lafunzione φ(β), il grafico della funzione nell’intervallo (0, 1) si trova al di sotto del segmento, dettosecante, che congiunge i punti (0, φ(0)) e (1, φ(1)) e coincide solo negli estremi del segmento. Sipuo concludere che una funzione strettamente convessa e caratterizzata dalla proprieta di avereil grafico sempre al di sotto di ogni sua secante.

Una funzione lineare del tipo cT x + b e sia convessa che concava (ma NON e strettamenteconvessa o strettamente concava).

5.3 Problemi di ottimizzazione

Dal punto di vista delle proprieta di convessita possiamo distinguere:

- problemi di programmazione convessa: sono i problemi di minimo in cui la funzioneobiettivo e convessa e l’insieme ammissibile e un insieme convesso (o anche i problemi dimassimo in cui la funzione obiettivo e concava e l’insieme ammissibile e convesso)

- problemi di programmazione concava: sono i problemi di minimo in cui la funzioneobiettivo e concava e l’insieme ammissibile e un insieme convesso (o anche i problemi dimassimo in cui la funzione obiettivo e convessa e l’insieme ammissibile e convesso)

- problemi generali, in cui non sono soddisfatte tali condizioni.

Riconoscere che un problema di ottimizzazione e convesso o concavo fornisce importantiinformazioni qualitative sulle sue soluzioni. Osserviamo che

Una problema con insieme ammissibile convesso S e funzione obiettivo lineare e sia convessoche concavo.

67

Page 70: Dispense del corso RICERCA OPERATIVA

e dunque

Una problema di Programmazione Lineare e sia convesso che concavo.

Esempio 5.3.1 Sia dato il problema

max x2

x2 − x31 ≥ 0

x1 + x2 ≤ 1x1, x2 ≥ 0,

dire se e convesso.Si tratta di un problema di massimo con funzione obiettivo lineare e quindi concava. L’insiemeammissibile e rappresentato in figura 5.5. Si tratta di un insieme convesso. Quindi il problemadato e convesso.

Notiamo che, poiche la funzione obiettivo e lineare, si tratta anche di un problema dimassimizzazione di una funzione convessa su insieme convesso e cioe di un problema concavo !

-0.2 0 0.2 0.4 0.6 0.8 1 1.2-0.2

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

S

Figura 5.5: Insieme ammissibile S dell’Esempio 5.3.1

Per riconoscere se un problema generale e convesso o concavo dobbiamo verificare che Ssia un insieme convesso, e che f(x) sia convessa/concava su S, il che non e sempre facile.Consideriamo un insieme S definito da vincoli di uguaglianza e disuguaglianza:

gi(x) ≤ 0, i = 1, . . . , mhj(x) = 0, j = 1, . . . , p.

(5.3)

68

Page 71: Dispense del corso RICERCA OPERATIVA

Nel caso in cui gi per i = 1, . . . ,m e hj per j = 1, . . . , p siano funzioni lineari, S e un poliedroe quindi un insieme convesso. Se invece qualche gi o hj e non lineare possiamo utilizzare laseguente proposizione fornisce una condizione solo sufficiente per la convessita 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 IRn, allora l’insieme S e convesso.

Dimostrazione. Siano y e z due punti appartenenti a S. Per la convessita di g si ha

g((1− β)y + βz) ≤ (1− β)g(y) + βg(z) con β ∈ [0, 1],

Quindi poiche 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 l’insieme Si e convesso.

E possibile quindi enunciare la seguente condizione sufficiente.

Teorema 5.3.3 Sia

S = x ∈ Rn : gi(x) ≤ 0, i = 1, . . . , m hj(x) = 0, j = 1, . . . , p.

Se per ogni i le funzioni gi(x) sono convesse in IRn, e per ogni j le funzioni hj sono funzionidel tipo aT

j x− bj, allora l’insieme S e convesso.

Dimostrazione. L’insieme ammissibile S e ottenuto come intersezione degli insiemi Si = x ∈Rn : gi(x) ≤ 0 e Hj = x ∈ Rn : aT

j x − bj = 0 che nelle ipotesi poste sono convessi per laproposizione 5.3.2 e per il Corollario 5.1.12. Il risultato segue dal Corollario 5.1.8.

Otteniamo quindi la seguente condizione sufficiente per riconoscere se un problema e con-vesso o concavo.

Teorema 5.3.4 Sia dato il Problema

min f(x)gi(x) ≤ 0, i = 1, . . . ,mhj(x) = 0, j = 1, . . . , p.

(5.4)

Si assuma che i vincoli di disuguaglianza siano dati da funzioni gi(x) convesse in IRn, e che ivincoli di uguaglianza siani dati da funzioni del tipo aT

j x− bj.Se la funzione obiettivo f(x) e una funzione convessa in IRn, il Problema (5.4) e convesso.Se la funzione obiettivo f(x) e una funzione concava in IRn, il Problema (5.4) e concavo.

Notiamo che, la condizione sufficiente del Teorema 5.3.3 non e soddisfatta nell’Esempio5.3.1 a causa della non convessita del vincolo x3

1 − x2 ≤ 0.

69

Page 72: Dispense del corso RICERCA OPERATIVA

5.3.1 Problema di ottimizzazione convesso

I problemi di ottimizzazione convessi sono di particolare importanza per due motivi. Il primo eche la grande maggioranza dei problemi di ottimizzazione che si incontrano nella pratica sonoconvessi. Il secondo e che la convessita induce alcune proprieta che semplificano l’analisi e lasoluzione di un problema convesso.

Una delle proprieta piu significative e la seguente:

Teorema 5.3.5 [Assenza di ottimi locali] Sia S ⊆ Rn un insieme convesso e f una funzioneconvessa su S. Allora, il problema

min f(x)x ∈ S

o non ha soluzione, o ha solo soluzioni globali; non puo avere soluzioni esclusivamente locali.

Dimostrazione. La dimostrazione e per assurdo. Ammettiamo che esista un minimo globalex∗ e che x sia una soluzione locale, ma non globale, di minx∈Sf(x). Allora risulta f(x∗) < f(x).

La costruzione utilizzata nella dimostrazione e illustrata schematicamente nella figura 5.6.

Figura 5.6: Costruzione geometrica utilizzata nella dimostrazione del Teorema 5.3.5 N.B. nellafigura x∗ e il minimo locale, e x rappresenta il minimo globale

Consideriamo il segmento [x, x∗]: per la convessita 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,poiche in ogni punto x ∈ (x, x∗] risulta f(z) < f(x), non esiste nessun intorno di raggio ρ > 0in cui x puo soddisfare la definizione di minimo locale.

70

Page 73: Dispense del corso RICERCA OPERATIVA

5.3.2 Problema di ottimizzazione concavo

I problemi di programmazione concava costituiscono una classe molto ampia di problemi nonconvessi, che include numerose classi di problemi inerentemente “difficili”. La difficolta princi-pale che si manifesta nella soluzione di problemi di tipo concavo risiede nel fatto che possonoesssere presenti molti punti di minimo locale che non sono punti di minimo globale. In casidel genere la ricerca delle soluzioni globali puo divenire un problema di natura combinatoria,che puo richiedere, nel caso peggiore, tempi di calcolo esponenzialmente crescenti con le dimen-sioni del problema (E possibile dimostrare, in particolare, che, sotto opportune ipotesi, moltiproblemi di ottimizzazione combinatoria possono essere riformulati come problemi (continui) diprogrammazione concava.).

Per i problemi di programmazione concava e possibile dimostrare che le soluzioni ottime, oveesistano, appartengono alla frontiera dell’insieme ammissibile. Piu precisamente vale il risultatoseguente.

Teorema 5.3.6 [Assenza di soluzioni ottime interne] Sia S ⊆ Rn un insieme convesso ef una funzione concava su S. Allora, se esiste un punto di minimo globale del problema

min f(x)x ∈ S

e se la funzione obiettivo non e costante su S, ogni punto di minimo globale appartiene allafrontiera di S.

Dimostrazione. Supponiamo che il problema ammetta soluzione e che x∗ sia una soluzioneottima. Poiche, per ipotesi, f non e costante su S deve esistere un punto x ∈ S tale che

f(x) > f(x∗) = minx∈S

f(x).

Supponiamo ora che z ∈ S sia un punto interno all’insieme ammissibile. Deve allora esistereuna sfera aperta B(z; ρ) con centro in z e raggio ρ > 0 tutta contenuta in S. Sulla rettacongiungente x con z possiamo allora determinare un y ∈ B(z; ρ) ⊆ S tale che z appartenga alsegmento [x, y] e risulti y 6= z, ossia possiamo trovare un λ con 0 ≤ λ < 1 tale che

z = (1− λ)x + λy.

Per la concavita di f e l’ipotesi che sia f(x) > f(x∗), tenendo conto del fatto che f(y) ≥ f(x∗)e che 1− λ > 0 (perche y 6= z), si ottiene:

f(z) ≥ (1− λ)f(x) + λf(y) > (1− λ)f(x∗) + λf(x∗) = f(x∗).

Cio dimostra che f(z) > f(x∗) e quindi che non puo esistere una soluzione ottima in un puntointerno. 2

Per quanto riguarda la Programmazione Lineare, poiche si tratta di un problema sia con-vesso che concavo, abbiamo, come immediata conseguenza, il seguente corollario

Corollario 5.3.7 Se un problema di Programmazione Lineare ammette soluzione, allora ilminimo globale si trova sulla frontiera del poliedro ammissibile.

Nel seguito vedremo che nel caso in cui l’insieme ammissibile sia un poliedro, vale una proprietapiu forte. In particolare, nel caso di problemi di Programmazione Lineare (Capitolo 10), almenoun punto di minimo globale deve trovarsi su un vertice del poliedro ammissibile.

71

Page 74: Dispense del corso RICERCA OPERATIVA

5.4 Caratterizzazione funzioni convesse continuamente dif-ferenziabili

Se f e una funzione convessa differenziabile possiamo dare condizioni necessarie e sufficientidi convessita espresse per mezzo delle derivate prime o seconde dalla funzione. Ci limitiamo ariportare i risultati seguenti.

Teorema 5.4.1 (Condizioni necessarie e sufficienti di convessita) Sia C un insieme con-vesso aperto, sia f : C → R e supponiamo che ∇f sia continuo su C. Allora f e convessa suC 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 cony 6= 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 unafunzione e convessa su C se e solo se in un qualsiasi punto y ∈ C l’ordinata f(y) della funzionenon e inferiore alle ordinate dei punti del piano tangente al grafo della funzione in un qualsiasialtro punto x di C.

Nel teorema successivo riportiamo una condizione necessaria e sufficiente di convessita espressaper mezzo delle derivate seconde.

Teorema 5.4.2 (Condizioni necessarie e sufficienti di convessita) Sia C un insieme con-vesso aperto, sia f : C → R e supponiamo che la matrice Hessiana ∇2f sia continua su C.Allora f e convessa su C se e solo se, per ogni x ∈ C, la matrice ∇2f(x) e semidefinita positiva.

Se si prendono in considerazione le derivate seconde, non e vero, in generale, che unacondizione necessaria di convessita stretta e la definita positivita della matrice Hessiana (bastipensare alla funzione y = x4 in x = 0). Si puo stabilire tuttavia che se la matrice Hessiana edefinita positiva allora f e strettamente convessa.

Teorema 5.4.3 (Condizione sufficiente di convessita stretta) Sia C un insieme convessoaperto, sia f : C → R e supponiamo che la matrice Hessiana ∇2f sia continua e definita posi-tiva 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 lefunzioni quadratiche. Una funzione quadratica e una funzione del tipo

q(x) =12xT Ax + cT x,

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 ∇2f(x) = A.

72

Page 75: Dispense del corso RICERCA OPERATIVA

Data una matrice A si definisce forma quadratica associata alla matrice A la funzione

xT Ax =n∑

i=1

n∑

j=1

aijxixj . (5.7)

Una forma quadratica e quindi una particolare funzione quadratica in cui il termine lineare eidenticamente nullo (c = 0).

Si verifica facilmente che il gradiente e l’Hessiano della forma quadratica sono dati rispet-tivamente da 2Ax e 2A.

La forma quadratica xT Ax si dice:

- definita positiva, se risulta xT Ax > 0 ∀x ∈ IRn, x 6= 0;

- semidefinita positiva se risulta xT Ax ≥ 0 ∀x ∈ IRn;

- indefinita 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 rispettivamentedefinita positiva, semidefinita positiva, indefinita.

La forma quadratica xT Ax si dice (semi)definita negativa se −xT Ax e (semi)definita posi-tiva.

Nel caso di funzioni quadratiche, la matrice hessiana A e costante e la condizione di con-vessita dei Teoremi 5.4.2 e 5.4.3 diventa:

Teorema 5.4.4 Una funzione quadratica q(x) e convessa su IRn se, e solo se, risulta:

12yT Ay ≥ 0, per ogni y ∈ IRn;

inoltre, la funzione q(x) e strettamente convessa su IRn se e solo se risulta

12yT Ay > 0, per ogni y ∈ IRn.

Notare che nel caso di funzione quadratica la condizione di stretta convessita e condizionenecessaria e sufficiente.

Per verificare se una matrice A e definita positiva, si puo utilizzare un semplice test.

Criterio 1 Siano Ak, k = 1 . . . , n gli n minori principali della matrice A, detti sottomatriciprincipali di nord-ovest, cioe le n sottomatrici con elementi aij , i, j = 1, . . . , k,ottenute da Aeliminando le ultime n− k righe e colonne. Denotato con detAk il determinante di Ak, risultache:

- A e definita positiva se, e solo se, detAk > 0 , per k = 1, . . . , n.

Si osserva che se A e semidefinita positiva allora risulta detAk ≥ 0, ma non e vero in generaleil viceversa. Basta prendere come esempio la matrice

A =(

0 00 2a22

)

73

Page 76: Dispense del corso RICERCA OPERATIVA

con a22 < 0 e la forma quadratica associata

a11x21 + 2a12x1x2 + a22x

22

in cui a11 = a12 = 0. I minori principali A1 e A2 hanno determinante nullo, e quindi soddisfanoil criterio detAk ≥ 0, ma q(x) e semidefinita negativa !!!

Per verificare se una matrice A e semidefinita positiva si deve applicare un criterio moltopiu oneroso riportato di seguito.

Criterio 2 Siano Dik,jkle 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 sottomatricicon elementi aij , i = i1, . . . , ik, j = j1, . . . , jk, per 1 ≤ k ≤ n. Denotato con detDik,jk

ildeterminante di Dik,jk

, si ha:

- A e semidefinita positiva se, e solo se, Dik,jk≥ 0 per ogni 1 ≤ k ≤ n.

Osserviamo che il criterio fornisce delle condizioni sufficienti di NON convessita. In parti-colare, data una matrice A quadrata e simmetrica, se risulta aii < 0 per qualche i = 1, . . . , nallora la matrice NON e semidefinita posiitva (ne dunque definita positiva). Analogamente serisulta

detDik,jk< 0

per un qualunque minore principale allora la matrice NON e semidefinita posiitva.

Per analizzare se una matrice A e definita/semidefinita negativa si possono applicare i criteriprecedenti alla matrice −A associata alla forma quadratica.

Un altro test per verificare il segno di una forma quadratica consiste nel determinare gliautovalori della matrice A, cioe’ i valori αi, i = 1, . . . , n che risolvono l’equazione 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 autovalorisono tutti reali. Risulta che:

- A e definita positiva se, e solo se, αi > 0 , per i = 1, . . . , n;

- A e semidefinita positiva se, e solo se, αi ≥ 0 per i = 1, . . . , n;

- A e indefinita, altrimenti.

E evidente che il test basato sui minori e di piu semplice impiego di quello basato sugli auto-valori: infatti calcolare determinanti, fino all’ordine n, e piu’ semplice che risolvere un’equazionedi grado n.

Nel seguito indicheremo αmin(A) e αmax(A) rispettivamente il piu piccolo e il piu grandeautovalore di una matrice A.

Esempio 5.4.5 Un esempio di funzione quadratica strettamente convessa e la funzione

4x21 + 8x2

2 − x1

rappresentata in figura 5.7.

74

Page 77: Dispense del corso RICERCA OPERATIVA

Figura 5.7: Grafico della funzione quadratica convessa Dell’Esempio 5.4.5.

75

Page 78: Dispense del corso RICERCA OPERATIVA

Capitolo 6

Problemi di ottimizzazione nonvincolata

6.1 Introduzione

Con riferimento al problema di ottimizzazione minx∈Rn f(x), iniziamo in questo capitolo lo stu-dio delle condizioni di ottimalita. Nei successivi capitoli affronteremo lo studio delle condizionidi ottimalita in relazione alle classi di problemi vincolati di nostro interesse.In termini molto generali, una condizione di ottimalita e una condizione (necessaria, sufficiente,necessaria e sufficiente) perche un punto x∗ risulti una soluzione ottima (locale o globale)del problema. Ovviamente, una condizione di ottimalita sara significativa se la verifica dellacondizione risulta piu “semplice” o piu “vantaggiosa” (da qualche punto di vista) rispettoall’applicazione diretta della definizione. Le condizioni di ottimalita si esprimono infatti, tipi-camente, attraverso sistemi di equazioni, sistemi di disequazioni, condizioni sugli autovalori dimatrici opportune.

Lo studio delle condizioni di ottimalita ha sia motivazioni di natura teorica, sia motivazionidi natura algoritmica. Dal punto di vista teorico, una condizione di ottimalita puo servire acaratterizzare analiticamente le soluzioni di un problema di ottimo e quindi consentire di svol-gere analisi qualitative, anche in assenza di soluzioni numeriche esplicite; un esempio e l’analisidella sensibilita delle soluzioni di un problema di ottimo rispetto a variazioni parametriche.Dal punto di vista algoritmico, una condizione necessaria puo servire a restringere l’insieme incui ricercare le soluzioni del problema originario e a costruire algoritmi finalizzati al soddis-facimento di tale condizione; una condizione sufficiente puo servire a dimostrare che un puntoottenuto per via numerica sia una soluzione ottima del problema e quindi a definire criteri diarresto del procedimento risolutivo.

6.2 Direzioni di discesa

Allo scopo di definire condizioni di ottimalita e necessario introdurre la seguente definizione.

76

Page 79: Dispense del corso RICERCA OPERATIVA

Definizione 6.2.1 (Direzione di discesa) Sia f : Rn → R e x ∈ Rn. Si dice che un vettored ∈ Rn, d 6= 0 e una direzione di discesa per f in x se esiste t > 0 tale che

f(x + td) < f(x), per ogni t ∈ (0, t ].

Il concetto di direzione di discesa ci consentira di caratterizzare i minimi locali di una funzione.Nel caso di funzione lineare f(x) = cT x, si ottiene facilmente applicando la definizione

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, inquesto caso particolare, la caratterizzazione di direzione di discesa non dipende dal punto x incui ci troviamo.

Se f e una funzione lineare, ossia se f(x) ≡ cT x allora d e una direzione di discesa (in unqualsiasi punto x ∈ IRn) se e solo se cT d < 0.

In generale, per funzioni continuamente differenziabili, e possibile caratterizzare la direzione didiscesa utilizzando informazioni sulle derivate prime della funzione.Vale in particolare la seguente condizioni sufficiente:

Teorema 6.2.2 (Condizione di discesa) Supponiamo che f sia continuamente differenzia-bile nell’intorno 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.

Dimostrazione. E noto (vedi Appendice A) che per una qualunque funzione continuamentedifferenziabile possiamo scrivere

f(x + td) = f(x) + t∇f(x)T d + α(x, t) (6.1)

dove α(x, t) soddisfa limt→0

α(x, t)t

= 0. Per valori sufficientemente piccoli di t possiamo dunquescrivere

f(x + td)− f(x) ' t∇f(x)T d;

se ∇f(x)T d < 0 risulta allora f(x + td) − f(x) < 0 che quindi dimostra che d e una direzionedi discesa.

Ricordando che ∇f(x)T d = ‖∇f(x)‖‖d‖ cos θ dove θ e l’angolo compreso tra ∇f(x) e d, dalpunto di vista geometrico la condizione ∇f(x)T d < 0 esprime il fatto che se una direzione dforma un angolo ottuso con il gradiente di f in x, allora d e una direzione di discesa per f in x.

Sia f continuamente differenziabile e sia d ∈ Rn un vettore non nullo. Se l’angolo θ tra ∇f(x)e d soddisfa

θ > 90o

allora d e di discesa per f in x.

77

Page 80: Dispense del corso RICERCA OPERATIVA

Tra le direzioni di discesa, un ruolo particolarmente importante e svolto dalla direzione dell’antigradiented = −∇f(x). Se ∇f(x) 6= 0, la direzione dell’antigradiente d = −∇f(x) e sempre una direzionedi discesa, infatti risulta

∇f(x)T d = −∇f(x)T∇f(x) = −‖∇f(x)‖2 < 0.

La definizione e illustrata nella figura 6.1, con riferimento agli insiemi di livello di una funzionein R2. La direzione dell’antigradiente e utilizzata per la definizione di un semplice algoritmo

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

d

x*+t d f(x)<f( x*)

direzione di discesa x*

> 90o

f( x*)

Figura 6.1: Esempio di direzione d di discesa in IR2.

per la determinazione di punti di minimo (vedi il paragrafo 6.4).Naturalmente e possibile dare una condizione sufficiente analoga al teorema 6.2.2 affinche

una direzione sia di salita.

Sia f sia continuamente differenziabile nell’intorno di un punto x ∈ Rn e sia d ∈ Rn un vettorenon 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) 6= 0, la direzione del gradiente d = ∇f(x) e sempre una direzione disalita in x.

78

Page 81: Dispense del corso RICERCA OPERATIVA

Osserviamo che nel caso di funzione lineare f = cT x, risulta ∇f(x) = c, quindi la condizioneespressa dal Teorema 6.2.2 coincide con la caratterizzazione ottenuta in base della definizionedi direzione di discesa. Nel caso lineare, la relazione (6.1) vale con α(x, t) ≡ 0 e dunque lacondizione del Teorema 6.2.2 caratterizza tutte e sole le direzioni di discesa. Si tratta cioe diuna condizione necessaria e sufficiente, mentre nel caso generale e solo una condizione sufficiente.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 esolo se ∇f(x)T d = cT d = 0.

Nel caso generale, la condizione di discesa enunciata e solo sufficiente, in quanto possono esisteredirezioni di discesa tali che ∇f(x)T d = 0. Illustriamo le varie possibilita nel seguente esempio.

Esempio 6.2.3 Consideriamo la funzione

f(x) = x31 + x2

2 − 3x1.

sia dato il punto x = (−1, 0)T e la direzione d = (−1, 0)T . Il gradiente della funzione vale

∇f(x) =(

3x21 − 32x2

).

Si verifica facilmente che il gradiente della funzione si annulla nel punto x, quindi la condizionesufficiente espressa dal teorema 6.2.2 non e soddisfatta in quanto ∇f(x)T d = 0. La direzione de pero 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.

Mostriamo che esiste un valore di t tale che −t3 − 3t2 + 2 < 2 = f(x) per ogni 0 < t ≤ t. Lacondizione che si ottiene e −t3 − 3t2 < 0 che risulta verificata per qualunque valore di t > 0,quindi effettivamente 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 verifica facilmenteche il gradiente della funzione si annulla nel punto x, e quindi la condizione sufficiente espressadal teorema 6.2.2 anche in questo caso non e soddisfatta in quanto ∇f(x)T d = 0. In questocaso pero 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

Dobbiamo quindi verificare se esiste un t > 0 tale che per ogni t ∈ (0, t] risulta −t3 + 3t2 =t2(−t+3) < 0. Si verifica facilmente che la condizione e verificata solo per valori di t abbastanzagrandi (t > 3) e quindi d non e di discesa. Si tratta invece di una direzione di salita, infattiscegliendo t < 3, si ottiene che f(x + td) > f(x) per ogni t ∈ (0, t].Consideriamo ora il punto x = (0, 0)T in cui il gradiente di f vale ∇f(x) = (−3, 0)T . Risultache la direzione d = (−1, 0)T e di salita in x, mentre la direzione opposta −d = (1, 0)T e didiscesa.

79

Page 82: Dispense del corso RICERCA OPERATIVA

Dall’esempio e dalle considerazioni precedenti risulta evidente che dato in un punto x eduna direzione d, sono possibili solo questi casi:

Sia f sia continuamente differenziabile nell’intorno di un punto x ∈ Rn e sia d ∈ Rn un vettorenon 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 puo concludere se la direzione e di discesa o di salita in xo lungo la quale la funzione si mantiene costante.

La condizione del teorema 6.2.2 diventa anche necessaria nel caso di convessita della funzioneobiettivo.

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 enecessaria (la sufficienza e data dal teorema 6.2.2). Sia x ∈ IRn e sia d una direzione di discesaper f in x. Possiamo scrivere per la convessita della funzione

f(x + αd) ≥ f(x) + α∇f(x)T d.

Se per assurdo fosse ∇f(x)T d ≥ 0 allora per α > 0 sufficientemente piccolo, si avrebbe f(x +αd) ≥ f(x) contraddicendo l’ipotesi che d sia di discesa.

Se f e differenziabile due volte e possibile caratterizzare l’andamento di f lungo una di-rezione assegnata tenendo conto anche delle derivate seconde e di cio si puo tener conto, comesi vedra in seguito, per stabilire condizioni di ottimo del secondo ordine.

Introduciamo la definizione seguente.

Definizione 6.2.5 (Direzione a curvatura negativa)

Sia f : Rn → R due volte continuamente differenziabile nell’intorno di un punto x ∈ Rn. Sidice che un vettore d ∈ Rn, d 6= 0 e una direzione a curvatura negativa per f in x se risulta

dT∇2f(x)d < 0.

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

80

Page 83: Dispense del corso RICERCA OPERATIVA

Teorema 6.2.6 (Condizione di discesa del secondo ordine)

Sia f : Rn → R due volte continuamente differenziabile nell’intorno di un punto x ∈ Rn e siad ∈ 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∇2f(x)d < 0.

Allora la direzione d e una direzione di discesa per f in x.

Dimostrazione. Poiche f e differenziabile due volte, si ha:

f(x + td) = f(x) + t∇f(x)T d +12t2dT∇2f(x)d + β(x, td)

in cui β(x, td)/t2 → 0. Essendo per ipotesi ∇f(x)T d = 0, si puo scrivere:

f(x + td)− f(x)t2

=12dT∇2f(x)d +

β(x, td)t2

e quindi, poiche

limt→0

β(x, td)t2

= 0,

per valori sufficientemente piccoli di t si ha f(x + td)− f(x) < 0, per cui d e una direzione didiscesa.

Esempio 6.2.7 Consideriamo la funzione del’esempio 6.2.3,

f(x) = x31 + x2

2 − 3x1.

nel punto x = (−1, 0)T . La direzione d = (−1, 0)T e tale che∇f(x)T d = 0, quindi la condizionesufficiente espressa dal teorema 6.2.2 non e soddisfatta. Verifichiamo la condizione del Teorema6.2.6. La matrice hessiana e

∇2f(x) =(

6x1 00 2

)x=

( −6 00 2

).

Risulta allora dT∇2f(x)d = −6 e quindi la direzione soddisfa la condizione sufficiente delTeorema 6.2.6, per cui si puo concludere che e di discesa.

6.3 Ottimizzazione non vincolata

Abbiamo gia osservato nel capitolo 2 che i problemi non vincolati sono una particolare classedi problemi non lineari, in cui S = Rn. Il problema in oggetto e quindi

minx∈IRn

f(x), (P −NV )

81

Page 84: Dispense del corso RICERCA OPERATIVA

con f : IRn → IR non lineare e continuamente differenziabile. Osserviamo preventivamente chein questo caso non si puo applicare in modo diretto il teorema di Weierstrass per l’esistenza diun minimo. Condizioni di esistenza possono essere comunque ottenute con riferimento ad uninsieme ammissibile “fittizio”. In particolare, dato un qualunque punto x in cui la funzione valef(x), e si considera l’insieme non vuoto (contiene almeno x)

L(x) = x ∈ IRn : f(x) ≤ f(x).

Possiamo allora considerare il problema ”vincolato”

min f(x)x ∈ L(x) (P −NV L)

Se x non e il minimo globale di (P-NV), allora il minimo globale x∗, se esiste, sicuramente sitrova in L(x). Infatti per definizione f(x∗) ≤ f(x) per ogni x e quindi in particolare vale anchef(x∗) ≤ f(x). Quindi risolvere (P-NV) e equivalente a risolvere (P-NVL).Per assicurare l’esistenza di un minimo globale di (P-NVL) (e quindi di (P-NV), possiamoutilizzare il teorema di Weierstrass. E sufficiente richiedere che esista un x per cui l’insiemeL(x) sia compatto.

Se esiste un x ∈ IRn per cui l’insieme 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 Definizione6.2.1 di direzione di discesa e la condizione necessaria di minimo locale enunciata nel teoremasuccessivo.

Teorema 6.3.1 (Condizione necessaria di minimo locale) Sia x∗ ∈ S un punto di mini-mo locale del problema (P) allora non puo esistere in x∗ una direzione di discesa per f .

La condizione necessaria puo consentire di selezionare tra tutti i punti ammissibili i poten-ziali candidati ad essere punti di minimo locale. Per ricavare delle condizioni di ottimalitadalla condizione enunciata nel Teorema 6.3.1 occorre utilizzare una caratterizzazione analiticadelle direzioni di discesa. In effetti la verifica della condizione espressa dal Teorema 6.3.1 eessenzialmente equivalente all’applicazione della definizione di minimo locale.Si puo pero specificare ulteriormente la condizione necessaria utilizzando la caratterizzazionedi direzione di discesa. Si ottiene allora la seguente condizione necessaria.

Se x∗ e un punto di minimo locale del del problema (P) non puo esistere una direzione d ∈ Rn

in x∗ tale che ∇f(x∗)T d < 0.

Tale condizione puo essere equivalentemente enunciata come segue.

Teorema 6.3.2 (Condizione necessaria di minimo locale) Se x∗ e un punto di minimolocale del del problema (P), allora risulta

∇f(x∗)T d ≥ 0 per ogni direzione d ∈ Rn.

82

Page 85: Dispense del corso RICERCA OPERATIVA

Ricordando che ∇f(x∗)T d = ‖∇f(x∗)‖‖d‖ cos θ dove θ e l’angolo compreso tra ∇f(x∗) e d, dalpunto di vista geometrico la condizione ∇f(x∗)T 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 l’angolo θ formatocon ∇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 differenziabile su Rn e sia x? ∈ Rn. Se x∗ e un punto di minimo locale nonvincolato di f in Rn allora si ha

∇f(x?) = 0.

Dimostrazione. Se x∗ ∈ Rn e un punto di minimo locale non possono esistere direzioni didiscesa in x∗. Se ∇f(x∗) 6= 0, esisterebbe una direzione d = −∇f(x∗) 6= 0 di discesa in x∗. Maquesto e assurdo.

Definizione 6.3.4 (Punto stazionario) Sia f : Rn → R continuamente differenziabile suRn. 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 determinanodeterminando le soluzioni di ∇f(x) = 0.

Esempio 6.3.5 Sia dato il problema

f(x1, x2) = x14 + x2

4 − 3x1x2,

sapendo che esiste un punto di minimo, determinarlo utilizzando le condizioni necessarie.Il gradiente della funzione e dato da:

∇f =(

4x31 − 3x2

4x32 − 3x1

).

Dall’annullamento del gradiente si ottiene il sistema

4x31 − 3x2 = 0

4x32 − 3x1 = 0

x2

(25627 x8

2 − 3)

= 0

x1 = 43x3

2

Si ottengono le soluzioni: A(0, 0), B(√

32 ,

√3

2

), C

(−√

32 ,−

√3

2

).

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 =

(±√

32 ,±

√3

2

)abbiamo

∇2f = 3(

3 −1−1 3

)

sono punti di minimo globale di valore della funzione obiettivo f = − 98 .

2

83

Page 86: Dispense del corso RICERCA OPERATIVA

−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

Figura 6.2: Curve di livello della funzione x41 + x4

2 − 3x1x2.

Senza ulteriori ipotesi sulla funzione obiettivo, la condizione e solo necessaria. Ricordando chese ∇f(x∗) 6= 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 differenziabile su Rn e sia x? ∈ Rn tale che ∇f(x?) = 0 allorae vera una delle seguenti affermazioni:

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 sufficiente di minimo globale non vincolato) Sia f : Rn →R continuamente differenziabile 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 strettamenteconvessa su Rn, allora x? e l’unico punto di minimo globale di f su Rn.

Dai teoremi 6.3.3 e 6.3.6 si ottiene quindi una condizione necessaria e sufficiente di minimoglobale non vincolato.

Teorema 6.3.7 (Condizione necessaria e sufficiente 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 puntodi minimo globale di f su Rn se e solo se ∇f(x?) = 0. Inoltre, se f e strettamente convessa suRn e se in x? si ha ∇f(x?) = 0, allora x? e l’unico punto stazionario di f e costituisce anchel’unico punto di minimo globale della funzione.

84

Page 87: Dispense del corso RICERCA OPERATIVA

salita

x*

discesa

x2 x1

f(x)

Figura 6.3: Esempio di punto di sella in IR2.

Possiamo dare delle condizioni che utilizzano la caratterizzazione del secondo ordine didirezione 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 puntodi minimo locale del del problema (P), allora per ogni d tale che ∇f(x∗)T d = 0 risulta

dT∇2f(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 differenziabile in un intorno di x? ∈ Rn. Allora, sex? e un punto di minimo locale non vincolato di f si ha:

(a) ∇f(x?) = 0;

(b) ∇2f(x∗) e semidefinita positiva, ossia y′∇2f(x?)y ≥0, per ogni y ∈ Rn.

85

Page 88: Dispense del corso RICERCA OPERATIVA

Dimostrazione. La (a) segue dalla caratterizzazione di direzioni di discesa del secondo ordinedata dal Teorema 6.2.6.

Se tuttavia ∇2f(x?) e definita positiva, si puo stabilire un risultato piu forte, che riportiamonel teorema successivo.

Teorema 6.3.10 (Condizione sufficiente del secondo ordine)

Sia f : Rn → R due volte continuamente differenziabile in un intorno di x∗ ∈ Rn.

Supponiamo che valgano le condizioni:

(a) ∇f(x?) = 0

(b) la matrice Hessiana e definita positiva in x?, ossia:

y′∇2f(x?)y > 0 per ogni y ∈ Rn, y 6= 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:

f(x? + αd) = f(x?) +12α2d′∇2f(x?)d + o(α2),

e quindi si ottiene:f(x? + αd)− f(x?)

α2=

12d′∇2f(x?)d +

o(α2)α2

Quindi per valori di α piccoli, l’ultimo termine e trascurabile (o(α2)/α2 → 0 per α → 0), percui f(x? + αd)− f(x?) > 0 per ogni d, il che prova l’enunciato.

Dai risultati precedenti si possono dedurre facilmente condizioni necessarie e condizioni suffici-enti 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 econdizione necessaria sia perche x? sia un punto di minimo, sia perche x? sia un punto dimassimo.

Una condizione necessaria del secondo ordine per un massimo locale e che∇f(x?) = 0 e∇2f(x?)sia semidefinita negativa. Una condizione sufficiente di massimo locale e che ∇f(x?) = 0 e∇2f(x) sia semidefinita negativa in un intorno di x?. Condizione sufficiente perche x? sia unpunto di massimo locale stretto e che ∇f(x?) = 0 e ∇2f(x?) sia definita negativa.

Se risulta ∇f(x?) = 0 e la matrice Hessiana ∇2f(x?) e indefinita (ossia, esistono vettori d percui d′∇2f(x?)d > 0 e altri per cui d′∇2f(x?)d < 0) allora si puo escludere che x? sia un puntodi 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 didiscesa (quando d′∇2f(x?)d < 0) sia direzioni di salita (quando d′∇2f(x?)d > 0).

o Se ∇f(x?) = 0 e ∇2f(x?) e semidefinita (negativa o positiva) non si puo determinare lanatura di x? in assenza di altre informazioni. Tuttavia se ∇2f(x?) non e semidefinita positiva(negativa) si puo escludere che x∗ sia un punto di minimo (massimo).

86

Page 89: Dispense del corso RICERCA OPERATIVA

Una classe di particolare interesse di funzioni non lineari e quella delle funzioni quadratiche,ovvero del tipo

f(x) =12xT Qx + cT x

con Q matrice simmetrica n×n e c ∈ IRn. Poiche la matrice hessiana di una funzione quadraticae costante e facile verificare la convessita della funzione (vedi paragrafo 5.2 del Capitolo 5). Nelcaso quadratico e anche possibile formalizzare i risultati di esistenza di un minimo globale.

Vale in particolare la seguente caratterizzazione.

Teorema 6.3.11 (Minimizzazione di una funzione quadratica) Sia q(x) = 12xT Qx+cT x,

con Q simmetrica e c ∈ Rn. Allora:

1. q(x) ammette un punto di minimo se e solo se Q e semidefinita positiva ed esiste x? taleche Qx? + c = 0;

2. q(x) ammette un unico punto di minimo globale se e solo se Q e definita positiva;

3. se Q e semidefinita positiva ogni punto x? tale che Qx? + c = 0 e un punto di minimoglobale di q(x).

Dimostrazione. Ricordiamo che risulta ∇q(x) = Qx + c e ∇2f(x) = Q. Inoltre se risultaQ semidefinita positiva, q(x) e convessa, se risulta Q definita positiva, q(x) e strettamenteconvessa.Assegnati x?, x ∈ Rn e posto x = x? + s si puo scrivere:

q(x) = q(x? + s) = q(x?) + (Qx? + c)T s +12sT Qs. (6.2)

Supponiamo ora che Qx? + c = 0 e che Q sia semidefinita positiva; in tal caso dalla (6.2) segueq(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?) = 0e risulta q(x) ≥ q(x?) per ogni x ∈ IRn. Dalla (6.2) segue 0 ≤ q(x) − q(x?) = 1

2sT Qs cons = x− x?, ovvero Q º 0. Cio prova la (1).La (2) segue dalla (1) e dal fatto che, sT Qs > 0 per ogni s se e solo se Q e definita positiva.Infine, la (3) segue ancora dalla (6.2) perche 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) =12(αx2

1 + βx22)− x1.

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

)∇2q =

(α 00 β

)

87

Page 90: Dispense del corso RICERCA OPERATIVA

0

0.5

1

1.5

−1

−0.5

0

0.5

1−1

−0.5

0

0.5

1

Figura 6.4: Grafico di q(x1, x2) per α = β = 1.

Se α > 0 e β > 0, allora esiste un unica soluzione al sistema ∇q = 0 ed e(

, 0)T

. Inoltre la

matrice ∇2q e definita positiva; si tratta quindi dell’unico punto di minimo globale.Se α = 0 e β e qualsiasi, non esiste soluzione al sistema ∇q = 0. Notare che se β ≥ 0 la matricee semidefinita positiva, ma questo non assicura l’esistenza del minimo globale.

Se α > 0 e β = 0, esistono infinite soluzioni al sistema ∇q = 0 ed e(

, ξ

)T

con ξ qualsiasi.

Inoltre la matrice∇2q e semidefinita positiva; si tratta quindi di infiniti punti di minimo globale.

Se α < 0 e β > 0 si ha un’unica soluzione (1α

, 0). Ma la matrice hessiana e indefinita; si trattaquindi di un punto di sella.

Nel caso di α < 0 e β < 0 , allora esiste un unica soluzione al sistema ∇q = 0 ed e(

, 0)T

.

Inoltre la matrice ∇2q e definita negativa; si tratta quindi dell’unico punto di massimo globale.2

88

Page 91: Dispense del corso RICERCA OPERATIVA

0

0.5

1

1.5

−1

−0.5

0

0.5

1−3

−2

−1

0

1

Figura 6.5: Grafico di q(x1, x2) per α = 0 β = 1.

6.4 Utilizzo algoritmico delle condizioni di ottimo nonvincolate

Consideriamo il problema di ottimizzazione non vincolata:

minx∈Rn

f(x) (6.3)

in cui f : Rn → R e supponiamo verificata la seguente ipotesi che garantisce l’esistenza di unpunto di minimo x∗:

Ipotesi 1 La funzione f : Rn → R e una funzione continuamente differenziabile ed esiste unx0 ∈ Rn tale che l’insieme di livello Lx0 sia compatto.

Gli algoritmi per la soluzione del problema (6.3) consentono, in generale, soltanto la determi-nazione di punti stazionari di f , ossia di punti dell’insieme

Ω := ω ∈ Rn : ∇f(ω) = 0.In generale si riesce anche a garantire che, se x0 non e gia un punto stazionario, venganocomunque ottenuti punti in cui la funzione obiettivo assume un valore inferiore al valore assuntonel punto iniziale x0 e cio consente di ottenere soluzioni soddisfacenti in molte applicazioni.Se la funzione obiettivo e convessa, la determinazione di un punto stazionario risolve completa-mente il problema, poiche, come e noto, ogni punto stazionario di una funzione convessa e unpunto di minimo globale.

89

Page 92: Dispense del corso RICERCA OPERATIVA

0

0.5

1

1.5

−1

−0.5

0

0.5

1−1

−0.8

−0.6

−0.4

−0.2

0

Figura 6.6: Grafico di q(x1, x2) per α = 1 β = 0.

Gli algoritmi che ci proponiamo di studiare possono essere descritti per mezzo dello schemaconcettuale seguente:

Schema generico di algoritmo di ottimizzazione non vincolata

1. Si fissa 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 + αkdk. Si pone k = k + 1 e si ritorna alPasso 2.

Commentiamo brevemente lo schema considerato.

1. Scelta del punto iniziale. Il punto iniziale dell’algoritmo e un dato del problema edeve essere fornito in relazione alla particolare funzione che si intende minimizzare. Ilpunto x0 dovrebbe essere scelto come la migliore stima disponibile della soluzione ottima,eventualmente facendo riferimento a un modello semplificato della funzione obiettivo.Nella maggior parte dei casi, tuttavia, non esistono criteri generali per effettuare unabuona scelta di x0.

90

Page 93: Dispense del corso RICERCA OPERATIVA

−2−1.5

−1−0.5

00.5

−2

−1

0

1

2−2

−1

0

1

2

3

4

Figura 6.7: Grafico di q(x1, x2) per α = −1 β = 1.

Nella soluzione di problemi applicativi (non convessi) puo essere conveniente ripetere laricerca a partire da punti iniziali differenti, ad esempio generati casualmente, e sceglierepoi il punto stazionario migliore tra quelli cosı determinati.

2. Criterio di arresto. La verifica effettuata al Passo 2 sull’appartenenza di xk all’insiemeΩ equivale a controllare se ∇f(xk) = 0. In pratica, per l’utilizzo su calcolatore conprecisione finita, occorre specificare un criterio di arresto.Una possibilita consiste nell’arrestare l’algoritmo quando

‖∇f(xk)‖ ≤ ε (6.4)

in cui ε > 0 e un valore sufficientemente piccolo (valori standard richiedono ε ∈ [10−8, 10−3]).Per quanto riguarda la scelta della norma, tra le piu utilizzate ci sono ‖ · ‖2 e ‖ · ‖∞.Ricordiamo che ‖x‖2 =

√∑ni=1 x2

i e ‖x‖∞ = max1≤i≤n|xi|.

3. Scelta della direzione. I criteri seguiti nella scelta della direzione di ricerca dk indi-viduano il particolare metodo di ottimizzazione utilizzato.Tra i metodi esistenti, il metodo del gradiente (o metodo della discesa piu ripida) utilizzacome direzione dk = −∇f(xk);

91

Page 94: Dispense del corso RICERCA OPERATIVA

−2−1.5

−1−0.5

00.5

−2

−1

0

1

2−4

−3

−2

−1

0

1

Figura 6.8: Grafico di q(x1, x2) per α = β = −1.

4. Calcolo del passo. Il calcolo dello scalare αk > 0 costituisce la cosiddetta ricercaunidimensionale o ricerca di linea e viene effettuato valutando la funzione obiettivo lungola direzione dk. Per la ricerca unidimensionale sono disponibili diversi algoritmi chepossono prevedere il calcolo del punto di minimo di f(xk + αdk) rispetto a α (ricercadi linea esatta) oppure l’individuazione di un intervallo di valori accettabili per αk aifini dell’ottenimento della convergenza (ricerca di linea inesatta). In questo corso nonentreremo 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 con fi(x) = ai − mix e unproblema di programmazione quadratica strettamente convessa del tipo

min xT Mx− (a− c)T x

x ≥ 0.

Si osservi che il minimo non vincolato x∗, ovvero il punto che annulla il gradiente della funzione

obiettivo 2Mx∗ − (a− c) = 0, ha componenti x∗i =ai − ci

2mi. Dunque se ai − ci ≥ 0 pe ogni i, il

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 clientiA e B. Si indicano con xA e xB le quantita di bene offerte dal monopolista ai due clienti. I

92

Page 95: Dispense del corso RICERCA OPERATIVA

clienti di tipo A sono disposti a pagare il prezzo fA(xA) = 50 − 5xA e i clienti di tipo B sonodisposti a pagare il prezzo fB(xB) = 100 − 10xB . Il costo di produzione dipende solo dallaquantita di prodotto finale x = xA + xB ed e C = 90 + 20x. Seguendo il modello precendentesi ottiene per il profitto l’espressione:

f(xA, xB) = xAPA + xBPB − [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, siottiene il problema

min 5x2A + 10x2

B − 30xA − 80xB − 90

x ≥ 0.

Si tratta di un problema quadratico con

∇f =(

10xA − 3020xB − 80

)∇2f =

(10 00 20

)

La mat rice hessiana e definita positiva, ed esiste un unico punto di che annulla il gradientex∗ = (3, 4)T che ha componenti positive, dunque e soluzione del problema vincolato originario.

Esempio 6.5.2 (Minimi quadrati)Consideriamo il caso 1 definito nel Esempio 2.4.5.

minx

[x2

0 + (x1 + x0 − 1)2 + (2x1 + x0 − 4)2 + (3x1 + x0 − 9)2].

Si tratta di un problema quadratico del tipo

min(

x1

x0

)T

Q

(x1

x0

)+ cT

(x1

x0

)

con

Q =(

14 66 4

)c =

( −72−28

)

Il problema e strettamente convesso. Esiste un unico punto di minimo globale che si ottienecome soluzione di 2Qx + c = 0 e vale (−1, 3)T . Dunque la funzione lineare che minimizzal’errore quadratico e y = 3t− 1.

93

Page 96: Dispense del corso RICERCA OPERATIVA

Capitolo 7

Ottimizzazione vincolata

7.1 Introduzione

Con riferimento al problema di ottimizzazione

minx∈S

f(x)

con S ⊂ Rn, illustriamo nel seguito alcune condizioni di ottimalita in relazione alle classi diproblemi di nostro interesse. In particolare ci riferiremo a problemi i cui S e un generico insiemeconvesso, a problemi di programmazione matematica con insieme ammissibile poliedrale.Al fine di individuare le condizioni di ottimo, introduciamo il concetto di direzione ammis-sibile che insieme al concetto di direzione di discesa introdotto nel Capitolo 6 consentira dicaratterizzare i punti di minimo locale.

7.2 Direzione ammissibile

Una direzione e “ammissibile” in un punto x ∈ S se e possibile muoversi lungo tale direzionemantenendosi in S. Piu formalmente possiamo dare la seguente definizione riferita ad ungenerico insieme S ⊆ IRn.

Definizione 7.2.1 (Direzione ammissibile) Sia S un sottoinsieme di Rn e x ∈ S. Si diceche un vettore d ∈ Rn, d 6= 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 l’insieme (poliedro)

S = x ∈ R2 : x1 + x2 ≤ 3, x1 ≥ 1, x2 ≥ 0

94

Page 97: Dispense del corso RICERCA OPERATIVA

x1

x2

(1,1)

Figura 7.1: Poliedro Esempio 7.2.2.

rappresentato in Figura 7.1 e consideriamo il punto ammissibile x = (1, 1) (indicato con unpuntino rosso in figura).

E facile convincersi che la direzione d = (1, 0) e ammissibile in x. Risulta infatti

x + td =(

11

)+ t

(10

)=

(1 + t

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 per ogni t ≥ 0;

3. x2 = 1 > 0.

Quindi per ogni t ∈ [0, 1] (tmax = 1) risulta x + td ∈ S.

E altrettanto facile convincersi che la direzione opposta −d = (−1, 0) non e ammissibile in x.Risulta infatti

y = x + t(−d) =(

11

)+ t

( −10

)=

(1− t

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;

95

Page 98: Dispense del corso RICERCA OPERATIVA

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 dunqueammissibile.

Il concetto di direzione ammissibile e riferito ad un generico insieme S non necessariamentepoliedrale ne con particolari proprieta. Vedremo nel seguito come caratterizzare le direzioniammissibili nel caso id particolari insiemi ammissibili.

7.3 Condizioni di ottimo vincolate

In questo paragrafo ricaviamo le prima condizioni di ottimalita per il generico problema

min f(x)x ∈ S

(P )

Una conseguenza immediata della Definizione 6.2.1 di direzione di discesa e della Definizione 7.2.1di direzione ammissibile e la condizione necessaria di minimo locale enunciata nel teorema suc-cessivo.

Teorema 7.3.1 (Condizione necessaria di minimo locale) Sia x∗ ∈ S un punto di mi-nimo locale del problema (P) allora non puo esistere una direzione ammissibile in x∗ che siaanche di discesa per f .

Dimostrazione. Sia x∗ un minimo locale. Per assurdo, se esistesse una direzione d al tempostesso ammissibile e di discesa in x∗, allora in ogni intorno di x∗ sarebbe possibile trovare, pert > 0 abbastanza piccolo, un punto x∗ + td ∈ S tale che f(x∗ + td) < f(x∗), il che contraddicel’ipotesi che x∗ sia un punto di minimo locale.

La condizione necessaria puo consentire di selezionare tra tutti i punti ammissibili i potenzialicandidati ad essere punti di minimo locale.Il risultato espresso nel Teorema 7.3.1 puo essere poco significativo qualora vi siano regioni (difrontiera) dell’insieme ammissibile, tali che nei punti di queste regioni non esistano affatto di-rezioni ammissibili. In tal caso, la condizione del Teorema 7.3.1 non e in grado di discriminare lesoluzioni ottime dagli altri punti ammissibili. Una situazione del genere si verifica, tipicamente,quando siano presenti vincoli di eguaglianza non lineari.

Consideriamo, a titolo esemplificativo, un problema in due variabili.

Esempio 7.3.2 Sia dato il problema

min x2

x21 + x2

2 = 1

L’unico punto di minimo e il punto (0, − 1)T . Se consideriamo un qualsiasi punto (x1, x2) ∈ Sl’insieme delle direzioni ammissibili e vuoto e quindi la condizione del Teorema 7.3.1 e sod-disfatta in ogni punto di S e non da alcuna informazione aggiuntiva per la selezione di punticandidati ad essere ottimi. Tale situazione e illustrata nella figura 7.2.

2

96

Page 99: Dispense del corso RICERCA OPERATIVA

S

x2

x1

(x1,x2)

(0,-1)

Figura 7.2: Esempio 7.3.2 in cui in qualunque punto ammissibile non esiste direzione ammis-sibile.

Per ricavare delle condizioni di ottimalita dalla condizione enunciata nel Teorema 7.3.1occorre utilizzare una caratterizzazione analitica delle direzioni di discesa e delle direzioni am-missibili. In effetti la verifica della condizione espressa dal Teorema 7.3.1 e essenzialmenteequivalente all’applicazione della definizione di minimo locale.Si puo pero specificare ulteriormente la condizione necessaria utilizzando la caratterizzazionedi 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 puo esistere una direzione ammissibiled ∈ Rn in x∗ tale che ∇f(x∗)T d < 0.

Tale condizione puo essere equivalentemente enunciata come segue.

Teorema 7.3.3 (Condizione necessaria di minimo locale) Se x∗ e un punto di minimolocale 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 l’angolo compreso tra ∇f(x∗) e d, dalpunto di vista geometrico la condizione ∇f(x∗)T d ≥ 0 richiede che 0o ≤ θ ≤ 90o per ogni dammissibile.

97

Page 100: Dispense del corso RICERCA OPERATIVA

Se x∗ e un punto di minimo locale del del problema (P), allora per ogni d ammissibile l’angoloθ formato con ∇f(x∗) e

0o ≤ θ ≤ 90o.

La condizione espressa dal Teorema 7.3.3 e solo necessaria di minimo locale. Illustriamo lacondizione con un esempio.

Esempio 7.3.4 Sia dato il problema di ottimizzazione

min −x21 − x2

2

−1 ≤ x1 ≤ 1−1 ≤ x2 ≤ 1

Si tratta della minimizzazione di una funzione quadratica concava su un poliedro (la regioneammissibile 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-

S

x2

x1

(1,1)

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 dellafunzione obiettivo NON si annulla in x∗. Le direzioni ammissibili d nel punto x∗ sono in base

98

Page 101: Dispense del corso RICERCA OPERATIVA

alla definizione le soluzioni del sistema definito da x∗+ td con t ≥ 0 (in Figura 7.3 sono i vettorinella regione compresa tra le frecce blu), cioe:

x∗1 + td1 = 1 + td1 ≥ −1x∗1 + td1 = 1 + td1 ≤ 1x∗2 + td2 = 1 + td2 ≥ −1x∗2 + td2 = 1 + td2 ≤ 1

ovvero le direzioni ammissibile sono quelle che soddisfano

2 + td1 ≥ 0td1 ≤ 02 + td2 ≥ 0td2 ≤ 0.

La seconda e quarta condizione impongono d1, d2 ≤ 0, mentre la prima e terza impongonosolo delle condizioni sullo spostamento t e richiedono rispettivamente che 0 ≤ t ≤ 2/|d1| e

0 ≤ t ≤ 2/|d2|. Dunque risulta ∇f(x∗)T d = (−2 − 2)(

d1

d2

)= −2(d1 + d2) ≥ 0 per ogni d

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 ∈ IR2 e ammissibile in x. Inoltre risulta ∇f(x)T d = 0 per ogni d, in quanto∇f(x) = 0, quindi e verificata la condizione necessaria. Ciononostante il punto x non e unminimo locale, anzi e un massimo. Infatti per ogni d ∈ IR2 risulta x + td = (td1, td2)T e lafunzione vale f(x + td) = −t2(d2

1 + d22). Per ogni t 6= 0 e d 6≡ 0 risulta

f(x + td) = −t2(d21 + d2

2) < f(x) = 0,

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

Possiamo dare delle condizioni che utilizzano la caratterizzazione del secondo ordine didirezione 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 puntodi minimo locale del del problema (P), allora per ogni d ammissibile in x∗ tale che ∇f(x∗)T d = 0risulta

dT∇2f(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 condizionipiu specifiche in base alle caratterizzazioni delle direzioni ammissibili, e quindi in base allastruttura e alle proprieta delle funzioni che definiscono 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 l’insieme ammissibile S siaun insieme convesso, ovvero

min f(x)x ∈ S.

(P − CONV )

Possiamo caratterizzare le direzioni ammissibili di questo insieme.

99

Page 102: Dispense del corso RICERCA OPERATIVA

Teorema 7.4.1 (Direzioni ammissibili insieme convesso) Sia S ⊆ IRn un insieme con-vesso e sia x un qualsiasi punto di S. Allora comunque si fissi x ∈ S tale che x 6= x, la direzioned = x− x e una direzione ammissibile per S in x.

Dimostrazione. Sia x ∈ S. Comunque preso x ∈ S, con x 6= x, per la convessita di S, si hache (1− β)x + βx ∈ S per ogni β ∈ [0, 1] e quindi x + β(x− x) ∈ S per ogni β ∈ [0, 1]. Da cuisegue che la direzione d = x− x e una direzione ammissibile per S in x.

E facile verificare che, inversamente, se d 6= 0 e una direzione ammissibile per S in x alloraesiste 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 contin-uamente differenziabile su IRn. 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 unadirezione ammissibile per f in S per ogni x ∈ S. Se esistesse d = x−x∗ tale che ∇f(x∗)T d < 0per il Teorema 6.2.2 la direzione ammissibile d sarebbe di discesa ma questo e assurdo perchein base al Teorema 7.3.1 sappiamo che non puo esistere una direzione ammissibile di discesa inx∗.

Nel caso che f sia convessa, si puo dimostrare che la condizione e anche sufficiente. Vale ineffetti il seguente risultato.

Teorema 7.4.3 [Condizioni necessarie e sufficienti di minimo globale nel caso convesso]

Sia S un sottoinsieme convesso di Rn e supponiamo che f sia una funzione convessa con-tinuamente differenziabile su IRn. 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 necessita segue dal Teorema 7.4.2. La sufficienza 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 puntodi minimo globale.

Teorema 7.4.4 (Condizioni necessarie del secondo ordine di minimo locale con in-sieme ammissibile convesso)

100

Page 103: Dispense del corso RICERCA OPERATIVA

Sia x∗ ∈ S un punto di minimo locale del problema (P-CONV). Se f e due volte continuamentedifferenziabile su un insieme aperto contenente S, risulta

(x− x∗)T∇2f(x∗)(x− x∗) ≥ 0, per ogni x ∈ S tale che ∇f(x∗)′(x− x∗) = 0. (7.3)

Dimostrazione. In base al Teorema 7.3.1 sappiamo che non puo esistere una direzione am-missibile di discesa. Se f e due volte continuamente differenziabile ed esiste x ∈ S tale che ladirezione ammissibile d = x−x∗ soddisfi ∇f(x∗)T d = 0. Applicando il teorema 6.2.6 si ottieneallora la (7.3).

Consideriamo il seguente esempio in cui i vincoli sono solo limitazioni superiori ed inferiori sullevariabili.

Esempio 7.4.5 Consideriamo l’esempio 7.3.4

min −x21 − x2

2

−1 ≤ x1 ≤ 1−1 ≤ x2 ≤ 1

L’insieme ammissibile e convesso, quindi le condizioni necessarie richiedono che in un punto x∗

risulti ∇f(x∗)T (x− x∗) ≥ 0 per ogni x ∈ S. In particolare in questo caso

∇f =( −2x1

−2x2

)

e deve risultare quindi

−2x1(x1 − x1)− 2x2(x2 − x2) ≥ 0 per ogni − 1 ≤ x1 ≤ 1 − 1 ≤ x2 ≤ 1.

Verifichiamo 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 condizionee effettivamente soddisfatta.

7.5 Ottimizzazione su un poliedro

Una classe significativa di problemi di programmazione matematica e quella in cui l’insiemeammissibile e un poliedro. Consideriamo, senza perdita di generalita (vedi considerazione delcapitolo 3), un poliedro definito come

S = x ∈ IRn : Ax ≥ bin cui A e una matrice reale m× n e b ∈ IRm. Il problema in esame e quindi

min f(x)

Ax ≥ b(P − POL)

in cui f e una funzione continuamente differenziabile. Ci proponiamo nel seguito di particolar-izzare le condizioni di ottimo gia enunciate nei paragrafi precedenti per ricavare condizioni diottimo (locale e globale) che tengano conto della struttura dell’insieme ammissibile.

101

Page 104: Dispense del corso RICERCA OPERATIVA

7.6 Direzioni ammissibili di un poliedro

Per caratterizzare le direzioni ammissibili di un poliedro e necessario introdurre ulteriori definizione.A tal scopo analizziamo nuovamente l’esempio 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).

x1

x2

(1,1)

x1

x2

(1,1)

Figura 7.4: Semispazi individuati rispettivamente dai vincoli x1+x2 ≤ 3 e x1 ≥ 1 dell’Esempio7.6.1.

In Figura 7.4 sono rappresentati i due semispazi definiti singolarmente dai due vincolix1 + x2 ≤ 3 e x1 ≥ 1 che definiscono il poliedro S. Se valutiamo i vincoli in x = (1, 1)T (inrosso nella figura 7.4) abbiamo:

x1 + x2 < 3,x1 = 1x2 > 0

ovvero solo il vincolo x1 ≤ 1 e soddisfatto all’uguaglianza.Dalla figura 7.4 e evidente che nel punto x ogni direzione d ∈ IRn e ammissibile rispetto al

vincolo x1 + x2 ≤ 3 a patto di scegliere adeguatamente il valore dello spostamento t. Analoga-mente rispetto al vincolo x2 ≥ 0 (non rappresentato in figura 7.4) che individua il primo esecondo quadrante, nel punto x ogni direzione e ammissibile. Se invece consideriamo il semis-pazio individuato dal vincolo x1 ≥ 1 e evidente che non tutte le direzioni sono ammissibili. Ad

102

Page 105: Dispense del corso RICERCA OPERATIVA

esempio la direzione d = (−1 0)T (considerata nell’esempio 7.2.2 e disegnata in rosso in figura7.4) non consente di mantenere l’ammissibilita del vincolo per nessun valore di t > 0.

Da queste semplici osservazioni appare evidente che in un punto ammissibile, le direzioniammissibili sono “determinate” da quei vincoli che sono soddisfatti all’uguaglianza. Mentre ilvalore di tmax dipende dal valore degli altri vincoli.Introduciamo allora la seguente definizione:

Definizione 7.6.2 (Vincoli attivi) Sia S = x ∈ Rn : Ax ≥ b e sia x ∈ S. Se x soddisfail aT

i x = bi si dice che il vincolo i-esimo e attivo in x.Dato x ∈ S si indica con I(x) l’insieme degli indici di tutti i vincoli attivi n x, ovvero:

I(x) = i ∈ 1, . . . ,m : aTi x = bi

Nell’esempio 7.2.2, in x e attivo il secondo vincolo e cioe I(x) = 2.La definizione 7.6.2 di vincolo attivo non e legata alla particolare forma del poliedro, ma puoessere estesa al caso generale. In particolare, notiamo che i vincoli di uguaglianza sono, perdefinizione, sempre attivi in un punto ammissibile. Possiamo quindi affermare

Dato un poliedro definito come S = x ∈ IRn : Ax = b, risulta I(x) = 1, . . . , m.

Dato un poliedro in forma standard S = x ∈ IRn : Ax = b, x ≥ 0, i vincoli attivi sono quellidi uguaglianza piu gli eventuali componenti di xj = 0, ovvero risulta I(x) = 1, . . . , m ∪ j ∈1, . . . , n : xj = 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 esia I(x) = i ∈ 1, . . . , m : aT

i x = bi l’insieme degli indici attivi in x. Una direzione d eammissibile in x se e solo se risulta

aTi 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 chesoddisfa la condizione

0 < t ≤ tmax = minj /∈I(x): aT

jd<0

aTj x− bj

|aTj d| (7.5)

dove si intende che, se l’insieme j /∈ I(x) : aTj d < 0 su cui si effettua il minimo e vuoto, il

valore tmax = ∞.

103

Page 106: Dispense del corso RICERCA OPERATIVA

Dimostrazione. Sia x tale che aTi x ≥ bi per ogni i = 1, . . . ,m. Definiamo un punto x = x+ td

con t > 0.Verifichiamo che le direzione ammissibili sono tutte e sole quelle per cui vale la (7.4). Si trattaquindi di verificare le condizioni su d per cui risulta

aTi (x + td) = aT

i x + taTi d ≥ bi per ogni t > 0.

Per ogni i ∈ I(x), vale aTi x = bi da cui aT

i x + taTi d = bi + taT

i d. Quindi si ottiene per i ∈ I(x):

aTi x + taT

i d ≥ bi per ogni t > 0 se e solo se aTi d ≥ 0.

Per ogni j /∈ I(x), vale aTj x > bi da cui aT

j x + taTj d > bj + taT

j d. Abbiamo due possibili casi:1.) aT

j d ≥ 0 oppure 2.) aTj d < 0.

Se aTj d ≥ 0, allora per ogni t > 0 risulta bj + taT

j d ≥ bj e il punto e sempre ammissibile rispettoal vincolo j−esimo. Se invece aT

j d < 0, e necessario scegliere t abbastanza piccolo in modoche aT

j x − t|aTj d| continui ad essere ≥ bj per t > 0. In ogni caso (1. o 2.) la direzione risulta

ammissibile.

Verifichiamo 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), valeaT

i (x + td) ≥ bi per ogni t > 0.Consideriamo allora gli indici j /∈ I(x). Abbiamo gia visto che nel caso aT

j d ≥ 0, possiamoscrivere per ogni t > 0 aT

j (x + td) = aTj x + taT

j d ≥ aTj x > bj per ogni t > 0.

Consideriamo allora il caso aTj d < 0 in cui sappiamo che t non puo assumere tutti i valori

positivi. Dobbiamo trovare il valore di t che soddisfa la condizione di ammissibilita espressa daaT

j (x + td) = aTj x + taT

j d = aTj x − t|aT

j d| ≥ bj . Risolvendo la condizione aTi x − t|aT

j d| ≥ bj siottiene che

t ≤ aTj x− bj

|aTi d| .

Poiche questo deve valere per ogni j /∈ I(x) e tale che aTj d < 0, si ottiene la limitazione data

dalla (7.5).

Introduciamo la seguente notazione matriciale: indichiamo con AI(x) la matrice |I(x)| × ncostituita dalle righe di A con indice in I(x), ovvero, se A = (aT

i )i=1,...,m, si ha

AI(x) = (aTi )i∈I(x).

Sia x ∈ S, le direzioni ammissibili in x sono tutte e sole le soluzioni del sistema lineare

AI(x)d ≥ 0

dove AI(x) e la matrice AI(x) = (aTi )i∈I(x) e I(x) = i : aT

i x = bi.

Illustriamo con un esempio.

104

Page 107: Dispense del corso RICERCA OPERATIVA

Esempio 7.6.4 Sia dato il poliedro

3x1 − 2x2 ≥ −302x1 − x2 ≥ −12x1 ≥ 0 x2 ≥ 0

ed il punto ammissibile x = (0, 12)T . Risulta

3x1 − 2x2 = −12 > −302x1 − x2 = −12x1 = 0 x2 = 12 > 0

Quindi I(x) = 2, 3 e le direzioni ammissibili d = (d1, d2) devono soddisfare il sistema

2d1 − d2 ≥ 0d1 ≥ 0

Il valore di tmax si ottiene considerando i vincoli non attivi e dipende ovviamente dalla partico-lare direzione ammissibile considerata. Sia, ad esempio d = (1, 2)T . Risulta aT

1 d = 3− 4 < 0 eaT4 d = 1 > 0. Quindi il valore di tmax e individuato dal primo vincolo e si ha in particolare

tmax =aT1 x− b1

|aT1 d| =

3x1 − 2x2 + 303d1 − 2d2

=61

= 6.

In figura 7.5 e rappresentato il poliedro, il punto x, l’insieme delle direzioni ammissibili (insiemecompreso tra le due frecce blu tratteggiate), i punto ottenibili spostandosi da x lungo le direzioniammissibili (regione compresa tra le due frecce blu a tratto intero) e il valore del passo tmax

relativo alla direzione ammissibile d = (1, 2)T . Il punto x + tmaxd = (6, 24)T e indicato inrosso in figura 7.5. 2

Corollario 7.6.5 Dato il poliedro S = x ∈ IRn : Ax ≥ b. Sia x un punto ammissibile e siaI(x) = i ∈ 1, . . . , m : aT

i x = bi l’insieme degli indici attivi in x e supponiamo che esistaun vettore d non nullo tale che

aTi d = 0, per ogni i ∈ I(x).

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

x + td ∈ S per ogni t ∈ [0, t+max)x− td ∈ S per ogni t ∈ [0, t−max)

con

t+max = minj /∈I(x): aT

jd<0

aTj x− bj

|aTj d| t−max = min

j /∈I(x): aTj

d>0

aTj x− bj

aTj d

(7.6)

Si intende che se l’insieme degli indici su cui viene calcolato il minimo e vuoto, il corrispondentevalore t+max e/o t−max vale ∞.

Dimostrazione. La dimostrazione segue facilmente dal Teorema 7.6.3, applicandolo separata-mente alla due direzioni d e −d. 2

105

Page 108: Dispense del corso RICERCA OPERATIVA

x1

x2

(0,12)

tmax

Figura 7.5: Poliedro Esempio 7.6.4.

Dato un poliedro S = x ∈ IRn : Ax ≥ b e un punto x ∈ S. Supponiamo che esista unadirezione d tale che

AI(x)d = 0 I(x) = i ∈ 1, . . . , m : aTi x = bi.

Allora il punto y = x± td con t ∈ [0, t±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 informa standard S = x ∈ IRn : Ax = b, x ≥ 0.

Preventivamente consideriamo il caso di soli vincoli di uguaglianza Ax = b. Sia x un puntoammissibile, ovvero tale che Ax = b. La definizione di direzione ammissibile d richiede cheA(x + td) = b per t sufficientemente piccolo. Sviluppando si ottiene

Ax + tAd = b + tAd = b ⇐⇒ Ad = 0 per ogni t.

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

106

Page 109: Dispense del corso RICERCA OPERATIVA

Dato un poliedro definito da un sistema di equazioni lineari del tipo Ax = b, e un puntoammissibile 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 6= 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 unpoliedro del tipo x ∈ IRn : Ax = b, x ≥ 0 e sia x un punto ammissibile e sia J(x) = j ∈1, . . . , n : xj = 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 chesoddisfa la condizione

0 ≤ t ≤ tmax = minj: xj 6=0: dj<0

xj

|dj |dove si intende che se l’insieme su cui si effettua il minimo j : xj 6= 0 : dj < 0 e vuoto, ilvalore tmax = ∞.

7.7 Condizioni di ottimo su un poliedro

Utilizzando la caratterizzazione di direzioni ammissibili per un poliedro, possiamo applicare ilteorema 7.3.1 ed ottenere la seguente condizione necessaria.

Teorema 7.7.1 (Condizione necessaria di minimo locale su un poliedro) Se x∗ e unpunto di minimo locale del problema (P-POL) allora risulta

∇f(x∗)T d ≥ 0 per ogni direzione d ∈ Rn : aTi d ≥ 0, ∀i ∈ I(x∗) = i : aT

i x∗ = bi.

Questa condizione puo essere formulata come non esistenza di soluzione di una sistemalineare. Utilizzando la notazione matriciale introdotta precedentemente, possiamo scrivere lacondizione 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 sistemadi disequazioni lineari

AI(x∗)d ≥ 0,

∇f(x∗)T d < 0.(7.8)

Illustriamo questa condizione necessaria con un esempio.

107

Page 110: Dispense del corso RICERCA OPERATIVA

Esempio 7.7.2 Consideriamo il problema

min (x1 + 10)2 + (x2 − 12)2

3x1 − 2x2 ≥ −302x1 − x2 ≥ −12x1 ≥ 0,x2 ≥ 0

il cui poliedro e stato descritto nell’Esempio 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 obiettivoe la regione ammissibile).

x1

x2

Figura 7.6: Poliedro Esempio 7.7.2.

Il sistema delle direzione ammissibili e gia stato definito nell’Esempio 7.6.4. Il gradiente dellafunzione obiettivo

∇f(x) =(

2(x1 + 10)2(x2 − 12)

)

che in x vale ∇f(x) = (20, 0)T . Il sistema (7.8) diventa

2d1 − d2 ≥ 0d1 ≥ 020d1 < 0

(7.9)

che non ha ovviamente soluzione (le ultime due disequazioni incompatibili). 2

108

Page 111: Dispense del corso RICERCA OPERATIVA

Ricordando che un poliedro e un insieme convesso e quindi vale la caratterizzazione delle di-rezione ammissibili data nel teorema 7.4.1 e possibile applicare il Teorema 7.4.3 e ottenere ilseguente risultato.

Teorema 7.7.3 (Condizione necessaria e sufficiente 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 : aTi d ≥ 0, ∀i ∈ I(x∗) = i : aT

i x∗ = bi.

Anche in questo caso si puo riscrivere la condizione come:

Sia f una funzione convessa. Un punto x∗ ∈ S e minimo globale di (P-POL) se e solo se nonesiste una soluzione d ∈ Rn al sistema di disequazioni lineare

AId ≥ 0,

∇f(x∗)T d < 0.(7.10)

Consideriamo nuovamente un esempio.

Esempio 7.7.4 Consideriamo nuovamente il problema dell’Esempio 7.7.2. La funzione obiet-tivo e strettamente convessa. Quindi la condizione (7.10) e necessaria e sufficiente di minimoglobale. Quindi il punto (0, 12)T che la verifica e un minimo globale.Verifichiamo cosa succede in un punto diverso, ad esempio x = (0, 0)T . In x risulta I(x) = 3, 4e le direzioni ammissibili soddisfano: d1 ≥ 0, d2 ≥ 0. Inoltre si ha ∇f(x) = (20, −24)T , quindiil sistema (7.10) e

20d1 − 24d2 < 0d1 ≥ 0d2 ≥ 0

In Figura 7.7 sono rappresentate le direzioni ammissibili (tutti i vettori tra le due frecce blu)e il gradiente della funzione obiettivo (freccia rossa). E facile verificare che esistono soluzionial sistema; in particolare sono soluzione tutti i vettori d = (d1, d2)T tali che 0 ≤ d1 < 6

5d2.Quindi, come gia sapevamo, il punto x non e minimo globale in quanto non e soddisfatta lacondizione necessaria e sufficiente. 2

Possiamo inoltre dare una condizione necessaria del secondo ordine utilizzando il teorema7.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∇2xf(x∗)d ≥ 0 per ogni d ∈ IRn : aT

i d ≥ 0, i ∈ I(x∗) e ∇f(x∗)T d = 0.

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

109

Page 112: Dispense del corso RICERCA OPERATIVA

x1

x2

x

Figura 7.7: Poliedro Esempio 7.7.4.

Possiamo infatti utilizzare la caratterizzazione delle direzioni ammissibili data nel paragrafo7.6. Consideriamo allora il caso piu generale di problema

min f(x)

aTi x ≥ bi i = 1, . . . , m

aTj x = bj j = 1, . . . , p

(7.11)

Se x∗ e minimo globale del problema (7.11) allora non esiste una soluzione d ∈ Rn al sistemadi disequazioni lineare

aTi d ≥ 0 i ∈ I(x∗) ⊆ 1, . . . , m

aTj d = 0 j = 1, . . . , p

∇f(x∗)T d < 0 .

Un esempio importante e un problema con vincoli in forma standard del tipo:

min f(x)

Ax = bx ≥ 0

(P − POL− ST )

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

110

Page 113: Dispense del corso RICERCA OPERATIVA

Se x∗ e minimo globale del problema (P-POL-ST) allora non esiste una soluzione d ∈ Rn alsistema di disequazioni lineare

Ad = 0,

dJ(x∗) ≥ 0∇f(x∗)T d < 0.

(7.12)

con J(x∗) = j ∈ 1, . . . , n : x∗j = 0.Naturalmente anche in questo caso le condizioni diventano necessarie e sufficienti nel caso incui 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 Pro-grammazione Lineare del tipo

min cT x

Ax ≥ b.(PL)

Utilizzando il teorema 7.7.3, possiamo enunciare la seguente condizione che caratterizza ulteri-ormente (rispetto ai risultati del Capitolo 10) le soluzioni ottime di un problema di Program-mazione Lineare.

Sia dato il problema (PL). Un punto x∗ e minimo globale se e solo se non esiste una soluzioned ∈ 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 = bx ≥ 0,

(PL− ST )

possiamo affermare:

Un punto x∗ e minimo globale del problema di Programmazione Lineare (PL-ST) se e solo senon esiste una soluzione d ∈ Rn al sistema di equazioni e disequazioni lineari

Ad = 0,

dJ(x∗) ≥ 0

cT d < 0.

(7.14)

con J(x∗) = j ∈ 1, . . . , n : x∗j = 0.Le condizioni di “non esistenza” di soluzioni di un sistema lineare ottenute in questo para-

grafo, possono essere formulate in modo equivalente come condizioni di esistenza di un diverso

111

Page 114: Dispense del corso RICERCA OPERATIVA

sistema di equazioni. Questa nuova formulazione costituisce la forma classica delle condizionidi ottimo per problemi di programmazione matematica. Sara descritta nel Capitolo 9.

7.8 Utilizzo algoritmico delle condizioni di ottimo per prob-lemi con vincoli convessi

Consideriamo il problema di ottimizzazione vincolata:

minx∈S

f(x) (7.15)

in cui f : Rn → R con S convesso e supponiamo verificata la seguente ipotesi (semplificativa)che garantisce l’esistenza di un punto di minimo x∗ ∈ S:

Ipotesi 2 La funzione f : Rn → R e una funzione continuamente differenziabile ed S siacompatto.

Gli algoritmi per la soluzione del problema (7.15) consentono, in generale, soltanto la determi-nazione di punti dell’insieme

Ω := ω ∈ 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 fissa 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 + αkdk ∈ S. Si pone k = k + 1 e si ritornaal Passo 2.

Per i commenti generali rimandiamo al paragrafo 6.4. Qui ci limitiamo a commentare i seguentipunti: Scelta della direzione e Criterio di arresto.Assegnato un punto xk, possiamo considerare il problema vincolato

minx∈S

∇f(xk)T (x− xk). (7.16)

Osserviamo che la funzione obiettivo e lineare e poiche si e supposto che S sia compatto ilproblema precedente ammette una soluzione xk∗. La direzione dk = xk∗ − xk e una direzioneammissibile in xk. Se all’ottimo risulta ∇f(xk)T (xk∗−xk) ≥ 0 allora il punto xk e ottimo per ilproblema (7.15) (e dunque risulta soddisfata la verifica effettuata al Passo 2 sull’appartenenzadi xk all’insieme Ω). Viceversa se ∇f(xk)T (xk∗ − xk) < 0 la direzione dk = xk∗ − xk risultaessere anche di discesa. E dunque possibile determinare con opportuni metodi un passo αk > 0

112

Page 115: Dispense del corso RICERCA OPERATIVA

lungo dk, tale che xk+1 ∈ S e f(xk+1) < f(xk). L’algoritmo cosıdefinito e noto come Metododi Frank-Wolfe o Conditional gradient method.

Osserviamo che se l’insieme ammissibile S e un poliedro, ovvero e definito da vincoli lineari, ilsottoproblema (7.16) relativo al calcolo della direzione diviene un problema di programmazionelineare.

113

Page 116: Dispense del corso RICERCA OPERATIVA

Capitolo 8

Teoremi dell’alternativa

8.1 Introduzione

Nel capitolo 7, le condizioni di ottimo per problemi con vincoli lineari sono state formulatecome “NON esistenza” di soluzione di un sistema di equazioni e disequazioni lineari. Talicondizioni possono essere riscritte come condizioni di esistenza di soluzioni di un diverso sistemadi equazioni e disequazioni lineare. A tale scopo si utilizzano i cosıdetti teorema dell’alternativa.I teoremi dell’alternativa consentono di ridurre il problema della non esistenza di soluzioni diun sistema di equazioni e disequazioni lineari assegnato a quello dell’esistenza di soluzioni diun altro sistema lineare.

Un risultato di alternativa relativo a due assegnati sistemi lineari (I) e (II), consiste neldimostrare 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 piu noti, e anche quelloche utilizzeremo nei prossimi capitoli, e il Lemma di Farkas che si puo enunciare nella formaseguente.

Teorema 8.2.1 (Lemma di Farkas) Sia B matrice p× n e g ∈ IRn. Il sistema

Bd ≥ 0 gT d < 0 (I)

non ha soluzione d ∈ IRn se e solo se il sistema

BT u = g u ≥ 0 (II)

ha soluzione u ∈ IRp.

114

Page 117: Dispense del corso RICERCA OPERATIVA

Dimostrazione. [(II) ha soluzione −→ (I) non ha soluzione.] Sia u soluzione del sistema(I) e supponiamo per assurdo che esista una soluzione d del sistema (II), ovvero che la coppiau, d soddisfi:

Bd ≥ 0 gT d < 0,BT u = g u ≥ 0.

Allora si puo scrivere:

Bd ≥ 0 u≥0=⇒ uT Bd ≥ 0BT u=g=⇒ gT d ≥ 0,

che contraddice l’ipotesi che d soddisfi gT d < 0.

[(I) non ha soluzione −→ (II) ha soluzione.] La dimostrazione di questa implicazione ein due parti. Si dimostra preliminarmente che se (I) non ha soluzione allora esiste un vettoreu ∈ Rp tale ch BT u = g. Successivamente dimostreremo che u ≥ 0.Se (I) non ha soluzione, allora in particolare non esiste una soluzione nemmeno al sistema diequazioni lineari

Bd = 0 gT d = −1 [(I)eq].

Il sistema [(I)eq] si puo scrivere in forma matriciale come segue:(

BgT

)d =

(0−1

)

E noto che tale sistema non ha soluzione se e solo se

rango(

BgT

)6= rango

(B 0gT −1

)

e quindi se:

rango(

B 0gT −1

)= rango

(BgT

)+ 1. (8.1)

D’altra parte, l’ultima riga (gT − 1) e linearmente indipendente dalle righe di (B 0) e quindi:

rango(

B 0gT 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 dellatrasposta, si ottiene

rango(

BT g)

= rango(

BgT

)= rango(B)

e cio implica che il sistema BT u = g ha soluzione, ovvero esiste una rappresentazione di g deltipo:

g =p∑

i=1

uibi. (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

Page 118: Dispense del corso RICERCA OPERATIVA

Dimostriamo innanzitutto che la tesi e vera per p = 1 e quindi supponiamo che

6 ∃ d ∈ R : gT d < 0, bT1 d ≥ 0.

Quindi per la (8.3) risulta g = ub1 con u ∈ R. Se c = 0, il risultato e ovvio in quanto si puoassumere u = 0. Se c 6= 0 deve anche essere b1 6= 0 e possiamo considerare il vettore d = b1 6= 0.Ne segue che bT

1 d = ‖b1‖2 > 0 e quindi, per ipotesi, deve risultare cT d ≥ 0. Si ottiene quindi

gT d = (ub1)T (b1) = u‖b1‖2 ≥ 0,

che implica u ≥ 0.

Supponiamo ora che il risultato sia vero per una matrice con p−1 righe e dimostriamo che valeper una matrice con p righe. Quindi supponiamo che:

non esista d ∈ Rn tale che Bd ≥ 0, gT d < 0 (8.4)

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) de-terminiamo un vettore u con il massimo numero di componenti non negative e indichiamo con sil numero di componenti non negative di u. Riordiniamo le componenti di u e conseguentementele colonne di B in modo che le componenti non negative siano le prime s, ovvero risulti

u1, . . . , us ≥ 0, us+1, . . . , up < 0.

Allora possiamo scrivere

g =s∑

i=1

uibi +p−1∑

i=s+1

uibi + upbp.

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

g = g +m−1∑

i=s+1

uibi, (8.5)

avendo posto

g =s∑

i=1

uibi + upbp (8.6)

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

[Affermazione 1] Se 6 ∃ d ∈ Rn :Bd ≥ 0cT d < 0 =⇒ 6 ∃ d ∈ Rn :

Bd ≥ 0gT d < 0

Successivamente che

[Affermazione 2]

Se 6 ∃ d ∈ Rn :Bd ≥ 0gT d < 0 =⇒ 6 ∃ d ∈ Rn : bT

i d ≥ 0, i = 1, . . . , p− 1,gT d < 0.

116

Page 119: Dispense del corso RICERCA OPERATIVA

Se [Affermazione 1] e [Affermazione 2] sono vere, come conseguenza dell’ipotesi 8.4, si ha che

6 ∃ d ∈ Rn tale che bTi d ≥ 0 i = 1, . . . , p− 1 gT d < 0. (8.7)

Ma poiche il sistema (8.7) e di dimensione p− 1, soddisfa l’ipotesi induttiva e quindi esiste unu ∈ Rp−1 tale che

g =p−1∑

i=1

uibi, ui ≥ 0, i = 1, . . . , p− 1.

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

g = g +p−1∑

i=s+1

uibi =p−1∑

i=1

uibi +m−1∑

i=s+1

uibi

=s∑

i=1

uibi +p−1∑

i=s+1

(ui + ui)bi

=s∑

i=1

uibi +p−1∑

i=s+1

(ui + ui)bi + 0 · bp

Quindi c risulta essere la combinazione lineare dei vettori bi con s + 1 coefficienti non negativiu1, . . . , us, up = 0. Ma questo e assurdo perche per ipotesi avevamo supposto che s fosse ilmassimo numero di coefficienti non negativi nella definizione di g.

Si tratta quindi di dimostrare che valgono le [Affermazione 1] e [Affermazione 2].

Dimostrazione [Affermazione 1]. Sia d tale che Bd ≥ 0, e quindi, per ipotesi gT d ≥ 0; moltipli-cando scalarmente la (8.5) per d si ottiene

0 ≤ gT d = gT d +p−1∑

i=s+1

ui

≥ 0︸︷︷︸bTi d per ogni d : b′id ≥ 0 i = 1, . . . , p.

Poiche us+1, . . . , up−1 < 0, lap−1∑

i=s+1

uibTi d ≤ 0 e quindi deve essere necessariamente:

gT d ≥ 0 per ogni d : Bd ≥ 0.

L’[Affermazione 1] e cosı dimostrata.

Dimostrazione [Affermazione 2]. Per definizione (8.6), g e la combinazione lineare dei vettori bi

con coefficienti u1, . . . , us, 0, . . . , 0, up tutti non negativi tranne l’ultimo up. La dimostrazione eper assurdo, quindi supponiamo che non sia vera, cioe che esista d ∈ Rn tale che bT

i d ≥ 0 peri = 1, . . . , p− 1 e gT d < 0. Per definizione di g possiamo scrivere

gT d =s∑

i=1

uibTi d + upb

Tp d.

117

Page 120: Dispense del corso RICERCA OPERATIVA

Se bTi d ≥ 0 per i = 1, . . . , p− 1, allora

s∑

i=1

uibTi d ≥ 0. D’altra parte up < 0 e quindi gT d < 0 se

e solo se risulta bTp d > 0. Quindi d e un vettore tale che

bTi d ≥ 0 i = 1, . . . , p− 1 bT

p d > 0,

ma allora per ipotesi deve essere gT d ≥ 0 che contraddice gT d < 0. Quindi anche l’[Affermazione2] e dimostrata.

118

Page 121: Dispense del corso RICERCA OPERATIVA

Capitolo 9

Le condizioni diKarush-Kuhn-Tucker

9.1 Introduzione

In questo capitolo deriveremo le condizioni necessarie di Karush-Kuhn-Tucker (KKT) per prob-lemi vincolati in cui S e descritto da vincoli di disuguaglianza e/o di uguaglianza lineari. Sitratta di formulare in modo alternativo le condizioni necessarie del paragrafo 7.5. A questoscopo si devono utilizzare i teoremi dell’alternativa descritti nel Capitolo 8.

9.2 Le condizioni di Karush-Kuhn-Tucker

Consideriamo il problema di ottimizzazione su un poliedro e senza perdita di generalita ci riferi-amo inizialmente ad un poliedro con soli vincoli di disuguaglianza. Il problema in considerazionee quindi:

min f(x)

Ax ≥ b(P − POL)

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 dise-quazioni lineare

AI(x∗)d ≥ 0,

∇f(x∗)T d < 0.(9.1)

dove AI(x∗) e la matrice AI(x∗) = (aTi )i∈I(x∗) di dimensione |I(x∗)|×n e I(x∗) = i : aT

i x∗ = bi.

Identificando il sistema (9.1) con il sistema (I) del Lemma di Farkas, e utilizzando il Lemma diFarkas, possiamo affermare quanto segue.

119

Page 122: Dispense del corso RICERCA OPERATIVA

Non esiste una soluzione d ∈ Rn al sistema di disequazioni lineare (9.1) se e solo se esiste unasoluzione del sistema

ATI(x∗)u = ∇f(x∗),

u ≥ 0.(9.2)

dove u e un vettore di dimensione |I(x∗)|.

Esempio 9.2.1 Consideriamo il sistema (7.9) ottenuto nell’esempio 7.7.2:

2d1 − d2 ≥ 0d1 ≥ 020d1 < 0

A cui corrispondono

AI(x∗) =(

2 −11 0

)∇f(x∗) = (20, 0)T .

Il sistema (7.9) non ammette soluzione. Applicando il Lemma di Farkas deve esistere un vettoreu ∈ IR2 tale che u ≥ 0 e (

2 −11 0

)T (u1

u2

)=

(200

)

Il sistema si scrive2u1 + u2 = 20−u1 = 0u1 ≥ 0, u2 ≥ 0

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

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 puntodi minimo locale del problema (P-POL). Allora esiste un vettore λ∗ ∈ Rm tale che risultinosoddisfatte le condizioni seguenti:

(i) Ax∗ ≥ b,

(ii) ∇f(x∗)−AT λ∗ = 0,

(iii) λ∗ ≥ 0,

(iv) λ∗i (bi − aTi x∗) = 0 per i = 1, . . . , m.

Dimostrazione. Sia x∗ un punto di minimo locale; poiche x∗ deve essere ammissibile valela (i). Inoltre non deve ammettere soluzione il sistema (9.1). Abbiamo gia osservato che,identificando il sistema (9.1) con il sistema (I) del Lemma di Farkas, possiamo affermare cheesiste una soluzione u del sistema (9.2).

120

Page 123: Dispense del corso RICERCA OPERATIVA

Sia u∗i ≥ 0, i ∈ I(x∗) una soluzione del sistema precedente e definiamo un vettore λ∗ ∈ Rm

ponendo:

λ∗i =

u∗i per i ∈ I(x∗)0 per i /∈ I(x∗). (9.3)

Risulta ovviamente λ∗ ≥ 0 ed e soddisfatta la (iii). Inoltre, la (iv) e una conseguenza immediatadella definizione (9.3) di λ∗. Abbiamo infatti che

λ∗i (bi − aTi x∗) =

u∗i (bi − aT

i x∗) = 0 per i ∈ I(x∗)0(bi − aT

i x∗) = 0 per i /∈ I(x∗).

Infine, ricordando che la (9.2) puo essere scritta ∇f(x∗) =∑

i∈I(x∗)

u∗i ai possiamo scrivere

∇f(x∗) =∑

i∈I(x∗)

u∗i ai +∑

i 6∈I(x∗)

0 · ai = AT λ∗.

E quindi soddisfatta la (ii).

Il vettore λ ∈ IRm si dice moltiplicatore di Lagrange (generalizzato) relativo ai vincoli Ax ≥ b.

Osserviamo che la (ii) esprime il fatto che in un punto di minimo locale il gradiente dellafunzione e esprimibile come combinazione non negativa (conica) dei gradienti dei vincoli attiviin x∗:

∇f(x∗) =∑

i∈I(x∗)

λ∗i ai, λ∗i ≥ 0

La condizione (iv) e nota come condizione di complementarita ed esprime il fatto che in unpunto di minimo locale deve essere nullo, per ciascun vincolo, il prodotto λ∗i (bi − a∗i

T x∗), percui, se il vincolo non e attivo, si deve annullare il corrispondente moltiplicatore.Tenuto conto che λ∗ ≥ 0 e Ax∗− b ≥ 0 la condizione (iv) si puo scrivere equivalentemente come

λ∗T (b−Ax∗) =m∑

i=1

λ∗i (bi − aTi x∗) = 0.

Le condizioni enunciate si possono esprimere in una forma equivalente facendo riferimento allafunzione Lagrangiana.

La funzione Lagrangiana per il problema (P-POL) e definita come

L(x, λ) = f(x) + λT (b−Ax)

Indicando con ∇xL(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

121

Page 124: Dispense del corso RICERCA OPERATIVA

rispetto a x, per cui la coppia (x∗, λ∗) costituisce un punto stazionario della funzione La-grangiana. Possiamo allora riscrivere le condizioni di KKT come segue

(Condizioni necessarie di Karush-Kuhn-Tucker)

Sia x∗ un punto di minimo locale del problema (P-POL). Allora esiste un vettore λ∗ ∈ IRm taleche risultino soddisfatte le condizioni seguenti:

(i) Ax∗ ≥ b, (ammissibilita)

(ii) ∇xL(x∗, λ∗) = 0 (stazionarieta),

(iii) λ∗ ≥ 0,

(iv) λ∗T (b−Ax∗) = 0 (complementarita).

Osserviamo che in un punto x∗ che sodisfa le condizioni di KKT risulta

L(x∗, λ∗) = f(x∗).

I punti candidati ad essere minimo di un problema del tipo (P-POL) possono essere deter-minati risolvendo le condizioni di KKT. Introduciamo allora la seguente definizione.

Un punto x e detto punto di KKT del problema (P-POL) se esiste λ ∈ IRm tale che valgano lecondizioni:

(i) Ax ≥ b,

(ii) ∇L(x, λ) = 0,

(iii) λ ≥ 0,

(iv) λT (b−Ax) = 0.

I possibili candidati ad essere minimo locale sono quindi i punti di KKT.

Esempio 9.2.3 Consideriamo il problema

max x22 +

12x1

x1 − x2 ≤ 112x1 + x2 ≤ 1x1 ≥ 0

Determiniamo tutti punti di KKT. Mettiamo innanzitutto il problema nella forma (P-POL).

min −x22 −

12x1

−x1 + x2 ≥ −1− 1

2x1 − x2 ≥ −1x1 ≥ 0

122

Page 125: Dispense del corso RICERCA OPERATIVA

La funzione Lagrangiana per questo problema e:

L(x, λ) = −x22 −

1

2x1 + λ1(−1 + x1 − x2) + λ2(−1 +

1

2x1 + x2)− λ3x1

Le condizioni di KKT sono:

(i) (ammissibilita)−x1 + x2 ≥ −1

−1

2x1 − x2 ≥ −1

x1 ≥ 0

(ii) (stazionarieta)

−1

2+ λ1 +

1

2λ2 − λ3 = 0

−2x2 − λ1 + λ2 = 0

(iii) (non negativita)λ1, λ1, λ3 ≥ 0

(iv) (complementarita)λ1(−1 + x1 − x2) = 0

λ2(−1 +1

2x1 + x2) = 0

λ3x1 = 0

Determiniamo i punti di KKT esaminando tutti i casi possibili. Dalla condizione λ3x1 = 0si ottiene che

0 = λ3x1 =

x1 = 0(i)7−→ −1 ≤ x2 ≤ 1

x2 = −1(iv)27−→ λ2 = 0,

(ii)27−→ λ1 = 2(ii)37−→ λ3 =

3

2

x2 = 1(iv)17−→ λ1 = 0,

(ii)27−→ λ2= −2,

−1 < x2 < 1(iv)7−→ λ1 = λ2 = 0,

(ii)27−→ x2 = 0,(ii)37−→ λ3= −1

2

λ3 = 0

λ2 = 0

(ii)17−→ λ1 =1

2,

(ii)27−→ x2 = −1

4,(iv)17−→ x1 =

3

4

λ2 > 0

λ1 > 0

(iv)1,2+(i)7−→ x1 =

4

3, x2 =

1

3,(ii)1,27−→ λ2 =

7

9λ1 =

1

9

λ1 = 0(ii)17−→ λ2 = 1,

(ii)27−→ x2 = 12 ,

(iv)27−→ x1 = 1.

Quindi abbiamo trovato 4 punti di KKT

1. (0, − 1)T con moltiplicatori λ = (2 , 0, 3/2)T con valore della funz. obiettivo f = −1;

2. (3/4, − 1/4)T con moltiplicatori λ = (1/2 , 0, 0)T con valore della funz. obiettivof = −7/16;

123

Page 126: Dispense del corso RICERCA OPERATIVA

4. (4/3, 1/3)T con moltiplicatori λ = (1/9 , 7/9, 0)T con valore della funz. obiettivof = −7/9;

5. (1, 1/2)T con moltiplicatori λ = (0 , 1, 0)T con valore della funz. obiettivo f = −3/4;

Poiche l’insieme ammissibile e compatto, esiste un punto di minimo globale e si trova tra ipunti di KKT determinati so pra. Si tratta di scegliere quello con valore della funzione obiettivominore: si tratta dei due punti (0, 1) e (0, − 1).

2

Ricordando che la condizione (9.1) diventa necessaria e sufficiente di ottimo globale nell’ipotesiche f sia convessa, otteniamo che anche le condizioni di KKT sono necessarie e sufficienti diottimo globale nell’ipotesi che f sia convessa. Vale infatti il teorema seguente.

Teorema 9.2.4 (Condizioni necessarie e sufficienti di ottimo globale)

Sia f una funzione convessa con ∇f continuo in IRn. Un punto x∗ e minimo globale di (P-POL)se e solo se esiste λ∗ ∈ IRm 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∗ el’unico punto di minimo globale di f su S.

Esempio 9.2.5 Consideriamo il problema dell’Esempio 7.7.2

min (x1 + 10)2 + (x2 − 12)2

3x1 − 2x2 ≥ −302x1 − x2 ≥ −12x1 ≥ 0,x2 ≥ 0

Si tratta di un problema convesso. La funzione Lagrangiana per questo problema e la funzioneL : IR2 × IR4 → IR definita come:

L(x, λ) = (x1 + 10)2 + (x2 − 12)2 + λ1(−30− 3x1 + 2x2) + λ2(−12− 2x1 + x2)− λ3x1 − λ4x2

Le condizioni di KKT in un punto x ammissibile richiedono che valga

∇xL(x, λ) =(

2(x1 + 10)− 3λ1 − 2λ2 − λ3

2(x2 − 12) + 2λ1 + λ2 − λ4

)= 0

conλ ≥ 0

λ1(−30− 3x1 + 2x2) = 0λ2(−12− 2x1 + x2) = 0

λ3x1 = 0λ4x2 = 0

124

Page 127: Dispense del corso RICERCA OPERATIVA

Possiamo facilmente verificare che il punto ammissibile x = (0, 0)T non soddisfa le condizionidi KKT. Infatti dalle condizioni di complementarita si ottiene che λ2 = λ1 = 0. Sostituendo in∇xL(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 complementarita siottiene che λ4 = λ1 = 0. Sostituendo in ∇xL(x, λ) = 0 si ha

20− 2λ2 − λ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 cherisultino soddisfatte le condizioni di KKT ed inoltre risulta

dT∇2xL(x∗, λ∗)d ≥ 0 per ogni d ∈ IRn : aT

i d ≥ 0, i ∈ I(x∗) e ∇f(x∗)T d = 0.

La dimostrazione segue banalmente osservando che ∇2xL(x∗, λ∗) = ∇2f(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 di-rettamente le condizioni di KKT per un problema con poliedro piu generale. Analizziamoinizialmente 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 puo equivalentemente scrivere comeAx ≥ b e −Ax ≥ −b, e dunque il problema si scrive:

min f(x)

Ax ≥ b−Ax ≥ −b

Associando ai vincoli i moltiplicatori µ1, µ2 ∈ IRm, con µ1, µ2 ≥ 0, la funzione Lagrangiana e :

L(x, µ1, µ2) = f(x) + µT1 (b−Ax) + µT

2 (−b + Ax) = f(x) + (µ1 − µ2)T (b−Ax).

Se si pone µ = µ1 − µ2, si puo scrivere

L(x, µ) = f(x) + µT (b−Ax)

125

Page 128: Dispense del corso RICERCA OPERATIVA

dove µ ∈ Rm puo assumere qualunque valore (positivo, negativo, nullo) in quanto differenza didue quantita non negative. Inoltre la condizione di complementarita e banalmente soddisfattain ogni punto ammissibile. Dunque possiamo affermare:

(Condizioni necessarie di Lagrange)

Sia x∗ un punto di minimo locale del problema

min f(x)

Ax = b

Esiste un vettore µ∗ ∈ IRm tale che

∇xL(x∗, µ∗) = ∇f(x∗)−AT µ∗ = 0

Consideriamo ora un problema in in forma standard

min f(x)

Ax = bx ≥ 0

(P − ST )

e la funzione Lagrangiana per il problema (P-ST).

La funzione Lagrangiana per il problema (P-ST) e definita 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 diminimo locale del problema (P-ST). Allora esistono un vettore λ∗ ∈ IRn e µ∗ ∈ IRm tale cherisultino soddisfatte le condizioni seguenti:

(i) Ax∗ = b, x∗ ≥ 0 (ammissibilita),

(ii) ∇xL(x∗, λ∗, µ∗) = ∇f(x∗) + AT µ∗ − λ∗ = 0 (stazionarieta),

(iii) λ∗ ≥ 0,

(iv) λ∗T x∗ = 0 (complementarita).

Naturalmente le condizioni di KKT possono essere scritte per un qualunque problema di min-imizzazione su un poliedro1. Nel caso generale supponiamo di avere un problema definito davincoli di uguaglianza e disuguaglianza del tipo.

min f(x)Dx = hAx ≥ b

(P−GEN)

1Nel caso in cui l’insieme ammissibile non sia un poliedro, e ancora possibile definire le condizioninecessarie di KKT purche i vincoli soddisfino opportune ipotesi dette condizioni di qualificazione deivincoli. In questo corso non si trattano vincoli non lineari generici.

126

Page 129: Dispense del corso RICERCA OPERATIVA

in cui D e una matrice p× n, A e una matrice q × n, h ∈ IRp, b ∈ IRq. Allora

La funzione Lagrangiana per (P-GEN) e

L(x, λ, µ) = f(x) + λT (b−Ax) + µT (Dx− h),

con λ ∈ IRq, µ ∈ IRp.

Inoltre

Le condizioni di KKT per il problema (P-GEN) sono soddisfatte in un punto (x∗, λ∗, µ∗) ∈IRn × IRq × IRp se:

(i) Ax∗ ≥ b, Dx∗ = h (ammissibilita),

(ii) ∇xL(x∗, λ∗, µ∗) = ∇f(x∗)−AT λ∗ + DT µ∗ = 0 (stazionarieta),

(iii) λ∗ ≥ 0,

(iv) λ∗T (b−Ax∗) = 0 (complementarita).

Teorema 9.2.8 (Condizioni di Karush-Kuhn-Tucker per (P-GEN)) Sia x∗ un puntodi minimo locale del problema (P-GEN). Allora esistono vettori λ∗ ∈ Rq, µ∗ ∈ IRp tali cherisultino soddisfatte le condizioni seguenti:

(i) ∇xL(x∗, λ∗, µ∗) = 0,

(ii) λ∗ ≥ 0,

(iii) λ∗i (bi − aTi x∗) = 0 per i = 1, . . . , q.

Esempio 9.2.9 Consideriamo la seguente modifica del problema dell’Esempio 9.2.3.

max x22 +

12x1

x1 − x2 = 112x1 + x2 ≤ 1x1 ≥ 0

Determiniamo tutti punti di KKT. Mettiamo innanzitutto il problema nella forma (P-GEN).

min −x22 −

12x1

x1 − x2 = 1− 1

2x1 − x2 ≥ −1x1 ≥ 0

La funzione Lagrangiana per questo problema e:

L(x, λ) = −x22 −

12x1 + µ(−1 + x1 − x2) + λ1(−1 +

12x1 + x2)− λ2x1

Le condizioni di KKT sono:

127

Page 130: Dispense del corso RICERCA OPERATIVA

(i) (ammissibilita)x1 − x2 = 1

−1

2x1 − x2 ≥ −1

x1 ≥ 0

(ii) (stazionarieta)

−1

2+ µ+

1

2λ1 − λ2 = 0

−2x2 − µ+ λ1 = 0

(iii) (non negativita)λ1, λ2 ≥ 0

(iv) (complementarita)

λ1(−1 +1

2x1 + x2) = 0

λ2x1 = 0

Determiniamo i punti di KKT esaminando tutti i casi possibili. Dalla condizione λ2x1 = 0si ottiene che

0 = λ2x1 =

x1 = 0(i)7−→ x2 = −1

(iv)27−→ λ1 = 0,(ii)27−→ µ = 2

(ii)37−→ λ2 = 3/2

λ2 = 0 imponiamo

λ1 = 0

(ii)17−→ µ = 1/2,(ii)27−→ x2 = −1/4,

(i)17−→ x1 = 3/4

λ1 > 0(iv)2+(i)7−→ x1 = 4/3, x2 = 1/3,

(ii)1+(ii)27−→ λ1 = 79 µ = 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. obiettivof = −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;

Poiche l’insieme ammissibile e compatto, esiste un punto di minimo globale e si trova tra ipunti di KKT determinati sopra. Si tratta di scegliere quello con valore della funzione obiettivominore: 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 localedel problema (P-GEN). Allora esistono vettori λ∗ ∈ IRp e µ∗ ∈ IRq tali che risultino soddisfattele condizioni di KKT e inoltre risulta

zT∇2xxL(x

∗, λ∗, µ∗)z ≥ 0 per ogni z : Dz = 0, AI(x∗)z ≥ 0 e ∇f(x∗)T z = 0

128

Page 131: Dispense del corso RICERCA OPERATIVA

Consideriamo nuovamente l’esempio 9.2.9.

Esempio 9.2.11 Consideriamo i 3 punti di KKT precedentemente determinati e verifichiamose soddisfano le condizioni necessarie del secondo ordine. La funzione Lagrangiana per questoproblema e:

L(x, λ) = −x22 −

12x1 + µ(−1 + x1 − x2) + λ1(−1 +

12x1 + x2)− λ2x1

il cui hessiano e

∇2xxL(x, λ, µ) =

(0 00 −2

)= ∇2f(x).

Quindi per ogni z = (z1, z2)T risulta zT∇2xxL(x∗, λ∗, µ∗)z = −2z2

2 . Inoltre ∇f =( −1/2−2x2

).

Consideriamo il punto x1 = (0, − 1)T . Dobbiamo determinare i vettori z che definisconole direzioni ammissibili. In x1 e attivo il vincolo di disuguaglianza x1 ≥ 0, quindi le direzioniammissibili sono i vettori z ∈ R2 che risolvono il sistema

z1 − z2 = 0z1 ≥ 0,

ovvero tutti i vettori del tipo z = (t, t)T con t ≥ 0. Inoltre deve risultare

∇f(x1)T z = (t, t)T

( − 12

2

)= −1

2t + 2t = 0,

da cui si ottiene t = 0 e z = (0, 0)T . La condizione necessaria del secondo ordine quindi esoddisfatta 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

( − 12

12

)= −1

2t +

12t = 0.

La condizione necessaria del secondo ordine quindi NON e soddisfatta in quanto −2t2 ≥ 0 none verificata qualunque sia t. Il punto x2 non puo 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

2z1 − 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

( − 12

− 23

)= −1

2t− 2

3t = 0,

che e verificata per t = 0. Quindi l’unico vettore z = (0, 0)T e la condizione necessaria delsecondo ordine quindi e soddisfatta in quanto −2t2 ≡ 0 e verificata. 2

129

Page 132: Dispense del corso RICERCA OPERATIVA

Capitolo 10

Teoria della ProgrammazioneLineare

In questo capitolo i risultati dei capitoli precedenti saranno applicati a problemi di Program-mazione Lineare (PL).Abbiamo gia visto che l’insieme ammissibile di un problema di programmazione lineare e unpoliedro 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 sullafrontiera dell’insieme ammissibile.

Ci proponiamo di studiare alcune proprieta dei poliedri che consentano di caratterizzarele soluzioni ottime di un problema di programmazione Lineare. Successivamente si deriva lateoria della dualita 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 aivincoli attivi in x linearmente indipendenti, cioe se e solo se risulta

rangoAI(x) = n

dove AI(x) la matrice |I(x)| × n costituita dalle righe di A con indice in I(x)

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

aTi d = 0 i ∈ I(x)

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

130

Page 133: Dispense del corso RICERCA OPERATIVA

inoltre che, poiche anche −d e soluzione del sistema omogeneo, anche −d e una direzioneammissibile. Allora possiamo considerare i due punti

y = x + tdz = x + t(−d)

e sappiamo che per valori di t sufficientemente piccoli sono entrambi ammissibili1. Osserviamopero che possiamo scrivere

x =12y +

12z

ovvero x puo essere ottenuto come combinazione convessa con coefficiente β = 12 di due punti

ammissibili e distinti. Ma questo contraddice che x sia un vertice.

Dimostriamo la parte sufficiente, ovvero che se rangoai i ∈ I(x) = n allora x e un vertice.Osserviamo preliminarmente che la condizione rango(ai i ∈ I(x)) = n implica che x sial’unica soluzione del sistema

aTi x = bi per ogni i ∈ I(x).

Procediamo ora per assurdo e supponiamo che il punto x non sia un vertice. Allora non puoessere l’unico punto ammissibile e in particolare esisteranno due punti ammissibili v e w distintida x e tali che x possa essere espresso come combinazione convessa di v e w ovvero

x = (1− β)v + βw con β ∈ (0, 1).

Per ogni i ∈ I(x) possiamo scrivere

bi = aTi x = (1− β)aT

i v + βaTi w

Osserviamo che deve essere necessariamente aTi v = bi e aT

i w = bi per ogni i ∈ I(x). Se cosı nonfosse, e aT

i v > bi e/o aTi w > bi si avrebbe l’assurdo

bi = aTi x = (1− β)aT

i v + βaTi w > (1− β)bi + βbi = bi.

Ma allora otteniamo che sia v che w sono soluzioni del sistema

aTi x = bi per ogni i ∈ I(x).

Ma questo contraddice che x sia l’unica soluzione.

Possiamo enunciare alcuni corollari che discendono direttamente dal teorema appena di-mostrato.

Corollario 10.1.2 Sia dato un poliedro S = x ∈ IRn : Ax ≥ b. Se la matrice A ha unnumero 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 ∈ IRn : Ax ≥ b ha un numero finito di vertici, parial massimo a (

mn

)=

m!n!(m− n)!

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

131

Page 134: Dispense del corso RICERCA OPERATIVA

Esempio 10.1.4 Sia dato il poliedro dell’Esempio 7.6.4

3x1 − 2x2 ≥ −302x1 − x2 ≥ −12x1 ≥ 0 x2 ≥ 0

che possiamo scrivere in forma matriciale

−3 −22 −11 00 1

(x1

x2

)≥

−30−1200

.

x1

x2

Figura 10.1: Poliedro Esempio 10.1.4.

Il poliedro e rappresentato in figura 10.1 e i vertici sono indicati con un puntino rosso.Verifichiamo che la condizione espressa dal Teorema 10.1.1 e verificata. I tre vertici sono i punti

v1 =(

012

)v2 =

(00

)v3 =

(6

24

).

In v1 sono attivi i vincoli 2x1−x2 ≥ −12, x1 ≥ 0, ovvero I(v1) = 2, 3. Consideriamo le righedella matrice A corrispondenti (

2 −11 0

)

che si verifica sono linearmente indipendenti.

132

Page 135: Dispense del corso RICERCA OPERATIVA

In v2 sono attivi i vincoli 3x1 − 2x2 ≥ −30, x1 ≥ 0, ovvero I(v1) = 1, 3. Consideriamo lerighe della matrice A corrispondenti (

3 −21 0

)

che si verifica sono linearmente indipendenti.In v3 sono attivi i vincoli 2x1−x2 ≥ −12, 3x1−2x2 ≥ −30, ovvero I(v1) = 1, 2. Consideriamole righe della matrice A corrispondenti

(3 −22 −1

)

che si verifica sono linearmente indipendenti. 2

Si noti che il teorema 10.1.1 non esclude che in un vertice siano attivi piu di n vincoli.

Esempio 10.1.5 Consideriamo il poliedro dell’Esempio 10.1.4 con l’aggiunta di un vincolox2 ≤ 24, ovvero:

3x1 − 2x2 ≥ −302x1 − x2 ≥ −12−x2 ≥ −24x1 ≥ 0,x2 ≥ 0

Si verifica graficamente che il punto v3 =(

624

)e ancora un vertice. Osserviamo che in v3

sono ora attivi tre vincoli I(v3) = 1, 2, 3 e le righe della matrice A corrispondenti sono:

3 −22 −10 −1

Si verifica facilmente che il rango di questa matrice e 2.

Esempio 10.1.6 Sia dato il poliedro

x1 + 2x2 + x3 ≤ 33x1 − x2 + x3 ≤ 22x1 + x2 + x3 ≤ 34x1 + x2 + 2x3 ≤ 4

elenchiamo i vertici. In forma matriciale possiamo scrivere

−1 −2 −3−3 1 −1−2 −1 −1−4 −1 −2

x1

x2

x3

−3−2−3−4

.

Si ha n = 3 e m = 4. Il numero massimo di vertici e quindi m!n!(m−n)! = 4!

3! = 4 e si ottengonoconsiderando tutte le possibili combinazioni di tre righe della matrice A. consideriamo quindii casi possibili:

133

Page 136: Dispense del corso RICERCA OPERATIVA

1. I = 1, 2, 3; il sistema aTi x = bi con i ∈ I ha rango pari a 3 e l’unica soluzione e il punto

(1, 1, 0)T che pero non risulta ammissibile, perche risulta (−4 −1 −2)(1, 1, 0)T < −4;

2. I = 1, 2, 4 il rango della matrice e 2 < n, quindi non puo essere un vertice;

3. I = 2, 3, 4 il sistema ammette l’unica soluzione (3, 2 ,−5) che e ammissibile e quindi eun vertice;

4. I = 1, 3, 4 il sistema ammette l’unica soluzione (2, 2,−3) che e ammissibile e quindi eun vertice.

Tuttavia bisogna porre attenzione al fatto che esistono poliedri che non contengono vertici. Unesempio e’ dato nella figura 10.2 in cui il poliedro e la parte di piano contenuta tra due retteparallele r1 e r2.

1

r2

2

x

r

1

x

Figura 10.2: Poliedro senza vertici.

Vedremo nel prossimo paragrafo che il caso in cui il poliedro non ha vertici e l’unico casoin cui il problema di PL corrispondente puo avere soluzione ottima (ovviamente sulla frontiera)senza che nessuna soluzione coincida con un vertice.

Risulta quindi interessante capire quando un poliedro puo non ammettere vertice. A talscopo introduciamo la seguente definizione

Definizione 10.1.7 (Retta) Sia S un poliedro. Il poliedro contiene una retta se esiste unpunto x ∈ S e una direzione d ∈ IRn tale che

x + td ∈ S per ogni t ∈ IR.

La caratterizzazione dei casi in cui un poliedro non ammette vertici e riportata nel seguenterisultato, di cui omettiamo la prova.

134

Page 137: Dispense del corso RICERCA OPERATIVA

Teorema 10.1.8 Un poliedro P non vuoto non ha vertici se e solo se contiene una retta.

E evidente che il poliedro nella Figura 10.2 contiene rette (in particolare contiene, peresempio, r1, r2) e quindi, non contiene vertici.

Osservazione 10.1.9 Nel caso le variabili del problema di PL siano vincolate ad essere tuttenon negative ovvero tra i vincoli compaiono x ≥ 0, questo implica che il poliedro ammissibile einteramente contenuta nel primo ortante e quindi non puo contenere rette. Quindi, in base alteorema 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 piu frequentemente si incontra nelleapplicazioni.Possiamo dunque affermare:

Se un poliedroS ⊆ x ∈ IRn : x ≥ 0

e non vuoto, ammette sempre almeno un vertice.

Dumque, risulta vero il seguente risultato.

Corollario 10.1.10 Sia dato un poliedro del tipo S = x ∈ IRn : Ax = b, x ≥ 0. Se ilpoliedro non e vuoto, ammette sempre un vertice.

Consideriamo un poliedro n forma standard del tipo

S = x ∈ IRn : Ax = b, x ≥ 0.

Possiamo caratterizzare i vertici di un poliedro in forma standard utilizzando la struttura par-ticolare e osservando che in punto ammissibile x risulta

I(x) = 1, . . . ,m ∪ i : xi = 0.

Vale il seguente teorema che si riporta senza dimostrazione.

Teorema 10.1.11 (Vertici di un poliedro in forma standard) Sia dato un poliedro S =x ∈ IRn : Ax = b, x ≥ 0. Un punto x ∈ S e un vertice se e solo se le colonne della matriceA corrispondenti a componenti positive di x, sono linearmente indipendenti.

Abbiamo osservato nel Capitolo 3 che e possibile passare da una rappresentazione di unpoliedro 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) puo essere trasformato in forma standard con l’aggiunta di variabili disurplus come segue

S′ =(

xs

)∈ 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.

135

Page 138: Dispense del corso RICERCA OPERATIVA

Teorema 10.1.12 x e un vertice del poliedro S = x ∈ IRn : Ax ≥ b, x ≥ 0 se e solo se(xs

)con s = Ax− b e un vertice di S′ =

(xs

)∈ IRn+m : Ax− s = b, x ≥ 0, s ≥ 0

.

Dimostrazione. Osserviamo preliminarmente che x ∈ S se e solo se(

xAx− b

)∈ S′. Infatti

per definizione Ax− b = s ≥ 0.

Supponiamo che x sia un vertice di S ma per assurdo(

xs

)non sia vertice di S′. Dunque

esistono altri due punti distinti(

x1

s1

)∈ S′ e

(x2

s2

)∈ S′ tali che

(xs

)= (1− β)

(x1

s1

)+ β

(x2

s2

)∈ S′ per qualche β ∈ (0, 1)

eAx1 − s1 = b, Ax2 − s2 = b, x1 ≥ 0, s1 ≥ 0, x2 ≥ 0, s2 ≥ 0.

Dunque x1 ∈ S e x2 ∈ S. Inoltre x1 6= x2 altrimenti s1 = Ax1 − b = Ax2 − b = s2 e dunque

i due punti(

x1

s1

)∈ S′ e

(x2

s2

)∈ S′ non sarebbero distinti. Ma allora risulta anche

x = (1− β)x1 + βx2 che contraddice l’ipotesi che x sia un vertice.

Supponiamo ora(

xAx− b

)∈ S′ sia un vertice di S′, ma, per assurdo, x NON sia vertice di

S. Allora esistono due punti x1, x2 ∈ S tali che

x = (1− β)x1 + βx2 per qualche β ∈ (0, 1).

Siano s1 = Ax1 − b ≥ 0 e s2 = Ax2 − b ≥ 0, dunque(

x1

s1

)∈ S′ e

(x2

s2

)∈ S′. Inoltre si ha

(1− β)s1 + βs2 = (1− β)(Ax1 − b) + β(Ax2 − b) = A((1− β)x1 + βx2

)− b = Ax− b = s

che contraddice l’ipotesi che (x, s)T sia un vertice di S′.

10.2 Il teorema fondamentale della PL

Consideriamo ora il problema di Programmazione Lineare

minx∈S

cT x

con S poliedro. E da notare che il caso di problemi con soli vincoli di uguaglianza del tipo

min cT xAx = b

con A matrice m× n e di scarsa rilevanza pratica in quanto e possibile dimostrare che se esisteuna soluzione ammissibile e il problema non e illimitato allora tutte le soluzioni ammissibili sonoottime. Quindi il problema con soli vincoli di uguaglianza, si riduce essenzialmente allo studiodi sistemi di equazioni lineari.In particolare vale il seguente risultato.

136

Page 139: Dispense del corso RICERCA OPERATIVA

Teorema 10.2.1 Sia dato il problema di PL

min cT xAx = 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 ammissibiletale che cT d < 0)oppure

2. tutte le soluzioni ammissibili sono ottime (in questo caso per ogni direzione d ammissibilerisulta cT d = 0)

Dimostrazione. Se x e soluzione unica del sistema Ax = b, allora banalmente e anche ottima(e non esiste alcuna direzione d 6= ammissibile perche il sistema Ad = 0 non ammette soluzionenon nulla). Supponiamo quindi che x non sia l’unico punto ammissibile, allora per ogni d taleche 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,

cioe tutte le soluzioni ammissibili hanno lo stesso valore della funzione obiettivo.Se invece esiste una d ammissibile per cui cT d 6= 0, possiamo senza perdere di generalita supporreche sia cT d < 0 (altrimenti sarebbe sufficiente considerare la direzione −d). La direzione d e didiscesa 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 vincolidi disuguaglianza e senza perdere di generalita considereremo solo problemi del tipo

min cT xAx ≥ b

(10.1)

Si tratta quindi di stabilire se un problema di PL ammette soluzione e come caratterizzarela soluzione ottima.Abbiamo gia dimostrato con i Teoremi 5.3.5 e 5.3.6 che se esiste una soluzione ottima, allorasi trova sulla frontiera del poliedro. Il Teorema Fondamentale della Programmazione Linearecaratterizza in modo piu completo i problemi di Programmazione Lineare.

Teorema 10.2.2 (Teorema Fondamentale della Programmazione Lineare) Sia dato unproblema di PL. Allora una e una sola delle seguenti affermazioni 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 definisce la regione ammissibile ha deivertici, allora almeno una soluzione ottima cade su un vertice.

137

Page 140: Dispense del corso RICERCA OPERATIVA

Nella dimostrazione del teorema fondamentale della PL, faremo riferimento a problemi di PLin forma (10.1) ed useremo l’ipotesi (solo semplificativa della dimostrazione) che il poliedro noncontenga rette, che, in base al Teorema 10.1.8, ci assicura l’esistenza di almeno un vertice delpoliedro.

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 verauna e una sola delle delle seguenti tre affermazioni.

(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.

Dimostrazione. Ovviamente le tre affermazioni dell’enunciato sono incompatibili, nelsenso che se e vera una, non possono essere vere le altre due. Quindi, per dimostrare il teorema,bastera mostrare che non puo succedere che non si verifichi nessuna delle tre. Mostreremoquesto facendo vedere che se non sono vere ne (a) ne (b), allora deve essere vera la (c).

Supponiamo quindi che la regione ammissibile sia non vuota e che il problema non siaillimitato inferiormente. 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 ancheun vertice. Supponiamo allora che il poliedro contenga piu di un punto (e quindi infiniti).

La dimostrazione prosegue in due parti. Nella prima parte dimostriamo la seguente affer-mazione

Per ogni punto x ∈ S, esiste un vertice vk tale che cT vk ≤ cT x.

La seconda parte utilizza invece risultati gia noti. In particolare, dal Teorema 10.1.3, sappiamoche i vertici del poliedro sono in numero finito; li indichiamo con v1, . . . vp. Quindi tra tuttii vertici vi possiamo scegliere quello per cui il valore della funzione obiettivo e minore, cheindichiamo con v∗. Risulta quindi cT v∗ ≤ cT vi per ogni vertice vi e quindi in particolarepossiamo scrivere anche per il vertice vk determinato nel prima parte

cT v∗ ≤ cT vk

Mettendo insieme le due affermazioni in rosso, possiamo finalmente scrivere

cT v∗ ≤ cT vk ≤ cT x, per ogni x ∈ S

il che prova che l’affermazione (c) e vera.Dimostriamo la prima parte. Sia x una soluzione ammissibile che non sia un vertice, dimostri-amo che e possibile trovare un vertice v tale che cT v ≤ cT x. La dimostrazione e costruttiva.Poiche x non e un vertice, per il Teorema 10.1.1, il sistema

aTi d = 0, i ∈ I(x)

non ha rango massimo e quindi ammette una soluzione d non nulla. Dunque, per il Corollario7.6.5, ±d sono direzioni ammissibili e i punti x+td con t ∈ [0, t+max] e x−td con t ∈ [0, t−max] sonoammissibili. Si dimostra ora che mint+max, t

−max < ∞, cioe che lo spostamento ammissibile

lungo almeno una delle due direzioni ±d e finito.A questo scopo, scegliamo la direzione d tale cT d ≤ 0 e dunque e possibile una delle duecondizioni:

138

Page 141: Dispense del corso RICERCA OPERATIVA

(i) cT d = 0;

(ii) cT d < 0.

Se cT d = 0 ovviamente anche cT (−d) = 0. Poiche il poliedro non contiene rette deve risultareche almeno uno tra t+max e t−max e < ∞. Senza perdita di generalita possiamo assumere che siat+max < ∞.Se invece cT d < 0, la direzione d risulta dunque essere una direzione di discesa (vedi para-grafo 6.2) e per ogni t > 0 risulta

cT (x + td) = cT x + tcT d = cT x− t|cT d| per ogni t > 0.

Supponiamo che t possa →∞. Si ottiene

limt→∞

cT (x + td) = cT x− |cT d| limt→∞

t = −∞.

Poiche per ipotesi il problema non e illimitato, questo non si puo verificare, dunque t 6→ ∞e necessariamente t+max < ∞.In entrambi i casi otteniamo che x + td e ammissibile per 0 ≤ t ≤ t+max < ∞.Definiamo il punto

y = x + t+maxd;

ricordando che cT d ≤ 0 risulta

cT y = cT x− t+max|cT d| ≤ cT x.

Verifichiamo quali vincoli sono attivi in y. Ricordando che per i ∈ I(x) risulta aTi d = 0,

otteniamoaT

i y = aTi (x + t+maxd) = aT

i x = bi i ∈ I(x)

Quindi I(x) ⊆ I(y). Facciamo ora vedere che I(x) ⊂ I(y), ovvero che in y e attivo almeno unvincolo in piu rispetto ad x. Consideriamo quindi i vincoli NON attivi in x e si indichi conjmax /∈ I(x) un indice per cui:

t+max =aT

jmaxx− bjmax

|aTjmax

d|(cioe un indice per cui e raggiunto il minimo nella formula (7.6)). Per definizione risulta chel’indice jmax /∈ I(x) e aT

jmaxd < 0. Possiamo allora scrivere:

aTjmax

x = aTjmax

x+ t+maxaTjmax

d = aTjmax

x− t+max|aTjmax

d| = aTjmax

x− aTjmax

x− bjmax

|aTjmax

d| |aTjmax

d| = bjmax

Quindi abbiamo che I(y) ⊇ I(x) ∪ jmax, cioe in y e attivo almeno un vincolo che non eraattivo in x. Osserviamo che potrebbe esistere piu di un indice per cui e raggiunto il minimonella formula (7.6). In questo caso avrei attivi in y tanti vincoli in piu rispetto a x quanti sonotali indici. Abbiamo quindi dimostrato che, a partire da un qualunque punto ammissibile x chenon e un vertice, possiamo determinare un nuovo punto y con valore della funzione obiettivonon superiore e con un numero di vincoli attivi linearmente indipendenti maggiore rispetto ax. Se y non e un vertice, possiamo ripetere lo stesso procedimento fino a quando non troviamoun punto in cui sono attivi n vincoli linearmente indipendenti, cioe un vertice. Quindi abbiamodimostrato l’affermazione che ci serviva:

139

Page 142: Dispense del corso RICERCA OPERATIVA

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 teoremaprecedente.

Esempio 10.2.4 Consideriamo il problema di PL

min 4x1 − x2

3x1 − 2x2 ≥ −302x1 − x2 ≥ −12x1 ≥ 0,x2 ≥ 0

il cui poliedro e riportato in Figura 10.3.

x1

x2

v1

v2

v3

x

13

9

d

3 t+max

Figura 10.3: Figura relativa all’Esempio 10.2.4.

Il poliedro ha tre vertici che abbiamo gia calcolato nell’Esempio 10.1.4, che indichiamo conv1, v2, v3 (puntini rossi in figura). Sia x = (3, 0) un punto ammissibile (puntino blu in figura).Si verifica facilmente che x non e un vertice. Infatti I(x) = 4 (e attivo solo il vincolo x2 ≥ 0)e risulta ovviamente rangoai i ∈ I(x) = 1 < n = 2. Consideriamo allora il sistema omogeneo

aT4 d = 0 ovvero d2 = 0.

Quindi una qualunque direzione del tipo (d1, 0)T con d1 6= 0 e ammissibile in x. Sia d = (−1, 0)una possibile soluzione (indicata in azzurro in Figura 10.3). Risulta cT d = 4d1 = −4 < 0 e siconsideri il punto

x + td = (3, 0)T + t(−1, 0)T = (3− t, 0)T .

140

Page 143: Dispense del corso RICERCA OPERATIVA

Calcoliamo il valore di

t+max = min

9 + 303

,6 + 12

2,31

= min13, 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

corrispondono rispettivamente al valore del passo t per cui il punto x + td “sfonda” rispettiva-mente il primo, il secondo e il terzo vincolo. Il valore di t+max = 3 corrisponde al massimo valoredel passo t per cui il punto rimane ammissibile. Sia allora

y = x + t+maxd = (0, 0)T

Risulta I(y) = 3, 4 = I(x) ∪ 3. Inoltre la riga a3 e linearmente indipendente da a4. Sitratta del vertice v1.

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

min cT xAx = bx ≥ 0.

(10.2)

Nel caso di problemi di PL in forma standard, ricordando che in questo caso il poliedroammissibile non contiene rette, possiamo enunciare il teorema fondamentale come segue:

Teorema 10.2.5 (Teorema fondamentale della PL) Sia dato il problema di PL in forma

min cT xAx = bx ≥ 0.

Allora e vera una e una sola delle delle seguenti tre affermazioni.

(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.

10.3 Cenni sul metodo del simplesso per la ProgrammazioneLineare

Il Metodo del Simplesso e certamente l’algoritmo di ottimizzazione piu famoso e piu utilizzatonelle applicazioni. Proposto nel 1947 da G.B.Dantzig, ha subito, negli oltre 50 anni di vita, nu-merosi miglioramenti che, pur non modificando in modo sostanziale la semplice struttura logicaideata da Dantzig, ne hanno certamente migliorato l’efficienza computazionale e la facilita diuso. Esistono oggi numerosi “package” commerciali che implementano il Metodo del Simplessoe 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 delMetodo senza entrare nei dettagli implementativi delle varie operazioni elementari (inversioni dimatrici sparse, gestione dei passi degeneri, etc.) delle quali il Metodo si compone. Tali questioni

141

Page 144: Dispense del corso RICERCA OPERATIVA

sono molto rilevanti se si vuole realizzare un algoritmo efficiente e robusto ma possono esseretrascurate se si vuole semplicemnete sesere in grado di interpretare l’output di un qualunquesoftware che implementa tale metodo (vedi anche il capitolo 15).

Il Metodo del Simplesso si applica a problemi di Programmazione Lineare in forma standarddel tipo:

min cT x (10.3)Ax = b

x ≥ 0n

con b ≥ 0m. Non vi e perdita di generalita nell’assumere che il problema sia in forma standarde con termini noti non negativi.L’obiettivo del metodo del simplesso e quello di individuare una soluzione di base ammissibileottima del problema (10.3) ovvero un vertice ottimo del poliedro

P = x ∈ IRn : Ax = b, x ≥ 0n.

L’idea di cercare la soluzione ottima in un vertice della regione ammissibile, invece, trovagiustificazione 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. Verifica dell’ottimalita della soluzione di base ammissibile corrente.

3. Verifica dell’illimitatezza del problema.

4. Costruzione di una nuova base ammissibile.

Descriveremo brevemente una implementazione del Metodo del Simplesso, detta implemen-tazione in due fasi. In tale implementazione, la procedura che consente di verificare se ilproblema di PL e ammissibile e, in caso affermativo, individua la prima base ammissibile vienedetta Fase I del Metodo del Simplesso. Se il problema non possiede una soluzione di baseammissibile allora il poliedro P e vuoto ed il problema e inammissibile. In tal caso la Fase Itermina segnalando l’inammissibilita del problema.

La Fase II del Metodo del Simplesso e caratterizzata dalle operazioni (2), (3) e (4). In talefase, a partire da una SBA, l’algoritmo costruisce una sequenza di soluzioni di base ammissibili,verificando, ad ogni iterazione, l’ottimalita della SBA corrente e l’illimitatezza del problema.Sotto opportune condizioni, l’algoritmo converge in un numero finito di iterazioni alla soluzioneottima del problema (10.3).

Alla base della struttura della Fase II, ci sono le operazioni di verifica dell’ottimalita diuna SBA, di verifica dell’illimitatezza del problema (10.3) e di costruzione di una nuova SBA.Nel seguito descriveremo solo il criterio di ottimalita usando nel simplesso perche costitusce uninformazione contenuta negli output dei software commerciali.

142

Page 145: Dispense del corso RICERCA OPERATIVA

10.3.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. Datauna matrice di base B, e sempre possibile, eventualmente riordinando le colonne, esprimerela matrice A nella forma A = (B, N) dove N e la matrice definita 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 puoriscrivere il problema in forma standard come segue:

min cTBxB + cT

NxN

BxB + NxN = bxB ≥ 0,xN ≥ 0

Poiche B e non singolare per ipotesi, possiamo esprimere le variabili di base xB in funzionedelle variabili xN e si ottiene

xB = B−1b−B−1NxN (10.4)

e sostituendo si puo scrivere:

min cTBB−1b + (cT

N − cTBB−1N)xN

B−1b−B−1NxN ≥ 0m,xN ≥ 0

(10.5)

Questo problema nelle sole variabili xN e detto problema ridotto ed e ottenuto per proiezionedelle variabili xB nel sottospazio delle variabili xN .Data una base B, una soluzione del tipo xB = B−1b, xN = 0 si dice Soluzione Ammissibile diBase (SBA) se e solo se B−1b ≥ 0.

Le SBA ed i vertici di un poliedro in forma standard sono in stretta relazione. Vale infatti ilseguente teorema.

Teorema 10.3.1 [2] Dato un poliedro in forma standard, un punto x e un vertice se e solo see una SBA.

Il problema (10.5), nelle sole variabili xN , e equivalente al problema (10.3). In particolare,risulta ovvio verificare quanto segue.

Un vettore x =(

xB

xN

)e una soluzione ammissibile di (10.3) se e solo se il vettore xN e

una soluzione ammissibile di (10.5) e xB = B−1b − B−1NxN . Inoltre, il valore della funzioneobiettivo del problema (10.3) calcolata in x e uguale al valore della funzione obiettivo del

problema ridotto calcolata in xN . Di conseguenza, se x =(

B−1b0n−m

)e la soluzione di base

ammissibile associata alla matrice B, abbiamo che xN = 0n−m e la soluzione corrispondentedel problema ridotto e che cT B−1b e il valore della funzione obiettivo per entrambi i problemi.

I coefficienti di xN nella funzione obiettivo del problema ridotto sono le componenti delvettore γ definito da:

γT = cT

N − cT

BB−1N

143

Page 146: Dispense del corso RICERCA OPERATIVA

che e detto vettore dei coefficienti ridotti.

Le considerazioni appena svolte ci consentono di formulare un criterio sufficiente di otti-malita per una soluzione di base ammissibile.

Teorema 10.3.2 (Criterio di Ottimalita) Sia x =(

B−1b0n−m

), una soluzione di base am-

missibile per il problema (10.3). Se il vettore dei coefficienti ridotti e non negativo, ovverose:

cT

N − cT

BB−1N ≥ 0T

n−m,

allora la soluzione di base ammissibile x =(

B−1b0n−m

)e ottima per il problema (10.3).

Dimostrazione. Dobbiamo dimostrare che, se il vettore dei coefficienti ridotti e non negativo,risulta

cT x ≥ cT x

per una qualunque soluzione ammissibile x. Calcoliamo cT x = cT

BxB + cT

N xN = cT

BxB =cT

BB−1b. Una qualunque soluzione ammissibile x del problema (10.3) puo essere suddivisa in(xB

xN

). Allora risulta che cT x = cT

BxB + cT

NxN e ricordando l’espressione (10.4) di xB

cT x = cT

BB−1b + γT xN

D’altra parte, per ipotesi γ ≥ 0 e x e ammissibile e quindi, in particolare, xN ≥ 0, quindi si ha:

cT x ≥ cT

BB−1b = cT x.

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

Esercizio 10.3.3 Sia dato il problema di PL in forma standard

min x1 + 3x2 + x3

x1 + 5x2 + 2x3 = 62x1 + x2 − x4 = 2x1 ≥ 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 = 52 (SBA)

144

Page 147: Dispense del corso RICERCA OPERATIVA

6. x3 = x4 = 0, x1 = 49 x2 = 10

9 (SBA).

Consideriamo la SBA

60010

; le variabili di base xB =

(x1

x4

)=

(610

), le variabili fuori

base xN =(

x2

x3

)= 0; la matrice di base B =

(1 02 −1

). I coefficienti di costo ridotto

γT = cTN − cT

BB−1N richiede il calcolo dell’inversa B−1 =(

1 02 −1

). Dunque sostituendo si

ottiene

γT = ( 3 1 )− ( 1 0 )(

1 02 −1

) (5 21 0

)= (−2 −1 ) 6≥ 0,

dunque non e possibile concludere nulla sulla ottimlita della soluzione.

145

Page 148: Dispense del corso RICERCA OPERATIVA

Capitolo 11

Condizioni di ottimo per la PL eteoria della dualita

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

11.1 Le condizioni di ottimalita nella ProgrammazioneLineare

Nel caso in cui la funzione obiettivo sia lineare ovvero del tipo f(x) = cTx, i problemi (P-POL),(P-ST), (P-GEN) analizzati nel paragrafo 7.7 sono problemi di Programmazione Lineare. Poichesi tratta di problemi convessi le condizioni di KKT sono necessarie e sufficienti.

Consideriamo inizialmente il problema di PL

min cTx

Ax ≥ b(PL)

La funzione Lagrangiana si scrive

L(x, λ) = cTx+ λT (b−Ax) = bTλ+ (cT − λTA)x

e le condizioni di KKT sono le seguenti.

Teorema 11.1.1 (Condizioni di KKT per il problema (PL)) Un punto x∗ e minimo glob-ale del problema di Programmazione Lineare (PL) se e solo se esiste λ∗ ∈ IRm tale che valganole condizioni:

(i) Ax∗ ≥ b,

(ii) c = ATλ∗,

(iii) λ∗ ≥ 0,

145

Page 149: Dispense del corso RICERCA OPERATIVA

(iv) λ∗T (b−Ax∗) = 0.

Osserviamo che la (i) e una condizione nelle sole variabili x, le (ii) e (iii) sono condizioni neisoli moltiplicatori λ.

Possiamo fare qualche ulteriore considerazione. Le condizioni (ii) e (iii) esprimono il fattoche λ∗ ∈ IRm deve essere ammissibile rispetto ai vincoli lineari

ATλ = cλ ≥ 0

(11.1)

Il sistema (11.1) rappresenta un poliedro in forma standard nello spazio IRm.

Consideriamo allora un x ∈ IRn soluzione ammissibile del problema (PL), e un λ ∈ IRm ap-partenente al poliedro definito da (11.1), ovvero una coppia (x, λ) che soddisfa

Ax ≥ b, λ ≥ 0, ATλ = c. (11.2)

Osservando che λT (b−Ax) =∑m

i=1 λi(bi − aTi x) ≤ 0, possiamo facilmente scrivere

cTx(λ≥0, b≤Ax)

≥ cTx+ λT (b−Ax)

= bTλ+ (cT − λTA)x

(ATλ=c)= bTλ.

Per ogni coppia (x, λ) che soddisfa Ax ≥ b, λ ≥ 0, ATλ = c risulta

cTx ≥ bTλ.

Si tratta di un risultato molto significativo, che riprenderemo piu avanti. Notiamo che, in parti-colare, poiche il minimo globale x∗ del problema (PL) e ammissibile, otteniamo immediatamenteche vale

cTx⋆ ≥ bTλ (11.3)

per ogni λ che soddisfa (11.1). Possiamo quindi affermare che una qualunque soluzione λ ∈IRm che soddisfa (11.1) consente di determinare una limitazione inferiore al valore ottimo delproblema (PL).Per migliorare la limitazione inferiore espressa dalle disuguaglianza (11.3), si puo rendere quantopiu possibile grande il termine di destra bTλ della disuguaglianza (11.3), cioe si puo massimizzarela quantita bTλ al variare del vettore λ ∈ IRm, tra tutti i vettori che soddisfano ATλ = c, λ ≥ 0.Piu formalmente si puo cercare la soluzione del problema

max bTλ

ATλ = cλ ≥ 0

(11.4)

Si tratta di un problema di PL in forma standard (e sufficiente cambiare verso all’ottimizzazioneda max a min). La coppia di problemi di Programmazione Lineare (PL) e (PL-ST) viene dettaprimale-duale.

146

Page 150: Dispense del corso RICERCA OPERATIVA

(Problema primale e duale)

Il problemamin cTx

Ax ≥ b(11.5)

e il problemamax bTλ

ATλ = cλ ≥ 0

(11.6)

costituiscono una coppia primale-duale di Programmazione Lineare.

Vedremo nel seguito che, in maniera simmetrica, il problema (11.5) risultera il problema dualedel problema (11.6). La coppia primale (P) - duale (D) costituita dai problemi (11.5) e (11.6)e solo una possibile coppia primale-duale. La relazione tra i valori delle funzioni obiettivodel problema primale e duale in un qualunque punto ammissibile primale-duale che abbiamoricavato in relazione alla coppia primale-duale (11.5) e (11.6) puo essere generalizzato ad unaqualunque coppia primale-duale (P)-(D) e costituisce un risultato noto come Teorema delladualita debole.

Teorema 11.1.2 (Teorema della Dualita debole) Sia data una coppia primale (P) - duale(D) di problemi di programmazione lineare. Per ogni soluzione ammissibile x del problema diPL primale (P) ed ogni soluzione ammissibile λ del problema di PL duale (D) si ha

bT λ ≤ cT x

cioe il valore della funzione obiettivo duale in λ e minore o uguale del valore della fuzioneobiettivo primale in x.

Osserviamo ora che la condizione di complementarita (iv) del Teorema 11.1.1 puo esserescritta in modo equivalente utilizzando la condizione (ii). In particolare possiamo scrivere(ricordando che (ATλ∗)T = λ∗TA)

0(iv)= λ∗T (b−Ax∗) = λ∗T b− λ∗TAx∗ (ii)

= λ∗T b− x∗T c.

Possiamo quindi scrivere le condizioni necessarie e sufficienti di KKT in una forma equivalentee piu diffusamente utilizzata come condizioni di ottimo per la Programmazione Lineare.

147

Page 151: Dispense del corso RICERCA OPERATIVA

(Condizioni necessarie e sufficienti di ottimo per (PL))

Un punto x∗ e minimo globale del problema di Programmazione Lineare

min cTx

Ax ≥ b(PL)

se e solo se esiste λ∗ ∈ IRm tale che valgano le condizioni:

(i) Ax∗ ≥ b,

(ii) c = ATλ∗,

(iii) λ∗ ≥ 0,

(iv) bTλ∗ = cTx∗.

E possibile dimostrare che il valore de i moltiplicatori λ∗ del teorema 11.1.1 sono la soluzioneottima del problema (11.4). In effetti le condizioni necessarie e sufficienti di minimo globaleper (11.6) sono le stesse condizioni per il problema (11.5). Questa affermazione costituisce ilteorema della Dualita forte per la PL.

Teorema 11.1.3 (Teorema della Dualita forte) Il problema di PL (11.5) ammette min-imo x∗ ∈ IRn se e solo se il problema duale (11.6) ammette minimo λ∗ ∈ IRm e risulta

cTx⋆ = bTλ⋆.

Dimostrazione. La dimostrazione consiste nel far vedere che le condizioni di ottimo del prob-lema primale coincidono con le condizioni di ottimo per il problema duale. Per quanto riguardail problema primale (11.5) abbiamo gia dimostrato che le condizioni di ottimo richiedono cheesista un moltiplicatore λ∗ ∈ IRm tale che

(i) Ax∗ ≥ b,

(ii) c = ATλ∗,

(iii) λ∗ ≥ 0,

(iv) bTλ∗ = cTx∗.

Dimostriamo ora che queste condizioni sono effettivamente anche condizioni necessarie e suf-ficienti di ottimo per il problema duale (11.4). Si utilizza il teorema 9.2.7. Osserviamo cheil problema duale (11.4) e in forma di massimizzazione e che e definito nello spazio IRm. As-sociamo agli n vincoli di uguaglianza ATλ = c i moltiplicatori z ∈ IRn e ai vincoli λ ≥ 0 imoltiplicatori v ∈ IRm. La funzione Lagrangiana e dunque

L(λ, z, v) = −bTλ+ zT (ATλ− c)− vTλ.

Per il teorema 9.2.7 λ∗ e minimo globale del problema (11.4) se e solo se esistono dei vettoriz∗ ∈ IRn e v∗ ∈ IRm tali che

(a) ATλ∗ = c, λ∗ ≥ 0,

(b) −b+Az∗ − v∗ = 0,

148

Page 152: Dispense del corso RICERCA OPERATIVA

(c) v∗ ≥ 0,

(d) v∗Tλ∗ = 0.

La condizione (a) fornisce immediatamente le (i) e (ii).Dalla condizione (b) si puo ricavare v∗ e si ottiene

−b+Az∗ = v∗.

Imponendo la (c) v∗ ≥ 0 si ottiene−b+Az∗ ≥ 0

Sostituendo in (d) si ha poi

0 = v∗Tλ∗ = (−b+Az∗)Tλ∗ = −bTλ∗ + z∗TATλ∗ = −bTλ∗ + z∗T c

Identificando z∗ = x∗ si hanno dunque anche la (iii) e (iv). Possiamo quindi concludere che lecondizioni necessarie e sufficienti di ottimo per i problemi di Programmazione Lineare (11.5) e(11.6) sono le stesse e richiedono l’ammissibilita primale e duale e l’uguaglianza dei valori dellefunzioni obiettivo.

E evidente la forte relazione che esiste tra i due problemi di Programmazione Lineare (11.5)e (11.6) e dunque le condizioni di ottimalita sono spesso riportate in riferimento alla coppiaprimale–duale (PL) e (PL-ST).

Condizioni di OttimalitaSiano dati x ∈ IRn e λ ∈ IRm. Allora x e λ sono soluzioni ottime rispettivamente per la coppia

(PL)min cTx

Ax ≥ b

max bTλ

ATλ = cλ ≥ 0

(PL− ST )

se e solo se valgono le seguenti condizioni

(i) Ax ≥ b, (ammissibilita primale)

(ii) AT λ = c, λ ≥ 0 (ammissibilita duale);

(iii) cT x = bT λ (coincidenza dei valori delle funzioni obiettivo).

La costruzione del problema duale a partire da un qualsiasi problema di PL e rimandata nelprossimo paragrafo.Il teorema della dualita debole e il teorema della dualita forte che abbiamo ricavato per lacoppia primale-duale (PL) e (PL-ST) possono essere generalizzati ad una qualunque coppiaprimale-duale (P)-(D) e costituiscono i risultati fondamentali della teoria della dualita.

Teorema 11.1.4 (Teorema della Dualita Forte) Sia data una coppia primale (P) - duale(D) di problemi di programmazione lineare. Il problema primale (P) ammette una soluzioneottima x⋆ se e solo se il problema duale (D) ammette una soluzione ottima λ⋆. Inoltre i valoridelle funzioni obiettivo dei due problemi all’ottimo sono uguali cioe risulta

cTx⋆ = bTλ⋆.

149

Page 153: Dispense del corso RICERCA OPERATIVA

Ricordando inoltre che x∗ e un minimo del problema (PL), e quindi risulta cTx∗ ≤ cTx perogni x tale che Ax ≥ b, possiamo affermare:

(Limitazione superiore ed inferiore per il valore ottimo del problema (PL))

Sia x∗ un minimo globale del problema di Programmazione Lineare (PL). Per ogni (x, λ) chesoddisfa Ax ≥ b, λ ≥ 0, ATλ = c, risulta

bT λ ≤ cTx∗ ≤ cT x.

Analogamente per il problema in forma standard possiamo dare una limitazione inferiore esuperiore al valore ottimo bTλ∗. Infatti, presa una qualunque coppia (x, λ) che soddisfa (11.2),si puo scrivere

bTλ(ATλ=c)

= bTλ+ xT (c−ATλ)

= cTx+ λT (b−Ax)

(λ≥0, b≤Ax)

≤ cTx.

Possiamo allora affermare:

(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 λ ≤ bTλ∗ ≤ cT x.

Dal teorema 11.1.2 si ottiene il seguente corollario.

Corollario 11.1.5 Se x e una soluzione ammissibile del problema primale (P) e λ una soluzioneammissibile del problema duale (D) tali che

cT x = bT λ (11.7)

allora x e λ sono soluzioni ottime rispettivamente per il problema primale (P) e per il problemaduale (D).

Utilizzando il teorema della dualita debole possiamo anche derivare delle condizioni diillimitatezza di un problema di PL. Vale in particolare questo risultato.

Teorema 11.1.6 (Condizione di illimitatezza del primale) Se il problema primale (P) eillimitato (inferiormente) allora il problema duale (D) e inammissibile. Viceversa se il problemaduale (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-missibile, cioe che esista una soluzione ammissibile λ del problema duale (D). Allora, per ilTeorema 11.1.2 (Teorema della Dualita debole), risulta cTx ≥ bT λ per ogni soluzione am-missibile x del problema primale (P). Ma questo contraddice l’ipotesi che (P) sia illimitatoinferiormente. Analogamente si pu procedere con il viceversa.

150

Page 154: Dispense del corso RICERCA OPERATIVA

Il Teorema Fondamentale della PL (cfr. Teorema 10.2.2) afferma che per un problema diPL possiamo verificarsi solo tre possibili casi: il problema ammette soluzione ottima, oppure eillimitato oppure e inammissibile.

Sulla base dei risultati fino ad ora esaminati si evince che data un coppia primale–duale diproblemi di Programmazione Lineare possono verificarsi solo le possibilita riportate schemati-camente nella tabella che segue.

DUALE

ottimo finito illimitato inammissibilesuperior.

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 definita nel paragrafo precedente e solo una delle possibilecoppie primali-duali di problemi di Programmazione Lineare. Dato un qualunqur problema diPL, utilizzando le condizioni di ottimalita e possibile costruire il problema duale corrispondente.E pero possibile definire delle regole di “costruzione automatica” che consente di scrivere ilproblema duale in forma rapida utilizzando alcuni accorgimenti.

Si consideri un problema Programmazione Lineare scritto nella forma piu generale cioe

min cT1 y + cT2 zCy +Dz = hEy + Fz ≥ gy ≥ 0

(11.8)

in cui le variabili sono (y, z)T ∈ IRn suddivise in y ∈ IRn1 e z ∈ IRn2 con n = n1 + n2.Corrispondentemente abbiamo c1 ∈ IRn1 , c2 ∈ IRn2 . Le variabili y ≥ 0 mentre le variabili z nonsono vincolate in segno.

Le matrici C,D,E, F sono rispettivamente di dimensione: C matrice p × n1, D matricep × n2, E matrice q × n1, F matrice q × n2. Dunque il problema ha p vincoli di uguaglianzaespressi da Cy +Dz = h con h ∈ IRp e q vincoli di disuguaglianza Ey + Fz ≥ g con g ∈ IRq.

La notazione in cui e scritto questo generico problema di Programmazione Lineare (11.8) etale da evidenziare separatamente gli elementi che intervengono nella formulazione: le variabili

151

Page 155: Dispense del corso RICERCA OPERATIVA

sono partizionate nella variabili y vincolate in segno e z non vincolate in segno e corrispon-dentemente anche i coefficienti di costo della funzione obiettivo sono partizionati in c1 e c2; ivincoli sono scritti suddividendo quelli di uguaglianza (=) e quelli di disuguaglianza (≥ 0).

Osservazione importante

Nella definzione di regole per la costruzione del problema duale di un generico problema diPL e essenziale mettere il problema nella forma indicata, con particolare attenzione al “verso”dell’ottimizzazione, cioe min o max, e al “verso” dei vincoli di disuguaglianza che corriponden-temente devono essere nella forma ≥ o ≤.

Per costruire il problema duale del problema (11.8) e sufficiente riportarsi alla forma delproblema (PL) con soli vincoli di disuguaglianza . A tale scopo riscriviamo il problema (11.8)nella forma equivalente

min cT1 y + cT2 zCy +Dz ≥ h−Cy −Dz ≥ −hEy + Fz ≥ gy ≥ 0

ovvero in forma matriciale

min

(c1c2

)T (zy

)

C D−C −DE FIn1 0

(yz

)≥

h−hg0

,

dove In1 e la matrice identita di ordine n1. Quindi il problema (11.8) e stato ricondotto nellaforma (PL) in cui

A =

C D−C −DE FIn1 0

b =

h−hg0

c =

(c1c2

)

Siamo quindi in grado di scrivere il duale di questo problema nella forma (PL-ST)

max bTλ

ATλ = cλ ≥ 0

in cui

AT =

(C −C E In1

D −D F 0

)e il vettore delle variabili duali si puo decomporre in λ = (u, v, w, t)T ∈ IRm = IR2p+q+n1 . Ilproblema duale si scrive in forma matriciale

152

Page 156: Dispense del corso RICERCA OPERATIVA

max

h−hg0

T

uvwt

(C −C E In1

D −D F 0

)uvwt

=

(c1c2

)u, v, w, t ≥ 0.

Sviluppando si ottiene

max hTu− hT v + gTwCTu− CT v + ETw + In1t = c1DTu−DT v + FTw = c2u ≥ 0, v ≥ 0, w ≥ 0, t ≥ 0

che e equivalente a

max hT (u− v) + gTwCT (u− v) + ETw + t = c1DT (u− v) + FTw = c2u ≥ 0, v ≥ 0, w ≥ 0, t ≥ 0.

Effettuando il cambio di variabili u− v = µ si ottiene il seguente problema

max hTµ+ gTwCTµ+ ETw + t = c1DTµ+ FTw = c2w ≥ 0, z ≥ 0.

Eliminando la variabile t utilizzando il primo vincolo t = d−CTµ−ETw possiamo ancorascrivere

max hTµ+ gTwCTµ+ ETw ≤ c1DTµ+ FTw = c2w ≥ 0

(11.9)

nelle variabili (µ,w) ∈ IRq × IRp, con µ non vincolata in segno e w ≥ 0.Il problema (11.9) e il problema duale del problema (11.8) che viene detto problema primale.

Osservazione importante

Le variabili (x, y) sono dette variabili primali e corrispondono ai moltiplicatori dei vincoli linearidi tipo generale del problema duale. Le variabili (µ,w) sono dette variabili duali e corrispondonoai moltiplicatori dei vincoli lineari di tipo generale del problema primale.

I due problemi costituiscono la generica coppia coppia primale–duale.

(P )

min cT1 y + cT2 zCz +Dy = hEz + Fy ≥ gy ≥ 0

max hTµ+ gT wCTµ+ ETw ≤ c1DTµ+ FTw = c2w ≥ 0.

(D)

Dall’osservazione dei due problemi si deducono facilmente le proprieta fondamentali di unacoppia primale–duale; innanzitutto un problema e di minimizzazione mentre l’altro e di mas-simizzazione. Inoltre poiche la matrice dei coefficienti dei vincoli di un problema si ottiene

153

Page 157: Dispense del corso RICERCA OPERATIVA

trasponendo quella dell’altro, si ha che ad ogni variabile di un problema corrisponde un vincolonell’altro. Si osserva inoltre uno scambio tra i termini noti di un problema e i coefficienti dellafunzione obiettivo dell’altro.

Queste proprieta possono essere cosı schematicamente riassunte:

• il problema duale di un problema di minimizzazione e un problema di massimizzazionee simmetricamente, il problema duale di un problema di massimizzazione e un problemadi minimizzazione;

• ad ogni vincolo di uguaglianza del problema primale e associata una variabile nel problemaduale non vincolata in segno;

• ad ogni vincolo di disuguaglianza (di maggiore o uguale) del problema primale e associatauna variabile nel problema duale vincolata in segno;

• ad ogni variabile vincolata in segno del problema primale e associato un vincolo di disug-uaglianza (≤ 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 diuguaglianza 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 DUALE

min cTx max bTu

= bi, i ∈ I ui, i ∈ I, libereVINCOLI VARIABILI

≥ bi, i ∈ J ui, i ∈ J , ui ≥ 0

xj ≥ 0, j ∈ M ≤ cj , j ∈ MVARIABILI VINCOLI

xj , j ∈ N libere = cj , j ∈ N

Esempio 11.2.1 Si consideri il seguente problema di Programmazione Lineare

max 4x1 + 3x2 + 2x3

x1 + 2x2 + 3x3 ≤ 82x1 − x3 ≤ 73x1 + 4x2 − x3 ≤ 5x2 + x3 ≤ 6x2 ≥ 0

154

Page 158: Dispense del corso RICERCA OPERATIVA

Il problema duale e il seguente problema di minimizzazione

min 8u1 + 7u2 + 5u3 + 6u4

u1 + 2u2 + 3u3 = 42u1 + 4u3 + u4 ≥ 33u1 − u2 − u3 − u4 = 2u1 ≥ 0, u2 ≥ 0, u3 ≥ 0, u4 ≥ 0.

Esempio 11.2.2 Si consideri il seguente problema di Programmazione Lineare

min 2x1 − 3x2 + x3

3x1 + x2 + 5x3 ≥ 7x1 + x2 − 6x3 ≤ 94x1 − x2 − 2x3 = 8x1 ≥ 0, x2 ≥ 0.

Dopo aver riscritto il secondo vincolo come −x1 − x2 + 6x3 ≥ −9 si puo formulare facilmenteil problema duale associato

max 7u1 − 9u2 + 8u3

3u1 − u2 + 4u3 ≤ 2u1 − u2 − u3 ≤ −3v5u1 + 6u2 − 2u3 = 1u1 ≥ 0, u2 ≥ 0.

Esempio 11.2.3 Si consideri il problema di Programmazione Lineare

min x1 + 3x2

x1 + 4x2 ≥ 245x1 + x2 ≥ 25x1 ≥ 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 problemaduale

max 24u1 + 25u2

u1 + 5u2 ≤ 14u1 + u2 ≤ 3u1 ≥ 0, u2 ≥ 0;

si ricava facilmente (geometricamente) che, in accordo con quanto previsto dal Teorema della

Dualita Forte, anche questo problema ammette soluzione ottima nel punto (u1, u2) =

(14

19,1

19

)e il valore ottimo della funzione obiettivo vale 19.

155

Page 159: Dispense del corso RICERCA OPERATIVA

Esempio 11.2.4 Si consideri il problema di Programmazione Lineare

max 2x1 + 3x2

−2x1 + x2 ≤ 3− 1

2x1 + x2 ≤ 6x1 ≥ 0, x2 ≥ 0.

Geometricamente si ricava che il problema e illimitato superiormente. Quindi, per l’analisiteorica vista deve risultare che il suo duale e inammissibile. E infatti se si considera il problemaduale associato

min 3u1 + 6u2

−2u1 − 12u2 ≥ 2

u1 + u2 ≥ 3u1 ≥ 0, u2 ≥ 0

si vede facilmente che questo problema non ammette soluzioni ammissibili.

11.3 Il problema di Kanpsack continuo

Utilizzando la teoria della dualita, determiniamo la soluzione ottima e il valore ottimo dellafunzione obiettivo del seguente problema di Knapsack continuo (non limitato).

max cTxaTx ≤ b,x ≥ 0

in cui x, a, c sono vettori di IRn, ci > 0 e 0 < ai < b per i = 1, . . . , n.

Il problema duale ha una sola variabile y ∈ IR ed e

min byaiy ≥ ci, i = 1, . . . , ny ≥ 0

La soluzione di questo problema e banale. Indichiamo con

ckak

= max1≤i≤n

ciai

e sia Ik =

i :

ciai

=ckak

l’insieme degli indici per cui si raggiunge il massimo. Un vettore y

e ammissibile duale se e solo se soddisfa y ≥ ckak

. Poiche si tratta di un problema di minimiz-

zazione, la soluzione ottima duale e y∗ =ckak

> 0.

La soluzione ottima x∗ deve soddisfare le condizioni di complementarita:

x∗i (aiy

∗ − ci) = 0 i = 1, . . . , ny∗(b− aTx∗) = 0

156

Page 160: Dispense del corso RICERCA OPERATIVA

Per ogni i /∈ Ik, si ha, dalla prima delle equazioni precedenti, x∗i = 0. Inoltre, dalla seconda, si

ha aTx∗ = b. Evidenziando le variabili in Ik si ottiene∑i∈Ik

aix∗i = b.

Se Ik = k, allora la soluzione ottima e unica e vale

x∗k =

b

ak,

x∗i = 0, per ogni i = k.

Altrimenti (se |Ik| ≥ 2) la soluzione del problema di knapsack non e unica; ogni soluzione chesoddisfa il vincolo

∑i∈Ik

aix∗i = b e ottima. Ad esempio, ogni soluzione del tipo

x∗j =

b

aj, per un j ∈ Ik

x∗i = 0, per ogni i = j

e ottima.

Sia dato il seguente problema di Knapsack continuo (limitato).

max cTxaTx ≤ b,0 ≤ x ≤ 1

in cui x, a, c sono vettori di IRn, ci > 0 e 0 < ai < b per i = 1, . . . , n e si assuma che

c1a1

>c2a2

> . . . >cnan

.

Utilizzando la teoria della dualita, determinare la soluzione ottima e il valore ottimo dellafunzione obiettivo.

Soluzione. Analogamente all’esercizio precedente scriviamo il problema duale di

max cTx(λ) aTx ≤ b,(zi) x ≤ 1

x ≥ 0

che ha n+ 1 variabili, y ∈ IR e z ∈ IRn,

min by + eT zaiy + zi ≥ ci, i = 1, . . . , ny ≥ 0, zi ≥ 0 i = 1, . . . , n

Nelle ipotesi poste il problema primale e non vuoto e limitato. Esiste quindi una soluzioneottima primale x∗ e una soluzione ottima duale y∗, z∗ che soddisfano le condizioni di comple-mentarita:

x∗i (aiy

∗ + z∗i − ci) = 0 i = 1, . . . , ny∗(b− aTx∗) = 0z∗i (1− x∗

i ) = 0

157

Page 161: Dispense del corso RICERCA OPERATIVA

Mostriamo innnanzitutto che, nelle ipotesi poste, esiste un solo k ∈ 1, . . . , n tale che x∗k ∈

(0, 1) (per cui cioe x∗k e frazionaria).

Infatti sia x∗k ∈ (0, 1), per le condizioni di complementarita risulta z∗k = 0 e aky

∗ − ck = 0, cioe

y∗ =ckak

. Se esistesse un altro indice h ∈ 1, . . . , n tale che x∗h ∈ (0, 1), questo implicherebbe

ckak

=chah

, che e assurdo perche abbiamo supposto che i rapporti peso-ingombro fossero ordinati

in modo strettamente decrescente.1 Sia quindi x∗k ∈ (0, 1). Allora y∗ =

ckak

= 0 e quindi dalle

condizioni di complementarita deve risultare aTx∗ = b.Partizioniamo gli indici 1, . . . , n \ k in due insiemi I1 = i : x∗

i = 1 e I0 = i : x∗i = 0.

Allora possiamo scrivere∑

i∈I1aix

∗i +

∑i∈I0

aix∗i + akx

∗k = b, da cui si ottiene

x∗k =

b−∑

i∈I1ai

ak.

Possiamo ora dimostrare che risulta x∗i = 1 per i < k e x∗

i = 0 per i > k. L’indice k vienechiamato indice critico proprio perche rappresenta l’ “oggetto” (attivita, progetto o simili) ilcui inserimento determina la violazione della capacita b.Dimostriamo quindi che

I1 = 1, . . . , k − 1 I0 = k + 1, . . . , n.

Sia x∗i = 1, allora per le condizioni di complementarita risulta z∗i = ci − aiy

∗, ma z∗i ≥ 0 per

l’ammissibilita duale e quindi otteniamo y∗ =ckak

≤ ciai

che, nelle ipotesi di ordinamento dei

coefficienti, vale solo se i < k. D’altra parte, se x∗i = 0 risulta z∗i = 0 e per l’ammissibilita duale

aiy∗ − ci ≥ 0, cioe y∗ =

ckak

≥ ciai

che vale solo se i > k.

11.3.1 Analisi di sensitivita alla variazione dei dati

Nei modelli reali le variabili (primali) possono rappresentare, ad esempio, livelli di produzionee i coefficienti di costo possono essere associati ai profitti ricavati dalla vendita dei prodotti.Quindi la funzione obiettivo di un problema primale indica direttamente come un aumento dellaproduzione puo influenzare il profitto. Sempre in relazione, ad esempio, ad un modello per lapianificazione della produzione, i vincoli di un problema (primale) possono rappresentare unalimitazione dovuta alla limitata disponibilita delle risorse; ora, un aumento della disponibilitadelle risorse puo consentire un aumento della produzione e quindi anche del profitto, ma questarelazione tra aumento della disponibilita delle risorse e aumento del profitto non si deduce facil-mente dal problema formulato (il problema primale). Uno dei possibili usi della dualita e quellodi rendere esplicito l’effetto dei cambiamenti nei vincoli (ad esempio in quelli di disponibilita dirisorse) sul valore della funzione obiettivo.

L’analisi della sensitivita si occupa proprio di stabilire come si modifica la soluzione ottimadi un modello lineare in conseguenza di variazioni dei dati. Un ruolo fondamentale in questaanalisi e giocato dai cosidetti prezzi ombra, che, misurano i “costi” impliciti associati ai vincoli.Come vedremo, i prezzi ombra sono nient’altro che le variabili duali.

1Questa ipotesi serve solo per semplificare la trattazione del problema. Nel caso di ordinamento non

crescentec1a1

>c2a2

> . . . >cnan

si puo procedere come nell’esercizio precedente (vedi anche §??).

158

Page 162: Dispense del corso RICERCA OPERATIVA

u1

u2

SD

k=0

k=15

x1

x2

SP

k=0

k=15

Figura 11.1: Soluzione grafica della coppia primale duale.

11.3.2 Interpretazione geometrica della variazione dei dati sui prob-lemi primale duale

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

(P )

max 2x1 + 6x2

x1 + 2x2 ≤ 5x1 + x2 ≤ 4x1, x2 ≥ 0

min 5u1 + 4u2

u1 + u2 ≥ 22u1 + u2 ≥ 6u1, u2 ≥ 0

(D)

Supponiamo che il problema primale rappresenti un semplice problema di produzione incui x1, x2 rappresentano livelli di attivita produttiva e in vincoli corrispondano a due risorselimitate.La soluzione grafica dei problemi (P) e (D) e riportata in Figura 11.1.

Il problema primale ha unica soluzione x∗ = (0, 5/2)T , il duale ammette l’unica soluzioneottima u∗ = (3, 0)T .Si osserva geometricamente (ed e ovvio anche dal valore delle variabili duali u∗) che in x∗ eattivo un solo vincolo del problema primale, il primo. Questo significa che il livello di produzioneottima corrisponde ad utilizzare completamente la prima risorsa (x∗

1 + 2x∗2 = 5), mentre la

seconda risorsa e in eccesso (x∗1 + x∗

2 = 2, 5 < 4). Inoltre il livello di produzione ottima ponex∗1 = 0 che significa che il prodotto rappresentato da x1 non e prodotto.

Ci si possono porre allora due diverse domande

159

Page 163: Dispense del corso RICERCA OPERATIVA

1. conviene acquisire una quantita maggiore di risorsa relativa al primo vincolo ? Quanta e aquale prezzo ?

2. quando diventa conveniente produrre anche il prodotto x1 ?

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

Cambiamenti nei termini noti dei vincoli. Acquisire una quantita maggiore di risorsarelativa al primo vincolo significa incrementare il r.h.s del vincolo da 5 a 5 + δ con δ ≥ 0. Daun punto di vista analitico i due problemi (P) e (D) diventano

(P )δ

max 2x1 + 6x2

x1 + 2x2 ≤ 5 + δx1 + x2 ≤ 4x1, x2 ≥ 0

min (5 + δ)u1 + 4u2

u1 + u2 ≥ 22u1 + u2 ≥ 6u1, u2 ≥ 0

(D)δ

Geometricamente un aumento di δ del r.h.s. del primo vincolo, corrisponde a spostare ilvincolo “verso l’alto”. La situazione e rappresentata geometricamente in Figura 11.2, in rossole variazioni. E evidente che la soluzione ottima si sposta nel punto x∗

δ = (0, 5+δ2 )T di valore

cTδ x∗δ = 6 (5+δ)

2 = cTx∗ + 3δ. L’aumento nella funzione obiettivo e quindi pari a 3δ. Il massimovalore che puo assumere δ corrisponde al valore per cui il vincolo x1 + 2x2 ≤ 5 + δ passa per ilpunto (0, 4)T , ovvero δ = 3.Per δ > 3, il primo vincolo non gioca piu alcun ruolo nella definizione della regione ammissibilee la risorsa che diventa vincolante e la seconda.

Nel problema duale, un variazione di δ corrisponde ad una variazione del coefficiente an-golare 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 Figura11.2 per valore = 0. Le curve di livello di questa funzione sono parallele al secondo vincolo delproblema duale. La soluzione ottima del problema duale (D)δ rimane la soluzione u∗ = (3, 0)T

per δ ≤ 3. Poiche la soluzione ottima u∗δ = u∗ il valore cTδ u

∗δ = (5 + δ)3 = 5u∗

1 + δu∗1. La

variazione del valore ottimo e 3δ pari a quanto determinato nel caso primale.Il valore 3 = u∗

1 rappresenta anche quanto sono disposto a pagare al massimo un’unita in piudi 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 fin qui nella seguente affermazione

L’aumento della prima risorsa (r.h.s. primo vincolo) di un valore δ produce un aumento dellafunzione obiettivo pari a u∗

1δ = 3δ purche δ ≤ 3.Il valore ottimo della variabile duale u∗

1 rappresenta il massimo costo affrontabile per l’aumentodi una unita di risorsa.

Il valore u∗1 = 3 e detto prezzo ombra relativo alla prima risorsa (al primo vincolo). L’intervallo

0 ≤ δ ≤ 3 e l’intervallo entro cui la previsione sulla variazione della funzione obiettivo e valida.(In realta si puo prevedere anche un decremento −δ).

160

Page 164: Dispense del corso RICERCA OPERATIVA

u1

u2

SD

x1

x2

SP

k=15+3δ

(5+δ)/2

δmax

=5+δ=5

δmax

Figura 11.2: Soluzione grafica della coppia primale duale al variare di δ

11.3.3 Interpretazione economica della dualita e prezzi ombra

Come visto nell’esempio, in generale, le variabili duali (i prezzi ombra) rappresentano l’effettodi cambiamenti nel termine noto dei vincoli. Si consideri, infatti un generico problema diProgrammazione Lineare (in forma standard) (P), il suo duale (D) ed inoltre si consideri ilproblema (P∆) ottenuto modificando il termine noto da b a b+∆ (con ∆ = (δ1 . . . , δm)T ∈ IRm)e il corrispondente problema duale (D∆):

(P)

min cTxAx = bx ≥ 0

(D)

max bTuATu ≤ c

(P∆)

min cTxAx = b+∆x ≥ 0

(D∆)

max(b+∆)TuATu ≤ c

Siano x⋆ e u⋆ rispettivamente la soluzione ottima del problema (P) e del problema (D). Sianoinoltre x⋆(∆) e u⋆(∆) rispettivamente la soluzione del problema (P∆) e del problema (D∆)

Dalle formulazioni di questi problemi si possono facilmente dedurre due osservazioni:

161

Page 165: Dispense del corso RICERCA OPERATIVA

• la variazione del termine noto b nel problema primale si riflette in un cambiamento deicoefficienti della funzione obiettivo del problema duale;

• la regione ammissibile del problema (D) e del problema (D∆) sono uguali; da questosegue che se u⋆ ∈ IRm e soluzione ottima del problema (D) allora u⋆ e ammissibile per ilproblema (D∆), ma non necessariamente e ottima per (D∆).

Inoltre per il Teorema della dualita forte applicato alla coppia primale–duale (P)–(D) deveessere

cTx⋆ = bTu⋆, (11.10)

mentre, sempre per il Teorema della dualita forte ma applicato alla coppia primale–duale (P∆)–(D∆) deve essere

cTx⋆(∆) = (b+∆)Tu⋆(∆). (11.11)

Se la soluzione ottima x⋆ soddisfa un’opportuna ipotesi (cioe che in x⋆ non ci siano piudi n vincoli attivi) e se il vettore ∆ ha componenti “sufficientemente” piccole allora si puodimostrare che:

u⋆(∆) = u⋆. (11.12)

Utilizzando la (11.10), la (11.11) e la (11.12) si ha:

cTx⋆(∆) = (b+∆)Tu∗(∆) = bTu⋆ +∆Tu⋆ = cTx⋆ +∆Tu⋆, (11.13)

che puo essere riscritta nella seguente forma:

cTx⋆(∆)− cTx⋆ = δ1u⋆1 + δ2u

⋆2 + . . .+ δmu⋆

m, (11.14)

dove ∆ = (δ1, . . . , δm)T .Dalla precedente relazione segue che una possibile interpretazione della variabile duale u⋆

i equella di essere un prezzo associato ad un incremento unitario del termine noto bi. Per questaragione le variabili duali u⋆

i , i = 1, . . . ,m, vengono denominate prezzi ombra.

Il prezzo ombra di un vincolo rappresenta la variazione del valore della funzione obiettivo quandoil r.h.s. del vincolo e aumentato di una unita, mentre tutti gli altri dati del problema sono fissati.

Sebbene la (11.12) (e di conseguenza la (11.14)) valga solamente sotto opportune ipotesi,in molte situazioni pratiche, le variabili duali u⋆

i , i = 1, . . . ,m, forniscono delle utili indicazionisu quale componente bi variare per migliorare il valore ottimo della funzione obiettivo.

Ricordiamo i principi generali che regolano l’uso dei prezzi ombra.

1. I prezzi ombra sono tanti quanti i vincoli lineari generali (esclusi i vincoli di non negativitasulle variabili).

2. l’unita di misura dei prezzi ombra e espressa in (unita di misura funzione obiettivo)/(unitamisura vincolo).

3. I prezzi ombra corrispondono al valore delle variabili duali (all’ottimo), ovvero ai molti-plicatori di KKT relativi alla soluzione ottima primale.

162

Page 166: Dispense del corso RICERCA OPERATIVA

11.4 Interpretazione della Dualita

Se un problema di Programmazione Lineare proviene da una precisa classe di problemi applica-tivi e dunque ha una struttura bene definita, il suo corrispondente duale si puo prestare adessere interpretato come problema applicativo diverso ma collegato al problema primale.

11.4.1 Il duale del problema di allocazione ottima di risorse

Si consideri nuovamente il semplice problema di allocazione ottima dell’Esempio 2.4.1 che erappresentato dal seguente problema di Programazione Lineare:

max (7x1 + 10x2)x1 + x2 ≤ 750x1 + 2x2 ≤ 1000x2 ≤ 400x1 ≥ 0, x2 ≥ 0.

(11.15)

Ricordiamo che le variabili x1 e x2 sono associate rispettivamente ai quantitativi di coloranteC1 e C2 da produrre e che la produzione avviene utilizzando tre preparati base P1, P2 e P3dei quali si ha una disponibilita massima rispettivamente pari a 750, 1000 e 400 ettogrammi.Supponiamo, ora di voler sottrarre preparati base dalla produzione dei coloranti per venderlidirettamente. Indichiamo con u1, u2 e u3 i prezzi associati rispettivamente alla vendita direttadi un ettogrammo di preparato base P1, P2 e P3. Supponendo di destinare tutti i preparatialla vendita diretta, il profitto che si otterrebbe sarebbe

750u1 + 1000u2 + 400u3. (11.16)

Naturalmente si vorra fare in modo che questa operazione di sottrazione dei preparati base dallaproduzione dei coloranti e vendita diretta risulti economicamente conveniente e quindi mentresi vuole minimizzare l’espressione (11.16) affinche i prezzi di vendita risultino competitivi sulmercato, si imporra che il profitto ottenuto vendendo direttamente i quantitativi di preparatobase necessario per ottenere un litro di colorante sia maggiore o uguale del profitto associatoalla vendita di un litro di colorante stesso; quindi, utilizzando i dati del problema riportati nellatabella dell’Esempio 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. Quindiil modello lineare che rappresenta l’operazione sopra descritta e il seguente:

min (750u1 + 1000u2 + 400u3)u1 + u2 ≥ 7u1 + 2u2 + u3 ≥ 10u1 ≥ 0, u2 ≥ 0, u3 ≥ 0.

Esaminando questo problema si vede immediatamente che esso rappresenta il problema dualedel problema dato (11.15).

163

Page 167: Dispense del corso RICERCA OPERATIVA

In generale, se si considera un generico problema di allocazione ottima di m risorse Ri,i = 1, . . . ,m con la possibilita di fabbricare n prodotti Pj, j = 1, . . . , n, come abbiamo giaesaminato nel capitolo precedente si puo formulare questo problema come

max cTxAx ≤ bx ≥ 0

(11.17)

dove ricordiamo x ∈ IRn e il vettore avente per componenti i livelli di produzione di ciascunodei prodotti, c ∈ IRn il vettore dei profitti netti e b ∈ IRm il vettore delle disponibilita massimadi ciascuna delle risorse.

Supponiamo ora di voler sottrarre risorse alla produzione per venderle direttamente e sianoui, i = 1, . . . ,m i prezzi unitari associati alla vendita dell’i-esima risorsa. Supponendo che perciascuna risorsa si voglia destinare alla vendita una quantita pari alla disponibilita massima diquella risorsa, si ottiene un profitto pari a

b1u1 + b2u2 + · · ·+ bmum.

Per rendere competitivi sul mercato i prezzi unitari ui da assegnare alle risorse vendute diret-tamente, si vogliono scegliere i valori piu bassi possibile per le ui, ma naturalmente, affinchequesta operazione di vendita diretta in luogo della fabbricazione dei prodotti risulti convenientesi deve imporre che il profitto ottenuto vendendo direttamente le risorse necessarie per fabbri-care un prodotto sia maggiore o uguale al profitto che si ricaverebbe dalla vendita del prodottofinito. Quindi per ogni prodotto, si deve imporre che valga

a11u1+ . . . +am1um ≥ c1a12u1+ . . . +am2um ≥ c2

... . . ....

...a1nu1+ . . . +amnum ≥ cn

con ui ≥ 0, i = 1, . . . ,m e dove le quantita aij rappresentano la quantita di risorsa Ri necessariaper fabbricare una unita di prodotto Pj.

Quindi il problema da risolvere puo essere scritto nella forma

min bTuATu ≥ cu ≥ 0

che e il problema duale del problema (11.17).

11.4.2 Il duale del problema di miscelazione.

Si consideri il problema di miscelazione dell’Esempio 3.3.1 che e rappresentato dal seguenteproblema di Programmazione Lineare:

min 400x1 + 600x2

140x1 ≥ 7020x1 + 10x2 ≥ 3025x1 + 50x2 ≥ 75x1 ≥ 0, x2 ≥ 0.

164

Page 168: Dispense del corso RICERCA OPERATIVA

Ricordiamo che le variabili x1 e x2 rappresentano le quantita di polpa di frutta e di dolcificanteda utilizzare nella produzione del succo di frutta che deve avere come requisito un contenutominimo di 70 mg di vitamina C, 30 mg di sali minerali e 75 grammi di zucchero. Supponiamo orache un’industria farmaceutica venda compresse di nutrimenti puri, cioe compresse di vitaminaC, di sali minerali e di zucchero e che vuole immettere queste compresse su un ipotetico mercatocome offerta sostitutiva al succo di frutta per l’acquisizione di vitamina C, di sali minerali e dizucchero. Naturalmente questa industria farmaceutica vuole massimizzare il profitto ricavatodalla vendita delle compresse, ma al tempo stesso deve dare un prezzo alle compresse tale daessere competitiva. Siano allora u1, u2 e u3 i prezzi di vendita rispettivamente di 1 mg divitamina C, di 1 mg di sali minerali e di 1 grammo di zucchero; supponendo che la vendita diquesti nutrimenti puri sia pari ai fabbisogni minimi (cioe a 70 mg di vitamina C, a 30 mg disali minerali e a 75 grammi di zucchero), l’espressione del profitto dell’industria farmaceuticache dovra essere massimizzata e

70u1 + 30u2 + 75u3.

Affinche i prezzi di vendita dei componenti puri in compresse fissati dall’industria siano concor-renziali, si deve imporre che il costo unitario dei nutrimenti puri sia minore o uguale al prezzoche si dovrebbe pagare per avere la stessa quantita di componente attraverso gli ingredienti delsucco di frutta, cioe dalla polpa di frutta e dal dolcificante. Quindi si devono imporre i seguentivincoli

140u1 + 20u2 + 25u3 ≤ 400

10u2 + 50u3 ≤ 600.

Inoltre dovra essere u1 ≥ 0, u2 ≥ 0, u3 ≥ 0.

Quindi il problema complessivo formulato dall’industria farmaceutica e

max 70u1 + 30u2 + 75u3

140u1 + 20u2 + 25u3 ≤ 40010u2 + 50u3 ≤ 600u1 ≥ 0, u2 ≥ 0, u3 ≥ 0

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 quantita aij di componente utile Ci, i = 1, . . . ,m.Come abbiamo gia esaminato nel capitolo precedente un problema di miscelazione di questotipo si puo formulare come

min cTxAx ≥ bx ≥ 0

(11.18)

dove ricordiamo che x ∈ IRn e il vettore avente per componenti le quantita di ciascuna sostanzada introdurre nella miscela, c ∈ IRn il vettore dei costi unitari delle sostanze, b ∈ IRm il vettoredei requisiti minimi di componenti utili da introdurre nella miscela, e A ∈ IRm×n la matrice icui elementi sono le aij .

Supponiamo ora che un’industria sia in grado di fornire componenti utili allo stato puro eche voglia immettere sul mercato questi componenti utili e siano ui, i = 1, . . . ,m i prezzi unitarida assegnare a ciascuno di essi. Supponendo che la richiesta del mercato sia pari ai fabbisogni

165

Page 169: Dispense del corso RICERCA OPERATIVA

minimi della miscela, cioe per ciascun componente pari a bi, il profitto totale dell’industria chevende i componenti utili allo stato puro e

b1u1 + b2u2 + · · ·+ bmum.

Inoltre, affinche i prezzi ui assegnati dall’industria ai componenti puri siano concorrenziali, sideve imporre che il costo dei componenti puri sia minore o uguale al prezzo che dovrebbe pagareper avere la stessa quantita di componente ottenuto attraverso le sostanze e quindi deve valere

m∑i=1

aijui ≤ cj , j = 1, . . . , n.

Inoltre si deve imporre ui ≥ 0, i = 1, . . . ,m.

Quindi il problema formulato si puo scrivere nella forma

max bTuATu ≤ cu ≥ 0

che e immediato verificare essere il problema duale del problema di miscelazione assegnato(11.18).

11.4.3 Il duale del problema dei trasporti

Si consideri un problema di trasporto che e rappresentato dal seguente problema di Program-mazione Lineare:

min(250x1 +100x2 +85x3 + 120y1+80y2 + 150y3)

x1 + x2 + x3 = 50y1 + y2 + y3 = 55

x1 + y1 = 30x2 + y2 = 40

x3 + y3 = 35

x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, y1 ≥ 0, y2 ≥ 0, y3 ≥ 0.

dove x1, x2, x3 rappresentano rispettivamente quantita di acqua da trasportare dal primostabilimento a tre impianti e y1, y2, y3 rappresentano rispettivamente la quantita di acqua datrasportare dal secondo stabilimento a tre impianti. Ricordiamo inoltre che la disponibilitagiornaliera 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 35ettolitri.

Supponiamo ora che una compagnia specializzata in trasporto di acqua (esterna all’industria)voglia proporsi all’industria di acque minerali per effettuare il trasporto dell’acqua dagli sta-bilimenti agli impianti. Naturalmente la compagnia di trasporti, per convincere l’industriadi acque minerali ad avvalersi del servizio di trasporto esterno, dovra proporre dei prezzi ditrasporto vantaggiosi. A tale scopo la compagnia dei trasporti propone all’industria di prele-vare un ettolitro di acqua da ciascuno dei due stabilimenti per un prezzo unitario (in migliaia

166

Page 170: Dispense del corso RICERCA OPERATIVA

di lire) rispettivamente pari a u1 e u2 e di consegnare un ettolitro di acqua a ciascuno dei treimpianti per un prezzo unitario (in migliaia di lire) rispettivamente pari a v1, v2 e v3. Quindi lacompagnia dei trasporti vorra massimizzare la funzione che fornisce il suo profitto complessivoche e data da

50u1 + 55u2 + 30v1 + 40v2 + 35v3.

Tuttavia affinche l’offerta della compagnia dei trasporti risulti vantaggiosa per l’industria delleacque minerali i prezzi del trasporto proposti dovranno risultare non superiori a quelli chel’industria avrebbe effettuando in proprio i trasporti stessi. Quindi dovra risultare

u1 + v1 ≤ 250

u1 + v2 ≤ 100

u1 + v3 ≤ 85

u2 + v1 ≤ 120

u2 + v2 ≤ 80

u2 + v3 ≤ 150.

Quindi, la compagnia dei trasporti dovra risolvere il problema

max (50u1 + 55u2 + 30v1 + 40v2 + 35v3)u1 +v1 ≤ 250u1 +v2 ≤ 100u1 +v3 ≤ 85

u2 +v1 ≤ 120u2 +v2 ≤ 80u2 +v3 ≤ 150

che si verifica immediatamente essere il problema duale del problema dei trasporti assegnato.

In generale, consideriamo ora un generico problema dei trasporti gia esaminato nel capitoloprecedente. Supponiamo che un’azienda voglia provvedere in proprio ad effettuare il trasportodi materiali e che quindi cerchi di risolvere il problema dei trasporti

min

m∑i=1

n∑j=1

cijxij

n∑

j=1

xij = ai i = 1, . . . ,m

m∑i=1

xij = bj j = 1, . . . , n

xij ≥ 0 i = 1, . . . , n; j = 1, . . . ,m

(11.19)

dove, ricordiamo, che le cij rappresentano il costo del trasporto dall’origine i alla destinazionej, le ai le disponibilita all’i-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 all’effettuazione dei trasporti in proprio; a tale scopo questa com-pagnia propone all’azienda di prelevare un’unita di prodotto dall’origine i per un prezzo unitario

167

Page 171: Dispense del corso RICERCA OPERATIVA

ui e di consegnare una unita di prodotto alla destinazione j per un prezzo unitario vj . Per as-sicurare che i suoi prezzi siano competitivi rispetto a quelli che l’azienda avrebbe effettuando itrasporti in proprio, la compagnia di trasporti deve fare sı che risulti

ui + vj ≤ cij

per ogni i = 1, . . . ,m e j = 1, . . . , n. D’altra parte la compagnia di trasporti vuole scegliere iprezzi da proporre u1, . . . , um e v1, . . . , vn in modo da massimizzare il suo profitto complessivo.Poiche le quantita ai e bj di prodotto rispettivamente disponibili all’origine i e richieste alladestinazione j sono note alla compagnia di trasporti, questa cerchera di massimizzare la funzione

max

m∑i=1

aiui +n∑

j=1

bjvj

.

Quindi il problema che la compagnia di trasporti formula per determinare quali prezzi ui e vjproporre all’azienda e il seguente

max

m∑i=1

aiui +

n∑j=1

bjvj

ui + vj ≤ cij i = 1, . . . ,m, j = 1, . . . , n

(11.20)

che e il problema duale del problema dei trasporti (11.19).

168

Page 172: Dispense del corso RICERCA OPERATIVA

Capitolo 12

Programmazione Lineare Intera

La Programmazione Lineare Intera (PLI) tratta il problema della minimizzazione (massimiz-zazione) di una funzione lineare di piu variabili, soggetta a vincoli di uguaglianza e disug-uaglianza lineari ed alla restrizione che una o piu variabili possano assumere soltanto valoriinteri. Si tratta dunque di problemi del tipo (PLI pura)

min cT xAx ≥ bx ∈ Zn;

o in cui solo alcune della variabili sono vincolate ad assumere valore intero (PLI mista):

min cT xAx ≥ bx1 ∈ Zn1 , x2 ∈ Rn2 ;

con x = (x1 x2) e n1 + n2 = n.Grazie alla generalita del modello, un grandissimo numero di problemi reali possono essere

rappresentati da modelli di Programmazione Intera. In generale, i modelli di ProgrammazioneLineare Intera sono adatti alle applicazioni caratterizzate dall’indivisibilita delle risorse e dallanecessita di scegliere tra un numero finito di alternative. Queste applicazioni includono problemioperativi quali la distribuzione di beni ed il sequenziamento delle attivita produttive; problemi dipianificazione quali la gestione ottima del portafoglio titoli e la localizzazione degli impianti edinfine problemi di progettazione quali il progetto di circuiti VLSI ed il progetto di sistemi auto-matici di produzione (robotica). Un problema di Ottimizzazione Combinatoria e un particolareproblema 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 finito di punti,in linea di principio potrebbe essere sempre possibile risolvere il problema di PLI calcolando ilvalore della funzione obiettivo in ogni punto ammissibile e scegliendo quello che la minimizza.Definiremo questo metodo Enumerazione Totale. Se la cardinalita dell’insieme ammissibiledi PLI e piccola allore l’enumerazione totale non solo e possibile, ma e certamente il modomigliore di risolvere un problema di PLI. Se, viceversa, la cardinalita dell’insieme delle soluzioniammissibili e molto grande, l’enumerazione totale diviene non proponibile (vedi anche l’esempiodovuto a Dantzig descritto nel paragrafo 1.2).

167

Page 173: Dispense del corso RICERCA OPERATIVA

Osserviamo che se abbiamo un problema di PLI con dieci variabili e supponiamo che ognunadi queste variabili possa assumere dieci valori diversi, il numero di possibili punti ammissibili edi 1010, cioe 10 miliardi. Questo semplice esempio mostra che l’enumerazione totale e raramenteutile nei casi pratici, dove spesso il numero di variabili intere e dell’ordine delle centinaia se nondelle migliaia.Le questioni teoriche poste da tali problemi e le tecniche usate per la loro soluzione hannocaratteristiche molto diverse da quelle relative ai problemi di ottimizzazione continua studiatinei precedenti capitoli. In generale la PLI e da un punto di vista algortimo piu difficile dellaPL anche nel caso binario.

Lo scopo di questo capitolo e quindi quello di dare alcune indicazioni sulle peculiarieta deiproblemi di Programmazione Lineare Intera (PLI) e studiare una classe di algoritmi per la lororisoluzione.

12.1 Formulazioni Classiche di Problemi Lineari Interi

In questo paragrafo vengono presentati esempi classici di problemi che possono essere formulaticome problemi di PLI.

Il primo uso delle variabili intere (binarie) che esamineremo e anche il piu naturale. Si suppongadi dover modellare il fatto che un dato evento possa verificarsi oppure no. La natura binariadel problema suggerisce immediatamente l’idea di modellare questa dicotomia per mezzo di unavariabile x che puo assumere solo valori 0, 1. In particolare, si porra x = 1 se l’evento si verificae x = 0 altrimenti. Successivamente vedremo come le variabili intere e le disequazioni che lecollegano possano essere usate come linguaggio formale per esprimere una serie di relazioni traeventi.

12.1.1 Knapsack (zaino) binario

Supponiamo di avere n progetti. Il j-esimo progetto, j = 1, . . . , n, ha un costo pari a aj edun valore pari a cj . Ciascun progetto scelto deve essere realizzato completamente e non eaccettata una realizzazione parziale del progetto. Infine esiste un ”budget” b disponibile perla realizzazione dei progetti. Il problema di scegliere un sottoinsieme dei progetti allo scopo dimassimizzare la somma dei valori senza superare il limite imposto dal ”budget” e il cosiddettoproblema di knapsack binario.

– Variabili. Per ogni progetto i = 1, . . . , n introduciamo le seguenti variabili binarie

xi = 1 se il progetto i e selezionato

0 altrimenti.

Il vincolo sul budget (spazio) e dunque∑n

j=1 ajxj ≤ b e il problema di scrive

maxn∑

j=1

cjxj

n∑

j=1

ajxj ≤ b

xj ∈ 0, 1 j = 1, . . . , n.

168

Page 174: Dispense del corso RICERCA OPERATIVA

In questo caso l’evento e costituito dalla effettuazione (o meno) del singolo progetto. In generale,questi problemi di scelta tra progetti possono avere piu vincoli (si pensi al caso in cui il ”budget”sia mensile e si voglia pianificare per piu di un mese); in tal caso il problema viene detto diknapsack multidimensionale.Un esempio di problema di knapsack e l’esempio 1.4.1 di Capital Budgeting nel Capitolo 1.

12.1.2 Assegnamento

Un generico problema di assegnamento consiste nel determinare il modo ottimale di assegnarelavori a persone o, piu in generale, di assegnare mezzi (persone, macchine, etc. ) ad attivita.Supponiamo che n persone P1,. . . ,Pn, debbano svolgere n lavori L1,. . . , Ln; ciascun lavorodeve essere svolto esattamente da una persona e ciascuna persona deve svolgere un lavoro.Naturalmente le persone hanno diversi livelli di esperienza, competenza ed abilita e quindi sipuo introdurre un costo dell’assegnamento della persona i al lavoro j; indichiamo tale costo concij e supponiamo che sia noto. Questo costo puo, ad esempio, essere interpretato come tempomedio impiegato dalla persona i ad eseguire il lavoro j. Il problema e quello di assegnare ilavori alle persone minimizzando il costo totale di realizzazione di tutti i lavori. Questo tipo diproblemi sorge in molte situazioni pratiche: esempi tipici sono i problemi di assegnamento delpersonale all’interno di una azienda e i problemi di assegnare determinati mezzi di trasporto adalcune particolari linee.Esaminiamo, ora una formulazione.

Formulazione.

– Variabili. Per ogni lavoro i e per ogni persona j, (i, j = 1, . . . , n) introduciamo le seguentivariabili binarie

xij = 1 se la persona i e assegnata al lavoro j

0 altrimenti.Si tratta di n2 variabili:

L1 · · · Lj · · · Ln

P1 x11 · · · x1j · · · x1n

......

......

Pi xi1 · · · xij · · · xin

......

......

Pn xn1 · · · xnj · · · xnn

– Funzione obiettivo. La funzione obiettivo da minimizzare sara data dal costo totale cioe dan∑

i=1

n∑

j=1

cijxij .

Naturalmente, se le cij anziche essere dei costi fossero i valori utili ricavati dall’assegnamentodella persona i al lavoro j, allora la funzione obiettivo andrebbe massimizzata.

– Vincoli. (Vincoli di assegnamento.) Poiche esattamente una persona deve essere assegnata allavoro j, allora si avranno i seguenti n vincoli

n∑

i=1

xij = 1 j = 1, . . . , n.

169

Page 175: Dispense del corso RICERCA OPERATIVA

Inoltre, poiche ciascuna persona deve essere assegnata ad una sola attivita, si avranno altri nvincoli

n∑

j=1

xij = 1 i = 1, . . . , n.

La formulazione completa sara, quindi, data da

min

n∑

i=1

n∑

j=1

cijxij

n∑

i=1

xij = 1

n∑

j=1

xij = 1

xij ∈ 0, 1, i, j = 1, . . . , n.

Osservazione 12.1.1 Nel seguito di questo capitolo si vedra che in effetti il problema di asseg-namento puo essere formulato rimuovendo il vincolo di interezza, cioe equivalentemente comeun problema di PL. Il vincolo xij ∈ 0, 1 corrisponde a 0 ≤ xij ≤ 1 con xij intero; rimuovereil vincolo di interezza corrisponde dunque al problema:

min

n∑

i=1

n∑

j=1

cijxij

n∑

i=1

xij = 1

n∑

j=1

xij = 1

0 ≤ xij ≤ 1, i, j = 1, . . . , n.

Esempio 12.1.2 In un Dipartimento universitario, sono attivati cinque corsi diversi che pos-sono essere tenuti da cinque professori. Ogni professore esprime delle preferenze sul corso chevorrebbe tenere, indicando un punteggio. A preferenza piu alta corrisponde un punteggio piualto. I punteggi sono riportati nella seguente tabella:

corso1 corso2 corso3 corso4 corso5insegnante1 7 5 4 4 5insegnante2 7 9 7 9 4insegnante3 4 6 5 8 5insegnante4 5 4 5 7 4insegnante5 4 5 5 8 9

Si vuole assegnare ciascun professore ad un corso cercando di massimizzare il valore mediointeso come media delle preferenze.

Formulazione– Variabili. Le variabili di decisione sono le variabili booleane:

170

Page 176: Dispense del corso RICERCA OPERATIVA

xij = 1 se l’insegnante i e assegnata al corso j

0 altrimenti.i, j = 1, . . . , 5.

– Funzione obiettivo. Indicando con cij il punteggio assegnato dall’insegnante i alla corso j, lafunzione obiettivo e il valore medio delle preferenze:

15

5∑

i=1

5∑

j=1

cijxij .

– Vincoli. I vincoli di assegnamento sono:

x11 + x12 + x13 + x14 + x15 = 1x21 + x22 + x23 + x24 + x25 = 1x31 + x32 + x33 + x34 + x35 = 1x41 + x42 + x43 + x44 + x45 = 1x51 + x52 + x53 + x54 + x55 = 1x11 + x21 + x31 + x41 + x51 = 1x12 + x22 + x32 + x42 + x52 = 1x13 + x23 + x33 + x43 + x53 = 1x14 + x24 + x34 + x44 + x54 = 1x15 + x25 + x35 + x45 + x55 = 1

Quindi, complessivamente il problema si scrive:

min5∑

i=1

5∑

j=1

cijxij

x11 + x12 + x13 + x14 + x15 = 1x21 + x22 + x23 + x24 + x25 = 1x31 + x32 + x33 + x34 + x35 = 1x41 + x42 + x43 + x44 + x45 = 1x51 + x52 + x53 + x54 + x55 = 1x11 + x21 + x31 + x41 + x51 = 1x12 + x22 + x32 + x42 + x52 = 1x13 + x23 + x33 + x43 + x53 = 1x14 + x24 + x34 + x44 + x54 = 1x15 + x25 + x35 + x45 + x55 = 10 ≤ xij ≤ 1 e xij intero∀ i, j

12.2 Uso di variabili booleane per modellare condizionilogiche

12.2.1 Problema del costo fisso.

Nei modelli di Programmazione Lineare le variabili di decisione rappresentano usualmente ilivelli ai quali le varie attivita vengono svolte e la funzione obiettivo da minimizzare e una

171

Page 177: Dispense del corso RICERCA OPERATIVA

funzione lineare di tali variabili. In molti problemi pratici, tuttavia, tale ipotesi non e giustificatain quanto il costo di una attivita, in funzione del livello cui essa viene svolta, puo avere unandamento come quello riportato in Figura 12.1.

costo

coeff. ang. c

x : livello dell'attività

f

Figura 12.1: Costo dell’attivita j.

In particolare, il costo dell’attivita j e zero se xj = 0 (cioe se l’attivita non e avviata) ed einvece uguale a fj + cjxj se xj > 0 con fj positivo. La funzione relativa all’attivita j e quindi

zj(x) =

0 se xj = 0fj + cjxj se xj > 0

Il valore fj e detto costo fisso dell’attivita j e deve essere pagato solamente se l’attivita jviene svolta ad un livello non nullo. Per esempio, supponiamo che la variabile xj rappresentila quantita di petrolio greggio che deve essere trasportata da un pozzo A ad una raffineria B.In questo caso, se il pozzo A non rifornisce la raffineria B il costo complessivo di trasporto eovviamente nullo. Se, al contrario, si decide di inviare una quantita non nulla xj di greggio daA a B, al costo di trasporto cjxj (proporzionale alla quantita trasferita) dovra essere sommatoil costo fisso di costruzione dell’oleodotto fj .Se indichiamo che Jf le attivita che prevedono un costo fisso, la funzione obiettivo puo esseregenericamente scritta come

z(x) =∑

j /∈Jf

cjxj +∑

j∈Jf

zj(x).

Chiaramente la funzione z(x) e discontinua nell’origine e quindi non e lineare. E formulazione“linearizzare” la funzione obiettivo introducendo, per ciascuna attivita, una variabile yj chevalga 1 quando xj > 0 e 0 quando xj = 0, cioe

yj = 0 se xj = 0

1 altrimenti

In questo modo la funzione obiettivo puo essere scritta

z(x) =n∑

j=1

cjxj +∑

j∈Jf

yjfj = cT x + fT y,

172

Page 178: Dispense del corso RICERCA OPERATIVA

dove y ∈ 0, 1|Jf | e il vettore le cui componente sono yj e z(x) e una funzione lineare. Ilproblema ha pero delle variabili binarie. Si deve inoltre imporre un vincolo che consenta dimodellare la condizioni logiche

xj > 0 ⇒ yj = 1xj = 0 ⇒ yj = 0

Osserviamo infatti che in assenza di tale vincolo e nell’ipotesi che fj ≥ 0, nella soluzine ottimail valore di yj sarebbe = 0 trattandosi di un problema di minimizzazione. Dunque la condizionexj = 0 ⇒ yj = 0 non necessita di essere imposta.

Se supponiamo di conoscere un limite superiore per la variabile xj , cioe un valore α positivomaggiore del piu grande valore che puo 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 (cioe yj = 1).

Il problema di costo fisso di PLI puo essere quindi formulato, assumendo che tutti i costifissi fj siano positivi, nel modo seguente:

(FC2) min z(x) = cT x + fT y

Ax = b

xj ≤ αyj , j ∈ Jf

x ≥ 0n

yj ∈ 0, 1, j ∈ Jf

dove α e un numero positivo maggiore del piu grande valore che puo essere assunto da ciascunadelle variabili xj in una soluzione ottima. Se xj > 0 la variabile yj sara forzata ad assumere ilvalore 1 ed il suo costo fisso si aggiungera al valore della funzione obiettivo.

Esempio 12.2.1 In una centrale elettrica sono a disposizione tre generatori e ogni giorno sideve decidere quali usare di giorno e quali di notte per assicurare una produzione di almeno 4000megawatts di giorno e di almeno 2800 megawatts di notte. L’uso di un generatore comporta lapresenza di personale tecnico che sorvegli il suo funzionamento; tale personale viene retribuitoin maniera diversa tra il giorno e la notte e a seconda del tipo di generatore; tali costi diattivazione sono riportati nella tabella che segue (in migliaia di lire) insieme al costo per ognimegawatt prodotta e alla massima capacita di produzione in megawatts per ogni singolo periodo(giorno/notte).

Costo attivazione Costo per Capacitagiorno notte megawatt max

Generatore A 750 1000 3 2000Generatore B 600 900 5 1700Generatore C 800 1100 6 2500

1Osserviamo che la condizione xj > 0 ⇒ yj = 1 e equivalente a yj = 0 ⇒ xj = 0. Inoltre, volendomodellare la condizione yj = 1 ⇒ xj = 0, si puo imporre il vincolo xj − α(yj − 1) ≤ 0.

173

Page 179: Dispense del corso RICERCA OPERATIVA

Formulare un modello di PLI che permetta di rappresentare il problema in analisi.

Formulazione.E un problema di costo fisso e puo essere formulato in termini di Programmazione LineareIntera come appena descritto in generale. Per brevita di notazione, chiameremo 1o periodo ilgiorno e 2o 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 necessariointrodurre sei variabili 0− 1, δAi

, δBie δCi

, i = 1, 2, definite come segue :

δAi=

1 se il generatore A e attivato nell’i-esimo periodo0 se nell’i-esimo periodo il generatore A non e attivato i = 1, 2.

Analoga e la definizione per le altre variabili δBi e δCi , i = 1, 2.

– Funzione obiettivo. La funzione obiettivo da minimizzare puo esser scritta

3xA1 + 3xA2 + 5xB1 + 5xB2 + 6xC1 + 6xC2 + 750δA1+

+1000δA2 + 600δB1 + 900δB2 + 800δC1 + 1100δC2 .

– Vincoli. Si devono considerare i vincoli sulla richiesta cioe

xA1 + xB1 + xC1 ≥ 4000

xA2 + xB2 + xC2 ≥ 2800.

Inoltre, per quanto esposto nel caso generale si devono considerare i vincoli

xAi − 2000δAi ≤ 0 i = 1, 2

xBi − 1700δBi ≤ 0 i = 1, 2

xCi − 2500δCi ≤ 0 i = 1, 2.

Quindi la formulazione complessiva puo essere scritta

min(3xA1 + 3xA2 + 5xB1 + 5xB2 + 6xC1 + 6xC2+

+750δA1 + 1000δA2 + 600δB1 + 900δB2 + 800δC1 + 1100δC2

)

xA1 + xB1 + xC1 ≥ 4000xA2 + xB2 + xC2 ≥ 2800xA1 − 2000δA1 ≤ 0xB1 − 1700δB1 ≤ 0xC1 − 2500δC1 ≤ 0xA2 − 2000δA2 ≤ 0xB2 − 1700δB2 ≤ 0xC2 − 2500δC2 ≤ 0xAi ≥ 0, xBi ≥ 0, xCi ≥ 0, i = 1, 2δAi ∈ 0, 1, δBi ∈ 0, 1, δCi ∈ 0, 1 i = 1, 2.

174

Page 180: Dispense del corso RICERCA OPERATIVA

12.2.2 Variabili indicatrici

Un altro classico uso di variabili 0−1, consiste nell’indicare le relazioni di dipendenza tra alcunegrandezze di un problema; tali variabili binarie vengono dette variabili indicatrici.Supponiamo di conoscere un limite superiore per la variabile x, cioe un valore M positivomaggiore del piu grande valore che puo 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 lacondizione logica

x > 0 ⇒ δ = 1 (12.2)

e quindi anche la condizione equivalente δ = 0 ⇒ x = 0; ma la (12.1) non implica il viceversadella (12.2) cioe δ = 1 ⇒ x > 0; infatti dalla (12.1) si ha che se δ = 1 allora 0 ≤ x ≤ M , che esempre verificato.

Tuttavia, in alcuni casi, puo essere necessario imporre la condizione

δ = 1 ⇒ x > 0 (12.3)

(che e equivalente a x = 0 ⇒ δ = 0). La condizione logica (12.3) non si puo facilmenterappresentare con un vincolo;

Supponiamo, ad esempio, che in un problema di miscelazione una variabile x rappresentila quantita di un ingrediente da includere nella miscela e quindi si ha x ≥ 0; si puo usare unavariabile indicatrice δ ∈ 0, 1 per distinguere tra il caso in cui x = 0 e x > 0. La condizionelogica (12.3) afferma che se δ = 1 allora l’ingrediente rappresentato da x deve apparire nellamiscela, ma non fornisce nessuna indicazione sulla quantita dell’ingrediente. In realta e piuverosimile imporre una condizione logica del tipo

δ = 1 ⇒ x ≥ m > 0 (12.4)

cioe 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)

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 > 0 ⇒ δ = 1δ = 0 ⇒ x = 0

x−mδ ≥ 0 implica

δ = 1 ⇒ x ≥ mx = 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 ali-mento, il costo unitario, le unita di sostanze (proteine, carboidrati, grassi, vitamine, calcio) perunita di alimento

175

Page 181: Dispense del corso RICERCA OPERATIVA

costo prot. carb. grassi vitam. calcio

1 0.15 0 7 1 1 02 0.23 1 0 3 1 43 0.79 5 0 4 0 14 0.47 2 2 1 3 05 0.52 0 3 0 2 1

Formulare un problema di PLI che permetta di trovare una dieta di costo minimo sapendoche si devono assumere almeno 3 unita di proteine, 10 unita di carboidrati, 2 unita di grasso, 3unita di vitamine e 2 unita di calcio e sapendo che se e presente l’alimento 1 la dieta non puocontenere l’alimento 5.

Formulazione.

E un classico problema di miscelazione; le quantita di alimenti presenti nella dieta si suppongonofrazionabili. A causa della presenza di una condizione logica, e necessario utilizzare, in aggiuntaalle variabili del problema, una variabile 0− 1 per modellarla cioe per esprimere con un vincoloil legame tra la presenza nella dieta dell’alimento 1 e dell’alimento 5.

– Variabili di decisione. Introduciamo come variabili del problema le unita di alimenti presentinella dieta, xi con i = 1, . . . , 5. Inoltre, introduciamo la variabile booleana δ ∈ 0, 1.– Vincoli. Si hanno i seguenti vincoli:

• Vincoli di qualita: 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 l’alimento 1 allora non deve esserci l’alimento 5.Vogliamo quindi definire dei vincoli che consentano di esprimere le seguenti condizionilogiche

x1 > 0 ⇒ δ = 1δ = 1 ⇒ x5 = 0

Secondo quanto descritto, cio puo essere modellato introducendo i vincoli

x1 −Mδ ≤ 0

x5 −M(1− δ) ≤ 0

dove M e un numero positivo maggiore del piu grande valore che possono assumere levariabili.

176

Page 182: Dispense del corso RICERCA OPERATIVA

• Vincoli di non negativita: Si tratta di quantita di alimenti, e quindi deve essere

xi ≥ 0 i = 1, . . . , 5.

– Funzione obiettivo. E il costo da minimizzare ed e data da

0.15x1 + 0.23x2 + 0.79x3 + 0.47x4 + 0.52x5.

Complessivamente la formulazione di PLI per questo problema puo essere scritta

min (0.15x1 + 0.23x2 + 0.79x3 + 0.47x4 + 0.52x5)x2 + 5x3 + 2x4 ≥ 37x1 + 2x4 + 3x5 ≥ 10x1 + 3x2 + 4x3 + x4 ≥ 2x1 + x2 + 3x4 + 2x5 ≥ 34x2 + x3 + x5 ≥ 2x1 −Mδ ≤ 0x5 −M(1− δ) ≤ 0xi ≥ 0 i = 1, . . . , 5δ ∈ 0, 1.

12.2.3 Il problema del commesso viaggiatore

Siano assegnate n citta che un commesso viaggiatore deve visitare in una settimana e la matriceD di dimensioni n× n delle distanze fra tutte le coppie di citta. Piu precisamente gli elementidella matrice D sono definiti nel seguente modo.

D(i, j) ≥ 0 indica la distanza della citta i dalla citta 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 citta in cui abita (sia per esempio la citta 1), vuoleeffettuare tutte le visite e ritornare alla fine alla citta di partenza, percorrendo una strada dilunghezza complessiva minima.

Introducendo le variabili binarie xij con il seguente significato.

xij = 1 se la citta j viene visitata subito dopo la citta i,

xij = 0 se la citta j non viene visitata subito dopo la citta i,

e indicando con π l’insieme di tutte le possibili partizioni (R,S) dell’insieme di citta (ossia taliche: RUS = insieme di tutte le citta, R 6= ∅, S 6= ∅, R ∩ S = ∅), e possibile formulare il

177

Page 183: Dispense del corso RICERCA OPERATIVA

problema come programmazione a numeri interi:

minn∑

i=1

n∑

j=1

[D(i, j)xij ]

n∑

i=1

xij = 1 per j = 1, 2, . . . , n

n∑

j=1

xij = 1 per i = 1, 2, . . . , n

i∈R,j∈S

xij ≥ 1 per (R,S) ∈ π

x ∈ 0, 1n×n.

Il primo insieme di vincoli garantisce che in ogni citta il commesso viaggiatore provenga dauna sola altra citta. Il secondo insieme di vincoli garantisce che dopo ogni citta il commessoviaggiatore prosegua per una sola altra citta. Il terzo insieme di vincoli garantisce che lasoluzione fornita dal modello sia formata da un unico percorso che attraversa tutte le citta enon da una serie disgiunta di percorsi che visitano sottoinsiemi diversi di citta.

Se non fosse per il terzo insieme di vincoli, il problema sarebbe uguale a quello dell’assegnamentovisto sopra. Il terzo insieme di vincoli complica il problema, facendo sı che non sia risolubilecon la programmazione lineare. In effetti si tratta di uno dei piu difficili problemi combinatoricon cui si ha normalmente a che fare e la sua soluzione richiede tipicamente algoritmi complessie notevole dispendio di tempo di calcolo. Si noti che il terzo insieme di vincoli ha cardinalitaesponenziale rispetto al numero di citta da visitare. Si tratta infatti di 2n−2 vincoli (in effettiesiste una formulazione piu sofisticata che permette di scrivere il problema con solo n2 vincoliaggiuntivi introducendo n variabili aggiuntive non binarie).

12.3 Relazioni tra PL e PLI

IN questo paragrafo, senza perdere di generalita, faremo riferimento a problemi di PLI puracioe del tipo:

z∗I = min cT xAx ≥ bx intera

(PLI)

Indichiamo con SI = x ∈ Zn : Ax ≤ b la regione ammissibile del problema PLI e con x∗I ∈ SI

la soluzione ottima, cioe cT x∗I = z∗I .Si chiama rilassamento lineare o rilassamento continuo il problema di PL ottenuto da PLIeliminando il vincolo di interezza:

z∗ = min cT xAx ≥ b

(PL)

Indichiamo con S il poliedro nello spazio continuo S = x ∈ Rn : Ax ≤ b e con x∗ ∈ S lasoluzione ottima del rilassamento, cioe 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

Page 184: Dispense del corso RICERCA OPERATIVA

valore ottimo di PL e sicuramente non peggiore (migliore o al piu uguale) di quello di PLI cioe(trattandosi di minimizzazione)

z∗ ≤ z∗I ,

ovvero la soluzione del rilassamento lineare costituisce un limite inferiore al valore ottimo dellasoluzione ottima intera

In generale dati due insiemi S′ ⊆ S risulta

minx∈S′

f(x) ≥ minx∈S

f(x).

Per chiarire ulteriormente quanto detto facciamo un semplice esempio informale. Supponiamodi voler trovare lo studente piu giovane di una facolta. Si tratta di trovare lo studente (“puntoammissibile”) che minimizza la funzione obiettivo che associa ad ogni studente la sua eta. Con-sideriamo poi il problema di trovare lo studente piu giovane di tutta l’universita. Ovviamentel’insieme ammissibile di questo nuovo problema e piu ampio di quello del problema precedente,comprendendo tutti gli studenti di tutte le facolta (“problema rilassato”). Se noi risolviamoil “problema rilassato” il valore ottimo che troviamo (eta dello studente piu giovane di tuttal’universita) e ovviamente minore o tutt’al piu uguale al valore ottimo del problema di trovarelo studente piu giovane della facolta che ci interessa. Se poi risulta che lo studente piu giovanedi tutta l’universita e proprio uno studente della facolta d’interesse, allora e ovvio che questostudente e anche “la soluzione ottima” del problema originario, e cioe lo studente piu giovanedella facolta che ci interessa.

Dunque se la soluzione ottima del prblema di PL x∗ ∈ S e intera, significa che x∗ ∈ SI e dunquesi 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 soluzioneottima del problema di PLI, cioe 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 puo allora essere tentati di determinare una soluzione ottima diPLI arrotondando x∗ a un punto a coordinate intere “vicino” a x∗.

Questa Soluzione per Arrotondamento puo essere un metodo pratico di grande utilitaper la soluzione di PLI, se tutte variabili del problema sono variabili intere che rappresentano ilnumero di oggetti indivisibili usati o prodotti, ed e ragionevole aspettarsi che le variabili stesseabbiano valori abbastanza grandi all’ottimo. Inoltre i vincoli lineari dovrebbero essere tali dapoter facilmente decidere se l’ammissibilita e preservata arrotondando una variabile non interaal piu vicino valore intero (o, per esempio, al piu vicino valore intero inferiore). Per esempio,se x1 rappresenta il numero di automobili di un certo modello che devono essere assemblatedurante un mese e se esiste una limitazione inferiore su x1, e ragionevole aspettarsi che unvalore x1 = 1000.1 possa essere arrotondato a 1001 senza che venga violata l’ammissibilita. Setutte le variabili del problema sono di questo tipo e se esiste un metodo semplice di passaredalla soluzione non intera x di PR a una soluzione “vicina”, intera e ammissibile per PLI, alloraun ragionevole approccio pratico alla soluzione di PLI e quello di risolvere il suo rilassamentolineare ed arrotondare quindi la soluzione.

Tuttavia, se il valore delle variabili della soluzione ottima del rilassamento lineare e pre-sumibilmente piccolo, questa tecnica non e molto sensata. Se, per esempio, x1 rappresenta il

179

Page 185: Dispense del corso RICERCA OPERATIVA

numero di portaaeri che devono essere costruite dall’esercito italiano, e intuitivo capire che emolto difficile decidere se si debba arrotondare x1 = 2.5 a 2 o a 3, e che le due possibilita por-tano a risultati completamente diversi. La situazione diventa ancora piu drammatica quandole variabili intere sono, in realta, variabili binarie. In questi problemi le variabili 0-1 indicanoquale di due possibili scelte alternative deve essere attuata. In questo caso l’arrotondamento etotalmente privo di senso logico.

a

Figura 12.2: Soluzione per arrotondamento: primo esempio.

Consideriamo l’esempio di figura 12.2. Supponiamo che la soluzione del rilassamento linearesia a (x = a). Il punto a ha tutte le componenti non intere e tutti i punti a componenti intereottenuti arrotondando le sue componenti all’intero immediatamente superiore o inferiore nonsono ammissibili per PLI. Da questo esempio dovrebbe risultare chiaro, inoltre, che e possibilecostruire problemi PLI in cui la soluzione ottima del relativo rilassamento lineare e lontana“quanto si vuole” dal piu vicino punto ammissibile di PLI.

Anche nel caso in cui possa essere trovato un punto ammissibile “vicino” a x, questi puoessere molto lontano dalla soluzione ottima di PLI.

Un esempio al riguardo e dato nella figura 12.3, dove la soluzione ottima del rilassamentolineare 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 ≤ 52x1 − 2x2 ≤ 1x ≥ 0, intero

le cui soluzioni ammissibili sono:(

00

) (01

) (11

)

e l’ottimo e x∗I =(

11

)di valore z∗I = −2.

180

Page 186: Dispense del corso RICERCA OPERATIVA

a

c

b

direzione di crescitadella funzione obiettivo

Figura 12.3: Soluzione per arrotondamento: secondo esempio.

Risolvendo il suo rilassamento lineare

min −x1 − x2

−2x1 + 5x2 ≤ 52x1 − 2x2 ≤ 1x ≥ 0

(12.6)

si determina la soluzione x∗1 = 52 = 2.5, x∗2 = 2 con valore della funzione obiettivo z∗ = − 9

2 .Arrotondando questa soluzione sia all’intero superiore che inferiore si ottengono le due soluzioni(

22

),

(31

)che NON sono ammissibili. In figura 12.4 e disegnata la regione ammissibile S e

SI .

Dunque arrotondare una soluzione non intera puo non essere una buona strategia. Inoltre ebene sottolineare che l’arrotondamento puo essere computazionalmente oneroso. Infatti datauna soluzione frazionaria x ∈ IRn, possono esistere 2n vettori interi ottenuti arrotondando lecomponenti non intere di x al valore intero superiore o inferiore piu prossimo, e non si vedecon 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 unvettore a componenti intere, ammissibile per PLI, e “vicino” a x puo essere, in generale, unproblema di difficolta paragonabile alla soluzione di PLI.

Osserviamo pero che uno stesso problema di PLI puo essere descritto in modo equivalente indiversi modi.

Esempio 12.3.1 (continua) Consideriamo il problema dell’esempio 12.3.1 a cui aggiun-

181

Page 187: Dispense del corso RICERCA OPERATIVA

Figura 12.4: Soluzione grafica Esempio 12.6.

giamo il vincolo x1 ≤ 1min −x1 − x2

−2x1 + 5x2 ≤ 52x1 − 2x2 ≤ 1x1 ≤ 1x ≥ 0, intero

(12.7)

La regione ammissibile SI e invariata, mentre la regione ammissibile e la soluzione ottima delsuo rilassamento lineare cambia (vedi figura 12.5).

Se consideriamo il problemamin −x1 − x2

−2x1 + 5x2 ≤ 52x1 − 2x2 ≤ 2x2 ≤ 1x ≥ 0, intero

(12.8)

otteniamo la regione ammissibile in Figura 12.6 e la soluzione del rilassamento lineare coincidecon x∗I . Quest’ultima rappresentazione ha quindi un’interessante proprieta: la soluzione delproblema rilassato coincide con la soluzione ottima intera. S tratta dunque di una formulazione“ideale”.

182

Page 188: Dispense del corso RICERCA OPERATIVA

Figura 12.5: Soluzione grafica Esempio 12.7.

Naturalmente la formulazione “ideale” non e in genere conosciuta. Se lo fosse, il problemadi PLI si potrebbe risolvere utilizzando un metodo per la PL che individua un vertice ottimo(ovvero con il metodo del simplesso). E pero possibile identificare dei problemi che godono diquesta proprieta. In particolare diamo la seguente definzione:

Definizione 12.3.2 Un poliedro si dice interose tutti i suoi vertici sono interi.

12.4 Proprieta di interezza e totale unimodularita

Allo scopo di ottenere una caratterizzazione dei poliedro interi, utilizziamo per semplicita laformulazione di poliedro in forma standard P = x ∈ IRn : Ax = b, x ≥ 0. Ricordiamola corrispondenza mostrata nel paragrafo 10.3.1 tra vertici di un poliedro in forma standarde Soluzioni di Base Ammissibili (individuate dal metodo del simplesso), xB = B−1b ∈ Rm,xN = 0. Dunque vogliamo ottenee una condizione che garantisca che B−1b sia intero perqualunque 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, allorala sua inversa e intera

183

Page 189: Dispense del corso RICERCA OPERATIVA

Figura 12.6: Soluzione grafica Esempio 12.8.

La dimostrazione e banale, ricordando la construzione della matrice inversa che e data dallamatrice aggiunta (intera se B e intera) diviso il determinante.Introduciamo la seguente definizione

Definizione 12.4.2 [2] Una matrice a componenti intere A (m × n) di rango m si dice uni-modulare se ogni sottomatrice quadrata m ×m non singolare di A ha determinante di valore−1, 1.

Dunque possiamo affermare [2]

Sia A una matrice (m×n) a componenti intere. Allora condizione sufficiente affinche 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 Aha determinante in −1, 0, 1.Teorema 12.4.3 Sia A una matrice (m×n) a componenti intere. Allora condizione sufficienteaffinche il poliedro

P = x ∈ IRn : Ax ≥ b, x ≥ 0

184

Page 190: Dispense del corso RICERCA OPERATIVA

abbia tutti i vertici interi, per ogni b intero, e che la matrice A sia totalmente unimodulare.

E quindi interessante poter individuare condizioni che garantiscano l’unimodularita di una ma-trice a componenti intere A (m× n).Una ovvia condizione necessaria per la totale unimodularita e che la matrice abbia tutti elementiaij ∈ 0, 1,−1. Non e pero una condizione sufficiente, infatti basta scegliere banalmente una

matrice del tipo(

1 1−1 1

)con determinante pari a 2.

Si puo dare una condizione sufficiente di totale unimodularita [2]:

Teorema 12.4.4 Sia A una matrice (m× n) con elementi aij ∈ 0, 1,−1. Se

1. ogni colonna abbia al piu 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 6= 0 e akj 6= 0 dello stesso segno allorai ∈ Q1 e k ∈ Q2;

(ii) se la colonna j contiene due elementi aij 6= 0 e akj 6= 0 di segno opposto allora oi, k ∈ Q1 oppure i, k ∈ Q2;

allora A e totalmente unimodulare.

Esempio 12.4.5 Verificare che la matrice

1 1 11 0 01 0 1

che non soddisfa la condizione sufficiente, e totalmente unimodulare.

Per matrici che hanno al piu due elementi diversi da zero per ogni colonna, la condizione 2del teorema precedente diventa una condizione necessaria e sufficiente di totale unimodularita:

Teorema 12.4.6 Sia A una matrice (m × n) con elementi aij ∈ 0, 1,−1 e tale che ognicolonna abbia al piu due elementi diversi da zero. Allora A e totalmente unimodulare se e solose e possibile partizionare gli indici di riga in due sottoinsiemi Q1 e Q2 tali che:

(i) se la colonna j contiene due elementi aij 6= 0 e akj 6= 0 dello stesso segno allora i ∈ Q1

e k ∈ Q2;

(ii) se la colonna j contiene due elementi aij 6= 0 e akj 6= 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(

AI

) (A−I

) (A I

) (A − I

)

185

Page 191: Dispense del corso RICERCA OPERATIVA

Esempio 12.4.8 Dire se la seguente matrice e totalmente unimodulare (dimostrando l’affer-mazione):

0 1 0 0 1 1 1 00 0 1 0 1 1 0 11 1 1 0 0 0 0 01 0 0 1 0 0 1 1

Soluzione.La condizione necessaria e verificata, poiche gli elementi sono tutti 0, 1. Inoltre ogni colonnadi A ha al piu due elementi non nulli, quindi sono verificate 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 riga3 non puo stare ne in Q1 per l’elemento a12 ne in Q2 per l’elemento a13. Quindi la matrice none totalmente unimodulare.

Esempio 12.4.9 Dire se la seguente matrice e totalmente unimodulare dimostrando l’affermazione.

1 1 0 0 −1 00 0 0 1 0 10 0 1 0 1 01 0 0 1 0 00 1 1 0 0 00 0 0 0 0 1

Soluzione.Sono verificate 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 uni-modulare.

Esempio 12.4.10 Verificare che la matrice del problema di assegnamento 12.1.2 e totalmenteunimodulare.

Esempio 12.4.11 Verificare che la matrice del problema di trasporto 3.3.2 e totalmente uni-modulare.

Esempio 12.4.12 Verificare che la matrice del problema di revenue management 3.3.3 e to-talmente unimodulare.

12.5 Tecniche di soluzione per problemi di PLI

In forma del tutto generale un problema di PLI puo essere scritto come

min cT xAx ≤ b0 ≤ x ≤ Ux intera

(PLI)

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

186

Page 192: Dispense del corso RICERCA OPERATIVA

e limitata. Questa assunzione semplifichera le considerazioni svolte in questo paragrafo. Essae, peraltro, non limitativa, in quanto in ogni problema reale il valore assunto dalle componentidelle soluzioni ammissibili e sempre limitato superiormente da qualche costante.

In questo paragrafo consideriamo alcune tecniche risolutive per problemi di PLI. In partico-lare, dopo alcune brevi considerazione sulla soluzione per enumerazione totale e sulla soluzioneapprossimata per arrotondamento di problemi di PLI, descriveremo una delle piu note famigliedi 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 problemarilassato, che verra ampiamento ripreso e utilizzato nel seguito. Dato il problema PLI si definiscesuo rilassamento lineare (o problema rilassato associato) il seguente problema.

min cT xAx ≤ b0 ≤ x ≤ U.

(PR)

Si tratta cioe 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 valoreottimo di PR e sicuramente maggiore o uguale di quello di PLI. In particolare, se la soluzioneottima di PR e intera allora questa e anche la soluzione ottima di PLI.

12.5.1 La Tecnica del Branch and Bound

Abbiamo gia visto che una possibile, semplice tecnica di soluzione per PLI, purtroppo quasimai utilizzabile in pratica, e l’ enumerazione totale.

Il “Branch and Bound” (BB) fornisce, allora, una metodologia di ricerca della soluzione ot-tima che effettua una esplorazione parziale dell’insieme delle soluzioni ammisibile. In particolarela funzione obiettivo viene calcolata per una sottoinsieme (piccolo) delle soluzioni ammissibilicon la proprieta di contenere almeno una soluzione ottima. Descriviamo ora in maggior det-taglio i vari aspetti della procedura. Sia S(0) l’insieme delle soluzioni ammissibili PLI. Unapartizione di S(0) e una famiglia di sottoinsiemi (S(1), . . . , S(r)), r ≥ 2 tale che:

S(i) ∩ S(j) = ∅ per ogni coppia 1 ≤ i < j ≤ r

er⋃

i=1

S(i) = S(0)

Evidentemente, la soluzione ottima del problema originario e data dal massimo tra i valoriz(1)∗ = cT x(1)∗, . . . , z(r)∗ = cT x(r)∗ dove x(i)∗ e la soluzione ottima del sottoproblema PLIidefinito dal problema di minimizzare la funzione obiettivo del problema PLI sulla regione am-missibile S(i) (nel seguito, con un piccolo abuso di notazione, indicheremo spesso con S(i) siala regione ammissibile sia il sottoproblema PLIi). Se un certo sottoproblema PLIi risulta, asua volta, di difficile soluzione si partiziona ulteriormente l’insieme S(i) producendo nuovi sot-toproblemi ed iterando la procedura fino a che il problema originario non risulti decomposto inproblemi elementari di facile soluzione.

Cerchiamo di chiarire la procedura con un esempio informale. Supponiamo di dover trovarela persona piu giovane di un Ateneo. Risolvere questo problema confrontando le eta di tutti glistudenti fra loro (enumerazione totale) puo risultare in un processo troppo lungo. Si puo allora

187

Page 193: Dispense del corso RICERCA OPERATIVA

chiedere ai presidi di ogni facolta qual e lo studente piu giovane delle loro facolta e scegliere il piugiovane tra questi studenti. Abbiamo decomposto il problema originario in piu sottoproblemi:la determinazione dello studente piu giovane di ogni facolta. In alcuni casi la risoluzione diquesti sottoproblemi puo essere agevole. In altri casi il preside puo non essere in grado difornire facilmente il nome dello studente piu giovane della sua facolta. In questo caso si puoscomporre ulteriormente il problema. Per esempio, il preside puo chiedere a tutti i direttori diCorso di Laurea di fornirgli il nome dello studente piu giovane che frequenta l’istituto stesso.Da questi egli potra cosı risalire al nome dello studente piu giovane della facolta. E cosı via.

E evidente che la procedura appena descritta non compie una totale enumerazione dell’insiemeS ed e computazionalmente efficiente solo se il numero dei sottoproblemi generati si mantieneestremamente limitato e quindi solo se la strategia di soluzione dei sottoproblemi e sufficiente-mente efficace.

In generale pero, risolvere un sottoproblema puo essere altrettanto gravoso che risolvereil problema originario. E per questo che, in luogo della soluzione esatta del problema S(i)

si preferisce calcolare un “lower bound” di z(i)∗ e cioe un valore L(i) ≤ z(i)∗. Tale valoreviene poi confrontato con il miglior valore z (ad un certo passo della procedura) della funzioneobiettivo calcolata in un punto ammissibile (ottimo corrente). Se il valore approssimatorisulta non inferiore a quello dell’ottimo corrente, ovvero se

z ≤ L(i) ≤ z(i)∗

si deduce che non esiste nell’insieme S(i) un punto in cui la funzione obiettivo abbia un valoremigliore di z. Un tale risultato ci permette di sospendere l’esame dell’insieme S(i) e di eliminarlodalla lista dei sottoproblemi da risolvere.

Per tornare all’esempio informale precedente, supponiamo che il preside di una facoltaabbia comunicato che ha uno studente di eta 17 anni e 3 mesi (ottimo corrente). Supponiamoanche che il preside di un’altra facolta, pur senza sapere esattamente qual e l’eta esatta delsuo studente piu giovane, sia riuscito ad avere la certezza, con mezzi solo a lui noti, che ognistudente della sua facolta non e piu giovane di 18 anni (lower bound). E evidente che e inutilefare lo sforzo di cercare di trovare l’eta esatta del piu giovane studente della sua facolta, perchecomunque non sara lo studente piu giovane.

Evidentemente la soluzione del problema originario sara tanto piu efficiente quanto migliorisaranno i valori dei limiti inferiore (“lower bound”) ed a loro volta tali valori approssimerannotanto meglio il valore ottimo del sottoproblema quanto piu efficace sara stata la decomposizionedel problema originario. Di conseguenza l’efficienza della tecnica del BB dipende essenzialmentedalla qualita delle due strategie che ne caratterizzano la struttura:

(a) Strategia di Soluzione, ovvero la strategia per il calcolo di un valore che approssimi pereccesso (in un problema di massimo) il valore ottimo di un sottoproblema.

(b) Strategia di Separazione, ovvero la strategia per la scelta della partizione dell’insiemedelle soluzioni ammissibili di un sottoproblema.

E anche evidente che a seconda della strategia di soluzione e di quella di separazione adottate,lo schema generale appena descritto si concretizzera in un algoritmo differente.

Nel seguito di questo paragrafo descriveremo un possibile schema (semplificato) di BB checorrisponde a uno degli schemi di BB piu utilizzati nella pratica dando al contempo maggioresistematicita al metodo presentato.

188

Page 194: Dispense del corso RICERCA OPERATIVA

Ricordiamo che vogliamo risolvere un problema di PLI della seguente forma

min cT xAx ≤ b0 ≤ x ≤ Ux intera

(PLI)

Questo problema, nel seguito sara indicato anche come problema S(0). Nel corso del metodoconsidereremo dei sottoproblemi che hanno una struttura simile. Piu precisamente consider-eremo sottoproblemi S(i) con la seguente struttura.

min cT xAx ≤ bl(i) ≤ x ≤ u(i)

x intera,

(Si)

dove i vettori n dimensionali l(i) e u(i) sono calcolati dall’algoritmo. 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 corrispon-dente valore ottimo. Per quanto visto precedentemente il valore ottimo L(i) cosı ottenutocostituisce un limite inferiore di z(i)∗, inoltre il rilassamento lineare e facilmente risolubile conil metodo del simplesso.

Dobbiamo ora descrivere un metodo per la separazione di un generico S(i). Supponiamo diaver risolto il rilassamento lineare di S(i) e sia x(i) la sua soluzione ottima e, come gia detto, conU (i) il corrispondente valore ottimo. Se x(i) ha tutte componenti intere allora x(i) = x(i)∗ e ilproblema non va separato. Se U (i) e minore o uguale all’ottimo corrente, cioe al valore massimodella funzione obiettivo finora trovato, il problema non puo dar origine ad una soluzione interamigliore di quella corrente e non e necessario separarlo per trovare la sua soluzione ottimaintera. Supponiamo quindi che nessuno di questi due casi si sia verificato, e vediamo comeseperare questo sottoproblema. Sia x

(i)j una componente non intera del vettore x(i) (almeno

una ne deve esistere), αj la sua parte intera inferiore (ossia il piu grande intero minore o ugualea x(i)∗

j ) e βj la sua parte intera superiore (ossia il piu piccolo intero maggiore o uguale a x(i)j ).

Ovviamente valgono le seguenti relazioni:

αj < βj

βj − αj = 1.

Separiamo il problema S(i) nei seguenti due problemi

min cT xAx ≤ b(l(i))1 ≤ x ≤ u(i)

x intera,

(l(i))1j =

l(i)j se i 6= j

βj se i = j

emin cT x

Ax ≤ bl(i) ≤ x ≤ (u(i))2

x intera,

(u(i))2j =

u(i)j se i 6= j

αj se i = j

189

Page 195: Dispense del corso RICERCA OPERATIVA

Notiamo che e facile convincersi che l’unione delle regioni ammissibili di questi due problemi dala regione ammissibile del problema S(i), di modo tale che questa e in effetti una separazionedel problema S(i) del tipo prima considerato.

Per concludere vogliamo osservare che dobbiamo considerare un altro caso che finora nonabbiamo menzionato. Nel risolvere il rilassamento del problema S(i) puo accadere che la regioneammissibile 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 regioneammissibile 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) = PLI e l’unico problema candidato. La procedura inizia conl’applicazione 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), cioe un valore sicura-mente non inferiore a quello z∗ della soluzione ottima. Tale valore viene usualmente ottenutoin corrispondenza ad una soluzione ammissibile x facile da individuare (ad es. mediante unasemplice euristica). I valori x e z vengono successivamente aggiornati nel corso della proceduranon appena vengono individuate soluzioni ammissibili per il problema originario con un val-ore piu alto della funzione obiettivo. Se non e possibile individuare facilmente una soluzioneammissibile si puo porre z = −∞, mentre x viene, per il momento lasciato indefinito.

Se l’ottimo del problema rilassato x(0) appartiene all’insieme S(0) il problema e risolto.Altrimenti e necessario applicare una strategia di separazione al problema S(0) ottenendo duenuovi problemi candidati S(1) ed S(2). Calcoliamo gli “lower bound” dei nuovi problemi otte-nendo i valori U (1) ed U (2). Se S(1) (S(2)) e vuoto allora ad U (1) (U (2)) viene convezionalmenteassegnato il valore −∞ (che vuol dire, in pratica, che il problema viene eliminato).

2. Passo generico dell’algoritmo.

Ad un generico passo dell’algoritmo supponiamo di avere la lista L = S(1), . . . , S(q) deisottoproblemi che non sono ancora stati partizionati (problemi terminali). Supponiamoinoltre che per ciascun sottoproblema S(i) sia stato calcolato l’“upper bound” U (i). Illustriamoora brevemente le possibili azioni dell’algoritmo in un passo generico.

2.1. Chiusura dei sottoproblemi dominati dall’ottimo corrente

Se L(i) ≥ z, detto (z(i))∗ il valore ottimo della funzione obiettivo per il problema S(i), abbiamoche:

z(i)∗ ≥ L(i) ≥ z

e quindi che nessuna soluzione migliore di z puo essere contenuta in S(i). In tal caso il problemaS(i) puo essere eliminato della lista dei problemi candidati e viene definito chiuso. Possiamoquindi immaginare che per tutti i problemi terminali superstiti (aperti) sia verificata la con-dizione U (i) > z. Se tutti i problemi terminali sono chiusi, l’algoritmo termina e l’ottimocorrente e una soluzione ottima del problema. Se, al contrario, la lista dei problemi terminalicontiene 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 piu usate sono le seguenti:

190

Page 196: Dispense del corso RICERCA OPERATIVA

(1) Scelta del problema con il massimo “lower bound”. Tale scelta ha lo scopo di esaminareper primi quei problemi in cui e piu probabile trovare una soluzione ottima. Infatti, sela strategia di soluzione produce buone soluzioni approssimate, a valori alti del “lowerbound” corrisponderanno alti valori delle soluzioni ottime dei sottoproblemi. Pertanto,esaminando il sottoproblema aperto cui corrisponde il massimo valore del “upper bound”si avra una maggiore probabilita di individuare la soluzione ottima.

(2) Scelta con criterio di priorita LIFO (Last In First Out). In questo caso i sottoproblemi ter-minali sono gestiti dalla procedura secondo lo schema a stack. In particolare, il problemascelto e l’ultimo 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) l’“lowerbound”associato ad S(i). Inoltre, sia x(i) l’ottimo del problema rilassato, cioe il punto chesoddisfa L(i) = cT x(i). Abbiamo le seguenti possibilita:

2.3.1. x(i) appartiene ad S(i)

Se l’ottimo del problema rilassato x(i) appartiene ad S(i) abbiamo che esso e ottimo ancheper il sottoproblema S(i). Inoltre poiche il problema S(i) e aperto abbiamo che L(i) > z equindi che x(i) e una soluzione ammissibile del problema originario con valore della funzioneobiettivo (cT x(i) = L(i)) migliore di z. Di conseguenza, possiamo porre x = x(i) e z = L(i).(aggiornamento dell’ottimo corrente). In ogni caso il problema S(i) viene chiuso e si iniziail 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 idue nuovi sottoproblemi ed aggiungerli alla lista dei problemi terminali, calcolare i loro “up-per bound”, eliminare il problema S(i) dalla lista dei problemi terminali ed iniziare il passosuccessivo. 2

ATTENZIONE: se invece di un problema di minimo si ha a che fare con un problema dimassimizzazione, cioe

max cT xAx ≤ b0 ≤ x ≤ U x intera

Il valore della soluzione del problema rilassato costituisce un “upper bound” U e risulta z∗I ≤ 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

2Ricordiamo che con Z si indica l’insieme dei numeri interi

191

Page 197: Dispense del corso RICERCA OPERATIVA

7x1 + 2x2 ≤ 22−2x1 + 2x2 ≤ 11 ≤ x1 ≤ 40 ≤ x2 ≤ 3x1, x2 ∈ Z

Il problema e un problema di massimizzazione, quindi le soluzioni dei problemi rilassatiforniranno dei limiti superiori (”upper bounds”) al valore della soluzione ottima intera. Inoltre,il valore della funzione obiettivo calcolato in corrispondenza ad una soluzione ammissibile forniraun limite inferiore (”lower bound”). La soluzione ottima x(0) del rilassamento lineare di S(0) ex(0) = (7/3, 17/6)′ e fornisce un ”upper bound” pari a U (0) = z(x(0)) = 59/6 = 9.8333 . . ..

Se effettuiamo un semplice arrotondamento all’intero inferiore delle componenti di x(0)

otteniamo il vettore xT = (2, 2). Poiche tale vettore e ammissibile per S(0), possiamo porrel’ottimo 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 l’”upperbound” e strettamente maggiore del ”lower bound”. Il problema viene quindi inserito nella listaL dei problemi candidati.

Viene selezionato un problema in L = S(0). In particolare, viene estratto dalla lista ilproblema S(0). Si procede quindi alla separazione di S(0). Possiamo separare rispetto ad unaqualsiasi delle variabili non intere, per semplicita decidiamo di separare rispetto alla variabilecon indice piu piccolo (x1). A tale scopo, aggiungiamo ai vincoli della formulazione di S(0), idue vincoli x1 ≥ 3 (x1 ≥ dx1e3) e x1 ≤ 2 (x1 ≤ bx1c4), ottenendo i due problemi seguenti :

(S(1)) max 3x1 + x2

7x1 + 2x2 ≤ 22−2x1 + 2x2 ≤ 11 ≤ x1 ≤ 20 ≤ x2 ≤ 3x1, x2 ∈ Z

(S(2)) max 3x1 + x2

7x1 + 2x2 ≤ 22−2x1 + 2x2 ≤ 13 ≤ x1 ≤ 40 ≤ x2 ≤ 3x1, x2 ∈ Z

3Ricordiamo che dx1e indica il piu piccolo numero intero maggiore o uguale a x14Ricordiamo che bx1c indica il piu grande numero intero minore o uguale a x1

192

Page 198: Dispense del corso RICERCA OPERATIVA

Il rilassamento lineare del problema S(1) ha soluzione x(1) = (2, 5/2)′ di valore U (1) =z(x(1)) = 8.5. La soluzione del rilassamento lineare del problema S(2) e, invece, x(2) = (3, 1/2)′

di valore U (2) = z(x(2)) = 9.5.Entrambi i problemi non sono eliminabili e vengono quindi inseriti nella lista L.Viene scelto un problema nella lista L = S(1), S(2) dei problemi candidati. In particolare

esaminiamo il problema S1

La prima componente di x(1) e intera mentre la seconda componente e frazionaria. Scegliamoquindi la variabile x2 per effettuare la separazione. A tale scopo, aggiungiamo alla formulazionedi 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 ≤ 11 ≤ x1 ≤ 20 ≤ x2 ≤ 2x1, x2 ∈ Z

(S(4)) max 3x1 + x2

7x1 + 2x2 ≤ 22−2x1 + 2x2 ≤ 11 ≤ x1 ≤ 23 ≤ x2 ≤ 3x1, x2 ∈ Z

La soluzione del rilassamento lineare del problema S(3) e x(3) = (2, 2)′ ed ha valore U (3) =z(x(3)) = 8. Il problema S(4), invece, non ha soluzioni ammissibili. Di conseguenza, poniamoU (4) = −∞.

E possibile chiudere sia il problema S(3) che il problema S(4). Il primo in quanto la soluzionedel rilassamento lineare e intera, il secondo in quanto non ha soluzione ammissibili (ovveropoiche U (4) < z). Nessuno dei due viene quindi inserito nella lista L.

Si osservi che, pur essendo x(3) una soluzione intera, non aggiorniamo l’ottimo corrente inquanto x = x(3).

Estraiamo dalla lista L = S(2) il problema S(2) (unico problema rimasto) ed effettuiamola 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 :

(S(5)) max 3x1 + x2

7x1 + 2x2 ≤ 22−2x1 + 2x2 ≤ 1

193

Page 199: Dispense del corso RICERCA OPERATIVA

3 ≤ x1 ≤ 40 ≤ x2 ≤ 0x1, x2 ∈ Z

(S(6)) max 3x1 + x2

7x1 + 2x2 ≤ 22−2x1 + 2x2 ≤ 13 ≤ x1 ≤ 41 ≤ x2 ≤ 3x1, x2 ∈ Z

La soluzione del rilassamento lineare del problema S(5) e x(5) = (3.14 . . . , 0)′ ed ha val-ore U (5) = z(x(5)) = 9.428 . . .. Il problema S(6), invece, non ha soluzioni ammissibili. Diconseguenza, poniamo U (6) = −∞.

Il problema S(6) viene chiuso in quanto non ha soluzione ammissibili, il problema S(5) none eliminabile e va quindi inserito nella lista L. Infatti il suo valore ottimo e pari a 9.428 . . .,poiche tale valore e migliore di quello della soluzione intera trovata (ossia 8), il problema none eliminabile (nella sua regione ammissibile potrebbe trovarsi una soluzione intera migliore diquella corrente).

Nella lista L vi e ora solo il problema S5, che viene quindi scelto. Viene effettuata laseparazione rispetto alla variabile x1. A tale scopo, si aggiungono alla formulazione di S(5) idue vincoli x1 ≤ 2 e x1 ≥ 4, ottenendo i due problemi:

(S(7)) max 3x1 + x2

7x1 + 2x2 ≤ 22−2x1 + 2x2 ≤ 13 ≤ x1 ≤ 30 ≤ x2 ≤ 0x1, x2 ∈ Z

(S(8)) max 3x1 + x2

7x1 + 2x2 ≤ 22−2x1 + 2x2 ≤ 14 ≤ x1 ≤ 40 ≤ x2 ≤ 0x1, x2 ∈ Z

194

Page 200: Dispense del corso RICERCA OPERATIVA

La soluzione del rilassamento lineare del problema S(7) e x(7) = (3, 0)′ ed ha valore U (7) =z(x(7)) = 9. Il problema S(8), invece, non ha soluzioni ammissibili. Di conseguenza, poniamoU (8) = −∞.

I problemi S(7) e S(8) possono essere chiusi: il primo in quanto la soluzione ottenuta eintera, il secondo in quanto non ha soluzione. La soluzione intera di S(7) e migliore di quellacorrente e quindi la soluzione corrente viene aggiornata (si pone xT = (3, 0)).

La lista L e ora vuota, il procedimento quindi termina. La soluzione ottima e data dallasoluzione corrente, ossia dalla soluzione del problema S(7):

I vari passi della procedura di soluzione possono essere schematizzati utilizzando il cosid-detto Albero di Enumerazione riportato in figura 12.7. In tale albero i nodi indicano i problemimentre i rami stabiliscono le relazioni padre-figlio (generatore-generato) nel processo di gener-azione.

0

1 2

3 654

7 8

Figura 12.7: Albero di enumerazione.

Esempio 2. Passiamo ora ad esaminare, piu sinteticamente il secondo esempio. Sia dato ilseguente problema di programmazione lineare a numeri interi.

max x1 + x2

2x1 + 5x2 ≤ 30

4x1 − 3x2 ≤ 6

0 ≤ x1

0 ≤ x2

x1, x2 ∈ Z

(S(0))

Notiamo che in questo problema non sono esplicitamente presenti gli “upper bound” sule vari-abili. Essendo comunque la regione ammissibile del problema rilassato limitato, non e comunquenecessario inserirli esplicitamente. E facile convincersi che nulla cambia nell’applicazione dell’algoritmoe nella sua validita.

195

Page 201: Dispense del corso RICERCA OPERATIVA

Poniamo inizialmente z = −∞ e risolviamo il rilassamento lineare di S(0). Si ottiene

U (0) =11413

x(0) = (6013

,5413

).

Essendo U (0) > z si separa rispetto alla variabile x1. Si elimina S(0) dalla lista L, e vi siaggiungono i due nuovi problemi S1 e S2 individuati dai seguenti vincoli aggiuntivi.

S1 : x1 ≤ 4S2 : x1 ≥ 5.

Si avra pertanto L = S1, S2.Si sceglie S1 da L e si risolve il suo rilassamento. Si ottiene

U1 =425

x1 = 4 x2 =225

Essendo U1 > z si elimina S1 da L e vi si aggiungono, invece altri due problemi, S3 e S4,individuati dai seguenti vincoli aggiuntivi.

S3 : x1 ≤ 4 x2 ≤ 4S4 : x1 ≤ 4 x2 ≥ 5.

Risulta pertanto L = S2, S3, S4.Si sceglie S3 da L e si risolve il suo rilassamento. Si ottiene

U3 = 8 x1 = 4 x2 = 4

Essendo U3 > z ed essendo intera la soluzione trovata, si pone

z = U3 = 8 x1 = x1 = 4 x2 = x2 = 4,

e si elimina il problema S3. Risulta a questo punto L = S2, S4.Si sceglie S4 da L e si risolve il suo rilassamento. Si ottiene

U4 =152

x1 =52

x2 = 5

Essendo U4 < z si chiude S4 e la lista diventa L = S2.Si sceglie S2 dalla lista e si risolve il suo rilassamento. Si vede che non esistono soluzioniammisibili. Si chiude S2 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 unproblema di Knapsack. In particolare, descriveremo la procedura per individuare un “upperbound” 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

Page 202: Dispense del corso RICERCA OPERATIVA

dove a e c sono vettori in IRn a componenti non negative e b > 0 e un numero reale. Questoproblema ha l’interessante proprieta che la soluzione del suo rilassamento lineare puo essereottenuta, 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

a1≥ c2

a2≥ . . . ≥ cn

an

2. Si determina l’indice h ∈ 1, . . . , n tale che:

h∑

i=1

ai ≤ b

h+1∑

i=1

ai > b

(ponendo h = 0 se a1 > b).

3. La soluzione del rilassamento lineare del problema di knapsack sara il vettore x cosıdefinito:

x1 = . . . = xh = 1xh+2 = . . . = xn = 0

xh+1 =(b−∑h

i=1 ai)ah+1

Esempio Nell’esempio, oltre alla strategia di calcolo del “upper bound” descritta nel §12.6,useremo una tecnica di separazione binaria sulla variabile frazionaria e sceglieremo il problemada 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 ≤ 7x ∈ 0, 1n

risolvere con il metodo del Branch and Bound.

Osserviamo innanzitutto che gli indici delle variabili soddisfano le condizioni di ordinamentodei rapporti valore/ingombro.

1. Inizializzazione La soluzione ottima del rilassamento lineare e:

197

Page 203: Dispense del corso RICERCA OPERATIVA

x0 = [1, 1,23, 0]

Il valore corrispondente dell “upper bound” e U0 = 10. Una soluzione ammissibile (ma nonottima) del problema e x = [1, 1, 0, 0], ottenuta arrotondando all’intero inferiore le componentidi x0. Il suo valore (’lower bound’) e z = 8 Poiche l’ottimo rilassato non e intero (e quindinon appartiene a S0 = S) dobbiamo separare il problema S0. Poiche la componente (x0)3 efrazionaria, scegliamo la variabile x3 e la fissiamo ad 1 e 0 ottenendo, rispettivamente, i problemiS1 ed S2, le cui formulazioni sono:

(S1) max 4x1 + 4x2 + 3x3 + x4

2x1 + 3x2 + 2x4 ≤ 4x ∈ 0, 1n, x3 = 1

(S2) max 4x1 + 4x2 + 3x3 + x4

2x1 + 3x2 + 2x4 ≤ 7x ∈ 0, 1n, x3 = 0

Calcoliamo, utilizzando la strategia sopra descritta, le soluzioni ottime dei problemi rilassati:

x1 = [1,23, 1, 0], x2 = [1, 1, 0, 1]

I valori dei corrispondenti ’upper bounds’ saranno U1 = 9.6 ed U2 = 9. La lista dei problemi

terminali sara L = S1, S2.Passo 1.

(1a) Chiusura dei problemi terminali dominati dall’ottimo corrente Poiche U1 > z e U2 > z

nessuno dei due problemi puo essere chiuso.

(1b) Scelta del problema (aperto) da esaminare Si adotta una strategia LIFO. Viene scelto il

problema S2.

(1c) Esame del problema scelto

Poiche x2 appartiene ad S2 (infatti e una soluzione intera) l’ottimo corrente viene aggiornato.In particolare, si pone z = U2 = 9 ed x = x2 = [1, 1, 0, 1]. Il problema S2 viene poi rimossodalla lista dei problemi terminali che diviene L = S1.

Passo 2.

(2a) Chiusura dei problemi terminali dominati dall’ottimo corrente.Poiche U1 > z l’unico problema nella lista non puo essere chiuso.

(2b) Scelta del problema (aperto) da esaminare. Ovviamente S1.

198

Page 204: Dispense del corso RICERCA OPERATIVA

(2c) Esame del problema scelto

Poiche x1 non appartiene ad S1 (infatti e una soluzione non intera) l’ottimo corrente non vieneaggiornato. Di conseguenza, il problema S1 deve essere decomposto. Poiche la componente(x1)2 e frazionaria, scegliamo la variabile x2 e fissiamola a 0 ed 1 ottenendo i problemi S3 edS4 le cui formulazioni sono:

(S3) max 4x1 + 4x2 + 3x3 + x4

2x1 + 2x4 ≤ 4x ∈ 0, 1n, x3 = 1, x2 = 0

(S4) max 4x1 + 4x2 + 3x3 + x4

2x1 + 2x4 ≤ 1x ∈ 0, 1n, x3 = 1, x2 = 1

Calcoliamo le soluzioni ottime dei problemi rilassati:

x3 = [1, 0, 1, 1], x4 = [12, 1, 1, 0]

I valori dei corrispondenti “upper bound” saranno U3 = 8 ed U4 = 9. La lista dei problemiterminali sara L = S3, S4.

Passo 3.

(3a) Chiusura dei problemi terminali dominati dall’ottimo corrente.Poiche Ui ≤ z per i = 3, 4 entrambi iproblemi possono essere chiusi. Di conseguenza la soluzioneottima e x = [1, 1, 0, 1] di valore z = 9.

Esempio 12.6.2 Risolvere il problema di knapsack dell’esercizio 12.6.1, utilizzando il metododel Branch and Bound utilizzando come strategia di scelta del problema da esaminare il criteriodel massimo upper bound.

199

Page 205: Dispense del corso RICERCA OPERATIVA

Capitolo 13

Uso di Excel per l’analisi esoluzione di Modelli diProgrammazione Matematica

13.1 Introduzione

La soluzione grafica di problemi di ottimizzazione che abbiamo visto nel Capitolo 3 puo essereutilizzata solo nel caso in cui il numero di variabili sia due. I problemi applicativi hanno normal-mente piu di due variabili. E necessario utilizzare sistemi di calcolo automatici per trattare siagrandi quantita di dati che di operazioni logico-aritmetiche. Esistono molti software per risol-vere problemi di Programmazione Matematica a diversi livelli di complessita. Alcuni prodottisoftware integrano anche linguaggio di modellizzazione con il/i solutore/i in un unico pacchettocommerciale. Si tratta di prodotti di ottimizzazione comprensivi di tutto l’ambiente di calcolo,cosiddetti sistemi di modellizzazione ”stand-alone” che sono in grado di fornire l’interfacciacompleta tra i differenti livelli di formulazione, soluzione, e analisi della modellizzazione. Isistemi di tipo stand-alone tendono ad essere i piu vantaggiosi a livello di costruzione di pro-totipo, quando il lavoro e incentrato sulla costruzione di un modello accettabile e nel dimostrareche l’approccio e sufficientemente promettente per giustificare investimenti maggiori. In questomodo pero si incoraggia fortemente (quando non e obbligato) l’uso di un particolare solutore.Quindi e una scelta ragionevole in situazioni in cui la velocita e la versatilita non sono le ques-tioni piu importanti. Questo e spesso il caso di sistemi altamente specializzati, in cui la qualitadell’interfaccia e l’aspetto fondamentale e l’insieme di problemi che il solutore deve trattareappartengono ad una classe relativamente stretta e ben definita.Rientrano in questa categoria alcuni dei piu elementari linguaggi di modellizzazione cosı comei prodotti di ottimizzazione inseriti in programmi di foglio elettronico (spreadsheet).In questo capitolo utilizzeremo Microsoft c©Office Excel 2003 e gli strumenti Scenario e Solutore(http://www.solver.com/).

L’utilizzo di fogli elettronici per l’analisi e la soluzione di un problema di ottimizzazionerichiede alcuni passi fondamentali.

1. la creazione di un foglio elettronico che modelli il problema

200

Page 206: Dispense del corso RICERCA OPERATIVA

2. identificare le variabili di decisione

3. identificare la funzione obiettivo e la cella che la contiene

4. rappresentare i vincoli e specificare le celle che li contengono

5. utilizzare il modello per analisi quantitativa.

Le celle di una tabella excel sono individuate dalla posizione di colonna (indicata da unalettera dell’alfabeto) e di riga (un numero).

13.2 Uso di fogli elettronici per la descrizione di un mod-ello matematico

Ci sono diversi modi di organizzare un foglio elettronico per rappresentare un modello di pro-grammazione matematica. In generale pero e consigliabile seguire uno stesso schema di baseche consente una immediata visualizzazione ed individuazione dei parametri e dei dati.

In particolare dividiamo la costruzione del foglio elettronico in quattro sezioni: Dati diingresso, Variabili di decisione, Funzione obiettivo, Vincoli.

A titolo esemplificativo, consideriamo il semplice modello di capital budgeting dell’esempio1.4.1 del capitolo 1, la cui formulazione matematica e:

max (20x1 + 5x2 + 10x3)750x1 + 200x2 + 800x3 ≤ 1000xi ∈ 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 nel foglio excel, mauna buona rappresentazione del modello divide il foglio di Dati dal foglio di Modello.Nel seguito, i dati si trovano su un foglio specifico, ma potrebbero anche essere inseriti nellostesso foglio in cui viene implementato il modello purche siano visibili e ben identificabili.

In figura 15.1 e riportato il file Excel relativo all’inserimento dei primi dati di CapitalBudgeting. Per ciascun progetto 1,2,3 sono riportati i valori di investimento (celle B3, C3, D3),ovvero i valori dei coefficienti dei vincoli, e i guadagni (celle B4, C4, D4), ovvero i coefficientidella funzione obiettivo.

Sono state incluse delle caselle di commento (le prime due righe e la prima colonna) che con-sentono di identificare facilmente di che tipo di dato si tratta (investimento/guadagno relativoal progetto 1/2/3).

Se cambiano i dati (costi, guadagni), e necessario modificare questa parte del file Excel.E stato anche inserito il valore del dato relativo al budget (cella B6).

Foglio del Modello.In figura 15.2 e riportato il file Excel relativo al modello matematico, che descriviamo in

dettaglio.

201

Page 207: Dispense del corso RICERCA OPERATIVA

Figura 13.1: Dati relativi al problema di Capital Budgeting.

Celle variabili (Variabili di decisione). Le celle variabili rappresentano il valore at-tuale delle variabili di decisione del modello. Al momento dell’utilizzo del solutore, questecelle sono considerate come incognite e in output contengono il valore determinato dal solutore(valore ottimo). Nel nostro esempio le variabili di decisione x1, x2, x3 sono assegnate alle celleB3, C3, D3 del foglio Modello. E necessario assegnare un valore iniziale a queste celle perpoterle utilizzare. Nel nostro esempio x1 = 0=B3, x2 = 0=C3, x3 = 1=D3. Osserviamo chenell’esempio di capital budgeting le variabili possono assumere solo valori interi (in particolare0,1). In questa fase di rappresentazione del modello in una tabella excel, non e possibile dareindicazioni di questo tipo.E utile inserire delle celle di tipo descrittivo sopra le celle variabili. In questo caso, e statoindicato Progetto 1,Progetto 2, Progetto 3. Inoltre le celle variabili sono evidenziate con un coloreazzurro (vedi figura 15.2). Il colore non ha alcun ruolo nel foglio elettronico se non stilistico.Evidenziare le celle (usando un colore diverso o con una linea di contorno piu evidente), rendeil foglio elettronico piu semplice da leggere.

Celle vincoli. Si tratta di inserire in alcune celle le formule che definiscono il “left hand side”(l.h.s.) dei vincoli. Il right hand side =r.h.s del vincolo DEVE essere un valore numericoe deve essere contenuto in un’altra cella.

Nel nostro esempio c’e un unico vincolo di budget. Il valore del l.h.s., cioe la formula8x1 + 6x2 + 5x3, e inserito in cella B5.

Il valore del l.h.s deve essere confrontato con il valore del r.h.s. e utile porre questi duevalori “vicini”. La posizione “naturale” del valore di budget e nella cella D5 separata dalla B5da una cella intermedia C5 che contiene il simbolo ≤. Tale simbolo non ha alcuna funzione di

202

Page 208: Dispense del corso RICERCA OPERATIVA

controllo, ma serve solo a rendere piu leggibile il file.. Il valore in B5 e calcolato inserendo una funzione Excel. Si e utilizzata la funzione

=MATR.SOMMA.PRODOTTO($B$3:$D$3;DATI!B3:D3)1.

Si osservi che la funzione utilizza i valori delle celle nell’intervallo B3:D3 del foglio Modelloe del foglio Dati. L’utilizzo del simbolo $ utilizzando per indirizzare le celle variabili, ha unafunzione utile quando e necessario ”replicare” la funzione e verra spiegato piu avanti.

Al solo scopo di mostrare alcune funzioni di Excel e stata inserita nella cella E5 una funzionelogica che indica se il vincolo e soddisfato o violato. In particolare, si utilizza la funzione logica“SE”, che restituisce restituisce il valore “ammissibile” (vero) o “non ammissibile” (falso) inbase alla differenza tra il valore delle celle D5 (budget) e B5 (spesa effettiva). La sintassi e:

=SE(D5-B5 >= 0;"AMMISSIBILE";"NON AMMISSIBILE")

Questa opzione puo essere utile per una immediata visualizzazione dei risultati in un analisidi scenario. Prestare attenzione alla precisione con cui viene effettuata (la visualizzazione delcontenuto della cella puo avere una rappresentazione diversa da quella utilizzata per effettuarele operazioni).

Cella obiettivo. La cella obiettivo contiene il valore della funzione obiettivo. Anche inquesto 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 funzioneobiettivo e assegnato alla cella B7 ed e dato dalla formula

B7= MATR.SOMMA.PRODOTTO($B$3:$D$3;DATI!B4:D4)

Si osservi che, possono essere modificati i valori dei dati, ottenendo immediatamente ilnuovo valore del guadagno e dell’investimento relativi alla scelta attuale delle variabili.

13.3 Analisi di scenario o “What if..?” analisi

L’uso di Excel come foglio elettronico per una descrizione del modello, puo essere utilizzata perverificare l’effetto della variazione di alcuni valori utilizzati nel modello sulle variabili di output.In molti casi puo essere appropriato considerare gli effetti della variazione di un insieme di valoriche insieme rappresentano un’opzione alternativa circa le possibili decisioni future.

Questo tipo di approccio e detto “What if..?” (letteralmente “Che succede se...?”) e la suaflessibilita costituisce l’aspetto che rende l’uso di fogli elettronici un utile supporto alle decisioni.

Non si tratta di utilizzare strumenti di ottimizzazione, ma solo di analizzare utilizzando unostrumento analitico l’effetto di alcune decisioni consentendo eventualmente di scegliere tra lediverse opzioni quella ritenuta piuu appropriata, ma senza alcuna garanzia che si tratti dellascelta ottima ne di una sua approssimazione.

Microsoft c©Office Excel 2003 include nel Menuu Strumenti il tool Scenari che consente di effet-tuare un’analisi di tipo “What If” memorizzando in modo permanente le combinazioni di dati

1La sintassi della funzione e =MATR.SOMMA.PRODOTTO(Blocco1,Blocco2) e moltiplica ognicella del Blocco1 e del Blocco2 e somma il risultato. I blocchi devono avere la stessa dimensione, cioestesso numero di righe e stesso numero di colonne. Nella versione inglese, la funzione e =SUMPROD-UCT(Block1,Block2).

203

Page 209: Dispense del corso RICERCA OPERATIVA

Figura 13.2: Tabella Excel relativa al problema di Capital Budgeting.

di input che sono state utilizzate. Supporta anche la generazione automatica di un RiepilogoScenari che realizza un confronto affiancando i risultati.[4]

Il tool Scenari presenta alcune limitazioni pratiche. In particolare i valori delle variabili diinput devono essere inserite nel box di dialogo per gli input di scenario (vedi la figura 15.5),violando una delle buone regole di utilizzo di modelli per cui i dati devono essere SEPARATI dalmodello. Un altro aspetto da sottolineare e l’utilizzo del termine Celle Variabili per definire lecelle per cui l’utente fornisce un valore e che dunque giocano effettivamente il ruolo di parametri.Vedremo piu avanti che lo stesso nome Celle Variabili e utilizzato nel Solutore per indicare lecelle che sono cambiate dal tool stesso.

Esempio di Capital Budgeting La tabella costruita fino a questo punto consente difare semplici analisi di possibili scenari, modificando manualmente il valore delle variabili didecisione nel foglio Modello (celle B3, C3, D3) oppure della variabili di dati nel foglio Dati (celleB3±D4, B6).Nel primo caso, modifica delle variabili di decisione, si tratta di una formalizzazione del modelloesaustivo descritto nell’esempio 1.4.1. E ovvio che i possibili scenari possono essere “troppi” perpoterli analizzare tutti anche nel caso in cui siano finiti come nell’esempio di Capital Budgetingche stiamo analizzando.

In figura 15.4 e riportato il foglio Riepilogo scenari generato da Excel. Sono stati generati3 diversi scenari al variare dei valori delle variabili e come valori di output sono stati scelti

204

Page 210: Dispense del corso RICERCA OPERATIVA

Figura 13.3: Costruzione di uno scenario per il problema di Capital Budgeting.

l’investimento e il profitto.Volendo utilizzare il tool Scenari per un’analisi della variazione della soluzione al variare

dei dati e utilizzare il Riepilogo Scenari, e necessario prevedere un foglio che contenga dati emodello contemporaneamente. In queste dispense si preferisce rinunciare a questa possibilita emantenere separati Dati e Modello.

13.4 Uso di Excel-Solver per la soluzione del modello matem-atico

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 Program-mazione matematica (PL, PLI, e alcuni classi particolari di PNL). La procedura di ottimiz-zazione utilizzata per la PL e il metodo del simplesso. Non entreremo affatto nel merito delleprocedure utilizzate per la PNL e la PLI.

[5]

Installazione Solutore. Il solutore e parte integrante di Excel. Si trova la voce Solutoresotto il menu Strumenti (Tools). Nel caso la voce “Solutore” non compaia nel menu “Stru-menti”, deve essere installato procedendo come segue (vedi anche figura 15.16 a fine capitolo):

205

Page 211: Dispense del corso RICERCA OPERATIVA

Figura 13.4: Costruzione di uno scenario per il problema di Capital Budgeting.

1. dalla voce del menu 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 “Com-ponenti aggiuntivi”, significa che Excel non e stato installato completamente ed e necessarioavere il programma di setup di Excel.

Per installazione e l’utilizzo di Excel Office 2007, si veda [6].

Impostazione del modello per il Solutore. Dalla voce Strumenti selezionare Solutore.A questo punto appare la finestra Parametri del Risolutore illustrata in Figura 15.6. Si

tratta della finestra principale del Risolutore ed e utilizzata per identificare gli elementi checostituiscono il modello. Nella parte in alto a sinistra della finestra compare l’etichetta Impostacella obiettivo e una cella che deve contenere l’indirizzo della cella della funzione obiettivo.Questa cella puo essere “editata” oppure riempita con il corretto valore semplicemente cliccandosulla cella corrispondente sul foglio elettronico (N.B. La finestra “Parametri del Risolutore” puoessere spostata in modo da rendere visibili le celle del file).Una volta impostata la cella obiettivo e necessario specificare se si tratta di un problema dimassimizzazione o di minimizzazione, selezionando il tasto Max o Min nella riga successiva.Le variabili di decisione devono essere specificate indicando nella cella etichettata con Cam-biando le celle (By Changing Cells) l’indirizzo delle celle variabili. Anche in questo caso e

206

Page 212: Dispense del corso RICERCA OPERATIVA

Figura 13.5: Costruzione di uno scenario per il problema di Capital Budgeting.

possibile scrivere direttamente nella cella o riempirla selezionando sul foglio elettronico le cellevariabili. Un intervallo di celle puo essere specificato, scrivendo il valore della prima ed ultimacella separati da ’due punti’. Ulteriori variabili non contigue possono essere aggiunte separateda ’virgola’.I vincoli devono essere elencati nella sottofinestra Vincoli: (Subject to the Constraints). Se-lezionando il tasto Aggiungi(Add) compare la finestra Aggiungi vincolo rappresentata in figura15.7.

I vincoli possono essere inseriti uno alla volta. Questo procedimento puo pero essere moltolungo nel caso di problemi con molti vincoli. in alternativa si possono inserire piu vincoliinsieme se sono adiacenti e se hanno lo stesso vincolo relazionale (cioe ≤, ≥ oppure =). Il l.h.sdel vincolo deve essere inserito nella cella con etichetta Riferimento:. Successivamente cliccandoil tasto ≤ si apre una tendina che consente di specificare il tipo di vincolo. Il r.h.s. dei vincolideve essere inserito nella finestra con etichetta Vincolo:. Si puo inserire il valore della cellaappropriata 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 nondeve contenere funzioni. Tipicamente se erroneamente si inserisce una funzione nel r.h.s., excelSolver interpreta il modello come Non Lineare e applica procedure di ottimizzazione diverse dalsimplesso non arrivando a convergere al minimo.Tra le possibili tipologie di vincoli compaiono anche le opzioni int e bin. Servono rispettivamentea specificare che le variabili possono assumere solo valori interi o binari. In questo caso nel

207

Page 213: Dispense del corso RICERCA OPERATIVA

Seleziona la funzione max o mincome richiesto dal problema

Specifica la cella checontiene il valore dellafunzione obiettivo

In quest’area sono elencatitutti i vincoli del modello

Indica le celle checontengono le variabili

Clicca qui perrisolvere il modello

Clicca quiper specificareil tipo di modelloe I parametri delrisolutore

Clicca qui per aggiungereun nuovo vincolo

Seleziona un vincolo eclicca qui per modificarlo

Seleziona un vincolo eclicca qui per eliminarlo

Clicca qui peruscire senzarisolvere il modello

Figura 13.6: Finestra Parametri del Risolutore.

campo Riferimento: devono essere inserite le variabili interessate, mentre il campo Vincolo:rimane vuoto. Nel nostro esempio le variabili sono binarie; questo vincolo puo essere specificatoin modo diretto indicando che le celle B7,C7,D7 sono binarie, oppure imponendo alle variabilila coppia di vincoli B7,C7,D7≥ 0, B7,C7,D7≤ 1 e specificando che si tratta di variabili intere.In Figura 15.8 e illustrata questa procedura. Notiamo che i vincoli di non negativita possonoanche essere omessi in questa fase di specifica del modello; in questo caso devono pero esserespecificati tra le Opzioni del Solutore (vedi paragrafo successivo).Prima della soluzione del modello e necessario selezionare il tasto Opzioni sulla destra dellafinestra “Parametri del Risolutore”. Nel caso si stia risolvendo un problema di ProgrammazioneLineare (o di Programmazione Lineare Intera) e necessario selezionare l’opzione Presupponi ilmodello lineare nella finestra “Opzioni del Risolutore”. E anche possibile specificare qui chele variabili sono non negative, se non e gia stato specificato esplicitamente tra i vincoli delmodello, selezionando l’opzione Presupponi non negativo. Vedi la Figura 15.8 per i dettagli.A questo punto, uscendo dalla finestra con il tasto OK, l’attuale impostazione delle opzioni delSolutore e salvata insieme con il foglio Excel e ne diventa parte integrante.

13.5 Soluzione di un modello di PL o PLI.

Una volta definiti i parametri del Risolutore e settati i valori nelle Opzioni, si puo tentare dirisolvere il problema pigiando il tasto Risolvi (Solve). Quando il Solutore ha terminato il calcolodella soluzione ottima, compare la finestra Risultati del Solutore rappresentata in Figura 15.9.

Leggere i risultati di ottimizzazione Il messaggio in alto indica se il solutore e stato

208

Page 214: Dispense del corso RICERCA OPERATIVA

Specifica la/e cella/e checontengono il l.h.s. del/deivincolo/i

Specifica la/e cella/e checontengono il r.h.s. del/deivincolo/i

Clicca qui per selezionarel’espressione logica appropriata

Clicca qui per definire l’ultimovincolo e ritornare alla finestra“Parametri del Risolutore”

Clicca qui per definire tuttieccettol’ultimo vincolo e ritornare allaFinestra “Parametri del Risolutore”

Microsoft ExcelHelp system

Clicca qui per tornarealla finestra “Parametridel Risolutore” senzaaggiungere vincoli

Figura 13.7: Finestra Aggiungi Vincolo.

in grado o meno di determinare la soluzione ottima del modello. Qualora non sia stato possibiledeterminare la soluzione ottima, e possibile cambiare alcune delle opzioni nella finestra Opzionidel Solutore per cercare di migliorare le prestazioni dell’algoritmo. In particolare, si possonocambiare i valori di tempo massimo, iterazioni, approssimazione, tolleranza, convergenza chestabiliscono i termini per cui l’algoritmo utilizzato dal Solutore si ferma.

Cliccando il tasto OK, si torna al foglio Excel. Si verifica che il valore di alcune celle e statomodificato. In particolare le celle di decisione contengono il valore della soluzione (ottima)determinata dal Solutore, e la cella obiettivo contiene il corrispondente valore della funzioneobiettivo. Anche il valore del l.h.s dei vincoli e calcolato utilizzando il valore corrente dellevariabili di decisione.

Cambiando i dati del modello, la soluzione ottima non viene automaticamente aggiornata. Equindi necessario far risolvere nuovamente il problema.La tabella Excel per il problema di capital Budgeting risolto e riportata in Figura 15.10.

Osserviamo che abbiamo risolto un problema di PLI. Excel-Solver e in grado di risolvereproblemi di PLI di piccole dimensioni. Quando il numero di variabili e troppo alto, la determi-nazione della soluzione ottima, puo richiedere troppo tempo o non convergere affatto.

13.6 Ulteriori informazioni fornite dal Solutore

Tutti i software di PL forniscono un numero di informazioni aggiuntive oltre al valore ottimo

209

Page 215: Dispense del corso RICERCA OPERATIVA

Seleziona questaopzione se le funzioniche definiscono vincolie obiettivo sono lineari

Seleziona questa opzione se le variabiliSono vincolate ad essere non negative e non e` gia` stato specificato nei vincoli

m

Parametri permodelli non lineari

Parametriper algoritmo

Figura 13.8: Opzioni del risolutore.

delle variabili di decisione e della funzione obiettivo.Il Solver di Microsoft Excel produce tre fogli opzionali che sono: Rapporto valori, Rapporto

sensibilita e Rapporto limiti. Da notare che il Rapporto sensibilita e il Rapporto limiti sonoprivi di significato per problemi a variabili intere, come sara chiaro piu avanti. Per questomotivo, illustreremo i risultati dei Rapporti non piu per il problema di Capital budgeting, maper il problema di Programmazione Lineare di allocazione ottima descritto nel Paragrafo 2.4.1.Il modello matematico e

max 7x1 + 10x2

x1 + x2 ≤ 750x1 + 2x2 ≤ 1000x2 ≤ 400x1 ≥ 0, x2 ≥ 0

(13.1)

relativo all’allocazione ottima di due risorse e la sua soluzione con metodo grafico e statadeterminata nel’Esempio 4.3.4. Una possibile rappresentazione in una tabella Excel e riportatain 15.11.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 soluzioneottima e x∗(500, 250)T .I tre Rapporti possono essere richiesti una volta che il Solutore ha trovato la soluzione ottimadel problema di PL. La richiesta deve essere fatta dalla finestra Risultato del Solutore (vediFigura 15.9), selezionando nella parte in altro a destra il rapporto che si desidera generare.

210

Page 216: Dispense del corso RICERCA OPERATIVA

Questo messaggio specifica se il Solutoreha trovato o no la soluzione ottima

Questo bottone specifica al Solutorese deve o non memorizzare il valoreottimo delle variabili e generarei rapporti selezionati nella finestrain alto a destra

Torna alfoglio Excel

Annulla il risultato del Solutore eripristina i valori originali nel foglio Excel

Selezionare il rapportoche si desidera generare

Figura 13.9: Finestra Risultato del Solutore.

Rapporto valoriIl Rapporto valori per il problema di Allocazione ottima (15.1) e riportato in figura 15.11.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 puoessere Vincolante o Non Vincolante. Si intende che il vincolo e rispettivamente attivo (ovverosoddisfatto all’uguaglianza) o non attivo (ovvero soddisfatto con la disuguaglianza stretta) nellasoluzione ottima determinata dal Solutore. L’ultima colonna della sezione dedicata ai vincoliTolleranza e la differenza (slack) tra il valore del l.h.s e il valore del r.h.s.. Questa informazionee di interesse quando i vincoli si riferiscono ad una risorsa limitata (come nel caso dell’esempiodi allocazione ottima delle risorse). In questo caso infatti la Tolleranza indica quanta dellarisorsa disponibile non e stata utilizzata. Nell’esempio 15.1, all’ottimo sono attivi i vincolix1 + x2 ≤ 750, x1 + 2x2 ≤ 1000, mentre il vincolo x2 ≤ 400 relativo alla disponibilita dipreparato 3 e non attivo. Il valore della Tolleranza=150 che e la differenza tra la disponibilitadi preparato 3 (=400) e la quantita utilizzata (=250). E ovvio che la soluzione ottima delproblema (15.1) rimane invariata se la quantita disponibile di preparato 3 viene aumentata oridotta fino al valore 250.

Rapporto sensibilita e prezzi ombra L’analisi di senibilita si occupa di valutare comela soluzione ottima di un problema di PL cambia al variare dei dati che definiscono l’istanza

211

Page 217: Dispense del corso RICERCA OPERATIVA

Figura 13.10: Risultato del Solutore per il problema di Capital budgeting.

del problema sotto studio. Abbiamo affrontato questo problema nel paragrafo 11.3.5. Qui cilimitiamo a descrivere il foglio prodotto dal Solver di Microsoft Excel.Il Rapporto sensibilita e generato da Excel su richiesta. Il file generato per il problema diallocazione ottima di risorse in § 2.4.1 e in figura 15.14.

Il rapporto e diviso in due parti. Nella parte superiore per ogni cella variabile e riportato ilvalor e della soluzione ottima. Se una variabile e nulla, significa che non e vantaggioso produrla.La colonna Costo ridotto di questa attivita indica quanto maggiore dovrebbe essere il profittoper unita relativo a questa variabile affinche sia inserita nella soluzione ottima ad un valore nonnullo. Se il costo ridotto relativo alla variabile xi e negativo pari a −γi, questo significa che ilprofitto relativo a quella variabile deve aumentare da ci (valore indicato in tabella nella colonnaCoefficiente oggettivo) a ci + γi perche esista una soluzione ottima con xi > 0. Le colonneaumento e decremento ammissibile corrispondono alla variazione in aumento o diminuzione perci per cui la soluzione rimane ottima.

D’atra parte se una variabile e gia positiva all’ottimo, le colonne Incremento/Decremento con-sentito indicano quanto deve variare in piu o in meno, il profitto relativo a quella cella variabileaffinche la soluzione data non sia piu ottima.Ad esempio nel problema di allocazione ottima di risorse in § 2.4.1, la cella variabile $B$9 checorrisponde alla produzione di Colorante di tipo 1, l’attuale coefficiente della funzione obiettivoe 7, mentre Incremento e Decremento consentiti sono rispettivamente 3 e 2. Questo significa chese il coefficiente c1 della funzione obiettivo varia nell’intervallo [5, 10] i cui estremi corrispondono

212

Page 218: Dispense del corso RICERCA OPERATIVA

Figura 13.11: Tabella Excel relativa al problema di allocazione di risorse.

a 7−2 e 7+3, la soluzione ottima rimane invariata. Se invece il coefficiente c1 viene modificatoad un valore al di fuori dell’intervallo [5, 10] la soluzione ottima cambia. Per sapere come cambiala soluzione e necessario risolvere nuovamente il modello con il Solutore.

Il valore dell’Incremento e Decremento consentiti puo essere anche pari a 1.E + 30 (= 1030)intendendo in questo modo una valore grande a piacere. Si intende che il valore di profittounitario puaumentare o diminuire senza limiti e la soluzione ottima non cambiera.

Nella parte inferiore del Rapporto di sensibilita, ci sono tante righe quanti sono i vincoli (esclusieventuali vincoli di limitazione inferiore e superiore delle variabili e in vincoli di non negativita).Per ogni vincolo nella colonna Valore finale e riportato il valore del l.h.s nella soluzione ottima,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 significa che il vincolo e attivo nella soluzione ottima (vedi anche il Rapporto Valori).Un vincolo attivo sta ad indicare una risorsa utilizzata completamente, fino al limite massimodella sua disponibilita. Per queste risorse si puo valutare se e quando puo essere convenienteacquisire una maggiore quantita di risorsa. La colonna Prezzo ombra indica i valori dei prezziombra relativi a quella risorsa (vedi anche il paragrafo 11.3.5). Nella tabella in figura 15.14relativa al problema di allocazione ottima di risorse § 2.4.1, il prezzo ombra relativo al primovincolo (corrispondente alla risorsa ”Preparato 1“) e 4. Questo significa che ciascuna unitaaggiuntiva di ”Preparato 1“ al di sopra delle 750 gia disponibili consente di aggiungere 4 alprofitto totale. Naturalmente questa analisi e valida solo entro certi limiti espressi nelle colonneIncremento consentito e Decremento consentito. Nel caso del ”Preparato 1“ questi limiti sono

213

Page 219: Dispense del corso RICERCA OPERATIVA

Microsoft Excel 10.0 Rapporto valoriFoglio di lavoro: [allocazione.xls]Allocazione otti ma di risorseData di creazione: 28/04/2004 16.59.50

Cella obiettivo (Max)Cella Nome Valori originali Valore finale

$B$19 profitto max 95 6000

Celle variabiliCella Nome Valori originali Valore finale

$B$9 variabili di decisione colorante 1 5 500$C$9 variabili di decisione colorante 2 6 250

VincoliCella Nome Valore della cella Formula Stato Tolleranza

$B$14 preparato 1 utilizzato 750 $B$14<=$D$14 Vincolante 0$B$15 preparato 2 utilizzato 1000 $B$15<=$D$15 Vincolante 0$B$16 preparato 3 utilizzato 250 $B$16<=$D$16 Non vincolante 150

Figura 13.12: Rapporto Valori per il problema di allocazione ottima di risorse in § 2.4.1.

250 e 150 rispettivamente. Questo significa che ogni unita aggiunta fino al massimo di 250produce un incremento del profitto di 4 per unita, e ogni unita sottratta fino ad un massimodi 150 produce una diminuzione di profitto di 4 per unita. Al di fuori di questo range non epossibile utilizzare i prezzi ombra per prevedere cosa succede. L’unico modo per verificare comesi modifica la soluzione e di far risolvere nuovamente il modello con i nuovi dati.

L’analisi dei prezzi ombra e identica per ciascun vincolo attivo. Per i vincoli non attivi ilvalore del prezzo ombra e ovviamente nullo. Questo e sensato dal punto di vista economico;difatti poiche la risorsa non e stata utilizzata completamente (e inn eccesso) non e convenienteacquisire una maggiore quantita. IN questo caso l’Incremento consentito e infinito, perche ilprezzo ombra rimane nullo qualunque sia la quanita aggiuntiva. Il decremento consentito e perolimitato (nel nostro esempio a 150), perche un’eccessiva riduzione della risorsa puo portarla adessere vincolante. Il decremento massimo consentito e pari esattamente al valore di Tolleranzarelativo al vincolo riportato nel Rapporto Valori.

E importante ricordare che nell’analisi che abbiamo fatto, e stato modificato un solo input allavolta.Per sapere cosa succede modificando piu input alla volta e necessario utilizzare il Solutore.

214

Page 220: Dispense del corso RICERCA OPERATIVA

400

x*=(500,250)

550

aumento di P3 a 550

400x* diminuzione di P3 a 250

250

(a) Aumento di risorsaPreparato 3 fino a 550

(b) Diminuzione di risorsaPreparato 3 fino a 250

Figura 13.13: Interpretazione grafica del cambiamento del valore della risorsa “prepapato 3”del problema in § 2.4.1.

Linee guida nell’uso del Rapporto di sensibilita

1. Nella sezione relativa alle Celle variabili se una variabile e attualmente nulla, il suo costoridotto indica quanto piu “vantaggiosa” (ad esempio minor costo o maggior profitto) deveessere il suo coefficiente nella funzione obiettivo in modo che tale variabile risulti positivanella soluzione ottima.

2. Nella sezione relativa alle Celle variabili se sono presenti dei vincoli di limitazione supe-riore o inferiore su una variabile, il suo costo ridotto indica quanto piu “svantaggiosa”(ad esempio maggior costo o minor profitto) deve essere il suo coefficiente nella funzioneobiettivo in modo che il valore di tale variabile sia diminuito.

3. Nella sezione relativa ai Vincoli, il valore del prezzo ombra indica di quanto aumenterebbeil valore della funzione obiettivo (per un problema di massimizzazione) per un incrementounitario del r.h.s. del vincolo corrispondente.

Rapporto limiti

215

Page 221: Dispense del corso RICERCA OPERATIVA

Microsoft Excel 10.0 Rapporto sensibilitàFoglio di lavoro: [allocazione.xls]Allocazione otti ma di risorseData di creazione: 28/04/2004 16.59.50

Celle variabiliValore ridotto oggettivo consentito consentito

Cella Nome finale Costo Coefficiente Incremento Decremento$B$9 variabili di decisione colorante 1 500 0 7 3 2$C$9 variabili di decisione colorante 2 250 0 10 4 3

VincoliValore ombra Vincolo consentito consentito

Cella Nome finale Prezzo a destra Incremento Decremento$B$14 preparato 1 utilizzato 750 4 750 250 150$B$15 preparato 2 utilizzato 1000 3 1000 150 250$B$16 preparato 3 utilizzato 250 0 400 1E+30 150

Figura 13.14: Rapporto Sensibilita per il problema di allocazione ottima di risorse in § 2.4.1.

Il Rapporto limiti produce informazioni poco interessanti gia presenti negli altri Rapporti.Non verranno discusse affatto.

216

Page 222: Dispense del corso RICERCA OPERATIVA

Microsoft Excel 10.0 Rapporto limitiFoglio di lavoro: [allocazione.xls]Rapporto limiti 1Data di creazione: 28/04/2004 16.59.50

ObiettivoCella Nome Valore

$B$19 profitto max 6000

Variabile Limite Risultato Limite RisultatoCella Nome Valore inferiore obiettivo superiore obiettivo

$B$9 variabili di decisione colorante 1 500 0 2500 500 6000$C$9 variabili di decisione colorante 2 250 0 3500 249,9999999 5999,999999

Figura 13.15: Rapporto Limiti per il problema di allocazione ottima di risorse in § 2.4.1.

217

Page 223: Dispense del corso RICERCA OPERATIVA

Figura 13.16: Installazione del solutore in Excel.

218

Page 224: Dispense del corso RICERCA OPERATIVA

Appendice A

Richiami di Analisi e geometria

A.1 Richiami sulla differenziazione in Rn

Richiamiamo alcuni concetti essenziali sulla differenziazione delle funzioni definite su Rn, la cuiconoscenza e richiesta nello studio dei problemi di ottimizzazione di tipo differenziabile. Nelseguito supponiamo, per semplicita, che f sia una funzione definita su tutto Rn; e immediatotuttavia estendere le definizioni qui riportate al caso in cui x appartiene ad un insieme apertoD ⊆ Rn.

A.1.1 Derivate del primo ordine di una funzione reale

Un qualsiasi vettore assegnato d ∈ Rn non nullo definisce una direzione in Rn. Una primanozione di derivata che si puo introdurre e quella di derivata direzionale.

Definizione A.1.1 (Derivata direzionale)

Sia f : Rn → R. Si dice che f ammette derivata direzionale Df(x, d) nel punto x ∈ Rn lungola direzione d ∈ Rn se esiste finito il limite

limt→0+

f(x + td)− f(x)t

:= Df(x, d).

Se consideriamo f come funzione di una sola variabile xj , supponendo fissate tutte le altrecomponenti possiamo introdurre il concetto di derivata parziale rispetto a xj .

Definizione A.1.2 (Derivata parziale)

Sia f : Rn → R. Si dice che f ammette derivata parziale ∂f(x)/∂xj nel punto x ∈ Rn rispettoalla variabile xj se esiste finito il limite

limt→0

f(x1, . . . , xj + t, . . . , xn)− f(x1, . . . , xj , . . . , xn)t

:=∂f(x)∂xj

.

L’esistenza della derivata parziale ∂f(x)/∂xj nel punto x implica, ovviamente, che esistano ecoincidano le derivate direzionali lungo le direzioni ej e −ej .

Se f ammette derivate parziali rispetto a tutte le componenti possiamo definire il gradiente dif nel punto x.

219

Page 225: Dispense del corso RICERCA OPERATIVA

Definizione A.1.3 (Gradiente)

Sia f : Rn → R ed x ∈ Rn. Se esistono le derivate parziali prime di f in x definiamo gradientedi f in x il vettore ∇f(x) ∈ Rn

∇f(x) :=

∂f(x)∂x1

. . .

∂f(x)∂xn

.

A differenza di quanto avviene sulla retta reale, nel caso di Rn l’ esistenza del gradiente nonconsente, in generale, di poter approssimare, con la precisione voluta, il valore di f nell’intornodi x con una funzione lineare dell’incremento. Una tale possibilita e legata ad una nozione piuforte di differenziabilita, che non riportiamo qui.

E da notare che la sola esistenza di ∇f non implica, in generale, la proprieta di differen-ziabilita. Si dimostra, tuttavia, che se ∇f(x) esiste ed e continuo rispetto ad x, allora f edifferenziabile in x. (La continuita del gradiente e una condizione sufficiente per la differenzia-bilita in senso forte.)

Dal teorema precedente segue che se ∇f(x) e continuo si puo scrivere, per ogni d ∈ Rn:

f(x + d) = f(x) +∇f(x)′d + α(x, d), (A.1)

dove α(x, d) soddisfa:

lim‖d‖→0

α(x, d)‖d‖ = 0.

Se f e differenziabile, e immediato verificare che esiste anche la derivata direzionale di f lungouna qualsiasi direzione d ∈ Rn e risulta:

limt→0+

f(x + td)− f(x)t

= ∇f(x)′d.

Indicheremo con il nome approssimazione lineare della funzione f(x) nell’intorno di un puntoassegnato x, la funzione

fLIN (x) = f(x) +∇f(x)T (x− x)

ottenuta dalla f(x + td) come in (A.1) trascurando il termine α(x, d) in cui si pone d = x− x,t = 1.

A.1.2 Differenziazione di un vettore di funzioni

Sia g : Rn → Rm un vettore a m componenti di funzioni reali. Possiamo introdurre la definizioneseguente, che estende la nozione di gradiente.

Definizione A.1.4 (Matrice Jacobiana)

220

Page 226: Dispense del corso RICERCA OPERATIVA

Sia g : Rn → Rm e x ∈ Rn. Se esistono le derivate parziali prime ∂gi(x)/∂xj, per i = 1 . . . , me j = 1 . . . n in x definiamo matrice Jacobiana di g in x la matrice m× n

J(x) :=

∂g1(x)∂x1

. . .∂g1(x)∂xn

. . . . . . . . .

∂gm(x)∂x1

. . .∂gm(x)

∂xn

.

Valgono le stesse considerazioni sulla differenziabilita che abbiamo fatto nel paragrafo prece-dente, ovvero, la sola esistenza della matrice Jacobiana in x non implica la differenziabilita. Sepero J(x) e continua si puo scrivere, per ogni d ∈ Rn:

g(x + d) = g(x) + J(x)d + γ(x, d),

dove γ(x, d) soddisfa:

lim‖d‖→0

γ(x, d)‖d‖ = 0.

Se m = 1 si ha ovviamente J(x) = ∇g(x)′.Per analogia con la notazione usata per il gradiente si puo usare anche la notazione ∇g(x)′ perindicare la derivata prima di g, ossia

∇g(x) = J(x)′ = (∇g1(x), . . . ,∇gm(x) ) .

A.1.3 Derivate del secondo ordine di una funzione reale

Sia f : Rn → R una funzione reale. Con riferimento alle derivate del secondo ordine, possiamointrodurre innanzitutto la definizione seguente.

Definizione A.1.5 (Matrice Hessiana)

Sia f : Rn → R e x ∈ Rn. Se esistono le derivate parziali seconde ∂2f(x)/∂xi∂xj, peri = 1 . . . , n e j = 1 . . . n in x definiamo matrice Hessiana di f in x la matrice n× n

∇2f(x) :=

∂2f(x)∂x1

2 . . .∂2f(x)∂x1∂xn

. . . . . . . . .

∂2f(x)∂xn∂x1

. . .∂2f(x)∂xn

2

.

Se ∇2f(x) e continua si puo scrivere, per ogni d ∈ Rn:

f(x + d) = f(x) +∇f(x)T d +12dT∇2f(x)d + β(x, d), (A.2)

dove β(x, d) soddisfa:

lim‖d‖→0

β(x, d)‖d‖2 = 0.

221

Page 227: Dispense del corso RICERCA OPERATIVA

Indicheremo con il nome approssimazione quadratica della funzione f(x) nell’intorno di un puntoassegnato x, la funzione

fQUAD(x) = f(x) +∇f(x)T (x− x) +12(x− x)T∇2f(x)(x− x)

ottenuta dalla f(x + td) come in (A.2) trascurando il termine β(x, d) in cui si pone d = x− x,t = 1.

Nelle stesse ipotesi si ha anche, come si e detto, che la matrice Hessiana ∇2f(x) e una matricesimmetrica, ossia si ha, per i, j = 1 . . . , n:

∂2f(x)∂xi∂xj

=∂2f(x)∂xj∂xi

.

Osserviamo anche che se ∇2f(x) e continua si puo scrivere

∇f(x + d) = ∇f(x) +∇2f(x)d + γ(x, d),

con

lim‖d‖→0

γ(x, d)‖d‖ = 0.

A.1.4 Teorema della media e formula di Taylor

Nel caso di funzioni differenziabili valgono anche i risultati seguenti (che si possono tuttaviastabilire sotto ipotesi piu deboli).

Teorema A.1.6 (Teorema della Media)

Sia f : Rn → R una funzione differenziabile. Allora, per ogni h ∈ Rn, si puo 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 puo scrivere:

f(x + h) = f(x) + h′∇f(x) +12h′∇2f(w)h

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, ∇2f(x) = 0;

f(x) = 12x′Qx + c′x, (con Q simmetrica); si ha: ∇f(x) = Qx + c; ∇2f(x) = Q;

f(x) = ‖Ax− b‖2; si ha: ∇f(x) = 2A′(Ax− b); ∇2f(x) = 2A′A

222

Page 228: Dispense del corso RICERCA OPERATIVA

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.

[3] Fabio Schoen Modelli di Ottimizzazione per le decisioni. Societa Editrice Esculapio,Bologna, 2006.

[4] I. A. Markham e S.W. Palocsay Scenario Analysis in Spreadsheets with Excel’sScenario Tool. INFORMS Transactions on education 6:2(23-31)

[5] Risolutore di Excel in Excel 97 http://support.microsoft.com/kb/843304/it

[6] Joern Meissner, Thanh-Ha Nguyen An Introduction to Spreadsheet OptimizationUsing Excel Solver. http://www.meiss.com/en/publications/spreadsheet-optimization-solver.html

223

Page 229: Dispense del corso RICERCA OPERATIVA

Indice

1 Introduzione 01.1 Breve storia della Ricerca Operativa . . . . . . . . . . . . . . . . . . . . . . . . . 01.2 La Ricerca Operativa oggi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 L’approccio modellistico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.4 Un primo esempio di costruzione di un modello matematico . . . . . . . . . . . . 11

2 Modelli di Ottimizzazione 142.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.2 Definizioni preliminari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.3 Problemi di Programmazione Matematica . . . . . . . . . . . . . . . . . . . . . . 172.4 Esempi di modelli di Programmazione Matematica . . . . . . . . . . . . . . . . . 19

3 Modelli di Programmazione Lineare 263.1 Struttura di un problema di Programmazione Lineare . . . . . . . . . . . . . . . 263.2 Trasformazioni equivalenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.2.1 Funzione obiettivo di tipo max . . . . . . . . . . . . . . . . . . . . . . . . 293.2.2 Funzione modulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.3 Semplici esempi di problemi di programmazione lineare . . . . . . . . . . . . . . 323.3.1 Problemi di miscelazione. . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.3.2 Modelli di trasporto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.3.3 Un problema di Yield Management ferroviario . . . . . . . . . . . . . . . 393.3.4 Minimizzazione dello scarto massimo . . . . . . . . . . . . . . . . . . . . . 40

4 Soluzione grafica di problemi PM in 2 variabili 424.1 Rappresentazione di vincoli nel piano cartesiano . . . . . . . . . . . . . . . . . . . 42

4.1.1 Vincoli lineari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.1.2 Vincoli quadratici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.2 Rappresentazione di funzioni obiettivo . . . . . . . . . . . . . . . . . . . . . . . . 454.2.1 Funzioni lineari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.2.2 Funzioni quadratiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.3 Esempi di risoluzione grafica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5 Problemi di ottimizzazione convessa e concava 605.1 Insiemi Convessi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

5.1.1 Poliedro e punti estremi di un insieme convesso . . . . . . . . . . . . . . . 64

1

Page 230: Dispense del corso RICERCA OPERATIVA

5.2 Funzioni convesse e concave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655.3 Problemi di ottimizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

5.3.1 Problema di ottimizzazione convesso . . . . . . . . . . . . . . . . . . . . . 695.3.2 Problema di ottimizzazione concavo . . . . . . . . . . . . . . . . . . . . . 70

5.4 Caratterizzazione funzioni convesse continuamente differenziabili . . . . . . . . . 715.4.1 Funzioni e forme quadratiche . . . . . . . . . . . . . . . . . . . . . . . . . 71

6 Problemi di ottimizzazione non vincolata 756.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756.2 Direzioni di discesa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756.3 Ottimizzazione non vincolata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806.4 Utilizzo algoritmico delle condizioni di ottimo non vincolate . . . . . . . . . . . . 886.5 Modelli di ottimizzazione non vincolata . . . . . . . . . . . . . . . . . . . . . . . 91

7 Ottimizzazione vincolata 937.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 937.2 Direzione ammissibile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 937.3 Condizioni di ottimo vincolate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 957.4 Ottimizzazione su insieme convesso generico . . . . . . . . . . . . . . . . . . . . . 987.5 Ottimizzazione su un poliedro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1007.6 Direzioni ammissibili di un poliedro . . . . . . . . . . . . . . . . . . . . . . . . . . 1017.7 Condizioni di ottimo su un poliedro . . . . . . . . . . . . . . . . . . . . . . . . . 106

7.7.1 Condizioni di ottimo per la Programmazione Lineare . . . . . . . . . . . . 1107.8 Utilizzo algoritmico delle condizioni di ottimo per problemi con vincoli convessi . 111

8 Teoremi dell’alternativa 1138.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1138.2 Il Lemma di Farkas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

9 Le condizioni di Karush-Kuhn-Tucker 1189.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1189.2 Le condizioni di Karush-Kuhn-Tucker . . . . . . . . . . . . . . . . . . . . . . . . 118

10 Teoria della Programmazione Lineare 12910.1 Caratterizzazione dei vertici di un poliedro . . . . . . . . . . . . . . . . . . . . . 12910.2 Il teorema fondamentale della PL . . . . . . . . . . . . . . . . . . . . . . . . . . . 13510.3 Cenni sul metodo del simplesso per la Programmazione Lineare . . . . . . . . . . 140

10.3.1 Soluzione di Base Ammissbile (SBA) e costi ridotti . . . . . . . . . . . . . 142

11 Condizioni di ottimo per la PL e teoria della dualita 14511.1 Le condizioni di ottimalita nella Programmazione Lineare . . . . . . . . . . . . . 14511.2 Costruzione del duale di un problema di PL . . . . . . . . . . . . . . . . . . . . . 15111.3 Il problema di Kanpsack continuo . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

11.3.1 Analisi di sensitivita alla variazione dei dati . . . . . . . . . . . . . . . . . 15811.3.2 Interpretazione geometrica della variazione dei dati sui problemi primale

duale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

2

Page 231: Dispense del corso RICERCA OPERATIVA

11.3.3 Interpretazione economica della dualita e prezzi ombra . . . . . . . . . . . 16111.4 Interpretazione della Dualita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

11.4.1 Il duale del problema di allocazione ottima di risorse . . . . . . . . . . . . 16311.4.2 Il duale del problema di miscelazione. . . . . . . . . . . . . . . . . . . . . 16411.4.3 Il duale del problema dei trasporti . . . . . . . . . . . . . . . . . . . . . . 166

12 Programmazione Lineare Intera 16912.1 Formulazioni Classiche di Problemi Lineari Interi . . . . . . . . . . . . . . . . . . 170

12.1.1 Knapsack (zaino) binario . . . . . . . . . . . . . . . . . . . . . . . . . . . 17012.1.2 Assegnamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

12.2 Uso di variabili booleane per modellare condizioni logiche . . . . . . . . . . . . . 17312.2.1 Problema del costo fisso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17312.2.2 Variabili indicatrici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17712.2.3 Il problema del commesso viaggiatore . . . . . . . . . . . . . . . . . . . . 179

12.3 Relazioni tra PL e PLI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18012.4 Proprieta di interezza e totale unimodularita . . . . . . . . . . . . . . . . . . . . 18512.5 Tecniche di soluzione per problemi di PLI . . . . . . . . . . . . . . . . . . . . . . 188

12.5.1 La Tecnica del Branch and Bound . . . . . . . . . . . . . . . . . . . . . . 18912.5.2 Esempi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

12.6 Il problema del Knapsack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

13 Uso di Excel per l’analisi e soluzione di Modelli di Programmazione Matem-atica 20213.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20213.2 Uso di fogli elettronici per la descrizione di un modello matematico . . . . . . . . 20313.3 Analisi di scenario o “What if..?” analisi . . . . . . . . . . . . . . . . . . . . . . . 20513.4 Uso di Excel-Solver per la soluzione del modello matematico . . . . . . . . . . . . 20713.5 Soluzione di un modello di PL o PLI. . . . . . . . . . . . . . . . . . . . . . . . . . 21013.6 Ulteriori informazioni fornite dal Solutore . . . . . . . . . . . . . . . . . . . . . . 211

A Richiami di Analisi e geometria 221A.1 Richiami sulla differenziazione in Rn . . . . . . . . . . . . . . . . . . . . . . . . . 221

A.1.1 Derivate del primo ordine di una funzione reale . . . . . . . . . . . . . . . 221A.1.2 Differenziazione di un vettore di funzioni . . . . . . . . . . . . . . . . . . 222A.1.3 Derivate del secondo ordine di una funzione reale . . . . . . . . . . . . . . 223A.1.4 Teorema della media e formula di Taylor . . . . . . . . . . . . . . . . . . . 224

3