Квантовые алгоритмы
Определение: |
Квантовый алгоритм (англ. quantum algorithm) представляет собой классический алгоритм, который задает последовательность унитарных операций (гейтов, или вентилей) с указанием, над какими именно кубитами[1] их надо совершать. |
Содержание
Алгоритм проверки чётности
Постановка задачи
Задача: |
Пусть имеется функция | , такая, что с неизвестным . Найти за минимальное количество обращений к функции .
Пример:
Если
0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 |
то
.Реализация
Для начала инициализируем начальные [2] и получаем все возможные суперпозиции. Суперпозиции передаём в "черный ящик", который реализован в виде вентиля . Сам результат опять пропускаем через гейт Адамара. В конце измеряем результат, который будет являться искомой .
кубитов состоянием ноль. Проводим их всех через гейт Адамара (англ. Hadamard gate)В качестве бита, который будет содержать ответ, будет использоваться суперпозиция:
Выразим неизвестную:
Сложность
Классический алгоритм:
.Квантовый алгоритм: [3], а конкретно параллелизму[4].
. Такая сложность достигается благодаря квантовым свойствамАлгоритм Саймона
Постановка задачи
Задача: |
Пусть имеется функция | , такая, что с неизвестным . Найти за минимальное количество обращений к функции .
Пример:
Если
101 | 010 | 000 | 110 | 000 | 110 | 101 | 010 |
то
.Реализация
Задача похожа на задачу нахождения коллизии, так как необходимо найти два значения, при которых их выходные значения будет одинаковыми, затем вычислить между ними разницу, которая и будет ответом задачи.
Аналогично предыдущему алгоритму все возможные суперпозиции передаём в "черный ящик", полученный результат опять пропускаем через гейт Адамара. В конце измеряем полученные значения, которые будут являться некоторой строкой
, дающей ноль при скалярном умножении на искомую . После итерации алгоритма получим систему из линейных уравнений; решив эту систему уравнений, найдём искомую :
где
, и , при и .Особенности алгоритма:
- для решения СЛАУ [5] необходим препроцессинг на классическом компьютере;
- алгоритм может допускать ошибку(возможно, какие-то уравнения не будут линейно независимыми и система не будет иметь решений) с вероятностью при одном цикле прохода алгоритма. Этого можно избежать, если прогнать алгоритм несколько раз, так для раз, вероятность будет равна: . Например, при вероятность будет .
Сложность
Классический алгоритм:
.Квантовый алгоритм:
.Алгоритм нахождения периода
Постановка задачи
Задача: |
Пусть имеется функция | , такая, что с неизвестным периодом . Найти за минимальное количество обращений к функции .
Перефразируем задачу: у нас есть периодичная функция, для которой необходимо найти её период, путём нахождения коллизии.
Реализация
Чтобы решить задачу, воспользуемся квантовым преобразованием Фурье[6](англ. Quantum Fourier transform; далее QFT). QFT — гейт, который реализует матрицу дискретного преобразования Фурье[7] над квантовым состоянием. Идея в следующем: есть периодическая функция с периодом , после QFT, получим новую периодическую функцию с периодом , где — модуль, с которым мы работаем.
, где
Так аналогично предыдущему алгоритму, но используя QFT, получаем результат вида [8] от полученных чисел, который, с некоторой вероятностью, будет искомым периодом , при этом вероятность ошибки будет экспоненциально падать с каждой попыткой.
, где — какое-то произвольное (случайное) натуральное число, возникающее из того, что форма рационального числа не единственна в своем роде, — модуль, — период. Выполнив данный алгоритм раз, найдём наибольший общий делительПримечание: Алгоритм нахождения периода используется в алгоритме Шора[9], который позволяет решать задачу факторизации числа.
Сложность
Классический алгоритм:
.Квантовый алгоритм:
.См.также
Примечания
- ↑ Википедия — Кубит
- ↑ Wikipedia — Hadamard gate
- ↑ Википедия — Квантовый компьютер
- ↑ Википедия — Квантовый параллелизм
- ↑ Википедия — Система линейных алгебраических уравнений
- ↑ Wikipedia — Quantum Fourier transform
- ↑ Википедия — Дискретное преобразование Фурье
- ↑ Википедия — Наибольший общий делитель
- ↑ Wikipedia — Shor's algorithm
Источники информации
- Implementation of a quantum algorithm to solve Bernstein-Vazirani’s parity problem without entanglement on an ensemble quantum computer
- Wikipedia — Simon's problem
- Гайнутдинова А. Ф. "Квантовые вычисления"
- Соловьев В. М. "Квантовые компьютеры и квантовые алгоритмы. Часть 1. Квантовые компьютеры"
- Соловьев В. М. "Квантовые компьютеры и квантовые алгоритмы. Часть 2. Квантовые алгоритмы"
- Wikipedia — Quantum Fourier transform
- Quantum parity algorithms as oracle calls, and application in Grover Database search
- Wikipedia — Shor's algorithm
- Веб-приложение, использующее WebGL, чтобы имитировать до 22 кубитов на GPU
- Веб-приложение, для написания и визуализации квантовых алгоритмов
- Языки программирования для квантового компьютера