TECNICHE ALGORITMICHE PER PROBLEMI DI OTTIMIZZAZIONE

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "TECNICHE ALGORITMICHE PER PROBLEMI DI OTTIMIZZAZIONE"

Transcript

1 TECNICHE ALGORITMICHE PER PROBLEMI DI OTTIMIZZAZIONE - Tecniche golose (greedy). - Algoritmi sequenziali. - Ricerca locale. - Metodi basati su programmazione lineare. - Metodi basati su approccio primale-duale. - Programmazione dinamica. - Algoritmi randomizzati. 1

2 - Tecniche per PTAS (es. tecnica di completamento). - Tecniche per FPTAS (es. scalatura). - Tecniche euristiche senza garanzia di prestazione. o Simulated annealing. o Algoritmi genetici. o Tabu search. 2

3 ALGORITMI GREEDY Nelle tecniche greedy (avide, golose) le scelte effettuate da un algoritmo nella costruzione di una soluzione sono guidate dall avidità, dal desiderio di accaparrarsi prima di tutto gli elementi che a prima vista appaiono più convenienti, anche se alla lunga le scelte fatte possono non essere ottimali. 3

4 Tecniche greedy sono particolarmente utilizzate nel caso di problemi di ottimo su insiemi, cioè problemi P=<I, S, m, opt> in cui, data un istanxa x I, una soluzione y è un sottoinsieme di x che soddisfa una determinata proprietà ed ha un determinato valore m(x,y). Data un istanza x={e 1,, e n } ogni elemento ha un valore e la soluzione viene costruita utilizzando prima gli elementi di maggior valore. 4

5 ALGORITMO BISACCIA GREEDY Sia data un istanza x costituita da n oggetti o 1,, o n con pesi a 1,, a n e profitti p 1,, p n e una capacità b. Sia o MAX l oggetto il cui profitto p MAX è massimo. In questo caso il valore di un elemento è la sua densità: d i =p i /a i. L algoritmo è il seguente: 1. ordina gli oggetti per densità non crescente, 2. inserisci gli oggetti nella bisaccia fino a che vi è capienza; sia s la soluzione così ottenuta ed m=m(x,s) il suo valore, 3. se m p MAX scegli come soluzione ottima s altrimenti scegli s ={o MAX }. 5

6 L algoritmo BISACCIA GREEDY fornisce una soluzione 2- approssimata. DIMOSTRAZIONE. Siano k gli elementi inseriti e siano: w=σ i=1,k a i, m=σ i=1,k p i. Abbiamo w+a k+1 > b e m*(x)<m+p k+1. Sia M = max{m, p MAX }. Si presentano due casi: i) p k+1 m m* < 2m 2M ii) m < p k+1 p MAX m* < 2p MAX 2M QED 6

7 Nota bene. Se per il problema KNAPSACK ammettiamo soluzioni reali anziché intere l algoritmo precedente ci fornisce la soluzione ottima in modo semplice. La bisaccia potrà essere riempita completamente utilizzando (oltre agli oggetti o 1,, o k ) una frazione f=(b-w)/a k+1 dell oggetto o k+1 e quindi il valore della soluzione ottima sarà m*=m+f p k+1. 7

8 Non sempre gli algoritmi greedy forniscono soluzioni approssimate con fattore di approssimazione costante. Consideriamo il seguente algoritmo greedy per il problema MIN VERTEX COVER in cui si presume che il valore di un nodo di un grafo sia il suo grado, cioè il numero di archi che egli ricopre. 1. Scegli un nodo n di grado massimo, 2. inserisci n nella soluzione, 3. cancella il nodo n ed i relativi archi dal grafo, finché non ci sono più archi. Tale algoritmo può portare ad un rapporto di approssimazione logaritmico. 8

9 Si può facilmentecreare un esempio in cui la soluzione ottima consiste di n nodi mentre la soluzione greedy contiene n + Σ j=2,n n/j = nh(n) = O(n ln n) nodi. 9

10 Analogamente nel caso del problema MAX INDEPENDENT SET si può pensare che il valore di un nodo sia tanto maggiore quanto minore è il numero di nodi adiacenti che esso ha. Consideriamo il seguente algoritmo greedy: 1. Scegli un nodo n di grado minimo, 2. inserisci n nella soluzione, 3. cancella il nodo n ed i relativi archi dal grafo, finché non ci sono più archi. 10

11 L algoritmo può dare un errore O(n) infatti si può mostrare un esempio in cui la soluzione fornita dall algoritmo ha un valore m G tale che m* (δ+1) m G dove δ è il grado massimo di un nodo del grafo e può essere quindi n-1. 11

12 ALGORITMI SEQUENZIALI Negli algoritmi sequenziali gli elementi dell input vengono forniti in ordine arbitrario ed una soluzione viene costruita via via senza esaminare preliminarmente gli elementi che verranno forniti successivamente. Tecniche di questo tipo vengono utilizzate in problemi di partizionamento in cui gli elementi vanno suddivisi in diversi insiemi disgiunti e la qualità della soluzione dipende dalla partizione realizzata. In particolare vengono utilizzati negli algoritmi on line, in cui l input viene rivelato via via e un algoritmo deve prendere decisioni solo sulla base della porzione di input vista fino a tale istante. 12

13 Esempi. Gestione di risorse nei sistemi di elaborazione: - sequenziamento di task su più processori (scheduling). - allocazione di memoria (paginazione, segmentazione). Algoritmo sequenziale per problemi di sequenziamento di lavori. Consideriamo il seguente problema (MIN MULTIPROCESSOR SCHEDULING ON IDENTICAL MACHINES). Un istanza T del problema è costituita da n lavori t 1,, t n di durata p 1,, p n e p macchine M 1,, M p. Si deve cercare un sequenziamento dei lavori sulle macchine che minimizzi il tempo di completamento dei lavori (makespan). 13

14 ALGORITMO DI GRAHAM For i =1 to n: si assegni il lavoro t i alla macchina M j per la quale risulta minimo il valore Σ k=1,i-1 p jk dove p jk = p k se il lavoro t k è stato assegnato alla macchina j, 0 altrimenti. Data un istanza T, l algoritmo di Graham fornisce una soluzione s G di valore: m G (T, s G ) = max Σ k=1,n p jk (2 1/p) m*(t). 14

15 DIMOSTRAZIONE. Sia W= Σ k=1,n p k la durata totale di tutti i lavori e siano M h la macchina che ha makespan m G e t L l ultimo lavoro assegnato alla macchina M h. Abbiamo: m* W/p, m* p L, W p (m G -p L ) + p L e quindi m G W/p + p L p L /p (2 1/p)m* QED 15

16 Nota bene 1. La limitazione ottenuta è stretta. Si consideri l istanza costituita da p(p-1) lavori di lunghezza 1 ed un lavoro di lunghezza p. Per tale istanza la soluzione ottima ha valore p mentre l algoritmo di Graham fornisce una soluzione di valore 2p-1. 16

17 Nota bene 2. Primo algoritmo on line. Un algoritmo on line e un algoritmo che serve una serie di richieste ma quando serve la richiesta (n-1)-esima ancora non conosce la richiesta n-esima. Un migliore risultato si ottiene con l algoritmo (off line) di tipo greedy LPT (Largest Processing Time) che ordina preventivamente i lavori: m LPT (4/3 1/(3p))m*. Per verificare che nel caso p=2 la limitazione è stretta si consideri l istanza T=(3,3,2,2,2). 17

18 Algoritmi sequenziali per il BIN PACKING. Il problema MIN BIN PACKING consiste nel determinare il minimo numero di contenitori (bin) di capacità B che possono contenere n oggetti dati di peso a 1,, a n. Vediamo ora un algoritmo 2-approssimato per il problema MIN BIN PACKING. ALGORITMO NEXT FIT Per i=1,, n ripeti: sia B h l ultimo bin utilizzato; inserisci l oggetto di peso a i nel bin B h se esso lo può contenere, altrimenti usa un nuovo bin B h+1. L algoritmo Next-Fit è 2-approssimato. 18

19 DIMOSTRAZIONE. Sia A=Σ i a i. Se consideriamo ogni coppia di bin consecutivi la somma dei pesi degli oggetti in essi contenuti è > B. D altra parte m* A/B. Quindi r = m NF /m* < 2 (A/B) / (A/B) = 2. QED Anche il seguente algoritmo sequenziale garantisce un rapporto 2. ALGORITMO FIRST FIT Per i=1,, n ripeti: inserisci l oggetto di peso a i nel primo bin che lo può contenere Chiaramente l algoritmo First Fit ha prestazioni migliori, o almeno uguali, a quelle dell algoritmo Next Fit. Si può dimostrare che l algoritmo First Fit genera soluzioni approssimate il cui valore è: m FF 1.7 m*

20 Risultati migliori si possono ottenere con l algoritmo greedy First Fit Decreasing che prima ordina gli elementi in modo decrescente e poi li colloca con il metodo First Fit. Tale metodo produce soluzioni che verificano: m FFD 1.5 m* + 1 m FFD 11/9 m*

21 ALGORITMO BEST FIT Per i=1,, n ripeti: inserisci l oggetto o i di peso a i nel bin che lo può contenere in modo migliore, cioè, se d 1,, d h sono gli spazi disponibili nei vari bin finora utilizzati l oggetto oi viene inserito in un bin B k tale che d k a i sia minimo e positivo. L algoritmo Best Fit tende quindi a ridurre gli sfridi. Esso può dare risultati migliori o peggiori di First Fit a seconda delle istanze. Applicazioni tipiche degli algoritmi on line First Fit, Next Fit, Best Fit si trovano anche nella gestione della memoria di sistemi di elaborazione. 21

22 RICERCA LOCALE La tecnica di ricerca locale è una tecnica di tipo molto generale. Perché essa sia applicabile è necessario che, data un istanza x di un problema di ottimizzazione P, sull insieme delle soluzioni di x sia definito un concetto di neighborhood (vicinato) N(x,y). Lo schema generale di un algoritmo di ricerca locale è il seguente: 22

23 SCHEMA DI RICERCA LOCALE Sia data un istanza x di un problema di minimizzazione. 1. Determina una soluzione y 0 dell istanza x. 2. i=0 3. Ripeti: sia y N(x,y i ) una soluzione tale che m(x, y) < m(x, y i ), allora y i+1 = y finché raggiungi una soluzione y k (ottimo locale) tale che: y N(x,y k ) m(x, y k ) m(x, y), 4. Restituisci y LS = y k. 23

24 Gli algoritmi di ricerca locale si differenziano sia per le modalità con cui viene definito il vicinato, sia per le modalità di esplorazione del vicinato stesso alla ricerca di una soluzione migliore di quella corrente. A volte la ricerca locale può avere costo esponenziale perché il vicinato ha taglia esponenziale o perché l algoritmo effettua un numero esponenziale di iterazioni. Noi siamo interessati ai casi in cui l algoritmo può operare in tempo polinomiale. In particolare ciò significa che il vicinato di una soluzione si ottiene variando solo un numero limitato di elementi. Ad esempio, nel caso di MAX SAT se consideriamo che una soluzione è costituita da un vettore di valori vero, falso, per contenere il numero di vicini possiamo decidere di includere nel vicinato solo i vettori ottenuti variando al più un numero prefissato k di valori di verità. 24

25 Consideriamo il problema MAX CUT (TAGLIO MASSIMO). Dato un grafo G=<V,E> con V = n, suddividere i nodi in due insiemi U e V U tali che l insieme C={e=(i,j) e E, i U, j V U} (taglio) abbia cardinalità massima. Innanzitutto dobbiamo definire il concetto di vicinato per il problema. Data una soluzione costituita da una partizione U, V U dei nodi di V, il suo vicinato è costituito da tutte le partizioni che si differenziano da quella data perché un nodo v 1 viene spostato da U a V U o, viceversa, un nodo v 2 viene spostato da V U ad U. 25

26 ALGORITMO LS MAX TAGLIO - Sia U 0 un qualunque sottoinsieme (anche vuoto) di V. - Ripeti: a. se spostando un nodo v 1 da U i a V-U i la cardinalità del taglio aumenta allora U i+1 = U i { v 1 }, b. se spostando un nodo v 2 da V-U i a U i la cardinalità del taglio aumenta allora U i+1 =U i +{v 2 }, c. se si verificano entrambe le possibilità scegli la migliore, finché raggiungi un ottimo locale U. - Restituisci C={e=(i,j) e E, i U, j V U}. 26

27 Dato un grafo G, l algoritmo LS MAX TAGLIO fornisce una soluzione C di misura m LS (G,C) m*(g)/2. DIMOSTRAZIONE Siano: c = numero di archi nel taglio = m LS (G,C) i = numero di archi interni ad U o = numero di archi interni a V-U. Inoltre, dato un nodo v, siano: i(v) = numero di archi tra v e nodi in U o(v) = numero di archi tra v e nodi in V-U Abbiamo E = m = c + i + o, quindi i + o = m c. 27

28 Poiché U è un ottimo locale abbiamo: v U i(v) o(v) 0 v V U o(v) i(v) 0 e quindi Σ v U (i(v) o(v)) = 2i c 0 Σ v V-U (o(v) i(v)) = 2o c 0 Abbiamo quindi 2i + 2o 2c 0 m 2c 0 c m/2 m*(g)/2 QED 28

29 Una interessante applicazione di tecniche di ricerca locale si ha nel problema MIN TSP. In questo caso il vicinato di un ciclo Hamiltoniano è costituito da tutti i cicli che si ottengono da quello dato scambiando gli estremi di due archi (euristica 2-opt). 29

30 ALGORITMI BASATI SULLA PROGRAMMAZIONE LINEARE Varie tecniche di risoluzione approssimate per problemi di ottimizzazione NP-hard sono basate sulla programmazione lineare. Sia dato un problema di ottimizzazione con valori binari del seguente tipo (MIN PLB): m*(i) = min i c i x i con le condizioni: Ax b e x {0, 1} n. Consideriamo il suo rilassamento (LP): m LP *(I LP ) = min i c i x i con le condizioni: Ax b e 0 x 1. 30

31 Ricordiamo anche che il rilassamento duale (D) è: m D *(I D ) = max j b j y j con le condizioni: A T y c e 0 y. Ricordiamo anche che m D *(I D ) = m LP *(I) m*(i) quindi una soluzione r-approssimata per il problema rilassato è anche una soluzione r-approssimata per il problema originario (se è ammissibile). 31

32 APPROCCIO PRIMALE-DUALE Costruire una soluzione primale ammissibile x ed una soluzione duale y tali che: i c i x i r j b j y j Abbiamo allora: m(i, x) r m D (I D, y) r m D *(I D ) = r m LP *(I LP ) r m*(i) 32

33 APPLICAZIONE AL VERTEX-COVER Il problema duale del VERTEX COVER è il problema MAX EDGE PACKING: dato un grafo G=<V, E> con pesi sui nodi c i, i=1,, V il problema consiste nell assegnare ad ogni arco (i, j) un peso y(i, j) in modo da massimizzare la somma dei pesi degli archi Σ (i,j) E y(i,j) con il vincolo che, per ogni nodo v, Σ j V y(i,j) c i. 33

