• Non ci sono risultati.

11.2 Uso di fogli elettronici per la descrizione di un modello matematico

N/A
N/A
Protected

Academic year: 2021

Condividi "11.2 Uso di fogli elettronici per la descrizione di un modello matematico"

Copied!
20
0
0

Testo completo

(1)

Capitolo 11

Uso di Excel per l’analisi e soluzione di Modelli di Programmazione

Matematica

11.1 Introduzione

La soluzione grafica di problemi di ottimizzazione che abbiamo visto nel Capitolo 3 pu`o essere utilizzata solo nel caso in cui il numero di variabili sia due. I problemi applicativi hanno normalmente pi`u di due variabili. `E necessario utilizzare sistemi di calcolo automatici per trattare sia grandi quantit`a di dati che di operazioni logico-aritmetiche. Esistono molti software per risolvere problemi di Programmazione Matematica a diversi livelli di complessit`a. Alcuni prodotti software integrano anche linguaggio di model- lizzazione con il/i solutore/i in un unico pacchetto commerciale. 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’interfaccia completa tra i differenti livelli di formulazione, soluzione, e analisi della modellizzazione. I sistemi di tipo stand-alone tendono ad essere i pi`u vantaggiosi a livello di costruzione di prototipo, quando il lavoro `e incentrato sulla costruzione di un modello accettabile e nel dimostrare che l’approccio `e sufficientemente promettente per giustificare investimenti maggiori. In questo modo per`o si incoraggia fortemente (quando non `e obbligato) l’uso di un particolare solutore. Quindi `e una scelta ragionevole in situazioni in cui la velocit`a e la versatilit`a non sono le questioni pi`u importanti. Questo `e spesso il caso di sistemi altamente specializzati, in cui la qualit`a dell’interfaccia `e l’aspetto fondamentale e l’insieme di problemi che il solutore deve trattare appartengono ad una classe relativamente stretta e ben definita.

Rientrano in questa categoria alcuni dei pi`u elementari linguaggi di modellizzazione cos`ı come i prodotti di ottimizzazione inseriti in programmi di foglio elettronico (spreadsheet).

In questo capitolo utilizzeremo Microsoft c°Office Excel 2003 e il suo solutore Excel Solver (http://www.solver.com/).

11.2 Uso di fogli elettronici per la descrizione di un modello matematico

Il primo passo per l’utilizzo di fogli elettronici per l’analisi e la soluzione di un problema di ottimizzazione richiede la conversione della formulazione del problema in un foglio elettronico utilizzabile da opportuno software. Si tratta di rappresentare i dati, le variabili, le funzioni di vincolo, e la funzione obiettivo.

Ci sono diversi modi di organizzare un foglio elettronico per rappresentare un modello di ottimiz- zazione. In generale per`o `e consigliabile seguire uno stesso schema di base che consente una immediata

(2)

visualizzazione ed individuazione dei parametri e dei dati. In particolare divideremo la costruzione del foglio elettronico in quattro sezioni: Dati di ingresso, Variabili di decisione, Funzione obiettivo, Vincoli.

A titolo esemplificativo, consideriamo il semplice modello di capital budgeting dell’esempio 1.2.1 del capitolo 1, la cui formulazione matematica `e:

max (20x1+ 5x2+ 10x3)

750x1+ 200x2+ 800x3≤ 1000 xi ∈ {0, 1} i = 1, 2, 3.

Inserimento dati di ingresso. Si tratta di inserire in una tabella Excel i valori numerici che sono utilizzati nel modello.

I dati non devono essere posti necessariamente in una posizione particolare nella tabella, ma nel seguito, per identificarli in modo facile, sono stati posizionati il pi`u possibile nella parte alta a sinistra del foglio elettronico. In alcuni casi pu`o essere utile deviare da questa convenzione, quando alcune posizioni sono pi`u naturali ed intuitive.

Le celle di una tabella excel sono individuate dalla posizione di colonna (indicata da una lettera dell’alfabeto) e di riga (un numero).

Figura 11.1: Dati relativi al problema di Capital Budgeting.

In figura 11.1 `e riportato il file Excel relativo all’inserimento dei primi dati di Capital Budgeting.

Per ciascun progetto 1,2,3 sono riportati i valori di investimento (celle B3, C3, D3), ovvero i valori dei coefficienti dei vincoli, e i guadagni (celle B4, C4, D4), ovvero i coefficienti della funzione obiettivo.

Sono state incluse delle caselle di commento (le prime due righe e la prima colonna) che consentono di identificare facilmente di che tipo di dato si tratta (investimento/guadagno relativo al progetto 1/2/3).

Se cambiano i dati (costi, guadagni), `e necessario modificare questa parte del file Excel.

Si pu`o notare che non `e stato ancora inserito il valore del dato relativo al budget. In effetti, questo valore ha una posizione pi`u naturale come si vedr`a nel seguito.

In figura 11.2 `e riportato il file Excel relativo al modello completo, che descriviamo in dettaglio.

