Bioinformatica. Grafi. a.a Francesca Cordero. Grafi Bioinformatica
|
|
- Tommasa Camilla Grande
- 4 anni fa
- Visualizzazioni
Transcript
1
2 Introduzione
3 cknowledgement Lucidi da. Horváth,. emetrescu et al, lgoritmi e strutture dati, McGraw-Hill 3
4 efinizione: che cosa sono i grafi? definizione astratta: un grafo G = (V,) consiste in un insieme V di vertici (nodi) un insieme di coppie di vertici (archi, spigoli): ogni arco connette due vertici V rappresenta un insieme di oggetti rappresenta relazione tra questi oggetti due tipi di grafi: orientati non orientati (non diretti) 4
5 sempi sempio I: V = {persone che vivono in Italia}, = {coppie di persone che si sono strette la mano} sempio II: V = {persone che vivono in Italia}, = {(x,y) tale che x ha inviato una mail a y} 5
6 Terminologia relazione simmetrica (coppie non ordinate) grafo non orientato (esempio I) V = {,,,,, } = {(,), (,), (,), (,), (,), (,)} (,) e (,) denotano lo stesso arco 6
7 Terminologia relazione non simmetrica (coppie ordinate) grafo orientato (esempio II) V = {,,,,, } = {(,), (,), (,), (,), (,), (,), (,)} (,) e (,) denotano due archi diversi 7
8 Terminologia in un grafo orientato, un arco (x,y) è incidente da x in y (,) è incidente da a (,) è incidente da in (,) è incidente da in 8
9 Terminologia un vertice x si dice adiacente a y se e solo se (y,x) è adiacente ad è adiacente a, a e ad è adiacente a e viceversa non è adiacente a non è adiacente ad alcun vertice 9
10 Terminologia in un grafo non orientato, la relazione di adiecenza è simmetrica è adiacente ad e viceversa è adiacente a e viceversa non è adiacente ad alcun vertice 10
11 in un grafo non orientato: efinizioni: grado il grado di un vertice è il numero di archi che da esso si dipartono in un grafo orientato: il grado entrante (uscente) di un vertice è il numero di archi incidenti in (da) esso il grado di un vertice è la somma del suo grado entrante e del suo grado uscente 11
12 efinizioni: peso associamo ad ogni arco un peso grafo pesato: (G,W) dove G è un grafo W è la funzione peso: W : R dove R è l insieme dei numeri reali W((,)) = 3,W((,)) = 2.3,W((,)) = 12
13 sia G = (V,) un grafo efinizioni: sottografo un sottografo di G è un grafo H = (V, ) tale che V V e poichè H è un grafo, deve valere che V V V = {,,,}, = {(,), (,), (,)} 13
14 efinizioni: cammino in grafo non orientato sia G = (V,) un grafo un cammino nel grafo G è una sequenza di vertici v 1,v 2,...,v n tale che (v i,v i+1 ) per 1 i < n la lunghezza del cammino è il numero totale di passaggi ad un vertice al altro (uno in meno del numero di vertici) ,,,,,, è un cammino nel G di lunghezza 6 14
15 efinizioni: cammino in grafo orientato sia G = (V,) un grafo orientato un cammino nel grafo G è una sequenza di vertici v 1,v 2,...,v n tale che (v i,v i+1 ) per 1 i < n ,,,,, è un cammino nel G,,,,, non è un cammino nel G 15
16 efinizioni: cammino in grafo non orientato un cammino è un cammino semplice se tutti suoi vertici sono distinti (compaiono una sola volta nella sequenza) eccetto al più il primo e l ultimo che possono essere lo stesso ,,,,,, è un cammino non semplice,,,, è un cammino semplice 16
17 efinizioni: raggiungibilità se esiste un cammino p tra i vertici x e y, si dice che y è raggiungibile da x (x y ) è raggiungibile da e viceversa in un grafo non orientato la relazione di raggiungibilità è simmetrica 17
18 efinizioni: raggiungibilità se esiste un cammino p tra i vertici x e y, si dice che y è raggiungibile da x (x y ) è raggiungibile da ma non è raggiungibile da in un grafo orientato la relazione di raggiungibilità non è simmetrica 18
19 efinizioni: grafo connesso se G è un grafo non orientato, definiamo G connesso se esiste un cammino da ogni vertice ad ogni altro vertice questo grafo è connesso 19
20 efinizioni: grafo connesso se G è un grafo non orientato, definiamo G connesso se esiste un cammino da ogni vertice ad ogni altro vertice questo grafo non è connesso 20
21 efinizioni: grafo fortemente connesso se G è un grafo orientato, definiamo G fortemente connesso se esiste un cammino da ogni vertice ad ogni altro vertice questo grafo è fortemente connesso 21
22 efinizioni: grafo fortemente connesso se G è un grafo orientato, definiamo G fortemente connesso se esiste un cammino da ogni vertice ad ogni altro vertice questo grafo non è fortemente connesso non esiste cammino da ad 22
23 efinizioni: grafo debolmente connesso se G è un grafo orientato, definiamo G debolmento connesso se il grafo ottenuto da G dimenticando la direzione degli archi è connesso questo grafo è debolmente connesso 23
24 efinizioni: ciclo un ciclo è un cammino x 1,...,x n di lunghezza almeno 1, tale che x 1 = x n il cammino,,,, è un ciclo 24
25 efinizioni: grafo aciclico un grafo senca cicli è detto aciclico questo grafo non è aciclico perchè esiste il ciclo,, un grafo orientato aciclico è spesso chiamato directed acyclic graph (G) 25
26 efinizioni: grafo completo un grafo completo è un grafo che ha un arco tra ogni coppia di vertici questo grafo non è completo 26
27 efinizioni: grafo completo un grafo completo è un grafo che ha un arco tra ogni coppia di vertici questo grafo è completo ( numero ) di archi in un grafo completo con n vertici: n n(n 1) =
28 efinizioni: albero libero un albero libero è un grafo non orientato, connesso, aciclico libero si riferisce al fatto che non è definito quale vertice è la radice 28
29 efinizioni: albero radicato un albero radicato è un grafo non orientato, connesso, aciclico con un vertice designato ad essere radice radice 29
30 Rappresentazione: matrice di adiacenza, grafo non orientato M(x,y) = { 1 se (x,y) 0 altrimenti
31 Rappresentazione: lista di adiacenza, grafo non orientato L(x) = lista di y, tale che (x,y) per x V 31
32 Rappresentazione: matrice di adiacenza, grafo orientato M(x,y) = { 1 se (x,y) 0 altrimenti
33 Rappresentazione: lista di adiacenza, grafo orientato L(x) = lista di y, tale che (x,y) per x V 33
34 Rappresentazione: matrice di adiacenza, grafo pesato M(x,y) = W(x,y)
35 Rappresentazione: lista di adiacenza, grafo pesato L(x) = lista di W(x,y), tale che W(x,y) 0 per x V
36 Visite
37 Visite scopo: visitare tutti nodi e archi in modo sistematico problema di base in molte applicazioni la visita fornisce informazione sul grafo visitato vari tipi di visite: in ampiezza, breadth first search in profondità, depth first search
38 Realizzazione insieme di vertici diviso in tre sottoinsiemi: bianco: nodi non ancora scoperti (non visitati) grigio: vertici scoperti di cui adiacenti non sono ancora tutti scoperti (nodi da cui bisogna andare ancora avanti; la frangia) nero: nodi scoperti di cui adiacenti sono già stati scoperti (nodi da cui non bisogna andare avanti più) proprietà I: colore di un nodo può solo passare da bianco a grigio a nero
39 lgoritmo di visita in ampiezza, S VISIT(G, s) make empty color[s] grigio add(, s) while non empty() do u first() if v bianco adj[u] then color[v] grigio π[v] u add(, v) else color[u] black remove first() struttura dati di è una coda visita in ampiezza (breadth first search, S)
40 sempio di S G H oda :
41 sempio di S G H
42 sempio di S G H
43 sempio di S G H
44 sempio di S G H
45 sempio di S G H H H
46 sempio di S G H H H
47 sempio di S G H H H G G
48 sempio di S G H H G G
49 sempio di S G H H G G
50 sempio di S G H H G
51 lgoritmo di visita in profondità, S VISIT(G, s) make empty color[s] grigio add(, s) while non empty() do u first() if v bianco adj[u] then color[v] grigio π[v] u add(, v) else color[u] black remove first() struttura dati di è una pila visita in profondità (depth first search, S)
52 sempio di S H G Pila:
53 sempio di S H G Pila :
54 sempio di S H G Pila :
55 sempio di S H G Pila : H H
56 sempio di S H G Pila : H
57 sempio di S H G Pila : H
58 sempio di S H G Pila : G G H
59 sempio di S H G Pila : G H
60 sempio di S H G Pila : G H
61 sempio di S H G Pila : G H
62 sempio di S H G Pila : G H
63 , componenti fortemente connessi
64 efinizione di componenti fortemente connessi ato un grafo diretto G = (V,), una componente fortemente connessa (cfc) un insieme massimale di vertici U sottoinsieme di V tale che per ogni coppia di vertici u,v in U, u raggiungibile da v e viceversa. Useremo la notazione u v per indicare che i vertrici u e v sono nella stesso cfc
65 Un esempio di algoritmo un esempio: visitiamo il grafo a partire da 3 cfc: {},{,,},{, } nello stesso albero ci sono nodi di più cfc
66 Un esempio di algoritmo albero si può potare in modo da separare le cfc questo è sempre possibile: sia u discendente di v in un albero della S e u v discendenti di u non possono appartenere al cfc di v
67 , cammini minimi
68 ammini minimi sia dato un un grafo orientato e pesato distanza di un vertice u da un vertice v: δ(v,u), il peso di un cammino di peso minimo tra tutti i cammini da v a u δ(v,u) = min{w(p) p è un cammino da v a u} dove W(p) è la somma dei pesi degli archi che formano il cammino δ(v,u) è ben definito solo se nessun cammino da v ad u contiene un ciclo di peso negativo
69 lgoritmi greedy per trovare cammini minimi da un dato nodo input: grafo orientato e pesato un nodo (sorgente) output: v V (G) l attributo d[v] indica la distanza di v dal vertice sorgente algoritmi greedy: dobbiamo individuare cosa rende un vertice appettibile l attributo d[v] mantiene una stima (maggiore o uguale) della distanza di v da s un vertice è tanto più appetibile quanto minore è la stima della sua distanza dal sorgente
70 L idea dell algoritmo inizialmente: d[s]=0, v V (G),v s : d[v]= si costruisce un albero, di radice s, in cui viene inserito un vertice per volta: il più appetibile l albero è memorizzato implicitamente come l insieme dei suoi archi < π[v],v > quando un vertice u è inserito nell albero, si aggiornano le stime delle distanze dei vertici v ad esso adiacenti, in quanto potrebbe esistere un cammino da s a v, attraverso il vertice u, meno pesante del cammino da s a v considerato fino a quel momento
71 lgoritmo di ijkstra ijkstra(g, s) Q V for v V do d[v], π[v] nil d[s] 0 π[s] nil while Q do u togli nodo con d minimo da Q for v adj[u] do if v Q e d[u] + W(u,v) < d[v] then d[v] d[u] + W(u,v) π[v] u
72 Un esempio distanze: d[]=0, d[]=, d[]=, d[]=, d[]= da scegliere: nuove distanze: d[]=0, d[]=3, d[]=2, d[]=4, d[]=
73 Un esempio distanze: d[]=0, d[]=3, d[]=2, d[]=4, d[]= da scegliere: nuove distanze: d[]=0, d[]=3, d[]=2, d[]=4, d[]=
74 Un esempio distanze: d[]=0, d[]=3, d[]=2, d[]=4, d[]= da scegliere: nuove distanze: d[]=0, d[]=3, d[]=2, d[]=4, d[]=6
75 Un esempio distanze: d[]=0, d[]=3, d[]=2, d[]=4, d[]=6 da scegliere: nuove distanze: d[]=0, d[]=3, d[]=2, d[]=4, d[]=5
76 Un esempio distanze: d[]=0, d[]=3, d[]=2, d[]=4, d[]=5 da scegliere: nuove distanze: d[]=0, d[]=3, d[]=2, d[]=4, d[]=5
77 Un esempio distanze: d[]=0, d[]=3, d[]=2, d[]=4, d[]=5
78 lgoritmo di ijkstra applica la strategia greedy vista in precedenza funzione se tutti i pesi sono maggiori o uguali a 0
Grafi: introduzione. Definizioni: che cosa sono i grafi. Definizione
Grafi: introduzione e rappresentazione efinizioni: che cosa sono i grafi Un grafo G=(V,) consiste in: un insieme V di vertici (o nodi) un insieme di coppie di vertici, detti archi o spigoli: ogni arco
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 Grafi. Daniele Loiacono
lgoritmi e Strutture ati Grafi Riferimenti 2 Questo materiale è tratto dalle trasparenze del corso lgoritmi e Strutture ati del prof. lberto Montresor dell Università di Trento. (http://www.dit.unitn.it/~montreso/asd/index.shtml)
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 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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,
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
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
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
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)
DettagliGrafi diretti. Un grafo diretto (o grafo orientato) G è una coppia (V,E) dove. V è u n i n s i e m e d i nodi (o vertici);
Algoritmi e Strutture di Dati II 2 Grafi diretti Un grafo diretto (o grafo orientato) G è una coppia (V,E) dove V è u n i n s i e m e d i nodi (o vertici); E µ V V è u n i n s i e m e d i archi. Denotiamo
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
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
DettagliGRAFI. Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi!
G R A F I 1 GRAFI Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi! 2 cip: cip: Pallogrammi Pallogrammi GRAFI: cosa sono I grafi sono una struttura matematica fondamentale: servono
DettagliProblema: attraversamento di un grafo. Definizione del problema
Problema: attraversamento di un grafo Visita: attenzione alle soluzioni facili Definizione del problema Prendere ispirazione dalla visita degli alberi Dato un grafo =(V, ) ed un vertice r di V (detto sorgente
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
DettagliGrafi: definizioni e visite
Grafi: definizioni e visite Grafi (non orientati) Grafo (non orientato): G = (V, E) V = nodi (o vertici) E = archi fra coppie di nodi distinti. Modella relazioni fra coppie di oggetti. Parametri della
DettagliNote 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
DettagliAlgoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte II
Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte II Classificazione digli archi Sia G la foresta DF generata da DFS sul grafo G. Arco d albero: gli
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
Dettagliuscente entrante adiacente Figure B.2 (a) (b) (c) incident from leaves incident to enters incident on adjacent degree isolated
Grafi Si dice grafo un insieme di nodi legati "a due a due" da archi direzionati (o no) I grafi sono strutture dati di fondamentale importanza in informatica Vi sono centinaia di problemi computazionali
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
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)
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
DettagliGrafi: visita in profondita
.. rafi: visita in profondita Una presentazione alternativa (con ulteriori dettagli) onsideriamo la versione concreta dell algoritmo di visita generica con costruzione del sottografo dei predecessori:
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)
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 Grafi Un grafo è una struttura definita come un insieme di nodi (o vertici) che
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:
DettagliGrafi non orientati. Grafi (non orientati) Rappresentazione di Grafi: matrice delle adiacenze. Tipiche applicazioni di modelli basati su grafi
Grafi non orientati Grafi (non orientati) Notazione. G = (V, E) V = nodi (o vertici). E = archi (o lati) tra coppie di nodi. Modella relazioni definite tra coppie di oggetti. aglia di un grafo: numero
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
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,
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
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
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
DettagliGrafo diretto Università degli Studi di Milano
Grafo diretto Un grafo diretto G è na coppia ordinata (V, E), doe V è l insieme dei ertici {,,,,n} (anche detti nodi). E V V è n insieme di coppie ordinate (,) dette archi diretti 6 V= {,,,4,5,6,7} 7 4
DettagliNote 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
DettagliAlgoritmi e Strutture Dati. Capitolo 11 Visite di grafi
lgoritmi e Strutture ati apitolo Visite di grafi Strutture dati per rappresentare grafi rafi non diretti Quanto spazio? a b c d a b c d a 0 a b d c b 0 0 b c a c 0 c a d b d 0 0 d c a Matrice di adiacenza
DettagliStrutture dati per rappresentare grafi
lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano Strutture dati per rappresentare grafi opyright 2004 - The Mcraw - Hill ompanies, srl lgoritmi e strutture dati amil emetrescu,
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
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
DettagliInformatica 3. LEZIONE 24: Grafi. Modulo 1: Rappresentazione e implementazione di grafi Modulo 2: Attraversamento di un grafo
Informatica 3 LEZIONE 24: Grafi Modulo 1: Rappresentazione e implementazione di grafi Modulo 2: Attraversamento di un grafo Informatica 3 Lezione 24 - Modulo 1 Rappresentazione e implementazione di grafi
DettagliB.1 I grafi: notazione e nomenclatura
Appendice B Grafi e Reti In questa appendice richiamiamo i principali concetti relativi a grafi e reti; descriviamo inoltre alcune classi di strutture dati che possono essere utilizzate per implementare
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
DettagliGrafi. Sommario. Definizioni Rappresentazione dei grafi Algoritmi di visita Esempi in C
Grafi Sommario Definizioni Rappresentazione dei grafi Algoritmi di visita Esempi in C 1 Esempi Relazioni di parentela Alberi genealogici Relazioni tra classi nei linguaggi OO Grafo del Web Assetti societari
DettagliFondamenti teorici e programmazione
Fondamenti teorici e programmazione FTP(A) - modb Lezione 7 F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 08/9 pag. Introduzione I grafi sono ovunque... Rete Ferroviaria
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
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
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
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
DettagliOpen walk: Nodo di partenza diverso da quello di arrivo Close walk: Nodo di partenza coincidente con quello di arrivo
Connettività WALK, TRAIL, PATH Walk (passeggiata) Walk (passeggiata): Una passeggiata è una sequenza di nodi e link che inizia e finisce con un nodo, in cui ogni nodo è incidente allo spigolo che lo precede
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
Dettagli1 TEORIA DELLE RETI 1. 1 Teoria delle reti. 1.1 Grafi
1 TEORIA DELLE RETI 1 1 Teoria delle reti 1.1 Grafi Intuitivamente un grafo è un insieme finito di punti (nodi o vertici) ed un insieme di frecce (archi) che uniscono coppie di punti Il verso della freccia
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,
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;
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}
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
Dettaglialgoritmi e strutture di dati
algoritmi e strutture di dati grafi m.patrignani nota di copyright queste slides sono protette dalle leggi sul copyright il titolo ed il copyright relativi alle slides (inclusi, ma non limitatamente, immagini,
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
DettagliGrafi Stessa distanza
Grafi Stessa distanza In un grafo orientato G, dati due nodi s e v, si dice che: v è raggiungibile da s se esiste un cammino da s a v; la distanza di v da s è la lunghezza del più breve cammino da s a
DettagliTeoria dei Grafi Elementi di base della Teoria dei Grafi
L. Pallottino, Sistemi Robotici Distribuiti - Versione del 4 Marzo 2015 42 Teoria dei Grafi Elementi di base della Teoria dei Grafi Definizione 1. Un grafo G = (V, E) è composto da un insieme finito di
DettagliSommario 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.
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
DettagliAlgoritmi 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.
DettagliSommario 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
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
DettagliALFABETIZZAZIONE INFORMATICA
Laurea in ilosofia a.a. 2008-2009 LTIZZZION INORMTI Ogni problema che ho risolto è diventato una regola che in seguito è servita a risolvere altri problemi. (René escartes, artesio iscorso sul metodo )
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
DettagliSommario della lezione
Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 204/5 p. /5 Sommario della lezione Introduzione ai grafi Definizioni, applicazioni,... Rappresentazioni comuni di grafi
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
DettagliGraf. Progettazione di Algoritmi a.a Matricole congrue a 1. Docente: Annalisa De Bonis. Grafi non direzionati
Graf Progettazione di Algoritmi a.a. 2017-18 Matricole congrue a 1 Docente: Annalisa De Bonis 1 Grafi non direzionati Grafi non direzionati. G = (V, E) V = insieme nodi. E = insieme archi. Esprime le relazioni
DettagliDipartimento di Elettronica e Informazione API 2012/3
Dipartimento di Elettronica e Informazione API 2012/3 Grafi @ G. Gini 2013 I ponti di Konisberg Il matematico svizzero Leonhard Euler nel 700 Proprietà numero pari di ponti se esiste un percorso che inizia
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}
DettagliDati e Algoritmi 1: A. Pietracaprina. Grafi (II parte)
Dati e Algoritmi 1: A. Pietracaprina Grafi (II parte) 1 Breath-First Search (algoritmo iterativo) Si assume una rappresentazione tramite liste di adiacenza. L ordine con cui si visitano i vicini di un
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
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
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
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
DettagliESERCIZI SULLA TECNICA Greedy
ESERCIZI SULLA TECNICA Greedy 1. [FILE] Si supponga di avere n files di lunghezze l 1,..., l n (interi positivi) che bisogna memorizzare su un disco di capacità data D. Si assuma che la somma delle lunghezze
DettagliProgettazione di algoritmi
Progettazione di algoritmi Discussione dell'esercizio [vincoli] Prima di tutto rappresentiamo il problema con un grafo G: i nodi sono le n lavorazioni L 1, L 2,, L n, e tra due nodi L h, L k c'è un arco
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
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
DettagliAlgoritmi e Strutture di Dati
Algoritmi e Strutture di Dati I grafi m.patrignani Nota di copyright queste slides sono protette dalle leggi sul copyright il titolo ed il copyright relativi alle slides (inclusi, ma non limitatamente,
Dettagli