Опубликован: 04.03.2008 | Доступ: свободный | Студентов: 1626 / 46 | Оценка: 4.56 / 3.67 | Длительность: 30:07:00
ISBN: 978-5-9556-0099-4
Специальности: Программист, Математик

Лекция 10: Алгоритмы факторизации, основанные на выборе малого вектора в решетке

< Лекция 9 || Лекция 10: 12345 || Лекция 11 >

Обсуждение алгоритма

Отметим, что введенные выше константы B, c и S можно вычислять не для максимально возможной степени делителя многочлена f, т.е. m-1, а для текущей степени n. При этом точность вычислений на промежуточных этапах понизится, соответственно скорость счета увеличится, кроме того с большой вероятностью нам не придется считать до максимального значения n. Так будет, если неприводимый множитель, соответствующий корню \alpha, имеет степень меньше, чем m-1. С учетом этого замечания и использованием алгоритма редуцирования базиса решетки вышеприведенный алгоритм принимает вид:

А39. АЛГОРИТМ (выделить-неприводимый-множитель).

\begin{equation*}
\text{Дано:\quad $f(x) \in \mathbb Z [x], deg f(x) = m$}\\ 
\text{Надо:\qquad $g(x) \in \mathbb Z [x],\g(x)$ неприводим в $\mathbb Z [x]$}\\
\text{Переменные:\quad решетка $L$}\\
\text{Начало}\\
\text{вычислить начальное приближение $\tilde\alpha$ корня $\alpha$  и }\\
    \text{ значение  $S$, такое, что в шаре с центром $\tilde\alpha$} \\
     \text{радиуса $S$ содержится  ровно один корень многочлена $f$}}\\
\text{$L$.базис$[0] := 1$}\\
\text{успех := "нет"}\\
\text{цикл для $n$ от $1$ до $m-1$ пока не успех}\\
\text{\qquad $L$.базис$[n] := x^n$}\\
\text{\qquad минимальный многочлен ($L$, успех)}\\
\text{конец цикла}\\
\text{если успех то}\\
\text{\qquad $g(x) := L$.базис$[0]$}\\
\text{иначе}\\
\text{\qquad $g(x) := f(x)$}\\
\text{конец если}\\
\text{Конец}
\end{equation*}

21.5. p-адическая метрика.

Переходим к подробному изложению алгоритма факторизации многочленов от одной переменной, основанному на использовании p - адической метрики и построении редуцированного базиса решетки. Предполагаем, что мы нашли неприводимый по модулю некоторого простого числа p множитель многочлена f(x) \in
\mathbb Z [x], и что мы подняли этот неприводимый множитель до некоторого множителя h(x), делящего многочлен f(x) по модулю некоторой степени числа p. Предположим также, что старший коэффициент многочлена h(x) равен 1 и что многочлен f(x) не делится на h^2(x) по модулю p. Таким образом, предполагаем, что

{}&\llc(h) = 1 ( 21.16)
{}&(h\mod{p^k})\text{ делит } (f\mod p^k )\text{ в }(\mathbb Z /p^k
\mathbb Z )[x] ( 21.17)
{}&(h\mod p)\text{ неприводим в }  F_p[x] ( 21.18)
{}&(h\mod p)^2\text{ не делит }(f\mod p)\text{ в кольце }F_p[x] ( 21.19)

Положим l =\deg (h), тогда 0<l\leq n =\deg
(f).

Покажем, что множество многочленов g(x) \in
\mathbb Z [x], которые делятся по модулю p на многочлен h(x), образуют в \mathbb Z [x] главный идеал, порожденный некоторым неприводимым множителем h_0 (x) многочлена f(x).

Другими словами, пусть \varphi_k обозначает естественный гомоморфизм кольца \mathbb Z [x] на факторкольцо (\mathbb Z /p^k \mathbb Z )[x], ядро гомоморфизма \varphi_k совпадает с главным идеалом (p^k
) кольца \mathbb Z [x], \varphi_1 обозначим просто \varphi. Пусть H - главный идеал кольца \mathbb Z [x], порожденный многочленом h, удовлетворяющим условиям (21.16)-(21.19). Тогда существует h_0  \in
\mathbb Z [x], такой, что при любом k в \mathbb Z [x] совпадают идеалы \varphi^{-1}_k
( \varphi_k (H)) = \varphi^{-1}(\varphi(H))  =  (h_0
). Многочлен h_0 является неприводимым в \mathbb Z [x] и делит f(x).