Celle variabili (Variabili di decisione). Le celle variabili rappresentano il valore delle variabili di decisione del modello. Al momento dell’utilizzo del solutore, queste celle sono considerate come incognite e come output conterranno il valor ottimo della soluzione. Nel nostro esempio le variabili di decisione x1, x2, x3sono assegnate alle celle B7, C7, D7. `E necessario assegnare un valore iniziale a queste celle per poterle utilizzare. Nel nostro esempio x1= 0=B7, x2= 1=C7, x3= 0=D7. Osserviamo che nell’esempio di capital budgeting le variabili possono assumere solo valori interi (in particolare 0,1). In questa fase di rappresentazione del modello in una tabella excel, non `e possibile dare indicazioni di questo tipo.

E utile inserire delle celle di tipo descrittivo sopra le celle variabili. Ad esempio, noi abbiamo indicato il` nome della variabile. Inoltre le celle variabili sono evidenziate con un colore azzurro (vedi figura 11.2).

(3)

Il colore non ha alcun ruolo nel foglio elettronico se non stilistico. Evidenziare le celle usando un colore diverso (o circondandole con una linea pi`u evidente), rende ilfoglio elettonico pi`u semplice da leggere.

Celle vincoli. Si tratta di creare delle celle che contengano le formule che definiscono il “left hand side” (l.h.s.) dei vincoli. Il right hand side =r.h.s del vincolo DEVE essere un valore numerico e deve essere contenuto in un’altra cella.

Nel nostro esempio il valore del l.h.s. del vincolo, cio`e la formula 8x1+ 6x2+ 5x3, `e inserito in cella B10. Poich´e il valore del l.h.s deve essere confrontato con il valore del r.h.s. `e utile porre questi due valori “vicini”. La posizione “naturale” del valore di budget `e nella cella D10 separata dalla B10 da una cella intermedia C10 che contiene il simbolo ≤. Tale simbolo non ha alcuna funzione di controllo, ma serve solo a rendere pi`u leggibile il file.

. Il valore in B10 `e calcolato inserendo una funzione Excel. Si `e utilizzata la funzione B10=MATR.SOMMA.PRODOTTO(B3:D3;B7:D7) 1

che realizza la seguente operazione

B10=B3*B7+C3*C7+D3*D7

2

E possibile anche inserire in una cella, una funzione logica che mi indichi se il vincolo `e soddisfato` o violato. In particolare, nel nostro esempio, abbiamo inserito nella cella E7 (adiacente al valore delle variabili di decisione) la funzione logica Excel “SE”, che restituisce restituisce il valore “ammissibile”

(vero) o “non ammissibile” (falso) in base alla differenza tra il valore delle celle D10 (budget) e B10 (spesa effettiva). La sintassi `e:

=SE(D10-B10 >= 0;"AMMISSIBILE";"NON AMMISSIBILE") Questa opzione pu`o essere utile nel caso si utilizzi Excel per analisi di scenario.

Celle obiettivo. La cella obiettivo contiene il valore della funzione obiettivo. `E possibile utilizzare altre celle per ottenere risultati intermedi. Il valore della funzione obiettivo `e ovviamente una funzione dei dati presenti nelle celle variabili. Anche in questo caso `e opportuno inserire delle celle di commento che aiutino nella visualizzazione.

Nel nostro esempio si tratta di assegnare la formula 20x1+ 5x2+ 10x3. Il valore della funzione obiettivo

`e assegnato alla cella B13 ed `e dato dalla formula B13 = B4 ∗ B7 + C4 ∗ C7 + D4 ∗ D7 realizzata con la funzione

B10=MATR.SOMMA.PRODOTTO(B4:D4;B7:D7)

11.3 Uso di excel per analisi di scenario

L’uso di Excel come foglio elettronico per una descrizione del modello, pu`o essere utilizzata per verificare le conseguenze di diversi possibili cambiamenti.

La tabella costruita fino a questo punto consente di fare semplici analisi di possibili scenari, modificando manualmente il valore delle variabili di decisione nelle celle B7, C7, D7. Ad esempio nella tabella di figura 11.3 `e stata data un diverso valore alle celle variabili, ottenendo una soluzione ammissibile con una certo valore della funzione obiettivo.

1La sintassi della funzione `e =MATR.SOMMA.PRODOTTO(Blocco1,Blocco2) e moltiplica ogni cella del Blocco1 e del Blocco2 e somma il risultato. In generale i blocchi devono avere la stessa dimensione, cio`e stesso nu- mero di righe e stesso numero di colonne. Nella versione inglese, la funzione `e =SUMPRODUCT(Block1,Block2).

