Algoritmi e Strutture Dati
|
|
|
- Flavia Piazza
- 8 anni fa
- Visualizzazioni
Transcript
1 Algoritmi e Strutture Dati Capitolo 13 Cammini minimi: Algoritmo di Dijkstra (*) (ACM in grafi diretti e non diretti senza archi di peso negativo)
2 Punto della situazione Algoritmo basato sull ordinamento topologico: albero dei cammini minimi in grafi diretti aciclici. Complessità Θ(n+m) (grafo rappresentato con liste di adiacenza). Algoritmo di Bellman&Ford: albero dei cammini minimi in grafi diretti che non contengono cicli negativi, ovvero grafi non diretti che non contengono archi di peso negativo. Complessità Θ(n m) (grafo rappresentato con liste di adiacenza). 2
3 Algoritmo di Dijkstra (1959) (albero dei cammini minimi in grafi (sia diretti che non diretti) con pesi non negativi) 3
4 Richiamo sulla notazione w(u,v): peso dell arco (u,v) del grafo pesato (diretto o non diretto) G=(V,E,w) w( ): lunghezza di un cammino nel grafo, ovvero somma dei pesi di tutti gli archi del cammino uv : cammino minimo nel grafo tra i nodi u e v d uv : distanza nel grafo (ovvero lunghezza del cammino minimo) tra i nodi u e v D uv : sovrastima della distanza nel grafo tra i nodi u e v (cioè D uv d uv ) 4
5 Estendere l albero dei cammini minimi Lemma di Dijkstra (1959): Sia G=(V,E,w) (diretto o non diretto) con pesi non negativi, e sia T un sottoalbero dell albero dei cammini minimi radicato in s che include s ma non include tutti i vertici raggiungibili da s. Sia: (u,v) = arg min{d st + w(t,z) (t,z) E, t T e z T} (in altre parole, v è il nodo non appartenente a T più vicino ad s). Allora, (u,v) appartiene a un cammino minimo da s a v. 5
6 Prova del lemma di Dijkstra (1/2) Dim.: Supponiamo per assurdo che (u,v) non appartenga ad un cammino minimo da s a v, e quindi che d sv < d su +w(u,v). Allora, d sv è la lunghezza di un cammino minimo da s a v che non passa per (u,v). Tale cammino, per uscire da T, passerà allora (almeno una prima volta) per un qualche arco (x,y) (u,v), con x T e y T. Sia quindi sv = <s,,x,y,,v>. Si noti che il cammino yv potrebbe rientrare in T in quanto abbiamo ammesso la possibilità che gli archi abbiano peso pari a 0 Per la minimalità dei sottocammini di un cammino minimo, il cammino da s a x deve essere minimo e avere quindi lunghezza d sx w( sv ) = w( sx ) + w(x,y) + w( yv ) = d sx + w(x,y) + w( yv ). 6
7 Prova del lemma di Dijkstra (2/2) Ma poiché (u,v) minimizza d st + w(t,z) per ogni t T e z T, allora: e quindi: d sx + w(x,y) d su + w(u,v) w( sv ) = d sx + w(x,y) + w( yv ) d su + w(u,v) + w( yv ) e poiché w( yv ) 0 (si noti che in questo punto si sfrutta il fatto che i pesi di G sono non negativi, e quindi i cammini hanno sempre lunghezza 0), ne segue d sv w( sv ) d su + w(u,v), assurdo (avevamo supposto d sv < d su + w(u,v)). 7
8 Approccio di Dijkstra Sia T il sottoalbero dei cammini minimi costruito sinora (all inizio T contiene solo il nodo sorgente s). Supponiamo quindi che l algoritmo abbia già trovato d su per ogni u T, e abbia invece una sovrastima D sv per ogni v T. Al passo successivo, seleziona il nodo v T che minimizza la quantità D sv :=d su +w(u,v) (si noti che D sv coincide con d sv per il lemma di Dijkstra), con u T; quindi, aggiungi v a T ed effettua il passo di rilassamento su ogni nodo y T adiacente a v (per il quale cioè (v,y) E). I nodi da aggiungere progressivamente a T sono mantenuti in una coda di priorità, associati ad un unico arco che li connette a T. Se y è in coda con arco (x,y) associato, e se dopo aver aggiunto v a T troviamo un arco (v,y) tale che D sv +w(v,y) < D sx +w(x,y), allora rimpiazziamo (x,y) con (v,y), ed aggiorniamo D sy. 8
9 9 Pseudocodice Nota: T è un albero che contiene tutti i nodi già aggiunti alla soluzione (ovvero quelli in T secondo la notazione del lemma di Dijkstra, per i quali è già stato trovato il cammino minimo da s), più i nodi correntemente contenuti nella coda di priorità, cioè appesi a T, ciascuno connesso al rispettivo nodo padre. Si noti che a differenza dei due algoritmi già visti, in questo caso viene restituito l ACM (e non le distanze da s)
10 Esempio (1/2) 10
11 Esempio (2/2) 11
12 Tempo di esecuzione: implementazioni elementari Supponendo che il grafo G=(V,E,w) sia rappresentato tramite liste di adiacenza e che V =n ed E =m, e supponendo che G sia fortemente connesso rispetto ad s (e quindi m n-1), avremo n insert, n deletemin e al più m decreasekey nella coda di priorità S, al costo di: Insert DelMin DecKey Array non ord. O(1) Θ( S )=O(n) O(1) Array ordinato O( S )=O(n) O(1) O( S )=O(n) Lista non ord. O(1) Θ( S )=O(n) O(1) Lista ordinata O( S )=O(n) O(1) O( S )=O(n) n O(1) + n O(n) + O(m) O(1) = O(n 2 ) con array non ordinati n O(n) + n O(1) + O(m) O(n) = O(m n) con array ordinati n O(1) + n O(n) + O(m) O(1) = O(n 2 ) con liste non ordinate n O(n) + n O(1) + O(m) O(n) = O(m n) con liste ordinate 12
13 Osservazione sulla decreasekey Ricordiamo che le complessità computazionali esposte per la decreasekey sono valide supponendo di avere un puntatore diretto all elemento su cui eseguire l operazione. Come possiamo garantire tale condizione? Semplicemente inizializzando un puntatore tra il nodo v nell array dei nodi della lista di adiacenza del grafo e l elemento nella coda di priorità associato al nodo v; tale puntatore viene inizializzato nella fase di inserimento di quest ultimo all interno della coda. 13
14 Tempo di esecuzione: implementazioni efficienti Supponendo che il grafo G=(V,E,w) sia rappresentato tramite liste di adiacenza e che V =n ed E =m, e supponendo che G sia fortemente connesso rispetto ad s (e quindi m n-1), avremo n insert, n deletemin e al più m decreasekey nella coda di priorità, al costo di: Insert DelMin DecKey Heap binario O(log n) O(log n) O(log n) Heap Binom. O(log n) O(log n) O(log n) Heap Fibon. O(1) O(log n) * (ammortizzata) O(1) * (ammortizzata) n O(log n) + n O(log n) + O(m) O(log n) = O(m log n) utilizzando heap binari o binomiali n O(1) + n O(log n) * + O(m) O(1) * = O(m + n log n) utilizzando heap di Fibonacci (Esercizio di approfondimento: si dimostri che questa è l implementazione più efficiente tra quelle descritte) 14
15 Confronto tra Bellman&Ford e Dijkstra Innanzitutto, si noti che B&F si applica ad una classe molto più vasta di grafi, ovvero su tutti i grafi orientati/non orientati che non hanno cicli/archi di costo negativo, che sono poi tutti e solo quelli per i quali i cammini minimi possono effettivamente essere calcolati Si noti però che l implementazione di Dijkstra con heap di Fibonacci è sempre più efficiente di B&F; infatti, O(m+n log n)=o(n m), poiché m=o(n m) e n log n = o(n m) Nonostante l algoritmo di Dijkstra abbia oltre mezzo secolo di vita, è al momento l algoritmo più efficiente per la classe di grafi a cui si applica; ricordando però che l unico lower bound noto per il problema del cammino minimo tra due nodi (e quindi anche per l ACM) è Ω(m+n), ne consegue che non lo si può definire ottimo, in quanto per m=o(n log n), permane un gap di log n rispetto al termine additivo in n; invece, per m=ω(n log n), si ha che O(m + n log n) = O(m) = O(m+n), e quindi diventa ottimo Per istanze pratiche, l algoritmo di Dijkstra è molto efficiente; infatti, ad esempio, su grafi planari (con pesi non negativi, come le reti stradali), usando la formula di Eulero si può dimostrare che m 3n-6, cioè m=θ(n), ovvero O(m + n log n) = O(n log n), e quindi l algoritmo è quasi lineare in n; nell esempio del navigatore satellitare, questa complessità si traduce in un tempo di risposta vicino al secondo 15
16 Approfondimento Applicare l algoritmo di Dijkstra con sorgente s sul seguente grafo: s a c 5 1 b d 1 16
Algoritmi e strutture dati
Algoritmi e Strutture Dati Cammini minimi Definizioni Sia G = (V,E) un grafo orientato pesato sugli archi. Il costo di un cammino π = è dato da: Un cammino minimo tra una coppia di
Grafi (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
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
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
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
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
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
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 8 Code con priorità: Heap binomiali Riepilogo Array non ord. Array ordinato Lista non ordinata Lista ordinata Find Min Insert Delete DelMin Incr. Key Decr. Key merge
Cammini 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
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
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
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
Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione
Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica (IN0 Fondamenti) Grafi e alberi: introduzione Marco Liverani ([email protected])
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
Minimo albero di copertura
apitolo 0 Minimo albero di copertura efinizione 0.. ato un grafo G = (V, E) non orientato e connesso, un albero di copertura di G è un sottoinsieme T E tale che il sottografo (V, T ) è un albero libero.
Grafi 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
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
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
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,
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)
Esercizi 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,
UNIVERSITA DEGLI STUDI DI PERUGIA
UNIVERSITA DEGLI STUDI DI PERUGIA REGISTRO DELLE LEZIONI E DELLE ALTRE ATTIVITÀ DIDATTICHE Anno accademico 2006-2007 Dott./Prof. Pinotti Maria Cristina Settore scientifico-disciplinare INF01 Facoltà Scienze
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
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
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
Algoritmi 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
Strutture dati per rappresentare grafi
lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano Strutture dati per rappresentare grafi opyright 2004 - The Mcraw - Hill ompanies, srl lgoritmi e strutture dati amil emetrescu,
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 è
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
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
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
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
ALGORITMI CORSO DI STUDIO IN INFORMATICA (laurea triennale) UNIVERSITÀ DEGLI STUDI DI CATANIA ANNO ACCADEMICO 2014/15
ANNO ACCADEMICO 2014/15 1 a prova in itinere 13 gennaio 2015 ESERCIZIO 1 Si risolva l equazione di ricorrenza al variare del parametro reale a>1. T (n) = 27 n a T + n 2 log n a ESERCIZIO 2 Si ordinino
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à
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
L 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
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
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
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
Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa
Alberi di copertura Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo, Pisa [email protected] M. Passacantando TFA 0/ - Corso di Ricerca Operativa Università di Pisa / 9 Definizioni
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)
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
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
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
Ricerca Operativa Cammini minimi: algoritmi di Bellman-Ford e di Dijkstra
Ricerca Operativa Cammini minimi: algoritmi di Bellman-Ford e di Dijkstra L. De Giovanni AVVERTENZA: le note presentate di seguito non hanno alcuna pretesa di completezza, né hanno lo scopo di sostituirsi
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
Programmazione Greedy I codici di Huffman
Programmazione Greedy I codici di Huffman Codifica dell informazione La rappresentazione ordinaria dell informazione prevede l impiego di un numero costante di bit; per esempio ad ogni carattere del codice
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
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
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
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)
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 =
Alberi. Alberi: definizioni. Alberi Binari. Esercizi su alberi binari: metodi ricorsivi. Struttura dati per alberi generici. ASD-L - Luca Tesei
Alberi Alberi: definizioni Alberi Binari Esercizi su alberi binari: metodi ricorsivi Struttura dati per alberi generici 1 Alberi Gli alberi sono strutture dati naturalmente ricorsive Un albero è un particolare
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
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
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
Branch-and-bound per KNAPSACK
p. 1/1 Branch-and-bound per KNAPSACK Rispetto allo schema generale visto in precedenza dobbiamo specificare: come si calcola un upper bound su un sottinsieme; come si effettua il branching; come si individuano
«Sciente e Tecnologie dei Beni Culturali»
5 Informatica CdS in «Sciente e Tecnologie dei Beni Culturali» AA 2014-2015 Mini-sito dell insegnamento: http://www.unife.it/scienze/beni.culturali/insegnamenti/informatica Prof. Giorgio Poletti [email protected]
Esercizio 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.
METODI DELLA RICERCA OPERATIVA
Università degli Studi di Cagliari FACOLTA' DI INGEGNERIA CORSO DI METODI DELLA RICERCA OPERATIVA Dott.ing. Massimo Di Francesco ([email protected]) i i Dott.ing. Maria Ilaria Lunesu ([email protected])
Algoritmi e Strutture Dati
Heap Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Heap Heap binari: definizione Un heap binario è una struttura dati composta
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
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
Dispense per i corsi di Informatica generale Corso di laurea in Matematica e. Introduzione agli Algoritmi Corso di laurea in Informatica
Dispense per i corsi di Informatica generale Corso di laurea in Matematica e Introduzione agli Algoritmi Corso di laurea in Informatica Prof. Tiziana Calamoneri Prof. Giancarlo Bongiovanni Questi appunti
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
Quarto allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale
Quarto allenamento Olimpiadi Italiane di Informatica - Selezione territoriale Luca Chiodini [email protected] - [email protected] 30 marzo 2017 Programma 1. Lettura e analisi di un problema 2.
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
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
Linguaggi e Grammatiche Liberi da Contesto
N.Fanizzi-V.Carofiglio Dipartimento di Informatica Università degli Studi di Bari 22 aprile 2016 1 Linguaggi Liberi da Contesto 2 Grammatiche e Linguaggi Liberi da Contesto G = (X, V, S, P) è una grammatica
Capitolo 5. Algoritmi di ricerca su grafo. 5.1 Algoritmi di ricerca su grafo
Capitolo 5 Algoritmi di ricerca su grafo Gli algoritmi di ricerca su grafo, oggetto dei prossimi paragrafi, rappresentano tecniche fondamentali per determinare nodi che soddisfino particolari proprietà
Alberi e alberi binari I Un albero è un caso particolare di grafo
Alberi e alberi binari Un albero è un caso particolare di grafo È costituito da un insieme di nodi collegati tra di loro mediante archi Gli archi sono orientati (ogni arco esce da un nodo origine ed entra
Questa soluzione va contemplata quando le lunghezze stimate dalle liste usate sono significativamente maggiori delle dimensioni di un elemento.
Un ulteriore semplificazione si ottiene utilizzando un elemento sentinella (dummy) che non contiene informazione, ma serve a segnalare la fine (e l inizio) di una lista. Questa soluzione va contemplata
Heap Ordinamento e code di priorità. Ugo de' Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 9
Heap Ordinamento e code di priorità Heap: definizione Definizione. Uno Heap (binario) è un albero binario finito i cui vertici sono etichettati da elementi di un insieme linearmente ordinato (chiavi),
