当前位置: 首页 > news >正文

计数组合学7.11(RSK算法)

7.11 RSK算法

在对称函数理论中,有一个非凡的组合对应关系,称为RSK算法。(关于缩写RSK的含义以及其他名称,请参阅本章末尾的注释。)这里我们仅介绍RSK算法的最基本性质,从而能够给出舒尔函数一些基本性质的组合证明。当然,这些结果也可以通过纯代数方法证明,但在枚举组合学的教材中,我们更倾向于组合证明。

RSK算法的基本操作是将一个正整数 kkk 行插入到一个非斜的SSYT P=(Pij)P = (P_{ij})P=(Pij) 中,记作 P←kP \leftarrow kPk。操作 P←kP \leftarrow kPk 的定义如下:设 rrr 是满足 P1,r−1≤kP_{1,r-1} \leq kP1,r1k 的最大整数(如果 P11>kP_{11} > kP11>k,则令 r=1r = 1r=1)。如果 P1rP_{1r}P1r 不存在(即 PPPr−1r-1r1 列),则直接将 kkk 放在第一行的末尾。插入过程停止,得到的SSYT即为 P←kP \leftarrow kPk。另一方面,如果 PPP 至少有 rrr 列,即 P1rP_{1r}P1r 存在,则将 P1rP_{1r}P1r 替换为 kkk。被替换的元素 P1r:=k′P_{1r} := k'P1r:=k 会被“挤入”第二行,即按照上述插入规则将 k′k'k 插入到 PPP 的第二行中。继续这一过程,直到某个元素被插入到某一行的末尾(可能是新行的第一个元素)。最终得到的数组即为 P←kP \leftarrow kPk

7.11.1 示例


在这里插入图片描述

P←4P \leftarrow 4P4 的结果如下所示,其中每一行中被插入的元素(通过挤入或最终插入到第四行)用粗体表示。因此,4 挤出了 5,5 挤出了 6,6 挤出了 8,而 8 被插入到某一行的末尾。这些粗体元素的位置集合称为插入路径 I(P←4)I(P \leftarrow 4)I(P4)。对于此例,有 I(P←4)={(1,5),(2,4),(3,4),(4,3)}I(P \leftarrow 4) = \{(1,5),(2,4),(3,4),(4,3)\}I(P4)={(1,5),(2,4),(3,4),(4,3)}
在这里插入图片描述

插入路径有两个技术性质,对于证明RSK算法的性质非常有用。

7.11.2 引理

(a) 当我们将 kkk 插入到一个SSYT PPP 中时,插入路径会向左移动。更准确地说,如果 (r,s),(r+1,t)∈I(P←k)(r,s),(r+1,t) \in I(P \gets k)(r,s),(r+1,t)I(Pk),则 t≤st \leq sts
(b) 设 PPP 是一个SSYT,且 j≤kj \leq kjk。则 I(P←j)I(P \gets j)I(Pj) 严格位于 I((P←j)←k)I((P \gets j) \gets k)I((Pj)k) 的左侧。更准确地说,如果 (r,s)∈I(P←j)(r,s) \in I(P \gets j)(r,s)I(Pj)(r,t)∈I((P←j)←k)(r,t) \in I((P \gets j) \gets k)(r,t)I((Pj)k),则 s<ts < ts<t。此外,I((P←j)←k)I((P \gets j) \gets k)I((Pj)k) 不会延伸到 I(P←j)I(P \gets j)I(Pj) 的底部之下。等价地,
#I((P←j)←k)≤#I(P←j). \#I((P \gets j) \gets k) \leq \#I(P \gets j). #I((Pj)k)#I(Pj).

证明
(a) 假设 (r,s)∈I(P←k)(r,s) \in I(P \gets k)(r,s)I(Pk)。由于 PPP 的列严格递增,要么 Pr+1,s>PrsP_{r+1,s} > P_{rs}Pr+1,s>Prs,要么 PPP 中不存在 (r+1,s)(r+1,s)(r+1,s) 位置的元素。在第一种情况下,PrsP_{rs}Prs 不能被挤到第 sss 列的右侧,否则会违反 P←kP \gets kPk 的行弱递增性质,因为 PrsP_{rs}Prs 会与 Pr+1,sP_{r+1,s}Pr+1,s 在同一行中位于其右侧。第二种情况是显然的,因为否则会在第 r+1r+1r+1 行出现空缺。因此,(a) 得证。
(b) 由于一个数只能挤出一个更大的数,因此 kkk 会被插入到 P←jP \gets jPj 的第一行中 jjj 的严格右侧。由于 PPP 的第一行是弱递增的,jjj 挤出的元素不会大于 kkk 挤出的元素。因此,通过归纳法可知,I(P←j)I(P \gets j)I(Pj) 严格位于 I((P←j)←k)I((P \gets j) \gets k)I((Pj)k) 的左侧。I(P←j)I(P \gets j)I(Pj) 的底部元素 bbb 是被插入到其行末尾的。根据已证明的内容,如果 I((P←j)←k)I((P \gets j) \gets k)I((Pj)k) 在这一行有一个元素 ccc,则它位于 bbb 的右侧。因此,ccc 被插入到行的末尾,插入过程终止。由此可见,I((P←j)←k)I((P \gets j) \gets k)I((Pj)k) 永远不会延伸到 I(P←j)I(P \gets j)I(Pj) 的底部之下。

