x 2 (20, 60) z = 200 (40, 30) z = 100 z = 0 x 1 40

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "x 2 (20, 60) z = 200 (40, 30) z = 100 z = 0 x 1 40"

Transcript

1 Mauro Dell Amico Dipartimento di Scienze e Metodi dell Ingegneria (DISMI) Università degli studi di Modena e Reggio Emilia Via Amendola 2, Pad. Morselli, Reggio Emilia web: mauro.dellamico@unimore.it tel:

2 INDICE 1. Programmazione Lineare in Pillole 2. Miscellanea di problemi di ottimizzazione combinatoria 3. Programmazione Lineare Intera 4. Teoria della Complessitá 5. Algoritmi euristici 6. Algoritmi Metaeuristici 7. Distribuzione e trasporti 8. VRP: modelli esatti 9. VRP: metodi euristici

3 x 2 60 (20, 60) z = 200 z = 100 (40, 30) z = 0 x 1 40

4 Programmazione Lineare Continua - in pillole 1 Programmazione Lineare Un modello di Programmazione Lineare chiede di massimizzare o minimizzare una funzione lineare, soggetta a ua serie di restrizioni descritte da vincoli lineari. Un modello lineare é costituito dai seguenti componenti: - Un insieme di variabili decisionali - Una funzione obiettivo - Un insieme di vincoli L importanza della programmazione lineare deriva da: Molti problemi reali sono per loro natura lineari Molti problemi reali possono essere approssimati efficentemente da funzioni lineari Ci sono diverse applicazioni consolidate negli ambiti del - Produzione - Distribuzione - Marketing - Finanza (investment) - Pubblicitá - Agricoltura -... Inoltre esistono algoritmi effcienti per risolvere problemi lineari anche di grandissime dimensioni.

5 Programmazione Lineare Continua - in pillole 2 Un semplice esempio Una ditta realizza due prodotti che hanno un guadagno unitario di 3 e 5 euro, rispettivamente. Il sistema produttivo é costituito da due reparti di lavorazione ed uno di assemblaggio. Rep. Prod. 1 40/ora Rep. Prod. 2 60/ora Reparto Assemblaggio P1=60s P2=40s Il reparto 1 lavora solo il prodotto 1 e ne produce al massimo 40 all ora Il reparto 2 lavora solo il prodotto 2 e ne produce al massino 60 all ora Nel reparto di assemblaggio sono necessari un minuto per ogni prodotto di tipo 1 e 40 secondi per ogni prodotto 2. Si vuole determinare il mix ottimale che massimizza il guadagno.

6 Programmazione Lineare Continua - in pillole 3 x 1,x 2 = numero di prodotti di ogni tipo realizzatio in un ora (P) maxz = 3x 1 + 5x 2 s.t. x 1 40 x x x (3x 1 +2x 2 180) x 1, x 2 0 x 2 z = (20, 60) z = 3x 1 +5x 2 fascio di rette parallele z = 100 (40, 30) z = 0 x 1 40 Soluzione ottima x 1 = 20,x 2 = 60, z = 360 Teorema Se l insieme P delle soluzioni ammissibili di un problema di Programmazione Lineare Continua è limitato, allora esiste almeno un vertice di P ottimo.

7 Programmazione Lineare Continua - in pillole 4 Non sempre abbiamo una soluzione... maxz = x 1 + x 2 s.t. x 1 x 2 3 (I) 3x 1 + x 2 3 (II) 4x 1 + x 2 2 (III) x 1, x 2 0 II III Problema illimitato I Attenzione! se la f.o. fosse minx 1 + x 2 la soluzione ottima sarebbe x = (1,0) minz = 2x 1 x 2 s.t. x 1 + x 2 4 (I) 2x 1 + 3x 2 6 (II) x 1 2 (III) x 2 4 (IV) x 1, x 2 0 II IV III problema I vuoto

8 Programmazione Lineare Continua - in pillole 5 Forma standard (P) maxz = 3x 1 + 5x 2 s.t. x 1 40 x x 1 + 2x x 1, x 2 0 Forma STANDARD = solo equazioni, variabili non-negative aggiungo tre variabili dummy o slack (P ) maxz = 3x 1 + 5x 2 s.t. x 1 + x 3 = 40 x 2 + x 4 = 60 3x 1 + 2x 2 + x 5 = 180 x 1, x 2, x 3, x 4, x sistema di m = 3 equazioni in n = 5 incognite = 2 soluzioni; - fisso i valori di due variabili a piacere e ottengo un sistema In generale abbiamo (n m) gradi di libertá: a n m variabili possiamo assegnare un valore qualunque; poi si risolve il sistema m m rimanente. - a 2 variabili possiamo assegnare un valore qualunque, poi si risolve il sistema 3 3 il sistema in base alle altre variabili

9 Programmazione Lineare Continua - in pillole 6 (P ) maxz = 3x 1 + 5x 2 s.t. x 1 + x 3 = 40 x 2 + x 4 = 60 3x 1 + 2x 2 + x 5 = 180 x 1, x 2, x 3, x 4, x 5 0 x 2 (0,60) (0,60,40,0,60) (20,60) (20,60,20,0,0) 60 (40,30) (40,30,0,30,0) (0,0) (0,0,40,60,180) x 1 40 (40,0) (40,0,0,60,60) Ogni vertice é l itersezione di due vincoli in ogni vertice due variabili (slack o originali) hanno valore zero I vertici sono un sottoinsieme dei punti che si ottengono fissando due variabli a zero e risolvendo il sistema rispetto alle rimanenti In altre parole scelte m (3 nell esempio) variabili ed azzerate le rimanenti n m (2 nell esempio) si ottengono tutti i vertici... ed altri punti

10 Programmazione Lineare Continua - in pillole 7 Vincoli Rappresentazione matriciale x 1 + x 3 = 40 x 2 + x 4 = 60 3x 1 + 2x 2 + x 5 = x 1 = x 2 = x 3 = 180 A x 4 b x 5 x Funzione obiettivo Ax = b maxz = 3x 1 + 5x x 1 x 2 c T x x 3 x 4 x 5 maxz = c T x Ax = b x 0 max{c T x : Ax = b,x 0}

11 Programmazione Lineare Continua - in pillole 8 Vertici e soluzioni di base Selezioniamo tante variabili quante sono le equazioni (m) e diamo valore zero alle altre. Risolviamo rispetto alle variabili di base. Es. selezioniamo x 3,x 4,x 5 x 1 = x 2 = 0 x 1 +x 3 = 40 x 2 +x 4 = 60 3x 1 +2x 2 +x 5 = 180 Sia A una matrice (m n) x T = (0,0,40,60,180) x 3 = 40 x 4 = 60 x 5 = 180 Una base é una sottomatrice B ottenuta selezionando m colonne linearmente indipendenti; variabili in base (x B ): variabili associate alle colonne di B variabili fuori base (x F ): variabili associate ad A\B A = B = x B = (x 3,x 4,x 5 ) x F = (x 1,x 2 ) x 2 60 (20, 60) la soluzione x = (0,0,40,60,180) corrisponde al punto origine degli assi z = 200 z = 100 (40, 30) z = 0 x 1 40

12 Programmazione Lineare Continua - in pillole 9 x 2 60 V 1 (0,60,40,0,60) V 2 (20,60,20,0,0) Ogni vertice ha una base associata V 3 (40,30,0,30,0) x 1 40 V 4 (40,0,0,60,60) O (0,0,40,60,180) x 1 x 2 x 3 x 4 x x B = (x 2,x 3,x 5 ): x 3 = 40 B = x 2 = x 2 +x 5 = 180 x 3 = 40 x 2 = 60 x 5 = 60 x B = (x 1,x 2,x 3 ): x 1 +x 3 = 40 B = x 2 = x 1 +2x 2 = 180 x = (0,60,40,0,60), vertice V 1 x 1 = 20 x 2 = 60 x 3 = 20 x B = (x 1,x 2,x 4 ): x 1 = 40 B = x 2 +x 4 = x 1 +2x 2 = 180 x = (20,60,20,0,0), vertice V 2 x 1 = 40 x 2 = 30 x 4 = 30 x = (40,30,0,30,0), vertice V 3

13 Programmazione Lineare Continua - in pillole 10 Soluzione del sistema in a forma matriciale x x 2 40 Ax = b x 3 = x x x 1 x 2 x 3 Risolvendo rispetto a x B [ x4 x 5 ] = B x b F x F b Ax = b Bx B +Fx F = b x B = B 1 b B 1 Fx F Soluzione di base: x F = 0, x B = B 1 b ammissibile: se x B = B 1 b 0 degenere se x B ha una o più componenti nulle Ogni soluzione di base ammissibile del sistema Ax = b corrisponde ad un vertice Ogni vertice corrisponde a una o piú soluzioni di base, ammissibili (sono dette degeneri se ve ne é piú di una)

14 Programmazione Lineare Continua - in pillole 11 Soluzioni degeneri x 1 2 x 2 2 x 1 + x 2 4 x 1 2 x 2 2 x 1 + x B 1 B 2 B x 1 +x 3 = 2 x 2 +x 4 = 2 x 1 +x 2 +x 5 = 4 A = B 1 = B 2 = B 3 = x 1 +x 3 = 2 x 2 = 2 x 1 +x 2 = 4 x 1 = 2 x 2 +x 4 = 2 x 1 +x 2 = 4 x 1 = 2 x 2 = 2 x 1 +x 2 +x 5 = 4 x 1 = 2 x 2 = 2 x 3 = 0 x 1 = 2 x 2 = 2 x 4 = 0 x 1 = 2 x 2 = 2 x 5 = 0

15 Programmazione Lineare Continua - in pillole 12 Il metodo del simplesso Algoritmo del simplesso: (prima versione ) Identifica una soluzione di base ammissibile. while ( la soluzione non e ottima ne illimitata) begin trasforma la base corrente in una base vicina con valore della funzione obiettivo minore end L algoritmo termina in tempo finito : ( n m ) = n! m!(n m)! basi x 2 V 1 (0,60,40,0,60) B 1 = V 2 (20,60,20,0,0) B 2 = B 0 = x 1 O (0,0,40,60,180)

16 Programmazione Lineare Continua - in pillole 13 Test di ottimalità Quando risolviamo il sistema Ax = b rispetto a una base anche la funzione obiettivo puó essere riscritta [ ] xb A = [B F] x = c T = [c T B ct F ] x F Bx B +Fx F = b x B = B 1 b B 1 Fx F, B 1 b 0 z = c T x c T B B 1 b+(c T F ct B B 1 F)x F = c T B B 1 b+c T F x F c T = c T c T B B 1 A costi ridotti rispetto alla base B I costi ridotti delle variabili in base sono zero c T B = c T B c T BB 1 B = c T B c T BI = 0 I costi ridotti delle variabili fuori base sono liberi c T F = c T F c T BB 1 F In una soluzione di base x B = B 1 b, x F = 0 z B = c T x = c T BB 1 b+c T Fx F = c T BB 1 b valore soluzione Se x F passa dal valore zero a un valore positivo, la funzione obiettivo cresce o cala a seconda del segno dei costi ridotti Teorema: una soluzione di base di un problema di PLC in forma di minimo è ottima se i costi ridotti sono non negativi (c T 0) (Per un problema di PLC in forma di massimo una soluzione di base è ottima se i costi ridotti sono non positivi)

17 Programmazione Lineare Continua - in pillole 14 Dieta Esercizio: Una dieta per dimagrire prevede giornalmente Kilo calorie, 55 g di proteine e 800 mg di calcio In una prima ipotesi selezioniamo 6 alimenti, con le caratteristiche della tabella Energia Proteine Calcio Prezzo Quantitá Alimento Quantitá (Kcal) (g) (mg) (Euro) massima Cerali 28 g ,30 60 g Pollo 100 g , g Uovo ,20 2 Latte intero 250 ml ,40 2 l Torta di mele 170 g , g Maiale e piselli 260 g , g Quale é la dieta giornaliera di costo minimo, che rispetta i requisiti relativi ad energia, calcio e proteine?

18

19 Miscellanea di problemi 15 Il problema dei trasporti n sorgenti caratterizzate da una capacità massima a i,i = 1,...,n m destinazioni (pozzi) con richiesta b j,j = 1,...,m c ij = costo di trasposto unitario dalla sorgente i alla destinazione j Problema: Determinare l insieme dei trasporti che fornisce ad ogni destinazione la quantità di merce desiderata, senza eccedere le capacità delle sorgenti e minimizzando il costo totale. a n a n 1 a 2 a 1 c ij 3 b m b 2 b 1 Modello matematico x ij = quantità trasportata da i a j min n i=1 m c ij x ij j=1 m x ij a i, i = 1,...,n j=1 n x ij b j, j = 1,...,m i=1 x ij 0, (intera) i = 1,...,n, j = 1,...,m

20 Miscellanea di problemi 16 Assegnamento lineare Data una matrice quadrata C = [c ij ] di n righe e colonne, assegnare ogni riga ad una colonna minimizzando la somma degli elementi di C selezionati e in modo tale che ogni colonna sia assegnata ad una ed una sola riga (Dati n lavoratori, n lavori ed il costo c ij del lavoro j se eseguito dal lavoratore i, assegnare ogni lavoratore ad uno ed un solo lavoro, minimizzando il costo totale) Modello matematico x ij = { 1 la riga i è assegnata alla colonna j 0 altrimenti min n i=1 n c ij x ij j=1 n x ij = 1, i = 1,...,n j=1 n x ij = 1, j = 1,...,n i=1 x ij {0,1} Caso particolare del problema dei trasporti in cui il numero delle sorgenti è uguale al numero delle destinazioni, le capacità e le richieste sono tutte uguali ad uno ( n = m, a i = 1(i = 1,...,n), b j = 1(j = 1,...,n) )

21 Miscellanea di problemi 17 Localizzazione di servizi N = {1,...,n} insieme delle potenziali localizzazioni del servizio I = {1,...,m} insieme dei clienti La località j N ha capacità u j e costo di attivazione c j Il cliente i I ha una richiesta pari a b i h ij è il costo da sostenere per servire il cliente i dalla località j Ogni cliente deve essere servito da una sola località Modello matematico x j = y ij = { 1 se viene posto un servizio nella località j 0 altrimenti { 1 se il cliente i viene servito dalla località j 0 altrimenti min c j x j + h ij y ij j N i I j N y ij = 1 i I (1) j N b i y ij u j x j j N (2) i I x j {0,1} j N y ij {0,1} i I,j N (1) Ogni cliente è servito da una sola località (2) La capacità del servizio attivo deve essere sufficiente per soddisfare tutti suoi clienti; un cliente può essere servito solo da un servizio attivato

22 Miscellanea di problemi 18 Il problema Knapsack Sono dati n possibili investimenti Il j-esimo investimento, j = 1,...,n ha una rendita p j e un impegno di capitale w j Il budget disponibile è pari a b (b w j j, n j=1 w j > b) Problema: determinare l insieme di investimenti che dà il massimo rendimento impegnando al massimo un capitale pari al budget Modello matematico x j = { 1 se l investimento j-esimo è scelto 0 altrimenti n max p j x j j=1 n w j x j b j=1 x j {0,1} j = 1,...,n

23 Miscellanea di problemi 19 Il Bin Packing Sono dati n oggetti L oggetto j-esimo (j = 1,...,n) è caratterizzato da un volume w j Si hanno a disposizione contenitori identici di capacità c Problema: assegnare tutti gli oggetti ai contenitori in modo tale che: il volume totale degli oggetti in ogni contenitore non superi c il numero dei contenitori usati sia minimizzato Modello matematico x ij = z i = { 1 se l oggetto j-esimo è assegnato al contenitore i-esimo 0 altrimenti { 1 se il contenitore i-esimo è usato 0 altrimenti n min i=1 z i n w j x ij cz i, i = 1,...,n j=1 n x ij = 1, j = 1,...,n i=1 x ij {0,1} i,j = 1,...,n z i {0,1} i = 1,...,n

24 Miscellanea di problemi 20 Parallel Processor Scheduling Problem Definizione: Dati n lavori j, ognuno richiedente un tempo di lavorazione p j (j = 1,...,n), e date m macchine identiche in parallelo, ognuna in grado di svolgere un lavoro alla volta, il parallel processor scheduling problem (noto come P C max nella letteratura scientifica) richiede di assegnare i lavori alle macchine in modo che sia minimo l istante di fine dell ultima lavorazione (makespan). Il P C max ha applicazioni soprattutto nell ambito dello scheduling e dell ottimizzazione della produzione. Modello Matematico: Definiamo una variabile binaria: { 1 se assegno il lavoro j alla macchina i, x ij = 0 altrimenti per i = 1,...,m e j = 1,...,n; e una variabile lineare non negativa z = makespan. Il P C max può essere modellato come: z(p C max ) = min z (3) m x ij = 1 j = 1,...,n (4) i=1 n p j x ij z i = 1,...,m (5) j=1 x ij {0,1} i = 1,...,m;j = 1,...,n (6)

25 Miscellanea di problemi 21 Traveling Salesman Problem Datop un grafo G = (V,E) con costi c e sui lati, trovare un circuito elementare (che passa per ogni vertice una sola volta) che tocca tutti i vertici e ha costo totale minimo. Le applicazioni sono molteplici e vanno dal sequenziamento del genoma, al piazzamento dei dispositivi sulle schede elettroniche, alla pianificazione di giri di raccolta/distribuzione. Recentemente UBER ha lanciato un app basata sulla soluzione del TSP

26 Miscellanea di problemi 22 x e = { 1 se il lato e E e scelto 0 altrimenti min c e x e (7) e E s.t. x e = 2 i V (8) e δ(i) e E(S) x e S 1 0 S V (9) x e {0,1} e E (10) δ(i) = insieme dei lati incidenti nel vertice i E(S) = insieme dei lati contenuti nell insieme di vertici S

27 Miscellanea di problemi 23 Modello TSP con numero polinomiale di variabili (Millet, Tucker e Zemlin, 1960) Grafo G = (V,A) con insieme dei vertici V = {1,2,...,n}, insieme degli archi A = {(i,j) : i,j V} e costi c ij (i,j) A. { 1 se arco (i,j) e scelto x ij = 0 altrimenti s.t. min n i=1 n c ij x ij j=1 y j = ordine di visita del vertice j (11) n x ij = 1 j = 1,...,n (12) i=1 n x ij = 1 i = 1,...,n (13) j=1 y j y i +n(1 x ij ) 1 i = 1,...,n;j = 2,...,n (14) x ii = 0 i = 1,...,n (15) y 1 = 1 (16) 2 y i n i = 2,...,n (17) x ij {0,1} i,j = 1,...,n (18) y i 0 i = 1,...,n (19)

28 Miscellanea di problemi 24 Miscelazione Ottimale (Blending) due benzine (B1,B2) ottenute miscelando tre petroli (P1, P2, P3) Le percentuali dei petroli nelle benzine sono limitate come in tabella B1 B2 min max min max P P P ricavi: (B1,B2) (20,15) cent/litro costi: (P1,P2,P3) (5,8,7) cent/litro disponibilità giornaliere (P1,P2,P3) ( ,70.000, ) Modello matematico Variabili immediate: B1,B2 = litri delle due benzine ottenuti P1,P2,P3 = litri dei tre petroli utilizzati p i,j = percentuale del petrolio i nella benzina j I vincoli di blending sono: 0,2 p 11 0,3; 0,1 p 21 0,2 etc. Il legame tra litri di benzine e di petroli è: P1 = p 11 B1+p 12 B2 non lineare!

29 Miscellanea di problemi 25 Un alternativa: x ij = litri del petrolio i esimo nella benzina j-esima i {1,2,3}; j {1,2} Funzione obiettivo max 20(x 11 +x 21 +x 31 )+15(x 12 +x 22 +x 32 ) 5(x 11 +x 12 ) 8(x 21 +x 22 ) 7(x 31 +x 32 ) = 15x x x x 12 +7x 22 +8x 32 Vincoli disponibilità prodotti primi Vincoli di miscelazione x 11 +x x 21 +x x 31 +x x (x 11 +x 21 +x 31 ) 0.8x x x 31 0 x (x 11 +x 21 +x 31 ) 0.7x x x 31 0 x (x 11 +x 21 +x 31 ) 0.1x x x 31 0 x (x 11 +x 21 +x 31 ) 0.2x x x 31 0 x (x 11 +x 21 +x 31 ) 0.5x x x 31 0 x (x 11 +x 21 +x 31 ) 0.7x x x 31 0 Idem per la seconda benzina... Vincoli di non negatività x ij 0 i = 1,2,3;j = 1,2

30 Miscellanea di problemi 26 Fixed Charge n prodotti che potrebbero essere realizzati k j > 0 costo fisso (charge) di inizio j-esima produzione c j costo unitario prodotto j-esimo ulteriori vincoli lineari di produzione: Ax b Problema: quali e quanti prodotti si devono realizzare (rispettando i vincoli Ax b) per minimizzare i costi? Modello matematico x j = quantità del j-esimo prodotto funzione obiettivo (j-esimo prodotto): f(x j ) = { kj +c j x j se x j > 0 0 se x j = 0 f(x j ) k j x j Funzione obiettivo non lineare!

31 Miscellanea di problemi 27 y j = { 1 se xj > 0 0 altrimenti Le variabili y j sono definite da una condizione logica implemento la condizione logica con vincoli: y j {0,1} x j My j,j = 1,...,n M costante positiva grande x j > 0 y j = 1 x j = 0 nessun vincolo su y j Se la funzione obiettivo minimizza il valore delle y j allora nella soluzione ottima: se x j = 0 allora anche y j = 0 min n c j x j + j=1 n k j y j j=1 Ax b x j My j, y j {0,1} x j 0, j = 1,...,n j = 1,...,n

32 Miscellanea di problemi 28 Schedulazione su singolo processore (con deadlines e release times) n lavori ognuno caratterizzato da: p j = tempo di processamento r j = istante minimo di inizio release time d j = istante massimo di completamento deadline Problema: assegnare i lavori ad un singolo processore che può eseguire una sola lavorazione alla volta, rispettando i release times e le deadlines e minimizzando la somma dei tempi di completamento delle lavorazioni. Modello matematico C j = istante di completamento del lavoro j Data una coppia di lavori j,k allora C j C k p k j k oppure C k C j p j k j x jk = { 1 se il lavoro j è schedulato prima del lavoro k 0 altrimenti 1 j < k n n min j=1 C j C j C k p k +M(1 x jk ) 0 j < k n C k C j p j +Mx jk 0 j < k n p j +r j C j d j j = 1,...,n x jk {0,1} 0 j < k n

33 P convex hull

34 Programmazione Lineare Intera 29 Programmazione Lineare Intera (PLI) minc T x Ax = b x 0 x intero Se non c è il vincolo di interezza il problema è facile: PLC Si possono risolvere problemi di PLI rimuovendo il vincolo di interezza e arrotondando la soluzione del corrispondente problema di PLC? ottimo PLI 2 ottimo PLC arrotondamento PLC Si ottengono soluzioni: A) utili B) inutili C) non ammissibili

35 Programmazione Lineare Intera 30 Caso A, soluzioni utili problemi in cui i valori delle variabili nella soluzione ottima sono molto elevati. Es. pezzi da produrre (elevata quantità): PLC PLI (arrotondamento) x 1 = x 2 = x 3 = Poca differenza dal punto di vista pratico Caso B, soluzioni inutili Problemi in cui i valori delle variabili decisionali ottime sono molto piccoli numero di edifici da realizzare numero di veicoli da assegnare ad un servizio opportunità di una scelta (variabili booleane)... Caso C, soluzioni non ammissibili ottimo PLC ottimo PLI Nessuno dei quattro punti interi più vicini all ottimo della PLC è ammissibile per il problema di PLI

36 Programmazione Lineare Intera 31 Rilassamento continuo: problema di PLC ottenuto da un problema di PLI eliminando il vincolo di interezza z PLI = min{c T x : x X}, X = P Z n X P z PL z PLI z PL = min{c T x : x P} Il valore della soluzione ottima del rilassamento continuo è un lower bound del valore ottimo del problema di PLI (upper bound se il problema è di massimo) se lasoluzione ottimax del problema rilassatocontinuo ha tutte le componenti intere allora è ottima anche per il problema di PLI Si definisce chiusura convessa di un insieme S (conv(s)) il piú piccolo insieme convesso che contiene S. Se sapessimo individuare la chiusura convessa (conv(x)) di X z PLI = min{c T x : x X} = min{c T x : x conv(x)} e si potrebbe risolvere il problema di PLI con un algoritmo per la PLC. P convex hull

37 Programmazione Lineare Intera 32 Algoritmo Cutting Plane X = P Z n insieme soluzioni problema di PLI PL = problema di PLC ottenuto rimuovendo i vincoli di interezza dal problema di PLI x = soluzione ottima di PL una disuguaglianza α T x α 0 si dice taglio (cutting plane) se: (1) α T x α 0 x X (nessuna soluzione (intera) del problema originale diventa inammissibile ) (2) α T x > α 0 (x non è più ammissibile) convex hull x (ottimo per PL) piano di taglio valido (supporto)

38 Programmazione Lineare Intera 33 Algoritmo Cutting Plane begin 1. risolvi il rilassamento continuo del problema; if (il problema è vuoto o illimitato) then stop; else sia x la soluzione ottima del problema rilassato; 2. while x non intero do 3. individua un taglio valido α T x α 0 4. aggiungi ai vincoli α T x+x n+1 = α 0 ; 5. risolvi il nuovo problema di PLC e chiama x la nuova soluzione; if (il problema non ha soluzione) then stop; end while end. La procedura determina la soluzione ottima: P contiene tutte e sole le soluzioni intere di X (più altre non intere) i tagli aggiunti non eliminano soluzioni intere PL e PLI hanno la stessa funzione obiettivo La procedura è molto buona quanto la soluzione ottima del problema PL non è troppo diversa da quella del problema PLI Svantaggi il numero delle iterazioni del ciclo while non è polinomiale il problema di PLC da risolvere diventa sempre più grande lunghi tempi di calcolo

39 Programmazione Lineare Intera 34 Si consideri il problema P 0 Branch and Bound min{z(x) : x S(P 0 )}. Branch-and-bound: consiste di due fasi 1) suddivisione di P 0 in sottoproblemi la cui unione equivale a P 0, cioè: P 1,P 2,...,P q (a) tutti i problemi hanno la stessa f.o. z q (b) S(P k ) = S(P 0 ) k=1 z(p 0 ) = min{z(p 1 ),z(p 2 ),...,z(p q )}. È preferibile che S(P i ) S(P j ) = P i,p j : i j. 2) applicare una tecnica di bounding per risolvere in maniera implicita P k (k = 1,...,q) Risolvere P k 1. determinare la soluzione ottima di P k (modo esplicito), oppure 2. dimostrare che S(P k ) = (modo esplicito), oppure 3. (modo implicito) dimostrare che z(p k ) ẑ = miglior soluzione ammissibile ottenuta in precedenza. Ad ogni problema non risolto con (1-3) viene applicato lo stesso procedimento di separazione in sottoproblemi.

40 Programmazione Lineare Intera 35 Albero decisionale P 0 P 1 P 2... P q... Per descrivere teoricamente l intero albero decisionale basta definire il criterio di separazione (branching) Per risolvere un problema con tecnica branch-and-bound occorre anche definire: 1. La strategia di esplorazione dell albero; 2. il metodo di calcolo dei lower bound, per ogni nodo; 3. eventuali criteri di dominanza; 4....

41 Programmazione Lineare Intera 36 z = max{ Branch-and-bound per problemi knapsack n p j x j : j=1 n w j x j c,x j {0,1},j = 1,...,n} j=1 regola di separazione: fissare x j a 0 oppure 1 struttura dell albero: - n livelli - il livello j è associato alla variabile x j x 1 = 1 x 1 = 0 x 2 = 1 x 2 = x n = 1 x n = 0 x n = 1 x n = 0 Vi sono 2 n foglie e 2 n+1 1 nodi in totale Upper bound: rilassamento continuo (si puó risolvere im maniera efficente con un metodo polinomiale )

42 Programmazione Lineare Intera 37 Esempio p j = (25,30,35,19,10), w j = (3,4,5,3,2), c = 11 0 UB = 83 x 1 = 1 x 1 = 0 c = UB = 77 x 2 = 1 x 2 = 0 c = UB = 79 soluzione intera x = (1,0,1,1,0),z = 79 x 3 = 0 3 UB = 79 x 4 = 1 x 4 = 0 4 soluzione intera x = (1,1,0,1,0),z = 74 5 soluzione intera x = (1,1,0,0,1),z = 65

43 Programmazione Lineare Intera 38 Branch and Bound Standard per problemi di PLI Problema rilassato: rilassamento continuo Regola di branch: scegli x j = α, con α = valore frazionario e genera due figli con: (1) x j α (2) x j α Esempio max x 1 +x 2 4x 1 2x 2 1 4x 1 +2x x 2 1 x 1,x 2 0 intere P 0 P 0 : UB(P 0 ) = 4, x = (1.5,2.5); Variabile x 1 = 1.5, frazionaria. P 1 : x 1 1 P 2 : x 1 2

44 Programmazione Lineare Intera 39 P 1 : x 1 1 P 2 : x 1 2 P 1 P 2 P 1 : UB(P 1 ) = 2.5, x = (1,1.5); P 2 : UB(P 2 ) = 3.5, x = (2,1.5); Variabile x 2 = 1.5, frazionaria Variabile x 2 = 1.5, frazionaria P 3 P 3 : x 2 1 P 4 : x 2 2 P 4 inammissibile P 3 : UB(P 1 ) = 3.25, x = (2.25,1); Variabile x 1 = 2.25, frazionaria P 4 : inammissibile P 5 : x 1 2 P 6 : x 1 3 regione ammissibile = inammissibile segmento [(2,0.5),(2,1)], soluzione ottima UB(P 5 ) = 3, x = (2,1). P 1 : eliminato da upper bound

45 Programmazione Lineare Intera 40 L albero delle decisioni (tecnica Highest-First) UB=4 P 0 x 1 1 x 1 2 UB=2.5 UB=3.5 P 1 P 2 P 5 z=3 x 2 1 x 2 2 UB=3.25 vuoto P 3 P 4 x 1 2 x 1 3 vuoto P 6

46 Programmazione Lineare Intera 41 Branch and Cut Si divide il problema in sottoproblemi in cui una o più variabili hanno un valore fissato. Come in un Branch and Bound classico, per ogni sottoproblema si calcolano i lower bound proposti e si effettua una delle seguenti decisioni: 1. Si taglia il nodo perchè non promettente; 2. Si torna indietro perchè si è trovato una soluzione ammissibile; 3. Si ramifica ulteriormente. Ad ogni nodo si possono aggiungere piani di taglio per ridurre lo spazio delle soluzioni ammissibili. La tecnica risultante è di tipo Branch and Bound con l aggiunta di tali piani di taglio. Il modo utilizzato per ramificare è definito strategia di branching.

47

48 Teoria della complessita 42 Definiamo: Definizioni e Obiettivi P un problema di ottimizzazione o di decisione. Dato un insieme di soluzioni possibili, determinare quella di costo minimo (o profitto massimo). Esempi: Knapsack Problem (KP01), Bin Packing Problem (BPP), Cammino minimo(spp), minimo albero ricoprente(sst), Traveling Salesman Problem (TSP), Vehicle Routing Problem (VRP),... A un particolare algoritmo per la risoluzione di P. Ovvero una particolare sequenza di operazioni che ci permetta di determinare la soluzione ottima del problema P. I un istanza di P. Ovvero un caso numerico associato al problema P. L obiettivo della teoria della complessità è duplice: 1. Determinare l efficienza di uno specifico algoritmo A per la risoluzione di un problema P. In tal modo, qualora si abbiano a disposizione più algoritmi, si potrà scegliere quello più efficiente. 2. Determinare la complessità di un problema P come la complessità dell algoritmo A più efficiente per P. In questo modo si può valutare la difficoltà intrinseca di un problema. Per problemi facili andremo sempre alla ricerca della soluzione ottima, mentre per problemi difficili ci accontentermo, eventualmente, di soluzioni approssimate.

49 Teoria della complessita 43 Complessità di un algoritmo La compessità di un algoritmo A può essere vista come la misura del tempo necessario per la sua esecuzione su una data istanza. Con questo criterio la complessità risulterebbe strettamente dipendente dalla macchina risolutrice utilizzata. Più veloce è il computer utilizzato, più veloce risulta la ricerca dell ottimo. Vogliamo esprimere la complessità come misura indipendente dal processore utilizzato. Definiamo un operazione elementare come: un assegnamento; un confronto; un operazione aritmetica. Definiamo infine la compessità di un algoritmo A come il numero di operazioni elementari necessarie per portare a termine A su una determinata istanza I.

50 Teoria della complessita 44 Stima della complessità E importante notare come il numero di operazioni sia dipendente da quella che è la grandezza dell istanza I presa in considerazione. In linea generale, più l istanza è grande, più sarà elevato il numero di operazioni richieste per A. La dimensione dell istanza I, ovvero dell input del nostro algoritmo A, corrisponde al numero di bit necessari a codificare l input stesso. Di solito si considera il numero di valori numerici (in seguito definito n) che appaiono in I, che è proporzionale al numero di bit. Notiamo inoltre come sia difficile determinare in modo esatto il numero di operazioni elementari richieste da un algoritmo. Inoltre non è necessario arrivare ad un tale livello di precisione. Ciò che conta è avere una stima del numero di operazioni. Al fine di ottenere una tale stima, introduciamo alcune funzioni di interesse.

51 Teoria della complessita 45 Ordine di... Date due funzioni f,g : N N, si ha: f(n) = O(g(n)) se esiste una costante c 0 > 0 e un valore n, tale che f(n) c 0 g(n) per ogni n n. In altre parole, per n sufficentemente grande, g(n) è un limite superiore o upper bound di f(n) a meno di una costante moltiplicativa. Esempio: f(n) = 5n 3 +3n 2 +2n+6 avremo che g(n) = n 3 e f(n) = O(g(n)) = O(n 3 ), in quanto per k 16 ho f(n) kg(n). Esempio: f(n) = 2 n +n 2 avremo che g(n) = 2 n e f(n) = O(g(n)) = O(2 n ), in quanto per k 3 ho f(n) kg(n). Il nostro obiettivo è quello di stimare la complessità di un algoritmo con una data funzione O(g(n)), dove tipicamente n rappresenterà la grandezza di I.

52 Teoria della complessita 46 Dimensione di un istanza In un istanza I di un BPP con n oggetti, abbiamo come input gli n valori dei pesi degli oggetti e un valore aggiuntivo che esprime la capacità del bin, per un totale di n+1 valori. Stimeremo la dimensione dell istanza I con il valore n. La stima è ragionevole, in quanto esprimeremo la complessità con un O( ), dove le costanti saranno tutte trascurate. In un istanza I di un KP01 con n oggetti, abbiamo come input 2n valori (n profitti e n pesi) più un valore per la capacità del contenitore. Con ragionamento analogo al precedente, stimeremo la dimensione dell istanza I con il valore n. Dato un grafo di n vertici, diremo che la dimensione dell istanza è n (a volte può anche essere utile considerare il numero di lati m). Questo grafo potrà essere input di problemi di vario tipo, quali: SPP; SST; TSP; VRP;...

Ricerca Operativa A.A. 2007/2008

Ricerca Operativa A.A. 2007/2008 Ricerca Operativa A.A. 2007/2008 9. Cenni su euristiche e metaeuristiche per ottimizzazione combinatoria Motivazioni L applicazione di metodi esatti non è sempre possibile a causa della complessità del

Dettagli

Ottimizzazione Multi Obiettivo

Ottimizzazione Multi Obiettivo Ottimizzazione Multi Obiettivo 1 Ottimizzazione Multi Obiettivo I problemi affrontati fino ad ora erano caratterizzati da una unica (e ben definita) funzione obiettivo. I problemi di ottimizzazione reali

Dettagli

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Scopo: Stimare l onere computazionale per risolvere problemi di ottimizzazione e di altra natura

Dettagli

Il Metodo Branch and Bound

Il Metodo Branch and Bound Il Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, 56127 Pisa laura.galli@unipi.it http://www.di.unipi.it/~galli 4 Novembre 2014 Ricerca Operativa 2 Laurea Magistrale in Ingegneria Gestionale

Dettagli

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Dipartimento di Ingegneria della Informazione Via Diotisalvi, 2 56122 PISA ALGORITMI GENETICI (GA) Sono usati per risolvere problemi di ricerca

Dettagli

Quadratic assignment Problem: The Hospital Layout

Quadratic assignment Problem: The Hospital Layout Università degli Studi di Modena e Reggio Emilia Corso di Laurea Magistrale in Ingegneria Gestionale Metodi di ottimizzazione per la logistica e la produzione Quadratic assignment Problem: The Hospital

Dettagli

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza Il problema di flusso di costo minimo (MCF) Dati : grafo orientato G = ( N, A ) i N, deficit del nodo i : b i (i, j) A u ij, capacità superiore (max quantità di flusso che può transitare) c ij, costo di

Dettagli

Programmazione dinamica

Programmazione dinamica Capitolo 6 Programmazione dinamica 6.4 Il problema della distanza di edit tra due stringhe x e y chiede di calcolare il minimo numero di operazioni su singoli caratteri (inserimento, cancellazione e sostituzione)

Dettagli

Esercizi di Ricerca Operativa I

Esercizi di Ricerca Operativa I Esercizi di Ricerca Operativa I Dario Bauso, Raffaele Pesenti May 10, 2006 Domande Programmazione lineare intera 1. Gli algoritmi per la programmazione lineare continua possono essere usati per la soluzione

Dettagli

Page 1. Evoluzione. Intelligenza Artificiale. Algoritmi Genetici. Evoluzione. Evoluzione: nomenclatura. Corrispondenze natura-calcolo

Page 1. Evoluzione. Intelligenza Artificiale. Algoritmi Genetici. Evoluzione. Evoluzione: nomenclatura. Corrispondenze natura-calcolo Evoluzione In ogni popolazione si verificano delle mutazioni. Intelligenza Artificiale In un ambiente che varia, le mutazioni possono generare individui che meglio si adattano alle nuove condizioni. Questi

Dettagli

Algoritmi euristici per il caricamento e l instradamento di una flotta di bisarche

Algoritmi euristici per il caricamento e l instradamento di una flotta di bisarche Università degli Studi di Modena e Reggio Emilia Ingegneria di Reggio Emilia Estratto della Tesi di Laurea di Simone Falavigna Algoritmi euristici per il caricamento e l instradamento di una flotta di

Dettagli

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

Capitolo 5: Ottimizzazione Discreta. E. Amaldi DEI, Politecnico di Milano Capitolo 5: Ottimizzazione Discreta E. Amaldi DEI, Politecnico di Milano 5.1 Modelli di PLI, formulazioni equivalenti ed ideali Il modello matematico di un problema di Ottimizzazione Discreta è molto spesso

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

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 Laboratorio Manuel Iori Dipartimento di Scienze e Metodi dell Ingegneria Università di Modena e Reggio Emilia MOLP Parte I 1 / 41 Contenuto della

Dettagli

TSP con eliminazione di sottocicli

TSP con eliminazione di sottocicli TSP con eliminazione di sottocicli Un commesso viaggiatore deve visitare 7 clienti in modo da minimizzare la distanza percorsa. Le distanze (in Km) tra ognuno dei clienti sono come segue: 7-8 9 7 9-8 79

Dettagli

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani Ricerca Operativa Esercizi sul metodo del simplesso Luigi De Giovanni, Laura Brentegani 1 1) Risolvere il seguente problema di programmazione lineare. ma + + 3 s.t. 2 + + 2 + 2 + 3 5 2 + 2 + 6,, 0 Soluzione.

Dettagli

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione presentato in questo file trova la seq. a costo minimo per

Dettagli

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo L. De Giovanni G. Zambelli 1 Problema del flusso a costo minimo Il problema del flusso a costo minimo é definito

Dettagli

Algoritmi e strutture dati. Codici di Huffman

Algoritmi e strutture dati. Codici di Huffman Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per

Dettagli

Ottimizzazione nella gestione dei progetti Capitolo 4: la gestione dei costi (Programmazione multimodale): formulazioni

Ottimizzazione nella gestione dei progetti Capitolo 4: la gestione dei costi (Programmazione multimodale): formulazioni Ottimizzazione nella gestione dei progetti Capitolo 4: la gestione dei costi (Programmazione multimodale): formulazioni CARLO MANNINO Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica

Dettagli

ESEMPIO P.L. : PIANIFICAZIONE DI INVESTIMENTI

ESEMPIO P.L. : PIANIFICAZIONE DI INVESTIMENTI ESEMPIO P.L. : PIANIFICAZIONE DI INVESTIMENTI PROBLEMA: un azienda deve scegliere fra due possibili investimenti al fine di massimizzare il profitto netto nel rispetto delle condizioni interne e di mercato

Dettagli

TSP con eliminazione di sottocicli

TSP con eliminazione di sottocicli TSP con eliminazione di sottocicli Un commesso viaggiatore deve visitare 7 clienti in modo da minimizzare la distanza percorsa. Le distanze (in Km) tra ognuno dei clienti sono come segue: 3 5 7-8 9 57

Dettagli

PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO

PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO 1. Load Balancing Un istanza del problema del load balancing consiste di una sequenza p 1,..., p n di interi positivi (pesi dei job) e un

Dettagli

Barriere assorbenti nelle catene di Markov e una loro applicazione al web

Barriere assorbenti nelle catene di Markov e una loro applicazione al web Università Roma Tre Facoltà di Scienze M.F.N Corso di Laurea in Matematica a.a. 2001/2002 Barriere assorbenti nelle catene di Markov e una loro applicazione al web Giulio Simeone 1 Sommario Descrizione

Dettagli

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010 elementi di teoria dei grafi anno acc. 2009/2010 Grafi semplici Un grafo semplice G è una coppia ordinata (V(G), L(G)), ove V(G) è un insieme finito e non vuoto di elementi detti vertici o nodi di G, mentre

Dettagli

Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005. Lezione 11

Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005. Lezione 11 Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005 Docente: Ugo Vaccaro Lezione 11 In questa lezione vedremo alcune applicazioni della tecnica greedy al progetto di algoritmi on-line. Vediamo

Dettagli

Informatica. Rappresentazione dei numeri Numerazione binaria

Informatica. Rappresentazione dei numeri Numerazione binaria Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

Esercizi per il corso di Algoritmi e Strutture Dati

Esercizi per il corso di Algoritmi e Strutture Dati 1 Esercizi per il corso di Algoritmi e Strutture Dati Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, né in C++, etc. ). Di tutti gli algoritmi

Dettagli

Tipologie di macchine di Turing

Tipologie di macchine di Turing Tipologie di macchine di Turing - Macchina di Turing standard - Macchina di Turing con un nastro illimitato in una sola direzione - Macchina di Turing multinastro - Macchina di Turing non deterministica

Dettagli

2 + (σ2 - ρσ 1 ) 2 > 0 [da -1 ρ 1] b = (σ 2. 2 - ρσ1 σ 2 ) = (σ 1

2 + (σ2 - ρσ 1 ) 2 > 0 [da -1 ρ 1] b = (σ 2. 2 - ρσ1 σ 2 ) = (σ 1 1 PORTAFOGLIO Portafoglio Markowitz (2 titoli) (rischiosi) due titoli rendimento/varianza ( μ 1, σ 1 ), ( μ 2, σ 2 ) Si suppone μ 1 > μ 2, σ 1 > σ 2 portafoglio con pesi w 1, w 2 w 1 = w, w 2 = 1- w 1

Dettagli

b i 1,1,1 1,1,1 0,1,2 0,3,4

b i 1,1,1 1,1,1 0,1,2 0,3,4 V o Appello // RICERCA OPERATIVA - Corso A (a.a. 9/) Nome Cognome: Corso di Laurea: L C6 LS LM Matricola: ) Si consideri il problema di flusso di costo minimo in figura. Si verifichi se il flusso ammissibile

Dettagli

Complessità Computazionale

Complessità Computazionale Complessità Computazionale Analisi Algoritmi e pseudocodice Cosa significa analizzare un algoritmo Modello di calcolo Analisi del caso peggiore e del caso medio Esempio di algoritmo in pseudocodice INSERTION

Dettagli

2.1 Definizione di applicazione lineare. Siano V e W due spazi vettoriali su R. Un applicazione

2.1 Definizione di applicazione lineare. Siano V e W due spazi vettoriali su R. Un applicazione Capitolo 2 MATRICI Fra tutte le applicazioni su uno spazio vettoriale interessa esaminare quelle che mantengono la struttura di spazio vettoriale e che, per questo, vengono dette lineari La loro importanza

Dettagli

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

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

Dettagli

La Minimizzazione dei costi

La Minimizzazione dei costi La Minimizzazione dei costi Il nostro obiettivo è lo studio del comportamento di un impresa che massimizza il profitto sia in mercati concorrenziali che non concorrenziali. Ora vedremo la fase della minimizzazione

Dettagli

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Dipartimento di Ingegneria della Informazione Via Diotisalvi, 2 56122 PISA ALGORITMI GENETICI (GA) Sono usati per risolvere problemi di ricerca

Dettagli

VC-dimension: Esempio

VC-dimension: Esempio VC-dimension: Esempio Quale è la VC-dimension di. y b = 0 f() = 1 f() = 1 iperpiano 20? VC-dimension: Esempio Quale è la VC-dimension di? banale. Vediamo cosa succede con 2 punti: 21 VC-dimension: Esempio

Dettagli

TECNICHE DI SIMULAZIONE

TECNICHE DI SIMULAZIONE TECNICHE DI SIMULAZIONE INTRODUZIONE Francesca Mazzia Dipartimento di Matematica Università di Bari a.a. 2004/2005 TECNICHE DI SIMULAZIONE p. 1 Introduzione alla simulazione Una simulazione è l imitazione

Dettagli

Codifiche a lunghezza variabile

Codifiche a lunghezza variabile Sistemi Multimediali Codifiche a lunghezza variabile Marco Gribaudo marcog@di.unito.it, gribaudo@elet.polimi.it Assegnazione del codice Come visto in precedenza, per poter memorizzare o trasmettere un

Dettagli

Modelli di Sistemi di Produzione:

Modelli di Sistemi di Produzione: Modelli di Sistemi di Produzione: programma dettagliato - giugno 2007 1. Algoritmi Metaeuristici 1.1 Algoritmi costruttivi ed algoritmi di ricerca locale/metaeuristici 1.2 Algoritmo di ricerca locale 1.3

Dettagli

Capitolo 13: L offerta dell impresa e il surplus del produttore

Capitolo 13: L offerta dell impresa e il surplus del produttore Capitolo 13: L offerta dell impresa e il surplus del produttore 13.1: Introduzione L analisi dei due capitoli precedenti ha fornito tutti i concetti necessari per affrontare l argomento di questo capitolo:

Dettagli

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera L. De Giovanni AVVERTENZA: le note presentate di seguito non hanno alcuna pretesa di completezza, né hanno lo scopo di sostituirsi

Dettagli

PROGRAMMAZIONE LINEARE IN DUE VARIABILI

PROGRAMMAZIONE LINEARE IN DUE VARIABILI 1 PROGRAMMAZIONE LINEARE IN DUE VARIABILI La ricerca operativa nata durante la seconda guerra mondiale ed utilizzata in ambito militare, oggi viene applicata all industria, nel settore pubblico e nell

Dettagli

4. Operazioni elementari per righe e colonne

4. Operazioni elementari per righe e colonne 4. Operazioni elementari per righe e colonne Sia K un campo, e sia A una matrice m n a elementi in K. Una operazione elementare per righe sulla matrice A è una operazione di uno dei seguenti tre tipi:

Dettagli

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Dettagli

Ricerca Operativa e Logistica

Ricerca Operativa e Logistica Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili A.A. 2011/2012 Lezione 10: Variabili e vincoli logici Variabili logiche Spesso nei problemi reali che dobbiamo affrontare ci sono dei

Dettagli

Ricerca Operativa e Logistica

Ricerca Operativa e Logistica Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili A.A. 20/202 Lezione 6-8 Rappresentazione di funzioni non lineari: - Costi fissi - Funzioni lineari a tratti Funzioni obiettivo non lineari:

Dettagli

Capitolo 4: Ottimizzazione non lineare non vincolata parte II. E. Amaldi DEIB, Politecnico di Milano

Capitolo 4: Ottimizzazione non lineare non vincolata parte II. E. Amaldi DEIB, Politecnico di Milano Capitolo 4: Ottimizzazione non lineare non vincolata parte II E. Amaldi DEIB, Politecnico di Milano 4.3 Algoritmi iterativi e convergenza Programma non lineare (PNL): min f(x) s.v. g i (x) 0 1 i m x S

Dettagli

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12 A / A / Seconda Prova di Ricerca Operativa Cognome Nome Numero Matricola Nota: LA RISOLUZIONE CORRETTA DEGLI ESERCIZI CONTRADDISTINTI DA UN ASTERISCO È CONDIZIONE NECESSARIA PER IL RAGGIUNGIMENTO DELLA

Dettagli

LE FUNZIONI A DUE VARIABILI

LE FUNZIONI A DUE VARIABILI Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre

Dettagli

Esercizi Capitolo 6 - Alberi binari di ricerca

Esercizi Capitolo 6 - Alberi binari di ricerca Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 23 settembre 200 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

La Programmazione Lineare

La Programmazione Lineare 4 La Programmazione Lineare 4.1 INTERPRETAZIONE GEOMETRICA DI UN PROBLEMA DI PROGRAMMAZIONE LINEARE Esercizio 4.1.1 Fornire una rappresentazione geometrica e risolvere graficamente i seguenti problemi

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

FUNZIONI ELEMENTARI - ESERCIZI SVOLTI

FUNZIONI ELEMENTARI - ESERCIZI SVOLTI FUNZIONI ELEMENTARI - ESERCIZI SVOLTI 1) Determinare il dominio delle seguenti funzioni di variabile reale: (a) f(x) = x 4 (c) f(x) = 4 x x + (b) f(x) = log( x + x) (d) f(x) = 1 4 x 5 x + 6 ) Data la funzione

Dettagli

Lezione 9: Cambio di base

Lezione 9: Cambio di base Lezione 9: Cambio di base In questa lezione vogliamo affrontare uno degli argomenti piu ostici per lo studente e cioè il cambio di base all interno di uno spazio vettoriale, inoltre cercheremo di capire

Dettagli

~ Copyright Ripetizionando - All rights reserved ~ http://ripetizionando.wordpress.com STUDIO DI FUNZIONE

~ Copyright Ripetizionando - All rights reserved ~ http://ripetizionando.wordpress.com STUDIO DI FUNZIONE STUDIO DI FUNZIONE Passaggi fondamentali Per effettuare uno studio di funzione completo, che non lascia quindi margine a una quasi sicuramente errata inventiva, sono necessari i seguenti 7 passaggi: 1.

Dettagli

Calcolo del Valore Attuale Netto (VAN)

Calcolo del Valore Attuale Netto (VAN) Calcolo del Valore Attuale Netto (VAN) Il calcolo del valore attuale netto (VAN) serve per determinare la redditività di un investimento. Si tratta di utilizzare un procedimento che può consentirci di

Dettagli

Ottimizazione vincolata

Ottimizazione vincolata Ottimizazione vincolata Ricordiamo alcuni risultati provati nella scheda sulla Teoria di Dini per una funzione F : R N+M R M di classe C 1 con (x 0, y 0 ) F 1 (a), a = (a 1,, a M ), punto in cui vale l

Dettagli

Capitolo 2. Operazione di limite

Capitolo 2. Operazione di limite Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A

Dettagli

Prodotto Disponibilità Costo 1 3000 3 2 2000 6 3 4000 4. e rispettando le seguenti regole di composizione delle benzine:

Prodotto Disponibilità Costo 1 3000 3 2 2000 6 3 4000 4. e rispettando le seguenti regole di composizione delle benzine: 1.1 Pianificazione degli investimenti. Una banca deve investire C milioni di Euro, e dispone di due tipi di investimento: (a) con interesse annuo del 15%; (b) con interesse annuo del 25%. Almeno 1 di C

Dettagli

Fondamenti e didattica di Matematica Finanziaria

Fondamenti e didattica di Matematica Finanziaria Fondamenti e didattica di Matematica Finanziaria Silvana Stefani Piazza dell Ateneo Nuovo 1-20126 MILANO U6-368 silvana.stefani@unimib.it 1 Unità 9 Contenuti della lezione Operazioni finanziarie, criterio

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

Management Sanitario. Modulo di Ricerca Operativa

Management Sanitario. Modulo di Ricerca Operativa Management Sanitario per il corso di Laurea Magistrale SCIENZE RIABILITATIVE DELLE PROFESSIONI SANITARIE Modulo di Ricerca Operativa Prof. Laura Palagi http://www.dis.uniroma1.it/ palagi Dipartimento di

Dettagli

Ottimizzazione delle interrogazioni (parte I)

Ottimizzazione delle interrogazioni (parte I) Ottimizzazione delle interrogazioni I Basi di Dati / Complementi di Basi di Dati 1 Ottimizzazione delle interrogazioni (parte I) Angelo Montanari Dipartimento di Matematica e Informatica Università di

Dettagli

mese 1 2 3 4 5 richiesta 6000 7000 8000 9500 11000

mese 1 2 3 4 5 richiesta 6000 7000 8000 9500 11000 1.7 Servizi informatici. Un negozio di servizi informatici stima la richiesta di ore di manutenzione/consulenza per i prossimi cinque mesi: mese 1 2 3 4 5 richiesta 6000 7000 8000 9500 11000 All inizio

Dettagli

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede

Dettagli

Metodi Computazionali

Metodi Computazionali Metodi Computazionali Elisabetta Fersini fersini@disco.unimib.it A.A. 2009/2010 Catene di Markov Applicazioni: Fisica dinamica dei sistemi Web simulazione del comportamento utente Biologia evoluzione delle

Dettagli

1. PRIME PROPRIETÀ 2

1. PRIME PROPRIETÀ 2 RELAZIONI 1. Prime proprietà Il significato comune del concetto di relazione è facilmente intuibile: due elementi sono in relazione se c è un legame tra loro descritto da una certa proprietà; ad esempio,

Dettagli

Cluster. Vicino alla temperatura critica gli spin formano grandi gruppi (cluster)

Cluster. Vicino alla temperatura critica gli spin formano grandi gruppi (cluster) Cluster Vicino alla temperatura critica gli spin formano grandi gruppi (cluster) all interno di ogni gruppo è molto improbabile riuscire a flippare uno spin perché ci sarebbe una grande perdita di energia,

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

Problema del trasporto

Problema del trasporto p. 1/1 Problema del trasporto Supponiamo di avere m depositi in cui è immagazzinato un prodotto e n negozi che richiedono tale prodotto. Nel deposito i è immagazzinata la quantità a i di prodotto. Nel

Dettagli

Esempi di modelli di programmazione lineare (intera) 2014

Esempi di modelli di programmazione lineare (intera) 2014 Esempi di modelli di programmazione lineare (intera) 2014 1) Combinando risorse Una ditta produce due tipi di prodotto, A e B, combinando e lavorando opportunamente tre risorse, R, S e T. In dettaglio:

Dettagli

Corso di Matematica per la Chimica

Corso di Matematica per la Chimica Dott.ssa Maria Carmela De Bonis a.a. 203-4 I sistemi lineari Generalità sui sistemi lineari Molti problemi dell ingegneria, della fisica, della chimica, dell informatica e dell economia, si modellizzano

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Elementi di Programmazione Dinamica Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Il problema La CMC produce automobili in uno stabilimento

Dettagli

Probabilità discreta

Probabilità discreta Probabilità discreta Daniele A. Gewurz 1 Che probabilità c è che succeda...? Una delle applicazioni della combinatoria è nel calcolo di probabilità discrete. Quando abbiamo a che fare con un fenomeno che

Dettagli

Parte I. Prima Parte

Parte I. Prima Parte Parte I Prima Parte Capitolo 1 Introduzione generale 1.1 Il problema dell assegnazione Corsi-Borsisti Il problema dell assegnazione delle borse dei corsi ai vari studenti può essere riassunto nei punti

Dettagli

Problemi complessi : come trovare una soluzione soddisfacente?

Problemi complessi : come trovare una soluzione soddisfacente? Informatica nel futuro, sfide e prospettive - evento scientifico per i 40 anni di ated Manno, 7 ottobre 2011 Problemi complessi : come trovare una soluzione soddisfacente? Marino Widmer Università di Friburgo

Dettagli

risulta (x) = 1 se x < 0.

risulta (x) = 1 se x < 0. Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente

Dettagli

2 Formulazione dello shortest path come problema di flusso

2 Formulazione dello shortest path come problema di flusso Strumenti della Teoria dei Giochi per l Informatica A.A. 2009/10 Lecture 20: 28 Maggio 2010 Cycle Monotonicity Docente: Vincenzo Auletta Note redatte da: Annibale Panichella Abstract In questa lezione

Dettagli

2. Leggi finanziarie di capitalizzazione

2. Leggi finanziarie di capitalizzazione 2. Leggi finanziarie di capitalizzazione Si chiama legge finanziaria di capitalizzazione una funzione atta a definire il montante M(t accumulato al tempo generico t da un capitale C: M(t = F(C, t C t M

Dettagli

RICERCA OPERATIVA GRUPPO B prova scritta del 22 marzo 2007

RICERCA OPERATIVA GRUPPO B prova scritta del 22 marzo 2007 RICERCA OPERATIVA GRUPPO B prova scritta del 22 marzo 2007 Rispondere alle seguenti domande marcando a penna la lettera corrispondente alla risposta ritenuta corretta (una sola tra quelle riportate). Se

Dettagli

Corrispondenze e funzioni

Corrispondenze e funzioni Corrispondenze e funzioni L attività fondamentale della mente umana consiste nello stabilire corrispondenze e relazioni tra oggetti; è anche per questo motivo che il concetto di corrispondenza è uno dei

Dettagli

Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili

Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili Il modello matematico 2: Funzioni obiettivo: ma.min, Min-ma Tipologie di Vincoli Funzione obiettivo ma-min: Esempio Scommesse Il signor

Dettagli

Testi di Esercizi e Quesiti 1

Testi di Esercizi e Quesiti 1 Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica

Dettagli

I PROBLEMI ALGEBRICI

I PROBLEMI ALGEBRICI I PROBLEMI ALGEBRICI La risoluzione di problemi è una delle attività fondamentali della matematica. Una grande quantità di problemi è risolubile mediante un modello algebrico costituito da equazioni e

Dettagli

1. Sia dato un poliedro. Dire quali delle seguenti affermazioni sono corrette.

1. Sia dato un poliedro. Dire quali delle seguenti affermazioni sono corrette. . Sia dato un poliedro. (a) Un vettore x R n è un vertice di P se soddisfa alla seguenti condizioni: x P e comunque presi due punti distinti x, x 2 P tali che x x e x x 2 si ha x = ( β)x + βx 2 con β [0,

Dettagli

Parte 2. Determinante e matrice inversa

Parte 2. Determinante e matrice inversa Parte. Determinante e matrice inversa A. Savo Appunti del Corso di Geometria 013-14 Indice delle sezioni 1 Determinante di una matrice, 1 Teorema di Cramer (caso particolare), 3 3 Determinante di una matrice

Dettagli

La distribuzione Normale. La distribuzione Normale

La distribuzione Normale. La distribuzione Normale La Distribuzione Normale o Gaussiana è la distribuzione più importante ed utilizzata in tutta la statistica La curva delle frequenze della distribuzione Normale ha una forma caratteristica, simile ad una

Dettagli

Intelligenza Artificiale

Intelligenza Artificiale Intelligenza Artificiale Esercizi e Domande di Esame Tecniche di Ricerca e Pianificazione Esercizi Griglia Si consideri un ambiente costituito da una griglia n n in cui si muove un agente che può spostarsi

Dettagli

Stimare il WCET Metodo classico e applicazione di un algoritmo genetico

Stimare il WCET Metodo classico e applicazione di un algoritmo genetico Stimare il WCET Metodo classico e applicazione di un algoritmo genetico Sommario Introduzione Definizione di WCET Importanza del WCET Panoramica dei classici metodi per calcolare il WCET [1] Utilizzo di

Dettagli

Esercizio 1 Dato il gioco ({1, 2, 3}, v) con v funzione caratteristica tale che:

Esercizio 1 Dato il gioco ({1, 2, 3}, v) con v funzione caratteristica tale che: Teoria dei Giochi, Trento, 2004/05 c Fioravante Patrone 1 Teoria dei Giochi Corso di laurea specialistica: Decisioni economiche, impresa e responsabilità sociale, A.A. 2004/05 Soluzioni degli esercizi

Dettagli

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Premessa Con l analisi di sensitività il perito valutatore elabora un range di valori invece di un dato

Dettagli

Gli input sono detti anche fattori di produzione: terra, capitale, lavoro, materie prime.

Gli input sono detti anche fattori di produzione: terra, capitale, lavoro, materie prime. LA TECNOLOGIA Studio del comportamento dell impresa, soggetto a vincoli quando si compiono scelte. La tecnologia rientra tra vincoli naturali e si traduce nel fatto che solo alcuni modi di trasformare

Dettagli

Esponenziali elogaritmi

Esponenziali elogaritmi Esponenziali elogaritmi Potenze ad esponente reale Ricordiamo che per un qualsiasi numero razionale m n prendere n>0) si pone a m n = n a m (in cui si può sempre a patto che a sia un numero reale positivo.

Dettagli

1. Considerazioni generali

1. Considerazioni generali 1. Considerazioni generali Modelli di shop scheduling In molti ambienti produttivi l esecuzione di un job richiede l esecuzione non simultanea di un certo numero di operazioni su macchine dedicate. Ogni

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli