Algoritmi approssimati
|
|
|
- Anna Vitale
- 8 anni fa
- Visualizzazioni
Transcript
1 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 soluzione richiederebbe un tempo di calcolo troppo elevato. Pensiamo, a titolo di esempio, allo scheduling dei lavori giornalieri in una data fabbrica, sarebbe inaccettabile se per calcolare una soluzione si impiegasse quasi mezza giornata. Nasce allora la necessità di avere a disposizione algoritmi approssimati, la cui complessità sia generalmente bassa, purché si abbia una garanzia sull entità dell errore commesso. Si introducono allora le seguenti definizioni: Definizione. Sia c il valore della soluzione fornita dall algoritmo aspprossimato, c il valore della soluzione ottima, allora chiamiamo fattore di approssimazione quella quantità ρ(n) tale che { } c max c, c ρ(n), c dove n è la dimensione dell istanza del problema. Diremo che l algoritmo è ρ(n) approssimato. Definizione 2. Gli algoritmi tali per cui ρ(n) è costante si dicono schemi di approssimazione. Se il fattore di approssimazione è unitario allora la soluzione trovata è quella ottima. In generale in uno schema di approssimazione si vuole trovare una soluzione ( + ε) approssimata, con ε costante. Intuitivamente ci si aspetta che più ε è piccolo più il tempo di calcolo salga. Definizione 3. Se, per ogni ε fissato, l algoritmo è polinomiale in n, allora si ha uno schema di approssimazione polinomiale (PTAS). Esempio : O(n 2 3ε ). Definizione 4. Se l algoritmo è polinomiale sia in ε che in n, si ha uno schema di approssimazione pienamente polinomiale (FPTAS). ( Esempio : O n ( ) ) 3 2 ε.
2 2 CAPITOLO. ALGORITMI APPROSSIMATI.2 Scheduling di lavori Siano dati: m macchine identiche, n lavori, t j, j =,.., n il tempo di processamento del j-esimo lavoro, inoltre i lavori non siano partizionabili (altrimenti il problema sarebbe banale) e non ci sia nessun vincolo di precedenza o di finestra temporale. Indicato con t i l ineieme dei lavori assegnati alla macchina i, il problema consiste nell assegnare i lavori alle macchine in modo tale da minimizzare il tempo impiegato, ovvero, detto T i = j A i t j il tempo di utilizzo della i-esima macchina, si vuole disporre i lavori in modo da avere In gergo si dice che si vuole minimizzare il makespan. T = min max i=,..,m T i. (.) Figura.: Scheduling di lavori.2. Algoritmo greedy Una prima idea che verrebbe in mente per risolvere il problema è assegnare i lavori nell ordine di input sempre alla macchina più scarica. Formalizzando
3 .2. SCHEDULING DI LAVORI 3 Greedy(A) for i to m 2 do A[i] 3 T[i] 0 4 for j to n 5 do let k = arg min{t [i] i =,.., m} 6 A[k] A[k] {j} 7 T[k] T[k]+t j Per quanto riguarda la complessità si ricava facilmente che il primo ciclo for costa O(m), mentre il secondo costa O(nφ(m)), dove φ(m) è il costo della determinazione del minimo. Il secondo termine è dunque quello che determina la complessità. Analisi del fattore di approssimazione Sia T il valore della soluzione ottima e T il valore trovato dall algoritmo. Ovviamente sarà T T > 0. A questo punto osserviamo che T n t j, (.2) m cioè il tempo ottimo è maggiore o uguale della somma dei tempi di tutti i lavori diviso il numero delle macchine disponibili (questa sarebbe la soluzione ottima se i lavori fossero partizionabili); inoltre j= T max t k. (.3) A questo punto (si veda la figura (.2)) sia n i la macchina più carica, e sia t j l ultimo lavoro assegnato alla macchina che fornisce la soluzione. Allora dopo il lavoro j se ne possono assegnare altri, ma T non verrà mai superato. Si sa inoltre che n i prima dell assegnazione era la macchina più scarica. A questo punto, siccome le altre macchine hanno carico maggiore di T t j, abbiamo m T k m(t t j ), k= cioè, sfruttando la (.2) e sapendo che non tutti i lavori sono stati ancora assegnati, T t j m T k n t l T, (.4) m m e, utilizzando la (.3) k= l= t j T T = (T t j ) + t j 2T, quindi il fattore di approssimazione è 2. Osserviamo che il punto debole dell algoritmo è costituito da un istanza in cui arrivano lavori brevi tutti uguali e alla fine un lavoro molto lungo. La soluzione ottima mette il lavoro più lungo da solo mentre il nostro algoritmo è costretto a metterlo in coda a una serie di lavori brevi. Qualora ci siano m(m ) lavori di durata unitaria e un lavoro lungo m l errore che si commette è quasi pari a due.
4 4 CAPITOLO. ALGORITMI APPROSSIMATI Figura.2: Scheduling di lavori (2).2.2 Algoritmo greedy2 L alternativa sarebbe considerare i lavori in ordine decrescente per durata (con un contributo complessivo di complessità pari a O(n lg n) per l ordinamento). Supponiamo n > m, altrimenti l algoritmo fornisce la soluzione ottima. Essendo i lavori ordinati, T t m + t m+ e quindi T 2t m+. (.5) Sia t j la durata dell ultimo lavoro assegnato alla macchina che fornisce la soluzione n i, allora deve essere j m + perché ci deve essere una macchina con almeno due lavori (n m per ipotesi), e quindi t j t m+. Otteniamo allora, grazie alla (.5) e alla (.4) T = (T t j ) + t j T + 2 T = 3 2 T ρ(n) 3 2. (.6).3 Localizzazione di centri commerciali Vi sia un area geografica con dislocate n città. Si vogliono costruire k < n centri commerciali in modo da minimizzare la massima distanza tra ogni città e il centro più vicino. Si introduca una funzione distanza che soddisfi le seguenti proprietà: per ogni x, y, z, dist(x, x) = 0, dist(x, y) = dist(y, x), dist(x, y) + dist(y, z) dist(x, z). Si indica con C l insieme delle località in cui si costruisce un centro commerciale e C la soluzione ottima. Definizione 5. C è una r-copertura se min dist(s, c) r s S, c C
5 .3. LOCALIZZAZIONE DI CENTRI COMMERCIALI 5 Figura.3: Errore con S insieme delle città. Si osserva subito che l idea greedy di mettere il primo centro nel baricentro delle città e i successivi nei punti che riducono il raggio di copertura non è un idea buona perché, ad esempio, se le città fossero raccolte in due nuclei metropolitani, si troverebbe una soluzione molto scorretta (vedi figura (.3))..3. Algoritmo greedy Si supponga di conoscere a priori il raggio di copertura ottimo, si vuole un algoritmo che sbagli al massimo di 2r. A tal proposito si decida di posizionare i centri solo in punti di S, in modo da ottenere C S. Con questa scelta si raggiunge il risultato voluto. Lo pseudocodice è il seguente: Greedy(r) S S 2 C 3 while S 4 do let s S 5 C C {s} 6 S S \ {i : dist(i, s) 2r} 7 if C > k 8 then non esiste una soluzione con copertura r Nel ciclo while di riga 3, si considerano tutte le città che si trovano a distanza minore o uguale di 2r dalla città s considerata (a caso) e le si rimuovono dall insieme dei centri commerciali serviti. Il risultato chiave è il seguente: se, al termine dell algoritmo sono stati utilizzati un numero di centri commerciali maggiore di K (il numero di centri a disposizione), allora l ottimo è maggiore di r. Cioè, se l ottimo è minore o uguale di r, la soluzione trovata dall algoritmo greedy ha raggio di copertura minore o uguale a 2r. Lemma. Se C > k, allora qualsiasi soluzione ottima C con C k ha raggio di copertura maggiore di r.
6 6 CAPITOLO. ALGORITMI APPROSSIMATI Dimostrazione. Per ipotesi si ha che C è soluzione di copertura 2r e C è la soluzione ottima. Se esiste una soluzione ottima C con C k e raggio di copertura minore o uguale a r, ogni centro c C appartiene a uno e un solo cerchio di raggio 2r centrato su una città di C, che implica C k. Infatti se esistessero 2 centri c e c di C tali che dist(c, c ) r e dist(c, c ) r allora, grazie alla disuguaglianza triangolare, si conclude che 2r dist(c, c ) + dist(c, c ) dist(c, c ) > 2r, dove l ultima disuguaglianza segue dall algoritmo. Contraddizione. Un approccio per ovviare alla mancata conoscenza di r può essere effettuare una ricerca binaria tramite metodo di bisezione. Ne segue che la complessità totale sarà moltiplicata per un fattore logaritmico..3.2 Algoritmo greedy2 Sia dist(s, C) = min dist(s, c). c C Si propone ora un secondo algoritmo: Greedy2 C {s} (s città qualsiasi) 2 while C < k 3 do select s S : s = arg max{dist(s, C), s S} 4 C C {s} L algoritmo lavora in questo modo: l insime C viene inizializzato con una città arbitraria. In seguito alla soluzione viene aggiunta la città che di volta in volta è più lontana dall insieme C. Si ha allora il seguente Lemma 2. greedy2 fornisce una soluzione con raggio di copertura minore o uguale a 2r, con r raggio di copertura della soluzione ottima. Cioè, ρ(n) = 2. Dimostrazione. Per assurdo. Sia s una città qualsiasi a distanza maggiore di 2r dal centro più vicino in C. Siano C C e c il centro che greedy2 aggiunge a C ad un determinato passo. Allora c dista almeno 2r da C. Inoltre, per ipotesi, dist(s, C) > 2r implica dist(c, C ) dist(s, C ) dist(s, C) > 2r. Si ricade allora nella dimostrazione del lemma. Contraddizione. Questo algoritmo fornisce quindi una soluzione equivalente per fattore di approssimazione a quella dell algoritmo greedy, ma prescinde dalla conoscenza a priori del raggio di copertura r.
7 .4. IL PROBLEMA DEL SET COVERING 7.4 Il problema del Set Covering Si consideri un insieme X = {x,..., x n } di categorie lavorative (metalmeccanici, autoferrotranvieri...) ed un insieme F = {S,..., S l } di rappresentanti sindacali, ognuno dei quali puó rappresentare differenti categorie allo stesso momento. Ogni elemento F i di F è quindi un sottoinsieme di X. Il problema del Set Covering consiste nel convocare il minor numero possibile di rappresentanti sindacali, in modo tale che ogni categoria lavorativa sia rappresentata da almeno un sindacalista. Formalmente, il problema è il seguente: sia X = {X,..., X n } un insieme assegnato, e sia F = {S,...S l } un insieme di sottoinsiemi di X. Trovare un sottoinsieme di F, chiamato C, che abbia le seguenti proprietà: S i C S i = X La cardinalità di C sia minima. Questo problema è N P Hard. Per la sua risoluzione si può ricorrere quindi un algoritmo greedy approssimato. Una soluzione C sarà perciò tanto migliore quanto più la sua cardinalità è piccola, ovvero quando C C è piccolo. L algoritmo Greedy-Set-Cover proposto lavora nel seguente modo: alla prima iterazione si prende l insieme S 0 di cardinalità massima, ed ai passi successivi si prende l insieme S i che comprende il maggior numero possibile di elementi di X non ancora coperti. Nell esempio di figura.4 l insieme generato dall algoritmo è il seguente: C = {S, S 4, S 5, S 3 }, mentre la soluzione ottima è costituita dall insieme C = {S 3, S 4, S 5 }, con errore relativo pari a 4 3. Lo pseudocodice è quindi il seguente: Greedy-Set-Cover(X, F ) U {X} 2 C 3 while U 4 do scegli un S F che massimizza S U 5 U U \ S 6 C C {S} 7 return C.4. Analisi del fattore di approssimazione Purtroppo l algoritmo greedy appena fornito non ha un fattore di approssimazione ρ(n) costante: esso dipende dalla dimensione del problema in maniera logaritmica, e quindi la qualità della soluzione approssimata sarà tanto peggiore quanto più il problema è grande. L idea della dimostrazione è quella di distribuire il costo (unitario) di ogni sottoinsieme della soluzione C sugli elementi che esso aggiunge alla copertura. Nell esempio di figura,.4 l insieme S aggiunge alla copertura 6 nuovi elementi, e quindi il peso di ogni singolo elemento aggiunto alla copertura da S sarà 6, il peso degli elementi aggiunti da S 4 sarà 3 e così via. Ad ogni elemento dell insieme X viene dunque assegnato un peso p j, j =,..., n.
8 8 CAPITOLO. ALGORITMI APPROSSIMATI S S5 /6 S4 /6 /6 /6 /6 /6 S3 /3 /3 /2 /3 S6 /2 S2 Figura.4: Esempio di SetCovering. La soluzione fornita dall algoritmo Greedy-Set-Cover è C = {S, S 4, S 5, S 6 }. Nella figura è riportata anche la pesatura indotta dalla soluzione C. Per definizione il valore della soluzione C sarà dato da: C = j X p j (.7) dove, essendo i l indice dell insieme S i che include l elemento j nella copertura, p j = S i \ ( i k= S k) (.8) Si consideri ora la soluzione ottima C. Essa, essendo una soluzione ammissibile, comprende tutti gli elementi di X almeno una volta. Si ha dunque che: C = p j p j (.9) j X s C j S poiché uno stesso elemento di X può appartenere a più elementi di C. risultato chiave è dunque il seguente: Lemma 3. Sia S un qualsiasi elemento di F. Allora la pesatura indotta dalla soluzione C dell algoritmo Greedy-Set-Cover soddisfa la sequente disuguaglianza: p j H( S ) (.0) j S dove H(x) è la serie armonica arrestata ad x, cioè H(x) = x j= j. Dimostrazione. Sia u i = S (S... S i ) la quantità di elementi di S scoperti dopo che gli insiemi S,...S i sono stati scelti dall algoritmo. La differenza u i Il
9 .4. IL PROBLEMA DEL SET COVERING 9 u i è quindi la quantità di elementi di S scelti nell iterazione i. u 0 è quindi S. Sia k la prima iterazione in cui u k = 0, ovvero nella quale sono stati scelti gli ultimi elementi di S rimasti scoperti. Ovviamente u i u i. Si noti che p j = j S k j= u i u i k S i (S,..., S i ) u i u i S (S,..., S i ) j= (.) poiché, se all iterazione i l algoritmo sceglie l insieme S allora si ha l uguaglianza, mentre se l algoritmo sceglie un altro insieme, esso ricopre un numero maggiore di elementi, e quindi il denominatore con S al posto di S i è più piccolo. Si ha dunque la seguente catena di disuguaglianze: j S p j = = = = k j= u i u i S (S,..., S i ) k (u i u i ) j= k u i u j= j=u i i+ k u i j= j=u i+ k i= ( ui j= j ui j j= u i ) j k (H(u i ) H(u i )) i= = H(u 0 ) H(u k ) = H(u 0 ) H(0) = H(u 0 ) = H( S ) (.2) Corollario. Il fattore di approssimazione dell algoritmo Greedy-Set-Cover è: ρ(n) = H(max{ S : S F }) = H( S ). (.3) Dimostrazione. Grazie al Lemma 3 si ha: C = p j p j H(S) C H( S ) (.4) j X S C j S S C e quindi C C H( S ) = ρ(n) (.5)
10 0 CAPITOLO. ALGORITMI APPROSSIMATI Siccome a priori la cardinalità dell insieme più grande non è limitata e siccome la serie armonica è asintotica al logaritmo di n per n grande, nella pratica Greedy-Set-Cover ha un fattore di approssimazione pari a log(n). Infine, l algoritmo può essere facilmente esteso al caso in cui ogni elemento di F ha un peso (Weighted Set Covering): la copertura dovrà essere quella di peso complessivo minimo..5 Il problema del Vertex Cover Si consideri un grafo G = (V, E) non orientato, con dei pesi w i 0, i V sui vertici del grafo. Si vuole trovare un insieme di nodi S V tale che: Tutti i lati del grafo sono incidenti in almeno un vertice di S, cioè (i, j) E, i j S W (S ) = i S w i è minimo tra tutte le soluzioni ammissibili. Ad esempio, si vuole presidiare tutte le vie di una città minimizzando il costo dei checkpoint: le vie sono i lati di un grafo mentre le posizioni dei checkpoint si scelgono tra i vertici. A ben riflettere, questo problema è riconducibile al Weighted-Set-Covering, se si considera la stella uscente S i da ciascun vertice i come insieme F e l insieme degli archi E come insieme X. In realtà è possibile trovare un algoritmo il cui fattore di approssimazione è costante, pari a 2, inventato ad hoc per il problema di Vertex Covering, sfruttando il fatto di lavorare su un grafo. Il principio è il seguente: si cerca di trovare una pesatura (pricing) per i lati del grafo, funzione della pesatura iniziale sui vertici, che abbia leache seguenti proprietà: Per ogni arco, p e 0, Per ogni vertice del grafo, la somma dei pesi degli archi incidenti è minore o uguale del peso di quel vertice, cioè: i V, e S i p e w i. Data quindi una pesatura degli archi, la somma dei pesi sugli archi è un lower bound della soluzione ottima S. Infatti: p e p e w i (.6) e E i S e S i i S Definizione 6. Si definisce un vertice i pagato se e S i p e = w i. L algoritmo proposto (Vertex-Cover-Approx) lavora quindi nel seguente modo: si considerano in sequenza una sola volta tutti i lati del grafo (non importa l ordine) e, partendo dal prezzo nullo per tutti gli archi, si alzano i pesi degli archi il più possibile fino a pagare almeno un nodo incidente. Si consideri l esempio di figura.5: si scorrono gli archi in ordine lessicografico. Al primo passo si pesa l arco (, 2) con un peso p,2 = 2, in modo da pagare il nodo 2. Si passa poi all arco (, 6) e si assegna un peso p,6 = in modo da pagare il nodo e così via. Per il dettaglio dei pesi assegnati dall algoritmo si veda la tabella..
11 .5. IL PROBLEMA DEL VERTEX COVER w=3 w2=2 w3=2 w4=3 w5=2 w6=3 4 w7=2 w8=6 Figura.5: Esempio di Vertex Covering. A lato sono i riportati i pesi dei nodi. arco peso assegnato (,2) 2 (,6) (,7) 0 (,8) 0 (2,4) 0 (2,8) 0 (3,8) 2 (3,4) 0 (4,5) 2 (4,6) (6,8) (7,8) 2 Tabella.: I pesi assegnati dall algoritmo Vertex-Cover-Approx nell esempio di figura.5
12 2 CAPITOLO. ALGORITMI APPROSSIMATI La soluzione sarà composta dall insime dei vertici pagati S = {7,, 2, 3, 5, 4, 6}. Si noti che sono stati inclusi ben 7 degli 8 nodi del grafo ma è stato escluso il nodo 8, che quello con peso maggiore. Lo pseudocodice dell algoritmo è il seguente: Vertex-Cover-Approx(G(V, E), W ) for each e E, p[e] 0 2 S 3 while (i, j) E tale che né i né j sono pagati, Aumenta p e fino al massimo possibile, 4 do p e p e + min{w j e S i p e, w j e S j p e } 5 S S {i nodi pagati al passo 4} 6 return S.5. Valutazione del fattore di approssimazione dell algoritmo Vertex-Cover-Approx Lemma 4. Vertex-Cover-Approx ha grado di approssimazione 2. Dimostrazione. Siano S ed S, rispettivamente, la soluzione ottenuta con l algoritmo Vertex-Cover-Approx e la soluzione ottima. In particolare, S è copertura di vertici se p e w i. (.7) e E i S Inoltre, si ricorda che un nodo è pagato se e E i p e = w i, (.8) dove E i E è l insieme degli archi incidenti nel nodo i. Al fine di dimostrare che l algoritmo ha grado di approssimazione 2, è necessario provare che i S w i 2 e E Quindi si cerca una maggiorazione di i S w i. Dalla (.8), si ha che p e. w i = p e 2 p e, i S i S e E i e E dove la disuguaglianza è dovuta al fatto che, al limite (caso pessimo), con il termine e E i p e si contano due volte gli archi. A questo punto, utilizzando la (.7), la precedente diventa Di conseguenza, ρ = 2. w i 2 i S i S w i.
13 .5. IL PROBLEMA DEL VERTEX COVER Un approccio basato sulla programmazione lineare Si consideri la seguente formulazione di programmazione lineare intera del problema di Vertex Cover. Definendo la variabile binari { se i S, x i = 0 altrimenti, la formulazione del problema diventa: min i V w i x i, (.9) con i vincoli: x i + x j (i, j) E con i j (.20) x i {0, } i V. (.2) Per la risoluzione di questo problema si utilizza un algoritmo euristico basato sul rilassamento lineare. In questo modo, la variabile intera x i diventa continua, ossia x i [0, ]. Considerata la soluzione ottima del rilassato continuo, l algoritmo ha la seguente forma: for each i V 2 do if x i 2 3 then S S {i} Si noti che per ogni vincolo (.20), si garantisce che il valore di almeno una delle due variabili è almeno /2. Di conseguenza, il vincolo (.20) è soddisfatto e la correttezza dell algoritmo è assicurata, cioè almeno uno dei vertici estremi di un lato appartiene alla soluzione. Per quanto riguarda invece la valutazione del fattore di approssimazione, si procede nel seguente modo. Innanzitutto si osservi che, definita w LP la soluzione del problema rilassato, w LP = min i V w i x i w, (.22) dove w = i S w i è il valore della soluzione ottima. Inolte, al minimo, w LP w, (.23) 2 dove w = i S w i è il valore della soluzione ottenuta con l algoritmo approssimato. Questo è vero perchè al minimo il rilassamento continuo impone x i = /2 i S. Ora, unendo la (.22) e la (.23), si ottiene 2 w w = ρ = 2. Notiamo infine che, al momento, non esiste un algoritmo approssimato per il problema della copertura di vertici con grado di approssimazione minore di 2. La ricerca di un algoritmo con questa caratteristica è un problema ancora aperto.
14 4 CAPITOLO. ALGORITMI APPROSSIMATI.6 PTAS per il problema dello zaino binario Dati n oggetti, con valore v i e peso w i (i =,..., n), ed assegnata una capacità w, si cerca un sottoinseme S {,..., n} tale che w i w, i S e che massimizzi i S v i. Considerando il sottoinsieme {,..., i}, la somma dei suoi pesi è data da w. Se si riesce a costruire un appropriato grafo aciclico, il problema può essere risolto in termini di cammino minimo. Figura.6: Generico stato i. Il generico stato del grafo sarà costituito dalla coppia (i, w), nella quale i rappresenta l i-esimo oggetto e w è il peso accumulato fino a quel punto. Di conseguenza, gli stati iniziale e finale sono, rispettivamente, (0, 0) e (n, w). A questo punto il problema diventa quello di trovare il cammino minimo da (0, 0) a (n, w) e la complessità dell algoritmo che lo risolve, essendo il grafo aciclico, è O(nw). In alternativa, come generico stato del grafo si può considerare la coppia (i, v), dove v rappresenta il valore accumulato fino a quel punto. In particolare, il peso di ogni arco rappresenta il costo di transizione tra i due stati. In questo grafo il valore v è dato da v = i S v i. Cercare l albero dei cammini minimi significa raggingere le foglie dalla radice (0, 0) scegliendo il cammino che ha valore massimo ma costo inferiore o uguale a w. La complessità dell algoritmo è O(nv) (non polinomiale dal momento che dipende da v che è ingonita del problema), che, stimando il valore v con v nv, dove v = max v i, diventa O(n 2 v ).
15 .6. PTAS PER IL PROBLEMA DELLO ZAINO BINARIO 5 Figura.7: Generico stato i. Figura.8: Grafo aciclico degli stati.
16 6 CAPITOLO. ALGORITMI APPROSSIMATI Una possibile strategia per ridurre la complessità dell algoritmo e per renderlo approssimato è quella di dividere i valori v i per una quantità fissata, ad esempio 0, e scartare le unità. In questo modo si riduce notevolmente la dimensione del grafo. Se ε è il fattore di approssimazione richiesto, si riscalano tutte le quantità rispetto a questo fattore per mezzo della trasformazione Di conseguenza, i valori v i diventano v = ε n v. (.24) ṽ i = v i v. (.25) v Questi valori ṽ i sono detti riposizionamento di v i e sono tutti multipli di v. Introduciamo inoltre i valori ˆv i = ṽi, v (.26) ˆv = v v = n v v ε = n ε. (.27) Il valore ˆv rappresenta la dimensione del nuovo grafo ( grafo riscalato ). Quindi, grazie alla (.27), la complessità dell algoritmo diventa polinomiale, ossia Knapsack-Approx(ε) v ε n v 2 for i to n 3 do ˆv i = vi v 4 S Knapsack(ˆv i, w i, w) 5 return S O(n 2ˆv ( ) n 3 ) = O. (.28) ε.6. Valutazione del fattore di approssimazione dell algoritmo Knapsack-Approx(ε) Siano S ed S, rispettivamente, una soluzione ammissibile e la soluzione fornita dall algoritmo Knapsack-Approx(ε). S, essendo soluzione ammissibile, soddisfa la relazione i S w i w. (.29) Inoltre valgono le seguenti v i ṽ i v i + v, (.30) v i v = ṽ, (.3) i S dove l uguaglianza è motivata dal fatto che v è invariante alla trasformazione (.25). Ora, limitando inferiormente e superiormente i S ṽi ed utilizzando la
17 .7. IL PROBLEMA DEL COMMESSO VIAGGIATORE 7 (.30), si trova ṽ i ṽ i v i, (.32) i S i S i S ṽ i (v i + v) v i + nv. (.33) i S i S i S Così, unendo la (.32) e la (.33), si ottiene v i v i + nv. (.34) i S i S A questo punto, utilizzando la (.24) e la (.3), si ottiene la seguente stima per la quantità nv: nv ε v i. (.35) i S Di conseguenza la (.34) diventa v i v i + ε v i = ρ = + ε. i S i S i S.7 Il problema del commesso viaggiatore Nel problema del commesso viaggiatore, dato un grafo completo non orientato G = (V, E) (cioè, un grafo non orientato in cui ogni coppia di vertici è adiacente) con n = V nodi e con una distanza intera non negativa d(i, j) associata a ciascun arco (i, j) E, si deve trovare un giro che passi una sola volta per ogni nodo e termini nel nodo di partenza (ciclo Hamiltoniano) di distanza minima. L obiettivo è quello di mostrare che il problema del commesso viaggiatore non ammette un algoritmo approssimato con tempo polinomiale e con fattore di approssimazione ρ costante a meno che P = NP. Teorema. Se P NP e ρ >, allora non esiste alcun algoritmo approssimato con tempo polinomiale e grado di approssimazione ρ per il problema del commesso viaggiatore. Dimostrazione. Si supponga per assurdo che, per qualche ρ >, ci sia un algoritmo approssimato A con tempo polinomiale e fattore di approssimazione ρ. Se si riesce a mostrare che l algoritmo A risolve istanze del problema del ciclo Hamiltoniano, si prova che questo problema è risolubile in tempo polinomiale. A questo punto, però, essendo questo problema NP-completo, risolverlo in tempo polinomiale implica che P = NP. Sia G = (V, E) un istanza del problema del ciclo Hamiltonano. Per determinare se G contiene un ciclo Hamiltoniano utilizzando l algoritmo approssimato A, si trasforma G in un istanza del problema del commesso viaggiatore nel seguente modo. Sia G = (V, E ) il grafo completo su V, cioè E = {(i, j) : i, j V e i j}, e si assegni una distanza a ciascun arco in E come segue: { se (i, j) E, d(i, j) = nρ + altrimenti.
18 8 CAPITOLO. ALGORITMI APPROSSIMATI Le rappresentazioni di G e d possono essere create da una rappresentazione di G in tempo polinomiale rispetto a n ed E. Si consideri ora il problema del commesso viaggiatore (G, d). Si supponga che tale algoritmo approssimato esista e risolviamo il problema con grado di approssimazione ρ < ρ G ha cicli Hamiltoniani se e solo se A restituisce un valore minore o uguale a (nρ + ) + (n ) = nρ + n < nρ + n. Di conseguenza, si può utilizzare l algoritmo A per risolvere il problema del ciclo Hamiltoniano in tempo polinomiale. Assurdo, poiché è un problema NP-completo.
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
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
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
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à
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])
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
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
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
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
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
Algoritmi e strutture dati
Algoritmi e Strutture Dati Cammini minimi Definizioni Sia G = (V,E) un grafo orientato pesato sugli archi. Il costo di un cammino π = è dato da: Un cammino minimo tra una coppia di
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
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
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
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)
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
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
Grafi (orientati): cammini minimi
Grafi (orientati): cammini minimi Una breve presentazione Definizioni Sia G=(V,E) un grafo orientato con costi w sugli archi. Il costo di un cammino π= è dato da: Un cammino minimo tra
Minimo albero di copertura
apitolo 0 Minimo albero di copertura efinizione 0.. ato un grafo G = (V, E) non orientato e connesso, un albero di copertura di G è un sottoinsieme T E tale che il sottografo (V, T ) è un albero libero.
UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014
A Ricerca Operativa 1 Seconda prova intermedia Un tifoso di calcio in partenza da Roma vuole raggiungere Rio De Janeiro per la finale del mondiale spendendo il meno possibile. Sono date le seguenti disponibilità
Algoritmo basato su cancellazione di cicli
Algoritmo basato su cancellazione di cicli Dato un flusso ammissibile iniziale, si costruisce una sequenza di flussi ammissibili di costo decrescente. Ciascun flusso è ottenuto dal precedente flusso ammissibile
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
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 13 Cammini minimi: Algoritmo di Dijkstra (*) (ACM in grafi diretti e non diretti senza archi di peso negativo) Punto della situazione Algoritmo basato sull ordinamento
Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi
Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore
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
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
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
Problema del cammino minimo
Algoritmi e Strutture di Dati II Problema del cammino minimo Un viaggiatore vuole trovare la via più corta per andare da una città ad un altra. Possiamo rappresentare ogni città con un nodo e ogni collegamento
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),
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:
UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013
A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa Seconda prova intermedia 7 giugno 0 Nome: Cognome: Matricola: Orale /06/0 ore aula N Orale 0/07/0 ore aula N
Cammini minimi fra tutte le coppie
Capitolo 12 Cammini minimi fra tutte le coppie Consideriamo il problema dei cammini minimi fra tutte le coppie in un grafo G = (V, E, w) orientato, pesato, dove possono essere presenti archi (ma non cicli)
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
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
Esercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla [email protected] Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi
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
Algoritmi e Strutture Dati (Mod. B) Algoritmi Greedy (parte I)
Algoritmi e Strutture Dati (Mod. B) Algoritmi Greedy (parte I) Algoritmi greedy Gli algoritmi per problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione
Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Definizioni Sia G=(V,E) un grafo orientato con costi w sugli archi. Il costo di un cammino π= è dato da: Cammini minimi Un cammino minimo tra una coppia di
Esame di Ricerca Operativa del 15/01/2015
Esame di Ricerca Operativa del 1/01/201 (Cognome) (Nome) (Matricola) Esercizio 1. Un azienda produce palloni da calcio e da basket che vende a 1 e 20 euro rispettivamente. L azienda compra ogni settimana
Esame di Ricerca Operativa del 15/01/2015
Esame di Ricerca Operativa del 1/01/01 (Cognome) (Nome) (Matricola) Esercizio 1. Un azienda produce palloni da basket e da calcio che vende rispettivamente a 1 e euro. L azienda compra ogni settimana 00
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
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
L algoritmo AKS. L algoritmo AKS. Seminario per il corso di Elementi di Algebra Computazionale. Oscar Papini. 22 luglio 2013
L algoritmo AKS Seminario per il corso di Elementi di Algebra Computazionale Oscar Papini 22 luglio 2013 Test di primalità Come facciamo a sapere se un numero n è primo? Definizione (Test di primalità)
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)
Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa
Alberi di copertura Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo, Pisa [email protected] M. Passacantando TFA 0/ - Corso di Ricerca Operativa Università di Pisa / 9 Definizioni
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
Algoritmi di Ricerca
Algoritmi e Strutture Dati Autunno 01 Algoritmi di Ricerca Dip. Informatica ed Appl. Prof. G. Persiano Università di Salerno 1 Ricerca esaustiva 1 2 Backtrack 3 2.1 Backtrack per enumerazione......................................
Contenuto e scopo presentazione. Modelli Lineari Interi/Misti. Piani di taglio. Piani di taglio. Piani di taglio Versione 31/08/
Contenuto e scopo presentazione Contenuto: viene presentato un altro metodo di soluzione di problemi di ILP o di MILP. Modelli Lineari Interi/Misti Piani di taglio Versione /8/. Scopo: fornire le capacità
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,
RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine
RISOLUZIONE IN LOGICA PROPOSIZIONALE Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine 1. Risoluzione Definitione 1.1. Un letterale l è una variabile proposizionale (letterale
Grafi: ordinamento topologico
.. Grafi: ordinamento topologico Che cosa e e come si calcola Che cosa e un ordinamento topologico F. Damiani - Alg. & Lab. 04/05 Una definizione di ordinamento topologico Definizione. Funzione σ: V {1,
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
Algoritmi di ricerca. Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati.
E. Calabrese: Fondamenti di Informatica Algoritmi-1 Algoritmi di ricerca Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati. Per esempio: - cercare
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
Cammini Minimi. Algoritmo di Dijkstra
Cammini Minimi Algoritmo di Dijkstra Cammino in un grafo Dato un grafo G=(V,E), un Cammino (Percorso) in G è un insieme di vertici v 1, v 2,.., v k tali che (v i, v i+1 ) E v 1 v 2 v 3 v k In un grafo
Parte III: Algoritmo di Branch-and-Bound
Parte III: Algoritmo di Branch-and-Bound Divide et Impera Sia z * max {c T x : x S} (1) un problema di ottimizzazione combinatoria difficile da risolvere. Domanda: E possibile decomporre il problema (1)
Cammini minimi in grafi:
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Cammini minimi in grafi: una trilogia Cammini minimi in grafi: Episodio III: la fine della trilogia Input: nelle puntate
Branch-and-bound per KNAPSACK
p. 1/1 Branch-and-bound per KNAPSACK Rispetto allo schema generale visto in precedenza dobbiamo specificare: come si calcola un upper bound su un sottinsieme; come si effettua il branching; come si individuano
Progettazione di Algoritmi
Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 06/07/2016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via
4. METODI DUALI DEL SIMPLESSO
4. MEODI DUALI DEL SIMPLESSO R. adei 1 Una piccola introduzione R. adei 2 MEODI DUALI DEL SIMPLESSO L obiettivo del capitolo è illustrare e giustificare i metodi duali del simplesso. Entrambi i metodi
Corso di Calcolo Numerico
Corso di Calcolo Numerico Dott.ssa M.C. De Bonis Università degli Studi della Basilicata, Potenza Facoltà di Ingegneria Corso di Laurea in Ingegneria Meccanica Risoluzione di Equazioni Algebriche Le equazioni
Branch-and-bound per TSP
p. 1/6 Branch-and-bound per TSP Anche qui, rispetto allo schema generale visto in precedenza dobbiamo specificare: p. 1/6 Branch-and-bound per TSP Anche qui, rispetto allo schema generale visto in precedenza
Esame di Ricerca Operativa del 11/07/2016
Esame di Ricerca Operativa del /0/01 (Cognome) (Nome) (Matricola) Esercizio 1. Un erboristeria vuole produrre una nuova tisana utilizzando tipi di tisane già in commercio. Tali tisane sono per lo più composte
Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione
Algoritmi greedy Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Gli algoritmi greedy sono algoritmi basati sull idea
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
Algoritmi e Strutture Dati - II modulo Soluzioni degli esercizi
Algoritmi e Strutture Dati - II modulo Soluzioni degli esercizi Francesco Pasquale 6 maggio 2015 Esercizio 1. Su una strada rettilinea ci sono n case nelle posizioni 0 c 1 < c 2 < < c n. Bisogna installare
RICERCA OPERATIVA. Tema d esame del 04/03/2008 (Simulazione)
RICERCA OPERATIVA Tema d esame del 04/03/2008 (Simulazione) COGNOME: NOME: MATRICOLA:. Una nota azienda automobilistica produce due modelli di auto (un utilitaria e una berlina), che rivende con un guadagno
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
Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base
Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1. Sia T una stringa arbitraria di lunghezza n 1 su un alfabeto Σ. È sempre possibile
LEZIONE 3. a + b + 2c + e = 1 b + d + g = 0 3b + f + 3g = 2. a b c d e f g
LEZIONE 3 3.. Matrici fortemente ridotte per righe. Nella precedente lezione abbiamo introdotto la nozione di soluzione di un sistema di equazioni lineari. In questa lezione ci poniamo il problema di descrivere
