Основные задачи и алгоритмы

Из доказательства теоремы 2а) видно, что основной алгоритмической проблемой, которую нужно решить при реализации соответствующего алгоритма, является проблема

Иными словами, задача сводится к тому, чтобы распознать принадлежность некоторого многочлена полиномиальному идеалу, заданному своим базисом. Эта задача является клас­сической задачей теории полиномиальных идеалов, и для ее решения лучше всего использовать базисы Гребнера полиномиальных идеалов.

Таким образом, все идеалы, которые строятся в алгоритме теоремы 2а), должны быть представлены своими базисами Гребнера. В дальнейшем мы будем обозначать тот факт, что идеал I представлен базисом Гребнера f1 , …, fk , равенством

I = ( f1 , …, fk )Gr.

Базис Гребнера идеала I мы будем обозначать через Gr(I).

Наш алгоритм теоремы 1а) должен быть основан на решении следующих задач:

1. Для I = ( f1 , …, fk )Gr , J = ( g1 , …, gl )Gr найтиK = (f1 , …, fk ,h1 , . . . , hm)Gr

2. Для I = ( f1 , …, fk )Gr , вычисляющего оператора X := H(X), найти J = (g1 , . . ., gl )Gr,т.е. найти Gr((f1(H(X)) , …, fk(H(X)))).

3. Для I = ( f1 , …, fk )Gr , J = ( g1 , …, gl )Gr распознать I Í J.

Задачи 1 и 3 – классические задачи теории полиномиальных идеалов, решение которых в терминах базисов Гребнера хорошо известно. Для решения задачи 2 можно восполь­зоваться общим алгоритмом пополнения, который строит базис Гребнера по произвольному конечному множеству полиномов или использовать формулы, аналогичные формулам (11), приведенным для рационально определенных программ. Рассмотрим теперь вопросы, связанные с реализацией алгоритма теоремы 1б). Отме­­­тим, что из метода доказательства следует, что искать инварианты можно, задавая их в виде полиномиальных форм, т.е. многочленов «специального» вида с неопределенными коэффициентами. Например, можно определить общий вид искомых инвариантов как линейную комбинацию нескольких многочленов с неопределенными коэффициентами:

g(X) = a1*g1(X)+…+ak*gk(X) (9)

Если, например, требуется искать линейные инварианты, следует положить

g1= x1, . . . , gn = xn, gn+1 = 1. (10)

Можно, к примеру, искать все инварианты вида g(X) = a1*x12 +…+an * xn2 и т.п.

Поскольку вычисляющие операторы оставляют неопределенные коэффициенты неподвижными, алгоритмы теоремы 2а) следует применять покординатно к вектору многочленов (g1(X), … gk(X)).Базисы Гребнера следует строить отдельно для многочленов g1(X), … gk(X),а условие обрыва возрастающих цепочек п. в) алгоритма теоремы 1а) применять ко всему вектору идеалов (I1, . . . , In).Таким образом, построение конечного множества слов из символов yi вычисляющих операторов при анализе программы P = {P1} заканчивается при таком значении m, при котором стабилизируются все координаты вектора идеалов (I1, . . . , In).