Gröbner基方法入门第II部分:Gröbner基和Buchberger算法
在之前的博客文章中我介绍了一些多项式代数的基本概念,在这篇文章中我们将介绍Gröbner基的基本理论和计算Gröbner基的Buchberger算法;
Gröbner基和Buchberger算法
Gröbner基的概念来源于B.Buchberger的博士论文.考虑最简单的情形,K\mathcal{K}K为域,K[x]\mathcal{K}[\boldsymbol{x}]K[x]是一元多项式环.J\mathcal{J}J为K[x]\mathcal{K}[\boldsymbol{x}]K[x]上的理想,理想J\mathcal{J}J中存在次数极小的多项式,因为J\mathcal{J}J中多项式的次数构成NNN(非负整数)的一个子集.设A(x)∈JA(x) \in \mathcal{J}A(x)∈J是次数极小多项式,则对任意B(x)∈JB(x) \in \mathcal{J}B(x)∈J,有Q,R∈K[X]Q,R \in K[X]Q,R∈K[X],使得B=QA+RB = QA + RB=QA+R,其中deg(R)<deg(A)deg(R) < deg(A)deg(R)<deg(A),必有R=0R = 0R=0,否则与A(x)A(x)A(x)是次数极小的多项式矛盾.由上述分析可知,J=⟨A⟩\mathcal{J} = \langle A \rangleJ=⟨A⟩,即AAA是J\mathcal{J}J的理想基,J\mathcal{J}J中的任何多项式都可以被AAA约化到000,具有这种性质的理想基称为Gröbner基.
Gröbner基
- △\triangle△定义2.1:
多项式组 G⊂K[x]\mathbb{G} \subset \mathcal{K}[\boldsymbol{x}]G⊂K[x] 称为给定项序 <<< 下的Gröbner基,简称为Gröbner基,如果范式nform(G,G)(G, \mathbb{G})(G,G)对所有 G∈K[x]G \in \mathcal{K}[\boldsymbol{x}]G∈K[x] 都是惟一的.
称G\mathbb{G}G为多项式组P⊂K[x]\mathbb{P} \subset \mathcal{K}[\boldsymbol{x}]P⊂K[x]或理想⟨P⟩\langle\mathbb{P}\rangle⟨P⟩的Gröbner基,如果G\mathbb{G}G是Gröbner基,且 ⟨P⟩=⟨G⟩\langle\mathbb{P}\rangle=\langle\mathbb{G}\rangle⟨P⟩=⟨G⟩;
利用上一部分提到的Dickson引理我们可以证明如下的Hilbert 基定理,并进而证明理想的升链条件;
- ♡\heartsuit♡定理2.2(Hilbert 基定理):
每个多项式理想J⊆K[x]\mathcal{J} \subseteq \mathcal{K}[\boldsymbol{x}]J⊆K[x] 都是有限生成的,即存在 H1,⋯ ,Hs∈JH_{1}, \cdots, H_{s} \in \mathcal{J}H1,⋯,Hs∈J,使得 J=⟨H1,⋯ ,Hs⟩\mathcal{J}=\left\langle H_{1}, \cdots, H_{s}\right\rangleJ=⟨H1,⋯,Hs⟩;
下面的理想的升链条件常用于证明算法的终止性;
-
♡\heartsuit♡定理2.3(理想的升链条件):
设 J1⊂J2⊂⋯⊆K[x]\mathcal{J}_{1} \subset \mathcal{J}_{2} \subset \cdots \subseteq \mathcal{K}[x]J1⊂J2⊂⋯⊆K[x] 为理想升链,则存在正整数 NNN,使得对任意 i>Ni>Ni>N 都有Ji=JN\mathcal{J}_{i}=\mathcal{J}_{N}Ji=JN(即不存在无限递增的理想升链); -
♡\heartsuit♡定理2.4:
给定项序,下列条件是等价的:
i) G\mathbb{G}G是 K[x]\mathcal{K}[\boldsymbol{x}]K[x] 中的 Gröbner 基;
ii) 对任意非零多项式 F∈⟨G⟩F \in\langle\mathbb{G}\rangleF∈⟨G⟩,nform (F,G)=0(F, \mathbb{G})=0(F,G)=0
iii) 对 K[x]\mathcal{K}[\boldsymbol{x}]K[x] 中的所有多项式 F1F_{1}F1 和 F2F_{2}F2:
F1−F2∈⟨G⟩⟺nform(F1,G)=nform(F2,G)F_{1}-F_{2} \in\langle\mathbb{G}\rangle \Longleftrightarrow \operatorname{nform}(F_{1}, \mathbb{G})=\operatorname{nform}(F_{2}, \mathbb{G})F1−F2∈⟨G⟩⟺nform(F1,G)=nform(F2,G)
iv) 每个非零多项式 F∈⟨G⟩F \in\langle\mathbb{G}\rangleF∈⟨G⟩ 对 G\mathbb{G}G 都是可约的
v) 对每个非零多项式 F∈⟨G⟩F \in\langle\mathbb{G}\rangleF∈⟨G⟩,存在多项式 G∈GG \in \mathbb{G}G∈G 使 lt(G)∣lt(F)\operatorname{lt}(G) \mid \operatorname{lt}(F)lt(G)∣lt(F)
vi) 对所有多项式 F∈K[x]F \in \mathcal{K}[\boldsymbol{x}]F∈K[x],
F∈⟨G⟩⟺F=∑G∈GHGGF \in\langle\mathbb{G}\rangle \Longleftrightarrow F=\sum_{G \in \mathbb{G}} H_{G} GF∈⟨G⟩⟺F=∑G∈GHGG, 而 lt(F)=maxG∈Glt(HG)⋅lt(G)\operatorname{lt}(F)=\max _{G \in \mathbb{G}} \operatorname{lt}\left(H_{G}\right) \cdot \operatorname{lt}(G)lt(F)=maxG∈Glt(HG)⋅lt(G)
vii) ⟨{lt(G)∣G∈G}⟩=⟨{lt(F)∣F∈⟨G⟩}⟩\langle\{\mathrm{lt}(G) \mid G \in \mathbb{G}\}\rangle=\langle\{\operatorname{lt}(F) \mid F \in\langle\mathbb{G}\rangle\}\rangle⟨{lt(G)∣G∈G}⟩=⟨{lt(F)∣F∈⟨G⟩}⟩
我们将 x1,⋯ ,xix_{1}, \cdots, x_{i}x1,⋯,xi 简记为 xix_{i}xi.Gröbner 基的下述消元性质有若干应用.
- ♡\heartsuit♡定理2.5:
设 G 为 K[x]\mathcal{K}[\boldsymbol{x}]K[x] 中关于变元序 x1≺⋯≺xnx_{1} \prec \cdots \prec x_{n}x1≺⋯≺xn 所确定的纯字典项序的Gröbner基,那么对任意1⩽i⩽n1 \leqslant i \leqslant n1⩽i⩽n都有
⟨G⟩∩K[xi]=⟨G∩K[xi]⟩\langle\mathbb{G}\rangle \cap \mathcal{K}\left[\boldsymbol{x}_{i}\right]=\left\langle\mathbb{G} \cap \mathcal{K}\left[\boldsymbol{x}_{i}\right]\right\rangle⟨G⟩∩K[xi]=⟨G∩K[xi]⟩
式中右边的理想是在 K[xi]\mathcal{K}\left[\boldsymbol{x}_{i}\right]K[xi] 中生成的.
Buchberger算法
对于计算Gröbner基,可以用Buchberger算法:
- △\triangle△定义2.6:
K[x]\mathcal{K}[x]K[x] 中两个非零多项式 FFF和GGG 的S多项式定义为
spol(F,G):=lc(G)⋅μ⋅F−lc(F)⋅ν⋅G\operatorname{spol}(F, G):=\operatorname{lc}(G) \cdot \mu \cdot F-\operatorname{lc}(F) \cdot \nu \cdot Gspol(F,G):=lc(G)⋅μ⋅F−lc(F)⋅ν⋅G
式中 μ\muμ 和 ν\nuν 是使得 lt(F)⋅μ=lt(G)⋅ν=lcm(lt(F),lt(G))\operatorname{lt}(F) \cdot \mu=\operatorname{lt}(G) \cdot \nu=\operatorname{lcm}(\operatorname{lt}(F), \operatorname{lt}(G))lt(F)⋅μ=lt(G)⋅ν=lcm(lt(F),lt(G)) 成立的项.
- ⋆\star⋆例2.7:
对例1.10中的多项式P1P_{1}P1和 P2P_{2}P2,我们有:
spol(P1,P2)=lc(P2)⋅μ1⋅P1−lc(P1)⋅μ2⋅P2=2x1x3x4+2x3x4−5x12x2x4−2x1x2x4+5x12x2x3\begin{aligned} \operatorname{spol}\left(P_{1}, P_{2}\right) &=\operatorname{lc}\left(P_{2}\right) \cdot \mu_{1} \cdot P_{1}-\operatorname{lc}\left(P_{1}\right) \cdot \mu_{2} \cdot P_{2} \\ &=2 x_{1} x_{3} x_{4}+2 x_{3} x_{4}-5 x_{1}^{2} x_{2} x_{4}-2 x_{1} x_{2} x_{4}+5 x_{1}^{2} x_{2} x_{3} \end{aligned}spol(P1,P2)=lc(P2)⋅μ1⋅P1−lc(P1)⋅μ2⋅P2=2x1x3x4+2x3x4−5x12x2x4−2x1x2x4+5x12x2x3
其中 μ1=x4,μ2=x1\mu_{1}=x_{4}, \mu_{2}=x_{1}μ1=x4,μ2=x1;
- ♡\heartsuit♡定理2.8:
多项式组G⊂K[x]G \subset \mathcal{K}[x]G⊂K[x]是Gröbner基当且仅当:
nform (spol(F,G),G)=0(\operatorname{spol}(F, G), \mathbb{G})=0(spol(F,G),G)=0 对所有 F,G∈GF, G \in \mathbb{G}F,G∈G 成立.
定理2.8给出了 Gröbner 基的一个算法特征:多项式组P\mathbb{P}P是否为Gröbner基可以通过考虑有限多对P\mathbb{P}P中的多项式的S多项式来加以检验. 基干定理2.8我们可以将Buchberger算法描述如下.
- □\Box□算法2.9(GroBas):
G:=GroBas(P\mathbb{G}:= \operatorname{GroBas}(\mathbb{P}G:=GroBas(P). 任给非空有限多项式组P⊂K[x]P \subset \mathcal{K}[\boldsymbol{x}]P⊂K[x], 本算法计算P\mathbb{P}P的Gröbner基G\mathbb{G}G.
G1. 命 G:=P,Θ:={{F,G}∣F≠G,F,G∈P}\mathbb{G}:=\mathbb{P}, \Theta:=\{\{F, G\} \mid F \neq G, F, G \in \mathbb{P}\}G:=P,Θ:={{F,G}∣F=G,F,G∈P}
G2. 重复下列步骤直至 Θ=∅:\Theta=\varnothing:Θ=∅:
G2.1. 设 {F,G}\{F, G\}{F,G} 为 Θ\ThetaΘ 中的元素,且命 Θ:=Θ\{{F,G}}\Theta:=\Theta \backslash\{\{F, G\}\}Θ:=Θ\{{F,G}}
G2.2. 计算 R:=nform(spol(F,G),G)R:=\operatorname{nform}(\operatorname{spol}(F, G), \mathbb{G})R:=nform(spol(F,G),G)
G2.3. 若 R≠0R \neq 0R=0,则命
Θ:=Θ∪{{R,G}∣G∈G},G:=G∪{R}\Theta:=\Theta \cup\{\{R, G\} \mid G \in \mathbb{G}\}, \mathbb{G}:=\mathbb{G} \cup\{R\}Θ:=Θ∪{{R,G}∣G∈G},G:=G∪{R}
- ⋆\star⋆例2.10:
考虑环k[x,y]k[x, y]k[x,y]具有grlex项序,并且令I=⟨f1,f2⟩=I=\langle f_{1}, f_{2}\rangle=I=⟨f1,f2⟩= (x3−2xy,x2y−2y2+x)\left(x^{3}-2 x y, x^{2} y-2 y^{2}+x\right)(x3−2xy,x2y−2y2+x). 可以断言{f1,f2}\left\{f_{1}, f_{2}\right\}{f1,f2}并非III的Gröbner基,这是由于LT(S(f1,f2))=−x2∉⟨LT(f1),LT(f2)⟩\operatorname{LT}\left(S\left(f_{1}, f_{2}\right)\right)=-x^{2} \notin\left\langle\operatorname{LT}\left(f_{1}\right), \operatorname{LT}\left(f_{2}\right)\right\rangleLT(S(f1,f2))=−x2∈/⟨LT(f1),LT(f2)⟩;
对给定的多项式组P\mathbb{P}P, 其 Gröbner 基不是惟一的. 譬如,对任意F∈⟨G⟩F \in\langle\mathbb{G}\rangleF∈⟨G⟩, 如果G\mathbb{G}G是 Gröbner 基,那么G∪{F}\mathbb{G} \cup\{F\}G∪{F}也是Gröbner 基. 算法 GroBas 的输出通常太大,它包含很多冗余的多项式.
另一方面,Gröbner基的性质说明,重要的是它的首项理想.所有满足 ⟨lt(⟨P⟩)⟩=⟨lt(G)⟩\langle\operatorname{lt}(\langle\mathbb{P}\rangle)\rangle=\langle\mathrm{lt}(\mathbb{G})\rangle⟨lt(⟨P⟩)⟩=⟨lt(G)⟩的G\mathbb{G}G都是P\mathbb{P}P的Gröbner基.对xα∈lt(G),⟨P⟩\boldsymbol{x}^{\alpha} \in \operatorname{lt}(\mathbb{G}),\langle\mathbb{P}\ranglexα∈lt(G),⟨P⟩ 中首项是xα\boldsymbol{x}^{\alpha}xα的多项式可以有很多,不同的选择也可以导致不同的Gröbner基;
所以我们引进了约化Grobner基,来保证给定的多项式组可以求得其唯一的约化Gröbner基.
-
△\triangle△定义2.11:
称 Gröbner基G\mathbb{G}G为约化Gröbner基,如果每个多项式G∈GG \in \mathbb{G}G∈G都是首一的,且对G/{G}\mathbb{G}/ \{G\}G/{G}是约化的. -
♡\heartsuit♡定理2.12:
设 J\mathcal{J}J 为 K[x]\mathcal{K}[\boldsymbol{x}]K[x] 中的理想. 对给定项序,J\mathcal{J}J有惟一的约化Gröbner基.
我们可以将约化Buchberger算法描述如下.
-
□\Box□算法2.13(RedGroBas):
G∗:=RedGroBas(G)\mathbb{G}^{*}:=\operatorname{RedGroBas}(\mathbb{G})G∗:=RedGroBas(G).给定 Gröbner 基 G⊂K[x]\mathbb{G} \subset \mathcal{K}[\boldsymbol{x}]G⊂K[x],
本算法计算G\mathbb{G}G的约化Gröbner基G∗\mathbb{G}^{*}G∗.
R1. 命 P:=G,G∗:=∅\mathbb{P}:=\mathbb{G}, \mathbb{G}^{*}:=\varnothingP:=G,G∗:=∅
R2. 重复下列步骤直至 P=∅\mathbb{P}=\varnothingP=∅ :
R2.1. 选取多项式 G∈P,G \in \mathbb{P},G∈P, 且命 P:=P\{G}.\mathbb{P}:=\mathbb{P} \backslash\{G\} .P:=P\{G}.
R2.2. 若 lt(P)∤lt(G)\operatorname{lt}(P) \nmid \operatorname{lt}(G)lt(P)∤lt(G) 对所有 P∈P∪G∗P \in \mathbb{P} \cup \mathbb{G}^{*}P∈P∪G∗ 成立, 则命 G∗:=G∗∪{G}.\mathbb{G}^{*}:=\mathbb{G}^{*} \cup\{G\} .G∗:=G∗∪{G}.
R3. 重复下列步骤直至G∗\mathbb{G}^{*}G∗约化 :
R3.1. 选取对 G∗\{G}\mathbb{G}^{*} \backslash\{G\}G∗\{G} 可约的G∈G∗G \in \mathbb{G}^{*}G∈G∗,且命 G∗:=G∗\{G}\mathbb{G}^{*}:=\mathbb{G}^{*} \backslash\{G\}G∗:=G∗\{G}.
R3.2. 计算 R:=R:=R:= nform (G,G∗)\left(G, \mathbb{G}^{*}\right)(G,G∗).若 R≠0,R \neq 0,R=0, 则命 G∗:=G∗∪{R}\mathbb{G}^{*}:=\mathbb{G}^{*} \cup\{R\}G∗:=G∗∪{R}
R4. 命 G∗:={G/lc(G)∣G∈G∗}\mathbb{G}^{*}:=\left\{G / \operatorname{lc}(G) \mid G \in \mathbb{G}^{*}\right\}G∗:={G/lc(G)∣G∈G∗}. -
⋆\star⋆例2.14:
仍然考虑例2.10中的设定,那么计算得到:
Gröbner基: {f1,f2,f3,f4,f5}={x3−2xy,x2y−2y2+x,−x2,−2xy,−2y2+x}\left\{f_{1}, f_{2}, f_{3}, f_{4}, f_{5}\right\}=\left\{x^{3}-2 x y, x^{2} y-2 y^{2}+x,-x^{2},-2 x y,-2 y^{2}+x\right\}{f1,f2,f3,f4,f5}={x3−2xy,x2y−2y2+x,−x2,−2xy,−2y2+x};
约化的Gröbner基:{x2,xy,y2−x2}\left\{x^{2}, x y, y^{2}-\frac{x}{2}\right\}{x2,xy,y2−2x};
(本节完)
A Tutorial on Gröbner Bases With Applications in Signals and Systems
<<多项式代数>>王东明/牟晨琪(2011)ISBN: 9787040316988
Ideals, Varieties, and Algorithms (4th ed.) [Cox, Little & O’Shea 2015-06-14]
介绍一下Grobner基的概念和应用?谢谢[知乎问题回答:来自"匿名用户"]
本文深入探讨了Gröbner基的概念及其在多项式代数中的核心作用,介绍了Buchberger算法计算Gröbner基的方法。通过实例解析,展示了算法的具体应用过程,包括S多项式的计算及约化Gröbner基的求解。

1988

被折叠的 条评论
为什么被折叠?



