Algoritmi e Strutture Dati

Slides:



Advertisements
Presentazioni simili
Il problema della ricerca Algoritmi e Strutture Dati.
Advertisements

Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti ottimi.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Unintroduzione.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
Il problema della ricerca Algoritmi e Strutture Dati.
Il problema della ricerca Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Il problema.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Alberi AVL (Adelson-Velskii.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Usa la tecnica del.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Alberi AVL (Adelson-Velskii.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Diremo che f(n) =
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati Luciano Gualà
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Capitolo 13 Cammini minimi: Algoritmo di Floyd e Warshall Algoritmi e Strutture Dati.
Capitolo 8 Code con priorità Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 8 Code con.
Il problema della ricerca Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Un’introduzione.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Soluzione esercizio.
Capitolo 9 Union-find Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Un’introduzione.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Soluzione esercizio.
1 Ordinamento (Sorting) Input: Sequenza di n numeri Output: Permutazione π = tale che: a i 1  a i 2  ……  a i n Continuiamo a discutere il problema dell’ordinamento:
Capitolo 13 Cammini minimi: Bellman e Ford Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
Il problema della ricerca Algoritmi e Strutture Dati.
Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Il problema.
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Progettare algoritmi.
Capitolo 6 Il problema del dizionario Algoritmi e Strutture Dati.
Complessità Computazionale
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Sesta giornata Risolvere efficientemente un problema in P: Il problema dell’ordinamento: Insertion.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento: lower bound Ω(n log n) e MergeSort ((*) l’intera lezione) Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Un’introduzione.
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Algoritmi e Strutture Dati
Transcript della presentazione:

Algoritmi e Strutture Dati Analisi di algoritmi ricorsivi: Il Teorema master (*)

Teorema Master a T(n/b) + f(n) se n>1 T(n) = Θ(1) se n=1 Permette di analizzare algoritmi basati sulla tecnica del divide et impera: - dividi il problema (di dimensione iniziale n) in a≥1 sottoproblemi di dimensione n/b, b>1 - risolvi i sottoproblemi ricorsivamente ricombina le soluzioni Sia f(n) il tempo per dividere e ricombinare istanze di dimensione n. La relazione di ricorrenza è data da: a T(n/b) + f(n) se n>1 Θ(1) se n=1 T(n) = Copyright © 2004 - The McGraw - Hill Companies, srl

Esempio: algoritmo fibonacci6 a=1, b=2, f(n)=Θ(1) Copyright © 2004 - The McGraw - Hill Companies, srl

Esempio: algoritmo di ricerca binaria a=1, b=2, f(n)=Θ(1) Copyright © 2004 - The McGraw - Hill Companies, srl

a f(n/b)≤ c f(n) per qualche c<1 ed n sufficientemente grande) Teorema Master La relazione di ricorrenza: a T(n/b) + f(n) se n>1 Θ(1) se n=1 T(n) = ha soluzione: 1. T(n) = Q(n ) se f(n)=O(n ) per qualche e>0 logba logba - e 2. T(n) = Q(n log n) se f(n) = Q(n ) logba logba + e 3. T(n) = Q(f(n)) se f(n)=W(n ) per qualche e>0 (ma sotto l’ulteriore ipotesi che f(n) soddisfi la condizione di regolarità: a f(n/b)≤ c f(n) per qualche c<1 ed n sufficientemente grande) Copyright © 2004 - The McGraw - Hill Companies, srl

Dimostrazione del caso 1 Albero della ricorsione Copyright © 2004 - The McGraw - Hill Companies, srl

Proprietà dell’albero della ricorsione Proprietà 1: il numero di nodi a livello i dell’albero della ricorsione è ai (ricorda che la radice è a livello 0) Proprietà 2: i sottoproblemi a livello i dell’albero della ricorsione hanno dimensione n/bi Proprietà 3: il contributo al tempo di esecuzione di un nodo a livello i (escluso tempo chiamate ricorsive) è f(n/bi) Proprietà 4: il numero di livelli dell’albero è (circa) logb n logb n T(n)= ai f(n/bi) i=0 Copyright © 2004 - The McGraw - Hill Companies, srl

…quindi, nel caso 1 Inoltre, T(n) a (ultimo termine della sommatoria) = n = Ω(n ), da cui la tesi. I casi 2 e 3 possono essere mostrati in modo analogo. QED logb n logb a Copyright © 2004 - The McGraw - Hill Companies, srl

Esempi (per tutti assumiamo T(1)=Q(1)) 1) T(n) = 2T(n/2) + n a=2, b=2, f(n)=n=Q(n ) caso 2 TM T(n)=Q(n log n) = Q(n log n) log22 log22 2) T(n) = 3T(n/9) + 7 a=3, b=9, f(n)=7=O(n ) caso 1 TM T(n) =Q(n )=Q(√n) log93 - e log93 3) T(n) = 3T(n/9) + n a=3, b=9, f(n)=n=W(n ) caso 3 del TM log93 + e inoltre 3(n/9)≤ c n per c=1/3 T(n)=Q(n) Copyright © 2004 - The McGraw - Hill Companies, srl

