ข้อกำหนดการจัดเก็บสำหรับการเลือกค่ามัธยฐาน (อัลกอริทึมผ่านสอง)


18

ในกระดาษคลาสสิกมันโรและแพ็ตเตอร์สันศึกษาปัญหาว่าต้องใช้พื้นที่เก็บข้อมูลเท่าไรสำหรับอัลกอริทึมในการค้นหาค่ามัธยฐานในอาร์เรย์ที่เรียงแบบสุ่ม โดยเฉพาะอย่างยิ่งพวกเขามุ่งเน้นไปที่รูปแบบต่อไปนี้:

อินพุตถูกอ่านจากซ้ายไปขวาเป็นจำนวนครั้ง P

แสดงว่าเซลล์หน่วยความจำเพียงพอ แต่ขอบเขตล่างที่สอดคล้องกันเท่านั้นที่รู้จักสำหรับ P = 1 ฉันไม่เห็นผลลัพธ์ใด ๆ สำหรับ P> 1 มีใครตระหนักถึงขอบเขตที่ต่ำกว่าเช่นนี้หรือไม่ O(n12P)

ขอให้สังเกตว่าปัญหาหลักที่นี่คือที่ผ่านที่สองการป้อนข้อมูลจะไม่สั่งแบบสุ่มอีกต่อไป

คำตอบ:


14

ลองกระดาษนี้โดย Chan ในโซดาล่าสุด: http://portal.acm.org/citation.cfm?id=1721842&dl=ACM

รวดเร็วการค้นหาของ Google ยังพบกระดาษต่อไปนี้ที่มีลักษณะที่อาจจะเกี่ยวข้อง แต่ผมยังไม่ได้อ่าน: http://portal.acm.org/citation.cfm?id=1374470


ขอบคุณบทความที่สองดูเหมือนจะให้คำตอบบางส่วนกับคำถามของฉัน คำตอบดังกล่าวไม่ปรากฏในเอกสารก่อนหน้านี้ที่ฉันทราบ
MassimoLauria

18

กระดาษแผ่นแรกที่พิสูจน์ขอบเขตมากกว่า 1 รอบคือกระดาษของฉันกับ Jayram และ Amit จาก SODA'08 จากนั้นก็มีกระดาษที่วอร์เรนพูดถึงซึ่งช่วยเพิ่มขอบเขตโดยการพิสูจน์ที่สะอาดกว่า

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

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

คำตอบดูเหมือนจะยืนยันและเรามีความคืบหน้าบางส่วนเพื่อพิสูจน์มัน


5
ฉันคิดว่าการสตรีมมัลติพาสเป็นแบบธรรมชาติในการทดลองต่อไปนี้: คุณใช้การสุ่มตัวอย่างแบบสุ่มเพื่อทำการทดสอบทางสถิติ (เช่นการทดสอบการเปลี่ยนรูป) คุณทำการทดลองหลายพันล้านครั้ง การทดสอบแต่ละครั้งจะได้รับหมายเลขสุ่มจาก PRNG และสร้างค่าผลลัพธ์บางอย่าง จากนั้นคุณต้องการคำนวณค่ามัธยฐานฮีสโตแกรม ฯลฯ ของค่าเหล่านี้ คุณไม่มีสิทธิ์เข้าถึงสตรีมของเอาต์พุตแบบสุ่มอย่างมีประสิทธิภาพและคุณไม่มีหน่วยความจำสำหรับเก็บทุกสิ่ง อย่างไรก็ตามคุณสามารถเล่นสตรีมได้อีกครั้ง เพียงรีเซ็ต PRNG ของคุณด้วยเมล็ดพันธุ์เดียวกันและเรียกใช้อัลกอริทึมของคุณอีกครั้ง
Jukka Suomela

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