Strutture dati per rappresentare grafi

Documenti analoghi
Algoritmi e Strutture Dati. Capitolo 11 Visite di grafi

Algoritmi e Strutture Dati

Grafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)

Grafi: definizioni e visite

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati

Esempi. non. orientato. orientato

Grafi (orientati): cammini minimi

Visite in Grafi BFS e DFS

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Grafi. Daniele Loiacono

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione

Tipi di dato e Strutture dati elementari

Algoritmi e strutture dati

GRAFI. Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi!

Grafi: visita generica

Sommario. Rappresentazione dei grafi. Ordinamento topologico. Visita in ampiezza Visita in profondità

Esercizi proposti 10

Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati

Cammini minimi in grafi:

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

Grafi pesati Minimo albero ricoprente

Introduzione ai grafi. Introduzione ai grafi p. 1/2

Grafi: ordinamento topologico

Progettazione di algoritmi

Problema del cammino minimo

Alberi e alberi binari I Un albero è un caso particolare di grafo

Strutture dati per insiemi disgiunti

Graf. Progettazione di Algoritmi a.a Matricole congrue a 1. Docente: Annalisa De Bonis

Terzo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale

Quarto allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale

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);

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

Cammini Minimi. Algoritmo di Dijkstra

Grafi. Sommario. Definizioni Rappresentazione dei grafi Algoritmi di visita Esempi in C

L' ADT grafo è un contenitore di elementi memorizzati nelle posizioni del grafo (vertici e archi)

Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla

Minimo albero di copertura

Problemi, istanze, soluzioni

Alberi ed Alberi Binari

Dati e Algoritmi 1: A. Pietracaprina. Grafi (II parte)

Problema dell albero di cammini minimi (SPT, Shortest Path Tree) o problema dei cammini minimi :

Intelligenza Artificiale. Risoluzione dei Problemi

Introduzione. Il routing permette la comunicazione tra due nodi differenti anche se non sono collegati direttamente

Note per la Lezione 4 Ugo Vaccaro

Progettazione di Algoritmi - lezione 6

Una breve introduzione all implementazione in C di algoritmi su grafo

Alberi binari e alberi binari di ricerca

Cammini minimi con sorgente singola

2.3.3 Cammini ottimi nei grafi senza circuiti

Grafi. Moreno Marzolla Dip. di Informatica Scienza e Ingegneria Università di Bologna. moreno.marzolla@unibo.it

Alberi. Alberi: definizioni. Alberi Binari. Esercizi su alberi binari: metodi ricorsivi. Struttura dati per alberi generici. ASD-L - Luca Tesei

L algoritmo di Dijkstra

ESERCIZIO MIN-MAX Si consideri il seguente albero di gioco dove i punteggi sono tutti dal punto di vista del primo giocatore.

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

VISITA IL SITO PER ALTRO MATERIALE E GUIDE

«Sciente e Tecnologie dei Beni Culturali»

Laboratorio di Python

Introduzione alla gestione delle collezioni di oggetti

Grafi (non orientati e connessi): minimo albero ricoprente

Progettazione di Algoritmi

Algoritmo basato su cancellazione di cicli

Ingegneria degli Algoritmi (II parte pratica)

METODI DELLA RICERCA OPERATIVA

Automa a Stati Finiti (ASF)

Capitolo 5. Algoritmi di ricerca su grafo. 5.1 Algoritmi di ricerca su grafo

Dati e Algoritmi I (Pietracaprina) Esercizi svolti sui Grafi

Introduzione ai grafi

Algoritmi distribuiti su reti sincrone. Introduzione alle reti sincrone

Università degli Studi di L Aquila Facoltà di Scienze M.F.N. Corso di Laurea in Informatica. Modulo di Laboratorio di Algoritmi e Strutture Dati

Networking e Reti IP Multiservizio

Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa

Figura 1: 1) Si scriva la formulazione del problema come problema di PLI (con un numero minimo di vincoli) e la matrice dei vincoli.

UNIVERSITA DEGLI STUDI DI PERUGIA

Tracce. 1. Data una lista di elementi di tipo intero, implementare in C++ le seguenti funzioni

Corso di Programmazione

Dispense per i corsi di Informatica generale Corso di laurea in Matematica e. Introduzione agli Algoritmi Corso di laurea in Informatica

ALGORITMI CORSO DI STUDIO IN INFORMATICA (laurea triennale) UNIVERSITÀ DEGLI STUDI DI CATANIA ANNO ACCADEMICO 2014/15

AUTOMA A STATI FINITI

Reti Complesse Biologiche

Pumping lemma per i linguaggi Context-free

Algoritmi di Visita di Grafi. Damiano Macedonio

Gestione della produzione e della supply chain Logistica distributiva

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


GRAFI. fig.1 - GRAFI (1) Si avvisa il lettore che certe definizioni che verranno date differiscono da quelle presenti in letteratura.

Grafi (non orientati e connessi): minimo albero ricoprente

Grammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione

Ripasso di teoria ed esercizi in preparazione al terzo compito. 26 gennaio 2004

Macchine sequenziali. Automa a Stati Finiti (ASF)

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

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

Problem Set 3 (quello di natale, ovvero: algoritmi sotto l albero) docente: Luciano Gualà

GLI ALBERI BINARI DI RICERCA. Cosimo Laneve

CONCRETE (interne): è la effettiva implementazione della struttura nel linguaggio e relativa allocazione in memoria della struttura astratta

Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari.

11.4 Chiusura transitiva

Progettazione di algoritmi

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

Transcript:

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, Irene inocchi, iuseppe. Italiano rafi non diretti 2 opyright 2004 - The Mcraw - Hill ompanies, srl

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano quanto spazio? rafi non diretti O(m) O(m + n) O(m + n) O(n 2 ) O(m n) 3 opyright 2004 - The Mcraw - Hill ompanies, srl

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano quanto spazio? rafi diretti O(m) O(m + n) O(m + n) O(n 2 ) O(m n) 4 opyright 2004 - The Mcraw - Hill ompanies, srl

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano Prestazioni della lista di archi (grafi non diretti) 5 opyright 2004 - The Mcraw - Hill ompanies, srl

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano Prestazioni liste di adiacenza (grafi non diretti) 6 opyright 2004 - The Mcraw - Hill ompanies, srl

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano Prestazioni matrice di adiacenza (grafi non diretti) 7 opyright 2004 - The Mcraw - Hill ompanies, srl

lgoritmi e Strutture ati apitolo Visite di grafi

quali parti del grafo sono raggiungibili da un certo nodo? eseguo una visita del grafo

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano Scopo e tipi di visita Una visita (o attraversamento) di un grafo permette di esaminare i nodi e gli archi di in modo sistematico (se è connesso) Problema di base in molte applicazioni sistono vari tipi di visite con diverse proprietà: in particolare, visita in ampiezza (S=breadth first search) e visita in profondità (S=depth first search) 0 opyright 2004 - The Mcraw - Hill ompanies, srl

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano lgoritmo di visita generica La visita parte da un vertice s prescelto ed esplora seguendo una qualche regola uno dei suoi adiacenti Un vertice v raggiunto da u viene marcato come visitato se è stato incontrato per la prima volta, e viene quindi aggiunto alla frangia di visita; inoltre, il nodo u diventa padre di v, e l arco (u,v) viene etichettato come arco di visita Un vertice rimane nella frangia di visita fintantoché non sono stati esplorati tutti i suoi adiacenti La visita genera un albero di copertura T del grafo opyright 2004 - The Mcraw - Hill ompanies, srl

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano Visite particolari Se la frangia è implementata come coda si ha la visita in ampiezza (S) Se la frangia è implementata come pila si ha la visita in profondità (S) 2 opyright 2004 - The Mcraw - Hill ompanies, srl

Visita in ampiezza dato un grafo (non pesato) e un nodo s, trova tutte le distanze/cammini minimi da s verso ogni altro nodo v

applicazioni web crawling come google trova nuove pagine da indicizzare social networking trovare gli amici che potresti conoscere network broadcast un nodo manda un messaggio a tutti gli altri nodi della rete garbage collection come scoprire memoria non più raggiungibile che si può liberare model checking verificare una proprietà di un sistema risolvere puzzle risolvere il ubo di Rubik con un numero minimo di mosse

cubo di Rubik: 2x2x2 grafo delle configurazioni un vertice per ogni possibile stato del cubo un arco fra due configurazioni se l una è ottenibile dall altra tramite una mossa grafo non diretto cubetto #verciti 8! x 3 8 = 264.539.520

cubo di Rubik: 2x2x2 stato goal eccentricità di s (od s number) od s number 2x2x2: 3x3x3: 20 s 4x4x4:??? nxnxn: (n 2 /log n) possibili mosse stati raggiungibili in 2 mosse

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano Visita in ampiezza 8 opyright 2004 - The Mcraw - Hill ompanies, srl

Un esempio s 0

Un esempio s 0

Un esempio s 0

Un esempio s 0

Un esempio s 0

Un esempio s 0

Un esempio s 0 2

Un esempio s 0 2

Un esempio s 0 2

Un esempio s 0 2 2

Un esempio s 0 2 2

Un esempio s 0 2 2

Un esempio s 0 3 2 2

Un esempio s 0 3 2 2 3

Un esempio s 0 3 2 2 3

Un esempio s 0 3 2 2 3

Un esempio s 0 3 2 2 3

Un esempio s 0 3 2 2 3

