stringtranslate.com

Алгоритм Гровера

В квантовых вычислениях алгоритм Гровера , также известный как алгоритм квантового поиска , представляет собой квантовый алгоритм неструктурированного поиска, который с высокой вероятностью находит уникальные входные данные для функции черного ящика , которая дает определенное выходное значение, используя только оценки функции, где — размер области определения функции . Он был разработан Ловом Гровером в 1996 году. [1]

Аналогичную задачу в классических вычислениях невозможно решить менее чем за несколько вычислений (поскольку в среднем нужно проверить половину области определения, чтобы получить 50%-ную вероятность найти правильный входной сигнал). Чарльз Х. Беннетт , Итан Бернштейн, Жиль Брассар и Умеш Вазирани доказали, что любое квантовое решение проблемы требует оценки времени функции, поэтому алгоритм Гровера асимптотически оптимален . [2] Поскольку классические алгоритмы для NP-полных задач требуют экспоненциально большого числа шагов, а алгоритм Гровера обеспечивает не более чем квадратичное ускорение по сравнению с классическим решением для неструктурированного поиска, это предполагает, что алгоритм Гровера сам по себе не обеспечит полиномиальное время решения для NP- полных задач. полные проблемы (поскольку квадратный корень из экспоненциальной функции является экспоненциальной, а не полиномиальной функцией). [3]

В отличие от других квантовых алгоритмов, которые могут обеспечить экспоненциальное ускорение по сравнению со своими классическими аналогами, алгоритм Гровера обеспечивает только квадратичное ускорение. Однако даже квадратичное ускорение является значительным, если оно велико, и алгоритм Гровера можно применять для ускорения широких классов алгоритмов. [3] Алгоритм Гровера мог подобрать 128-битный симметричный криптографический ключ примерно за 264 итерации или 256-битный ключ примерно за 2128 итераций . Однако это может быть не так, что алгоритм Гровера представляет значительно повышенный риск шифрования по сравнению с существующими классическими алгоритмами. [4]

Приложения и ограничения

Алгоритм Гровера, наряду с такими вариантами, как усиление амплитуды , можно использовать для ускорения широкого спектра алгоритмов. [5] [6] [7] В частности, алгоритмы для NP-полных задач обычно содержат в качестве подпрограммы исчерпывающий поиск, который можно ускорить с помощью алгоритма Гровера. [6] Один из таких примеров — лучший на данный момент алгоритм для 3SAT . Общие проблемы удовлетворения ограничений также приводят к квадратичному ускорению с Гровером. [8] Эти алгоритмы не требуют, чтобы входные данные были заданы в форме оракула, поскольку алгоритм Гровера применяется с явной функцией, например, функцией проверки того, что набор битов удовлетворяет экземпляру 3SAT.

Алгоритм Гровера также может обеспечить доказуемое ускорение решения задач «черного ящика» при квантовой сложности запросов , включая различимость элементов [9] и проблему столкновений [10] (решаемую с помощью алгоритма Брассара – Хойера – Тэппа ). В задачах такого типа функция оракула f рассматривается как база данных, и цель состоит в том, чтобы использовать квантовый запрос к этой функции как можно меньше раз.

Криптография

Алгоритм Гровера по сути решает задачу обращения функции . Грубо говоря, если у нас есть функция , которую можно вычислить на квантовом компьютере, алгоритм Гровера позволяет нам вычислить ее при заданном . Следовательно, алгоритм Гровера обеспечивает широкое асимптотическое ускорение многих видов атак методом перебора на криптографию с симметричным ключом , включая атаки коллизий и атаки прообразов . [11] Однако это не обязательно может быть самый эффективный алгоритм, поскольку, например, алгоритм параллельного ро может находить коллизии в SHA2 более эффективно, чем алгоритм Гровера. [12]

Ограничения

В оригинальной статье Гровера этот алгоритм описывался как алгоритм поиска в базе данных, и это описание до сих пор распространено. База данных в этой аналогии представляет собой таблицу всех выходных данных функции, индексированных по соответствующим входным данным. Однако эта база данных не представлена ​​явно. Вместо этого вызывается оракул для оценки элемента по его индексу. Чтение всей базы данных поэлементно и преобразование ее в такое представление может занять намного больше времени, чем поиск Гровера. Чтобы учесть такие эффекты, алгоритм Гровера можно рассматривать как решение уравнения или удовлетворение ограничения . В таких приложениях оракул является способом проверки ограничения и не связан с алгоритмом поиска. Такое разделение обычно предотвращает алгоритмическую оптимизацию, тогда как традиционные алгоритмы поиска часто полагаются на такую ​​оптимизацию и избегают исчерпывающего поиска. [13] К счастью, быстрая реализация оракула Гровера возможна для многих задач удовлетворения ограничений и оптимизации. [14]

