Sommario della lezione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Sommario della lezione"

Transcript

1 Sommario della lezione Applicazioni del massimo flusso Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. /39

2 Prima applicazione: Matching Supponiamo che un vi siano un certo numero di signore nubili, ed un certo numero di un certo numero di signori scapoli. Ogni signora esprime il suo interesse verso un sottoinsieme dei signori, Anna Vera Rosa Mara Mario Lucio Teo Pio Dario Problema: Determinare il maggior numero di abbinamenti signora-signore (senza conflitti, ovvio), che rispetti le preferenze delle signore (perchè? Perchè lavoriamo per un agenzia matrimoniale e vogliamo massimizzare il nostro profitto, visto che prendiamo una provvigione ad ogni abbinamento che và buon fine...) Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 2/39

3 Esempi Anna Vera Rosa Mara Mario Lucio Teo Pio 2 abbinamenti Dario Anna Vera Rosa Mara Mario Lucio Teo Pio 3 abbinamenti Dario Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 3/39

4 Formuliamo il problema in modo generale Input: Grafo G = (V, E) bipartito, ovvero per cui V = S D, con S D =, e E = {{a, b} : a S, b D} Output: Un sottoinsieme di archi M E (matching) tale che per ogni coppia {a, b}, {x, y} M vale che {a, b} {x, y} =, con M di cardinalità massima. Anna Vera Rosa Mara Mario Lucio Teo Pio Dario Gli archi rossi costituiscono nell esempio un matching di cardinalità 3. Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 4/39

5 Formulazione del problema in termini di flusso massimo Dato G = (V = S D, E) bipartito, introduciamo due nuovi nodi s e t, con s connesso (via un arco diretto) a ciascun nodo in S, e t connesso (via un arco diretto) a ciascun nodo in D. Gli archi in E tra nodi di S e D vengono ora direzionati da S e D. Infine, ad ogni arco viene assegnata capacità pari a. In sintesi, abbiamo creato d G una rete di flusso G = (S D {s, t}, E ), con E = E {(s, u) : u S} {(v, t) : v D}, e capacità = per ogni arco Esempio s t Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. /39

6 Vale il seguente risultato: max M = M:M è un matching in G max v(f) f:f è un flusso in G Mostriamo innanzitutto max M maxv(f). Dato un matching M in G di cardinalità massima k, immaginiamo un assegnazione in G che manda un unità di flusso dalla sorgente s ad ogni vertice a, estremo in S dell arco (a, b) del matching M, che manda una unità di flusso sull arco (a, b) del matching M, ed una unità di flusso da b alla destinazione t. Tale assegnazione è un valido flusso di valore k in quanto rispetta tutti i vincoli sulel capacità e sulla conservazione, pertanto k = max M max v(f) s t Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 6/39

7 Mostriamo ora che max M maxv(f) Sia k il valore di un flusso massimo in G. Poichè e arco di G vale che c(e) {0, }, sappiamo che esiste un flusso massimo f a valori interi, ovvero f(e) {0, }, e. Sia M = {e = (a, b) : a S, b D, f(e) = } l insieme degli archi che vanno da vertici in S a vertici in D che trasportano una unità di flusso ciascheduno (rappresentati in grassetto di sotto). Dato che k unità di flusso fuoriescono da s, per il vincolo di conservazione del flusso k ne devono arrivare a t, e dato che non ci sono nel grafo archi diretti da s a t, occorrono k tali archi in grassetto per trasportare k unità di flusso da S a D. Gli archi in M formano un matching (ovvero su ogni vertice di S incide al più uno di tali archi, ed analogamente per i vertici in D). Ciò sempre per la legge di conservazione del flusso in quanto se al più una unità di flusso entra in un vertice di S al più una ne deve uscire (analogamente per i vertici di D). Quindi k = M cardinalità massima di un matching. s t S D Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 7/39

8 Al di là della motivazione usata per introdurre il problema del matching di cardinalità massima, tale concetto trova applicazione in molti altri ambiti: Assegnazione di job a macchine, in modo tale che ogni job sia assegnato ad al più una macchina ed ogni macchina abbia assegnato al più un job Assegnazione di clienti a servitori, in modo tale che ogni cliente sia assegnato ad al più ad un servitore ed ogni servitore abbia assegnato al più un cliente in Biologia: Predizione della struttura di RNA in Chimica: determinazione delle posizioni dei legami doppi in strutture chimiche. Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 8/39

9 Seconda applicazione: Cammini disgiunti in grafi Problema: Dato un grafo (diretto) G = (V, E) e due nodi s e t, determinare il massimo numero di cammini da s a t che sono arco-disgiunti. Def. Due cammini sono arco-disgiunti se non hanno alcun arco in comune. 2 s 3 6 t 4 7 Il problema è di fondamentale importanza nell ambito delle reti di comunicazione (ed in altri ambiti pure...) Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 9/39

10 Formulazione del problema in termini di massimo flusso Assegniamo capacità ad ogni arco s Risultato: Il massimo numero di cammini da s a t in G che sono arcodisgiunti = valore del massimo flusso in G da s a t Supponiamo che in G esistano k cammini da s a t in G che sono arco-disgiunti, assegniamo flusso ad ogni arco in tale cammino, assegniamo flusso 0 a tutti gli altri archi di G. I vincoli sulle capacità sono rispettati, i vincoli sulla conservazione del flusso sono rispettati (se c cammini entrano in un nodo altrettanto ne escono, visto che tutti i cammini devono raggiungere t, pertanto se c unità di flusso entrano in un nodo, altrettanto ne escono). Pertanto, massimo numero di cammini da s a t in G che sono arco-disgiunti valore del massimo flusso in G da s a t Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 0/39

11 Proviamo ora la disuguaglianza opposta ricordano che se esiste un flusso f di valore massimo in G, allora ne esiste uno a valori interi f(e) {0, }, per ogni e E. Proveremo L insieme degli archi e con f(e) = contiene un insieme di v(f) cammini arco-disgiunti da s a t. Iniziamo col seguire gli archi con flusso che partono da s. Per il vincolo sulla conservazione del flusso, ogni qualvolta un tale arco entra in un nodo v, da tale nodo ne deve uscire un altro arco con flusso. s t Prima o poi avremo trovato un cammino P da s a t. Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. /39

