Interested Article - Алгоритм Берлекэмпа

Алгоритм Берлекэмпа — алгоритм, предназначенный для факторизации унитарных многочленов над конечным полем . Разработан Элвином Берлекэмпом в 1967 году . Может использоваться также для проверки неприводимости многочленов над конечными полями . Основная идея алгоритма заключается в возможности представления исходного многочлена в виде произведения наибольших общих делителей самого многочлена и некоторых многочленов, которые с точностью до свободного члена являются -разлагающими.

Алгоритм Берлекэмпа имеет большую вычислительную сложность, поэтому был разработан ряд дополнительных методов, позволяющих сократить количество необходимых математических операций. Однако, несмотря на свою сложность, алгоритм Берлекэмпа был реализован в системах компьютерной алгебры. Алгоритм нашёл широкое применение в теории кодирования и в изучении линейных рекуррентных соотношений в конечных полях. Имеется много вычислительных задач в алгебре и в теории чисел, которые так или иначе связаны с разложением многочленов над конечными полями, например, разложение на множители многочленов над кольцом целых чисел , отыскание разложения простого рационального числа в поле алгебраических чисел, вычисление группы Галуа некоторого уравнения над полем рациональных чисел и построение расширений полей.

История создания

Американский математик, профессор Калифорнийского университета Берлекэмп занимался изучением циклических кодов обнаружения и исправления ошибок , в том числе кода Боуза — Чоудхури — Хоквингема , свойства которых зависят от делителей порождающих многочленов. Технические достижения Берлекэмпа в области декодирования этих кодов сделали их более привлекательными с практической точки зрения .

Алгоритм был впервые изложен в статье «Factoring Polynomials Over Finite Fields» и позже воспроизведён в книге «Algebraic Coding Theory» . В этой работе 1967 года Берлекэмп пишет, что проблема факторизации возникает в трудах Голомба . Однако, возможность использования матрицы для определения числа нормированных сомножителей многочлена была впервые замечена в статье (англ.) . В статье Батлера было установлено, что ранг матрицы равен , другое доказательство этого факта было дано Шварцем .

Алгоритм Берлекэмпа упоминался во множестве работ и являлся основным алгоритмом решения проблемы факторизации до появления в 1981 году (англ.) . Была разработана техника позволяющая разложить многочлен на множители за где — показатель в оценке сложности перемножения квадратных матриц .

Постановка и определения

Рассматривается задача факторизации многочлена степени ( ) над конечным полем ( , простое число ) на различные неприводимые унитарные многочлены .

Для использования в алгоритме строится матрица согласно следующим условиям:

.

Многочлен такой, что , называется -разлагающим многочленом .

Основной случай

Блок-схема для алгоритма Берлекэмпа — основной случай

Алгоритм факторизации над конечным полем многочлена вида:

состоит из следующих шагов:

  1. Вычисление матрицы .
  2. Поиск базиса подпространства решений системы линейных уравнений :
    ,
    при этом удаётся выбрать вектор , так как он всегда будет присутствовать в базисе пространства решений ввиду того, что при .
  3. Найденное число есть число неприводимых делителей .
    • Если , то многочлен является неприводимым .
    • Если , то векторы имеют вид . По этим числам строятся -разлагающие многочлены:
      .
  4. Поиск разложения :
    в виде:
    ,
    где в общем случае не являются неприводимыми. Функции факторизуются таким же способом , то есть:
    .

Общий случай

Блок-схема для алгоритма Берлекэмпа — сведение к основному случаю

Задача факторизации произвольного унитарного многочлена сводится к рассмотрению основного случая. Для этого вычисляется многочлен

с применением алгоритма Евклида .

  • Если то многочлен не содержит кратных корней, так как кратный корень одновременно является и корнем производной .
  • Если то и значит Если то для необходимо проделать описанную процедуру до тех пор пока не будет получено разложение Многочлен удовлетворяет требованиям основного случая .
  • Иначе, многочлен является нетривиальным делителем многочлена . В свою очередь, многочлен не имеет кратных неприводимых сомножителей . Если содержит кратные сомножители, то к нему также применяется описанная процедура. Зная эти разложения, легко получить разложение .

Таким образом, задача разложения произвольного унитарного многочлена над конечным полем сводится к разложению на множители конечного числа многочленов, которые не имеют кратных неприводимых сомножителей, то есть к основному случаю .

Обоснование

Пусть:

, где .

Согласно китайской теореме об остатках существует единственный многочлен для любого набора элементов поля :

такой что:

.

Многочлен удовлетворяет условию :

,

и поэтому :

.

Из условия:

,

и из взаимной простоты сомножителей в правой части следует, что каждый неприводимый делитель многочлена делит один, и только один из многочленов . Таким образом, доказана справедливость и единственность разложения :

Для нахождения многочлена:

рассмотрим сравнение:

,

которое равносильно условию :

.

По определению матрицы получим:

,

поэтому :

.

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

или:

.

