มีคำอธิบายที่ดีโดย Craig Gidney ที่นี่ (เขายังมีเนื้อหาที่ยอดเยี่ยมอื่น ๆ รวมถึงตัวจำลองวงจรในบล็อกของเขา )
โดยพื้นฐานแล้วอัลกอริทึมของ Grover จะนำไปใช้เมื่อคุณมีฟังก์ชั่นซึ่งจะคืนค่าTrue
เป็นหนึ่งในอินพุตที่เป็นไปได้และFalse
สำหรับส่วนอื่น ๆ ทั้งหมด True
งานของอัลกอริทึมที่จะหาคนที่ผลตอบแทน
ในการทำเช่นนี้เราแสดงอินพุตเป็นสตริงบิทและเข้ารหัสสิ่งเหล่านี้โดยใช้| 0⟩และ| 1⟩สถานะของสตริงของ qubits ดังนั้นสตริงบิต0011
จะถูกเข้ารหัสในสี่สถานะ qubit | 0011⟩ยกตัวอย่างเช่น
นอกจากนี้เรายังต้องสามารถใช้งานฟังก์ชั่นโดยใช้ประตูควอนตัม โดยเฉพาะเราจำเป็นต้องค้นหาลำดับของประตูที่จะใช้งานยูรวมเช่นนั้น
ยู| a⟩=- | ⟩,ยู| b⟩= | ข⟩
ที่คือสตริงบิตที่ฟังก์ชั่นจะกลับมาและขใด ๆ ซึ่งมันก็จะกลับมาaTrue
ขFalse
หากเราเริ่มต้นด้วยการซ้อนทับของสตริงบิตที่เป็นไปได้ทั้งหมดซึ่งค่อนข้างง่ายที่จะทำโดยเพียงแค่ Hadamarding ทุกอย่างอินพุตทั้งหมดเริ่มต้นด้วยแอมพลิจูดเดียวกัน12n√ (โดยที่nคือความยาวของสตริงบิตที่เรากำลังค้นหาดังนั้นจำนวน qubits ที่เราใช้) แต่ถ้าเราใช้ oracleยูแอมพลิจูดของสถานะที่เรากำลังมองหาจะเปลี่ยนเป็น-12n√ n
นี่ไม่ใช่ความแตกต่างที่สังเกตได้ง่ายดังนั้นเราต้องขยายมัน การทำเช่นนี้เราจะใช้โกรเวอร์แพร่ Operator , DDผลกระทบของโอเปอเรเตอร์นี้คือการดูว่าแต่ละแอมพลิจูดแตกต่างจากแอมพลิจูดเฉลี่ยแล้วกลับเปลี่ยนความแตกต่างนี้ ดังนั้นถ้าแอมพลิจูดบางตัวมีจำนวนมากกว่าแอมพลิจูดเฉลี่ยมันจะกลายเป็นจำนวนเดียวกันนั้นน้อยกว่าค่าเฉลี่ยและในทางกลับกัน
โดยเฉพาะอย่างยิ่งถ้าคุณมีการซ้อนทับของสตริงบิตขJตัวดำเนินการแพร่จะมีผลกระทบ
D :ΣJαJ| ขJ⟩↦ΣJ( 2 μ-αJ)| ขJ⟩
โดยที่μ = ∑JαJคือแอมพลิจูดเฉลี่ย ดังนั้นใด ๆ กว้างμ + δได้รับกลายเป็นμ - δ δ เพื่อดูว่าทำไมมันมีผลกระทบนี้และวิธีการที่จะใช้มันให้ดูเอกสารประกอบการบรรยายเหล่านี้
แอมพลิจูดส่วนใหญ่จะเล็กกว่าค่าเฉลี่ยเล็กน้อยเล็กน้อย (เนื่องจากเอฟเฟกต์ของ single - 12n√ ) ดังนั้นพวกเขาจะน้อยกว่าค่าเฉลี่ยเล็กน้อยผ่านการดำเนินการนี้ ไม่ใช่การเปลี่ยนแปลงครั้งใหญ่
สถานะที่เรากำลังมองหาจะได้รับผลกระทบมากขึ้น แอมพลิจูดของมันมีค่าน้อยกว่าค่าเฉลี่ยมากและจะกลายเป็นค่าเฉลี่ยที่มากขึ้นหลังจากใช้โอเปอเรเตอร์การกระจาย ผลสุดท้ายของผู้ดำเนินการแพร่กระจายคือสาเหตุที่ทำให้เกิดสัญญาณรบกวนในสถานะที่ skims แอมพลิจูดของ12n√จากคำตอบที่ผิดทั้งหมดและเพิ่มไปยังคำตอบที่ถูกต้อง ด้วยการทำซ้ำขั้นตอนนี้เราสามารถไปยังจุดที่ทางออกของเราโดดเด่นจากฝูงชนมากจนเราสามารถระบุได้
แน่นอนทั้งหมดนี้แสดงให้เห็นว่างานทั้งหมดกระทำโดยผู้ดำเนินการแพร่กระจาย การค้นหาเป็นเพียงแอปพลิเคชันที่เราสามารถเชื่อมต่อได้
ดูคำตอบของคำถามอื่น ๆ สำหรับรายละเอียดเกี่ยวกับวิธีการที่ฟังก์ชั่นและผู้ประกอบการแพร่กระจายจะดำเนินการ