ค้นหา argmax โดยประมาณโดยใช้ข้อความค้นหาสูงสุดโดยประมาณเท่านั้น


10

พิจารณาปัญหาต่อไปนี้

มีค่าที่ไม่รู้จัก{R} ภารกิจคือค้นหาดัชนีที่มีขนาดใหญ่ที่สุดโดยใช้แบบสอบถามเฉพาะของแบบฟอร์มต่อไปนี้ แบบสอบถามระบุโดยชุดและคำตอบที่สอดคล้องกันคือv_i เป้าหมายคือใช้แบบสอบถามน้อยที่สุดv 1 , , v nR S { 1 , , n } max i S v inv1,,vnRS{1,,n}maxiSvi

ปัญหานี้เป็นเรื่องง่าย: เราสามารถใช้การค้นหาแบบไบนารีเพื่อค้นหา argmax ด้วยแบบสอบถามO(logn)เช่นสร้างต้นไม้ไบนารีที่สมบูรณ์โดยมีnใบไม้ที่สอดคล้องกับดัชนี เริ่มต้นที่รูทและเดินลงไปที่ใบไม้ดังนี้ ที่แต่ละโหนดให้ค้นหาค่าสูงสุดใน subtrees ด้านซ้ายและขวาจากนั้นย้ายไปที่ชายด์ข้างคำตอบที่ใหญ่กว่า เมื่อถึงใบไม้ให้ส่งออกดัชนี

ปัญหานี้ในรุ่นที่มีเสียงดังต่อไปนี้เกิดขึ้นในการวิจัยของฉัน

มีnค่าที่ไม่รู้จักv1,,vnv_n เหล่านี้สามารถเข้าถึงได้ด้วยคำสั่งที่ชุดS{1,,n}มีการระบุและตัวอย่างจากยังไม่มีข้อความ(สูงสุดผมSโวลต์ผม,1)จะถูกส่งกลับ เป้าหมายคือการระบุผม* * * *{1,,n}เช่นนั้นE[โวลต์ผม* * * *]สูงสุดผมโวลต์ผม-1ใช้แบบสอบถามน้อยที่สุดเท่าที่จะทำได้ (ความคาดหวังอยู่เหนือตัวเลือกของผม* * * *ซึ่งขึ้นอยู่กับทั้งเหรียญของอัลกอริทึมและคำตอบที่มีเสียงดัง)

สมมติว่าเราพยายามแก้ปัญหานี้โดยใช้กลยุทธ์การค้นหาแบบไบนารี่เหมือนเดิม (แต่ด้วยคำตอบที่มีเสียงดัง) มันง่ายที่จะแสดงให้เห็นว่าสิ่งนี้ประสบความสำเร็จE[vi]maxiviO(logn)และนี่เป็นกรณีที่แย่ที่สุด เราสามารถลดข้อผิดพลาดเป็น1ที่ต้องการ1โดยทำซ้ำแต่ละแบบสอบถามO(log2n)ครั้งและใช้ค่าเฉลี่ย (ซึ่งไดรฟ์ลงแปรปรวน) สิ่งนี้จะให้อัลกอริทึมโดยใช้การสืบค้นO(log3n)

มีอัลกอริทึมที่ดีกว่าหรือไม่ ฉันคาดเดาว่าแบบสอบถามเพียงพอแล้ว และฉันเชื่อว่าฉันสามารถพิสูจน์ได้ว่าขอบเขตล่าง นอกจากนี้ปัญหาจะกลายเป็นเรื่องง่ายเช่นการสอบถามผ่านการค้นหาแบบไบนารี - ภายใต้คำสัญญาว่ามีช่องว่างระหว่างค่าที่มากที่สุดและค่าที่ใหญ่เป็นอันดับสอง ถ้ามันจะช่วยให้คุณสามารถสันนิษฐานได้ทุกค่าที่อยู่ระหว่างและn)Ω ( บันทึก2 n ) ˜ O ( บันทึกn ) Ω ( 1 ) 0 O ( บันทึกn )O(log2n)Ω(log2n)O~(logn)Ω(1)0O(logn)


สิ่งที่เกี่ยวกับการค้นหาแบบไบนารีที่ทุก ๆ ระดับทำให้คู่แบบสอบถาม O (log n) (หนึ่งสำหรับสูงสุดของด้านซ้ายมือหนึ่งสำหรับสูงสุดของด้านขวามือ) และบันทึกผู้ชนะ จากนั้นหลังจาก O (log n) ปัดอัลกอริธึมจะดำเนินการซ้ำด้านที่ "ชนะ" ครั้งมากที่สุด การคำนวณสั้น ๆ ในหัวของฉันดูเหมือนจะบ่งบอกว่าสิ่งนี้ทำงานได้กับความน่าจะเป็นในการตั้งค่าโดยที่อินพุตหนึ่งค่าเป็นและอื่น ๆ ทั้งหมดเป็น ... ฉันอาจจะออกไป 2 011/nc20
daniello

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

หมายเหตุถึงตัวเอง: อ่านคำถามทั้งหมดก่อนแสดงความคิดเห็น
daniello

คำตอบ:


1

ขยายความคิดเห็นของแนวคิดหนึ่งหรือสองไปที่ขอบเขตล่าง ให้พูด (แม้ว่าตัวเลือกที่ดีที่สุดอาจแตกต่างกัน) และให้\} พิจารณาการวาดอินพุตโดยเลือกการเรียงสับเปลี่ยนของค่าเหล่านี้อย่างสม่ำเสมอ{ v 1 , , v n } = { 1B=Θ(logn){v1,,vn}={1nB,,n1nB,B}

แนวความคิดควรเป็นว่าถ้าเราแก้ไขดัชนีของค่าทั้งหมดยกเว้นค่าและดังนั้นเราควรจะสามารถแสดงความแตกต่างในความน่าจะเป็นของอัลกอริทึมในการเลือกหนึ่งเทียบกับอีกอย่างคือ เล็กมาก: ความแตกต่างของระยะห่างระหว่างผลลัพธ์ของอัลกอริธึมของแบบสอบถามนั้นเล็กมากเนื่องจากการแจกแจง 50-50 ในการมอบหมายค่าเหล่านี้ให้กับดัชนีที่มีอยู่ทั้งสองและผลลัพธ์ของคิวรีใด ๆBn1nB

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

ฉันยังไม่สามารถปรับปรุงด้วยวิธีการข้างต้นได้ แต่ฉันคิดว่าคุณอาจได้รับหากคุณสามารถใช้ประโยชน์จากความจริงที่ว่าการสืบค้นไม่สามารถช่วยได้หลายขั้นตอนพร้อมกัน คือถ้าเคียวรีเปลี่ยนเมื่อเราย้ายค่าสูงสุดไปยังดัชนีที่แตกต่างจากนั้นหนึ่งครั้งนั้นจะไม่เปลี่ยนแปลงเมื่อเราย้ายค่าอื่น ๆ ไปยังดัชนีที่แตกต่างกันlogn(logn)2

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

ขออภัยที่นี่เป็นแบบกึ่งสำเร็จรูป แต่หวังว่ามันจะมีประโยชน์!


ฉันไม่ได้คิดเกี่ยวกับขอบเขตที่ต่ำกว่ามากนักเนื่องจากฉันหวังว่าจะมีขอบเขตที่สูงกว่า :)ถือได้แม้ในกรณีไม่มีเสียง ฉันคิดว่าเราน่าจะพิสูจน์ได้ว่าขอบเขตล่าง Ω(logn)Ω(เข้าสู่ระบบ2n)
โทมัส

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