di supporto alle decisioni Strumenti per le decisioni Alberto Bemporad di Siena Overview

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "di supporto alle decisioni Strumenti per le decisioni Alberto Bemporad di Siena Overview"

Transcript

1 Corso di Sistemi di supporto alle decisioni Strumenti per le decisioni Alberto Bemporad Dip. Ingegneria dell Informazione Università di Siena Università degli Studi di Siena Centro per lo Studio dei Sistemi Complessi Overview Obiettivo del corso: risolvere problemi decisionali complessi in maniera ottimale mediante l ausilio del calcolatore Contenuti del corso: 1. Parte teorica: come formulare il problema decisionale in forma matematica. 2. Parte sperimentale: come utilizzare risolutori numerici per ottenere la decisione ottima. Esercitazioni: 2

2 Il problema di ottimizzazione 3 Cos è l ottimizzazione Ottimizzazione = assegnare ad alcune variabili il miglior valore possibile secondo un criterio assegnato Esempio: Date le caratteristiche di un certo autoveicolo, qual è la migliore velocità da tenere per consumare meno carburante possibile? Consumo (km/litro) velocità ottimale = 8 km/h Velocità (km/h) 4

3 Problema di ottimizzazione Problema di ottimizzazione: min x f (x) ³ max x f (x) f(x) x MODELLA il nostro obiettivo: èla VARIABILE di decisione: Benefici Costi... Velocità Vendite... 5 Vincoli ( (constraints) In genere la variable libera x non è completamente libera, ma deve soddisfare alcune condizioni Es.: La velocità deve essere minore di 5 km/h 5 Consumo (km/litro) velocità ottimale = 37 km/h Velocità (km/h) 6

4 Programmazione matematica In generale è un problema difficile da risolvere! si utilizzano strumenti software 7 Programmazione lineare Problemi di tipo LP (linear programming) funzione lineare vincoli lineari Per problemi di tipo LP esistono risolutori molto efficienti Ma a che cosa può servire? 8

5 Decisioni mediante LP Problema reale modellistica LP solver Soluzione MODELLISTICA: (modeling) Definisce un problema di ottimizzazione dall informazione che abbiamo dal mondo reale RISOLUTORE: (solver) Risolve il problema di ottimizzazione, fornendo una soluzione ottima e ammissibile 9 Esempio: Produzione di scacchiere Un fabbricante produce due tipi diversi di scacchiere. La piú piccola richiede 3 ore di lavoro al tornio, la piú grande richiede 2 ore, in quanto meno complessa. Si hanno a disposizione 4 torni e altrettanti operai specializzati, ognuno dei quali lavora 4 ore alla settimana. La scacchiera piú piccola richiede 1 kg di legno, la piú grande 3 kg. Il legno però scarseggia e se ne possono avere soltanto 2 kg alla settimana. La scacchiera piú grande produce un profitto di 2, la piú piccola 5. Problema: quante scacchiere e di quale tipo produrre ogni settimana in modo da massimizzare il profitto? 1

6 Elementi del problema Piccole: Grandi: 3 ore di lavorazione 1 kg di legno 5 di profitto 2 ore di lavorazione 3 kg di legno 2 di profitto 4 Operai 4 ore alla settimana Materiale: soltanto 2 kg alla settimana 11 Funzione obiettivo Dobbiamo decidere: VARIABILI Prod. scacchiere piccole Prod. scacchiere grandi OBIETTIVO Vogliamo guadagnare... max il profitto! Utilizzando le risorse disponibili: Tempo Legno VINCOLI 12

7 Modello matematico x s = n. scacchiere piccole da produrre x b = n. scacchiere grandi da produrre VARIABILI profitto = 5*x s + 2*x b ore di lavoro = 3*x s + 2*x b ESPRESSIONI LINEARI legno utilizzato = 1*x s + 3*x b max profitto Problema LP ore di lavoro 4*4 legno utilizzato 2 x s, x b 13 Tentativo di soluzione (euristica) Soluzioni ammissibili Soddisfano i vincoli x s x b Ore Legno Ok? Profitto Profitto Si Si No Si 13 È questa la scelta migliore? Troveremo la soluzione migliore risolvendo un problema LP 14

8 Programmazione Lineare (Linear Programming, LP) 15 Programmazione lineare Espressione lineare George Dantzig ( ) ovvero: Equazione/disuguaglianza lineare: Es.: ore di lavoro = 3*x s + 2*x s 4*4 Nota: x = variabili di decisione (da scegliere) a,b = dati del problema (assegnati) 16

9 Programmazione lineare minimizza o massimizza (funzione obiettivo) soggetto a 17 Programmazione lineare Trasformazione da max a min: Cambio di verso disuguaglianze: È sempre possibile formulare problemi LP utilizzando min e disuguaglianze 18

10 Variabili di scarto (slack( slack) ) e di surplus Alcuni risolutori accettano problemi LP soltanto nella forma: solo vincoli di uguaglianza Variabili di scarto (slack) Variabili di surplus 19 Programmazione lineare LP in forma standard : Questa è la forma standard per la maggior parte dei risolutori (Matlab, Cplex, Xpress-MP, NAG, GLPK,...) Alcuni risolutori sottindendono che le variabili x 2

11 Vincoli (Constraints( Constraints) Definiscono la regione ammissibile per le variabili (= dove occorre cercare ) Ciascun vincolo lineare definisce un semispazio in R N Regione ammissibile = intersezione di semispazi (= poliedro) 21 Vincolo lineare R 2 Regione non ammissibile Regione ammissibile 22

12 Regione ammissibile R 2 23 Vincolo di uguaglianza Regione ammissibile R 3 24

13 Vincoli di uguaglianza Eliminazione di variabile: NOTA: Il risolutore effettua automaticamente la sostituzione! 25 F=-2 F= F=-1 Funzione obiettivo F=1 c 2 x 2 F=-3 c 1 x 1 Direzione del gradiente (costante) 26

14 Interpretazione geometrica x b ore di lavoro = 3*x s + 2*x b 16 legno utilizzato = 1*x s + 3*x b 2 12 profitto = 5*x s + 2*x b soluzione ottima 8 profitto = 2 4 Regione ammissibile legno utilizzato = 2 profitto = 16 profitto = ore di lavoro = x s profitto = 8 27 Soluzione ottima È la soluzione migliore fra tutte quelle compatibili con i vincoli: x b 12 soluzione ottima 8 Profitto 4 Regione ammissibile x s 28

15 Modellistica e risoluzione mediante il linguaggio MOSEL MOSEL 29 MOSEL è un linguaggio per la modellistica e la risoluzione di problemi di ottimizzazione È un facile linguaggio di programmazione Ha una buona interfaccia grafica Nota bene: LA MODELLISTICA NON DIPENDE DAL RISOLUTORE! È possibile utilizzare anche altri risolutori (es: Matlab, Cplex, NAG, GLPK,...) 3

16 Matlab Optimization Toolbox - LP Esistono risolutori LP molto piú efficienti! 31 Produzione di scacchiere - MOSEL model Chess uses "mmxprs" declarations xs,xb: mpvar end-declarations Profit := 5*xs + 2*xb Wood := 1*xs + 3*xb <= 2 Work := 3*xs + 2*xb <= 16 maximize(profit) writeln("lp Solution:") writeln(" Objective: ", getobjval) writeln(" Make: ",getsol(xs), " small sets") writeln(" Make: ",getsol(xb), " big sets") end-model (Apri il file \examples\mosel\book\intro\chess.mos) Xpress-IVE 32

17 Formulazione in MOSEL model Chess uses "mmxprs" declarations xs,xb: mpvar end-declarations Profit := 5*xs + 2*xb Wood := 1*xs + 3*xb <= 2 Work := 3*xs + 2*xb <= 16 Dichiarazione delle variabili Funzione obiettivo Vincoli maximize(profit) Risoluzione del problema writeln("lp Solution:") writeln(" Objective: ", getobjval) writeln(" Make: ",getsol(xs), " small sets") writeln(" Make: ",getsol(xb), " big sets") Output end-model 33 Schema programma MOSEL model!nome del modello uses "mmxprs"!tipo di solver usato!dichiarazione di quali variabili, dati, insiemi di!indici e costanti sono presenti nel modello declarations!costanti (constants)!insiemi di indici (index sets)!dati (data arrays)!variabili di decisione (decision variables) end-declarations!inizializzazione dei dati:!manuale initializations!da file end-initializations!funzione obiettivo (objective function)!vincoli (constraints)!tipo di variabile (decision variable type)!chiamata al risolutore (solver call)!visualizzazione risultati (output representation) end-model Variabili Dati Insiemi di indici Funz. obiettivo Vincoli 34

18 Insiemi di indici (index( sets) declarations SET = 1..5 end-declarations SET = {1,2,3,4,5} Strumento base per la definizione e indicizzazione delle variabili e dei dati dimensioni dei dati DATA: array(set) of real xset: array(set) of mpvar Profit := sum(i in SET) DATA(i)*xset(i) sum(i in SET) DATA(i)*xset(i) <= 2 indice su cui sommare 35 Dati ( (data) Caratterizzano il modello, cioè i vincoli e la funzione obiettivo Es. ore di lavoro per scacchiera, profitto per scacchiera, ecc. declarations!constants!index sets!data arrays!decision variables end-declarations!data initialization!by hand initializations!from file end-initializations Passo#1: diamo un nome ai dati Passo#2: diamo un valore ai dati 36

19 Vettori di dati (data( arrays) declarations SET = 1..2 COST: array(set) of real WORK: array(set) of real WOOD: array(set) of real end-declarations COST := [5,2] WOOD := [1,3] WORK := [3,1] Informazione sui vettori (anche multidimensionali) tipo di dato WOOD: array(set) of real nome numero di elementi 37 Vettori multidimensionali declarations SET = 1..2 INFO = 1..3 DATI R 2x3 DATA: array(set,info) of real end-declarations!data initialization DATA := [5,1,3, 2,3,1] Costo Ore Legno Nota: la sintassi èdiversada MATLAB! DATA = Piccola Grande 38

20 Variabili (Variables( Variables) declarations xs,xb: mpvar end-declarations Queste sono le variabili da ottimizzare Nota: case sensitive (xs and Xs sono diverse!) declarations SIZE = 1..2 build: array(size) of end-declarations mpvar le variabili possono essere definite anche come vettore writeln(" Make: ",getsol(xs), " small sets") Visualizzazione del risultato Variabili 39 Nota: di default, tutte le variabili sono non negative x Possiamo però anche avere variabili free (x ): declarations xs: mpvar end-declarations!decision variable type xs is_free x s R 4

21 Funzione obiettivo (objective( function) È definita come espressione lineare nelle variabili di ottimizzazione Nome Valore Profit := 5*xs + 2*xb Profit := sum(i in SET) DATA(i,1)*xset(i) maximize(profit) Comando di ottimizzazione 41 Vincoli (constraints( constraints) Sono definiti come espressioni lineari: (con o senza nome) Wood := 1*xs + 3*xb <= 2 Work := 3*xs + 2*xb <= 16 sum(i in SET) DATA(i,2)*xset(i) <= 2 sum(i in SET) DATA(i,3)*xset(i) <= 16 Valore Limiti Tutti i vincoli definiti nel programma sono tenuti in conto dal risolutore 42

22 Produzione di scacchiere - MOSEL model Chess uses "mmxprs" declarations SETS = 1..2 INFO = 1..3 DATA: array(sets,info) of real xset: array(sets) of mpvar end-declarations DATA := [5,1,3,2,3,2] Profit := sum(i in SETS) DATA(i,1)*xset(i) sum(i in SETS) DATA(i,2)*xset(i) <= 2 sum(i in SETS) DATA(i,3)*xset(i) <= 16 maximize(profit) Formulazione alternativa writeln("lp Solution:") writeln(" Objective: ", getobjval) writeln(" Make: ",getsol(xset(1)), " small sets") writeln(" Make: ",getsol(xset(2)), " big sets") end-model 43 Considerazioni generali sulla modellistica e l ottimizzazione 44

23 Modellistica e ottimizzazione Motivazione: apportare dei benefici ad un organizzazione (banca, industria, finanziaria,...) Modellistica = trasformare un problema reale in forma matematica Perchè? Per risolvere il problema in maniera razionale! Ottimizzazione = trova una soluzione al problema (ammissibile e ottimale) Questo corso verte principalmente sulla MODELLISTICA (come ottenere modelli chiari, accurati e mantenibili) Non ci occuperemo degli ALGORITMI DI OTTIMIZZAZIONE, cioè dello strumento necessario per risolvere il modello all ottimo (es: metodo del simplesso, metodo punto interno, ecc.) Modellistica 45 I modelli non rappresentano la realtà in maniera esatta Si fanno delle ipotesi di lavoro Es.: Sempre 16 ore di lavoro Sempre esattamente 2 kg Vendiamo tutte le scacchiere I prezzi sono costanti Esistono infiniti modelli per un dato problema! La modellistica è un arte (non esiste una teoria univoca) 46

24 Modellistica Esiste un compromesso fra rappresentatività e semplicità del modello: Il modello deve essere rappresentativo, deve cioè catturare le caratteristiche principali del problema Il modello deve essere semplice abbastanza per poter essere risolto in maniera efficiente Make everything as simple as possible, but not simpler. Albert Einstein Dati e modelli 47 I modelli dipendono dai dati: Prezzi Quantità Necessità... Tipo di dato Qualità del dato Che cosa descrive? Quanto è esatto? TIPI E QUALITÀ DIPENDONO DAL PROBLEMA 48

25 Dati e modelli I modelli unificano parti diverse di una stessa organizzazione. Richiedono pertanto dati da diversi reparti: Reparto vendite (sales department): Costi di vendita? Reparto produzione (production department): Costi di produzione? Reparto marketing: Predizioni di vendita? 49 Progetto di ottimizzazione TEORIA MATEMATICA PROBLEMA Analisi Descrizione Modellistica Impiego ARTE ripeti Risoluzione PRATICA Retroazione (feedback) COMPUTER 5

26 Benefici Benefici di un progetto di modellistica e ottimizzazione: Decisioni razionali basati sull informazione Anche se non applicate, forniscono un buon consiglio Capire il problema tramite il modello (es: dimostrare che alcune parti di una organizzazione funzionano bene/non funzionano) Robustezza delle decisioni al variare dei dati... INCREMENTA PROFITTI E EFFICIENZA 51 Modellistica di Problemi LP

27 Programmazione lineare minimizza o massimizza (funzione obiettivo) soggetto a 53 Funzione obiettivo La funzione obiettivo è una funzione lineare Il vettore [c 1 c 2... c N ] è il gradiente in R N della funzione f(x)=2 f(x)=1 c 2 x 2 Direzione del gradiente (costante) f(x)= f(x)=-1 Ci dice come cercare la soluzione ottima c 1 x 1 54

28 Vincoli (Constraints( Constraints) Definiscono la regione ammissibile per le variabili Ciascun vincolo lineare definisce un semispazio in R N R 2 Ci dicono dove cercare la soluzione ottima La regione ammissibile è un poliedro 55 Programmazione Lineare (LP( LP) soluzione ottima F= F=1 R 2 F=-1 F=-2 56

29 Modellistica Formulare in termini matematici un problema reale Occorre definire: Chi sono le variabili da decidere Qual è la funzione obiettivo che ci interessa minimizzare o massimizzare Quali vincoli si hanno nella scelta Non esiste un modo univoco di modellare un dato problema. Non esiste una teoria sistematica della modellistica! 57 Vincoli (constraints( constraints) Definiscono l insieme ammissibile (feasible set), cioè dove cercare la soluzione I vincoli definiscono relazioni fra le variabili decisionali Metodo di modellistica suggerito: Disaggregare le relazioni e restrizioni presenti nel problema reale in sottinsiemi di vincoli che sappiamo come modellare Si conoscono infatti diversi tipi di vincoli... 58

30 1 - Upper & Lower Bounds Sono i vincoli piú semplici... Rappresentano limiti naturali sui valori che certe variabili possono assumere Esempi: Dobbiamo vendere almeno 1 unità di prodotto i Non possiamo comprare piú di 5 automobili x 2 X min X max x Upper & Lower Bounds Attenzione ai vincoli di non negatività!!! Diversi risolutori assumono tacitamente che tutte le variabili sono positive o nulle. Esempio: In MOSEL tutte le mpvar sono di default non negative declarations x: mpvar end-declarations x is_free Le variabili libere devono essere esplicitamente specificate 6

31 2 Flusso (flow( constraints) Il flusso di un certo bene è composto da vari flussi x 1 x 2 flusso totale x 1, x 2, x 3 = variabili di ottimizzazione x 3 Vincolo sul flusso totale: Esempio: Abbiamo N stabilimenti a disposizione e dobbiamo produrre un minimo di 44 autovetture alla settimana 61 2 Flusso (flow( constraints) In alternativa, il flusso di un certo bene può essere suddiviso in piú canali x 1 flusso totale x 2 x 3 Esempio: Abbiamo un deposito di 1 M con il quale liquidare le spese sostenute da ciascuno di 3 stabilimenti 62

32 3 Risorse Le risorse a disposizione non sono infinite ma vanno suddivise fra varie attività = variabili di ottimizzazione In genere i vincoli sulle risorse vengono definiti tramite una tabella di coefficienti R ji R ji = quanta risorsa di tipo j viene consumata dall attività i-esima Esempio: quanto legno serve per costruire una scacchiera piccola? 63 Esempio: 4 Qualità Dobbiamo fare un investimento in azioni di tipo Generali, Tiscali e Bulgari. Ogni azione ha un suo fattore di rischio. Vogliamo mantenere il rischio medio dell investimento sotto il 5%. Rischio 5% 7% 4% rg : Rischio azioni Generali rt : Rischio azioni Tiscali rb : Rischio azioni Bulgari 64

33 Variabili: 4 Qualità sg = k investiti in Generali st = k investiti in Tiscali sb = k investiti in Bulgari Importo totale dell investimento = sg + st + sb Rischio medio: sg*rg + st*rt + sb*rb sg + st + sb.5 Problema: non è un vincolo lineare! 4 Qualità 65 Con una semplice manipolazione, possiamo trasformare il vincolo in un vincolo lineare: sg*rg + st*rt + sb*rb.5 *(sg + st + sb) Nota: la trasformazione funziona solo se il denominatore è positivo Funzione obiettivo e vincoli possono essere spesso trasformati, mediante operazioni matematiche, in forme lineari equivalenti senza che la soluzione ottima venga alterata 66

34 5 Miscelazione (Blending( Blending) Sono utili quando dobbiamo esprimere entità costituite da percentuali fissate delle variabili di ottimizzazione Esempio: Preparazione di di un cocktail. Dobbiamo preparare del Negroni, costituito da: 3% Campari, 4% Martini, 3% Gin Le quantità Campari, Martini e Gin sono vincolate fra loro per il fatto che devono comparire nel cocktail in proporzioni preassegnate 67 5 Miscelazione (Blending( Blending) Il vincolo di miscelazione risulta essere:.3 = Campari / (Campari+Martini+Gin).4 = Martini / (Campari+Martini+Gin).3 = Gin / (Campari+Martini+Gin) Assumendo che Campari, Martini e Gin siano quantità positive, il vincolo può essere riscritto come vincolo lineare: Campari =.3*(Campari+Martini+Gin) Martini =.4*(Campari+Martini+Gin) Gin =.3*(Campari+Martini+Gin) (È simile al vincolo sulla qualità) 68

35 5 Miscelazione (Blending( Blending) Nota: potremmo eliminare una variabile (ad es: Gin) per sostituzione (addirittura due variabili): Gin =.3/.7*(Campari+Martini) Campari =.3/.7*(Campari+Martini) Martini =.4/.7*(Campari+Martini) Non conviene eliminare variabili! Ci penserà il risolutore ad eliminarle. Lasciandole nel modello, rendiamo quest ultimo molto piú leggibile (e quindi piú facilmente mantenibile). 69 Variabili di ottimizzazione Rappresentano le incognite del nostro problema Esempio: Quante azioni dobbiamo comprare? Spesso nel modello vengono introdotte variabili ridondanti per esprimere certi vincoli sul modello stesso in maniera piú chiara Esempio: per esprimere il vincolo di flusso x 1 +x 2 1 possiamo introdurre una nuova variabile x 3 =x 1 +x 2 e porre x 3 1 7

36 Es: Produzione di leghe metalliche La ditta Metalli S.p.A. ha ricevuto un ordine di 5 tonnellate di acciaio da utilizzare per la costruzione di una nave. Il metallo deve avere determinate caratteristiche di composizione. La ditta ha a disposizione sette tipi diversi di materiale grezzo che possono essere utilizzati per la produzione dell acciaio richiesto. L obiettivo è quello di determinare la composizione che minimizza il costo complessivo, nel rispetto dei vincoli imposti sulla composizione dell acciaio prodotto. 71 Dati a disposizione Vincoli sulla qualità dell acciaio prodotto: Elemento chimico Carbone (C) Rame (Cu) Manganese (Mn) Composizione minima % Composizione massima %

37 Dati a disposizione Composizioni %, quantità disponibili, costi per tonnellata Mat. grezzo C% Cu% Mn% t Iron Iron Iron Copper Copper Aluminium Aluminium Modellistica 73 La ditta Metalli S.p.A. ha ricevuto un ordine di 5 tonnellate di acciaio Lower Bound Il metallo deve avere determinate caratteristiche di composizione. che minimizza il costo Vincoli sulla qualità Funzione obiettivo La ditta ha a disposizione sette tipi diversi di materiale grezzo Variabili di ottimizzazione 74

38 Upper bounds Mat. grezzo C% Cu% Mn% t Iron Iron Iron Copper Cooper 2 Aluminium Aluminium Variabili: use j j=1,2,...7 R j =quantità max disponibile Non negatività 75 Lower bound e flusso La ditta Metalli S.p.A. ha ricevuto un ordine per 5 tonnellate di acciaio Iron 1 Iron 2 Iron 3 Copper 1 Copper 2 Aluminium 1 Aluminium 2 steel Lower bound: produce 5 Vincolo di flusso: 76

39 Funzione obiettivo che minimizza il costo Mat. grezzo C% Cu% Mn% t Iron C j Iron 2 Iron costo per tonnellata di materiale grezzo Copper Cooper 2 Aluminium Costo totale: Aluminium Dati a disposizione Elemento Chimico Carbon (C) Copper (Cu) Manganese (Mn) Composizione minima % Composizione massima % Pmin j Pmax j Vincoli sulla qualità del prodotto 78

40 Vincoli sulla qualità del prodotto i=1 i=2 i=3 j=1... Mat. Grezzo Iron 1... C% Cu%... Mn% t P ji = % di metallo i contenuta nel materiale grezzo j (es: 1 t di Iron 1 contiene 25 kg di C) Quantità di metallo di tipo i Quantità totale di prodotto % minima di metallo di tipo i contenuta nel prodotto finale 79 Vincoli sulla qualità del prodotto Per ogni tipo di metallo... È un insieme di diseguaglianze di tipo lineare 8

41 Modello completo del problema minimizza soggetto a 81 Modello MOSEL - Dati declarations!index sets COMP = 1..3 RAW = 1..7!Data arrays P : array(raw,comp) of real PMIN,PMAX : array(comp) of real AVAIL : array(raw) of real COST : array(raw) of real DEM : real end-declarations DATI I dati devono essere inizializzati 82

42 !Data initialization!by hand P := [2.5,, 1.3, 3,,.8,,.3,,, 9,,, 96, 4,,.4, 1.2,,.6, ] Inizializzazione dei dati PMIN := [2,.4, 1.2] PMAX := [3,.6, 1.65] Mat. grezzo Iron 1 Iron 2 Iron 3 Copper 1 Cooper 2 Aluminium 1 Aluminium 2 C% 2.5 AVAIL := [4,3,6,5,2,3,25] COST := [2,25,15,22,24,2,165] DEM := 5 3 Cu% Mn% t Variabili 83 declarations!decision variables use : array(raw) of mpvar produce : mpvar end-declarations Lower bound Non negatività produce 5 84

43 Vincolo di flusso produce >= DEM; produce = sum(i in RAW) use(i) Iron 1 Iron 2 Iron 3 Copper 1 Copper 2 Aluminium 1 Aluminium 2 steel Lower bound: produce 5 Vincolo di flusso: 85 Funzione obiettivo!objective function Cost := sum(i in RAW) COST(i)*use(i) minimize(cost) Costo totale 86

44 Risorse!Constraints use(1) <= AVAIL(1) use(2) <= AVAIL(2) use(3) <= AVAIL(3) use(4) <= AVAIL(4) use(5) <= AVAIL(5) use(6) <= AVAIL(6) use(7) <= AVAIL(7) Raw C% Cu% Mn% Tons Iron Iron Iron Copper Cooper Aluminium Aluminium Vincoli sulla qualità sum(i in RAW) P(i,1)*use(i) >= PMIN(1)*produce sum(i in RAW) P(i,2)*use(i) >= PMIN(2)*produce sum(i in RAW) P(i,3)*use(i) >= PMIN(3)*produce sum(i in RAW) P(i,1)*use(i) <= PMAX(1)*produce sum(i in RAW) P(i,2)*use(i) <= PMAX(2)*produce sum(i in RAW) P(i,3)*use(i) <= PMAX(3)*produce 88

45 Risoluzione con Xpress-MP File MOSEL: metalli.mos Xpress-IVE Risultato: Total cost: Amount of steel produced: 5 Alloys used: 4,, ,, , , 89 Lettura dei dati da file!data initialization!by hand P := [2.5,, 1.3, 3,,.8,,.3,,, 9,,, 96, 4,,.4, 1.2,,.6, ] initializations from metalli2.dat'!read data from file P PMIN PMAX AVAIL COST DEM end-initializations PMIN := [2,.4, 1.2] PMAX := [3,.6, 1.65] AVAIL := [4,3,6,5,2,3,25] COST := [2,25,15,22,24,2,165] DEM := 5 P : [2.5,, 1.3, 3,,.8,,.3,,, 9,,, 96, 4,,.4, 1.2,,.6, ] PMIN : [2,.4, 1.2] PMAX : [3,.6, 1.65] AVAIL : [4,3,6,5,2,3,25] COST : [2,25,15,22,24,2,165] DEM : 5 9

46 Lettura dei dati da file APPLICAZIONE MOSEL: Modello metalli2.mos Dati metalli2.dat P : [2.5,, 1.3, 3,,.8,,.3,,, 9,,, 96, 4,,.4, 1.2,,.6, ] PMIN : [2,.4, 1.2] PMAX : [3,.6, 1.65] AVAIL : [4,3,6,5,2,3,25] COST : [2,25,15,22,24,2,165] DEM : 5 91 Uso avanzato di MOSEL Istruzione FOR FOR i=1 i i+1 DO NO i=3? YES 92

47 Uso avanzato di MOSEL Istruzione FOR i = Uso avanzato di MOSEL Istruzione FOR forall(j in in COMP) do do sum(i in in RAW) P(i,j)*use(i) >= >= PMIN(j)*produce end-do i = 12 3 sum(j in RAW) P(j,1)*use(j) >= PMIN(1)*produce sum(j in RAW) P(j,2)*use(j) >= PMIN(2)*produce sum(j in RAW) P(j,3)*use(j) >= PMIN(3)*produce 94

48 Risoluzione con Xpress-MP File MOSEL: exg2h2_2.mos Risultato: Total cost: Amount of steel produced: 5 Alloys used: 4,, ,, , , (ovviamente il risultato è il medesimo) 95 Modellistica Formulare in termini matematici un problema reale Occorre definire: Quali sono le variabili da decidere Qual è la funzione obiettivo che ci interessa minimizzare o massimizzare Quali vincoli si hanno nella scelta Sono una componente fondamentale del modello. Dato il problema reale, occorre cercare di individuarli facendo riferimento a una casistica nota (e non solo) 96

49 Vincoli 1 - Upper & Lower Bounds 2 - Flusso 3 - Risorse 4 - Qualità 5 - Miscelazione 97 6 Vincoli di contabilità (accounting) ( Vincoli che non vincolano ) Sono vincoli che aggiungono informazioni sulla relazione esistente fra variabili del modello Esempi: In generale possono essere espressi come vincoli di uguaglianza: Sono usati per aumentare la leggibilità del modello 98

50 7 Bilanciamento I flussi in ingresso e in uscita devono bilanciarsi x 1 IN L IN x 1 OUT x 2 IN x 2 OUT x IN 3 x OUT 3 L OUT x IN 1, x IN 2, x IN 3, x OUT 1, x OUT 2, x OUT 3 = variabili È fondamentale per problemi con variabili dinamiche Esempio: cassa k+1 = cassa k + guadagno k -spese k 99 Esempio: 7 - Bilanciamento Il numero di azioni di un certo tipo contenute nel portafoglio titoli ad un dato mese k è uguale al numero di azioni presenti nel mese precedente k-1, piú il numero di azioni acquistate durante il mese k meno il numero di azioni vendute durante il mese k. for k =1... T stock k =stock k 1 + buy k sell k end 1

51 8 - Scelta del Modo di Produzione Generalizzazione dei vincoli di miscelazione: M ingredienti (=inputs) danno N prodotti (=outputs). Le percentuali di miscelazione variano a seconda del modo di produzione. Modo 1 Modo 2 Modo 3 IN 1 34% 36% 44% IN 2 28% 25% 24% IN 3 38% 39% 32% OUT OUT Significato: n kg di miscela composta al 34% da IN1, 28% da IN2 e 38% da IN3 viene trasformata, in un ora di lavorazione e operando nel modo 1, in.28*n kg di OUT1 e.29*n kg di OUT Scelta del Modo di Produzione ore j = numero di ore impiegate nel j-esimo modo di produzione (=variabili di ottimizzazione), j=1,2,3 Sia f = kg di miscela di ingredienti processata ogni ora. f*ore j = kg di miscela processata nel j-esimo modo L utilizzo complessivo delle risorse IN1, IN2, IN3 sarà: La produzione di OUT1 e OUT2 sarà: 12

52 8 - Scelta del Modo di Produzione Tipicamente si ha un vincolo sulla durata complessiva dell operazione: Inammissibilità 13 INAMMISSIBILITÀ (INFEASIBILITY) Il problema non ammette una soluzione, vale a dire nessuna scelta delle variabili è in grado di soddisfare tutti i vincoli. I vincoli imposti sono troppo stringenti. R 2 Il risolutore non restituisce alcuna soluzione! Nota: La non ammissibilità non dipende dalla funzione obiettivo! Solo dai vincoli 14

53 Inammissibilità L inammissibilità del problema spesso è dovuta ad errori commessi in fase modellistica Se sappiamo a priori che il problema ammette soluzione perché conosciamo una scelta x ammissibile, dobbiamo capire dov è che il modello è errato. In particolare: Una direzione invertita in una diseguaglianza Dati del problema sbagliati Come individuare i vincoli errati? Se conosciamo una scelta x che sappiamo dovere essere ammissibile, possiamo vedere subito quali vincoli sono violati Inammissibilità 15 Se non sappiamo a priori se il problema ammette una soluzione, diventa molto piú difficile individuare quali vincoli sono errati (ammesso che siano errati) Nota: chiedersi quale vincolo causa infeasibility? non ha molto senso. È la combinazione di vincoli che è infeasible! Esempio: Quale di questi quattro vincoli causa infeasibility? Tutti e nessuno... Occorre guardare al significato fisico di ogni vincolo. 16

54 9 Vincoli soft Ammettiamo che il modello sia corretto, ma che non ammetta soluzioni ammissibili. Dobbiamo quindi modificare il modello per ottenere una soluzione. Distinguiamo fra due tipi di vincoli: - Vincoli HARD : non possono essere assolutamente violati (es: capacità di un magazzino) - Vincoli SOFT : una loro violazione è tollerabile, anche se c è una penale da pagare (es: il fattore di rischio di un investimento è maggiore del dovuto) 17 9 Vincoli soft Esempio: Abbiamo a disposizione 2 kg di legno, ma se necessario possiamo comprarne quantità aggiuntive al prezzo di 2 /kg ammorbidimento del vincolo penalità 18

55 9 Vincoli soft La variabile legno add viene chiamata anche variabile di panico Il risolutore tenderà a porre le variabili di panico a zero Qualora ciò non sia possibile, fornirà comunque una soluzione al problema, rendendo positive alcune variabili di panico Se una certa variabile di panico è diversa da zero nella soluzione ottima, possiamo provare ad aumentare la penalità per capire se il vincolo corrispondente deve essere davvero violato per avere una soluzione Problema del prestito 19 La La nostra ditta, all inizio della propria attività, pur purdisponendo di di un un capitale iniziale di di 5 5 k, k, deve decidere l entità di di un un prestito da da richiedere al al Monte dei dei Paschi. Supponendo che che l interesse sia sia del del 4% 4% annuo, l obiettivo è di di minimizzare gli gliinteressi restituiti alla allabanca. Si Si ha ha una una stima dei dei pagamenti e degli introiti che che la la nostra ditta dovrà effettuare nei neiprossimi anni. Spese (k ): [ ] Profitti (k ):[ ] 11

56 Modellistica decidere l entità del prestito variabile di ottimizzazione minimizzare gli gli interessi restituiti funzione obiettivo interesse annuale del 4% È una funzione lineare? 111 Si ha ha una stima dei pagamenti e degli introiti Modellistica vincoli di bilanciamento Osservazione: la la cassa non deve mai diventare negativa! Lower bound: il capitale! Dobbiamo esprimere l evoluzione del capitale a disposizione della ditta sull arco temporale dei 12 anni 112

57 Scelta delle variabili prestito Entità del prestito rata i Rata pagata durante l anno i-esimo cassa i Capitale a disposizione nell anno i-esimo i = 1... N N=12, I%=4 113 Interessi Abbiamo supposto che gli interessi siano a tasso fisso sembra non lineare... In realtà, essendo I% e N parametri fissati, vale la relazione seguente, dove K è una costante: È un vincolo lineare (di contabilità) 114

58 Funzione obiettivo Minimizzare gli interessi restituiti: 115 Vincoli di bilanciamento I flussi di cassa si devono bilanciare: 1) Alla fine del primo anno variabili dati del problema 2) negli anni successivi 116

59 Modello del problema min sogg. a Interessi Interessi = N P i=1 rata i prestito cassa 1 = iniziale+ prestito + profitto 1 spesa 1 rata 1 for i =2...N cassa i = cassa i 1 + profitto i spesa i rata i end for i =1...N rata i =prestito end for i =1...N cassa i end N =12, I% =4 I% 1 1 (1+ I% 1 ) N ) 117 Modello MOSEL mutuo.mos model "Mutuo" uses "mmxprs" declarations N = 12! Arco temporale (anni) ANNI = 1..N SPESA: array(anni) of real! Spese PROFITTO: array(anni) of real! Profitti I: real! Interesse annuale del mutuo (%) INIZIALE: real! Capitale iniziale mutuo: mpvar! Importo del mutuo richiesto rata: array(anni) of mpvar! Rata del mutuo cassa: array(anni) of mpvar! Capitale disponibile in cassa end-declarations initializations from 'mutuo.dat' SPESA PROFITTO I INIZIALE end-initializations 118

60 Dati del problema mutuo.dat SPESA: [4 [ ] 4] PROFITTO: [3 [ ] 4] I: I: 4 INIZIALE: Definizione dei vincoli Modello MOSEL! Funzione obiettivo: interessi restituiti Interessi:= sum(i sum(i in in ANNI) ANNI) rata(i) - prestito! Relazione fra fra mutuo mutuo e rata rata forall (i (i in in ANNI) ANNI) do do rata(i)=prestito*(i/1)/(1-((1+(i/1))^(-n))) end-do! Bilancio alla alla fine fine del del primo primo anno anno cassa(1) = prestito + INIZIALE - SPESA(1) + PROFITTO(1)- rata(1)! Bilancio alla alla fine fine del del generico anno anno k-esimo forall(i in in ANNI ANNI i>1) i>1) do do cassa(i) = cassa(i-1) - SPESA(i) + PROFITTO(i) - rata(i) end-do! Risolvi il il problema: arricchire il il meno meno possibile la la banca banca minimize(interessi) 12

61 Risultati File MOSEL: mutuo.mos Xpress-IVE Importo del prestito: Capitale restituito: rata cassa Anno 1: Anno 2: Anno 3: Anno 4: Anno 5: Anno 6: Anno 7: Anno 8: Anno 9: Anno 1: Anno 11: Anno 12: Infeasibility Il problema può diventare non ammissibile? SPESA: SPESA: [4 [ ] 4] PROFITTO: PROFITTO: [3 [ ] 4] I: I: 4 4 INIZIALE: INIZIALE: 4 4 Problem infeasible!!! Interessi restituiti: Importo del prestito: Rata del mutuo: Anno 1: - Cassa: Anno 2: - Cassa: Anno 3: - Cassa: Anno 4: - Cassa: Anno 5: - Cassa: Anno 6: - Cassa: Anno 7: - Cassa: Anno 8: - Cassa: Anno 9: - Cassa: Anno 1: - Cassa: Anno 11: - Cassa: Anno 12: - Cassa: 122

62 Vincoli soft Rimuoviamo il vincolo che impone cassa i, supponendo di ricorrere se necessario a dei prestiti aggiuntivi. I prestiti sono molto costosi: per ogni euro preso a prestito, devono essere restituiti (1+F) euro. Vincoli soft: variabile di panico 123 Vincoli soft Il problema sarà sempre ammissibile, ma il costo si modifica: valore molto elevato 124

63 Modello con vincoli soft min sogg. a Interessi Interessi = N P i=1 rata i prestito cassa 1 = iniziale+ prestito + profitto 1 spesa 1 rata 1 for i =2...N cassa i = cassa i 1 + profitto i spesa i rata i end for i =1...N rata i =prestito I% 1 1 (1+ I% 1 ) N ) end for i =1...N cassa i +emergenza i end N =12, I% =4 125 Soluzione SPESA: [4 [ ] 4] PROFITTO: [3 [ ] 4] I: I: 4 F:1.5 INIZIALE: 4 4 File MOSEL: mutuo2.mos Xpress-IVE Importo del prestito: Capitale restituito: rata cassa emergenza Anno 1: Anno 2: Anno 3: Anno 4: Anno 5: Anno 6: Anno 7: Anno 8: Anno 9: Anno 1: Anno 11: Anno 12:

64 Programmazione lineare mista-intera intera (MILP) Programmazione lineare minimizza o massimizza (funzione obiettivo) soggetto a 128

65 Programmazione lineare I modelli di programmazione lineare suppongono che le variabili di ottimizzazione possano assumere qualsiasi valore reale x i R Purtroppo questa assunzione non sempre è realistica. Esempio: Costruisci 11.7 scacchiere Utilizza 3.6 operai Installa 5.75 impianti di produzione 129 Variabili reali Le variabili possono assumere qualsiasi valore reale. Tale ipotesi è accettabile in molti casi. Proprietà principale: la continuità x min x max x la variabile x può assumere un qualsiasi valore all interno dell intervallo Vantaggio di questa ipotesi: semplicità computazionale 13

66 Variabili intere Possono assumere valori solo su un insieme discreto. x min x max x la variabile x può assumere solo alcuni valori Le variabili intere risultano utili in moltissime applicazioni 131 Modelli di programmazione intera Sono modelli utilizzati quando: 1- Si hanno a disposizione solo un insieme finito di scelte 2- Si hanno vincoli di tipo logico vincolo naturale vincolo decisionale Il modello risultante è identico ad un programma lineare, ma ha un vincolo aggiuntivo: le variabili possono assumere soltanto valori interi 132

67 Programmazione lineare mista intera (mixed integer linear programming,, MILP) minimizza o massimizza (funzione obiettivo) soggetto a N I variabili intere 133 Modellistica MILP Oltre alle variabili reali continue, si hanno a disposizione nuovi tipi di variabili: intere binarie semicontinue SOS (special ordered sets)... Si possono modellare una gamma molto estesa di nuovi vincoli! In particolare: vincoli logici 134

68 Variabili intere Le variabili intere possono assumere valori soltanto nell insieme dei numeri naturali N = {,1,2,...} x N È un vincolo molto comune e del tutto naturale. Esempi: Numero di persone assegnate ad un progetto Numero di impianti di produzione impiegati Numero di lotti prodotti Variabili binarie Possono assumere soltanto due valori: o 1 È il minimo livello di informazione che una variabile può descrivere: SI / NO VERO / FALSO Sono uno strumento di modellistica molto potente, essendo in grado di esprimere decisioni, scelte, condizioni logiche,

69 Variabili semicontinue Una variabile semicontinua o è nulla, oppure assume un valore maggiore di una certa quantità x min x min x l insieme dei valori possibili è discontinuo Permettono di esprimere delle situazioni reali molto frequenti. Esempi: Se vendo, devo vendere almeno una certa quantità Livelli di produzione minima per garantire un profitto 137 Altri tipi di variabile Esistono altri tipi di variabile non reale. Ad esempio: Special Ordered Sets SOS1 e SOS2 Riconoscerle è importante per facilitare la risoluzione del problema di ottimizzazione. Dal punto di vista della sola modellistica, possiamo focalizzare l attenzione soltanto sulle variabili continue e intere. 138

70 Il problema del ladro Un malvivente decide di di derubare un supermercato. La capacità del bagagliaio del suo furgoncino è di di 5 litri. Dato che dei prodotti disponibili si si conosce il il prezzo e la la quantità sugli scaffali, quali prodotti conviene scegliere e in in quale quantità per ricavare un bottino il il piú redditizio possibile? (applicazione: problemi di stoccaggio) 139 Modellistica...quali prodotti e in quale quantità... Variabili intere...bottino il piú costoso possibile... Funzione obiettivo...bagagliaio di di 5 litri... Vincoli di spazio...quantità disponibile... 14

71 Prodotti disponibili Prezzo per unità ( ) Vol. per unità (litri) pezzi disponibili TV DVD Lavatrice Detersivo Cioccolata Profumo Conf. Latte (12 pezzi) value i volume i quantity i 141 Modello del problema max Profit sogg.a 142

72 (file: ladro.mos) Modello MOSEL declarations ITEMS = 1..7 SMAX = 5!Data arrays VALUE: array(items) of real VOLUME: array(items) of real QMAX: array(items) of real!decision variables take: array(items) of mpvar end-declarations!objective function Profit:= sum(i in ITEMS) VALUE(i)*take(i)!Constraints sum(i in ITEMS) VOLUME(i)*take(i) <= SMAX forall (i in ITEMS) take(i) <= QMAX(i)!Decision variable type forall (i in ITEMS) take(i) is_integer!solver call maximize(profit) Il ladro ricava un bottino di portandosi via... TV: 1 (di 2) DVD: 3 (di 3) Lavatrice: 3 (di 3) Detersivo: (di 5) Cioccolata: 63 (di 8) Profumo: 1 (di 1) Latte: 3 (di 15) NEW Xpress-IVE 143 Risoluzione di problemi misti-interi interi È un problema facile da risolvere? Alcune variabili sono continue, altre binarie Proviamo ad enumerare tutte le possibili combinazioni di variabili intere e scegliamo quella migliore! Dobbiamo risolvere un LP per ogni combinazione 144

73 Esplosione combinatoria Enumerare tutte le alternative possibili spesso è impossibile Si ha la cosiddetta esplosione combinatoria delle possibili alternative 145 Esplosione combinatoria - Esempio Trovare il minimo percorso che copre 1 località Supponiamo di avere un super-computer in grado di analizzare un milione di alternative al secondo La risposta viene determinata in circa 3 secondi (1! ¼ 3.6*1 6 ) Adesso supponiamo di volere coprire 2 località Lo stesso computer impiegherebbe 77. anni per trovare la soluzione! (2! 2.4*1 18 ) 146

74 Esplosione combinatoria - Esempio Vogliamo formare un portafoglio titoli di 3 azioni, scegliendole fra 1 possibili Dobbiamo valutare il rischio e il guadagno atteso Usiamo lo stesso computer dell esempio precedente La risposta viene calcolata in circa un secondo Per 5 azioni: circa 15 minuti Per 6 azioni: circa 1 giorni 147 Risoluzione di problemi misti-interi interi L enumerazione non è una via percorribile: Se abbiamo m variabili binarie, dovremmo risolvere ben 2 m problemi LP! Esempio: supponiamo che in media riusciamo a risolvere un LP con 1 variabili in.3s e un LP con 2 variabili in.12s Un MILP con 1 variabili reali + 1 binarie richiederebbe 2 1 *.3s 3s 148

75 Risoluzione di problemi misti-interi interi NON è immediato da vedersi, ma le variabili reali, anche se in linea di principio possono assumere un numero infinito di valori, permettono di utilizzare strumenti di ottimizzazione che non possono essere invece utilizzati per variabili discrete Problemi difficili da risolvere 149 Algoritmi di Branch & Bound Esiste il modo di evitare di esplorare tutte le combinazioni possibili di variabili intere. Gli algoritmi di branch & bound, risolvendo una sequenza di problemi LP, evitano di enumerare tutte le possibili combinazioni, permettendo di poter risolvere problemi di ottimizzazione con variabili intere in maniera efficiente. Purtroppo non sono altrettanto efficienti dei risolutori di problemi lineari a variabili continue. 15

76 Algoritmo di Branch & Bound 1. Viene risolto un problema rilassato in cui tutte le variabili binarie δ sono considerate come continue, δ 1. La soluzione di tale problema fornisce una stima per difetto (lower bound) del valore ottimo della soluzione. Purtroppo, nella soluzione del problema rilassato può accadere che alcune delle variabili binarie δ abbiano valori frazionari. 2. Si dirama (branch) la ricerca spezzando il problema in due sottoproblemi: uno in cui una certa variabile binaria è posta =, l altro in cui è posta =1. 3. Ciascuno dei sottoproblemi viene rilassato a sua volta, e suddiviso ulteriormente se necessario scegliendo un altra variabile binaria per diramare la ricerca Vantaggio rispetto all enumerazione completa: spesso si riescono ad eliminare molte diramazioni usando il bound del valore ottimo trovato via via. Algoritmo di Branch & Bound 151 Se tutte le δ k sono oppure 1 all ottimo, abbiamo trovato la soluzione del problema MILP (caso fortunato!) δ 1 = LP 1 δ 1 =1 Tutte le variabili sono continue, si ha un problema LP: LP 2 Se ad un certo nodo, risolvendo il problema rilassato, tutte le variabili δ k sono o 1, non sono necessarie ulteriori diramazioni LP 3 Una variabile viene fissata a 1, le altre rimangono continue δ k 1 per k 1 LP N δ k = intera per ogni k 152

77 Algoritmo di Branch & Bound Se tutte le δ k sono oppure 1 all ottimo, abbiamo trovato la soluzione del problema MILP (caso fortunato!) f 1 LP 1 δ 1 = δ 1 =1 Tutte le variabili sono continue, si ha un problema LP: f 2 =42.2 f 3 LP 2 Se l ottimo corrente f 2 f 35, non è necessario diramare ulteriormente l albero, anche se alcune variabili δ non sono intere (il costo può solo peggiorare) LP 3 f 35 =39.1 Una variabile viene fissata a 1, le altre rimangono continue δ k 1 per k 1 LP 35 δ k = intera per ogni k Algoritmo di Branch & Bound 153 Se tutte le δ k sono oppure 1 all ottimo, abbiamo trovato la soluzione del problema MILP (caso fortunato!) f 1 LP 1 δ 1 = δ 1 =1 Tutte le variabili sono continue, si ha un problema LP: f 2 =+ f 3 LP 2 Se il problema è inammissibile, non è necessario diramare ulteriormente l albero, anche se alcune variabili d non sono intere LP 3 f 35 =39.1 Una variabile viene fissata a 1, le altre rimangono continue δ k 1 per k 1 LP 35 δ k = intera per ogni k 154

78 Algoritmo di Branch & Bound Se tutte le δ k sono oppure 1 all ottimo, abbiamo trovato la soluzione del problema MILP (caso fortunato!) f 1 LP 1 δ 1 = δ 1 =1 Tutte le variabili sono continue, si ha un problema LP: f 2 =42.2 f 3 LP 2 Regole di selezione della variabile su cui diramare: la piú vicina a o 1 parte frazionale piú grande il valore d j maggiore nel costo altre euristiche dipendenti dal pb. LP 3 f 35 =39.1 Una variabile viene fissata a 1, le altre rimangono continue δ k 1 per k 1 LP 35 δ k = intera per ogni k Algoritmo di Branch & Bound 155 f 1 LP 1 δ 1 = δ 1 =1 Tutte le variabili sono continue, si ha un problema LP: depth-first (=vai in profondità) o breadth-first (=vai in larghezza)? Dipende dal problema. f 2 =42.2 f 3 LP 2 LP 3 Una variabile viene fissata a 1, le altre rimangono continue δ k 1 per k 1 f 35 =39.1 LP 35 δ k = intera per ogni k 156

79 Algoritmo di Branch & Bound Commenti: Trova il minimo globale Può richiedere la risoluzione di molti LP Si estende al caso di variabili intere δ N f 1 LP 1 δ 1 = δ 1 =1 f 3 LP 2 LP 3 Può essere migliorato: -tagli(b&cut) - presolver - molti altri trucchi... f 35 =39.1 LP Problema del ladro: albero di ricerca 158

80 Risolutori di programmi misti-interi interi In conclusione: La programmazione mista-intera (mixed-integer programming) è un problema difficile da risolvere... MA Esistono risolutori di tipo Branch & Bound oppure Branch & Cut per problemi misti-interi lineari MILP e quadratici MIQP che hanno ottime prestazioni (CPLEX, Xpress-MP, GLPK, BARON,...) H.D. Mittelmann and P. Spellucci, Decision Tree for Optimization Software, World Wide Web, (25) 159 Modellistica MILP La complessità della risoluzione di un problema di programmazione mista intera lineare (MILP) dipende in larga misura dal numero di variabili intere coinvolte. Quando modelliamo dobbiamo pertanto: Utilizzare le variabili intere con parsimonia! Dobbiamo quindi individuare quali variabili sono necessariamente da modellare come intere, ed eventualmente se possiamo ridurne il numero. 16

81 Vincoli logici Le variabili binarie permettono di prendere delle decisioni di tipo: Fare/non fare una qualche operazione Scegliere fra piú opzioni Implicazioni Vincoli di tipo o questo o quello Arricchiscono moltissimo il linguaggio modellistico! Fare/non fare Sono i vincoli logici piú comuni Vengono modellati semplicemente da una variabile binaria b {,1}: fare se b=, non fare se b=1 Esempio: Possiamo affittare tre aule diverse per fare lezione, A,B e C. L aula A ha 15 posti e costa 3, l aula B ha 2 e costa 38, l aula C ha 25 posti e costa 47. Ogni anno dobbiamo decidere quali aule affittare. Posti = 15*prendi A +2*prendi B +25*prendi C Costo = 3*prendi A +38*prendi B +47*prendi C prendi A, prendi B, prendi C {,1} 162

82 Vincoli di scelta Esprimono la scelta fra un numero finito di possibilità. scegli 1 + scegli 2 + scegli 3 1 esprime il fatto che possiamo scegliere al piú una fra le opzioni 1,2,3. Infatti: scegli scegli scegli ok ok ok no ok no no no 163 Altre tipologie di scelta: Vincoli di scelta scegli 1 + scegli 2 + scegli 3 2 = scegline al piú 2 fra 3 = scegline al piú m fra N Vincolo di or esclusivo scegli 1 + scegli 2 + scegli 3 = 1 = devo scegliere necessariamente una e una sola opzione = scegline esattamente m fra N 164

83 Implicazioni Come modellare relazioni che intercorrono fra scelte diverse? Esempio: Possiamo ordinare i PC o dalla IBM, o dalla DELL o dalla ASUS, e i monitor o dalla PHILIPS, o dalla SONY o dalla NEC. Se compriamo i PC dalla IBM, allora dobbiamo comprare i monitor dalla SONY pc IBM +pc DELL +pc ASUS =1 monitor PHILIPS +monitor SONY +monitor NEC =1 pc IBM monitor SONY equivale al vincolo logico [pc IBM =1] [monitor SONY =1] 165 Implicazioni base [pc IBM =1] [monitor SONY =1] pc IBM 1 1 monitor SONY 1 1 ok no ok ok pc IBM monitor SONY Si vede che non è possibile ordinare i PC dalla IBM e non ordinare i monitor dalla SONY 166

84 Altre implicazioni Se facciamo il il progetto A, A, allora dobbiamo fare anche i i progetti B e C Se facciamo il il progetto A, A, allora dobbiamo fare il il progetto B ma non il il progetto C Se facciamo i i progetti B e C, C, allora dobbiamo fare anche il il progetto A b a c a b a 1-c a a b+c-1 a,b,c {,1} Rendono la modellistica molto versatile! 167 Condizioni logiche Nota l equivalenza come diseguaglianza lineare di una relazione logica, è immediato sostituire A con non A semplicemente sostituendo A con (1-A) Se non facciamo il il progetto A, A, allora dobbiamo fare il il progetto B ma non il il progetto C b a 1-c a b 1-a 1-c 1-a Per verificare che la traduzione in diseguaglianza è corretta, è sufficiente scrivere la tabella di verità e controllare tutti i casi. 168

85 Condizioni logiche Alcune condizioni ricorrenti: Al piú una fra A,B,C,D Esattamente due fra A,B,C,D Se A allora B Se A allora non B Se non A allora B A se e solo se B Se A allora B e C Se A allora B oppure C Se B oppure C allora A Se B e C allora A Non B a+b+c+d 1 a+b+c+d = 2 b a a+b 1 a+b 1 a = b b a and c a b+c a a b and a c a b+c-1 1-b a,b,c,d {,1} 169 Problema dello zaino Stiamo pianificando un trekking in in montagna per il il fine settimana. Intenderemmo portare una serie di di oggetti, ma ci ci troviamo di di fronte al al dilemma di di dovere scegliere quali effettivamente inserire nello zaino, in in modo tale da da non superare i i 9 kg. oggetti disponibili 1)sacco a pelo 2)materassino 3)bussola 4)giacca 5)fornello 6)piatti 7)posate 8)vivande 9)ricambi 1)sapone 11)asciugamano 12)pane 13)accendino 17