Основным препятствием для реализации ускорения с помощью алгоритма Гровера является то, что достигаемое квадратичное ускорение слишком скромное, чтобы преодолеть большие накладные расходы ближайших квантовых компьютеров. [15] Однако более поздние поколения отказоустойчивых квантовых компьютеров с более высокой производительностью оборудования, возможно, смогут реализовать такое ускорение для практических случаев обработки данных.

Описание проблемы

Предположим, что в качестве входных данных для алгоритма Гровера у нас есть функция . В аналогии с «неструктурированной базой данных» домен представляет собой индексы базы данных, а f ( x ) = 1 тогда и только тогда, когда данные, на которые указывает x , удовлетворяют критерию поиска. Мы дополнительно предполагаем, что только один индекс удовлетворяет условию f ( x ) = 1 , и называем этот индекс ω . Наша цель — идентифицировать ω .

Мы можем получить доступ к f с помощью подпрограммы (иногда называемой оракулом ) в форме унитарного оператора U ω , который действует следующим образом:

При этом используется трехмерное пространство состояний , которое предоставляется регистром с кубитами . Часто это пишут как

Алгоритм Гровера выводит ω с вероятностью не менее 1/2 , используя применение U ω . Эту вероятность можно сделать сколь угодно большой, запустив алгоритм Гровера несколько раз. Если использовать алгоритм Гровера до тех пор , пока не будет найдено ω , ожидаемое количество приложений по-прежнему будет равно , поскольку в среднем он будет запускаться только дважды.

Альтернативное определение оракула

В этом разделе приведенный выше оракул сравнивается с оракулом .

U ω отличается от стандартного квантового оракула для функции f . Этот стандартный оракул, обозначенный здесь как U f , использует вспомогательную систему кубитов . Тогда операция представляет собой инверсию ( НЕ-вентиль ) в основной системе, обусловленную значением f ( x ) из вспомогательной системы:

или кратко,

Эти оракулы обычно реализуются с использованием невычислений .

Если нам дан U f в качестве нашего оракула, то мы также можем реализовать U ω , поскольку U ω — это U f , когда вспомогательный кубит находится в состоянии :

Итак, алгоритм Гровера можно запускать независимо от того, какой оракул задан. [3] Если задан U f , то мы должны поддерживать дополнительный кубит в состоянии и применять U f вместо U ω .

Алгоритм

Представление квантовой схемы алгоритма Гровера

Шаги алгоритма Гровера выглядят следующим образом:

  1. Инициализируйте систему для равномерной суперпозиции всех состояний.
  2. Выполните следующие «итерации Гровера» :
    1. Применить оператор
    2. Примените оператор диффузии Гровера
  3. Измерьте полученное квантовое состояние в вычислительной базе.

Для правильно выбранного значения выход будет с вероятностью приближаться к 1 при N ≫ 1. Анализ показывает, что это конечное значение для удовлетворяет .

Реализация шагов этого алгоритма может быть выполнена с использованием ряда вентилей, линейных по количеству кубитов. [3] Таким образом, сложность вентиля этого алгоритма равна или на итерацию.

Геометрическое доказательство правильности

На рисунке показана геометрическая интерпретация первой итерации алгоритма Гровера. Вектор состояния поворачивается к целевому вектору , как показано.

Существует геометрическая интерпретация алгоритма Гровера, следующая из наблюдения, что квантовое состояние алгоритма Гровера после каждого шага остается в двумерном подпространстве. Рассмотрим плоскость, натянутую на и ; эквивалентно, плоскость, охватываемая перпендикуляром ket .

Алгоритм Гровера начинается с начального ket , который лежит в подпространстве. Оператор является отражением в гиперплоскости, ортогональной векторам в плоскости, натянутой на и , т.е. он действует как отражение через . Это можно увидеть, написав в форме размышления Домохозяина :