Esempi T(n) = 2T(n/2)+n log n a=2, b=2 e quindi ovviamente non ricade nel caso 1 perché f(n)=n log n ≠ O(n )  O(n ) inoltre f(n) ≠ Θ (n ), e quindi non ricade nel caso 2, infine non esiste alcun  > 0 per cui f(n)=W(n )W(n1+) (infatti, per ogni  > 0 ) log22- 1- log22 log22+ non si può applicare il teorema Master! Copyright © 2004 - The McGraw - Hill Companies, srl

Upper e lower bound di un algoritmo e di un problema

Delimitazioni superiori (upper bound) Definizione (complessità di un algoritmo) Un algoritmo A ha costo di esecuzione O(g(n)) su istanze di dimensione n e rispetto ad una certa risorsa di calcolo (spazio o tempo), se la quantità f(n) di risorsa sufficiente per eseguire A su qualunque istanza di dimensione n (e quindi in particolare anche nel caso peggiore) verifica la relazione f(n)=O(g(n)). Definizione (upper bound di un problema) Un problema P ha una delimitazione superiore alla complessità O(g(n)) rispetto ad una certa risorsa di calcolo (spazio o tempo) se esiste un algoritmo che risolve P il cui costo di esecuzione rispetto a quella risorsa è O(g(n)). Copyright © 2004 - The McGraw - Hill Companies, srl

Delimitazioni inferiori (lower bound) Definizione Un algoritmo A ha costo di esecuzione (g(n)) su istanze di dimensione n e rispetto ad una certa risorsa di calcolo (spazio o tempo), se la quantità f(n) di risorsa necessaria per eseguire A nel caso peggiore (e quindi non è detto che debba essere necessaria per ogni istanza di dimensione n: istanze facili potrebbero richiedere meno risorse!) verifica la relazione fworst(n)= (g(n)). Definizione (lower bound o complessità intrinseca di un problema) Un problema P ha una delimitazione inferiore alla complessità (g(n)) rispetto ad una certa risorsa di calcolo (spazio o tempo) se ogni algoritmo che risolve P ha costo di esecuzione (g(n)) rispetto a quella risorsa. Copyright © 2004 - The McGraw - Hill Companies, srl

Ottimalità di un algoritmo Definizione Dato un problema P con complessità intrinseca (g(n)) rispetto ad una certa risorsa di calcolo (spazio o tempo), un algoritmo che risolve P è ottimo (in termini di complessità asintotica, ovvero a meno di costanti moltiplicative e di termini additivi/sottrattivi di “magnitudine” inferiore) se ha costo di esecuzione O(g(n)) rispetto a quella risorsa. Copyright © 2004 - The McGraw - Hill Companies, srl

Convenzioni Se scriverò che un algoritmo ha complessità T(n) = O(g(n)), intenderò che su ALCUNE istanze costerà Θ(g(n)), ma sulle rimanenti costerà o(g(n). Se scriverò che un algoritmo ha complessità T(n)=Θ(g(n)), intenderò che su TUTTE le istanze costerà Θ(g(n)) Da ora in poi, quando parlerò di UB di un problema, mi riferirò alla complessità del MIGLIORE ALGORITMO che sono stato in grado di progettare sino a quel momento (ovvero, quello con minore complessità nel caso peggiore). Da ora in poi, quando parlerò di LB di un problema, mi riferirò alla PIÙ GRANDE delimitazione inferiore che sono stato in grado di dimostrare sino a quel momento. Copyright © 2004 - The McGraw - Hill Companies, srl

Alcuni esempi L’algoritmo di ricerca sequenziale di un elemento in un insieme non ordinato di n elementi costa T(n) = O(n), in quanto su alcune istanze costa Θ(n), mentre su altre costa o(n) Ovviamente, per quanto sopra, l’upper bound del problema della ricerca di un elemento in un insieme non ordinato di n elementi è pari a O(n) Si osservi ora che il lower bound del problema della ricerca di un elemento in un insieme non ordinato di n elementi è pari a Ω(n): infatti, ogni algoritmo di risoluzione deve per forza di cose guardare tutti gli elementi dell’insieme per decidere se l’elemento cercato appartiene o meno ad esso! l’algoritmo di ricerca sequenziale è ottimo! Copyright © 2004 - The McGraw - Hill Companies, srl

Alcuni esempi (2) L’algoritmo Fibonacci4 per il calcolo dell’n-esimo numero della sequenza di Fibonacci costa T(k=log n) = Θ(2k=n), in quanto su tutte le istanze costa sempre Θ(2k=n) L’algoritmo Fibonacci6 per il calcolo dell’n-esimo numero della sequenza di Fibonacci costa T(k=log n) = Θ(k=log n), in quanto su tutte le istanze costa sempre Θ(k=log n) Ovviamente, per quanto sopra, l’upper bound del problema del calcolo dell’n-esimo numero della sequenza di Fibonacci è pari a O(log n) Si osservi ora che il lower bound del problema del calcolo dell’n-esimo numero della sequenza di Fibonacci è pari a Ω(1): infatti, ogni algoritmo di risoluzione deve per forza di cose leggere l’input, al costo di 1 operazione, ma non sono in grado di definire altre operazioni necessarie a tutti gli algoritmi! l’algoritmo Fibonacci6 non è ottimo! Copyright © 2004 - The McGraw - Hill Companies, srl