Cammini Minimi. Algoritmo di Dijkstra

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Cammini Minimi. Algoritmo di Dijkstra"

Transcript

1 Cammini Minimi Algoritmo di Dijkstra

2 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 orientato si farà riferimento a cammini diretti Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 2

3 Connettività in grafi non orientati Due vertici u,v sono connessi in un grafo non orientato se esiste un cammino che collega u e v Un grafo è connesso se per ogni coppia di vertici u e v, u e v sono connessi Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 3

4 Connettività in grafi orientati Due vertici u e v sono connessi in un grafo orientato se esiste un cammino diretto che collega u a v Un grafo diretto è fortemente connesso se per ogni coppia (u,v), esiste un cammino da u a v e da v ad u Un grafo è debolmente connesso se per ogni coppia (u,v), esiste un cammino da u a v (o viceversa) Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 4

5 Costo di un cammino Sia G = (V,E) un grafo orientato ai cui archi è associato un costo W(u,v). Il costo di un cammino p = (v 0,v 1,...,v k ) è la somma dei costi degli archi che lo costituiscono W( p) = k W i = ( v v 1 i 1, i ) Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 5

6 Costo di un cammino minimo Il costo minimo del cammino da un vertice u ad un vertice v è definito nel seguente modo: min {W(p)} se esistono cammini p da u a v δ(u,v) = altrimenti Un cammino minimo da u a v è un cammino p da u a v di costo W(p) = δ(u,v) Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 6

7 Varie versioni del problema 1 Nel problema dei cammini minimi viene richiesto di calcolare i cammini minimi in un grafo orientato Vi sono quattro versioni del problema: Cammini minimi da un'unica sorgente a tutti gli altri vertici (Single Source Shortest Paths) Cammini minimi da ogni vertice ad un'unica destinazione (Single Destination Shortest Paths) Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 7

8 Varie versioni del problema 2 Cammini minimi da un'unica sorgente ad un unica destinazione (Single-Pair Shortest Path) Cammini minimi da ogni vertice ad ogni altro vertice (All Pairs Shortest Paths) Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 8

9 Risoluzione dei vari problemi Noi risolveremo la prima istanza La seconda istanza si risolve simmetricamente La terza si può risolvere usando la soluzione della prima Non si conosce ancora un algoritmo che risolva la terza istanza in tempo asintoticamente migliore della prima La quarta istanza si può risolvere usando la soluzione della prima per ogni vertice del grafo In genere si può fare di meglio Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 9

10 Esempio di applicazione Si supponga di voler determinare il percorso più breve (in termini di chilometri) che collega due luoghi A e B Se si modella la carta stradale su cui compaiono A e B come un grafo in cui: I vertici sono gli incroci Gli archi sono i tratti di strada tra incroci successivi I pesi degli archi sono le distanze in chilometri di ciascun arco Il problema si riconduce a quello dell'identificazione del cammino minimo dal vertice corrispondente ad A al vertice corrispondente a B Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 10

11 Esempio di cammino minimo 12 v 1 v 2 s t 13 v 3 9 v 4 14 cammino minimo Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 11

12 Note Nel caso di grafi non pesati, l'identificazione dell'albero dei cammini minimi può essere eseguita tramite la procedura di visita in ampiezza Non vogliamo calcolare solo il costo dei cammini minimi, ma anche i cammini minimi stessi Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 12

13 Archi di costo negativo Nel grafo orientato ci potrebbero essere anche archi di costo negativo Questi archi potrebbero creare dei problemi nell individuazione dei cammini minimi Vi potrebbero essere dei cicli di costo negativo raggiungibili da s Se un vertice u è raggiungibile da s tramite un cammino p che passa per un vertice appartenente ad un ciclo di costo negativo, allora esisteranno cammini da s a u di costo sempre minore costo minimo di cammino δ(s,u) non è definito Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 13

14 Esempio u s c 7 a b Nel caso di cicli negativi si pone δ(s,u)= Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 14

15 Archi di costo positivo Supporremo che il grafo orientato avrà solo archi di costo positivo In questo caso il cammino di lunghezza minima non contiene cicli Dimostrazione? Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 15

16 Teorema: Sottostruttura ottimale Se p è un cammino minimo da u a v, allora ogni sotto-cammino di p èanche un cammino minimo In altre parole: Se il cammino p = (v 0,v 1,...,v k ) è minimo allora sono minimi anche tutti i sottocammini p ij = (v i,...,v j ). Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 16

