קבענו שוקטור המצב של הרגיסטר Q באלגוריתם גרובר נשאר בתת-המרחב הדו-ממדי הנפרש על ידי ∣A0⟩ ו-∣A1⟩ לאחר שביצענו את שלב האתחול.
המטרה היא למצוא איבר x∈A1, ומטרה זו תושג אם נוכל לקבל את המצב ∣A1⟩ — שכן אם נמדוד מצב זה, מובטח לנו שנקבל תוצאת מדידה x∈A1.
מאחר שהמצב של Q לאחר t איטרציות בשלב 2 הוא
Gt∣u⟩=cos((2t+1)θ)∣A0⟩+sin((2t+1)θ)∣A1⟩,
עלינו לבחור t כך ש-
⟨A1∣Gt∣u⟩=sin((2t+1)θ)
יהיה קרוב ככל האפשר ל-1 בערך מוחלט, כדי למקסם את ההסתברות לקבל x∈A1 מהמדידה.
לכל זווית θ∈(0,2π), הערך sin((2t+1)θ)מתנדנד כשגדל t, אם כי הוא לא בהכרח מחזורי — אין ערובה שנקבל אי פעם את אותו ערך פעמיים.
כמובן, בנוסף לכך שנרצה שהסתברות לקבל איבר x∈A1 מהמדידה תהיה גבוהה, נרצה גם לבחור t קטן ככל האפשר, כי t פעולות של G דורשות t שאילתות לפונקציה f.
מאחר שאנחנו שואפים ש-sin((2t+1)θ) יהיה קרוב ל-1 בערך מוחלט, דרך טבעית לעשות זאת היא לבחור t כך ש-
(2t+1)θ≈2π.
פתרון עבור t נותן
t≈4θπ−21.
כמובן, t חייב להיות מספר שלם, ולכן לא בהכרח נוכל לפגוע בערך זה במדויק — אבל מה שאנחנו יכולים לעשות הוא לקחת את המספר השלם הקרוב ביותר לערך זה, שהוא
t=⌊4θπ⌋.
זהו מספר האיטרציות המומלץ לאלגוריתם גרובר.
כשנמשיך בניתוח, נראה שקרבת המספר השלם הזה לערך היעד משפיעה באופן טבעי על ביצועי האלגוריתם.
(אגב, אם ערך היעד π/(4θ)−1/2 מקרה ונמצא בדיוק באמצע בין שני מספרים שלמים, הביטוי של t שקיבלנו הוא עיגול כלפי מעלה. לחלופין, אפשר לעגל כלפי מטה, וזה הגיוני כי משמעותו שאילתה אחת פחות — אבל זו נקודה משנית שאינה חשובה לצורך השיעור.)
נזכיר שהערך של הזווית θ נתון על פי הנוסחה
θ=sin−1(N∣A1∣),
ולכן אנו רואים שמספר האיטרציות המומלץ t תלוי במספר המחרוזות ב-A1.
זה מציב אתגר אם אנחנו לא יודעים כמה פתרונות יש לנו, כפי שנדון בהמשך.
ראשית, נתמקד במצב שבו יש מחרוזת אחת בלבד x כך ש-f(x)=1.
דרך נוספת לומר זאת היא שאנחנו בוחנים מופע של בעיית חיפוש ייחודי.
במקרה זה יש לנו
θ=sin−1(N1),
שניתן לקרב בנוחות כ-
θ=sin−1(N1)≈N1
כאשר N גדול.
אם נציב θ=1/N בביטוי
t=⌊4θπ⌋
נקבל
t=⌊4πN⌋.
בהתחשב בכך ש-t הוא לא רק מספר הפעמים שהפעולה G מבוצעת, אלא גם מספר השאילתות לפונקציה f הנדרשות על ידי האלגוריתם, אנו רואים שאנחנו בדרך לאלגוריתם הדורש O(N) שאילתות.
כעת נבחן עד כמה ברירת t המומלצת עובדת טוב.
ניתן לבטא במפורש את ההסתברות שהמדידה הסופית תניב את הפתרון היחיד:
p(N,1)=sin2((2t+1)θ).
הארגומנט הראשון, N, מתייחס למספר הפריטים שמחפשים בהם, והארגומנט השני, שהוא 1 במקרה זה, מתייחס למספר הפתרונות.
מעט מאוחר יותר נשתמש באותה סימון באופן כללי יותר, כאשר יש מספר פתרונות.
להלן טבלה של הסתברויות ההצלחה עבור ערכי N=2n הולכים וגדלים.
שימו לב שהסתברויות אלה אינן עולות בהכרח באופן מונוטוני.
בפרט, יש לנו אנומליה מעניינת כאשר N=4, שבה מקבלים פתרון בוודאות.
עם זאת, ניתן להוכיח באופן כללי ש-
p(N,1)≥1−N1
לכל N, ולכן הסתברות ההצלחה שואפת ל-1 בגבול כאשר N גדל, כפי שהערכים לעיל נראים מציעים.
זה טוב!
אך שימו לב, שגם חסם חלש כמו p(N,1)≥1/2 מבסס את השימושיות של אלגוריתם גרובר.
לכל תוצאת מדידה x שנקבל מהרצת הנוהל, תמיד נוכל לבדוק אם f(x)=1 באמצעות שאילתה אחת ל-f.
ואם נכשלנו בקבלת המחרוזת הייחודית x שעבורה f(x)=1 בהסתברות של לכל היותר 1/2 בהרצה אחת של הנוהל, אז לאחר m הרצות עצמאיות של הנוהל נכשלנו בקבלת המחרוזת הייחודית הזו x בהסתברות של לכל היותר 2−m.
כלומר, בשימוש ב-O(mN) שאילתות ל-f, נקבל את הפתרון הייחודי x בהסתברות של לפחות 1−2−m.
שימוש בחסם הטוב יותר p(N,1)≥1−1/N מגלה שההסתברות למצוא x∈A1 בשיטה זו היא למעשה לפחות 1−N−m.