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