17 Dimostrazione Se esistesse un cammino q da v i a v j di costo minore di p ij allora sostituendo nel cammino p il sottocammino p ij con il cammino q si otterrebbe un cammino da v 0 a v k di costo minore di p Impossibile se p è minimo v 0 v i X v j v k q Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 17

18 Scomposizione dei costi di un cammino minimo Se p è un cammino minimo da s ad un vertice v ed u è il vertice che precede v nel cammino allora δ(s,v) = δ(s,u) + W(u,v) Dimostrazione: Dipende dalla sottostruttura ottima: δ(s,v) = W(p) = δ(s,u) + W(u,v) s p' Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 18 u v

19 Limite superiore per i costi di cammino minimo Per ogni arco (u,v) vale la disuguaglianza: δ(s,v) δ(s,u) + W(u,v) Dimostrazione Se u non è raggiungibile da s allora δ(s,u) = e δ(s,v) + W(u,v) banalmente Se u è raggiungibile da s allora δ(s,u) + W(u,v) è il costo di un cammino da s a v ed è quindi maggiore o uguale di δ(s,v) Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 19

20 Rappresentazione dei cammini minimi 1 In genere ci interessa calcolare non solo i costi dei cammini minimi dalla sorgente s ad ogni vertice del grafo ma anche i cammini minimi stessi Dato un vertice u con π[u] indichiamo il predecessore di u nel cammino da s a u Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 20

21 Rappresentazione dei cammini minimi 2 G=(V,E) s V s = sorgente Definiamo G π =(V π,e π ) il sottografo predecessore di G con V π ={v V: π[v] NIL} {s} E π ={(π[v],v) E : v V π -{s}} Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 21

22 Sottografo predecessore Un sottografo predecessore G π è uno shortestpaths tree per G se V π è costituito da tutti i vertici di G raggiungibili da s G π forma un albero con radice s il cammino semplice da s a v in G π coincide con il cammino minimo da s a v in G Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 22

23 Tecnica del rilassamento L algoritmo che studieremo per risolvere il problema dei cammini minimi usa la tecnica del rilassamento Dettagli a breve Ad ogni vertice v del grafo associamo un campo d[v] che rappresenta una stima di δ(s,v) Durante l esecuzione dell algoritmo è un limite superiore per δ(s,v) [d[v] δ(s,v)]; mentre alla fine sarà uguale a δ(s,v) Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 23

24 Idea dell algoritmo 1 I valori d[v] e π[v] vengono aggiornati mediante la cosiddetta tecnica del rilassamento degli archi quando viene rilassato l arco (u,v) si verifica se è possibile ottenere un cammino più breve di quello di costo d[v] attraversando l arco (u,v) Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 24

25 Rilassamento di un arco Il rilassamento rispetto ad un arco (u,v) consiste nel controllare se è possibile migliorare il cammino finora trovato per v aggiungendo al cammino trovato per u l arco (u,v). Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 25

26 Idea dell algoritmo 2 Rilassamento di un arco RELAX(u, v, w) if d[u] + w(u, v) < d[v] then d[v] d[u] + w(u, v) π[v] u //predecessore di u sul cammino di costo d[v] Inizializzazione INITIALIZE-SINGLE-SOURCE(G, s) for each vertex v V[G] d[v] π[v] nil d[s] 0 Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 26

27 Effetto del rilassamento Dopo aver eseguito RELAX(u, v, w) vale la disuguaglianza d[v] d[u] + W(u,v) Se d[v] > d[u] + W(u,v) prima del rilassamento, allora viene posto d[v] = d[u] + W(u,v) Se d[v] d[u] + W(u,v) prima del rilassamento, allora non viene fatto nulla Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 27

28 Idea dell algoritmo 3 Si esegue INITIALIZE-SINGLE-SOURCE(G, s) Ogni arco (u,v) viene rilassato eseguendo RELAX(u, v, w) L algoritmo termina quando i valori di d coincidono con i pesi dei cammini minimi Si noti che se ad un certo punto d[u]=δ(s,u), allora nessuna successiva invocazione di RELAX può modificare d[u] Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 28

29 Come scegliamo gli archi? L ordine in cui gli archi vengono rilassati dipende dal tipo di algoritmo Alcuni algoritmi rilassano ciascun arco più volte Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 29