Оператор является отражением через . Оба оператора и принимают состояния в плоскости, охватываемой состояниями на плоскости. Следовательно, алгоритм Гровера остается в этой плоскости на протяжении всего алгоритма.

Несложно проверить, что оператор каждого шага итерации Гровера поворачивает вектор состояния на угол . Таким образом, при достаточном количестве итераций можно перейти от начального состояния к желаемому выходному состоянию . Исходный кет близок к состоянию, ортогональному :

В геометрических терминах угол между и определяется выражением

Нам нужно остановиться, когда вектор состояния приблизится к ; после этого последующие итерации поворачивают вектор состояния от , уменьшая вероятность получения правильного ответа. Точная вероятность измерения правильного ответа равна

где r — (целое) количество итераций Гровера. Таким образом, самое раннее время, когда мы получаем почти оптимальное измерение, — это .

Алгебраическое доказательство правильности

Чтобы завершить алгебраический анализ, нам нужно выяснить, что происходит, когда мы повторно применяем . Естественный способ сделать это — провести анализ собственных значений матрицы. Обратите внимание, что в течение всего расчета состояние алгоритма представляет собой линейную комбинацию и . Мы можем записать действие и в пространстве, охватываемом как:

Таким образом, в базисе (который не является ни ортогональным, ни базисом всего пространства) действие применения, за которым следует следующее, задается матрицей

Эта матрица имеет очень удобную жорданову форму . Если мы определим , то это

где

Отсюда следует, что r -я степень матрицы (соответствующая r итерациям) равна

Используя эту форму, мы можем использовать тригонометрические тождества для вычисления вероятности наблюдения ω после r итераций, упомянутых в предыдущем разделе:

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

Короткий расчет теперь показывает, что наблюдение дает правильный ответ ω с ошибкой .

Расширения и варианты

Несколько совпадающих записей

Если вместо 1 совпадающей записи имеется k совпадающих записей, работает тот же алгоритм, но количество итераций должно быть вместо

Есть несколько способов справиться со случаем, когда k неизвестно. [16] Простое решение работает оптимально до постоянного коэффициента: многократно запускайте алгоритм Гровера для все более малых значений k , например, принимая k = N , N /2, N /4, ... и т. д., принимая итерация t, пока не будет найдена соответствующая запись.

С достаточно большой вероятностью отмеченная запись будет найдена итерацией по некоторой константе c . Таким образом, общее число выполненных итераций не превышает

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

Если (или традиционное отмеченное состояние Алгоритма Гровера при запуске с ), алгоритм не обеспечит усиления. Если , увеличение k начнет увеличивать количество итераций, необходимых для получения решения. [17] С другой стороны, если , классический запуск проверяющего оракула на одном случайно выбранном входном сигнале скорее всего даст правильное решение.

Версия этого алгоритма используется для решения проблемы столкновений . [18] [19]

Квантовый частичный поиск

Модификация алгоритма Гровера, называемая квантовым частичным поиском, была описана Гровером и Радхакришнаном в 2004 году. [20] При частичном поиске человек не заинтересован в поиске точного адреса целевого элемента, а только в поиске первых нескольких цифр адреса. Аналогично, мы можем подумать о «разбиении» пространства поиска на блоки, а затем спросить: «В каком блоке находится целевой элемент?». Во многих приложениях такой поиск дает достаточно информации, если целевой адрес содержит нужную информацию. Например, если использовать пример, приведенный Л.К. Гровером, если у кого-то есть список студентов, организованный по классам, нас может интересовать только то, находится ли студент в нижних 25%, 25–50%, 50–75% или 75–100% процентиль.

Для описания частичного поиска мы рассматриваем базу данных, разделенную на блоки, каждый размером . Задача частичного поиска проще. Рассмотрим классический подход: мы выбираем один блок наугад, а затем выполняем обычный поиск по остальным блокам (на языке теории множеств — дополнению). Если мы не находим цель, то знаем, что она находится в блоке, который мы не искали. Среднее количество итераций падает с до .

Алгоритм Гровера требует итераций. Частичный поиск будет быстрее в числовом коэффициенте, который зависит от количества блоков . Частичный поиск использует глобальные и локальные итерации. Назначен глобальный оператор Гровера и назначен локальный оператор Гровера .

