Алгоритм Гровера
В квантовых вычислениях , алгоритм Гровера также известный как алгоритм квантового поиска , представляет собой квантовый алгоритм неструктурированного поиска, который с высокой вероятностью находит уникальные входные данные для функции черного ящика , которая создает определенное выходное значение, используя всего лишь оценки функции, где функции — размер области определения . Его разработал Лов Гровер в 1996 году. [ 1 ]
Аналогичная задача в классических вычислениях не может быть решена менее чем за оценки (поскольку в среднем нужно проверить половину домена, чтобы получить 50% шанс найти правильный ввод). Чарльз Х. Беннетт , Итан Бернштейн, Жиль Брассар и Умеш Вазирани доказали, что любое квантовое решение проблемы должно оценивать функцию раз, поэтому алгоритм Гровера асимптотически оптимален . [ 2 ] Поскольку классические алгоритмы для NP-полных задач требуют экспоненциально большого количества шагов, а алгоритм Гровера обеспечивает не более чем квадратичное ускорение по сравнению с классическим решением для неструктурированного поиска, это предполагает, что алгоритм Гровера сам по себе не обеспечит решения за полиномиальное время для NP-полных задач ( поскольку квадратный корень из показательной функции является экспоненциальной, а не полиномиальной функцией). [ 3 ]
В отличие от других квантовых алгоритмов, которые могут обеспечить экспоненциальное ускорение по сравнению со своими классическими аналогами, алгоритм Гровера обеспечивает только квадратичное ускорение. Однако даже квадратичное ускорение оказывается значительным, когда велик, и алгоритм Гровера можно применять для ускорения работы широких классов алгоритмов. [ 3 ] Алгоритм Гровера мог подобрать 128-битный симметричный криптографический ключ примерно за 2 64 итераций или 256-битный ключ примерно за 2 128 итерации. Однако это может быть не так, что алгоритм Гровера представляет значительно повышенный риск шифрования по сравнению с существующими классическими алгоритмами. [ 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 при N ≫ 1. Анализ показывает, что это возможное значение для удовлетворяет .
Реализация шагов этого алгоритма может быть выполнена с использованием ряда вентилей, линейных по количеству кубитов. [ 3 ] Таким образом, сложность вентиля этого алгоритма равна , или за итерацию.
Геометрическое доказательство правильности
[ редактировать ]
Существует геометрическая интерпретация алгоритма Гровера, следующая из наблюдения, что квантовое состояние алгоритма Гровера после каждого шага остается в двумерном подпространстве. Рассмотрим плоскость, натянутую на и ; эквивалентно, плоскость, охватываемая и перпендикулярный кет .
Алгоритм Гровера начинается с начального кет , лежащий в подпространстве. Оператор является отражением в гиперплоскости, ортогональной для векторов в плоскости, натянутой на и , т. е. он действует как отражение через . Это можно увидеть, написав в форме отражения Домохозяина :
Оператор является отражением через . Оба оператора и брать состояния в плоскости, охватываемой и состояниям в плоскости. Следовательно, алгоритм Гровера остается в этой плоскости на протяжении всего алгоритма.
Несложно проверить, что оператор каждого шага итерации Гровера поворачивает вектор состояния на угол . Итак, при достаточном количестве итераций можно повернуть из начального состояния в желаемое состояние вывода . Исходный кет близок к состоянию, ортогональному :
В геометрическом плане угол между и дается
Нам нужно остановиться, когда вектор состояния пройдет близко к ; последующие итерации поворачивают вектор состояния от после этого , уменьшая вероятность получения правильного ответа. Точная вероятность измерения правильного ответа равна
где 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% процентиль.
Для описания частичного поиска мы рассматриваем базу данных, разделенную на блоки, каждый размером . Задача частичного поиска проще. Рассмотрим классический подход: мы выбираем один блок наугад, а затем выполняем обычный поиск по остальным блокам (на языке теории множеств — дополнению). Если мы не находим цель, то знаем, что она находится в блоке, который мы не искали. Среднее количество итераций снижается с к .
Алгоритм Гровера требует итерации. Частичный поиск будет быстрее в числовом коэффициенте, который зависит от количества блоков. . Частичный поиск использует глобальные итерации и локальные итерации. Назначен глобальный оператор Гровера и назначен местный оператор Гровера .
На блоки действует глобальный оператор Гровера. По сути, оно дается следующим образом:
- Выполнять стандартные итерации Гровера для всей базы данных.
- Выполнять локальные итерации Гровера. Локальная итерация Гровера представляет собой прямую сумму итераций Гровера по каждому блоку.
- Выполните одну стандартную итерацию Гровера.
Оптимальные значения и обсуждаются в статье Гровера и Радхакришнана. Можно также задаться вопросом, что произойдет, если применить последовательные частичные поиски на разных уровнях «разрешения». Эту идею подробно изучили Владимир Корепин и Сюй, которые назвали ее бинарным квантовым поиском. Они доказали, что на самом деле это не быстрее, чем выполнение одного частичного поиска.
Оптимальность
[ редактировать ]Алгоритм Гровера оптимален с точностью до субпостоянных коэффициентов. То есть любой алгоритм, который обращается к базе данных только с помощью оператора U ω, должен применять U ω как минимум дробь столько же раз, сколько алгоритм Гровера. [ 21 ] Расширение алгоритма Гровера до k совпадающих записей, π ( N / k ) 1/2 /4 также является оптимальным. [ 18 ] Этот результат важен для понимания ограничений квантовых вычислений.
Если бы проблему поиска Гровера можно было решить с помощью журнала с N применений U ω , которые подразумевают, что NP содержится в BQP , путем преобразования проблем из NP в задачи поиска типа Гровера. Оптимальность алгоритма Гровера предполагает, что квантовые компьютеры не могут решать NP-полные задачи за полиномиальное время, и поэтому NP не содержится в BQP.
Было показано, что класс нелокальных квантовых компьютеров со скрытыми переменными может реализовать поиск - база данных предметов не более шаги. Это быстрее, чем шаги, выполняемые алгоритмом Гровера. [ 22 ]
См. также
[ редактировать ]- Усиление амплитуды
- Алгоритм Брассара – Хойера – Тэппа (для решения проблемы столкновений )
- Алгоритм Шора (для факторизации)
- Поиск квантовых прогулок
Примечания
[ редактировать ]- ^ Гровер, Лов К. (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 .
- ^ Беннетт CH; Бернштейн Э.; Брассар Г.; Вазирани У. (1997). «Сильные и слабые стороны квантовых вычислений» . SIAM Journal по вычислительной технике . 26 (5): 1510–1523. arXiv : Quant-ph/9701001 . дои : 10.1137/s0097539796300933 . S2CID 13403194 .
- ^ Перейти обратно: а б с д Нильсен, Майкл А. (2010). Квантовые вычисления и квантовая информация . Исаак Л. Чуанг. Кембридж: Издательство Кембриджского университета. стр. 276–305. ISBN 978-1-107-00217-3 . OCLC 665137861 .
- ^ Бернштейн, Дэниел Дж. (2010). «Гровер против МакЭлиса» (PDF) . В Сендрие, Николя (ред.). Пост-квантовая криптография, Третий международный семинар, PQCrypto 2010, Дармштадт, Германия, 25-28 мая 2010 г. Материалы . Конспекты лекций по информатике. Том. 6061. Спрингер. стр. 73–80. дои : 10.1007/978-3-642-12929-2_6 .
- ^ Гровер, Лов К. (1998). «Основы быстрых квантово-механических алгоритмов». В Виттере, Джеффри Скотт (ред.). Материалы тридцатого ежегодного симпозиума ACM по теории вычислений, Даллас, Техас, США, 23–26 мая 1998 г. Ассоциация вычислительной техники. стр. 53–62. arXiv : Quant-ph/9711043 . дои : 10.1145/276698.276712 .
- ^ Перейти обратно: а б Амбайнис, А. (1 июня 2004 г.). «Алгоритмы квантового поиска» . Новости ACM SIGACT . 35 (2): 22–35. arXiv : Quant-ph/0504012 . дои : 10.1145/992287.992296 . ISSN 0163-5700 . S2CID 11326499 .
- ^ Джордан, Стивен. «Зоопарк квантовых алгоритмов» . Quantalgorithmzoo.org . Проверено 21 апреля 2021 г.
- ^ Серф, Николас Дж.; Гровер, Лов К.; Уильямс, Колин П. (1 мая 2000 г.). «Вложенный квантовый поиск и NP-трудные задачи» . Применимая алгебра в технике, связи и вычислительной технике . 10 (4): 311–338. дои : 10.1007/s002000050134 . ISSN 1432-0622 . S2CID 311132 .
- ^ Амбайнис, Андрис (1 января 2007 г.). «Алгоритм квантового блуждания для различения элементов» . SIAM Journal по вычислительной технике . 37 (1): 210–239. arXiv : Quant-ph/0311001 . дои : 10.1137/S0097539705447311 . ISSN 0097-5397 . S2CID 6581885 .
- ^ Брассар, Жиль; Хойер, Питер; Тапп, Ален (1998). «Квантовый криптоанализ хэш-функций и функций без клешней». В Луккези, Клаудио Л.; Моура, Арнальдо В. (ред.). LATIN '98: Теоретическая информатика, Третий латиноамериканский симпозиум, Кампинас, Бразилия, 20-24 апреля 1998 г., Материалы . Конспекты лекций по информатике. Том. 1380. Спрингер. стр. 163–169. arXiv : Quant-ph/9705002 . дои : 10.1007/BFb0054319 .
- ^ Постквантовая криптография . Дэниел Дж. Бернштейн, Йоханнес Бухманн, Эрик, дипломированный математик Дамен. Берлин: Шпрингер. 2009. ISBN 978-3-540-88702-7 . OCLC 318545517 .
{{cite book}}
: CS1 maint: другие ( ссылка ) - ^ Бернштейн, Дэниел Дж. (21 апреля 2021 г.). «Анализ затрат на коллизии хешей: сделают ли квантовые компьютеры SHARCS устаревшими?» (PDF) . Материалы конференции «Специальное оборудование для атаки на криптографические системы» (SHARCS '09) . 09 : 105–117.
- ^ Виамонтес ГФ; Марков И.Л.; Хейс Дж.П. (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
- ^ Синицын Н.А.; Ян Б. (2023). «Топологически защищенный оракул Гровера для проблемы раздела». Физический обзор А. 108 (2): 022412. arXiv : 2304.10488 . дои : 10.1103/PhysRevA.108.022412 . S2CID 258236417 .
- ^ Бэббуш, Райан; МакКлин, Джаррод Р.; Ньюман, Майкл; Гидни, Крейг; Бойшо, Серхио; Невен, Хартмут (29 марта 2021 г.). «Фокус на квадратичном ускорении для квантового преимущества с коррекцией ошибок» . PRX Квантум . 2 (1): 010103. arXiv : 2011.04149 . дои : 10.1103/PRXQuantum.2.010103 .
- ^ Ааронсон, Скотт (19 апреля 2021 г.). «Введение в конспекты лекций по квантовой информатике» (PDF) .
- ^ Нильсен-Чуанг
- ^ Перейти обратно: а б Мишель Бойер; Жиль Брассар; Питер Хойер; Ален Тапп (1998), «Жесткие границы квантового поиска», Fortschr. Физ. , 46 (4–5): 493–506, arXiv : quant-ph/9605034 , Bibcode : 1998ForPh..46..493B , doi : 10.1002/3527603093.ch10 , ISBN 9783527603091
- ^ Андрис Амбайнис (2004), «Алгоритмы квантового поиска», SIGACT News , 35 (2): 22–35, arXiv : quant-ph/0504012 , Bibcode : 2005quant.ph..4012A , doi : 10.1145/992287.992296 , S2CID 11326499
- ^ Л.К. Гровер; Дж. Радхакришнан (7 февраля 2005 г.). «Частичный квантовый поиск в базе данных проще?». arXiv : Quant-ph/0407122v4 .
- ^ Залка, Кристоф (1 октября 1999 г.). «Алгоритм квантового поиска Гровера оптимален» . Физический обзор А. 60 (4): 2746–2751. arXiv : Quant-ph/9711070 . Бибкод : 1999PhRvA..60.2746Z . дои : 10.1103/PhysRevA.60.2746 . S2CID 1542077 .
- ^ Ааронсон, Скотт. «Квантовые вычисления и скрытые переменные» (PDF) .
Ссылки
[ редактировать ]- Гровер Л.К.: Быстрый квантово-механический алгоритм для поиска в базе данных , Труды, 28-й ежегодный симпозиум ACM по теории вычислений, (май 1996 г.), с. 212
- Гровер Л.К.: От уравнения Шрёдингера к алгоритму квантового поиска , Американский журнал физики, 69(7): 769–777, 2001. Педагогический обзор алгоритма и его истории.
- Гровер Л.К.: КВАНТОВЫЕ ВЫЧИСЛЕНИЯ: Как странная логика субатомного мира может позволить машинам производить вычисления в миллионы раз быстрее, чем они делают сегодня. The Sciences , июль/август 1999 г., стр. 24–30.
- Нильсен М.А. и Чуанг И.Л. Квантовые вычисления и квантовая информация . Издательство Кембриджского университета, 2000. Глава 6.
- Что такое квантовая телефонная книга? , Лов Гровер, Lucent Technologies
Внешние ссылки
[ редактировать ]
- Дэви Вибирал. «Симулятор квантовых цепей» . Архивировано из оригинала 16 января 2017 г. Проверено 13 января 2017 г.
- Крейг Гидни (5 марта 2013 г.). «Алгоритм квантового поиска Гровера» . Архивировано из оригинала 17 ноября 2020 г. Проверено 8 марта 2013 г.
- Франсуа Шварцентрубер (18 мая 2013 г.). «Алгоритм Гровера» .
- Александр Прокопеня. «Квантовая схема, реализующая алгоритм поиска Гровера» . Вольфрам Альфа .
- «Квантовые вычисления, теория» , Энциклопедия математики , EMS Press , 2001 [1994]
- Роберто Маэстре (11 мая 2018 г.). «Алгоритм Гровера, реализованный в R и C» . Гитхаб .
- Бернхард Омер. «QCL — язык программирования для квантовых компьютеров» . Проверено 30 апреля 2022 г.
Реализовано в /qcl-0.6.4/lib/grover.qcl.