Divide & Conquer-Rekurenzen lösen, wenn das Split-Verhältnis von abhängt

20

Gibt es eine allgemeine Methode, um die Wiederholung des Formulars zu lösen:

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

für oder allgemeinerc<1

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

wobei einige sublineare Funktionen von .g(n),r(n)n

Update : Ich habe die unten aufgeführten Links durchgesehen und auch alle Wiederholungsrelationen in Jeff Ericksons Notizen durchgesehen . Diese Form der Wiederholung wird nirgends diskutiert. Die Akkra-Bazi-Methode wird nur angewendet, wenn die Aufteilung nach Bruchteilen erfolgt. Jede ergreifende Referenz wird anerkannt.

Stehlager
quelle
2
Versuchen Sie, Funktionen zu generieren.
Saadtaame
1
Gilt die Akra-Bazzi- Methode? Es gibt nur Schätzungen, aber das könnte ausreichen. O()
Vonbrand
4
Da Sie nicht viel unternommen haben, um Ihr Problem selbst zu lösen, müssen wir mit Ihnen zusammenarbeiten. Lassen Sie sich von mir zu unseren Referenzfragen leiten , die ähnliche Probleme wie Sie im Detail behandeln. Bitte bearbeiten Sie die dort aufgelisteten Fragen, versuchen Sie, das Problem erneut zu lösen, und fügen Sie Ihre Versuche zusammen mit den aufgetretenen spezifischen Problemen hinzu.
Raphael
1
Lesen Sie die Handouts von Tom Leighton über "Hinweise zu besseren Master-Theoremen für Divide-and-Conquer-Wiederholungen", die im Internet verfügbar sind. Vielleicht können Sie den Beweis von Akra-Bazzi dort an Ihren Fall anpassen .
Vonbrand
1
@EngrStudent Im allerersten Kommentar wurden generierende Funktionen vorgeschlagen. :)
Raphael

Antworten:

6

Angenommen, Sie haben eine Wiederholung , die über positive Reals liegen.

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

Was können wir mit dieser Funktion machen? Nun, nicht viel, es sei denn, wir überlagern es mit bestimmten Strukturen. Ich stamme aus einem numerischen Analyse-Hintergrund, der mit numerischen Rezepten gepflastert ist, die irgendwie funktionieren, auch wenn das zugrunde liegende Problem entweder nicht glatt genug ist (spielt keine Rolle, lassen Sie uns trotzdem Newtons Methode auf die geteilten Unterschiede werfen) oder zu kompliziert zu analysieren (zu sortieren) von wie dieses Problem). Meine Bauchreaktion auf diese Probleme besteht darin, eine handgewellte Annahme zu machen, die Daumen zu drücken und auf das Beste zu hoffen. In diesem Fall scheint es relativ gute Grenzen zu geben.

