พิจารณาปัญหาต่อไปนี้
มีค่าที่ไม่รู้จัก{R} ภารกิจคือค้นหาดัชนีที่มีขนาดใหญ่ที่สุดโดยใช้แบบสอบถามเฉพาะของแบบฟอร์มต่อไปนี้ แบบสอบถามระบุโดยชุดและคำตอบที่สอดคล้องกันคือv_i เป้าหมายคือใช้แบบสอบถามน้อยที่สุดv 1 , ⋯ , v n ∈ R S ⊆ { 1 , ⋯ , n } max i ∈ S v i
ปัญหานี้เป็นเรื่องง่าย: เราสามารถใช้การค้นหาแบบไบนารีเพื่อค้นหา argmax ด้วยแบบสอบถามเช่นสร้างต้นไม้ไบนารีที่สมบูรณ์โดยมีใบไม้ที่สอดคล้องกับดัชนี เริ่มต้นที่รูทและเดินลงไปที่ใบไม้ดังนี้ ที่แต่ละโหนดให้ค้นหาค่าสูงสุดใน subtrees ด้านซ้ายและขวาจากนั้นย้ายไปที่ชายด์ข้างคำตอบที่ใหญ่กว่า เมื่อถึงใบไม้ให้ส่งออกดัชนี
ปัญหานี้ในรุ่นที่มีเสียงดังต่อไปนี้เกิดขึ้นในการวิจัยของฉัน
มีค่าที่ไม่รู้จักv_n เหล่านี้สามารถเข้าถึงได้ด้วยคำสั่งที่ชุดมีการระบุและตัวอย่างจากจะถูกส่งกลับ เป้าหมายคือการระบุเช่นนั้นใช้แบบสอบถามน้อยที่สุดเท่าที่จะทำได้ (ความคาดหวังอยู่เหนือตัวเลือกของซึ่งขึ้นอยู่กับทั้งเหรียญของอัลกอริทึมและคำตอบที่มีเสียงดัง)
สมมติว่าเราพยายามแก้ปัญหานี้โดยใช้กลยุทธ์การค้นหาแบบไบนารี่เหมือนเดิม (แต่ด้วยคำตอบที่มีเสียงดัง) มันง่ายที่จะแสดงให้เห็นว่าสิ่งนี้ประสบความสำเร็จและนี่เป็นกรณีที่แย่ที่สุด เราสามารถลดข้อผิดพลาดเป็น1ที่ต้องการโดยทำซ้ำแต่ละแบบสอบถามครั้งและใช้ค่าเฉลี่ย (ซึ่งไดรฟ์ลงแปรปรวน) สิ่งนี้จะให้อัลกอริทึมโดยใช้การสืบค้น
มีอัลกอริทึมที่ดีกว่าหรือไม่ ฉันคาดเดาว่าแบบสอบถามเพียงพอแล้ว และฉันเชื่อว่าฉันสามารถพิสูจน์ได้ว่าขอบเขตล่าง นอกจากนี้ปัญหาจะกลายเป็นเรื่องง่ายเช่นการสอบถามผ่านการค้นหาแบบไบนารี - ภายใต้คำสัญญาว่ามีช่องว่างระหว่างค่าที่มากที่สุดและค่าที่ใหญ่เป็นอันดับสอง ถ้ามันจะช่วยให้คุณสามารถสันนิษฐานได้ทุกค่าที่อยู่ระหว่างและn)Ω ( บันทึก2 n ) ˜ O ( บันทึกn ) Ω ( 1 ) 0 O ( บันทึกn )