อัลกอริทึมของโกรเวอร์: สิ่งใดที่ต้องป้อนเข้าสู่ Oracle


9

ฉันสับสนเกี่ยวกับสิ่งที่ป้อนเข้าสู่ Oracle ในอัลกอริทึมของ Grover

เราไม่จำเป็นต้องใส่สิ่งที่เรากำลังมองหาและจะหาสิ่งที่เรากำลังมองหาเพื่อ Oracle นอกเหนือจากรัฐควอนตัมซ้อน?

ตัวอย่างเช่นสมมติว่าเรามีรายชื่อของผู้คน {"Alice", "Bob", "Corey", "Dio"} และเราต้องการค้นหาว่า "Dio" อยู่ในรายการหรือไม่ จากนั้น Oracle ควรใช้เป็นอินพุตและเอาต์พุตrangle) ฉันเข้าใจดีว่า1/2(|00+|01+|10+|11)1/2(|00+|01+|10|11)

แต่เราไม่จำเป็นต้องป้อนคำว่า "Dio" และรายการ {"Alice", "Bob", "Corey", "Dio"} ไปยัง Oracle หรือไม่ ไม่เช่นนั้น Oracle จะคืนค่าเอาต์พุตได้อย่างไร มันไม่ได้กล่าวถึงอย่างชัดเจนเนื่องจาก Oracle เป็นกล่องดำและเราไม่ต้องคิดเกี่ยวกับวิธีการใช้งานหรือไม่

ความเข้าใจของฉันเกี่ยวกับ Oracle คือ

  • Oracle มีความสามารถในการจดจำว่าคำว่า "Dio" อยู่ในรายการหรือไม่
  • ในการทำเช่นนั้น Oracle จะใช้สถานะควอนตัมซ้อนเป็นอินพุตซึ่งแต่ละสถานะควอนตัมแสดงดัชนีของรายการ
  • ดังนั้นการป้อนข้อมูลไปยัง Oracle วิธีการตรวจสอบว่าคำว่า "ดิโอ" ที่อยู่ในดัชนี 0 ของรายการและการกลับมาถ้าใช่และผลตอบแทนมิฉะนั้น|00|00|00
  • ในกรณีของเรา, Oracle ผลตอบแทนที่rangle)1/2(|00+|01+|10-|11)
  • แต่สิ่งที่เกี่ยวกับรายการและคำว่า?

1
ในขณะที่ไม่ใช้คำพูดในลักษณะเดียวกันฉันเชื่อว่าคำถามของคุณจะมากหรือน้อยเหมือนกับคำถามนี้: อัลกอริทึมของโกรเวอร์: รายการอยู่ที่ไหน
DaftWullie

คำตอบ:


4

แม้ว่าคำอธิบายยอดนิยมของอัลกอริทึมของ Grover จะพูดถึงการค้นหารายการ แต่ในความเป็นจริงคุณใช้เพื่อค้นหาอินพุตที่เป็นไปได้ 0..N-1 กับฟังก์ชัน ค่าใช้จ่ายของอัลกอริทึมคือO(ยังไม่มีข้อความF) ที่ไหน ยังไม่มีข้อความ คือจำนวนอินพุตที่คุณต้องการค้นหาและ Fเป็นค่าใช้จ่ายในการประเมินฟังก์ชั่น หากคุณต้องการให้ฟังก์ชั่นนั้นค้นหารายการคุณต้องฮาร์ดโค้ดรายการลงในฟังก์ชัน

ฮาร์ดโค้ดฟังก์ชั่นเพื่อใช้รายการ ยังไม่มีข้อความ รายการมักจะเป็นความคิดที่ดีมากเพราะมันมีแนวโน้มที่จะทำให้ F เท่ากับ O(ยังไม่มีข้อความ). ซึ่งจะทำให้ต้นทุนรวมของอัลกอริทึมของ GroverO(ยังไม่มีข้อความF)=O(ยังไม่มีข้อความยังไม่มีข้อความ)=O(ยังไม่มีข้อความ1.5). ซึ่งเรียงลำดับของการเอาชนะวัตถุประสงค์ทั้งหมดตั้งแต่ยังไม่มีข้อความ1.5>ยังไม่มีข้อความ.


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

@DaftWullie ปัญหาคือโกรเวอร์จะต้องทำการค้นหาภายใต้การทับซ้อนและต้องใช้วงจรมัลติเพล็กเซอร์ที่มีประตู N และประตู (หรือการดำเนินการอื่น ๆ ที่ไม่ใช่คลิฟฟอร์ด) ควอนตัมและเกท (เช่น Toffoli) มีค่าใช้จ่ายที่ไม่สำคัญเมื่อดำเนินการแก้ไขข้อผิดพลาด ค่าใช้จ่ายนี้ยังมีอยู่ในเครื่องจักรแบบดั้งเดิม (เช่น RAM มี O (N) และประตู) มันเพิ่งเกิดขึ้นเล็กน้อยและหลีกเลี่ยงได้ในบริบทนั้น
Craig Gidney

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

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