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


11

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

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

nlog2(2)=n.

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

  • nlognO(n1ε)หรือ
  • nlognΘ(n)(N)

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

  • nlognΩ(n1+ε) )

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


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

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

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

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

คำตอบ:


7

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

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

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

กรณี 2A: พิจารณาf(n)=Θ(nlogbalogbkn)สำหรับk0บางตัว

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

T(n)=Θ(nlogbalogbk+1n)
)

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

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

T(n)=Θ(nlog2n).

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

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

limxcf(x)g(x)=limxcf(x)g(x)

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


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

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

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

เล็มม่า:

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

g(n)=j=0logbn1ajh(n/bj)

ที่h(n)=nlogbalogbkn.จากนั้น g(n)=nlogbalogbk+1n.

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

g(n)=nlogbalogbknj=0logbn1(ablogba)j=nlogbalogbk+1n.

QED

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

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

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

T(n)=Θ(nlogba)+j=0logbn1ajf(n/bj).

f(n)Θ(nlogbalogbkn)Θ

T(n)=Θ(nlogbalogbk+1n).

nb


1

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

T(n)g(n)

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