Re: Re: Minimum input for GroebnerBasis
- To: mathgroup at smc.vnet.net
- Subject: [mg90422] Re: [mg90407] Re: [mg90388] Minimum input for GroebnerBasis
- From: Tuesday Shopping <tuesdayshopping at yahoo.com>
- Date: Wed, 9 Jul 2008 04:52:01 -0400 (EDT)
Thanks for the input Andrzej. I should have been more precise in posing my question.
In the example in my post I did not claim that Q is the GroebnerBasis for P. I claimed that (a) Q is a subset of P and (b) that P and Q produce the same GroebnerBasis {1 + 2 y, 1 + 2 x}. which is clearly not a subset of P.
In other words, P and Q generate the same Ideal; and that Ideal has a GroebnerBasis G which is equal to {1 + 2 y, 1 + 2 x}
When I say "the GroebnerBasis" (not "a GroebnerBasis") I am implying a reduced GroebnerBasis for Lexicographic ordering, which are default in Mathematica 6. Since, for a given Ideal, for a given monomial ordering, the reduced GroebnerBasis is unique, I used the term "the GroebnerBasis", instead of "a GroebnerBasis".
To pose my question in terms of Ideals, what I am aiming to do is, find the minimum set of polynomials (subset of P) that generate the same Ideal.
To put in your own words, in your post, you mentioned: "What is true is that the set {x + y + 1, x - y} and the set {x + y + 1, 2 x + 2 y + 2, x - y} generate the same ideal". You did notice that the first set in this statement has fewer elements than the second. Then, my quest is to make the first set have the smallest number of elements.
To pose the question in terms of generators, the question becomes "given a generator P, that generates Ideal I, how do I get a generator Q such that (a) Q is a subset of P (b) Q generates the I (c) there is no other generator R (R is a subset of P), that has fewer elements than Q.
Once again thanks for your input and I will appreciate if you could comment on some possibilities in solving my problem. Currently I have an algorithm that is rather inefficient:
Answer= {} // empty set
G1= GroebnerBasis(P).
Q = P
loop:
Q = Q after removing element F that has not been tried so far.
G = GroebnerBasis(Q)
if(G1 is not equal to G) {add F to Answer; add F back to Q}
goto loop if there are more elements in Q that have not been tried.
Even this alorithm gives a set that eliminates redundant input, but it is not the true minimum. It depends on in what order we select an element for removal.
> For example, P can be {x + y + 1, 2 x + 2 y + 2, x - y}
>
> GroebnerBasis[{x + y + 1, 2 x + 2 y + 2, x - y}, {x,y}] is {1 + 2 y,
> 1 + 2 x}
>
> Q is {x + y + 1, x - y}
>
--- On Tue, 7/8/08, Andrzej Kozlowski <akoz at mimuw.edu.pl> wrote:
From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
Subject: [mg90422] [mg90407] Re: [mg90388] Minimum input for GroebnerBasis
To: mathgroup at smc.vnet.net
Date: Tuesday, July 8, 2008, 11:48 AM
Your question seems to be based on a misunderstanding of what a
Groebner basis is. A GrobenerBasis is a basis (i.e. a se t of
generators) for the ideal generated by a set of polynomials and in
general is not, a subset of the set of polynomials that you started
from. (If you do not know what an ideal is it will be hard to
understand the rest of this so I suggest you look up any textbook of
modern abstract algebra or even simply polynomial algebra.) Only in
rare cases a subset of the original set of generators is a Groebner
basis. (Of course there is a trivial way to produce such cases, which
I describe at the end).
Next, turning to your example: the claim that Q is a Groebner basis
for the ideal generated by P is false (at least for the default
Lexicographic Order). A Groebner basis for an ideal is defined a set
of generators of the ideal with the property that, for any element of
the ideal, it's leading term (with respect to the given monomial
order!) is divisible by the leading term of some element of the basis.
So consider the ideal generated by
{x + y + 1, 2 x + 2 y + 2, x - y}
Now, the element (x + y + 1)-(x-y) = 2y+1 is in the ideal. It's
leading term is 2y. Now consider the set Q = {x + y + 1, x - y}. With
the lexicographic ordering (x comes before y) the leading terms of
both elements of Q are x. But 2y is not divisible by x. So Q is not a
GrobenerBasis for this ordering. (It also does not satisfy the so
called "Buchberger criterion"). On the other hand, {1 + 2 y, 1 + 2 x}
is a Grobner basis and 2y is divisible by the leading term of 1+2y,
which is 2y.
What is true is that the set {x + y + 1, x - y} and the set {x + y +
1, 2 x + 2 y + 2, x - y} generate the same ideal (or if you prefer not
to mention ideals you can say that they have the corresponding systems
of equations ahve the same set of solutions). In other words, the set
{x + y + 1, x - y} is a basis for the ideal generated by {x + y + 1, 2
x + 2 y + 2, x - y}. A basis, yes, but a Groebner basis, no. This is
the main point
Next, a few more remarks of a more general nature, which may be
related to your question. A Groebner basis is defined only for a given
monomial order. There is no such thing as "the Groebner basis" there
is only a Groebner basis for some specific order. If you look at the
options MonomialOrder in Mathematica's GroebnerBasis function you will
see its default value.
In[3]:= Options[GroebnerBasis, MonomialOrder]
Out[3]= {MonomialOrder -> Lexicographic}
the Lexicographic order is the default. It is not necessarily the best
order for all purposes (but it is the most suited for using
elimination).
You can check that in many cases the number of elements in a Groebner
basis for an ideal with respect to one order will be different form
the number of elements in a Groebner basis for the same ideal with
respect to a different monomial order. For example:
Length[GroebnerBasis[{x y + z - x z, x^2 - z, 2 x^3 - x^2 y z - 1},
{x, y, z},
MonomialOrder -> Lexicographic]]
3
Length[GroebnerBasis[{x y + z - x z, x^2 - z, 2 x^3 - x^2 y z - 1},
{x, y, z},
MonomialOrder -> DegreeLexicographic]]
4
In general, for a given monomial order a Groebner basis can have any
finite number of elements, since once you have a Groebner basis for an
ideal, you can just adjoin to it any element of the ideal and it will
still be a Groebner basis. But, if you require that a Groebner basis
be a reduced one, that is, have the property that for any two
polynomials in the basis no monomial appearing in one of them is a
multiple of the leading term of the other than such a basis will be
minimal - that is, if you remove any polynomial from it it will no
longer be a Groebner basis (with respect to the given monomial order
of course). In fact, such a reduced Groebner basis is unique if you
add the requirement that the leading coefficient of each element in
the Groebner basis is 1. Most computer algebra systems (including
Mathematica) return a reduced Groebner basis, but not necessarily a
monic one. So the Groebner basis returned by Mathematica is already a
minimal one, in other words it has the property that if you remove
anything from it it will no longer be a Groebner basis.
Andrzej Kozlowski
On 8 Jul 2008, at 15:25, TuesdayShopping wrote:
> Given a finite set of polynomials P in variables belonging to V, we
> compute the GroebnerBasis G. What is the set of polynomials Q (Q is
> a subset of P), such that (a) Q produces the same GroebnerBasis G;
> and, (b) if any element from the set Q is removed, Q will no longer
> produce G. In other words, Q is the minimum set of polynomials (from
> P) required, in order to produce the Groebner Basis G. If there are
> several Q's possible, we will want the one with the smallest number
> of polynomials in in it. If there are several with the same number,
> will want the first one we encounter. Question is how do we find Q
> in Mathematica?
>
> For example, P can be {x + y + 1, 2 x + 2 y + 2, x - y}
>
> GroebnerBasis[{x + y + 1, 2 x + 2 y + 2, x - y}, {x,y}] is {1 + 2 y,
> 1 + 2 x}
>
> Q is {x + y + 1, x - y}
>