ดังที่คุณกล่าวถึงทฤษฎีของ Akra – Bazziแสดงให้เห็นว่าวิธีการแก้ปัญหาการเกิดซ้ำT(n,พี)T(n,p) คือ O(nเข้าสู่ระบบn)O(nlogn) เพื่อทุกสิ่ง พี∈(0,1)p∈(0,1). อย่างไรก็ตามสิ่งนี้ไม่เปิดเผยลักษณะของการพึ่งพาพีp. เพื่อกำหนดหลังเราสามารถใช้วิธีการเรียกซ้ำต้นไม้
ที่รากของแผนภูมิการเรียกซ้ำเป็นช่วงเวลา {1,...n}{1,…n}. ลูกทั้งสองของมันคือช่วงเวลา{1,...,พีn}{1,…,pn} และ {พีn+1,...,n}{pn+1,…,n}ซึ่งมีความยาวทั้งหมดอีกครั้ง nn. แต่ละโหนดเหล่านี้มีลูกสองคน (สมมติว่าnnมีขนาดใหญ่พอ) และอื่น ๆ เพื่อความง่ายเราไม่สนใจข้อผิดพลาดในการปัดเศษนั่นคือเราถือว่าพีnpnเป็นจำนวนเต็ม นี่เป็นเพียงด้านเทคนิคและฉันจะไม่กังวลเกี่ยวกับมัน เราหยุดกระบวนการเมื่อใดก็ตามที่โหนดมีความยาวไม่เกิน11. ความซับซ้อนของอัลกอริทึมเป็นสัดส่วนกับความยาวทั้งหมดของช่วงเวลาในต้นไม้ เมื่อไหร่พี≠1/2p≠1/2ที่ใบ (โหนดที่เราจะหยุดกระบวนการ) มีความลึกที่แตกต่างกันและที่ทำให้มันยากมากที่จะตรวจสอบความซับซ้อนโดยรวม
เราสามารถได้รับขอบเขตบนอย่างง่ายโดยสังเกตว่าต้นไม้มีมากที่สุด เข้าสู่ระบบ1-พี(1/n)log1−p(1/n) ระดับ: แต่ละโหนดเป็นปัจจัยอย่างน้อย 1-พี1−pเล็กกว่าพาเรนต์ เช่นเดียวกับในการวิเคราะห์พี=1/2p=1/2ความยาวรวมของช่วงเวลาในทุกระดับไม่เกิน nnและเราได้รับขอบเขตบนของ O(nเข้าสู่ระบบ1-พี(1/n))O(nlog1−p(1/n))ในเวลาทำงาน ตั้งแต่เข้าสู่ระบบ1-พี(1/n)=เข้าสู่ระบบn/เข้าสู่ระบบ(1-พี)-1log1−p(1/n)=logn/log(1−p)−1 และ เข้าสู่ระบบ(1-พี)-1=-เข้าสู่ระบบ(1-พี)=พี±O(พี2)log(1−p)−1=−log(1−p)=p±O(p2) สำหรับขนาดเล็ก พีpเราสามารถเขียนสิ่งนี้เป็น O(nเข้าสู่ระบบn/พี)O(nlogn/p).
นี่คือการคำนวณที่แม่นยำยิ่งขึ้น พิจารณาระดับเสื้อt. สมมติว่าเราไม่หยุดกระบวนการเมื่อถึงช่วงเวลาเล็ก ๆ เราสามารถสร้างจุดสุดยอดแบบสุ่มโดยการเสื้อt ขั้นตอนซึ่งเราแต่ละคนไปทางซ้ายพร้อมกับความน่าจะเป็น พีp และขวา (พูด) ด้วยความน่าจะเป็น 1-พี1−p. แต่ละครั้งที่เราทำขั้นตอนซ้ายบันทึกของความยาวของช่วงเวลาลดลงตาม-เข้าสู่ระบบพี−logpและทุกครั้งที่เราทำตามขั้นตอนที่ถูกต้องก็จะลดลงตาม -เข้าสู่ระบบ(1-พี)−log(1−p). จุดสุดยอดอยู่ในต้นไม้จริงของบันทึกของความยาวที่ลดลงมากที่สุดเข้าสู่ระบบnlogn. น้ำหนักรวมของช่วงเวลาในระดับเสื้อt ของต้นไม้เป็นความน่าจะเป็นที่จุดสุดยอดที่สร้างขึ้นตามกระบวนการนี้สอดคล้องกับการลดลงของที่มากที่สุด เข้าสู่ระบบnlogn. นั่นคือถ้าDD คือการกระจายซึ่งเท่ากับ -เข้าสู่ระบบพี−logp ด้วยความน่าจะเป็น พีp และ -เข้าสู่ระบบ(1-พี)−log(1−p) ด้วยความน่าจะเป็น 1-พี1−pและ X1,...,Xเสื้อ~DX1,…,Xt∼D มีความเป็นอิสระจากนั้นน้ำหนักรวมของระดับ เสื้อt คือ ราคา[X1+⋯+Xเสื้อ≤เข้าสู่ระบบn]Pr[X1+⋯+Xt≤logn]. สำหรับซุปเปอร์คงที่เสื้อtตัวแปรสุ่ม X1+⋯+Xเสื้อX1+⋯+Xt มีการกระจายโดยทั่วไปประมาณค่าเฉลี่ย [-พีเข้าสู่ระบบพี-(1-พี)เข้าสู่ระบบ(1-พี)]เสื้อ[ - p บันทึกp - ( 1 - p ) บันทึก( 1 - p ) ] t และความแปรปรวนเชิงเส้นใน เสื้อเสื้อดังนั้นสำหรับ เสื้อเสื้อ ความพึงพอใจ [-พีเข้าสู่ระบบพี-(1-พี)เข้าสู่ระบบ(1-พี)]เสื้อ≤(เข้าสู่ระบบn)/2[ - p บันทึกp - ( 1 - p ) บันทึก( 1 - p ) ] t ≤ ( บันทึกn ) / 2ความน่าจะเป็นใกล้เคียงกับ 11ในขณะที่สำหรับ เสื้อเสื้อ ความพึงพอใจ [-พีเข้าสู่ระบบพี-(1-พี)เข้าสู่ระบบ(1-พี)]เสื้อ≥2เข้าสู่ระบบn[ - p บันทึกp - ( 1 - p ) บันทึก( 1 - P ) ] เสื้อ≥ 2 เข้าสู่ระบบnจะบอกว่ามันใกล้เคียงกับศูนย์มาก การกำหนดชั่วโมง(พี)=-พีเข้าสู่ระบบพี-(1-พี)เข้าสู่ระบบ(1-พี)h ( p ) = - p บันทึกp - ( 1 - p ) บันทึก( 1 - p ) (เรียกว่าฟังก์ชั่นไบนารีเอนโทรปี) เราสรุปได้ว่าเวลาทำงานคือ Θ(nเข้าสู่ระบบn/ชั่วโมง(พี))Θ ( n บันทึกn / h ( p ) ) ชุดเครื่องแบบ พีพี, เช่น n→∞n → ∞) เช่นพี→0p→0 เรามี ชั่วโมง(พี)≈-พีเข้าสู่ระบบพีh(p)≈−plogpดังนั้นประมาณการก่อนหน้านี้ของเราจึงไม่แน่น
อีกวิธีหนึ่งในการดูการวิเคราะห์เดียวกันก็คือการมีลำดับสุ่มตัวแปรที่ไม่สิ้นสุด X1,X2,...X1,X2,… เหมือนเมื่อก่อนและกำหนดเวลาหยุด TT เป็นครั้งแรก เสื้อt ดังนั้น X1+⋯+Xเสื้อ≥เข้าสู่ระบบnX1+⋯+Xt≥logn. เวลาทำงานนั้นเป็นสัดส่วนกับnE[T]nE[T]. ทฤษฎีการต่ออายุเบื้องต้นนั้นระบุว่าLimn→∞E[T]/เข้าสู่ระบบn=1/E[D]=1/ชั่วโมง(พี)limn→∞E[T]/logn=1/E[D]=1/h(p)หมายความว่าขนาดทั้งหมดของช่วงเวลาเท่ากับ (1+โอ(1))nเข้าสู่ระบบn/ชั่วโมง(พี)(1+o(1))nlogn/h(p). แม่นยำยิ่งขึ้นสำหรับทุกค่าคงที่พีp ขนาดทั้งหมดของช่วงเวลาคือ (1+αพี(n))nเข้าสู่ระบบn/ชั่วโมง(พี)(1+αp(n))nlogn/h(p)ที่ไหน αพี(n)=โอ(n)αp(n)=o(n). การบรรจบกันในทฤษฎีการต่ออายุเบื้องต้นเป็นแบบเอ็กซ์โพเนนเชียลในพารามิเตอร์เวลา -เข้าสู่ระบบnlogn ในกรณีของเรา - ดังนั้นควรเป็นพหุนาม nn, นั่นคือ, αพี(n)=O(n-คพี)αp(n)=O(n−Cp). การบรรจบกันอาจจะเหมือนกันสำหรับพี∈(δ,1-δ)p∈(δ,1−δ) สำหรับใด ๆ δ>0δ>0.
สรุปความยาวรวมของช่วงเวลาในทรีเรียกซ้ำซึ่งเป็นสัดส่วนกับเวลาทำงานเป็นรูปแบบต่อไปนี้สำหรับทุก ๆ พีp: T(n,พี)=(1+โอ(1))nเข้าสู่ระบบnชั่วโมง(พี),
T(n,p)=(1+o(1))nlognh(p),
ที่ไหน
เข้าสู่ระบบnlogn และ
ชั่วโมง(พี)=-พีเข้าสู่ระบบพี-(1-พี)เข้าสู่ระบบ(1-พี)h(p)=−plogp−(1−p)log(1−p) จะถูกนำไปที่ฐานเดียวกันและ
โอ(1)o(1) เป็นฟังก์ชั่นขึ้นอยู่กับ
พีp และพุ่งไปที่
00 กับ
nn.
ยิ่งไปกว่านั้นมันอาจจะเป็นจริงสำหรับทุกคน δ>0δ>0 และใด ๆ พี∈(δ,1-δ)p∈(δ,1−δ) มันเป็นความจริงที่ความยาวทั้งหมดของช่วงเวลานั้นเป็นรูปแบบ T(n,พี)=(1+O(n-คδ))nเข้าสู่ระบบnชั่วโมง(พี),
T(n,p)=(1+O(n−Cδ))nlognh(p),
ที่ไหน
คδ>0Cδ>0 และค่าคงที่ O ใหญ่ที่ซ่อนอยู่นั้นขึ้นอยู่กับ
δδ. โดยเฉพาะอย่างยิ่งมันควรเป็นกรณีที่สำหรับทุกค่าคงที่
พี1,พี2p1,p2,
Limn→∞T(n,พี1)T(n,พี2)=ชั่วโมง(พี2)ชั่วโมง(พี1),limn→∞T(n,p1)T(n,p2)=h(p2)h(p1),
และการบรรจบกันนั้นเป็นไปอย่างรวดเร็ว