ทฤษฎีบทหลักไม่สามารถใช้ได้?


11

รับสมการแบบเรียกซ้ำดังนี้

T(n)=2T(n2)+nlog⁡n
เราต้องการประยุกต์ใช้ทฤษฎีบทหลักและทราบว่า

nlog2⁡(2)=n.

ตอนนี้เราตรวจสอบสองกรณีแรกสำหรับนั่นคือว่าε>0

  • nlog⁡n∈O(n1−ε)หรือ
  • nlog⁡n∈Θ(n)(N)

ทั้งสองกรณีไม่พอใจ ดังนั้นเราต้องตรวจสอบกรณีที่สามนั่นก็คือ

  • nlog⁡n∈Ω(n1+ε) )

ฉันคิดว่าเงื่อนไขที่สามไม่เป็นที่พอใจเช่นกัน แต่ทำไม และอะไรจะเป็นคำอธิบายที่ดีสำหรับสาเหตุที่ไม่สามารถนำทฤษฎีบทต้นแบบมาใช้ได้ในกรณีนี้


7
ดูกรณีรูปแบบทั่วไป 2 ในวิกิพีเดีย

4
กรณีที่สามไม่พอใจเพราะไม่Ω ( n ε )สำหรับการใด ๆε > 0 กฎการใช้ l'Hôpitalในวงเงินบันทึกnlog⁡nΩ(nϵ)ϵ>0log⁡nnϵ
— sdcvvc

1
เมื่อคุณแสดงให้เห็นว่าไม่ใช้กรณีใด ๆ นั่นเป็นข้อพิสูจน์ว่าคุณไม่สามารถใช้ทฤษฎีบทหลักได้
— Raphael

ใครต้องมีทฤษฎีบท ใช้ต้นไม้เรียกซ้ำ
— JeffE

คำตอบ:


7

ทฤษฎีบทหลักสามกรณีที่คุณอ้างถึงได้รับการพิสูจน์ในบทนำสู่อัลกอริทึมโดย Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest และ Clifford Stein (ฉบับที่ 2, 2001)

มันเป็นที่สังเกตได้อย่างถูกต้องที่เกิดขึ้นอีกในคำถามอยู่ระหว่างกรณีที่ 2 และกรณีที่ 3 นั่นคือf(n)=nlog⁡nเติบโตเร็วกว่าnแต่ช้ากว่าn1+εสำหรับการใด ๆε>0 0

อย่างไรก็ตามทฤษฎีบทนี้สามารถสรุปให้ครอบคลุมการกลับเป็นซ้ำได้ พิจารณา

กรณี 2A: พิจารณาf(n)=Θ(nlogb⁡alogbk⁡n)สำหรับk≥0บางตัว

กรณีนี้จะลดให้เป็นกรณีที่ 2 เมื่อk=0 0 มันเป็นที่ชัดเจนอย่างสังหรณ์ใจว่าตามแต่ละสาขาของต้นไม้เกิดซ้ำf(x)จะถูกเพิ่มΘ(logb⁡n)ครั้ง ร่างของหลักฐานที่เป็นทางการมากขึ้นสามารถดูได้ที่ด้านล่าง ผลสุดท้ายก็คือ

T(n)=Θ(nlogb⁡alogbk+1⁡n)
)

ในบทนำสู่อัลกอริธึมข้อความนี้จะเหลือเป็นแบบฝึกหัด

การใช้คำสั่งนี้กับการเกิดซ้ำของคำถามที่เราได้รับในที่สุด

T(n)=Θ(n⋅log2⁡n).

รายละเอียดเพิ่มเติมเกี่ยวกับโททฤษฎีบทสามารถพบได้ในที่ดี imho () หน้าวิกิพีเดีย

@sdcvvc ชี้ให้เห็นในความคิดเห็นเพื่อพิสูจน์ว่ากรณีที่ 3 ไม่ได้ใช้ที่นี่เราสามารถเรียกใช้กฎของโรงพยาบาลที่ระบุว่า

limx→cf(x)g(x)=limx→cf′(x)g′(x)

สำหรับฟังก์ชั่นใด ๆf(x)และg(x)อนุพันธ์ในบริเวณใกล้เคียงของคcการประยุกต์ใช้นี้เพื่อf(n)=nlog⁡nและg(n)=n1+εหนึ่งที่สามารถแสดงให้เห็นว่าlog⁡n∉Θ(n1+ε).


ร่างของบทพิสูจน์ทฤษฎีบทต้นแบบสำหรับกรณี 2A

นี่คือการทำสำเนาส่วนของหลักฐานจากการแนะนำให้รู้จักกับอัลกอริทึมด้วยการปรับเปลี่ยนที่จำเป็น

ก่อนอื่นเราพิสูจน์เล็มม่าต่อไปนี้

เล็มม่า:

พิจารณาฟังก์ชั่น

g(n)=∑j=0logb⁡n−1ajh(n/bj)

ที่h(n)=nlogb⁡alogbk⁡n.จากนั้น g(n)=nlogb⁡alogbk+1⁡n.

พิสูจน์: การ แทนที่h(n)ลงในนิพจน์สำหรับg(n)สามารถรับ

g(n)=nlogb⁡alogbk⁡n∑j=0logb⁡n−1(ablogb⁡a)j=nlogb⁡alogbk+1⁡n.

QED

ถ้าnคือพลังที่แน่นอนของbให้เกิดขึ้นอีก

T(n)=aT(n/b)+f(n),T(1)=Θ(1)

หนึ่งสามารถเขียนมันเป็น

T(n)=Θ(nlogb⁡a)+∑j=0logb⁡n−1ajf(n/bj).

f(n)Θ(nlogb⁡alogbk⁡n)Θ

T(n)=Θ(nlogb⁡alogbk+1⁡n).

nb


1

ทฤษฎีของ Akra-Bazzi เป็นลักษณะทั่วไปของทฤษฎีบทหลักอย่างเข้มงวด โบนัสเป็นข้อพิสูจน์ว่าเป็นอินทิกรัลพายุหิมะที่จะทำให้หัวของคุณหมุน ;-)

T(n)∼g(n)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.