7.11.3 推论

如果 PPP 是一个SSYT且 k≥1k \geq 1k1,则 P←kP \gets kPk 也是一个SSYT。

证明:显然,P←kP \gets kPk 的行是弱递增的。现在,一个数 aaa 只能挤出一个更大的数 bbb。根据引理7.11.2(a),bbb 在被挤出时不会向右移动。因此,bbb 被插入到一个严格小于 bbb 的数下方,所以 P←kP \gets kPk 仍然是一个SSYT。

现在设 A=(aij)i,j≥1A = (a_{ij})_{i,j \geq 1}A=(aij)i,j1 是一个有限支撑的 N\mathbb{N}N-矩阵。我们可以将 AAA 视为无限矩阵,或者当 i>mi > mi>mj>nj > nj>naij=0a_{ij} = 0aij=0m×nm \times nm×n 矩阵。与 AAA 相关联的是一个广义排列或双线数组 wAw_AwA,定义为
wA=(i1i2i3⋯imj1j2j3⋯jm), w_A = \left( \begin{array}{cccc} i_1 & i_2 & i_3 & \cdots & i_m \\ j_1 & j_2 & j_3 & \cdots & j_m \end{array} \right), wA=(i1j1i2j2i3j3imjm),
其中 (a) i1≤i2≤⋯≤imi_1 \leq i_2 \leq \cdots \leq i_mi1i2im,(b) 如果 ir=isi_r = i_sir=isr≤sr \leq srs,则 jr≤jsj_r \leq j_sjrjs,以及 © 对于每一对 (i,j)(i,j)(i,j),恰好有 aija_{ij}aijrrr 满足 (ir,jr)=(i,j)(i_r, j_r) = (i,j)(ir,jr)=(i,j)。容易看出,AAA 唯一确定一个满足 (a)-© 的双线数组 wAw_AwA,反之亦然。例如,如果
A=[102020110], A = \left[ \begin{array}{ccc} 1 & 0 & 2 \\ 0 & 2 & 0 \\ 1 & 1 & 0 \end{array} \right], A=101021200,
则对应的双线数组为
wA=(1112231332212). w_A = \left( \begin{array}{cccc} 1 & 1 & 1 & 2 & 2 & 3 \\ 1 & 3 & 3 & 2 & 2 & 1 & 2 \end{array} \right). wA=(1113132222312).

现在,我们与 AAA(或 wAw_AwA)关联一对形状相同的SSYT (P,Q)(P,Q)(P,Q),定义如下:设 wAw_AwA 由 (7.38) 给出。从 (P(0),Q(0))=(∅,∅)(P(0), Q(0)) = (\emptyset, \emptyset)(P(0),Q(0))=(,) 开始(其中 ∅\emptyset 表示空SSYT)。如果 t<mt < mt<m(P(t),Q(t))(P(t), Q(t))(P(t),Q(t)) 已定义,则定义
(a) P(t+1)=P(t)←jt+1P(t+1) = P(t) \gets j_{t+1}P(t+1)=P(t)jt+1
(b) Q(t+1)Q(t+1)Q(t+1) 是通过插入 it+1i_{t+1}it+1(保持 Q(t)Q(t)Q(t) 的所有部分不变)使得 P(t+1)P(t+1)P(t+1)Q(t+1)Q(t+1)Q(t+1) 具有相同的形状而得到的。

过程在 (P(m),Q(m))(P(m), Q(m))(P(m),Q(m)) 处结束,我们定义 (P,Q)=(P(m),Q(m))(P,Q) = (P(m), Q(m))(P,Q)=(P(m),Q(m))。我们将这种对应关系记作 A→RSK(P,Q)A \xrightarrow{\text{RSK}} (P,Q)ARSK(P,Q),并称之为RSK算法。我们称 PPP 为插入表,QQQ 为记录表。

