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

Алгоритмы вычисления размерностных многочленов

13.16. ПРИМЕР. Вычислим многочлен Гильберта матрицы

E=\left( \smallmatrix 1 &
0 & 0 & 1 \\
  r-2 & 0 & 1 & 0 \\
  r-3 & 0 & 2 & 0 \\[-6pt]
  \vdots & \vdots & \vdots & \vdots \\
  i & 0 & r-i-1 & 0 \\[-6pt]
  \vdots & \vdots & \vdots & \vdots \\
  1 & 0 & r-2 & 0 \\
  0 & 1 & 0 & r-2\endsmallmatrix\right)
(r\in
\mathbb N,\ r\geq 3) при помощи алгоритма A13. В процессе вычислений последовательно применяем (13.8), начиная с последнего столбца матрицы E. Прежде всего запишем
\omega_E(t) =
\Delta_1\Delta^{-1}\omega_{E_1}(t) + \omega_H(t-1) =
  \omega_{E_1}(t) + \omega_H(t-1),
где
E_1=\left(
\smallmatrix
r-2 & 0 & 1 \\
r-3 & 0 & 2 \\[-6pt] \vdots & \vdots & \vdots \\
1 & 0 & r-2\endsmallmatrix\right),H=\left( \smallmatrix 1
& 0 & 0 & 0 \\
r-2 & 0 & 1 & 0 \\
r-3 & 0 & 2 & 0 \\[-6pt] \vdots & \vdots & \vdots &
\vdots \\
i & 0 & r-i-1 & 0 \\ \vdots & \vdots & \vdots & \vdots
\\
1 & 0 & r-2 & 0 \\ 0 & 1  &  0  & 
r-3\endsmallmatrix\right).
По теореме 12.8(8) имеем
\begin{align*}
  \omega_H(t-1)&= \omega_{(1,0,r-3)}(t-1)
    =\binom{t-1+3}3-\binom{t-1+3-(r-2)}3\\
  &= \binom {t+2}3 - \binom {t+4-r}3.
\end{align*}
Применяя (12.2) к E_1 и (1,0,1), получаем \omega_{E_1}(t)=\omega_{(1,0,1)}(t)+  
\omega_{H_1}(t-2), где
H_1=\left( \smallmatrix r-3 & 0 & 0 \\ r-4 & 0 & 1
\\[-6pt] \vdots & \vdots  &  \vdots
\\ 1 & 0 & r-4 \\ 0 & 0 & r-3\endsmallmatrix\right),
так что из формулы (13.10) следует, что
\begin{align*}
  \omega_{H_1}(t-2) &=
    \sum_{i=1}^{r-3}\Delta_1\Delta^{-1}\omega_{(r-2-i,0)}(t-2-(i-1))\\
    &=\sum_{i=1}^{r-3}\omega_{(r-2-i,0)}(t-i-1)\\
  &=\sum_{i=1}^{r-3}\left[\binom {t-i-1+2}2 -\binom {t-i-1+2-(r-2-i)}2\right]\\
  &=\sum_{i=1}^{r-3}\left[\binom {t-i+1}2 -\binom {t+3-r}2\right]\\
  &= \frac{(r-3)(r-2)}2 t - \frac{(r-2)(r-3)(2r-5)}6.
\end{align*}
Поэтому,
\begin{align*}
  \omega_{E_1}(t)={}&\binom{t+3}3-\binom{t+3-2}3+\frac{(r-3)(r-2)}2t
  -\frac{(r-2)(r-3)(2r-5)}6 \\
  ={}&(t+1)^2 + \frac{(r-3)(r-2)}2 t -\frac{(r-2)(r-3)(2r-5)}6,
\end{align*}}
следовательно,
\begin{align*}
  \omega_E(t)={}&\binom {t+2}3 - \binom {t+4-r}3 + (t+1)^2\\
     &+\frac{(r-3)(r-2)}2 t-\frac{(r-2)(r-3)(2r-5)}6 \\
  ={}&\frac r2t^2+\frac{r+2}2t-\frac{r^3-6r^2+11r-12}6.