21.3. ПРЕДЛОЖЕНИЕ. Существует неприводимый в кольце \mathbb Z [x] множитель h_0
(x) многочлена f(x), для которого (h\mod p) делит (h_0\mod p), и этот множитель определен однозначно с точностью до знака. Кроме того, если g(x) \in \mathbb Z [x] и g(x) делит f(x), то следующие условия эквивалентны.

{}&(h\mod p)\text{ делит }(g\mod p)\text{ в кольце }F_p[x] ( 21.20)
{}&(h\mod p^k )\text{ делит }(g\mod p^k )\text{ в кольце }(\mathbb Z /p^k
\mathbb Z )[x] ( 21.21)
{}&h_0\text{ делит }g\text{ в кольце }\mathbb Z [x] ( 21.22)

В частности, (h\mod p^k) делит (h_0  \mod  p^k) в кольце (\mathbb Z /p^k\mathbb Z )[x]. В теоретико-кольцевых терминах эти условия переписываются следующим образом:

{}&\varphi(g) \in ( \varphi(h)) \subset  F_p[x] ( 21.20')
{}&\varphi_k (g) \in ( \varphi_k (h)) \subset  (\mathbb Z /p^k \mathbb Z )[x] ( 21.21')
{}&g \in (h_0 ) \subset  \mathbb Z [x] ( 21.22')

В частности,

\begin{equation*}
  \varphi_k (h_0 ) \in  (\varphi_k (h)) \subset  (\mathbb Z /p^k \mathbb Z )[x]
\end{equation*}

ДОКАЗАТЕЛЬСТВО. Существование многочлена h_0 следует из того, что \varphi(f) делится на \varphi(h). Поскольку многочлен \varphi(h) неприводим, на него делится \varphi(h_i) хотя бы для одного из неприводимых делителей h_i многочлена f, а так как эти делители взаимно просты, то делится в точности один из них.

Поскольку \varphi является кольцевым гомоморфизмом, и разлагается в композицию гомоморфизмов \psi_k \cdot \varphi_k, где \psi_k - естественный гомоморфизмом кольца \mathbb Z /p^k \mathbb Z [x] \to F_p[x], как из (21.22), так и из (21.21) следует (21.20).

Покажем, что из (21.20) следует (21.21) и (21.22).

Пусть выполнено условие (21.20). Тогда \varphi(f/g) \notin  (\varphi(h)) в силу (21.19) и однозначности разложения на множители в F_p[x]. Значит, f/g \notin  (h_0 ) \subset  \varphi^{-1}  (\varphi(h)). Из однозначности разложения на множители в \mathbb Z [x] следует, что g \in (h_0
), т.е. выполнено (21.22).

Пусть снова выполнено условие (21.20). Поскольку F_p[x] является областью главных идеалов, из (21.20) следует, что существуют u(x),v(x) \in F_p[x], такие, что u\cdot 
\varphi(h)
+ v\cdot \varphi(f/g) =  1 в F_p[x]. Поскольку \varphi - эпиморфизм, ядро которого порождено числом p, выписанное соотношение можно поднять до равенства в кольце \mathbb Z [x]

\begin{equation}
        u'\cdot h + v'\cdot f/g = 1 - p\cdot w. 
\end{equation} ( 21.23)
Обозначим w' = 1 + pw  +  p^2  w^2  +  \dots +  p^{k-1}w^{k-1}. Применяя \varphi_k к предыдущему соотношению, умноженному на g\cdot  w', получим

\begin{equation}
\varphi_k (g\cdot w'\cdot u')\cdot \varphi_k (h) + \varphi_k
(w'\cdot v')\cdot \varphi_k (f) = \varphi_k (g). 
\end{equation} ( 21.24)

Из этого соотношения и (21.17) следует (21.21).

< Лекция 9 || Лекция 10: 12345 || Лекция 11 >
Марина Подлевских
Марина Подлевских

Пожалуйста, проясните ситуацию. Был выбран курс " Компьютерная алгебра" для самостоятельного изучения. Как теперь записаться на этот курс с целью получения диплома о повышении квалификации? На данный момент он имеет статус " изучаю". Если я пройду экзаменационный тест в таком статусе без оформления документов и оплаты диплома, придется ли еще раз регистрироваться на этот курс и заново проходить тестирование?