12 e continuiamo... s t Azzeriamo il flusso su tale cammino, otterremo un flusso f in G, di valore v(f ) = v(f). Seguiamo gli archi con flusso di tale nuovo flusso f a partire da s e prima o poi arriveremo a t (e non intersecheremo P, in quanto gli archi di P nel nuovo flusso trasportano 0 unità di flusso), ottenendo quindi un secondo cammino P da s a t. Azzeriamo ora il flusso anche sugli archi del secondo cammino così trovato, otterremo un nuovo flusso f in G, di valore v(f ) = v(f) 2, seguiamo gli archi del grafo con flusso di tale nuovo flusso f ed otterremo un terzo cammino (arco disgiunto dai primi due) che và da s a t e così via, finquando non avremo ottenuto esattamente v(f) cammini, tutti arco disgiunti tra di loro, da s a t. Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 2/39

13 Un ultima osservazione: È possibile che i cammini prodotti dall algoritmo prima descritto abbiano dei cicli. Poco importa, possiamo eliminare tali cicli e se i cammini erano arco disgiunti con i cicli a maggior ragione lo saranno dopo che gli eventuali cicli che essi contengono sono stati eliminati. Conmclusione: abbiamo provato che se esiste un flusso f di valore massimo v(f) = v nel grafo G prima descritto, allora in G esistono almeno v cammini arco disgiunti in G da s a t, da cui otteniamo che max v(f) max numero di cammini arco disgiunti da s a t f:f è un flusso in G Avendo prima provato la diseguaglianza opposta, otteniamo che le due quantità di sopra sono in effetti uguali. Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 3/39

14 Complessità dell algoritmo per trovare i cammini arco disgiunti Innanzitutto occorre trovare il valore del massimo flusso in G = (V, E). Ciò richiede, usando l algoritmo di Ford e Fulkerson, tempo O(mC), dove m = E e C è il valore di tale massimo flusso. Ovviamente vale che C e:e uscente da c(e) che, nel nostro caso in cui c(e) = per ogni s arco e E, si riduce a C n = V. Una volta trovato il valore del massimo flusso, occorre trovare i cammini da s a t su cui viaggia flusso pari a. Ciascun tale cammino può essere trovato in tempo O(m) (seguendo gli archi con flusso = e osservando che ogni cammino è composto da O(m) archi). Ci sono al più n cammini arco disgiunti tra s e t, quindi in totale li possiamo trovare tutti in tempo O(nm). Gran totale = O(nm) + O(nm) = O(nm). Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 4/39

15 E se il grafo G non è diretto? Possiamo usare un trucco. Partendo da G (non diretto) rimpiazziamo ciascun arco {u, v} E con la coppia di archi (u, v), (v, u) come in figura u v = u v Sul grafo G così ottenuto possiamo applicare l algoritmo di prima per trovare i cammini arco disgiunti da s a t. Bisogna però stare attenti: non è detto che due cammini P e P 2 arco disgiunti in G lo siano anche in G. Ad es. s u v t P =s-u-v-t, P 2 =s-v-u-t disgiunti in G s u v t P =s-u-v-t, P 2 =s-v-u-t non disgiunti in G Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. /39

16 Possiamo però mostrare che esiste un massimo flusso che usa al più uno solo degli archi (u, v), (v, u). Sia f sia un massimo flusso per cui f(u, v) 0 e f(v, u) 0. Sia δ = min{f(u, v), f(v, u)} e definiamo una nuova assegnazione f uguale a f, tranne che sugli archi (u, v) e (v, u), dove vale f (u, v) = f(u, v) δ, f (v, u) = f(v, u) δ. u f(u, v) f(v, u) v = u f(u, v) δ f(v, u) δ È chiaro che se f rispetta i vincoli sulle capacità a maggior ragione li rispetta f, e se f rispetta i vincoli sulla conservazione del flusso, così li rispetta f, visto che sia il flusso entrante che quello uscente da u e v diminuisce dello stesso δ. Di conseguenza f ha lo stesso valore di f (ovvero anche f è un flusso massimo). Per definizione di δ, in f almeno uno tra f (u, v), f (v, u) è uguale a 0, come desiderato. Usando f come punto di partenza, possiamo ottenere cammini diretti arco disgiunti da s a t che corrisponderanno anche a cammini non diretti arco disgiunti da s a t. v Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 6/39

17 Connettività di grafi Problema: Dato un grafo diretto G = (V, E) e due nodi s e t, trovare il minimo numero di archi che disconnette t da s. Def. Un insieme di archi F E disconnette s da t se tutti i cammini da s a t usano almeno un arco di F. 2 s 3 6 t 4 7 Il problema trova applicazione nell analisi della tolleranza ai guasti di reti di calcolatori (ed in tante altre situazioni...) Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 7/39

18 Il risultato Il minimo numero di archi che disconnette t da s = massimo numero di cammini arco-disgiunti da s a t. Proviamo innanzitutto il. Sia F E un insieme di cardinalità k minima di archi che disconnette t da s. Ogni cammino da s a t deve usare almeno un arco di F (altrimenti F non disconnetterebbe t da s) pertanto il massimo numero di cammini arco-disgiunti da s a t è al più k 2 2 s 3 6 t s 3 6 t Nell esempio, abbiamo 2 cammini arco disgiunti da s a t e 2 archi bastano a disconnettere t da s. Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 8/39

19 Proviamo ora la diseguaglianza oppposta Sia k il massimo numero di cammini arco-disgiunti da s a t. Abbiamo prima visto che tale numero corrispondeva anche al valore del massimo s-t flusso f nel grafo. Ricordiamo inoltre che la massimalità di f implicava che in G esiste un taglio (A, B) di capacità c(a, B) = v(f) = k. Gli archi che vanno da A a B (ovviamente in numero di k visto che ogni arco ha capacità pari a ) costituiscono un insieme F che disconnette t da s, per cui la minima cardinalità di un F che disconnette t da s è k. 2 2 s 3 6 t s 3 6 t A 4 7 B 4 7 Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 9/39

20 Ricordando il risultato prima provato: Il massimo numero di cammini da s a t in G che sono arco-disgiunti = valore del massimo flusso in G da s a t e quello appena provato: Il minimo numero di archi che disconnette t da s = massimo numero di cammini arco-disgiunti da s a t. otteniamo Risultato: Il minimo numero di archi che disconnette t da s = valore del massimo flusso in G da s a t che ci fornisce anche un algoritmo di complessità O(mn)) per risolvere il problema, dove come al solito n = V, m = E. Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 20/39

