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

Размер: px
Начинать показ со страницы:

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

Транскрипт

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

2 Breath-First Search (algoritmo iterativo) Si assume una rappresentazione tramite liste di adiacenza. L ordine con cui si visitano i vicini di un nodo è determinato dall ordine nella lista di adiacenza. vertice di partenza s (livello L 0 ) i 0: visita i vertici del livello L i e genera il livello L i+1 : L i+1 = { vicini non ancora visitati del livello L i } DISCOVERY EDGE (u,v): u al livello L i, v al livello L i+1 scoperto a partire da u CROSS EDGE: gli altri archi 2

3 Algoritmo Iterativo BFS(G, s) Input: grafo G = (V, E) non diretto, vertice s V Output: visita di tutti i vertici e tutti gli archi nella componente connessa di s marcando gli archi ancora non marcati come DISCOVERY/CROSS EDGE /* Considera ogni vertice/arco NON VISITATO/NON MARCATO */ 3

4 Algoritmo Iterativo BFS(G, s) (continua) visita s e marcalo VISITATO; crea una collezione L 0 contenente s; i 0; while (!L i.isempty()) do crea una collezione di vertici L i+1 vuota; forall v L i do forall e G.incidentEdges(v) do if (e = NON MARCATO) then w G.opposite(v,e); if (w è NON VISITATO) then marca e come DISCOVERY EDGE; visita w e marcalo VISITATO; inserisci w in L i+1 ; else marca e come CROSS EDGE; return; i i + 1; 4

