Problemi, istanze, soluzioni

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Problemi, istanze, soluzioni"

Transcript

1 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 generico ingresso del problema. Una istanza ha associato uno spazio di ricerca nel quale cercare una soluzione per tale istanza del problema. Il problema specifica la proprietà che una soluzione deve avere per risolvere l istanza del problema.

2 lgoritmi e Strutture di Dati II 3 Consideriamo il seguente problema: dato una sequenza di numeri S trovare una permutazione di S che sia ordinata in senso crescente. Una istanza di questo problema è una sequenza S. Lo spazio di ricerca associato a S è l insieme delle permutazioni di S. Una soluzione per l istanza S è una permutazione di S che sia ordinata in senso crescente.

3 lgoritmi e Strutture di Dati II 4 Consideriamo il seguente problema: dato un grafo pesato G e un numero reale k, trovare un albero di supposto di G di costo minore o uguale a k. Una istanza di questo problema è una coppia (G, k). Lo spazio di ricerca associato a (G, k) è l insieme degli alberi di supporto di G. Una soluzione per l istanza (G, k) è un albero di supporto di G il cui costo è minore o uguale a k.

4 lgoritmi e Strutture di Dati II 5 Risolvere o verificare? Un algoritmo che risolve un problema è un algoritmo che prende in ingresso una istanza I del problema e restituisce una soluzione per I. Un algoritmo che verifica un problema è un algoritmo che prende in ingresso una istanza I del problema e un elemento α dello spazio di ricerca associato a I, e verifica se α risolve I.

5 lgoritmi e Strutture di Dati II 6 Risolvere o verificare? HeapSort è un algoritmo che risolve il problema dell ordinamento. La sua complessità è Θ(n log n), ove n è il numero di elementi da ordinare.

6 lgoritmi e Strutture di Dati II 7 L algoritmo che segue verifica il problema dell ordinamento in tempo lineare Θ(n): Check(S,A) 1: for i 1 to length(s) 1 do 2: if A[i] > A[i + 1] then 3: return false 4: end if 5: end for 6: return true

7 lgoritmi e Strutture di Dati II 8 Risolvere o verificare? Il problema dell albero di supporto di costo inferiore ad una certa soglia può essere risolto con questo algoritmo: calcolo l albero di supporto di costo minimo con l algoritmo di Kruskal; verifico se il costo di dell albero restituito è inferiore alla soglia. Dato che un albero di supporto ha n 1 archi, il costo della fase di verifica è Θ(n). La complessità dell algoritmo risulta dunque Θ(n + m log n) = Θ(m log n).

8 lgoritmi e Strutture di Dati II 9 Un algoritmo che verifica il problema dell albero di supporto di costo inferiore ad una certa soglia esegue solo la fase di verifica e dunque ha complessità lineare Θ(n).

9 lgoritmi e Strutture di Dati II 10 Risolvere o verificare? Un algoritmo che risolve un problema può idealmente essere scomposto in due parti: Esplorazione: l algoritmo visita lo spazio di ricerca associato all istanza del problema che deve risolvere; Verifica: l algoritmo verifica se un elemento dello spazio di ricerca soddisfa la proprietà specificata dal problema. Quindi la verifica è parte integrante della soluzione di un problema. In termini computazionali ciò significa che risolvere è impegnativo almeno quanto verificare!

10 lgoritmi e Strutture di Dati II 11 P e NP La classe di complessità P contiene tutti i problemi che possono essere risolti con complessità polinomiale. La classe di complessità NP contiene tutti i problemi che possono essere verificati con complessità polinomiale. Dato che la verifica è parte integrante della soluzione di un problema, abbiamo che: P NP

11 lgoritmi e Strutture di Dati II 12 Problemi NP-completi Un problema Π è NP-completo se: Π NP; e per ogni problema Ω NP, Π è difficile da risolvere almeno quanto Ω. Il altri termini, tra tutti i problemi in NP, i problemi NP-completi sono i più difficili da risolvere. Si noti che se Π è NP-completo e Π P, allora P = NP.

12 lgoritmi e Strutture di Dati II 13 La questione P? = NP Il più grande problema aperto in Teoria della Complessità consiste nel determinare se P NP oppure se P = NP La congettura corrente è che P NP in quanto non è mai stata trovata alcuna soluzione polinomiale per un qualsiasi problema NP-completo.