86 Problema dello zaino Assegniamo a ciascuno degli oggetti un certo valore. L obiettivo è massimizzare il valore totale, senza eccedere però un peso complessivo massimo. Quali oggetti dobbiamo portare? Decisione binaria Vincoli sulle risorse funzione obiettivo! Articolo: VALORE:= [11, 9, 12, 8, 8, 6, 2, 6, 1, 4, 3, 5, 6] PESO:= [ 4, 2,.2, 2,1.5,.5,.2,3.5,.3,.2,.8, 1,.1] Modello 171 massimizza Valore tot sogg. a Niente di nuovo rispetto al problema del ladro

87 (file: zaino.mos) Risultato Soluzione: Valore ottimo: 118 Peso dello zaino: 8.5 prendi(sacco a pelo): 1 prendi(materassino): prendi(bussola): 1 prendi(giacca): 1 prendi(fornello): prendi(piatti): 1 prendi(posate): 1 prendi(vivande): prendi(ricambi): 1 prendi(sapone): 1 prendi(asciugamano): prendi(pane): 1 prendi(accendino): 1? Occorre aggiungere dei vincoli logici!? Xpress-IVE 173 Vincoli logici Aggiungiamo dei vincoli logici: se non prendo le vivande, non devo prendere neanche i piatti se non prendo le vivande, non devo prendere neanche le posate se non prendo le vivande, non devo prendere neanche il fornello prendi("piatti") <= prendi("vivande") prendi("posate") <= prendi("vivande") prendi("fornello") <= prendi("vivande") 174

