La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 11: Strutture di dati e Progettazione Algoritmi Alberto Montresor Università di Trento This work.

Presentazioni simili


Presentazione sul tema: "1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 11: Strutture di dati e Progettazione Algoritmi Alberto Montresor Università di Trento This work."— Transcript della presentazione:

1 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 11: Strutture di dati e Progettazione Algoritmi Alberto Montresor Università di Trento This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this license, visit or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.

2 2 © Alberto Montresor Introduzione Dato un problema Non ci sono ricette generali per risolverlo in modo efficiente Tuttavia, è possibile evidenziare quattro fasi Classificazione del problema Caratterizzazione della soluzione Tecnica di progetto Utilizzo di strutture dati Note Non sono fasi strettamente sequenziali

3 3 © Alberto Montresor Classificazione di un problema Fa parte di una classe più ampia di problemi? Problemi decisionali: Il dato di ingresso soddisfa una certa proprietà? Soluzione: risposta sì/no Es: Stabilire se un grafo è connesso Problemi di ricerca: Spazio di ricerca: insieme di soluzioni possibili Soluzione ammissibile: soluzione che rispetta certi vincoli Es: posizione di una sottostringa in una stringa

4 4 © Alberto Montresor Introduzione Problemi di ottimizzazione: Ogni soluzione è associata ad una funzione di costo Vogliamo trovare la soluzione di costo minimo Es: cammino più breve fra due nodi Problemi di approssimazione: A volte, trovare la soluzione ottima è computazionalmente impossibile Ci si accontenta di una soluzione approssimata: costo basso, ma non sappiamo se ottimo Es: problema del commesso viaggiatore

5 5 © Alberto Montresor Caratterizzazione della soluzione Definire la soluzione dal punto di vista matematico Spesso la formulazione è banale ma può suggerire una prima idea di soluzione Es: Selection Sort: Data una sequenza di n elementi, una permutazione ordinata è data dal minimo seguita da una permutazione ordinata dei restanti n-1 elementi Le caratteristiche matematiche della soluzione possono suggerire una possibile tecnica Esempio: sottostruttura ottima programmazione dinamica

6 6 © Alberto Montresor Problema cammini minimi Input Grafo orientato G=(V,E) Un nodo di partenza r Funzione di peso w: E R Definizione Dato un cammino c = v 1,v 2,..., v k con k > 1, il costo del cammino è dato da Output Trovare un cammino da r ad u, per ogni nodo u V, il cui costo sia minimo, ovvero più piccolo o uguale del costo di qualunque altro cammino da r a u.

7 7 © Alberto Montresor Prospettiva Cammini minimi da sorgente unica Input: nodo radice r Output: i cammini minimi che vanno da r a tutti gli altri nodi v Cammino minimo tra una coppia di vertici Input: una coppia di vertici r, d Output: un cammino minimo fra r e d Si risolve il primo problema e si estrae il cammino richiesto. Non si conoscono algoritmi che abbiano tempo di esecuzione migliore. Cammini mimimi tra tutte le coppie di vertici Input: il grafo. Output: i cammini minimi fra tutte le coppie di vertici. Programmazione dinamica

8 8 © Alberto Montresor Problema cammini minimi Come descrivere loutput: Si noti che due cammini minimi possono avere un tratto comune: Non possono convergere in un nodo comune s dopo aver percorso un tratto iniziale distinto Quindi, una soluzione ammissibile altro non è che un albero di copertura, radicato in r, che include un cammino da r ad ogni altro nodo. rs u v rs u v s

9 9 © Alberto Montresor Esempio Nella figura un grafo con un ciclo negativo un grafo senza cicli negativi una soluzione ammissibile per G 2 una soluzione ottima per G 2 Esempio di pesi negativi Proprietario TIR Viaggiare carico profitto Peso negativo Viaggiare scarico perdita Peso positivo

