คำอธิบายอัลกอริทึม Grover
ในส่วนนี้เราจะอธิบายอัลกอริทึม Grover เริ่มจากการพูดถึง phase query gates และวิธีสร้างมัน ตามด้วยคำอธิบายของตัวอัลกอริทึม Grover เอง สุดท้ายจะพูดสั้น ๆ ถึงวิธีที่อัลกอริทึมนี้ถูกนำไปใช้กับการค้นหาโดยธรรมชาติ
Phase query gates
อัลกอริทึม Grover ใช้การดำเนินการที่รู้จักในชื่อ phase query gates ต่างจาก query gate ธรรมดา ที่กำหนดสำหรับฟังก์ชัน ที่กำหนดในแบบปกติที่อธิบายไว้ก่อนหน้า phase query gate สำหรับฟังก์ชัน ถูกกำหนดเป็น
สำหรับทุก string
การดำเนินการ สามารถ implement ได้โดยใช้ query gate หนึ่งตัว ดังที่ diagram นี้แนะนำ:
การ implement นี้ใช้ประโยชน์จากปรากฏการณ์ phase kickback และต้องการ workspace qubit หนึ่งตัวที่ initialize ในสถานะ Qubit นี้ยังคงอยู่ในสถานะ หลังจากการ implement เสร็จสิ้น และสามารถนำกลับมาใช้ใหม่ (เพื่อ implement gates ต่อ ๆ ไป เป็นต้น) หรือจะละทิ้งก็ได้
นอกจากการดำเนินการ แล้ว เราจะใช้ phase query gate สำหรับฟังก์ชัน OR แบบ บิต ซึ่งกำหนดดังต่อไปนี้สำหรับแต่ละ string
โดยชัดเจน phase query gate สำหรับฟังก์ชัน OR แบบ บิตทำงานดังนี้:
เพื่อให้ชัดเจน นี่คือวิธีที่ ทำงานกับ standard basis states; พฤติกรรมบน states ทั่วไปถูกกำหนดจากนิพจน์นี้โดยความเป็นเชิงเส้น
การดำเนินการ สามารถ implement ได้ในรูป quantum circuit โดยเริ่มจาก Boolean circuit สำหรับฟังก์ชัน OR จากนั้นสร้างการดำเนินการ (นั่นคือ standard query gate สำหรับฟังก์ชัน OR แบบ บิต) โดยใช้ขั้นตอนที่อธิบายในบทเรียน พื้นฐานอัลกอริทึมควอนตัม และสุดท้ายสร้างการดำเนินการ โดยใช้ปรากฏการณ์ phase kickback ดังที่อธิบายข้างต้น ควรสังเกตว่าการดำเนินการ ไม่มีการพึ่งพาฟังก์ชัน และสามารถ implement ได้ด้วย quantum circuit ที่ไม่มี query gates เลย
คำอธิบายอัลกอริทึม
เมื่อมีการดำเนินการสองอย่างคือ และ แล้ว เราสามารถอธิบายอัลกอริทึม Grover ได้
อัลกอริทึมอ้างถึงตัวเลข ซึ่งคือจำนวน iteration ที่มันทำ (และด้วยเหตุนี้คือจำนวน queries ต่อฟังก์ชัน ที่ต้องการ) ตัวเลข นี้ไม่ถูกระบุโดยอัลกอริทึม Grover ที่เราอธิบายอยู่ และจะพูดถึงภายหลังในบทเรียนว่าจะเลือกอย่างไร
การดำเนินการ ที่วนซ้ำในขั้นตอน 2 จะเรียกว่า Grover operation ตลอดส่วนที่เหลือของบทเรียนนี้ นี่คือ quantum circuit ที่แทน Grover operation เมื่อ
ใน diagram นี้ การดำเนินการ ถูกวาดให้ใหญ่กว่า เป็นสัญลักษณ์บอกใบ้ว่ามันน่าจะเป็นการดำเนินการที่มีต้นทุนสูงกว่า โดยเฉพาะในแบบจำลอง query นั้น ต้องการ query หนึ่งครั้งในขณะที่ ไม่ต้องการ query เลย ถ้าเรามี Boolean circuit สำหรับฟังก์ชัน และแปลงเป็น quantum circuit สำหรับ เราพอคาดได้ว่า quantum circuit ที่ได้จะใหญ่และซับซ้อนกว่า circuit สำหรับ
นี่คือ diagram ของ quantum circuit สำหรับอัลกอริทึมทั้งหมดเมื่อ และ สำหรับค่า ที่ใหญ่กว่า เราสามารถแทรก Grover operation เพิ่มเติมได้ก่อนการวัด
การนำไปใช้กับการค้นหา
อัลกอริทึม Grover สามารถนำไปใช้กับปัญหา Search ดังนี้:
- เลือกตัวเลข ในขั้นตอน 2 (ซึ่งจะพูดถึงภายหลังในบทเรียน)
- รันอัลกอริทึม Grover บนฟังก์ชัน โดยใช้ค่า ที่เลือก เพื่อได้ string
- Query ฟังก์ชัน บน string เพื่อดูว่ามันเป็น solution ที่ถูกต้องหรือไม่:
- ถ้า แปลว่าเราพบ solution แล้ว จึงหยุดและ output
- มิฉะนั้น ถ้า เราสามารถรันกระบวนการอีกครั้งโดยอาจเลือก ต่างกัน หรือตัดสินใจยอมแพ้และ output "ไม่มี solution"
เมื่อวิเคราะห์วิธีทำงานของอัลกอริทึม Grover แล้ว เราจะเห็นว่าการเลือก ทำให้ได้ solution ของปัญหาการค้นหา (ถ้ามี) ด้วยความน่าจะเป็นสูง