2Nel caso in cui sia necessari riprodurre una sequenza di formule di questo tipo in cui cambia solo un blocco ad es. =B3*B8+C3*C8+D3*D8,per potervottenre valori coretti effetuando la copia della cella originaria `e necessario inserire i ”dollari” nela formula, ovvero =MATR.SOMMA.PRODOTTO(B3:D3;B7:D7)

(4)

Figura 11.2: Tabella Excel relativa al problema di Capital Budgeting.

In particolare, possono essere modificati anche i valori dei dati, ottenendo immediatamente il nuovo valore del guadagno e dell’investimento necessario.

Questo tipo di approccio `e detto “What if..?” (letteralmente “Che succede se...?”) e la sua flessibilit`a costituisce l’aspetto che rende l’uso di fogli elettronici un utile supporto alle decisioni. Dal punto di vista dell’ottimizzazione, non `e stato fatto ancora nulla e la soluzione ottenuta con analisi di scenario non ha nessuna garanzia di essere quella ottima n´e una sua approssimazione.

Si tratta di una formalizzazione del modello esaustivo descritto nell’esempio 1.2.1. `E ovvio che i pos- sibili scenari possono essere “troppi” per poterli analizzare tutti anche nel caso in cui siano finiti come nell’esempio di Capital Budgeting che stiamo analizzando.

Microsoft c°Office Excel 2003 include nel Menu´u Strumenti il tool ”Scenari...” che consente di effettuare an analisi du tipo “What If” memorizzando in modo permanente le combinazioni di dati di input che sono state utilizzate. Supporta anche la generazione automantica di un Riepilogo Scenari che realizza un confronto affaincando i risultati.

E utile invece utilizzare il modello in forma tabellare cos`ı costruito per determinare la soluzione ottima` mediante un algoritmo di ottimizzazione.

11.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 Programmazione matematica (PL, PLI, e alcuni classi particolari di PNL). La procedura di ottimizzazione utilizzata per la PL `e il metodo del simplesso. Non entreremo affatto nel merito delle procedure utilizzate per la PNL e la PLI.

(5)

Figura 11.3: Analisi di scenario per il problema di Capital Budgeting.

Installazione Solutore. Il solutore `e parte integrante di Excel. Si trova la voce Solutore sotto il men`u Strumenti (Tools). Nel caso la voce “Solutore” non compaia nel men`u “Strumenti”, deve essere installato procedendo come segue (vedi anche figura 11.17 a fine capitolo):

1. dalla voce del men`uStrumentiselezionare la voceComponenti aggiuntivi 2. selezionareComponente aggiuntivo Solutoree cliccare OK.

Nel caso la voce “Componente aggiuntivo Solutore” non compaia nemmeno sotto la voce “Componenti aggiuntivi”, significa che Excel non `e stato installato completamente ed `e necessario avere il programma di setup di Excel.

Impostazione del modello per il Solutore. Dalla voceStrumentiselezionareSolutore.