13 lgoritmi e Strutture di Dati II 14 Problema del commesso viaggiatore (TSP) con soglia Dato un grafo indiretto G, un tour (o ciclo Hamiltoniano) in G è un ciclo semplice (senza nodi ripetuti) che passa per tutti i nodi di G. Istanza: Un grafo G indiretto, completo e pesato con pesi interi e positivi e un intero positivo k. Domanda: Esiste un tour in G di costo minore o uguale a k?

14 lgoritmi e Strutture di Dati II 15 Problema del commesso viaggiatore (TSP) Istanza: Un grafo G indiretto, completo e pesato con pesi interi e positivi. Problema: Trovare un tour in G di costo minimo.

15 lgoritmi e Strutture di Dati II 16 Complessità di TSP TSP può essere verificato in tempo polinomiale: dato un tour, calcolo il suo costo sommando il costo di tutti i suoi archi e verifico se è minore o uguale a k. Quindi TSP NP. E dimostrabile che tutti i problemi in NP possono essere ridotti a TSP, quindi TSP è NP-completo. Fino a oggi, nessuno ha mai trovato un algoritmo che risolve TSP in tempo polinomiale.

16 lgoritmi e Strutture di Dati II 17 Problemi difficili Di fronte a problemi difficili (NP-completi) possiamo procedere in uno dei seguenti modi: identificare casi particolari del problema per i quali esiste una soluzione polinomiale; risolvere il problema nella sua generalità solo su istanze piccole; usare un algoritmo che velocemente restituisce una soluzione parziale (algoritmo incompleto) o una soluzione prossima a quella ottima (algoritmo di approssimazione).

17 lgoritmi e Strutture di Dati II 18 Approx-TSP Vediamo un algoritmo di approssimazione per TSP chiamato Approx-TSP. Un algoritmo incompleto per TSP con soglia si ottiene facilmente a partire dall algoritmo di approssimazione. Sia G = (V, E, w) un grafo indiretto completo con pesi non negativi. Facciamo l ipotesi che la funzione peso w soddisfi la disuguaglianza triangolare: per ogni u, v, w V, w(u, w) w(u, v) + w(v, w) Se w è una metrica (per esempio la distanza Euclidea), allora w soddisfa la disuguaglianza triangolare.

18 lgoritmi e Strutture di Dati II 19 Approx-TSP Approx-TSP è il seguente algoritmo di approssimazione per TSP: 1. scegliere a caso una radice r V ; 2. calcolare un albero T di supporto di costo minimo per G con radice r usando l algoritmo di Prim; 3. visitare i nodi di T in ordine anticipato e inserire i nodi in una lista C; 4. appendere la radice r alla fine della lista C e restituire C.

19 lgoritmi e Strutture di Dati II 20 a d e b f g c h

20 lgoritmi e Strutture di Dati II 21 a d e b f g c h C = a, b, c, h, d, e, f, g, a

21 lgoritmi e Strutture di Dati II 22 a d a d e e b f g b f g c c h h C = a, b, c, h, d, e, f, g, a w(c) = 19,074 C* = a, b, c, h, f, g, e, d, a w(c*) = 14,715

22 lgoritmi e Strutture di Dati II 23 Complessità di Approx-TSP Approx-TSP ha complessità polinomiale: il passo 1 ha costo costante, il passo 2 ha costo Θ(m log n), il passo 3 ha costo Θ(n) e il il passo 4 ha costo costante. Dato che il grafo è completo, m = Θ(n 2 ), dunque il costo di Approx-TSP risulta Θ(n 2 log n)

23 lgoritmi e Strutture di Dati II 24 Grado di approssimazione di Approx-TSP Teorema Nel caso di grafi pesati che soddisfano la disuguaglianza triangolare, la soluzione fornita da Approx-TSP ha costo minore o uguale al doppio del costo della soluzione ottima.

24 lgoritmi e Strutture di Dati II 25 Sia C il tour fornito da Approx-TSP e C il tour di costo minimo. Occorre dimostrare che w(c) 2w(C ) Sia T l albero di supporto di costo minimo. Dato che togliendo un arco qualsiasi a C ottengo un albero di supporto, allora w(t ) w(c )