Un esempio s 0 3 2 2 0 3 s albero S albero dei cammini di radicato in s 2 2 3 3

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano sempio: grafo orientato 38 opyright 2004 - The Mcraw - Hill ompanies, srl

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano osto della visita in ampiezza grafo rappresentato con matrice di adiacenza O(n 2 ) O(n) 39 opyright 2004 - The Mcraw - Hill ompanies, srl

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano osto della visita in ampiezza grafo rappresentato con liste di adiacenza O(m+n) u O( (u)) = O(m) O( (u)) 40 opyright 2004 - The Mcraw - Hill ompanies, srl

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano osto della visita in ampiezza Il tempo di esecuzione dipende dalla struttura dati usata per rappresentare il grafo (e dalla connettività o meno del grafo rispetto ad s): Liste di adiacenza: O(m+n) Matrice di adiacenza: O(n 2 ) Osservazioni:. Si noti che se il grafo è connesso allora m n- e quindi O(m+n)=O(m) 2. Ricordando che m n(n-)/2, si ha O(m+n)=O(n 2 ) per m=o(n 2 ) la rappresentazione mediante liste di adiacenza è temporalmente più efficiente! 4 opyright 2004 - The Mcraw - Hill ompanies, srl

Proprietà dell albero S radicato in s Se il grafo è non orientato, per ogni arco (u,v) del grafo gli estremi u e v appartengono allo stesso livello o a livelli consecutivi dell albero S Se il grafo è orientato, allora gli archi orientati verso il basso uniscono nodi sullo stesso livello o su livelli adiacenti, mentre gli archi orientati verso l alto possono unire nodi su livelli non adiacenti

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano Proprietà dell albero S radicato in s Per ogni nodo v, il livello di v nell albero S è pari alla distanza di v dalla sorgente s (sia per grafi orientati che non orientati) Perché? onseguenza delle seguenti proprietà: Proprietà I nodi di vengono inseriti nella coda in ordine non decrescente di distanza dalla sorgente s Proprietà 2 Quando un nodo v è inserito in, il livello di v nell albero S è uguale alla sua distanza da s 43 opyright 2004 - The Mcraw - Hill ompanies, srl

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano Proprietà dell albero S radicato in s Per ogni nodo v, il livello di v nell albero S è pari alla distanza di v dalla sorgente s (sia per grafi orientati che non orientati) dimostrazione informale - all inizio inserisco s in (che è a distanza 0 da se stesso) e gli assegno livello 0; chiaramente s è l unico nodo a distanza 0. - estraggo s e guardo tutti suoi vicini; questi sono tutti i nodi a distanza da s; li inserisco in e assegno loro livello. Ora in ho tutti i nodi a distanza. - estraggo uno a uno tutti i nodi di livello/distanza e per ognuno guardo tutti suoi vicini; i vicini non marcati sono a distanza 2 da s; li inserisco in e assegno loro livello 2; quando ho estratto e visitato tutti i nodi di livello, in ho tutti i nodi a distanza 2 da s. - estraggo uno a uno tutti i nodi di livello/distanza 2 e per ognuno guardo tutti suoi vicini; i vicini non marcati sono a distanza 3 da s

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano Visita in profondità 45 opyright 2004 - The Mcraw - Hill ompanies, srl

un analogia: esplorare un labirinto osa mi serve? gesso: per segnare le strade prese corda: per tornare indietro se necessario 46 variabile booleana: dice se un nodo è stato già visitato pila: push vuol dire srotolare pop vuol dire arrotolare opyright 2004 - The Mcraw - Hill ompanies, srl

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano Visita in profondità 47 opyright 2004 - The Mcraw - Hill ompanies, srl

s Un esempio: visita S

s Un esempio: visita S

s Un esempio: visita S

s Un esempio: visita S

s Un esempio: visita S

s Un esempio: visita S

s Un esempio: visita S

s Un esempio: visita S

s Un esempio: visita S

s Un esempio: visita S

s Un esempio: visita S

s Un esempio: visita S

s Un esempio: visita S

s Un esempio: visita S

s Un esempio: visita S

s Un esempio: visita S

s Un esempio: visita S

s Un esempio: visita S albero S

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano sempio: grafo orientato (/2) 66 opyright 2004 - The Mcraw - Hill ompanies, srl

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano sempio: grafo orientato (2/2) 67 opyright 2004 - The Mcraw - Hill ompanies, srl

tornando al labirinto albero S 68 opyright 2004 - The Mcraw - Hill ompanies, srl

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano osto della visita in profondità Il tempo di esecuzione dipende dalla struttura dati usata per rappresentare il grafo (e dalla connettività o meno del grafo rispetto ad s): Liste di adiacenza: O(m+n) Matrice di adiacenza: O(n 2 ) 69 opyright 2004 - The Mcraw - Hill ompanies, srl

lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano Proprietà dell albero S radicato in s Se il grafo è non orientato, per ogni arco (u,v) si ha: (u,v) è un arco dell albero S, oppure i nodi u e v sono l uno discendente/antenato dell altro Se il grafo è orientato, per ogni arco (u,v) si ha: (u,v) è un arco dell albero S, oppure i nodi u e v sono l uno discendente/antenato dell altro, oppure (u,v) è un arco trasversale a sinistra, ovvero il vertice v è in un sottoalbero visitato precedentemente ad u 70 opyright 2004 - The Mcraw - Hill ompanies, srl