88 Vincoli logici se prendo il fornello devo prendere anche l accendino se non prendo il sapone non prendo i ricambi prendi("accendino") >= prendi("fornello") prendi("ricambi") <= prendi("sapone") 175 (file: zaino2.mos) Risultato Soluzione: Valore ottimo: 112 Peso dello zaino: 8.6 prendi(sacco a pelo): 1 prendi(materassino): prendi(bussola): 1 prendi(giacca): 1 prendi(fornello): prendi(piatti): prendi(posate): prendi(vivande): prendi(ricambi): 1 prendi(sapone): 1 prendi(asciugamano): 1 prendi(pane): 1 prendi(accendino): 1 Xpress-IVE 176

89 Ulteriori modifiche al modello Aggiungiamo un altro vincolo logico: se prendo sacco e materassino aumento di +1 il valore Definiamo una nuova variabile binaria: dormibene = prendi("sacco a pelo") AND prendi("materassino") A = B AND C dormibene <= prendi("sacco a pelo") dormibene <= prendi("materassino") dormibene >= prendi("sacco a pelo") + prendi("materassino") - 1 a b a c a b+c-1 ValoreTot ValoreTot + 1*dormibene 177 Ulteriori modifiche al modello Aggiungiamo un altro vincolo logico: se non prendo cibo diminuisco -1 il valore Definiamo una nuova variabile binaria: cibo = prendi("vivande") OR prendi("pane") A = B OR C cibo >= prendi("vivande") cibo >= prendi("pane") cibo <= prendi("vivande") + prendi("pane") a b a c a b+c ValoreTot ValoreTot - 1*(1-cibo) 178