21 E se volessimo studiare gli stessi problemi relativamente a vertici? ovvero considerare i seguenti problemi: Problema : Determinare il massimo numero di cammini tra due vertici di un grafo in modo tale che nessuna coppia di cammini abbiano vertici in comune? (ovvero i cammini siano vertici-disgiunti) Problema 2: Determinare il minimo numero di vertici che disconnette un vertice t da s? Bisogna rifare tutto da capo? No. Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 2/39

22 Basta considerare grafi con capacità anche sui vertici ovvero, generalizzare il concetto di rete di flusso mediante un grafo diretto G = (V, E) con le seguenti caratteristiche: associato ad ogni arco e E vi è un numero c(e) 0, capacità dell arco e associato ad ogni nodo u V vi è un numero d(u) 0 capacità del nodo u vi è un nodo s chiamato sorgente, senza archi entranti vi è un nodo t chiamato destinazione, senza archi uscenti In tale situazione un flusso f deve soddisfare le seguenti condizioni. (Vincoli sulle capacità) e E 0 f(e) c(e) e u V e entranti in u f(e) d(u) 2. (Vincoli sulla conservazione del flusso) v V, s v t, vale e entranti in v f(e) = e uscenti da v f(e) Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 22/39

23 Il bello di grafi siffatti è che non sono più difficili da trattare di quelli soliti, ovvero di grafi con capacità solo sugli archi. Infatti, dato un grafo con capacità c(e) sugli archi e capacità d(u) sui nodi avremmo una situazione siffatta, in cui la somma dei flussi entranti nel nodo deve essere d(u): c 2 c c 2 c c 3 d(u) c 6 c 3 u d(u) u c 6 c c 4 c c 4 Potremmo trasformarla in una situazione come quella di destra, in cui si introduce un nodo fittizio u, connesso a u con un arco con capacità d(u). Nel grafo risultante dopo la trasformazione sopra delineata (effettuata ovviamente per ogni nodo) vi sono solo capacità su archi (che sappiamo trattare). È altresì ovvio che esiste un flusso di valore k nel grafo di partenza (con capacità anche sui nodi) se e solo se ne esiste uno dello stesso valore nel grafo modificato (con capacità solo sugli archi). Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 23/39

24 Riassumendo... Le tecniche di flusso introdotte permettono quindi di risolvere anche questioni che coinvolgono condizioni su nodi, ad esempio determinare il massimo numero di cammini nodo-disgiunti tra una coppia di nodo del grafo, o determinare il minimo numero di nodi necessari a disconnettere una coppia di nodi nel grafo, etc. Basterà imporre le opportune limitazioni sia alla capacità sugli archi, che sui nodi. Ad es., per determinare il massimo numero di cammini nodo-disgiunti tra due vertici s e t di un grafo G, basterà calcolare il massimo flusso da s a t in G, dove avremo imposto che la capacità di ciascun nodo è pari a, trasformare il grafo come prima descritto e risolvere il problema del massimo flusso nel grafo trasformato per ottenere la risposta. Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 24/39

25 Esempio: Vie di Fuga Supponiamo di avere una griglia, e dei punti in essa. Il problema è di stabilire se esistono cammini vertice-disgiunti da ciascun punto alla frontiera della griglia non ha soluzione Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 2/39

26 Formulazione del problema in termini di flusso Input: Grafo griglia G = (V, E), consistente di n colonne ed n righe di vertici. Il vertice generico nella riga i e colonna j può essere rappresentato dalla coppia (i, j). Ogni vertice ha quattro vicini, tranne che per i vertici sulla frontiera (che ne hanno o due o tre). In input abbiamo anche m n 2 punti (x, y ),...,(x m, y m ) per i quali vogliamo stabilire se ci sono o meno m cammini disgiunti da essi alla frontiera della griglia (non importa dove, purchè si possa raggiungere la frontiera) Definiamo un grafo di flusso G = (V, E ) nel seguente modo: V = V {s, t} E = E {archi da s ad ogni punto (x i, y i )} {archi da ogni punto della frontiera a t} Ogni arco di G ha capacità pari a, ogni nodo di G ha capacità pari a. Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 26/39

27 Esempio s t Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 27/39

28 Vale il seguente risultato Il problema delle vie di fuga ha soluzione positiva (ovvero esistono i cammini nodi-disgiunti dagli m punti in input sulla griglia alla frontiera della griglia) se e solo se nel grafo G esiste un massimo flusso di valore m. Prova: per esercizio. Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 28/39

29 Il Problema del Trasporto Input: Grafo diretto G = (V, E) Nodi fornitori s i con quantità di fornitura f i, i =,...,p Nodi richiedenti r i con quantità di richiesta g i, i =,...,q fi g i funzione capacità c : E R + Output: trovare dei percorsi su cui far viaggiare le cose, in modo che le richieste siano soddisfatte, ed i vincoli sulle capacità degli archi siano rispettati. s 4 r s r 2 8 Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 29/39

30 Risoluzione del Problema del Trasporto mediante Massimo Flusso Il Problema del Trasporto può essere risolto creando e risolvendo un problema collegato di Massimo Flusso Creiamo una supersorgente s. Per ogni nodo fornitore s i, aggiungiamo un arco da s a s i di capacità pari alla quantità di fornitura f i Creiamo una superdestinazione t. Per ogni nodo richiedente r i aggiungiamo un arco da r i a t con capacità pari alla quantità di richiesta g i Trova il massimo flusso da s a t nella rete di flusso così ottenuta Se il massimo flusso = gi alora tale massimo flusso rappresenta una soluzione al Problema del Trasporto originale, altrimenti il Problema del Trasporto non è risolubile con i parametri dati. s 4 r 7 s 2 2 t s r 2 Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 30/39

31 Risoluzione del Problema del Trasporto mediante Massimo Flusso Nel nostro esempio, il massimo flusso da s a t è ottenuto mediante l algoritmo di Ford e Fulkerson. Il valore del massimo flusso ottenuto è 2. I numeri in rosso rappresentano i valori del flusso su ciascun arco Poichè il valore del massimo flusso =2=7+8=somma delle richieste, otteniamo che il flusso in questione è una soluzione al problema del Trasporto s 4 4 r s r 2 8 Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 3/39

