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

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

Другой способ вычисления размерностного многочлена \omega_E(t) для n\!\times\!
m -матрицы E состоит в следующем. Для n<m можно вычислять многочлен \omega_E(t), пользуясь алгоритмом A9. Пусть n\geq m. В этом случае применяем к E соотношение (12.3), в котором \textbf{e} - строка с максимальным значением элемента в первом столбце матрицы E. (Тривиальные случаи: если E=(0), то \omega_E=0 ; если n=1, применяем алгоритм (12.3).) Легко видеть, что число нулевых столбцов в матрице H (см. (12.3)) больше, чем в матрице E, и число строк в каждой из матриц E\setminus\textbf{e}, K меньше чем в E. Затем применяем описанную процедуру к матрице E\setminus\textbf{e} и т.д., пока не получим матрицу, размерностный многочлен которой можно вычислить по алгоритму A9. В результате этого процесса мы получаем представление требуемого многочлена \omega_E(t) в виде линейной комбинации многочленов \omega_{\textbf{e}},\omega_{H_1},\dots,\omega_{H_{n-1}} (со сдвинутыми аргументами), таких, что каждая матрица H_i имеет ровно i строк и число ее нулевых столбцов на один больше, чем в E. Многочлен \omega_{\textbf{e}} и некоторые из многочленов \omega_{H_i} вычисляются по алгоритму A9 (в тех случаях, когда этот алгоритм нужно применять в соответствии с вышеприведенными рассуждениями). Для вычисления остальных многочленов \omega_{H_i} снова применяем соотношение (12.3) и продолжаем в том же духе. Заметим, что если первый столбец в матрице E нулевой и m > 1, то число операций в вычислении \omega_E по предлагаемой схеме совпадает с числом операций при вычислении размерностного многочлена n\!\times\! (m-1) -матрицы. Кроме того, если E - n\!\times\!1 -матрица, то все ее строки кроме той, которая содержит элемент \min_{1\leq i\leq n}\{ e_{i1}\}, являются лишними, так что вычисление размерностного многочлена по формуле \omega_E=\min_{1\leq
i\leq
n}\{ e_{i1}\} требует (n-1) операцию. Таким образом, если f(n,m) обозначает число элементарных операций (сложение, сравнение или умножение) необходимых для вычисления размерностного многочлена \omega_E(t) матрицы E размера n\!\times\! m, то f(n,m)\leq(n-1)+f(n-1,m)+f(n-1,m-1). Поскольку f(n,1)=n-1, имеем

\begin{align*}
  f(n,2)&\leq 2(n-1) + f(n-1,2)\\
        &amp; \leq 2((n-1) + (n-2)) + f(n-2,2) \leq \dots\\
        &\leq 2((n-1) + (n-2) +\dots+1)= \frac {n(n-1)}2\cdot 2\leq
n^2;\\
  f(n,3)&\leq n^2+(n-1)^2+\dots+1 \leq n^3;\\
        &\vdots\\
  f(n,k)&\leq n^{k-1}+ (n-1)^{k-1}+\dots+1\leq n^k
\end{align*}
и т. д. Поэтому алгоритм вычисления размерностного многочлена, основанный на приведенной схеме (см. алгоритм A12 ), имеет асимптотическую сложность O(n^m).

А12. АЛГОРИТМ (E, n,m, \omega).

