ความเข้มข้นที่คมชัดสำหรับการเลือกผ่านการแบ่งแบบสุ่ม?


11

อัลกอริธึมธรรมดาทั่วไปสำหรับการค้นหาองค์ประกอบค่ามัธยฐานในอาร์เรย์ของจำนวนคือ:An

  • ตัวอย่างองค์ประกอบจากพร้อมการเปลี่ยนเป็นn3/4AB
  • จัดเรียงและค้นหาอันดับองค์ประกอบและของB|B|±nlrB
  • ตรวจสอบว่าและอยู่บนด้านตรงข้ามของค่ามัธยฐานของและว่ามีมากที่สุดองค์ประกอบในระหว่างและสำหรับบางคนคงเหมาะสม0 ล้มเหลวหากสิ่งนี้ไม่เกิดขึ้นlrACnAlrC>0
  • มิฉะนั้นหาค่ามัธยฐานโดยการจัดเรียงองค์ประกอบของระหว่างและAlr

ไม่ยากที่จะเห็นว่าสิ่งนี้ทำงานในเวลาเชิงเส้นและประสบความสำเร็จกับความน่าจะเป็นสูง (เหตุการณ์ที่ไม่ดีทั้งหมดเป็นความเบี่ยงเบนขนาดใหญ่ห่างจากความคาดหวังของทวินาม)

อัลกอริธึมสำรองสำหรับปัญหาเดียวกันซึ่งเป็นธรรมชาติมากกว่าที่จะสอนให้นักเรียนที่เห็นการเรียงลำดับอย่างรวดเร็วเป็นสิ่งที่อธิบายไว้ที่นี่: การเลือกแบบสุ่ม

นอกจากนี้ยังเป็นเรื่องง่ายที่จะเห็นว่าสิ่งนี้มีระยะเวลาที่คาดว่าจะเป็นเส้นตรง: พูดว่า "รอบ" เป็นลำดับของการเรียกซ้ำที่สิ้นสุดเมื่อมีการแบ่ง 1 / 4-3 / 4 จากนั้นสังเกตว่าความยาวที่คาดหวังของ รอบที่มากที่สุด 2. (ในการดึงครั้งแรกของรอบความน่าจะเป็นของการแยกที่ดีคือ 1/2 และหลังจากนั้นเพิ่มขึ้นตามจริงแล้วอัลกอริทึมถูกอธิบายเพื่อให้ความยาวรอบถูกครอบงำโดยตัวแปรสุ่มทางเรขาคณิต)

ดังนั้นตอนนี้คำถาม:

เป็นไปได้หรือไม่ที่จะแสดงว่าการเลือกแบบสุ่มทำงานในเวลาเชิงเส้นที่มีความน่าจะเป็นสูงหรือไม่?

เรามีรอบและแต่ละรอบมีความยาวอย่างน้อยด้วยความน่าจะเป็นที่มากที่สุดดังนั้นการรวมกันทำให้เวลาในการทำงานคือกับความน่าn)O(logn)2 - k + 1 O ( n บันทึกบันทึกn ) 1 - 1 / O ( บันทึกn )k2k+1O(nloglogn)11/O(logn)

นี่เป็นเรื่องที่ไม่น่าพอใจ แต่จริง ๆ แล้วมันเป็นความจริงหรือไม่?


โปรดอธิบายอัลกอริทึมที่คำถามของคุณอ้างถึง
Raphael

คุณกำลังถามว่าคุณใช้สหภาพถูกผูกไว้อย่างถูกต้องหรือว่ามีขอบเขตที่ดีขึ้นและน่าพอใจมากขึ้น?
โจ

@Joe หลัง ประเด็นก็คือว่ารอบเป็นสิ่งประดิษฐ์เพื่อให้ได้ความยาวรอบที่ถูกครอบงำโดยเรขาคณิต จากนั้น anaylisys จะ "ลืม" ไม่ว่าอัลกอริทึมนั้นจะอยู่ข้างหน้าหรือข้างหลังอันที่มักจะแยก 1 / 4-3 / 4 บนจมูกเพื่อให้ geometrics เป็นอิสระ ฉันถามว่า "การโกง" ตามที่ Yuval ระบุไว้ด้านล่างนี้ยังแน่นอยู่หรือไม่
หลุยส์

คำตอบ:


5

มันไม่เป็นความจริงที่อัลกอริทึมทำงานในเวลาเชิงเส้นที่มีความน่าจะเป็นสูง พิจารณาเพียงรอบแรกเวลาทำงานอย่างน้อยครั้งตัวแปรสุ่ม ให้เป็นความน่าจะเป็นที่ล้มเหลวที่ได้รับอนุญาต เนื่องจากเวลาทำงานจึงเป็นอย่างน้อย(n)Θ(n)G(1/2)p(n)0Pr[G(1/2)log2p(n)1]=p(n)Ω(nlog2p(n)1)=ω(n)

(มีบางส่วนที่เกี่ยวข้องกับการโกงเนื่องจากความยาวของรอบแรกไม่ใช่จริง ๆ การวิเคราะห์อย่างระมัดระวังอาจเพิ่มเติมหรืออาจไม่ตรวจสอบคำตอบนี้)G(1/2)

แก้ไข: Grübelและ Rosler พิสูจน์ว่าจำนวนการเปรียบเทียบที่คาดหวังหารด้วยมีแนวโน้ม (ในบางแง่มุม) ถึงการกระจายแบบ จำกัด ซึ่งไม่มีขอบเขต ดูตัวอย่างกระดาษของGrübel "อัลกอริธึมการเลือกของ Hoare: แนวทางลูกโซ่มาร์คอฟ" ซึ่งอ้างอิงเอกสารต้นฉบับของพวกเขาn


นี่คือสิ่งที่รบกวนจิตใจฉัน เหมือนที่ฉันพูดในความคิดเห็นของฉันข้างต้นรอบเป็นเพียงวิธีการวิเคราะห์อัลกอริทึมรุ่น "ชะลอตัวลง" ที่รอจนกว่าจะได้รับเดือยที่ดีพอที่จะดำเนินการต่อไป สิ่งที่คุณกำลังแสดงเป็นที่ใดคงน่าจะเป็นของรอบแรกต้องมากกว่า pivots เป็น 0 แต่โดยหลักการแล้วรอบแรกที่ยาวอาจถูกชดเชยด้วยรอบที่ 2 ที่ว่างเปล่าในแง่ที่ว่าในตอนท้ายอัลกอริทึม "un-slowed" ที่ถูกจับขึ้นไปจนถึงรอบที่ได้รับ 1 / 4-3 / 4 เสมอ . C>0C>0
หลุยส์

1
ไม่เป็นความจริงเลยถ้ารอบแรกยาวแล้วเวลาทำงานทั้งหมดจะยาวเนื่องจากรอบต่อไปจะไม่สามารถลดเวลาทำงานได้ ประเด็นก็คือว่าสำหรับการใด ๆรอบแรกต้องใช้เวลาอย่างน้อยมีอย่างต่อเนื่องน่าจะเป็นบาง0 CCnpC>0
Yuval Filmus

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