32 Perchè l algoritmo funziona in generale Per ogni nodo r i che richiedeva una quantità g i abbiamo creato un arco (r i, t) di tale capacità. In tale rete il flusso non può superare il valore g i, in quanto esiste ovviamente il taglio (V {t}, {t}) esattamente di tale capacità Se esiste un flusso (massimo) di valore g i, necessariamente su ogni arco (r i, t) deve viaggiare una quantità di flusso pari a g i, per la legge di conservazione di flusso, la stessa quantità deve entrare in r i il che fornisce una soluzione al Problema del Trasporto s 4 r 7 7 s 2 2 t s r 2 8 Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 32/39

33 Problema delle danze Una scuola vuole organizzare un ballo di fine anno. Ogni coppia di studenti composta da un ragazzo ed una ragazza che intendono danzare insieme devono registrarsi (altrimenti non possono danzare insieme). I regolamenti della scuola impongono che ogni data coppia non possa danzare insieme più di 3 volte. In più, ogni studente non può danzare più di 0 volte in totale. Problema: massimizzare il numero di danze in totale. Esercizio: formalizzare il problema come un problema di massimo flusso. Suggerimento: Definire un nodo per ogni studente ed ogni studentessa. Inserire un arco di opportuna capacità tra le coppie registrate. Definire opportune capacità associate ad ogni nodo. Indi, procedere come nel Problema del Trasporto, introducendo una sorgente connessa ad ogni studente ed una destinazione connessa ad ogni studentessa. Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 33/39

34 Il Problema del Baseball Il campionato americano di baseball è diviso in tornei e passano alla fase successiva le squadre che hanno avuto il maggior numero di vittorie (non vi sono pareggi nel baseball). Ad ogni istante della stagione, i tifosi sono interessati a sapere se la loro squadra può ancora teoricamente passare il torneo, o è già matematicamente eliminata. w(i) g(i) g(i, j) squadra vinte da giocare Y H C B Yale Harvard Cornell Brown 27 3 Harvard è già eliminata o può ancora arrivare prima nel girone? Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 34/39

35 Il Problema del Baseball: analisi preliminare Il massimo numero di vittorie cui Harvard può arrivare è W = = 33 (vincendo i 4 rimanenti incontri) Supponendo che Harvard li vinca, non sarà eliminata se e solo se: Brown ha al più u(b) = W w(b) = = 6 vittorie nei rimanenti incontri Cornell ha al più u(c) = W w(c) = = vittorie nei rimanenti incontri Yale ha al più u(y ) = W w(y ) = = 0 vittorie nei rimanenti incontri Sia P l insieme delle squadre tranne Harvard: P = {Y, C, B} Sia Q l insieme di tutte le possibili coppie di squadre in P : Q = {(Y, C), (Y, B), (C, B)} Il numero totale di incontri da effettuarsi tra squadre in P è G = = 8. Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 3/39

36 Soluzione del Problema del Baseball mediante Flusso Il Problema del Baseball può essere risolto creando e risolvendo un istanza collegata del problema del Massimo Flusso Crea un nodo sorgente S (tutti gli incontri partono da qui) Crea un nodo per ciascuna coppia (X, Y ) di Q; aggiungi un arco da S a ciascuna coppia (X, Y ) con capacità pari al numero di partite da giocare tra X e Y Crea un nodo per ciascuna squadra di P ; per ciascuna coppia (X, Y ) di Q aggiungi un arco da (X, Y ) alla squadra X ed alla squadra Y di P, con capacità pari al numero di partite da giocare tra X e Y Crea un nodo destinazione T (le vittorie di ciascuna squadra sono qui memorizzate ). Aggiungi un arco da ogni squadra X in P al nodo T, la capacità dell arco è pari a u(x) (il massimo numero di vittorie che la squadra X può avere nei rimanenti incontri affinchè Harvard si qualifichi) Y,C 6 Y S 6 Y,B B,C 6 C B 0 T 6 Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 36/39

37 Soluzione del Problema del Baseball mediante Flusso Trova il massimo flusso da S a T nella rete Se il flusso su ciascun arco da S alle squadre è proprio uguale alla capacità dello stesso arco, allora Harvard può ancora sperare di diventare prima nel girone, altrimenti è matematicamente eliminata. Infatti ciò vorrebbe dire che è possibile rispettare i vincoli che le squadre Y, C, B non vincano più di u(y ), u(c), u(b) volte, rispettivamente, giocando tutte le partite. Nel nostro esempio i valori del massimo flusso sono espressi in rosso, e poichè l arco da S a {Y, C} non è usato al massimo della sua capacità, ne segue che Harvard è matematicamente eliminata. S 6 Y,C Y,B B,C 6 6 Y C B T Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 37/39

38 Ritornando alla tabella... e ricordando la precedente figura, abbiamo che il valore del massimo flusso compatibile con il fatto che Brown abbia al più u(b) = W w(b) = = 6 vittorie nei rimanenti incontri, Cornell ne abbia al più u(c) = W w(c) = =, e Yale ne abbia al più u(y ) = W w(y ) = = 0, richiede che il massimo numero di partite da giocare tra Yale e Cornell sia. Poichè invece il numero di partite è 6, ne segue invece che se Yale ne vince va a 34 e Harvard non può raggiungere tale punteggio, mentre invece se le perde tutte e 6 allora Cornell necessariamente va a 34 e di nuovo Harvard non può raggiungere tale punteggio w(i) g(i) g(i, j) squadra vinte da giocare Y H C B Yale Harvard Cornell Brown 27 3 Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 38/39

39 Esercizio: può Detroit ancora vincere il girone? w(i) g(i) g(i, j) squadra vinte da giocare NYY BAL BOS TOR DET New York Yankees Baltimore Orioles Boston Red Sox Toronto Blue Jays Detroit Lions Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof. Ugo Vaccaro Anno Acc. 206/7 p. 39/39

Sommario della lezione

Sommario della lezione Sommario della lezione Analisi dell Algoritmo di Ford e Fulkerson per il calcolo del massimo flusso Applicazioni del massimo flusso: Matching in Grafi Bipartiti Cammini disgiunti tra vertici Università

Dettagli

Sommario della lezione

Sommario della lezione Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 1/21 Sommario della lezione Ulteriori applicazioni del Massimo Flusso 1. Connettività di grafi 2. Selezione di

Dettagli

Sommario della lezione