Insbesondere möchte ich zwei wesentliche Annahmen treffen. Eine dieser Annahmen ist mehr oder weniger unbegründet, aber ohne sie kommen wir nicht weit. Der andere hat eine etwas nette visuelle Intuition, die Sie hoffentlich grok, aber es ist immer noch mehr handwavy als alles andere.

  1. Ich gehe davon aus, dass "glatt" ist. Es ist ziemlich leicht zu erkennen, dass nicht überall differenzierbar ist. In der Tat ist es nicht einmal kontinuierlich, da für und , und . Daher, angesichts der Karten , die von erzeugten iteriert oder , wird eine Diskontinuität an enthalten , wenn seine Iteration Baum enthältT ( n ) f ( n ) = log ( n ) c = 1T(n)T(n)f(n)=log(n) limn2-T(n)=1limn2+T(n)=2+ln2c=12limn2T(n)=1limn2+T(n)=2+ln2 nn-nn T(n)n2nnT(n)nnnT(n)n2irgendwo in seiner Flugbahn. Das ist eine Menge Diskontinuitäten, es könnte Dirichlets Funktion sogar einen Run für ihr Geld geben. Wenn wir den Punkt erreichen, an dem wir das Verhalten einer Funktion mit dem des prototypischen Beispiels einer nirgendwo kontinuierlichen Funktion vergleichen, ist es nicht lächerlich zu behaupten, es sei "glatt"? Nun, es stellt sich heraus, dass in der Praxis die Auswirkungen dieser Diskontinuitäten asymptotisch abnehmen, bis zu dem Punkt, an dem Ihr Graph fast glatt aussieht, wenn gegen unendlich tendiert! Deshalb schlage ich vor, dass wir unsere Mistgabeln ablegen und unter diesen Umständen einfach wegschauen. Insbesondere gehe ich davon aus, dass an jedem Punkt von Interesse , der weit genug vom Ursprung entfernt ist,nnT(n)ist differenzierbar oder zumindest annähernd differenzierbar in einer bestimmten Nachbarschaft.
  2. Ich gehe auch von einer noch stärkeren Glätte aus, wenn weit genug entfernt ist. Angenommen, ist einige Sublineare Funktion , so dass (zum Beispiel ), dann wird die Ableitung tut nicht signifikant variieren, wenn langsam genug ist. Intuitiv nimmt die relative Größe der Nachbarschaft ab , wenn größer wird (da ihre Größe nur , die viel langsamer wächst als . Schließlich wird die Größe dieser Nachbarschaft so unbedeutend (relativ zuα ( 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), dass sich die Änderungsrate von in dieser Nachbarschaft nicht mehr so ​​dramatisch ändert.T(n)

Nun werden beide Eigenschaften angenommen, und ich habe keine Ahnung, wie man beides auf eine rigorose Weise beweist. Aber wie ich schon sagte, drücken wir die Daumen und hoffen auf das Beste.

Beginnen wir mit der Wiederholungsrelation: Nun gehe ich davon aus, dass im Intervall zwischen und glatt genug ist . Anhand eines unserer klassischen analytischen Werkzeuge, des Mittelwertsatzes, erhalten wir Wenn ausreichend groß ist, nehmen wir an, dass während dieses Intervalls ungefähr gleich ist, und nehmen daher auch den Wert einer der endlichen Differenzen innerhalb dieses Intervalls an. Das bedeutet dann das 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
Nehmen Sie insbesondere , um eine Eins zu erhalten - schrittweise geteilte Differenzapproximation Wir können dies teleskopieren, um ϵ=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

Die Störung von zeigt, dass zwei asymptotische Phasen aufweist, abhängig von der asymptotischen Natur von .T(n)T(n)f(z)

Wenn ( ist schneller als ), dann dominiert die rechte Summe, und wir haben das oft mit dem Integral angenähert werden kann .f(n)=o(nc)fncT(n)=Θ(knf(k)kc)nf(x)xcdx

Wenn , dominiert die linke Summe die rechte. Hier müssen wir die Summe analysieren, wobei .f(n)=ω(nc)

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

Aufgrund des Glättungsarguments können wir dies wieder als links verankerte Riemann-Summe betrachten, die sich dem Integral . Die Anwendung eines ähnlichen Mittelwertsatzes über das Integral ergibt Wir können dies einfach durch approximieren , was ergibt die Näherung für eine Konstante , die die Reihe begrenzt.nT(xc)xcdx

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

Angenommen, wir haben die iterierte Folge mit , dann können wir diese Sequenz verwenden, um die obige Ungleichung zu teleskopieren, um zu erhalten: Wir können wieder binden Der Term durch eine Konstante bestimmt, um festzustellen, dass wobei . Ein bisschen vereinfachen und einige der -Ausdrücke zusammenfassen (insbesondere wissen wir, dass(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))Mncnckist eine Konstante), erhalten wir
T(n)=O(nkFc(n)Mk)

Diese Schranke ist jedoch relativ locker, und Sie sollten nach Möglichkeit auf verweisen .(*)

Seien Sie sich bewusst, dass dies keinesfalls streng ist. Ich habe keine Unterstützung geliefert, dass dies über einige plumpe Annäherungen hinaus funktionieren sollte. Wenn Sie jedoch nur eine schnelle asymptotische Vermutung für informelle Analysen benötigen, können Sie tatsächlich feststellen, dass dieses Schema in der Praxis gut funktioniert (für ausreichend große Werte von , in der Regel ).nn>10

Wie auch immer, für alle von mir ausgeführten Optionen von und wobei gute Annäherungen zu geben scheint . Diese Technik verallgemeinert sich auch auf Wiederholungen der Form die mit angenähert werden können. wobeicf

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)))und bezeichnet die Anzahl der Elemente der Sequenz so, dass der letzte Term zwischen und .#β(n)n,β(n),β(β(n)),,β#β(n)(n)12
Lee
quelle