Алгоритм Шора

редактировать

Алгоритм Шора - это алгоритм квантового компьютера с полиномиальным временем для целочисленной факторизации. Неформально он решает следующую проблему: для заданного целого числа найти его простые множители. Он был открыт в 1994 году американским математиком Питером Шором. N {\ displaystyle N}

На квантовом компьютере, чтобы разложить целое число на множители, алгоритм Шора работает за полиномиальное время (затраченное время полиномиально от размера целого числа, заданного на входе). В частности, он принимает квантовые вентили порядка с использованием быстрого умножения, тем самым демонстрируя, что проблема целочисленной факторизации может быть эффективно решена на квантовом компьютере и, следовательно, относится к классу сложности BQP. Это почти экспоненциально быстрее, чем наиболее эффективного известного классического алгоритма факторинга, то общее число поле решето, которое работает в суб-экспоненциальное время :. Эффективность алгоритма Шора обусловлена ​​эффективностью квантового преобразования Фурье и модульного возведения в степень с помощью повторных квадратов. N {\ displaystyle N} бревно N {\ displaystyle \ log N} О ( ( бревно N ) 2 ( бревно бревно N ) ( бревно бревно бревно N ) ) {\ Displaystyle О \! \ влево ((\ журнал N) ^ {2} (\ журнал \ журнал N) (\ журнал \ журнал \ журнал N) \ вправо)} О ( е 1.9 ( бревно N ) 1 / 3 ( бревно бревно N ) 2 / 3 ) {\ Displaystyle О \! \ влево (е ^ {1,9 (\ журнал N) ^ {1/3} (\ журнал \ журнал N) ^ {2/3}} \ справа)}

Если бы квантовый компьютер с достаточным количеством кубитов мог работать, не поддаваясь квантовому шуму и другим явлениям квантовой декогеренции, то алгоритм Шора можно было бы использовать для взлома схем криптографии с открытым ключом, таких как широко используемая схема RSA. RSA основан на предположении, что разложение больших целых чисел на множители сложно вычислить. Насколько известно, это предположение справедливо для классических (неквантовых) компьютеров; не известен ни один классический алгоритм, который может разложить целые числа на множители за полиномиальное время. Однако алгоритм Шора показывает, что разложение целых чисел на множители эффективно на идеальном квантовом компьютере, поэтому может оказаться возможным победить RSA, построив большой квантовый компьютер. Это также было мощным мотиватором для разработки и создания квантовых компьютеров, а также для изучения новых алгоритмов квантовых компьютеров. Это также способствовало исследованию новых криптосистем, защищенных от квантовых компьютеров, которые в совокупности называются постквантовой криптографией.

В 2001 году алгоритм Шора был продемонстрирован группой в IBM, который учтенных в, используя реализацию ЯМР квантового компьютера с кубитами. После внедрения IBM две независимые группы реализовали алгоритм Шора с использованием фотонных кубитов, подчеркнув, что многокубитовая запутанность наблюдалась при выполнении схем алгоритма Шора. В 2012 году факторизация была проведена с использованием твердотельных кубитов. Кроме того, в 2012 году была достигнута факторизация, установив рекорд для наибольшего целого числа, факторизованного с помощью алгоритма Шора. В 2019 году была предпринята попытка разложить число 35 на множители с помощью алгоритма Шора на IBM Q System One, но алгоритм не удался из-за накопления ошибок. Однако квантовые компьютеры с помощью других алгоритмов, в частности, квантового отжига, разложили на множители гораздо большие числа. 15 {\ displaystyle 15} 3 × 5 {\ displaystyle 3 \ times 5} 7 {\ displaystyle 7} 15 {\ displaystyle 15} 21 год {\ displaystyle 21}

СОДЕРЖАНИЕ

  • 1 Процедура
    • 1.1 Классическая партия
    • 1.2 Квантовая часть: подпрограмма определения периода
  • 2 Объяснение алгоритма
    • 2.1 Получение коэффициентов из периода
    • 2.2 Определение периода
    • 2.3 Узкое место
  • 3 Дискретные логарифмы
  • 4 См. Также
  • 5 ссылки
  • 6 Дальнейшее чтение
  • 7 Внешние ссылки

Процедура

Проблема, которую мы пытаемся решить это, учитывая составное число, чтобы найти нетривиальный делитель из (делитель строго между и). Прежде чем пытаться найти такой делитель, можно использовать относительно быстрые алгоритмы проверки простоты, чтобы убедиться, что он действительно составной. N {\ displaystyle N} N {\ displaystyle N} 1 {\ displaystyle 1} N {\ displaystyle N} N {\ displaystyle N}