Sommario della lezione Sommario della lezione Ulteriori applicazioni del Massimo Flusso 1. Connettività di grafi. Selezione di progetti 3. Trasporto in reti 4. Eliminazione in tornei Università degli Studi di Salerno Corso di

Dettagli

Applicazioni del Massimo flusso (II parte)

Applicazioni del Massimo flusso (II parte) Applicazioni del Massimo flusso (II parte) Progettazione di Algoritmi a.a. 207-8 Matricole congrue a Docente: Annalisa De Bonis 9 Percorsi disgiunti PROGETTAZIONE DI ALGORITMI A.A. 207-8 A. DE BONIS Def.

Dettagli

Applicazioni del Massimo flusso. Progettazione di Algoritmi a.a Matricole congrue a 1 Docente: Annalisa De Bonis

Applicazioni del Massimo flusso. Progettazione di Algoritmi a.a Matricole congrue a 1 Docente: Annalisa De Bonis Applicazioni del Massimo flusso Progettazione di Algoritmi a.a. 06-7 Matricole congrue a Docente: Annalisa De Bonis Matching bipartito Problema del max matching. Input: grafo non direzionato G = (V, E).

Dettagli

Esercitazione 6 Ancora sul Network Flow

Esercitazione 6 Ancora sul Network Flow Esercitazione 6 Ancora sul Network Flow Problema 14 (appello 28/09/2015) Un importante azienda di sviluppo software ha n progetti da portare a termine entro la fine dell anno. Il manager dell azienda stima

Dettagli

Il valore di flusso che si ottiene è

