Опубликован: 03.06.2019 | Доступ: свободный | Студентов: 491 / 71 | Длительность: 09:11:00
Лекция 19:

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

< Лекция 18 || Лекция 19: 12 || Лекция 20 >

Мы собираемся пояснить этот метод на примере. Пусть N = 989 и это число следует факторизовать. Мы хотим найти порядок m для g = 2 в мультипликативной группе Z_{989}^*, используя алгоритм Шора. Так как 989 < 2^{10} = 1024, то n = 10. После Шага 2 алгоритма Шора получим кубит:

\frac{1}{2^{10}}\sum_{k=0}^{2^{20}-1}|k \rangle |2^k\; mod\;989 \rangle

На Шаге 3 измерим значение последних 10 битов с наблюдаемым случайным значением. Предположим, что результат этого измерения h = 2^{50} = 41\; mod\; 989. Тогда только слагаемые, где 2^k = 41\; mod\; 989 выживут в результирующей сумме. Эти значения k формируют арифметическую прогрессию k = 50, 50 + m, 50 + 2m, .... Следовательно, последовательность коэффициентов в кубите теперь периодическая с периодом m. Применяя КПФ -квантовое преобразование Фурье на Шаге 5, получим состояние:

\sum_{r=0}^{2^{19}-1}a_r|r \rangle|0 \rangle |h \rangle+b_r|r \rangle|1 \rangle|h \rangle,

Коэффициенты Фурье имеют инки в точках r, близких к целым кратным \omega = 2^{20} /m. Для иллюстрации построим график вероятностей ау + Ь для r в пределах от 0 до 40000. Мы понимаем, что значения коэффициентов


кубита, хранимые в квантовом компьютере, недоступны непосредственно, и мы смогли построить этот график только лишь потому, что значение N мало и для него возможно вычислить коэффициенты Фурье на обычном компьютере. Этот графин показывает вероятности наблюдения каждого значения r, если бы мы проводили измерения первых 19 кубитов. Мы четко различаем пики на графине, которые означают, что некоторые значения r намного чаще появляются при измерениях, чем другие.

Приведем список вероятностей наблюдения значений r вблизи двух пиков:

r а_r^2 + b_r^2

251926

251927

251928

251929

251930

251931

251932

251933

251934

0.0000071

0.0000124

0.0000271

0.0000991

0.0125868

0.0001465

0.0000329

0.0000141

0.0000078

r a_r^2+b_r^2

435767

435768

435769

435770

435771

435772

435773

435774

435775

0.000054

0.000091

0.000186

0.000567

0.008652

0.002382

0.000373

0.000145

0.000076

Из этих таблиц видно, что некоторые значения r имеют намного большую вероятность наблюдения. Предположим мы выполнили квантовый алгоритм дважды и получили r = 435771 в качестве первого наблюдения, и r = 251930 как результат выполнения при втором запуске квантового алгоритма. Мы ожидаем, что эти значения близки к кратным частоты \omega = 2^{20}/m.

Давайте выполним алгоритм Эвклида для поиска наибольшего общего множителя r_1 и r_2. Разделим r_1 на r_2 с остатком:

r_3=r_1-r_2=183841

Этот остаток r_3 всегда меньше делителя r_2, но мы не ожидаем, что он на порядки меньше значения делителя. В самом деле, для 0 < с < 1 вероятность того, что r_3 < сг_2 равна с.

Давайте продолжим выполнять алгоритм Эвклида:

r_4= r_2- r_3	= 68089,\\
r_5= r_3- 2 * r_4= 47663,\\
r_6= r_4- r_5=20426,\\
r_7= r_5-2 * r_6= 6811,\\
r_8= r6-3 * r_7= 7.

На последнем шаге мы замечаем, что значение остатка r_8 = 7 на несколько порядков меньше значения делителя r_7 = 6811. Это и является признаком, когда алгоритм следует заканчивать, поскольку r_8\approx 0. Следовательно, r_7 является приближенным НОД(r_1, r_2). Давайте определим соответствующие целые кратные:

\frac{r_1}{r_7}=\frac{435771}{6811}=63.98\dots,\;\; \frac{r_2}{r_7}=\frac{251930}{6811}=36.98\dots

Теперь можно получить более точное значение базовой частоты \omega:

\omega\approx \frac{435771}{64} \appros 6808.921\dots,\;\;\omega \approx\frac{251930}{37}\approx 6808.918\dots

Из соотношения \omega = 2^{20}/m определим значение порядка m для элемента g = 2 в группе Z_{989}^*:

m\approx \frac{2^{20}}{\omega}\approx\frac{1048576}{6808.92}\approx154.0003\dots

Мы заключаем, что элемент группы g = 2 имеет порядок m = 154.

По теореме Лагранжа размер М = (р - 1) (q - 1) группы Z_{989}^* является целым, кратным порядку любого элемента, М = mК. Так как величина М сравнима с N = рq = 989, то можно аппроксимировать значение неизвестного множителя К как:

K=\fracMm < \fracNm=\frac{989}{154}\approx6.42\dots

Взяв К = 6, получим значение М = 6m = 924.

Так как N = рq, М = (р - 1) (q - 1) = pq - р - q + 1, то имеем:

р+ = N- М+ 1 =989-924+1 =66.

В итоге неизвестные множители р и q находятся как корни квадратного уравнения с известными коэффициентами:

Х^2 - (р + q)Х + рq = 0,\\
Х^2 -66Х+989=0,\\
p=\frac{66+\sqrt{66^2-4*989}}{2}=43,\;\;q=\frac{66-\sqrt{66^2-4*989}}{2}=23

Можно проверить справедливость результатов факторизации:

43 * 23= 989.

Упражнение. Покажите, что в нашем описании алгоритма Шора шаг 3 может быть опущен.

< Лекция 18 || Лекция 19: 12 || Лекция 20 >