25 lgoritmi e Strutture di Dati II 26 Sia P il cammino ottenuto seguendo la visita di T in ordine anticipato e inserendo in P ogni nodo quando incontrato: a d e b f g c h P = a, b, c, b, h, b, a, d, e, f, e, g, e, d, a

26 lgoritmi e Strutture di Dati II 27 Si noti che: P passa esattamente due volte per ogni arco di T. Dunque w(p ) = 2w(T ); il tour C è ottenuto elimimando da P le occorrenze ripetute di ogni nodo. Dunque, per la disuguaglianza triangolare, w(c) w(p ). Quindi: w(c) w(p ) = 2w(T ) 2w(C )

27 lgoritmi e Strutture di Dati II 28 Problemi NP-completi Garey and Johnson, nel 1979, nel loro libro Computers and Intractability, catalogano più di 300 problemi NP-completi. Dieci anni dopo, nel 1989, Dewdney afferma nel suo libro The Turning Omnibus l esistenza di più di 2000 problemi NP-completi. A tutt oggi non esiste alcuna soluzione polinomiale pubblicata per alcuno di questi problemi. Ciò suggerisce la congettura P NP.

28 lgoritmi e Strutture di Dati II 29 Albero di supporto con vincolo sul grado dei nodi Istanza: Un grafo G = (V, E) e un intero positivo k V. Domanda: Esiste un albero di supporto per G in cui tutti i nodi dell albero hanno grado minore o uguale a k?

29 lgoritmi e Strutture di Dati II 30 Ciclo/Cammino Hamiltoniano Istanza: Un grafo G. Domanda: Esiste un ciclo/cammino Hamiltoniano in G? Cioè, esiste un ciclo/cammino semplice che passa per tutti i nodi del grafo? Commento: Il problema del cammino Hamiltoniano è invece polinomiale su grafi diretti e aciclici.

30 lgoritmi e Strutture di Dati II 31 Commesso viaggiatore con collo di bottiglia Istanza: Un grafo G indiretto, completo e pesato con pesi interi e positivi e un intero positivo k. Domanda: Esiste un tour in G in cui tutti gli archi hanno costo minore o uguale a k?

31 lgoritmi e Strutture di Dati II 32 Commesso viaggiatore con distanza Euclidea Istanza: Un grafo G indiretto, completo e pesato in cui i nodi sono punti del piano Z Z e il costo di un arco è la distanza Euclidea discretizzata tra i due nodi dell arco e un intero positivo k. Domanda: Esiste un tour in G di costo minore o uguale a k? Commento: Rimane NP-completo se la distanza è L 1 oppure L. Rimane NP-difficile se la distanza è Euclidea (non discretizzata).

32 lgoritmi e Strutture di Dati II 33 Cammino di costo inferiore ad una soglia Istanza: Un grafo G con pesi interi (arbitrari), due nodi s e t di G, e un intero k. Domanda: Esiste un cammino semplice da s a t in G di costo minore o uguale a k? Commento: Il corrispondente problema di ottimizzazione (cammino di costo minimo), cioè trovare il cammino di costo minimo tra due nodi dati, rimane NP-completo. Il problema è invece polinomiale se i pesi sono positivi oppure se il grafo è aciclico.

33 lgoritmi e Strutture di Dati II 34 Cammino di costo superiore ad una soglia Istanza: Un grafo G con pesi interi, due nodi s e t di G, e un intero k. Domanda: Esiste un cammino semplice da s a t in G di costo maggiore o uguale a k? Commento: Il corrispondente problema di ottimizzazione (cammino di costo massimo), rimane NP-completo. Rimane NP-completo anche se i pesi sono positivi. Il problema è invece polinomiale se il grafo è aciclico.

34 lgoritmi e Strutture di Dati II 35 Cammino di lunghezza superiore ad una soglia Istanza: Un grafo G con pesi interi, due nodi s e t di G, e un intero k. Domanda: Esiste un cammino semplice da s a t in G di lunghezza maggiore o uguale a k? Commento: Il corrispondente problema di ottimizzazione (cammino di lunghezza massima) rimane NP-completo. Il problema è invece polinomiale se il grafo è aciclico. Il problema del cammino di lunghezza minima è invece polinomiale.

