Вибір кількості ітерацій
Ми встановили, що вектор стану регістра в алгоритмі Гровера залишається у двовимірному підпросторі, натягнутому на і після виконання кроку ініціалізації.
Мета — знайти елемент і ця мета буде досягнута, якщо вдасться отримати стан оскільки при вимірюванні цього стану ми гарантовано отримаємо результат Враховуючи, що стан після ітерацій на кроці 2 дорівнює
слід обрати таким чином, щоб
було якомога ближчим до за модулем, максимізуючи ймовірність отримати при вимірюванні. Для будь-якого кута значення коливається зі збільшенням хоча й не обов'язково є періодичним — немає гарантії, що ми коли-небудь отримаємо одне й те саме значення двічі.
Звичайно, окрім того, щоб зробити ймовірність отримання елемента при вимірюванні великою, ми також хочемо обрати якомога меншим, оскільки застосувань операції вимагають запитів до функції Оскільки ми прагнемо зробити близьким до за модулем, природний спосіб — обрати так, щоб
Розв'язуючи відносно отримуємо
Звичайно, повинно бути цілим числом, тому ми не завжди можемо точно влучити в це значення — але можемо взяти найближче ціле число до цього значення, а саме
Це рекомендована кількість ітерацій для алгоритму Гровера. Продовжуючи аналіз, ми побачимо, що близькість цього цілого числа до цільового значення природним чином впливає на продуктивність алгоритму.
(Зауважимо до речі, що якщо цільове значення виявляється рівно посередині між двома цілими числами, цей вираз для відповідає округленню вгору. Можна також округлити вниз, що має сенс, оскільки означає на один запит менше — але це другорядне і несуттєве для цілей уроку.)
Згадуючи, що значення кута задається формулою
бачимо, що рекомендована кількість ітерацій залежить від кількості рядків у Це становить проблему, якщо ми не знаємо кількість розв'язків, як ми обговоримо пізніше.
Унікальний пошук
Спочатку зосередимось на ситуації, коли існує єдиний рядок такий, що Інший спосіб сказати це — ми розглядаємо екземпляр задачі унікального пошуку. У цьому випадку маємо
що зручно апроксимуєтьс я як
при великих Підставляючи у вираз
отримуємо
Згадуючи, що — це не лише кількість разів, коли виконується операція але й кількість запитів до функції необхідних алгоритму, бачимо, що ми на шляху до отримання алгоритму, що вимагає запитів.
Тепер дослідимо, наскільки добре працює рекомендований вибір Ймовірність того, що фінальне вимірювання дасть єдиний розв'язок, можна явно виразити як
Перший аргумент, відповідає кількості елементів, серед яких виконується пошук, а другий аргумент, у цьому випадку, — кількості розв'язків. Дещо пізніше ми використаємо те саме позначення в більш загальному вигляді, де існує кілька розв'язків.
Ось таблиця ймовірностей успіху для зростаючих значень
Зауважимо, що ці ймовірності не є строго зростаючими. Зокрема, є цікава аномалія при де розв'язок отримується з повною визначеністю. Проте можна довести у загальному в ипадку, що
для всіх тож ймовірність успіху прямує до в границі при що й видно з наведених знач ень. Це добре!
Проте зауважимо, що навіть слабка оцінка підтверджує корисність алгоритму Гровера. Для будь-якого результату вимірювання отриманого від запуску процедури, ми завжди можемо перевірити, чи за допомогою одного запиту до І якщо ймовірність не отримати єдиний рядок для якого при одному запуску процедури не перевищує то після незалежних запусків ймовірність не отримати цей рядок не перевищує Тобто, використовуючи запитів до ми знайдемо єдиний розв'язок з ймовірністю принаймні Використовуючи кращу оцінку можна показати, що ймовірність знайти цим методом насправді становить принаймні
Кілька розв'язків
Зі зміною кількості елементів у змінюється і кут що може суттєво впливати на ймовірність успіху алгоритму. Для стислості позначимо кількість розв'язків, і, як раніше, припустимо
Як мотивуючий приклад, уявімо, що маємо розв'язки замість одного, як розглядалось вище. Це означає, що
що приблизно вдвічі більший за кут у випадку при великих Припустимо, що ми не знали нічого кращого і обрали те саме значення що й у випадку єдиного розв'язку:
Наслідки будуть катастрофічними, як показує така таблиця ймовірностей.
Цього разу ймовірність успіху прямує до при Це відбувається тому, що ми ефективно обертаємось удвічі швидше, ніж при єдиному розв'язку, тому проскакуємо мимо цільового стану і опиняємось поблизу
Проте якщо замість цього використовувати рекомендований вибір а саме