Report 1 / Graphical Expansion

グレブナー基底探索を DOT + d3-graphviz で可視化する

単項式整除DAG、多項式簡約、Buchberger 法の S-ペア探索、消去、Boolean 分岐をグラフとして眺めるための拡張レポート。DOT ソースを編集しながら構造を確認できます。

DOTd3-graphvizMathJaxBuchberger探索グラフ

1. グラフで見ると何が見えるか

グレブナー基底による探索は、式変形を「計算」として見るだけでなく、状態空間の探索として見ると理解が一段深くなります。ノードは多項式、単項式、基底、S-ペア、部分問題、解候補を表し、エッジは「割る」「S-多項式を作る」「消去する」「分岐する」「正規形を取る」といった遷移を表します。

単項式の探索空間

単項式全体は整除関係で半順序集合になります。先頭イデアル \(\langle \mathrm{LT}(G)\rangle\) は上に閉じた領域で、そこから外れた単項式が標準単項式です。

簡約の探索空間

多項式割り算は、先頭単項式を単項式順序で小さくしていく有向非巡回グラフ上の移動です。停止性は「毎回真に小さくなる」ことから来ます。

Buchberger 法の探索空間

候補基底のノードから S-ペアが生まれ、正規形が 0 でなければ新しい基底ノードが追加されます。探索 frontier は「未処理 S-ペア」の集合です。

解空間の探索

lex 順序の三角形化、Boolean 制約、消去イデアルにより、探索問題を順に低次元化・分岐・検証できます。

読み方の約束。 このレポートでは、赤系のノードは先頭項・制約・不可能性、青系は新規に得た式、緑系は標準単項式や解、灰色は 0 簡約または剪定を表すように統一しています。

2. DOT + d3-graphviz インタラクティブ図鑑

下のセレクタで図を切り替えると、DOT ソースを d3-graphviz が SVG として描画します。DOT は編集できるので、ノードやエッジを追加しながら探索構造の変化を観察できます。

DOT ソース

CDN が読み込めない環境では SVG は表示されません。その場合でも DOT ソースを Graphviz 対応ビューアに貼れば同じ図を確認できます。

3. 視覚文法:グレブナー探索を図に落とす規則

3.1 多項式をノードにする場合

多項式ノードには、少なくとも次の情報を載せます。

表示情報意味探索上の役割
\(f\)多項式そのもの制約、または書換規則の本体
\(\mathrm{LT}(f)\)先頭項どの単項式を消せるかを決める
\(\mathrm{LM}(f)\)先頭単項式整除判定、S-ペアの lcm に使う
次数全次数や重み次数探索コストの見積もりに使う
由来入力式か、S-ペアから得た式か証明トレース、不要式削除、デバッグに使う

たとえば \(G=\{g_1,g_2\}\) のとき、\(\mathrm{LT}(g_i)\mid \mathrm{LT}(p)\) なら \(p\) は \(g_i\) によって一歩簡約できます。図では「現在の多項式」から「簡約後の多項式」へ矢印を引き、ラベルに使用した \(g_i\) と係数単項式を記します。

3.2 S-ペアをノードにする場合

\(f_i,f_j\) の S-多項式は

\[ S(f_i,f_j)=\frac{\mathrm{lcm}(\mathrm{LM}(f_i),\mathrm{LM}(f_j))}{\mathrm{LT}(f_i)}f_i- \frac{\mathrm{lcm}(\mathrm{LM}(f_i),\mathrm{LM}(f_j))}{\mathrm{LT}(f_j)}f_j. \]

これは「先頭項をそろえて打ち消す」ための局所的な衝突解消です。探索図では、二つの基底ノードから S-ペアノードへ入り、正規形 \(\mathrm{NF}(S\mid G)\) が 0 なら剪定、0 でなければ新ノードを生成します。

Buchberger 法を単なる機械的反復と見ると見通しが悪くなります。グラフでは「衝突を見つける」「衝突を解消する式を追加する」「衝突がすでに解消済みなら枝刈りする」という探索パターンが明確になります。

4. 単項式整除 DAG と先頭イデアル

\(K[x,y]\) の単項式を \(x^a y^b\) と書くと、\(x^a y^b\mid x^c y^d\) は \(a\le c, b\le d\) と同値です。したがって、単項式全体は格子状の DAG になります。

有限個の先頭単項式 \(M=\{x^2,xy,y^3\}\) が与えられると、先頭イデアルは

\[ \langle M\rangle=\{m: x^2\mid m\text{ または }xy\mid m\text{ または }y^3\mid m\} \]

です。これは DAG 上で上に閉じた領域です。補集合は標準単項式

\[ \mathcal{N}=\{1,x,y,y^2\} \]

で、剰余環 \(K[x,y]/\langle x^2,xy,y^3\rangle\) のベクトル空間基底になります。

探索的意味。 標準単項式が有限個なら零次元的です。探索では「まだ先頭イデアルに覆われていない単項式」を調べれば、候補解の自由度や残っている不確定性が見えます。

5. 簡約は「減少する道」を探すこと

固定した単項式順序 \(>\) に対して、\(p\to p-cm g\) という簡約ステップでは、\(cm\mathrm{LT}(g)=\mathrm{LT}(p)\) となるように選びます。このとき新しい多項式の先頭単項式は必ず古い先頭単項式より小さいので、無限に続くことはありません。

ただし、割る多項式の選び方により途中経路は変わります。グレブナー基底で割る場合には、最終的な正規形が一意になります。グレブナー基底でない集合で割ると、割る順番によって剰余が変わることがあります。これは探索アルゴリズムの再現性・枝刈り精度に直結します。

集合剰余の一意性探索での扱い
任意の生成集合 \(F\)一般には一意でない途中結果の順序依存性に注意する
グレブナー基底 \(G\)一意正規形を状態の canonical representation として使える
被約グレブナー基底一意かつ基底自体も正規化比較、キャッシュ、同型判定に向く

6. Buchberger 法のグラフ拡張

入力

\[ f_1=x^2-y,\qquad f_2=xy-1 \]

を lex 順序 \(x>y\) で考えます。最初の S-多項式は

\[ S(f_1,f_2)=y f_1-x f_2=x-y^2. \]

これが 0 に簡約されないので、\(g_3=x-y^2\) を追加します。次に

\[ S(f_2,g_3)=f_2-y g_3=y^3-1 \]

も 0 に簡約されないので \(g_4=y^3-1\) を追加します。一方、\(S(f_1,g_3)\) は既存基底で 0 に簡約されます。最終的に被約グレブナー基底は

\[ G=\{x-y^2,\ y^3-1\} \]

です。この一連の流れを図にすると、「衝突から新規制約が生まれ、余分な入力式が後で吸収される」構造が見えます。

手動ステップビューア

7. 消去と三角形化をグラフで読む

lex 順序 \(x>y>z\) のグレブナー基底は、しばしば上流変数を消去した三角形の形を作ります。たとえば

\[ I=\langle x+y+z,\\ xy+yz+zx-1,\\ xyz-2\rangle \]

の lex グレブナー基底は

\[ G=\{x+y+z, \ y^2+yz+z^2+1, \ z^3+z-2\}. \]

探索手順は、まず \(z^3+z-2=0\) を解き、次に \(y^2+yz+z^2+1=0\) を解き、最後に \(x=-y-z\) を代入する、という逆向き代入になります。

グラフでは、全変数空間から \(z\)-軸への射影、次に \((y,z)\) 平面への持ち上げ、最後に \((x,y,z)\) 空間への持ち上げとして描けます。

9. 探索設計パターン

frontier を明示する

Buchberger 法では未処理 S-ペア、Boolean 探索では未確定代入、消去では未解決の低変数多項式が frontier です。

canonical state に落とす

状態を正規形で保存すれば、同じ状態を二度探索することを避けられます。これはグラフ探索の visited set と同じ発想です。

先頭イデアルで覆う

先頭単項式が増えるほど、探索空間の覆われる領域が大きくなります。標準単項式が減ることは情報が増えたことを意味します。

消去順序を目的に合わせる

解く対象が \(z\) だけなら \(x,y\) を先に消す順序を選びます。探索の目的が違えば良い順序も変わります。