Algoritmi e Strutture Dati Grafi. Daniele Loiacono
|
|
|
- Paola Garofalo
- 8 anni fa
- Visualizzazioni
Transcript
1 lgoritmi e Strutture ati Grafi
2 Riferimenti 2 Questo materiale è tratto dalle trasparenze del corso lgoritmi e Strutture ati del prof. lberto Montresor dell Università di Trento. ( T.H. ormen,.. Leiserson, R.L. Rivest,. Stein Introduction to lgorithms, Second dition Queste trasparenze sono disponibili su Materiale rilasciato con licenza reative ommons ttribution-nonommercial-sharelike License (
3 os è un grafo? 3 e a d b c v 1 v 4 e 1 v 2 e 3 v 3 e 2 e 4 v 5
4 Problemi tipici sui grafi 4 Visite Visite in ampiezza (cammini minimi singola sorgente) Visite in profondità (ordinamento topologico, componenti fortemente connesse) ammini minimi a singola sorgente ra tutte le coppie di vertici lberi di connessione minimi Problemi di flusso...
5 efinizioni
6 Grafi orientati 6 Un grafo orientato G è definito dalla coppia (V, ) dove: V è l insieme finito dei vertici è l insieme degli archi (relazione binaria in V) V = {,,,,, } = { (,), (,),(,),(,),(,), (,),(,) }
7 Grafi non orientati 7 Un grafo non orientato G è definito dalla coppia (V, ) dove: V è l insieme finito dei vertici è l insieme degli archi (coppie ordinate di elementi di V) V = {,,,,, } = { (,), (,), (,), (,),(,),(,) }
8 Grafo pesato 8 In alcuni casi ogni arco ha un peso (o costo) associato Il costo può essere determinato tramite una funzione di costo c: R, dove R è l insieme dei numeri reali Quando tra due vertici non esiste un arco, si dice che il costo è infinito sempio: c(,) =
9 Incidenza e adiacenza 9 In un grafo orientato, un arco (v,w) si dice incidente da v in w Un vertice w si dice adiacente a v se e solo se (v, w) Є In un grafo non orientato la relazione di adiacenza tra vertici è simmetrica (,) è incidente da a (,) è incidente da a (,) è incidente da a è adiacente ad è adiacente a,, è adiacente a e viceversa non è adiacente a, non è adiacente ad alcun vertice
10 Grado in un grafo non orientato 10 In un grafo non orientato, il grado di un vertice è il numero di archi che da esso si dipartono, ed hanno grado 2 e hanno grado 3 ha grado 0
11 Grado in un grafo orientato 11 In un grafo orientato il grado entrante di un vertice è il numero di archi incidenti in esso il grado uscente di un vertice è il numero di archi uscenti da esso In un grafo orientato il grado di un vertice è la somma del suo grado entrante e del suo grado uscente ha g. u. 2 e g. e. 1 ha g. u. 1 e g. e. 1 ha g. u. 0 e g. e. 3 ha g. u. 3 e g. e. 1 e hanno grado 3 ha grado 2 ha grado 4
12 ammini 12 Un cammino nel grafo G=(V,) è una sequenza di vertici <w 0, w 1,..., w n > tale che (w i, w i+1 ) Є per 0 i n 1 Il cammino <w 0, w 1, w 2,..., w n > contiene i nodi w 0, w 1,, w n e gli archi (w 0,w 1 ) (w 1,w 2 )...(w n-1,w n ) Lunghezza del cammino: # di archi che connettono i vertici nell ordine della sequenza sempio: <,,, > è un cammino nel grafo con lunghezza 3
13 ammini (2) 13 Un cammino si dice semplice se tutti i suoi vertici sono distinti (compaiono una sola volta nella sequenza) sempio: <,,, > è semplice ma il cammino <,,,,, > non è semplice, poiché èripetuto
14 ammini (3) 14 Se esiste un cammino c tra i vertici v e w, si dice che w è raggiungibile da v tramite c sempio: è raggiungibile da e viceversa s.: è raggiungibile da ma non viceversa
15 Grafi connessi 15 Se G è un grafo non orientato, diciamo che G è connesso se esiste un cammino da ogni vertice ad ogni altro vertice. Questo grafo non orientato è connesso. Questo grafo non orientato non è connesso.
16 Grafi fortemente connessi 16 Se G è un grafo orientato, diciamo che G è fortemente connesso se esiste un cammino da ogni vertice ad ogni altro vertice. Questo grafo orientato è fortemente connesso. Questo grafo orientato non è fortemente connesso; ad es., non esiste cammino da a.
17 Versione non orientata di un grado 17 Se G èun grafo orientato, il grafo ottenuto ignorando la direzione degli archi e gli autoanelli è detto il grafo non orientato sottostante o anche versione non orientata di G.
18 Versione orientata di un grafo 18 Se G èun grafo non orientato, il grafo ottenuto inserendo due archi orientati opposti per ogni arco non orientato del grafo è detto la versione orientata di G.
19 Grafi debolmente connessi 19 Se G è un grafo orientato che non è fortemente connesso, ma la sua versione non orientata è connessa, diciamo che G è debolmente connesso Questo grafo orientato non è fortemente connesso, ma è debolmente connesso
20 Sottografo 20 Sia G = (V, ) un grafo. Un sottografo di G è un grafo H = (V*, *) tale che V* V e * sempio: V* = {,, }, * = {(, )}.
21 Sottografo indotto 21 Sia G = (V, ) un grafo e V* V un insieme di vertici. Il sottografo di G indotto da V* è il grafo H=(V*, *) tale che * = {(v,w) (v,w), v,w V*} Sia G = (V, ) un grafo. Il sottografo H=(V*, *) di G è detto di supporto se: V* = V
22 omponenti connesse 22 Si dice componente connessa di un grafo non orientato G, un sottografo H di G che sia connesso e massimale Un sottografo connesso H di G viene detto massimale se si non si possono aggiungere ad H altri vertici o archi in modo che il grafo risultante sia ancora un sottografo connesso di G sempi: a f b a f b f b c e G d g c H1 e d H2 g d H3 g NO
23 omponenti fortemente connesse 23 Si dice componente fortemente connessa di un grafo orientato G, un sottografo H di G che sia fortemente connesso e massimale sempi: a f b a f b c e d g c e d g G H1 H2 H3
24 icli 24 Un ciclo in un grafo orientato è un cammino <w 0, w 1,, w n > di lunghezza almeno 3, tale che w 0 = w n Un ciclo è semplice se i nodi w 1,..., w n-1 sono tutti distinti s.: il cammino <,,,,, > è un ciclo semplice
25 Grafi aciclici 25 Un grafo senza cicli è detto aciclico. Un grafo orientato aciclico è chiamato G (irected cyclic Graph). sempi: aciclico non aciclico G
26 Grafo completo 26 Un grafo completo è un grafo che ha un arco tra ogni coppia di vertici. Un grafo completo con n= V veritci ha un numero di archi pari a: sempi: n 1 i= 1 n( n 1) i = 2 non completo completo
27 Grafi e lberi 27 Un albero libero è un grafo non orientato connesso, aciclico. Se qualche vertice è detto radice, otteniamo un albero radicato. radice
28 Strutture dati per i grafi
29 Matrice di adiacenza: grafo orientato 29 M[v, w] = 1 se (v, w) 0 altrimenti Memoria: V 2 sempio:
30 Matrice di adiacenza: grafo non orientato 30 M(v, w) = 1 se (v, w) o (w,v) 0 altrimenti Memoria: V 2 o V ( V -1)/2 sempio:
31 Matrice di adiacenza in grafi pesati 31 M(v, w) = c(v,w) se (v, w) altrimenti Memoria: V 2 o V ( V -1)/ * 3 * 1 * * 3 * 4 * * * * 4 * 4 7 * 1 * 4 * -2 * * * 7-2 * * * * * * * *
32 Lista di adiacenza: grafo orientato 32 La lista di adiacenza di un vertice v è definita come { w V (v,w) } Un grafo può essere quindi rappresentato con un array di liste di adiacenze La memoria richiesta è a V + b (a e b costanti) sempio: a b
33 Liste di adiacenza: grafo non orientato 33 La lista di adiacenza di un vertice v è definita come { w V (v,w) (w,v) } Lo stesso arco viene memorizzato in due liste di adiancenze, quindi la memoria richiesta è a V + 2b (a e b costanti) sempio: a b
34 Sommario sulle strutture dati i sono due tipi standard di rappresentazioni di grafi in un computer: Matrice di adiacenza Spazio richiesto O(V 2 ) Verificare se il vertice v è adiacente a w richiede tempo O(1) lencare tutti gli archi costa O(V 2 ) Liste di adiacenza Spazio richiesto O(V+) Verificare se il vertice v è adiacente a w richiede tempo O(V) lencare tutti gli archi costa O(V+) Nota: nelle espressioni, V corrisponde a V e corrisponde a
35 Visita di un grafo
36 Visita di un grafo 36 ato un grafo G=<V,> ed un vertice s di V (detto sorgente), intendiamo con visita di G a partire dalla sorgente s un attraversamento tale che: ogni vertice di G raggiungibile da s venga visitato ogni nodo raggiunto sia visitato una volta sola L operazione di visita di un vertice può comportare diverse operazioni che dipendono dal problema per cui viene effettuata la visita del grafo Generalmente durante la visita ogni vertice viene marcato per evitare di visitarlo nuovamente Spesso viene anche memorizzato l albero di visita che descrive il percorso attraverso cui si può giungere ad un vertice sistono diversi algoritmi di visita, vedremo i principali: Visita in ampiezza (breadth-first search) Visita in profondità (depth-first search)
37 Visita in ampiezza (breadth first search, S) 37 ome funziona? Visita i vertici a distanze crescenti dalla sorgente: visita tutti i vertici a distanza k prima di visitare i vertici a distanza k+1 Output lbero (breadth-first) contenente tutti i vertici raggiungibili da s e tale che il cammino da s ad un nodo nell'albero corrisponde al cammino più breve nel grafo istanza minima da s a tutti i vertici raggiungibili numero di archi attraversati per andare da s ad un vertice
38 S: algoritmo di visita 38 S(G, s) for each v in V do mark[v] = white π[s] = nil =.enqueue(s) mark[s] = gray dist[s] = 0 while <> do u =.dequeue() visita il vertice u for each v in adj[u] do if (mark[v]==white) then mark[v] = gray dist[v] = dist[u]+1.enqueue(v) π[v] := u mark[u] = black è l insieme dei nodi scoperti, detto anche frontiera mark[v] è la marcatura del nodo v white: il nodo non è ancora stato raggiunto gray: il nodo è stato raggiunto ma non è ancora visitato (è in ) black: il nodo è stato visitato dist[v] è la distanza del nodo v dal vertice s π[v] è il predecessore di v nell albero di copertura osto: O( V + ) liste O( V 2 ) matrice
39 sempio 39 0 I H G oda:{}
40 sempio I 1 H G oda:{,,i}
41 sempio I 1 H G oda:{,i,,}
42 sempio I 1 2 H G oda:{i,,,}
43 sempio I H G oda:{,,,h}
44 sempio I H G oda:{,,h}
45 sempio I H G oda:{,h}
46 sempio I H G 3 oda:{h,g}
47 sempio I H G 3 oda:{g}
48 sempio I H G 3 oda:{}
49 Visita in profondità (depth first search, S) 49 ome funziona? Visita i nodi andando il più lontano possibile nel grafo: prima di concludere la visita di un vertice, viene conclusa la visita di tutti i suoi successori Output: lbero (depth-first) contenente tutti i vertici raggiungibili da s seguendo il perorso effettuato dalla visita depth-first Istante di tempo in cui ogni vertice viene raggiunto e in cui la visita termina
50 S: algoritmo di visita 50 S(G,s) mark[s] = gray time = time+1 d[s] = time for each v in adj[s] do if mark[v] == white then π[v]= s S(G,v) visita il vertice s time = time+1 f[s] = time mark[s] = black mark[s] è la marcatura del nodo s come nel S d[s] e f[s] sono rispettivamente l istante in cui s viene raggiunto e in cui la sua visita termina π[s] è il predecessore di s nell albero di copertura osto: O( V + ) liste O( V 2 ) matrice
51 sempio 51 [1, ] I H G
52 sempio 52 [2, ] [1, ] I H G
53 sempio 53 [3, ] [2, ] [1, ] I H G
54 sempio 54 [3, ] [2, ] [1, ] I [4, ] H G
55 sempio 55 [3, ] [2, ] [1, ] I [4, ] [5, ] H G
56 sempio 56 [3, ] [2, ] [1, ] [6, ] I [4, ] [5, ] H G
57 sempio 57 [3, ] [2, ] [1, ] [6, 7] I [4, ] [5, ] H G
58 sempio 58 [3, ] [2, ] [1, ] [6, 7] I [4, ] [5, ] H G [8, ]
59 sempio 59 [3, ] [2, ] [1, ] [6, 7] I [4, ] [5, ] H G [8, ] [9, ]
60 sempio 60 [3, ] [2, ] [1, ] [6, 7] I [10, ] [4, ] [5, ] H G [8, ] [9, ]
61 sempio 61 [3, 16] [2, 17] [1, 18] [6, 7] I [10, 11] [4,15] [5,14 ] H G [8, 13] [9, 12]
62 Proprietà S 62 In qualsiasi visita di profondità di un grafo G=(V,), per ogni coppia di vertici u,v, una sola delle seguenti condizioni è vera: Gli intervalli [d[u], f[u]] e [d[v], f[v]] sono disgiunti u,v non sono discendenti l'uno dell'altro nell albero L'intervallo [d[u], f[u]] è interamente contenuto in [d[v], f[v]] u è discendente di v in un albero L'intervallo [d[v], f[v]] è interamente contenuto in [d[u], f[u]] v è discendente di u in un albero In un albero di un grafo G=(V,), il vertice v è un discendente del vertice u al tempo d[u], il vertice v può essere raggiunto da u lungo un cammino che è formato da soli nodi bianchi
63 pplicazioni
64 ammino minimo fra due nodi 64 La visita S può essere utilizzata per ottenere il percorso più breve fra due vertici (numero di archi) print-path(g, s, v) if v = s then print s else if π(v)= nil then print no path from s to v else print-path(g,s, π(v)) print v
65 Ordinamento topologico 65 ato un G G (direct acyclic graph), un ordinamento topologico su G è un ordinamento lineare dei suoi vertici tale per cui: se G contiene l arco (u,v), allora u compare prima di v nell ordinamento Per transitività, ne consegue che se v è raggiungibile da u, allora u compare prima di v nell'ordinamento Nota: possono esserci più ordinamenti topologici v u w v x y u w x u v w y x y
66 Ordinamento topologico (2) 66 Problema: ornire un algoritmo che dato un grafo orientato aciclico, ritorni un ordinamento topologico Soluzione diretta Trovare ogni vertice che non ha alcun arco incidente in ingresso Stampare questo vertice e rimuoverlo, insieme ai suoi archi Ripetere la procedura finché tutti vertici risultano rimossi.
67 67 v v v u w x w x x y y y output: output: u output: u w v x x output: u w y output: u w y v output: u w y v x
68 Ordinamento topologico (2) 68 Problema: ornire un algoritmo che dato un grafo orientato aciclico, ritorni un ordinamento topologico Soluzione diretta Trovare ogni vertice che non ha alcun arco incidente in ingresso Stampare questo vertice e rimuoverlo, insieme ai suoi archi Ripetere la procedura finché tutti vertici risultano rimossi. asato su S
69 69 ( topological-sort(g -for S(G) each v per in calcolare V[G] do i tempi v.ft - if la mark[v] visita consiste == white nell'aggiungere il then vertice S(G,v) alla testa di una lista -Nella restituire S() l'operazione la lista di di vertici visita consiste nell'aggiungere il vertice alla testa di una lista l return l u v w y x v 6/9 u v x w y u 1/10 w 2/5 x 7/8 output: u v x w y y 3/4
Esempi. 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 è
Sommario. 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
Grafi. Moreno Marzolla Dip. di Informatica Scienza e Ingegneria Università di Bologna. [email protected] http://www.moreno.marzolla.
Grafi Moreno Marzolla ip. di Informatica Scienza e Ingegneria Università di ologna [email protected] http://www.moreno.marzolla.name/ opyright lberto Montresor, Università di Trento, Italy (http://www.dit.unitn.it/~montreso/asd/index.shtml)
Algoritmi di Visita di Grafi. Damiano Macedonio [email protected]
lgoritmi di Visita di rafi amiano Macedonio [email protected] Original work opyright lberto Montresor, Università di Trento, Italy Modifications opyright 00 0, Moreno Marzolla, Università di ologna, Italy
Visite 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
Appunti 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 ([email protected])
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);
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
Problema del cammino minimo
Algoritmi e Strutture di Dati II Problema del cammino minimo Un viaggiatore vuole trovare la via più corta per andare da una città ad un altra. Possiamo rappresentare ogni città con un nodo e ogni collegamento
Grafi: 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
GRAFI. 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
Progettazione 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
Grafi: 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
Algoritmi 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
Grafi: 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
Minimo albero di copertura
apitolo 0 Minimo albero di copertura efinizione 0.. ato un grafo G = (V, E) non orientato e connesso, un albero di copertura di G è un sottoinsieme T E tale che il sottografo (V, T ) è un albero libero.
Introduzione ai grafi. Introduzione ai grafi p. 1/2
Introduzione ai grafi Introduzione ai grafi p. 1/2 Grafi Un grafo G é costituito da una coppia di insiemi (V,A) dove V é detto insieme dei nodi e A é detto insieme di archi ed é un sottinsieme di tutte
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
Cammini minimi in grafi:
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Cammini minimi in grafi: una trilogia Cammini minimi in grafi: Episodio III: la fine della trilogia Input: nelle puntate
Strutture 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,
Problemi, istanze, soluzioni
lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un
Depth-first search. Visita in profondità di un grafo Algoritmo Esempio Complessità dell algoritmo Proprietà Ordinamento topologico
Depth-first search Visita in profondità di n grafo Algoritmo Esempio Complessità dell algoritmo Proprietà Ordinamento topologico Depth-first search Dato n grafo G=(V,E) e n specifico ertice s chiamato
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.
Grafi (orientati): cammini minimi
Grafi (orientati): cammini minimi Una breve presentazione Definizioni Sia G=(V,E) un grafo orientato con costi w sugli archi. Il costo di un cammino π= è dato da: Un cammino minimo tra
Algoritmi e Strutture Dati
Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]
Alberi e alberi binari I Un albero è un caso particolare di grafo
Alberi e alberi binari Un albero è un caso particolare di grafo È costituito da un insieme di nodi collegati tra di loro mediante archi Gli archi sono orientati (ogni arco esce da un nodo origine ed entra
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
Progettazione di Algoritmi
Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 1/01/016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via avrai
Grafi pesati Minimo albero ricoprente
Algoritmi e Strutture Dati Definizioni Grafi pesati Minimo albero ricoprente Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è un albero; T contiene
GRAFI. fig.1 - GRAFI (1) Si avvisa il lettore che certe definizioni che verranno date differiscono da quelle presenti in letteratura.
GRAFI 1. Definizioni, terminologia, esempi e applicazioni (1) Un grafo orientato (o diretto o di-grafo) G è una coppia (V,E) dove V è un insieme non vuoto ed E una relazione binaria su V, E V V, ossia
Algoritmi e strutture dati
Algoritmi e Strutture Dati Cammini minimi Definizioni Sia G = (V,E) un grafo orientato pesato sugli archi. Il costo di un cammino π = è dato da: Un cammino minimo tra una coppia di
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
«Sciente e Tecnologie dei Beni Culturali»
5 Informatica CdS in «Sciente e Tecnologie dei Beni Culturali» AA 2014-2015 Mini-sito dell insegnamento: http://www.unife.it/scienze/beni.culturali/insegnamenti/informatica Prof. Giorgio Poletti [email protected]
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
Fondamenti di informatica
Fondamenti di informatica 30 novembre 2017 This book is the result of a collaborative effort of a community of people like you, who believe that knowledge only grows if shared. We are waiting for you!
Alberto Montresor Università di Trento
!! Algoritmi e Strutture Dati! Capitolo 5 - Alberi!!! Alberto Montresor Università di Trento!! This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy
Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari.
Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari. Algoritmi e Strutture Dati + Lab A.A. / Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro ALBERO
COMPLEMENTI DI SHORTEST-PATH. ASD Fabrizio d'amore
COMPLEMENTI DI SHORTEST-PATH ASD 2016-17 Fabrizio d'amore problemi di shortest-path (SP) grafo di riferimento G=(V,E) semplice/orientato pesato pesi non negativi pesi arbitrari, ma no cicli a peso negativo
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
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
Alberi Binari di Ricerca
Alberi Binari di Ricerca Prof. G. M. Farinella [email protected] www.dmi.unict.it/farinella Riferimenti Bibliografici Cormen T.H., Leiserson C.E., Rivest R.L Introduction to Algorithms, Third Edition,
Dati 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
Algoritmi e Strutture di Dati (3 a Ed.) Algoritmo dei tre indiani. Alan Bertossi, Alberto Montresor
Algoritmi e Strutture di Dati ( a Ed.) Algoritmo dei tre indiani Alan Bertossi, Alberto Montresor Vediamo a grandi linee un algoritmo proposto da Kumar, Malhotra e Maheswari (978) come raffinamento di
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
Algoritmi di visita di un grafo
Algoritmi di isita di n grafo Ilaria Castelli [email protected] Uniersità degli Stdi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/2010 I. Castelli Visita di n grafo, A.A. 2009/2010
2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1
. Cammini ottimi E. Amaldi Fondamenti di R.O. Politecnico di Milano .. Cammini minimi e algoritmo di Dijkstra Dato un grafo orientato G = (N, A) con una funzione di costo c : A c ij R e due nodi s e t,
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
Esercizi proposti 10
Esercizi proposti 10 In questo gruppo di esercizi assumiamo, dove non sia specificato diversamente, di rappresentare i grafi mediante liste di archi, con il tipo di dati così dichiarato: type a graph =
11.4 Chiusura transitiva
6 11.4 Chiusura transitiva Il problema che consideriamo in questa sezione riguarda il calcolo della chiusura transitiva di un grafo. Dato un grafo orientato G = hv,ei, si vuole determinare il grafo orientato)
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
Problema dell albero di cammini minimi (SPT, Shortest Path Tree) o problema dei cammini minimi :
Per almeno una delle soluzioni ottime { P i, i r } del problema generalizzato, l unione dei cammini P i forma un albero di copertura per G radicato in r e orientato, ossia un albero la cui radice è r i
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)
Algoritmi 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
UNIVERSITA DEGLI STUDI DI PERUGIA
UNIVERSITA DEGLI STUDI DI PERUGIA REGISTRO DELLE LEZIONI E DELLE ALTRE ATTIVITÀ DIDATTICHE Anno accademico 2006-2007 Dott./Prof. Pinotti Maria Cristina Settore scientifico-disciplinare INF01 Facoltà Scienze
Corso di elettrotecnica Materiale didattico: i grafi
Corso di elettrotecnica Materiale didattico: i grafi A. Laudani 12 ottobre 2005 I grafi costituiscono uno strumento matematico che permette di descrivere e schematizzare una grande varietà di problemi
Introduzione. Il routing permette la comunicazione tra due nodi differenti anche se non sono collegati direttamente
Routing Introduzione Il livello 3 della pila ethernet ha il compito di muovere i pacchetti dalla sorgente attraversando più sistemi Il livello di network deve quindi: Scegliere di volta in volta il cammino
2.2 Alberi di supporto di costo ottimo
. Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione
Algoritmi e Strutture Dati. Alberi
Algoritmi e Strutture Dati Alberi Alberto Montresor Università di Trento 2017/10/19 This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Sommario 1 Introduzione
Esercizi vari. Alberto Montresor. 19 Agosto, 2014
Esercizi vari Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle rispettive soluzioni
Il problema del commesso viaggiatore
Il problema del commesso viaggiatore Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa [email protected] M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Università
Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Definizioni Sia G=(V,E) un grafo orientato con costi w sugli archi. Il costo di un cammino π= è dato da: Cammini minimi Un cammino minimo tra una coppia di
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
Esercizi su alberi binari
Esercizi su alberi binari Esercizi svolti: Determinazione nodi contenti verifica completezza verifica quasi completezza lunghezza del cammino interno determinazione ultima foglia in un quasi completo verifica
Espressioni aritmetiche
Espressioni aritmetiche Consideriamo espressioni costruite a partire da variabili e costanti intere mediante applicazione delle operazioni di somma, sottrazione, prodotto e divisione (intera). Ad esempio:
Luigi Piroddi
Automazione industriale dispense del corso (a.a. 2008/2009) 10. Reti di Petri: analisi strutturale Luigi Piroddi [email protected] Analisi strutturale Un alternativa all analisi esaustiva basata sul
Ricerca Operativa. Claudio Arbib Universitàdi L Aquila. Esercizi di ottimizzazione combinatoria
Claudio Arbib Universitàdi L Aquila Ricerca Operativa Esercizi di ottimizzazione combinatoria 00-006 Grafi 9 Esercizio. Un grafo simmetrico G = (V, E) si dice cubico se tutti i suoi vertici hanno grado
Alberi. Alberi: definizioni. Alberi Binari. Esercizi su alberi binari: metodi ricorsivi. Struttura dati per alberi generici. ASD-L - Luca Tesei
Alberi Alberi: definizioni Alberi Binari Esercizi su alberi binari: metodi ricorsivi Struttura dati per alberi generici 1 Alberi Gli alberi sono strutture dati naturalmente ricorsive Un albero è un particolare
Algoritmo basato su cancellazione di cicli
Algoritmo basato su cancellazione di cicli Dato un flusso ammissibile iniziale, si costruisce una sequenza di flussi ammissibili di costo decrescente. Ciascun flusso è ottenuto dal precedente flusso ammissibile
Appunti di Algoritmi e Strutture Dati. Grafi. Gianfranco Gallizia
Appunti di Algoritmi e Strutture Dati Grafi Gianfranco Gallizia 12 Dicembre 2004 2 Indice 1 Grafi 5 1.1 Definizione.............................. 5 1.2 Implementazione........................... 5 1.2.1
2.2 Alberi di supporto di costo ottimo
. Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) protocolli reti IP memorizzazione compatta di
Alberi binari di ricerca
Alberi binari di ricerca Ilaria Castelli [email protected] Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/20010 I. Castelli Alberi binari di ricerca, A.A. 2009/20010
L algoritmo di Dijkstra
L algoritmo di Dijkstra Sebastiano Vigna March 2, 200 Introduzione Supponiamo di assegnare a ciascuno degli archi a di un grafo orientato G un certo peso intero e positivo p a. Ai cammini (orientati) nel
Strutture 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
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
Alberi Binari di Ricerca
Alberi Binari di Ricerca Algoritmi su gli alberi binari: visite Dato un puntatore alla radice di un albero vogliamo scandire in modo sistematico tutti i nodi di tale albero In una lista abbiamo una unica
Dati e Algoritmi I (Pietracaprina) Esercizi svolti sui Grafi
Dati e Algoritmi I (Pietracaprina) Esercizi svolti sui Grafi Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1 (Esercizio C-14.34 del testo [GTG14]) Sia G = (V, E) un grafo non diretto con n =
Esercizio 1. E vero che in un AVL il minimo si trova in una foglia o nel penultimo livello? FB = -1. livello 0 FB = -1. livello 1 FB = -1.
Esercizio 1 E vero che in un AVL il minimo si trova in una foglia o nel penultimo livello? FB = -1 livello 0 FB = -1 FB = -1 livello 1 FB = -1 livello 2 livello 3 L altezza è 3, il minimo si trova nel
Algoritmi e Strutture Dati. HeapSort
Algoritmi e Strutture Dati HeapSort Selection Sort: intuizioni L algoritmo Selection-Sort scandisce tutti gli elementi dell array a partire dall ultimo elemento fino all inizio e ad ogni iterazione: Viene
Alberi binari e alberi binari di ricerca
Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
