Dati e Algoritmi 1: A. Pietracaprina. Grafi (II parte)
|
|
|
- Gabriele Pagani
- 9 anni fa
- Просмотров:
Транскрипт
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
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 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 (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
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à
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 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:
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
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 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
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
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
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 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 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 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 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, Pisa [email protected] M. Passacantando TFA 0/ - Corso di Ricerca Operativa Università di Pisa / 9 Definizioni
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 Gli algoritmi di ricerca su grafo, oggetto dei prossimi paragrafi, rappresentano tecniche fondamentali per determinare nodi che soddisfino particolari proprietà
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 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
. 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 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 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 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
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 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 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
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 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 1 Problema 1 Dimostrare che un albero non vuoto con n nodi interni, dove ogni nodo interno ha almeno
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 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);
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
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 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 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
. 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
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»
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
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 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 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 :
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. 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) 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
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!
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 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 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. 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}
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, 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 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) 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
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 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
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 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 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 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 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 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. 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 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 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 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 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
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 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) 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 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 2 Grafo Un grafo G è una coppia (V, E) ove V è un