Il valore di flusso che si ottiene è 1) Si consideri un insieme di piste da sci e di impianti di risalita. Lo si modelli con un grafo orientato che abbia archi di due tipi: tipo D (discesa e orientato nel senso della discesa) e tipo R (risalita

Dettagli

min det det Allora è unimodulare se e solo se det 1, 1, 0 per ogni sottomatrice quadrata di di qualsiasi dimensione.

min det det Allora è unimodulare se e solo se det 1, 1, 0 per ogni sottomatrice quadrata di di qualsiasi dimensione. Se è unimodulare e è intero allora il poliedro 0 ha vertici interi. Sia un vertice di Per definizione esiste allora una base di tale che, 0 Poiché è non singolare ( invertibile det 0) si ha che det 1 è

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

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

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

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

Dettagli

Note per la Lezione 17 Ugo Vaccaro

Note per la Lezione 17 Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 2018 2019 Note per la Lezione 17 Ugo Vaccaro Per la risoluzione di Problemi di Ottimizzazione (ovvero problemi per cui desideriamo trovare la migliore soluzione

Dettagli

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 1

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 1 Algoritmi e Strutture Dati II: Parte B Anno Accademico 004-005 Docente: Ugo Vaccaro Lezione 1 Dalla Teoria della NP-Completezza abbiamo appreso che esiste una classe di problemi (NPhard) per cui non è

Dettagli

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 5

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 5 Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005 Docente: Ugo Vaccaro Lezione 5 In questa lezione inizieremo a studiare gli algoritmi di approssimazione per problemi di ottimizzazione NP-hard

Dettagli

Progettazione di Algoritmi

Progettazione di Algoritmi Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 0/06/06 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via avrai

Dettagli

Gestione della produzione e della supply chain Logistica distributiva. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena

Gestione della produzione e della supply chain Logistica distributiva. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena Gestione della produzione e della supply chain Logistica distributiva Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena Un algoritmo per il flusso a costo minimo: il simplesso

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

1) Data la seguente istanza di TSP (grafo completo con 5 nodi): c 12 = 52; c 13 = 51; c 14 = 40; c 15 = 53; c 23 = 44;

1) Data la seguente istanza di TSP (grafo completo con 5 nodi): c 12 = 52; c 13 = 51; c 14 = 40; c 15 = 53; c 23 = 44; 1) Data la seguente istanza di TSP (grafo completo con 5 nodi): c 12 = 52; c 13 = 51; c 14 = 40; c 15 = 53; c 23 = 44; c 24 = 15; c 25 = 12; c 34 = 32; c 35 = 55; c 45 = 24 Si calcoli l ottimo duale (formulazione

Dettagli

PSPACE completezza. Un linguaggio A è PSPACE completo se. 1. A è in PSPACE, cioè esiste una TM T che accetta A con complessità di spazio polinomiale.

PSPACE completezza. Un linguaggio A è PSPACE completo se. 1. A è in PSPACE, cioè esiste una TM T che accetta A con complessità di spazio polinomiale. Sommario Il problema della verità per formule booleane pienamente quantificate è PSPACE - completo PSPACE come la classe dei giochi. Il gioco geografico generalizzato è PSPACE - completo 1 PSPACE completezza

Dettagli

AMPL Problemi su Reti

AMPL Problemi su Reti Dipartimento di Matematica Università di Padova Corso di Laurea Informatica Outline Problemi su Reti Cammino Minimo Molti problemi di ottimizzazione combinatoria possono essere modellati ricorrendo ai

Dettagli

3.3 Problemi di PLI facili

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

Dettagli

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013

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

Dettagli

Lista di esercizi 11 maggio 2016

Lista di esercizi 11 maggio 2016 Lista di esercizi 11 maggio 2016 1. Determinare il numero di sequenze binarie di lunghezza n che contengano almeno una coppia di 0 consecutivi. Soluzione. Potrebbe essere utile un programma di calcolo

Dettagli

DISPIEGAMENTO CENTRALIZZATO L ACCOPPIAMENTO PERFETTO DI PESO MINIMO IL PROBLEMA DEL SENSORI MOBILI IL PROBLEMA (1)

DISPIEGAMENTO CENTRALIZZATO L ACCOPPIAMENTO PERFETTO DI PESO MINIMO IL PROBLEMA DEL SENSORI MOBILI IL PROBLEMA (1) 1 IL PROBLEMA DEL DISPIEGAMENTO CENTRALIZZATO DI SENSORI MOBILI OVVERO L ACCOPPIAMENTO PERFETTO DI PESO MINIMO Prof. Tiziana Calamoneri Corso di Algoritmi per le reti A.A. 2010/11 2 IL PROBLEMA SENSORI

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

Se il grafo è bipartito, un accoppiamento viene anche detto assegnamento.

Se il grafo è bipartito, un accoppiamento viene anche detto assegnamento. 1. Accoppiamento Definizione. Dato un grafo (non orientato) G =(N,E), un sottoinsieme M di archi, tale che ogni nodo del grafo è incidente in al più unarcodim, viene detto accoppiamento, (matching). I

Dettagli

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 4

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 4 Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005 Docente: Ugo Vaccaro Lezione 4 In questa lezione deriveremo un algoritmo di approssimazione per il seguente problema. Approfitteremo dell

Dettagli

Problemi di Flusso: Il modello del Trasporto

Problemi di Flusso: Il modello del Trasporto Problemi di Flusso: Il modello del rasporto Andrea Scozzari a.a. 2014-2015 April 27, 2015 Andrea Scozzari (a.a. 2014-2015) Problemi di Flusso: Il modello del rasporto April 27, 2015 1 / 25 Problemi su

Dettagli

Note per la Lezione 6 Ugo Vaccaro

Note per la Lezione 6 Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 6 Ugo Vaccaro Ancora sulla tecnica Programmazione Dinamica Nella lezione scorsa abbiamo appreso che la tecnica Divide-et-Impera,

Dettagli

Esercizi Union-Find e su Grafi. Ugo Vaccaro

Esercizi Union-Find e su Grafi. Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 0 07 Esercizi Union-Find e su Grafi. Ugo Vaccaro. Esercizio: Scrivere pseudocodice per Make-Set, Union, e Find-Set usando la rappresentazione attraverso liste

Dettagli

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

Complessità Computazionale

Complessità Computazionale Complessità Computazionale La teoria della Computabilità cattura la nozione di algoritmo nel senso che per ogni problema sia esso decisionale o di calcolo di funzione stabilisce dei criteri per determinare

Dettagli

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

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

Dettagli

A-2 a PI. Esercizio 2. Domanda 3

A-2 a PI. Esercizio 2. Domanda 3 A-2 a PI Ricerca Operativa 1 Seconda prova intermedia È dato il problema di PL in figura. 1. Facendo uso delle condizioni di ortogonalità, dimostrare o confutare l ottimalità della soluzione x = 1; x =

Dettagli

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 3

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 3 Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005 Docente: Ugo Vaccaro Lezione 3 In questa lezione deriveremo algoritmi di approssimazione per alcuni classici problemi su grafi pesati. Iniziamo

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

Esercizio 2. Domanda 3

Esercizio 2. Domanda 3 A-2 a PI Ricerca Operativa 1 Seconda prova intermedia È dato il problema di PL in figura. 1. Facendo uso delle condizioni di ortogonalità, dimostrare o confutare l ottimalità della soluzione 2; 0; 2. Facendo

Dettagli

Cammini minimi per grafi molto grandi

Cammini minimi per grafi molto grandi Cammini minimi per grafi molto grandi 1. Definizioni È dato un grafo orientato G = (N, E). Indichiamo con n il numero di nodi N e con m il numero di archi E. Se il problema del cammino minimo è formulato

Dettagli

Introduzione ai Problemi di Flusso su Reti

Introduzione ai Problemi di Flusso su Reti UNIVERSI DI PIS IROCINIO ORMIVO IVO - I CICLO CLSSE DI BILIZIONE MEMIC PPLIC Introduzione ai Problemi di lusso su Reti Relatore: Prof. V. Georgiev.U: Prof. M. Berni Elisabetta lderighi R.O e Riforma della

Dettagli

Note per la Lezione 22 Ugo Vaccaro

Note per la Lezione 22 Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 0 09 Note per la Lezione Ugo Vaccaro Nella lezione scorsa abbiamo introdotto la vista in ampiezza di grafi. Essenzialmente, esso è un metodo per esplorare in

Dettagli

UNIVERSITÀ DEGLI STUDI ROMA TRE Collegio Didattico in Ingegneria Informatica corso di Ricerca operativa 2. Esercizi sul problema dell assegnamento

UNIVERSITÀ DEGLI STUDI ROMA TRE Collegio Didattico in Ingegneria Informatica corso di Ricerca operativa 2. Esercizi sul problema dell assegnamento UNIVERSITÀ DEGLI STUDI ROMA TRE Collegio Didattico in Ingegneria Informatica corso di Ricerca operativa Esercizi sul problema dell assegnamento Richiami di Teoria Ricordiamo che, dato un grafo G=(N,A),

Dettagli

Lezione 18 Ugo Vaccaro

Lezione 18 Ugo Vaccaro Teoria dell Informazione II Anno Accademico 26 27 Lezione 8 Ugo Vaccaro In questa lezione vedremo un applicazione della Teoria dei Codici a correzione d errore al seguente problema, già descritto nella

Dettagli

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 2 OTTIMIZZAZIONE SU GRAFI E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Molti problemi decisionali possono essere formulati utilizzando il linguaggio della teoria dei grafi. Esempi: - problemi di

Dettagli

Note per la Lezione 21 Ugo Vaccaro

Note per la Lezione 21 Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 20 20 Note per la Lezione 2 Ugo Vaccaro In questa lezione introdurremo il concetto di grafo, esamineremo le loro più comuni rappresentazioni ed introdurremo i

Dettagli

Ad ogni arco (i,j) del grafo e' associato un valore intero c(i,j) detto capacita' dell'arco

Ad ogni arco (i,j) del grafo e' associato un valore intero c(i,j) detto capacita' dell'arco 6) FLUSSI Definizione di flusso Si definisce rete di flusso un grafo orientato e connesso con i) un solo vertice con esclusivamente archi uscenti ii) un solo vertice con esclusivamente archi entranti Tradizionalmente

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

Sommario della lezione

Sommario della lezione Sommario della lezione Introduzione ai grafi Definizioni, applicazioni,... Rappresentazioni comuni di grafi Esplorazione di grafi Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro

Dettagli

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014

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à

Dettagli

PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Il costo di cammino minimo da un vertice u ad un vertice v è definito nel seguente modo:

PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Il costo di cammino minimo da un vertice u ad un vertice v è definito nel seguente modo: PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Sia G = (V,E) un grafo orientato ai cui archi è associato un costo W(u,v). Il costo di un cammino p = (v 1,v 2,...,v k ) è la somma dei costi degli archi

Dettagli

Se con e indichiamo l elemento neutro di in G, e deve appartenere ad H.

Se con e indichiamo l elemento neutro di in G, e deve appartenere ad H. Abbiamo visto a lezione che una sottoalgebra B di un algebra A è identificabile con l immagine di un omomorfismo iniettivo a valori in A. Una sottoalgebra B di A è in particolare un sottoinsieme non vuoto

Dettagli

Appunti lezione Capitolo 13 Programmazione dinamica

Appunti lezione Capitolo 13 Programmazione dinamica Appunti lezione Capitolo 13 Programmazione dinamica Alberto Montresor 12 Novembre, 2015 1 Domanda: Fattore di crescita dei numeri catalani Vogliamo dimostrare che cresce almeno come 2 n. La nostra ipotesi

Dettagli

Sommario della lezione

Sommario della lezione Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/0 p. /37 Sommario della lezione Esplorazione di grafi: Visita in profondità Proprietà Applicazioni Università degli

Dettagli

Matrici unimodulari e totalmente unimodulari

Matrici unimodulari e totalmente unimodulari Matrici unimodulari e totalmente unimodulari Sia una matrice intera di dimensione con, si dice unimodulare se presa una qualsiasi sottomatrice di ordine massimo (di dimensione ) vale det = 1, +1, 0. Una

Dettagli

Sommario della lezione

Sommario della lezione Sommario della lezione Introduzione ai grafi Definizioni, applicazioni,... Rappresentazioni comuni di grafi Esplorazione di grafi Università degli Studi di Salerno Corso di Progettazione di Algoritmi Prof.

Dettagli

Lezione 4 Ugo Vaccaro

Lezione 4 Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 2017 2018 Lezione 4 Ugo Vaccaro Introduciamo ora la notazione Ω, che ci sarà utile quando vorremo valutare limitazioni inferiori al tempo di esecuzione di algoritmi

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,...) diffusione di messaggi segreti memorizzazione