34 Quindi abbiamo che dal problema iniziale: min i V c i x i con i vincoli x i + x j 1 (i, j) E x i {0,1} i V passiamo al problema rilassato con i vincoli i V x i 0 e al problema duale max (i,j) E y(i, j) con i vincoli j V y(i, j) c i i V y(i, j) 0 (i, j) E 34

35 ALGORITMO PRIMALE DUALE VERTEX COVER Definiamo non saturo un arco (i, j) tale che y(i, j) < c i e y(i, j) < c j. 1. (i, j) E y(i, j) = 0 2. S = Ø 3. finché ci sono archi non saturi ripeti: - scegli un arco (i,j), - aumenta y(i, j) fino a che il vincolo è soddisfatto rispetto a i o a j, - se y(i, j) = c i poni S = S {i} e c j = c j - y(i, j), - se y(i, j) = c j poni S = S {j} e c i = c i - y(i, j), 4. restituisci S. 35

36 L algoritmo fornisce una soluzione 2 approssimata per il problema del VERTEX COVER. DIMOSTRAZIONE Sia I l istanza del problema VERTEX COVER assegnata. La soluzione S è una soluzione ammissibile poiché, per ogni arco in E, S contiene almeno uno dei nodi adiacenti. Inoltre: i S j V y(i, j) = c i e quindi i S c i = i S j V y(i, j) 2 (i,j) E y(i, j) 2 m*(i D ) 2 m*(i) QED 36

37 ESEMPIO B A C Problema primale: min x A + x B + x C con i vincoli x A + x B 1 x B + x C 1 x C + x A 1 soluzione intera minima = 2; soluzione rilassata minima = 3/2 37

38 Problema duale: max y AB + y BC + y AC con i vincoli y AB + y BC 1 y BC + y AC 1 y AC + y AB 1 soluzione duale massima = 3/2 38

39 APPROCCIO BASATO SU RILASSAMENTO E ARROTONDAMENTO Il secondo approccio consiste nei seguenti passi: risolvere il problema rilassato e determinare una soluzione x LP* arrotondare x LP* ad una soluzione intera in modo deterministico (ad esempio rispetto ad una soglia t) x i = 1 se (x LP *) i t, 0 altrimenti in modo randomizzato (con una data distribuzione di probabilità) x i = 1 con probabilità f((x LP*) i ), 0 con probabilità 1 - f((x LP*) i ) e quindi derandomizzare. 39

40 APPLICAZIONE AL VERTEX COVER ALGORITMO LP VERTEX COVER Risolviamo l istanza del problema MIN VERTEX COVER rilassato: min i V c i x i con i vincoli x i + x j 1 (i, j) E 0 x i 1 i V Sia x* LP la soluzione ottima rilassata. Scegliamo come soluzione intera l insieme U = {i (x LP *) i 0.5} V 40

41 L algoritmo LP VERTEX COVER fornisce una soluzione 2- approssimata. DIMOSTRAZIONE La soluzione è chiaramente ammissibile (altrimenti si avrebbe x i + x j < 1). La soluzione ha misura m(g, U) 2 m LP (G, x LP*) 2 m*(g) QED 41

42 APPLICAZIONE AL MAX SAT Consideriamo una istanza I di MAX SAT: Data una clausola C j siano: P j l insieme delle variabili che compaiono affermate nella clausola C j, N j l insieme delle variabili che compaiono negate nella clausola C j, w j il peso della clausola. Formuliamo il problema come problema di PLB in cui le variabli z j corrispondono alle clausole e le variabili y i corrispondono alle variabili Booleane: max Σ j w j z j con i vincoli: j Σ i Ρj y i + Σ i Νj (1 y i ) z j j z j {0, 1} ; i y i {0, 1} 42

43 Nella versione rilassata abbiamo i vincoli: j 0 z j 1 ; i 0 y i 1 SCHEMA DI ALGORITMO ARROTONDAMENTO RANDOMIZZATO MAX SAT Risolvere il problema rilassato ottenendo le soluzioni ottime y LP * e z LP *; per ogni i porre la variabile y i = V con probabilità f((y LP *) i ) y i = F con probabilità 1 f((y LP *) i ). 43

44 Lo schema dà luogo a due diversi algoritmi approssimati in base alla scelta della funzione f, dalla cui combinazione si ottiene un algoritmo con rapporto di approssimazione 4/3. 44

45 ALGORITMO 1 Esegui lo schema di algoritmo con f((y LP *) i ) = 1/2. L ALGORITMO 1 fornisce una soluzione randomizzata 2-approssimata. DIMOSTRAZIONE Se la clausola C j ha k variabili abbiamo p jk = Prob [C j con k variabili è soddisfatta] = 1 1/2 k Per ogni j e ogni k, p jk 1/2. Sia W il peso totale delle clausole soddisfatte dall algoritmo e sia E[W] il suo valore atteso. Sia W* il valore della soluzione ottima. E[W] = Σ j w j p jk 1/2 Σ j w j 1/2 W*. QED 45