Нам нужно быть нечетным (в противном случае - делителем) и не быть степенью простого числа (в противном случае это простое число является делителем), поэтому нам нужно проверить, что нет целых корней для. N {\ displaystyle N} 2 {\ displaystyle 2} N k {\ displaystyle {\ sqrt [{k}] {N}}} 2 k бревно 3 ( N ) {\ Displaystyle 2 \ Leq К \ Leq {\ log _ {3}} (N)}

Следовательно, мы можем считать, что это произведение двух взаимно простых целых чисел, больших чем. Из китайской теоремы об остатках следует, что существует по крайней мере четыре различных квадратных корня по модулю (поскольку есть два корня для каждого модульного уравнения). Цель алгоритма - найти квадратный корень из модуля, отличный от и, потому что тогда N {\ displaystyle N} 2 {\ displaystyle 2} 1 {\ displaystyle 1} N {\ displaystyle N} б {\ displaystyle b} 1 {\ displaystyle 1} N {\ displaystyle N} 1 {\ displaystyle 1} - 1 {\ displaystyle -1}

б 2 - 1 знак равно ( б + 1 ) ( б - 1 ) знак равно м N {\ Displaystyle b ^ {2} -1 = (b + 1) (b-1) = mN}

для ненулевого целого числа, которое дает нам нетривиальные делители и о. Эта идея похожа на другие алгоритмы факторизации, такие как квадратное решето. м {\ displaystyle m} gcd ( N , б + 1 ) {\ displaystyle \ gcd (N, b + 1)} gcd ( N , б - 1 ) {\ displaystyle \ gcd (N, b-1)} N {\ displaystyle N}

В свою очередь, поиск такого элемента сводится к нахождению элемента четного периода с определенным дополнительным свойством (как поясняется ниже, требуется, чтобы не выполнялось условие шага 6 классической части). Квантовый алгоритм используется для нахождения периода случайно выбранных элементов, так как это сложная задача на классическом компьютере. б {\ displaystyle b} а {\ displaystyle a} а {\ displaystyle a}

Алгоритм Шора состоит из двух частей:

  1. Сведение, которое может быть выполнено на классическом компьютере, проблемы факторизации к проблеме определения порядка.
  2. Квантовый алгоритм для решения задачи поиска порядка.

Классическая часть

  1. Выберите случайное число. 1 lt; а lt; N {\ Displaystyle 1 lt;а lt;N}
  2. Compute, то наибольший общий делитель из и. Это можно сделать с помощью алгоритма Евклида. K знак равно gcd ( а , N ) {\ Displaystyle К = \ НОД (а, N)} а {\ displaystyle a} N {\ displaystyle N}
  3. Если, то является нетривиальным фактором, так что все готово. K 1 {\ displaystyle K \ neq 1} K {\ displaystyle K} N {\ displaystyle N}
  4. В противном случае используйте подпрограмму квантового определения периода (см. Ниже), чтобы найти, который обозначает период следующей функции: р {\ displaystyle r}
    ж ( Икс ) знак равно а Икс мод N . {\ displaystyle f (x) = a ^ {x} {\ bmod {N}}.}
    Это порядок из в группе, которая является наименьшее положительное целое число, для которого, или. По теореме Эйлера, водоразделов, где обозначает Функция Эйлера. р {\ displaystyle r} а {\ displaystyle a} ( Z N ) × {\ Displaystyle (\ mathbb {Z} _ {N}) ^ {\ times}} р {\ displaystyle r} ж ( Икс + р ) знак равно ж ( Икс ) {\ Displaystyle е (х + г) = е (х)} ж ( Икс + р ) знак равно а Икс + р мод N а Икс мод N {\ Displaystyle е (х + г) = а ^ {х + г} {\ bmod {N}} \ эквив а ^ {х} {\ bmod {N}}} р {\ displaystyle r} φ ( N ) {\ displaystyle \ varphi (N)} φ {\ displaystyle \ varphi}
  5. Если нечетное, вернитесь к шагу 1. р {\ displaystyle r}
  6. Если, то вернитесь к шагу 1. а р / 2 - 1 ( мод N ) {\ Displaystyle а ^ {г / 2} \ экв-1 ({\ bmod {N}})}
  7. В противном случае оба и являются нетривиальными факторами, поэтому мы закончили. gcd ( а р / 2 + 1 , N ) {\ Displaystyle \ НОД (а ^ {г / 2} + 1, N)} gcd ( а р / 2 - 1 , N ) {\ Displaystyle \ НОД (а ^ {г / 2} -1, N)} N {\ displaystyle N}