35 lgoritmi e Strutture di Dati II 36 Dal problema alla soluzione 1. studiare le proprietà del problema; 2. capire se il problema è decidibile; 3. classificare il problema in una classe di complessità; 4. scegliere le strutture per rappresentare i dati del problema; 5. scrivere un algoritmo che risolve il problema; 6. calcolare la complessità dell algoritmo; 7. verificare la correttezza dell algoritmo; 8. implementare l algoritmo in un linguaggio di programmazione; 9. confrontare empiricamente la performance del programma scritto con quella di altri programmi per lo stesso problema.

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

Problemi intrattabili

Problemi intrattabili Tempo polinomiale ed esponenziale Una Tm M ha complessita in tempo T(n) se, dato un input w di lunghezza n, M si ferma dopo al massimo T (n) passi. Problemi intrattabili Ci occuperemo solo di problemi

Dettagli

Automi e Linguaggi Formali

Automi e Linguaggi Formali Automi e Linguaggi Formali Problemi intrattabili, classi P e NP A.A. 2014-2015 Alessandro Sperduti sperduti@math.unipd.it Problemi intrattabili Ci occuperemo solo di problemi decidibili, cioè ricorsivi.

Dettagli

1) Data la seguente istanza di TSP (grafo completo con 5 nodi): c 12 = 52; c 13 = 51; c 14 = 40; c 15 = 53; c 23 = 44;