30 Nota Si può provare che qualsiasi algoritmo che esegua l inizializzazione ed una sequenza di rilassamenti per cui alla fine d[v] = δ(s,v) per ogni vertice v calcola correttamente i cammini minimi Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 30

31 Algoritmi per SSSP Vi sono due algoritmi classici di questo tipo, uno dovuto a Dijkstra ed uno dovuto a Bellman-Ford L algoritmo di Dijkstra richiede che i pesi degli archi non siano negativi mentre quello di Bellman-Ford funziona anche nel caso generale Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 31

32 Algoritmo di Dijkstra 1 Input: grafo direzionato G=(V,E) con archi di peso maggiore o uguale a 0 un vertice s che rappresenta la sorgente L algoritmo mantiene Per ogni u V, i valori d[u] e π[u] S: insieme di vertici per cui è stato già determinato un cammino minimo Per ogni u S si ha d[u]=δ(s,u) Q: coda a priorità che contiene i vertici che non sono in S Per ogni u Q, la chiave che determina la priorità di u è d[u] Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 32

33 Algoritmo di Dijkstra 2 I vertici adiacenti a quelli in S formano una frontiera tra i vertici per cui si conosce un cammino minimo e tutti gli altri vertici Ogni volta viene inserito in S il vertice della frontiera che ha il valore di d più piccolo (scelta greedy) e vengono rilassati tutti gli archi uscenti da esso Ogni arco è rilassato esattamente una volta Output: π: sottografo predecessore, d: pesi dei cammini minimi da s a tutti gli altri vertici Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 33

34 Algoritmo di Dijkstra 3 Per ogni vertice u di S è già noto il cammino minimo da s ad u S s Resto del grafo frontiera Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 34

35 Pseudocodice dell algoritmo di Dijkstra DIJKSTRA(G,w,s) 1 INITIALIZE-SINGLE-SOURCE(G, s) 2 S 3 Q V[G] 4 while Q 5 do u Extract-Min(Q) 6 S S {u} 7 for each v Adj[u] 8 do RELAX(u,v,w) Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 35

36 Passo dell algoritmo di Dijkstra I valori nei vertici indicano i valori di d S s min(4+5, ) = min(4+8, ) = 12 Per ogni nodo u della frontiera, d[u] contiene la lunghezza di un percorso passante solo per vertici in S Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 36

37 Passo dell algoritmo di Dijkstra I valori nei vertici indicano i valori di d S s Per ogni nodo u della frontiera, d[u] contiene la lunghezza di un percorso passante solo per vertici in S Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 37

38 Passo dell algoritmo di Dijkstra I valori nei vertici indicano i valori di d S s min(9, 6+1) = min(12, 6+3) = 9 Per ogni nodo u della frontiera, d[u] contiene la lunghezza di un percorso passante solo per vertici in S Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 38

39 Passo dell algoritmo di Dijkstra I valori nei vertici indicano i valori di d S s Per ogni nodo u della frontiera, d[u] contiene la lunghezza di un percorso passante solo per vertici in S Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 39

40 Correttezza dell algoritmo S u s Sia u il vertice della frontiera con il più piccolo valore di d. Un qualsiasi cammino minimo da s ad u attraversa solo vertici in S Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 40

41 Correttezza dell algoritmo di Dijkstra 1 S u s x Sia u il vertice della frontiera con il più piccolo valore di d. Qualsiasi cammino da s ad u che attraversa qualche vertice in V-S ha lunghezza maggiore di d[u] in quanto deve passare attraverso qualche altro vertice x della frontiera con d[x] d[u] per poi raggiungere u Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 41

42 Correttezza dell algoritmo di Dijkstra 2 p' Sia s v un percorso minimo da s a v. Se prima della chiamata a RELAX(u,v,w) si ha d[u]= δ(s,u), allora dopo la chiamata si ha d[v]= δ(s,v). Dimostrazione u d[v] d[u]+w(u,v) Per effetto di RELAX(u,v,w) = δ(s,u)+w(u,v) = δ(s,v) Per la sottostruttura ottimale Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 42

43 Correttezza dell algoritmo di Dijkstra 3 Teorema: Quando u viene inserito in S si ha d[u] = δ(s,u). Idea della dimostrazione: Da quanto illustrato nelle due slide precedenti segue che esiste un cammino minimo tra s ed u che attraversa solo vertici di S: S s z u Siccome d[z] = δ(s,z), allora il risultato della slide precedente implica che dopo RELAX(z,u,w) (eseguita quando z viene aggiunto ad S) risulta d[u] = δ(s,u) (e π[u] = z). Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 43