Например: Учитывая, и, у нас есть, где и. Поскольку это произведение двух различных простых чисел, и значение равно, которое для есть, и делится. N знак равно 15 {\ displaystyle N = 15} а знак равно 7 {\ displaystyle a = 7} р знак равно 4 {\ displaystyle r = 4} gcd ( 7 2 ± 1 , 15 ) знак равно gcd ( 49 ± 1 , 15 ) {\ displaystyle \ gcd (7 ^ {2} \ pm 1,15) = \ gcd (49 \ pm 1,15)} gcd ( 48 , 15 ) знак равно 3 {\ displaystyle \ gcd (48,15) = 3} gcd ( 50 , 15 ) знак равно 5 {\ displaystyle \ gcd (50,15) = 5} N {\ displaystyle N} п {\ displaystyle p} q {\ displaystyle q} φ ( N ) {\ displaystyle \ varphi (N)} N - п - q + 1 {\ displaystyle Np-q + 1} N знак равно 15 {\ displaystyle N = 15} 8 {\ displaystyle 8} р {\ displaystyle r} 8 {\ displaystyle 8}

Квантовая часть: подпрограмма определения периода

Квантовая подпрограмма в алгоритме Шора

Квантовые схемы, используемые для этого алгоритма, специально разработаны для каждого выбора и каждого варианта случайного выбора, используемого в. Учитывая, найти такое, что подразумевает, что. Входные и выходные кубитов регистры нужно держать суперпозицию значений от до, и поэтому имеют кубиты каждый. Использование того, что может показаться вдвое большим количеством кубитов, чем необходимо, гарантирует, что существуют, по крайней мере, разные значения, которые производят то же самое, даже когда период приближается. N {\ displaystyle N} а {\ displaystyle a} ж ( Икс ) знак равно а Икс мод N {\ Displaystyle е (х) = а ^ {х} {\ bmod {N}}} N {\ displaystyle N} Q знак равно 2 q {\ displaystyle Q = 2 ^ {q}} N 2 Q lt; 2 N 2 {\ Displaystyle N ^ {2} \ leq Q lt;2N ^ {2}} Q р gt; N {\ displaystyle {\ dfrac {Q} {r}}gt; N} 0 {\ displaystyle 0} Q - 1 {\ displaystyle Q-1} q {\ displaystyle q} N {\ displaystyle N} Икс {\ displaystyle x} ж ( Икс ) {\ displaystyle f (x)} р {\ displaystyle r} N 2 {\ displaystyle {\ dfrac {N} {2}}}