90 (file: zaino3.mos) Risultato Soluzione: Valore ottimo: 112 Peso dello zaino: 8.6 prendi(sacco a pelo): 1 prendi(materassino): 1 prendi(bussola): 1 prendi(giacca): prendi(fornello): prendi(piatti): prendi(posate): prendi(vivande): prendi(ricambi): 1 prendi(sapone): 1 prendi(asciugamano): 1 prendi(pane): 1 prendi(accendino): 1 Xpress-IVE 179 Problemi di trasporto (ground transport problems)

91 Problemi di Trasporto Sono esempi classici in cui l ottimizzazione fornisce soluzioni utili e in maniera molto efficiente Tipicamente l obiettivo è minimizzare il costo dovuto al trasporto di merci su gomma o rotaia, pianificando in maniera ottima (1) le locazioni per i depositi e le fabbriche e (2) gli itinerari da seguire. 181 Esempio: Autonoleggio Una compagnia di autonoleggio ha una flotta di 146 veicoli distribuiti su 17 agenzie. Dopo alcuni mesi di movimenti di auto da un agenzia all altra, si vuole determinare come ridistribuire i veicoli in modo che ve ne siano un certo numero per agenzia, minimizzando i costi complessivi, assumendo un costo di.5 per km, 182

92 Distanze fra città AN AO BA BO CB FI GE AQ MI NA PG PZ RC RM TO UD VE Ancona Aosta Bari Bologna Campobasso Firenze Genova L'Aquila Milano Napoli Perugia Potenza Reggio Calabria Roma Torino Udine Venezia Agenzie di autonoleggio Auto disponibili: AN AO BA BO CB FI GE AQ MI NA PG PZ RC RM TO UD VE Auto richieste: AN AO BA BO CB FI GE AQ MI NA PG PZ RC RM TO UD VE

93 Modello matematico Vincoli da soddisfare:... ve ne siano un certo numero per agenzia... Variabili di ottimizzazione...determinare come ridistribuire i veicoli... Funzione obiettivo:... minimizzando i costi complessivi Modello matematico Variabili di ottimizzazione move ij {CIT,CIT} CIT = {1,2,...,17} move ij = quante auto spostare dalla città #i alla città #j Vincolo di interezza: 186

94 Vincolo di bilanciamento stock i =AVAIL i + X j CIT move ji X j CIT move ij stock i NEED i i C IT 187 Variabili di contabilità Nota che abbiamo una variabile di contabilità: stock i Per come abbiamo definito il problema, le variabili stock i non hanno necessità di essere definite come intere! stock i =AVAIL i + X j CIT move ji X j CIT move ij Il vincolo di contabilità impone già automaticamente la natura intera di stock i 188

95 Funzione obiettivo Il costo totale per il trasporto dei veicoli da un agenzia all altra: Cost = X j,i CIT.5 Dist ij move ji 189 Formulazione del problema min sogg. a 19

96 Modello MOSEL declarations CIT = 1..1 DIST : array(cit,cit) of integer AVAIL : array(cit) of integer NEED : array(cit) of integer move : array(cit,cit) of mpvar stock : array(cit) of mpvar end-declarations initializations from 'ground.dat' DIST AVAIL NEED end-initializations Cost := sum(i,j in CIT).5*move(i,j)*DIST(i,j) forall (i in CIT) stock(i) = AVAIL(i) + sum(j in CIT) move(j,i) - sum(j in CIT) move(i,j) forall (i in CIT) stock(i) >= NEED(i) forall (i,j in CIT) move(i,j) is_integer minimize(cost) end-model Solo queste sono dichiarate come variabili intere Soluzione Il costo totale e' euro Mosse ottime: Dopo gli spostamenti: in stock / richieste 1/1, 9/6, 8/8, 11/11, 9/9, 7/7, 15/15, 7/7, 1/9, 12/12, 3/3, 3/1, 3/2, 16/16, 15/15, 4/4, 4/