1) Data la seguente istanza di TSP (grafo completo con 5 nodi): c 12 = 52; c 13 = 51; c 14 = 40; c 15 = 53; c 23 = 44; 1) Data la seguente istanza di TSP (grafo completo con 5 nodi): c 12 = 52; c 13 = 51; c 14 = 40; c 15 = 53; c 23 = 44; c 24 = 15; c 25 = 12; c 34 = 32; c 35 = 55; c 45 = 24 Si calcoli l ottimo duale (formulazione

Dettagli

Problemi intrattabili, classi P e NP. Problemi intrattabili, classi P e NP

Problemi intrattabili, classi P e NP. Problemi intrattabili, classi P e NP roblemi intrattabili Ci occuperemo solo di problemi decidibili, cioe ricorsivi. Tra loro, alcuni sono detti trattabili, se si puo provare che sono risolvibili in tempo polinomiale in modo deterministico.

Dettagli

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

Esercizi svolti a lezione

Esercizi svolti a lezione Esercizi svolti a lezione Problema 1 In un corso di laurea sono previsti un certo numero di esami obbligatori. Esistono inoltre dei vincoli di propedeuticità: se un esame A è propedeutico ad un esame B

Dettagli

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Scopo: Stimare l onere computazionale per risolvere problemi di ottimizzazione e di altra natura

Dettagli

Complessità Computazionale

Complessità Computazionale Complessità Computazionale La teoria della Computabilità cattura la nozione di algoritmo nel senso che per ogni problema sia esso decisionale o di calcolo di funzione stabilisce dei criteri per determinare

Dettagli

Ordinamenti. Grafo : definizione. Un grafo G = (V,E)è composto da: V: insieme di vertici E V V: insieme di archi (edge) che connettono i vertici

Ordinamenti. Grafo : definizione. Un grafo G = (V,E)è composto da: V: insieme di vertici E V V: insieme di archi (edge) che connettono i vertici Ordinamenti 1 Vittorio Maniezzo Università di Bologna Grafo : definizione Un grafo G = (V,E)è composto da: V: insieme di vertici E V V: insieme di archi (edge) che connettono i vertici Un arco a= {u,v}

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

Matroidi, algoritmi greedy e teorema di Rado

Matroidi, algoritmi greedy e teorema di Rado Matroidi, algoritmi greedy e teorema di Rado per il corso di Laboratorio di Algoritmi e Ricerca Operativa Dott. Alberto Leporati / Prof.ssa Enza Messina Dipartimento di Informatica, Sistemistica e Comunicazione

Dettagli

Il Problema dell Albero Ricoprente Minimo (Shortest Spanning Tree - SST)

Il Problema dell Albero Ricoprente Minimo (Shortest Spanning Tree - SST) Il Problema dell Albero Ricoprente Minimo (Shortest Spanning Tree - SST) È dato un grafo non orientato G=(V,E). Ad ogni arco e i E, i=1,,m, è associato un costo c i 0 7 14 4 10 9 11 8 12 6 13 5 17 3 2

Dettagli

Ordinamenti. Vittorio Maniezzo Università di Bologna

Ordinamenti. Vittorio Maniezzo Università di Bologna Ordinamenti 1 Vittorio Maniezzo Università di Bologna Grafo : definizione Un grafo G = (V,E)è composto da: V: insieme di vertici E V V: insieme di archi (edge) che connettono i vertici Un arco a= {u,v}

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

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet francesc

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet   francesc Algoritmi e Strutture di Dati I 1 Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc m.franceschet@unich.it Algoritmi e Strutture di Dati I 2 Problema dell ordinamento

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Cognome................................ Nome................................... Matricola............................... Algoritmi e Strutture Dati Prova scritta del 24 febbraio 2017 TEMPO DISPONIBILE:

Dettagli

Algoritmi Avanzati Soluzioni dello scritto del 2 febbraio 2004 (appello straordinario)

Algoritmi Avanzati Soluzioni dello scritto del 2 febbraio 2004 (appello straordinario) Algoritmi Avanzati Soluzioni dello scritto del febbraio 004 (appello straordinario) 1. Tengo nascosto nel taschino della giacca un grafo misterioso di 7 nodi. Vi dico solo che listando le valenze (= numero

Dettagli

Certificati dei problemi in NP

Certificati dei problemi in NP Certificati dei problemi in NP La stringa y viene in genere denominata un certificato Un Certificato è una informazione ausiliaria che può essere utilizzata per verificare in tempo polinomiale nella dimensione

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

Appunti lezione Capitolo 13 Programmazione dinamica

Appunti lezione Capitolo 13 Programmazione dinamica Appunti lezione Capitolo 13 Programmazione dinamica Alberto Montresor 12 Novembre, 2015 1 Domanda: Fattore di crescita dei numeri catalani Vogliamo dimostrare che cresce almeno come 2 n. La nostra ipotesi

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

Esercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016

Esercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Esercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Tong Liu April 14, 2016 Elementi Fondamentali Rappresentazione n = V numero di vertici (nodi) m = E numero di archi Matrice di adiacenza:

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

PROBLEMA DEL COMMESSO VIAGGIATORE

PROBLEMA DEL COMMESSO VIAGGIATORE PROBLEMA DEL COMMESSO VIAGGIATORE INTRODUZIONE Il problema del commesso viaggiatore (traveling salesman problem :TSP) è un classico problema di ottimizzazione che si pone ogni qual volta, dati un numero

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

8.10 Algoritmi di approssimazione

8.10 Algoritmi di approssimazione 296 Capitolo 8 NP-completezza e approssimazione 8.10 Algoritmi di approssimazione Dimostrare che un problema è NP-completo significa rinunciare a progettare per esso un algoritmo polinomiale di risoluzione

Dettagli

Teoria della Complessità Computazionale

Teoria della Complessità Computazionale Teoria della Complessità Computazionale Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, 56127 Pisa laura.galli@unipi.it http://www.di.unipi.it/~galli 21 Ottobre 2014 Ricerca Operativa 2

Dettagli

Algoritmi e Strutture Dati

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

Dettagli

Algoritmi & Laboratorio

Algoritmi & Laboratorio lbero ricoprente sia dato un grafo connesso e non orientato un albero ricoprente è un sottografo che contiene tutti nodi è aciclico è connesso cknowledgement Lucidi da. Damiani, a.a. 00-00. Demetrescu

Dettagli

Algoritmi Approssimanti per -TSP

Algoritmi Approssimanti per -TSP Dispensa del corso di TAA redatta da Amati Di auro Rattà. Algoritmo 5 e APX per il problema Algoritmi Approssimanti per -TSP Definizione (TSP) Il problema del commesso viaggiatore (TSP) è definito come

Dettagli

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet Algoritmi e Strutture di Dati I 1 Algoritmi e Strutture di Dati I Massimo Franceschet Algoritmi e Strutture di Dati I 2 Problemi Un problema specifica in termini generali una relazione che intercorrere

Dettagli

Teoria della complessità

Teoria della complessità Teoria della complessità Materiale consigliato: testo del corso capitolo 34 Introduzione agli algoritmi e strutture dati T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein McGraw Hill, 2005 Denise Salvi

Dettagli

Formulazioni. Consideriamo il seguente problema di Knapsack 0-1. max (5x x 2. ) st 3x x 2. < 6 x {0,1} 2

Formulazioni. Consideriamo il seguente problema di Knapsack 0-1. max (5x x 2. ) st 3x x 2. < 6 x {0,1} 2 Formulazioni Consideriamo il seguente problema di Knapsack 0-1 max (5x 1 + 2x 2 ) st 3x 1 + 4x 2 < 6 x {0,1} 2 Insiemi ammissibili F = {(0, 0), (0, 1), (1, 0)} Rappresentiamo sul piano gli insiemi ammissibili.

Dettagli

Esercizi vari. Alberto Montresor. 19 Agosto, 2014

Esercizi vari. Alberto Montresor. 19 Agosto, 2014 Esercizi vari Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle rispettive soluzioni

Dettagli

Algoritmi e Strutture Dati. Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal

Algoritmi e Strutture Dati. Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Progettare una rete stradale Supponiamo di dover progettare una rete stradale in cui il costo di costruzione di un

Dettagli

Algoritmi & Laboratorio

Algoritmi & Laboratorio Acknowledgement Lucidi da F. Damiani, a.a. 2004-2005 C. Demetrescu et al, Algoritmi e strutture dati, McGraw-Hill M. Zacchi, a.a. 2003-2004 I lucidi non sono un sostituto per il libro di testo non contengono

Dettagli

Algoritmi e Strutture Dati

Algoritmi 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

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

Corso di Perfezionamento

Corso di Perfezionamento Programmazione Dinamica 1 1 Dipartimento di Matematica e Informatica Università di Camerino 15 febbraio 2009 Tecniche di Programmazione Tecniche di progettazione di algoritmi: 1 Divide et Impera 2 Programmazione

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

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

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. Damiano Macedonio

Cammini minimi. Damiano Macedonio Cammini minimi Damiano Macedonio mace@unive.it Copyright 2010 2012, Moreno Marzolla, Università di Bologna, Italy (http://www.moreno.marzolla.name/teaching/asd2011b/) Modifications Copyright c 2015, Damiano

Dettagli

Algoritmi e Strutture Dati

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

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Cognome................................ Nome................................... Matricola............................... Algoritmi e Strutture Dati Prova scritta del 4 luglio 207 TEMPO DISPONIBILE: 2 ore

Dettagli

Algoritmi e Strutture Dati. Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal (*)

Algoritmi e Strutture Dati. Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal (*) Algoritmi e Strutture Dati Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal (*) Progettare una rete stradale Supponiamo di dover progettare una rete stradale in cui il costo di costruzione 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

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

Aniello Murano Classe dei problemi NP. Nella lezione precedente abbiamo visto alcuni problemi che ammettono soluzione polinomiale

Aniello Murano Classe dei problemi NP. Nella lezione precedente abbiamo visto alcuni problemi che ammettono soluzione polinomiale Aniello Murano Classe dei problemi NP 13 Lezione n. Parole chiave: Classe NP Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Introduzione alla lezione Nella lezione

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

Quinto appello 27/6/ = 4. B b B = 2 b N = 4

Quinto appello 27/6/ = 4. B b B = 2 b N = 4 Quinto appello // RICERCA OPERATIVA (a.a. /) Nome: Cognome: Matricola: ) Si risolva il problema di PL dato applicando l algoritmo del Simplesso Duale, per via algebrica, a partire dalla base B {, }. Per

Dettagli

ESERCIZIO 1: Punto 1

ESERCIZIO 1: Punto 1 ESERCIZIO : Punto La seguente matrice è una matrice delle distanze di un istanza del problema del Commesso Viaggiatore. - - - - - - - Calcolare.Il valore del rilassamento che si ottiene determinando l

Dettagli

Cammini Minimi. Algoritmo di Dijkstra. Cammino in un grafo

Cammini Minimi. Algoritmo di Dijkstra. Cammino in un grafo 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

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,...) diffusione di messaggi segreti memorizzazione

Dettagli

Esercizi Capitolo 6 - Alberi binari di ricerca

Esercizi Capitolo 6 - Alberi binari di ricerca Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 9 Agosto, 204 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile

Dettagli

Cammini Minimi. Algoritmo di Dijkstra

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

Dettagli

Note per la Lezione 4 Ugo Vaccaro

Note per la Lezione 4 Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 4 Ugo Vaccaro Ripasso di nozioni su Alberi Ricordiamo che gli alberi rappresentano una generalizzazione delle liste, nel senso che

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

Figura 1: 1) Si scriva la formulazione del problema come problema di PLI (con un numero minimo di vincoli) e la matrice dei vincoli.

Figura 1: 1) Si scriva la formulazione del problema come problema di PLI (con un numero minimo di vincoli) e la matrice dei vincoli. ESERCIZIO 1 Sia dato il grafo orientato in Figura 1. Si consideri il problema di flusso a 1 2 4 Figura 1: costo minimo su tale grafo con b 1 = 4 b 2 = 2 b = b 4 = e c 12 = 2 c 1 = 4 c 14 = 1 c 2 = 1 c

