Skip to content

组合类的序列构造

Sequence construction in combinatorics · SEQ construction

把若干组件按线性次序排列,并将自由序列翻译为几何级数的组合构造。

条目类型
定义

形式陈述

给定组合类 B,其长度为 k 的序列类为

SEQk(B)=Bk,

对象是有序元组 (β1,,βk),大小按组件相加:

|(β1,,βk)|=j=1k|βj|.

自由序列构造定义为

SEQ(B)=k0SEQk(B),

其中 k=0 给出唯一空序列 ε。若 B 没有大小零对象,即 B(0)=0符号方法给出

SEQk(B)B(z)k,SEQ(B)k0B(z)k=11B(z).

这套公式对无标号类的 OGF 与标号类的 EGF 都成立;标号情形把每个乘积理解为标签集的有序划分。还常用

SEQk(B)B(z)k1B(z).

若每个组件的大小至少为一,那么固定总大小 n 时,只有 kn 的序列长度可能贡献。因此上面的无限和在逐个系数上其实都是有限和:这既证明形式几何级数合法,也说明构造后的组合类仍保持每层有限。

直觉

序列构造记录“先后次序”。同样两个组件,(β1,β2)(β2,β1) 一般是不同对象。长度固定时,每多一个位置就多乘一个 B(z);允许任意长度,就把所有幂相加成几何级数。形式级数的复合条件 B(0)=0 也有直接组合含义:每添一个组件必须让总大小有所增长。

SEQ 的关键不是对象排成一行的图像,而是分解边界可辨。一个结果对象必须能唯一恢复第一个、第二个乃至最后一个组件。若切分位置不唯一,几何级数会把同一对象按多种切法重复计算。

例子与边界

把一个正整数部分看作非空原子序列:

P=SEQ1(Z),P(z)=z1z.

整数的有序合成是这些正部分组成的序列,

C=SEQ(P),C(z)=11P(z)=1z12z.

因此 [z0]C(z)=1,而 n1[zn]C(z)=2n1。这个系数可复算:在 n 个连续原子之间有 n1 个空隙,每个空隙独立选择切开或不断开,正好决定一个合成。例如 4 的八个合成对应三个空隙的八种切法。

条件 B(0)=0 不能省略。若 B 含一个空对象,则任意序列都可在组件间插入任意多个空对象,大小不变却得到无限多个对象;代数上,1B(z) 的常数项不再可逆。若只允许至多一个空组件或固定长度,则可另作有限构造,但那已不是上述自由 SEQ。

SEQ 也不适用于忽略顺序的组件集,更不适用于只把旋转视为相同的环形排列。前者应使用 SET/MSET,后者应使用 CYC;把三者都翻译成几何级数会系统性地误计对称性。

推论与应用

词、路径的步序列、平面根树的有序子树、整数合成与正则语言都自然使用 SEQ。若递归规格形如

T=Z×SEQ(T),

便得到隐式方程 T=z/(1T),再由系数提取获得 Catalan 数。长度还可用变量 u 标记:

SEQ(B)11uB(z),

于是 [ukzn] 同时记录组件数与总大小。该二元标记在分析组件数量的均值和极限定律时尤其有用。

参考资料
  • Philippe Flajolet and Robert Sedgewick, Analytic Combinatorics, Cambridge University Press, 2009, Chapters I–II, sequence constructions。
  • Robert Sedgewick and Philippe Flajolet, An Introduction to the Analysis of Algorithms, 2nd ed., Addison-Wesley, 2013, §3.2。
  • Herbert S. Wilf, generatingfunctionology, 3rd ed., A K Peters, 2006, Chapter 2。
关系图谱2 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系