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

Documenti analoghi
Università Roma Tre - PAS Classe A048 "Matematica Applicata" - Corso di Informatica a.a. 2013/2014

Richiami di matematica discreta: grafi e alberi. Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino

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

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

Grafi: introduzione. Definizioni: che cosa sono i grafi. Definizione

Teoria dei Grafi Concetti fondamentali

Algoritmi e Strutture Dati

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

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

Bioinformatica. Grafi. a.a Francesca Cordero. Grafi Bioinformatica

1 TEORIA DELLE RETI 1. 1 Teoria delle reti. 1.1 Grafi

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

Ottimizzazione Combinatoria Proprietà dei Grafi. Ottimizzazione Combinatoria

Fondamenti teorici e programmazione

Lezioni di Ricerca Operativa

B.1 I grafi: notazione e nomenclatura

Esempi. non. orientato. orientato

K 4 è planare? E K 3,3 e K 5 sono planari? Sì! No! (Teorema di Kuratowski) K 5. Camil Demetrescu, Irene Finocchi, Giuseppe F.

algoritmi e strutture di dati

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

Esercizi Union-Find e su Grafi. Ugo Vaccaro

Introduzione alla Teoria dei Grafi

Fondamenti teorici e programmazione

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati

Introduzione ai grafi

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

Algoritmi e Strutture di Dati

Introduzione ai Grafi: Implementazione e operazioni di base

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

Progettazione di Algoritmi

Progetto e Ottimizzazione di Reti 2. Nozioni base di Teoria dei Grafi

Laboratorio di Algoritmi e Strutture Dati

Algoritmi e Strutture Dati

Grafi: definizioni e visite

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

ALBERI ORIENTATI. Definizione: Albero orientato = rooted tree = grafo orientato con le seguenti proprietà: - ha un nodo fissato, detto radice (r);

Note per la Lezione 21 Ugo Vaccaro

Ricordo che è ammesso alla prova scritta solo chi ha già consegnato ed avuto approvato il progetto.

Teoria dei Grafi Parte I. Alberto Caprara DEIS - Università di Bologna

Teoria dei Grafi Parte I

Esercitazione 7. Grafi. Rappresentazione e algoritmi di visita

Soluzioni della settima esercitazione di Algoritmi 1

Laboratorio di Algoritmi e Strutture Dati

Matematica D (in teledidattica) Docenti: Alberto Tonolo, e nelle sedi locali Susi Osti, Katia Rossi, Stefano Antoniazzi.

Terzo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale

uscente entrante adiacente Figure B.2 (a) (b) (c) incident from leaves incident to enters incident on adjacent degree isolated

Alberi e arborescenze di costo minimo

Teoria dei Grafi Elementi di base della Teoria dei Grafi

«Sciente e Tecnologie dei Beni Culturali»

Progettazione di Algoritmi (4, 6, 9 CFU) Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo. Appello del 30 Gennaio 2019.

Algoritmi e Strutture Dati. Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal

Ricerca Operativa. Facoltà di Ingegneria dell Informazione, Informatica e Statistica. (Cenni sui Grafi) Giovanni Fasano.

Algoritmi e Strutture Dati Grafi. Daniele Loiacono

Grafi non orientati. Grafi (non orientati) Rappresentazione di Grafi: matrice delle adiacenze. Tipiche applicazioni di modelli basati su grafi

Progettazione di Algoritmi. Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo. Appello del 22 Febbraio Attenzione:

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

Grafi (non orientati e connessi): minimo albero ricoprente

Ottimizzazione Combinatoria

Laboratorio di Algoritmi e Strutture Dati

INFORMATICA AA Università degli Studi di Ferrara Facoltà di Scienze MM FF NN Corso di Laurea in «Scienze e Tecnologie per i Beni Culturali»

Ottimizzazione Discreta Esercizi V: Soluzioni

Grafo diretto Università degli Studi di Milano

Quarto allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale

Cammini minimi in grafi:

Ricerca Operativa. Claudio Arbib Universitàdi L Aquila. Esercizi di ottimizzazione combinatoria

Progettazione di Algoritmi Anno Accademico Esercizi su Grafi: Parte Prima

Fondamenti di informatica

Algoritmi & Laboratorio

Algoritmi e Strutture Dati

Laboratorio di Algoritmi

Il Problema dell Albero Ricoprente Minimo (Shortest Spanning Tree - SST)

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

Algoritmi e Strutture Dati

Alberi binari e alberi binari di ricerca

