Risolvere le reccurenze di divisione e conquista se il rapporto di divisione dipende da


20

Esiste un metodo generale per risolvere la ricorrenza del modulo:

T(n)=T(nnc)+T(nc)+f(n)

per o più in generalec<1

T(n)=T(ng(n))+T(r(n))+f(n)

dove sono alcune funzioni sub-lineari di .ng(n),r(n)n

Aggiornamento : ho esaminato i collegamenti forniti di seguito e ho anche passato al setaccio tutte le relazioni di ricorrenza nelle note di Jeff Erickson . Questa forma di ricorrenza non è discussa da nessuna parte. Il metodo Akkra-Bazi si applica solo quando la divisione è frazionaria. Ogni riferimento significativo sarà valutato.


2
Prova a generare funzioni.
saadtaame,

1
Si applica il metodo Akra-Bazzi ? Fornisce solo stime O() , ma potrebbe essere sufficiente.
vonbrand,

4
Dal momento che non hai incluso gran parte del tentativo di risolvere il tuo problema da solo, dobbiamo collaborare con Litte. Permettimi di indirizzarti verso le nostre domande di riferimento che trattano in dettaglio problemi simili ai tuoi. Esamina le domande correlate elencate di seguito, prova a risolvere nuovamente il problema e modifica per includere i tuoi tentativi insieme ai problemi specifici che hai riscontrato.
Raffaello

1
Dai un'occhiata alle dispense di Tom Leighton su "Appunti sui migliori teoremi del maestro per le recidive di divisione e conquista", sono disponibili in rete. Forse puoi adattare la prova di Akra-Bazzi al tuo caso.
vonbrand

1
@EngrStudent Le funzioni di generazione sono state proposte nel primo commento. :)
Raffaello

Risposte:


6

Supponiamo che tu abbia una ricorrenza estende su reali positivi.