A questo punto appare la finestra Parametri del Risolutoreillustrata in Figura 11.4. Si tratta della finestra principale del Risolutore ed `e utilizzata per identificare gli elementi che costituiscono il modello.

Nella parte in alto a sinistra della finestra compare l’etichetta Imposta cella obiettivo e una cella che deve contenere l’indirizzo della cella della funzione obiettivo. Questa cella pu`o essere “editata” oppure riempita con il corretto valore semplicemente cliccando sulla cella corrispondente sul foglio elettronico (N.B. La finestra “Parametri del Risolutore” pu`o essere 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 di massimiz- zazione o di minimizzazione, selezionando il tastoMaxo Minnella riga successiva.

Le variabili di decisione devono essere specificate indicando nella cella etichettata conCambiando le celle (By Changing Cells) l’indirizzo delle celle variabili. Anche in questo caso `e possibile scrivere direttamente nella cella o riempirla selezionando sul foglio elettronico le celle variabili. Un intervallo di celle pu`o essere specificato, scrivendo il valore della prima ed ultima cella separati da ’due punti’. Ulteriori variabili non contigue possono essere aggiunte separate da ’virgola’.

(6)

Seleziona la funzione max o min

come richiesto dal problema Specifica la cella che contiene il valore della funzione obiettivo

In quest’area sono elencati tutti i vincoli del modello

Indica le celle che contengono le variabili

Clicca qui per risolvere il modello

Clicca qui per specificare il tipo di modello e I parametri del risolutore

Clicca qui per aggiungere un nuovo vincolo

Seleziona un vincolo e clicca qui per modificarlo

Seleziona un vincolo e clicca qui per eliminarlo

Clicca qui per uscire senza risolvere il modello

Figura 11.4: FinestraParametri del Risolutore.

I vincoli devono essere elencati nella sottofinestraVincoli: (Subject to the Constraints). Selezionando il tastoAggiungi(Add) compare la finestraAggiungi vincolorappresentata in figura 11.5.

I vincoli possono essere inseriti uno alla volta. Questo procedimento pu`o per`o essere molto lungo nel caso di problemi con molti vincoli. in alternativa si possono inserire pi`u vincoli insieme se sono adiacenti e se hanno lo stesso vincolo relazionale (cio`e ≤, ≥ oppure =). Il l.h.s del vincolo deve essere inserito nella cella con etichettaRiferimento:. Successivamente cliccando il tastosi apre una tendina che consente di specificare il tipo di vincolo. Il r.h.s. dei vincoli deve essere inserito nella finestra con etichettaVincolo:.

Si pu`o inserire il valore della cella appropriata semplicemente “cliccando” sulla cella corrispondente nel foglio Excel.

N.B. Il r.h.s. del vincolo immesso nel solutore DEVE esser un valore numerico e quindi non deve contenere funzioni. Tipicamente se erroneamente si inserisce una funzione nel r.h.s., excel Solver interpreta il modello come Non Lineare e applica procedure di ottimizzazione diverse dal simplesso non arrivando a convergere al minimo.

Tra le possibili tipologie di vincoli compaiono anche le opzioniintebin. Servono rispettivamente a speci- ficare che le variabili possono assumere solo valori interi o binari. In questo caso nel campoRiferimento:

devono essere inserite le variabili interessate, mentre il campoVincolo: rimane vuoto. Nel nostro esem- pio le variabili sono binarie; questo vincolo pu`o essere specificato in modo diretto indicando che le celle B7,C7,D7 sono binarie, oppure imponendo alle variabili la coppia di vincoli B7,C7,D7≥ 0, B7,C7,D7≤ 1 e specificando che si tratta di variabili intere. In Figura 11.6 `e illustrata questa procedura. Notiamo che i vincoli di non negativit`a possono anche essere omessi in questa fase di specifica del modello; in questo caso devono per`o essere specificati tra le Opzioni del Solutore (vedi paragrafo successivo).

Prima della soluzione del modello `e necessario selezionare il tasto Opzioni sulla destra della finestra

“Parametri del Risolutore”. Nel caso si stia risolvendo un problema di Programmazione Lineare (o di Programmazione Lineare Intera) `e necessario selezionare l’opzione Presupponi il modello lineare nella finestra “Opzioni del Risolutore”. `E anche possibile specificare qui che le variabili sono non negative, se non `e gi`a stato specificato esplicitamente tra i vincoli del modello, selezionando l’opzionePresupponi non negativo. Vedi la Figura 11.6 per i dettagli.

A questo punto, uscendo dalla finestra con il tastoOK, l’attuale impostazione delle opzioni del Solutore

(7)

Specifica la/e cella/e che contengono il l.h.s. del/dei vincolo/i

Specifica la/e cella/e che contengono il r.h.s. del/dei vincolo/i

Clicca qui per selezionare l’espressione logica appropriata

Clicca qui per definire l’ultimo vincolo e ritornare alla finestra

“Parametri del Risolutore”

Clicca qui per definire tutti eccetto l’ultimo vincolo e ritornare alla Finestra “Parametri del Risolutore”

Microsoft Excel Help system Clicca qui per tornare

alla finestra “Parametri del Risolutore” senza aggiungere vincoli

Figura 11.5: Finestra Aggiungi Vincolo.

`e salvata insieme con il foglio Excel e ne diventa parte integrante.

11.5 Soluzione di un modello di PL o PLI.

Una volta definiti i parametri del Risolutore e settati i valori nelle Opzioni, si pu`o tentare di risolvere il problema pigiando il tasto Risolvi(Solve). Quando il Solutore ha terminato il calcolo della soluzione ottima, compare la finestraRisultati del Solutorerappresentata in Figura 11.7.

Leggere i risultati di ottimizzazione Il messaggio in alto indica se il solutore `e stato in grado o meno di determinare la soluzione ottima del modello. Qualora non sia stato possibile determinare la soluzione ottima, `e possibile cambiare alcune delle opzioni nella finestraOpzioni del Solutoreper cercare di migliorare le prestazioni dell’algoritmo. In particolare, si possono cambiare i valori di tempo mas- simo, iterazioni, approssimazione, tolleranza, convergenza che stabiliscono i termini per cui l’algoritmo utilizzato dal Solutore si ferma.

Cliccando il tastoOK, si torna al foglio Excel. Si verifica che il valore di alcune celle `e stato modificato.

In particolare le celle di decisione contengono il valore della soluzione (ottima) determinata dal Solutore, e la cella obiettivo contiene il corrispondente valore della funzione obiettivo. Anche il valore del l.h.s dei vincoli `e calcolato utilizzando il valore corrente delle variabili di decisione.

Cambiando i dati del modello, la soluzione ottima non viene automaticamente aggiornata. `E quindi necessario far risolvere nuovamente il problema.

La tabella Excel per il problema di capital Budgeting risolto `e riportata in Figura 11.8.

Osserviamo che abbiamo risolto un problema di PLI. Excel-Solver `e in grado di risolvere problemi di PLI di piccole dimensioni. Quando il numero di variabili `e troppo alto, la determinazione della soluzione ottima, pu`o richiedere troppo tempo o non convergere affatto.

(8)

Seleziona questa opzione se le funzioni che definiscono vincoli e obiettivo sono lineari

Seleziona questa opzione se le variabili Sono vincolate ad essere non negative e non e` gia` stato specificato nei vincoli

m

Parametri per modelli non lineari Parametri

per algoritmo

Figura 11.6: Opzioni del risolutore.

11.6 Ulteriori informazioni fornite dal Solutore

Tutti i software di PL forniscono un numero di informazioni aggiuntive oltre al valore ottimo delle variabili di decisione e della funzione obiettivo.

Il Solver di Microsoft Excel produce tre fogli opzionali che sono: Rapporto valori, Rapporto sensibilit`a eRapporto limiti. Da notare che il Rapporto sensibilit`ae ilRapporto limitisono privi di significato per problemi a variabili intere, come sar`a chiaro pi`u avanti. Per questo motivo, illustreremo i risultati dei Rapporti non pi`u per il problema di Capital budgeting, ma per il problema di Programmazione Lineare di allocazione ottima descritto nel Paragrafo 2.4.1.

Il modello matematico `e

max 7x1+ 10x2 x1+ x2≤ 750 x1+ 2x2≤ 1000 x2≤ 400 x1≥ 0, x2≥ 0

(11.1)

relativo all’allocazione ottima di due risorse e la sua soluzione con metodo grafico `e stata determinata nel’Esempio 4.3.4. Una possibile rappresentazione in una tabella Excel `e riportata in 11.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 soluzione ottima `e x(500, 250)T.

I tre Rapporti possono essere richiesti una volta che il Solutore ha trovato la soluzione ottima del problema di PL. La richiesta deve essere fatta dalla finestraRisultato del Solutore(vedi Figura 11.7), selezionando nella parte in altro a destra il rapporto che si desidera generare.

Rapporto valori

(9)

Questo messaggio specifica se il Solutore ha trovato o no la soluzione ottima

Questo bottone specifica al Solutore se deve o non memorizzare il valore ottimo delle variabili e generare i rapporti selezionati nella finestra in alto a destra

Torna al foglio Excel

Annulla il risultato del Solutore e ripristina i valori originali nel foglio Excel

Selezionare il rapporto che si desidera generare

Figura 11.7: Finestra Risultato del Solutore.

Il Rapporto valori per il problema di Allocazione ottima (11.1) `e riportato in figura 11.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 pu`o essereVincolante o Non Vincolante. Si intende che il vincolo `e rispettivamente attivo (ovvero soddisfatto all’uguaglianza) o non attivo (ovvero soddisfatto con la disuguaglianza stretta) nella soluzione 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 informazione `e di interesse quando i vincoli si riferiscono ad una risorsa limitata (come nel caso dell’esempio di allocazione ottima delle risorse). In questo caso infatti laTolleranzaindica quanta della risorsa disponibile non `e stata utilizzata. Nell’esempio 11.1, all’ottimo sono attivi i vincoli x1+ x2≤ 750, x1+ 2x2≤ 1000, mentre il vincolo x2≤ 400 relativo alla disponibilit`a di preparato 3 `e non attivo. Il valore della Tolleranza=150 che `e la differenza tra la disponibilit`a di preparato 3 (=400) e la quantit`a utilizzata (=250). `E ovvio che la soluzione ottima del problema (11.1) rimane invariata se la quantit`a disponibile di preparato 3 viene aumentata o ridotta fino al valore 250.

Rapporto sensibilit`a e prezzi ombra L’analisi di senibilit`a si occupa di valutare come la soluzione ottima di un problema di PL cambia al variare dei dati che definiscono l’istanza del problema sotto studio. Abbiamo affrontato questo problema nel paragrafo 10.5.1. Qui ci limitiamo a descrivere il foglio prodotto dal Solver di Microsoft Excel.

Il Rapporto sensibilit`a`e generato da Excel su richiesta. Il file generato per il problema di allocazione ottima di risorse in § 2.4.1 `e in figura 11.12.

Il rapporto `e diviso in due parti. Nella parte superiore per ogni cella variabile `e riportato il valor e della soluzione ottima. Se una variabile `e nulla, significa che non `e vantaggioso produrla. La colonna Costo ridotto di questa attivit`a indica quanto maggiore dovrebbe essere il profitto per unit`a relativo a

(10)

Figura 11.8: Risultato del Solutore per il problema di Capital budgeting.

questa variabile affinch´e sia inserita nella soluzione ottima ad un valore non nullo. Se il costo ridotto relativo alla variabile xi `e negativo pari a −γi, questo significa che il profitto relativo a quella variabile deve aumentare da ci (valore indicato in tabella nella colonna Coefficiente oggettivo) a ci+ γi perch´e esista una soluzione ottima con xi> 0. Le colonne aumento e decremento ammissibile corrispondono alla variazione in aumento o diminuzione per ci per cui la soluzione rimane ottima.

D’atra parte se una variabile `e gi`a positiva all’ottimo, le colonne Incremento/Decremento consentito indicano quanto deve variare in pi`u o in meno, il profitto relativo a quella cella variabile affinch´e la soluzione data non sia pi`u ottima.

Ad esempio nel problema di allocazione ottima di risorse in § 2.4.1, la cella variabile $B$9 che corrisponde alla produzione di Colorante di tipo 1, l’attuale coefficiente della funzione obiettivo `e 7, mentre Incremento e Decremento consentiti sono rispettivamente 3 e 2. Questo significa che se il coefficiente c1della funzione obiettivo varia nell’intervallo [5, 10] i cui estremi corrispondono a 7 − 2 e 7 + 3, la soluzione ottima rimane invariata. Se invece il coefficiente c1 viene modificato ad un valore al di fuori dell’intervallo [5, 10] la soluzione ottima cambia. Per sapere come cambia la soluzione `e necessario risolvere nuovamente il modello con il Solutore.

Il valore dell’Incremento e Decremento consentiti pu`o essere anche pari a 1.E + 30 (= 1030) intendendo in questo modo una valore grande a piacere. Si intende che il valore di profitto unitario pu`aumentare o diminuire senza limiti e la soluzione ottima non cambier`a.

Nella parte inferiore del Rapporto di sensibilit`a, ci sono tante righe quanti sono i vincoli (esclusi eventuali vincoli di limitazione inferiore e superiore delle variabili e in vincoli di non negativit`a). Per ogni vincolo nella colonnaValore finale`e riportato il valore del l.h.s nella soluzione ottima, e il valore del r.h.s. nella colonnaVincolo 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 ilRapporto Valori). Un vincolo attivo sta ad indicare una risorsa utilizzata completamente, fino al limite massimo della sua disponibilit`a. Per queste risorse si pu`o valutare

(11)

Figura 11.9: Tabella Excel relativa al problema di allocazione di risorse.

se e quando pu`o essere conveniente acquisire una maggiore quantit`a di risorsa. La colonnaPrezzo ombra indica i valori dei prezzi ombra relativi a quella risorsa (vedi anche il paragrafo 10.5.1). Nella tabella in figura 11.12 relativa al problema di allocazione ottima di risorse § 2.4.1, il prezzo ombra relativo al primo vincolo (corrispondente alla risorsa ”Preparato 1“) `e 4. Questo significa che ciascuna unit`a aggiuntiva di

”Preparato 1“ al di sopra delle 750 gi`a disponibili consente di aggiungere 4 al profitto totale. Naturalmente questa analisi `e valida solo entro certi limiti espressi nelle colonneIncremento consentito eDecremento consentito. Nel caso del ”Preparato 1“ questi limiti sono 250 e 150 rispettivamente. Questo significa che ogni unit`a aggiunta fino al massimo di 250 produce un incremento del profitto di 4 per unit`a, e ogni unit`a sottratta fino ad un massimo di 150 produce una diminuzione di profitto di 4 per unit`a. Al di fuori di questo range non `e possibile utilizzare i prezzi ombra per prevedere cosa succede. L’unico modo per verificare come si 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 il valore del prezzo ombra `e ovviamente nullo. Questo `e sensato dal punto di vista economico; difatti poich´e la risorsa non `e stata utilizzata completamente (`e inn eccesso) non `e conveniente acquisire una maggiore quantit`a. IN questo caso l’Incremento consentito `e infinito, perch´e il prezzo ombra rimane nullo qualunque sia la quanit`a aggiuntiva. Il decremento consentito `e per`o limitato (nel nostro esempio a 150), perch´e un’eccessiva riduzione della risorsa pu`o portarla ad essere vincolante. Il decremento massimo consentito

`e pari esattamente al valore diTolleranzarelativo al vincolo riportato nel Rapporto Valori.