44 Complessità dell algoritmo di Dijkstra Il tempo di esecuzione dipende da come è implementata la coda a priorità Q Per l analisi considereremo tre diverse implementazioni di Q Mediante un array Mediante binary heap Mediante Fibonacci Heap INITIALIZE-SINGLE-SOURCE(G, s) richiede tempo O(V) Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 44

45 Q implementata con array Inizializzazione di Q Tempo O(V) per inserire i vertici nell array Analisi del ciclo di while V operazioni Extract-Min (linea 5) Ciascuna richiede tempo O(V) in quanto occorre cercare il minimo V aggiornamenti di S Ciascuna richiede tempo costante Un totale di O(E) iterazioni del ciclo di for (linee 4-8) in quanto la lista di adiacenza di ciascun vertice u viene scandita esattamente una volta (quando u è inserito in S) RELAX(u,v,w) sulla linea 8 richiede tempo costante Tempo totale: O(V 2 + E )=O(V 2 ) Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 45

46 Q implementata con binary heap Inizializzazione di Q effettuata mediante una Build-Heap che costruisce un heap con V elementi in tempo O(V) Analisi del ciclo di while V operazioni Extract-Min - Ciascuna richiede tempo O(log V) V aggiornamenti di S - Ciascuna richiede tempo costante Un totale di O(E) iterazioni del ciclo di for (linee 4-8) in quanto la lista di adiacenza di ciascun vertice u viene scandita esattamente una volta (quando u è inserito in S) RELAX(u,v,w) sulla linea 8 : L aggiornamento di d[v] è effettuata eseguendo DECREASE- KEY(Q,v,d[u]+w(u,v)) che richiede tempo O(log V) L aggiornamento di π[v] richiede tempo costante Tempo totale: O(Vlog V + E log V) Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 46

47 Q implementata con Fibonacci heap Inizializzazione di Q effettuata mediante V Make-Heap e V-1 Union in tempo O(V) Analisi del ciclo di while V operazioni Extract-Min - Ciascuna richiede tempo O(log V) V aggiornamenti di S- Ciascuna richiede tempo costante Un totale di O(E) iterazioni del ciclo di for (linee 4-8) in quanto la lista di adiacenza di ciascun vertice u viene scandita esattamente una volta (quando u è inserito in S) RELAX(u,v,w) sulla linea 8 : L aggiornamento di d[v] è effettuata eseguendo DECREASE- KEY(Q,v,d[u]+w(u,v)) che richiede tempo ammortizzato O(1) L aggiornamento di π[v] richiede tempo costante Tempo totale: O(Vlog V + E) Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 47

Problema del cammino minimo

Problema del cammino minimo Algoritmi e Strutture di Dati II Problema del cammino minimo Un viaggiatore vuole trovare la via più corta per andare da una città ad un altra. Possiamo rappresentare ogni città con un nodo e ogni collegamento

Dettagli

Visite in Grafi BFS e DFS

Visite 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

Dettagli

Grafi (orientati): cammini minimi

Grafi (orientati): cammini minimi Grafi (orientati): cammini minimi Una breve presentazione Definizioni Sia G=(V,E) un grafo orientato con costi w sugli archi. Il costo di un cammino π= è dato da: Un cammino minimo tra

Dettagli

Algoritmi e strutture dati

Algoritmi e strutture dati Algoritmi e Strutture Dati Cammini minimi Definizioni Sia G = (V,E) un grafo orientato pesato sugli archi. Il costo di un cammino π = è dato da: Un cammino minimo tra una coppia di

Dettagli

Cammini minimi con sorgente singola

Cammini 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

Dettagli

Grafi (non orientati e connessi): minimo albero ricoprente

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

Dettagli

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

Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati Algoritmi e Strutture Dati Definizioni Sia G=(V,E) un grafo orientato con costi w sugli archi. Il costo di un cammino π= è dato da: Cammini minimi Un cammino minimo tra una coppia di

Dettagli

Cammini minimi in grafi:

Cammini minimi in grafi: Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Cammini minimi in grafi: una trilogia Cammini minimi in grafi: Episodio III: la fine della trilogia Input: nelle puntate

Dettagli

Grafi: visita generica

