Опубликован: 04.03.2008 | Уровень: профессионал | Доступ: свободно
Лекция 6:

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

Аннотация: В данной лекции рассматриваются алгоритмы вычисления размерностных многочленов. Приведены практические примеры и алгоритмы, а также предоставлены задачи для самостоятельного рассмотрения

В предыдущем параграфе (см.12.7) мы отмечали, что размерностный многочлен любого множества F\subseteq \N^m равен размерностному многочлену, ассоциированному с множеством всех минимальных элементов множества F. Значит, достаточно уметь вычислять размерностные многочлены только для конечных множеств F\subseteq\N^m (более того, можно предполагать, что элементы множества F попарно несравнимы относительно порядка произведения).

Пусть E=(e_{ij})_{\substack{1\leq i\leq n\\ 1\leq j \leq m}} обозначает n\!\times\!
m -матрицу над \mathbb N, т. е. матрицу с n строками и m столбцами, элементы которой - неотрицательные целые числа. Рассматривая строки матрицы E как элементы множества \mathbb N^m и обозначая i -ю строку (e_{i1},\dots,e_{im}) через \be_i (1\leq
i\leq n), мы получим подмножество \tilde
E=\{\be_1,\dots,\be_n\} \subseteq\mathbb N^m, ассоциированное с E. Напомним, что размерностный многочлен n\!\times\! m -матрицы E в точности совпадает с размерностным многочленом множества \tilde E и называется многочленом Гильберта матрицы E.

Пусть \omega_E(t) - размерностный многочлен n\!\times\!m -матрицы E над \mathbb N. По определению \omega_E(s)=\Card V_E(s) для всех достаточно больших s\in\mathbb N, где V_E обозначает множество всех элементов из \mathbb N^m\setminus \tilde E, которые не превосходят ни одного элемента из \tilde E относительно порядка произведения, так что v\in V_E если и только если неравенство \be_i\leq
v не выполняется ни для одного \be_i (1\leq i\leq
n).

Как было отмечено, для того, чтобы уметь вычислять размерностный многочлен любого подмножества в \mathbb N^m, достаточно уметь вычислять его для любой n\!\times\! m -матрицы E над \mathbb N. Один из методов вычисления основан на формуле (12,4).

Пусть E=(e_{ij})_{\substack{1\leq i\leq n\\ 1\leq j \leq m}} обозначает n\!\times\!m -матрицу над \mathbb N. Воспользуемся следующими обозначениями, введенными в параграфе 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}
для любого подмножества \xi\subseteq\mathbb N_n и |\textbf{e}_\xi|=\smash{\sum\limits_{j=1}^m}e_j. По предложению 12.9 (см. 12.4) мы можем записать
\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,
где A(l,n) (1\leq l\leq n) обозначает множество всех l -элементных подмножеств множества \mathbb N_n=\{1,\dots,n\}.

Пользуясь выписанной формулой, можно предложить следующий алгоритм вычисления размерностного многочлена \omega_E(t), ассоциированного с n\!\times\! m -матрицей E.

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

\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}

Легко видеть, что асимптотическая сложность алгоритма A9 имеет порядок n\!\times\! 2^n, где n - число строк матрицы E (по теореме 12.8 мы можем считать, что строки попарно несравнимы относительно порядка произведения на \mathbb N^m ).

Мора и Меллер модифицировали алгоритм вычисления многочлена Гильберта [ 27 ] . Их алгоритм основан на следующих соображениях. Легко видеть, что в формуле (12.5) может выполняться равенство \textbf{e}_\xi=\textbf{e}_\theta для двух различных подмножеств \xi и \theta множества \mathbb N_n, таких, что \Card\xi и \Card\theta являются четным и нечетным числами соответственно (мы пользуемся обозначениями предложения 12.9). Тогда соответствующие слагаемые в формуле (12.5) сократятся. Более того, можно сгруппировать все слагаемые, соответствующие одному и тому же элементу \tau \in\mathbb N^m.

Пусть T=T(E) - множество всех элементов \tau\in\mathbb N^m, которые равны, по крайней мере, одному из элементов \textbf{e}_\xi, где \xi\subseteq\mathbb N_n. Тогда из формулы (12.4) следует, что

\begin{multiline}
  \omega_E(t) =\sum_{\tau\in T}\sum_{k=0}^n(-1)^k\sum_{\{\xi\in A(k,n)\mid
  \textbf{e}_\xi=\tau\} } \binom {t+m-|\tau|}m\\
     =\sum_{\tau\in  T}  \mu_\tau
  \binom {t+m-|\tau|}m,\
\end{multiline} ( 13.1)
где |\tau| обозначает сумму всех координат вектора \tau, и
\begin{equation}
  \mu_\tau=\sum\limits_{k=0}^n\sum\limits_{\substack{ \xi\in A(k,n)\\\textbf{e}_\xi=\tau}
  }(-1)^k.
