Buchberger's algorithm: Difference between revisions

Content deleted Content added
m added Dickson's lemma link
mNo edit summary
Line 3:
A crude version of this algorithm proceeds as follows:
 
1. Start with ''F'' = {''f''<sub>1</sub>, ''f''<sub>2</sub>, ..., ''f''<sub>''k''</sub>''}, a set of generators for your ideal. Let ''g<sub>i</sub>'' be the leading term of ''f<sub>i</sub>'' with respect to the given ordering, and denote the [[greatest_common_divisor|greatest common divisor]] of ''g<sub>i</sub>'' and ''g<sub>j</sub>'' by ''a<sub>ij</sub>''.
 
2. Let ''S''<sub>''ij''</sub> = (''g''<sub>''j''</sub> /''a''<sub>''ij''</sub>) ''f''<sub>''i''</sub>- &minus; (''g''<sub>''i''</sub> /''a''<sub>''ij''</sub>) ''f''<sub>''j''</sub>''. Note that the leading terms here will cancel by construction.
 
3. Using the [[Multivariate_division_algorithm|multivariate division algorithm]], reduce all the ''S<sub>ij</sub>'' relative to the set ''F''.
 
4. Add all the nonzero resultants of step 3 to ''F'', and repeat steps 1-4 until nothing new is added.
Line 13:
There are numerous ways to improve this algorithm beyond what has been stated above. For example, one could reduce all the new elements of ''F'' relative to each other before adding them. It also should be noted that if the leading terms of ''f<sub>i</sub>'' and ''f<sub>j</sub>'' share no variables in common, then ''S<sub>ij</sub>'' will ''always'' reduce to 0, so we needn't calculate it at all.
 
We are consistently increasing the size of the monomial ideal generated by the leading terms of our set ''F'', and [[Dickson's lemma]] (or the [[Hilbert_basis_theorem|Hilbert basis theorem]]) guarantees that any such ascending chain must eventually become constant. Therefore this algorithm does indeed stop. Unfortunately, it may take a very long time to terminate, corresponding to the fact that Gröbner bases can be ''extremely'' large.