\end{align*}

Рассмотрим задачу вычисления старшего коэффициента многочлена Гильберта. Пусть

E = (e_{ij})_{\substack{1\leq i\leq n\\ 1\leq j\leq
m}}n\!\times\! m -матрица над \mathbb N и

\begin{equation}
  \omega_E(t) =\sum_{i=0}^m a_i(E)\binom {t+i}i
\end{equation} ( 13.13)
ее многочлен Гильберта. Тогда по теореме 12.8(7) имеем
a_m(E)=\begin{cases} 1,&\text {если
матрица $E$ пустая } (n=0)\\ 0,&\text
  {в противном случае.}\end{cases}
Из теоремы 12.8(9) и леммы13.12 что
a_{m-1}(E)=\begin{cases} 0,&\text {если
матрица
$E$ пустая,}\\
   \sum_{j=1}^m\min_{1\leq i\leq n} \{ e_{ij}\} ,&\text {в противном
случае.}\end{cases}
Вычисление коэффициента a_{m-2}(E) (при m\geq 2 ) может основываться на следующем утверждении.

13.17. ЛЕММА. Пусть E = (e_{ij})_{\substack{1\leq i\leq n\\ 1\leq j\leq
m}}n\!\times\! m -матрица над \mathbb N, такая, что m>1 и первый столбец матрицы E нулевой. Пусть \omega_E(t) =\sum\limits_{i=0}^\tau
a_i(E) \binom
{t+i}i — многочлен Гильберта матрицы E и 0<\deg\omega_E\leq \tau\
(\tau\in\mathbb N_m). Далее, пусть E_1 n\!\times\!(m-1) -матрица, полученная из E удалением первого (нулевого) столбца. Тогда \deg
\omega_{E_1}\leq
\tau-1 и a_\tau(E)=a_{\tau-1}(E_1).

ДОКАЗАТЕЛЬСТВО. Применяя (12.2) к E и (1,0,\dots,0) \in \mathbb N^m, получим, что \omega_E(t)=\omega_{E_1}(t)+\omega_E(t-1). Значит, если

$\omega_E(t) =\sum_{i=0}^\tau a_i(E) \binom {t+i}i,$
   то
\begin{align*}
  \omega_{E_1}(t)&=\sum_{i=0}^\tau a_i(E_1) \binom {t+i}i
    =\sum_{i=0}^\tau a_i(E) \left[ \binom {t+i}i- \binom {t+i-1}i\right]\\
  &= \sum_{i=0}^{\tau-1} a_{i+1}(E) \binom {t+i}i,
\end{align*}
следовательно, \deg \omega_{E_1}\leq\tau-1 и a_i(E_1) =
a_{i+1}(E) для всех i=0, 1,\dots,\tau-1. В частности, a_\tau(E)=a_{\tau-1}(E_1).

Отметим, что если для n\!\times\! m -матрицы E =
(e_{ij})_{\substack{1\leq i\leq
n\\ 1\leq j\leq m}} степень многочлена Гильберта \omega_E(t)=
\smash{\sum\limits_{i=0}^m}
a_i(E) \binom {t+i}i меньше или равна \tau (\tau\in\mathbb N, 0\leq
\tau\leq m), то

\begin{equation}
  a_\tau(E) = a_\tau(E_1) + a_\tau(E_2),
\end{equation} ( 13.14)
где a=\min_{1\leq i\leq n}\{ e_{i1}| e_{i1}\neq0\}, матрица E_1 получена из E удалением первого столбца и всех строк с нулем в первом столбце, а E_2= (e'_{ij})_{\substack{1\leq
i\leq n\\ 1\leq j\leq m}}n\!\times\! m -матрица с элементами
e'_{ij}=\begin{cases} e_{ij}, & \text{если } j\neq
1 \\
                 \max\{ e_{i1}-a, 0\} ,&\text{если } j=1\end{cases}
  \ (1\leq i\leq n,\ 1\leq j\leq m).