46 Per ottenere una soluzione 2-approssimata deterministica è possibile derandomizzare il procedimento con il metodo delle probabilità condizionate. Si osservi che, supponendo di aver assegnato già i valori di verità alle variabili x 1, x 2,, x n-1, abbiamo che E[W x 1, x 2,, x n-1 ] = E[W x 1, x 2,, x n-1, x n =V] Prob {x 1 =V} + E[W x 1, x 2,, x n-1, x n =F] Prob {x 1 =F} = 1/2 (E[W x 1, x 2,, x n-1, x n =V] + E[W x 1, x 2,, x n-1, x n =F]) max {E[W x 1, x 2,, x n-1, x n =V], E[W x 1, x 2,, x n-1, x n =F]} 46

47 Poniamo ora x n = V se E[W x 1, x 2,, x n-1, x n =V] E[W x 1, x 2,, x n-1, x n =F]} x n = F altrimenti In altre parole scegliamo x n =V se la somma dei valori delle clausole in cui compare x n è della somma dei pesi delle clausole in cui compare x n (si noti l analogia con l algoritmo GREEDY SAT). Otteniamo così un assegnazione completa di valori di verità alle variabili x 1, x 2,, x n-1, x n con la seguente proprietà. Se W è il peso totale delle clausole soddisfatte W E[W x 1, x 2,, x n-1 ]. 47

48 Procedendo a ritroso possiamo fare la stessa scelta per quanto riguarda il valore di verità da assegnare a x n-1, x n-2, ecc. Una volta che a tutte le variabili è stato assegnato un valore abbiamo W E[W] 1/2 W* In questo modo otteniamo un algoritmo deterministico che ha prestazioni almeno tanto buone quanto quelle dell algoritmo randomizzato originario. 48

49 ALGORITMO 2 Esegui lo schema di algoritmo con f((y LP *) i ) = (y LP *) i. L ALGORITMO 2 fornisce una soluzione randomizzata tale che E[W] (1-1/e) W*. DIMOSTRAZIONE Se la clausola C j ha k variabili abbiamo p jk = Prob [C j con k variabili è soddisfatta] = 1 Π i Ρj (1- (y LP *) i ) Π i Νj (y LP *) i α k (Σ i Ρj (y LP *) i + Σ i Νj (1 (y LP *) i )) α k (z LP *) j α k (z*) j. dove α k =1-(1-1/k) k 1-1/e. Abbiamo quindi E[W] = Σ j w j p jk (1 1/e)W*. QED 49

50 Anche l algoritmo 2 può essere derandomizzato. I due algoritmi possono essere combinati: ALGORITMO 3 Data una istanza di MAX SAT: risolvere il problema rilassato ottenendo le soluzioni ottime y LP * e z LP *; per ogni i porre la variabile y i = V con probabilità 1/2 y i = F con probabilità 1/2 per ogni i porre la variabile y i = V con probabilità (y LP *) i y i = F con probabilità 1 (y LP *) i scegliere la soluzione migliore. 50

51 L algoritmo 1 è buono per clausole con molti letterali: p k = 1 1/2 k per k=2 abbiamo p k = 3/4 L algorimo 2 è buono per clausole con pochi letterali: p k = 1 (1-1/k) k per k=2 abbiamo p k = 3/4 La combinazione dei due fornisce una soluzione W 3/4 W*. 51

52 UNA TECNICA AD HOC: IL PROBLEMA DEL COMMESSO VIAGGIATORE Nel caso che valga la disuguaglianza triangolare (ΔTSP) il problema del commesso viaggiatore ammette soluzione approssimata. ALGORITMO DI CHRISTOFIDES Sia dato un grafo completo G=(V, E) ed una matrice di distanze d per cui vale la disuguaglianza triangolare. Sia m*(g) il costo del tour ottimo. Determinare un minimo spanning tree T; determinare un matching di costo minimo H tra tutti i nodi di grado dispari di T; creare un multigrafo M costituito da T H; determinare un cammino Euleriano w su M; 52

53 determinare un tour τ immerso in w. 53

54 L algoritmo di Christofides fornisce un cammino τ tale che m(τ) 3/2 m*(g) DIMOSTRAZIONE Innanzitutto osserviamo che un cammino Hamiltoniano è anch esso uno spanning tree cui viene aggiunto un arco di ritorno. Quindi m(t) m*(g). In secondo luogo osserviamo che se τ è un tour, scegliendo tutti i suoi archi pari o tutti i suoi archi dispari abbiamo in ogni caso un matching. Possiamo quindi vedere un tour come la combinazione di due matchings. Se H è un matching minimo abbiamo quindi m(h) 1/2 m*(g). 54

55 Se w è un cammino Euleriano su T H, in base alla disuguaglianza triangolare abbiamo: m(t) m(w) m(t) + m(h) 3/2 m*(g). Si noti che l algoritmo ha costo polinomiale perché il problema di determinare un minimo matching massimale è in genere NP-hard ma è risolubile in tempo polinomiale se il grafo soddisfa la disuguaglianza triangolare. Si noti anche che il valore 3/2 è stretto poiché esistono grafi in cui l algoritmo non può dare un rapporto migliore. QED 55

Complementi ed Esercizi di Informatica Teorica II