Dettagli

Teoria della Complessità Concetti fondamentali

Teoria della Complessità Concetti fondamentali Teoria della Complessità Concetti fondamentali L oggetto della teoria della complessità è stabilire se un problema sia facile o difficile La difficoltà di un problema è una caratteristica generale e non

Dettagli

Teoria della Complessità Computazionale

Teoria della Complessità Computazionale Teoria della Complessità Computazionale Daniele Vigo D.E.I.S. - Università di Bologna dvigo@deis.unibo.it Rev. 1.3, 11/00 rev. 1.3 - Novembre 2000 Teoria della Complessità Studia la difficoltà dei problemi

Dettagli

Problemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04)

Problemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04) Problemi e algoritmi Il che cosa e il come Il che cosa ed il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come

Dettagli

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola: o Appello // RICERCA OPERATIVA (a.a. /) Nome: Cognome: Matricola: ) Si consideri il seguente problema di PL: max x + x x x x x x + x x Si applichi l algoritmo del Simplesso Duale, per via algebrica, a

Dettagli

Euristiche per il Problema del Commesso Viaggiatore

Euristiche per il Problema del Commesso Viaggiatore Sapienza Università di Roma - Dipartimento di Ingegneria Informatica, Automatica e Gestionale Euristiche per il Problema del Commesso Viaggiatore Renato Bruni bruni@dis.uniroma.it Il materiale presentato

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Elementi di Programmazione Dinamica Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Tecniche di Programmazione Tecniche di progettazione e

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

