Алгоритм Гровера: как квантовый поиск ускоряет перебор

Алгоритм Гровера квантовый - это процедура поиска отмеченного элемента в неструктурированной базе из вариантов за обращений к оракулу, тогда как любой классический алгоритм в худшем случае требует проверок. Предложенный Ловом Гровером в 1996 году, он стал вторым после алгоритма Шора каноническим примером квантового ускорения и единственным, дающим доказуемо оптимальное квадратичное преимущество для задачи перебора. Ниже разберём, как именно квантовый поиск Гровера достигает этого ускорения за счёт амплитудного усиления, из чего собран оракул и диффузор и почему число итераций нельзя превышать.
Постановка задачи и классическая граница
Пусть есть функция , заданная как «чёрный ящик»: про неё известно лишь, что ровно для одного входа выполнено , а для остальных . Размер пространства поиска . Цель - найти . У нас нет никакой структуры (сортировки, индекса, эвристики) - только право спрашивать оракул «является ли ответом?».
Классически в среднем придётся сделать запросов, а в худшем - . Это нижняя граница: без структуры данных перебор не обойти. Алгоритм Гровера снижает число обращений до примерно - квадратичное ускорение. Для базы из миллиона элементов это около 785 итераций вместо полумиллиона ожидаемых классических проверок.
После того как мы поймём механику на одном отмеченном элементе, имеет смысл сразу прогнать конкретные числа: сколько итераций нужно для вашего , какова вероятность успеха и какое ускорение это даёт. Для этого ниже есть интерактивный калькулятор.
Геометрия амплитудного усиления
Состояние кубитов живёт в пространстве размерности . Стартуем из равномерной суперпозиции всех базисных состояний, которую даёт каскад адамаровых вентилей :
Здесь амплитуда каждого состояния равна , и вероятность сразу измерить правильный ответ равна - ничтожно мала. Идея алгоритма Гровера: не угадывать, а итеративно перекачивать амплитуду в отмеченное состояние .
Удобно работать в двумерной плоскости, натянутой на два ортогональных вектора: само решение и равномерную суперпозицию всех «неправильных» состояний . Начальное состояние лежит в этой плоскости и образует с осью «ошибок» малый угол , для которого . Вся динамика - это вращение вектора состояния в данной плоскости к оси .
Оракул: фазовая пометка решения
Первый кирпич итерации - фазовый оракул . Он не «выдаёт» ответ, а помечает его знаком: переворачивает фазу амплитуды у искомого состояния и не трогает остальные:
Геометрически - это отражение вектора состояния относительно оси . Амплитуда правильного ответа становится отрицательной, амплитуды ошибок остаются прежними. Сами по себе вероятности (квадраты модулей) при этом не меняются - пометка «невидима» для измерения. Полезной её делает второй шаг.
Диффузор: инверсия относительно среднего
Второй кирпич - оператор диффузии Гровера, он же инверсия относительно среднего:
Это отражение относительно начального вектора . Если расписать его действие на амплитуды, получится наглядная операция: каждую амплитуду заменяем на , где - среднее по всем амплитудам. Отрицательная (помеченная оракулом) амплитуда решения оказывается далеко ниже среднего, поэтому после инверсии она подскакивает вверх сильнее всех, а близкие к среднему амплитуды ошибок слегка проседают.
Композиция двух отражений - это поворот. Произведение , оператор Гровера, поворачивает вектор состояния в нашей плоскости на угол в сторону за одну итерацию. Каждый прогон «грейферного цикла» оракул–диффузор приближает состояние к ответу на фиксированный угол.
Сколько итераций нужно
После итераций вектор состояния отклонён от оси ошибок на угол , и вероятность измерить правильный ответ равна
Чтобы была близка к единице, нужно довернуть вектор до , то есть . Отсюда оптимальное число итераций
При больших угол , и число итераций растёт как корень из размера базы - отсюда сложность по обращениям к оракулу. Это и есть квантовое ускорение Гровера.
Превышать оптимум опасно: при $k > k_{\text{opt}}$ вектор «проскакивает» ось решения, и вероятность успеха снова падает по синусоиде. Гровер - не монотонная процедура: больше итераций не означает выше точность.
Обобщения и пределы
Если отмеченных элементов не один, а , угол стартового состояния задаётся как , и оптимум сдвигается к . Когда заранее неизвестно, применяют квантовый счёт (quantum counting) на основе оценки фазы либо рандомизированную схему со случайным числом итераций. Амплитудное усиление - обобщение метода Гровера на произвольное стартовое распределение и произвольную проверку, оно лежит в основе многих квантовых подпрограмм.
Важно понимать границу преимущества. Квадратичное ускорение - это потолок: теорема об оптимальности (BBBV) доказывает, что никакой квантовый алгоритм не решает неструктурированный поиск быстрее, чем за запросов. Поэтому Гровер не «ломает» NP-полные задачи и не даёт экспоненциального выигрыша, как Шор для факторизации; он лишь вдвое сокращает эффективную длину ключа при переборе, из-за чего симметричные шифры рекомендуют брать с удвоенным запасом по биту - это одна из отправных точек квантово-устойчивой криптографии.
Практическая реализация
В терминах схемы итерация Гровера собирается из стандартных вентилей. Оракул реализуют через многокубитный управляемый-NOT с фазовым трюком (вспомогательный кубит в состоянии превращает bit-flip в phase-flip). Диффузор раскладывается как , затем условный сдвиг фазы у состояния , затем снова . На NISQ-устройствах глубина схемы и накопление шума ограничивают достижимое , поэтому реальные демонстрации пока работают с малым числом кубитов, но принцип масштабируется без изменений.
Стоит отметить и тонкость с числом итераций: обычно не целое, поэтому его округляют, и итоговая вероятность успеха чуть меньше единицы. Для одного решения промах не превышает , то есть при больших базах потеря пренебрежимо мала; при необходимости детерминированного результата применяют точные варианты Гровера с подстройкой фаз отражений вместо . Ещё одна практическая деталь - оракул должен быть обратимым унитарным оператором, поэтому любую классическую проверку предварительно превращают в обратимую схему, добавляя вспомогательные кубиты и «раскапывая» их в конце (uncompute), чтобы не оставить запутанности с рабочим регистром.
Частые ошибки
- Считают, что Гровер даёт экспоненциальное ускорение. Нет - только квадратичное, против ; экспоненту даёт Шор, и для другой задачи.
- Думают, что оракул «знает» ответ и просто его сообщает. Оракул лишь переворачивает фазу решения; найти позволяет связка с диффузором и измерением.
- Запускают слишком много итераций «для надёжности». После вероятность успеха падает - динамика синусоидальная, а не накопительная.
- Путают фазовую пометку с изменением вероятностей. После одного оракула вероятности не меняются; работает именно последующая инверсия относительно среднего.
- Игнорируют случай нескольких решений: при оптимум сдвигается к , и формула для одного элемента переоценивает число шагов.
FAQ
Почему ускорение именно квадратичное, а не больше? Каждая итерация поворачивает состояние на фиксированный угол , и до цели нужно поворотов. Теорема BBBV доказывает, что быстрее неструктурированный поиск невозможен ни на каком квантовом устройстве.
Можно ли с помощью Гровера взломать AES или RSA? RSA ломает Шор, а не Гровер. Для симметричных шифров вроде AES Гровер сокращает перебор ключа с до - это решается удвоением длины ключа (AES-256 остаётся стойким).
Что произойдёт, если измерить состояние слишком рано или слишком поздно? Слишком рано - вектор ещё близок к равномерному, вероятность успеха мала. Слишком поздно (после оптимума) - вектор проскочил ось решения, и вероятность снова снижается по закону .
Коротко
Алгоритм Гровера квантовый решает задачу неструктурированного поиска среди вариантов за обращений к оракулу вместо классических . Из равномерной суперпозиции итерация «оракул + диффузор» поворачивает вектор состояния к решению на угол ; после шагов амплитуда отмеченного элемента максимальна, и измерение почти наверняка даёт ответ. Ускорение квадратичное и доказуемо оптимальное: больше итераций или ожидание экспоненциального выигрыша - типичные заблуждения.
Читайте также

Фермион Майораны: частица, совпадающая со своей античастицей
Фермион Майораны: уравнение 1937 года, гипотеза о нейтрино и безнейтринный двойной бета-распад, эмерджентные моды в топологических сверхпроводниках и кубиты Microsoft.

Алгоритм Шора: зачем он ломает RSA и как работает
Разбираем, как алгоритм Шора сводит факторизацию к поиску периода и за счет квантового преобразования Фурье находит делители быстро, угрожая стойкости RSA.

Гем, железо и протопорфирин IX: строение и биосинтез
Гем — это комплекс железа Fe²⁺ с протопорфирином IX. Разбираем строение тетрапиррольного кольца, восемь ферментов биосинтеза от АЛК до феррохелатазы, регуляцию и порфирии.