Appunti di Algoritmi e Strutture Dati. Grafi. Gianfranco Gallizia
|
|
- Giacinta Rostagno
- 8 anni fa
- Visualizzazioni
Transcript
1 Appunti di Algoritmi e Strutture Dati Grafi Gianfranco Gallizia 12 Dicembre 2004
2 2
3 Indice 1 Grafi Definizione Implementazione Liste di adiacenza Matrici di adiacenza Matrici di incidenza Visita dei grafi Breadth-First Search (BFS) Depth-First Search (DFS) Applicazioni della DFS Algoritmo di Dijkstra Cicli Euleriani e Hamiltoniani Cicli Euleriani Cicli Hamiltoniani Alberi Definizione Implementazione Visita degli alberi Heaps (cataste)
4 4 INDICE
5 Capitolo 1 Grafi 1.1 Definizione Nella matematica moderna, si dice grafo (da non confondere con grafico) una figura costituita da punti, detti vertici o nodi, e da linee che li uniscono, dette lati o spigoli o archi. Più formalmente, dato un insieme A di nodi, un grafo è un sottoinsieme del prodotto cartesiano G A A. 1.2 Implementazione Liste di adiacenza Tratto da Figura 1.1: Grafo e lista di adiacenza. La lista di adiacenza è un array di puntatori con tanti elementi quanti sono i nodi del grafo. La lista di adiacenza viene costruita concatenando in una lista i vicini del nodo che si sta considerando. 5
6 6 CAPITOLO 1. GRAFI Matrici di adiacenza Come si legge: Si guarda la prima colonna e confronta riga per riga. Uno 0 significa che tra il nodo che identifica la colonna e il nodo che identifica la riga non c è nessun arco. Un 1 significa che tra il nodo che identifica la colonna e il nodo che identifica la riga c è un arco. Nel caso in cui il grafo sia orientato si controlla che vi sia un arco entrante nel nodo che identifica la riga che parte dal nodo che identifica la colonna Matrici di incidenza Lega: M ij (1,2) (1,3) : se dal nodo i non parte o non arriva l arco j. 1: se dal nodo i parte o arriva l arco j.
7 1.3. VISITA DEI GRAFI Visita dei grafi Breadth-First Search (BFS) La BFS (visita in ampiezza) oltre a visitare il grafo a partire dal nodo S compila anche l albero 1 dei cammini minimi 2 che ha per radice il nodo S. Il principio su cui si basa la BFS è: visito prima tutti i nodi a distanza 1 da S, poi tutti tutti i nodi a distanza 2 ecc... Figura 1.2: Princio della BFS. 1 Vedi definizione di albero più avanti. 2 Albero dei cammini minimi: albero che illustra i percorsi più brevi a partire da un nodo.
8 8 CAPITOLO 1. GRAFI Lega: S: nodo di partenza. d(x): distanza di x da S. P(x): padre di x. color(x): colore 3 di x. Q: coda dei nodi grigi. Adj: lista di adiacenza del grafo. Pseudocodice. BFS(G[ ], s ) for each vertex in G[ ] except s do color (u):= white ; P(u):=NIL ; d(u):= i n f i n i t y ; color ( s ):= gray ; d( s ):=0; P( s ):=NIL ; Enqueue( s ) ; while Q<>EMPTY do u:=dequeue(q) ; for each v in Adj(u) do if color (v)=white then color (v):= gray ; d(v):=d(u)+1; P(v):=u ; Enqueue(v ) ; Dequeue(Q) ; color (u):= black ;. 3 Nella BFS ogni nodo viene colorato con il seguente criterio: W(bianco): non visitato. G(grigio): visita iniziata. B(nero): visita terminata.
9 1.3. VISITA DEI GRAFI Depth-First Search (DFS) La DFS (visita in profondità) percorre il cammino più lungo possibile da un nodo e poi torna indietro e controlla i nodi che non sono stati visitati. Nella DFS si visitano tutti i nodi del grafo (anche quelli che non sono visitati con la BFS). Lega: S: nodo di partenza. P(x): padre di x. color(x): colore 4 di x. time:contatore temporale. i(x): istante in cui si scopre il nodo x. f(x): istante in cui si completa la visita del nodo x. Adj: lista di adiacenza del grafo. 4 Nella DFS ogni nodo viene colorato con il seguente criterio: W(bianco): non visitato. G(grigio): scoperto. B(nero): visitato.
10 10 CAPITOLO 1. GRAFI Pseudocodice. DFS(G[ ] ) for each u in G[ ] do color (u):= white ; P(u):=NIL ; time :=0; for each v in G[ ] do if color (u)=white then DFS v i s i t (u ) ;. DFS v i s i t (u) color (u):= gray ; time:=time+1; i (u):= time ; for each v in Adj(u) do if color (v)=white then P(v):=u ; DFS v i s i t (v ) ; color (u):= black ; time:=time+1; f (u):= time ;.
11 1.3. VISITA DEI GRAFI Applicazioni della DFS Topological sort Applicato ad un grafo diretto e aciclico il Topological Sort ci consente di ordinare i nodi di un grafo G in modo che se G contiene un arco w v allora w appare prima di v. Il Topological Sort consiste nell applicare al grafo la DFS e poi nell ordinare in modo decrescente i nodi in base ai tempi finali. Strongly Connected Components (SCC) SCC 5 è il massimo insieme di nodi tali che coppia di nodi (u, v) un cammino da u a v e uno da v a u. La ricerca delle SCC si basa sul grafo trasposto 6. Si calcola la DFS del grafo e si tiene traccia dei tempi finali, quindi si calcola il grafo trasposto e si applica la DFS al grafo trasposto parto dai nodi che hanno avuto f(x) maggiore nella DFS del grafo diretto. L insieme degli alberi della DFS appena calcolata ci ritorna le componenti fortemente connesse (SCC). 5 Scc: in italiano componenti fortemente connesse. 6 Grafo trasposto di un grafo diretto: grafo diretto in cui gli archi sono invertiti rispetto al grafo originale.
12 12 CAPITOLO 1. GRAFI Algoritmo di Dijkstra Formulato da Edsger W. Dijkstra nel 1959 questo algoritmo consente di trovare l albero dei cammini minimi in un grafo diretto pesato. Un grafo diretto pesato è un grafo orientato 7 in cui gli archi hanno un valore (chiamato peso) tale per cui w 5 v significa che per andare da w a v spo 5. Lega: s: nodo di partenza. d(x): distanza di x da S. P(x): padre di x. Q: coda con priorità basata sulle distanze. S: insieme dei nodi analizzati. Adj: lista di adiacenza del grafo. Dijkstra (G[ ], s ) for each vertex in G[ ] do d( vertex ):= i n f i n i t y ; P( vertex ):=NIL ; d( s ):=0; S:=VOID; Q:= Vertex of (G[ ] ) ; while Q<>EMPTY do u:=extractmin (Q) ; i n s e r t i n S (u ) ; for each v in Adj(u) do if d(v)>d(u)+weight (u, v) then d(v):=d(u)+weight (u, v ) ; P(v):=u ;. 7 Grafo orientato: grafo i cui archi hanno un verso.
13 1.4. CICLI EULERIANI E HAMILTONIANI Cicli Euleriani e Hamiltoniani Cicli Euleriani Ciclo Euleriano: percorso chiuso 8 in cui si passa una sola volta per ogni arco del grafo. Formulato per la prima volta da Eulero (Leonhard Euler ) in relazione al problema dei ponti di Königsberg. Affinché ci sia un ciclo euleriano all interno di un grafo occorre che tutti i vertici abbiano un numero pari di archi entranti. Per determinare un ciclo euleriano in un grafo si procede così: 1. Si calcolano le valenze. Se le valenze 9 sono dispari non ci possono essere cicli Euleriani. 2. Parto da un nodo a caso si costruisce un ciclo segnando di volta in volta in maniera incrementale gli archi su cui si passa. 3. Se il ciclo ha toccato tutti gli archi allora si ha un ciclo euleriano altrimenti si cerca un altro ciclo parto da un altro nodo (ricordandosi su quali archi si è già stati). 4. Si assemblano i cicli parziali otteno così un ciclo euleriano Cicli Hamiltoniani Ciclo Hamiltoniano: percorso chiuso in cui si passa una sola volta in ogni vertice del grafo. Formulato per la prima volta da Sir William R. Hamilton ( ) nel Sir Hamilton proponeva di trovare un cammino che toccasse tutti i vertici di un dodecaedro una volta sola. A differenza del problema dei cicli euleriani, il problema dei cicli hamiltoniani non ha una soluzione trattabile. Figura 1.3: Ciclo Hamiltoniano nel Dodecaedro. 8 Percorso chiuso: percorso in cui si parte da un nodo e si ritorna a quel nodo. 9 Valenza: numero di archi entranti in un nodo.
14 14 CAPITOLO 1. GRAFI
15 Capitolo 2 Alberi 2.1 Definizione Un albero è un grafo aciclico in cui ogni nodo ha un arco entrante ad eccezione della radice. Un albero binario è un albero in cui ogni genitore ha al massimo due figli. Corollario: un albero k-ario è un albero in cui ogni genitore ha al massimo k figli. Un albero si dice completo quando sono presenti il massimo numero di nodi possibili. Figura 2.1: Albero binario di livello 1 completo. 15
16 16 CAPITOLO 2. ALBERI 2.2 Implementazione P: puntatore al padre. k: chiave. l: puntatore al figlio sinistro. r: puntatore al figlio destro. P k l r Nota: negli alberi k-ari il puntatore r diventa il puntatore al fratello. Figura 2.2: Rappresentazione di un albero binario tramite strutture.
17 2.3. VISITA DEGLI ALBERI Visita degli alberi Visita simmetrica simvis (ˆx) i f x<>nil then simvis ( l e f t (x ) ) ; write( key (x ) ) ; simvis ( right (x ) ) ;. Visita anticipata previs (ˆx) i f x<>nil then write( key (x ) ) ; previs ( l e f t (x ) ) ; previs ( right (x ) ) ;. Visita posticipata postvis (ˆx) i f x<>nil then postvis ( right (x ) ) ; write( key (x ) ) ; postvis ( l e f t (x ) ) ;.
18 18 CAPITOLO 2. ALBERI 2.4 Heaps (cataste). Una catasta è un albero binario in cui vige la regola dove: i è un nodo dell albero. l è il figlio sinistro del nodo. r è il figlio destro del nodo. i max(l, r) In una catasta il nodo radice è il nodo che ha il valore più alto (tale proprietà delle cataste è sfruttata nell heapsort). Figura 2.3: Heap (catasta).
MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010
elementi di teoria dei grafi anno acc. 2009/2010 Grafi semplici Un grafo semplice G è una coppia ordinata (V(G), L(G)), ove V(G) è un insieme finito e non vuoto di elementi detti vertici o nodi di G, mentre
DettagliAlgoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione
Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione Esercizi II parte Esercizio 1 Discutere la correttezza di ciascuna delle seguenti affermazioni. Dimostrare formalmente la validità
DettagliAlberi binari. Ilaria Castelli castelli@dii.unisi.it A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione
Alberi binari Ilaria Castelli castelli@dii.unisi.it Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/2010 I. Castelli Alberi binari, A.A. 2009/2010 1/20 Alberi binari
DettagliAlgoritmi di visita di un grafo
Algoritmi di isita di n grafo Ilaria Castelli castelli@dii.nisi.it Uniersità degli Stdi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/2010 I. Castelli Visita di n grafo, A.A. 2009/2010
DettagliEsercizi Capitolo 6 - Alberi binari di ricerca
Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 23 settembre 200 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile
DettagliLaboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona
e e Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario e ed implementazione in Java Visita di un grafo e e Concetti di base Struttura
DettagliQuando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.
Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale
Dettagli40 Algoritmi sui Grafi
Università degli Studi di Napoli Parthenope Corso di Laurea in Informatica A.A 2014/15 PROGETTO PROGRAMMAZIONE III 40 Algoritmi sui Grafi Relatore: Prof. Raffaele Montella Studente: Diego Parlato Matricola:
DettagliAlgoritmi e strutture dati. Codici di Huffman
Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per
DettagliSono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza
Il problema di flusso di costo minimo (MCF) Dati : grafo orientato G = ( N, A ) i N, deficit del nodo i : b i (i, j) A u ij, capacità superiore (max quantità di flusso che può transitare) c ij, costo di
DettagliTSP con eliminazione di sottocicli
TSP con eliminazione di sottocicli Un commesso viaggiatore deve visitare 7 clienti in modo da minimizzare la distanza percorsa. Le distanze (in Km) tra ognuno dei clienti sono come segue: 7-8 9 7 9-8 79
DettagliGrafi. Moreno Marzolla Dip. di Informatica Scienza e Ingegneria Università di Bologna. moreno.marzolla@unibo.it http://www.moreno.marzolla.
Grafi Moreno Marzolla ip. di Informatica Scienza e Ingegneria Università di ologna moreno.marzolla@unibo.it http://www.moreno.marzolla.name/ opyright lberto Montresor, Università di Trento, Italy (http://www.dit.unitn.it/~montreso/asd/index.shtml)
DettagliSTRUTTURE NON LINEARI
PR1 Lezione 13: STRUTTURE NON LINEARI Michele Nappi mnappi@unisa.it www.dmi.unisa.it/people/nappi Per la realizzazione della presentazione è stato utilizzato in parte materiale didattico prodotto da Oronzo
DettagliTSP con eliminazione di sottocicli
TSP con eliminazione di sottocicli Un commesso viaggiatore deve visitare 7 clienti in modo da minimizzare la distanza percorsa. Le distanze (in Km) tra ognuno dei clienti sono come segue: 3 5 7-8 9 57
DettagliAlgoritmi di Visita di Grafi. Damiano Macedonio mace@unive.it
lgoritmi di Visita di rafi amiano Macedonio mace@unive.it Original work opyright lberto Montresor, Università di Trento, Italy Modifications opyright 00 0, Moreno Marzolla, Università di ologna, Italy
DettagliAlberi binari di ricerca
Alberi binari di ricerca Definizione Visita dell albero inorder Ricerca Ricerca minimo, massimo e successore. Inserimento ed eliminazione di un nodo Problema del bilanciamento dell albero Albero binario
DettagliAlcuni Preliminari. Prodotto Cartesiano
Alcuni Preliminari Prodotto Cartesiano Dati due insiemi A e B, si definisce il loro prodotto cartesiano A x B come l insieme di tutte le coppie ordinate (a,b) con a! A e b! B. Es: dati A= {a,b,c} e B={,2,3}
DettagliPROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO
PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO 1. Load Balancing Un istanza del problema del load balancing consiste di una sequenza p 1,..., p n di interi positivi (pesi dei job) e un
DettagliIntelligenza Artificiale. Metodi di ricerca
Intelligenza Artificiale Metodi di ricerca Marco Piastra Metodi di ricerca - 1 Ricerca nello spazio degli stati (disegno di J.C. Latombe) I nodi rappresentano uno stato Gli archi (orientati) una transizione
DettagliLE FUNZIONI A DUE VARIABILI
Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre
DettagliMinimo sottografo ricoprente. Minimo sottografo ricoprente. Minimo albero ricoprente. Minimo albero ricoprente
Minimo sottografo ricoprente Minimo sottografo ricoprente Dato un grafo connesso G = (V, E) con costi positivi sugli archi c e, un minimo sottografo ricoprente è un insieme di archi E E tale che: G = (V,
DettagliAlgoritmi e Strutture Dati
Alberi Binari di Ricerca (BST) Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Alberi Binari di Ricerca (Binary Search Trees BST)
DettagliEsercizi Capitolo 5 - Alberi
Esercizi Capitolo 5 - Alberi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle
DettagliB+Trees. Introduzione
B+Trees Introduzione B+Trees Il B+Trees e la variante maggiormente utilizzata dei BTrees BTrees e B+trees fanno parte della famiglia degli alberi di ricerca. Nel B+Trees i dati sono memorizzati solo nelle
DettagliEsempi. 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 è
DettagliAlberi auto-aggiustanti
Alberi auto-aggiustanti Dispensa didattica per il corso di Algoritmi e Strutture Dati a.a. 2007/2008 ver. 1.3 Ing. Claudio Mazzariello, Prof. Carlo Sansone 27 Maggio 2008 A differenza di altre possibili
Dettagli1. PRIME PROPRIETÀ 2
RELAZIONI 1. Prime proprietà Il significato comune del concetto di relazione è facilmente intuibile: due elementi sono in relazione se c è un legame tra loro descritto da una certa proprietà; ad esempio,
Dettagli16/05/2008. Continua sporadicamente ad occuparsi di matematica; muore tra le convulsioni, probabilmente per una lesione al cervello
La probabilità Gli inizi della teoria della probabilità possono farsi risalire a Fermat e a un grande genio matematico che si dedicò invece al misticismo: Blaise (1623-1669) si dedicò alla matematica fin
DettagliProgrammazione dinamica
Capitolo 6 Programmazione dinamica 6.4 Il problema della distanza di edit tra due stringhe x e y chiede di calcolare il minimo numero di operazioni su singoli caratteri (inserimento, cancellazione e sostituzione)
DettagliMetodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo
Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo L. De Giovanni G. Zambelli 1 Problema del flusso a costo minimo Il problema del flusso a costo minimo é definito
DettagliUNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA
UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA Tutti gli anni, affrontando l argomento della divisibilità, trovavo utile far lavorare gli alunni sul Crivello di Eratostene. Presentavo ai ragazzi una
DettagliLezione 8. La macchina universale
Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione
DettagliAlgoritmi e Strutture Dati
Elementi di Programmazione Dinamica Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Il problema La CMC produce automobili in uno stabilimento
DettagliCapitolo 2. Operazione di limite
Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A
DettagliPer studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R
Studio di funzione Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R : allo scopo di determinarne le caratteristiche principali.
DettagliAlgoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione
Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione Appello dell 8 Febbraio 2005 Esercizio 1 (ASD) 1. Dire quale delle seguenti affermazioni è vera giustificando la risposta. (a) lg
DettagliArchitettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):
Architettura (10/9003) Pag. 1/6 Esame di Architettura (matr.0-1) del 10/9003 Per Fondamenti di Architettura NON rispondere Per le domande a risposta multipla cerchiare la risposta scelta. Non alle domande
DettagliAnalisi di una Rete Sociale
2012 Analisi di una Rete Sociale Alessandro Lovati Matricola 626053 Comunicazione Digitale ord. F47 26/01/2012 Indice : 1. Obiettivo del progetto 2. Realizzazione 3. Analisi dei risultati 3.1. Numero di
DettagliSimulazione di una Rete di Interconnessione di una Compagnia Aerea
Simulazione di una Rete di Interconnessione di una Compagnia Aerea Progetto del corso di Algoritmi e Strutture Dati a.a. 2011/2012 December 4, 2011 1 Introduzione Il progetto consiste nella realizzazione
DettagliCorrispondenze e funzioni
Corrispondenze e funzioni L attività fondamentale della mente umana consiste nello stabilire corrispondenze e relazioni tra oggetti; è anche per questo motivo che il concetto di corrispondenza è uno dei
DettagliLuigi Piroddi piroddi@elet.polimi.it
Automazione industriale dispense del corso 10. Reti di Petri: analisi strutturale Luigi Piroddi piroddi@elet.polimi.it Analisi strutturale Un alternativa all analisi esaustiva basata sul grafo di raggiungibilità,
DettagliDimensione di uno Spazio vettoriale
Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione
Dettagli4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
Dettaglif(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da
Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede
DettagliRE Genitori e Alunni
RE Genitori e Alunni Premessa Alcune delle funzionalità prima presenti in SISSIWEB sono state trasferite nella più accattivante interfaccia di RE, tra queste ci sono quelle legate al rapporto scuola famiglia
DettagliA intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.
Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio
DettagliPercorsi, strategie e geometrie in gioco Complementi e spunti di lavoro Primaria e Secondaria Inferiore
Percorsi, strategie e geometrie in gioco Complementi e spunti di lavoro Primaria e Secondaria Inferiore In queste note troverete suggerimenti e osservazioni per attività che traggono spunto dal problema
Dettagliuscente entrante adiacente Figure B.2 (a) (b) (c) incident from leaves incident to enters incident on adjacent degree isolated
Grafi Si dice grafo un insieme di nodi legati "a due a due" da archi direzionati (o no) I grafi sono strutture dati di fondamentale importanza in informatica Vi sono centinaia di problemi computazionali
Dettaglici sono più problemi che programmi esiste un problema che non si può risolvere con un programma
Calcolabilità problemi facili trovare la media di due numeri stampare le linee di un file che contengono una parola problemi difficili trovare il circuito minimo data una tabella determinare la migliore
Dettagli4.1 Modelli di calcolo analisi asintotica e ricorrenze
4 Esercizi Prima Parte 4.1 Modelli di calcolo analisi asintotica e ricorrenze Esercizio 4 1 Rispondere alle seguenti domande: 1. Come misuriamo l efficienza di un algoritmo?. Quali sono gli algoritmi più
DettagliProgetto di Reti di Telecomunicazione Modelli in Programmazione Lineare Problemi di flusso
Progetto di Reti di Telecomunicazione Modelli in Programmazione Lineare Problemi di flusso Flusso di costo minimo È dato un grafo direzionato G = (N, A). Ad ogni arco (i, j) A è associato il costo c ij
DettagliAlgoritmi e Strutture Dati
Introduzione ai grafi Grafi: Definizione e Algoritmi di visita Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2007/08 Introduzione ai
DettagliLa struttura dati ad albero binario
La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,
DettagliLE FUNZIONI E LE LORO PROPRIETÀ
LE FUNZIONI E LE LORO PROPRIETÀ LE FUNZIONI REALI DI VARIABILE REALE COSA SONO LE FUNZIONI Dati due sottoinsiemi A e B non vuoti di R, una FUNZIONE da A a B è una relazione che associa ad ogni numero reale
DettagliProgetto di simulazione molecolare per il corso di Complementi di algoritmi A.A. 2005-06
Progetto di simulazione molecolare per il corso di Complementi di algoritmi A.A. 2005-06 13 febbraio 2006 1 Descrizione Il progetto si compone delle seguenti fasi: 1. caricamento di soluzioni in formato
DettagliPlanning as Model Checking Presentazione della Tesina di Intelligenza Artificiale
Planning as Model Checking Presentazione della Tesina di Intelligenza Artificiale di Francesco Maria Milizia francescomilizia@libero.it Model Checking vuol dire cercare di stabilire se una formula è vera
DettagliCorso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 25/6/2015
Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 25/6/2015 Chi deve recuperare il progetto del modulo 1 ha 1 ora e 30 minuti per svolgere gli esercizi 1, 2, 3 Chi deve recuperare
Dettagli16.3.1 Alberi binari di ricerca
442 CAPITOLO 16. STRUTTURE DI DATI DINAMICHE root 7 5 11 2 8 13 10 Figura 16.11 Esempio di albero binario: ogni nodo contiene il dato da immagazzinare e tre puntatori che definiscono le sue relazioni di
Dettagli(a cura di Francesca Godioli)
lezione n. 12 (a cura di Francesca Godioli) Ad ogni categoria della variabile qualitativa si può assegnare un valore numerico che viene chiamato SCORE. Passare dalla variabile qualitativa X2 a dei valori
DettagliDefinire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};
ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca
DettagliAlgoritmi e Strutture di Dati II 2. Visite di grafi
Algoritmi e Strutture di Dati II 2 Visite di grafi Gli algoritmi di visita di un grafo hanno come obiettivo l esploraione di tutti i nodi e gli archi del grafo. Vi sono due modi principali per esplorare
Dettagli3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1
3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Scopo: Stimare l onere computazionale per risolvere problemi di ottimizzazione e di altra natura
DettagliConsideriamo due polinomi
Capitolo 3 Il luogo delle radici Consideriamo due polinomi N(z) = (z z 1 )(z z 2 )... (z z m ) D(z) = (z p 1 )(z p 2 )... (z p n ) della variabile complessa z con m < n. Nelle problematiche connesse al
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Soluzione esercizi di approfondimento Stefano Leucci stefano.leucci@univaq.it Una terza variante dell IS InsertionSort3 (A) 1. for k=1 to n-1 do 2. x = A[k+1] 3. j = ricerca_binaria(a[1,k],x)
DettagliAprire WEKA Explorer Caricare il file circletrain.arff Selezionare random split al 66% come modalità di test Selezionare J48 come classificatore e
Alberi di decisione Aprire WEKA Explorer Caricare il file circletrain.arff Selezionare random split al 66% come modalità di test Selezionare J48 come classificatore e lanciarlo con i parametri di default.
Dettaglib i 1,1,1 1,1,1 0,1,2 0,3,4
V o Appello // RICERCA OPERATIVA - Corso A (a.a. 9/) Nome Cognome: Corso di Laurea: L C6 LS LM Matricola: ) Si consideri il problema di flusso di costo minimo in figura. Si verifichi se il flusso ammissibile
DettagliEsempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante
Esercizio 0 Scambio lettere Scrivere la funzione void scambiolettere(char *dest, char *lettere, int p_o_d) che modifichi la stringa destinazione (dest), sostituendone i caratteri pari o dispari (a seconda
DettagliEsercizio 1 Dato il gioco ({1, 2, 3}, v) con v funzione caratteristica tale che:
Teoria dei Giochi, Trento, 2004/05 c Fioravante Patrone 1 Teoria dei Giochi Corso di laurea specialistica: Decisioni economiche, impresa e responsabilità sociale, A.A. 2004/05 Soluzioni degli esercizi
DettagliCOGNOME E NOME (IN STAMPATELLO) MATRICOLA
Politecnico di Milano Facoltà di Ingegneria dell Informazione Informatica 3 Proff. Ghezzi, Lanzi, Matera e Morzenti Seconda prova in itinere 4 Luglio 2005 COGNOME E NOME (IN STAMPATELLO) MATRICOLA Risolvere
DettagliCorso di Informatica
Corso di Informatica Modulo T Scorrimento-Rotazione-Ricerca Prerequisiti Programmazione elementare Conoscenza ed uso di vettori Introduzione Lo scopo di questa Unità è approfondire il concetto di vettore
DettagliEsercizi per il corso di Algoritmi e Strutture Dati
1 Esercizi per il corso di Algoritmi e Strutture Dati Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, né in C++, etc. ). Di tutti gli algoritmi
DettagliEsempi di funzione. Scheda Tre
Scheda Tre Funzioni Consideriamo una legge f che associa ad un elemento di un insieme X al più un elemento di un insieme Y; diciamo che f è una funzione, X è l insieme di partenza e X l insieme di arrivo.
DettagliMacchine sequenziali
Corso di Calcolatori Elettronici I A.A. 2010-2011 Macchine sequenziali Lezione 14 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Automa a Stati Finiti (ASF) E una prima astrazione di
DettagliAlgebra booleana. Si dice enunciato una proposizione che può essere soltanto vera o falsa.
Algebra booleana Nel lavoro di programmazione capita spesso di dover ricorrere ai principi della logica degli enunciati e occorre conoscere i concetti di base dell algebra delle proposizioni. L algebra
DettagliRicerca non informata in uno spazio di stati
Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_2 V2.4 Ricerca non informata in uno spazio di stati Il contenuto del documento è liberamente utilizzabile dagli
DettagliMacchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007
Sommario Macchine a stati finiti M. Favalli 5th June 27 4 Sommario () 5th June 27 / 35 () 5th June 27 2 / 35 4 Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:
Dettagli1 Estensione in strategia mista di un gioco
AVVERTENZA: Di seguito trovate alcuni appunti, poco ordinati e poco formali, che uso come traccia durante le lezioni. Non sono assolutamente da considerarsi sostitutivi del materiale didattico. Riferimenti:
Dettagli( x) ( x) 0. Equazioni irrazionali
Equazioni irrazionali Definizione: si definisce equazione irrazionale un equazione in cui compaiono uno o più radicali contenenti l incognita. Esempio 7 Ricordiamo quanto visto sulle condizioni di esistenza
DettagliMacchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:
Sommario Macchine a stati finiti M. Favalli Engineering Department in Ferrara 4 Sommario (ENDIF) Analisiesintesideicircuitidigitali / 35 (ENDIF) Analisiesintesideicircuitidigitali 2 / 35 4 Le macchine
DettagliMetodi Computazionali
Metodi Computazionali Elisabetta Fersini fersini@disco.unimib.it A.A. 2009/2010 Catene di Markov Applicazioni: Fisica dinamica dei sistemi Web simulazione del comportamento utente Biologia evoluzione delle
DettagliLEZIONE 7. Esercizio 7.1. Quale delle seguenti funzioni è decrescente in ( 3, 0) e ha derivata prima in 3 che vale 0? x 3 3 + x2. 2, x3 +2x +3.
7 LEZIONE 7 Esercizio 7.1. Quale delle seguenti funzioni è decrescente in ( 3, 0) e ha derivata prima in 3 che vale 0? x 3 3 + x2 2 6x, x3 +2x 2 6x, 3x + x2 2, x3 +2x +3. Le derivate sono rispettivamente,
Dettaglie-dva - eni-depth Velocity Analysis
Lo scopo dell Analisi di Velocità di Migrazione (MVA) è quello di ottenere un modello della velocità nel sottosuolo che abbia dei tempi di riflessione compatibili con quelli osservati nei dati. Ciò significa
DettagliInformatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing
Informatica 3 LEZIONE 21: Ricerca su liste e tecniche di hashing Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing Informatica 3 Lezione 21 - Modulo 1 Algoritmi sequenziali e basati su
DettagliComplessità Computazionale
Complessità Computazionale Analisi Algoritmi e pseudocodice Cosa significa analizzare un algoritmo Modello di calcolo Analisi del caso peggiore e del caso medio Esempio di algoritmo in pseudocodice INSERTION
DettagliINdAM QUESITI A RISPOSTA MULTIPLA
INdAM Prova scritta per il concorso a 40 borse di studio, 2 borse aggiuntive e a 40 premi per l iscrizione ai Corsi di Laurea in Matematica, anno accademico 2011/2012. Piano Lauree Scientifiche. La prova
DettagliSISTEMI DI NUMERAZIONE E CODICI
SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema
Dettagli4. Operazioni aritmetiche con i numeri binari
I Numeri Binari 4. Operazioni aritmetiche con i numeri binari Contare con i numeri binari Prima di vedere quali operazioni possiamo effettuare con i numeri binari, iniziamo ad imparare a contare in binario:
DettagliFondamenti di Ricerca Operativa
Politecnico di Milano Anno Accademico 2010/2011 Fondamenti di Ricerca Operativa Corso del Prof. Edoardo Amaldi Stefano Invernizzi Facoltà di Ingegneria dell Informazione Corso di Laurea Magistrale in Ingegneria
DettagliIntelligenza Artificiale
Intelligenza Artificiale Esercizi e Domande di Esame Tecniche di Ricerca e Pianificazione Esercizi Griglia Si consideri un ambiente costituito da una griglia n n in cui si muove un agente che può spostarsi
DettagliMinimo Albero Ricoprente
Minimo lbero Ricoprente Pag. 1/20 Minimo lbero Ricoprente Il problema della definizione di un Minimo lbero Ricoprente trova applicazione pratica in diverse aree di studio, quali ad esempio la progettazione
DettagliLA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1
LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1 I CODICI 1 IL CODICE BCD 1 Somma in BCD 2 Sottrazione BCD 5 IL CODICE ECCESSO 3 20 La trasmissione delle informazioni Quarta Parte I codici Il codice BCD
Dettagli4. Operazioni elementari per righe e colonne
4. Operazioni elementari per righe e colonne Sia K un campo, e sia A una matrice m n a elementi in K. Una operazione elementare per righe sulla matrice A è una operazione di uno dei seguenti tre tipi:
DettagliArchitettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri
Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri 1 Da base 2 a base 10 I seguenti esercizi richiedono di convertire in base 10 la medesima stringa binaria codificata rispettivamente
DettagliMODELLISTICA DI IMPIANTI E SISTEMI 2
MODELLISTICA DI IMPIANTI E SISTEMI 2 Indice 1 Dalla traccia al modello 2 1.1 BAS................................................ 4 I Traccia Si consideri il problema della gestione efficiente dei servizi
DettagliMatematica e Statistica
Matematica e Statistica Prova d esame (0/07/03) Università di Verona - Laurea in Biotecnologie - A.A. 0/3 Matematica e Statistica Prova di MATEMATICA (0/07/03) Università di Verona - Laurea in Biotecnologie
DettagliEsercizi Capitolo 14 - Algoritmi Greedy
Esercizi Capitolo 14 - Algoritmi Greedy Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare
DettagliCatalogo Elettronico Lancia, Fiat e Alfa Romeo
Catalogo Elettronico Lancia, Fiat e Alfa Romeo Manuale sulla Navigazione Release 1.0 Indice Manuale Struttura pagine Caratteristiche prodotto Utilizzo carrello ( Carrello Prodotti ) Funzionalità di ricerca
DettagliCorrispondenze e relazioni - Complementi
PRODOTTO CARTESIANO Nell elencare gli elementi di un insieme, l ordine non ha alcuna importanza; ma ci sono situazioni in cui l ordine con cui si indicano gli elementi è fondamentale. La partita Milan
DettagliEsercitazione 7. Grafi. Rappresentazione e algoritmi di visita
Esercitazione 7 Grafi Rappresentazione e algoritmi di visita Grafo G = (V,E) non orientato 1 1 G = (V,E) orientato 6 Rappresentazione Grafo G = (V,E) metodi standard per la rappresentazione Liste di adiacenza
Dettagli