Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
29 Лк 29 (7.2) ПК 2012.docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
417.88 Кб
Скачать

29.6(7.2.6). Алгоритм факторизації цілих чисел

Для рішення задачі факторизації використається алгоритм знаходження на квантовій обчислювальній системі періоду (порядку) r числа x у мультиплікативній групі лишків по модулі факторизуємого числа N [3,5]. Така група є циклічною.

Нехай необхідно факторизовати число N. При цьому досить знайти хоча б один множник факторизації. На першому етапі вибирається довільне число X, що є взаємно простимо із числом N. Потім розглянемо послідовність, утворену функцією:

. (1)

Послідовності {ха} і {xa mod N} виглядають у такий спосіб:

(2)

(3)

Число r – мінімальний ступінь, для якої

xr =l(mod N). (4)

Вираження треба з узагальнення теореми Эйлера, відповідно до якої для будь-яких взаємно простих чисел a і n

(5)

де L(n) – узагальнена функція Эйлера.

У залишковому підсумку завдання факторизации числа N полягає в складності пошуку періоду r числа х (4). При більших N потрібен перебір досить великої кількості варіантів а. Ефективний алгоритм пошуку періоду r, в основі якого лежить модель квантового паралелізму, наведень нижче.

Нехай період r знайдений. Якщо період непарний, вибирається нове число X і алгоритм пошуку r повторюється. Якщо алгоритм парний, приступаємо до виконання факторизації. Вираження (4) може бути записане в наступному виді:

xr1 = 0(mod N). (6)

Звідси треба:

. (7)

Далі:

. (8)

З виразу (8) треба, що добуток двох співмножників кратний числу N. Таким чином, один зі співмножників винний мати з N загальний множник. Остаточний етап факторизації полягає в пошуку найбільшого загального дільника співмножників:

. (9)

. (10)

Знайдене значення gcd є шуканим числом.

Нижче подано приклад факторизації. Нехай необхідно факторизувати число N = 91. Виберемо х = 3. Обчислимо послідовності

а: 0, 1, 2, 3, 4, 5, 6, 7,...

3a: 1, 3, 9, 27, 81, 243, 729, 2187, ...

3amod91: l, 3, 9, 27, 81, 61, 1, 3,...

Таким чином, шукане значення r = 6. Далі одержуємо:

. (11)

. (11)

Знаходимо за допомогою алгоритму Евкліда (алгоритм Евкліда має поліноміальну складність):

. (9)

. (10)

Отримані значення 7 і 13 є результатом факторизації числа N = 91.

III Алгоритм пошуку періоду r Шора

Для пошуку періоду r реалізується квантова система, що складається із двох регістрів [3-7]:

(15)

Довжина регістрів вибирається таким чином, щоб перший регістр міг умістити максимально-допустимое значення а (довжини т) вираження (1), а другий регістр міг умістити число N (довжини l).

1. Для кубіта регістра 1 виконується перетворення Адамара-Уолша, що може бути представлене наступною матрицею:

, (16)

т. б. квантові стан перетворяться в такий спосіб: . При цьому перший регістр переводитися в суперпозицію станів всіх припустимих аргументів:

(17)

2. Використовуючи квантовий паралелізм обчислюється значення функції (1) для можливого а. Результат (суперпозиція результатів) міститься в другий регістр. При цьому квантова система переводитися в стан:

(18)

При цьому функція f(a) має вигляд, подань на мал. 1.

3. Робиться вимір fc одного отриманого результату функції f(a). При цьому хвильова функція проектується в суперпозицію станів:

. (19)

де

(20)

Т. б., квантова система містить тільки стану аргументу а, для яких значення функції f(c) дорівнює обмірюваному fc; хвильова функція в цьому випадку є періодичною з періодом r.

4. Для добування періоду необхідно виконати перетворення Фур'є хвильової функції (19). При цьому використається реалізація квантового перетворення Фур'є, що має наступний вид:

. (21)

У випадку перетворення Фур'є дискретної періодичної функції одержуємо спектр, що містить спектральні «сплески», пов'язані з періодом вихідної періодичної функції. Для квантової системи одержуємо наступну хвильову функцію:

. (22)

Квантова система переводитися в суперпозицію станів. При цьому перший регістр містять значення, обернено пропорційні r. Спектр має вигляд, подань на малий. 2.

5. Виробляється вимір першого регістра. Виходить значення:

, (23)

де r – шуканий період, j – невідомий індекс спектрального сплеску. Вираження (19) може бути представлене в наступному виді:

. (24)

У даному вираженні v – обмірюване значення першого регістра, r – шуканий період, j – невідомий індекс обмірюваного регістра. У даному рівнянні необхідно знайти r і j. Дане рівняння є діафантовим. Існує ефективний (поліноміальний) алгоритм рішення рівняння виду (24) з використанням ланцюгових дробів. Якщо знайдене значення r є парним, воно використається для факторизации числа N (8) - (10). У противному випадку алгоритм повторюється з іншим обраним значенням X (вираження (1)).

Даний алгоритм має поліноміальну складність, тому що засновано на ефекті квантового паралелізму й не вимагає перебору варіантів аргументів функції (1).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]