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

Documenti analoghi
Problemi, istanze, soluzioni

Problema del cammino minimo

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

Progettazione di Algoritmi

Algoritmi e strutture dati

Progettazione di Algoritmi

Minimo albero di copertura

Grafi (non orientati e connessi): minimo albero ricoprente

Grafi (orientati): cammini minimi

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

11.4 Chiusura transitiva

Grafi: definizioni e visite

Cammini minimi fra tutte le coppie

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.

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

età (anni) manutenzione (keuro) ricavato (keuro)

Il problema del commesso viaggiatore

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

«Sciente e Tecnologie dei Beni Culturali»

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

Esercizi proposti 10

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

Corso di elettrotecnica Materiale didattico: i grafi

Esecuzione concorrente di transazioni

ALBERTO DENNUNZIO DALLE AUTOSTRADE DIGITALI ALLE AUTOSTRADE REALI: GRAFI, WEB, FACEBOOK E NAVIGATORI SATELLITARI

Grafi pesati Minimo albero ricoprente

Depth-first search. Visita in profondità di un grafo Algoritmo Esempio Complessità dell algoritmo Proprietà Ordinamento topologico

Alberi di copertura minimi

Grafi (non orientati e connessi): minimo albero ricoprente

Algoritmo basato su cancellazione di cicli

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

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

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

UNIVERSITA DEGLI STUDI DI PERUGIA

Grafi e gruppo fondamentale di un grafo

Claudio Arbib Università di L Aquila. Ricerca Operativa. Reti di flusso

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

Euristiche per il Problema del Commesso Viaggiatore

Strutture dati per rappresentare grafi

2.2 Alberi di supporto di costo ottimo

La teoria dei grafi permette di esprimere in modo sistematico le LKT e LKC con i metodi della

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

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

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

Modelli decisionali su grafi - Problemi di Localizzazione

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

A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 13 giugno 2011

Appunti lezione Capitolo 15 Ricerca locale

Fondamenti di Internet e Reti

Coverage. Visto che il coverage si basa su aree dell ambiente che vengono monitorate non è

Introduzione al problema dei cammini minimi. Facoltà di Scienze Matematiche Fisiche e Naturali. Prof.ssa Rossella Petreschi

Costruzione di espressioni regolari 4

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

Cosa c è nell unità. Matrice di incidenza Teorema di Tellegen

4c. Esercizi sul livello di Rete Instradamento in Internet

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

Giochi in forma estesa Esempi. In Action with Math. Competizione e Strategia: Teoria dei Giochi. Giulia Bernardi, Roberto Lucchetti.

Possibile applicazione

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

Macchine sequenziali. Automa a Stati Finiti (ASF)

Algoritmi Euristici. Corso di Laurea in Informatica e Corso di Laurea in Matematica. Roberto Cordone DI - Università degli Studi di Milano

VISITA IL SITO PER ALTRO MATERIALE E GUIDE

Alberi binari di ricerca

Progettazione di Algoritmi

Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla

Esercizi per il corso di. Logistica I. a.a Daniela Favaretto. Dipartimento di Matematica Applicata Università Ca Foscari di Venezia

Note per la Lezione 4 Ugo Vaccaro

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 5

Algoritmi e Strutture Dati. HeapSort

Spiegazioni ASD 2013 I Traghetti di Earthsea

Ottimizzazione Combinatoria A. A

Il problema del commesso viaggiatore e problemi di vehicle routing

Tecniche di conteggio

Pianificazione dei progetti. Alberto Caprara DEIS - Università di Bologna

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

Progettazione di algoritmi

1 SOLUZIONE DEI PROBLEMI TRAMITE GRAFI

Alberi Binari di Ricerca

Esercitazione. Ricorsione. May 31, Esercizi presi dal libro di Rosen

Ottimizzazione Combinatoria A. A

Stallo di processi. Definizione del problema e modellizzazione Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Informatica e Interazione Uomo-Macchina

Esame di Ricerca Operativa del 15/01/2015

L algoritmo di Dijkstra

DISPENSE DI PROGRAMMAZIONE

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

LA MATEMATICA DELLE RELAZIONI SOCIALI

Week #9 Assessment. Practice makes perfect... November 23, 2016

Linguaggi di Programmazione Corso C. Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali. Nicola Fanizzi

Esercizi di Algoritmi e Complessità

Esercizi di Algoritmi e Strutture Dati