Complementi ed Esercizi di Informatica Teorica II Complementi ed Esercizi di Informatica Teorica II Vincenzo Bonifaci 21 maggio 2008 4 Problemi di ottimizzazione: il Bin Packing Il problema bin packing è il seguente: dato un insieme di n oggetti di dimensioni

Dettagli

Problemi, istanze, soluzioni

Problemi, istanze, soluzioni lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un

Dettagli

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I Esercizio 1 Dati n oggetti ed un contenitore, ad ogni oggetto j (j = 1,, n) sono associati un peso p j ed un costo c j (con p j e c j interi positivi). Si

Dettagli

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015 1 Lunedí 20 Aprile 2015 1 Istituto di Analisi dei Sistemi ed Informatica IASI - CNR Rilassamento di un problema Rilassare un problema di Programmazione Matematica vuol dire trascurare alcuni (tutti i)

Dettagli

Euristiche per il Problema del Commesso Viaggiatore

Euristiche per il Problema del Commesso Viaggiatore Sapienza Università di Roma - Dipartimento di Ingegneria Informatica, Automatica e Gestionale Euristiche per il Problema del Commesso Viaggiatore Renato Bruni [email protected] Il materiale presentato

Dettagli

Il problema del commesso viaggiatore

Il problema del commesso viaggiatore Il problema del commesso viaggiatore Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa [email protected] M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Università

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 ([email protected]) i i Dott.ing. Maria Ilaria Lunesu ([email protected])

Dettagli

Parte V: Rilassamento Lagrangiano

Parte V: Rilassamento Lagrangiano Parte V: Rilassamento Lagrangiano Tecnica Lagrangiana Consideriamo il seguente problema di Programmazione Lineare Intera: P 1 min c T x L I Ax > b Cx > d x > 0, intera in cui A = matrice m x n C = matrice

Dettagli

Makespan con set-up dipendenti dalla sequenza. 1/s jk /C max

Makespan con set-up dipendenti dalla sequenza. 1/s jk /C max Makespan con set-up dipendenti dalla sequenza 1/s jk /C max 1/s jk /C max Un tempo di riattrezzaggio (set-up) s jk è richiesto fra il processamento di j e quello di k. In questo caso, C max dipende dalla

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

Algoritmi Approssimanti per -TSP

Algoritmi Approssimanti per -TSP Dispensa del corso di TAA redatta da Amati Di auro Rattà. Algoritmo 5 e APX per il problema Algoritmi Approssimanti per -TSP Definizione (TSP) Il problema del commesso viaggiatore (TSP) è definito come

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

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

8.10 Algoritmi di approssimazione

8.10 Algoritmi di approssimazione 296 Capitolo 8 NP-completezza e approssimazione 8.10 Algoritmi di approssimazione Dimostrare che un problema è NP-completo significa rinunciare a progettare per esso un algoritmo polinomiale di risoluzione

Dettagli

Macchine parallele M 1 M 2 M 3 J 1 J 2 LAVORI J 3 J 4

Macchine parallele M 1 M 2 M 3 J 1 J 2 LAVORI J 3 J 4 Macchine parallele M 1 J 1 J 2 LAVORI M 2 J 3 J 4 M 3 Macchine parallele Scheduling su macchine parallele scorrelate R C max Descrizione del problema n lavori devono essere processati da m macchine diverse

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

La dualità nella Programmazione Lineare

La dualità nella Programmazione Lineare Capitolo 3 La dualità nella Programmazione Lineare 3.1 Teoria della dualità Esercizio 3.1.1 Scrivere il problema duale del seguente problema di Programmazione Lineare: min x 1 x 2 + x 3 2x 1 +3x 2 3 x

Dettagli

Gestione della produzione e della supply chain Logistica distributiva

Gestione della produzione e della supply chain Logistica distributiva Gestione della produzione e della supply chain Logistica distributiva Paolo Detti Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena Convergenza dell algoritmo Se non

Dettagli

4.1 Localizzazione e pianificazione delle base station per le reti UMTS

4.1 Localizzazione e pianificazione delle base station per le reti UMTS esercitazione Ottimizzazione Prof E Amaldi Localizzazione e pianificazione delle base station per le reti UMTS Consideriamo il problema di localizzare un insieme di stazioni radio base, base station (BS),

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

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

LA PROGRAMMAZIONE MATEMATICA (p.m.)

LA PROGRAMMAZIONE MATEMATICA (p.m.) LA PROGRAMMAZIONE MATEMATICA (p.m.) Un problema di programmazione matematica è un problema di ottimizzazione riconducibile alla seguente espressione generale: ricercare i valori delle variabili x 1, x

Dettagli

Il Branch & Bound. Definizione 1. Sia S R n. La famiglia S = {S 1, S 2,..., S k S} tale che S 1 S 2 S k = S viene detta suddivisione di S.

Il Branch & Bound. Definizione 1. Sia S R n. La famiglia S = {S 1, S 2,..., S k S} tale che S 1 S 2 S k = S viene detta suddivisione di S. Il Branch & Bound Il metodo Branch & Bound è una tecnica che permette di risolvere all ottimo un generico problema di Programmazione Lineare Intera. Tale metodo si basa su due concetti cardine: quello

