Пожалуйста, проясните ситуацию. Был выбран курс " Компьютерная алгебра" для самостоятельного изучения. Как теперь записаться на этот курс с целью получения диплома о повышении квалификации? На данный момент он имеет статус " изучаю". Если я пройду экзаменационный тест в таком статусе без оформления документов и оплаты диплома, придется ли еще раз регистрироваться на этот курс и заново проходить тестирование? |
Алгоритмы вычисления размерностных многочленов
В предыдущем параграфе (см.12.7) мы отмечали, что
размерностный многочлен любого множества равен
размерностному
многочлену, ассоциированному с множеством всех минимальных элементов множества
. Значит, достаточно уметь вычислять размерностные многочлены
только
для конечных множеств
(более того, можно
предполагать, что
элементы множества
попарно несравнимы относительно порядка
произведения).
Пусть
обозначает
-матрицу над
, т. е. матрицу с
строками и
столбцами, элементы которой -
неотрицательные целые числа. Рассматривая строки матрицы
как
элементы множества
и обозначая
-ю строку
через
, мы получим подмножество
,
ассоциированное с
. Напомним, что размерностный многочлен
-матрицы
в точности совпадает с
размерностным многочленом множества
и называется многочленом Гильберта матрицы
.
Пусть - размерностный многочлен
-матрицы
над
.
По определению
для всех достаточно
больших
, где
обозначает множество всех элементов
из
,
которые не превосходят ни одного элемента из
относительно порядка произведения,
так что
если и только если неравенство
не выполняется ни для одного
.
Как было отмечено, для того, чтобы уметь вычислять размерностный многочлен
любого
подмножества в , достаточно уметь вычислять его для
любой
-матрицы
над
.
Один из методов вычисления основан на формуле (12,4).
Пусть
обозначает
-матрицу над
.
Воспользуемся следующими обозначениями, введенными в параграфе 12:
![\textbf{e}_\xi=\begin{cases} (0,\dots,0) &\text{если }
\xi=\emptyset,\\
(e_1=\max_{i\in\xi}\{ e_{i1}\} ,\dots,e_m=
\max_{i\in\xi}\{ e_{im}\} ) &\text{если } \xi\neq \emptyset
\end{cases}](/sites/default/files/tex_cache/70dce4859f2e914272bc6f9ae555a468.png)
![\xi\subseteq\mathbb N_n](/sites/default/files/tex_cache/44718c37a7cd37b54f50346bd5bb7d65.png)
![|\textbf{e}_\xi|=\smash{\sum\limits_{j=1}^m}e_j](/sites/default/files/tex_cache/734c3567b9d6540fa0b80636a72b5555.png)
![\omega_E(t) = \binom {t+m}m +\sum_{l=1}^n(-1)^l
\sum_{\xi\in A(l,n)}\binom{t+m-|\textbf{e}_\xi|}m,](/sites/default/files/tex_cache/41535c4d046352b73db2fb53128b63b6.png)
![A(l,n)](/sites/default/files/tex_cache/4aa98fbd8f37ca717f961f97f865a8fe.png)
![(1\leq l\leq n)](/sites/default/files/tex_cache/db33e86abdf6404f30e942e625698322.png)
![l](/sites/default/files/tex_cache/2db95e8e1a9267b7a1188556b2013b33.png)
![\mathbb N_n=\{1,\dots,n\}](/sites/default/files/tex_cache/1e0c244fcef79c339a78e07cfdf96ef2.png)
Пользуясь выписанной формулой, можно
предложить следующий алгоритм вычисления
размерностного многочлена , ассоциированного с
-матрицей
.
![\begin{tabing}
&\text{Дано: $n \in \mathbb N ; m \in \mathbb N ; n \times m$-матрица E}.\\
&\text{Надо: $\omega_E(t)$ — многочлен Гильберта матрицы $E$.}\\
&\text{Переменные: $IB$ — вектор типа $true/false$ с индексами $1..n$;}\\
&\text{\qquad \qquad $\textbf{v} = (v1, . . . , vm)$ — вектор типа $N$ с индексами $1..m$;}\\
&\text{\qquad \qquad $S_1$ — переменная типа $\pm 1$;}\\
&\text{\qquad \qquad $S_2$ — переменная типа $ \mathbb N $.}\\
&\text{Начало}\\
\text{$\omega(t) := \binom {t+m}m$}\\
\text{цикл для $m$ каждого вектора $IB$}\\
\text{\qquad $v := (0, . . . , 0)$}\\
\text{\qquad $S_1 := 1$}\\
\text{\qquad цикл для $j$ от $1$ до $n$}\\
\text{\qquad \qquad если $IB(j)$ то}\\
\text{\qquad \qquad \qquad $\textbf{v} := НОК(\textbf{v}, \textbf{e}_j)$}\\
\text{\qquad \qquad \qquad $S_1 := -S_1$}\\
\text{\qquad \qquad конец если}\\
\text{\qquad \qquad $S_2 := \textbf{v}_1 + \dots + \textbf{v}_m$}\\
\text{\qquad \qquad $\omega(t) := \omega(t) + S_1\binom {t+m-S_2}m$}\\
\text{\qquad конец цикла} \\
\text{конец цикла}\\
\text{Конец}\\
\end{tabing}](/sites/default/files/tex_cache/0643bb1658f06cb2eeb1530b1587ccc1.png)
Легко видеть, что асимптотическая сложность алгоритма A9
имеет порядок , где
- число
строк матрицы
(по теореме 12.8 мы
можем считать, что строки попарно несравнимы относительно порядка произведения
на
).
Мора и Меллер модифицировали алгоритм вычисления многочлена
Гильберта
[
27
]
. Их алгоритм
основан на следующих соображениях. Легко видеть, что в формуле (12.5)
может выполняться равенство для двух различных подмножеств
и
множества
, таких, что
и
являются четным и нечетным числами соответственно
(мы пользуемся обозначениями предложения 12.9). Тогда соответствующие
слагаемые в формуле (12.5) сократятся. Более того, можно сгруппировать
все слагаемые,
соответствующие одному и тому же элементу
.
Пусть - множество всех элементов
, которые равны, по крайней мере, одному из элементов
, где
.
Тогда из формулы (12.4) следует, что
![]() |
( 13.1) |
![|\tau|](/sites/default/files/tex_cache/fb25c60901c4cb9784c34d6ee881c551.png)
![\tau](/sites/default/files/tex_cache/a6f317b268ae825d94f832f970af607c.png)
![]() |
( 13.2) |
Очевидно, если матрица получена присоединением строки
к матрице
,
и
- множество коэффициентов (13.2) в соотношении
(13.1) для многочлена
, так что
![\mu'_\tau= \sum_{k=0}^{n+1}\sum_{\substack{
\xi\in A(k,n+1)\\\textbf{e}_\xi=\tau} }(-1)^k](/sites/default/files/tex_cache/7627c754aeeb7181f0f1a042669512a9.png)
![\tau \in T_1](/sites/default/files/tex_cache/1c10872b7f55f6cb901661f9ba415000.png)
![]() |
( 13.3) |
Таким образом, вычисление многочлена , т. е.
вычисление коэффициентов
, в (13.1) может быть основано на
формуле (13.3),
если мы начнем с пустой матрицы (число строк которой равно нулю и многочлен
Гильберта которой равен
) и последовательно будем присоединять строки матрицы
, вычисляя множество
и коэффициенты
на каждом шаге
(см. алгоритм A10 ).
![\begin{tabing}
&\text{Дано: $n \in \mathbb N ; n \times m$-матрица E}.\\
&\text{Надо: $\omega_E(t)$ — многочлен Гильберта матрицы $E$.}\\
&\text{Переменные: $T,\; T_1$ —множества типа}\\
&\text{\qquad \qquad \qquad \qquad $\{$вектор типа $ \mathbb N $ с индексами $1..m\}$};\\
&\text{\qquad \qquad \qquad $\mu, \mu_1$ —векторы типа $ \mathbb Z $ с индексами из $T, T_1$.}\\
&\text{Начало}\\
\text{$\omega:= 0$}\\
\text{$T:=\{(0, \dots , 0)\}$}\\
\text{$\mu (0, \dots , 0):=1$}\\
\text{цикл для $i$ от $1$ до $n$}\\
\text{\qquad $T_1:=T$}\\
\text{\qquad цикл для каждого $u \in T_1$}\\
\text{\qquad \qquad $\mu_1(\textbf{u}):=\mu(\textbf{u})$}\\
\text{\qquad конец цикла}\\
\text{\qquad цикл для каждого $u \in T_1$}\\
\text{\qquad \qquad $\tau := НОК(\textbf{u}, ei), e_i —i$-я строка матрицы $E$}\\
\text{\qquad \qquad если $\tau \in T$ то}\\
\text{\qquad \qquad \qquad $\mu(\tau ) := \mu(\tau ) - \mu_1(\textbf{u})$}\\
\text{\qquad \qquad иначе $T := T \cup \tau ; \mu(\tau ) := -\mu_1(\textbf{u})$}\\
\text{\qquad \qquad конец если}\\
\text{\qquad конец цикла}\\
\text{конец цикла}\\
\text{цикл для каждого $\textbf{u} \in T$}\\
\text{\qquad $\omega (t):= \omega (t) + \mu(\textbf{u})\binom {t+m-|\textbf{u}|}m$}\\
\text{конец цикла}\\
\text{Конец}\\
\end{tabing}](/sites/default/files/tex_cache/4da287113426d15578617a67f2bcddb8.png)
Поскольку на -м шаге
алгоритма
каждый элемент
является наименьшим общим кратным некоторого подмножества
множества
(т. е.
для некоторого
), существует не более
различных
возможностей для
выбора каждой координаты вектора
, следовательно, на
-м шаге
множество
содержит не более
элементов. Вычисление
всех элементов
требует не более
сравнений, и можно предполагать
(используя достаточно эффективный метод сортировки), что число проверок на
принадлежность
не превосходит
для всех
достаточно больших
. Таким образом, асимптотическая
сложность (по
) алгоритма A10 не превосходит
. Поскольку
, асимптотическая сложность имеет порядок
.
Следующие алгоритмы вычисления размерностного многочлена произвольной -матрицы
сводят эту задачу к
аналогичной задаче для матрицы
с числом строк меньшим, чем в
. По одному из этих алгоритмов
(см. ниже алгоритм A11 ) можно
вычислить коэффициенты
в (13.1) размерностного многочлена
, что дает выражение для размерностного многочлена.
Для обоснования этого алгоритма нам нужны некоторые свойства коэффициентов
, которые сформулированы ниже в леммах
13.1-13.5, 13.7 и 13,9. Последняя из этих лемм
устанавливает соотношения, на которых основан алгоритм вычисления
.
Чтобы подчеркнуть зависимость коэффициентов от
матрицы
, будем обозначать
эти коэффициенты
и продолжим это обозначение на
случай произвольного
вектора
, полагая
![\mu_\tau(E) =\begin{cases} \mu_\tau, & \text {если } \tau\in T\\ 0,
& \text {если }
\tau\in\mathbb N^m\setminus T.\end{cases}](/sites/default/files/tex_cache/f064277fe794e327102304793d16f349.png)
![T=T(E)](/sites/default/files/tex_cache/395dbe34d35fda0cc677333326c411a1.png)
![\tau\in\mathbb N^m](/sites/default/files/tex_cache/7c426da69b91c832ad598289296f017d.png)
![\tau](/sites/default/files/tex_cache/a6f317b268ae825d94f832f970af607c.png)
![(0,\dots,0)](/sites/default/files/tex_cache/ea61ad67123538e6cd64724c596798ce.png)
![E](/sites/default/files/tex_cache/3a3ea00cfc35332cedf6e5e9a32e94da.png)
![T](/sites/default/files/tex_cache/b9ece18c950afbfa6b0fdbfa4ff731d3.png)
![E](/sites/default/files/tex_cache/3a3ea00cfc35332cedf6e5e9a32e94da.png)