Алгоритм Дойча
Алгори́тм До́йча, квантовый алгоритм, предложенный Д. Дойчем в 1985 г., для решения следующей задачи. Пусть дана функция которая в качестве аргумента принимает или и в качестве значения тоже выдаёт или . Функция задана в виде чёрного ящика, т. е. имеется возможность подавать на вход одно из двух значений и считывать выход (значение функции). Требуется за наименьшее число обращений к функции понять, совпадают или отличаются значения и
В классической парадигме вычислений на этот вопрос можно ответить, обратившись к функции два раза: вычислив значения функции по отдельности для обоих значений аргумента и затем сравнив эти значения. На квантовом компьютере можно ответить на этот вопрос, обратившись к аналогичному квантовому чёрному ящику лишь единожды. Сначала происходит вычисление функции в обеих точках сразу (точнее – строится когерентная суперпозиция из обоих значений функции), а затем нужным образом производится интерференция этих двух альтернатив, с тем чтобы не узнавать значения функции в точках по отдельности, а сразу ответить непосредственно на требуемый вопрос.
Квантовая схема алгоритма Дойча приведена на рисунке.
Алгоритм Дойча использует два кубита. Начальные состояния кубитов записаны слева. То есть алгоритм предписывает создать вначале два кубита в соответствующих состояниях (задаваемых векторами комплексного линейного пространства). Линия на схеме означает в данном случае один кубит. Путь вдоль черты слева направо предписывает последовательность применяемых вычислительных (унитарных) операций (вентилей). На рисунке однокубитный вентиль (преобразование Адамара) преобразует базисный вектор (соответствующий значению бита 0) в вектор а базисный вектор (соответствующий значению бита ) – в вектор Поскольку рассматриваются линейные операторы, то достаточно задать их действие на базисные векторы. Двухкубитный вентиль преобразует в и – в где есть или То есть этот вентиль осуществляет вычисление функции На его первый вход подаётся т. е. суперпозиция обоих значений аргументов. Соответственно, функция вычисляется как бы одновременно в двух точках. После чего вентиль создаёт интерференцию между этими двумя альтернативами. Последний прямоугольник в верхней строке схемы означает проведение измерения над данным кубитом. Несложный алгебраический расчёт показывает, что результат измерения, равный означает, что значения функции в двух точках совпадают, результат, равный – что отличаются. Таким образом, мы отвечаем на требуемый вопрос за одно обращение к функции.
Далее приведён расчёт для алгоритма Дойча. Начальное состояние первого кубита – начальное состояние второго кубита – Отметим, что обычно алгоритм рассматривается, начиная с начальных базисных векторов и , которые при помощи преобразования Адамара преобразуются в векторы и .
Совместное состояние двух кубитов записывается в виде
где – тензорное произведение векторов. Совместное состояние можно переписать в виде
В предыдущих обозначениях можно записать и т. д. Вентиль преобразует это состояние в Это составное состояние двух кубитов является сцепленным (запутанным). Появление сцепленных состояний есть необходимое условие «квантового ускорения», т. е. более высокой эффективности квантового алгоритма по сравнению с классическими.
Заметим, что если то а если то Таким образом, если то последнее выражение переписывается в виде (с точностью до знака перед всем выражением) а если то оно переписывается в виде (также с точностью до знака перед всем выражением) Оба выражения выписаны с точностью до знака, поскольку знак перед всем выражением не оказывает влияния на последующие рассуждения и результат измерения в конце.
Теперь применим к первому кубиту, который находится либо в состоянии если либо в состоянии если преобразование Адамара Конечное состояние первого кубита есть если значения функции в двух точках совпадают, и если они не совпадают. В первом случае в результате измерения с вероятностью единица получается во втором –
Таким образом, за одно обращение к функции удаётся ответить на вопрос о том, совпадают или отличаются значения этой функции в двух точках.