Algoritmi (9 CFU) (A.A )
|
|
|
- Gianmaria Santi
- 9 anni fa
- Visualizzazioni
Transcript
1 Algoritmi (9 CFU) (A.A ) Equazioni di ricorrenza Prof. V. Cutello Algoritmi 1
2 Overview Definiamo cos è una ricorrenza Introduciamo 3 metodi per risolvere equazioni di ricorrenza Sostituzione e Telescoping Albero di ricorsione Teorema Master Esempi ed Esercizi Prof. V. Cutello Algoritmi 2
3 Definizione Una ricorrenza è una equazione o disequazione che descrive una funzione in termini dei suoi valori su input più piccoli. MERGE-SORT T(n) = Θ(1) se n=1 2T(n/2) + Θ(n) se n>1 Prof. V. Cutello Algoritmi 3
4 Tecnicismi Assumiamo che le variabili assumano solo valori interi MERGE-SORT T(n) = Θ(1) if n=1 T( n/2 ) + T( n/2 ) + Θ(n) if n>1 Per semplicità, ignoriamo floor e ceiling insignificanti per i nostri discorsi Prof. V. Cutello Algoritmi 4
5 Tecnicismi Condizioni al contorno (piccoli valori di n) sono pure ignorati, così come costanti moltiplicative o additive T(n) = 2T(n/2) + Θ(n) Assumiamo che i valori di T(n) siano piccole costanti per piccoli valori di n Prof. V. Cutello Algoritmi 5
6 Metodo di Sostituzione Due passi: Indovina la soluzione. Usa l induzione matematica per trovare le costanti e dimostrare che quella è la soluzione. Problema: si applica solo se si è in grado di indovinare la soluzione. Prof. V. Cutello Algoritmi 6
7 Metodo di Sostituzione Esempio: T(n) = 2T( n/2 ) + n Indovino: T(n) = O(n lg n) Dimostro per induzione: T(n) cn lg n per qualche costante c>0. Prof. V. Cutello Algoritmi 7
8 Dimostrazione induttiva Non ci preoccupiamo del caso base e assumiamo che vale: T(1) = Θ(1) Ipotesi induttiva: Per valori di n < k la diseguaglianza vale, i.e., T(n) cn lg n Dimostriamo che vale anche per n = k. Prof. V. Cutello Algoritmi 8
9 Dimostrazione induttiva In particolare, per n = k/2, vale che T( k/2 ) c k/2 lg k/2 La ricorrenza ci dice: T(k) = 2T( k/2 ) + k Sostituendo otteniamo: T(k) 2[c k/2 lg k/2 ] + k Prof. V. Cutello Algoritmi 9
10 Dimostrazione induttiva Le funzioni sono non-decrescenti quindi togliamo il floor e otteniamo: T(k) 2[c (k/2) lg (k/2)] + k Che si semplifica: T(k) ck (lg k lg 2) + k e, dal momento che lg 2 = 1, abbiamo: T(k) ck lg k ck + k = ck lg k + (1 c)k Quindi se c 1, T(k) ck lg k. c.v.d. Prof. V. Cutello Algoritmi 10
11 Sostituzione di variabili Esempio: T(n) = 2T( n ) + log n Ignoriamo arrotondamenti,poniamo m = lg n e otteniamo: T(2 m ) = 2T(2 m/2 )+m Poniamo S(m)=T(2 m ) e otteniamo: S(m) 2S(m/2)+m Soluzione S(m)=O(m log m) e quindi T(n)=T(2m)=O(m log m) = O(log n log log n) Prof. V. Cutello Algoritmi 11
12 Telescoping Equazioni di ricorrenza del tipo: T(n) = T(n-1) + f(n) Si risolvono: T(n) = i=1 n f(i) Esempio: T(n) = T(n-1) + n T(n) = i=1 n f(i)= i=1 n i=n(n+1)/2 Prof. V. Cutello Algoritmi 12
13 Mettiamo assieme il tutto Equazioni di ricorrenza del tipo: T(n) = at(n/b) + f(n) Si risolvono: n=b m ovvero m = log b n S(m)=T(b m ) -> S(m)=aS(m-1)+f(b m ) R(m)=S(m)/a m -> R(m)=R(m-1)+ f(b m )/a m R(m)= i=0 m f(b i )/a i T(n)=a m i=0 m f(b i )/a i Prof. V. Cutello Algoritmi 13
14 Esempio: Equazioni di ricorrenza del tipo: T(n) = 3T(n/2) + n n=2 m ovvero m = log 2 n R(m)= i=0 m 2 i /3 i 3 S(m) 3 3 m T(n) 3 3 log 2n = O(n log 23 ) Prof. V. Cutello Algoritmi 14
15 Lemma 1 Equazioni di ricorrenza del tipo T(n) = at(n/a + k) + n, k costante, a > 1 Allora, T(n)=Θ(n log n). DIM per induzione: A. T(n) T (n)=at (n/a)+n=θ(n log n) B. T(n) c (n log a n + n) T(n) ac[((n+ak)/a)log((n+ak)/a)+(n+ak)/a]+n= c(n+ak)log((n+ak)/a)+c(n+ak)+n= c(n+ak)log(n+ak)+n= cn log(n+ak)+cak log(n+ak)+n (?)cn log n +cn Prof. V. Cutello Algoritmi 15
16 Lemma 1 (continua) cn(log(n+ak)-log n) (c-1)n- cak log (n+ak) a c g(n-1) + f(n) cn(log(n+ak)-log n) (c-1)n- cak log (n+ak) cn log[(n+ak)/n] (c-1)n- cak log (n+ak) Osserviamo che cn log[(n+ak)/n]=cn log[1+ ak/n] cak (c-1)n - cak log (n+ak) +, per c > 1 Quindi per n sufficientemente grandi la disequazione vale. Cvd. Prof. V. Cutello Algoritmi 16
17 Metodo dell albero di ricorsione Tecnica semplice per calcolare un upper bound Da dimostrare poi per unduzione Albero di ricorsione: rappresentazione visiva delle chiamate ricorsive dove ad ogni nodo associamo il costo del lavoro esterno. Prof. V. Cutello Algoritmi 17
18 Metodo dell albero di ricorsione T(n) = 3T( n/4 ) + Θ(n 2 ) Prof. V. Cutello Algoritmi 18
19 Metodo dell albero di ricorsione T(n) = 3T( n/4 ) + Θ(n 2 ) Prof. V. Cutello Algoritmi 19
20 Metodo dell albero di ricorsione T(n) = 3T( n/4 ) + Θ(n 2 ) Prof. V. Cutello Algoritmi 20
21 Metodo dell albero di ricorsione T(n) = 3T( n/4 ) + Θ(n 2 ) Prof. V. Cutello Algoritmi 21
22 Metodo dell albero di ricorsione Mettendo assieme tutti i costi: T(n) = Σ(3/16) i cn 2 + Θ(n log 43 ) i=0 T(n) log 4 n 1 Σ i=0 (3/16) i cn 2 + o(n) T(n) (1/(1 3/16))cn 2 + o(n) T(n) (16/13)cn 2 + o(n) T(n) = O(n 2 ) Prof. V. Cutello Algoritmi 22
23 Metodo dell albero di ricorsione T(n) = T(n/3) + T(2n/3) + O(n) Prof. V. Cutello Algoritmi 23
24 Metodo dell albero di ricorsione Stima del costo totale: T(n) = log Σ 3/2 n 1 i=0 cn Dimostriamo quindi che T(n) = O(n lg n) Prof. V. Cutello Algoritmi 24
25 Metodo di Sostituzione Ricorrenza: T(n) = T(n/3) + T(2n/3) + cn Indovino: T(n) = O(n lg n) Dimostro per induzione: T(n) dn lg n per qualche d>0 Prof. V. Cutello Algoritmi 25
26 Dimostrazione induttiva Non ci preoccupiamo del caso base Ipotesi induttiva: Per valori di n < k la diseguaglianza vale, i.e., T(n) dn lg n Dimostriamolo allor per n = k as well. In particolare, l ipotesi induttiva vale per i valori n = k/3, e n = 2k/3, Prof. V. Cutello Algoritmi 26
27 Dimostrazione induttiva Quindi T(k/3) d k/3 lg k/3 T(2k/3) d 2k/3 lg 2k/3 Ricordando la ricorrenza : T(k) = T(k/3) + T(2k/3) + ck E sostituendo abbiamo: T(k) [d (k/3) lg (k/3)] + [d (2k/3) lg (2k/3)] + ck Prof. V. Cutello Algoritmi 27
28 Dimostrazione induttiva Quindi T(k) [d (k/3) lg k d (k/3) lg 3] + [d (2k/3) lg k d (2k/3) lg(3/2)] + ck Da cui otteniamo: T(k) dk lg k d[(k/3) lg3 + (2k/3) lg(3/2)] +ck T(k) dk lg k dk[lg 3 2/3] + ck Ponendo d c/(lg3 (2/3)), abbiamo T(k) dk lg k Prof. V. Cutello Algoritmi 28
29 Metodo del Teorema Master Risolve tutta una classe di ricorrenze Ricorrenze che devono essere della forma: T(n) = at(n/b) + f(n) con a 1 e b>1 costanti e f(n) funzione (asintoticamente) positiva. Prof. V. Cutello Algoritmi 29
30 Metodo del Teorema Master Teorema: Data l equazione di ricorrenza: T(n) = at(n/b) + f(n) 1. Se f(n) = O(n log ba ε ) per qualche ε>0, allora T(n) = Θ(n log ba ) 2. Se f(n) = Θ(n log ba ), allora T(n) = Θ(n log ba lg n) Prof. V. Cutello Algoritmi 30
31 Metodo del Teorema Master 3. Se f(n) = Ω(n log ba+ε ) per qualche ε>0, e se af(n/b) cf(n) per qualche costante c<1 e n sufficientemente grande, allora T(n) = Θ(f(n)) Prof. V. Cutello Algoritmi 31
32 T.M. Caso 2 generalizzato Se f(n) = Θ(n log ba log b n k ), per k 0, allora T(n) = Θ(n log ba lg n k+1 ) Prof. V. Cutello Algoritmi 32
33 Esempio Consideriamo la ricorrenza: Risolviamolo con l albero di ricorsione Quale caso del teorema master si applica? Prof. V. Cutello Algoritmi 33
34 Albero di ricorsione Ecco l albero: Prof. V. Cutello Algoritmi 34
35 Somma dei costi esterni otteniamo: Serie geometrica convergente, T(n) = Θ(n 2 ) Prof. V. Cutello Algoritmi 35
36 Calcolo esatto abbiamo: Usando le formule per le serie geometriche Prof. V. Cutello Algoritmi 36
37 Calcolo esatto quindi: Prof. V. Cutello Algoritmi 37
38 E adesso Esercizi Prof. V. Cutello Algoritmi 38
39 Esercizi (problema 4.1) T(n)=2T(n/2)+n 3. 3 o caso del T.M. T(n)=Θ(n 3 ) T(n)=T(9n/10)+n. 3 o caso del T.M. T(n)=Θ(n) T(n)=16T(n/4)+n 2. 2 o caso del T.M. T(n)=Θ(n 2 log n) T(n)=7T(n/3)+n 2. 3 o caso del T.M. T(n)=Θ(n 2 ) T(n)=7T(n/2)+n 2. 1 o caso del T.M. T(n)=Θ(n log 7 ) Prof. V. Cutello Algoritmi 39
40 Esercizi (problema 4.1) T(n)=2T(n/4)+ n. 2 o caso del T.M. T(n)=Θ( n log n) T(n)=T(n-1)+n. Albero di ricorsione (telescoping) T(n)=Θ(n 2 ) T(n)=T( n)+1. Sostituzione di variabili (n=2 m ) T(n)=Θ(log log n) Prof. V. Cutello Algoritmi 40
41 Esercizi (problema 4.4) T(n)=3T(n/2)+nlog n. 1 o caso del T.M. T(n)=Θ(n log 3 ) T(n)=5T(n/5)+n/log n. Sostituzione di variabili (n=5 m ) T(n)=Θ(n log log n) T(n)=4T(n/2)+n 2 n. 3 o caso del T.M. T(n)=Θ(n 2 n) T(n)=3T(n/3 + 5)+ n/2. Lemma 1 T(n)=Θ(n log n) T(n)=2T(n/2)+n/log n. Sostituzione di variabili (n=2 m ) T(n)=Θ(n log log n) Prof. V. Cutello Algoritmi 41
42 Esercizi (problema 4.4) T(n)=T(n/2)+T(n/4)+T(n/8) + n. Albero di ricorsione e dim. per ind. T(n)=Θ(n) T(n)=T(n-1)+1/n. Serie armonica (telescoping) T(n)=Θ(log n) T(n)=T(n-1)+log n. Telescoping T(n)=Θ(n log n) T(n)=T(n-2)+2log n. Telescoping e sostituzione di variabili (n=2k) T(n)=Θ(n log n) T(n)= nt( n)+n. Sostituzione di variabili (n=2 m ) T(n)=Θ(n log log n) Prof. V. Cutello Algoritmi 42
Algoritmi e strutture dati. Analisi di algoritmi Funzioni di costo, notazione asintotica
Algoritmi e strutture dati Analisi di algoritmi Funzioni di costo, notazione asintotica Alberto Montresor Università di Trento 2016/09/11 This work is licensed under a Creative Commons Attribution-ShareAlike
Algoritmi e Strutture Dati
Analisi asintotica e Ricorrenze Esercizi Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Notazioni O, Ω e Θ Parte I Notazioni
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
Tecniche Algoritmiche: divide et impera
Tecniche Algoritmiche: divide et impera Una breve presentazione F. Damiani - Alg. & Lab. 04/05 Divide et impera (o Divide and conquer) Per regnare occorre tenere divisi i nemici e trarne vantaggio F. Damiani
Macchina RAM. Modelli di calcolo e metodologie di analisi. Linguaggio di una macchina RAM. Algoritmi e Strutture Dati. Istruzioni.
Algoritmi e Strutture Dati Macchina RAM Nastro di ingresso Modelli di calcolo e metodologie di analisi Contatore istruzioni Programm a Accumulatore Unità centrale M[0] M[1] Nastro di uscita Basato su materiale
Esercizi per il corso di Algoritmi
1 Esercizi per il corso di Algoritmi Esercizi sulle Notazioni Asintotiche 1. Esercizio: In ciascuno dei seguenti casi, indicare se f(n) = O(g(n)), o se f(n) = Ω(g(n)), oppure entrambi (nel cui caso occorre
Algoritmi e Strutture Dati. Luciano Gualà
Algoritmi e Strutture Dati Luciano Gualà [email protected] www.mat.uniroma2.it/~guala Esercizio Analizzare la complessità nel caso medio del primo algoritmo di pesatura (Alg1) presentato nella prima
5) Equazioni di ricorrenza
Pag 37 5) Equazioni di ricorrenza Valutare la complessità di un algoritmo ricorsivo è, in genere, più laborioso che nel caso degli algoritmi iterativi. Infatti, la natura ricorsiva della soluzione algoritmica
Analisi algoritmi ricorsivi e relazioni di ricorrenza
Analisi algoritmi ricorsivi e relazioni di ricorrenza Punto della situazione Finora abbiamo affrontato: il tempo di esecuzione di un algoritmo, l analisi asintotica con le notazioni asintotiche e la tecnica
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
Analisi Matematica 3/Analisi 4 - SOLUZIONI (20/01/2016)
Corso di Laurea in Matematica Docente: Claudia Anedda Analisi Matematica 3/Analisi 4 - SOLUZIONI (//6) ) i) Dopo averla classificata, risolvere l equazione differenziale tẋ x = t cos(t), t >. ii) Scrivere
Analisi Matematica I per Ingegneria Gestionale, a.a Scritto del secondo appello, 1 febbraio 2017 Testi 1
Analisi Matematica I per Ingegneria Gestionale, a.a. 206-7 Scritto del secondo appello, febbraio 207 Testi Prima parte, gruppo.. Trovare le [0, π] che risolvono la disequazione sin(2) 2. 2. Dire se esistono
AM110 - Analisi Matematica 1- Tutorato I Docente: Prof. Pierpaolo Esposito Tutori: A. Mazzoccoli, M. Nanni SOLUZIONI
Corso di laurea in Matematica - Anno Accademico 2013/201 AM110 - Analisi Matematica 1- Tutorato I Docente: Prof. Pierpaolo Esposito Tutori: A. Mazzoccoli, M. Nanni SOLUZIONI Esercizio 1. N.B. Le soluzioni
Problem Set 2 docente: Luciano Gualà
Problem Set 2 docente: Luciano Gualà Esercizio 1 (equazioni di ricorrenza) Si risolvano le seguenti equazioni di ricorrenza. Si assuma sempre T (costante) = O(1). (a) T (n) = T (n 10) + 10. (b) T (n) =
04 - Numeri Complessi
Università degli Studi di Palermo Facoltà di Economia CdS Statistica per l Analisi dei Dati Appunti del corso di Matematica 04 - Numeri Complessi Anno Accademico 2013/2014 M. Tumminello, V. Lacagnina e
A.A CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 5.
A.A. 2015-2016. CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 5. Esercizio 5.1. Determinare le ultime tre cifre di n = 13 1625. (Suggerimento. Sfruttare il Teorema di Eulero-Fermat)
Esercizi per il corso di Algoritmi, anno accademico 2011/12
Esercizi per il corso di Algoritmi, anno accademico 2011/12 Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, nè in C++, etc. ). Di tutti gli
Esempio : i numeri di Fibonacci
Esempio : i numeri di Fibonacci La successione di Fibonacci F 1, F 2,... F n,... è definita come: F 1 =1 F 2 =1 F n =F n 1 F n 2,n 2 Leonardo Fibonacci (Pisa, 1170 Pisa, 1250) http://it.wikipedia.org/wiki/leonardo_fibonacci
Riferimenti: R.Adams, Calcolo Differenziale 2. Capitoli 3.4, 3.9. Esercizi 3.4, 3.9.
Appunti sul corso di Complementi di Matematica - mod Analisi prof. B.Baccelli 200/ 07 - Funzioni vettoriali, derivata della funzione composta, formula di Taylor. Riferimenti: R.Adams, Calcolo Differenziale
Esercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla http://www.moreno.marzolla.name/ Ultima Modifica: 7 ottobre 202 Copyright Portions of this work are Copyright 202, Moreno Marzolla. This work is licensed
Esercizi di Analisi Matematica
Università degli Studi di Udine Anno Accademico 00/ Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica e TWM Esercizi di Analisi Matematica Esercizi sul primo semestre del
2. Analisi degli Algoritmi
2. Analisi degli Algoritmi Introduzione 2.1 Un modello di macchina elementare: la Macchina a Registri 2.2 Costo di esecuzione di un programma 2.3 Analisi del costo di esecuzione: il modello a costi uniformi
Appunti sul corso di Complementi di Matematica mod. Analisi prof. B.Bacchelli - a.a. 2010/2011.
Appunti sul corso di Complementi di Matematica mod. Analisi prof. B.Baccelli - a.a. 2010/2011. 06 - Derivate, differenziabilità, piano tangente, derivate di ordine superiore. Riferimenti: R.Adams, Calcolo
Gli algoritmi ricorsivi di ordinamento. Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino
ordinamento Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Merge Sort Ricorsivo, divide et impera Stabile Divisione: due sottovettori SX e DX rispetto al centro del vettore. p r A.A.
METODI MATEMATICI PER L INFORMATICA
METODI MATEMATICI PER L INFORMATICA Tutorato Lezione 7 19/05/2016 Corso per matricole congrue a 1 Docente: Margherita Napoli Tutor: Amedeo Leo Ricorsione Esercizio 2 pagina 357 Trovare f(1), f(2), f(3),
LIMITI - ESERCIZI SVOLTI
LIMITI - ESERCIZI SVOLTI ) Verificare mediante la definizione di ite che a) 3 5) = b) = + ) c) 3n n + n+ = + d) 3+ = 3. ) Calcolare utilizzando i teoremi sull algebra dei iti a) 3 + ) b) + c) 0 + d) ±
04 - Numeri Complessi
Università degli Studi di Palermo Scuola Politecnica Dipartimento di Scienze Economiche, Aziendali e Statistiche Appunti del corso di Matematica 04 - Numeri Complessi Anno Accademico 2015/2016 M. Tumminello,
