L ALGORITMO DEL SIMPLESSO

Documenti analoghi
IL METODO DEL SIMPLESSO

Excel: una piattaforma facile per l ottimizzazione. Excel ha un toolbox di ottimizzazione: Risolutore

Vediamo come risolvere un problema di PL con Excel. Riprendiamo un esercizio già visto.

Possibile applicazione

Excel: una piattaforma facile per l ottimizzazione. Excel ha un toolbox di ottimizzazione: Risolutore

Introduzione al Metodo del Simplesso. 1 Soluzioni di base e problemi in forma standard

Le disequazioni. BM4 pag Esercizi pag es ) Situazioni al massimo

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I)

2. ALGORITMO DEL SIMPLESSO

Il metodo del simplesso

Appendice A: un esempio di scelta del mix ottimo di produzione in presenza di vincoli 19

La dualità nella Programmazione Lineare

Disequazioni di 1 grado

Problemi di scelta ESEMPI

1 Il metodo dei tagli di Gomory

Esercizi svolti di Programmazione Lineare. a cura di Laura Scrimali Dipartimento di Matematica e Informatica Università di Catania

Programmazione Lineare: problema del trasporto Ing. Valerio Lacagnina

Laboratorio di Ricerca Operativa Cad Ingegneria Gestionale (BGER3 - I semestre) a.a Homework n 28. Docente: Laura Palagi

La programmazione lineare

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI

SISTEMI LINEARI: APPROFONDIMENTI ED ESEMPI

SUI SISTEMI DI DISEQUAZIONI IN DUE INCOGNITE

Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro;

GUIDA ALLE TABELLE PIVOT *

Esercizi sulla Programmazione Lineare. min. cx Ax b x 0

Introduzione alla programmazione lineare. Mauro Pagliacci

MATEMATICA PRIMO COMPITINO SOLUZIONE DI ALCUNI ESERCIZI PRIMA PARTE. Esercizio 1. (Testo B) Determina, motivando la risposta, se la funzione f : R R

Corso sul PACCHETTO OFFICE. Modulo Access

ESERCITAZIONE: ESPONENZIALI E LOGARITMI

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

FUNZIONI LINEARI (Retta, punto di pareggio e relazioni lineari generalizzate)

Insiemistica. Capitolo 1. Prerequisiti. Obiettivi. Gli insiemi numerici di base Divisibilità e fattorizzazione nei numeri interi

Disequazioni in una incognita. La rappresentazione delle soluzioni

Esercitazione n o 3 per il corso di Ricerca Operativa

La riduzione a gradini e i sistemi lineari (senza il concetto di rango)

Elementi di Algebra Lineare Matrici e Sistemi di Equazioni Lineari

Disequazioni di secondo grado

ESAME DI MATEMATICA I parte Vicenza, 05/06/2017. x log 2 x?

Strumenti informatici Calcolare il coefficiente di correlazione di Pearson con Excel e SPSS

LE EQUAZIONI DI SECONDO GRADO

Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro;

COME CALCOLARE LA COMBINAZIONE DI MINIMO COSTO DEI FATTORI

Risolvere lo stesso problema ipotizzando che le scarpe siano vendute a 40 il paio e che gli scarponi siano venduti a 90 il paio.

Sistemi di 1 grado in due incognite

ESERCITAZIONE 8 : FUNZIONI LINEARI

PROGRAMMAZIONE LINEARE E DUALITA'

Operazioni tra matrici e n-uple

Appunti di Excel per risolvere alcuni problemi di matematica (I parte) a.a

ESERCIZI SVOLTI DI PROGRAMMAZIONE LINEARE TOMO G PAG 417 E SEGUENTI. Esercizio n. 1 pag 417. vincoli

Anno Scolastico 2014/15 - Classe 1D Verifica di matematica dell 11 Maggio Soluzioni degli esercizi. 2(x 2) 2(x 1) + 2 = 3x

ESERCIZI SVOLTI DI PROGRAMMAZIONE LINEARE TOMO G PAG 421 E SEGUENTI

Marco Canu Excel Advanced: Note Operative Tabelle Pivot Excel 2013 Sella & Mosca Agg. 06/05/2017

EQUAZIONI DISEQUAZIONI

12) Metodo dei minimi quadrati e linea di tendenza

PROBLEMI DI SCELTA dipendenti da due variabili d azione

IDENTITÀ ED EQUAZIONI

Ottimizzazione marginale

RICERCA OPERATIVA. Tema d esame del 04/03/2008 (Simulazione)

DEFINIZIONI SMART E RELATIVE ESERCITAZIONI

EQUAZIONI DI PRIMO GRADO

Precorso di Matematica

(i punti frontiera del dominio appartengono al dominio stesso). Esempio. Determina i massimi e i minimi della funzione y x 2x

Sistema di due equazioni di primo grado in due incognite

Equazioni lineari con due o più incognite

Problema del trasporto

Studio del segno di un prodotto

Problemi di Flusso: Il modello del Trasporto

I grafici a torta. Laboratorio con EXCEL. 1 Come si costruisce un grafico a torta

Esercitazione n 2. Costruzione di grafici

Grafico della funzione y = sen x

Chi non risolve esercizi non impara la matematica.

1 Multipli e sottomultipli. Divisibilità

Esercizi svolti. delle matrici

B5. Equazioni di primo grado

Il giornale di classe

CORSO DI LAUREA IN INGEGNERIA EDILE/ARCHITETTURA

Esercizi sulla Programmazione Lineare Intera

Lena Cota Guido Corso di Informatica - II livello. Excel 2003 Formule. Imparare a usare le formule con la pratica

Algoritmo del Simplesso

Esercizio assegnato in data 28 novembre

Anno 2. Radicali algebrici e aritmetici: condizioni di esistenza

Problema 6 * * * x = numero di cassonetti di tipo A y = numero di cassonetti di tipo B f(x, y) = 500x + 600y da massimizzare Vincoli:

Mutue posizioni della parabola con gli assi cartesiani

Esercizi di ottimizzazione vincolata

PROGRAMMAZIONE LINEARE

COMPITO DI RICERCA OPERATIVA. (5 punti) Sia dato il seguente problema di PL: min x 1 + x 2 x 1 + x 2 3 x 1 + x 2 2 2x 1 + x 2 3.

Scheda di attività n.7: Disequazioni

Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n

EXCEL software Excel .xlxs, La cella intestazione della colonna intestazione di righe l indirizzo della cella testo numeri formule

Sistemi di equazioni di primo grado (sistemi lineari)

Transcript:

L ALGORITMO DEL SIMPLESSO L algoritmo del simplesso, che si può trovare implementato in Excel, risolve problemi di massimizzazione o minimizzazione vincolata. Tali problemi sono detti problemi di programmazione lineare (PPL) e sono del tipo seguente soggetto ai vincoli La funzione da massimizzare o minimizzare prende il nome di funzione obiettivo. Il problema può avere un numero di variabili grande a piacere così come il numero di vincoli possono essere equazioni oppure disequazioni (in maggiore od uguale o in minore od uguale). ALCUNI TRUCCHI Se nel problema c è una variabile negativa, ad esempio perché rappresenta una perdita mentre le altre rappresentano un guadagno, ci si può mettere nel caso precedente creando una variabile fittizia disegno opposto rispetto a quella in questione. Esempio soggetto ai vincoli In questo caso basta porre da cui e sostituire la variabile nel problema. soggetto ai vincoli Talvolta può anche accadere che una delle variabili non abbia un segno determinato, ad esempio perché nel problema può rappresentare un guadagno oppure una perdita indifferentemente. In questo caso si può procedere come segue 1) Se la variabile senza segno compare in un vincolo espresso con una relazione di uguaglianza allora basta ricavarla e sostituirla Esempio soggetta ai vincoli In questo caso il primo vincolo è di uguaglianza e si ha non vincolata in segno, Facendo la sostituzione nella funzione obiettivo abbiamo mentre il secondo vincolo diviene 2) Se la variabile senza segno non compare in alcun vincolo di uguaglianza, e quindi non può essere sostituita, la si considera come differenza di 2 varabili non negative.

Esempio soggetto ai vincoli non vincolata in segno. In questo caso basta porre con e. Il problema diviene soggetto ai vincoli e LA REGIONE AMMISSIBILE L insieme delle equazioni e disequazioni di vincolo forma la regione ammissibile. Se abbiamo solo 2 variabili la regione ammissibile è un poligono nel piano cartesiano. Analogamente se il problema ha 3 variabili la regione ammissibile è un poliedro nello spazio tridimensionale. In generale un poliedro nello spazio n dimensionale prende il nome di simplesso (da cui il nome dell algoritmo). Si dimostra che se il problema ha una soluzione ottima allora certamente è ottima la soluzione che corrisponde a uno dei vertici della regione ammissibile. In pratica quindi per trovare il massimo o il minimo vincolato posso considerare solo i vertici della regione ammissibile. L algoritmo del simplesso è un metodo che permette di muoversi da un vertice all altro della regione ammissibile rendendo la funzione obiettivo sempre più grande se il problema è di massimo o sempre più piccola se il problema è di minimo. Quando non è più possibile migliorare la funzione obiettivo l algoritmo si ferma.

Non sempre un problema di programmazione lineare ha soluzione. Possono accadere due cose 1) La regione ammissibile è l insieme vuoto. In pratica i vincoli del problema sono impossibili da soddisfare Esempio soggetto ai vincoli In questo caso la regione ammissibile è vuota dal momento che la somma di due numeri non può essere più grande di 10 e contemporaneamente più piccola di 5 2) Il problema è infinitamente migliorabile Esempio soggetto a In questo caso e soddisfano prendendole grandi a piacere e quindi anche la funzione obiettivo può continuare a crescere all infinito senza mai raggiungere un massimo. IL METODO DEL SIMPLESSO IN EXCEL Il metodo del simplesso è implementato nel componente aggiuntivo risolutore. Per attivarlo si procede nella seguente maniera File -> opzioni ->componenti aggiuntivi (menù a sinistra) -> componente aggiuntivo risolutore-> ->vai->segno di spunta sul Componente Aggiuntivo Risolutore->OK Aprendo un foglio Excel e selezionando il dati il risolutore compare in alto a destra. Supponiamo ora di volere risolvere il problema seguente Vincoli Per prima cosa scegliamo una cella dove mettere il valore della funzione obiettivo. Scegliamo D2 e la evidenziamo in rosso. Quindi dobbiamo designare le celle che conterranno i valori delle 4 variabili. Scegliamo le celle da D4 a D7 e le evidenziamo in blu. Per agevolarci il compito scriviamo sulla nelle celle da C4 a C7 le variabili corrispondenti nel problema che stiamo risolvendo. Infine dobbiamo considerare i 3 vincoli. Scegliamo le celle da D9 a D11 e le evidenziamo in giallo.

A questo punto impostiamo i valori della funzione obiettivo e dei vincoli. Nella cella D2, essendo la funzione obiettivo scriveremo =D4+D5-2*D6+3*D7 -> ENTER Nelle cella D9 impostiamo primo membro del primo vincolo ovvero la formula che corrisponde a =D4+D5+D6 -> ENTER Allo stesso modo si procede per gli altri due vincoli. In D10 scriveremo D4-D7 e in D10 scriveremo D5+D6+D7. Ovviamente essendo il valore delle celle blu pari a zero avremo che tutte queste formule daranno come risultato zero. A questo punto clickiamo su risolutore. Si apre la finestra seguente

La riga in alto contiene un riferimento $F$18 che non ha significato (è solo la cella evidenziata nel momento in cui si è richiamato il risolutore). Cancelliamo tale riferimento e clickiamo sulla cella che contiene la funzione obiettivo nel nostro caso D2. Sotto ci viene chiesto se il problema è di massimo o di minimo. Nel nostro caso è di massimo. Sotto ci vengono chieste le variabili che intendiamo modificare. Clickiamo nella barra e selezioniamo nel foglio le celle che abbiamo evidenziato in blu. Nel nostro caso una volta fatta la selezione nella barra in questione appare la scritta $D$4:$D$7. A questo punto dobbiamo inserire i vincoli. Clickando su aggiungi compare questa finestra Clickiamo sulla cella relativa al primo vincolo, nel nostro caso D9. Il riferimento della cella viene scritto nello spazio corrispondente. Nel menù a tendina ci viene chiesto se il vincolo è in minore uguale, maggiore uguale o uguale (vi sono anche altre opzioni che non ci interessano).

Nel nostro caso il primo vincolo è in minore od uguale. Nella barra vincolo dobbiamo scrivere il secondo membro della prima disequazione di vincolo nel nostro caso 5.Clickiamo su OK. A questo punto torniamo nella finestra precedente. Clickando su aggiungi, con il medesimo procedimento, impostiamo il secondo vincolo (cella D10) e quindi il terzo (cella D11). Al termine delle due operazioni la finestra principale è in questa situazione Nel menù a tendina sotto le equazioni di vincolo dobbiamo scegliere l algoritmo che intendiamo utilizzare. Nel nostro caso scegliamo l opzione Simplex LP. Si clicka su Risolvi. Una finestra dice che è stata trovata una soluzione che soddisfa tutti i vincoli e clickando ancora su OK la soluzione ottima viene mostrata.

La soluzione ottima prevede. Come si vede infatti la soluzione soddisfa tutti e 3 i vincoli. Il valore ottimo della funzione obiettivo (cioè in questo caso il massimo) è pari a 7. ESEMPI DI PROBLEMI DI PROGRAMMAZIONE LINEARE L ALLOCAZIONE DELLE RISORSE In questo tipo di problema si trovo la modalità di produzione ottima quando si devono produrre più prodotti utilizzando un certo numero di risorse. Supponiamo che un azienda produca 3 prodotti che chiamiamo A,B e C. Ogni singolo pezzo viene venduto ad un prezzo con che può essere A,B oppure C. I pezzi vengono lavorati da 4 macchinari che chiamiamo M 1 M 2 M 3 M 4. La lavorazione di un singolo pezzo richiede un certo numero di minuti su ciascuno dei macchinari (non necessariamente su tutti). Impostiamo il problema con dati reali. Supponiamo che ogni macchinario lavori per 8 ore al giorno pari a 480 minuti. Per il resto ci rifacciamo alla tabella seguente prodotto A B C Prezzo di vendita 2 euro 3 euro 1 euro Macchina 1 3 minuti 5 minuti 3 minuti Macchina 2 3 minuti 2 minuti 1 minuto Macchina 3 3 minuti 2 minuti 5 minuti Macchina 4 5 minuti 7 minuti 6 minuti Quanti pezzi di tipo A,B e C devo produrre nell arco della giornata per avere il massimo guadagno? Se chiamiamo a,b,c il numero di pezzi A,B,C prodotti nell arco della giornata la funzione obiettivo da massimizzare è. Dal momento che ogni macchina può lavorare alpiù 480 minuti abbiamo i vincoli

con a,b,c non negative. Il problema impostato in Excel porta alla soluzione ottima seguente Come si vede conviene utilizzare i macchinari unicamente per produrre il prodotto B mentre gli altri due prodotti non risultano convenienti. Producendo 68 pezzi al giorno del tipo B si occupa tutto il tempo macchina del macchinario 4. La strategia di produzione è conveniente anche se i primi tre macchinari sono sottoutilizzati. Il guadagno giornaliero è di 205 euro. Se invece supponessimo che il pezzo B fosse venduto ad un euro al pezzo allora la strategia di produzione ottima sarebbe produrre unicamente pezzi tipo A (96 al giorno). Per modificare il problema basta cambiare i valori nella formula della funzione obiettivo e nelle equazioni di vincolo. Richiamando il risolutore si ottengono immediatamente le nuovo soluzioni ottime. Consideriamo ad esempio quest altra situazione prodotto A B C Prezzo di vendita 2 euro 1 euro 1 euro Macchina 1 3 minuti 1 minuti 3 minuti Macchina 2 5 minuti 3 minuti 1 minuto Macchina 3 3 minuti 2 minuti 1 minuti Macchina 4 5 minuti 2 minuti 2 minuti In questo caso il pezzo venduto ad un prezzo maggiore richiede anche più minuti di lavorazione. La soluzione ottima è la seguente

Come si vede in questo caso la politica di produzione ottima esclude il prodotto A. I macchinari sono sfruttati per tutte le ore disponibili fatta eccezione per il macchinario 3. IL PROBLEMA DEI TRASPORTI Nel problema dei trasporti abbiamo un certo numero di depositi di un dato prodotto, ad esempio del carburante, che deve essere trasportato ai rivenditori o distributori. Possiamo considerare il problema su di un grafo che indica la rete stradale. In questo caso abbiamo 4 depositi dove sono conservati in totale 1000 litri di carburante che devono essere portati a 5 rivenditori. I valori scritti in rosso indicano le distanze espresse in chilometri. Supponiamo che il prezzo di trasporto di ogni singolo litro sia di un centesimo per ogni chilometro percorso. Per prima cosa costruiamo la tabella delle distanze da ogni deposito ad ogni rivenditore Rivenditore 1 Rivenditore 2 Rivenditore 3 Rivenditore 4 Rivenditore 5 Deposito 1 4 Km 6 Km 7 Km 3 Km 11 Km Deposito 2 11 Km 3 Km 8 Km 4 Km 4 Km Deposito 3 7 Km 9 Km 2 Km 2 Km 9 Km Deposito 4 7 Km 12 Km 2 Km 6 Km 5 Km Per avere il costo di trasporto di ogni litro di carburante dal un dato deposito ad un dato rivenditore basta dividere i dati riportati nella tabella precedente per 100. Rivenditore 1 Rivenditore 2 Rivenditore 3 Rivenditore 4 Rivenditore 5 Deposito 1 0.04 euro 0.06 euro 0.07 euro 0.03 euro 0.11 euro Deposito 2 0.11 euro 0.03 euro 0.08 euro 0.04 euro 0.04 euro Deposito 3 0.07 euro 0.09 euro 0.02 euro 0.02 euro 0.09 euro Deposito 4 0.07 euro 0.12 euro 0.02 euro 0.06 euro 0.05 euro Chiamiamo la quantità di carburante trasportata dal deposito i al rivenditore j. La funzione da minimizzare è la seguente

Come si vede si tratta di un problema di minimo con 20 variabili. Per quel che riguarda i vincoli ne abbiamo di due forme, quelli che riguardano i depositi e quelli che riguardano i rivenditori. Vincoli depositi Dal deposito numero uno devono uscire in tutto 400 litri. Quindi. Analogamente per gli altri Vincoli rivenditori Ad ogni rivenditore deve giungere la quantità di carburante che gli spetta. Quindi Data la natura particolare del problema conviene organizzare il foglio Excel tramite delle matrici. I costi di trasporto sono stati messi nella matrice D3:H7 mentre le incognite occupano la matrice D9:H12. Per scrivere la funzione obiettivo basta fare la somma degli elementi di ogni riga della matrice rossa moltiplicati per le corrispondenti celle nella matrice blu. Conviene creare una matrice ausiliaria dove vengono messi i vari prodotti e successivamente una cella che contiene la somma di tutti gli elementi della matrice ausiliaria.

Per scrivere i vincoli in maniera corretta aggiungiamo una riga ed una colonna alla matrice delle incognite, evidenziate in verde, ed in essa mettiamo le disponibilità dei vari depositi e le esigenze dei vari rivenditori. I vincoli si scrivono imponendo che la somma di ciascuna riga della matrice delle incognite sia pari al valore della colonna verde e che la somma di ogni colonna sia pari alla riga verde. Per i vincoli possiamo scegliere la colonna K4K12. Ora possiamo impostare il Simplesso

La soluzione ottima trova è la seguente R1 R2 R3 R4 R5 disponibilità D1 150 100 0 150 0 400 D2 0 200 0 0 50 250 D3 0 0 100 0 0 100 D4 0 0 0 0 250 250 richieste 150 300 100 150 300 Per un costo totale di trasporto di 39 euro. Lo schema di trasporto è il seguente

Come si nota il distributore più grande D 1 rifornisce completamente i due rivenditori a lui più vicini e parzialmente il terzo in ordine di vicinanza. Data la particolare struttura il problema dei trasporti può essere risolto in una maniera più efficiente rispetto all algoritmo del simplesso (algoritmo dei trasporti) IL PROBLEMA DELLA DIETA Nel problema della dieta si ha a disposizione un certo numero di alimenti aventi un determinato costo per ogni grammo. Ogni singolo grammo di alimento contiene una certa quantità di principi nutritivi. Scopo del problema è soddisfare le esigenze nutritive giornaliere con il minor costo possibile. Dal momento che la dieta prescinde totalmente dal gusto degli alimenti il problema si applica alle diete per animali da allevamento. Un applicazione del problema della dieta con riferimento alle esigenze nutritive umane aiuta a capire quali siano gli alimenti più completi e nel contempo più convenienti. Prendendo in considerazione unicamente le principali esigenze nutritive abbiamo che la dieta deve soddisfare questi vincoli

principio Fabbisogno giornaliero Fabbisogno settimanale ENERGIA 2400 Kcal 16800 Kcal GRASSI 84 grammi 588 grammi ZUCCHERI 108 grammi 756 grammi PROTEINE 72 grammi 504 grammi FIBRE 30 gammi 210 gammi Sono stati presi in considerazione 170 alimenti La prima parte della tabella è la seguente Il metodo del simplesso ha trovato la dieta ottima seguente CECI IN SCATOLA 730 grammi (104 grammi al giorno) OLIO di SEMI VARI 633 grammi (90 grammi al giorno) PASTA INTEGRALE 1311 grammi (187 grammi al giorno) PECORINO 1029 grammi (147 grammi al giorno) VINO ROSSO 3514 grammi ( circa mezzo litro al giorno) SPESA TOTALE : 31, 19 euro. L apporto in percentuale di principio nutritivo dato da ogni alimento risulta essere il seguente

ALIMENTO PROT ZUCCH GRASSI FIBRE ENERGIA CECI 6% 6% 1% 28% 3% OLIO SEMI VARI 91% 34% PASTA 35% 93% 5% 72% 25% INTEGRALE PECORINO 58% 3% 23% VINO ROSSO 1% 1% 15%