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∈G​HG​G, 而 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)=maxG∈G​lt(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​=2x1​x3​x4​+2x3​x4​−5x12​x2​x4​−2x1​x2​x4​+5x12​x2​x3​​

其中 μ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基方法入门第II部分:Gröbner基和Buchberger算法相关推荐

  1. aspectj 获取方法入参_深入探索编译插桩技术(二、AspectJ)

    本文来自jsonchao的投稿,个人微信:bcce5360 现如今,编译插桩技术已经深入 Android 开发中的各个领域,而 AOP 技术正是一种高效实现插桩的模式,它的出现正好给处于黑暗中的我们带 ...

  2. aop 获取方法入参出参_ASM字节码编程 | JavaAgent+ASM字节码插桩采集方法名称及入参和出参结果并记录方法耗时...

    作者:小傅哥 博客:bugstack.cn ❝ 沉淀.分享.成长,让自己和他人都能有所收获! ❞ 一.前言 在我们实际的业务开发到上线的过程中,中间都会经过测试.那么怎么来保证测试质量呢?比如:提交了 ...

  3. Spring-AOP @AspectJ进阶之绑定连接点方法入参

    文章目录 概述 实例 概述 我们前面的博文在讲解切点函数时说过args().this().target().@args().@within().@target()和@annotation()这7个函数 ...

  4. 方法入参很复杂,每次调用都要构造BO入参?一招教你自动构造入参

    场景 同在互联网打工的小伙伴们肯定都面临这样一种场景: 通用逻辑(被多处调用)我们通常会封装成一个方法,那这个方法入参正常来说都不会少,(在开发规范中,经常会看到一条"方法入参正常不超过3个 ...

  5. 新版SpringCloudGateway网关 切面修改方法入参

    通过注解修改方法入参值,一般都是采用实现 org.springframework.web.method.support.HandlerMethodArgumentResolver 接口的 resolv ...

  6. cas112592-50-4/四溴苯基卟啉镍/nickel(II) tetra(p-Br-phenyl)porphyrin/分子式:C44H24Br4N4Ni++/分子量:986.99800

    cas112592-50-4/四溴苯基卟啉镍/nickel(II) tetra(p-Br-phenyl)porphyrin/分子式:C44H24Br4N4Ni++/分子量:986.99800 中文名称 ...

  7. Mybatis方法入参处理

    1,在单个入参的情况下,mybatis不做任何处理,#{参数名} 即可,甚至连参数名都可以不需要,因为只有一个参数,或者使用 Mybatis的内置参数 _parameter. 2,多个入参: 接口方法 ...

  8. spring特殊字符转义和方法入参检测工具类

    由于 Web 应用程序需要联合使用到多种语言,每种语言都包含一些特殊的字符,对于动态语言或标签式的语言而言,如果需要动态构造语言的内容时,一个我们经常会碰到的问题就是特殊字符转义的问题.下面是 Web ...

  9. aspect 方法入参 获取_谈谈Spring AOP中@Aspect的高级用法示例

    前言 本文主要跟大家分享介绍了关于Spring AOP中@Aspect的高级用法,下面话不多说了,来随着小编一起看看详细的介绍吧. 1 切点复合运算 支持在切点定义中加入以下运算符进行复合运算: 运算 ...

  10. 2021年胺基化工艺考试内容及胺基化工艺考试技巧

    题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:2021年广东省安全员B证第三批(项目负责人)考试技巧为正在备考广东省安全员B证第三批(项目负责人)操作证的学员准备的理论考试专题 ...

最新文章

  1. PostgreSQL — Overview
  2. Leetcode0037--Sudoku Solver 数独游戏
  3. 2020年最新前端学习路线
  4. SD从零开始15 税(Taxes)
  5. R语言观察日志(part3)--repeat循环
  6. 【线程】线程基本函数
  7. 图像处理论坛_【活动】CSIG菁英青云论坛第三期活动预告!!
  8. 蘑菇街更新招股书:Q3亏1.8亿 IPO后陈琪有79%投票权
  9. MTK 驱动开发(30)---Memory 移植
  10. (转载)Xcode 4.1/4.2/4.3 免证书(iDP)开发+真机调试+生成IPA全攻略
  11. limbo pc for android,「Limbo PC emulator」可以让安卓手机安装 Windows 10 了
  12. 全网首发:JDK绘制文字:二、绘制句柄的初始化流程
  13. Java实体映射工具:MapStruct
  14. php 61850,IEC61850客户端
  15. SREng日志全分析(一)
  16. Modelica学习笔记1
  17. CC2430串口设置问题解决后的感想
  18. 大数据经典案例与谬误
  19. RandomUtils 随机生成中文姓名,性别,Email,手机号,住址
  20. PaddleClas-SSLD知识蒸馏方法梳理(82.4%ResNet50系列模型养成之路)

热门文章

  1. ArcGIS聚类分析
  2. python爬取糗百第一页的笑话
  3. mfc 调用绿色版的Foxit Reader / 迷你pdf阅读器.exe的同时打开一个pdf文件
  4. 用友软件用友二次开发用友单据导入用友凭证导入工具用友EXCEL导入工具EXCEL导入凭证
  5. STM32+GM65二维码识别模块
  6. 新浪视频播放器站外调用代码
  7. 计算机专业术语大全(中~英文版)
  8. 世嘉MD游戏开发【十一】:背景卷轴滚动(视差滚动)Parallax Scroll和摄像机
  9. 数据库课程设计:会议预约管理系统(Java+MySQL)
  10. C语言在当代人工智能背景下的作用,人工智能c语言新手入门