ทำไมออราเคิลควิบิตจึงจำเป็นในอัลกอริทึมของ Grover


10

ฉันสับสนเล็กน้อยเกี่ยวกับความจำเป็นของ oracle qubit ในอัลกอริทึมของ Grover

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

ทรัพยากรจำนวนมากแนะนำอัลกอริทึมของ Grover ด้วย oracle qubit แต่ฉันพบว่ามีบางกรณีที่คุณไม่จำเป็นต้องมี orbit qubit

ตัวอย่างเช่นที่นี่มีการใช้งานสองอย่างของอัลกอริทึมของ Grover ในเครื่องจำลอง IBM Q อันหนึ่งใช้ออราเคิลควิบิตและอีกอันไม่ใช่ ในทั้งสองกรณีฉันต้องการค้นหา | 11> จากช่องว่างของ | 00>, | 01>, | 10> และ | 11> ในทั้งสองกรณี oracle ประสบความสำเร็จในการพลิก | 11> ถึง - | 11>

・ ด้วย oracle qubit ( ลิงก์ไปยังเครื่องมือจำลอง IBM Q ) ป้อนคำอธิบายรูปภาพที่นี่

・ ไม่มี oracle qubit ( ลิงก์ไปยังเครื่องมือจำลอง IBM Q ) ป้อนคำอธิบายรูปภาพที่นี่

คำตอบ:


5

U|x|y=|x|yf(x),
f(x)x(|0|1)/2
U~|x=(1)f(x)|x

xU~U


จริงๆแล้วมันง่ายมากที่จะหลีกเลี่ยง qubit พิเศษโดยสมมติว่าไม่ได้ใช้เป็นพื้นที่ทำงานระหว่างการคำนวณ oracle ค้นหา CNOT ใด ๆ บน qubit พิเศษและแทนที่ด้วย Z gate เข้าสู่การควบคุมของ CNOT ในทำนองเดียวกันให้แทนที่ CCNOT ลงใน qubit พิเศษด้วย CZ ระหว่างสองตัวควบคุมของ CCNOT อื่น ๆ
Craig Gidney

@ CraigGidney มันเป็นประเด็นที่เป็นธรรมถึงแม้ว่าฉันคิดว่ามีข้อสันนิษฐานเพิ่มเติมในคำสั่งของคุณ (ทำให้มันไม่ใช่แบบทั่วไปแม้ว่ากรณีส่วนใหญ่ที่เรารู้เกี่ยวกับการตอบสนองพวกเขา): (1) ไม่ควรใช้สื่อกลางระหว่าง การประเมินฟังก์ชั่น; (2) วงจรของ oracle จะต้องถูกแยกออกเป็นชุดประตูที่ประตูแบบมัลติควิบิตเดียวที่ทำงานกับ quac oracly คือ (หลาย) - ควบคุม - nots ที่กำหนดเป้าหมายของ oracle qubit; (3) ไม่มีประตูอื่นใดที่สามารถทำงานกับ oracle qubit (เช่นคุณไม่สามารถย้อนกลับ c-nots ที่ทำหน้าที่ผิดวิธีโดยใช้ Hadamards ในอินพุตและเอาต์พุต)
DaftWullie

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