VISITA IL SITO PER ALTRO MATERIALE E GUIDE
|
|
- Lorenza Campana
- 7 anni fa
- Visualizzazioni
Transcript
1 COPYRIGHT SEGO LICENSE Questo documento viene fornito così come è: se pensate che faccia schifo problemi vostri, nessuno vi obbliga a leggerlo. Se pensate che sia qualcosa di positivo e/o avete suggerimenti su come migliorarlo o altro materiale da aggiungere mandatemi pure una mail all indirizzo di posta che trovate sulla mia home page. Sarò felice di rispondervi e di collaborare con voi al miglioramento del documento stesso. In caso vogliate darmi una mano nella realizzazione di altri appunti mandatemi pure una mail. Se volete aiutarmi nella correzione di questo documento (nessuno è perfetto ) scrivetemi pure. Si prega di lasciare questo documento integro o almeno se lo modificate, lasciate un riferimento all autore originale del testo, magari indicando la sua pagina web. SEGO owner/webmaster of theskulls.com sego@the-skulls.com VISITA IL SITO PER ALTRO MATERIALE E GUIDE
2 ALBERI DI COPERTURA MINIMI Definizione 1 Dati G(V,E) e G (V,E ) sottografo di G, G si dice sottografo di copertura se tutti gli archi di G sono incidenti a tutti i vertici di G. FIGURA 20. posso togliere questo arco e resta un sottografo di copertura In verde il sottografo di copertura Nota: Per verificare se e ricoprente basta verificare che tutti i vertici in V sia toccati, utilizzando gli archi che si hanno a disposizione in E. Albero di copertura: un grafo di copertura che allo stesso tempo e anche albero(ossia e connesso e aciclico allo stesso tempo: E = V -1). Nota: Possono esistere anche piu alberi di copertura. FIGURA 21. b c e a d NOTA: Non posso più aggiungere un arco senza creare un ciclo f Definizione 2 Si dicono grafi pesati, dei grafi ai quali viene associata una funzione peso che caratterizza gli archi. W: E R funzione peso Dato T E abbiamo che W(T) = w( u, v) dove W(T) e il peso totale FIGURA 22. ( u, v) T a 5 b 2 6 c d e 2 NOTA: In verde il minimum spannin tree 10 f
3 A noi interessera trovare il MST (Minimum Spannin Tree) ossia l albero di copertura il cui peso e minimo. Definizione 3 Dato G(V,E) grafo non orientato, connesso e A E Preso (u,v) E e (u,v) A si dice che (u,v) e sicuro per A se A MST A {(u,v)} MST ALGORITMO GENERALE PER MST 1. A:=Ø 2. while A non forma un MST (A < V -1) 3. trova un arco (u,v) sicuro per A 4. A:=A {(u,v)} 5. return A Definizione 4 Taglio: e una partizione del tipo (S,V-S) con S V Definizione 5 (u,v) E attraversa il taglio (S,V-S) se u S v V-S Definizione 6 (u,v) E e un arco leggero per il taglio (S,V-S) se - (u,v) attraverso il taglio - w(u,v) <= w(x,y) x,y E che attraversa (S,V-S) ossia e un arco che attraversa il taglio e che ha peso minore o uguale a qualsiasi altro arco che attraversa il taglio Definizione 7 Il taglio (S,V-S) rispetta A E se nessun arco di A attraverso il taglio TEOREMA ALLA BASE DEGLI ALGORITMI MST Sia G(V,E) un grafo non orientato e connesso e a) A E contenuto in qualche MST b) (S,V-S) un taglio qualsiasi che rispetti A c) (u,v) E un arco leggero per (S,V-S) Allora (u,v) e un arco sicuro per A. Dimostrazione A {( u, v)} in qualche MST A E T sia un MST con A T FIGURA 23. S x y V \ S (x,y) T u v
4 Supponiamo che (u,v) T T =(T \ {(x,y)}) {(u,v)} W( T )=W(T)-W(x,y)+W(u,v) Siccome (u,v) è arco leggero W(u,v) W(x,y) W(T) W( T ) W(T) W( T )=W(T) (u,v) è sicuro per A? sì infatti: A {(u,v)} T, con (x,y) A Un COROLLARIO derivato da quanto detto sopra è il seguente: Sia G=(V,E) un grafo non orientato connesso e siano: (a) A E contenuto in un qualche MST (b) Dato G A = ( V, A) sia C componente connessa di G A (c) (u,v) un arco leggero che abbia un estremità in C e l altra in V \ C Allora (u,v) è sicuro per la foresta A. ALGORITMO DI KRUSKAL (G, w) Prima di entrare a parlare in dettaglio di questo algoritmo introduciamo il concetto di INSIEMI DISGIUNTI. Diamo un insieme S siffatto: S={ S 1, S2, S3,..., Sn } con S i S j = Ø i, j tale che i j NOTA: Si può variare dinamicamente. OSSERVAZIONI (alcune operazioni che si possono effettuare con gli insiemi disgiunti) 1) Make_set(u) 2) Find_set(u) 3) Union(u,v) Ricordiamo che ogni insieme disgiunto è identificato da un rappresentante. (1)MAKE_SET(u) Questa operazione non fa altro che creare un nuovo insieme contenente il solo elemento u {u} (2)FIND_SET(u) Questa operazione trova l indice i tale che u Si o per dirla in un altra maniera, si trova il rappresentante dell insieme a cui appartiene u. (3)UNION(u,v)
5 Unisce gli insiemi a cui appartengono u e v. NOTA: Nel caso di rappresentazione con liste: Make_set(u) viene creata una nuova lista con il solo elemento u Find_set(u) si scorrono le liste per trovare l elemento u (e per vedere a quale lista appartiene) Union(u,v) si concatenano le due liste. Nel caso di rappresentazione mediante alberi: Make_set(u) si crea un nuovo albero con il solo elemento u Find_set(u) viene fatta una ricerca all interno degli alberi (similmente quindi a quanto fatto per le liste) Union(u,v) viene creato un unico albero Per convenzione per quanto riguarda gli alberi si tende a considerare come rappresentante dell insieme la radice dell albero. KRUSKAL(G,w) 1. A:=Ø 2. foreach u V[G] do O(n) 3. Make_set(u) 4. ordina gli archi di E per peso non decrescente O(m log m) 5. foreach (u,v) E ordinato in modo non decrescente 6. if Find_set(u) Find_set(v) then 7. A:=A {(u,v)} 8. Union(u,v) 9. return A mα (n.m) dove α (n.m) <= 4 e α (n.m) = O(log m) O(m log m) Posto n= V e m= E, come si puo osservare da sopra la complessita totale e O(m log m) ALGORITMO DI PRIM (G, w, r) In Kruskal ad ogni passo dell esecuzione A e una foresta. In Prim si parte da un vertice e lo si espande mantenendo l invariante che formi un albero. IDEA BASE A Prendo l arco + leggero Devo mantenere due strutture dati particolari - key[u] - π [u] e l insieme Q che contiene i vertici non ancora visitati. All inizio avro che V-Q=Ø. Gli elementi di Q sono ordinati mediante key[u] abbiamo una coda a priorita In key[u] va memorizzato il peso dell arco piu leggero del tipo (u,v) Key[u]=min{w(u,v) v (V-Q) N(u)} dove N(u) insieme dei vertici adiacenti a u π [u]= predecessore di u nell albero (infatti che ho stabilito quale sia la radice all interno del mio albero libero, risulta automatica la relazione predecessore/successore)
6 PRIM(G, w, r) 1. Q:=V[G] 2. foreach u Q do 3. key[u]:= //inizializzo 4. key[r]=0 //chiave della sorgente o radice 5. π [r]=nil //predecessore della radice 6. while Q Ø do //finche ho ancora vertici da visitare 7. u=extractmin(q) 8. foreach v Adj[u] //per ogni vertice adiacente 9. if v Q && w(u,v) < key[v] then 10. key[v]=w(u,v) 11. π [v]=u 12. return A={(u, π [u]) E u V-{r}} COMPLESSITA PRIM (poniamo m= E, n= V ) L inizializzazione delle strutture dati linee 1-5 ha complessita O(n), devo infatti inizializzare V vertici. Il ciclo while, linea 6, verra eseguito O(n), infatti all inizio la coda con priorita contiene nnumero dei vertici. Il costo di una extractmin(q), linea 7, e O(log n), quindi il costo totale di tutte le extractmin sara di O(n log n). Le righe 8-11 hanno saranno eseguite al max O(m), perche poiche stiamo parlando di vertici adiacenti sappiamo che u deg( u) = 2 E. trovo un possible arco + leggero e eventualmente modifico i valori dell adiacente in questione Ricordiamo inoltre che la riga 10, che effettua una modifica della key[n], poiche usiamo una coda con priorita, impiega O(log n) (viene infatti fatta una DecreaseKey). Concludendo quindi possiamo dire che il blocco delle linee 6-11 ha complessita totale O(m log n). La complessita totale dell algoritmo e quindi O(n log n + m log n). Pero n log n <= m log n O(m log n) 2 Ma siccome m <= n log m <= 2 log n m log m <= 2 m log n Asintoticamente quindi possiamo dire O(m log m) = O(m log n). Prim risulta cosi essere asintoticamente uguale a Kruskal.
VISITA IL SITO PER ALTRO MATERIALE E GUIDE
COPYRIGHT SEGO LICENSE Questo documento viene fornito così come è: se pensate che faccia schifo problemi vostri, nessuno vi obbliga a leggerlo. Se pensate che sia qualcosa di positivo e/o avete suggerimenti
DettagliAlgoritmi & Laboratorio
Acknowledgement Lucidi da F. Damiani, a.a. 2004-2005 C. Demetrescu et al, Algoritmi e strutture dati, McGraw-Hill M. Zacchi, a.a. 2003-2004 I lucidi non sono un sostituto per il libro di testo non contengono
DettagliMinimo 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.
DettagliGrafi (non orientati e connessi): minimo albero ricoprente
.. Grafi (non orientati e connessi): minimo albero ricoprente Una presentazione alternativa (con ulteriori dettagli) Problema: calcolo del minimo albero di copertura (M.S.T.) Dato un grafo pesato non orientato
DettagliAlgoritmi & Laboratorio
lbero ricoprente sia dato un grafo connesso e non orientato un albero ricoprente è un sottografo che contiene tutti nodi è aciclico è connesso cknowledgement Lucidi da. Damiani, a.a. 00-00. Demetrescu
DettagliAlberi di copertura minimi
Alberi di copertura minimi 1 Problema Nella progettazione di circuiti elettronici è spesso necessario collegare i morsetti. Per connettere un insieme di n morsetti si può usare un insieme di n-1 fili elettrici.
DettagliLaboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ Grafi pesati e alberi minimi di copertura Riepilogo delle lezioni precedenti Definizione di
DettagliLABORATORIO DI ALGORITMI E STRUTTURE DATI A-L. Ingegneria e scienze informatiche Cesena A.A: 2016/2017 Docente: Greta Sasso
LABORATORIO DI ALGORITMI E STRUTTURE DATI A-L Ingegneria e scienze informatiche Cesena A.A: 2016/2017 Docente: Greta Sasso Minimum Spanning Tree Albero di copertura (Spanning Tree): un albero di copertura
DettagliLaboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Prof. Aniello Murano Componenti fortemente connesse e Alberi minimi di copertura Corso di Laurea Codice insegnamento Email docente Anno accademico Informatica
DettagliGrafi pesati Minimo albero ricoprente
Algoritmi e Strutture Dati Definizioni Grafi pesati Minimo albero ricoprente Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è un albero; T contiene
DettagliGrafi (orientati): cammini minimi
.. Grafi (orientati): cammini minimi Una presentazione alternativa (con ulteriori dettagli) Un algoritmo greedy per calcolare i cammini minimi da un vertice sorgente in un grafo orientato e pesato, senza
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Minimo albero ricoprente Fabio Patrizi 1 Albero ricoprente Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è un albero;
DettagliAlgoritmi e Strutture Dati. Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal
Algoritmi e Strutture Dati Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Progettare una rete stradale Supponiamo di dover progettare una rete stradale in cui il costo di costruzione di un
DettagliAlgoritmi e Strutture Dati
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmi e Strutture Dati Capitolo 2 Minimo albero ricoprente: Algoritmo di Prim Il problema del calcolo di un Minimum
DettagliAlgoritmi e strutture dati
Algoritmi e Strutture Dati Minimo albero ricoprente Sia G = (V, E) un grafo connesso non orientato. Definizioni Un albero ricoprente di G è un sottografo T G tale che: T è un albero; T contiene tutti i
DettagliEsempi. non. orientato. orientato
Definizione! Un grafo G = (V,E) è costituito da un insieme di vertici V ed un insieme di archi E ciascuno dei quali connette due vertici in V detti estremi dell arco.! Un grafo è orientato quando vi è
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Minimo albero ricoprente Domenico Fabio Savo 1 Albero ricoprente Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è un
DettagliPROBLEMA 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
DettagliGrafi: visita generica
.. Grafi: visita generica Una presentazione alternativa (con ulteriori dettagli) Algoritmi di visita Scopo: visitare tutti i vertici di un grafo (si osservi che per poter visitare un vertice occorre prima
DettagliAlgoritmi 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
DettagliProgettazione di Algoritmi. Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo. Appello del 22 Febbraio Attenzione:
COGNOME: Nome: Progettazione di Algoritmi Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo Appello del 22 Febbraio 2016 Attenzione: Inserire i propri dati nell apposito spazio soprastante e sottostante.
DettagliAlgoritmi e Strutture Dati
Algoritmi Elementari su Grafi Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Polo di Scienze Università di Camerino ad Ascoli Piceno Visita
DettagliAlgoritmi e Strutture Dati
Introduzione ai grafi Grafi: Definizione e Algoritmi di visita Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2007/08 Introduzione ai
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 3 Cammini minimi: algoritmo di Dijkstra Cammini minimi in grafi: cammini minimi a singola sorgente (senza pesi negativi) Cammini minimi in grafi pesati Sia G=(V,E,w)
DettagliAlgoritmi e Strutture dati Mod B. Grafi Percorsi Minimi: algoritmi esatti e algoritmi euristici (A*)
Algoritmi e Strutture dati Mod B Grafi Percorsi Minimi: algoritmi esatti e algoritmi euristici (A*) Grafi: Percorsi minimi Un percorso minimo in un grafo G= grafo pesato orientato, con funzione di
DettagliBioinformatica. Grafi. a.a Francesca Cordero. Grafi Bioinformatica
fcordero@di.unito.it Introduzione cknowledgement Lucidi da. Horváth,. emetrescu et al, lgoritmi e strutture dati, McGraw-Hill 3 efinizione: che cosa sono i grafi? definizione astratta: un grafo G = (V,)
DettagliGrafi (non orientati e connessi): minimo albero ricoprente
Grafi (non orientati e connessi): minimo albero ricoprente Una breve presentazione Definizioni Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è
DettagliGrafi (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
DettagliAlgoritmi e Strutture Dati. Capitolo 13 Cammini minimi: Algoritmo di Bellman e Ford
Algoritmi e Strutture Dati Capitolo 13 Cammini minimi: Algoritmo di Bellman e Ford Cammini minimi in grafi: una trilogia Cammini minimi in grafi: Episodio II: cammini minimi a singola sorgente (per grafi
DettagliCammini Minimi. Algoritmo di Dijkstra. Cammino in un grafo
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
DettagliProblema 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
DettagliAlgoritmi 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
DettagliEsercitazione 3. Osserviamo che, dato un grafo con pesi distinti, questo ammette un unico MST.
Esercitazione 3 Problema 6: Sia G = (V, E) un grafo con pesi distinti sugli archi ed e E un arco di G. Progettare un algoritmo lineare in grado di determinare se esiste un MST di G che contiene l arco
DettagliUniversità Roma Tre - PAS Classe A048 "Matematica Applicata" - Corso di Informatica a.a. 2013/2014
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A08 Matematica Applicata Corso di Informatica Algoritmi su Grafi Marco Liverani (liverani@mat.uniroma.it) Sommario
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione
Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica (IN0 Fondamenti) Grafi e alberi: introduzione Marco Liverani (liverani@mat.uniroma.it)
DettagliCammini 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
DettagliCammini minimi con sorgente singola
Cammini minimi con sorgente singola Vittorio Maniezzo - Università di Bologna Cammini minimi con sorgente singola Dato: un grafo(orientatoo non orientato) G= (V,E,W) con funzionedi peso w:e R un particolarevertices
DettagliCammini minimi. Damiano Macedonio
Cammini minimi Damiano Macedonio mace@unive.it Copyright 2010 2012, Moreno Marzolla, Università di Bologna, Italy (http://www.moreno.marzolla.name/teaching/asd2011b/) Modifications Copyright c 2015, Damiano
DettagliAlgoritmi. Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo. Appello del 6 Aprile Attenzione:
COGNOME: Nome: Algoritmi Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo Appello del 6 Aprile 2016 Attenzione: Inserire i propri dati nell apposito spazio soprastante e sottostante. Non voltare
DettagliProgettazione 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
DettagliVisite in Grafi BFS e DFS
Visite in Grafi BFS e DFS Visita di un Grafo Obiettivo: Visitare una sola volta tutti i nodi del grafo. Es.: visitare un porzione del grafo del Web Difficoltà: Presenza di cicli: Marcare i nodi visitati
DettagliAlberi e arborescenze di costo minimo
Alberi e arborescenze di costo minimo Complementi di Ricerca Operativa Giovanni Righini Dipartimento di Tecnologie dell Informazione - Università degli Studi di Milano Definizioni - 1 Un grafo G = (V,
Dettagli2.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
DettagliAlgoritmi e Strutture dati Mod B. Grafi: Percorsi Minimi (parte I)
Algoritmi e Strutture dati Mod B Grafi: Percorsi Minimi (parte I) Grafi: Percorsi minimi Un percorso minimo in un grafo G= grafo pesato orientato, con funzione di peso w: E fi che mappa archi in pesi
DettagliSommario della lezione
Sommario della lezione Algoritmo di Prim per MST, sua implementazione ed analisi Algoritmo di Kruskal per MST, sua implementazione ed analisi Universitá degli Studi di Salerno Corso di Algoritmi Prof.
DettagliAlgoritmi e Strutture Dati. Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal (*)
Algoritmi e Strutture Dati Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal (*) Progettare una rete stradale Supponiamo di dover progettare una rete stradale in cui il costo di costruzione di
Dettagli2.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
DettagliGrafi: 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,
DettagliStrutture dati per insiemi disgiunti
Strutture dati per insiemi disgiunti Servono a mantenere una collezione S = {S 1, S 2,..., S k } di insiemi disgiunti. Ogni insieme S i è individuato da un rappresentante che è un particolare elemento
DettagliEsercitazione 7. Grafi. Rappresentazione e algoritmi di visita
Esercitazione 7 Grafi Rappresentazione e algoritmi di visita Grafo G = (V,E) non orientato 1 1 G = (V,E) orientato 6 Rappresentazione Grafo G = (V,E) metodi standard per la rappresentazione Liste di adiacenza
Dettagli2.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
DettagliCammini 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
DettagliEsercizi svolti a lezione
Esercizi svolti a lezione Problema 1 In un corso di laurea sono previsti un certo numero di esami obbligatori. Esistono inoltre dei vincoli di propedeuticità: se un esame A è propedeutico ad un esame B
Dettagli2 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
DettagliSoluzioni 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
DettagliVisite in Grafi BFS e DFS. PDF created with FinePrint pdffactory trial version
Visite in Grafi BFS e DFS Visita di un Grafo 8Obiettivo: 4Visitare una sola volta tutti i nodi del grafo. 4Es.: visitare un porzione del grafo del Web 8Difficoltà : 4Presenza di cicli: Marcare i nodi visitati
DettagliProgettazione di algoritmi. Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo. Appello del 15 Novembre Attenzione:
COGNOME: Nome: Progettazione di algoritmi Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo Appello del 15 Novembre 2016 Attenzione: Inserire i propri dati nell apposito spazio soprastante e sottostante.
Dettagli2.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
DettagliRichiami di matematica discreta: grafi e alberi. Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino
Richiami di matematica discreta: grafi e alberi Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Grafi Definizione: G = (V,E) V: insieme finito di vertici E: insieme finito di archi,
DettagliAnalisi 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
DettagliTeoria dei Grafi Parte I. Alberto Caprara DEIS - Università di Bologna
Teoria dei Grafi Parte I Alberto Caprara DEIS - Università di Bologna acaprara@deis.unibo.it Teoria dei Grafi Paradigma di rappresentazione di problemi Grafo G : coppia (V,E) V = insieme di vertici E =
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Grafi e visite di grafi Fabio Patrizi 1 Grafo: definizione Un grafo G=(V,E) consiste in: - un insieme V di vertici (o nodi) - un insieme E di coppie di vertici, detti archi (o
DettagliIntroduzione 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
DettagliK 4 è planare? E K 3,3 e K 5 sono planari? Sì! No! (Teorema di Kuratowski) K 5. Camil Demetrescu, Irene Finocchi, Giuseppe F.
K 4 è planare? Sì! E K 3,3 e K 5 sono planari? K 5 No! (Teorema di Kuratowski) 1 Un albero è un grafo bipartito? SÌ! Ma un grafo bipartito è sempre un albero?? 2 Algoritmi e Strutture Dati Capitolo 11
DettagliProblemi, 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
DettagliOrdinamenti. Grafo : definizione. Un grafo G = (V,E)è composto da: V: insieme di vertici E V V: insieme di archi (edge) che connettono i vertici
Ordinamenti 1 Vittorio Maniezzo Università di Bologna Grafo : definizione Un grafo G = (V,E)è composto da: V: insieme di vertici E V V: insieme di archi (edge) che connettono i vertici Un arco a= {u,v}
DettagliTeoria dei Grafi Parte I
Teoria dei Grafi Parte I Daniele Vigo D.E.I.S. - Università di Bologna dvigo@deis.unibo.it Teoria dei Grafi Paradigma di rappresentazione di problemi Grafo G : coppia (V,E) V = insieme di vertici E = insieme
DettagliEsercitazione 2. Progettare un algoritmo che risolva tale problema in tempo O( E + V log V ).
Esercitazione 2 Problema 4: Dato un grafo G = (V, E) con pesi positivi sugli archi ed un insieme di k centri C = {c 1, c 2, c k } V, si richiede di partizionare l insieme V in k insiemi V 1, V 2, V k in
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Grafi e visite di grafi Domenico Fabio Savo 1 Grafo: definizione Un grafo G=(V,E) consiste in: - un insieme V di vertici (o nodi) - un insieme E di coppie di vertici, detti archi
DettagliLaboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Prof. Aniello Murano Grafi: Implementazione ed operazioni di base Corso di Laurea Codice insegnamento Email docente Anno accademico Laboratorio di Algoritmi e
DettagliCammini minimi con sorgente singola
Capitolo 11 Cammini minimi con sorgente singola efinizione 11.1. Sia G = (V,, w) un grafo orientato e pesato; dato il cammino p = v 0, v 1,..., v k in G, il valore w(p) = k i=1 w(v i 1, v i ) rappresenta
DettagliCapitolo 5. Algoritmi di ricerca su grafo. 5.1 Algoritmi di ricerca su grafo
Capitolo 5 Algoritmi di ricerca su grafo Gli algoritmi di ricerca su grafo, oggetto dei prossimi paragrafi, rappresentano tecniche fondamentali per determinare nodi che soddisfino particolari proprietà
DettagliEsercizi 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
DettagliG è 2-colorabile se ogni nodo può essere colorato di bianco o di nero in modo che nodi connessi da archi siano colorati con colori distinti.
Grafi Grafi bipartiti Un grafo non orientato G è bipartito se l insieme dei nodi può essere partizionato in due sottoinsiemi disgiunti tali che nessun arco del grafo connette due nodi appartenenti allo
Dettagli2 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
DettagliSommario. Rappresentazione dei grafi. Ordinamento topologico. Visita in ampiezza Visita in profondità
Visite Grafi Sommario Rappresentazione dei grafi Visita in ampiezza Visita in profondità Ordinamento topologico Visita in ampiezza La visita in ampiezza breadth-first-search (BFS) di un grafo dato un vertice
DettagliInformatica 3. LEZIONE 25: Algoritmi sui grafi. Modulo 1: Problema del percorso più breve Modulo 2: Spanning tree a costo minimo
Informatica LEZIONE 2: Algoritmi sui grafi Modulo 1: Problema del percorso più breve Modulo 2: Spanning tree a costo minimo Informatica Lezione 2 - Modulo 1 Problema del percorso più breve Problema Problema:
DettagliAlgoritmi e Strutture di Dati II 2. Visite di grafi
Algoritmi e Strutture di Dati II 2 Visite di grafi Gli algoritmi di visita di un grafo hanno come obiettivo l esploraione di tutti i nodi e gli archi del grafo. Vi sono due modi principali per esplorare
DettagliCammini 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
DettagliAppunti 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
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 12 Grafi e visite di grafi Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Definizione Un grafo G=(V,E) consiste in: - un insieme V di vertici (o nodi) - un insieme
DettagliIl Problema dell Albero Ricoprente Minimo (Shortest Spanning Tree - SST)
Il Problema dell Albero Ricoprente Minimo (Shortest Spanning Tree - SST) È dato un grafo non orientato G=(V,E). Ad ogni arco e i E, i=1,,m, è associato un costo c i 0 7 14 4 10 9 11 8 12 6 13 5 17 3 2
DettagliFormulazioni. Consideriamo il seguente problema di Knapsack 0-1. max (5x x 2. ) st 3x x 2. < 6 x {0,1} 2
Formulazioni Consideriamo il seguente problema di Knapsack 0-1 max (5x 1 + 2x 2 ) st 3x 1 + 4x 2 < 6 x {0,1} 2 Insiemi ammissibili F = {(0, 0), (0, 1), (1, 0)} Rappresentiamo sul piano gli insiemi ammissibili.
DettagliProgettazione di Algoritmi (9 CFU) Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo. Appello del 27 Giugno 2018.
COGNOME: Nome: Progettazione di Algoritmi (9 CFU) Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo Appello del 27 Giugno 2018 Attenzione: Inserire i propri dati nell apposito spazio soprastante
DettagliParte IV: Matrici totalmente unimodulari
Parte IV: Matrici totalmente unimodulari Formulazioni Consideriamo il seguente problema di Knapsack 0-1 max (5x 1 + 2x 2 ) st 3x 1 + 4x 2 < 6 x {0,1} 2 Insiemi ammissibili F = {(0, 0), (0, 1), (1, 0)}
DettagliOrdinamenti. Vittorio Maniezzo Università di Bologna
Ordinamenti 1 Vittorio Maniezzo Università di Bologna Grafo : definizione Un grafo G = (V,E)è composto da: V: insieme di vertici E V V: insieme di archi (edge) che connettono i vertici Un arco a= {u,v}
DettagliAlgoritmi Avanzati Soluzioni dello scritto del 2 febbraio 2004 (appello straordinario)
Algoritmi Avanzati Soluzioni dello scritto del febbraio 004 (appello straordinario) 1. Tengo nascosto nel taschino della giacca un grafo misterioso di 7 nodi. Vi dico solo che listando le valenze (= numero
DettagliAnalisi e progetto di algoritmi: soluzioni degli esercizi
Analisi e progetto di algoritmi: soluzioni degli esercizi Daniele Turato 24 giugno 2008 Indice 1 Esercizi assegnati in classe 2 1.1 Lezione 1: nozioni basilari sui grafi................. 2 1.1.1 Esercizio
DettagliGrafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
Grafi: visite Una breve presentazione Visite di grafi Scopo e tipi di visita Una visita (o attraversamento) di un grafo G permette di esaminare i nodi e gli archi di G in modo sistematico Problema di base
DettagliProgettazione di Algoritmi - lezione 11
Progettazione di Algoritmi - lezione 11 Discussione dell'esercizio [rifornimenti] Un algoritmo greedy per questo problema è quello che si presenta naturalmente: facciamo rifornimento solo quando è necessario,
DettagliAlgoritmi 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
DettagliEsercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016
Esercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Tong Liu April 14, 2016 Elementi Fondamentali Rappresentazione n = V numero di vertici (nodi) m = E numero di archi Matrice di adiacenza:
DettagliCammini di costo minimo
Cammini di costo minimo Ivan Lanese Dipartimento di Informatica Scienza e Ingegneria Università di Bologna ivan.lanese@gmail.com http://www.cs.unibo.it/~lanese/ Cammini di Costo Minimo 2 Definizione del
DettagliAlgoritmi. Matricole dispari Prof.ssa Anselmo. Appello straordinario del 17 Aprile Attenzione:
COGNOME: Nome: Algoritmi Matricole dispari Prof.ssa Anselmo Appello straordinario del 17 Aprile 2015 Attenzione: Inserire i propri dati nell apposito spazio soprastante e sottostante. Non voltare la pagina
DettagliIntroduzione ai Grafi: Implementazione e operazioni di base
Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Introduzione ai Grafi: Implementazione e operazioni di base 2 1 Informazione Generali (1)
DettagliGrafi. V = {a, b, c, d} E = {(a, b), (a, c), (c, a), (d, d), (b, d)}
Grafi Grafo orientato (o diretto) = (V,E) V = nodi o vertici - E = archi (edges) V = {a, b, c, d} E = {(a, b), (a, c), (c, a), (d, d), (b, d)} archi uscenti da un nodo x: (x, y) archi incidenti su un nodo
DettagliGrafi giu 03 ASD - Grafi
Grafi giu 03 ASD - Grafi Definizioni/1 Struttura dati per la rappresentazione di relazioni binarie G=(V,E), V =n, E =m V: insieme di Vertici E={(v i, v j ): v i, v j (v i, v j ) = (v j, v i ) (v i, v j
Dettagli