Опис алгоритму Гровера
У цьому розділі ми розглянемо алгоритм Гровера. Почнемо з обговорення фазових query-гейтів і способів їх побудови, а потім перейдемо до опису самого алгоритму Гровера. Насамкінець коротко поговоримо про те, як цей алгоритм природно застосовується до задач пошуку.
Фазові query-гейти
Алгоритм Гровера використовує операції, відомі як фазові query-гейти. На відміну від звичайного query-гейта визначеного для заданої функції стандартним способом, фазовий query-гейт для функції визначається так:
для кожного рядка
Операцію можна реалізувати за допомогою одного query-гейта , як показано на цій схемі:
Ця реалізація використовує ефект phase kickback і потребує одного допоміжного кубіта, ініціалізованого в стан . Після завершення роботи цей кубіт залишається в стані і може бути повторно використаний (наприклад, для реалізації наступних гейтів ) або просто відкинутий.
Окрім операції ми також використаємо фазовий query-гейт для -бітної функції АБО, яка визначається так для кожного рядка
Явно фазовий query-гейт для -бітної функції АБО діє так:
Зауважимо, що це дія на стандартних базисних станах; її поведінка на довільних станах визначається з цього виразу за лінійністю.
Операцію можна реалізувати у вигляді квантової схеми: спочатку будуємо булеву схему для функції АБО, потім конструюємо операцію (тобто стандартний query-гейт для -бітної функції АБО) за процедурою, описаною в уроці Квантово-алгоритмічні основи, і, нарешті, отримуємо операцію за допомогою ефекту phase kickback, як описано вище. Зверни увагу, що операція не залежить від функції і тому може бути реалізована квантовою схемою, що не містить жодного query-гейта.
Опис алгоритму
Маючи дві операції та ми можемо описати алгоритм Гровера.
Алгоритм задається числом — кількістю ітерацій (і, відповідно, кількістю запитів до функції ). Це число не фіксується самим алгоритмом Гровера у тій формі, яку ми розглядаємо; пізніше в уроці ми обговоримо, як його вибирати.
Операцію , що ітерується на кроці 2, упродовж усього уроку ми будемо називати операцією Гровера. Нижче наведено зображення квантової схеми для операції Гровера при
На цій діаграмі операція зображена більшою за — як неформальна візуальна підказка, що вона, ймовірно, є більш витратною. Зокрема, у рамках query-моделі потребує одного запиту, тоді як — жодного. Якщо ж ми маємо булеву схему для функції і перетворюємо її на квантову схему для то можна очікувати, що отримана квантова схема буде більшою і складнішою, ніж схема для
Нижче зображено квантову схему для всього алгоритму при і Для більших значень можна просто вставляти додаткові копії операції Гровера перед вимірюваннями.