5 Esempio 2" 4" 1" 6" 3" 5" 7" s"=" 1" Liste"di"adiacenza" "(ordine"crescente)" 1:" 2" 3" 2:" 1" 4" 3:" 1" 5" 4:" 2" 5" 6" 5:" 3" 4" 6" 7" 6:" 4" 5" 7:" 5" D"="DISCOVERY"EDGE" C"="CROSS"EDGE"" L 0! 1" D" D" L 1! 2" 3" L 2! D" 4" D" C" C" 5" D" D" L 3! 6" 7" 5

6 Analisi di BFS G = (V, E) grafo non diretto, s V C s G: componente connessa di G contenente s. Proposizione ( Prop [GTG14]) Dopo l esecuzione di BFS(G, s) si ha: (a) tutti i vertici di C s sono visitati; (b) i DISCOVERY EDGE formano uno spanning tree T di C s, chiamato BFS tree (c) v L i il cammino in T da s a v ha i archi e qualsiasi altro. cammino in G da s a v ha i archi ( i = distanza(s, v)) (d) se (u, v) E e (u, v) T ( (u, v) è un CROSS EDGE) gli indici dei livelli a cui u e v appartengono differiscono al più di 1 6

7 Dimostrazione (Esercizi C-14.46, C [GTG14]) (a) come per la DFS (b) come per la DFS (c) Si consideri il cammino P : s = u 0 u 1 u i = v, dove u j L j viene scoperto da u j 1, j : 1 j i. Quindi (u j 1, u j ) è un DISCOVERY EDGE, e, di conseguenza, P è un cammino in T. Per assurdo, se esistesse in G un cammino con t < i, si avrebbe P : s = z 0 z 1 z t = v, 7

8 Dimostrazione (continua) s = z 0 L 0 z 1 L 1 z 2 L 1 o L 2 z t = v. L 1 o... o L t v L i : assurdo (d) Per assurdo, se u L i e v L i+k con k > 1 v sarebbe scoperto a partire da u e quindi si avrebbe v L i+1 e non v L i+k (assurdo). 8

9 Complessità di BFS Hp: rappresentazione di G tramite liste di adiacenza n s = num. vertici in C s m s = num. archi in C s L i : rappresentati tramite liste v vertice in C s viene eseguita esattamente 1 iterazione del primo ciclo forall ed esattamente degree(v) iterazioni del secondo ciclo forall ciascuna iterazione del secondo ciclo forall richiede tempo Θ (1) tutti gli accessi alle L i richiedono tempo Θ (1) complessità di BFS(G,s) Θ (m s ) Corollario Se G = (V, E) è connesso, la complessità di BFS(G,s) è Θ ( E ) s V. 9

10 Proposizione 10 Dato G = (V, E) con V = n e E = m i seguenti problemi possono essere risolti in tempo O (m + n) tramite BFS: 1 testare se G è connesso 2 identificare le componenti connesse di G 3 identificare uno spanning tree di G, se G è connesso 4 identificare un cammino minimo tra due vertici s e t, se esiste 5 identificare un ciclo in G, se esiste, o affermare che G non ha cicli

11 Dimostrazione 11 1 Simile al caso della DFS 2 Simile al caso della DFS 3 Simile al caso della DFS 4 Cammino minimo da s a t. Modifichiamo BFS(G,s) in modo che quando marca un arco (v, w) come DISCOVERY EDGE imposti v come padre di w Eseguiamo BFS(G,s). Alla fine, se t non è stato mai marcato come visitato si dice in output che non esiste un cammino da s a t, altrimenti, partendo da t e risalendo di padre in padre si costruisce il cammino, che risulta minimo in virtù della proposizione precedente. Complessità: O (n + m), dato che si invoca la BFS una sola volta. Esercizio: scrittura di uno pseudocodice più dettagliato

12 Dimostrazione di (5) 12 Osservazione un ciclo se e solo se una componente connessa sulla quale BFS marca almeno un arco come CROSS EDGE. Supponiamo che (v, w) sia marcato come CROSS EDGE da BFS(G,s): Esistono due cammini da v a s e da w a s fatti solo di DISCOVERY EDGE i livelli di v e w differiscono al più di 1

13 Dimostrazione di (5) (continua) 13 A ogni nodo i V associamo i campi: L V [i].id, L V [i].level e L V [i].parent. Inizialmente, L V [i].id è impostato a 0, mentre L V [i].level e L V [i].parent sono impostati a null. Si definisce BFS(G,s,k) come modifica di BFS(G,s) che: Assegna il valore k al campo ID di ciascun vertice visitato (quindi appartenente alla componente connessa di s) Se w viene scoperto da v, marcando l arco (v, w) come DISCOVERY EDGE, assegna v al campo L V [w].parent (ovvero, v diventa padre di w. Imposta il campo L V [v].level di ciascun vertice v visitato all indice del livello di v.

14 Dimostrazione di (5) (continua) 14 k 1; for i 1 to n do if (L V [i].id= 0) then BFS(G,i,k); k k + 1; forall e E do if (e = (i, j) è marcato come CROSS EDGE) then C collezione di archi vuota; if (L V [i].level = L V [j].level+1) then aggiungi (i, L V [i].parent) a C; i L V [i].parent; if (L V [j].level = L V [j].level+1) then aggiungi (j, L V [j].parent) a C; j L V [j].parent; while (i j) do aggiungi (i, L V [i].parent) (j, L V [j].parent) a C; i L V [i].parent; j L V [j].parent; return C; return NO CYCLE; Complessità: O (n + m) Oss.: le BFS possono essere interrotte appena si marca un arco come CROSS EDGE

15 15 Caso di Studio: 6 gradi di separazione 1929: Nel racconto Catene Krigyes Karinthy ipotizza con due persone arbitrarie sono collegate da una catena di conoscenze che passa per al più 5 intermediari (da qui la teoria dei 6 gradi di separazione) 1967: Stanley Milgram decise di verificare sperimentalmente la teoria chiedendo a un gruppo di persone del Midwest (USA) di mandare un pacco a uno sconosciuto in Massachusetts facendolo arrivare tramite conoscenti, conoscenti di conoscenti, ecc. Effettivamente, in media servirono tra i 5 e i 7 intermediari Verifiche successive: nel 2006 sulla rete di MSN Messenger (6.6 gradi di separazione media), e nel 2011 su Facebook (4.74 gradi di separazione media). Su Faceook risultò che il 92% delle coppie di utenti è separato da al più 4 gradi!

16 Caso di Studio: 6 gradi di separazione (continua) Grafo di Facebook: n ' vertici (utenti), e m ' 95 n archi (amicizie). Calcolo delle distanze esatte per tutte le coppie di utenti: complessit`a Θ (n m) non eseguibile in pratica. Si usano allora stime approssimate 16

17 17 Osservazione DFS(G,s) e BFS(G,s) marcano tutti gli archi di C s (componente comune che contiene s). Infatti sappiamo che visitano tutti i vertici di C s e (by inspection) per ogni vertice considerano tutti gli archi incidenti, marcandoli se non sono già marcati.

18 18 Esercizio C [GTG14] Sia T lo spanning tree generato dai discovery edge di una Depth-First Search (DFS) di un grafo G non diretto e connesso. T è radicato nel vertice di partenza della DFS. Dimostrare che un arco di G marcato come back edge collega un vertice con un suo antenato in T. (Si osservi che questo giustifica la locuzione back edge.) Esercizio C [GTG14] Un grafo G = (V, E) si dice bipartito se l insieme di vertici V può essere partizionato in due sottoinsiemi X e Y tali che ogni arco di E incide su un vertice di X e uno di Y. Progettare e analizzare un algoritmo efficiente che determini se un grafo non diretto G è bipartito.

19 19 Esercizio Sia G = (V, E) un grafo non diretto con k > 1 componenti connesse. Progettare un algoritmo che aggiunga k 1 archi a G per renderlo connesso e analizzarne la complessità. Si assuma di poter aggiungere a E un arco (i, j) E in tempo costante invocando il metodo G.addArc(i,j). Esercizio Sia G un grafo non diretto e connesso in cui ciascun vertice ha grado esattamente c, con c > 2 costante intera. Si consideri l esecuzione di BFS(G, s) a partire da un arbitrario vertice s V. Dimostrare per induzione su i che il livello L i generato da BFS(G, s) contiene c i vertici, per ogni i 0.

20 Esempio domande prima parte 20 Definire rigorosamente le componenti connesse di un grafo non diretto G Dimostrare che in un free tree G con n vertici ed m archi, si ha che m = n 1. Sia G un grafo non diretto con n vertici ed m archi. Indicare tre problemi computazionali che, dato in input G possono essere risolti in tempo O (n + m). Sia G = (V, E) un grafo non diretto e connesso. Dati due vertici s, t V dire brevemente come trovare il cammino più breve da s a t, e quanto tempo è richiesto per trovarlo Sia G = (V, E) un grafo non diretto e connesso. Dimostrare che eseguendo DFS(G, s), per un qualche s V si visitano tutti i vertici.

21 Riepilogo 21 Definizioni e terminologia sui grafi. Equivalenza tra rooted tree e free tree Relazione tra la somma dei degree e il numero di archi in un grafo Relazioni tra numero di vertici e numero di archi in alberi, foreste e grafi connessi Depth-First Search Algoritmo Analisi e proprietà Problemi computazionali risolvibili tramite DFS Breadth-First Search Algoritmo Analisi e proprietà Problemi computazionali risolvibili tramite DFS

Esempi. non. orientato. orientato

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 è

Подробнее

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

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

Подробнее

Grafi: definizioni e visite

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

Подробнее

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

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

Подробнее

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

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: visita generica

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

Подробнее

Cammini minimi in grafi:

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

Подробнее

Problema del cammino minimo

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

Подробнее

Progettazione di algoritmi

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

Подробнее

Minimo albero di copertura

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.

Подробнее

Grafi pesati Minimo albero ricoprente

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

Подробнее

Note per la Lezione 4 Ugo Vaccaro

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

Подробнее

Algoritmi e strutture dati

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

Подробнее

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

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

Подробнее

Grafi (orientati): cammini minimi

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

Подробнее

Algoritmo basato su cancellazione di cicli

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

Подробнее

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

Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa Alberi di copertura Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo, Pisa [email protected] M. Passacantando TFA 0/ - Corso di Ricerca Operativa Università di Pisa / 9 Definizioni

Подробнее

Strutture dati per rappresentare grafi

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,

Подробнее

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

Capitolo 5. Algoritmi di ricerca su grafo. 5.1 Algoritmi di ricerca su grafo Capitolo 5 Algoritmi di ricerca su grafo Gli algoritmi di ricerca su grafo, oggetto dei prossimi paragrafi, rappresentano tecniche fondamentali per determinare nodi che soddisfino particolari proprietà

Подробнее

Introduzione ai grafi

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

Подробнее

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

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

Подробнее

2.2 Alberi di supporto di costo ottimo

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

Подробнее

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla [email protected] Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi

Подробнее

Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output

Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output F = { (s, s ) } per ogni s esiste una e una sola coppia (s, s ). Esempio: un algoritmo che calcola il quadrato di

Подробнее

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

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

Подробнее

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

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

Подробнее

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. 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

Подробнее

Alberi ed Alberi Binari

Alberi ed Alberi Binari Alberi ed Alberi Binari Il tipo di dato Albero Un albero è una struttura di data organizzata gerarchicamente. È costituito da un insieme di nodi collegati tra di loro: ogni nodo contiene dell informazione,

Подробнее

Progettazione di Algoritmi

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

Подробнее

Grafi e reti di flusso

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

Подробнее

Dati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi

Dati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi Dati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1 Dimostrare che un albero non vuoto con n nodi interni, dove ogni nodo interno ha almeno

Подробнее

Alberto Montresor Università di Trento

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

Подробнее

LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve

LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve LE STRUTTURE DATI DINAMICHE: GLI ALBERI Cosimo Laneve 1 argomenti 1. definizione di alberi e nozioni relative 2. implementazione degli alberi, creazione, visita 3. algoritmo di visita iterativa e sua implementazione

Подробнее

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

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

Подробнее

Problemi, istanze, soluzioni

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

Подробнее

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

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

Подробнее

Algoritmi e strutture dati

Algoritmi e strutture dati Algoritmi e strutture dati Roberto Cordone A. A. 2015-16 Capitolo 4 Implementazioni delle partizioni Nota: queste dispense sono un rapido riassunto delle lezioni svolte nel dicembre 2015 e gennaio 2016.

Подробнее

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

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,

Подробнее

Cammini minimi fra tutte le coppie

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)

Подробнее

«Sciente e Tecnologie dei Beni Culturali»

«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]

Подробнее

11.4 Chiusura transitiva

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)

Подробнее

Corso di elettrotecnica Materiale didattico: i grafi

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

Подробнее

Esercizi proposti 10

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 =

Подробнее

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

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

Подробнее

Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni.

Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro

Подробнее

Tempo e spazio di calcolo (continua)

Tempo e spazio di calcolo (continua) Tempo e spazio di calcolo (continua) I numeri di Fibonacci come case study (applichiamo ad un esempio completo le tecniche illustrate nei lucidi precedenti) Abbiamo introdotto tecniche per la correttezza

Подробнее

Progettazione di Algoritmi

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. Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi!

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

Подробнее

LA MATEMATICA DELLE RELAZIONI SOCIALI

LA MATEMATICA DELLE RELAZIONI SOCIALI LA MATEMATICA DELLE RELAZIONI SOCIALI ALESSIO TORTI SILVIA LAZZARI FRANCESCA GERACE FLAVIA VICICONTE ABSTRACT. Nell articolo si analizzano, utilizzando la teoria dei grafi, le diverse configurazioni che

Подробнее

In questa lezione Alberi binari di ricerca: la cancellazione

In questa lezione Alberi binari di ricerca: la cancellazione In questa leione Alberi binari di ricerca: la cancellaione 1 L algoritmo di Hibbard per cancellare (1962) Sia il nodo da cancellare: 1) è una foglia: si rimuove 2) ha un solo figlio x: si rende x figlio

Подробнее

In questa lezione. Heapsort. ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 114

In questa lezione. Heapsort. ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 114 In questa lezione Heapsort ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 11 1 Paternità L heapsort è stato pubblicato da J. W. J. Williams nel 106. Pochi mesi

Подробнее

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}

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} 9) Grafi Pag 152 In questo capitolo vengono illustrati i grafi, importantissime strutture discrete che da un lato esibiscono proprietà di grande interesse per la matematica (in particolare per la teoria

Подробнее

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

Esercitazione. Ricorsione. May 31, Esercizi presi dal libro di Rosen Esercitazione Ricorsione May 31, 2016 Esercizi presi dal libro di Rosen Problema 2 a) sezione 5.3 Data la seguente funzione definita ricorsivamente come: f(n+1) = 2f(n) f(0) = 3 Determinare il valore di

Подробнее

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati 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 of this

Подробнее

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

Подробнее

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

La teoria dei grafi permette di esprimere in modo sistematico le LKT e LKC con i metodi della Grafi La teoria dei grafi permette di esprimere in modo sistematico le LKT e LKC con i metodi della topologia combinatoria. Definizione intuitiva di grafo: Un Grafo è un insieme di nodi (rappresentabili

Подробнее

Pumping lemma per i linguaggi Context-free

Pumping lemma per i linguaggi Context-free Pumping lemma per i linguaggi Context-free Sia L un linguaggio context-free. E possibile determinare una costante k, dipendente da L, tale che qualunque stringa z! L con z > k si può esprimere come z=

Подробнее

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

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014 A Ricerca Operativa 1 Seconda prova intermedia Un tifoso di calcio in partenza da Roma vuole raggiungere Rio De Janeiro per la finale del mondiale spendendo il meno possibile. Sono date le seguenti disponibilità

Подробнее

Il problema del commesso viaggiatore

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à

Подробнее

Grafi, Social Network e Ricerca su Web Prof. Maurizio Naldi

Grafi, Social Network e Ricerca su Web Prof. Maurizio Naldi Grafi, Social Network e Ricerca su Web Prof. Maurizio Naldi Teoria dei Grafi È uno strumento indispensabile per l analisi di reti e, quindi, di social network.... è fondamentale anche per capire come funziona

Подробнее

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,

Подробнее

Alberi. Gli alberi sono una generalizzazione delle liste che consente di modellare delle strutture gerarchiche come questa: Largo. Fosco.

Alberi. Gli alberi sono una generalizzazione delle liste che consente di modellare delle strutture gerarchiche come questa: Largo. Fosco. Alberi Alberi Gli alberi sono una generalizzazione delle liste che consente di modellare delle strutture gerarchiche come questa: Largo Fosco Dora Drogo Frodo Dudo Daisy Alberi Gli alberi sono una generalizzazione

Подробнее

Grafi e rappresentazione delle Reti

Grafi e rappresentazione delle Reti Grafi e rappresentazione delle Reti Una buona scelta della rappresentazione della rete determina la nostra capacità di utilizzare il sistema con successo Grafi e rappresentazione delle Reti La Teoria dei

Подробнее

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

Подробнее

Alberi Binari di Ricerca

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

Подробнее

Alberi Binari di Ricerca

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,

Подробнее

Ordinamenti per confronto: albero di decisione

Ordinamenti per confronto: albero di decisione Ordinamenti per confronto: albero di decisione Albero di decisione = rappresentazione grafica di tutte le possibili sequenze di confronti eseguite da un algoritmo assegnato di ordinamento per confronto

Подробнее

Insiemi, Numeri, Terminologia. Prof. Simone Sbaraglia

Insiemi, Numeri, Terminologia. Prof. Simone Sbaraglia Insiemi, Numeri, Terminologia Prof. Simone Sbaraglia Corso Rapido di Logica Matematica La logica formale definisce le regole cui deve obbedire qualsiasi teoria deduttiva. Una proposizione e` una affermazione

Подробнее

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015 1 Lunedí 20 Aprile 2015 1 Istituto di Analisi dei Sistemi ed Informatica IASI - CNR Rilassamento di un problema Rilassare un problema di Programmazione Matematica vuol dire trascurare alcuni (tutti i)

Подробнее

Alberi binari di ricerca

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

Подробнее

Automa a Stati Finiti (ASF)

Automa a Stati Finiti (ASF) Automa a Stati Finiti (ASF) E una prima astrazione di macchina dotata di memoria che esegue algoritmi Introduce il concetto fondamentale di STATO che informalmente può essere definito come una particolare

Подробнее

Linguaggi e Ambienti di Programmazione

Linguaggi e Ambienti di Programmazione Linguaggi e Ambienti di Programmazione Principi e tecniche diffuse che si incontrano spesso nelle applicazioni dell informatica. Compilatori Editor di struttura: riceve in input una sequenza di comandi

Подробнее

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc Algoritmi e Strutture di Dati I 1 Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc Algoritmi e Strutture di Dati I 2 Grafo Un grafo G è una coppia (V, E) ove V è un

Подробнее