Действуйте следующим образом:

  1. Инициализировать регистры для
    1 Q Икс знак равно 0 Q - 1 | Икс знак равно ( 1 2 Икс 1 знак равно 0 1 | Икс 1 ) ( 1 2 Икс q знак равно 0 1 | Икс q ) . {\ displaystyle {\ frac {1} {\ sqrt {Q}}} \ sum _ {x = 0} ^ {Q-1} | x \ rangle = \ left ({\ frac {1} {\ sqrt {2 }}} \ sum _ {x_ {1} = 0} ^ {1} | x_ {1} \ rangle \ right) \ otimes \ cdots \ otimes \ left ({\ frac {1} {\ sqrt {2}} } \ sum _ {x_ {q} = 0} ^ {1} | x_ {q} \ rangle \ right).}

    где обозначает тензорное произведение. {\ displaystyle \ otimes}

    Это начальное состояние представляет собой суперпозицию состояний, и его легко получить путем создания независимых кубитов, каждый из которых является суперпозицией состояний и. Мы можем добиться этого, инициализировав кубиты в нулевое положение, а затем применив вентиль Адамара параллельно к каждому из кубитов, где. Q {\ displaystyle Q} q {\ displaystyle q} 0 {\ displaystyle 0} 1 {\ displaystyle 1} q {\ displaystyle q} 2 q знак равно Q {\ displaystyle 2 ^ {q} = Q}
  2. Постройте как квантовую функцию и примените ее к вышеуказанному состоянию, чтобы получить ж ( Икс ) {\ displaystyle f (x)}
    U ж | Икс , 0 q знак равно | Икс , ж ( Икс ) {\ displaystyle U_ {f} | x, 0 ^ {q} \ rangle = | x, f (x) \ rangle}
    U ж 1 Q Икс знак равно 0 Q - 1 | Икс , 0 q знак равно 1 Q Икс знак равно 0 Q - 1 | Икс , ж ( Икс ) {\ displaystyle U_ {f} {\ frac {1} {\ sqrt {Q}}} \ sum _ {x = 0} ^ {Q-1} | x, 0 ^ {q} \ rangle = {\ frac { 1} {\ sqrt {Q}}} \ sum _ {x = 0} ^ {Q-1} | x, f (x) \ rangle}
    Это все еще суперпозиция состояний. Однако кубиты, то есть входные кубиты и () выходные кубиты, теперь запутаны или неразделимы, поскольку состояние не может быть записано как тензорное произведение состояний отдельных кубитов. Важно отметить, что значение, содержащее искомое значение, теперь сохраняется в фазе входных кубитов в результате «фазового отката», когда использование кубитов в качестве управляющих входов для унитарных вентилей изменяет относительную фазу управляющих кубитов. Q {\ displaystyle Q} q + п {\ displaystyle q + n} q {\ displaystyle q} п {\ displaystyle n} gt; бревно 2 ( N ) {\ Displaystylegt; {\ журнал _ {2}} (N)} р {\ displaystyle r} Икс {\ displaystyle x}
  3. Примените обратное квантовое преобразование Фурье ко входному регистру. Это преобразование (работающий на суперпозиции состояний) использует -й корень из единицы, такие как распределять амплитуду любого заданного состояния поровну между всеми из состояний, и делать это по-другому для каждой по- разному. Таким образом, получаем Q знак равно 2 q {\ displaystyle Q = 2 ^ {q}} Q {\ displaystyle Q} ω знак равно е 2 π я Q {\ displaystyle \ omega = e ^ {\ frac {2 \ pi i} {Q}}} | Икс {\ Displaystyle | х \ rangle} Q {\ displaystyle Q} | у {\ Displaystyle | у \ rangle} Икс {\ displaystyle x}
    U QFT ( | Икс ) знак равно 1 Q у знак равно 0 Q - 1 ω Икс у | у . {\ displaystyle {U _ {\ operatorname {QFT}}} (| x \ rangle) = {\ frac {1} {\ sqrt {Q}}} \ sum _ {y = 0} ^ {Q-1} \ omega ^ {xy} | y \ rangle.}
    Это приводит к окончательному состоянию
    1 Q Икс знак равно 0 Q - 1 у знак равно 0 Q - 1 ω Икс у | у , ж ( Икс ) . {\ displaystyle {\ frac {1} {Q}} \ sum _ {x = 0} ^ {Q-1} \ sum _ {y = 0} ^ {Q-1} \ omega ^ {xy} | y, f (x) \ rangle.}
    Теперь мы переупорядочиваем эту сумму как
    1 Q z знак равно 0 N - 1 у знак равно 0 Q - 1 [ Икс { 0 , , Q - 1 } ;   ж ( Икс ) знак равно z ω Икс у ] | у , z . {\ displaystyle {\ frac {1} {Q}} \ sum _ {z = 0} ^ {N-1} \ sum _ {y = 0} ^ {Q-1} \ left [\ sum _ {x \ в \ {0, \ ldots, Q-1 \}; ~ f (x) = z} \ omega ^ {xy} \ right] | y, z \ rangle.}
    Это суперпозиция гораздо больше, чем состояний, но гораздо меньше, чем состояний, поскольку существует меньше, чем различных значений. Позволять Q {\ displaystyle Q} Q 2 {\ displaystyle Q ^ {2}} Q {\ displaystyle Q} z знак равно ж ( Икс ) {\ Displaystyle г = е (х)}
    • ω знак равно е 2 π я Q {\ displaystyle \ omega = e ^ {\ frac {2 \ pi i} {Q}}}быть корнем -й степени из единства, Q {\ displaystyle Q}
    • р {\ displaystyle r}быть периодом, ж {\ displaystyle f}
    • Икс 0 {\ displaystyle x_ {0}}быть наименьшим из тех, для которых (у нас есть), и Икс { 0 , , Q - 1 } {\ Displaystyle х \ в \ {0, \ ldots, Q-1 \}} ж ( Икс ) знак равно z {\ Displaystyle е (х) = г} Икс 0 lt; р {\ displaystyle x_ {0} lt;r}
    • написать м - 1 знак равно Q - Икс 0 - 1 р {\ displaystyle m-1 = \ left \ lfloor {\ frac {Q-x_ {0} -1} {r}} \ right \ rfloor}
    • б {\ displaystyle b}индексирует их, начиная с по, так что. Икс {\ displaystyle x} 0 {\ displaystyle 0} м - 1 {\ displaystyle m-1} Икс 0 + р б lt; Q {\ displaystyle x_ {0} + rb lt;Q}
    Тогда - единичный вектор в комплексной плоскости ( является корнем из единицы, а и являются целыми числами), а коэффициент в конечном состоянии равен ω р у {\ displaystyle \ omega ^ {ry}} ω {\ displaystyle \ omega} р {\ displaystyle r} у {\ displaystyle y} 1 Q | у , z {\ displaystyle {\ dfrac {1} {Q}} \ left | y, z \ right \ rangle}
    Икс { 0 , , Q - 1 } ;   ж ( Икс ) знак равно z ω Икс у знак равно б знак равно 0 м - 1 ω ( Икс 0 + р б ) у знак равно ω Икс 0 у б знак равно 0 м - 1 ω р б у . {\ displaystyle \ sum _ {x \ in \ {0, \ ldots, Q-1 \}; ~ f (x) = z} \ omega ^ {xy} = \ sum _ {b = 0} ^ {m- 1} \ omega ^ {(x_ {0} + rb) y} = \ omega ^ {x_ {0} y} \ sum _ {b = 0} ^ {m-1} \ omega ^ {rby}.}
    Каждый член в этой сумме представляет собой разный путь к одному и тому же результату, и возникает квантовая интерференция - конструктивная, когда единичные векторы указывают почти в одном направлении в комплексной плоскости, что требует этой точки вдоль положительной действительной оси. ω р у б {\ displaystyle \ omega ^ {ryb}} ω р у {\ displaystyle \ omega ^ {ry}}
  4. Выполните измерение. Мы получаем некоторый результат во входном регистре и некоторый результат в выходном регистре. В периодическом режиме вероятность измерения некоторого состояния определяется выражением у {\ displaystyle y} z {\ displaystyle z} ж {\ displaystyle f} | у , z {\ displaystyle | y, z \ rangle}
    п р ( | у , z ) знак равно | 1 Q Икс { 0 , , Q - 1 } ;   ж ( Икс ) знак равно z ω Икс у | 2 знак равно 1 Q 2 | б знак равно 0 м - 1 ω ( Икс 0 + р б ) у | 2 знак равно 1 Q 2 | ω Икс 0 у | 2 | б знак равно 0 м - 1 ω б р у | 2 {\ displaystyle \ mathrm {Pr} (| y, z \ rangle) = \ left | {\ frac {1} {Q}} \ sum _ {x \ in \ {0, \ ldots, Q-1 \}; ~ f (x) = z} \ omega ^ {xy} \ right | ^ {2} = {\ frac {1} {Q ^ {2}}} \ left | \ sum _ {b = 0} ^ {m -1} \ omega ^ {(x_ {0} + rb) y} \ right | ^ {2} = {\ frac {1} {Q ^ {2}}} | \ omega ^ {x_ {0} y} | ^ {2} \ left | \ sum _ {b = 0} ^ {m-1} \ omega ^ {bry} \ right | ^ {2}}
    знак равно 1 Q 2 | б знак равно 0 м - 1 ω б р у | 2 знак равно 1 Q 2 | ω м р у - 1 ω р у - 1 | 2 знак равно 1 Q 2 грех 2 ( π м р у Q ) грех 2 ( π р у Q ) {\ displaystyle = {\ frac {1} {Q ^ {2}}} \ left | \ sum _ {b = 0} ^ {m-1} \ omega ^ {bry} \ right | ^ {2} = { \ frac {1} {Q ^ {2}}} \ left | {\ frac {\ omega ^ {mry} -1} {\ omega ^ {ry} -1}} \ right | ^ {2} = {\ frac {1} {Q ^ {2}}} {\ frac {\ sin ^ {2} ({\ frac {\ pi mry} {Q}})} {\ sin ^ {2} ({\ frac {\ пи ry} {Q}})}}}
    Анализ теперь показывает, что эта вероятность тем выше, чем ближе единичный вектор к положительной действительной оси или чем ближе к целому числу. Если это не сила, она не будет фактором. ω р у {\ displaystyle \ omega ^ {ry}} у р Q {\ displaystyle {\ dfrac {yr} {Q}}} р {\ displaystyle r} 2 {\ displaystyle 2} Q {\ displaystyle Q}
  5. Поскольку оно близко к некоторому целому числу, известное значение близко к неизвестному значению. Выполнение [классическое] дальнейшее расширение фракции на позволяет найти приближение из нее, которые удовлетворяют два условий: у р Q {\ displaystyle {\ frac {yr} {Q}}} c {\ displaystyle c} у Q {\ displaystyle {\ dfrac {y} {Q}}} c р {\ displaystyle {\ dfrac {c} {r}}} у Q {\ displaystyle {\ dfrac {y} {Q}}} d s {\ displaystyle {\ dfrac {d} {s}}}
    1. s lt; N {\ displaystyle s lt;N}.
    2. | у Q - d s | lt; 1 2 Q {\ displaystyle \ left | {\ dfrac {y} {Q}} - {\ dfrac {d} {s}} \ right | lt;{\ dfrac {1} {2Q}}}.
    Учитывая эти несколько условий (и предполагая, является неприводимым ), очень вероятно, будет соответствующий период, или по крайней мере одним из факторов его. d s {\ displaystyle {\ dfrac {d} {s}}} s {\ displaystyle s} р {\ displaystyle r}
  6. Проверить (классически), если. Если так, то все готово. ж ( Икс ) знак равно ж ( Икс + s ) а s 1 мод N {\ Displaystyle е (х) = е (х + s) \ Leftrightarrow а ^ {s} \ эквив 1 {\ bmod {N}}}
  7. В противном случае (классически) получить больше кандидатов, используя кратные числа, или используя другие с рядом. Если какой-либо кандидат работает, то все готово. р {\ displaystyle r} s {\ displaystyle s} s {\ displaystyle s} d s {\ displaystyle {\ dfrac {d} {s}}} у Q {\ displaystyle {\ dfrac {y} {Q}}}
  8. В противном случае попробуйте еще раз, начиная с шага 1 этой подпрограммы.

