Эта статья является кандидатом в добротные статьи

Алгоритм Бернштейна — Вазирани: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Изм
Строка 4: Строка 4:
Алгоритм предложен [https://www.hbs.edu/faculty/Pages/profile.aspx?facId=17441 Итаном Бернштейном] и {{не переведено |Умешем Вазирани||en|Umesh Vazirani}} в 1993 году<ref>{{Статья|ссылка=http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.144.7852|автор=Ethan Bernstein, Umesh Vazirani|заглавие=Quantum complexity theory|год=1993|язык=|издание=in Proc. 25th Annual ACM Symposium on Theory of Computing, ACM|тип=|месяц=|число=|том=|номер=|страницы=4|issn=}}</ref>. Алгоритм Бернштейна — Вазирани является ограниченной версией [[Алгоритм Дойча — Йожи|алгоритма Дойча — Йожи]], поскольку вместо определения принадлежности функции к определённому классу: [[Сбалансированная булева функция|сбалансированная]] или постоянная (то есть принимает либо значение 0, либо 1 при любых аргументах), алгоритм ищет строку, находящуюся в функции<ref>{{Статья|ссылка=https://iopscience.iop.org/article/10.1088/1367-2630/18/8/083030/pdf|автор=S D Fallek , C D Herold, B J McMahon, K M Maller K R Brown, J M Amini|заглавие=Transport implementation of the Bernstein–Vazirani algorithm with
Алгоритм предложен [https://www.hbs.edu/faculty/Pages/profile.aspx?facId=17441 Итаном Бернштейном] и {{не переведено |Умешем Вазирани||en|Umesh Vazirani}} в 1993 году<ref>{{Статья|ссылка=http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.144.7852|автор=Ethan Bernstein, Umesh Vazirani|заглавие=Quantum complexity theory|год=1993|язык=|издание=in Proc. 25th Annual ACM Symposium on Theory of Computing, ACM|тип=|месяц=|число=|том=|номер=|страницы=4|issn=}}</ref>. Алгоритм Бернштейна — Вазирани является ограниченной версией [[Алгоритм Дойча — Йожи|алгоритма Дойча — Йожи]], поскольку вместо определения принадлежности функции к определённому классу: [[Сбалансированная булева функция|сбалансированная]] или постоянная (то есть принимает либо значение 0, либо 1 при любых аргументах), алгоритм ищет строку, находящуюся в функции<ref>{{Статья|ссылка=https://iopscience.iop.org/article/10.1088/1367-2630/18/8/083030/pdf|автор=S D Fallek , C D Herold, B J McMahon, K M Maller K R Brown, J M Amini|заглавие=Transport implementation of the Bernstein–Vazirani algorithm with
ion qubits|год=2016|язык=English|издание=|тип=|месяц=|число=|том=|номер=|страницы=|issn=}}</ref>.
ion qubits|год=2016|язык=English|издание=|тип=|месяц=|число=|том=|номер=|страницы=|issn=}}</ref>.