97 Problemi di trasporto I problemi di trasporto godono di una proprietà molto interessante: Il Il metodo del simplesso per risolvere un LP a variabili continue trova sempre una soluzione intera Questo vuol dire che i problemi di trasporto, sebbene siano definiti come problemi MILP (=problemi difficili), possono essere risolti come LP (=problemi facili). 193 MOSEL declarations CIT = 1..1 DIST : array(cit,cit) of integer AVAIL : array(cit) of integer NEED : array(cit) of integer move : array(cit,cit) of mpvar stock : array(cit) of mpvar end-declarations initializations from 'ground.dat' DIST AVAIL NEED end-initializations Cost := sum(i,j in CIT).5*move(i,j)*DIST(i,j) forall (i in CIT) stock(i) = AVAIL(i) + sum(j in CIT) move(j,i) - sum(j in CIT) move(i,j) forall (i in CIT) stock(i) >= NEED(i) forall (i,j in CIT) move(i,j) is_integer minimize(cost) end-model È stato eliminato il vincolo di interezza 194

98 Risultato MILP Soluzione Il costo totale e' euro Mosse ottime: 4 Il costo totale e' euro 3 Mosse ottime: i risultati sono identici Risultato LP 195 Linearizzazione di funzioni obiettivo

99 Funzioni obiettivo MinMax Esempio: acquisto di azioni Vogliamo comprare alcune azioni di tipo Tecnologico, Costruzioni, Trasporti e Moda. Vogliamo minimizzare il rischio massimo sul breve, medio e lungo termine breve medio lungo Tecnologico Costruzioni Trasporti misure di rischio Moda Funzioni obiettivo MinMax Abbiamo tre funzioni di rischio! minimizzare il rischio massimo 198

100 Funzioni obiettivo MinMax Come rendere il problema lineare? s rappresenta un upper-bound del massimo fra Breve, Medio e Lungo s max{breve,medio,lungo} È facile dimostrare (per assurdo) che all ottimo si ha: s = max{breve,medio,lungo} 199 Funzioni obiettivo razionali Abbiamo già visto vincoli sulla qualità e di miscelazione, che sono vincoli sul rapporto di variabili Esempio: vincolo sulla qualità Supponendo, è possibile riscrivere il vincolo come vincolo lineare: Vediamo adesso come trattare rapporti di variabili nella funzione obiettivo 2

101 Funzioni obiettivo razionali Esempio: La ditta Metalli S.p.A. ha ricevuto un ordine di 5 tonnellate di acciaio da usare per la costruzione di una nave. L acciaio deve avere determinate caratteristiche di composizione. La ditta dispone di sette tipi diversi di materiale grezzo da utilizzare per la produzione di questo acciaio. L obiettivo è determinare la composizione che minimizza la percentuale di zolfo, soddisfacendo i vincoli sulle caratteristiche di composizione. 21 Dati a disposizione Mat. grezzo C% Cu% Mn% Tons S% Iron Iron Iron Copper Copper Aluminium Aluminium Composizioni %, quantità disponibili, % di zolfo 22

102 Funzione obiettivo razionale funzione non lineare delle variabili! sogg. a: rappresentano i vincoli originali del problema 23 Cambio di variabili 1) abbiamo aggiunto una nuova variabile: d 2) abbiamo abbandonato le vecchie variabili use j per sostituirle con le nuove variabili x j 24

103 Cambio di variabili Considerando la variabile d come libera, otteniamo un vincolo lineare sulle variabili x j : nuovo vincolo lineare da aggiungere al problema Moltiplicando i vincoli originali a destra e a sinistra per la quantità d (d), otteniamo dei vincoli equivalenti in x,d: 25 Funzione obiettivo: Cambio di variabili Tutti i vincoli (=quelli originali + il nuovo vincolo) possono essere espressi come un insieme di disuguaglianze lineari sulle variabili x j, d. Programma Lineare 26

104 Costi fissi Costo K C K> x È un tipo molto comune di funzione di costo, utile ogni volta che si abbia un costo base solo per il fatto di utilizzare una certa risorsa Costi fissi Introduciamo una variabile binaria: 27 Condizioni: se x allora b=1 se x = allora b= Verifichiamo: 1) se x > allora non può che essere b=1 2) se x =, allora b è libera. Quando però minimizziamo il costo, essendo K >, all ottimo avremo b= 28