Grafi: visita generica .. Grafi: visita generica Una presentazione alternativa (con ulteriori dettagli) Algoritmi di visita Scopo: visitare tutti i vertici di un grafo (si osservi che per poter visitare un vertice occorre prima

Dettagli

Minimo albero di copertura

Minimo albero di copertura apitolo 0 Minimo albero di copertura efinizione 0.. ato un grafo G = (V, E) non orientato e connesso, un albero di copertura di G è un sottoinsieme T E tale che il sottografo (V, T ) è un albero libero.

Dettagli

Cammini minimi fra tutte le coppie

Cammini minimi fra tutte le coppie Capitolo 12 Cammini minimi fra tutte le coppie Consideriamo il problema dei cammini minimi fra tutte le coppie in un grafo G = (V, E, w) orientato, pesato, dove possono essere presenti archi (ma non cicli)

Dettagli

Problemi, istanze, soluzioni

Problemi, istanze, soluzioni lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un

Dettagli

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

Sommario. Rappresentazione dei grafi. Ordinamento topologico. Visita in ampiezza Visita in profondità Visite Grafi Sommario Rappresentazione dei grafi Visita in ampiezza Visita in profondità Ordinamento topologico Visita in ampiezza La visita in ampiezza breadth-first-search (BFS) di un grafo dato un vertice

Dettagli

Esempi. non. orientato. orientato

Esempi. non. orientato. orientato Definizione! Un grafo G = (V,E) è costituito da un insieme di vertici V ed un insieme di archi E ciascuno dei quali connette due vertici in V detti estremi dell arco.! Un grafo è orientato quando vi è

Dettagli

Grafi (non orientati e connessi): minimo albero ricoprente

Grafi (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 è

Dettagli

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore

Dettagli

COMPLEMENTI DI SHORTEST-PATH. ASD Fabrizio d'amore

COMPLEMENTI 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

Dettagli

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

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 . Cammini ottimi E. Amaldi Fondamenti di R.O. Politecnico di Milano .. Cammini minimi e algoritmo di Dijkstra Dato un grafo orientato G = (N, A) con una funzione di costo c : A c ij R e due nodi s e t,

Dettagli

Grafi diretti. Un grafo diretto (o grafo orientato) G è una coppia (V,E) dove. V è u n i n s i e m e d i nodi (o vertici);

Grafi diretti. Un grafo diretto (o grafo orientato) G è una coppia (V,E) dove. V è u n i n s i e m e d i nodi (o vertici); Algoritmi e Strutture di Dati II 2 Grafi diretti Un grafo diretto (o grafo orientato) G è una coppia (V,E) dove V è u n i n s i e m e d i nodi (o vertici); E µ V V è u n i n s i e m e d i archi. Denotiamo

Dettagli

Progettazione di Algoritmi

Progettazione di Algoritmi Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 0/06/06 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via avrai

Dettagli

Progettazione di Algoritmi

Progettazione di Algoritmi Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 1/01/016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via avrai

Dettagli

Introduzione ai grafi

Introduzione ai grafi TFA A048 Anno Accademico 2012-13 Outline Cenni storici sui grafi Nozioni introduttive: cammini, connessione, alberi, cicli Cammini di costo minimo Origini storiche La nascita della teoria dei grafi risale

Dettagli

Alberi di copertura minimi

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

Dettagli

Cammini Minimi. Un problema molto comune. Formalizziamo. Peso di un cammino. Esempio. Ritorniamo all esempio iniziale. Input:

Cammini 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

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione

Dettagli

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

Introduzione 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

Dettagli

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

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica (IN0 Fondamenti) Grafi e alberi: introduzione Marco Liverani (liverani@mat.uniroma.it)

Dettagli

Grafi: definizioni e visite

Grafi: definizioni e visite Grafi: definizioni e visite Grafi (non orientati) Grafo (non orientato): G = (V, E) V = nodi (o vertici) E = archi fra coppie di nodi distinti. Modella relazioni fra coppie di oggetti. Parametri della

Dettagli

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

Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa Alberi di copertura Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo, Pisa mpassacantando@di.unipi.it M. Passacantando TFA 0/ - Corso di Ricerca Operativa Università di Pisa / 9 Definizioni

Dettagli

Grafi pesati Minimo albero ricoprente

Grafi pesati Minimo albero ricoprente Algoritmi e Strutture Dati Definizioni Grafi pesati Minimo albero ricoprente Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è un albero; T contiene

Dettagli

Algoritmi e Strutture Dati

Algoritmi 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

Dettagli

VISITA IL SITO PER ALTRO MATERIALE E GUIDE

VISITA 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

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) protocolli reti IP memorizzazione compatta di

Dettagli

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio

Algoritmi 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

Dettagli

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

Problema dell albero di cammini minimi (SPT, Shortest Path Tree) o problema dei cammini minimi : Per almeno una delle soluzioni ottime { P i, i r } del problema generalizzato, l unione dei cammini P i forma un albero di copertura per G radicato in r e orientato, ossia un albero la cui radice è r i

Dettagli

11.4 Chiusura transitiva

11.4 Chiusura transitiva 6 11.4 Chiusura transitiva Il problema che consideriamo in questa sezione riguarda il calcolo della chiusura transitiva di un grafo. Dato un grafo orientato G = hv,ei, si vuole determinare il grafo orientato)

