Алгоритм Бернштейна — Вазирани: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Изм |
|||
Строка 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 .
История
Алгоритм предложен Итаном Бернштейном и Умешем Вазирани в 1993 году[1]. Алгоритм Бернштейна — Вазирани является ограниченной версией алгоритма Дойча — Йожи, поскольку вместо определения принадлежности функции к определённому классу: сбалансированная или постоянная (то есть принимает либо значение 0, либо 1 при любых аргументах), алгоритм ищет строку, находящуюся в функции[2].
Одной из предпосылок создания алгоритма было установление существования эффективной универсальной квантовой машины Тьюринга. Эта машина существенно сложнее, чем классическая машина Тьюринга. Вообще говоря, квантовые компьютеры были впервые упомянуты Ричардом Фейнманом в 1982 году[3]. В 1985 году, идеи Фейнмана были рассмотрены и формализованы Дойчем [4], где он описал квантовую машину Тьюринга. Кроме того, Дойч сделал предположение о том, что квантовые компьютеры могут выполнять некоторые вычисления гораздо быстрее, чем классические компьютеры. Сильное продвижение в этом направлении совершил Питер Шор в своей работе в 1994 году, в которой он разработал алгоритм полиномиального времени на квантовом компьютере для простых множителей[5] .
Постановка задачи Бернштейна — Вазирани
Классический случай
Рассмотрим чёрный ящик (который также называется оракулом), преобразующий -битное число в один бит, то есть .
Причём , где — скалярное произведение вида: . Считаем, что один вызов функции осуществляется за константное время.
Требуется найти [6].
Квантовый случай
В квантовом алгоритме Бернштейна — Вазирани постановка задачи похожая, но теперь доступ к оракулу осуществляется не через функцию , а через линейный оператор , действующий на систему из кубита. Этот оператор устроен следующим образом: , где — кет-вектор, соответствующий квантовому состоянию , — бра-вектор, соответствующий квантовому состоянию , — произведение Кронекера, — сложение по модулю 2. Кет-вектор равен — , где и , и — такие комплексные числа, что . Для такого вектора верно, например, следующее выражение — [6].
Аналогично классическому случаю оператор производит вычисления над входящей системой из кубита за константное время.
В квантовом случае, также как и в классическом, и требуется найти .
Для решения задачи в квантовом случае нужно обращений к оракулу вместо в классическом случае, где количество бит числа . Вообще говоря, построение и использование оракула требует логических элемента, но это не учитывается, потому что оракул используется как чёрный ящик и важно только количество обращений к нему[6].
Алгоритм
Классический случай
Так как в классическом случае при каждом вызове оракула мы находим один бит числа , то для нахождения -битного числа нужно вызвать оракул раз.
Ниже приведены вызовы оракула для нахождения каждого бита числа [6].
Квантовый алгоритм
Описание алгоритма Бернштейна — Вазирани. Графически схема его работы может быть описана следующей диаграммой:
Одной из основных формул математического описания алгоритма является определение n-кубитного оператора Адамара :
Рассмотрим действие алгоритма[6]:
- На первом шаге применен оператор Адамара к -кубитному состоянию (предварительно подготовив состояние и состояние , которое называется вспомогательным битом , то есть
.
2. Далее результат первого шага попадает в чёрный ящик.
У оператора есть важное свойство — когда на вход оператору подается некоторое состояние, то на выходе оператора появляется функция [6]:
, где
Далее применяем описанное свойство к результату, полученному на первом шаге, и получаем.
.
3. С учётом того, что получаем
.
4. Заключительное преобразование Адамара применяется к каждому кубиту, в результате чего получаем состояние
.
В результате получаем, что измерение входного регистра даст значение [6]
Существует несколько реализаций алгоритма Бернштейна — Вазирани. Например, можно сделать оптическую cистему, реализующую алгоритм Бернштейна — Вазирани[7]. Кроме того, есть реализация алгоритма на 5 и 16 кубитных компьютерах IBM[6]. О сложностях реализации алгоритма на компьютерах IBM написано в следующем подразделе .
Реализация алгоритма на компьютерах IBM
В любой практической реализации алгоритма Бернштейна — Вазирани основную сложность составляет создание оракула. Как было отмечено в квантовой постановке задачи построение и использование оракула требует логических элемента. Задача сразу становится достаточно сложной. Для решения проблемы был написан квантовый компилятор списка соединений (Quantum Netlist Compiler)[6]. В QNC реализованы специальные функции, дающие дополнительные возможности (например, создание кода Грея для уменьшения количества логических элементов. Это свойство упрощает создание оракула)[6].
Кроме сложности построения оракула, возникла проблема с точностью вычислений. Тестирование системы проводилось на битных строках. В качестве симулятора использовался IBM-Qiskit . Во всех случаях симулятор со точностью выдавал результаты. Затем провели тестирование битных строк как на кубитовой ibmqx4 машине, так и на кубитной ibmqx5. В результате появились ошибки и наихудший результат (сильное отклонение от ожидаемого результата) был для битной строки на машине ibmqx4[6].
Практическое применение
Алгоритм Бернштейна — Вазирани может применяться:
- В базах данных[8]. С помощью алгоритма доступ к нужным данным можно получить значительно быстрее, чем в классическом случае.
- В атаке на блочный шифр[9]. Алгоритм Бернштейна— Вазирани предоставляет несколько новых, более совершенных, чем в классическом случае, способов атаки на блочный шифр.
- В тесте производительности для квантовых компьютеров[10]. Алгоритм используется в качестве теста производительности для -кубитного квантового компьютера.
Существует реализация алгоритма Бернштейна-Вазирани в открытом доступе, выполненная на языке JavaScript.
Примечания
- ↑ Ethan Bernstein, Umesh Vazirani. Quantum complexity theory // in Proc. 25th Annual ACM Symposium on Theory of Computing, ACM. — 1993. — С. 4.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ А.А. Ежов. Лекции по нейроинформатике (рус.). — 2003. — С. 44—45.
- ↑ 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.
- ↑ 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.
Ссылки
- Strengths and Weaknesses of Quantum Computing // arXiv:quant-ph/9701001. — 1997-01-01.
- John Preskill. Lecture Notes for Physics 219: Quantum Computation. — 1999-01-01.
- David Deutsch, Roger Penrose. Quantum theory, the Church–Turing principle and the universal quantum computer // Proceedings of the Royal Society of London. A. Mathematical and Physical Sciences. — 1985-07-08. — Т. 400, вып. 1818. — С. 97–117. — doi:10.1098/rspa.1985.0070.
- Charles H. Bennett, Ethan Bernstein, Gilles Brassard, Umesh Vazirani. Strengths and Weaknesses of Quantum Computing // arXiv:quant-ph/9701001. — 1997-01-01.
Статья является кандидатом в добротные статьи со 2 декабря 2019. |