7.11.4 示例

AAAwAw_AwA 由 (7.39) 和 (7.40) 给出。SSYT (P(1),Q(1)),…,(P(7),Q(7))=(P,Q)(P(1), Q(1)), \ldots, (P(7), Q(7)) = (P,Q)(P(1),Q(1)),,(P(7),Q(7))=(P,Q) 如下:
在这里插入图片描述

RSK算法的主要结果如下。

7.11.5 定理

RSK算法是有限支撑的 N\mathbb{N}N-矩阵 A=(aij)i,j≥1A = (a_{ij})_{i,j \geq 1}A=(aij)i,j1 与形状相同的有序SSYT对 (P,Q)(P,Q)(P,Q) 之间的双射。在这种对应关系中,
j 在 P 中出现的次数恰好为 ∑iaij 次 j \text{ 在 } P \text{ 中出现的次数恰好为 } \sum_i a_{ij} \text{ 次} j  P 中出现的次数恰好为 iaij 
i 在 Q 中出现的次数恰好为 ∑jaij 次。 i \text{ 在 } Q \text{ 中出现的次数恰好为 } \sum_j a_{ij} \text{ 次。} i  Q 中出现的次数恰好为 jaij 次。
(后两个条件等价于 type(P)=col(A)\text{type}(P) = \text{col}(A)type(P)=col(A)type(Q)=row(A)\text{type}(Q) = \text{row}(A)type(Q)=row(A)。)

证明:根据推论7.11.3,PPP 是一个SSYT。显然,根据RSK算法的定义,PPPQQQ 具有相同的形状,并且 (7.41) 和 (7.42) 成立。因此,我们必须证明以下内容:(a) QQQ 是一个SSYT,(b) RSK算法是一个双射,即给定 (P,Q)(P,Q)(P,Q),可以唯一恢复 AAA

为了证明 QQQ 是一个SSYT,首先注意到 QQQ 的元素是按弱递增顺序插入的,因此 QQQ 的行和列是弱递增的。因此,我们必须证明 QQQ 的列是严格递增的,即 wAw_AwA 的顶行中两个相等的元素不会出现在 QQQ 的同一列中。但如果顶行中 ik=ik+1i_k = i_{k+1}ik=ik+1,则必须有 jk≤jk+1j_k \leq j_{k+1}jkjk+1。因此,根据引理7.11.2(b),jk+1j_{k+1}jk+1 的插入路径将始终严格位于 jkj_kjk 的插入路径的右侧,并且不会延伸到 jkj_kjk 的插入路径的底部之下。由此可见,两个插入路径的底部元素位于不同的列中,因此 QQQ 的列是严格递增的。

上述论证确立了RSK算法的一个重要性质:QQQ 中的相等元素是严格从左到右插入的。

剩下的任务是证明RSK算法是一个双射。给定 (P,Q)=(P(m),Q(m))(P,Q) = (P(m), Q(m))(P,Q)=(P(m),Q(m)),设 QrsQ_{rs}QrsQQQ 中最大元素的最右侧出现位置(其中 QrsQ_{rs}QrsQQQ 的第 rrr 行第 sss 列的元素)。由于 QQQ 中的相等元素是从左到右插入的,因此 Q(m−1)Q(m-1)Q(m1) 是通过删除 QrsQ_{rs}Qrs 得到的 Q(m)Q(m)Q(m),并且 PrsP_{rs}Prs 是在将 jmj_mjm 插入到 P(m−1)P(m-1)P(m1) 后被挤入位置的最后一个元素。然而,很容易反转插入过程:PrsP_{rs}Prs 必须是被 PPP 的第 r−1r-1r1 行中最右侧小于 PrsP_{rs}Prs 的元素 Pr−1,tP_{r-1,t}Pr1,t 挤出的。因此,从 PPP 中删除 PrsP_{rs}Prs,将 Pr−1,tP_{r-1,t}Pr1,t 替换为 PrsP_{rs}Prs,然后继续将 PPP 的第 r−2r-2r2 行中最右侧小于 Pr−1,tP_{r-1,t}Pr1,t 的元素替换为 Pr−1,tP_{r-1,t}Pr1,t,依此类推。最终,某个元素 jmj_mjm 会从 PPP 的第一行中被移除。这样,我们唯一地恢复了 (im,jm)(i_m, j_m)(im,jm)(P(m−1),Q(m−1))(P(m-1), Q(m-1))(P(m1),Q(m1))。通过迭代此过程,我们可以恢复整个双线数组 wAw_AwA。因此,RSK算法是单射的。

