Prova rigorosa per la validità dell'assunzione


20

Il teorema del Maestro è un bellissimo strumento per risolvere determinati tipi di recidive . Tuttavia, spesso applichiamo una parte integrante durante l'applicazione. Ad esempio, durante l'analisi di Mergesort andiamo felicemente

T(n)=T(n2)+T(n2)+f(n)

per

T(n)=2T(n2)+f(n)

considerando solo . Ci assicuriamo che questo passaggio è valido - cioè - perché si comporta "bene". In generale, assumiamo per il comune denominatore.n=2kTΘ(T)Tn=bkb

È facile costruire ricorrenze che non consentono questa semplificazione usando vizioso f. Ad esempio, sopra la ricorrenza per T/T con

f(n)={1,n=2kn,else

produrrà usando il teorema del Maestro nel solito modo, ma c'è chiaramente una sottosequenza che cresce come . Vedi qui per un altro esempio più ingegnoso.Θ(n)Θ(nlogn)

Come possiamo renderlo "piacevolmente" rigoroso? Sono abbastanza certo che la monotonia sia sufficiente, ma nemmeno la semplice ricorrenza di Mergesort è monotona; c'è una componente periodica (che è dominata asintoticamente). È sufficiente indagare , e quali sono le condizioni necessarie e sufficienti su che assicurano che il teorema del Maestro funzioni?ff


Un'altra interpretazione degli stessi risultati è il teorema di Akra-Bazzi "Sulla soluzione delle equazioni di ricorrenza lineare", Ottimizzazione computazionale e applicazioni, 10 (2), 195-210 (1998) o Drmota e Szpankowski "Un teorema principale per il discreto divario e Conquer Recurrences ", SODA'11 < dl.acm.org/citation.cfm?id=2133036.2133064 >.
vonbrand,

2
Ecco un link al documento sopra, che non è dietro un paywall.
Paresh,

1
IIRC questo è discusso nel capitolo 4. del CLRS
Kaveh

@Kaveh Grazie per il puntatore. Per la maggior parte, lo chiamano "sciatta tollerabile"; questo va bene nel loro contesto, perché presumono che tu derivi solo un'ipotesi, che in seguito sarà dimostrata corretta dall'induzione. Citano i pericoli (4.6). In 4.6.2 forniscono una prova, ma è di alto livello e non dicono esplicitamente quali restrizioni su devono essere in atto. Quindi sembra essere qualcosa del tipo " T tale che la matematica passa", che penso principalmente richieda f per avere una "bella" classe Θ . TTfΘ
Raffaello

In generale, quando non hai dimensioni simili puoi usare il metodo Akra – Bazzi che è la generalizzazione del teorema principale, sicuro di come cambiare una funzione specifica in qualcosa che funziona in questo teorema ha bisogno di un piccolo trucco, e per qualcosa come unisci tipo, questo è ciò che normalmente le persone usano per provare la complessità temporale.

Risposte:


10

In tutta questa risposta, assumiamo che e T non siano negativi. La nostra prova funziona ogni volta che f = Θ ( g ) per alcuni g monotone . Questo include il tuo esempio di Mergesort, in cui f = Θ ( n ) e qualsiasi funzione che ha un tasso di crescita polinomiale (o addirittura Θ ( n a log b n ) ).fTf=Θ(g)gf=Θ(n)Θ(nalogbn)

Consideriamo innanzitutto il caso in cui è monotono non decrescente (rilasseremo questa ipotesi più avanti). Ci concentriamo sulla ricorrenza del campione T ( n ) = T ( n / 2 ) + T ( n / 2 ) + f ( n ) . Questa ricorrenza necessita di due casi base, T ( 0 ) e T ( 1 ) . Partiamo dal presupposto che T ( 0 )f

T(n)=T(n/2)+T(n/2)+f(n).
T(0)T(1) , che ci rilasseremo anche in seguito.T(0)T(1)

Sostengo che sia monotono non decrescente. Dimostriamo per induzione completa che T ( n + 1 ) T ( n ) . Questo è dato per n = 0 , quindi sia n 1 . Abbiamo T ( n + 1 )T(n)T(n+1)T(n)n=0n1 Ciò implica che T(2 log 2 n)T(n)T(2 log 2 n). Quindi seT(2

T(n+1)=T((n+1)/2)+T((n+1)/2)+f(n+1)T(n/2)+T(n/2)+f(n)=T(n).
T(2log2n)T(n)T(2log2n).
, abbiamo finito. Questo è sempre il caso se la soluzione per potenze di due è della forma T ( n ) = Θ ( n a log b n ) .T(2m)=Θ(T(2m+1))T(n)=Θ(nalogbn)

Ora rilassiamo il presupposto che . Considera una nuova ricorrenza T definita esattamente allo stesso modo, solo T ( 0 ) = T ( 1 ) = min ( T ( 0 ) , T ( 1 ) ) . Possiamo provare per induzione che T ( n ) T ( n )T(0)T(1)TT(0)=T(1)=min(T(0),T(1))T(n)T(n). Allo stesso modo, possiamo definire una nuova ricorrenza soddisfacente T ( 0 ) = T ( 1 ) = max ( T ( 0 ) , T ( 1 ) ) , e quindi T ( n ) T ( n ) . Invocando il teorema del Maestro, vediamo che T = Θ ( h ) e T = Θ (TT(0)=T(1)=max(T(0),T(1))T(n)T(n)T=Θ(h) per lastessafunzione h , e quindi anche T = Θ ( h ) .T=Θ(h)hT=Θ(h)

Ora rilassiamo l'ipotesi che sia monotona. Supponiamo che f = Θ ( g ) per qualche funzione monotona g . Quindi c g ( n ) f ( n ) C g ( n ) per alcuni c , C > 0 e n abbastanza grandi. Assumiamo per semplicità che n = 0 ; il caso generale può essere gestito come nel paragrafo precedente. Ancora una volta definiamo due ricorrenze T ff=Θ(g)gcg(n)f(n)Cg(n)c,C>0nn=0 sostituendo f con c g , C g (rispettivamente). Ancora una volta il teorema del Maestro darà lo stesso risultato (fino a multipli costanti), che è anche identico (fino a multipli costanti) a quello che otterremmo risolvendo la ricorrenza originale solo su potenze di due.T,Tfcg,Cg


1
Finalmente ho potuto leggerlo più da vicino. Bene grazie! Ho pensato di notare questo per i futuri lettori (perché mi sono imbattuto in esso): non è una limitazione poiché è falso solo per T super-polinomiale e il Il teorema del maestro non si applica a tale. T(2m)Θ(T(2m+1))T
Raffaello

Ho provato a scrivere la tua prova in modo più dettagliato e mi sono bloccato a provare la tua ultima frase, "che è anche identica (...) a ciò che otterremmo risolvendo la ricorrenza originale solo con poteri di due". In particolare, dobbiamo dimostrare che finiamo nello stesso caso del teorema del Maestro per , f e C g . Questo non è un problema per i casi 1 e 2, ma non posso mostrare l'esistenza di c < 1 per il caso 3 (vedi la versione in CLRS, p94 in 3a edizione). Ci hai pensato o hai lavorato con una versione simile a quella di Wikipedia ? cgfCgc<1
Raffaello

Questo è un tecnicismo. Se il problema scompare, vedere ad esempio utenti.encs.concordia.ca/~chvatal/notes/master.pdf . La funzione g soddisferà automaticamente le condizioni. Immagino che la stessa cosa funzioni per f = Θ ( n α log β n ) e così via. In alternativa, basta indicare questa condizione direttamente su g anziché su f : deve esistere un g "normale" che soddisfa f = Θ ( g ) .f=Θ(nα)gf=Θ(nαlogβn)gfgf=Θ(g)
Yuval Filmus,

gf:n2ngcgCg

Penso ancora che sia un tecnicismo. La condizione di cui ti preoccupi è una condizione tecnica. Per la maggior parte delle funzioni che appaiono in pratica, la condizione rimarrà valida. Stai chiedendo la condizione più generale in cui passa lo schizzo di prova sopra. Questa è una domanda interessante a cui sono troppo pigro per rispondere.
Yuval Filmus,
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.