Не следует путать с алгоритмом Берлекэмпа — Мэсси— алгоритмом, предназначенным для нахождения рекуррентных зависимостей в последовательностях.
Алгоритм Берлекэмпа — алгоритм, предназначенный для факторизацииунитарныхмногочленов над конечным полем. Разработан Элвином Берлекэмпом в 1967 году. Может использоваться также для проверки неприводимости многочленов над конечными полями[⇨].
Основная идея алгоритма заключается в возможности представления исходного многочлена в виде произведения наибольших общих делителей самого многочлена и некоторых многочленов, которые с точностью до свободного члена являются -разлагающими.
Алгоритм Берлекэмпа имеет большую вычислительную сложность, поэтому был разработан ряд дополнительных методов, позволяющих сократить количество необходимых математических операций. Однако, несмотря на свою сложность, алгоритм Берлекэмпа был реализован в системах компьютерной алгебры. Алгоритм нашёл широкое применение в теории кодирования и в изучении линейных рекуррентных соотношений в конечных полях. Имеется много вычислительных задач в алгебре и в теории чисел, которые так или иначе связаны с разложением многочленов над конечными полями, например, разложение на множители многочленов над кольцом целых чисел, отыскание разложения простого рационального числа в поле алгебраических чисел, вычисление группы Галуа некоторого уравнения над полем рациональных чисел и построение расширений полей.
История создания
Американский математик, профессор Калифорнийского университета Берлекэмп занимался изучением циклических кодов обнаружения и исправления ошибок, в том числе кода Боуза — Чоудхури — Хоквингема, свойства которых зависят от делителей порождающих многочленов. Технические достижения Берлекэмпа в области декодирования этих кодов сделали их более привлекательными с практической точки зрения[1].
Алгоритм был впервые изложен в статье «Factoring Polynomials Over Finite Fields»[2] и позже воспроизведён в книге «Algebraic Coding Theory»[2]. В этой работе 1967 года [3] Берлекэмп пишет, что проблема факторизации возникает в трудах[4]Голомба. Однако, возможность использования матрицы для определения числа нормированных сомножителей многочлена была впервые замечена в статье Карела Петра(англ.)русск.[5]. В статье Батлера[6] было установлено, что ранг матрицы равен , другое доказательство этого факта было дано Шварцем[7].
Алгоритм Берлекэмпа упоминался во множестве работ[8] и являлся основным алгоритмом решения проблемы факторизации до появления в 1981 году алгоритма Кантора — Цассенхауза(англ.)русск.[9]. Была разработанна техника[10] позволяющая разложить многочлен на множители за где — показатель в оценке сложности перемножения квадратных матриц[11].
Если то многочлен не содержит кратных корней, так как кратный корень одновременно является и корнем производной[16].
Если то и значит Если то для необходимо проделать описанную процедуру до тех пор пока не будет получено разложение Многочлен удовлетворяет требованиям основного случая[16].
Иначе, многочлен является нетривиальным делителем многочлена . В свою очередь, многочлен не имеет кратных неприводимых сомножителей[16]. Если содержит кратные сомножители, то к нему также применяется описанная процедура. Зная эти разложения, легко получить разложение .
Таким образом, задача разложения произвольного унитарного многочлена над конечным полем сводится к разложению на множители конечного числа многочленов, которые не имеют кратных неприводимых сомножителей, то есть к основному случаю[16].
и из взаимной простоты сомножителей в правой части следует, что каждый неприводимый делитель многочлена делит один, и только один из многочленов . Таким образом, доказана справедливость и единственность разложения[18]:
Сложность алгоритма составляет математических операций[19]. Алгоритм будет эффективен только для небольших полей. Это связанно с необходимостью перебора всех .
Усовершенствования
В случае простого поля, если значение велико, то перебор значений займёт много времени. Однако, возможно определить множество , состоящее из , для которых нетривиален[20]. Для этого необходимо найти корни результанта[21], которые и будут составлять множество .
Ещё один метод разложения унитарного многочлена , не имеющего кратных неприводимых множителей, основан на приведении некоторой эффективно вычислимой с помощью алгоритма Берлекэмпа матрицы A к диагональному виду[22]. Однако сам процесс диагонализации довольно сложен.
В работе Калтофена и Лобо[23] была предложена вероятностная версия алгоритма Берлекэмпа, позволяющая разложить на множители многочлен степени за арифметических операций. Алгоритм Калтофена — Лобо был реализован на компьютере, и оказался эффективным для многочленов высокой степени, например, для многочленов степени 10001 над полем он работает около 102,5 часов на компьютере Sun-4.
Применение
Алгоритмы факторизации многочленов важны для теории кодирования и для изучения линейных рекуррентных соотношений в конечных полях. Также алгоритм Берлекэмпа используется для вычисления группы Галуа уравнения над полем рациональных чисел и построения решений полей, разложения многочленов над кольцом целых чисел, для отыскания разложения простого рационального числа в поле алгебраических чисел, и для некоторых других вычислительных задач[24].
Алгоритмы с факторными базами(англ.)русск. используют алгоритмы факторизации многочленов для решения задачи отыскания дискретного логарифма[25], на вычислительной сложности которой, построена схема Эль-Гамаля.
Реализации в системах компьютерной алгебры
В системе компьютерной алгебры PARI/GP[en] алгоритм Берлекэмпа может быть использован посредством команды factormod[26].
↑ PETR K.Uber die Reduzibilitat eines Polynoms mit ganzzahligen Koeffi-zienten nach einem Primzahlmodul.— Casopis Pest Mat. Fys, 1937.— С. 85-94.
↑ 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.
↑ Schwarz, St.On the reducibility of polynomials over a finite field.— Quart. J. Math. Oxford Ser.(2) 7, 1956.— С. 110-124.
↑ Лидл, 1988, Исторические комментарии, с. 223-224.
↑ Cantor D.G., Zassenhaus H.A new algorithm for factoring polynomials over finite fields.— Math. Comp., 1981.— Vol.36.— P.587—592.
↑ von zur Gathen J., Shoup V.Computing Frobenius maps and factoring polynomials.— Comput. Complexity, 1992.— Т. 2.— С. 187–224.
↑ Василенко, 2003, с. 185: «Сложность алгоритма Кантора—Цассенхауза».
Berlekamp, Elwyn R. (1967). “Factoring Polynomials Over Finite Fields”. Bell System Technical Journal. 46: 1853—1859. MR0219231. BSTJ Later republished in: Berlekamp, Elwyn R.Algebraic Coding Theory.— McGraw Hill, 1968.— ISBN 0-89412-063-8.
Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.
2019-2025 WikiSort.ru - проект по пересортировке и дополнению контента Википедии