На блоки действует глобальный оператор Гровера. По сути, оно дается следующим образом:

  1. Выполните стандартные итерации Гровера для всей базы данных.
  2. Выполните локальные итерации Гровера. Локальная итерация Гровера представляет собой прямую сумму итераций Гровера по каждому блоку.
  3. Выполните одну стандартную итерацию Гровера.

Оптимальные значения и обсуждаются в статье Гровера и Радхакришнана. Можно также задаться вопросом, что произойдет, если применить последовательные частичные поиски на разных уровнях «разрешения». Эту идею подробно изучили Владимир Корепин и Сюй, которые назвали ее бинарным квантовым поиском. Они доказали, что на самом деле это не быстрее, чем выполнение одного частичного поиска.

Оптимальность

Алгоритм Гровера оптимален с точностью до субпостоянных коэффициентов. То есть любой алгоритм, который обращается к базе данных только с помощью оператора U ω , должен применять U ω по крайней мере в несколько раз больше, чем алгоритм Гровера. [21] Распространение алгоритма Гровера на k совпадающих записей, π ( N / k ) 1/2 /4, также является оптимальным. [18] Этот результат важен для понимания ограничений квантовых вычислений.

Если бы проблема поиска Гровера была разрешима с помощью log c N применений U ω , это означало бы, что NP содержится в BQP , путем преобразования проблем из NP в задачи поиска типа Гровера. Оптимальность алгоритма Гровера предполагает, что квантовые компьютеры не могут решать NP-полные задачи за полиномиальное время, и поэтому NP не содержится в BQP.

Было показано, что класс нелокальных квантовых компьютеров со скрытыми переменными может реализовать поиск в базе данных -элементов за большинство шагов. Это быстрее, чем шаги, выполняемые алгоритмом Гровера. [22]

Смотрите также