E importante ricordare che nell’analisi che abbiamo fatto, `e stato modificato un solo input alla volta.Per` sapere cosa succede modificando pi`u input alla volta `e necessario utilizzare il Solutore.

(12)

Microsoft Excel 10.0 Rapporto valori

Foglio di lavoro: [allocazione.xls]Allocazione ottima di risorse Data di creazione: 28/04/2004 16.59.50

Cella obiettivo (Max)

Cella Nome Valori originali Valore finale

$B$19 profitto max 95 6000

Celle variabili

Cella Nome Valori originali Valore finale

$B$9 variabili di decisione colorante 1 5 500

$C$9 variabili di decisione colorante 2 6 250

Vincoli

Cella 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 11.10: Rapporto Valori per il problema di allocazione ottima di risorse in § 2.4.1.

Linee guida nell’uso delRapporto di sensibilit`a

1. Nella sezione relativa alleCelle variabili se una variabile `e attualmente nulla, il suo costo ridotto indica quanto pi`u “vantaggiosa” (ad esempio minor costo o maggior profitto) deve essere il suo coefficiente nella funzione obiettivo in modo che tale variabile risulti positiva nella soluzione ottima.

2. Nella sezione relativa alle Celle variabili se sono presenti dei vincoli di limitazione superiore o inferiore su una variabile, il suo costo ridotto indica quanto pi`u “svantaggiosa” (ad esempio maggior costo o minor profitto) deve essere il suo coefficiente nella funzione obiettivo in modo che il valore di tale variabile sia diminuito.