Одной из предпосылок создания алгоритма было установление существования эффективной универсальной [[Квантовая машина Тьюринга|квантовой машины Тьюринга]]. Эта машина существенно сложнее, чем [[Машина Тьюринга|классическая машина Тьюринга]]. Вообще говоря, квантовые компьютеры были впервые упомянуты [[Фейнман|Ричардом Фейнманом]] в 1982 году<ref>{{Статья|ссылка=https://doi.org/10.1007/BF02650179|автор=Richard P. Feynman|заглавие=Simulating physics with computers|год=1982-06-01|язык=en|издание=International Journal of Theoretical Physics|том=21|выпуск=6|страницы=467–488|issn=1572-9575|doi=10.1007/BF02650179}}</ref>. В 1985 году, идеи Фейнмана были рассмотрены и формализованы {{не переведено |Дойчем||en|David Deutsch}} <ref>{{Статья|ссылка=http://rspa.royalsocietypublishing.org/cgi/doi/10.1098/rspa.1985.0070|автор=D. Deutsch|заглавие=Quantum Theory, the Church-Turing Principle and the Universal Quantum Computer|год=1985-07-08|язык=en|издание=Proceedings of the Royal Society A: Mathematical, Physical and Engineering Sciences|том=400|выпуск=1818|страницы=97–117|issn=1364-5021, 1471-2946|doi=10.1098/rspa.1985.0070}}</ref>, где он описал квантовую машину Тьюринга. Кроме того, Дойч сделал предположение о том, что квантовые компьютеры могут выполнять некоторые вычисления гораздо быстрее, чем классические компьютеры. Сильное продвижение в этом направлении совершил [[Шор, Питер|Питер Шор]] в своей работе в 1994 году, в которой он разработал алгоритм полиномиального времени на квантовом компьютере для простых множителей<ref>{{Статья|ссылка=http://arxiv.org/abs/quant-ph/9508027|автор=Peter W. Shor|заглавие=Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer|год=1997-10|издание=SIAM Journal on Computing|том=26|выпуск=5|страницы=1484–1509|issn=0097-5397, 1095-7111|doi=10.1137/S0097539795293172}}</ref> .


== Постановка задачи Бернштейна — Вазирани ==
== Постановка задачи Бернштейна — Вазирани ==

Версия от 09:09, 15 декабря 2019

Алгоритм Бернштейна — Вазирани — квантовый алгоритм[⇨], решающий задачу нахождения числа, скрытого в черном ящике. Рассматриваемый алгоритм позволяет ускорить решение классической задачи[⇨]. Кроме того, он показывает, что , где BPP и BQP - классы сложности. Также алгоритм находит своё применение в базах данных, атаке на блочный шифр, тесте производительности для квантовых компьютеров[⇨]. Существует реализация алгоритма на компьютерах IBM[⇨].

История

Алгоритм предложен Итаном Бернштейном и Умешем Вазирани[en] в 1993 году[1]. Алгоритм Бернштейна — Вазирани является ограниченной версией алгоритма Дойча — Йожи, поскольку вместо определения принадлежности функции к определённому классу: сбалансированная или постоянная (то есть принимает либо значение 0, либо 1 при любых аргументах), алгоритм ищет строку, находящуюся в функции[2].

Одной из предпосылок создания алгоритма было установление существования эффективной универсальной квантовой машины Тьюринга. Эта машина существенно сложнее, чем классическая машина Тьюринга. Вообще говоря, квантовые компьютеры были впервые упомянуты Ричардом Фейнманом в 1982 году[3]. В 1985 году, идеи Фейнмана были рассмотрены и формализованы Дойчем[en] [4], где он описал квантовую машину Тьюринга. Кроме того, Дойч сделал предположение о том, что квантовые компьютеры могут выполнять некоторые вычисления гораздо быстрее, чем классические компьютеры. Сильное продвижение в этом направлении совершил Питер Шор в своей работе в 1994 году, в которой он разработал алгоритм полиномиального времени на квантовом компьютере для простых множителей[5] .

Постановка задачи Бернштейна — Вазирани

Классический случай

Рассмотрим чёрный ящик (который также называется оракулом), преобразующий -битное число в один бит, то есть .

Причём , где  — скалярное произведение вида: . Считаем, что один вызов функции осуществляется за константное время.

Требуется найти [6].

Квантовый случай

В квантовом алгоритме Бернштейна — Вазирани постановка задачи похожая, но теперь доступ к оракулу осуществляется не через функцию , а через линейный оператор , действующий на систему из кубита. Этот оператор устроен следующим образом: , где  — кет-вектор, соответствующий квантовому состоянию ,  — бра-вектор, соответствующий квантовому состоянию ,  — произведение Кронекера,  — сложение по модулю 2. Кет-вектор равен — , где и , и  — такие комплексные числа, что . Для такого вектора верно, например, следующее выражение — [6].

Аналогично классическому случаю оператор производит вычисления над входящей системой из кубита за константное время.

В квантовом случае, также как и в классическом, и требуется найти .

Для решения задачи в квантовом случае нужно обращений к оракулу вместо в классическом случае, где количество бит числа . Вообще говоря, построение и использование оракула требует логических элемента, но это не учитывается, потому что оракул используется как чёрный ящик и важно только количество обращений к нему[6].

Алгоритм

Классический случай

Так как в классическом случае при каждом вызове оракула мы находим один бит числа , то для нахождения -битного числа нужно вызвать оракул раз.

Ниже приведены вызовы оракула для нахождения каждого бита числа [6].

Квантовый алгоритм

Описание алгоритма Бернштейна — Вазирани. Графически схема его работы может быть описана следующей диаграммой:

Схема работы алгоритма
Схема работы алгоритма

Одной из основных формул математического описания алгоритма является определение n-кубитного оператора Адамара :


Рассмотрим действие алгоритма[6]:

  1. На первом шаге применен оператор Адамара к -кубитному состоянию (предварительно подготовив состояние и состояние , которое называется вспомогательным битом[en], то есть

.

2. Далее результат первого шага попадает в чёрный ящик.

У оператора есть важное свойство — когда на вход оператору подается некоторое состояние, то на выходе оператора появляется функция [6]:

, где

Далее применяем описанное свойство к результату, полученному на первом шаге, и получаем.

.

3. С учётом того, что получаем

.

4. Заключительное преобразование Адамара применяется к каждому кубиту, в результате чего получаем состояние

.

В результате получаем, что измерение входного регистра даст значение [6]

Существует несколько реализаций алгоритма Бернштейна — Вазирани. Например, можно сделать оптическую cистему, реализующую алгоритм Бернштейна — Вазирани[7]. Кроме того, есть реализация алгоритма на 5 и 16 кубитных компьютерах IBM[6]. О сложностях реализации алгоритма на компьютерах IBM написано в следующем подразделе .

Реализация алгоритма на компьютерах IBM

В любой практической реализации алгоритма Бернштейна — Вазирани основную сложность составляет создание оракула. Как было отмечено в квантовой постановке задачи построение и использование оракула требует логических элемента. Задача сразу становится достаточно сложной. Для решения проблемы был написан квантовый компилятор списка соединений (Quantum Netlist Compiler)[6]. В QNC реализованы специальные функции, дающие дополнительные возможности (например, создание кода Грея для уменьшения количества логических элементов. Это свойство упрощает создание оракула)[6].

Кроме сложности построения оракула, возникла проблема с точностью вычислений. Тестирование системы проводилось на битных строках. В качестве симулятора использовался IBM-Qiskit[en]. Во всех случаях симулятор со точностью выдавал результаты. Затем провели тестирование битных строк как на кубитовой ibmqx4 машине, так и на кубитной ibmqx5. В результате появились ошибки и наихудший результат (сильное отклонение от ожидаемого результата) был для битной строки на машине ibmqx4[6].

Практическое применение

Алгоритм Бернштейна — Вазирани может применяться:

  1. В базах данных[8]. С помощью алгоритма доступ к нужным данным можно получить значительно быстрее, чем в классическом случае.
  2. В атаке на блочный шифр[9]. Алгоритм Бернштейна— Вазирани предоставляет несколько новых, более совершенных, чем в классическом случае, способов атаки на блочный шифр.
  3. В тесте производительности для квантовых компьютеров[10]. Алгоритм используется в качестве теста производительности для -кубитного квантового компьютера.

Существует реализация алгоритма Бернштейна-Вазирани в открытом доступе, выполненная на языке JavaScript.

Примечания

  1. Ethan Bernstein, Umesh Vazirani. Quantum complexity theory // in Proc. 25th Annual ACM Symposium on Theory of Computing, ACM. — 1993. — С. 4.
  2. S D Fallek , C D Herold, B J McMahon, K M Maller K R Brown, J M Amini. [https://iopscience.iop.org/article/10.1088/1367-2630/18/8/083030/pdf Transport implementation of the Bernstein–Vazirani algorithm with ion qubits] (англ.). — 2016.
  3. Richard P. Feynman. Simulating physics with computers (англ.) // International Journal of Theoretical Physics. — 1982-06-01. — Vol. 21, iss. 6. — P. 467–488. — ISSN 1572-9575. — doi:10.1007/BF02650179.
  4. D. Deutsch. Quantum Theory, the Church-Turing Principle and the Universal Quantum Computer (англ.) // Proceedings of the Royal Society A: Mathematical, Physical and Engineering Sciences. — 1985-07-08. — Vol. 400, iss. 1818. — P. 97–117. — ISSN 1471-2946 1364-5021, 1471-2946. — doi:10.1098/rspa.1985.0070.
  5. Peter W. Shor. Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer // SIAM Journal on Computing. — 1997-10. — Т. 26, вып. 5. — С. 1484–1509. — ISSN 1095-7111 0097-5397, 1095-7111. — doi:10.1137/S0097539795293172.
  6. 1 2 3 4 5 6 7 8 9 10 11 Patrick J. Coles, Stephan Eidenbenz, Scott Pakin, Adetokunbo Adedoyin, John Ambrosiano. Quantum Algorithm Implementations for Beginners // arXiv:1804.03719 [quant-ph]. — 2018-04-10. — С. 10—13.
  7. P. Londero, K. Banaszek, I. A. Walmsley, C. Dorrer, M. Anderson. Efficient optical implementation of the Bernstein-Vazirani algorithm (англ.) // Physical Review. A. — 2004. — Т. 69, вып. 1. — С. 010302–010302.4. — ISSN 1050-2947. — doi:10.1103/PhysRevA.69.010302.
  8. А.А. Ежов. Лекции по нейроинформатике (рус.). — 2003. — С. 44—45.
  9. Huiqin Xie, Li Yang. Using Bernstein–Vazirani algorithm to attack block ciphers (англ.) // Designs, Codes and Cryptography. — 2019-05-01. — Vol. 87, iss. 5. — P. 1161–1182. — ISSN 1573-7586. — doi:10.1007/s10623-018-0510-5.
  10. K. Wright, K. M. Beck, S. Debnath, J. M. Amini, Y. Nam. Benchmarking an 11-qubit quantum computer // arXiv:1903.08181 [quant-ph]. — 2019-03-19.

Ссылки