Пояснение к алгоритму

Алгоритм состоит из двух частей. Первая часть алгоритма превращает задачу факторизации в задачу нахождения периода функции и может быть реализована классическим способом. Вторая часть находит период с помощью квантового преобразования Фурье и отвечает за квантовое ускорение.

Получение факторов из периода

Целые числа меньшие и взаимно простые с образуют мультипликативную группу целых чисел по модулю, которая является конечной абелевой группой. Размер этой группы определяется как. К концу шага 3 у нас есть целое число в этой группе. Поскольку группа конечна, она должна иметь конечный порядок, который является наименьшим положительным целым числом, таким, что N {\ displaystyle N} N {\ displaystyle N} N {\ displaystyle N} грамм {\ displaystyle G} φ ( N ) {\ displaystyle \ varphi (N)} а {\ displaystyle a} а {\ displaystyle a} р {\ displaystyle r}

а р 1 мод N . {\ displaystyle a ^ {r} \ Equiv 1 {\ bmod {N}}.}

Следовательно, делит (тоже пишется). Предположим, что мы можем получить и что это даже. (Если нечетное, то на шаге 5 мы должны перезапустить алгоритм с другим случайным числом) Теперь квадратный корень по модулю, который отличается от. Это потому, что это порядок по модулю, так, иначе порядок в этой группе был бы таким. Если, то на шаге 6 мы должны перезапустить алгоритм с другим случайным числом. N {\ displaystyle N} а р - 1 {\ displaystyle a ^ {r} -1} N а р - 1 {\ displaystyle N \ mid a ^ {r} -1} р {\ displaystyle r} р {\ displaystyle r} а {\ displaystyle a} б а р / 2 мод N {\ Displaystyle б \ эквив а ^ {г / 2} {\ bmod {N}}} 1 {\ displaystyle 1} N {\ displaystyle N} 1 {\ displaystyle 1} р {\ displaystyle r} а {\ displaystyle a} N {\ displaystyle N} а р / 2 1 мод N {\ Displaystyle а ^ {г / 2} \ not \ эквив 1 {\ bmod {N}}} а {\ displaystyle a} р 2 {\ displaystyle {\ dfrac {r} {2}}} а р / 2 - 1 мод N {\ Displaystyle а ^ {г / 2} \ экв-1 {\ bmod {N}}} а {\ displaystyle a}

