ตอนนี้เราจะวิเคราะห์อัลกอริทึมของ Grover เพื่อทำความเข้าใจว่ามันทำงานอย่างไร
เราจะเริ่มต้นด้วยสิ่งที่อาจเรียกได้ว่าเป็นการวิเคราะห์แบบ สัญลักษณ์ ซึ่งเราคำนวณว่าการดำเนินการของ Grover G G G กระทำต่อสถานะบางอย่างอย่างไร จากนั้นเราจะเชื่อมโยงการวิเคราะห์เชิงสัญลักษณ์นี้กับ ภาพเรขาคณิต ที่ช่วยให้เห็นภาพการทำงานของอัลกอริทึม
คำตอบและที่ไม่ใช่คำตอบ
มาเริ่มต้นด้วยการกำหนดสองเซตของสตริง
A 0 = { x ∈ Σ n : f ( x ) = 0 } A 1 = { x ∈ Σ n : f ( x ) = 1 } \begin{aligned}
A_0 &= \bigl\{ x\in\Sigma^n : f(x) = 0\bigr\} \\
A_1 &= \bigl\{ x\in\Sigma^n : f(x) = 1\bigr\}
\end{aligned} A 0 A 1 = { x ∈ Σ n : f ( x ) = 0 } = { x ∈ Σ n : f ( x ) = 1 }
เซต A 1 A_1 A 1 ประกอบด้วยคำตอบทั้งหมดของปัญหาการค้นหา ส่วน A 0 A_0 A 0 ประกอบด้วยสตริงที่ไม่ใช่คำตอบ (ซึ่งเราอาจเรียกว่า ที่ไม่ใช่คำตอบ เมื่อสะดวก)
สองเซตนี้มีคุณสมบัติ A 0 ∩ A 1 = ∅ A_0 \cap A_1 = \varnothing A 0 ∩ A 1 = ∅ และ A 0 ∪ A 1 = Σ n , A_0 \cup A_1 = \Sigma^n, A 0 ∪ A 1 = Σ n , กล่าวคือ นี่คือ การแบ่งสองส่วน ของ Σ n . \Sigma^n. Σ n .
ต่อไปเราจะกำหนดเวกเตอร์หน่วยสองตัวที่แทน superposition สม่ำเสมอเหนือเซตของคำตอบและที่ไม่ใช่คำตอบ
∣ A 0 ⟩ = 1 ∣ A 0 ∣ ∑ x ∈ A 0 ∣ x ⟩ ∣ A 1 ⟩ = 1 ∣ A 1 ∣ ∑ x ∈ A 1 ∣ x ⟩ \begin{aligned}
\vert A_0\rangle &= \frac{1}{\sqrt{\vert A_0\vert}} \sum_{x\in A_0} \vert x\rangle \\
\vert A_1\rangle &= \frac{1}{\sqrt{\vert A_1\vert}} \sum_{x\in A_1} \vert x\rangle
\end{aligned} ∣ A 0 ⟩ ∣ A 1 ⟩ = ∣ A 0 ∣ 1 x ∈ A 0 ∑ ∣ x ⟩ = ∣ A 1 ∣ 1 x ∈ A 1 ∑ ∣ x ⟩
ในทางการ เวกเตอร์เหล่านี้จะถูกกำหนดเฉพาะเมื่อเซตที่สอดคล้องกันไม่ว่างเปล่า แต่ต่อจากนี้เราจะมุ่งเน้นไปที่กรณีที่ทั้ง A 0 A_0 A 0 และ A 1 A_1 A 1 ไม่ว่างเปล่า
กรณีที่ A 0 = ∅ A_0 = \varnothing A 0 = ∅ และ A 1 = ∅ A_1 = \varnothing A 1 = ∅ สามารถจัดการแยกกันได้ง่าย และเราจะทำในภายหลัง
สำหรับข้อสังเกต สัญกรณ์ที่ใช้ที่นี่เป็นเรื่องปกติ: เมื่อใดก็ตามที่เรามีเซตจำกัดและไม่ว่างเปล่า S , S, S , เราสามารถเขียน ∣ S ⟩ \vert S\rangle ∣ S ⟩ เพื่อแทนเวกเตอร์สถานะควอนตัมที่สม่ำเสมอเหนือสมาชิกของ S . S. S .
ลองกำหนด ∣ u ⟩ \vert u \rangle ∣ u ⟩ ให้เป็นสถานะควอนตัม สม่ำเสมอ เหนือสตริง n n n บิตทั้งหมด:
∣ u ⟩ = 1 N ∑ x ∈ Σ n ∣ x ⟩ . \vert u\rangle = \frac{1}{\sqrt{N}} \sum_{x\in\Sigma^n} \vert x\rangle. ∣ u ⟩ = N 1 x ∈ Σ n ∑ ∣ x ⟩ .
สังเกตว่า
∣ u ⟩ = ∣ A 0 ∣ N ∣ A 0 ⟩ + ∣ A 1 ∣ N ∣ A 1 ⟩ . \vert u\rangle
= \sqrt{\frac{\vert A_0 \vert}{N}} \vert A_0\rangle
+ \sqrt{\frac{\vert A_1 \vert}{N}} \vert A_1\rangle. ∣ u ⟩ = N ∣ A 0 ∣ ∣ A 0 ⟩ + N ∣ A 1 ∣ ∣ A 1 ⟩ .
นอกจากนี้เรายังมี ∣ u ⟩ = H ⊗ n ∣ 0 n ⟩ , \vert u\rangle = H^{\otimes n} \vert 0^n \rangle, ∣ u ⟩ = H ⊗ n ∣ 0 n ⟩ , ดังนั้น ∣ u ⟩ \vert u\rangle ∣ u ⟩ แทนสถานะของ register Q \mathsf{Q} Q หลังจากการตั้งค่าเริ่มต้นในขั้นตอนที่ 1 ของอัลกอริทึมของ Grover
ซึ่งหมายความว่า ก่อนที่การวนซ้ำของ G G G จะเกิดขึ้นในขั้นตอนที่ 2 สถานะของ Q \mathsf{Q} Q อยู่ในปริภูมิเวกเตอร์สองมิติที่ถูก span ด้วย ∣ A 0 ⟩ \vert A_0\rangle ∣ A 0 ⟩ และ ∣ A 1 ⟩ \vert A_1\rangle ∣ A 1 ⟩ และยิ่งกว่านั้น ค่าสัมประสิทธิ์ของเวกเตอร์เหล่านี้เป็นจำนวนจริง
ดังที่เราจะเห็น สถานะของ Q \mathsf{Q} Q จะมีคุณสมบัติเหล่านี้เสมอ — กล่าวคือ สถานะเป็นผลรวมเชิงเส้นจริงของ ∣ A 0 ⟩ \vert A_0\rangle ∣ A 0 ⟩ และ ∣ A 1 ⟩ \vert A_1\rangle ∣ A 1 ⟩ — หลังจากการวนซ้ำใดๆ ของการดำเนินการ G G G ในขั้นตอนที่ 2
ข้อสังเกตเกี่ยวกับการดำเนินการของ Grover
ตอนนี้เราจะหันมาสนใจการดำเนินการของ Grover
G = H ⊗ n Z O R H ⊗ n Z f , G = H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} Z_f, G = H ⊗ n Z OR H ⊗ n Z f ,
โดยเริ่มต้นด้วยข้อสังเกตที่น่าสนใจ
ลองจินตนาการว่าเราแทนที่ฟังก์ชัน f f f ด้วยการประกอบของ f f f กับฟังก์ชัน NOT — หรือพูดอีกอย่างคือ ฟังก์ชันที่ได้จากการกลับบิตเอาต์พุตของ f f f
เราจะเรียกฟังก์ชันใหม่นี้ว่า g , g, g , และเราสามารถแสดงมันด้วยสัญลักษณ์ได้หลายวิธี
g ( x ) = ¬ f ( x ) = 1 ⊕ f ( x ) = 1 − f ( x ) = { 1 f ( x ) = 0 0 f ( x ) = 1 g(x) = \neg f(x) = 1 \oplus f(x) = 1 - f(x) =
\begin{cases}
1 & f(x) = 0\\[1mm]
0 & f(x) = 1
\end{cases} g ( x ) = ¬ f ( x ) = 1 ⊕ f ( x ) = 1 − f ( x ) = { 1 0 f ( x ) = 0 f ( x ) = 1
สังเกตว่า
( − 1 ) g ( x ) = ( − 1 ) 1 ⊕ f ( x ) = − ( − 1 ) f ( x ) (-1)^{g(x)} = (-1)^{1 \oplus f(x)} = - (-1)^{f(x)} ( − 1 ) g ( x ) = ( − 1 ) 1 ⊕ f ( x ) = − ( − 1 ) f ( x )
สำหรับทุกสตริง x ∈ Σ n , x\in\Sigma^n, x ∈ Σ n , และดังนั้น
Z g = − Z f . Z_g = - Z_f. Z g = − Z f .
ซึ่งหมายความว่า ถ้าเราแทนที่ฟังก์ชัน f f f ด้วยฟังก์ชัน g g g อัลกอริทึมของ Grover จะไม่ทำงานแตกต่างกันเลย — เพราะสถานะที่เราได้จากอัลกอริทึมในทั้งสองกรณีจำเป็นต้องสมมูลกันจนถึง global phase
นี่ไม่ใช่ปัญหา!
ในทางสัญชาตญาณ อัลกอริทึมไม่สนว่าสตริงใดเป็นคำตอบและสตริงใดไม่ใช่ — มันเพียงต้องสามารถ แยกแยะ คำตอบและที่ไม่ใช่คำตอบเพื่อทำงานได้อย่างถูกต้อง
การกระทำของการดำเนินการ Grover
ตอนนี้ลองพิจารณาการกระทำของ G G G บนเวกเตอร์สถานะควอนตัม ∣ A 0 ⟩ \vert A_0\rangle ∣ A 0 ⟩ และ ∣ A 1 ⟩ \vert A_1\rangle ∣ A 1 ⟩
ก่อนอื่น สังเกตว่าการดำเนินการ Z f Z_f Z f มีการกระทำที่เรียบง่ายมากบน ∣ A 0 ⟩ \vert A_0\rangle ∣ A 0 ⟩ และ ∣ A 1 ⟩ \vert A_1\rangle ∣ A 1 ⟩
Z f ∣ A 0 ⟩ = ∣ A 0 ⟩ Z f ∣ A 1 ⟩ = − ∣ A 1 ⟩ \begin{aligned}
Z_f \vert A_0\rangle & = \vert A_0\rangle \\[1mm]
Z_f \vert A_1\rangle & = -\vert A_1\rangle
\end{aligned} Z f ∣ A 0 ⟩ Z f ∣ A 1 ⟩ = ∣ A 0 ⟩ = − ∣ A 1 ⟩
ประการที่สอง เรามีการดำเนินการ H ⊗ n Z O R H ⊗ n . H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n}. H ⊗ n Z OR H ⊗ n .
การดำเนินการ Z O R Z_{\mathrm{OR}} Z OR ถูกกำหนดเป็น
Z O R ∣ x ⟩ = { ∣ x ⟩ x = 0 n − ∣ x ⟩ x ≠ 0 n , Z_{\mathrm{OR}} \vert x\rangle
= \begin{cases}
\vert x\rangle & x = 0^n \\[2mm]
-\vert x\rangle & x \neq 0^n,
\end{cases} Z OR ∣ x ⟩ = ⎩ ⎨ ⎧ ∣ x ⟩ − ∣ x ⟩ x = 0 n x = 0 n ,
อีกครั้งสำหรับทุกสตริง x ∈ Σ n , x\in\Sigma^n, x ∈ Σ n , และวิธีที่สะดวกในการแสดงการดำเนินการนี้คือ:
Z O R = 2 ∣ 0 n ⟩ ⟨ 0 n ∣ − I . Z_{\mathrm{OR}} = 2 \vert 0^n \rangle \langle 0^n \vert - \mathbb{I}. Z OR = 2∣ 0 n ⟩ ⟨ 0 n ∣ − I .
วิธีง่ายๆ ในการตรวจสอบว่านิพจน์นี้สอดคล้องกับนิยามของ Z O R Z_{\mathrm{OR}} Z OR คือการประเมินการกระทำของมันบนสถานะ basis มาตรฐาน
การดำเนินการ H ⊗ n Z O R H ⊗ n H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} H ⊗ n Z OR H ⊗ n จึงสามารถเขียนได้ดังนี้:
H ⊗ n Z O R H ⊗ n = 2 H ⊗ n ∣ 0 n ⟩ ⟨ 0 n ∣ H ⊗ n − I = 2 ∣ u ⟩ ⟨ u ∣ − I , H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} = 2 H^{\otimes n} \vert 0^n \rangle \langle 0^n \vert H^{\otimes n} - \mathbb{I} = 2 \vert u \rangle \langle u \vert - \mathbb{I}, H ⊗ n Z OR H ⊗ n = 2 H ⊗ n ∣ 0 n ⟩ ⟨ 0 n ∣ H ⊗ n − I = 2∣ u ⟩ ⟨ u ∣ − I ,
โดยใช้สัญกรณ์เดิม ∣ u ⟩ \vert u \rangle ∣ u ⟩ ที่เราใช้ข้างต้นสำหรับ superposition สม่ำเสมอเหนือสตริง n n n บิตทั้งหมด
และตอนนี้เรามีสิ่งที่จำเป็นในการคำนวณการกระทำของ G G G บน ∣ A 0 ⟩ \vert A_0\rangle ∣ A 0 ⟩ และ ∣ A 1 ⟩ \vert A_1\rangle ∣ A 1 ⟩
ก่อนอื่นลองคำนวณการกระทำของ G G G บน ∣ A 0 ⟩ \vert A_0\rangle ∣ A 0 ⟩
G ∣ A 0 ⟩ = ( 2 ∣ u ⟩ ⟨ u ∣ − I ) Z f ∣ A 0 ⟩ = ( 2 ∣ u ⟩ ⟨ u ∣ − I ) ∣ A 0 ⟩ = 2 ∣ A 0 ∣ N ∣ u ⟩ − ∣ A 0 ⟩ = 2 ∣ A 0 ∣ N ( ∣ A 0 ∣ N ∣ A 0 ⟩ + ∣ A 1 ∣ N ∣ A 1 ⟩ ) − ∣ A 0 ⟩ = ( 2 ∣ A 0 ∣ N − 1 ) ∣ A 0 ⟩ + 2 ∣ A 0 ∣ ⋅ ∣ A 1 ∣ N ∣ A 1 ⟩ = ∣ A 0 ∣ − ∣ A 1 ∣ N ∣ A 0 ⟩ + 2 ∣ A 0 ∣ ⋅ ∣ A 1 ∣ N ∣ A 1 ⟩ \begin{aligned}
G \vert A_0 \rangle
& = \bigl( 2 \vert u\rangle \langle u \vert - \mathbb{I}\bigr) Z_f \vert A_0\rangle \\
& = \bigl( 2 \vert u\rangle \langle u \vert - \mathbb{I}\bigr) \vert A_0\rangle \\
& = 2 \sqrt{\frac{\vert A_0\vert}{N}} \vert u\rangle -\vert A_0 \rangle\\
& = 2 \sqrt{\frac{\vert A_0\vert}{N}} \biggl(
\sqrt{\frac{\vert A_0\vert}{N}} \vert A_0\rangle + \sqrt{\frac{\vert A_1\vert}{N}} \vert A_1\rangle\biggr)
-\vert A_0 \rangle \\
& = \biggl( \frac{2\vert A_0\vert}{N} - 1\biggr) \vert A_0 \rangle
+ \frac{2 \sqrt{\vert A_0\vert \cdot \vert A_1\vert}}{N} \vert A_1 \rangle \\
& = \frac{\vert A_0\vert - \vert A_1\vert}{N} \vert A_0 \rangle
+ \frac{2 \sqrt{\vert A_0\vert \cdot \vert A_1\vert}}{N} \vert A_1 \rangle
\end{aligned} G ∣ A 0 ⟩ = ( 2∣ u ⟩ ⟨ u ∣ − I ) Z f ∣ A 0 ⟩ = ( 2∣ u ⟩ ⟨ u ∣ − I ) ∣ A 0 ⟩ = 2 N ∣ A 0 ∣ ∣ u ⟩ − ∣ A 0 ⟩ = 2 N ∣ A 0 ∣ ( N ∣ A 0 ∣ ∣ A 0 ⟩ + N ∣ A 1 ∣ ∣ A 1 ⟩ ) − ∣ A 0 ⟩ = ( N 2∣ A 0 ∣ − 1 ) ∣ A 0 ⟩ + N 2 ∣ A 0 ∣ ⋅ ∣ A 1 ∣ ∣ A 1 ⟩ = N ∣ A 0 ∣ − ∣ A 1 ∣ ∣ A 0 ⟩ + N 2 ∣ A 0 ∣ ⋅ ∣ A 1 ∣ ∣ A 1 ⟩
และประการที่สอง ลองคำนวณการกระทำของ G G G บน ∣ A 1 ⟩ \vert A_1\rangle ∣ A 1 ⟩
G ∣ A 1 ⟩ = ( 2 ∣ u ⟩ ⟨ u ∣ − I ) Z f ∣ A 1 ⟩ = − ( 2 ∣ u ⟩ ⟨ u ∣ − I ) ∣ A 1 ⟩ = − 2 ∣ A 1 ∣ N ∣ u ⟩ + ∣ A 1 ⟩ = − 2 ∣ A 1 ∣ N ( ∣ A 0 ∣ N ∣ A 0 ⟩ + ∣ A 1 ∣ N ∣ A 1 ⟩ ) + ∣ A 1 ⟩ = − 2 ∣ A 1 ∣ ⋅ ∣ A 0 ∣ N ∣ A 0 ⟩ + ( 1 − 2 ∣ A 1 ∣ N ) ∣ A 1 ⟩ = − 2 ∣ A 1 ∣ ⋅ ∣ A 0 ∣ N ∣ A 0 ⟩ + ∣ A 0 ∣ − ∣ A 1 ∣ N ∣ A 1 ⟩ \begin{aligned}
G \vert A_1 \rangle
& = \bigl( 2 \vert u\rangle \langle u \vert - \mathbb{I} \bigr) Z_f \vert A_1\rangle \\
& = - \bigl( 2 \vert u\rangle \langle u \vert - \mathbb{I} \bigr) \vert A_1\rangle \\
& = - 2 \sqrt{\frac{\vert A_1\vert}{N}} \vert u\rangle + \vert A_1 \rangle \\
& = - 2 \sqrt{\frac{\vert A_1\vert}{N}} \biggl(\sqrt{\frac{\vert A_0\vert}{N}} \vert A_0\rangle
+ \sqrt{\frac{\vert A_1\vert}{N}} \vert A_1\rangle\biggr) + \vert A_1 \rangle \\
& = - \frac{2 \sqrt{\vert A_1\vert \cdot \vert A_0\vert}}{N} \vert A_0 \rangle
+ \biggl( 1 - \frac{2\vert A_1\vert}{N} \biggr) \vert A_1 \rangle \\
& = - \frac{2 \sqrt{\vert A_1\vert \cdot \vert A_0\vert}}{N} \vert A_0 \rangle
+ \frac{\vert A_0\vert - \vert A_1\vert}{N} \vert A_1 \rangle
\end{aligned} G ∣ A 1 ⟩ = ( 2∣ u ⟩ ⟨ u ∣ − I ) Z f ∣ A 1 ⟩ = − ( 2∣ u ⟩ ⟨ u ∣ − I ) ∣ A 1 ⟩ = − 2 N ∣ A 1 ∣ ∣ u ⟩ + ∣ A 1 ⟩ = − 2 N ∣ A 1 ∣ ( N ∣ A 0 ∣ ∣ A 0 ⟩ + N ∣ A 1 ∣ ∣ A 1 ⟩ ) + ∣ A 1 ⟩ = − N 2 ∣ A 1 ∣ ⋅ ∣ A 0 ∣ ∣ A 0 ⟩ + ( 1 − N 2∣ A 1 ∣ ) ∣ A 1 ⟩ = − N 2 ∣ A 1 ∣ ⋅ ∣ A 0 ∣ ∣ A 0 ⟩ + N ∣ A 0 ∣ − ∣ A 1 ∣ ∣ A 1 ⟩
ในทั้งสองกรณีเราใช้สมการ
∣ u ⟩ = ∣ A 0 ∣ N ∣ A 0 ⟩ + ∣ A 1 ∣ N ∣ A 1 ⟩ \vert u\rangle
= \sqrt{\frac{\vert A_0 \vert}{N}} \vert A_0\rangle
+ \sqrt{\frac{\vert A_1 \vert}{N}} \vert A_1\rangle ∣ u ⟩ = N ∣ A 0 ∣ ∣ A 0 ⟩ + N ∣ A 1 ∣ ∣ A 1 ⟩
พร้อมกับนิพจน์
⟨ u ∣ A 0 ⟩ = ∣ A 0 ∣ N and ⟨ u ∣ A 1 ⟩ = ∣ A 1 ∣ N \langle u \vert A_0\rangle = \sqrt{\frac{\vert A_0 \vert}{N}}
\qquad\text{and}\qquad
\langle u \vert A_1\rangle = \sqrt{\frac{\vert A_1 \vert}{N}} ⟨ u ∣ A 0 ⟩ = N ∣ A 0 ∣ and ⟨ u ∣ A 1 ⟩ = N ∣ A 1 ∣
ที่ตามมา
โดยสรุป เรามี
G ∣ A 0 ⟩ = ∣ A 0 ∣ − ∣ A 1 ∣ N ∣ A 0 ⟩ + 2 ∣ A 0 ∣ ⋅ ∣ A 1 ∣ N ∣ A 1 ⟩ G ∣ A 1 ⟩ = − 2 ∣ A 1 ∣ ⋅ ∣ A 0 ∣ N ∣ A 0 ⟩ + ∣ A 0 ∣ − ∣ A 1 ∣ N ∣ A 1 ⟩ . \begin{aligned}
G \vert A_0 \rangle
& = \frac{\vert A_0\vert - \vert A_1\vert}{N} \vert A_0 \rangle
+ \frac{2 \sqrt{\vert A_0\vert \cdot \vert A_1\vert}}{N} \vert A_1 \rangle\\[2mm]
G \vert A_1 \rangle
& = - \frac{2 \sqrt{\vert A_1\vert \cdot \vert A_0\vert}}{N} \vert A_0 \rangle
+ \frac{\vert A_0\vert - \vert A_1\vert}{N} \vert A_1 \rangle.
\end{aligned} G ∣ A 0 ⟩ G ∣ A 1 ⟩ = N ∣ A 0 ∣ − ∣ A 1 ∣ ∣ A 0 ⟩ + N 2 ∣ A 0 ∣ ⋅ ∣ A 1 ∣ ∣ A 1 ⟩ = − N 2 ∣ A 1 ∣ ⋅ ∣ A 0 ∣ ∣ A 0 ⟩ + N ∣ A 0 ∣ − ∣ A 1 ∣ ∣ A 1 ⟩ .
ดังที่เราสังเกตไปแล้ว สถานะของ Q \mathsf{Q} Q ก่อนขั้นตอนที่ 2 อยู่ในปริภูมิสองมิติที่ถูก span ด้วย ∣ A 0 ⟩ \vert A_0\rangle ∣ A 0 ⟩ และ ∣ A 1 ⟩ , \vert A_1\rangle, ∣ A 1 ⟩ , และเราได้พิสูจน์แล้วว่า G G G แมปเวกเตอร์ใดๆ ในปริภูมินี้ไปยังเวกเตอร์อื่นในปริภูมิเดิม
ซึ่งหมายความว่า เพื่อวัตถุประสงค์ของการวิเคราะห์ เราสามารถมุ่งความสนใจไปที่ subspace นี้เท่านั้น
เพื่อให้เข้าใจได้ดีขึ้นว่าเกิดอะไรขึ้นภายในปริภูมิสองมิตินี้ ลองแสดงการกระทำของ G G G บนปริภูมินี้เป็น matrix
M = ( ∣ A 0 ∣ − ∣ A 1 ∣ N − 2 ∣ A 1 ∣ ⋅ ∣ A 0 ∣ N 2 ∣ A 0 ∣ ⋅ ∣ A 1 ∣ N ∣ A 0 ∣ − ∣ A 1 ∣ N ) , M = \begin{pmatrix}
\frac{\vert A_0\vert - \vert A_1\vert}{N} & -\frac{2 \sqrt{\vert A_1\vert \cdot \vert A_0\vert}}{N} \\[2mm]
\frac{2 \sqrt{\vert A_0\vert \cdot \vert A_1\vert}}{N} & \frac{\vert A_0\vert - \vert A_1\vert}{N}
\end{pmatrix}, M = N ∣ A 0 ∣ − ∣ A 1 ∣ N 2 ∣ A 0 ∣ ⋅ ∣ A 1 ∣ − N 2 ∣ A 1 ∣ ⋅ ∣ A 0 ∣ N ∣ A 0 ∣ − ∣ A 1 ∣ ,
โดยที่แถว/คอลัมน์แรกและที่สองสอดคล้องกับ ∣ A 0 ⟩ \vert A_0\rangle ∣ A 0 ⟩ และ ∣ A 1 ⟩ \vert A_1\rangle ∣ A 1 ⟩ ตามลำดับ
จนถึงตอนนี้ในซีรีส์นี้ เราเชื่อมโยงแถวและคอลัมน์ของ matrix กับสถานะแบบ classical ของระบบเสมอ แต่ matrix ยังสามารถใช้อธิบายการกระทำของการแมปเชิงเส้นบน basis ต่างๆ อย่างที่เราทำที่นี่
แม้ว่าจะไม่ชัดเจนในทันที matrix M M M คือสิ่งที่ได้จากการ ยกกำลังสอง ของ matrix ที่ดูเรียบง่ายกว่า
( ∣ A 0 ∣ N − ∣ A 1 ∣ N ∣ A 1 ∣ N ∣ A 0 ∣ N ) 2 = ( ∣ A 0 ∣ − ∣ A 1 ∣ N − 2 ∣ A 1 ∣ ⋅ ∣ A 0 ∣ N 2 ∣ A 0 ∣ ⋅ ∣ A 1 ∣ N ∣ A 0 ∣ − ∣ A 1 ∣ N ) = M \begin{pmatrix}
\sqrt{\frac{\vert A_0\vert}{N}} & - \sqrt{\frac{\vert A_1\vert}{N}} \\[2mm]
\sqrt{\frac{\vert A_1\vert}{N}} & \sqrt{\frac{\vert A_0\vert}{N}}
\end{pmatrix}^2
=
\begin{pmatrix}
\frac{\vert A_0\vert - \vert A_1\vert}{N} & -\frac{2 \sqrt{\vert A_1\vert \cdot \vert A_0\vert}}{N} \\[2mm]
\frac{2 \sqrt{\vert A_0\vert \cdot \vert A_1\vert}}{N} & \frac{\vert A_0\vert - \vert A_1\vert}{N}
\end{pmatrix} = M N ∣ A 0 ∣ N ∣ A 1 ∣ − N ∣ A 1 ∣ N ∣ A 0 ∣ 2 = N ∣ A 0 ∣ − ∣ A 1 ∣ N 2 ∣ A 0 ∣ ⋅ ∣ A 1 ∣ − N 2 ∣ A 1 ∣ ⋅ ∣ A 0 ∣ N ∣ A 0 ∣ − ∣ A 1 ∣ = M
matrix
( ∣ A 0 ∣ N − ∣ A 1 ∣ N ∣ A 1 ∣ N ∣ A 0 ∣ N ) \begin{pmatrix}
\sqrt{\frac{\vert A_0\vert}{N}} & - \sqrt{\frac{\vert A_1\vert}{N}} \\[2mm]
\sqrt{\frac{\vert A_1\vert}{N}} & \sqrt{\frac{\vert A_0\vert}{N}}
\end{pmatrix} N ∣ A 0 ∣ N ∣ A 1 ∣ − N ∣ A 1 ∣ N ∣ A 0 ∣
คือ rotation matrix ซึ่งเราสามารถแสดงในรูปแบบอื่นได้เป็น
( ∣ A 0 ∣ N − ∣ A 1 ∣ N ∣ A 1 ∣ N ∣ A 0 ∣ N ) = ( cos ( θ ) − sin ( θ ) sin ( θ ) cos ( θ ) ) \begin{pmatrix}
\sqrt{\frac{\vert A_0\vert}{N}} & - \sqrt{\frac{\vert A_1\vert}{N}} \\[2mm]
\sqrt{\frac{\vert A_1\vert}{N}} & \sqrt{\frac{\vert A_0\vert}{N}}
\end{pmatrix}
=
\begin{pmatrix}
\cos(\theta) & -\sin(\theta) \\[2mm]
\sin(\theta) & \cos(\theta)
\end{pmatrix} N ∣ A 0 ∣ N ∣ A 1 ∣ − N ∣ A 1 ∣ N ∣ A 0 ∣ = ( cos ( θ ) sin ( θ ) − sin ( θ ) cos ( θ ) )
สำหรับ
θ = sin − 1 ( ∣ A 1 ∣ N ) . \theta = \sin^{-1}\biggl(\sqrt{\frac{\vert A_1\vert}{N}}\biggr). θ = sin − 1 ( N ∣ A 1 ∣ ) .
มุม θ \theta θ นี้จะมีบทบาทสำคัญมากในการวิเคราะห์ที่ตามมา จึงควรเน้นความสำคัญของมันในครั้งแรกที่เราพบ
เมื่อพิจารณาจากการแสดงนิพจน์ของ matrix นี้ เราสังเกตว่า
M = ( cos ( θ ) − sin ( θ ) sin ( θ ) cos ( θ ) ) 2 = ( cos ( 2 θ ) − sin ( 2 θ ) sin ( 2 θ ) cos ( 2 θ ) ) . M = \begin{pmatrix}
\cos(\theta) & -\sin(\theta) \\[2mm]
\sin(\theta) & \cos(\theta)
\end{pmatrix}^2
= \begin{pmatrix}
\cos(2\theta) & -\sin(2\theta) \\[2mm]
\sin(2\theta) & \cos(2\theta)
\end{pmatrix}. M = ( cos ( θ ) sin ( θ ) − sin ( θ ) cos ( θ ) ) 2 = ( cos ( 2 θ ) sin ( 2 θ ) − sin ( 2 θ ) cos ( 2 θ ) ) .
เพราะการหมุนด้วยมุม θ \theta θ สองครั้งเทียบเท่ากับการหมุนด้วยมุม 2 θ 2\theta 2 θ
อีกวิธีหนึ่งในการเห็นสิ่งนี้คือการใช้นิพจน์อื่น
θ = cos − 1 ( ∣ A 0 ∣ N ) , \theta
= \cos^{-1}\biggl(\sqrt{\frac{\vert A_0\vert}{N}}\biggr), θ = cos − 1 ( N ∣ A 0 ∣ ) ,
พร้อมกับสูตร double angle จากตรีโกณมิติ:
cos ( 2 θ ) = cos 2 ( θ ) − sin 2 ( θ ) sin ( 2 θ ) = 2 sin ( θ ) cos ( θ ) . \begin{aligned}
\cos(2\theta) & = \cos^2(\theta) - \sin^2(\theta)\\[1mm]
\sin(2\theta) & = 2 \sin(\theta)\cos(\theta).
\end{aligned} cos ( 2 θ ) sin ( 2 θ ) = cos 2 ( θ ) − sin 2 ( θ ) = 2 sin ( θ ) cos ( θ ) .
โดยสรุป สถานะของ register Q \mathsf{Q} Q ณ จุดเริ่มต้นของขั้นตอนที่ 2 คือ
∣ u ⟩ = ∣ A 0 ∣ N ∣ A 0 ⟩ + ∣ A 1 ∣ N ∣ A 1 ⟩ = cos ( θ ) ∣ A 0 ⟩ + sin ( θ ) ∣ A 1 ⟩ , \vert u\rangle
= \sqrt{\frac{\vert A_0\vert}{N}} \vert A_0\rangle
+ \sqrt{\frac{\vert A_1\vert}{N}} \vert A_1\rangle
= \cos(\theta) \vert A_0\rangle + \sin(\theta) \vert A_1\rangle, ∣ u ⟩ = N ∣ A 0 ∣ ∣ A 0 ⟩ + N ∣ A 1 ∣ ∣ A 1 ⟩ = cos ( θ ) ∣ A 0 ⟩ + sin ( θ ) ∣ A 1 ⟩ ,
และผลของการนำ G G G ไปใช้กับสถานะนี้คือการหมุนมันด้วยมุม 2 θ 2\theta 2 θ ภายในปริภูมิที่ถูก span ด้วย ∣ A 0 ⟩ \vert A_0\rangle ∣ A 0 ⟩ และ ∣ A 1 ⟩ \vert A_1\rangle ∣ A 1 ⟩
ตัวอย่างเช่น เรามี
G ∣ u ⟩ = cos ( 3 θ ) ∣ A 0 ⟩ + sin ( 3 θ ) ∣ A 1 ⟩ G 2 ∣ u ⟩ = cos ( 5 θ ) ∣ A 0 ⟩ + sin ( 5 θ ) ∣ A 1 ⟩ G 3 ∣ u ⟩ = cos ( 7 θ ) ∣ A 0 ⟩ + sin ( 7 θ ) ∣ A 1 ⟩ \begin{aligned}
G \vert u \rangle &= \cos(3\theta) \vert A_0\rangle + \sin(3\theta) \vert A_1\rangle\\[1mm]
G^2 \vert u \rangle &= \cos(5\theta) \vert A_0\rangle + \sin(5\theta) \vert A_1\rangle\\[1mm]
G^3 \vert u \rangle &= \cos(7\theta) \vert A_0\rangle + \sin(7\theta) \vert A_1\rangle
\end{aligned} G ∣ u ⟩ G 2 ∣ u ⟩ G 3 ∣ u ⟩ = cos ( 3 θ ) ∣ A 0 ⟩ + sin ( 3 θ ) ∣ A 1 ⟩ = cos ( 5 θ ) ∣ A 0 ⟩ + sin ( 5 θ ) ∣ A 1 ⟩ = cos ( 7 θ ) ∣ A 0 ⟩ + sin ( 7 θ ) ∣ A 1 ⟩
และโดยทั่วไป
G t ∣ u ⟩ = cos ( ( 2 t + 1 ) θ ) ∣ A 0 ⟩ + sin ( ( 2 t + 1 ) θ ) ∣ A 1 ⟩ . G^t \vert u \rangle
= \cos\bigl((2t + 1)\theta\bigr) \vert A_0\rangle
+ \sin\bigl((2t + 1)\theta\bigr) \vert A_1\rangle. G t ∣ u ⟩ = cos ( ( 2 t + 1 ) θ ) ∣ A 0 ⟩ + sin ( ( 2 t + 1 ) θ ) ∣ A 1 ⟩ .
ภาพเรขาคณิต
ตอนนี้ลองเชื่อมโยงการวิเคราะห์ที่เราเพิ่งผ่านไปกับภาพเรขาคณิต
แนวคิดคือการดำเนินการ G G G คือผลคูณของ การสะท้อน สองครั้ง
ได้แก่ Z f Z_f Z f และ H ⊗ n Z O R H ⊗ n H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} H ⊗ n Z OR H ⊗ n
และผลสุทธิของการทำ reflection สองครั้งคือการทำ rotation
เริ่มจาก Z f Z_f Z f
ดังที่เราสังเกตไว้ก่อนหน้านี้ เรามี
Z f ∣ A 0 ⟩ = ∣ A 0 ⟩ Z f ∣ A 1 ⟩ = − ∣ A 1 ⟩ . \begin{aligned}
Z_f \vert A_0\rangle & = \vert A_0\rangle \\[1mm]
Z_f \vert A_1\rangle & = -\vert A_1\rangle.
\end{aligned} Z f ∣ A 0 ⟩ Z f ∣ A 1 ⟩ = ∣ A 0 ⟩ = − ∣ A 1 ⟩ .
ภายในปริภูมิเวกเตอร์สองมิติที่ถูก span ด้วย ∣ A 0 ⟩ \vert A_0\rangle ∣ A 0 ⟩ และ ∣ A 1 ⟩ , \vert A_1\rangle, ∣ A 1 ⟩ ,
นี่คือ การสะท้อน เกี่ยวกับเส้นที่ขนานกับ ∣ A 0 ⟩ \vert A_0\rangle ∣ A 0 ⟩ ซึ่งเราจะเรียกว่า L 1 L_1 L 1
ต่อไปนี้คือรูปที่แสดงการกระทำของการสะท้อนนี้บนเวกเตอร์หน่วยสมมติ ∣ ψ ⟩ , \vert\psi\rangle, ∣ ψ ⟩ ,
ซึ่งเราสมมติว่าเป็นผลรวมเชิงเส้นจริงของ ∣ A 0 ⟩ \vert A_0\rangle ∣ A 0 ⟩ และ ∣ A 1 ⟩ \vert A_1\rangle ∣ A 1 ⟩
ประการที่สอง เรามีการดำเนินการ H ⊗ n Z O R H ⊗ n , H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n}, H ⊗ n Z OR H ⊗ n , ซึ่งเราได้เห็นแล้วว่าสามารถเขียนได้เป็น
H ⊗ n Z O R H ⊗ n = 2 ∣ u ⟩ ⟨ u ∣ − I . H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} = 2 \vert u \rangle \langle u \vert - \mathbb{I}. H ⊗ n Z OR H ⊗ n = 2∣ u ⟩ ⟨ u ∣ − I .
นี่ก็เป็นการสะท้อนเช่นกัน คราวนี้เกี่ยวกับเส้น L 2 L_2 L 2 ที่ขนานกับเวกเตอร์ ∣ u ⟩ \vert u\rangle ∣ u ⟩
ต่อไปนี้คือรูปที่แสดงการกระทำของการสะท้อนนี้บนเวกเตอร์หน่วย ∣ ψ ⟩ \vert\psi\rangle ∣ ψ ⟩
เมื่อเราประกอบการสะท้อนสองครั้งนี้ เราจะได้การหมุน — ด้วยสองเท่าของมุมระหว่างเส้นสะท้อน — ดังที่รูปนี้แสดง
นี่อธิบายในแง่เรขาคณิตว่าทำไมผลของการดำเนินการ Grover จึงเป็นการหมุนผลรวมเชิงเส้นของ ∣ A 0 ⟩ \vert A_0\rangle ∣ A 0 ⟩ และ ∣ A 1 ⟩ \vert A_1\rangle ∣ A 1 ⟩ ด้วยมุม 2 θ 2\theta 2 θ