10 10 © Alberto Montresor Caratterizzazione matematica soluzione Definizione Sia T una soluzione ammissibile. Ogni nodo u è caratterizzato da un valore d u, che indica la distanza di u da r in T, uguale al costo del cammino fra r ed u in T Quali caratteristiche devono avere le distanze affinché T sia una soluzione ottima? Teorema di Bellman Una soluzione ammissibile T è ottima se e solo se valgono le seguenti condizioni: d v = d u + w(u,v) per ogni arco (u,v) T d v d u + w(u,v) per ogni arco (u,v) E Dimostrazione

11 11 © Alberto Montresor Programma prototipo Note Se al termine dellesecuzione qualche nodo mantiene una distanza infinita, esso non è raggiungibile da r Come implementare la condizione ?

12 12 © Alberto Montresor Programma prototipo - maggiori dettagli

13 13 © Alberto Montresor Programma prototipo - maggiori dettagli

14 14 © Alberto Montresor Algoritmo di Dijkstra (1959) Struttura dati Coda con priorità, realizzata tramite vettore / lista non ordinati

15 15 © Alberto Montresor Algoritmo di Dijkstra (1959)

16 16 © Alberto Montresor Algoritmo di Dijkstra Ipotesi: tutti i pesi sono positivi Ogni nodo viene estratto una e una sola volta Al momento dellestrazione la sua distanza è minima Costo totale: O(n 2 ) CostoRipetizioni Riga (1): O(n) 1 Riga (2): O(n)O(n) Riga (3): O(1)O(n) Riga (4): O(1)O(m)

17 17 © Alberto Montresor Algoritmo di Johnson (1977) Struttura dati Coda con priorità, realizzata tramite Heap binario

18 18 © Alberto Montresor Algoritmo di Johnson Ipotesi: tutti i pesi sono positivi Ogni nodo viene estratto una e una sola volta Al momento dellestrazione la sua distanza è minima Costo totale: O(m log n) CostoRipetizioni Riga (1): O(n) 1 Riga (2): O(log n)O(n) Riga (3): O(log n)O(n) Riga (4): O(log n)O(m)

19 19 © Alberto Montresor Algoritmo di Fredman-Tarjan (1987) Struttura dati Coda con priorità, realizzata tramite Heap di Fibonacci

20 20 © Alberto Montresor Algoritmo di Fredman-Tarjan (1987) Ipotesi: tutti i pesi sono positivi Ogni nodo viene estratto una e una sola volta Al momento dellestrazione la sua distanza è minima Costo totale: O(m + n log n) CostoRipetizioni Riga (1): O(n) 1 Riga (2): O(log n)O(n) Riga (3): O(log n)O(n) Riga (4): O(1)O(m)

21 21 © Alberto Montresor Algoritmo di Bellman - Ford - Moore (1958) Struttura dati Coda

22 22 © Alberto Montresor Algoritmo di Bellman - Ford - Moore (1958) Funziona anche con pesi negativi Ogni nodo viene estratto al massimo n-1 volte Passata - definizione ricorsiva per k = 0, la zeresima passata consiste nellestrazione del nodo r dalla coda S ; per k > 0, la k -esima passata consiste nellestrazione di tutti i nodi presenti in S al termine della passata ( k 1)-esima. Passata k - cammini di lunghezza k Costo totale: O(mn) CostoRipetizioni Riga (1): O(1) 1 Riga (2): O(1)O(n 2 ) Riga (3): O(1)O(mn)

23 23 © Alberto Montresor Algoritmo di Pape - DEsopo (1974) Struttura dati DeQueue

24 24 © Alberto Montresor Algoritmo di Pape - DEsopo (1974) Tempo di calcolo In generale, superpolinomiale In pratica, veloce per grafi che rappresentano reti di circolazione stradale


Scaricare ppt "1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 11: Strutture di dati e Progettazione Algoritmi Alberto Montresor Università di Trento This work."

Presentazioni simili


Annunci Google