Dettagli

Grafi e reti di flusso

Grafi e reti di flusso Grafi e reti di flusso Molti problemi di ottimizzazione sono caratterizzati da una struttura di grafo: in molti casi questa struttura emerge in modo naturale, in altri nasce dal particolare modo in cui

Dettagli

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

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

Dettagli

Strutture dati per insiemi disgiunti

Strutture 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

Dettagli

Algoritmo basato su cancellazione di cicli

Algoritmo basato su cancellazione di cicli Algoritmo basato su cancellazione di cicli Dato un flusso ammissibile iniziale, si costruisce una sequenza di flussi ammissibili di costo decrescente. Ciascun flusso è ottenuto dal precedente flusso ammissibile

Dettagli

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

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

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Capitolo 12 Grafi e visite di grafi Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Definizione Un grafo G=(V,E) consiste in: - un insieme V di vertici (o nodi) - un insieme

Dettagli

Il problema del commesso viaggiatore

Il problema del commesso viaggiatore Il problema del commesso viaggiatore Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa mpassacantando@di.unipi.it M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Università

Dettagli

Introduzione ai grafi. Introduzione ai grafi p. 1/2

Introduzione 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

Dettagli

2.3.3 Cammini ottimi nei grafi senza circuiti

2.3.3 Cammini ottimi nei grafi senza circuiti .. Cammini ottimi nei grafi senza circuiti Sia un grafo G = (N, A) orientato senza circuiti e una funzione di costo che assegna un valore c ij R ad ogni arco (i, j) A circuito Proprietà I nodi di un grafo

Dettagli

Progettazione di algoritmi

Progettazione 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

Dettagli

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

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

Dettagli

4c. Esercizi sul livello di Rete Instradamento in Internet

4c. Esercizi sul livello di Rete Instradamento in Internet c. sul livello di Rete Instradamento in Internet c- o Si consideri la rete in figura. Si rappresenti, mediante un grafo, la rete per il calcolo dei cammini minimi (solo i nodi e gli archi no reti). Si

Dettagli

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

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

Dettagli

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it 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

Dettagli

Ottimizzazione Discreta Esercizi V: Soluzioni

Ottimizzazione 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),

Dettagli

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

Grafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill) Grafi: visite Una breve presentazione Visite di grafi Scopo e tipi di visita Una visita (o attraversamento) di un grafo G permette di esaminare i nodi e gli archi di G in modo sistematico Problema di base

Dettagli

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

Dettagli

Fondamenti di Internet e Reti 097246

Fondamenti di Internet e Reti 097246 sul livello di Rete Instradamento. o Si consideri la rete in figura.. Si rappresenti, mediante un grafo, la rete per il calcolo dei cammini minimi (solo i nodi e gli archi no reti). Si calcoli il cammino

Dettagli

Il valore di flusso che si ottiene è

Il 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

Dettagli

Progettazione di algoritmi. Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo. Appello del 15 Novembre Attenzione:

Progettazione di algoritmi. Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo. Appello del 15 Novembre Attenzione: COGNOME: Nome: Progettazione di algoritmi Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo Appello del 15 Novembre 2016 Attenzione: Inserire i propri dati nell apposito spazio soprastante e sottostante.

Dettagli

Ordinamento per inserzione e per fusione