ESERCIZI SULLA TECNICA Greedy

ESERCIZI SULLA TECNICA Greedy ESERCIZI SULLA TECNICA Greedy 1. [FILE] Si supponga di avere n files di lunghezze l 1,..., l n (interi positivi) che bisogna memorizzare su un disco di capacità data D. Si assuma che la somma delle lunghezze

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

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

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

Gestione della produzione e della supply chain Logistica distributiva. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena

Gestione della produzione e della supply chain Logistica distributiva. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena Gestione della produzione e della supply chain Logistica distributiva Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena Un algoritmo per il flusso a costo minimo: il simplesso

Dettagli

d. Cancellazione del valore 5 e. Inserimento del valore 1

d. Cancellazione del valore 5 e. Inserimento del valore 1 Esercizio1 Si consideri un albero binario non vuoto in cui a ciascun nodo v è associato un numero reale v.val. Scrivere un algoritmo che, dato in input l'albero T e un numero reale x, restituisce true

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

Progettazione di Algoritmi - lezione 19

Progettazione di Algoritmi - lezione 19 Progettazione di Algoritmi - lezione 19 Discussione dell'esercizio [viaggio] Un viaggio in auto prevede n tappe. Gli interi d i, 1 i < n rappresentano il numero di litri di benzina necessari per spostarsi

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

Parte IV: Matrici totalmente unimodulari

Parte IV: Matrici totalmente unimodulari Parte IV: Matrici totalmente unimodulari Formulazioni Consideriamo il seguente problema di Knapsack 0-1 max (5x 1 + 2x 2 ) st 3x 1 + 4x 2 < 6 x {0,1} 2 Insiemi ammissibili F = {(0, 0), (0, 1), (1, 0)}

Dettagli

Programmazione Dinamica (PD)

Programmazione Dinamica (PD) Programmazione Dinamica (PD) Altra tecnica per risolvere problemi di ottimizzazione, piu generale degli algoritmi greedy La programmazione dinamica risolve un problema di ottimizzazione componendo le soluzioni

Dettagli

Massimo flusso e matching