105 Costi variabili 1 (economies( of scale) Considera il seguente esempio: i prezzi del legno sono fissati come segue: -1 kg.99 /kg 1-2 kg.95 /kg 2-4 kg.9 /kg +4 kg.8 /kg scala dei prezzi Nota: non vengono effettuati sconti in blocco! I primi 1 kg sono sempre pagati 99, indipendentemente dal fatto che se ne comprino quantità maggiori Come esprimere la funzione di costo? 29 Costi variabili 1 Occorre introdurre delle variabili continue x 1, x 2, x 3, x 4 e binarie b 1, b 2, b 3, b 4 Costo b 1 = b 4 = b 4 = 1 b 3 = b 3 = 1 b 2 = b 2 = 1 C C 4 b 1 = 1 3 C 2 C 1 x = x 1 +x 2 +x 3 +x 4 x i = quantità acquistata al prezzo C i x 21

106 Costi variabili Esempio: Costi variabili 1 [1] [11] [111] [1111] x 1 =1, x 2 =1, x 3 minore di 2 212

107 Costi convessi lineari a tratti Costo C 1 C 2 C 3 C 4 x I costi lineari a tratti e convessi possono essere rappresentati senza introdurre variabili binarie! 213 Costi convessi lineari a tratti C(x) x È facile osservare che: (in generale: ogni funzione lineare a tratti convessa può essere rappresentata come max di funzioni affini, e viceversa) 214

108 C(x) Costi convessi lineari a tratti s Riformulazione come programma lineare: x La variabile s rappresenta un upper-bound del massimo Come per le funzioni obiettivo minmax, è facile dimostrare (per assurdo) che all ottimo si ha: 215 Costi variabili 2 Considera il seguente esempio: i prezzi del legno sono fissati come segue: -1 kg.99 /kg 1-2 kg.95 /kg 2-4 kg.9 /kg +4 kg.8 /kg scala dei prezzi Nota: vengono effettuati sconti in blocco! Maggiore è la quantità acquistata, minore è il costo per kg Come esprimere la funzione di costo? 216

109 Costi variabili 2 Costo b 1 = b 4 = b 4 = 1 b 3 = b 3 = 1 b 2 = b 2 = 1 b 1 = 1 C 3 C 4 C 1 C 2 x = x 1 +x 2 +x 3 +x 4 x i = quantità acquistata al prezzo C i x 217 Costi variabili 2 Definiamo le variabili b e x esattamente come prima: e riscriviamo il costo come: 218

110 Costi variabili 2 Il vincolo b 1 b 2 b 3 b 4 impone che le uniche combinazioni possibili siano [1],[11],[111],[1111] uno soltanto dei quattro termini sarà non nullo OK, ma il costo non è lineare! Abbiamo il prodotto fra variabili continue e binarie 219 Prodotto variabili continue-binarie Tecnica del big-m : può essere modellato come x z b {,1} sotto l ipotesi che M sia scelto sufficientemente grande, in modo che sia sempre x M 22

111 Prodotto variabili continue-binarie x z b {,1} b= b=1 z= z=x 221 Vincoli di cardinalità (counting) È un vincolo (molto ricorrente) che limita il numero di scelte discrete che possiamo decidere. Associamo ad ogni opzione i, i=1,2,...,n, una variabile binaria b i, b i,1 Possiamo scegliere al più M opzioni Dobbiamo scegliere esattamente M opzioni Dobbiamo scegliere almeno M opzioni 222

112 Problema del prestito È un vincolo molto ricorrente. Facciamo un esempio: Vogliamo aprire tre punti vendita, uno a Roma, uno a Parigi e uno a Madrid. Per realizzare il progetto abbiamo bisogno rispettivamente di 2 M, 2.5 M e 1.8 M. Dobbiamo scegliere a quali banche rivolgersi per un prestito. In base a calcoli sui fattori di rischio, ogni banca ha interessi diversi a seconda del paese nel quale il progetto verrà realizzato. Siamo però costretti a scegliere al piú due banche per i prestiti. Ad una singola banca non possiamo chiedere piú di 3.5 M. Vincolo di cardinalità 223 Problema del prestito Interessi applicati dalle banche e capitali necessari Roma Parigi Madrid Monte dei Paschi 5% 6.1% 6% Cassa di Risparmio di Firenze 6.3% 4.3% 5.6% Abbey National Bank 3% 5% 6% Capitale: 2 M 2.5 M 1.8 M 224

113 Problema del prestito soggetto a: Vincolo di cardinalità 225 Problema del prestito - Risultato Interessi complessivi: Roma: banca 3=2 MEUR; Londra: banca 2=2.5 MEUR; Madrid: banca 2=1 MEUR; banca 3=.8 MEUR; (file: prestiti.mos) Xpress-IVE 226

114 Vincoli di or logico Anche questi sono vincoli molto ricorrenti. Hanno bisogno di variabili binarie per essere modellati. Esempio: Siamo interessati ad investire del denaro per scopi pubblicitari, al fine di ottenere un buon impatto commerciale in TV o in radio... Basta che sia soddisfatto almeno uno dei due vincoli 227 Vincoli di or logico Impatto minimo = 1.5 TV Radio Costo Mediaset RAI Radio Capital..5 5 MTV

115 Vincoli di or logico Vincoli sulle variabili buy(i): 229 Vincoli di or logico Se almeno uno dei due vincoli è soddisfatto, allora esiste un valore della variabile binaria b ammissibile. Viceversa, se entrambe i vincoli non possono essere soddisfatti, non esistono valori ammissibili per b. buy(2) Regione ammissibile (non convessa) buy(1) 23

116 Problemi di assegnazione Pianificazione dei turni di lavoro (timetabling and personnel planning) Gestione del personale La gestione del personale può essere vista come un problema di distribuzione di risorse. I dati a disposizione tipicamente sono: tassi di produttività ore lavorative vincoli sul personale... Le tecniche di ottimizzazione risultano molto utili per risolvere tali problemi, anche se occorre fare attenzione: gli uomini non sono risorse, quindi non dobbiamo sottovalutare eventuali risvolti psicologici 232

117 Assegnazione operatori/macchine In In un officina esistono sei macchine, a ciascuna delle quali occorre assegnare un operatore. Sono stati prescelti sei operai, per ognuno dei quali è stato effettuato un test di di produttività su suciascuna macchina. Le macchine lavorano in in parallelo, quindi la la produttività complessiva è la la somma delle produttività di di ciascuna macchina. L obiettivo è assegnare il ilpersonale in in modo da da massimizzare la la produttività 233 Assegnazione operatori/macchine diversi operai per diverse macchine 234

118 Dati di produttività Macchina Operaio Pezzi prodotti all ora Unità? Problema dei dati 235 Soluzione euristica Molti problemi di ottimizzazione ammettono soluzioni di tipo euristico in grado di soddisfare i vincoli imposti. Soluzione euristica: Iniziando dalla macchina numero 1, assegna a ogni macchina l operaio che ha il tasso di produttività piú alto La soluzione euristica è un algoritmo molto semplice che può essere implementato anche a mano NOTA: la soluzione dipende dall ordine scelto per le macchine. Inoltre, molto probabilmente, la soluzione non sarà ottimale. 236

119 Soluzione euristica in MOSEL declarations ALLP, ALLM: set of integer! Copia degli insiemi OPERAI e MACCHINE HProd: integer! Valore totale di produttivita' pmax,omax,mmax: integer end-declarations! Copia gli insiemi di operai e macchine forall(p in OPERAI) ALLP+={p} forall(m in MACCHINE) ALLM+={m}! Assegna operai alle macchine finche' esistono macchine non assegnate while (ALLP<>{}) do pmax:=; mmax:=; omax:=! Trova la produttivita' piu' elevata fra quelle rimaste forall(p in ALLP, m in ALLM) if PRODUT(p,m) > omax then omax:=produt(p,m) pmax:=p; mmax:=m end-if NON CI SONO VARIABILI DI OTTIMIZZAZIONE HProd+=omax ALLP-={pmax}; ALLM-={mmax}! Lo aggiunge alla produttivita' totale! Rimuove la macchina e l'operai dai rispettivi insiemi writeln(" ",pmax, " e' assegnato alla macchina ", mmax, " (", omax, ")") end-do writeln(" Produttivita' totale: ", HProd) Nota: La soluzione euristica può essere implementata in qualsiasi linguaggio di programmazione, ad esempio in MATLAB 237 Soluzione ottima Soluzione ottima Utilizziamo un modello matematico per risolvere il problema di assegnazione in maniera ottimale 238

120 Modello matematico... sei macchine, a ciascuna delle quali occorre assegnare un operatore... Variabili di ottimizzazione... Sono stati prescelti sei operai... Vincoli... per ognuno dei quali è stato effettuato un test di produttività... Dati del problema... massimizzare la produttività... Funzione obiettivo 239 Modello matematico Prima di tutto dobbiamo scegliere le variabili di ottimizzazione:...sei macchine, a ciascuna delle quali occorre assegnare un operatore......sono stati prescelti sei operai... Reali? Difficile rappresentare poi il vincolo di assegnare soltanto UN operatore per macchina Intere? macchinap {1, 2, 3, 4, 5, 6} Binarie? assegna pm {, 1} p =1,...,6 m =1,...,6 24

121 Modello matematico Vincolo:... ogni macchina ha un solo operaio... m MACCHINE : P p OPERAI assegna pm =1... ogni operaio ha assegnata una sola macchina... p OPERAI : P m MACCHINE assegna pm =1 vincolo logico di or esclusivo 241 Modello matematico... ogni macchina ha un solo operaio... m MACCHINE : P p OPERAI assegna pm =1 Variabili binarie (,1) Almeno una variabile deve essere posta = 1 Soltanto una variabile può essere posta = 1 Idem per il vincolo...ogni operaio ha assegnata una sola macchina

122 Funzione obiettivo Lavorazione in parallelo... PROFITTO PROFITTO PROFITTO PROFITTO PROFITTO PROFITTO 243 Problema di ottimizzazione max Profitto : X p X m prod pm assegna pm sogg. a m MACCHINE : p OP ERAI : assegna pm {, 1} P p OPERAI P m MACCHINE assegna pm =1 assegn pm =1 È un problema di assegnazione (assignment problem) 244

123 Formulazione MOSEL declarations OPERAI = 1..6! Personale MACCHINE = 1..6! Macchine PRODUT: array(operai,macchine) of integer! Produttivita' assegna: array(operai,macchine) of mpvar end-declarations! 1 se l'operaio e' assegnato! alla macchina, altrimenti! Obiettivo: produttivita' totale TotalProd:= sum(p in OPERAI, m in MACCHINE) PRODUT(p,m)*assegna(p,m)! Una macchina per operaio forall(p in OPERAI) sum(m in MACCHINE) assegna(p,m) = 1! Un operaio per macchina forall(m in MACCHINE) sum(p in OPERAI) assegna(p,m) = 1 forall(p in OPERAI, m in MACCHINE) assegna(p,m) is_binary! Risoluzione del problema maximize(totalprod) Soluzione 245 Soluzione Soluzione euristica euristica (macchine (macchine parallele): parallele): 6 e' e' assegnato assegnato alla alla macchina macchina 5 (45) (45) 5 e' e' assegnato assegnato alla alla macchina macchina 3 (34) (34) 3 e' e' assegnato assegnato alla alla macchina macchina 6 (33) (33) 4 e' e' assegnato assegnato alla alla macchina macchina 2 (26) (26) 1 e' e' assegnato assegnato alla alla macchina macchina 4 (19) (19) 2 e' e' assegnato assegnato alla alla macchina macchina 1 (18) (18) Produttivita' Produttivita' totale: totale: La soluzione ottima è migliore di quella euristica Soluzione Soluzione esatta esatta (macchine (macchine parallele): parallele): 1 e' e' assegnato assegnato alla alla macchina macchina 3 (31) (31) 2 e' e' assegnato assegnato alla alla macchina macchina 5 (43) (43) 3 e' e' assegnato assegnato alla alla macchina macchina 4 (25) (25) 4 e' e' assegnato assegnato alla alla macchina macchina 6 (3) (3) 5 e' e' assegnato assegnato alla alla macchina macchina 1 (28) (28) 6 e' e' assegnato assegnato alla alla macchina macchina 2 (36) (36) Produttivita' Produttivita' totale: totale: (e non può che essere cosí!) 246

124 Problemi di assegnazione È uno strumento molto utile per risolvere problemi del tipo: Orari dei corsi Orari degli esami Schedulazione dei turni di lavoro... Esistono molti esempi di applicazione in vari settori (vedi ad esempio nel testo Applications of optimization with Xpress-MP ) Nota: quando non si hanno funzioni obiettivo da ottimizzare ma basta solo trovare una soluzione ammissibile, esistono anche altre tecniche modellistiche e risolutive (es: Constraint Logic Programming) 247 Assegnazione operatori/macchine In un officina esistono sei macchine, a ciascuna delle quali occorre assegnare un operatore. Sono stati prescelti sei operai, per ognuno dei quali è stato effettuato un test di produttività su ciascuna macchina. Le macchine lavorano in serie, quindi la produttività complessiva è quella della macchina con minor tasso di produttività. L obiettivo è assegnare il personale in modo da massimizzare la produttività complessiva 248

125 Macchine in serie Produzione in serie PROFITTO catena di produzione 249 Modello matematico... sei macchine, a ciascuna delle quali occorre assegnare un operatore Sono stati prescelti sei operai per ognuno dei quali è stato effettuato un test di produttività... NESSUNA MODIFICA Variabili di ottimizzazione Vincoli Dati del problema 25

126 Funzione obiettivo 1 pezzi/ora P1 P2 P3 P4 P5 P6 P 5 pezzi/ora Qui i pezzi sono in attesa 5 pezzi/ora Qui le macchine sono in attesa Situazione di Bottleneck massimizzare la produttività complessiva = massimizzare la minima produttività È un problema di MaxMin 251 Funzione obiettivo MaxMin m MACCHINE : X p OPERAI assegna pm prodpm Prod Per ogni macchina, la sua produttività deve essere maggiore della produttività complessiva della fabbrica È del tutto simile al caso MinMax: si massimizza una variabile (Prod) che rappresenta un lower bound della produttività di ciascuna macchina (e quindi è minore o uguale al minimo). All ottimo, tale variabile sarà esattamente la produttività minima (si dimostra per assurdo) 252

127 Modello matematico max sogg. a Prod m MACCHINE : P assegna pm prodpm Prod p OPERAI m MACCHINE : p OP ERAI : assegna pm {, 1} P p OPERAI P m MACCHINE assegna pm =1 assegn pm =1 COME PRIMA 253 Formulazione MOSEL declarations OPERAI = 1..6! Personale MACCHINE = 1..6! Macchine PRODUT: array(operai,macchine) of integer! Produttivita' assegna: array(operai,macchine) of mpvar MinProd: mpvar end-declarations! 1 se l'operaio e' assegnato! alla macchina, altrimenti! Produttivita' complessiva! Produttivita' minima forall(p in OPERAI) sum(m in MACCHINE) PRODUT(p,m)*assegna(p,m) >= MinProd! Una macchina per operaio forall(p in OPERAI) sum(m in MACCHINE) assegna(p,m) = 1! Un operaio per macchina forall(m in MACCHINE) sum(p in OPERAI) assegna(p,m) = 1 forall(p in OPERAI, m in MACCHINE) assegna(p,m) is_binary! Obiettivo: produttivita' totale maximize(minprod) 254

128 Soluzione Soluzione esatta (macchine serie): 1 e' assegnato alla macchina 6 (29) 2 e' assegnato alla macchina 3 (3) 3 e' assegnato alla macchina 5 (34) 4 e' assegnato alla macchina 2 (26) 5 e' assegnato alla macchina 1 (28) 6 e' assegnato alla macchina 4 (27) Produttivita' totale: Programmazione Quadratica

129 Programmazione lineare minimizza o massimizza funzione obiettivo soggetto a 257 Programmazione quadratica minimize or maximize funzione obiettivo soggetto a STESSI VINCOLI DELL LP 258

130 Funzione obiettivo Si hanno dei termini quadratici: N j=1 N i=1 H ji x j x i + N j=1 c j x j Solitamente, per programmazione quadratica (QP) si intende quella convessa, ovvero quella per cui NX NX j=1i=1 H ji x j x i > per ogni [x 1... x n ] [... ] 259 Programmazione quadratica Insieme ammissibile 26

131 Programmazione quadratica Anche la programmazione quadratica è molto diffusa nelle applicazioni e vari risolutori QP sono disponibili in molti pacchetti software per l ottimizzazione Xpress-MP, Cplex, Matlab,... H.D. Mittelmann and P. Spellucci, Decision Tree for Optimization Software, World Wide Web, (25) Applicazioni: Economia (es: selezione di portafoglio titoli) Ingegneria (es: automazione di processo) Matlab Optimization Toolbox QP Esistono risolutori QP molto piú efficienti! 262

132 Scelta portafoglio titoli (Mean Variance Portfolio Selection) Decidiamo di investire una certa somma di denaro in titoli di quattro tipi diversi: buoni del tesoro, una fabbrica di calcolatori, una software company, e una produzione cinematografica ad altro rischio. Definiamo adesso la funzione obiettivo Scelta portafoglio titoli I vantaggi di questi investimenti non sono indipendenti, per esempio hardware e software sono direttamente correlati, mentre cinema e software sono inversamente correlati (quando gli acquirenti vanno molto al cinema comprano meno videogiochi). Vogliamo investire la nostra somma in maniera tale da massimizzare il profitto atteso minimizzando però la varianza del profitto stesso (e quindi il rischio). Espressione quadratica

133 Dati del problema di portfolio Hardware Software Cinema BOT Valore atteso Hardware Software Cinema BOT Termini di covarianza 265 Funzione obiettivo NX NX j=1i=1 VAR ji frac j frac i frac i = quota di denaro da investire nell i-esimo titolo 266

134 Modello matematico Vincoli: NX j=1 NX j=1 frac j Exp j E min frac j =1 Vogliamo avere almeno un certo profitto minimo Vogliamo investire tutta la somma frac j Vincoli di non negatività 267 Modello matematico min NP NP j=1i=1 VAR ji frac j frac i sogg. a NP j=1 frac j Exp j E min NP j=1 frac j =1 frac j 268

135 MOSEL uses "mmxprs","mmquad" declarations RETMIN = 9 SECS = 1..4 RET: array(secs) of real VAR: array(secs,secs) of real frac: array(secs) of mpvar end-declarations initializations from 'meanvar.dat' RET VAR end-initializations Variance:= sum(i,j in SECS) VAR(i,j)*frac(j)*frac(i) sum(i in SECS) frac(i) = 1 sum(i in SECS) frac(i)*ret(i) >= RETMIN minimize(variance) end-model meanvar.mos Usiamo un nuovo tipo di risolutore La varianza del portafoglio e' Il portafoglio ottimo e' costituito da: % di titoli di tipo % di titoli di tipo % di titoli di tipo % di titoli di tipo Altri esempi di modellistica MILP

136 Scelta di un progetto di espansione Una casa automobilistica decide di espandere la propria capacità produttiva al fine di penetrare il mercato asiatico. Sono stati studiati alcuni progetti di espansione e cinque risultano i piú favorevoli. I vari progetti hanno diversi benefici attesi dopo cinque anni, e certi costi di investimento ogni anno. Quali progetti dobbiamo attuare, noti quali saranno i finanziamenti disponibili nei prossimi anni? 271 Progetti di espansione Progetto Descrizione Potenziare la catena di montaggio Potenziare il sistema di verniciatura Investire sul Diesel Rinnovare il modello A Nuova city-car Beneficio atteso

Corso di Modelli e metodi di ottimizzazione. Alberto Bemporad. http://www.dii.unisi.it/~bemporad. Sommario

Corso di Modelli e metodi di ottimizzazione. Alberto Bemporad. http://www.dii.unisi.it/~bemporad. Sommario Corso di Modelli e metodi di ottimizzazione Alberto Bemporad http://www.dii.unisi.it/~bemporad Università di Siena Dipartimento di Ingegneria dell Informazione Sommario Obiettivo del corso: risolvere problemi

Dettagli

Programmazione Matematica: III.1 - Programmazione Lineare

Programmazione Matematica: III.1 - Programmazione Lineare Programmazione Matematica: III.1 - Programmazione Lineare Daniele Vigo D.E.I.S. Università di Bologna dvigo@deis.unibo.it rev. 1.0 ottobre 2003 Programmazione Lineare Def.: (F, ϕ ) è un problema di Programmazione

Dettagli

Programmazione Lineare Intera (ILP)

Programmazione Lineare Intera (ILP) Programmazione Lineare Intera (ILP) (P) min (x), x F Z : R n ->R è lineare: (x) = c, x = c 1 x 1 + c 2 x 2 +... + c n x n F R n è definito da : g i (x) 0 (i = 1,...,m), con g i : R n R lineare i Z insieme

Dettagli

Algoritmo di Branch & Bound

Algoritmo di Branch & Bound Sapienza Università di Roma - Dipartimento di Ingegneria Informatica, Automatica e Gestionale Algoritmo di Branch & Bound Docente: Renato Bruni bruni@dis.uniroma.it Corso di: Ottimizzazione Combinatoria

Dettagli

Algoritmo dibranch & Bound

Algoritmo dibranch & Bound Sapienza Università di Roma - Dipartimento di Ingegneria Informatica, Automatica e Gestionale Algoritmo dibranch & Bound Docente: Renato Bruni bruni@dis.uniroma.it Corso di: Ottimizzazione Combinatoria

Dettagli

Ottimizzazione e Controllo 2015/2016 ESERCITAZIONE

Ottimizzazione e Controllo 2015/2016 ESERCITAZIONE Ottimizzazione e Controllo 2015/2016 ESERCITAZIONE Esercizio 1. Sono dati 6 job da processare su un centro di lavorazione automatizzato che può eseguire una sola lavorazione alla volta. Di ciascun job

Dettagli

Metodi di Ottimizzazione per la Logistica e la Produzione

Metodi di Ottimizzazione per la Logistica e la Produzione Metodi di Ottimizzazione per la Logistica e la Produzione Introduzione alle attività di Laboratorio Manuel Iori Dipartimento di Scienze e Metodi dell Ingegneria Università di Modena e Reggio Emilia MOLP

Dettagli

Introduzione all uso di FICO Xpress. Metodi di Ottimizzazione per la Logistica e la Produzione

Introduzione all uso di FICO Xpress. Metodi di Ottimizzazione per la Logistica e la Produzione Introduzione all uso di FICO Xpress Metodi di Ottimizzazione per la Logistica e la Produzione 1 2 Alcuni risolutori per la Programmazione Matematica Indice Sono a disposizione numerosi risolutori di Programmazione

Dettagli

LEZIONE N. 6 - PARTE 1 - Introduzione

LEZIONE N. 6 - PARTE 1 - Introduzione LEZIONE N. 6 PROGRAMMAZIONE LINEARE IN MARKAL, SOLUZIONE DEI PROBLEMI DI PROGRAMMAZIONE LINEARE CON: IL METODO GRAFICO ED IL METODO DEL SIMPLESSO. PROPRIETÀ DELLA DUALITÀ ED ESEMPI DI SOLUZIONE DEL PROBLEMA

Dettagli

METODI DELLA RICERCA OPERATIVA

METODI DELLA RICERCA OPERATIVA Università degli Studi di Cagliari FACOLTA' DI INGEGNERIA CORSO DI METODI DELLA RICERCA OPERATIVA Dott.ing. Massimo Di Francesco (mdifrance@unica.it) i i Dott.ing. Maria Ilaria Lunesu (ilaria.lunesu@unica.it)

Dettagli

Ricerca Operativa. G. Liuzzi. Lunedí 9 Marzo Programmazione Matematica Geometria di R n Esempi Teoria della PL Forma Standard. logo.

Ricerca Operativa. G. Liuzzi. Lunedí 9 Marzo Programmazione Matematica Geometria di R n Esempi Teoria della PL Forma Standard. logo. 1 Lunedí 9 Marzo 2015 1 Istituto di Analisi dei Sistemi ed Informatica IASI - CNR Problema di Ottimizzazione min(o max) f (x) con la restrizione x S dove f (x) : R n R è detta funzione obiettivo S R n

Dettagli

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI 3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI ESISTENZA DI UN PUNTO DI OTTIMO VINCOLATO Il problema di ottimizzazione vincolata introdotto nel paragrafo precedente può essere formulato nel modo seguente:

Dettagli

3.4 Metodo di Branch and Bound

3.4 Metodo di Branch and Bound 3.4 Metodo di Branch and Bound Consideriamo un generico problema di Ottimizzazione Discreta dove X è la regione ammissibile. (P ) z = max{c(x) : x X} Metodologia generale di enumerazione implicita (Land

Dettagli

Programmazione a numeri interi: il metodo del Branch and Bound

Programmazione a numeri interi: il metodo del Branch and Bound Programmazione a numeri interi: il metodo del Branch and Bound L. De Giovanni G. Zambelli Un problema di programmazione lineare intera è una problema della forma z I = maxc T x Ax b x 0 x i Z, i I. (1)

Dettagli

1. Dare la definizione di funzione lineare. R: Una funzione lineare di n variabili è una funzione del tipo. c 1 x 1 + c 2 x c n x n,

1. Dare la definizione di funzione lineare. R: Una funzione lineare di n variabili è una funzione del tipo. c 1 x 1 + c 2 x c n x n, VERTICIDIUNPOLIEDRO 31 Esercizi di riepilogo sui Capitoli 1 5 1. Dare la definizione di funzione lineare. R: Una funzione lineare di n variabili è una funzione del tipo dove c 1,c 2,...,c n sono numeri

Dettagli

LEZIONE N. 7 - PARTE 1 - Introduzione

LEZIONE N. 7 - PARTE 1 - Introduzione LEZIONE N. 7 PROGRAMMAZIONE LINEARE IN MARKAL, SOLUZIONE DEI PROBLEMI DI PROGRAMMAZIONE LINEARE CON: IL METODO GRAFICO ED IL METODO DEL SIMPLESSO. PROPRIETÀ DELLA DUALITÀ ED ESEMPI DI SOLUZIONE DEL PROBLEMA

Dettagli

Parte III: Algoritmo di Branch-and-Bound

Parte III: Algoritmo di Branch-and-Bound Parte III: Algoritmo di Branch-and-Bound Divide et Impera Sia z * max {c T x : x S} (1) un problema di ottimizzazione combinatoria difficile da risolvere. Domanda: E possibile decomporre il problema (1)

Dettagli

4 PROGRAMMAZIONE LINEARE (PL) E. Amaldi -- Fondamenti di R.O. -- Politecnico di Milano 1

4 PROGRAMMAZIONE LINEARE (PL) E. Amaldi -- Fondamenti di R.O. -- Politecnico di Milano 1 4 PROGRAMMAZIONE LINEARE (PL) E. Amaldi -- Fondamenti di R.O. -- Politecnico di Milano 1 Problemi di programmazione matematica: min s.v. f () X n dove X è la regione delle soluzioni ammissibili con funzione

Dettagli

5.1 Metodo Branch and Bound

5.1 Metodo Branch and Bound 5. Metodo Branch and Bound Consideriamo un generico problema di ottimizzazione min{ c(x) : x X } Idea: Ricondurre la risoluzione di un problema difficile a quella di sottoproblemi più semplici effettuando

Dettagli

LEZIONE N. 6 - PARTE 1 - Introduzione

LEZIONE N. 6 - PARTE 1 - Introduzione LEZIONE N. 6 PROGRAMMAZIONE LINEARE IN MARKAL, SOLUZIONE DEI PROBLEMI DI PROGRAMMAZIONE LINEARE CON: IL METODO GRAFICO ED IL METODO DEL SIMPLESSO. PROPRIETÀ DELLA DUALITÀ ED ESEMPI DI SOLUZIONE DEL PROBLEMA

Dettagli

Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities

Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities L. De Giovanni M. Di Summa In questa lezione introdurremo una classe di disuguaglianze, dette cover inequalities, che permettono di

Dettagli

Elementi di un modello di Programmazione Matematica

Elementi di un modello di Programmazione Matematica 1 Ricerca Operativa Laboratorio: utilizzo di solver per programmazione matematica Elementi di un modello di Programmazione Matematica Insiemi: elementi del sistema; Parametri: dati del problema; Variabili

Dettagli

Miscelazione di benzine

Miscelazione di benzine Miscelazione di benzine Una raffineria deve miscelare 4 tipi di petrolio grezzo per ottenere 3 tipi di benzina. La tabella seguente mostra la massima quantità disponibile per ogni tipo di petrolio grezzo

Dettagli

4 PROGRAMMAZIONE LINEARE (PL) E. Amaldi -- Fondamenti di R.O. -- Politecnico di Milano 1

4 PROGRAMMAZIONE LINEARE (PL) E. Amaldi -- Fondamenti di R.O. -- Politecnico di Milano 1 4 PROGRAMMAZIONE LINEARE (PL) E. Amaldi -- Fondamenti di R.O. -- Politecnico di Milano 1 Problemi di programmazione matematica: min f () s.v. X n insieme delle soluzioni ammissibili con funzione obiettivo

Dettagli

Sull algoritmo di ascesa duale per il problema della localizzazione di impianti

Sull algoritmo di ascesa duale per il problema della localizzazione di impianti Sull algoritmo di ascesa duale per il problema della localizzazione di impianti A. Agnetis In queste note presentiamo l algoritmo di ascesa duale per la generazione di lower bound di buona qualità per

Dettagli

Esercizi sulla Programmazione Lineare Intera

Esercizi sulla Programmazione Lineare Intera Soluzioni 4.7-4.0 Fondamenti di Ricerca Operativa Prof. E. Amaldi Esercizi sulla Programmazione Lineare Intera 4.7 Algoritmo del Simplesso Duale. Risolvere con l algoritmo del simplesso duale il seguente

Dettagli

Il problema dello zaino: dalla gita in montagna ai trasporti internazionali. Luca Bertazzi

Il problema dello zaino: dalla gita in montagna ai trasporti internazionali. Luca Bertazzi Il problema dello zaino: dalla gita in montagna ai trasporti internazionali Luca Bertazzi 0 Ricerca Operativa (Operations Research) The Science of Better Modelli e algoritmi per la soluzione di problemi

Dettagli

Soluzione di problemi di Programmazione Lineare Intera

Soluzione di problemi di Programmazione Lineare Intera 10 Soluzione di problemi di Programmazione Lineare Intera 10.1 ESERCIZI SULLA SOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE INTERA Esercizio 10.1.1 Risolvere con il metodo del Branch and Bound il seguente

Dettagli

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

Excel: una piattaforma facile per l ottimizzazione. Excel ha un toolbox di ottimizzazione: Risolutore Excel: una piattaforma facile per l ottimizzazione Excel ha un toolbox di ottimizzazione: Risolutore Il problema di produzione con Excel Consideriamo il foglio Excel Variabili di decisione reali c8,d8

Dettagli

Problemi di localizzazione di servizi (Facility Location Problems)

Problemi di localizzazione di servizi (Facility Location Problems) 9. Problemi di Localizzazione di Servizi 1 Problemi di localizzazione di servizi (Facility Location Problems) Dato un insieme di clienti richiedenti una data domanda di merce e dato un insieme di possibili

Dettagli

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla teoria della dualità in programmazione lineare

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla teoria della dualità in programmazione lineare Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla teoria della dualità in programmazione lineare L. De Giovanni G. Zambelli 1 Definizione del problema duale La teoria della dualità in programmazione

Dettagli

Capitolo 3: Ottimizzazione Discreta. E. Amaldi DEI, Politecnico di Milano

Capitolo 3: Ottimizzazione Discreta. E. Amaldi DEI, Politecnico di Milano Capitolo 3: Ottimizzazione Discreta E. Amaldi DEI, Politecnico di Milano 3.1 Modelli di PLI e PLMI Moltissimi problemi decisionali complessi possono essere formulati come problemi di Programmazione Lineare

Dettagli

5.1 Metodo Branch and Bound

5.1 Metodo Branch and Bound 5. Metodo Branch and Bound Si consideri il problema min{ c(x) : x X } Idea: Ricondurre la risoluzione di un problema difficile a quella di sottoproblemi più semplici effettuando una partizione (ricorsiva)

Dettagli

Programmazione Quadratica. 2009 by A. Bemporad Controllo di Processo e dei Sistemi di Produzione A.a. 2008/09

Programmazione Quadratica. 2009 by A. Bemporad Controllo di Processo e dei Sistemi di Produzione A.a. 2008/09 Programmazione Quadratica 1/82 Programmazione lineare minimizza o massimizza funzione obiettivo soggetto a 2/82 Programmazione quadratica minimize or maximize funzione obiettivo soggetto a STESSI VINCOLI

Dettagli

Introduzione al Column Generation Caso di Studio: il Bin Packing Problem

Introduzione al Column Generation Caso di Studio: il Bin Packing Problem Introduzione al Column Generation Caso di Studio: il Bin Packing Problem November 15, 2014 1 / 26 Introduzione Il column generation è una metodologia che può essere usata per risolvere problemi di ottimizzazione

Dettagli

Trasformazione di Problemi Non Lineari

Trasformazione di Problemi Non Lineari Capitolo 2 Trasformazione di Problemi Non Lineari 2.1 Trasformazione in problema di PL In questa sezione, verranno presentati tre classi di problemi di programmazione non lineare che, attraverso l uso

Dettagli

COMPITO DI RICERCA OPERATIVA. max 3x 1 + 2x 2 x x 2 + x 3 = 4 2x 1 + x 2 + x 4 = 3

COMPITO DI RICERCA OPERATIVA. max 3x 1 + 2x 2 x x 2 + x 3 = 4 2x 1 + x 2 + x 4 = 3 COMPITO DI RICERCA OPERATIVA ESERCIZIO 1. (7 punti) Sia dato il seguente problema di PL: max 3x 1 + 2x 2 x 1 + 1 2 x 2 + x 3 = 4 2x 1 + x 2 + x 4 = 3 Lo si risolva con l algoritmo che si ritiene più opportuno

Dettagli

Possibile applicazione

Possibile applicazione p. 1/4 Assegnamento Siano dati due insiemi A e B entrambi di cardinalità n. Ad ogni coppia (a i,b j ) A B è associato un valore d ij 0 che misura la "incompatibilità" tra a i e b j, anche interpretabile

Dettagli

I appello Ricerca operativa

I appello Ricerca operativa I appello Ricerca operativa 0.0.014 1. Formulare in termini di programmazione lineare (intera) il seguente problema. Una Società gestisce una squadra di calcio adottando una politica di massimizzare il

Dettagli

Ottimizzazione marginale

Ottimizzazione marginale Ottimizzazione marginale R. Pesenti Problema di faceness Formulazione del problema Il vostro supermercato deve disporre i prodotti A, B, C e D sugli scaffali 1, 2, e 3 ognuno di lunghezza 100 cm. Dato

Dettagli

La programmazione lineare

La programmazione lineare La programmazione lineare Se un problema economico si traduce in un problema di scelta in condizioni di certezza e con effetti immediati siamo in presenza di un problema di Programmazione lineare. Abbiamo

Dettagli

Modelli di programmazione lineare. Il metodo grafico è basato su linearità della funzione obiettivo linearità dei vincoli

Modelli di programmazione lineare. Il metodo grafico è basato su linearità della funzione obiettivo linearità dei vincoli Ricerca Operativa 2. Modelli di Programmazione Lineare Modelli di programmazione lineare Il metodo grafico è basato su linearità della funzione obiettivo linearità dei vincoli Sotto queste ipotesi (come

Dettagli

Matematica Computazionale(6cfu) Ottimizzazione(8cfu) (a.a , lez.3)

Matematica Computazionale(6cfu) Ottimizzazione(8cfu) (a.a , lez.3) Docente: Marco Gaviano (e-mail:gaviano@unica.it) Corso di Laurea in Infomatica Corso di Laurea in Matematica Matematica Computazionale(6cfu) Ottimizzazione(8cfu) (a.a. -4 lez.) Matematica Computazionale

Dettagli

Programmazione Matematica Lineare

Programmazione Matematica Lineare Programmazione Matematica Lineare Problema di Programmazione Matematica (PM) (problema di ottimizzazione) max f(x) s.t. x R n vettore delle variabili decisionali insieme delle soluzioni ammissibili funzione

Dettagli

Ottimizzazione Combinatoria

Ottimizzazione Combinatoria Ottimizzazione Combinatoria Esercitazione AMPL A.A. 2-22 Esercitazione a cura di Silvia Canale contatto e-mail: canale@dis.uniroma.it Università i di Roma La Sapienza Dipartimento di Informatica e Sistemistica

Dettagli

Scopo del laboratorio

Scopo del laboratorio p. 1/1 Scopo del laboratorio Imparare ad usare programmi che implementino metodi di ottimizzazione: simplesso, branch and bound ecc. utilizzarli per risolvere un problema proposto Modellatori Solver p.

Dettagli

5.6 Metodo di penalità e metodo basato sulle funzioni lagrangiane aumentate. min f(x) s.v. c i (x) 0 i I c i (x) = 0 i E (1) x R n

5.6 Metodo di penalità e metodo basato sulle funzioni lagrangiane aumentate. min f(x) s.v. c i (x) 0 i I c i (x) = 0 i E (1) x R n 5.6 Metodo di penalità e metodo basato sulle funzioni lagrangiane aumentate Consideriamo il generico problema di PNL min f(x) s.v. c i (x) 0 i I c i (x) = 0 i E (1) x R n dove f e le c i sono di classe

Dettagli

Preappello di metodi matematici per le decisioni economiche e aziendali A

Preappello di metodi matematici per le decisioni economiche e aziendali A UNIVERSITÀ DEGLI STUDI ROMA TRE Preappello di metodi matematici per le decisioni economiche e aziendali 11-12-2018 A Candidato (cognome e nome)......... Matricola o CF...... Esercizio 1 1) Data la matrice

Dettagli

Universita degli Studi di Siena

Universita degli Studi di Siena Universita degli Studi di Siena Facolta di Ingegneria Dispense del corso di Sistemi di Supporto alle Decisioni I La Programmazione Dinamica Chiara Mocenni Corso di Laurea triennale in Ingegneria Gestionale

Dettagli

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Programmi Un elaboratore riceve dei dati in ingresso, li elabora secondo una sequenza predefinita di operazioni e infine restituisce il risultato sotto forma

Dettagli

Ricerca Operativa. Ricerca Operativa p. 1/2

Ricerca Operativa. Ricerca Operativa p. 1/2 Ricerca Operativa Ricerca Operativa p. 1/2 Ricerca Operativa Disciplina basata sulla modellizzazione e la risoluzione tramite strumenti automatici di problemi di decisione complessi. In tali problemi la

Dettagli

La Ricerca Operativa ha lo scopo di fornire un supporto scientifico alle decisioni che si può sintetizzare nei seguenti passi fondamentali:

La Ricerca Operativa ha lo scopo di fornire un supporto scientifico alle decisioni che si può sintetizzare nei seguenti passi fondamentali: Ricerca Operativa La Ricerca Operativa ha lo scopo di fornire un supporto scientifico alle decisioni che si può sintetizzare nei seguenti passi fondamentali: 1 Definizione del problema: c è un sistema

Dettagli

Ricerca Operativa. Programmazione Lineare. Università Mediterranea di Reggio Calabria Decisions Lab

Ricerca Operativa. Programmazione Lineare. Università Mediterranea di Reggio Calabria Decisions Lab Ricerca Operativa Programmazione Lineare Università Mediterranea di Reggio Calabria Decisions Lab Ottimizzazione In un problema di ottimizzazione si cerca di massimizzare o minimizzare una quantità specifica,

Dettagli

5.6 Metodo di penalità e metodo basato sulle funzioni lagrangiane aumentate

5.6 Metodo di penalità e metodo basato sulle funzioni lagrangiane aumentate 5.6 Metodo di penalità e metodo basato sulle funzioni lagrangiane aumentate Consideriamo il generico problema di PNL min f (x) s.v. c i (x) 0 i I c i (x) = 0 i E (1) x R n dove f e le c i sono di classe

Dettagli

Lezioni di Ricerca Operativa

Lezioni di Ricerca Operativa Lezioni di Ricerca Operativa Massimo Paolucci Dipartimento di Informatica, Sistemistica e Telematica (DIST) Università di Genova paolucci@dist.unige.it http://www.dattero.dist.unige.it Anno accademico

Dettagli

Esercizi soluzione grafica e Branch and Bound. Daniele Vigo

Esercizi soluzione grafica e Branch and Bound. Daniele Vigo Esercizi soluzione grafica e Branch and Bound Daniele Vigo daniele.vigo@unibo.it Mix Mangimi Il gestore di un allevamento desidera determinare il mix ottimale di mangimi da aggiungere al riso per la dieta

Dettagli

Soluzione di problemi di Programmazione Lineare Intera

Soluzione di problemi di Programmazione Lineare Intera 11 Soluzione di problemi di Programmazione Lineare Intera 11.1 ESERCIZI SULLA SOLUZIONE DI PROBLEMI DI PROGRAMMAZIONE LINEARE INTERA Esercizio 11.1.1 Risolvere con il metodo del Branch and Bound il seguente

Dettagli

Corso di Laurea in Informatica, Corso di Laurea in Matematica Matematica computazionale (6 cfu), Ottimizzazione (8 cfu) a.a.

Corso di Laurea in Informatica, Corso di Laurea in Matematica Matematica computazionale (6 cfu), Ottimizzazione (8 cfu) a.a. Corso di Laurea in Informatica, Corso di Laurea in Matematica Matematica computazionale (6 cfu), Ottimizzazione (8 cfu) a.a.0-4 Programmazione lineare Domande di ripasso Definizioni e risultati teorici.

Dettagli

Introduzione alla Ricerca Operativa. Cos è la Ricerca Operativa? Modellazione di problemi decisionali Fasi di uno studio di RO Applicazioni della RO

Introduzione alla Ricerca Operativa. Cos è la Ricerca Operativa? Modellazione di problemi decisionali Fasi di uno studio di RO Applicazioni della RO Introduzione alla Ricerca Operativa Cos è la Ricerca Operativa? Modellazione di problemi decisionali Fasi di uno studio di RO Applicazioni della RO Cos è la Ricerca Operativa? La Ricerca Operativa è la

Dettagli

FONDAMENTI DI RICERCA OPERATIVA Prof. M.Trubian a.a. 2008/09 Prima prova in itinere: 25/11/08

FONDAMENTI DI RICERCA OPERATIVA Prof. M.Trubian a.a. 2008/09 Prima prova in itinere: 25/11/08 FONDAMENTI DI RICERCA OPERATIVA Prof. M.Trubian a.a. 2008/09 Prima prova in itinere: 25/11/08 Nome studente:... Matricola:...... Esercizio 3 4 5 6 Valore % 0.25 0.15 0.15 0.15 0.15 0.15 Valutazione A [1]

Dettagli

Il metodo dei Piani di Taglio (Cutting Planes Method)

Il metodo dei Piani di Taglio (Cutting Planes Method) Il metodo dei Piani di Taglio (Cutting Planes Method) E un metodo di soluzione dei problemi (IP) di tipo generale. L idea di base: Se la soluzione di (RL) non è intera allora la soluzione ottima intera

Dettagli

Matematica Computazionale(6cfu) Ottimizzazione(8cfu) (a.a , lez.9)

Matematica Computazionale(6cfu) Ottimizzazione(8cfu) (a.a , lez.9) Docente: Marco Gaviano (e-mail:gaviano@unica.it) Corso di Laurea in Infomatica Corso di Laurea in Matematica Matematica Computazionale(6cfu) Ottimizzazione(8cfu) (a.a. 05-6, lez.9) Matematica Computazionale,

Dettagli

Sistemi di 1 grado in due incognite

Sistemi di 1 grado in due incognite Sistemi di 1 grado in due incognite Problema In un cortile ci sono polli e conigli: in totale le teste sono 7 e zampe 18. Quanti polli e quanti conigli ci sono nel cortile? Soluzione Indichiamo con e con

Dettagli

Algoritmi esatti. La teoria ci dice che per problemi difficili (come il

Algoritmi esatti. La teoria ci dice che per problemi difficili (come il p. 1/4 Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP ) i tempi di risoluzione delle istanze, calcolati tramite analisi worst-case, tendono a crescere

Dettagli

2. Si definisca un algoritmo euristico di tipo greedy per determinare una buona soluzione ammissibile del problema;

2. Si definisca un algoritmo euristico di tipo greedy per determinare una buona soluzione ammissibile del problema; Esercizio 6 Un azienda di trasporti deve affrontare il seguente problema di caricamento. L azienda dispone di n prodotti che possono essere trasportati e di m automezzi con cui effettuare il trasporto.

Dettagli

Programmazione Lineare Intera (ILP)

Programmazione Lineare Intera (ILP) Programmazione Lineare Intera (ILP) (P) min ϕ(x), x F Z ϕ: R n - >R è lineare: ϕ(x) = c, x = c 1 x 1 + c 2 x 2 +... + c n x n F R n è definito da : g i (x) 0 (i = 1,...,m), con g i : R n R lineare i Z

Dettagli

IL METODO DEL SIMPLESSO

IL METODO DEL SIMPLESSO IL METODO DEL SIMPLESSO Il metodo del Simplesso 1 si applica nella risoluzione di un problema di Programmazione Lineare 2 (funzione e vincoli lineari) quando le variabili di azione o iniziali sono almeno

Dettagli

Problemi di Ottimizzazione

Problemi di Ottimizzazione Problemi di Ottimizzazione Obiettivo: misura della qualità di una soluzione. Vincoli: condizioni che devono essere soddisfatte per ottenere una soluzione ammissibile. Problema di Ottimizzazione: determina

Dettagli

RICERCA OPERATIVA. Tema d esame del 13/12/2005

RICERCA OPERATIVA. Tema d esame del 13/12/2005 RICERCA OPERATIVA Tema d esame del 13/12/2005 COGNOME: NOME: MATRICOLA: 1. Un associazione umanitaria ha raccolto 150.000 euro per inviare dei pacchetti regalo natalizi ai bambini di Haiti. Per l acquisto

Dettagli

Programmazione Non Lineare

Programmazione Non Lineare Capitolo 1 Programmazione Non Lineare 1.1 Introduzione Un problema di ottimizzazione viene definito come la minimizzazione o la massimizzazione di una funzione a valori reali su un insieme specificato.

Dettagli

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

RICERCA OPERATIVA. Tema d esame del 04/12/2008 (Simulazione 1) RICERCA OPERATIVA Tema d esame del 04/12/2008 (Simulazione 1) COGNOME: NOME: MATRICOLA: 1. Un azienda meccanica deve pianificare il lavoro delle sue tre macchine per un dato giorno. I lotti che è possibile

Dettagli

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

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I) Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I) Luigi De Giovanni Giacomo Zambelli 1 Problemi di programmazione lineare Un problema

Dettagli

PROGRAMMAZIONE LINEARE A NUMERI INTERI

PROGRAMMAZIONE LINEARE A NUMERI INTERI PROGRAMMAZIONE LINEARE A NUMERI INTERI N.B. Nei seguenti esercizi vengono utilizzate, salvo diversa indicazione, le seguenti notazioni: PLO programma lineare ordinario S a insieme delle soluzioni ammissibili

Dettagli

Fondamenti di Business Analytics classi M2/M3 Michele Impedovo anno accademico

Fondamenti di Business Analytics classi M2/M3 Michele Impedovo anno accademico Fondamenti di Business Analytics 20486 classi M2/M3 Michele Impedovo anno accademico 2016-2017 Lezione 11 Programmazione lineare intera ILP Programmazione lineare binaria BLP Il problema MicroWorks, Inc.

Dettagli

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

Appendice A: un esempio di scelta del mix ottimo di produzione in presenza di vincoli 19 14 18-12-07 19:04 Pagina 411 Le decisioni di breve termine fra alternative diverse 411 i minori costi differenziali, almeno nella misura in cui la dimensione di costo è la più importante. Sebbene i costi

Dettagli

Def. Un equazione è un uguaglianza tra due espressioni algebriche che contengono una o più incognite dette variabili.

Def. Un equazione è un uguaglianza tra due espressioni algebriche che contengono una o più incognite dette variabili. Def. Un equazione è un uguaglianza tra due espressioni algebriche che contengono una o più incognite dette variabili. Noi ci occuperemo delle equazioni di primo grado a una sola variabile Guarda nell esempio

Dettagli

SI RICORDA CHE LE LEZIONI DI MERCOLEDÌ 5 E 12 APRILE SI TERRANNO IN AULA D3 DALLE 9 ALLE 11

SI RICORDA CHE LE LEZIONI DI MERCOLEDÌ 5 E 12 APRILE SI TERRANNO IN AULA D3 DALLE 9 ALLE 11 SI RICORDA CHE LE LEZIONI DI MERCOLEDÌ 5 E 12 APRILE SI TERRANNO IN AULA D3 DALLE 9 ALLE 11 MARTEDÌ 11 APRILE LA LEZIONE SI TERRÀ IN AULA SEMINARI PIANO C 1di 26 LEZIONE N.7 INTRODUZIONE AI METODI DI PROGRAMMAZIONE

Dettagli

Esame di Ricerca Operativa del 24/07/18. max 7 x 1 +4 x 2 x 1 +3 x x 1 +x x 1 +x 2 12 x 1 x x 1 3 x 2 2 x 1 2 x 2 14

Esame di Ricerca Operativa del 24/07/18. max 7 x 1 +4 x 2 x 1 +3 x x 1 +x x 1 +x 2 12 x 1 x x 1 3 x 2 2 x 1 2 x 2 14 Esame di Ricerca Operativa del /07/18 Cognome) Nome) Numero di Matricola) Esercizio 1. Effettuare due iterazioni dell algoritmo del simplesso primale per il problema max 7 x 1 + x x 1 + x 6 x 1 +x x 1