3. Nella sezione relativa aiVincoli, il valore del prezzo ombra indica di quanto aumenterebbe il valore della funzione obiettivo (per un problema di massimizzazione) per un incremento unitario del r.h.s.

del vincolo corrispondente.

Rapporto limiti

Il Rapporto limiti produce informazioni poco interessanti gi`a presenti negli altri Rapporti. Non verranno discusse affatto.

(13)

400

x*=(500,250) 550

aumento di P3 a 550

400 x* diminuzione di P3 a 250

250

(a) Aumento di risorsa Preparato 3 fino a 550

(b) Diminuzione di risorsa Preparato 3 fino a 250

Figura 11.11: Interpretazione grafica del cambiamento del valore della risorsa “prepapato 3” del prob- lema in § 2.4.1.

11.7 Yield management ferroviario

Riprendiamo il semplice esempio del paragrafo 3.3.3 la cui formulazione matematica `e:

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

x12+ x13≤ 700 x23+ x13≤ 700 0 ≤ x12≤ 420 0 ≤ x13≤ 355 0 ≤ x23≤ 335 (x12, x23, x13intere) e la tabella Excel che lo rappresenta `e in figura 11.14.

Osserviamo l’uso di due funzioni logiche che consentono visivamente di dire se una soluzione `e am- missibile rispetto ai due gruppi di vincoli di capacit`a

=SE(E(B10 -D10 >= 1; B11-D11 >= 1);"NON ammissibile";"ammissibile") e di limitazione superiore sulle variabili

=SE(E(B14-D14>=1;B15-D15>=1;B16-D16>=1);"NON ammissibile";"ammissibile")

Inoltre nella definizione dei vincoli all’interno del solutore `e possibile raggruppare i vincoli dello stesso tipo insieme, come in figura 11.15.