В конце концов, мы должны навести порядок в этом. Это потому, что такое a является квадратным корнем по модулю, отличному от и, существование которого гарантируется китайской теоремой об остатках, поскольку не является степенью простого числа. а {\ displaystyle a} р {\ displaystyle r} грамм {\ displaystyle G} б а р / 2 ± 1 мод N {\ Displaystyle б \ эквив а ^ {г / 2} \ не \ эквив \ пм 1 {\ bmod {N}}} б {\ displaystyle b} 1 {\ displaystyle 1} N {\ displaystyle N} 1 {\ displaystyle 1} - 1 {\ displaystyle -1} N {\ displaystyle N}

Мы утверждаем, что это правильный фактор, т. Е. Фактически, если, то делит так, что это противоречит построению. Если, с другой стороны, то по тождеству Безу существуют такие целые числа, что d знак равно gcd ( б - 1 , N ) {\ displaystyle d = \ gcd (b-1, N)} N {\ displaystyle N} d 1 , N {\ displaystyle d \ neq 1, N} d знак равно N {\ displaystyle d = N} N {\ displaystyle N} б - 1 {\ displaystyle b-1} б 1 мод N {\ Displaystyle б \ эквив 1 {\ bmod {N}}} б {\ displaystyle b} d знак равно gcd ( б - 1 , N ) знак равно 1 {\ displaystyle d = \ gcd (b-1, N) = 1} ты , v {\ displaystyle u, v}