Massimo flusso e matching Capitolo Massimo flusso e matching. Problema del massimo matching. Nel problema del massimo matching è dato un grafo non orientato G(V, A); un matching in G è un insieme di archi M A tale che nessuna coppia

Dettagli

Nozioni di base (II Parte)

Nozioni di base (II Parte) Nozioni di base (II Parte) 1 Ricorsione [GTG14, Par. 5.1-5.4 and 13.1] Algoritmo Ricorsivo: algoritmo che invoca se stesso (su istanze sempre più piccole) sfruttando la nozione di induzione. La soluzione

Dettagli

Note sulle classi di complessità P, NP e NPC per ASD (DRAFT)

Note 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

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

PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Il costo di cammino minimo da un vertice u ad un vertice v è definito nel seguente modo:

PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Il costo di cammino minimo da un vertice u ad un vertice v è definito nel seguente modo: PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Sia G = (V,E) un grafo orientato ai cui archi è associato un costo W(u,v). Il costo di un cammino p = (v 1,v 2,...,v k ) è la somma dei costi degli archi

Dettagli

Ricerca Operativa 2. Ricerca Operativa 2 p. 1/6

Ricerca Operativa 2. Ricerca Operativa 2 p. 1/6 Ricerca Operativa 2 Ricerca Operativa 2 p. 1/6 Introduzione In questo corso ci occuperemo di problemi di ottimizzazione. Tali problemi sono tipicamente raggruppati in classi ognuna delle quali è formata

Dettagli

INSTRADAMENTO: ALGORITMO DI KRUSKAL

INSTRADAMENTO: ALGORITMO DI KRUSKAL UNIVERSITA' DEGLI STUDI DI BERGAMO Dipartimento di Ingegneria INSTRADAMENTO: ALGORITMO DI KRUSKAL FONDAMENTI DI RETI E TELECOMUNICAZIONE A.A. 2012/13 - II Semestre Esercizio 1 Sia dato il grafo G= (N,

Dettagli

Ricerca Operativa 2. Ricerca Operativa 2 p. 1/6

Ricerca Operativa 2. Ricerca Operativa 2 p. 1/6 Ricerca Operativa 2 Ricerca Operativa 2 p. 1/6 Introduzione In questo corso ci occuperemo di problemi di ottimizzazione. Ricerca Operativa 2 p. 2/6 Introduzione In questo corso ci occuperemo di problemi

Dettagli

Esercizi Union-Find e su Grafi. Ugo Vaccaro

Esercizi Union-Find e su Grafi. Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 0 07 Esercizi Union-Find e su Grafi. Ugo Vaccaro. Esercizio: Scrivere pseudocodice per Make-Set, Union, e Find-Set usando la rappresentazione attraverso liste

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

Algoritmi Euristici. Molti problemi reali richiedono soluzioni algoritmiche

Algoritmi Euristici. Molti problemi reali richiedono soluzioni algoritmiche 9 Algoritmi Euristici introduzione Vittorio Maniezzo Università di Bologna 1 Molti problemi reali richiedono soluzioni algoritmiche I camion devono essere instradati VRP, NP-hard I depositi o i punti di

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

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi Ricorsivi e Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 I conigli di Fibonacci Ricerca Binaria L isola dei conigli

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi Ricorsivi e Ricorrenze Maria Rita Di Berardini 2, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 2 Polo di Scienze Università di Camerino ad Ascoli Piceno

Dettagli

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 4

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 4 Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005 Docente: Ugo Vaccaro Lezione 4 In questa lezione deriveremo un algoritmo di approssimazione per il seguente problema. Approfitteremo dell

Dettagli

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 2 OTTIMIZZAZIONE SU GRAFI E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Molti problemi decisionali possono essere formulati utilizzando il linguaggio della teoria dei grafi. Esempi: - problemi di

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

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Capitolo 13 Cammini minimi: Ordinamento topologico Grafo pesato: è un grafo G=(V,E,w) in cui ad ogni arco viene associato un valore definito dalla funzione peso w (definita su

Dettagli

Soluzioni della settima esercitazione di Algoritmi 1

Soluzioni della settima esercitazione di Algoritmi 1 Soluzioni della settima esercitazione di Algoritmi 1 Beniamino Accattoli 19 dicembre 2007 1 Grafi Un grafo è non orientato se descrivendo un arco come una coppia di vertici (i,j) l ordine è ininfluente

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