(Соотношение (13.14) легко может быть установлено применением (12.2) к E и (a,0,\dots,0)\in\mathbb N^m.)

Прежде чем вычислять коэффициент a_{m-2}(E) многочлена Гильберта (13.13), заметим, что, без потери общности, можно предполагать, что \deg\omega_E\leq m-2. Действительно, применяя (12.2) к E и \textbf{e}=\bigl(\min\limits_{1\leq
  i\leq n}\{ e_{i1}\} ,\dots,\min\limits_{1\leq i\leq n}\{e_{im}\}\bigr),получаем, что

\omega_E(t) =\binom {t+m}m - \binom {t+m-
|\textbf{e}|}m + \omega_{E'}(t-|\textbf{e}|),
где E' =
(e'_{ij})_{\substack{1\leq i\leq n\\ 1\leq j\leq m}}матрица с элементами e'_{ij}=e_{ij}- \min_{1\leq i\leq n}\{
e_{ij}\}
(1\leq
i\leq n,\ 1\leq j\leq m). Пользуясь (11.4), можно переписать последнее представление \omega_E(t) в виде
\begin{align*}
  \omega_E(t) ={}&\sum_{i=0}^{|\textbf{e}|-1} \binom {t+m-1-i}{m-1} +
    \omega_{E'}(t-|\textbf{e}|) \\
  ={}& \smu{2} |\textbf{e}|\binom {t+m-1}{m-1}\!-\!\sum_{i=1}^{|\textbf{e}|-1} \left[\!\binom
    {t+m-1}{m-1}\!-\!\binom {t+m-1-i}{m- 1}\!\right]
    +\omega_{E'}(t-|\textbf{e}|) \\
  ={}& |\textbf{e}|\binom {t+m-1}{m-1} - \sum_{i=1}^{|\textbf{e}|-1} \sum_{k=0}^{i-1}
    \binom {t+m-1-i+k}{m-2} + \omega_{E'}(t-|\textbf{e}|) \\
  ={}&|\textbf{e}|\binom {t+m-1}{m-1} - \frac {|\textbf{e}|(|\textbf{e}|-1)}2 \binom
    {t+m-2}{m-2} +o(t^{m-2})+ \omega_{E'}(t-|\textbf{e}|).
\end{align*}}

Поскольку \deg \omega_{E'}\leq m-2 (см. лемму 13.12), имеем a_{m-2}(E) =  
a_{m-2}(E') - \frac {|\textbf{e}|(|\textbf{e}|-1)}2, следовательно, можно вместо a_{m-2}(E) вычислять a_{m-2}(E'), поэтому в дальнейших рассуждениях предполагаем, что \deg \omega_{E'}\leq m-2 и \omega_E(t)
=\sum\limits_{i=0}^{m-2}
a_i(E)\binom {t+i}i, где a_i(E) \in
\Z (i=0,1,\dots,m-2). Кроме того, предполагаем, что E содержит не более двух ненулевых столбцов (следует отметить, что если в E имеется единственный ненулевой столбец, то многочлен Гильберта \omega_E(t) совпадает с минимальным элементом этого столбца). Предполагая, что первый столбец матрицы E ненулевой, упорядочим его элементы и применим (13.14) при \tau=m-2. Поскольку число столбцов в E_1 (см. (13.14)) равно (m-1), вычисление a_\tau(E_1) можно свести к выбору минимальных элементов в столбцах матрицы E_1 (см. теорему 12.8(3)). Легко видеть, что такой выбор требует (m-1)b_1 элементарных операций, где b_1 — число строк матрицы E_1. Применяя (13.14) к E_2, сводим вычисление a_\tau(E_2) (в правой части формулы (13.14)) к вычислению коэффициента a_2(E_{21}) многочлена Гильберта некоторой матрицы E_2, содержащей (m-1) столбец (эта матрица получена добавлением некоторых дополнительных строк к E_1 ). Чтобы вычислить a_\tau(E_{21}), нужно не более (m-1)b_2 элементарных операций (здесь b_2 обозначает число строк матрицы E_{21} ). Продолжаем применять (13.14), пока не получим матрицу с нулевым первым столбцом. По лемме 13.17 такой столбец можно отбросить, затем применяем (13.14) к новой матрице и т. д.

Асимптотическая сложность g(n,m) описанного алгоритма не превосходит

\begin{multiline*}
  n\log
n+\hskip-10pt\smash[t]{\sum\limits^k_{\substack{i=1\\b_i\in\mathbb N\\b_1+\dots+b_k=n}}}\hskip-10pt b_im+g(n,m-1)\\
  \leq2n\log n+n(m+m-1)+g(n,m-2)\leq \dots\\
   \leq(m-1)n\log n+n(m+(m-1)+\dots+2)+g(n,1)\\
   =(m-1)n\log n+n\binom{m+1}2\sim mn\log n.
\end{multiline*}

А14. АЛГОРИТМ (E, n,m, a_{m-2}).

\begin{equation}\\
\text{Дано:\quad   $  n\in\mathbb N;\ m\in\mathbb N $  ; $  n\!\times\!m $  -матрица $  E $  , такая, что $  \deg \omega_E\leq m-2 $  }\\
\text{Надо:\qquad  $  a_{m-2}(E) $  .}\\ 
\text{Начало}\\
\text{ $  a_{m-2}:=0$} \\
\text{ $  r:= $  число нулевых столбцов матрицы $  E$} \\
\text{ $  m:=m-r $}\\
\text{$  E: $  удалить нулевые столбцы }\\
\text{сортировать строки по возрастанию элементов первого столбца}\\
\text{$\mathbb N_S:=0 $  }\\
\text{ $  i:= 1$} \\
\text{ $  E_0:= \emptyset$} \\
\text{ цикл пока  $  i <n$} \\
\text{\qquad  цикл пока  $  e_{i1}=N_S $  и $  i\leq  n $  }\\
\text{\qquad \qquad  $  E_0:=E_0\cup (e_{i2},\dots,e_{im}) $  }\\
\text{\qquad \qquad  $  i := i + 1  $  }\\
\text{\qquad  конец цикла}\\
\text{\qquad  $  N_R := e_{i1} $  }\\
\text{\qquad  $  \textbf{a} := (a_1,\dots,a_{m-1}) $  , где $  a_i $ - минимальный элемент $  i $  -го столбца} \\
\text{\qquad \quad матрицы, состоящей из векторов из $  E_0 $  }\\
\text{\qquad  $  E_0:=\textbf{a} $  }\\
\text{\qquad  $  a_{m-2}:= a_{m-2} + |\textbf{a}|(N_R - N_S) $  }\\
\text{\qquad  $  N_S := N_R $  }\\
\text{конец цикла}\\
\text{ $  E: $  удалить первый столбец}\\
\text{алгоритм A14  $  (E,n,m-1,b) $  }\\
\text{ $  a_{m-2}:= a_{m-2}+ b $  }\\
 \text{Конец}\\
\end{equation}

Теперь, пользуясь алгоритмом A14 и формулой (13.14), можно найти старший коэффициент многочлена Гильберта для любой матрицы. Сложность f_k(n,m) вычисления этого коэффициента для матрицы E, такой, что \deg\omega_E = m-k (1\leq
k\leq m), не превосходит

\begin{multiline*}
n \log n + {\sum\limits_{i=1}^n} f_{k-1}(i,m-1) + f_k(n,m-1)\\ 
\leq n \log n + nf_{k-1}(n,m-1) + f_k(n,m-1),
\end{multiline*}
при использовании приведенного ниже алгоритма A15. Таким образом, f_3(n,m)\sim \binom m2
n^2\log n и, в общем случае,
f_k(n,m)  \sim  \binom m{k-1}n^{k-1}\log n\quad (k=3,\dots,m).

А15. АЛГОРИТМ (E, n,m, k, a_{m-k}).

\begin{equation}
\text{Дано:\qquad $ n\in\mathbb N $ , $ m\in\mathbb N $ , $ k\in\mathbb N $ , $ k\geq2 $ , $ m\geq k $;}\\
 \text{\qquad  $ n\!\times\!m $ -матрица $ E $ , такая, что $ \deg\omega_E\leq m-k $ }\\
\text{Надо: \qquad  $ a_{m-k}(E) $ .}\\ 
\text{Начало}\\ 
\text{$ a_{m-k}:=0 $} \\ 
\text{$ r:= $ число нулевых столбцов матрицы $ E $} \\ 
\text{$ m:=m-r $ }\\ 
\text{$ E: $ удалить нулевые столбцы }\\
\text{сортировать строки по возрастанию элементов первого столбца}\\
\text{$mathbb N_S:=0 $} \\ 
\text{$ i:= 1 $} \\ 
\text{$ E_0:= \emptyset $} \\
 \text{цикл пока $ i<n $} \\
\text{\qquad цикл пока $ e_{i1}=N_S $ и $ i\leq  n $ }\\
\text{\qquad \qquad  $ E_0:=E_0\cup (e_{i2},\dots,e_{im}) $} \\
\text{\qquad \qquad  $ i := i + 1  $ }\\
\text{\qquad конец цикла}\\
\text{\qquad  $ N_R := e_{i1} $ }\\
\text{\qquad  $ \textbf{a} := (a_1,\dots,a_{m-1}) $ , где $ a_i $ -
минимальный элемент $ i $ -го столбца }\\
\text{\qquad \quad матрицы, состоящей из векторов из $ E_0 $} \\
\text{\qquad  $ E_0:=\textbf{a} $} \\
\text{\qquad  $ a_{m-2}:= a_{m-2} + |\textbf{a}|(N_R - N_S) $ }\\
\text{\qquad  $ N_S := N_R $ }\\
 \text{конец цикла}\\ 
\text{$ E: $ удалить первый столбец}\\
\text{алгоритм А14 $ (E,n,m-1,b) $ }\\ 
\text{$ a_{m-2}:= a_{m-2}+ b $} \\
\text{если $ k=2 $ , то алгоритм А14 $ (E, n, m, a_{m-2) $} \\
 \text{иначе  $ E: $  удалить нулевые столбцы }\\
\text{\qquad  $ m:= $  число столбцов матрицы  $ E $} \\
\text{\qquad  $ N_S := 0 $} \\
\text{\qquad  $ E_0:=\emptyset $} \\
\text{\qquad  цикл для каждого ненулевого  $ e_{i1} $  в порядке возрастания }\\
\text{\qquad \qquad  $ N_R:= e_{i1} $ }\\
\text{\qquad \qquad  $ E_0: $  добавить последовательность строк}\\
\text{\qquad \qquad \qquad   $ \{ (e_{j2},\dots,e_{jm})\mid e_{j1}= N_S\} $} \\
\text{\qquad \qquad  $ N_0 := $  число векторов в  $ E_0 $ }\\
\text{\qquad \qquad алгоритм А15 $ (E_0,N_0,m-1,k-1,P) $ }\\
\text{\qquad \qquad  $ a_{m-k}:= a_{m-k}+ (N_R - N_S)P $ }\\
\text{\qquad \qquad  $ N_S:= N_R $} \\
\text{\qquad конец цикла}\\
\text{\qquad  $ E: $  удалить первый столбец}\\
\text{\qquad алгоритм А15 $ (E,n,m-1,k-1,P) $ }\\
\text{\qquad  $ a_{m-k}:= a_{m-k}+ P $ }\\
\text{конец если}\\
\text{Конец}\\
\end{equation}

Завершая изложение теории размерностных многочленов, следует упомянуть размерностные многочлены от многих переменных, теория которых была заложена в статье [ 19 ] и подробно изложена в монографии [ 20 ] .

Марина Подлевских
Марина Подлевских

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