Grafi (orientati): cammini minimi
|
|
- Filippo Falco
- 6 anni fa
- Visualizzazioni
Transcript
1 .. Grafi (orientati): cammini minimi Una presentazione alternativa (con ulteriori dettagli)
2 Un algoritmo greedy per calcolare i cammini minimi da un vertice sorgente in un grafo orientato e pesato, senza cicli di peso negativo raggiungibili dal sorgente. Definiamo distanza di un vertice u da un vertice v: δ(v, u), in un grafo orientato e pesato, il peso di un cammino di peso minimo tra tutti i cammini da v a u. δ(v, u) = min {W(p) p cammino da v a u} dove W(p) è la somma dei pesi degli archi che formano il cammino. N.B. δ(v, u) è ben definita solo se nessun cammino tra v e u contiene un ciclo di peso negativo
3 Input: G = <V, E> grafo orientato e pesato, w: E R funzione peso, s V, G senza cicli di peso negativo raggiungibili da s Output: v V[G], l attributo d[v] indica la distanza di v dal vertice sorgente: d[v] = δ(s, v) Per costruire un algoritmo greedy, dobbiamo individuare l insieme di oggetti e definire per essi un grado di appetibilità. Si può pensare ai vertici come agli oggetti tra i quali scegliere; mantenendo per ogni vertice v, nell attributo d[v] una stima (maggiore o uguale) della distanza di v da s. Un vertice risulterà tanto più appetibile quanto minore è la stima della sua distanza dal sorgente stesso.
4 L idea dell algoritmo è la seguente: Inizialmente si stima la distanza di ogni vertice da s uguale a, tranne che per s stesso, di cui si conosce la distanza vera: δ(s, s) = 0. Si definisce pertanto d[s] = 0 Si costruisce poi un albero, di radice s, in cui viene inserito un vertice per volta: il più appetibile. L albero è memorizzato implicitamente come l insieme dei suoi archi < π[v], v> Quando un vertice u è inserito nell albero, si aggiornano le stime delle distanze dei vertici v ad esso adiacenti, in quanto potrebbe esitere un cammino da s a v, attraverso il vertice u, meno pesante del cammino da s a v considerato fino a quel momento.
5 Esempio 3 A 2 C B E 1 D Se il vertice sorgente è A, si ha inizialmente: d[a] = 0, d[b] = d[c] = d[d] = d[e] = La strategia greedy sceglie percio il vertice A. Da A sono raggiungibili con un arco i vertici B, C e D. Si possono modificare pertanto le stime delle loro distanze da A. d[b] = 3, d[c] = 2, d[d] = 4, mentre resta d[e] =
6 3 A 2 C B E 1 D Scegliendo C si scopre il cammino A - C - D, ma d[d] non viene modificata in quanto il suo peso (5) è maggiore del peso del cammino A - D (di peso 4). La scelta è ora tra i vertici B, D ed E, con d[b] = 3, d[d] = 4, d[e] =, e la stategia greedy impone di scegliere B. Si scopre così il cammino A - B - E e diventa d[e] = 6. La scelta di D permette infine di ottenere d[e] = 5, ed E sarà l ultimo vertice scelto.
7 Usiamo il secondo schema greedy e scriviamo una prima approssimazione dell algoritmo, dove S è l insieme dei vertici già considerati: Dijkstra (G, W, s) for ogni u V do d[u] π[u] nil d[s] 0 S Φ while S V[G] do u vertice con d minore tra quelli non ancora scelti S S {u} for ogni v ADJ[u] do {valuta le appetibilità iniziali dei vertici} {ci sono elementi da scegliere} if v S and d[v] > d[u] + W(u, v) then d[v] d[u] + W(u, v) π[v] u {scegli il vertice più appetibile} {aggiorna le appetibilità dei vertici}
8 Non sempre la strategia funziona! Ad esempio: 5 A 2 C B E 1 D Se il vertice sorgente è A, dopo le opportune modifiche alle stime delle distanze, vengono scelti, nell ordine: A (quando: d[a] = 0, d[b] = d[c] = d[d] = d[e] = ) C (quando: d[b] = 5, d[c] = 2, d[d] = 3, d[e] = ) D (quando: d[b] = 5, d[d] = 3, d[e] = ) E (quando: d[b] = 5, d[e] = 4) B (quando: d[b] = 5) Ma δ(a, E) = 2, mentre d[e] = 4
9 Nell esempio considerato è facile capire che il non corretto comportamento è dovuto alla presenza dell arco <B, E>, il cui peso è negativo. Allora, se la strategia greedy funziona, essa funziona solo in assenza di archi di peso negativo. Riscriviamo l algoritmo di Dijkstra aggiungendo come precondizione la richiesta che la funzione peso non assuma valori negativi. {G = <V, E> grafo orientato e pesato & s V & & W: E R + {0}}
10 {G = <V, E> grafo orientato e pesato & s V & & W: E R + {0}} Dijkstra (G, W, s) for ogni u V do d[u] π[u] nil d[s] 0 S Φ while S V[G] do Usiamo una coda con priorità u vertice con d minore tra quelli non ancora scelti S S {u} for ogni v ADJ[u] do if v S and d[v] > d[u] + W(u, v) then d[v] d[u] + W(u, v) π[v] u
11 {G = <V, E> grafo orientato e pesato & s V & & W: E R + {0}} Dijkstra (G, W, s) Q V[G] for ogni u V do d[u] π[u] nil d[s] 0 S Φ while S Q Φ V[G] do u vertice Extract-min con d (Q) minore minimatra quelli non ancora scelti S S {u} for ogni v ADJ[u] do if v QS and d[v] > d[u] + W(u, v) then d[v] d[u] + W(u, v) π[v] u
12 Ricorda un altro algoritmo che conosciamo L algoritmo di PRIM
13 MST-Prim (G, W, r) for ogni u Q do key[u] π[r] nil key[r] 0 Q V[G] while Q Φdo u Extract-min(Q) MST-Prim (G, W, r) for ogni u Q do key[u] π[u] nil key[r] 0 S Φ Q V[G] while Q Φdo u Extract-min(Q) for ogni v Adj[u] do if v Q e W(u, v) < key[v] then key[v] W(u, v) π[v] u S S {u} for ogni v Adj[u] do if v Q e W(u, v) < key[v] then key[v] W(u, v) π[v] u
14 ST-Prim (G, W, r) for ogni u Q do key[u] Dijkstra (G, W, s) for ogni u Q do d[u] π[u] nil key[r] 0 S Φ Q V[G] while Q Φdo u Extract-min(Q) S S {u} for ogni v Adj[u] do if v Q e W(u, v) < key[v] then key[v] W(u, v) π[v] u π[u] nil d[r] 0 S Φ Q V[G] while Q Φdo u Extract-min(Q) S S {u} for ogni v ADJ[u] do if v Q and d[u] + W(u, v) < d[v then d[v] d[u] + W(u, v) π[v] u
15 La complessità dell algoritmo di Dijkstra è pertanto la stessa dell algoritmo di Prim: coda realizzata con heap binario: O(E logv) coda realizzata con un heap di Fibonacci: O(E + V logv) Dobbiamo ancora dimostrare che l algoritmo è corretto
16 {G = <V, E> grafo orientato e pesato & s V & & W: E R + {0}} Dijkstra (G, W, s) for ogni u V do d[u] π[u] nil d[s] 0 Q V[G] S Φ { t S: d[t] = δ(s, t) & S Q = V[G] & S Q = Φ} while Q Φdo u Extract-min (Q) S S {u} for ogni v ADJ[u] do if v Q and d[u] + W(u, v) < d[v] then d[v] d[u] + W(u, v) π[v] u { t V[G] : d[t] = δ(s, t)}
17 Proprietà 1. Un sottocammino di un cammino minimo è minimo. Dimostazione. Siano x e y due vertici qualunque in un cammino minimo p da u a v: p 1 p 2 p 3 p = u x y v = p 1 p 2 p 3 W(p) = W(p 1 ) + W(p 2 ) + W(p 3 ) Se il sottocammino p 2 da x a y non fosse minimo, ne esisterebbe un altro p 2 di peso inferiore. In tal caso il cammino p = p 1 p 2 p 3 sarebbe un cammino da u a v con W(p ) < W(p). Assurdo.
18 Proprieta` 2. Le seguenti asserzioni: 2.1 v V[G]: v S d[v] non viene modificata 2.2 v Q: π[v] nil π[v] S 2.3 v V[G] - {s}: d[v] π[v] nil 2.4 v V[G] - {s}: d[v] d[v] = d[π[v]] + W(π[v], v) sono invarianti del ciclo while. Dimostrazione. Ovvia esaminando il corpo del while. u Extract-min (Q) S S {u} for ogni v ADJ[u] do if v Q and d[u] + W(u, v) < d[v] then d[v] d[u] + W(u, v) π[v] u
19 Proprieta` 3. La seguente asserzione: v S: d[v] esiste un cammino da s a v in G e` invariante del ciclo while. Dimostrazione. ( ) Supponiamo l asserzione vera e dimostriamo che, se per il vertice u estratto dalla coda d[u], il cammino esiste. Per ipotesi induttiva esiste un cammino da s a π[u]. Allora il cammino da s a π[u] piu` l arco < π[u], u> costituisce un cammino da s a u. ( ) Se u viene estratto da Q con d[u] =, allora (*) tutti i vertici t in Q hanno d[t] =. Supponiamo che tra s e u vi sia almeno un cammino: s v 1 v 2... v k-1 v k u. Allora, tutti i vertici v i sul cammino devono avere d[v i ] = (se v l avesse d[v l ], allora per (*) v l S, quindi anche v i+1 avrebbre d[v i+1 ] ). Ma questo è assurdo perché d[s] = 0.
20 Dimostriamo ora che il predicato t S: d[t] = δ(s, t) & S Q = V[G] & S Q = Φ è un invariante del ciclo while. Il predicato è vero all inizio poichè S è vuoto e Q = V[G]. Supponiamo che sia vero quando l albero è stato costruito parzialmente, e dimostriamo che per il nuovo vertice u estratto da Q, d[u] = δ(s, u). s r x Per ipotesi induttiva t S: d[t] = δ(s, t).
21 Sia u il vertice estratto da Q. r s u x Si hanno due casi: 1. d[u] Sia π[u] = r (proprietà 2.3 ). Sappiamo allora (proprietà 2.2) che r S, cioè all albero e che (proprietà 2.4) d[u] = d[r] + W(r, u). Supponiamo che tra s e u esista un cammino di peso minore di d[u]; esso deve contenere un arco tra un vertice in S e uno in Q: <x, y>. y
22 Questo cammino tra s e u può allora essere visto come la concatenazione di tre cammini s x y u Se s x y u è minimo, anche s x y è minimo (proprietà 1), quindi d[y], che è il suo peso, è uguale a δ(s, y). W(s x y u) = W(s x y) + W(y u) = d[y] + W(y u) d[y] (W(y u) 0 perchè la funzione peso non può assumere valori negativi) d[u] ( perchè u è il vertice estratto da Q) d[u] = δ(s, u)
23 2. d[u] = Se il vertice u viene estratto quando d[u] = allora non esiste nessun cammino tra s e u (proprietà 3), cioè d[u] = = δ(s, u) t (S {u}): d[t] = δ(s, t) & (S {u}) (Q - {u}) = V[G] & (S {u}) (Q - {u}) = Φ
24 Riepilogo Algoritmo di Dijkstra per il calcolo di cammini minimi a sorgente singola, in un grafo orientato senza pesi negativi. Relazione con l algoritmo di Prim per il calcolo del minimo albero ricoprente in un grafo non orientato.
Grafi (non orientati e connessi): minimo albero ricoprente
.. Grafi (non orientati e connessi): minimo albero ricoprente Una presentazione alternativa (con ulteriori dettagli) Problema: calcolo del minimo albero di copertura (M.S.T.) Dato un grafo pesato non orientato
DettagliCammini Minimi. Algoritmo di Dijkstra
Cammini Minimi Algoritmo di Dijkstra Cammino in un grafo Dato un grafo G=(V,E), un Cammino (Percorso) in G è un insieme di vertici v 1, v 2,.., v k tali che (v i, v i+1 ) E v 1 v 2 v 3 v k In un grafo
DettagliCammini minimi con sorgente singola
Capitolo 11 Cammini minimi con sorgente singola efinizione 11.1. Sia G = (V,, w) un grafo orientato e pesato; dato il cammino p = v 0, v 1,..., v k in G, il valore w(p) = k i=1 w(v i 1, v i ) rappresenta
DettagliProblema 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
DettagliAlberi di copertura minimi
Alberi di copertura minimi 1 Problema Nella progettazione di circuiti elettronici è spesso necessario collegare i morsetti. Per connettere un insieme di n morsetti si può usare un insieme di n-1 fili elettrici.
DettagliAlgoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio
Algoritmi Greedy Tecniche Algoritmiche: tecnica greedy (o golosa) Idea: per trovare una soluzione globalmente ottima, scegli ripetutamente soluzioni ottime localmente Un esempio Input: lista di interi
DettagliMinimo 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.
DettagliGrafi: 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
DettagliEsercizi 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
DettagliGrafi (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
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
DettagliAlgoritmi 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
DettagliVisite in Grafi BFS e DFS
Visite in Grafi BFS e DFS Visita di un Grafo Obiettivo: Visitare una sola volta tutti i nodi del grafo. Es.: visitare un porzione del grafo del Web Difficoltà: Presenza di cicli: Marcare i nodi visitati
DettagliCammini 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)
DettagliVISITA IL SITO PER ALTRO MATERIALE E GUIDE
COPYRIGHT SEGO LICENSE Questo documento viene fornito così come è: se pensate che faccia schifo problemi vostri, nessuno vi obbliga a leggerlo. Se pensate che sia qualcosa di positivo e/o avete suggerimenti
DettagliGrafi (non orientati e connessi): minimo albero ricoprente
Grafi (non orientati e connessi): minimo albero ricoprente Una breve presentazione Definizioni Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è
DettagliCammini 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
DettagliAlgoritmi e Strutture Dati
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmi e Strutture Dati Capitolo 2 Minimo albero ricoprente: Algoritmo di Prim Il problema del calcolo di un Minimum
DettagliGrafi 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
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 13 Cammini minimi: Algoritmo di Dijkstra (*) (ACM in grafi diretti e non diretti senza archi di peso negativo) Punto della situazione Algoritmo basato sull ordinamento
Dettagli2.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,
DettagliSommario. 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
DettagliCammini 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
DettagliGrafi: ordinamento topologico
.. Grafi: ordinamento topologico Che cosa e e come si calcola Che cosa e un ordinamento topologico F. Damiani - Alg. & Lab. 04/05 Una definizione di ordinamento topologico Definizione. Funzione σ: V {1,
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 di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa
Alberi di copertura Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo, Pisa mpassacantando@di.unipi.it M. Passacantando TFA 0/ - Corso di Ricerca Operativa Università di Pisa / 9 Definizioni
DettagliProgettazione 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
DettagliProgettazione di algoritmi
Progettazione di algoritmi Discussione dell'esercizio [acqua 2] Vogliamo trovare una sequenza di versamenti che sia buona e parsimoniosa. Consideriamo quindi il grafo i cui nodi sono le possibili configurazioni
Dettagli2.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
DettagliGrafi 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
DettagliAlgoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte III
Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte III Applicazioni di DFS Due prolemi: calcolare l ordinamento topologico indotto da un grafo aciclico.
DettagliGrafi 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
DettagliAlberi e arborescenze di costo minimo
Alberi e arborescenze di costo minimo Complementi di Ricerca Operativa Giovanni Righini Dipartimento di Tecnologie dell Informazione - Università degli Studi di Milano Definizioni - 1 Un grafo G = (V,
DettagliIntroduzione. Il routing permette la comunicazione tra due nodi differenti anche se non sono collegati direttamente
Routing Introduzione Il livello 3 della pila ethernet ha il compito di muovere i pacchetti dalla sorgente attraversando più sistemi Il livello di network deve quindi: Scegliere di volta in volta il cammino
DettagliAppunti lezione Capitolo 14 Greedy
Appunti lezione Capitolo 14 Greedy Alberto Montresor 21 Novembre, 2016 1 Domanda: dimostrare che S[i, j] = con i j Nel problema della selezione delle attività, il sottoinsieme S[i, j] è definito nel modo
DettagliIntroduzione 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
Dettagli2.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,...) protocolli reti IP memorizzazione compatta di
DettagliIntroduzione al problema dei cammini minimi. Facoltà di Scienze Matematiche Fisiche e Naturali. Prof.ssa Rossella Petreschi
Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea Magistrale in INFORMATICA Algoritmi e Strutture Dati Prof.ssa Rossella Petreschi Anno accademico 2010/2011 Introduzione al problema dei
DettagliProblemi, 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
DettagliAlgoritmi e Strutture Dati Grafi. Daniele Loiacono
lgoritmi e Strutture ati Grafi Riferimenti 2 Questo materiale è tratto dalle trasparenze del corso lgoritmi e Strutture ati del prof. lberto Montresor dell Università di Trento. (http://www.dit.unitn.it/~montreso/asd/index.shtml)
DettagliAlgoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte II
Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte II Classificazione digli archi Sia G la foresta DF generata da DFS sul grafo G. Arco d albero: gli
DettagliDati e Algoritmi 1: A. Pietracaprina. Grafi (II parte)
Dati e Algoritmi 1: A. Pietracaprina Grafi (II parte) 1 Breath-First Search (algoritmo iterativo) Si assume una rappresentazione tramite liste di adiacenza. L ordine con cui si visitano i vicini di un
DettagliL algoritmo di Dijkstra
L algoritmo di Dijkstra Sebastiano Vigna March 2, 200 Introduzione Supponiamo di assegnare a ciascuno degli archi a di un grafo orientato G un certo peso intero e positivo p a. Ai cammini (orientati) nel
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,
DettagliCammini Minimi. Un problema molto comune. Formalizziamo. Peso di un cammino. Esempio. Ritorniamo all esempio iniziale. Input:
Cammini Minimi Un problema molto comune i uole andare da alerno a Milano in auto percorrendo il minor numero di chilometri oluzione inefficiente: i coniderano TUTTI i percori poibili e e ne calcola la
DettagliDati e Algoritmi I (Pietracaprina) Esercizi svolti sui Grafi
Dati e Algoritmi I (Pietracaprina) Esercizi svolti sui Grafi Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1 (Esercizio C-14.34 del testo [GTG14]) Sia G = (V, E) un grafo non diretto con n =
DettagliProgettazione 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
DettagliAlgoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione
Algoritmi greedy Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Gli algoritmi greedy sono algoritmi basati sull idea
DettagliGrafi e gruppo fondamentale di un grafo
Grafi e gruppo fondamentale di un grafo Note per il corso di Geometria IV (relative alla parte dei 6 crediti) Milano, 2010-2011, M.Dedò Come trovare un grafo omotopicamente equivalente all'oggetto 3d raffigurato
DettagliProgettazione 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
DettagliAlgoritmi e Strutture di Dati (3 a Ed.) Algoritmo dei tre indiani. Alan Bertossi, Alberto Montresor
Algoritmi e Strutture di Dati ( a Ed.) Algoritmo dei tre indiani Alan Bertossi, Alberto Montresor Vediamo a grandi linee un algoritmo proposto da Kumar, Malhotra e Maheswari (978) come raffinamento di
DettagliEsercizio 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
Dettagli11.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)
DettagliSommario della lezione
Sommario della lezione Cammini minimi in grafi Applicazioni Algoritmi Alberi ricoprenti minimi in grafi Applicazioni Algoritmi Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno
DettagliGrafi: 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
DettagliProblemi di ordinamento
Problemi di ordinamento Input: una sequenza di n numeri a 1, a 2,..., a n ; Output: una permutazione a 1, a 2,..., a n di a 1, a 2,..., a n tale che a 1 a 2... a n. Generalmente, la sequenza è rappresentata
DettagliEsercizio 1. Esercizio 2
A-2 a PI Ricerca Operativa 1 Seconda prova intermedia La Pharmatix è un azienda di Anagni che produce due principi attivi, A e B, che consentono un profitto per grammo venduto di 20 e 30 euro rispettivamente.
DettagliCognome e Nome: Numero di Matricola: Spazio riservato alla correzione
Cognome e Nome: Numero di Matricola: Spazio riservato alla correzione 1 2 3 4 Bonus Totale /25 /25 /25 /25 /100 1. Grafi a) Si scriva lo pseudocodice dell'algoritmo BFS che utilizza un array Discovered
DettagliIngegneria degli Algoritmi (II parte pratica)
Ingegneria degli Algoritmi (II parte pratica) Lezione 12 Ing. Domenico Spera domenico.spera@students.uniroma2.eu Sommario Minimo albero ricoprente Kruskal Prim Boruvka(che non vedremo) Advanced Python
DettagliEsercizi su alberi binari
Esercizi su alberi binari Esercizi svolti: Determinazione nodi contenti verifica completezza verifica quasi completezza lunghezza del cammino interno determinazione ultima foglia in un quasi completo verifica
DettagliPSPACE completezza. Un linguaggio A è PSPACE completo se. 1. A è in PSPACE, cioè esiste una TM T che accetta A con complessità di spazio polinomiale.
Sommario Il problema della verità per formule booleane pienamente quantificate è PSPACE - completo PSPACE come la classe dei giochi. Il gioco geografico generalizzato è PSPACE - completo 1 PSPACE completezza
DettagliUNIVERSITÀ 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à
DettagliDai ponti di Königsberg al postino cinese
Dai ponti di Königsberg al postino cinese Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo, Pisa mpassacantando@di.unipi.it M. Passacantando TFA 2012/1 - Corso di Ricerca Operativa Università
DettagliUNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013
A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa Seconda prova intermedia 7 giugno 0 Nome: Cognome: Matricola: Orale /06/0 ore aula N Orale 0/07/0 ore aula N
DettagliCalcolare lo Span di un array di numeri
Calcolare lo Span di un array di numeri Altro esempio di come usare una pila come struttura dati ausiliaria per un algoritmo: Dato un array X, lo span S[i] di X[i] è il massimo numero di elementi consecutivi
DettagliAppunti 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 (liverani@mat.uniroma.it)
DettagliSui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm
Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio 6 aprile 2016 1 Teorema di Kleene 2 3 o 1 o 3 o 8 Teorema di Kleene Vale la seguente equivalenza: L 3 L FSL L REG Dimostrazione.
DettagliMETODI DELLA RICERCA OPERATIVA
Università degli Studi di Cagliari FACOLTA' DI INGEGNERIA CORSO DI METODI DELLA RICERCA OPERATIVA Dott.ing. Massimo Di Francesco (mdifrance@unica.it) i i Dott.ing. Maria Ilaria Lunesu (ilaria.lunesu@unica.it)
DettagliIl valore di flusso che si ottiene è
1) Si consideri un insieme di piste da sci e di impianti di risalita. Lo si modelli con un grafo orientato che abbia archi di due tipi: tipo D (discesa e orientato nel senso della discesa) e tipo R (risalita
DettagliAlgoritmo 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
DettagliCOMPLEMENTI DI SHORTEST-PATH. ASD Fabrizio d'amore
COMPLEMENTI DI SHORTEST-PATH ASD 2016-17 Fabrizio d'amore problemi di shortest-path (SP) grafo di riferimento G=(V,E) semplice/orientato pesato pesi non negativi pesi arbitrari, ma no cicli a peso negativo
DettagliDati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base
Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1. Sia T una stringa arbitraria di lunghezza n 1 su un alfabeto Σ. È sempre possibile
DettagliAlgoritmi e Strutture Dati (Mod. B) Algoritmi Greedy (parte I)
Algoritmi e Strutture Dati (Mod. B) Algoritmi Greedy (parte I) Algoritmi greedy Gli algoritmi per problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione
DettagliProblema 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
DettagliProgettazione di Algoritmi
Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 06/07/2016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via
DettagliGrafi. Sommario. Definizioni Rappresentazione dei grafi Algoritmi di visita Esempi in C
Grafi Sommario Definizioni Rappresentazione dei grafi Algoritmi di visita Esempi in C 1 Esempi Relazioni di parentela Alberi genealogici Relazioni tra classi nei linguaggi OO Grafo del Web Assetti societari
DettagliIn 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
DettagliOttimizzazione Discreta Esercizi V: Soluzioni
Ottimizzazione Discreta Esercizi V: Soluzioni Grafi e cammini minimi A.A. 214/215 Esercizio 1 (a) Nella terminologia della teoria dei grafi, si chiede di dimostrare che ogni grafo non orientato G = (V,E),
DettagliEsercizi 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,
DettagliEsercizi Capitolo 10 - Code con priorità e insiemi disgiunti
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 27 marzo 2012 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,
DettagliVerifica di programmi
Verifica di programmi Informalmente, un programma è corretto se l output prodotto è quello atteso rispetto all input. La correttezza dei programmi può essere espressa mediante formule per la correttezza
DettagliAlberi 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,
DettagliIntroduzione ai grafi. Introduzione ai grafi p. 1/2
Introduzione ai grafi Introduzione ai grafi p. 1/2 Grafi Un grafo G é costituito da una coppia di insiemi (V,A) dove V é detto insieme dei nodi e A é detto insieme di archi ed é un sottinsieme di tutte
DettagliStrutture dati per insiemi disgiunti
Strutture dati per insiemi disgiunti Servono a mantenere una collezione S = {S 1, S 2,..., S k } di insiemi disgiunti. Ogni insieme S i è individuato da un rappresentante che è un particolare elemento
DettagliIl 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
DettagliALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I
ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I Esercizio 1 Dati n oggetti ed un contenitore, ad ogni oggetto j (j = 1,, n) sono associati un peso p j ed un costo c j (con p j e c j interi positivi). Si
DettagliProgrammazione logica e PROLOG. Esercitazione 1. AI - Carlucci Aiello & Nardi, 2007 Esercitazione 1 0
Programmazione logica e PROLOG Esercitazione 1 AI - Carlucci Aiello & Nardi, 2007 Esercitazione 1 0 Sommario Programmazione logica Base delle conoscenze Interrogazioni Regole Ricorsive Esecuzione dei programmi
DettagliLaboratorio di Algoritmi e Strutture Dati
Laboraorio di Algorimi e Sruure Dai Aniello Murano hp://people.na.infn.i people.na.infn.i/~murano/ 1 Algorimi per il calcolo di percori minimi u un grafo 1 Un emplice problema Problema: Supponiamo che
DettagliCalcolare x n = x x x (n volte)
Calcolare x n = x x x (n volte) Abbiamo bisogno di: una variabile ris in cui ad ogni iterazione del ciclo si ha un risultato parziale, e che dopo l ultima iterazione contiene il risultato finale; una variabile
DettagliUn 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
DettagliVISITA IL SITO PER ALTRO MATERIALE E GUIDE
COPYRIGHT SEGO LICENSE Questo documento viene fornito così come è: se pensate che faccia schifo problemi vostri, nessuno vi obbliga a leggerlo. Se pensate che sia qualcosa di positivo e/o avete suggerimenti
DettagliUlteriori conoscenze di informatica Elementi di statistica Esercitazione3
Ulteriori conoscenze di informatica Elementi di statistica Esercitazione3 Sui PC a disposizione sono istallati diversi sistemi operativi. All accensione scegliere Windows. Immettere Nome utente b## (##
DettagliProgettazione di Algoritmi - lezione 6
Progettazione di Algoritmi - lezione 6 Discussione dell'esercizio [sensi unici] La rete viaria della cittadina può essere rappresentata facilmente tramite un grafo diretto in cui i nodi sono gli incroci
DettagliAlgoritmi e Strutture Dati
Algoritmi Golosi (Greedy) Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino un algoritmo goloso correttezza Problema della selezione di attività
DettagliNote sulle classi di complessità P, NP e NPC per ASD (DRAFT)
Note sulle classi di complessità P, NP e NPC per ASD 2010-11 (DRAFT) Nicola Rebagliati 20 dicembre 2010 1 La complessità degli algoritmi Obiettivo principale della teoria della complessità: ottenere una
DettagliSommario. Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP
Sommario Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP I conjecture that there is no good algorithm for the traveling salesman problem. My reasons are the same
DettagliDati 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
DettagliMakespan con set-up dipendenti dalla sequenza. 1/s jk /C max
Makespan con set-up dipendenti dalla sequenza 1/s jk /C max 1/s jk /C max Un tempo di riattrezzaggio (set-up) s jk è richiesto fra il processamento di j e quello di k. In questo caso, C max dipende dalla
DettagliUNIVERSITÀ DEGLI STUDI ROMA TRE Collegio Didattico in Ingegneria Informatica corso di Ricerca operativa 2. Esercizi sul problema dell assegnamento
UNIVERSITÀ DEGLI STUDI ROMA TRE Collegio Didattico in Ingegneria Informatica corso di Ricerca operativa Esercizi sul problema dell assegnamento Richiami di Teoria Ricordiamo che, dato un grafo G=(N,A),
DettagliIn 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
Dettagli