Reccurence


8

Nota: questo è tratto dalle note sugli algoritmi di JeffE su Ricorrenze, pagina 5.

(1). Quindi definiamo la ricorrenza senza alcun caso di base. Ora capisco che per la maggior parte delle ricorrenze, poiché stiamo cercando limiti asintotici, il caso di base non avrebbe importanza. Ma in questo caso, non vedo nemmeno dove potremmo definire il caso base. C'è un numero che ci viene garantito di colpire mentre continuiamo a prendere le radici quadrate a partire da qualsiasi numero intero Definiamo semplicemente per , per alcuni reali , ?T(n)=nT(n)+nT(n)=an<bab

(2). A pagina 7, Erickson ottiene che il numero di strati nell'albero di ricorsione L soddisferà . Da dove viene questo? Non ne ho idea. Vedo che il numero di foglie nell'albero dovrebbe essere sommato a , ma non ho idea di dove andare da lì.n2L=2(n)(n)=n

Qualsiasi aiuto è apprezzato!

Note Sto guardando: http://jeffe.cs.illinois.edu/teaching/algorithms/notes/99-recurrences.pdf

Risposte:


7

Dovresti davvero fare una terza domanda: cosa succede se non è un quadrato perfetto. La risposta a questa domanda è che la ricorrenza effettiva dovrebbe avere o invece di , sebbene in l'analisi considereremo solo input che sono quadrati "ricorsivi".nT(n)T(n)T(n)

Per quanto riguarda la tua prima domanda, può esserci più di un caso base. Ad esempio, forse per tutti . Sei sicuro di riuscire a colpire questo caso di base. In questo caso, come nella maggior parte dei casi, la forma esatta del caso base non influenza i grandi asintotici Theta (ma influenza la costante nascosta).T(n)=1n100

Infine, per quanto riguarda la seconda domanda, si supponga che il tuo caso base Specifica per . L'albero di ricorsione (che è una particolare interpretazione di alcune caratteristiche della ricorrenza) ha la seguente forma:T(n)nC

  • La radice è un'istanza di dimensione .n
  • La radice ha figli che sono istanze di dimensione .nn
  • Ogni nodo alla profondità 1 ha figli che sono istanze di dimensione .n=n1/4n=n1/8
  • Più in generale, un nodo alla profondità è un'istanza di dimensione . Puoi dimostrarlo inducendo il caso (dove ) e calcolando .dn1/2dd=0n1/2d=nn1/2d=n1/2d+1

Termina la ricorsione quando l'istanza ha dimensioni al massimo , e ciò avviene quando . Nel momento in cui ciò accade, abbiamo (assumendo ) e quindi . Prendendo il logaritmo, e quindi , che implica . Possiamo concludere che . Questo è il numero di strati nell'albero. Jeff usa , ed è così che ottiene la sua formula particolare.Cn1/2dCn1/2d1>Cn>CC<n1/2dC12logC<logn2d<logClogn2d=Θ(1)2d=Θ(logn)dloglognC=2


4

Rispondi alla tua prima domanda. In alternativa all'utilizzo del limite superiore e del limite inferiore per ottenere un caso base, un'opzione è che si potrebbe assumere la forma di .n

Prendi, ad esempio, la ricorsione di fusione:

T(n)=2cT(n2)+cn

Chiaramente, la maggior parte non si divide uniformemente in numeri interi. È quindi abbastanza comune supporre che abbia la forma: nn

n=2kkN

Ciò implica che ogni è una potenza positiva di , risolvendo così il nostro caso base sempre a . In alternativa, potremmo creare il caso base invece di assumendo che abbia la forma: n21c1n

n=c2kkN,cN+

Possiamo applicarlo alla nostra ricorrenza:

T(n)=nT(n)+n

Supponiamo che abbia la forma: Quindi il caso base si risolverà sempre in una costante .n

n=c2kkN,cN+
c

Ora, se puoi dimostrarlo in base a questo presupposto, puoi quindi continuare a provare valori che non hanno questo modulo. Un approccio potrebbe essere tentando di vincolata dal successivo più alto (o più basso) che fa avere quella forma.nn

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.