Routing IP. IP routing

E facile vedere che il massimo numero di archi è n(n - 1)/2. Nel caso in cui m = O(n) diremo che il grafo è sparso. V={1,2,3,4,5}

RETI DI CALCOLATORI II

Intelligenza Artificiale. Ricerca euristica Algoritmo A*

E facile vedere che il massimo numero di archi è n(n - 1)/2. Nel caso in cui m = O(n) diremo che il grafo è sparso.

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Analisi multicriteria. Analisi multicriteria

Transcript:

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 con n = V il numero di nodi di G, e con m = E il numero di archi di G.

Algoritmi e Strutture di Dati II 3 Un grafo diretto a b c d e f g h

Algoritmi e Strutture di Dati II 4 Successori e predecessori Dato un nodo u, isuccessori di u sono i vertici v tali che (u, v) 2 E. Ilgrado uscente di un nodo u è i l n u m e r o d i successori di u. I predecessori di u sono i vertici v tali che (v, u) 2 E. llgrado entrante di u è il numero di predecessori di u. Il grado di un nodo è la somma tra grado uscente e grado entrante del nodo.

Algoritmi e Strutture di Dati II 5 Cammini e cicli Un cammino è una sequenza di nodi collegati a due a due da archi. La lunghezza del cammino è il numero di archi del cammino. Un cammino semplice è un cammino senza nodi ripetuti. Esiste sempre un cammino di lunghezza zero da un nodo a se stesso. Un ciclo è un cammino da un nodo a se stesso che contiene almeno un arco. Un ciclo è semplice se il cammino ottenuto togliendo dal ciclo l ultimo nodo è semplice. Un cappio è un ciclo di lunghezza uno.