T(n)={T(nnc)+T(nc)+f(n)n > 21otherwise

Cosa possiamo fare con questa funzione? Bene, non molto a meno che non ci sovrapponiamo alcune strutture. Vengo da uno sfondo di analisi numerica, che è pavimentato con ricette numeriche che in qualche modo funzionano anche quando il problema sottostante non è abbastanza regolare (non importa, gettiamo ancora il metodo di Newton nelle sue differenze divise) o troppo complicato da analizzare (ordina di come questo problema). La mia reazione istintiva nei confronti di questi problemi è quella di fare un presupposto fatto a mano, incrociare le dita e sperare per il meglio. In questo caso, sembra dare limiti relativamente buoni.

In particolare, voglio formulare due ipotesi principali. Una di queste ipotesi è più o meno priva di fondamento, ma senza di essa non andremo molto lontano. L'altro ha un'intuizione visiva piuttosto piacevole che si spera si possa grok, ma è ancora più ondulata di ogni altra cosa.

  1. Presumo che sia "smooth-ish". È abbastanza facile vedere che T ( n ) non è differenziabile ovunque. In realtà, non è nemmeno continua, dal momento che per f ( n ) = log ( n ) e c = 1T(n)T(n)f(n)=log(n)c=12lim n 2 + T ( n ) = 2 + ln 2 n limn2T(n)=1limn2+T(n)=2+ln2 nn-nn T(n)n2nnT(n)nnnT(n)n2da qualche parte nella sua traiettoria. Sono molte discontinuità, potrebbe persino dare una spinta alla funzione di Dirichlet per i suoi soldi. Se stiamo arrivando al punto in cui stiamo confrontando i comportamenti di una funzione con quello dell'esempio prototipico di una funzione ininterrotta dal nulla, non è ridicolo provare a sostenere che è "liscio"? Bene, si scopre che in pratica, gli effetti di queste discontinuità diminuiscono asintoticamente, al punto che il tuo grafico sembra quasi regolare quando tende all'infinito! Pertanto, propongo di posare i forconi e di guardare dall'altra parte in questa circostanza. In particolare, assumerò che in qualsiasi punto di interesse sufficientemente lontano dall'origine,nnT(n)è differenziabile, o almeno approssimativamente differenziabile in alcuni quartieri.
  2. Assumerò anche una posizione di levigatezza ancora più forte quando è sufficientemente lontano. Supponiamo che sia una funzione sublineare tale che (per esempio ), quindi la derivata fa non varia in modo significativo quando è abbastanza lento. Intuitivamente, man mano che aumenta, la dimensione relativa del vicinato diminuisce (poiché la sua dimensione è solo , che cresce molto più lentamente di ). Alla fine, la dimensione di questo quartiere diventa così insignificante (rispetto aα ( n ) n > α ( n ) n c T ( ξ ( n - α ( n ) , n ) α ( n ) n ( n - α ( n ) , n ) α ( n ) n n T ( n )nα(n)n>α(n)ncT(ξ(nα(n),n)α(n)n(nα(n),n)α(n)nn) che il tasso di variazione di all'interno di questo vicinato non cambia più in modo così drammatico.T(n)

Ora, entrambe queste proprietà sono assunte e non ho idea di come procedere dimostrando effettivamente in modo rigoroso. Ma come ho detto prima, incrociamo le dita e speriamo nel meglio.

Cominciamo con la relazione di ricorrenza: Ora, suppongo che sia abbastanza regolare nell'intervallo tra e . Facendo appello a uno dei nostri strumenti analitici classici, il teorema del valore medio, ci dà Inoltre, quando è sufficientemente grande, assumiamo che sia approssimativamente lo stesso durante questo intervallo, e quindi prenda anche il valore di una qualsiasi delle differenze finite all'interno di questo intervallo. Questo allora significa che Tn-ncnT(n)-T(n- n c )

T(n)=T(nnc)+T(nc)+f(n)T(n)T(nnc)=T(nc)+f(n)ncT(n)T(nnc)nc=T(nc)+f(n)
TnncnnT(ξ)T(ξ)T(n)-T(n-ϵ)
T(n)T(nnc)nc=T(ξ(nnc,n)).
nT(ξ)ϵ=1 n c ( T ( n ) - T ( n - 1 ) )
T(ξ)T(n)T(nϵ)ϵ    ϵ<nc
In particolare, prendi per ottenerne uno approssimazione della differenza divisa in due fasi Possiamo telescopare questo per ottenere ϵ=1 T(n)nkT(kc)
nc(T(n)T(n1))T(nc)+f(n)T(n)T(n1)T(nc)+f(n)nc
T(n)knT(kc)kc+knf(k)kc

perturbante rivela che ha due fasi asintotiche, a seconda della natura asintotica di .T(n)T(n)f(z)

Quando ( è più veloce di ), allora domina la somma giusta e abbiamo che spesso può essere approssimato con l'integrale .f(n)=o(nc)fncT(n)=Θ(knf(k)kc)nf(x)xcdx

Quando , la somma di sinistra domina la destra. Qui, dobbiamo analizzare la somma dove .f(n)=ω(nc)

(knT(kc)kc)+Fc(n)
Fc(n)=nf(x)xcdx

In virtù dell'argomento smoothness, possiamo ancora una volta considerare questo come una somma di Riemann ancorata a sinistra, approssimando l'integrale . Applicare un teorema del valore medio simile sull'integrale dà Possiamo semplicemente andare avanti e approssimarlo con , che dà l'approssimazione per alcune costanti che limitano la serie.nT(xc)xcdx

kT(kc)kcnf(xc)xcdx=nT(ξ<nc)ξc
nT(nc)nc
T(n)nMT(nc)nc+Fc(n)
M

Supponiamo ora di avere la sequenza iterata dove , quindi possiamo usare questa sequenza per telescopare la disuguaglianza di cui sopra per ottenere: Ancora una volta, possiamo legare il termine di una costante per scoprire che dove . Semplificando un po 'e fondendo insieme alcuni dei termini (in particolare, sappiamo che(n,nc,nc2,nc3,,nck)nck<2

(*)T(n)n(ik1MinciFc(nci)+Mknck)
Fc(nci)
T(n)=O(Fc(n)+nFc(nc)(Mnc+M2nc2++Mknck))
k=logc(log(2)log(n))Mncnckè una costante), otteniamo
T(n)=O(nkFc(n)Mk)

Tuttavia, questo limite è relativamente lento e dovresti fare riferimento a ogni volta che è possibile.(*)

Essere consapevoli del fatto che in nessun modo questo è rigoroso. Non ho fornito alcun supporto che questo dovrebbe funzionare al di là di alcune approssimazioni goffe. Tuttavia, se hai solo bisogno di una rapida ipotesi asintotica per motivi di analisi informale, allora puoi effettivamente vedere che questo schema funziona bene (per valori abbastanza grandi di , di solito ) nella pratica.nn>10

Ad ogni modo, per tutte le scelte di e che ho provato, il seguente calcolo dove sembra dare buone approssimazioni . Questa tecnica generalizza anche a ricorrenze della forma che può essere approssimato con dovecf

T^(n)=nklogclogn2MknckF(nck)F(n)=knf(k)kc
MkT(kc)kcnT(nc)nc
T(n)=T(nα(n))+T(β(n))+f(n)
αk(n)=α(k(α(n)))#β(n)n,β(n),β(β(n)),,β#β(n)(n)12
T^(n)=nk#β(n)Mkαk(n)F(βk(n))F(n)=knf(k)α(k)
αk(n)=α(k(α(n)))e indica il numero di elementi della sequenza tale che l'ultimo termine sia compreso tra e .#β(n)n,β(n),β(β(n)),,β#β(n)(n)12
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.