Laboratorio di Algoritmi

Algoritmi e Strutture Dati. Capitolo 11 Grafi e visite di grafi

Progettazione di Algoritmi

Algoritmi e Strutture Dati. Capitolo 13 Cammini minimi: Algoritmo di Bellman e Ford

2.2 Alberi di supporto di costo ottimo

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

Esercitazione 3. Osserviamo che, dato un grafo con pesi distinti, questo ammette un unico MST.

Algoritmi e strutture dati

Algoritmi e Strutture Dati

Visite in Grafi BFS e DFS

Grafi pesati Minimo albero ricoprente

Algoritmi e Strutture Dati

Grafi (orientati): cammini minimi

Alberi binari e alberi binari di ricerca

Se gli elementi di E sono tutti distinti e non ci sono cappi, il grafo viene detto semplice, in caso contrario si parla di multigrafo.

Appunti di Ricerca Operativa

Progettazione di Algoritmi

Algoritmi e Strutture Dati

Dati e Algoritmi I (Pietracaprina) Esercizi svolti sui Grafi

Alberi. Definizione, realizzazione e algoritmi elementari. Ugo de' Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 7

UNIVERSITA DEGLI STUDI DI PERUGIA

AMPL Problemi su Reti

ALGORITMI E COMPLESSITA'

2.2 Alberi di supporto di costo ottimo

Transcript:

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) Sommario Grafi: definizioni principali Cammini, cicli Grafi connessi, componenti connesse di un grafo, componenti fortemente connesse Alberi liberi, alberi radicati, alberi ricoprenti: definizioni e proprietà Rappresentazione di grafi ed alberi Problemi ed algoritmi sui grafi Problemi di ottimizzazione sui grafi M. Liverani - Appunti di Informatica (IN0) - Grafi e alberi: introduzione

Grafi: definizioni principali Un grafo G è un oggetto matematico definito come una coppia ordinata G=(V,E), dove V={v,, v n } è l insieme dei vertici (o nodi, o punti) ed E è l insieme degli spigoli (o archi, o lati) E è una relazione binaria su V, ovvero un sottoinsieme del prodotto cartesiano VxV: e=(v i,v j ) Î E Í VxV Se il grafo G è non orientato la relazione E è simmetrica: (v i,v j ) Î E Û (v j,v i ) Î E Se il grafo G è orientato (v i,v j ) Î E non implica necessariamente che (v j,v i ) Î E Grafi: definizioni principali Sia G=(V,E). Notazione: Numero di vertici: V = n Numero di spigoli: E = m Sia G=(V,E) un grafo orientato; se (u,v)îe allora si dice che lo spigolo è incidente i vertici u e v; lo spigolo è uscente dal vertice u ed entrante nel vertice v Il grado di un vertice è dato dal numero di spigoli incidenti su di esso Se (u,v)îe allora v è adiacente ad u (se il grafo è orientato allora non è detto che u sia adiacente a v) M. Liverani - Appunti di Informatica (IN0) - Grafi e alberi: introduzione

Grafi: definizioni principali G = (V,E) è un grafo orientato V = {,,,, } Þ V = E = {(,), (,), (,), (,), (,), (,), (,), (,), (,)} Þ Þ E =9 Cammini Un cammino di lunghezza k da un vertice u ad un vertice u in G è una sequenza (v 0, v,, v k ) di vertici tali che u=v 0, u =v k e (v i-, v i )ÎE, per i=,, k Se esiste un cammino p da u a u, allora si dice che u è raggiungibile da u Un cammino è semplice se tutti i suoi vertici sono distinti. Un cammino da u a u è un ciclo se u=u ; se il ciclo è di lunghezza allora è un cappio Un grafo G privo di cicli è aciclico M. Liverani - Appunti di Informatica (IN0) - Grafi e alberi: introduzione

Grafi connessi, componenti connesse Un grafo non orientato è connesso se ogni coppia di vertici è collegata da un cammino in G Le componenti connesse di un grafo sono le classi di equivalenza dei vertici sotto la relazione raggiungibile da Un grafo orientato è fortemente connesso se ogni coppia di vertici è collegata da un cammino; le componenti fortemente connesse di un grafo sono le classi di equivalenza dei vertici sotto la relazione mutuamente raggiungibile Sottografi Un grafo G =(V,E ) è un sottografo di G=(V,E) se V Í V e E Í E Dato un insieme V Í V, il sottografo di G=(V,E) indotto da V è il grafo G =(V,E ) dove E = {(u,v)îe: u, vîv } Un grafo completo è un grafo non orientato in cui ogni coppia di vertici è adiacente Un grafo bipartito è un grafo non orientato G=(V,E) dove V può essere partizionato in due insiemi V e V tali che (u,v)îe Þ uîv e vîv, oppure uîv e vîv M. Liverani - Appunti di Informatica (IN0) - Grafi e alberi: introduzione