Algoritmi e Strutture di Dati II 6 Grafi indiretti Un grafo diretto (o grafo non 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 non orientati. Un arco non orientato è u n i n s i e m e {u, v}, con u 6= v.

Algoritmi e Strutture di Dati II 7 Grafo indiretto a b c d e f g h

Algoritmi e Strutture di Dati II 8 Quesiti 1. Qual è il numero massimo di archi di un grafo diretto di n nodi? 2. Qual è il numero massimo di archi di un grafo indiretto di n nodi?

Algoritmi e Strutture di Dati II 9 Visite di grafi Gli algoritmi di visita di un grafo hanno come obiettivo l esplorazione di tutti i nodi e gli archi del grafo. Vi sono due modi principali per esplorare un grafo: Visita in ampiezza: di fratello in fratello. Visita in profondità: di padre in figlio.

Algoritmi e Strutture di Dati II 10 Le due visite a confronto 1 1 2 3 4 2 5 9 5 6 7 3 4 6 8 9 7 8

Algoritmi e Strutture di Dati II 11 Ordinamento topologico Un DAG è u n grafo diretto aciclico. Un ordinamento topologico di un DAG G =(V,E) èun ordinamento totale dei suoi vertici tale che: se (u, v) 2 E allora u v.

Algoritmi e Strutture di Dati II 12 watch 9/10 11/16 undershorts socks 17/18 12/15 pants shirt 1/8 shoes 13/14 6/7 belt tie 2/5 jacket 3/4

Algoritmi e Strutture di Dati II 13 Ordinamento topologico socks undershorts pants shoes watch shirt belt tie jacket 17/18 11/16 12/15 13/14 9/10 1/8 6/7 2/5 3/4

Algoritmi e Strutture di Dati II 14 Raggiungibilità Un nodo v è raggiungibile da un nodo u (oppure u raggiunge v) se esiste un cammino da u a v. Definiamo due relazioni sull insieme dei nodi: (a) la relazione di raggiungibilità R! tale che ur! v se v è raggiungibile da u; (b) la relazione di mutua raggiungibilità R tale che ur v se ur! v e vr! u. La relazione di mutua raggiungibilità è una relazione di equivalenza.

Algoritmi e Strutture di Dati II 15 Componenti fortemente connesse Dato un grafo diretto G =(V,E), le classi di equivalenza della relazione di mutua raggiungibilità sono dette componenti fortemente connesse (CFC) del grafo. In modo equivalente, una CFC di G =(V,E) èuninsieme massimale di vertici U µ V tale che ogni coppia di vertici in U è mutuamente raggiungibile. Se C 1,...,C k sono le CFC di G, allora: C i 6= ; per ogni i; C i \ C j = ; per ogni i 6= j; S k i=1 C i = V.

Algoritmi e Strutture di Dati II 16 a b c d e f g h

Algoritmi e Strutture di Dati II 17 Componenti connesse Nei grafi indiretti, la relazione di raggiungibilità R! coincide con la relazione di mutua raggiungibilità R. Le classi di equivalenza della relazione di raggiungibilità su grafi indiretti sono dette componenti connesse. a b c d e f g h

Algoritmi e Strutture di Dati II 18 Foreste Un grafo si dice: aciclico se non contiene cicli; (fortemente) connesso se ammette una unica componente (fortemente) connessa. Una foresta è un grafo indiretto aciclico. a b c d e f g h

Algoritmi e Strutture di Dati II 19 Alberi Un albero è un grafo indiretto aciclico e connesso. a b c d e f g h

Algoritmi e Strutture di Dati II 20 Proprietà degli alberi Sia T =(V,E) un albero. Allora: 1. Ogni due nodi di T sono connessi da un unico cammino semplice. 2. Rimuovendo un arco qualsiasi da T otteniamo un grafo sconnesso. 3. Aggiungendo un arco qualsiasi a T otteniamo un grafo ciclico. 4. E = V 1.

Algoritmi e Strutture di Dati II 21 Quesiti 1. Qual è il numero di archi di un albero di n nodi? 2. Qual è il numero di archi di una foresta di n nodi e k componenti connesse?

Algoritmi e Strutture di Dati II 22 Grafi pesati Un grafo pesato è un grafo G =(V,E,w), dove w : E! R è u n a funzione di peso che associa un numero reale chiamato peso (o costo) ad ogni arco. b 8 c 7 d a 4 8 11 7 i 2 6 4 14 9 10 e h 1 g 2 f

Algoritmi e Strutture di Dati II 23 Albero di supporto Sia G =(V,E,w) un grafo pesato indiretto e connesso. Un albero di supporto T =(V,F) dig è u n albero che ha come insieme dei nodi l insieme V dei nodi del grafo e come insieme degli archi un insieme F µ E. Il peso di un albero di supporto T =(V,F) è w(t )= X w(u, v) (u,v)2f

Algoritmi e Strutture di Dati II 24 Albero di supporto di peso minimo Il problema dell albero di supporto di costo minimo consiste nel trovare un albero di supporto di G di peso minimo. Tale albero non è necessariamente unico. b 8 c 7 d a 4 8 11 7 i 2 6 4 14 9 10 e 1 2 h g f

Algoritmi e Strutture di Dati II 25 Problema del cammino (di peso) minimo Dato un grafo diretto pesato G =(V,E,w), il peso di un cammino p = hv 0,v 1,...,v k i è la somma dei pesi dei propri archi, w(p) = k 1 X i=0 w(v i,v i+1 ) Dati due nodi u e v, uncammino minimo tra due nodi è, se esiste, un cammino di peso minimo che li collega.

Algoritmi e Strutture di Dati II 26 Due varianti del problema 1. Cammino minimo con una sorgente: dato un nodo sorgente s, trovare, per ogni nodo del grafo v, un cammino minimo da s a v; 2. Cammino minimo per tutte le coppie di nodi: per ogni coppia di nodi u, v del grafo trovare un cammino minimo da u a v.

Algoritmi e Strutture di Dati II 27 0 3 5 2 3 4 5 2 4 6 3 3 7 2 11 5 8 4 7 11 6

Algoritmi e Strutture di Dati II 28 4 3 1 3 4 6 5 8 0 5 11 3 3 2 7 6

Algoritmi e Strutture di Dati II 29 Grafo completo Un grafo completo è un grafo indiretto in cui ogni coppia di vertici distinti è connessa da un arco. a b f c e d

Algoritmi e Strutture di Dati II 30 Problema del commesso viaggiatore Dato un grafo indiretto G, untour in G è un ciclo che passa esattamente una volta per ogni nodo di G. Sia G un grafo indiretto, completo e pesato con pesi non negativi. Il problema del commesso viaggiatore consiste nel trovare il tour in G di peso minimo.

Algoritmi e Strutture di Dati II 31 a d e b f g c h

Algoritmi e Strutture di Dati II 32 a d a d e e b f g b f g c c h h C = a, b, c, h, d, e, f, g, a w(c) = 19,074 C* = a, b, c, h, f, g, e, d, a w(c*) = 14,715