Ordinamento per inserzione e per fusione Ordinamento per inserzione e per fusione Alessio Orlandi 15 marzo 2010 Fusione: problema Problema Siano A e B due array di n A e n B interi rispettivamente. Si supponga che A e B siano ordinati in modo

Dettagli

Domini di funzioni di due variabili. Determinare i domini delle seguenti funzioni di due variabili (le soluzioni sono alla fine del fascicolo):

Domini di funzioni di due variabili. Determinare i domini delle seguenti funzioni di due variabili (le soluzioni sono alla fine del fascicolo): UNIVERSITA DEGLI STUDI DI SALERNO C.d.L. in INGEGNERIA GESTIONALE Esercizi di Ricerca Operativa Prof. Saverio Salerno Corso tenuto nell anno solare 2009 I seguenti esercizi sono da ritenersi di preparazione

Dettagli

T 1 =1. n 6 n. T n =3 T. Esercizio 1 (6 punti)

T 1 =1. n 6 n. T n =3 T. Esercizio 1 (6 punti) A.A. 7 8 Esame di Algoritmi e strutture dati 9 luglio 8 Esercizio (6 punti) Risolvere con almeno due metodi diversi la seguente relazione di ricorrenza T = T n =3 T n 6 n A.A. 7 8 Esame di Algoritmi e

Dettagli

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

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

Dettagli

Gestione della produzione e della supply chain Logistica distributiva

Gestione della produzione e della supply chain Logistica distributiva Gestione della produzione e della supply chain Logistica distributiva Paolo Detti Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena Convergenza dell algoritmo Se non

Dettagli

Progettazione di Algoritmi

Progettazione di Algoritmi Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 29/01/2016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via

Dettagli

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

Dettagli

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento: Selection e Insertion Sort

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati Capitolo 4 Ordinamento: Selection e Insertion Sort Ordinamento Dato un insieme S di n elementi presi da un dominio totalmente ordinato, ordinare S in ordine non crescente o non

Dettagli

Possibile applicazione

Possibile applicazione p. 1/4 Assegnamento Siano dati due insiemi A e B entrambi di cardinalità n. Ad ogni coppia (a i,b j ) A B è associato un valore d ij 0 che misura la "incompatibilità" tra a i e b j, anche interpretabile

Dettagli

Processi di cost management - Programmazione multiperiodale

Processi di cost management - Programmazione multiperiodale Processi di cost management - Programmazione multiperiodale Queste slide (scrte da Carlo Mannino) riguardano il problema di gestione delle attivà di un progetto allorché i costi di esecuzione sono legati

Dettagli

Dati e Algoritmi I (Pietracaprina) Esercizi svolti sui Grafi

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

Dettagli

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

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

Dettagli

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come Problemi e algoritmi Il che cosa e il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come effettuare un calcolo

Dettagli

UNIVERSITÀ 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 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),

Dettagli

Progettazione di Algoritmi

Progettazione 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

Dettagli

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

Dati 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

Dettagli

Ottimizzazione Combinatoria e Reti (a.a. 2007/08)

Ottimizzazione Combinatoria e Reti (a.a. 2007/08) o Appello 6/07/008 Ottimizzazione Combinatoria e Reti (a.a. 007/08) Nome Cognome: Matricola: ) Dopo avere finalmente superato l esame di Ricerca Operativa, Tommaso è pronto per partire in vacanza. Tommaso

Dettagli

Routing IP. IP routing

Routing IP. IP routing Routing IP IP routing IP routing (inoltro IP): meccanismo per la scelta del percorso in Internet attraverso il quale inviare i datagram IP routing effettuato dai router (scelgono il percorso) Routing diretto

Dettagli

Appunti lezione Capitolo 14 Greedy

Appunti 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

Dettagli

Alberi e arborescenze di costo minimo

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

Dettagli

METODI DELLA RICERCA OPERATIVA

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

Dettagli

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

età (anni) manutenzione (keuro) ricavato (keuro) .6 Cammini minimi. Determinare i cammini minimi dal nodo 0 a tutti gli altri nodi del seguente grafo, mediante l algoritmo di Dijkstra e, se applicabile, anche mediante quello di Programmazione Dinamica.

Dettagli

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I

ALGORITMI 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

Dettagli

GRAFI. Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi!

GRAFI. Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi! G R A F I 1 GRAFI Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi! 2 cip: cip: Pallogrammi Pallogrammi GRAFI: cosa sono I grafi sono una struttura matematica fondamentale: servono