Alberi liberi Un albero è un grafo non orientato, connesso e aciclico Un grafo non orientato e aciclico, ma non connesso, è una foresta Sia G=(V,E) un grafo non orientato. Affermazioni equivalenti (Teorema di caratterizzazione degli alberi): G è un albero due vertici qualsiasi di G sono connessi da un unico cammino semplice G è connesso, ma se qualunque spigolo di G venisse rimosso, allora G diventerebbe non connesso G è connesso e E = V - G è aciclico e E = V - G è aciclico, ma se venisse aggiunto uno spigolo qualsiasi il grafo risultante non sarebbe più aciclico Alberi radicati Un albero radicato è un albero in cui uno dei vertici (detto radice) si distingue dagli altri Se u è un vertice dell albero radicato A ed r è la sua radice, allora ogni vertice v sull unico cammino da r a u è un antenato di u e u è un discendente di v Se (u,v) è uno spigolo di un albero radicato, allora si dice che u è il padre di v e che v è un figlio di u; se anche (u,w) è uno spigolo dell albero, allora v e w sono cugini Un vertice senza figli è una foglia dell albero La lunghezza del cammino più lungo dalla radice ad una foglia è l altezza dell albero M. Liverani - Appunti di Informatica (IN0) - Grafi e alberi: introduzione

Alberi: esempi radice 9 0 Albero (libero) foglie Albero radicato orientato Alberi ricoprenti (spanning tree) Sia G=(V,E) un grafo connesso. Sia T=(V,E ) un sottografo di G connesso. Se T è un albero allora si dice che T è un albero ricoprente (spanning tree) di G Un grafo G può avere anche più di un albero ricoprente Se G non è connesso allora l insieme degli alberi che ricoprono le sue componenti connesse è una foresta ricoprente (spanning forest) M. Liverani - Appunti di Informatica (IN0) - Grafi e alberi: introduzione

Alberi ricoprenti (spanning tree) G T Grafo G=(V,E) e un albero ricoprente T=(V,E ) con E Ì E Rappresentazione di grafi ed alberi Nella memoria della macchina un grafo può essere rappresentato mediante: Liste di adiacenza: per ogni vertice uîv viene costruita una lista dei veritici v,, v k adiacenti a u, ossia tali che (u,v i )ÎE per ogni i=,, k Matrice di adiacenza: il grafo viene rappresentato con una matrice quadrata di ordine n= V, in cui M i,j = se (v i,v j )ÎE, e M i,j =0 altrimenti Per grafi sparsi (con pochi spigoli rispetto al numero dei vertici) è conveniente la rappresentazione mediante liste di adiacenza M. Liverani - Appunti di Informatica (IN0) - Grafi e alberi: introduzione

Rappresentazione di grafi ed alberi G 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Problemi ed algoritmi sui grafi Esiste un vasto insieme di problemi interessanti sui grafi, spesso dotati di algoritmi risolutori efficienti ed eleganti Alcuni esempi: Visita in ampiezza ed in profondità di un grafo Ricerca del minimo albero ricoprente (minimum spanning tree algoritmo di Kruskal) Ricerca del cammino minimo per raggiungere ogni altro vertice a partire da una sorgente (algoritmo di Dijkstra) Calcolo del massimo flusso su una rete (algoritmo di Ford e Fulkerson, algoritmo di Belman e Ford, ecc.) M. Liverani - Appunti di Informatica (IN0) - Grafi e alberi: introduzione

Problemi di ottimizzazione Alcuni problemi consistono nella ricerca di una configurazione del grafo tale da massimizzare o minimizzare una determinata proprietà Questi problemi vanno sotto il nome di problemi di ottimizzazione Formalmente viene definita una funzione obiettivo f i cui valori sono calcolati sulla base di particolari configurazioni del grafo (es.: un peso associato ai vertici o agli spigoli del grafo, il numero di vertici in ogni componente, ecc.); si deve individuare una configurazione del grafo tale da rendere massimo o minimo il valore di f M. Liverani - Appunti di Informatica (IN0) - Grafi e alberi: introduzione 9