Ricorrenze
This presentation is the property of its rightful owner.
Sponsored Links
1 / 28

Ricorrenze PowerPoint PPT Presentation


  • 82 Views
  • Uploaded on
  • Presentation posted in: General

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)

Download Presentation

Ricorrenze

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Ricorrenze

Ricorrenze

  • Il metodo di sostituzione

  • Il metodo iterativo

  • Il metodo Principale


Ricorrenze

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)

    • for j  1 to a do

    • Sj=RcursiveAlgo(Pj, n/b)

    • sol = Compose(S1,S2…,Sa)

    • return sol


Ricorrenze

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)

    • for j  1 to a do

    • Sj=RcursiveAlgo(Pj, n/bj)

    • sol = Compose(S1,S2…,Sa)

    • return sol


Ricorrenze

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 :


Ricorrenze

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.


Ricorrenze

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


Ricorrenze

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


Ricorrenze

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.


Ricorrenze

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.


Ricorrenze

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.


Ricorrenze

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


Ricorrenze

Il Metodo di Sostituzione : sostituzione di variabili

Si può ridenominare la vecchia ricorrenza per produrre una nuova ricorrenza:


Ricorrenze

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.


Ricorrenze

Il Metodo Iterativo

Quanto bisogna sviluppare la ricorrenza per raggiungere una condizione al contorno? Il termine i-esimo nella serie è

L’iterazione trova


Ricorrenze

Il Metodo Iterativo


Ricorrenze

Il Metodo Iterativo


Ricorrenze

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.


Ricorrenze

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)


Ricorrenze

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)


Ricorrenze

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


Ricorrenze

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)


Ricorrenze

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


Ricorrenze

Il Metodo Iterativo: alberi di ricorsione


Ricorrenze

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


Ricorrenze

Il Metodo Principale: esempio 1


Ricorrenze

Il Metodo Principale: esempio 2


Ricorrenze

Il Metodo Principale: esempio 3


Ricorrenze

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


  • Login