为了证明满射性,我们需要证明将上述过程应用于任意一对形状相同的SSYT (P,Q)(P,Q)(P,Q) 总能得到一个有效的双线数组 wA=(i,j)w_A = (i,j)wA=(i,j)。显然 i1≤i2≤⋯≤imi_1 \leq i_2 \leq \cdots \leq i_mi1i2im,因此我们需要证明如果 ik=ik+1i_k = i_{k+1}ik=ik+1,则 jk≤jk+1j_k \leq j_{k+1}jkjk+1。设 ik=Qrsi_k = Q_{rs}ik=Qrsik+1=Quvi_{k+1} = Q_{uv}ik+1=Quv,则 r≥ur \geq urus≤vs \leq vsv。当我们开始对 PrsP_{rs}Prs 进行逆向挤入时,它位于其行 rrr 的末尾(m−um-umu)。因此,当对 PuvP_{uv}Puv 进行逆向挤入时,其“逆向插入路径”在第 uuu 行严格位于第 vvv 列的左侧。因此,在第 uuu 行,PuvP_{uv}Puv 的逆向插入路径严格位于 PrsP_{rs}Prs 的逆向插入路径的左侧。通过简单的归纳论证(本质上是引理7.11.2(b)的“逆向”),PuvP_{uv}Puv 的整个逆向插入路径严格位于 PrsP_{rs}Prs 的逆向插入路径的左侧。特别地,在移除 ik+1i_{k+1}ik+1 之前,两个元素 jkj_kjkjk+1j_{k+1}jk+1 出现在第一行中,且 jkj_kjk 位于 jk+1j_{k+1}jk+1 的左侧。因此,jk≤jk+1j_k \leq j_{k+1}jkjk+1,证毕。

在7.13节中,我们将给出RSK算法的另一种“几何”描述,这对于证明一些显著性质非常有用。这种几何描述仅在矩阵 AAA 是置换矩阵时定义,即一个 n×nn \times nn×n 的 (0,1)-矩阵,每行和每列恰好有一个1。在这种情况下,双线数组的顶行就是 12⋯n12 \cdots n12n,而底行是 1,2,…,n1,2,\ldots,n1,2,,n 的一个排列 www,我们可以将其与 AAA 视为同一。当RSK算法应用于置换矩阵 AAA(或排列 w∈Snw \in \mathfrak{S}_nwSn)时,得到的表 PPPQQQ 就是标准杨表(形状相同)。反之,如果 PPPQQQ 是形状相同的SYT,则满足 A→RSK(P,Q)A \xrightarrow{\text{RSK}} (P,Q)ARSK(P,Q) 的矩阵 AAA 是一个置换矩阵。因此,RSK算法在对称群 Sn\mathfrak{S}_nSn 与形状为 λ⊢n\lambda \vdash nλn 的SYT对 (P,Q)(P,Q)(P,Q) 之间建立了双射。特别地,如果 fλf^\lambdafλ 表示形状为 λ\lambdaλ 的SYT的数量,则有基本恒等式
∑λ⊢n(fλ)2=n!.(7.43) \sum_{\lambda \vdash n} (f^\lambda)^2 = n!. \qquad(7.43)λn(fλ)2=n!.(7.43)

尽管置换矩阵是有限支撑 N\mathbb{N}N-矩阵的特殊情况,但实际上,任意 N\mathbb{N}N-矩阵 AAA 的RSK算法可以归结为置换矩阵的情况。具体来说,给定双线数组 wAw_AwA,假设长度为 nnn,将第一行替换为 1,2,…,n1,2,\ldots,n1,2,,n,并将第二行替换为其标准化形式,如ECI第57页所定义。为了重申标准化的定义,假设 wAw_AwA 的第二行有 cic_iciiii。然后将第二行中的1从左到右替换为 1,2,…,c11,2,\ldots,c_11,2,,c1,接着将2从左到右替换为 c1+1,c1+2,…,c1+c2c_1 + 1, c_1 + 2, \ldots, c_1 + c_2c1+1,c1+2,,c1+c2,依此类推,直到第二行变为 1,2,…,n1,2,\ldots,n1,2,,n 的一个排列。将得到的双线数组记为 w~A\widetilde{w}_AwA。例如,如果
A=[201011130], A = \begin{bmatrix} 2 & 0 & 1 \\ 0 & 1 & 1 \\ 1 & 3 & 0 \end{bmatrix}, A=201013110,