Dettagli

Soluzioni della settima esercitazione di Algoritmi 1

Soluzioni della settima esercitazione di Algoritmi 1 Soluzioni della settima esercitazione di Algoritmi 1 Beniamino Accattoli 19 dicembre 2007 1 Grafi Un grafo è non orientato se descrivendo un arco come una coppia di vertici (i,j) l ordine è ininfluente

Dettagli

Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte III

Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte III Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte III Applicazioni di DFS Due prolemi: calcolare l ordinamento topologico indotto da un grafo aciclico.

Dettagli

Flusso a Costo Minimo

Flusso a Costo Minimo Sapienza Università di Roma - Dipartimento di Ingegneria Informatica, Automatica e Gestionale Flusso a Costo Minimo Docente: Renato Bruni bruni@dis.uniroma.it Corso di: Ottimizzazione Combinatoria Dal

Dettagli

Analisi e implementazione dell algoritmo di Dijkstra (Parte 1)

Analisi e implementazione dell algoritmo di Dijkstra (Parte 1) Analisi e implementazione dell algoritmo di Dijkstra (Parte 1) Algoritmicamente August 1, 2009 http://algoritmicamente.wordpress.com/ 1 Concetti fondamentali Definizione 1 Un grafo è un insieme di vertici

Dettagli

Lezione 4 Ugo Vaccaro

Lezione 4 Ugo Vaccaro Teoria dell Informazione II Anno Accademico 205 206 Lezione 4 Ugo Vaccaro Il risultato principale che abbiamo scoperto nella lezione scorsa è il seguente: data una sorgente DSSM X, X 2,..., X i,... con

Dettagli

Progettazione di Algoritmi - lezione 8

Progettazione di Algoritmi - lezione 8 Progettazione di Algoritmi - lezione 8 Discussione dell'esercizio [labirinto] Nel testo dell'esercizio abbiamo considerato come lunghezza del percorso il numero di bivi ma possiamo stimare meglio la lunghezza

Dettagli

Cammini minimi fra tutte le coppie

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)

Dettagli

Esame di Ricerca Operativa del 11/02/2015

Esame di Ricerca Operativa del 11/02/2015 Esame di Ricerca Operativa del /0/0 (Cognome) (Nome) (Matricola) Esercizio. Un azienda produce tipi di TV (, 0, 0 e pollici) ed è divisa in stabilimenti (A e B). L azienda dispone di 0 operai in A e 0

Dettagli

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria. Capitolo 2 Campi 2.1 Introduzione Studiamo ora i campi. Essi sono una generalizzazione dell insieme R dei numeri reali con le operazioni di addizione e di moltiplicazione. Nel secondo paragrafo ricordiamo

Dettagli

Progettazione di Algoritmi

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

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

Domini di funzioni di due variabili. Determinare i domini delle seguenti funzioni di due variabili (le soluzioni sono alla fine del fascicolo):

Domini di funzioni di due variabili. Determinare i domini delle seguenti funzioni di due variabili (le soluzioni sono alla fine del fascicolo): UNIVERSITA DEGLI STUDI DI SALERNO C.d.L. in INGEGNERIA GESTIONALE Esercizi di Ricerca Operativa Prof. Saverio Salerno Corso tenuto nell anno solare 2009 I seguenti esercizi sono da ritenersi di preparazione

Dettagli

Ricerca Operativa A.A. 2017/2018

Ricerca Operativa A.A. 2017/2018 Ricerca Operativa A.A. 2017/2018 Esercizi su modelli di programmazione lineare intera - Soluzioni Nota Vengono fornite delle possibili soluzioni. Potrebbero esserci soluzioni alternative altrettanto valide.

Dettagli

1) Disegnare la rete di progetto con le attività sugli archi, e la rete di progetto con le attività sui nodi.

1) Disegnare la rete di progetto con le attività sugli archi, e la rete di progetto con le attività sui nodi. Un progetto di ricerca e sviluppo di una società si compone di 12 (principali) attività con precedenze, durate normali b ij (in giorni), costi diretti c ij (in dollari) delle attività alla loro durata

Dettagli

GARA SECONDARIA DI PRIMO GRADO INDIVIDUALE

GARA SECONDARIA DI PRIMO GRADO INDIVIDUALE GARA2 2019 SECONDARIA DI PRIMO GRADO INDIVIDUALE ESERCIZIO 1 Premessa La tabella che segue descrive le attività di un progetto (indicate rispettivamente con le sigle A1, A2,...), riportando per ciascuna

Dettagli

Sommario della lezione

Sommario della lezione Universitá degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2014/15 p. 1/27 Sommario della lezione Ancora altri esempi di applicazione della Programmazione Dinamica: Il Problema della