Примечания

  1. ^ Гровер, Лов К. (1 июля 1996 г.). «Быстрый квантовомеханический алгоритм поиска в базе данных». Материалы двадцать восьмого ежегодного симпозиума ACM по теории вычислений - STOC '96 . Филадельфия, Пенсильвания, США: Ассоциация вычислительной техники. стр. 212–219. arXiv : Quant-ph/9605043 . Бибкод : 1996quant.ph..5043G. дои : 10.1145/237814.237866. ISBN 978-0-89791-785-8. S2CID  207198067.
  2. ^ Беннетт CH; Бернштейн Э.; Брассар Г.; Вазирани У. (1997). «Сильные и слабые стороны квантовых вычислений». SIAM Journal по вычислительной технике . 26 (5): 1510–1523. arXiv : Quant-ph/9701001 . дои : 10.1137/s0097539796300933. S2CID  13403194.
  3. ^ abcd Nielsen, Майкл А. (2010). Квантовые вычисления и квантовая информация. Исаак Л. Чуанг. Кембридж: Издательство Кембриджского университета. стр. 276–305. ISBN 978-1-107-00217-3. ОСЛК  665137861.
  4. ^ Дэниел Дж. Бернштейн (3 марта 2010 г.). «Гровер против МакЭлиса» (PDF) . {{cite journal}}: Требуется цитировать журнал |journal=( помощь )
  5. ^ Гровер, Лов К. (1998). «Основы быстрых квантово-механических алгоритмов». В Виттере, Джеффри Скотт (ред.). Материалы тридцатого ежегодного симпозиума ACM по теории вычислений, Даллас, Техас, США, 23–26 мая 1998 г. Ассоциация вычислительной техники. стр. 53–62. arXiv : Quant-ph/9711043 . дои : 10.1145/276698.276712.
  6. ^ аб Амбайнис, А. (1 июня 2004 г.). «Алгоритмы квантового поиска». Новости ACM SIGACT . 35 (2): 22–35. arXiv : Quant-ph/0504012 . дои : 10.1145/992287.992296. ISSN  0163-5700. S2CID  11326499.
  7. ^ Джордан, Стивен. «Зоопарк квантовых алгоритмов». Quantalgorithmzoo.org . Проверено 21 апреля 2021 г.
  8. ^ Серф, Николас Дж.; Гровер, Лов К.; Уильямс, Колин П. (1 мая 2000 г.). «Вложенный квантовый поиск и NP-трудные проблемы». Применимая алгебра в технике, связи и информатике . 10 (4): 311–338. дои : 10.1007/s002000050134. ISSN  1432-0622. S2CID  311132.
  9. ^ Амбайнис, Андрис (1 января 2007 г.). «Алгоритм квантового блуждания для различения элементов». SIAM Journal по вычислительной технике . 37 (1): 210–239. arXiv : Quant-ph/0311001 . дои : 10.1137/S0097539705447311. ISSN  0097-5397. S2CID  6581885.
  10. ^ Брассар, Жиль; Хойер, Питер; Тапп, Ален (1998). «Квантовый криптоанализ хэш-функций и функций без клешней». В Луккези, Клаудио Л.; Моура, Арнальдо В. (ред.). LATIN '98: Теоретическая информатика, Третий латиноамериканский симпозиум, Кампинас, Бразилия, 20–24 апреля 1998 г., Материалы . Конспекты лекций по информатике. Том. 1380. Спрингер. стр. 163–169. arXiv : Quant-ph/9705002 . дои : 10.1007/BFb0054319.
  11. ^ Постквантовая криптография. Дэниел Дж. Бернштейн, Йоханнес Бухманн, Эрик, дипломированный математик Дамен. Берлин: Шпрингер. 2009. ISBN 978-3-540-88702-7. ОСЛК  318545517.{{cite book}}: CS1 maint: others (link)
  12. ^ Бернштейн, Дэниел Дж. (21 апреля 2021 г.). «Анализ затрат на коллизии хешей: сделают ли квантовые компьютеры SHARCS устаревшими?» (PDF) . Материалы конференции «Специальное оборудование для атак на криптографические системы» (SHARCS '09) . 09 : 105–117.
  13. ^ Виамонтес Г.Ф.; Марков И.Л.; Хейс Дж.П. (2005), «Практичен ли квантовый поиск?» (PDF) , Computing in Science and Engineering , 7 (3): 62–70, arXiv : quant-ph/0405001 , Bibcode : 2005CSE.....7c..62V, doi : 10.1109/mcse.2005.53, S2CID  8929938
  14. ^ Синицын Н.А.; Ян Б. (2023). «Топологически защищенный оракул Гровера для проблемы раздела». Физический обзор А. 108 (2): 022412. arXiv : 2304.10488 . doi :10.1103/PhysRevA.108.022412. S2CID  258236417.
  15. ^ Бэббуш, Райан; МакКлин, Джаррод Р.; Ньюман, Майкл; Гидни, Крейг; Бойшо, Серхио; Невен, Хартмут (29 марта 2021 г.). «Фокус не только на квадратичном ускорении, но и на квантовом преимуществе с коррекцией ошибок». PRX Квантум . 2 (1): 010103. arXiv : 2011.04149 . дои : 10.1103/PRXQuantum.2.010103 .
  16. Ааронсон, Скотт (19 апреля 2021 г.). «Введение в конспекты лекций по квантовой информатике» (PDF) .
  17. ^ Нильсен-Чуанг
  18. ^ аб Мишель Бойер; Жиль Брассар; Питер Хойер; Ален Тапп (1998), «Жесткие границы квантового поиска», Fortschr. Физ. , 46 (4–5): 493–506, arXiv : quant-ph/9605034 , Bibcode : 1998ForPh..46..493B, doi : 10.1002/3527603093.ch10, ISBN 9783527603091
  19. ^ Андрис Амбайнис (2004), «Алгоритмы квантового поиска», SIGACT News , 35 (2): 22–35, arXiv : quant-ph/0504012 , Bibcode : 2005quant.ph..4012A, doi : 10.1145/992287.992296, S2CID  11326499
  20. ^ Л.К. Гровер; Дж. Радхакришнан (7 февраля 2005 г.). «Частичный квантовый поиск в базе данных проще?». arXiv : Quant-ph/0407122v4 .
  21. ^ Залка, Кристоф (1 октября 1999 г.). «Алгоритм квантового поиска Гровера оптимален». Физический обзор А. 60 (4): 2746–2751. arXiv : Quant-ph/9711070 . Бибкод : 1999PhRvA..60.2746Z. doi : 10.1103/PhysRevA.60.2746. S2CID  1542077.
  22. ^ Ааронсон, Скотт. «Квантовые вычисления и скрытые переменные» (PDF) .

Рекомендации

Внешние ссылки