wA=(1112233311323122), w_A = \begin{pmatrix} 1 & 1 & 1 & 2 & 2 & 3 & 3 & 3 \\ 1 & 1 & 3 & 2 & 3 & 1 & 2 & 2 \end{pmatrix}, wA=(1111132223313232),
wAw_AwA 被替换为
w~A=(123456789128493567). \widetilde{w}_A = \begin{pmatrix} 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \\ 1 & 2 & 8 & 4 & 9 & 3 & 5 & 6 & 7 \end{pmatrix}. wA=(112238445963758697).

7.11.6 引理

wA=(i1i2⋯inj1j2⋯jn)w_A = \begin{pmatrix} i_1 & i_2 & \cdots & i_n \\ j_1 & j_2 & \cdots & j_n \end{pmatrix}wA=(i1j1i2j2injn) 是一个双线数组,且 w~A=(12⋯nj~1j~2⋯j~n)\widetilde{w}_A = \begin{pmatrix} 1 & 2 & \cdots & n \\ \widetilde{j}_1 & \widetilde{j}_2 & \cdots & \widetilde{j}_n \end{pmatrix}wA=(1j12j2njn)。假设 w~A→RSK(P~,Q~)\widetilde{w}_A \xrightarrow{\text{RSK}} (\widetilde{P}, \widetilde{Q})wARSK(P,Q)。设 (P,Q)(P,Q)(P,Q) 是通过将 Q~\widetilde{Q}Q 中的 kkk 替换为 iki_kik,并将 P~\widetilde{P}P 中的 j~k\widetilde{j}_kjk 替换为 jkj_kjkP~\widetilde{P}PQ~\widetilde{Q}Q 得到的表。则 wA→RSK(P,Q)w_A \xrightarrow{\text{RSK}} (P,Q)wARSK(P,Q)。换句话说,操作 wA↦w~Aw_A \mapsto \widetilde{w}_AwAwA 与RSK算法“交换”。

证明:假设在RSK算法的某个阶段,当数字 jjj 被插入到某一行时,它位于该行的第 kkk 个位置。如果将这个数字 jjj 替换为一个更大的数字 j+ϵj + \epsilonj+ϵ,且小于该行中大于 jjj 的任何元素,则 j+ϵj + \epsilonj+ϵ 也会被插入到第 kkk 个位置。由此可见,对于元素 j1,j2,…,jnj_1, j_2, \ldots, j_nj1,j2,,jn 的插入过程完全模仿了对于 j~1,j~2,…,j~n\widetilde{j}_1, \widetilde{j}_2, \ldots, \widetilde{j}_nj1,j2,,jn 的插入过程,证毕。

http://www.dtcms.com/a/311865.html

相关文章:

  • Android动画实现控件形状、大小逐渐过渡
  • 智能制造——解读CMMM评估手册【附全文阅读】
  • DyWA:用于可推广的非抓握操作的动态自适应世界动作模型
  • 硅基计划3.0 学习总结 伍 优先级队列排序初识
  • 【Vue3】Class绑定:从基础到高级的完整指南
  • Web前端实现银河粒子流动特效的3种技术方案对比与实践
  • 【完结篇】华为OpenStack架构学习9篇 连载—— 09 OpenStack编排管理【附全文阅读】
  • 深入 Go 底层原理(三):Goroutine 的调度策略
  • OSPF综合
  • VS Code高效开发指南:快捷键与配置优化详解
  • 深入 Go 底层原理(十二):map 的实现与哈希冲突
  • Mybatis学习之获取参数值(四)
  • 字符串(java不死)
  • c++之基础B(进制转换)(第三课)
  • 详解Python标准库之并发执行
  • AI Agent开发学习系列 - LangGraph(3): 有多个输入的Graph
  • C#多数据库批量执行脚本工具
  • OneCode3.0 核心表达式技术深度剖析:从架构设计到动态扩展
  • 波士顿咨询校招面试轮次及应对策略解析
  • 双机并联无功环流抑制虚拟阻抗VSG控制【simulink仿真模型实现】
  • OneCodeServer 架构深度解析:从组件设计到运行时机制
  • 「iOS」————weak底层原理
  • Conda创建虚拟环境,解决不同项目的冲突!
  • Windows本地使用dify搭建知识库+ollama+deepseek
  • 从零打造大语言模型--处理文本数据
  • vue引入阿里巴巴矢量图库的方式
  • SpringBoot3.x入门到精通系列: 2.3 Web开发基础
  • sifu mod制作 相关经验
  • 11:java学习笔记:1D array(1维数组)
  • Windows下定位Mingw编译的Qt程序崩溃堆栈