( б - 1 ) ты + N v знак равно 1. {\ displaystyle (b-1) u + Nv = 1.}

Умножая обе части на, получаем б + 1 {\ displaystyle b + 1}

( б 2 - 1 ) ты + N ( б + 1 ) v знак равно б + 1. {\ displaystyle (b ^ {2} -1) u + N (b + 1) v = b + 1.}

Когда делит, мы находим, что делит так, что опять же противоречит конструкции. N {\ displaystyle N} б 2 - 1 а р - 1 мод N {\ Displaystyle Ь ^ {2} -1 \ эквив а ^ {г} -1 {\ bmod {N}}} N {\ displaystyle N} б + 1 {\ displaystyle b + 1} б - 1 мод N {\ Displaystyle б \ экв-1 {\ bmod {N}}} б {\ displaystyle b}

Следовательно, это требуемый собственный коэффициент. d {\ displaystyle d} N {\ displaystyle N}

Определение периода

Алгоритм определения периода Шора во многом полагается на способность квантового компьютера одновременно находиться во многих состояниях.

Физики называют такое поведение « суперпозицией » состояний. Чтобы вычислить период функции, мы оцениваем функцию во всех точках одновременно. ж {\ displaystyle f}

Однако квантовая физика не позволяет нам напрямую получить доступ ко всей этой информации. Измерение будет давать только один из всех возможных значений, уничтожая всех остальных. Если бы не теорема о запрете клонирования, мы могли бы сначала измерить без измерения, а затем сделать несколько копий результирующего состояния (которое представляет собой суперпозицию состояний, у всех одинаковых). Измерение этих состояний даст разные значения, которые дают одинаковые значения, что приводит к периоду. Поскольку мы не можем сделать точные копии квантового состояния, этот метод не работает. Следовательно, мы должны тщательно преобразовать суперпозицию в другое состояние, которое с большой вероятностью вернет правильный ответ. Это достигается квантовым преобразованием Фурье. ж ( Икс ) {\ displaystyle f (x)} Икс {\ displaystyle x} ж ( Икс ) {\ displaystyle f (x)} Икс {\ displaystyle x} Икс {\ displaystyle x} ж ( Икс ) {\ displaystyle f (x)}

Таким образом, Шору пришлось решить три проблемы «реализации». Все они должны были быть реализованы «быстро», что означает, что они могут быть реализованы с числом квантовых вентилей, который является многочленом в. бревно N {\ displaystyle \ log N}

  1. Создайте суперпозицию состояний. Это можно сделать, применив вентили Адамара ко всем кубитам во входном регистре. Другой подход - использовать квантовое преобразование Фурье (см. Ниже).
  2. Реализуйте функцию как квантовое преобразование. Для этого Шор использовал многократное возведение в квадрат для своего модульного преобразования возведения в степень. Важно отметить, что этот шаг сложнее реализовать, чем квантовое преобразование Фурье, поскольку для его выполнения требуются вспомогательные кубиты и значительно больше вентилей. ж {\ displaystyle f}
  3. Выполните квантовое преобразование Фурье. Используя вентили с управляемым вращением и вентили Адамара, Шор разработал схему для квантового преобразования Фурье (с), которая использует только вентили. Q знак равно 2 q {\ displaystyle Q = 2 ^ {q}} q ( q - 1 ) 2 знак равно О ( ( бревно Q ) 2 ) {\ displaystyle {\ dfrac {q (q-1)} {2}} = O \! \ left ((\ log Q) ^ {2} \ right)}