\end{equation} ( 13.2)

Очевидно, если матрица E_1 получена присоединением строки \textbf{e} =
(e_1,\dots,e_m) к матрице E, T_1= T(E_1) и \{\mu'_\tau|\tau \in
T_1\} - множество коэффициентов (13.2) в соотношении (13.1) для многочлена \omega_{E_1}(t), так что

\mu'_\tau= \sum_{k=0}^{n+1}\sum_{\substack{
  \xi\in A(k,n+1)\\\textbf{e}_\xi=\tau} }(-1)^k
для каждого \tau \in T_1, то
\begin{equation}
\vad
  \mu'_\tau=\begin{cases} \mu_\tau-\sum_{\{ \bu\in T\mid \lcm (\bu,\textbf{e})=\tau\}
}\mu_{\bu}&
                     \text{ если } \tau\in T\\
              -\sum_{\{ \bu\in T\mid \lcm (\bu,\textbf{e})=\tau\} }\mu_{\bu}&
                      \text { если } \tau\in T_1\setminus T
\end{cases}
\end{equation} ( 13.3)

Таким образом, вычисление многочлена \omega_E(t), т. е. вычисление коэффициентов \mu_\tau\ (\tau \in T), в (13.1) может быть основано на формуле (13.3), если мы начнем с пустой матрицы (число строк которой равно нулю и многочлен Гильберта которой равен \binom {t+m}m ) и последовательно будем присоединять строки матрицы E, вычисляя множество T и коэффициенты \mu_\tau (\tau \in T) на каждом шаге (см. алгоритм 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}

Поскольку на k -м шаге (1\leq k\leq n) алгоритма каждый элемент \textbf{u}
\in T_1 является наименьшим общим кратным некоторого подмножества множества \{\textbf{e}_1,\dots,\textbf{e}_{k-1}\} (т. е. \textbf{u}=\textbf{e}_\xi для некоторого \xi\subseteq
\mathbb N_{k-1} ), существует не более (k-1) различных возможностей для выбора каждой координаты вектора \textbf{u}, следовательно, на k -м шаге (1\leq k\leq n) множество T_1 содержит не более (k-1)^m элементов. Вычисление всех элементов \tau=\lcm(\textbf{u},\textbf{e}_k) требует не более m(k-1)^m сравнений, и можно предполагать (используя достаточно эффективный метод сортировки), что число проверок на принадлежность \tau\in T не превосходит k^m\log k для всех достаточно больших k \in \mathbb N. Таким образом, асимптотическая сложность (по n ) алгоритма A10 не превосходит m\sum\limits_{k=2}^n\left[(k-1)^m+k^m\log k\right]. Поскольку m
\sum\limits_{k=2}^n\left[ (k - 1)^m+ k^m\log k\right] < 2m
\sum\limits_{k=2}^n k^m \log k, асимптотическая сложность имеет порядок n^{m+1}\log n.

Следующие алгоритмы вычисления размерностного многочлена произвольной n\!\times\! m -матрицы E сводят эту задачу к аналогичной задаче для матрицы с числом строк меньшим, чем в E. По одному из этих алгоритмов (см. ниже алгоритм A11 ) можно вычислить коэффициенты \mu_\tau в (13.1) размерностного многочлена \omega_E(t), что дает выражение для размерностного многочлена. Для обоснования этого алгоритма нам нужны некоторые свойства коэффициентов \mu_\tau, которые сформулированы ниже в леммах 13.1-13.5, 13.7 и 13,9. Последняя из этих лемм устанавливает соотношения, на которых основан алгоритм вычисления \mu_\tau.

Чтобы подчеркнуть зависимость коэффициентов \mu_\tau от матрицы E, будем обозначать эти коэффициенты \mu_\tau (E) и продолжим это обозначение на случай произвольного вектора \tau \in \mathbb N^m, полагая

\mu_\tau(E) =\begin{cases} \mu_\tau, & \text {если } \tau\in T\\ 0,
& \text {если }
  \tau\in\mathbb N^m\setminus T.\end{cases}
(Напомним, что T=T(E) - множество всех элементов \tau\in\mathbb N^m, таких, что каждый \tau равен либо (0,\dots,0), либо наименьшему общему кратному некоторых строк матрицы E ; элементы множества T будем называть допустимыми элементами или допустимыми векторами матрицы E.)

Марина Подлевских
Марина Подлевских
Здравствуйте. Как оформить документы для получения диплома по курсу повышения квалификации?
Владислав Кияновский
Владислав Кияновский
Израиль, Ашдод
Олег Корсак
Олег Корсак
Латвия, Рига