Dettagli

Makespan con set-up dipendenti dalla sequenza. 1/s jk /C max

Makespan 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

Dettagli

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

Dettagli

Sommario della lezione

Sommario 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

Dettagli

Problemi di ordinamento

Problemi 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

Dettagli

Progettazione di algoritmi

Progettazione di algoritmi Progettazione di algoritmi Discussione dell'esercizio [vincoli] Prima di tutto rappresentiamo il problema con un grafo G: i nodi sono le n lavorazioni L 1, L 2,, L n, e tra due nodi L h, L k c'è un arco

Dettagli

Progettazione di algoritmi

Progettazione di algoritmi Progettazione di algoritmi Discussione dell'esercizio [labirinto] Nel testo dell'esercizio abbiamo considerato come lunghezza del percorso il numero di bivi ma possiamo stimare meglio la lunghezza reale

Dettagli

Programmazione dinamica

Programmazione dinamica Programmazione dinamica Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Programmazione

Dettagli

«Sciente e Tecnologie dei Beni Culturali»

«Sciente e Tecnologie dei Beni Culturali» 5 Informatica CdS in «Sciente e Tecnologie dei Beni Culturali» AA 2014-2015 Mini-sito dell insegnamento: http://www.unife.it/scienze/beni.culturali/insegnamenti/informatica Prof. Giorgio Poletti giorgio.poletti@unife.it

Dettagli

Routing. Forwarding e routing

Routing. Forwarding e routing Routing E necessario stabilire un percorso quando host sorgente e destinazione non appartengono alla stessa rete Router di default si occupa di instradare il traffico all esterno della rete Router sorgente:

Dettagli

Elezione di un leader in una rete ad anello

Elezione di un leader in una rete ad anello Elezione di un leader in una rete ad anello Corso di Algoritmi Distribuiti Prof. Roberto De Prisco Lezione n a cura di Rosanna Cassino e Sergio Di Martino Introduzione In questa lezione viene presentato

Dettagli

Esame di Ricerca Operativa del 08/01/13. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Esame di Ricerca Operativa del 08/01/13. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare: Esame di Ricerca Operativa del 08/0/ Cognome) Nome) Corso di laurea) Esercizio. Completare la seguente tabella considerando il problema di programmazione lineare: max x + x x +x x x 0 x + x x x 8 x x 8

Dettagli

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

Dettagli

Parte V: Rilassamento Lagrangiano

Parte V: Rilassamento Lagrangiano Parte V: Rilassamento Lagrangiano Tecnica Lagrangiana Consideriamo il seguente problema di Programmazione Lineare Intera: P 1 min c T x L I Ax > b Cx > d x > 0, intera in cui A = matrice m x n C = matrice

Dettagli

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra

Dettagli

Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla

Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla Camil Demetrescu Irene Finocchi Giuseppe F. Italiano Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla Indice 1 Un introduzione informale agli algoritmi 1 2 Modelli di calcolo e metodologie di

Dettagli

L' ADT grafo è un contenitore di elementi memorizzati nelle posizioni del grafo (vertici e archi)

L' ADT grafo è un contenitore di elementi memorizzati nelle posizioni del grafo (vertici e archi) L' ADT grafo è un contenitore di elementi memorizzati nelle posizioni del grafo (vertici e archi) le informazioni possono essere memorizzate sia sui vertici sia sugli archi del grafo Metodi fondamentali

Dettagli

4.1 Localizzazione e pianificazione delle base station per le reti UMTS

4.1 Localizzazione e pianificazione delle base station per le reti UMTS esercitazione Ottimizzazione Prof E Amaldi Localizzazione e pianificazione delle base station per le reti UMTS Consideriamo il problema di localizzare un insieme di stazioni radio base, base station (BS),

Dettagli

Heap e code di priorità

Heap e code di priorità Heap e code di priorità Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010

Dettagli

VISITA IL SITO PER ALTRO MATERIALE E GUIDE

VISITA 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

Dettagli

Esercizio 1. min. Esercizio 2. Esercizio 3

Esercizio 1. min. Esercizio 2. Esercizio 3 A UNIVERSIÀ DEGLI SUDI ROMA RE Ricerca Operativa Primo appello gennaio 00 Esercizio Portando il problema in forma standard si aggiungono le variabili e 4. Impostando il problema artificiale è sufficiente

Dettagli