Gröbner基方法入门第II部分:Gröbner基和Buchberger算法

本文深入探讨了Gröbner基的概念及其在多项式代数中的核心作用,介绍了Buchberger算法计算Gröbner基的方法。通过实例解析,展示了算法的具体应用过程,包括S多项式的计算及约化Gröbner基的求解。

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}JK[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,RK[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,即AAAJ\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}]GK[x] 称为给定项序 <<< 下的Gröbner基,简称为Gröbner基,如果范式nform(G,G)(G, \mathbb{G})(G,G)对所有 G∈K[x]G \in \mathcal{K}[\boldsymbol{x}]GK[x] 都是惟一的.
    G\mathbb{G}G为多项式组P⊂K[x]\mathbb{P} \subset \mathcal{K}[\boldsymbol{x}]PK[x]或理想⟨P⟩\langle\mathbb{P}\ranglePGröbner基,如果G\mathbb{G}G是Gröbner基,且 ⟨P⟩=⟨G⟩\langle\mathbb{P}\rangle=\langle\mathbb{G}\rangleP=G;

利用上一部分提到的Dickson引理我们可以证明如下的Hilbert 基定理,并进而证明理想的升链条件;

  • ♡\heartsuit定理2.2(Hilbert 基定理):
    每个多项式理想J⊆K[x]\mathcal{J} \subseteq \mathcal{K}[\boldsymbol{x}]JK[x] 都是有限生成的,即存在 H1,⋯ ,Hs∈JH_{1}, \cdots, H_{s} \in \mathcal{J}H1,,HsJ,使得 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]J1J2K[x] 为理想升链,则存在正整数 NNN,使得对任意 i>Ni>Ni>N 都有Ji=JN\mathcal{J}_{i}=\mathcal{J}_{N}Ji=JN(即不存在无限递增的理想升链);

  • ♡\heartsuit定理2.4:
    给定项序,下列条件是等价的:

i) G\mathbb{G}GK[x]\mathcal{K}[\boldsymbol{x}]K[x] 中的 Gröbner 基;
ii) 对任意非零多项式 F∈⟨G⟩F \in\langle\mathbb{G}\rangleFG,nform (F,G)=0(F, \mathbb{G})=0(F,G)=0
iii)K[x]\mathcal{K}[\boldsymbol{x}]K[x] 中的所有多项式 F1F_{1}F1F2F_{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})F1F2Gnform(F1,G)=nform(F2,G)

iv) 每个非零多项式 F∈⟨G⟩F \in\langle\mathbb{G}\rangleFGG\mathbb{G}G 都是可约的
v) 对每个非零多项式 F∈⟨G⟩F \in\langle\mathbb{G}\rangleFG,存在多项式 G∈GG \in \mathbb{G}GG 使 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}]FK[x],

F∈⟨G⟩⟺F=∑G∈GHGGF \in\langle\mathbb{G}\rangle \Longleftrightarrow F=\sum_{G \in \mathbb{G}} H_{G} GFGF=GGHGG, 而 lt⁡(F)=max⁡G∈Glt⁡(HG)⋅lt⁡(G)\operatorname{lt}(F)=\max _{G \in \mathbb{G}} \operatorname{lt}\left(H_{G}\right) \cdot \operatorname{lt}(G)lt(F)=maxGGlt(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)GG}={lt(F)FG}

我们将 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}x1xn 所确定的纯字典项序的Gröbner基,那么对任意1⩽i⩽n1 \leqslant i \leqslant n1in都有

⟨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\rangleGK[xi]=GK[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] 中两个非零多项式 FFFGGGS多项式定义为

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)μFlc(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}P1P2P_{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)μ1P1lc(P1)μ2P2=2x1x3x4+2x3x45x12x2x42x1x2x4+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]GK[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,GG 成立.

定理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}]PK[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,GP}
    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}GG},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)(x32xy,x2y2y2+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}\rangleFG, 如果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})\ranglelt(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}GG都是首一的,且对G/{G}\mathbb{G}/ \{G\}G/{G}是约化的.

  • ♡\heartsuit定理2.12:
    J\mathcal{J}JK[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}]GK[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},GP, 且命 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}^{*}PPG 成立, 则命 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}^{*}GG,且命 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)GG}.

  • ⋆\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}={x32xy,x2y2y2+x,x2,2xy,2y2+x};
    约化的Gröbner基:{x2,xy,y2−x2}\left\{x^{2}, x y, y^{2}-\frac{x}{2}\right\}{x2,xy,y22x};

(本节完)


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基的概念和应用?谢谢[知乎问题回答:来自"匿名用户"]

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值