Dettagli

Il concetto di calcolatore e di algoritmo

Il concetto di calcolatore e di algoritmo Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica

Dettagli

Università Ca Foscari Venezia

Università Ca Foscari Venezia Università Ca Foscari Venezia Dipartimento di Scienze Ambientali, Informatica e Statistica Giovanni Fasano Brevi NOTE sul Metodo del BRANCH & BOUND Università Ca Foscari Venezia, Dipartimento di Management,

Dettagli

MODELLI DECISIONALI FORMULAZIONE GENERALE DEL PROBLEMA DECISIONALE (OTTIMIZZAZIONE)

MODELLI DECISIONALI FORMULAZIONE GENERALE DEL PROBLEMA DECISIONALE (OTTIMIZZAZIONE) MODELLI DECISIONALI FORMULAZIONE GENERALE DEL PROBLEMA DECISIONALE (OTTIMIZZAZIONE) z vettore di n elementi (variabili di decisione) o funzione J(z) obiettivo (vettoriale) da ottimizzare (max o min) Z

Dettagli

Modelli di Ottimizzazione: definizione formale

Modelli di Ottimizzazione: definizione formale Modelli di Ottimizzazione: definizione formale Insieme delle possibili alternative Un criterio di ottimizzazione Soluzione ammissibile (Feasible) x appartiene ad un insieme F f: F funzione obiettivo finito

