arXiv探訪

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

【動画紹介】The Map of Mathematics

こういうの好き。とりあえずメモ。

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) }の計算に帰着されてはいるが、一見すると問題は全然簡単になっていないように思える。グレブナー基底を考案したグレブナーの弟子ブッフバーガーが偉いのは、これを計算するアルゴリズムを主張したことにある。計算量的には膨大で、当時はとても人の手に余るものだったが、今はコンピュータが高性能になり計算だけでなく様々な応用が可能となった。

グラフ上の陣取りゲーム

最近グラフ理論を触り始めて、Wikipediaのギャラリーを見たりして楽しんでいる。理論の方は定義や用語は多い一方で、纏まりがある分野ではない印象を受けた。個々のグラフ、つまり数学的な背景があって、そこから導出された対象に限定して議論することが普通みたい。一般的な理論を構築するのは困難で、できたとしても強い結果が得られないのだろう。それだけに興味深い。

ともかくノートに色々グラフを書いてみて、一つ非常に簡単な陣取りゲームを考えた。

有限無向グラフ{ G }は連結かつ単純であるとする。ゲームは二人で交互に行う。まず初手では自分のコマを好きな{ G }の頂点に配置する。配置した頂点は自分の領土になる。二手目以降は自分のコマを隣接した頂点に移動させる。このとき移動させた先が誰の領土でなければ、自分の領土にできる。最後に領土が多かった方の勝ち。

疑問:後手必勝のグラフは存在するか?

小さなグラフだと頂点数が奇数なら先手必勝で偶数なら引き分けになるような気がする。

因みにグラフ上の陣取りには他にボロノイゲームというのがあり、店舗出店のモデルとしても考えられている。グラフの頂点に順に店舗を置いていくのだが、決められた手数で多くの陣地を取れば勝ち。陣地は最も距離が近い店舗のものになる。

こちらも大体先手が有利になるが、一次元や木構造など単純な場合にしか解析されていない。