Here we will discuss the basic
algorithm for computing Groebner bases given by
Buchberger in his Ph.D. dissertation. A refined algorithm
will be discussed in Improving
Buchberger's algorithm. Buchberger's Algorithm
for Groebner Bases.
Input: A polynomial set F = {f1,f2,...,fs}
that generates an ideal I
Output: A Groebner
basis G
= {g1,g2,...,gt}
that generates I
G := F
M := {{fi, fj}:
fi, fj
are in G and fi<>fj}
WHILE (M<>Ø)
DO
{p, q} := a
pair in M
M := M - {{p, q}}
S := S-Polynomial(p, q)
h := NormalForm(S, G)
IF (h <> 0) THEN
M :=
M U {{g, h} for all g in G}
G := G U {h}
Example.
Consider I =
<F> where F = {f1
= x2 + 2xy2,
f2 = xy +
2y3 - 1}
with lex order and x>y
in R[x,y].
Then we set G = F and
M = {{f1,
f2}}.
S(f1,
f2) = x and
NormalForm(x, G) = x.
So we must add f3
= x to our
generating set G and update M; we get
G = {f1,
f2, f3}
and M = {{f1,
f3},{f2,
f3}}.
We pick a pair in M, say {f2,
f3},
and compute S(f2,
f3) = 2y3
- 1, which is
already completely
reduced modulo G. We add f4
= 2y3 + 1 to G. We set
G = {f1, f2,
f3,
f4} and
M = {{f1,
f3},{f1,
f4},{f2,
f4},{f3,
f4}}.
If we compute the S-polynomials of the pairs in
M, we will see that all reduce to 0
modulo G = {f1,
f2, f3,
f4}. In fact, we have:
S(f1,
f3) = 2xy2
= 2y2 f3
so NormalForm(S(f1,
f3), G) = 0;
S(f1,
f4) =
1/
2x2
+ 2xy5 =
1/
2 f1
+ xy2 f4 so
NormalForm(S(f1,
f4), G) = 0;
S(f2,
f4) =
1/
2x +
2y5 - y2
= 1/
2 f3
+ y2 f4 so
NormalForm(S(f2,
f4), G) = 0;
S(f3,
f4) =
1/
2x =
1/
2 f3 so
NormalForm(S(f3,
f4), G) = 0.
It follows that a Groebner basis for I
is given by:
G = {f1,
f2, f3,
f4} = {x2
+ 2xy2, xy +
2y3 - 1,
x, 2y3 - 1}.
Groebner bases computed with the algorithm above are
often bigger than necessary.
If in a Grobner basis G the leading term of a generator p
is divisible by the leading term of another generator, we
can eliminate p and G is still a Groebner
basis by definition.
Example.
In the Groebner basis computed in the previous
example we can eliminate f1
and f2 since their
leading terms are both multiples of the leading term
of f3. This leads to
the basis
G = {f3,
f4} = {x,
2y3 - 1}.
Furthermore, if we adjust constants to make all
leading coefficients 1, we get to what it is called a minimal
Groebner basis.
Example.
A minimal Groebner basis of the ideal
I = <x2
+ 2xy2, xy + 2y3
- 1> of the previous example is
G = {x, y3
- 1/
2}.
Note that any Grobner basis of the form
G = {x + a(y3 - 1/
2),
y3 -
1/
2}
where a is any constant in R
is a minimal Groebner basis for I (with lex order and
x>y).
As we have just seen, a given ideal may have many
minimal Groebner bases for a fixed monomial ordering. Fortunately, we can single out
one minimal basis which is better than the others by
requiring that each generator is completely reduced
modulo the others. Here is the definition:
|
Example.
The reduced Groebner basis of the ideal
I = <x2
+ 2xy2, xy + 2y3
- 1> with lex order and
x>y is
G = {x,
y3 -
1/
2}.
As a consequence of this uniqueness we get an ideal
equality algorithm to test whether two polynomial sets
{f1, f2,..., fs}
and {g1, g2,..., gt}
generate the same ideal: simply fix a monomial order and
compute the reduced Groebner bases for
<f1, f2,..., fs>
and <g1, g2,..., gt>.
Then the ideals are equal if and only if the Groebner
bases are the same.
|