สมมติว่าคุณมีการเกิดซ้ำ
นั่นจะอยู่ในช่วงรีแอสทีบวก
T( n ) = { T(n−nc)+T(nc)+f(n)1n > 2otherwise
เราจะทำอย่างไรกับฟังก์ชั่นนี้? ไม่มากถ้าเราใส่โครงสร้างบางอย่างลงไป ฉันมาจากพื้นหลังการวิเคราะห์เชิงตัวเลขซึ่งปูด้วยสูตรเชิงตัวเลขที่ใช้งานได้แม้ว่าปัญหาพื้นฐานจะไม่ราบรื่นพอ (ไม่สำคัญเรายังคงโยนวิธีของนิวตันในการแบ่งความแตกต่าง) หรือซับซ้อนเกินไปที่จะวิเคราะห์ (เรียงลำดับ ของชอบปัญหานี้) ปฏิกิริยาทางเดินอาหารของฉันที่มีต่อปัญหาเหล่านี้คือการทำให้สมมติฐานที่ทำด้วยมือบางอย่างข้ามนิ้วของเราและหวังว่าจะดีที่สุด ในกรณีนี้ดูเหมือนว่าจะให้ขอบเขตที่ค่อนข้างดี
โดยเฉพาะฉันต้องการตั้งสมมติฐานหลักสองข้อ หนึ่งในสมมติฐานเหล่านี้ไม่มีมูลความจริงมากไปกว่านี้ แต่เราจะไม่ไปไกลหากไม่มีมัน อีกคนมีสัญชาตญาณทางสายตาที่ค่อนข้างดีที่คุณสามารถหวังจะคร่ำครวญ แต่มันก็ยังคงเป็นคลื่นมือมากกว่าสิ่งอื่นใด
- ฉันจะสมมติว่าคือ "smooth-ish" มันค่อนข้างง่ายที่จะเห็นว่าT ( n )ไม่แตกต่างกันในทุกที่ ที่จริงแล้วมันไม่ได้ต่อเนื่องเนื่องจากสำหรับf ( n ) = log ( n )และc = 1T(n)T(n)f(n)=log(n) ,ลิมn→2-T(n)=1และลิมn→2+T(n)=2+LN2 ดังนั้นการกำหนดแผนที่ซ้ำที่สร้างขึ้นโดยn↦√c=12limn→2−T(n)=1limn→2+T(n)=2+ln2หรือn↦n- √n↦n−−√ ,T(n)จะมีความไม่ต่อเนื่องที่nหากต้นไม้ซ้ำของมันมี2แห่งในวิถีของมัน นั่นคือความไม่ต่อเนื่องมากมายมันอาจทำให้ฟังก์ชั่นของ Dirichlet วิ่งได้ด้วยเงิน หากเราไปถึงจุดที่เราเปรียบเทียบพฤติกรรมของฟังก์ชันกับตัวอย่างต้นแบบของฟังก์ชันที่ไม่มีการต่อเนื่องมันจะไม่น่าหัวเราะหรือไม่ที่จะอ้างว่ามันเป็น "smooth-ish"? ในทางปฏิบัติแล้วผลกระทบของความไม่ต่อเนื่องเหล่านี้ลดลงแบบไม่แสดงอาการจนถึงจุดที่กราฟของคุณดูเกือบจะราบรื่นเมื่อnn↦n−n−−√T(n)n2nมีแนวโน้มไปสู่อินฟินิตี้! ดังนั้นฉันเสนอให้เราใส่โกยของเราลงและมองไปทางอื่นในกรณีนี้ โดยเฉพาะอย่างยิ่งผมจะสมมติว่าในจุดสนใจใด ๆที่เป็นพอห่างไกลจากแหล่งกำเนิด, T ( n )เป็นอนุพันธ์หรืออย่างน้อยประมาณอนุพันธ์รอบละแวกบางnT(n)
- ฉันจะถือว่าท่าทางที่ราบรื่นยิ่งขึ้นเมื่ออยู่ห่างพอสมควร สมมติว่าα ( n )เป็นฟังก์ชั่น sublinear บางอย่างเช่นที่n > α ( n ) (ตัวอย่างเช่นn ค ) แล้วอนุพันธ์T ' ( ξ ∈ ( n - α ( n ) , n )ไม่แตกต่างกันอย่างมีนัยสำคัญเมื่อα ( n )ช้าพอสังหรณ์ใจเช่นเดียวกับnnα ( n )n > α ( n )nคT'( ξ∈ ( n - α ( n ) , n )α ( n )nมีขนาดใหญ่ขึ้นขนาดสัมพัทธ์ของละแวกใกล้เคียงลดลง (เนื่องจากขนาดเป็นเพียงα ( n )ซึ่งเติบโตช้ากว่าnมาก) ในที่สุดขนาดของพื้นที่ใกล้เคียงนี้จะกลายเป็นไม่มีนัยสำคัญดังนั้น (เทียบกับn ) ว่าอัตราการเปลี่ยนแปลงของT ( n )ภายในพื้นที่ใกล้เคียงนี้ไม่เปลี่ยนแปลงทั้งหมดที่มาก( n - α ( n ) , n )α ( n )nnT( n )
ทีนี้, คุณสมบัติทั้งสองนี้ถูกสันนิษฐาน, และฉันไม่มีความคิดเลยว่าจะพิสูจน์ได้อย่างไรในวิธีที่เข้มงวด แต่อย่างที่ฉันบอกไปก่อนหน้านี้มาข้ามนิ้วของเราและหวังว่าจะดีที่สุด
เริ่มจากความสัมพันธ์ที่เกิดซ้ำกัน:
ตอนนี้ผมจะคิดว่าTเป็นพอเรียบบนช่วงระหว่างn-nคและn การดึงดูดหนึ่งในเครื่องมือวิเคราะห์แบบคลาสสิกของเราค่าเฉลี่ย - ทฤษฎีบททำให้เรามี
T(n)-T(n- n c )
T( n )T( n ) - T( n - nค)nคT( n ) - T( n - nค)nค= T( n - nค) + T( nค) + f( n )= T( nค) + f( n )= T( nค) + f( n )
Tn - nคn
นอกจากนี้เมื่อ
nมีขนาดใหญ่พอเราสันนิษฐานว่า
T′(ξ)มีค่าใกล้เคียงกันตลอดช่วงเวลานี้และใช้ค่าของความแตกต่างอัน จำกัด ใด ๆ ภายในช่วงเวลานี้เช่นกัน นี่หมายความว่า
T′(ξ)≈T(n)-T(n-ϵ)T( n ) - T( n - nค)nค= T'( ξ∈ ( n - nค, n ) )
nT'(ξ)
โดยเฉพาะใช้
ϵ=1เพื่อให้ได้การประมาณความแตกต่างแบบแบ่งขั้นตอนหนึ่งขั้นตอน
n c ( T ( n ) - T ( n - 1 ) )T'(ξ) ≈ T( n ) - T( n - ϵ )ε ϵ < nค
ϵ = 1
เราสามารถกล้องโทรทรรศน์นี้เพื่อรับ
T(n)≈n∑kT(kc)nค( T( n ) - T( n - 1 ) )T( n ) - T( n - 1 )≈ T( nค) + f( n )≈ T( nค) + f( n )nค
T( n ) ≈ ∑knT( kค)kค+ ∑knฉ( k )kค
รบกวนเผยให้เห็นว่าT ( n )มีสองขั้นตอน asymptotic ขึ้นอยู่กับธรรมชาติของ asymptotic ฉ( Z )T( n )T( n )ฉ( z)
ฉ( n ) = o ( nค)ฉnคT( n ) = Θ ( ∑)knฉ( k )kค)∫nฉ( x )xคdx
เมื่อไหร่ ฉ( n ) = ω ( nค)
( ∑knT( kค)kค) + Fค( n )
Fค( n ) = ∫nฉ( x )xคdx
∫nT( xค)xคdx
ΣkT( kค)kค≈ ∫nฉ( xค)xคdx = n T( ξ< nค)ξค
nT(nc)nc, which gives the approximation
T(n)≤nMT(nc)nc+Fc(n)
for some constant
M that bounds the series.
Now, suppose that we have the iterated sequence (n,nc,nc2,nc3,…,nck) where nck<2, then we can use this sequence to telescope the above inequality to get:
T(n)≤n(∑ik−1MinciFc(nci)+Mknck)(*)
Once again, we can bound the
Fc(nci) term by some constant to find that
T(n)=O(Fc(n)+nFc(nc)(Mn−c+M2n−c2+⋯+Mkn−ck))
where
k=logc(log(2)log(n)). Simplifying a bit and coalescing some of the
Mn−c terms together (in particular, we know that
n−ck is a constant), we get
T(n)=O(nkFc(n)Mk)
However, this bound is relatively loose, and you should refer to (*) whenever possible.
Be aware that in no way is this rigorous. I have not provided any support that this ought to work beyond some clumsy approximations. Nevertheless, if you just need a quick asymptotic guess for the sake of informal analysis, then you can actually see that this scheme works well (for large enough values of n, usually n>10 suffices) in practice.
Anyways, for all of the choices of c and f that I've tried, the following computation
T^(n)F(n)=n∑klogclogn2MknckF(nck)=∑knf(k)kc
where
M≈∑kT(kc)kcnT(nc)nc
seems to give good approximations. This technique also generalizes to recurrences of the form
T(n)=T(n−α(n))+T(β(n))+f(n)
which can be approximated with
T^(n)F(n)=n∑k#β(n)Mkαk(n)F(βk(n))=∑knf(k)α(k)
where
αk(n)=α(⋯k(α(n))) and
#β(n) denotes the number of elements of the sequence
n,β(n),β(β(n)),…,β#β(n)(n) such that the last term is between
1 and
2.