Ricorrenze Il metodo di sostituzione Il metodo iterativo

Slides:



Advertisements
Presentazioni simili
- le Medie la Moda la Mediana
Advertisements

Appunti di analisi matematica: Integrale Definito
Strutture dati per insiemi disgiunti
Il gioco del 15 Il gioco del quindici fu inventato da Sam Loyd piu' di un secolo fa. Lo scopo del gioco e' quello di ordinare le caselle dal numero 1 al.
1 t Mobilità internazionale e conversione dei voti Maria Sticchi Damiani Università della Calabria 8 febbraio 2013.
                      Insertion-Sort
/ fax
UNIVERSITA’ DI MILANO-BICOCCA LAUREA MAGISTRALE IN BIOINFORMATICA
Sommatorie Proprietà Serie aritmetica Serie geometrica Serie armonica
Meccanica 2 1 marzo 2011 Cinematica in una dimensione
Lez. 91 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Alberi di ricerca.
esponente del radicando
Cammini minimi con sorgente singola
Reaching Definitions. Tino CortesiTecniche di Analisi di Programmi 2 Reaching definitions Dato un punto del programma, quali sono i comandi di assegnamento.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti ottimi.
Capitolo 1 Unintroduzione informale agli algoritmi Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
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.
Capitolo 1 Unintroduzione informale agli algoritmi Algoritmi e Strutture Dati.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Iterazione enumerativa (for)
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmo di Ford-Fulkerson
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Algoritmi e strutture Dati - Lezione 7
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.
Il problema della ricerca Algoritmi e Strutture Dati.
Il problema della ricerca 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.
CORSO DI PROGRAMMAZIONE II Introduzione alla ricorsione
Alberi di Ricorrenza Gli alberi di ricorrenza rappresentano un modo conveniente per visualizzare i passi di sostitu- zione necessari per risolvere una.
Algoritmi e Strutture Dati Valutazione del tempo di esecuzione degli algoritmi.
Algoritmi e Strutture Dati (Mod. B)
Heap binomiali Gli heap binomiali sono strutture dati su cui si possono eseguire efficientemente le operazioni: Make(H) : crea uno heap vuoto Insert(H,
QuickSort Quick-Sort(A,s,d) IF s < d THEN q = Partiziona(A,s,d) Quick-Sort(A,s,q-1) Quick-Sort(A,q + 1,d)
Strutture di controllo in C -- Flow Chart --
Lezione 8 Numerosità del campione
Num / 36 Lezione 9 Numerosità del campione.
Notazioni Asintotiche e Ordini di Grandezza delle funzioni
Intelligenza Artificiale
Equazioni differenziali Applicazioni Economiche
Elementi di Informatica di base
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Algoritmi e Strutture Dati
1 Questionario di soddisfazione ATA - a. sc. 2008/09 Il questionario è stato somministrato nel mese di aprile Sono stati restituiti 29 questionari.
LE SAI LE TABELLINE? Mettiti alla prova!.
Cominciamo a parlare di tangenti.
1101 = x 10 x 10 x x 10 x = CORRISPONDENZE
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
LE PROGRESSIONI.
Complessità di un algoritmo
Stabilità per E.D.O. (I): STABILITÀ LINEARIZZATA
Bando Pittori e Scultori in Piemonte alla metà del ‘700
Metodi matematici per economia e finanza. Prof. F. Gozzi
lun mar mer gio ven SAB DOM FEBBRAIO.
Il linguaggio Fortran 90: 3. Procedure e Funzioni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 21 Agosto.
Equazioni differenziali e applicazioni economiche
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Corso di Studi in Informatica Applicata – Università di Catania, Campus di Comiso Dr. Simone Faro – – Diapositiva
Il problema della ricerca Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati Università di Camerino Corso di Laurea in Informatica (12 CFU) I periodo didattico Emanuela Merelli
Transcript della presentazione:

Ricorrenze Il metodo di sostituzione Il metodo iterativo Il metodo Principale

Ricorrenze Quando un algoritmo contiene una o più chiamate ricorsive a se stesso, il suo tempo di esecuzione può essere descritto da una ricorrenza. ReursiveAlgo(P,n) If n≤c then return Solution(P,n) for j  1 to a do Pj=SubProblem(P,n/b, j) Sj=RcursiveAlgo(Pj, n/b) sol = Compose(S1,S2…,Sa) return sol

Ricorrenze Quando un algoritmo contiene una o più chiamate ricorsive a se stesso, il suo tempo di esecuzione può essere descritto da una ricorrenza. ReursiveAlgo(P,n) If n≤c then return Solution(P,n) for j  1 to a do Pj=SubProblem(P,n/bj, j) Sj=RcursiveAlgo(Pj, n/bj) sol = Compose(S1,S2…,Sa) return sol

Il Metodo di Sostituzione Il metodo di sostituzione per risolvere le ricorrenze richiede di tentare uno schema di soluzione, quindi usare l’induzione matematica per trovare le costanti e mostrare che la soluzione funziona. Questo metodo è potente ma può essere applicato solo quando sia facile azzeccare lo schema di soluzione. Consideriamo la ricorrenza : Si prova la limitazione : Si assume che il limite valga per n/2 : Lo si dimostra per n :

Il Metodo di Sostituzione Il metodo di sostituzione per risolvere le ricorrenze richiede di tentare uno schema di soluzione, quindi usare l’induzione matematica per trovare le costanti e mostrare che la soluzione funziona. Questo metodo è potente ma può essere applicato solo quando sia facile azzeccare lo schema di soluzione.

Il Metodo di Sostituzione : condizioni a contorno L’induzione matematica richiede di dimostrare le condizioni a contorno. Potrebbero nascere dei problemi: Tuttavia la notazione asintotica T(n)=O(nlgn) richiede di provare che T(n)≤cnlgn per nn0 dove n0 è una costante. Allora si possono considerare le condizioni a contorno, n=2 ed n=3

Il Metodo di Sostituzione : scegliere la soluzione Sfortunatamente non esiste una regola generale per azzeccare la soluzione corretta per ogni ricorrenza. Esistono però alcune euristiche. Se si incontrano ricorrenze simili a quelle già conosciute si può tentare una soluzione simile. Ad esempio per la ricorrenza T(n)=2(T(n/2)+17)+n si tenta ancora T(n)=O(nlgn) Un altro modo per azzeccare la soluzione è di provare limiti laschi della ricorrenza e quindi ridurre il grado di incertezza

Il Metodo di Sostituzione : sottigliezze A volte si può azzeccare correttamente un limite asintotico della soluzione di una ricorrenza, ma può sembrare che il calcolo matematico non torni nell’induzione. Correggere la soluzione sottraendo un termine di ordine più basso, spesso consente di ottenere la prova matematica. Si tenta con la soluzione O(n) e si cerca di dimostrare T(n)≤cn.

Il Metodo di Sostituzione : sottigliezze Per dimostrare questa ricorrenza bisogna fare una ipotesi induttiva più forte. Si supera la difficoltà sottraendo un termine di ordine più basso dal precedente tentativo. Il nuovo tentativo è T(n)≤cn-b, dove b0 è una costante.

Il Metodo di Sostituzione : evitare le trappole E’ facile sbagliare l’uso della notazione asintotica. Per esempio nella ricorrenza T(n)=2T(n/2)+n si puo’ provare erroneamente che T(n)=O(n) tentando con T(n)≤cn e quindi dedurre Poiché c è una costante. L’errore è che non è stata dimostrata la forma esatta dell’ipotesi induttiva. Cioè che T(n)≤cn.

Il Metodo di Sostituzione : sostituzione di variabili Talvolta una piccola manipolazione algebrica può rendere una ricorrenza sconosciuta simile ad una già vista. Per esempio si consideri la ricorrenza: Si può semplificare questa ricorrenza con una sostituzione di variabile. Sostituendo m=lgn si ottiene

Il Metodo di Sostituzione : sostituzione di variabili Si può ridenominare la vecchia ricorrenza per produrre una nuova ricorrenza:

Il Metodo Iterativo Il metodo iterativo non richiede di tentare una soluzione. Ma può richiedere molta più algebra del metodo di sostituzione. L’idea è di iterare la ricorrenza ed esprimerla come somma di termini dipendenti solo da n e dalle condizioni iniziali. Le tecniche per limitare le sommatorie possono essere usate per fornire limiti alla soluzione.

Il Metodo Iterativo Quanto bisogna sviluppare la ricorrenza per raggiungere una condizione al contorno? Il termine i-esimo nella serie è L’iterazione trova

Il Metodo Iterativo

Il Metodo Iterativo

Il Metodo Iterativo Il metodo iterativo di solito comporta l’uso di molta algebra, e fare tutti i calcoli in modo esatto può essere complesso. Bisogna concentrarsi su due parametri: il numero di volte che la ricorr. deve essere iterata per raggiungere le condizioni a contorno la somma dei termini originati da ogni livello del processo di iterazione Talvolta nel processo di iterazione si può azzeccare la soluzione senza fare tutti calcoli matematici. In tal caso è possibile passare al metodo di sostituzione.

Il Metodo Iterativo: alberi di ricorsione Un albero di ricorsione è un metodo molto comodo per visualizzare tutto ciò che accade quando si itera una ricorrenza. Consideriamo la ricorrenza: T(n)=2T(n/2)+n2 n2 T(n/2) T(n/2)

Il Metodo Iterativo: alberi di ricorsione Un albero di ricorsione è un metodo molto comodo per visualizzare tutto ciò che accade quando si itera una ricorrenza. Consideriamo la ricorrenza: T(n)=2T(n/2)+n2 n2 n2/4 n2/4 T(n/4) T(n/4) T(n/4) T(n/4)

Il Metodo Iterativo: alberi di ricorsione Un albero di ricorsione è un metodo molto comodo per visualizzare tutto ciò che accade quando si itera una ricorrenza. Consideriamo la ricorrenza: T(n)=2T(n/2)+n2 n2 n2 n2/4 n2/4 n2/2 n2/16 n2/16 n2/16 n2/16 n2/4

Il Metodo Iterativo: alberi di ricorsione Poiché il valore decresce geometricamente, il valore totale differisce, al più di un fattore costante dal termine più grande, quindi la soluzione è (n2)

Il Metodo Iterativo: alberi di ricorsione (2) T(n)=T(n/3)+T(2n/3)+n n n n/3 2n/3 n n/9 2n/9 2n/9 4n/9 n

Il Metodo Iterativo: alberi di ricorsione

Il Metodo Principale Fornisce soluzioni dirette per le ricorrenze del tipo Dove a1 e b1 sono costanti e f(n) è una funzione asintoticamente positiva. Teorema Principale

Il Metodo Principale: esempio 1

Il Metodo Principale: esempio 2

Il Metodo Principale: esempio 3

Estensione del Metodo Principale Fornisce soluzioni dirette per le ricorrenze del tipo Dove a1 e b1 sono costanti e f(n) è una funzione asintoticamente positiva. Teorema Principale