Сложность алгоритма

Сложность алгоритма составляет математических операций . Алгоритм будет эффективен только для небольших полей. Это связано с необходимостью перебора всех .

Усовершенствования

  • В случае простого поля, если значение велико, то перебор значений займёт много времени. Однако, возможно определить множество , состоящее из , для которых нетривиален . Для этого необходимо найти корни результанта , которые и будут составлять множество .
  • Ещё один метод разложения унитарного многочлена , не имеющего кратных неприводимых множителей, основан на приведении некоторой эффективно вычислимой с помощью алгоритма Берлекэмпа матрицы A к диагональному виду . Однако сам процесс диагонализации довольно сложен.
  • В работе Калтофена и Лобо была предложена вероятностная версия алгоритма Берлекэмпа, позволяющая разложить на множители многочлен степени за арифметических операций. Алгоритм Калтофена — Лобо был реализован на компьютере, и оказался эффективным для многочленов высокой степени, например, для многочленов степени 10001 над полем он работает около 102,5 часов на компьютере Sun-4 .

Применение

Алгоритмы факторизации многочленов важны для теории кодирования и для изучения линейных рекуррентных соотношений в конечных полях. Также алгоритм Берлекэмпа используется для вычисления группы Галуа уравнения над полем рациональных чисел и построения решений полей, разложения многочленов над кольцом целых чисел, для отыскания разложения простого рационального числа в поле алгебраических чисел, и для некоторых других вычислительных задач . (англ.) используют алгоритмы факторизации многочленов для решения задачи отыскания дискретного логарифма , на вычислительной сложности которой, построена схема Эль-Гамаля .

Реализации в системах компьютерной алгебры

В системе компьютерной алгебры алгоритм Берлекэмпа может быть использован посредством команды factormod .

Примечания

  1. , с. 1854: «О циклических кодах».
  2. .
  3. , с. 1853.
  4. Голомб, Соломон Вольф. . — Aegean Park Pr; Revised edition, 1981. — 274 с. — ISBN 978-0894120480 . 26 августа 2016 года.
  5. PETR K. Uber die Reduzibilitat eines Polynoms mit ganzzahligen Koeffi-zienten nach einem Primzahlmodul. — Casopis Pest Mat. Fys, 1937. — С. 85—94 .
  6. Butler, M. C. R. On the reducibility of polynomials over a finite field. — The Quarterly Journal of Mathematics Oxford Second Series 5, 1954. — С. 102—107 .
  7. Schwarz, St. On the reducibility of polynomials over a finite field. — Quart. J. Math. Oxford Ser.(2) 7, 1956. — С. 110—124 .
  8. , Исторические комментарии, с. 223-224.
  9. Cantor D.G., Zassenhaus H. A new algorithm for factoring polynomials over finite fields. — Math. Comp., 1981. — Vol. 36. — P. 587—592.
  10. von zur Gathen J., Shoup V. Computing Frobenius maps and factoring polynomials. — Comput. Complexity, 1992. — Т. 2 . — С. 187—224 .
  11. , с. 185: «Сложность алгоритма Кантора—Цассенхауза».
  12. , Постановка задачи, с. 187.
  13. , Определения, с. 172.
  14. , Описание алгоритма, с. 173.
  15. , Описание алгоритма.
  16. , Сведение к основному случаю, с. 188.
  17. , Обоснование корректности алгоритма, с. 189-190.
  18. , с. 174.
  19. , с. 174: «Сложность алгоритма».
  20. , Подробнее о методе, с. 201.
  21. , О результанте, с. 124.
  22. , Подробнее о методе, с. 206.
  23. Kaltofen E, Lobo A. (англ.) // Proceedings of the international symposium on Symbolic and algebraic computation (ISSAC ’94). — N. Y. : ACM Press, 1994. — P. 90—98 . — ISBN 0-89791-638-7 . — doi : .
  24. , Применение алгоритма, с. 187.
  25. , Об использовании алгоритмов с факторными базами для решения задачи дискретного логарифмирования, с. 137.
  26. 11 марта 2007 года.

Литература

  • Berlekamp, Elwyn R. Factoring Polynomials Over Finite Fields (англ.) // (англ.) . — 1967. — Vol. 46 . — P. 1853—1859 . Later republished in: Berlekamp, Elwyn R. (англ.) . — McGraw-Hill Education , 1968. — ISBN 0-89412-063-8 .
  • Василенко О. Н. . — М. : МЦНМО, 2003. — 328 с. — ISBN 5-94057-103-4 .
  • Лидл Р. , Нидеррайтер Г. = Finite Fields / Под ред. В. И. Нечаева. — 1-е изд. — М. : Мир, 1988. — Т. 1. — 430 с. — ISBN 5-03-000065-8 .
  • Ван дер Варден Б.Л. . — M.: Наука, 1976. — 646 с. от 2 ноября 2013 на Wayback Machine
Источник —

Same as Алгоритм Берлекэмпа