(14)

Microsoft Excel 10.0 Rapporto sensibilità

Foglio di lavoro: [allocazione.xls]Allocazione ottima di risorse Data di creazione: 28/04/2004 16.59.50

Celle variabili

Valore 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

Vincoli

Valore 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 11.12: Rapporto Sensibilit`a per il problema di allocazione ottima di risorse in § 2.4.1.

Microsoft Excel 10.0 Rapporto limiti

Foglio di lavoro: [allocazione.xls]Rapporto limiti 1 Data di creazione: 28/04/2004 16.59.50

Obiettivo

Cella Nome Valore

$B$19 profitto max 6000

Variabile Limite Risultato Limite Risultato

Cella 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 11.13: Rapporto Limiti per il problema di allocazione ottima di risorse in § 2.4.1.

(15)

Figura 11.14: Il problema di yield Management ferroviario.

Definizione di vincoli a “gruppi” omogenei

Figura 11.15: Definizione dei vincoli nel problema di yield mangement.

(16)

Microsoft Excel 10.0 Rapporto valori Foglio di lavoro: [ym.xls]yield semplice Data di creazione: 28/04/2004 15.08.56

Cella obiettivo (Max)

Cella Nome Valori originali Valore finale

$B$20 profitto rm-fi 11414 40490,8

Celle variabili

Cella Nome Valori originali Valore finale

$B$8 booking limit rm-fi 100 420

$C$8 booking limit rm-bo 100 280

$D$8 booking limit fi-bo 100 420

Vincoli

Cella Nome Valore della cella Formula Stato Tolleranza

$B$11 tratta 1 rm-fi 700 $B$11<=$D$11 Vincolante 0

$B$12 tratta 2 rm-fi 700 $B$12<=$D$12 Vincolante 0

$B$15 rm-fi rm-fi 420 $B$15<=$D$15 Vincolante 0

$B$16 rm-bo rm-fi 280 $B$16<=$D$16 Non vincolante 75

$B$17 fi-bo rm-fi 420 $B$17<=$D$17 Non vincolante 15

Figura 11.16: Rapporto valori per il problema di YM.

(17)

Figura 11.17: Installazione del solutore in Excel.

(18)

Indice

Introduzione 1

Che cosa `e la Ricerca Operativa . . . 1

Breve storia della Ricerca Operativa . . . 1

La Ricerca Operativa oggi . . . 2

1 I Modelli della Ricerca Operativa 6 1.1 L’approccio modellistico . . . 6

1.2 Un primo esempio di costruzione di un modello matematico . . . 10

2 Modelli di Ottimizzazione 13 2.1 Introduzione . . . 13

2.2 Definizioni preliminari . . . 14

2.3 Problemi di Programmazione Matematica . . . 15

2.4 Esempi di modelli di Programmazione Matematica . . . 17

3 Modelli di Programmazione Lineare 23 3.1 Struttura di un problema di Programmazione Lineare . . . 23

3.2 Trasformazioni equivalenti . . . 26

3.2.1 Funzione obiettivo di tipo max . . . 26

3.2.2 Funzione modulo . . . 27

3.3 Semplici esempi di problemi di programmazione lineare . . . 28

3.3.1 Un problema di miscelazione . . . 28

3.3.2 Un problema di trasporto . . . 29

3.3.3 Un problema di Yield Management ferroviario . . . 30

3.3.4 Minimizzazione dello scarto massimo . . . 31

4 Soluzione grafica di problemi PM in 2 variabili 33 4.1 Rappresentazione di vincoli nel piano cartesiano . . . 33

4.1.1 Vincoli lineari . . . 33