Dettagli

Note per la Lezione 4 Ugo Vaccaro

Note per la Lezione 4 Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 4 Ugo Vaccaro Ripasso di nozioni su Alberi Ricordiamo che gli alberi rappresentano una generalizzazione delle liste, nel senso che

Dettagli

Metodi e Modelli per l Ottimizzazione Combinatoria Problema dell assegnamento e matrici totalmente unimodulari

Metodi e Modelli per l Ottimizzazione Combinatoria Problema dell assegnamento e matrici totalmente unimodulari Metodi e Modelli per l Ottimizzazione Combinatoria Problema dell assegnamento e matrici totalmente unimodulari L. De Giovanni G. Zambelli 1 Problema dell assegnamento Sia dato un grafo non orientato bipartito

Dettagli

Ancora sui criteri di divisibilità di Marco Bono

Ancora sui criteri di divisibilità di Marco Bono Ancora sui criteri di divisibilità di Talvolta può essere utile conoscere i divisori di un numero senza effettuare le divisioni, anche se la diffusione delle calcolatrici elettroniche, sotto varie forme,

Dettagli

Ricerca Operativa A.A. 2007/ Esercitazione di laboratorio: Branch and Bound.

Ricerca Operativa A.A. 2007/ Esercitazione di laboratorio: Branch and Bound. Ricerca Operativa A.A. 2007/2008 17. Esercitazione di laboratorio: Branch and Bound. Luigi De Giovanni - Ricerca Operativa - 17. Esercitazione di laboratorio: Branch and Bound 17.1 . Luigi De Giovanni

Dettagli

Risoluzione di un problema di VRP

Risoluzione di un problema di VRP Risoluzione di un problema di VRP Un problema di VRP (Vehicle Routing Problem) è un tipico problema di programmazione lineare in cui l obiettivo primario è quello di individuare, su una rete generica,

Dettagli

Appunti lezione Capitolo 15 Ricerca locale

Appunti lezione Capitolo 15 Ricerca locale Appunti lezione Capitolo 15 Ricerca locale Alberto Montresor 03 Giugno, 016 1 Introduzione alla ricerca locale Un approccio miope, ma talvolta efficace è quello della ricerca locale. L idea è la seguente:

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

Introduzione al Corso di Algoritmi

Introduzione al Corso di Algoritmi Introduzione al Corso di Algoritmi Di cosa parliamo oggi: Una discussione generale su cosa studieremo, perchè lo studeriemo, come lo studieremo,... Un esempio illustrativo di cosa studeriemo Informazione

Dettagli

Processi di cost management - Programmazione multiperiodale

Processi di cost management - Programmazione multiperiodale Processi di cost management - Programmazione multiperiodale Queste slide (scrte da Carlo Mannino) riguardano il problema di gestione delle attivà di un progetto allorché i costi di esecuzione sono legati

Dettagli

Progettazione di Algoritmi

Progettazione di Algoritmi Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 29/01/2016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via

Dettagli

Algoritmo del simplesso

Algoritmo del simplesso Algoritmo del simplesso Ipotesi : si parte da una S.A.B. e dal tableau A=b in forma canonica. Si aggiunge una riga costituita dagli r j, j =,., n e da -z (valore, cambiato di segno, della f.o. nella s.a.b.)

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 mpassacantando@di.unipi.it M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Università

Dettagli

Compito di MD 13 febbraio 2014

Compito di MD 13 febbraio 2014 Compito di MD 13 febbraio 2014 IMPORTANTE: Non si possono consultare libri e appunti. Non si possono usare calcolatrici, computer o altri dispositivi elettronici. Non si può scrivere con il lapis. Motivare

Dettagli

Problemi. sbj. x 0, x intero

Problemi. sbj. x 0, x intero Problemi Spiegare e dimostrare in quali intervalli di R la funzione arctan x è concava, convessa o nessuno dei due casi. Si ricordi che la derivata prima di arctan x è +x 2. Si codifichi in una formula

Dettagli

Ottimizzazione vincolata

Ottimizzazione vincolata Luciano Battaia Questi appunti (1), ad uso degli studenti del corso di Matematica (A-La) del corso di laurea in Commercio Estero dell Università Ca Foscari di Venezia, campus di Treviso, contengono un

Dettagli

Esame di Ricerca Operativa del 16/02/15. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Esame di Ricerca Operativa del 16/02/15. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare: Esame di Ricerca Operativa del /0/ Cognome) Nome) Corso di laurea) Esercizio. Completare la seguente tabella considerando il problema di programmazione lineare: min y + y +0 y +0 y +y + y y y +y y y y

Dettagli

RICERCA OPERATIVA (a.a. 2011/12) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2011/12) Nome: Cognome: Matricola: 5 o Appello 8/0/0 RICERCA OPERATIVA (a.a. 0/) Nome: Cognome: Matricola: ) Si individui un albero dei cammini minimi di radice sul grafo in figura, utilizzando l algoritmo più appropriato dal punto di vista

Dettagli

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria. Capitolo 2 Campi 2.1 Introduzione Studiamo ora i campi. Essi sono una generalizzazione dell insieme R dei numeri reali con le operazioni di addizione e di moltiplicazione. Nel secondo paragrafo ricordiamo

Dettagli

Matroidi, algoritmi greedy e teorema di Rado

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

Dettagli

Convergenza del Simplesso e regole anti-ciclaggio

Convergenza del Simplesso e regole anti-ciclaggio Convergenza del Simplesso e regole anti-ciclaggio degenerazione e ciclaggio un esempio di ciclaggio regole anti-ciclaggio rif. Fi 3.2.6, BT 3.4 (Esempio 3.6), BT 3.7; Degenerazione e ciclaggio ( ) n n!

Dettagli

Progettazione di algoritmi

Progettazione di algoritmi Progettazione di algoritmi Discussione dell'esercizio [labirinto] Nel testo dell'esercizio abbiamo considerato come lunghezza del percorso il numero di bivi ma possiamo stimare meglio la lunghezza reale

Dettagli

Massimo flusso e matching

Massimo flusso e matching Capitolo Massimo flusso e matching. Problema del massimo matching. Nel problema del massimo matching è dato un grafo non orientato G(V, A); un matching in G è un insieme di archi M A tale che nessuna coppia

Dettagli