CO TO SĄ BAZY GRÖBNERA? Wykład habilitacyjny, Toruń UMK, 5 czerwca 1995 roku Andrzej Nowicki W. Gröbner, 1899-1980, Austria. B. Buchberger, Austria. H. Hironaka, Japonia (medal Fieldsa). Bazy, o których będzie mowa pojawiły się w 1965 roku w pracy doktorskiej Buchbergera. Gröbner był inicjatorem (i doradcą) tej pracy doktorskiej. Te same bazy pojawiły się (niezależnie, ale rok wcześniej) w 1964 roku w pracy Hironaki o usuwaniu osobliwości. Hironaka nazywa je bazami standardowymi. Tak się je czasem jeszcze dzisiaj nazywa. Hironaka podał niekonstruktywny dowód istnienia. Buchberger natomiast podał prosty algorytm konstruowania tych baz. Publikacja Buchbergera, z wynikami jego pracy doktorskiej, pojawiła się w 1976 roku. Od tego roku można zaobserwować szybki rozwój teorii baz Gröbnera. Udoskonalono algorytmy. Powstały i nadal powstają coraz to lepsze programy komputerowe. Odkrywane są przeróżne zastosowania. Wspomnijmy jeszcze, że główna myśl (na której opiera się teoria baz Gröbnera) znana była już wcześniej. Można ją odczytać w pracach matematyków takich jak: D. Hilbert (1890), F. S. Macaulay (1916), G. Hermann (1926). k - ciało (np. R, C, Q). k[x] = k[x 1,..., x n ] - pierścień wielomianów n zmiennych nad k. Przypomnijmy znane Twierdzenie Hilberta o bazie. Każdy ideał w k[x] jest skończenie generowany. Oznacza to, że jeśli I jest ideałem w pierścieniu k[x], to istnieje skończony podzbiór F = {f 1,..., f s } k[x] taki, że I = (f 1,..., f s ) = {h 1 f 1 + + h s f s ; h 1,..., h s k[x]}. Ten skończony podzbiór nazywa się w tym przypadku bazą (ideału I). Twierdzenie Hilberta o bazie mówi zatem, że każdy ideał w k[x] ma bazę. Właśnie o takich bazach będziemy tu mówić. Dany ideał w k[x] może mieć wiele różnych baz, nawet różnej mocy. Okazuje się jednak, że każdy ideał w k[x] ma bazę posiadającą pewne specjalne własności. Te specjalne bazy, to właśnie bazy Gröbnera. Każdy ideał w k[x] ma bazę Gröbnera. Może ich mieć dużo. Możemy jeszcze zażądać by baza Gröbner spełniała pewne dodatkowe warunki i mówić wtedy o tzw. zredukowanych bazach Gröbnera. Wtedy można udowodnić, że każdy ideał w k[x] ma dokładnie jedną zredukowaną bazę Gröbnera. Istnieje ponadto prosty algorytm na skonstruowanie takiej zredukowanej bazy. Do czego to potrzebne? Załóżmy, że dane są wielomiany f 1,..., f s k[x]. Rozważmy ideał A = (f 1,..., f s ). Problem 1. Niech g k[x]. Jak sprawdzić (w skończonej ilości krokach) czy wielomian g należy do ideału A? W szczególności (gdy g = 1): jak sprawdzić czy ideał A jest różny od k[x]? Problem 2. Znaleźć generatory ideału A k[x 1,..., x p ], dla p < n. Problem 3. Znaleźć generatory radykału ideału A. Jak rozstrzygnąć czy dany wielomian należy do radykału?
2 Problem 4. Załóżmy, że dany jest jeszcze drugi ideał B = (g 1,..., g t ), gdzie g 1,..., g t są danymi wielomianami z k[x]. Znaleźć generatory ideału A B. Znaleźć generatory ideału A : B. Problem 5. Znaleźć generatory jądra danego homomorfizmu wielomianowego (lub ogólniej homomorfizmu k-algebr). W szczególności stwierdzić czy ten homomorfizm jest różnowartościowy lub na lub czy jest automorfizmem. Problem 6. Dany jest wielomianowy układ równań: f 1 = 0. f s = 0. Rozstrzygnąć czy układ ten ma rozwiązanie, czy ma skończoną ilość rozwiązań (w algebraicznym domknięciu ciała k). Jeśli tak jest, to znaleźć wszystkie rozwiązania. Problem 7. Opisać zbiór generatorów modułu syzygii danego ciągu wielomianów. Problem 9. Jak rozstrzygnąć czy dany wielomian g z k[x] należy do k-podalgebry k[f 1,..., f s ] (najmniejszej k-podalgebry w k[x] zawierającej dane wielomiany f 1,... f s )? W związku z Problemem 9 proponuję spróbować rozwiązać następujące zadanie dla wielomianów jednej zmiennej. Zadanie. Czy t 5 k[t 3 t, t 2 ]? Słynna hipoteza jakobianowa (która do dzisiaj nie jest rozstrzygnięta, nawet dla dwóch zmiennych) związana jest z Problemem 9. Stwierdza ona, że x 1,..., x n k[f 1,..., f n ], gdzie f 1,..., f n są danymi wielomianami w k[x] mającymi stały jakobian (char k = 0). Tego rodzaju problemów można wypisać bardzo dużo. Podobne problemy istnieją np. w teorii równań różniczkowych. Wszystkie powyższe problemy są stosunkowo łatwe, gdy znamy bazy Gröbnera. Dla wszystkich tych problemów istnieją proste algorytmy. Jest tu tylko jeden mały wyjątek. Pierwsza część Problemu 3, o generatorach radykału, jest nadal otwarta. Bazy Gröbnera można definiować różnie. Istnieje kilka równoważnych definicji. Podamy teraz jedną z takich definicji. Najpierw ustalmy pewne oznaczenia. Rozważmy niezerowy wielomian f należący do k[x]. Wielomian ten ma następującą postać: f = a α1...α n x α1 1 xαn n, (α 1,...,α n) gdzie wszystkie współczynniki postaci a α1...α n są elementami ciała k, prawie wszystkie równe zero. Sumowanie przebiega przez wszystkie ciągi (α 1,..., α n ), nieujemnych liczb całkowitych. Oznaczmy zbiór takich wszystkich ciągów przez Ω (lub Ω n ). Zbiór ten jest półgrupą przemienną ze względu na dodawanie z zerem 0 = (0,..., 0). Jeśli α = (α 1,..., α n ) Ω, to przez X α oznaczać będziemy jednomian x α1 1 xαn n. W szczególności X 0 = x 0 1 x 0 n = 1. Ponadto, X α X β = X α+β, dla wszystkich α, β Ω. Współczynniki postaci a α1...α n oznaczać będziemy odpowiednio przez a α. Teraz nasz wielomian f ma przyjemniejszy zapis: f = α Ω a α X α. Ustalmy w zbiorze Ω pewien porządek, na przykład leksykograficzny. Zdajmy sobie sprawę z tego, że porządek leksykograficzny spełnia następujące trzy warunki.
A. Nowicki, 05.06.1995, Co to są bazy Gröbnera? 3 1. (Ω, ) jest zbiorem liniowo uporządkowanym; 2. α Ω α 0; 3. α,β,γ Ω α β = α + γ β + γ. Każdą relację (zbioru Ω) spełniającą powyższe trzy warunki nazywamy G-porządkiem (lub porządkiem Gröbnera lub porządkiem dopuszczalnym). Porządek leksykograficzny jest więc G-porządkiem. Istnieje sporo innych G-porządków. Warto zaznaczyć, że z powyższych trzech warunków wynika następujący warunek: 1. (Ω, ) jest zbiorem dobrze uporządkowanym. Przypomnijmy, że liniowy porządek jest dobry jeśli każdy niepusty podzbiór posiada element najmniejszy lub równoważnie, gdy nie ma nieskończonych ciągów zstępujących postaci gdzie α 1, α 2, Ω. α 1 > α 2 >..., Załóżmy zatem, że na zbiorze Ω ustalony jest pewien G-porządek i wróćmy do naszego niezerowego wielomianu f. Wielomian ten możemy teraz zapisać jednoznacznie tak: f = b 1 X α1 + + b s X αs, gdzie b 1,..., b s są niezerowymi elementami ciała k, natomiast elementy α 1,..., α s należą do Ω i spełniają nierówności α 1 > > α s. W tej sytuacji wprowadzamy następujące oznaczenia i nazwy. f = a 1 X α1 najwyższy jednomian, c f = b 1 najwyższy współczynnik, deg f = α 1 stopień. Wprowadziliśmy te oznaczenia dla wielomianu niezerowego. Dla zera przyjmujemy: 0 = 0, c 0 = 0, deg 0 =. Stopień spełnia podstawowe własności zwykłego stopnia. Mamy w szczególności: deg(fg) = deg f + deg g. Jeśli A jest podzbiorem w k[x], to przez A oznaczmy zbór {f ; f A}. Teraz możemy podać już definicję bazy Gröbnera. Załóżmy, że I jest ideałem w k[x]. Bazą Gröbnera ideału I nazywamy każdy skończony podzbiór F k[x] taki, że (I ) = (F ) (równość ideałów w k[x]; ideał generowany przez zbiór I pokrywa się z ideałem generowanym przez zbiór F ). Stwierdzenie 1. Każdy ideał w k[x] posiada bazę Gröbnera. Dowód. Niech I będzie ideałem w k[x]. Rozpatrzmy ideał (I ). Z twierdzenia Hilberta o bazie wynika, że ideał ten jest skończenie generowany. Istnieje więc skończony zbiór F I taki, że zbiór F generuje ideał (I ). Wtedy oczywiście F jest bazą Gröbnera ideału I. Równie prosto dowodzi się (dowód zostawiam dla słuchacza), że baza Gröbnera ideału I jest istotnie bazą tego ideału, tzn.: Stwierdzenie 2. Jeśli F jest bazą Gröbnera ideału I, to I = (F ). Wprowadźmy dwa następne pojęcia. Będą to już ostatnie nowe pojęcia wprowadzone na tym wykładzie.
4 Niech f, g k[x]. Przez S(f, g) oznaczać będziemy wielomian zdefiniowany następująco: S(f, g) = c g X α f c f X β g, gdzie α, β są najmniejszymi elemenatami w Ω takimi, że deg f + α = deg g + β. Zauważmy, że powyższe elementy α i β zawsze istnieją i są wyznaczone jednoznacznie. Spójrzmy na przykład: Przykład. Dwie zmienne x i y. Porządek leksykograficzny. Niech f = 2x 2 y + 1, g = 3xy 4 + 5x. Wtedy deg f = (2, 1), deg g = (1, 4) i wtedy α = (0, 3), β = (1, 0). Mamy zatem: S(f, g) = 3x 0 y 3 f 2x 1 y 0 g = 6x 2 y 4 + 3y 3 6x 2 y 4 5x 2 = 5x 2 + 3y 3. Załóżmy, że F jest skończonym podzbiorem w k[x] {0}. Przez R(F ) oznaczać będziemy podzbiór w k[x] zwierający wielomian zerowy oraz każdy niezerowy wielomian h k[x], który jest postaci: h = b 1 X α1 f 1 + + b s X αs f s, gdzie b 1,..., b s k {0}, α 1,....α s Ω, f 1,..., f s F oraz Zauważmy, że R(F ) (F ). deg(x α1 f 1 ) > > deg(x αs f s ). Teraz możemy podać następujące twierdzenie, które jest najważniejszym i najistotniejszym twierdzeniem teorii baz Gröbnera. Twierdzenie (Buchberger). Niech F będzie skończonym podzbiorem w k[x]. Następujące trzy warunki są równoważne. (1) F jest bazą Gröbnera ideału (F ). (2) R(F ) = (F ). (3) f,g F S(f, g) R(F ). Przejdźmy do algorytmów i zastosowań. Algorytm na sprawdzanie czy dany wielomian należy do zbioru R(F ) jest oczywisty; wynika wprost z definicji zbioru R(F ). Warunek (3) powyższego twierdzenia pozwala podać prosty algorytm na sprawdzanie czy dany skończony zbiór F k[x] jest bazą Gröbnera ideału (F ). Wystarczy tylko sprawdzić czy S(f, g) R(F ), dla wszystkich f, g F. Par postaci (f, g) jest oczywiście tylko skończenie wiele. Algorytm dla skonstruowania bazy Gröbnera ideału (F ) jest następujący. Sprawdzamy, czy F jest bazą Gröbnera. Jeśli tak, to koniec. W przeciwnym wypadku istnieje (na mocy (3)) wielomian postaci S(f, g), gdzie f, g F, który nie należy do R(F ). Dorzucamy ten wielomian do zbioru F. Z nowym zbiorem F postępujemy podobnie. Łatwo się wykazuje, że postępowanie to musi się zawsze zakończyć. Znane programy komputerowe konstruują bazę Gröbnera przy pomocy powyższego algorytmu, wzbogaconego o procedurę eliminowania zbędnych wielomianów. Przykład. Dwie zmienne x i y. Porządek leksykograficzny. F = {f 1, f 2 }, gdzie f 1 = x 2 y + y, f 2 = xy 2 + x. Znajdziemy bazę Gröbnera ideału I w k[x, y], generowanego przez zbiór F. W tym celu obliczamy najpierw wielomian S(f 1, f 2 ): S(f 1, f 2 ) = yf 1 xf 2 = x 2 + y 2.
A. Nowicki, 05.06.1995, Co to są bazy Gröbnera? 5 Szybko zauważamy (porównując stopnie), że wielomian ten nie należy do zbioru R(F ). Należy on jednak do ideału I. Tworzymy zatem nowy zbiór F = {f 1, f 2, f 3 }, gdzie f 1 = x 2 y + y, f 2 = xy 2 + x, f 3 = x 2 y 2. Zauważmy, że I = (F ). Zauważmy następnie, że wielomian f 1 można uprościć przy pomocy wielomianu f 3 : f 1 yf 3 = x 2 y + y x 2 y + y 3 = y 3 + y. Powyższa równość świadczy o tym, że gdy wielomian f 1 zastąpimy wielomianem y 3 + y, to nadal otrzymamy zbiór generatorów ideału I. Niech więc G = {g 1, g 2, g 3 }, gdzie g 1 = y 3 + y, g 2 = xy 2 + x, g 3 = x 2 y 2. Wtedy I = (G) i szybko stwierdzamy (na mocy (3)), że zbiór G jest bazą Gröbnera ideału I. Na zakończenie naszkicujemy w jaki sposób można znaleźć generatory przekroju dwóch ideałów. W tym celu wyjaśniamy najpierw jak szuka się generatorów ideału C k[x r,..., x n ], gdzie r > 1 i C jest danym ideałem w k[x] = k[x 1,..., x n ]. W tym przypadku postępujemy następująco. 1. Ustalamy G-porządek taki, by wszystkie zmienne zbioru {x 1,..., x r 1 } były większe od pozostałych zmiennych (np. zwykły porządek leksykograficzny). 2. Konstruujemy bazę Gröbnera ideału C (względem ustalonego porządku). Niech G będzie tą bazą. 3. Ze zbioru G (który jest zbiorem skończonym!) wybieramy te wszystkie wielomiany, które należą do k[x r,..., x n ] (tzn., w których nie występują zmienne x 1,..., x r 1 ). W ten sposób otrzymujemy zbiór G, który jest bazą Gröbnera ideału C k[x r,..., x n ]. Mamy zatem zbiór generatorów tego ideału. Uwaga. Może się okazać, że G jest zbiorem pustym. W tym przypadku C k[x r,..., x n ] = 0. Niech A = (f 1,..., f p ), B = (g 1,..., g q ) będą ideałami w pierścieniu k[x]. Chcąc znaleźć zbiór generatorów ideału A B postępujemy tak: 1. Wprowadzamy jedną nową zmienną t i rozpatrujemy pierścień wielomianów k[t, X] = k[t, x 1,..., x n ]. 2. Ustalamy G-porządek taki, by zmienna t była większa od zmiennych x 1,..., x n. 3. W pierścieniu k[t, X] rozważamy ideał C = (ta, (t 1)B) = (tf 1,..., tf p, (t 1)g 1,..., (t 1)g q ). 4. Łatwo można udowodnić, że A B = C k[x]. Należy zatem zastosować algorytm poprzedni.