Der Buchberger-Algorithmus (nach Bruno Buchberger) ist in der Algebra ein Verfahren zur Berechnung einer Gröbnerbasis eines Ideals in einem Polynomring.
Durch die Möglichkeit, Gröbnerbasen algorithmisch zu bestimmen, sind viele damit lösbare Probleme von Computeralgebrasystemen lösbar, etwa das Idealzugehörigkeitsproblem oder das Lösen bestimmter nicht-linearer Gleichungssysteme (als Beschreibung einer affinen Varietät).
Sei
ein Körper, und
der zugehörige Polynomring in
Symbolen,
ein Ideal,
- eine Monomordnung „
“ auf
gegeben,
- die verallgemeinerte Polynomdivision mit mehreren teilenden Polynomen definiert.
Ferner sei für je zwei Polynome
![{\displaystyle S(f,g)={\frac {\operatorname {kgV} (\operatorname {LT} (f),\operatorname {LT} (g))}{\operatorname {LT} (f)}}f-{\frac {\operatorname {kgV} (\operatorname {LT} (f),\operatorname {LT} (g))}{\operatorname {LT} (g)}}g}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cca32c38b5d37fd900d7b5bc02e23b524013683b)
erklärt, wobei
den Leitterm eines Polynoms
bezeichne, also das bezüglich der Monomordnung
größte Monom zusammen mit seinem Koeffizienten.
Das Buchbergerkriterium sagt dann, dass ein Erzeugendensystem
von
genau dann eine Gröbnerbasis ist, wenn alle
bei (verallgemeinerter Polynom-) Division durch
den Rest
liefern.[1]
Der Buchberger-Algorithmus lässt sich dann wie folgt formulieren.[2]
Die Idee ist, dass nach und nach alle
gebildet werden (für sämtliche Paare von verschiedenen Erzeugern
und
) und die von
verschiedenen Reste zum Erzeugendensystem hinzugefügt werden. Mit dem so erweiterten Erzeugendensystem wird das Verfahren so lange wiederholt, bis schließlich alle
verschwinden; damit ist das Buchberger-Kriterium erfüllt.
INPUT:
OUTPUT: Gröbnerbasis
INIT:
1. DO
2.
3. FOREACH
4.
5. IF
THEN
6. NEXT
7. UNTIL
Da in jedem Durchlauf der inneren Schleife
gilt, ist auch
, man erhält also am Ende wirklich ein Erzeugendensystem von
(und nicht etwa von einem größeren Ideal). Dass dieses Erzeugendensystem eine Gröbnerbasis ist, folgt dann aus dem Buchberger-Kriterium. Beachte:
gilt genau dann, wenn durch eine Gröbnerbasis dividiert wird.
Wenn nach dem
-ten Durchlauf der äußeren Schleife
das Ideal ist, das von den Leitmonomen von
erzeugt wird, so erhalten wir eine Kette
von Idealen. Da eine Kette von Idealen in
nicht endlos (echt) aufsteigen kann (eine einfache Folgerung aus dem Hilbertschen Basissatz) muss diese Kette schließlich konstant bleiben. Das heißt aber, dass ab dann keine neuen Leitmonome mehr zu
hinzugefügt werden; der Algorithmus terminiert somit an dieser Stelle, d. h. nach endlich vielen Schritten.
Die Gröbnerbasis, die der Algorithmus liefert, wird schnell sehr groß und damit unübersichtlich; außerdem ist auch das Auswerten der Polynomdivisionen recht aufwändig. Daher soll der Algorithmus hier nur für ein sehr kleines und einfaches Beispiel vorgeführt werden: Gegeben seien
und
im
.
Durchlauf der Äußeren Schleife |
![{\displaystyle G}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f5f3c8921a3b352de45446a6789b104458c9f90b) |
![{\displaystyle p}](https://wikimedia.org/api/rest_v1/media/math/render/svg/81eac1e205430d1f40810df36a0edffdc367af36) |
![{\displaystyle q}](https://wikimedia.org/api/rest_v1/media/math/render/svg/06809d64fa7c817ffc7e323f85997f783dbdf71d) |
![{\displaystyle s=S(p,q)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4cabfe521b69fe9c65f2c5fa095b08c901585f49) |
|
Erster: ein Paar zu prüfen |
![{\displaystyle (X,X^{2}+1)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e11de609119cfe8f1e8969e82cb98a937b3bb45f) |
![{\displaystyle X}](https://wikimedia.org/api/rest_v1/media/math/render/svg/68baa052181f707c662844a465bfeeb135e82bab) |
![{\displaystyle X^{2}+1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/759c679330a1c67db74a3da9ee5cca488de3a589) |
![{\displaystyle {\frac {X^{2}}{X}}X-{\frac {X^{2}}{X^{2}}}(X^{2}+1)=-1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4bd5fd6495d0fb81cfbca65ffff5174b35507456) |
|
Zweiter: drei Paare zu prüfen |
![{\displaystyle (X,X^{2}+1,-1)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f1f72c6e38a771464bfb0a648f52c1509f5bedd0) |
![{\displaystyle X}](https://wikimedia.org/api/rest_v1/media/math/render/svg/68baa052181f707c662844a465bfeeb135e82bab) |
![{\displaystyle X^{2}+1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/759c679330a1c67db74a3da9ee5cca488de3a589) |
![{\displaystyle {\frac {X^{2}}{X}}X-{\frac {X^{2}}{X^{2}}}(X^{2}+1)=-1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4bd5fd6495d0fb81cfbca65ffff5174b35507456) |
|
|
|
![{\displaystyle X}](https://wikimedia.org/api/rest_v1/media/math/render/svg/68baa052181f707c662844a465bfeeb135e82bab) |
![{\displaystyle -1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/704fb0427140d054dd267925495e78164fee9aac) |
![{\displaystyle {\frac {X}{X}}X-{\frac {X}{-1}}(-1)=0}](https://wikimedia.org/api/rest_v1/media/math/render/svg/96cee7099b80c1b3459b518d5bbf1e19a0c09cd5) |
|
|
|
![{\displaystyle X^{2}+1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/759c679330a1c67db74a3da9ee5cca488de3a589) |
![{\displaystyle -1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/704fb0427140d054dd267925495e78164fee9aac) |
![{\displaystyle {\frac {X^{2}}{X^{2}}}(X^{2}+1)-{\frac {X^{2}}{-1}}(-1)=1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/59f056f7a00a160bdb6d897791dbdbd215632d1b) |
|
Somit ist das Buchberger-Kriterium schon erfüllt, nachdem
als Erzeuger hinzugenommen wurde und der Algorithmus bricht ab, da im zweiten Durchlauf der Schleife kein neuer Erzeuger zu
hinzugefügt wurde.
- ↑ Cox, Little, O’Shea: Ideals, Varieties, and Algorithms. 2007, 2.6. Theorem 6.
- ↑ Cox, Little, O’Shea: Ideals, Varieties, and Algorithms. 2007, 2.7. Theorem 2.