Dettagli

Introduzione al Metodo agli Elementi Finiti (FEM) (x, y) Γ Tale formulazione viene detta Formulazione forte del problema.

Introduzione al Metodo agli Elementi Finiti (FEM) (x, y) Γ Tale formulazione viene detta Formulazione forte del problema. Introduzione al Metodo agli Elementi Finiti (FEM) Consideriamo come problema test l equazione di Poisson 2 u x 2 + 2 u = f(x, y) u = f y2 definita su un dominio Ω R 2 avente come frontiera la curva Γ,

Dettagli

Il problema del commesso viaggiatore e problemi di vehicle routing

Il problema del commesso viaggiatore e problemi di vehicle routing Il problema del commesso viaggiatore e problemi di vehicle routing Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, 56127 Pisa [email protected] http://www.di.unipi.it/~galli 2 Dicembre

Dettagli

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio Algoritmi Greedy Tecniche Algoritmiche: tecnica greedy (o golosa) Idea: per trovare una soluzione globalmente ottima, scegli ripetutamente soluzioni ottime localmente Un esempio Input: lista di interi

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

Ottimizzazione su grafi: massimo flusso (parte 1) Ottimizzazione su grafi:massimo flusso (parte 1) p. 1/33

Ottimizzazione su grafi: massimo flusso (parte 1) Ottimizzazione su grafi:massimo flusso (parte 1) p. 1/33 Ottimizzazione su grafi: massimo flusso (parte 1) Ottimizzazione su grafi:massimo flusso (parte 1) p. 1/33 Ottimizzazione su grafi:massimo flusso (parte 1) p. 2/33 Reti di flusso Una rete di flusso è una

Dettagli

Grafi pesati Minimo albero ricoprente

Grafi pesati Minimo albero ricoprente Algoritmi e Strutture Dati Definizioni Grafi pesati Minimo albero ricoprente Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è un albero; T contiene

Dettagli

Rilassamento Lagrangiano

Rilassamento Lagrangiano RILASSAMENTO LAGRANGIANO 1 Rilassamento Lagrangiano Tecnica più usata e conosciuta in ottimizzazione combinatoria per il calcolo di lower/upper bounds (Held and Karp (1970)). Si consideri il seguente problema

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione

Dettagli

Introduzione ai grafi. Introduzione ai grafi p. 1/2

Introduzione ai grafi. Introduzione ai grafi p. 1/2 Introduzione ai grafi Introduzione ai grafi p. 1/2 Grafi Un grafo G é costituito da una coppia di insiemi (V,A) dove V é detto insieme dei nodi e A é detto insieme di archi ed é un sottinsieme di tutte

Dettagli

Algoritmi approssimati

Algoritmi approssimati Capitolo Algoritmi approssimati. Definizioni e concetti preliminari Molto spesso nelle applicazioni ci si trova di fronte alla necessità di risolvere problemi N P -completi e garantire l ottimalità della

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) protocolli reti IP memorizzazione compatta di

Dettagli

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 . Cammini ottimi E. Amaldi Fondamenti di R.O. Politecnico di Milano .. Cammini minimi e algoritmo di Dijkstra Dato un grafo orientato G = (N, A) con una funzione di costo c : A c ij R e due nodi s e t,

Dettagli

Capitolo 8: Teoria della complessitá

Capitolo 8: Teoria della complessitá Capitolo 8: Teoria della complessitá 1 La Teoria della calcolabilitá considera aspetti qualitativi della soluzione di problemi. Distingue il calcolabile dal non calcolabile. La Teoria della complessitá

Dettagli

Programmazione Lineare Intera. Programmazione Lineare Intera p. 1/4

Programmazione Lineare Intera. Programmazione Lineare Intera p. 1/4 Programmazione Lineare Intera Programmazione Lineare Intera p. 1/4 Programmazione Lineare Intera Problema di PLI in forma standard: max cx Ax = b x 0, x I n I insieme degli interi. Regione ammissibile:

Dettagli

Indice. 1 Introduzione... 1

Indice. 1 Introduzione... 1 Indice 1 Introduzione............................................... 1 2 Esempi di modelli......................................... 7 2.1 Problema della dieta.................................... 7 2.2

Dettagli

Il modello duale. Capitolo settimo. Introduzione

Il modello duale. Capitolo settimo. Introduzione Capitolo settimo Il modello duale Introduzione Il modello duale e la teoria della dualità assumono una grande importanza nella teoria della programmazione matematica. In questo testo i modelli primale

Dettagli

11.4 Chiusura transitiva

11.4 Chiusura transitiva 6 11.4 Chiusura transitiva Il problema che consideriamo in questa sezione riguarda il calcolo della chiusura transitiva di un grafo. Dato un grafo orientato G = hv,ei, si vuole determinare il grafo orientato)

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

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

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

COMPITO DI RICERCA OPERATIVA. max 5 2x 1 + 3x 2 x 3 = 2 + x 1 5x 2 x 4 = 5 + x 2. x 5 = 1 + x 1 x 2 COMPITO DI RICERCA OPERATIVA ESERCIZIO. ( punti) La riformulazione di un problema di PL rispetto alla base B = {x, x, x } è la seguente: max 2x + x 2 x = 2 + x x 2 x = + x 2 x = 2 + x + x 2 x, x 2, x,

