เราได้พิสูจน์แล้วว่าเวกเตอร์สถานะของ register Q \mathsf{Q} Q ในอัลกอริทึมของ Grover ยังคงอยู่ใน subspace สองมิติที่ถูก span ด้วย ∣ A 0 ⟩ \vert A_0\rangle ∣ A 0 ⟩ และ ∣ A 1 ⟩ \vert A_1\rangle ∣ A 1 ⟩ เมื่อขั้นตอนการตั้งค่าเริ่มต้นเสร็จสิ้น
เป้าหมายคือการหาสมาชิก x ∈ A 1 , x\in A_1, x ∈ A 1 , และเป้าหมายนี้จะสำเร็จหากเราสามารถได้สถานะ ∣ A 1 ⟩ \vert A_1\rangle ∣ A 1 ⟩ — เพราะถ้าเราวัดสถานะนี้ เรารับประกันว่าจะได้ผลการวัด x ∈ A 1 x\in A_1 x ∈ A 1
เมื่อสถานะของ Q \mathsf{Q} Q หลังจาก t t t รอบในขั้นตอนที่ 2 คือ
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 ⟩ ,
เราควรเลือก t t t เพื่อให้
⟨ A 1 ∣ G t ∣ u ⟩ = sin ( ( 2 t + 1 ) θ ) \langle A_1 \vert G^t \vert u \rangle =
\sin((2t + 1)\theta) ⟨ A 1 ∣ G t ∣ u ⟩ = sin (( 2 t + 1 ) θ )
ใกล้เคียง 1 1 1 มากที่สุดในค่าสัมบูรณ์ เพื่อเพิ่มความน่าจะเป็นที่จะได้ x ∈ A 1 x\in A_1 x ∈ A 1 จากการวัด
สำหรับมุมใดๆ θ ∈ ( 0 , 2 π ) , \theta \in (0,2\pi), θ ∈ ( 0 , 2 π ) , ค่า sin ( ( 2 t + 1 ) θ ) \sin((2t + 1)\theta) sin (( 2 t + 1 ) θ ) จะ แกว่ง เมื่อ t t t เพิ่มขึ้น แม้ว่าจะไม่จำเป็นต้องเป็น periodic — ไม่มีการรับประกันว่าเราจะได้ค่าเดิมซ้ำ
ตามธรรมชาติ นอกจากการทำให้ความน่าจะเป็นที่จะได้สมาชิก x ∈ A 1 x\in A_1 x ∈ A 1 จากการวัดมีค่าสูงแล้ว เราก็ต้องการเลือก t t t ให้น้อยที่สุดเท่าที่จะทำได้ เพราะการใช้ t t t ครั้งของการดำเนินการ G G G ต้องการ t t t คำถามถึงฟังก์ชัน f f f
เพราะเรามุ่งทำให้ sin ( ( 2 t + 1 ) θ ) \sin( (2t + 1) \theta) sin (( 2 t + 1 ) θ ) ใกล้เคียง 1 1 1 ในค่าสัมบูรณ์ วิธีที่เป็นธรรมชาติในการทำเช่นนี้คือเลือก t t t เพื่อให้
( 2 t + 1 ) θ ≈ π 2 . (2t + 1) \theta \approx \frac{\pi}{2}. ( 2 t + 1 ) θ ≈ 2 π .
การหาค่า t t t ให้ได้
t ≈ π 4 θ − 1 2 . t \approx \frac{\pi}{4\theta} - \frac{1}{2}. t ≈ 4 θ π − 2 1 .
แน่นอนว่า t t t ต้องเป็นจำนวนเต็ม ดังนั้นเราอาจไม่สามารถได้ค่านี้พอดี — แต่สิ่งที่เราทำได้คือเลือกจำนวนเต็มที่ใกล้เคียงที่สุดกับค่านี้ ซึ่งคือ
t = ⌊ π 4 θ ⌋ . t = \Bigl\lfloor \frac{\pi}{4\theta} \Bigr\rfloor. t = ⌊ 4 θ π ⌋ .
นี่คือจำนวนรอบการวนซ้ำที่แนะนำสำหรับอัลกอริทึมของ Grover
เมื่อเราดำเนินการวิเคราะห์ต่อ เราจะเห็นว่าความใกล้เคียงของจำนวนเต็มนี้กับค่าเป้าหมายส่งผลต่อประสิทธิภาพของอัลกอริทึมตามธรรมชาติ
(สำหรับข้อสังเกต หากค่าเป้าหมาย π / ( 4 θ ) − 1 / 2 \pi/(4\theta) - 1/2 π / ( 4 θ ) − 1/2 อยู่กึ่งกลางระหว่างจำนวนเต็มสองตัวพอดี นิพจน์ t t t นี้คือสิ่งที่ได้จากการปัดขึ้น เราอาจเลือกปัดลงแทน ซึ่งสมเหตุสมผลเพราะหมายถึงคำถามน้อยลงหนึ่งครั้ง — แต่นี่เป็นเรื่องรองและไม่สำคัญสำหรับบทเรียนนี้)
จำไว้ว่าค่าของมุม θ \theta θ ให้โดยสูตร
θ = sin − 1 ( ∣ A 1 ∣ N ) , \theta = \sin^{-1}\biggl(\sqrt{\frac{\vert A_1\vert}{N}}\biggr), θ = sin − 1 ( N ∣ A 1 ∣ ) ,
เราจะเห็นว่าจำนวนรอบการวนซ้ำที่แนะนำ t t t ขึ้นอยู่กับจำนวนสตริงใน A 1 A_1 A 1
นี่สร้างความท้าทายหากเราไม่รู้จำนวนคำตอบ ดังที่เราจะพูดถึงในภายหลัง
การค้นหาเอกลักษณ์
ก่อนอื่น ลองมุ่งเน้นไปที่สถานการณ์ที่มีสตริง x x x เดียวที่ f ( x ) = 1 f(x)=1 f ( x ) = 1
อีกวิธีในการพูดนี้คือเรากำลังพิจารณา instance ของปัญหา Unique search
ในกรณีนี้เรามี
θ = sin − 1 ( 1 N ) , \theta = \sin^{-1}\biggl( \sqrt{\frac{1}{N}} \biggr), θ = sin − 1 ( N 1 ) ,
ซึ่งสามารถประมาณได้อย่างสะดวกเป็น
θ = sin − 1 ( 1 N ) ≈ 1 N \theta = \sin^{-1}\biggl( \sqrt{\frac{1}{N}} \biggr) \approx \sqrt{\frac{1}{N}} θ = sin − 1 ( N 1 ) ≈ N 1
เมื่อ N N N มีค่ามาก
ถ้าเราแทน θ = 1 / N \theta = 1/\sqrt{N} θ = 1/ N ในนิพจน์
t = ⌊ π 4 θ ⌋ t = \Bigl\lfloor \frac{\pi}{4\theta} \Bigr\rfloor t = ⌊ 4 θ π ⌋
เราจะได้
t = ⌊ π 4 N ⌋ . t = \Bigl\lfloor \frac{\pi}{4}\sqrt{N} \Bigr\rfloor. t = ⌊ 4 π N ⌋ .
เมื่อนึกถึงว่า t t t ไม่เพียงแต่เป็นจำนวนครั้งที่การดำเนินการ G G G ถูกนำไปใช้ แต่ยังเป็นจำนวนคำถามถึงฟังก์ชัน f f f ที่อัลกอริทึมต้องการ เราจะเห็นว่าเรากำลังดำเนินการสู่การได้อัลกอริทึมที่ต้องการ O ( N ) O(\sqrt{N}) O ( N ) คำถาม
ตอนนี้เราจะตรวจสอบว่าการเลือก t t t ที่แนะนำทำงานได้ดีแค่ไหน
ความน่าจะเป็นที่การวัดสุดท้ายจะให้ผลเป็นคำตอบเอกลักษณ์สามารถแสดงได้อย่างชัดเจนเป็น
p ( N , 1 ) = sin 2 ( ( 2 t + 1 ) θ ) . p(N,1) = \sin^2 \bigl( (2t + 1) \theta \bigr). p ( N , 1 ) = sin 2 ( ( 2 t + 1 ) θ ) .
อาร์กิวเมนต์แรก N N N หมายถึงจำนวนไอเทมที่เราค้นหา และอาร์กิวเมนต์ที่สองซึ่งเป็น 1 1 1 ในกรณีนี้ หมายถึงจำนวนคำตอบ
ในภายหลังเราจะใช้สัญกรณ์เดิมนี้อย่างทั่วไปขึ้น โดยมีคำตอบหลายตัว
ต่อไปนี้คือตารางความน่าจะเป็นของความสำเร็จสำหรับค่า N = 2 n N = 2^n N = 2 n ที่เพิ่มขึ้น
N p ( N , 1 ) 2 0.5000000000 4 1.0000000000 8 0.9453125000 16 0.9613189697 32 0.9991823155 64 0.9965856808 128 0.9956198657 256 0.9999470421 512 0.9994480262 1024 0.9994612447 2048 0.9999968478 4096 0.9999453461 8192 0.9999157752 16384 0.9999997811 32768 0.9999868295 65536 0.9999882596 \begin{array}{ll}
N & p(N,1)\\ \hline
2 & 0.5000000000\\
4 & 1.0000000000\\
8 & 0.9453125000\\
16 & 0.9613189697\\
32 & 0.9991823155\\
64 & 0.9965856808\\
128 & 0.9956198657\\
256 & 0.9999470421\\
512 & 0.9994480262\\
1024 & 0.9994612447\\
2048 & 0.9999968478\\
4096 & 0.9999453461\\
8192 & 0.9999157752\\
16384 & 0.9999997811\\
32768 & 0.9999868295\\
65536 & 0.9999882596
\end{array} N 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 p ( N , 1 ) 0.5000000000 1.0000000000 0.9453125000 0.9613189697 0.9991823155 0.9965856808 0.9956198657 0.9999470421 0.9994480262 0.9994612447 0.9999968478 0.9999453461 0.9999157752 0.9999997811 0.9999868295 0.9999882596
สังเกตว่าความน่าจะเป็นเหล่านี้ไม่ได้เพิ่มขึ้นอย่างเคร่งครัด
โดยเฉพาะอย่างยิ่ง เรามีความผิดปกติที่น่าสนใจเมื่อ N = 4 N=4 N = 4 ที่เราได้คำตอบอย่างแน่นอน
อย่างไรก็ตาม สามารถพิสูจน์ได้โดยทั่วไปว่า
p ( N , 1 ) ≥ 1 − 1 N p(N,1) \geq 1 - \frac{1}{N} p ( N , 1 ) ≥ 1 − N 1
สำหรับ N N N ทั้งหมด ดังนั้นความน่าจะเป็นของความสำเร็จจะเข้าหา 1 1 1 ในขีดจำกัดเมื่อ N N N มีค่ามาก ดังที่ค่าข้างต้นดูเหมือนจะบ่งบอก
ดีมาก!
แต่สังเกตว่า แม้แต่ขอบเขตอ่อนเช่น p ( N , 1 ) ≥ 1 / 2 p(N,1) \geq 1/2 p ( N , 1 ) ≥ 1/2 ก็ยังแสดงถึงประโยชน์ของอัลกอริทึมของ Grover
ไม่ว่าผลการวัด x x x ที่เราได้จากการรันขั้นตอน เราสามารถตรวจสอบเสมอว่า f ( x ) = 1 f(x) = 1 f ( x ) = 1 โดยใช้คำถามเดียวถึง f f f
และถ้าเราล้มเหลวในการได้สตริงเอกลักษณ์ x x x ที่ f ( x ) = 1 f(x) = 1 f ( x ) = 1 ด้วยความน่าจะเป็นสูงสุด 1 / 2 1/2 1/2 จากการรันขั้นตอนหนึ่งครั้ง หลังจากรัน m m m ครั้งอิสระ เราจะล้มเหลวในการได้สตริงเอกลักษณ์ x x x นี้ด้วยความน่าจะเป็นสูงสุด 2 − m 2^{-m} 2 − m
กล่าวคือ โดยใช้ O ( m N ) O(m \sqrt{N}) O ( m N ) คำถามถึง f f f เราจะได้คำตอบเอกลักษณ์ x x x ด้วยความน่าจะเป็นอย่างน้อย 1 − 2 − m 1 - 2^{-m} 1 − 2 − m
การใช้ขอบเขตที่ดีกว่า p ( N , 1 ) ≥ 1 − 1 / N p(N,1) \geq 1 - 1/N p ( N , 1 ) ≥ 1 − 1/ N แสดงให้เห็นว่าความน่าจะเป็นที่จะหา x ∈ A 1 x\in A_1 x ∈ A 1 โดยวิธีนี้จริงๆ แล้วอย่างน้อย 1 − N − m 1 - N^{-m} 1 − N − m
คำตอบหลายตัว
เมื่อจำนวนสมาชิกใน A 1 A_1 A 1 เปลี่ยนแปลง มุม θ \theta θ ก็เปลี่ยนตาม ซึ่งอาจส่งผลอย่างมีนัยสำคัญต่อความน่าจะเป็นของความสำเร็จของอัลกอริทึม
เพื่อความกระชับ ลองเขียน s = ∣ A 1 ∣ s = \vert A_1 \vert s = ∣ A 1 ∣ เพื่อแทนจำนวนคำตอบ และดังก่อนหน้านี้เราจะสมมติว่า s ≥ 1 s\geq 1 s ≥ 1
สำหรับตัวอย่างที่จูงใจ ลองจินตนาการว่าเรามี s = 4 s = 4 s = 4 คำตอบแทนที่จะเป็นคำตอบเดียวอย่างที่เราพิจารณาข้างต้น
ซึ่งหมายความว่า
θ = sin − 1 ( 4 N ) , \theta = \sin^{-1}\biggl( \sqrt{\frac{4}{N}} \biggr), θ = sin − 1 ( N 4 ) ,
ซึ่งมีค่าประมาณสองเท่าของมุมที่เรามีในกรณี ∣ A 1 ∣ = 1 \vert A_1 \vert = 1 ∣ A 1 ∣ = 1 เมื่อ N N N มีค่ามาก
สมมติว่าเราไม่รู้ดีกว่านี้ และเลือกค่า t t t เดิมอย่างในการตั้งค่าคำตอบเอกลักษณ์:
t = ⌊ π 4 sin − 1 ( 1 / N ) ⌋ . t = \Biggl\lfloor \frac{\pi}{4\sin^{-1}\bigl(1/\sqrt{N}\bigr)}\Biggr\rfloor. t = ⌊ 4 sin − 1 ( 1/ N ) π ⌋ .
ผลจะเป็นหายนะดังที่ตารางความน่าจะเป็นต่อไปนี้เปิดเผย
N ความน่าจะเป็นของความสำเร็จ 4 1.0000000000 8 0.5000000000 16 0.2500000000 32 0.0122070313 64 0.0203807689 128 0.0144530758 256 0.0000705058 512 0.0019310741 1024 0.0023009083 2048 0.0000077506 4096 0.0002301502 8192 0.0003439882 16384 0.0000007053 32768 0.0000533810 65536 0.0000472907 \begin{array}{ll}
N & \text{ความน่าจะเป็นของความสำเร็จ}\\ \hline
4 & 1.0000000000\\
8 & 0.5000000000\\
16 & 0.2500000000\\
32 & 0.0122070313\\
64 & 0.0203807689\\
128 & 0.0144530758\\
256 & 0.0000705058\\
512 & 0.0019310741\\
1024 & 0.0023009083\\
2048 & 0.0000077506\\
4096 & 0.0002301502\\
8192 & 0.0003439882\\
16384 & 0.0000007053\\
32768 & 0.0000533810\\
65536 & 0.0000472907
\end{array} N 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 ความน่าจะเป็นของความสำเร็จ 1.0000000000 0.5000000000 0.2500000000 0.0122070313 0.0203807689 0.0144530758 0.0000705058 0.0019310741 0.0023009083 0.0000077506 0.0002301502 0.0003439882 0.0000007053 0.0000533810 0.0000472907
คราวนี้ความน่าจะเป็นของความสำเร็จเข้าหา 0 0 0 เมื่อ N N N เข้าหาอนันต์
สิ่งนี้เกิดขึ้นเพราะเราหมุนเร็วเป็นสองเท่าของตอนที่มีคำตอบเอกลักษณ์ ทำให้เราพุ่งผ่านเป้าหมาย ∣ A 1 ⟩ \vert A_1\rangle ∣ A 1 ⟩ และไปลงที่ใกล้ − ∣ A 0 ⟩ -\vert A_0\rangle − ∣ A 0 ⟩
อย่างไรก็ตาม ถ้าแทนที่เราใช้การเลือก t t t ที่แนะนำ ซึ่งคือ
t = ⌊ π 4 θ ⌋ t = \Bigl\lfloor \frac{\pi}{4\theta}\Bigr\rfloor t = ⌊ 4 θ π ⌋
สำหรับ
θ = sin − 1 ( s N ) , \theta = \sin^{-1}\biggl( \sqrt{\frac{s}{N}} \biggr), θ = sin − 1 ( N s ) ,
ประสิทธิภาพจะดีขึ้น
พูดให้ชัดขึ้น การใช้การเลือก t t t นี้นำไปสู่ความสำเร็จด้วยความน่าจะเป็นสูง
N p ( N , 4 ) 4 1.0000000000 8 0.5000000000 16 1.0000000000 32 0.9453125000 64 0.9613189697 128 0.9991823155 256 0.9965856808 512 0.9956198657 1024 0.9999470421 2048 0.9994480262 4096 0.9994612447 8192 0.9999968478 16384 0.9999453461 32768 0.9999157752 65536 0.9999997811 \begin{array}{ll}
N & p(N,4)\\ \hline
4 & 1.0000000000\\
8 & 0.5000000000\\
16 & 1.0000000000\\
32 & 0.9453125000\\
64 & 0.9613189697\\
128 & 0.9991823155\\
256 & 0.9965856808\\
512 & 0.9956198657\\
1024 & 0.9999470421\\
2048 & 0.9994480262\\
4096 & 0.9994612447\\
8192 & 0.9999968478\\
16384 & 0.9999453461\\
32768 & 0.9999157752\\
65536 & 0.9999997811
\end{array} N 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 p ( N , 4 ) 1.0000000000 0.5000000000 1.0000000000 0.9453125000 0.9613189697 0.9991823155 0.9965856808 0.9956198657 0.9999470421 0.9994480262 0.9994612447 0.9999968478 0.9999453461 0.9999157752 0.9999997811
เมื่อสรุปสิ่งที่กล่าวไว้ก่อนหน้านี้ สามารถพิสูจน์ได้ว่า
p ( N , s ) ≥ 1 − s N , p(N,s) \geq 1 - \frac{s}{N}, p ( N , s ) ≥ 1 − N s ,
ที่เราใช้สัญกรณ์ที่แนะนำก่อนหน้านี้: p ( N , s ) p(N,s) p ( N , s ) แทนความน่าจะเป็นที่อัลกอริทึมของ Grover ที่รันเป็นเวลา t t t รอบจะเปิดเผยคำตอบเมื่อมี s s s คำตอบทั้งหมดจาก N N N ความเป็นไปได้
ขอบเขตล่าง 1 − s / N 1 - s/N 1 − s / N ของความน่าจะเป็นของความสำเร็จนี้ค่อนข้างแปลก ตรงที่คำตอบมากขึ้นหมายถึงขอบเขตล่างที่แย่ลง — แต่ภายใต้สมมติฐานว่า s s s น้อยกว่า N N N อย่างมีนัยสำคัญ เราก็ยังสรุปได้ว่าความน่าจะเป็นของความสำเร็จอยู่ในระดับที่ดีพอสมควร
ดังเดิม ข้อเท็จจริงที่ว่า p ( N , s ) p(N,s) p ( N , s ) มีค่าพอสมควรแสดงถึงประโยชน์ของอัลกอริทึม
นอกจากนี้ยังเป็นความจริงที่ว่า
p ( N , s ) ≥ s N . p(N,s) \geq \frac{s}{N}. p ( N , s ) ≥ N s .
ขอบเขตล่างนี้อธิบายความน่าจะเป็นที่สตริง x ∈ Σ n x\in\Sigma^n x ∈ Σ n ที่เลือกแบบสุ่มสม่ำเสมอจะเป็นคำตอบ — ดังนั้นอัลกอริทึมของ Grover จะทำงานได้ดีอย่างน้อยเท่ากับการเดาแบบสุ่มเสมอ
(ที่จริงแล้ว เมื่อ t = 0 , t=0, t = 0 , อัลกอริทึมของ Grover คือ การเดาแบบสุ่ม)
ตอนนี้ลองดูจำนวนรอบการวนซ้ำ (และด้วยเหตุนี้จำนวนคำถาม)
t = ⌊ π 4 θ ⌋ , t = \Bigl\lfloor \frac{\pi}{4\theta}\Bigr\rfloor, t = ⌊ 4 θ π ⌋ ,
สำหรับ
θ = sin − 1 ( s N ) . \theta = \sin^{-1}\biggl(\sqrt{\frac{s}{N}}\biggr). θ = sin − 1 ( N s ) .
สำหรับทุก α ∈ [ 0 , 1 ] , \alpha \in [0,1], α ∈ [ 0 , 1 ] , เป็นความจริงที่ว่า sin − 1 ( α ) ≥ α , \sin^{-1}(\alpha)\geq \alpha, sin − 1 ( α ) ≥ α ,
ดังนั้น
θ = sin − 1 ( s N ) ≥ s N . \theta = \sin^{-1}\left(\sqrt{\frac{s}{N}}\right) \geq \sqrt{\frac{s}{N}}. θ = sin − 1 ( N s ) ≥ N s .
ซึ่งหมายความว่า
t ≤ π 4 θ ≤ π 4 N s . t \leq \frac{\pi}{4\theta} \leq \frac{\pi}{4}\sqrt{\frac{N}{s}}. t ≤ 4 θ π ≤ 4 π s N .
นี่แปลไปสู่การประหยัดในจำนวนคำถามเมื่อ s s s เพิ่มขึ้น
โดยเฉพาะอย่างยิ่ง จำนวนคำถามที่ต้องการคือ
O ( N s ) . O\biggl(\sqrt{\frac{N}{s}}\biggr). O ( s N ) .
จำนวนคำตอบที่ไม่รู้
หากจำนวนคำตอบ s = ∣ A 1 ∣ s = \vert A_1 \vert s = ∣ A 1 ∣ ไม่ทราบ จำเป็นต้องใช้วิธีการที่ต่างออกไป เพราะในสถานการณ์นี้เราไม่มีความรู้เกี่ยวกับ s s s เพื่อแจ้งการเลือก t t t ของเรา
อันที่จริงมีหลายวิธีการ
วิธีหนึ่งที่เรียบง่ายคือการเลือก
t ∈ { 1 , … , ⌊ π N / 4 ⌋ } t \in \Bigl\{ 1,\ldots,\bigl\lfloor\pi\sqrt{N}/4\bigr\rfloor \Bigr\} t ∈ { 1 , … , ⌊ π N /4 ⌋ }
แบบสุ่มสม่ำเสมอ
การเลือก t t t ในลักษณะนี้จะหาคำตอบได้เสมอ (สมมติว่ามีคำตอบอยู่) ด้วยความน่าจะเป็นมากกว่า 40% แม้ว่าสิ่งนี้จะไม่ชัดเจนและต้องการการวิเคราะห์ที่จะไม่รวมอยู่ที่นี่
อย่างไรก็ตาม มันสมเหตุสมผล โดยเฉพาะเมื่อเราคิดถึงภาพเรขาคณิต:
การหมุนสถานะของ Q \mathsf{Q} Q จำนวนครั้งแบบสุ่มเช่นนี้ไม่ต่างจากการเลือกเวกเตอร์หน่วยแบบสุ่มในปริภูมิที่ถูก span ด้วย ∣ A 0 ⟩ \vert A_0\rangle ∣ A 0 ⟩ และ ∣ A 1 ⟩ \vert A_1\rangle ∣ A 1 ⟩ ซึ่งมีแนวโน้มที่ค่าสัมประสิทธิ์ของ ∣ A 1 ⟩ \vert A_1\rangle ∣ A 1 ⟩ จะมีค่าพอสมควร
ด้วยการทำซ้ำขั้นตอนนี้และตรวจสอบผลลัพธ์ในลักษณะเดียวกับที่อธิบายก่อนหน้านี้ ความน่าจะเป็นที่จะหาคำตอบสามารถทำให้ใกล้เคียง 1 1 1 มากได้
มีวิธีที่ปรับปรุงแล้วซึ่งหาคำตอบเมื่อมีอยู่โดยใช้ O ( N / s ) O(\sqrt{N/s}) O ( N / s ) คำถาม แม้ไม่ทราบจำนวนคำตอบ s s s และต้องการ O ( N ) O(\sqrt{N}) O ( N ) คำถามเพื่อพิจารณาว่าไม่มีคำตอบเมื่อ s = 0 s=0 s = 0
แนวคิดพื้นฐานคือการเลือก t t t แบบสุ่มสม่ำเสมอจากเซต { 1 , … , T } \{1,\ldots,T\} { 1 , … , T } แบบวนซ้ำ สำหรับค่า T T T ที่เพิ่มขึ้น
โดยเฉพาะอย่างยิ่ง เราสามารถเริ่มต้นด้วย T = 1 T = 1 T = 1 และเพิ่มขึ้นแบบ exponential โดยสิ้นสุดกระบวนการทันทีที่หาคำตอบได้ และกำหนดเพดาน T T T เพื่อไม่สูญเสียคำถามเมื่อไม่มีคำตอบ
กระบวนการใช้ประโยชน์จากข้อเท็จจริงที่ว่าต้องการคำถามน้อยกว่าเมื่อมีคำตอบมากขึ้น
อย่างไรก็ตาม ต้องระมัดระวัง เพื่อสมดุลอัตราการเติบโตของ T T T กับความน่าจะเป็นของความสำเร็จในแต่ละรอบ
(การใช้ T ← ⌈ 5 4 T ⌉ T \leftarrow \lceil \frac{5}{4}T\rceil T ← ⌈ 4 5 T ⌉ ทำงานได้ ตามที่การวิเคราะห์แสดงให้เห็น
แต่การเพิ่มสองเท่าของ T T T ไม่ทำงาน — นี่กลายเป็นการเพิ่มที่เร็วเกินไป)
กรณีที่เป็นกิจวัตร
ตลอดการวิเคราะห์ที่เราเพิ่งผ่านไป เราสมมติว่าจำนวนคำตอบไม่ใช่ศูนย์
อันที่จริง โดยการอ้างถึงเวกเตอร์
∣ 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 ทั้งคู่ไม่ว่างเปล่า
ที่นี่เราจะพิจารณาโดยย่อว่าจะเกิดอะไรขึ้นเมื่อเซตใดเซตหนึ่งว่างเปล่า
ก่อนที่เราจะวิเคราะห์ ลองสังเกตสิ่งที่ชัดเจน:
หากทุกสตริง x ∈ Σ n x\in\Sigma^n x ∈ Σ n เป็นคำตอบ เราก็จะเห็นคำตอบเมื่อเราวัด และเมื่อไม่มีคำตอบ เราก็จะไม่เห็น
ในแง่หนึ่งไม่จำเป็นต้องไปลึกกว่านี้
อย่างไรก็ตาม เราสามารถตรวจสอบคณิตศาสตร์สำหรับกรณีที่เป็นกิจวัตรเหล่านี้ได้อย่างรวดเร็ว
สถานการณ์ที่ A 0 A_0 A 0 หรือ A 1 A_1 A 1 หนึ่งในนั้นว่างเปล่าเกิดขึ้นเมื่อ f f f เป็น constant;
A 1 A_1 A 1 ว่างเปล่าเมื่อ f ( x ) = 0 f(x) = 0 f ( x ) = 0 สำหรับทุก x ∈ Σ n , x\in\Sigma^n, x ∈ Σ n , และ A 0 A_0 A 0 ว่างเปล่าเมื่อ f ( x ) = 1 f(x) = 1 f ( x ) = 1 สำหรับทุก x ∈ Σ n x\in\Sigma^n x ∈ Σ n
ซึ่งหมายความว่า
Z f ∣ u ⟩ = ± ∣ u ⟩ , Z_f \vert u\rangle = \pm \vert u\rangle, Z f ∣ u ⟩ = ± ∣ u ⟩ ,
และดังนั้น
G ∣ u ⟩ = ( 2 ∣ u ⟩ ⟨ u ∣ − I ) Z f ∣ u ⟩ = ± ( 2 ∣ u ⟩ ⟨ u ∣ − I ) ∣ u ⟩ = ± ∣ u ⟩ . \begin{aligned}
G \vert u \rangle
& = \bigl( 2 \vert u\rangle \langle u \vert - \mathbb{I}\bigr) Z_f\vert u\rangle \\
& = \pm \bigl( 2 \vert u\rangle \langle u \vert - \mathbb{I}\bigr) \vert u\rangle \\
& = \pm \vert u\rangle.
\end{aligned} G ∣ u ⟩ = ( 2∣ u ⟩ ⟨ u ∣ − I ) Z f ∣ u ⟩ = ± ( 2∣ u ⟩ ⟨ u ∣ − I ) ∣ u ⟩ = ± ∣ u ⟩ .
ดังนั้น ไม่ว่าจำนวนรอบการวนซ้ำ t t t ที่เราทำในกรณีเหล่านี้ การวัดจะเปิดเผยสตริงสุ่มสม่ำเสมอ x ∈ Σ n x\in\Sigma^n x ∈ Σ n เสมอ