Dettagli

Prof. Pagani Corrado ALGORITMI E COMPLESSITÀ COMPUTAZIONALE

Prof. Pagani Corrado ALGORITMI E COMPLESSITÀ COMPUTAZIONALE Prof. Pagani Corrado ALGORITMI E COMPLESSITÀ COMPUTAZIONALE COMPLESSITÀ DEGLI ALGORITMI L oggetto della teoria della complessità è stabilire se un problema sia facile o difficile In base a quali parametri

Dettagli

Programmazione Lineare in MATLAB. Ing. Fabio Sciancalepore Politecnico di Bari

Programmazione Lineare in MATLAB. Ing. Fabio Sciancalepore Politecnico di Bari Programmazione Lineare in MATLAB Ing. Fabio Sciancalepore Politecnico di Bari Agenda Introduzione alla Ricerca Operativa Problemi di ottimizzazione Programmazione lineare programmazione a variabili continue

Dettagli

Matroidi, algoritmi greedy e teorema di Rado

Matroidi, algoritmi greedy e teorema di Rado Matroidi, algoritmi greedy e teorema di Rado per il corso di Laboratorio di Algoritmi e Ricerca Operativa Dott. Alberto Leporati / Prof.ssa Enza Messina Dipartimento di Informatica, Sistemistica e Comunicazione

Dettagli

Le equazioni e i sistemi di primo grado

Le equazioni e i sistemi di primo grado Le equazioni e i sistemi di primo grado prof. Roberto Boggiani Isiss Marco Minghetti 1 settembre 009 Sommario In questo documento verrà trattato in modo semplice e facilmente comprensibile la teoria delle

Dettagli

RICERCA OPERATIVA (9 cfu)

RICERCA OPERATIVA (9 cfu) a PROVA scritta di RICERCA OPERATIVA (9 cfu) gennaio Cognome Nome Ai fini della pubblicazione (cartacea e elettronica) del risultato ottenuto nella prova di esame, autorizzo al trattamento dei miei dati

Dettagli

3.3 Problemi di PLI facili

3.3 Problemi di PLI facili 3.3 Problemi di PLI facili Consideriamo un generico problema di PLI espresso in forma standard min{c t x : Ax = b, x Z n +} (1) dove A Z m n con n m, e b Z m. Supponiamo che A sia di rango pieno. Sia P

Dettagli

Esame di Ricerca Operativa del 07/09/2016

Esame di Ricerca Operativa del 07/09/2016 Esame di Ricerca Operativa del 0/09/201 (Cognome) (Nome) (Matricola) Esercizio 1. Un industria chimica produce due tipi di fertilizzanti (A e B) la cui lavorazione è affidata ai reparti di produzione e

Dettagli

Esercitazione n o 3 per il corso di Ricerca Operativa

Esercitazione n o 3 per il corso di Ricerca Operativa Esercitazione n o 3 per il corso di Ricerca Operativa Ultimo aggiornamento November 1, 2011 Fornitura acqua Una città deve essere rifornita, ogni giorno, con 500 000 litri di acqua. Si richiede che l acqua

Dettagli

La notazione usata è quella usuale nel caso scalare, ed è estesa al caso generale. Consideriamo una forma quadratica:

La notazione usata è quella usuale nel caso scalare, ed è estesa al caso generale. Consideriamo una forma quadratica: . SU ALCUNI OPERAORI DI DERIVAZIONE Alcune operazioni tipiche dell analisi matematica hanno un diretto riscontro in termini matriciali. Consideriamo ad esempio una forma lineare: f() l l + l +..l n n ;

Dettagli

5.3 Metodo dei piani di taglio

5.3 Metodo dei piani di taglio 5.3 Metodo dei piani di taglio (PLI) min s.v. c T x Ax b x interi X Ipotesi: a ij, c j e b i interi Osservazione: La regione ammissibile di un PLI può essere descritta mediante dei vincoli più o meno stringenti

Dettagli

Programmazione Matematica / A.A Soluzioni di alcuni esercizi

Programmazione Matematica / A.A Soluzioni di alcuni esercizi Programmazione Matematica / A.A. 7-8 Soluzioni di alcuni esercizi Esercizi - I. Aggiungiamo al problema una variabile v, e richiediamo che v soddisfi v n a ij x j b i. j= Fissato x, il minimo v che soddisfa

Dettagli

2. ALGORITMO DEL SIMPLESSO

2. ALGORITMO DEL SIMPLESSO . ALGORITMO DEL SIMPLESSO R. Tadei Una piccola introduzione R. Tadei SIMPLESSO L obiettivo del capitolo è quello di fornire un algoritmo, l algoritmo del simplesso, che risolve qualsiasi problema di programmazione

Dettagli

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

Excel: una piattaforma facile per l ottimizzazione. Excel ha un toolbox di ottimizzazione: Risolutore Excel: una piattaforma facile per l ottimizzazione Excel ha un toolbox di ottimizzazione: Risolutore Il problema di produzione con Excel Consideriamo il foglio Excel Variabili di decisione reali c8,d8

Dettagli

Richiami di Teoria dei Grafi. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena

Richiami di Teoria dei Grafi. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena Richiami di Teoria dei Grafi Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena Teoria dei grafi La Teoria dei Grafi costituisce, al pari della Programmazione Matematica, un corpo

Dettagli

Lezioni di Ricerca Operativa 2 Dott. F. Carrabs

Lezioni di Ricerca Operativa 2 Dott. F. Carrabs Lezioni di Ricerca Operativa Dott. F. Carrabs.. 009/00 Lezione 6: - mmissibilità di un vincolo - Vincoli alternativi - Vincoli alternativi a gruppi - Rappresentazione di funzioni non lineari: Costi fissi

Dettagli

Esame di Ricerca Operativa del 25/06/12

Esame di Ricerca Operativa del 25/06/12 Esame di Ricerca Operativa del /0/ Cognome) Nome) Corso di laurea) Esercizio. Completare la seguente tabella considerando il problema di programmazione lineare: max x x x x x + x x x 8 x x x + x x x Base

Dettagli