\begin{equation}\\
\text{Дано: \quad  $n\in\mathbb N; m\in\mathbb N$;$n\!\times\!m$-матрица$E$.} \\
\text{Надо: \qquad$\omega(t)=\omega_E(t)$- многочлен Гильберта матрицы $E$.}\\
\text{Пер.: \qquad $h \in \mathbb N$}\\
\text{\qquad $J$- множество элементов типа $1..m$;}\\
\text{\qquad $\textbf{e}$- вектор типа $\mathbb N$ с индексами $1..m$;}\\
\text{\qquad $F$- матрица типа $\mathbb N$, число столбцов которой не более $m$,}\\
\text{ \qquad а число строк - не более $n$.}\\
\text{Начало}\\
\text{$h:=n$}\\
\text{$F:= E$}\\
\text{если $h \leq  m $ то  }\\
\text{\qquad Алгоритм A9 $(E,n,m,\omega)$}\\
\text{иначе}\\
\text{\qquad $J:=\{$  ненулевые  столбцы  $F\}$}\\
\text{\qquad если $J=\emptyset $ то $\omega(t) := 0$}\\
\text{\qquad иначе если $\Card J = 1$ то}\\
\text{\qquad\qquad $c:=$ минимальный элемент столбца $j \in J$}\\
\text{\qquad\qquad $\omega := \binom {t+m}m-\binom {t+m-c}m$}\\
\text{\qquad иначе}\\
\text{\qquad\qquad $j:=\{$ первый элемент множества $J\}$}\\
\text{\qquad \qquad $\textbf{e}:=\{$ первая строка матрицы $F$ с минимальным}\\
\text{\qquad\qquad\quad элементом в $j$ -м столбце $\}$}\\
\text{\qquad\qquad $F:= F\setminus\textbf{e}$}\\
\text{\qquad\qquad Алгоритм A12$(F,h-1,m,\omega)$}\\
\text{\qquad\qquad $v(t):= \omega(t)$}\\
\text{\qquad\qquad $F:= \{\textbf{f}-\textbf{e} \mid \textbf{f}$  - строка матрицы $F, \textbf{f} \neq \textbf{e}\} $}\\
\text{\qquad\qquad Алгоритм A12 $(F,h-1,m,\omega)$}\\
\text{\qquad\qquad $\omega(t) := v(t) - \omega (t-|\textbf{e}|)$}\\
\text{\qquad конец если} \\
\text{конец если}\\
\text{Конец}
\end{equation}

Символ \dotminus, которым мы пользуемся в алгоритме A12, обозначает следующую операцию на векторах:

(a_1,\dots,a_m) \dotminus(b_1,\dots,b_m) =
(c_1,\dots,c_m),
где c_i=\max(a_i-b_i,0) для всех i=1,\dots,m. При этом, если m > 2, то e_i (1\leq i\leq m) обозначает i -ю координату элемента \textbf{e} \in \mathbb N^m.

В заключение этого параграфа рассмотрим алгоритм вычисления размерностного многочлена, асимптотическая сложность которого меньше асимптотической сложности алгоритмов A9, A10, A11 и A12. Кроме того, представим алгоритм вычисления старшего коэффициента размерностного многочлена.

Пусть \mathbb Q[t] - кольцо многочленов над полем рациональных чисел. Для каждого s\in\mathbb N пусть \Delta_s и \Delta^{-1} обозначают операторы, действующие на \mathbb Q[t] следующим образом:

