Алгоритм Берлекампа – Рабина

В чисел теории алгоритм поиска корня Берлекампа , также называемый алгоритмом Берлекампа–Рабина , представляет собой вероятностный метод поиска корней многочленов . над полем с элементы. Метод был открыт Элвином Берлекэмпом в 1970 году. [ 1 ] как вспомогательное средство к алгоритму факторизации полиномов по конечным полям. Позднее алгоритм был модифицирован Рабиным для произвольных конечных полей в 1979 году. [ 2 ] Этот метод был также независимо открыт до Берлекампа другими исследователями. [ 3 ]
История
[ редактировать ]Метод был предложен Элвином Берлекэмпом в его работе 1970 года. [ 1 ] о полиномиальной факторизации по конечным полям. Его оригинальной работе не хватало формального правильности . доказательства [ 2 ] и позже был уточнен и модифицирован для произвольных конечных полей Майклом Рабином . [ 2 ] В 1986 году Рене Перальта предложил аналогичный алгоритм. [ 4 ] для нахождения квадратных корней в . [ 5 ] В 2000 году метод Перальты был обобщен на кубические уравнения . [ 6 ]
Постановка задачи
[ редактировать ]Позволять быть нечетным простым числом. Рассмотрим полином над полем остатков по модулю . Алгоритм должен найти все в такой, что в . [ 2 ] [ 7 ]
Алгоритм
[ редактировать ]Рандомизация
[ редактировать ]Позволять . Нахождение всех корней этого многочлена эквивалентно нахождению его факторизации на линейные факторы. Чтобы найти такую факторизацию, достаточно разбить многочлен на любые два нетривиальных делителя и рекурсивно факторизовать их. Для этого рассмотрим полином где это какой-то элемент . Если можно представить этот многочлен как произведение то в терминах исходного многочлена это означает, что , что обеспечивает необходимую факторизацию . [ 1 ] [ 7 ]
Классификация элементы
[ редактировать ]По критерию Эйлера для любого монома выполняется ровно одно из следующих свойств: [ 1 ]
- Моном равен если ,
- Моном делит если является квадратичным вычетом по модулю ,
- Моном делит если является квадратичным неостатком по модулю .
Таким образом, если не делится на , что можно проверить отдельно, тогда равен произведению наибольших общих делителей и . [ 7 ]
метод Берлекампа
[ редактировать ]Свойство выше приводит к следующему алгоритму: [ 1 ]
- Явно вычислить коэффициенты ,
- Вычислить остатки модуль возведя в квадрат текущий полином и взяв остаток по модулю ,
- Используя возведение в степень возведением в квадрат и полиномы, рассчитанные на предыдущих шагах, вычислите остаток модуль ,
- Если затем упомянутые ниже, обеспечивают нетривиальную факторизацию ,
- В противном случае все корни являются либо остатками, либо неостатками одновременно, и приходится выбирать другой .
Если делится на некоторый нелинейный примитивный многочлен над тогда при расчете с и получим нетривиальную факторизацию , таким образом алгоритм позволяет найти все корни произвольных многочленов над .
Модульный квадратный корень
[ редактировать ]Рассмотрим уравнение наличие элементов и как его корни. Решение этого уравнения эквивалентно факторизации многочлена над . В данном конкретном случае задачи достаточно вычислить только . Для этого многочлена будет выполняться ровно одно из следующих свойств:
- НОД равен это означает, что и оба являются квадратичными невычетами,
- НОД равен что означает, что оба числа являются квадратичными остатками,
- НОД равен что означает, что ровно одно из этих чисел является квадратичным остатком.
В третьем случае НОД равен либо или . Это позволяет записать решение в виде . [ 1 ]
Пример
[ редактировать ]Предположим, нам нужно решить уравнение . Для этого нам нужно факторизовать . Рассмотрим некоторые возможные значения :
- Позволять . Затем , таким образом . Оба числа являются квадратичными невычетами, поэтому нам нужно взять какие-то другие .
- Позволять . Затем , таким образом . Из этого следует , так и .
Ручная проверка показывает, что действительно и .
Доказательство правильности
[ редактировать ]Алгоритм факторизацию находит во всех случаях, кроме тех, когда все числа одновременно являются квадратичными остатками или невычетами. Согласно теории циклотомии , [ 8 ] вероятность такого события для случая, когда все являются остатками или неостатками одновременно (то есть, когда потерпит неудачу) можно оценить как где количество различных значений в . [ 1 ] Таким образом, даже в худшем случае и , вероятность ошибки можно оценить как а для модульного квадратного корня вероятность ошибки не превышает .
Сложность
[ редактировать ]Пусть многочлен имеет степень . Выводим сложность алгоритма следующим образом:
- По биномиальной теореме , мы можем перейти от к в время.
- Умножение полинома и получение остатка от одного многочлена по модулю другого можно выполнить в , таким образом, расчет делается в .
- Двоичное возведение в степень работает в .
- Принимая двух полиномов с помощью алгоритма Евклида работает в .
Таким образом, всю процедуру можно выполнить в . Используя быстрое преобразование Фурье и алгоритм Half-GCD, [ 9 ] сложность алгоритма может быть улучшена до . Для случая модульного квадратного корня степень равна , таким образом, вся сложность алгоритма в таком случае ограничивается за итерацию. [ 7 ]
Ссылки
[ редактировать ]- ^ Jump up to: а б с д и ж г Берлекамп, ER (1970). «Факторизация полиномов по большим конечным полям» . Математика вычислений . 24 (111): 713–735. doi : 10.1090/S0025-5718-1970-0276200-X . ISSN 0025-5718 .
- ^ Jump up to: а б с д М. Рабин (1980). «Вероятностные алгоритмы в конечных полях». SIAM Journal по вычислительной технике . 9 (2): 273–280. CiteSeerX 10.1.1.17.5653 . дои : 10.1137/0209024 . ISSN 0097-5397 .
- ^ Дональд Э. Кнут (1998). Искусство компьютерного программирования. Том. 2 Том. 2 . ISBN 978-0201896848 . OCLC 900627019 .
- ^ Цз-Во Сзе (2011). «О извлечении квадратных корней без квадратичных невычетов над конечными полями». Математика вычислений . 80 (275): 1797–1811. arXiv : 0812.2591 . дои : 10.1090/s0025-5718-2011-02419-1 . ISSN 0025-5718 . S2CID 10249895 .
- ^ Р. Перальта (ноябрь 1986 г.). «Простой и быстрый вероятностный алгоритм вычисления квадратных корней по модулю простого числа (Корресп.)». Транзакции IEEE по теории информации . 32 (6): 846–847. дои : 10.1109/TIT.1986.1057236 . ISSN 0018-9448 .
- ^ К. Падро, Г. Саес (август 2002 г.). «Извлечение кубических корней в Zm». Письма по прикладной математике . 15 (6): 703–708. дои : 10.1016/s0893-9659(02)00031-9 . ISSN 0893-9659 .
- ^ Jump up to: а б с д Альфред Дж. Менезес, Ян Ф. Блейк, СюйХонг Гао, Рональд К. Маллин, Скотт А. Ванстон (1993). Приложения конечных полей . Международная серия Springer по инженерным наукам и информатике. Спрингер США. ISBN 9780792392828 .
{{cite book}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Маршалл Холл (1998). Комбинаторная теория . Джон Уайли и сыновья. ISBN 9780471315186 .
- ^ Ахо, Альфред В. (1974). Разработка и анализ компьютерных алгоритмов . Паб Аддисон-Уэсли. компании ISBN 0201000296 .