4.1.2 Vincoli quadratici . . . 35

4.2 Rappresentazione di funzioni obiettivo . . . 36

4.2.1 Funzioni lineari . . . 36

4.2.2 Funzioni quadratiche . . . 36

4.3 Esempi di risoluzione grafica . . . 37

5 Problemi di ottimizzazione convessa e concava 49 5.1 Insiemi Convessi . . . 49

5.1.1 Poliedro e punti estremi di un insieme convesso . . . 52

5.2 Funzioni convesse e concave . . . 54

5.3 Problemi di ottimizzazione . . . 54

(19)

5.3.1 Problema di ottimizzazione convesso . . . 57

5.3.2 Problema di ottimizzazione concavo . . . 57

5.4 Caratterizzazione funzioni convesse continuamente differenziabili . . . 58

5.4.1 Funzioni e forme quadratiche . . . 59

6 Problemi di ottimizzazione non vincolata 63 6.1 Introduzione . . . 63

6.2 Direzioni di discesa . . . 63

6.3 Ottimizzazione non vincolata . . . 68

6.4 Utilizzo algoritmico delle condizioni di ottimo non vincolate . . . 74

6.5 Modelli di ottimizzazione non vincolata . . . 77

7 Ottimizzazione vincolata 80 7.1 Introduzione . . . 80

7.2 Direzione ammissibile . . . 80

7.3 Condizioni di ottimo vincolate . . . 82

7.4 Ottimizzazione su insieme convesso generico . . . 85

7.5 Ottimizzazione su un poliedro . . . 87

7.6 Direzioni ammissibili di un poliedro . . . 87

7.7 Condizioni di ottimo su un poliedro . . . 92

7.7.1 Condizioni di ottimo per la Programmazione Lineare . . . 95

7.8 Utilizzo algoritmico delle condizioni di ottimo per problemi con vincoli convessi . . . 96

8 Teoremi dell’alternativa 97 8.1 Introduzione . . . 97

8.2 Il Lemma di Farkas . . . 97

9 Le condizioni di Karush-Kuhn-Tucker 101 9.1 Introduzione . . . 101

9.2 Le condizioni di Karush-Kuhn-Tucker . . . 101

10 Teoria della Programmazione Lineare 111 10.1 Caratterizzazione dei vertici di un poliedro . . . 111

10.2 Il teorema fondamentale della PL . . . 115

10.3 Le condizioni di ottimalit`a nella Programmazione Lineare . . . 121

10.4 Costruzione del duale di un problema di Programmazione Lineare . . . 126

10.5 Interpretazione della Dualit`a . . . 130

10.5.1 Interpretazione geometrica della variazione dei dati sui problemi primale duale . . 130

10.5.2 Interpretazione economica della dualit`a e prezzi ombra . . . 134

11 Uso di Excel per l’analisi e soluzione di Modelli di Programmazione Matematica 140 11.1 Introduzione . . . 140

11.2 Uso di fogli elettronici per la descrizione di un modello matematico . . . 140

11.3 Uso di excel per analisi di scenario . . . 142

11.4 Uso di Excel-Solver per la soluzione del modello matematico . . . 143

11.5 Soluzione di un modello di PL o PLI. . . 146

11.6 Ulteriori informazioni fornite dal Solutore . . . 147

11.7 Yield management ferroviario . . . 152

(20)

A Richiami di Analisi e geometria 157

A.1 Richiami sulla differenziazione in Rn . . . 157

A.1.1 Derivate del primo ordine di una funzione reale . . . 157

A.1.2 Differenziazione di un vettore di funzioni . . . 158

A.1.3 Derivate del secondo ordine di una funzione reale . . . 159

A.1.4 Teorema della media e formula di Taylor . . . 159

A.2 Autovalori e autovettori . . . 160

Riferimenti

Documenti correlati

In generale nella modellazione degli attriti sull’attuatore la forza dovuta agli attriti viene descritta attraverso un modello di tipo elasto-plastico, che riproduce il fenomeno

– – Nel ricopiare una formula da una cella ad un Nel ricopiare una formula da una cella ad un ’ ’ altra altra si può anche richiedere che un dato riferimento si può

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 2 Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright e

Nella parte relativa alle serie di funzioni, abbiamo visto che possi- amo sviluppare in serie di Taylor una funzione, se la funzione ammette derivate di tutti gli ordini in un punto

Le righe possono essere contrassegnate tramite, ad esempio, numeri e le colonne tramite lettere (ma anche tramite numeri)... FOGLIO ELETTRONICO E

Si risponda alle seguenti domande con l’ausilio dei fogli preparati a casa contenenti tabelle, serie storiche, …gure, risultati numerici, facendo nel testo i dovuti rimandi a

Quindi le funzioni di una variabile hanno grafico in R 2 (e nella II parte di questo corso abbiamo imparato a trovare il grafico di tali funzioni), le funzioni di due variabili

Se invece il gradiente secondo `e definito, ad esempio positivo, (e anche qui si riveda la definizione del termine) in tutte le direzioni i valori della funzione aumentano e pertanto