arXiv探訪

興味の赴くままに数学するだけ

36.多項式環のグレブナー基底

少し話題を変えて多項式環の計算理論をやっておく。PDFにするときは別の章にするかもしれない。

項順序と割り算アルゴリズム

以前、一変数多項式環の整除について学んだ。これと同じことを多変数の多項式についても考えたいのだが、一変数の場合と異なり多項式の次数は自然に定まらない。項順序とは割り算を上手く機能させるために導入する順序であり、この下で多項式の整除を定めることができる。

以下{ k }は体とする。{ n }変数の多項式環{ k\lbrack X_{1}, \dotsc, X_{n} \rbrack }{ k\lbrack X \rbrack }と略記する。{ \alpha=(\alpha_{1}, \dotsc, \alpha_{n})\in\mathbb{Z}_{\ge 0}^{n} }に対し、{ X^{\alpha}:=X_{1}^{\alpha_{1}}\dotsm X_{n}^{\alpha_{n}} }と略記し、{ cX^{\alpha} }の形をした多項式を項(term)と呼ぶ。特に{ c=1 }のとき、{ X^{\alpha} }の形をした項を単項式(monomial term)と呼ぶ。また{ \alpha }は多重指数(multi-index)と呼ばれ、{ | \alpha |:=\sum_{i}\alpha_{i} }をその絶対値、{ \alpha!:=\alpha_{1}!\dotsm\alpha_{n}! }をその階乗などと呼ぶ。一般にゼロでない多項式{ f\neq 0 }は、幾つかの項の和で表されるが、これらの項を多項式の項成分と呼ぶ。

多重指数に対する順序関係が項順序(term order)であるとは、以下の三条件を満たすことをいう。

  • { \alpha, \beta\in\mathbb{Z}_{\ge 0}^{n} }に対して{ \alpha\lt\beta, \alpha=\beta, \alpha\gt\beta }の何れかが成り立つ。(全順序性)
  • { \alpha\gt\beta }なら{ \alpha+\gamma\gt\beta+\gamma }が成り立つ。(加法性)
  • { S\subset\mathbb{Z}_{\ge 0}^{n} }が空でないとき、{ S }に最小元が存在する。(整列性)

項順序は目的に応じて色々変えるのが普通だが、基本的には次の三種類の何れかを用いる。

辞書式順序(lexicographic order, lex) { \alpha \lt_{\mathrm{lex}} \beta }であることを、{ \alpha_{1}=\beta_{1}, \dotsc, \alpha_{i}=\beta_{i}, \alpha_{i+1}\lt\beta_{i+1} }で定める。

次数付き辞書式順序(graded lexicographic order, grlex) { \alpha \lt_{\mathrm{grlex}} \beta }であることを、{ | \alpha | \lt | \beta | }、もしくは{ | \alpha | = | \beta | }かつ{ \alpha \lt_{\mathrm{lex}} \beta }で定める。

次数付き逆辞書式順序(graded reverse lexicographic order, grevlex) { \alpha \lt_{\mathrm{grevlex}} \beta }であることを、{ | \alpha | \lt | \beta | }、もしくは{ | \alpha | = | \beta | }かつ{ \alpha_{n}=\beta_{n}, \dotsc, \alpha_{i+1}=\beta_{i+1}, \alpha_{i}\gt\beta_{i} }で定める。(順序の向きに注意)

上から簡単に説明すると、lexでは前が小さければ小さい。grlexではまず絶対値を比較し、その後lexで比較する。grevlexもまず絶対値で比較するが、後ろが大きければ小さい。

項順序が与えられているとき、ゼロでない多項式{ f\neq 0 }に対し次を定める。まず項順序で最大の項成分を{ \mathrm{LT}(f) }で表し、先頭項(leading term)と呼ぶ。先頭項の係数(leading coefficient)は{ \mathrm{LC}(f) }で表し、先頭項の係数をイチとしたもの(leading monomial)を{ \mathrm{LM}(f) }で表す。更に{ \mathrm{LT}(f)=cX^{\alpha} }のとき{ \mathrm{deg}f:=\alpha }{ f }の次数(degree)と呼ぶ。

