Искусство побеждать или что такое квантовая псевдотелепатия
Привет, Хабр!
Решил продолжить серию статей о нестандартных применениях квантовых вычислений. Под катом речь пойдет об игре для двух игроков, в которую лучше всего играть предварительно изучив принципы квантовой механики.
«В мире нет ничего особенного. Никакого волшебства. Только физика.» (Чак Паланик)
Перед прочтением
Для полного понимания материала необходимо знание базовых терминов квантовой информатики: кубиты, измерение кубитов и запутанность. Про все это можно почитать в [1], там описана краткая теория и приведен набор задач по каждой теме.
Описание игры
John Clauser, Michael Horne, Abner Shimony и Richard Holt разработали альтернативный подход к неравенствам Белла и представили его в виде простой игры, назвав ее CHSH Game. Суть довольна проста. Два наших стандартных игрока (Алиса и Боб) играют по следующим правилам:
- Некий судья генерирует два случайных бита и (назовем их входными битами). Затем отправляет бит Алисе, а бит — Бобу.
- Алиса и Боб, глядя на полученные биты (каждый из игроков видит только свой бит), отвечает судье опять-таки одним битом. Введем обозначения: — выходной бит Алисы, — выходной бит Боба.
- Судья на основе битов Алисы и Боба выносит вердикт — победа игроков или их поражение. Условие победы выглядит следующим образом: , где — логическое «И», а — операция «XOR».
PS. Считаем судью честным на 100%.
Как видно из условий, игра кооперативная. Цель Алисы и Боба — разработать стратегию, обеспечивающую максимальную вероятность выигрыша. Однако обсуждать планы они могут только перед игрой, во время игры общение запрещено.
Классическая стратегия
Сначала рассмотрим классическую стратегию игры, и какие плоды она может принести. Тут все просто: так как функция равна нулю в 75 процентах случаев, то наиболее выгодной стратегией будет отправка судье битов , . Таким образом, вероятность выигрыша равна
Квантовая стратегия
Возможность применения квантовой стратегии объясняется наличием некой связи между игроками на уровне квантовомеханических явлений. Эту связь Жиль Брассард в одной из своих работ [2] назвал псевдотелепатией и предложил учитывать ее с помощью запутанных квантовых состояний, разделенных между игроками.
Так и поступим: возьмем двухкубитное запутанное состояние . Первый кубит из этой пары отдадим Алисе, а второй — Бобу. Далее будем разбираться, как это использовать.
После получения входных битов Алиса и Боб выбирают базис, в котором они будут измерять свои половинки запутанного состояния. Обозначим этот базис как
где — произвольный угол. Легко убедиться, что этот базис является ортонормированным. Пусть Алиса использует для измерения угол , если получила входной бит , и угол , если входной бит . Аналогично Боб использует углы и , если получил входной бит и соответственно. Измерение определяет выходной бит каждого из игроков. Если при измерении он получил состояние , то он отправляет судье ноль, а если получил , то отправляет единицу. То есть квантовая механика будет определять стратегию игры!
Переберем теперь всевозможные комбинации входных битов:
- ,
Алиса и Боб выиграют, если ответят , или , . Вероятность выигрыша в этом случае будет
Путем несложных, но довольно утомительных, вычислений получаем - ,
Алиса и Боб выиграют, если ответят , или , . Вероятность этого - ,
Алиса и Боб выиграют, если ответят опять-таки , или , . Вероятность этого - ,
Алиса и Боб выиграют, если ответят , или , . Вероятность этого
Так как значения входных битов равновероятны, то общая вероятность, определяющая успех при использовании квантовой стратегии, задается формулой
или
Так как мы не накладывали никаких ограничений на углы измерительных базисов, то выберем следующие значения: , , и . Тогда получим довольно неожиданное значение вероятности
Ну или тот же самый результат можно получить, решив задачу оптимизации функции любым подходящим способом.
Для примера, листинг минималистичной программки на языке Python, решающей эту задачу:
from scipy.optimize import minimize
from math import sin, cos, pi
f = lambda x: -(cos(x[0] - x[2])**2 + cos(x[0] - x[3])**2 + cos(x[1] - x[2])**2 + sin(x[1] - x[3])**2) / 4
res = minimize(f, [pi] * 4, method='Nelder-Mead')
print("Max value =", abs(f(res.x)))
И результат выполнения:
Max value = 0.8535533904794891
То есть мы получили, что © Habrahabr.ru