Пожалуйста, проясните ситуацию. Был выбран курс " Компьютерная алгебра" для самостоятельного изучения. Как теперь записаться на этот курс с целью получения диплома о повышении квалификации? На данный момент он имеет статус " изучаю". Если я пройду экзаменационный тест в таком статусе без оформления документов и оплаты диплома, придется ли еще раз регистрироваться на этот курс и заново проходить тестирование? |
Алгоритмы Кронекера. Разложение на множители, свободные от квадратов. Факторизация
p-адический случай.
Формально алгоритм факторизации с использованием поля - адической метрики совпадает с алгоритмом, приведенным выше для поля :
А26. АЛГОРИТМ. (Факторизовать многочлен с помощью p-адической метрики)
Основные отличия заключаются в следующем.
Добавляется новый шаг алгоритма, заключающийся в выборе простого числа . На выбор его накладывается два условия: во-первых, при переходе к вычетам по модулю не должна понизиться степень полинома , т.е. не должно делить старший коэффициент полинома ; во-вторых, после перехода к классам по модулю полином должен остаться свободным от квадратов, т.е. не должно делить результант полиномов и .
Отметим, что от выбора простого числа может зависеть количество множителей в разложении полинома по модулю . В некоторых системах выполняется разложение исходного полинома по модулю нескольких различных значений (обычно до пяти значений), из них выбирается такое , разложение по модулю которого имеет наименьшее количество сомножителей, и разложение продолжается по этому модулю. Это замечание относится только ко временным характеристикам алгоритма и носит вероятностный характер (нет алгоритма, позволяющего проверить, что разложение по какому-то модулю имеет минимальное возможное количество сомножителей).
Далее, вместо рациональных чисел, приближающих вещественные коэффициенты, будут использоваться классы по модулю для натуральных значений . Требуемая точность вычислений определяется как натуральное число , так что для факторизации полинома нам нужно разложить на множители этот полином по модулю . Округление коэффициентов полинома до ближайшего целого состоит в том, что представители коэффициентов берутся из симметричной системы вычетов.
Как определить требуемую точность вычислений?
Предположим, что , причем делит . Предположим, что мы умеем оценивать сверху какой-то величиной абсолютную величину коэффициентов полинома в зависимости от коэффициентов исходного полинома и от старшего коэффициента полинома и от его степени. Таким образом, ошибок округления при нахождении делителя исходного полинома не будет, если используемая симметричная система содержит значения от до , т.е. , если удовлетворяет неравенству .
Учитывая предположение, что полином не имеет линейных делителей, т.е. нужно искать неприводимые делители степени не выше , где , и максимальное значение старшего коэффициента полинома равно старшему коэффициенту исходного полинома, шаг алгоритма
Определить требуемую точность вычислений }
принимает вид:
Найти наименьшее натуральное , такое, что .
Перейдем теперь к рассмотрению основного шага алгоритма:
Найти все неприводимые над нормированные делители полинома с точностью }
Детализируем его следующим образом.
Нулевое приближение разложения в поле - адических чисел получается из разложения полинома в поле вычетов по модулю . Это разложение выполняется с помощью алгоритма Берлекэмпа.
Итерационный шаг уточнения разложения заключается в переходе от сравнения по модулю к сравнению по модулю , где . Этот переход выполняется с помощью леммы Гензеля. Наиболее часто используется случай (квадратичный подъем) или (линейный подъем). При этом в одной и той же системе могут применяться оба метода: сначала квадратичный, а после, когда применение квадратичного метода приведет к слишком большим числам, - линейный. Итерационный процесс заканчивается, когда показатель степени будет не меньше значения , определенного выше. В качестве представителей системы вычетов по модулю берется сбалансированная система, т.е. целые числа, не превосходящие по абсолютной величине числа .
Проверка испытуемой комбинации на получение делителя полинома осуществляется пробным делением.
Отметим, что при переборе возможных комбинаций сомножителей мы можем ограничиться случаем, когда рассматриваемая комбинация содержит не более половины из общего количества неприводимых (над ) сомножителей.
С учетом сделанных замечаний алгоритм факторизации принимает вид:
А27. АЛГОРИТМ (разложить на неприводимые ).