Dettagli

2.1 Pianificazione multiperiodo della produzione energetica. 2.2 Confronto tra formulazioni per il problema dell albero di supporto di costo minimo

2.1 Pianificazione multiperiodo della produzione energetica. 2.2 Confronto tra formulazioni per il problema dell albero di supporto di costo minimo . Pianificazione multiperiodo della produzione energetica Consideriamo il problema di approvvigionamento energetico dell Italia su un orizzonte di T = 0 anni. Sia d t il consumo di potenza elettrica stimato

Dettagli

3.6 Metodi basati sui piani di taglio

3.6 Metodi basati sui piani di taglio 3.6 Metodi basati sui piani di taglio Problema generale di Programmazione Lineare Intera (PLI) con A matrice m n e b vettore n 1 razionali min{ c t x : x X = {x Z n + : Ax b} } Sappiamo che esiste una

Dettagli

PROGRAMMAZIONE LINEARE E DUALITA'

PROGRAMMAZIONE LINEARE E DUALITA' PROGRAMMAZIONE LINEARE E DUALITA' 1) Dati i punti di R 2 (1, 2), (1, 4), (2, 3), (3, 5), (4, 1), (4, 2), (5, 5), (6, 2), (6, 5). Determinare graficamente: A - L'involucro convesso di tali punti. B - Quali

Dettagli

Operazioni tra matrici e n-uple

Operazioni tra matrici e n-uple CAPITOLO Operazioni tra matrici e n-uple Esercizio.. Date le matrici 0 4 e dati λ = 5, µ =, si calcoli AB, BA, A+B, B A, λa+µb. Esercizio.. Per ognuna delle seguenti coppie di matrici A, B e scalari λ,

Dettagli

Sommario. Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP

Sommario. Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP Sommario Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP I conjecture that there is no good algorithm for the traveling salesman problem. My reasons are the same

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

Grafi e reti di flusso

Grafi e reti di flusso Grafi e reti di flusso Molti problemi di ottimizzazione sono caratterizzati da una struttura di grafo: in molti casi questa struttura emerge in modo naturale, in altri nasce dal particolare modo in cui

Dettagli

Esercizi di PLI. a cura di A. Agnetis. Risolvere il seguente problema di PLI con l algoritmo dei piani di Gomory:

Esercizi di PLI. a cura di A. Agnetis. Risolvere il seguente problema di PLI con l algoritmo dei piani di Gomory: Esercizi di PLI a cura di A. Agnetis Risolvere il seguente problema di PLI con l algoritmo dei piani di Gomory: max z = 40x + 24x 2 + 5x + 8x 4 8x + 6x 2 + 5x + 4x 4 22 x i 0 x i intero Si tratta di un

Dettagli

ASSEGNAMENTO DELLE OPERAZIONI DI TAGLIO NELLA PRODUZIONE DI CAPI DI ABBIGLIAMENTO

ASSEGNAMENTO DELLE OPERAZIONI DI TAGLIO NELLA PRODUZIONE DI CAPI DI ABBIGLIAMENTO ASSEGNAMENTO DELLE OPERAZIONI DI TAGLIO NELLA PRODUZIONE DI CAPI DI ABBIGLIAMENTO Lo scenario produttivo Una nota azienda produce capi di abbigliamento per l alta moda Ogni capo è costituito da vari pezzi

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

ESERCIZI SULLA TECNICA BACKTRACKING e BRANCH & BOUND

ESERCIZI SULLA TECNICA BACKTRACKING e BRANCH & BOUND ESERCIZI SULLA TECNICA BACKTRACKING e BRANCH & BOUND 1. [ STRINGHE] Scrivere in pseudo-codice una procedura che, preso in input un intero n, stampi tutte le stringhe di lunghezza minore o uguale ad n sull

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

Rilassamento Lagrangiano

Rilassamento Lagrangiano Rilassamento Lagrangiano AA 2009/10 1 Rilassamento Lagrangiano Tecnica più usata e conosciuta in ottimizzazione combinatoria per il calcolo di lower/upper bounds (Held and Karp (1970)). Si consideri il

Dettagli

Introduzione ai grafi

Introduzione ai grafi TFA A048 Anno Accademico 2012-13 Outline Cenni storici sui grafi Nozioni introduttive: cammini, connessione, alberi, cicli Cammini di costo minimo Origini storiche La nascita della teoria dei grafi risale

Dettagli

non solo otteniamo il valore cercato per la validità della (1.4), ma anche che tale valore non dipende da

non solo otteniamo il valore cercato per la validità della (1.4), ma anche che tale valore non dipende da NOTE INTEGRATIVE PER IL CORSO DI ANALISI MATEMATICA 2 ANNO ACCADEMICO 2012/13 NOTE SULLA CONTINUITÀ UNIFORME D.BARTOLUCCI, D.GUIDO Sia f(x) = x 3, x [ 1, 1]. Si ha 1. La continuità uniforme x 3 y 3 = x

Dettagli