定理(割り算アルゴリズム 項順序が与えられた多項式環{ k\lbrack X \rbrack }を考える。多項式{ f }及び{ f_{1}, \dotsc, f_{s} }に対して、次を満たす多項式{ a_{1}, \dotsc, a_{s} }及び {r }は一意的に定まる。(正確には順序付きの{ (f_{1}, \dotsc, f_{s}) }に対して一意に定まる。)

  • { f=a_{1}f_{1}+\dotsb+a_{s}f_{s}+r }が成り立つ。
  • { r\neq 0 }のとき、任意の{ i }に対して{ \mathrm{LT}(f_{i}) }{ r }の項成分を割り切らない。
  • { a_{j}\neq 0 }のとき、{ t }{ a_{j}\mathrm{LT}(f_{j}) }の項成分とすると、任意の{ i }に対して{ \mathrm{LT}(f_{i}) }{ t }を割り切らない。
  • { a_{j}\neq 0 }のとき、{ \mathrm{deg}f\gt\mathrm{deg}a_{j}f_{j} }が成り立つ。特に{ r=0 }なら{ \mathrm{deg}a_{j}f_{j} }の最大が{ \mathrm{deg}f }に一致する。

(証明)以下のアルゴリズムで実行する。

  • 入力は{ f, f_{1}, \dotsc, f_{s} }であり、出力は{ a_{1}, \dotsc, a_{s}, r }である。
  • まず{ a_{1}, \dotsc, a_{s} }及び{ r }にゼロを代入し、{ p }{ f }を代入する。
  • (A) もし{ p=0 }なら終了する。
  • そうでないなら、{ \mathrm{LT}(f_{j}) }{ LT(p) }を割り切るような{ j }を考え、その全体を{ J }とする。
  • もし{ J }が空なら{ r }{ r+\mathrm{LT}(p) }を代入し、{ p }{ p-\mathrm{LT}(p) }を代入し(A)に戻る。
  • 空でないなら、{ j:=\mathrm{min}J }として{ a_{j} }{ a_{j}+\frac{\mathrm{LT}(p)}{\mathrm{LT}(f_{j})} }を代入し、{ p }{ p-\frac{\mathrm{LT}(p)}{\mathrm{LT}(f_{j})}f_{j} }を代入し(A)に戻る。

この操作では、{ p=0 }とならない限り{ p }の次数は真に減少していく。もしアルゴリズムが止まらないとすれば、{ \lbrace \mathrm{deg}p \rbrace }を考えれば整列性より最小元が存在するため矛盾する。従ってこの操作は有限回で停止する。{ \square }

{ f=X^{2}Y+1, f_{1}=XY-X, f_{2}=X^{2}-Y }とする。{ X\gt Y }の辞書式順序で割り算を実行してみよう。{ \mathrm{LT}(f_{1})=XY, \mathrm{LT}(f_{2})=X^{2} }である。以下に途中計算を挙げる。

{ p } { a_{1} } { a_{2} } { r } { \mathrm{LT}(p) } { J } { j }
{ X^{2}Y+1 } { 0 } { 0 } { 0 } { X^{2}Y } { \lbrace 1, 2 \rbrace } { 1 }
{ (X^{2}Y+1)-X(XY-X)=X^{2}+1 } { 0+\frac{X^{2}Y}{XY}=X } { 0 } { 0 } { X^{2} } { \lbrace 2 \rbrace } { 2 }
{ (X^{2}+1)-1(X^{2}-Y)=Y+1 } { X } { 0+\frac{X^{2}}{X^{2}}=1 } { 0 } { Y } { \emptyset }
{ (Y+1)-Y=1 } { X } { 1 } { 0+Y=Y } { 1 } { \emptyset }
{ 1-1=0 } { X } { 1 } { Y+1 }

故に{ X^{2}Y+1=X(XY-X)+1(X^{2}-Y)+(Y-1) }となる。

イデアルグレブナー基底

イデアル(term ideal)あるいは単項式イデアルとは、単項式から成る生成系を持つイデアルのことを指す。即ち{ A\subset\mathbb{Z}_{\ge 0}^{n} }が存在して{ I=\langle X^{\alpha}\mid\alpha\in A\rangle_{k\lbrack X \rbrack} }と表せるイデアルのことを意味する。これを簡単に{ I=\langle X^{\alpha}\mid\alpha\in A \rangle }などと表す。

命題 { I }を項イデアル{ \beta }を多重指数とする。以下は同値となる。

  • { X^{\beta}\in I }である。
  • ある{ \alpha\in A }が存在して{ X^{\alpha}|X^{\beta} }が成り立つ。

(証明){ X^{\beta}\in I }とする。ある{ \alpha_{i}\in A }が存在して{ X^{\beta}=\sum_{i=1}^{m}h_{i}X^{\alpha_{i}} }と表せる。ここで{ h_{i}=\sum_{\gamma}c_{i, \gamma}X^{\gamma} }と置くと、{ X^{\beta}=\sum c_{i, \gamma}X^{\gamma+\alpha_{i}} }が成り立つ。故にある{ i, \gamma }が存在して{ \beta=\gamma+\alpha_{i} }となるので{ X^{\beta}=X^{\gamma}X^{\alpha_{i}} }となる。下から上は明らか。{ \square }

命題 { I }を項イデアル{ f=\sum_{\beta}c_{\beta}X^{\beta} }とする。以下は同値となる。

  • { f\in I }である。
  • { c_{\beta}\neq 0 }なら{ X^{\beta}\in I }が成り立つ。

(証明){ f\in I }とする。先ほどと同様に{ f=\sum c_{\beta}X^{\beta}=\sum h_{i}X^{\alpha_{i}}=\sum c_{i, \gamma}X^{\gamma+\alpha_{i}} }と表せる。{ c_{\beta}\neq 0 }なら{ \beta=\gamma+\alpha_{i} }となる{ i, \gamma }が存在するので{ X^{\alpha_{i}}|X^{\beta} }より上の命題から{ X^{\beta}\in I }が成り立つ。下から上は明らか。{ \square }

補題 (ディクソンの補題{ I=\langle X^{\alpha} | \alpha\in A \rangle }を項イデアルとする。このときある{ \alpha_{1}, \dotsc, \alpha_{s}\in A }が存在して{ I=\langle X^{\alpha_{1}}, \dotsc, X^{\alpha_{s}} \rangle_{k\lbrack X \rbrack} }が成り立つ。

(証明)既に{ k\lbrack X \rbrack }ネーター環であることは示してあるので{ I }は有限生成となる。そこで{ f_{1}, \dotsc, f_{s} }をその生成元とすれば、{ f_{i}=\sum c_{\beta}X^{\alpha_{i, \beta}} }と有限個の{ \alpha_{i, \beta}\in A }を用いて表せる。{ I }{ \lbrace X^{\alpha_{i, \beta}} \rbrace }により生成されるので、題意を満たす。{ \square }

因みに直接この補題を示すこともできる。

さて、集合{ T\subset k\lbrack X \rbrack }に対し、{ \mathrm{LT}(T):= \lbrace \mathrm{LT}(f) \mid f\in T, \neq 0 \rbrace }と置く。{ \mathrm{LM}(T) }も同様に定義する。

先頭項イデアル(leading term ideal)とは{ k\lbrack X \rbrack }イデアル{ I }に対し、{ \mathrm{LT}(I) }で生成されるイデアルのことを指す。

{ k }は体なので、一般に{ \langle \mathrm{LM}(I) \rangle_{k\lbrack X \rbrack} = \langle \mathrm{LT}(I) \rangle_{k\lbrack X \rbrack} }が成り立つことに注意する。またイデアル{ I=\langle f_{1}, \dotsc, f_{s} \rangle_{k\lbrack X \rbrack} }に対し{ \langle \mathrm{LT}(I) \rangle_{k\lbrack X \rbrack}\supset\langle \mathrm{LT}(f_{1}), \dotsc, \mathrm{LT}(f_{s}) \rangle_{k\lbrack X \rbrack} }が成り立つ。

定義 { I\subset k\lbrack X \rbrack }イデアルとする。{ G=\lbrace g_{1}, \dotsc, g_{s} \rbrace\subset I\backslash\lbrace 0 \rbrace }{ I }グレブナー基底(Gr{ \ddot{\mathrm{o}} }bner basis)であるとは、

{ \langle \mathrm{LT}(I) \rangle_{k\lbrack X \rbrack}=\langle \mathrm{LT}(g_{1}), \dotsc, \mathrm{LT}(g_{s}) \rangle_{k\lbrack X \rbrack}\left( = \langle \mathrm{LT}(G) \rangle_{k\lbrack X \rbrack} \right) }

を満たすことをいう。

定理 グレブナー基底は存在する。

(証明){ \langle \mathrm{LM}(I) \rangle }は項イデアルなので、ディクソンの補題より{ g_{1}, \dotsc, g_{s}\in I }が存在して

{ \langle \mathrm{LM}(I) \rangle_{k\lbrack X \rbrack}=\langle \mathrm{LM}(g_{1}), \dotsc, \mathrm{LM}(g_{s}) \rangle_{k\lbrack X \rbrack} }

が成り立つ。左辺は{ \langle \mathrm{LT}(I) \rangle_{k\lbrack X \rbrack} }に等しく、右辺は{ \langle \mathrm{LT}(G) \rangle_{k\lbrack X \rbrack} }に等しいので題意が示される。{ \square }

所感

グレブナー基底があると何が嬉しいかは次回。またグレブナー基底の存在は示したが、その計算方法については何も述べていない。証明を見ると{ \mathrm{LM}(I) }の計算に帰着されてはいるが、一見すると問題は全然簡単になっていないように思える。グレブナー基底を考案したグレブナーの弟子ブッフバーガーが偉いのは、これを計算するアルゴリズムを主張したことにある。計算量的には膨大で、当時はとても人の手に余るものだったが、今はコンピュータが高性能になり計算だけでなく様々な応用が可能となった。