\begin{equation}\   \Delta_s(f(t))=f(t)-f(t-s)
\end{equation} ( 13.7)
и если f(t) =\sum_{i\in\mathbb N}
a_i\binom{t+i}i (a_i\in\mathbb Q) для всех i\in\mathbb N, то
\begin{equation}\label{13.7&apos;} 
  \Delta^{-1}f(t)=\sum_{i\in\mathbb N} a_i\binom {t+1+i}{i+1}. \qquad \qquad \qquad \ecno(13.7') 
\end{equation}

Отметим, что операторы \Delta_s и \Delta^{-1} (s \in \mathbb N), удовлетворяют следующему тождеству:

\begin{equation}
  \Delta_s\Delta^{-1}f(t) =f(t)+f(t-1)+ \dots+f(t-s+1).
\end{equation} ( 13.8)
В частности,
\Delta_1\Delta^{-1}=
\id_{\mathbb Q[t]}.
Действительно, пусть
f(t) =\sum\limits_{i\in\mathbb N}
a_i\binom {t+i}i
a_i\in\mathbb Q для всех i\in\mathbb N, и a_i=0 для почти всех i\in\mathbb N и пусть s \in
\mathbb N. По (11.4) имеем
\begin{multiline*}
  \Delta_s\Delta^{-1}f(t)
    =\sum\limits_{i\in\mathbb N} a_i\left[\binom{t+i+1}{i+1}-\binom {t+i+1-s}{i+1}\right]
 =\sum\limits_{i\in\mathbb N} a_i\sum\limits_{r=0}^{s-1} \binom {t+i+1-s+r}i
  =\sum\limits_{i\in\mathbb N} a_i\sum\limits_{r=0}^{s-1} \binom {t+i-r}i\\
  =\sum\limits_{r=0}^{s-1} \sum\limits_{i\in\mathbb N} a_i\binom {t+i-r}i
  =\sum\limits_{r=0}^{s-1} f(t-r).
\end{multliine*}

13.10. ЛЕММА. Пусть E=(e_{ij})_{\substack{1\leq i\leq n\\ 1\leq j\leq
m}} - n\!\times\!m - матрица над \mathbb N, k\in\mathbb N_m и a=\min_{i=1}^n\{e_{ik} \mid
e_{ik}\neq 0\}. Через E_1 обозначим матрицу, полученную из E удалением k -го столбца и всех строк с ненулевым элементом в k -м столбце. Далее, пусть H =(h_{ij})_{\substack{1\leq i\leq n\\ 1\leq j\leq
m}} - n\!\times\! m -матрица с элементами

\[ h_{ij}=\begin{cases} \max(e_{ik}- a,0),& \text { если }j=k\\ e_{ij},&
\text { если } j\neq k\end{cases}\quad (1\leq i\leq n,\ 1\leq j\leq m).
Тогда
\begin{equation}
  \omega_E(t)=\Delta_a\Delta^{-1}\omega_{E_1}(t)+\omega_H(t-a),
\end{equation} ( 13.9)
где \omega_E(t), \omega_H(t) и \omega_{E_1}(t) - размерностные многочлены матриц E, H и E_1 соответственно.

В частности, если

E=
 \begin{pmatrix} k & 0\dots0\\ \begin{matrix} 0\\ \vdots \\ 0\end{matrix}
&   E_1\end{pmatrix},
где e_{11}=k, а все остальные элементы первого столбца и первой строки равны нулю, то \omega_E(t)=\Delta_k\cdot\Delta^{-1}\omega_{E_1}(t).

ДОКАЗАТЕЛЬСТВО. Применяя формулу (12.2) к матрице E и вектору (0,\dots,0,a,0,\dots,0) ( a - k -я координата этого вектора), получаем

\omega_E(t) = \omega_{E\cup (0,\dots,0,a,0,\dots,0)}(t) + \omega_H(t-a).
Теперь применим (12.2) к матрице E\cup (0,\dots,0,a,0,\dots,0) и вектору (0,\dots,0,1,0,\dots,0) (где 1 стоит на k -м месте). По теореме 12.8(8) получим
\omega_{E\cup (0,\dots,0,a,0,\dots,0)}(t)=
    \omega_{E_1}(t)+ \omega_{E\cup
(0,\dots,0,a-1,0,\dots,0)}(t-1).
Повторяя эту операцию a раз, получим равенство
\omega_{E\cup
(0,\dots,0,a,0,\dots,0)}(t) =\omega_{E_1}
  (t) + \omega_{E_1}(t-1)+\dots+ \omega_{E_1}(t-(a-1)),
откуда следует (13.9) (см. (13.8)).

Теперь можно предложить следующую схему вычисления размерностного многочлена \omega_E(t) матрицы E=(e_{ij})_{\substack{1\leq
i\leq n\\ 1\leq j\leq m}}, основанную на формуле (13.9). Сначала, выбрав вектор (a,0,\dots,0) \in
\mathbb N^m, где a=\min_{1\leq i\leq n} \{ e_{i1}\ \mid e_{i1}\neq
0\}, и применив лемму 13.10, сведем нашу задачу к вычислению размерностного многочлена матрицы E_1 с (m-1) столбцом и размерностного многочлена матрицы H =
(h_{ij})_{\substack{1\leq i\leq n\\ 1\leq j\leq m}}, такой, что 0\leq h_{i1}<
e_{i1} (1\leq i\leq n). Для определения \omega_H(t) применим формулу (13.9) (с матрицей H вместо E ) и продолжим процесс до тех пор, пока не получим представление \omega_E(t) в виде суммы размерностных многочленов матриц с (m-1) столбцом и размерностного многочлена \omega_{H_1}(t), где H_1 - n\!\times\! m -матрица с нулевым первым столбцом. Для вычисления \omega_{H_1}(t) применяем описанную процедуру ко второму столбцу и т. д.

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

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