После всех этих преобразований измерение даст приближение к периоду. Для простоты предположим, что есть такие, что является целым числом. Тогда вероятность измерить равна. Чтобы увидеть это, мы замечаем, что тогда р {\ displaystyle r} у {\ displaystyle y} у р Q {\ displaystyle {\ dfrac {yr} {Q}}} у {\ displaystyle y} 1 {\ displaystyle 1}

е - 2 π я б у р Q знак равно 1 {\ displaystyle e ^ {- {\ frac {2 \ pi ibyr} {Q}}} = 1}

для всех целых чисел. Таким образом, сумма, квадрат дает нам вероятность измерения будет, как и занимает около значений и, таким образом, вероятность. Есть возможные значения таким образом, что представляет собой целое число, а также возможности, поэтому вероятность подводить к. б {\ displaystyle b} у {\ displaystyle y} Q р {\ displaystyle {\ dfrac {Q} {r}}} б {\ displaystyle b} Q р {\ displaystyle {\ dfrac {Q} {r}}} 1 р 2 {\ Displaystyle {\ dfrac {1} {г ^ {2}}}} р {\ displaystyle r} у {\ displaystyle y} у р Q {\ displaystyle {\ dfrac {yr} {Q}}} р {\ displaystyle r} ж ( Икс 0 ) {\ displaystyle f (x_ {0})} 1 {\ displaystyle 1}

Примечание. Другой способ объяснить алгоритм Шора - это отметить, что это всего лишь замаскированный алгоритм квантовой оценки фазы.

Узкое место

Узким местом выполнения алгоритма Шора является квантовое модульное возведение в степень, которое намного медленнее, чем квантовое преобразование Фурье и классическая предварительная / постобработка. Существует несколько подходов к построению и оптимизации схем для модульного возведения в степень. Самый простой и (в настоящее время) наиболее практичный подход - имитировать обычные арифметические схемы с обратимыми вентилями, начиная с сумматоров с переносом пульсации. Знание базы и модуля возведения в степень облегчает дальнейшую оптимизацию. Обратимые схемы обычно используют в порядке вентилей для кубитов. Альтернативные методы асимптотически улучшают количество вентилей за счет использования квантовых преобразований Фурье, но не могут конкурировать с менее чем 600 кубитами из-за высоких констант. п 3 {\ Displaystyle п ^ {3}} п {\ displaystyle n}

Дискретные логарифмы

Учитывая группу с порядка и генератора, предположим, что мы знаем, что для некоторых, и мы хотим вычислить, что является дискретным логарифмом :. Рассмотрим абелеву группу, где каждый фактор соответствует модульному сложению значений. Теперь рассмотрим функцию грамм {\ displaystyle G} п {\ displaystyle p} грамм грамм {\ displaystyle g \ in G} Икс знак равно грамм р грамм {\ displaystyle x = g ^ {r} \ in G} р Z п {\ displaystyle r \ in \ mathbb {Z} _ {p}} р {\ displaystyle r} р знак равно бревно грамм ( Икс ) {\ Displaystyle г = {\ журнал _ {г}} (х)} Z п × Z п {\ Displaystyle \ mathbb {Z} _ {p} \ times \ mathbb {Z} _ {p}}

ж : Z п × Z п грамм ; ж ( а , б ) знак равно грамм а Икс - б . {\ displaystyle f \ двоеточие \ mathbb {Z} _ {p} \ times \ mathbb {Z} _ {p} \ to G \ ;; \; f (a, b) = g ^ {a} x ^ {- б}.}

Это дает нам абелеву проблему скрытых подгрупп, что соответствует гомоморфизму групп. Ядро соответствует кратным. Итак, если мы сможем найти ядро, мы сможем найти. ж {\ displaystyle f} ( р , 1 ) {\ Displaystyle (г, 1)} р {\ displaystyle r}

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

  • GEECM, алгоритм факторизации, который, как говорят, «часто намного быстрее, чем у Шора»
  • Алгоритм Гровера

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

дальнейшее чтение

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

Последняя правка сделана 2023-03-20 04:34:19
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте