Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili Uso di Ecel nella Programmazione Matematica
Uso degli spreadsheet (formulazione nel formato richiesto da Ecel) Conversione della formulazione del problema in un foglio elettronico utilizzabile da opportuno software; Rappresentazione dei dati; Rappresentazione delle variabili; Rappresentazione delle funzioni di vincolo; Rappresentazione della funzione obiettivo. 2
Inserimento dati di ingresso Si tratta di inserire in una tabella Ecel i valori numerici utilizzati nel modello; Non è necessario inserirli in una posizione particolare; E preferibile seguire uno schema di base per favorire un immediata visualizzazione; Ogni cella della tabella è univocamente individuata dalla posizione di colonna (data da una lettera alfabetica) e dalla posizione di riga (data da un numero); E buona abitudine quella di inserire delle celle di commento per agevolare l identificazione del tipo di dato (costo, ricavo, ecc) 3
4
In queste celle mettiamo delle formule per esprimere la funzione obiettivo ed i vincoli coefficienti di costo c1 c2. cn a11 a12. a1n 1 b1 a21 a22. a2n 2 b2.... 3. A............ am1 am2. amn n bm Matrice dei coefficienti Vettore delle variabili Vettore dei termini noti
Celle Variabili Rappresentano il valore delle variabili di decisione del modello; Utilizzando il solutore, queste celle sono considerate come incognite e come output conterranno il valore ottimo della soluzione; E necessario assegnare un valore iniziale per poterle utilizzare; 6
Esempio: Product Mi Una fabbrica produce 5 diversi prodotti finali: P1,P2, P3, P4, P5. Il profitto ottenuto dalla vendita di questi prodotti è di euro: 550, 600, 350, 400, 200 al kg rispettivamente. Ogni prodotto è il risultato di un processo produttivo che prevede due fasi di raffinazione ed una fase di assemblaggio. Le ore di lavorazione necessarie per ottenere un kg di prodotto nelle tre diverse fasi sono le seguenti: P1 P2 P3 P4 P5. Raffinamento 1 12 20-25 15 Raffinamento 2 10 8 16 - - Assemblaggio 20 20 20 20 20 Ci sono 3 macchine per il primo tipo di raffinamento, 2 macchine per il secondo tipo e 8 operai per l assemblaggio. La fabbrica è aperta 6 giorni a settimana ed effettua due turni di lavoro al giorno ciascuno di 8 ore. Individuare il piano di produzione che massimizza il profitto settimanale dell azienda. (l attuale piano di produzione comporta un profitto di ~5000 euro settimanali)
0 0, 0, 0, 0, 384 20 20 20 20 20 192 16 8 10 288 15 25 20 12.. 200 400 350 600 550 ma 5 4 3 2 1 5 4 3 2 1 3 2 1 5 4 2 1 5 4 3 2 1 + + + + + + + + + + + + + s t Product Mi: Modello matematico
coefficienti di costo In queste celle mettiamo delle formule per esprimere la funzione obiettivo ed i vincoli FO 0 Coeff. Costo 550 600 350 400 200 1 2 3 4 5 A b Raffinamento 1 12 20 0 25 15 0 0 <= 216 Raffinamento 2 10 8 16 0 0 0 0 <= 144 Assemblaggio 20 20 20 20 20 0 0 <= 384 0 0 Matrice dei coefficienti Vettore delle variabili Vettore dei termini noti
=MATR.PRODOTTO(B4:F4;H8:H12) In queste celle mettiamo una formula per esprimere la funzione obiettivo FO 0 Coeff. Costo 550 600 350 400 200 1 2 3 4 5 A b Raffinamento 1 12 20 0 25 15 0 0 <= 216 Raffinamento 2 10 8 16 0 0 0 0 <= 144 Assemblaggio 20 20 20 20 20 0 0 <= 384 0 0
Attenzione: se dobbiamo immettere una formula che restituisce una matrice bisogna: - Selezionare le celle di destinazione - Inserire la formula - Premere Ctrl+Alt+ Invio FO 0 In queste celle mettiamo delle formule per esprimere la funzione obiettivo ed i vincoli ={MATR.PRODOTTO(B8:F10;H8:H12)} Coeff. Costo 550 600 350 400 200 1 2 3 4 5 A b Raffinamento 1 12 20 0 25 15 0 0 <= 216 Raffinamento 2 10 8 16 0 0 0 0 <= 144 Assemblaggio 20 20 20 20 20 0 0 <= 384 0 0
Il solutore Ecel Ecel dispone di un proprio solutore (Ecel Solver); Il solutore è parte integrante di Ecel; Il solutore consente di determinare la soluzione ottima di problemi di Programmazione Matematica (PL, PLI e classi particolari di PNL); Il solutore utilizza l algoritmo del simplesso per risolvere problemi di PL; 12
Installazione del Solutore (ecel 2010) Fare clic sul File quindi su Opzioni di Ecel. Fare clic su Componenti aggiuntivi e quindi su Componenti aggiuntivi di Ecel nella casella Gestisci. Fare clic su Vai. Nella casella Componenti aggiuntivi disponibili selezionare la casella di controllo Componente aggiuntivo Risolutore e quindi fare clic su OK. Suggerimento Se Componente aggiuntivo Risolutore non è incluso nella casella Componenti aggiuntivi disponibili, fare clic su Sfoglia per individuare il componente aggiuntivo. Se viene visualizzato un messaggio in cui si segnala che il Risolutore non è presente nel computer, scegliere Sì per installarlo. Dopo aver caricato il componente aggiuntivo Risolutore, il comando Risolutore sarà disponibile nel gruppo Analisi della scheda Dati.
Installazione del Solutore (ecel < 2010) Se la voce Solutore non compare fra le voci del menù Strumenti, occorre procedere come segue: 1. Selezionare la voce Componenti aggiuntivi dal menù Strumenti; 2. Selezionare la voce Componente aggiuntivo Risolutore e confermare (ok); 14
1 Installazione del Solutore 3 4 5 2 15
Parametri del Risolutore Selezionare la voce Risolutore dal menù Strumenti; Appare la finestra principale del Risolutore (Parametri del Risolutore), che serve per identificare le grandezze che caratterizzano il modello in esame; Esaminiamo le voci presenti: Imposta cella obiettivo: deve contenere l indirizzo della cella della funzione obiettivo; Uguale a: specifica il tipo di problema (ma, min, ); Cambiando le celle: deve contenere l indirizzo delle celle variabili; 16
Parametri del Risolutore Vincoli: descrizione delle relazioni vincolanti il problema; Procedura per l inserimento dei vincoli: 1. Selezionando la voce Aggiungi nella finestra Parametri del Risolutore compare la finestra Aggiungi vincolo; 2. E possibile inserire i vincoli uno per volta; 3. E possibile inserire più vincoli insieme se sono adiacenti e se hanno lo stesso vincolo relazionale (<, >, =,...); 4. Sono presenti le opzioni intero e binario; 5. Inserimento dei vincoli di non negatività sulle variabili. 17
Seleziona il tipo di problema da risolvere Specifica la cella che contiene il valore della funzione obiettivo Celle contenenti le variabili Elenco dei vincoli del problema Consente di modificare un vincolo selezionato attraverso la finestra Modifica vincolo Consente di accedere alla finestra Opzioni del Risolutore Apre la finestra Aggiungi vincolo Elimina il vincolo selezionato
Aggiungi vincolo Modifica vincolo Specifica le celle relative al 1 membro dell espressione di vincolo Specifica la relazione logica Fra i due membri del vincolo Specifica le celle relative al 2 membro dell espressione di vincolo (termine noto) 19
Messaggio indicante il tipo di risultato prodotto Risultato del Risolutore Indica l ulteriore output richiesto al Risolutore Memorizzazi one dei risultati Salvataggio della configurazione per impiego in una futura analisi di scenari 20
Risultato del Risolutore per il problema del Product Mi FO 8611,2 Coeff. Costo 550 600 350 400 200 1 2 3 4 5 A b Raffinamento 1 12 20 0 25 15 14,4 216 <= 216 Raffinamento 2 10 8 16 0 0 0 144 <= 144 Assemblaggio 20 20 20 20 20 0 322,56 <= 384 1,728 0
Risolviamo adesso i problemi che abbiamo visto a lezione: - Pianificazione investimenti - Problema dei confetti - Problema delle scommesse
FOM: Pianificazione degli investimenti L azienda ROL soft dispone di un budget di 50.000 euro da investire nella realizzazione di 6 diversi progetti. Ogni progetto i ha un costo c i, un profitto atteso pari a p i e prevede la partnership con s i soci. La seguente tabella mostra il costo e profitto (in migliaia di euro) e le partnership associate ad ogni progetto. Prj 1 Prj 2 Prj 3 Prj 4 Prj 5 Prj 6 Prj 7 Costo 18,4 9,7 22,5 31,1 19,3 24,8 18,7 Profitto 24 15 34 44 31 35 35 partnership 9 2 6 12 4 6 4 L obiettivo dell azienda è quello di stabilire su quali progetti investire al fine di massimizzare sia il profitto atteso sia il numero di partnership rispettando il vincolo di budget.
FOM: combinazione lineare obiettivi ma 9 1 + 2 2 + 6 3 +12 4 + 4 5 + 6 6 + 4 7 + Ma partnership + 24 1 +15 2 + 34 3 + 44 4 + 31 5 + 35 6 + 35 Ma profitto 7 s.t. 18.4 1 + 9.7 2 + 22.5 3 + 31.1 4 +19.3 5 + 24.8 6 +18.7 7 50 i {0,1}
Azienda dolciaria: Confetti Un azienda dolciaria produce quattro tipi di confetti (classico, doppio latte, al cioccolato, delizia al limone) utilizzando cinque ingredienti (zucchero, mandorla, latte, cioccolato, limone) che vengono acquistate all esterno. La tabella che segue mostra, per ogni chilo di confetti, le quantità (in litri per il latte e in kg per gli altri ingredienti) di ingredienti necessarie per produrre quel tipo di confetti. Inoltre vengono anche indicati sia la quantità massima di ciascun ingrediente acquistabile mensilmente sia il prezzo di acquisto. zucchero mandorla latte cioccolato limone Classico 0.4 0.7 0 0 0 Doppio latte 0.2 0.5 0.5 0 0 Al cioccolato 0.1 0.1 0.3 0.4 0 Delizia al limone 0.3 0.2 0 0 0.7 Quantità massima 700 1200 500 200 500 Prezzo di Acquisto 1 4 2 9 6 In base alle vendite dell anno precedente è stato stabilito che la quantità minima (in kg) di confetti da produrre mensilmente per ogni tipologia è di : 15, 11, 20, 5. Per ottenere un prodotto finito pronto per la vendita è necessaria una lavorazione che richiede un numero di ore diverso a seconda del tipo di confetto. La tabella che segue riporta per ogni chilo di ciascun tipo di confetto il numero di ore di lavorazione necessarie, insieme al prezzo di vendita unitario (in euro al chilo). Classico Doppio latte Al cioccolato Delizia al limone Ore lavorative 0.4 0.7 1.1 1.3 Prezzo di vendita 14 19 27 36 La lavorazione dei confetti viene effettuata da 5 operai che lavorano per 8 ore al giorno e per 24 giorni al mese percependo una paga di 1200 euro. Costruire un modello di PL che permetta di pianificare la produzione mensile dell azienda, determinando, per ogni tipologia di confetto, i chili da produrre per massimizzare il profitto.
Azienda dolciaria: Confetti ma 14 1 +19 2 + 27 3 + 36 4 (0.4 1 + 0.2 2 + 0.1 3 + 0.3 4 ) 4(0.7 1 + 0.5 2 + 0.1 3 + 0.2 4 ) s.t. 2(0.5 2 + 0.3 3 ) 9(0.4 3 ) 6(0.7 4 ) 6000 0.4 1 + 0.2 2 + 0.1 3 + 0.3 4 700 0.7 1 + 0.5 2 + 0.1 3 + 0.2 4 1200 0.5 2 + 0.3 3 500 0.4 3 200 0.7 4 500 1 15 2 11 3 20 4 5 0.4 1 + 0.7 2 +1.1 3 +1.3 4 960 0
Applicazioni: Scommesse Il signor Rossi è uno scommettitore incallito ma poco fortunato. Dopo aver perso tutte le scommesse della giornata ha deciso di puntare gli ultimi 100 euro sulla vincitrice della coppa Italia. Questa volta però vuole essere assolutamente sicuro di vincere e per farlo chiede aiuto ad un amico che ha studiato un pò di ricerca operativa. Le 4 squadre rimaste in gara per la vittoria finale sono milan, juventus, napoli e siena quotate rispettivamente 3:1, 4:1, 7:1 e 10:1. Una di queste 4 squadre sarà sicuramente la vincitrice del torneo. Quanto deve scommettere il signor Rossi su ogni squadra per garantirsi la massima vincita? (cioè per massimizzare la vincita nel caso peggiore).
Scommesse: Modello matematico z= ma y budget s.t. j + m + n + s = budget 3 j y 4 m y 7 n y 10 s y j, m, n, s, intere y R
Qualche nuovo esercizio: l allenamento Fate una vita troppo sedentaria. Il medico vi ha raccomandato di consumare ogni settimana almeno 2000 calorie in più combinando a vostro piacimento tempo per passeggiare, per andare a fare jogging, per nuotare, per effettuare attività di body-building in palestra o anche attività aerobica in palestra. Avete tuttavia un tempo di tolleranza massimo per ognuna di queste attività, ognuna delle quali vi permette di consumare ogni ora un certo quantitativo di calorie come dalla seguente tabella: Passeggiata Jogging Nuoto Body- Building Calorie/h 100 200 300 150 300 Aerobica Dopo avere definito i vostri livelli di tolleranza per ognuna delle attività illustrate, definite un piano di attività settimanale che vi permetta di consumare almeno le calorie raccomandate dal vostro medico e che minimizzi la quantità totale di tempo impegnata durante la settimana.
L allenamento varianti Considerate una variante del problema dell esercizio precedente in cui avete vincoli che vi impongono di dedicare un tempo minimo ad ogni attività, ad esempio, almeno 2 ore di passeggiata settimanale, almeno 1 ora di attività di body-building.