专栏文章

浅谈组合统计量及 Parking 函数相关

算法·理论参与者 37已保存评论 47

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
47 条
当前快照
1 份
快照标识符
@mhz5rwtr
此快照首次捕获于
2025/11/15 01:55
4 个月前
此快照最后确认于
2025/11/29 05:24
3 个月前
查看原文

前言

本文引入了组合统计量的概念,并探讨了其在序列上、格路径上的相关内容,并着重介绍了停车问题可解序列的集合 (Parking Function) 相关的定理及其与有标号有根森林 (Rooted labeled forests) 间的双射。

目录

  • 格路径的基本概念
    • 卡特兰数与 Dyck\rm Dyck
      • 左右子树地位不等同的二叉树计数
    • Schro¨der\rm Schröder
  • Parking\rm Parking 函数的基本概念
    • 判定
    • Parking\rm Parking 函数到 Dyck\rm Dyck 路的映射
    • Parking\rm Parking 函数的计数
  • q-q\text -模拟与组合统计量
    • q-q\text -模拟
    • 排列上的组合统计量
  • 格路径的组合统计量
    • qCatalan\rm{q{-}Catalan}
    • 格路径与 0101 序列的对应
  • Parking\rm Parking 函数到树的双射
    • 有标号森林的基本概念
    • PFn\mathcal{PF}_nFn\mathcal F_n 的几个关联
    • 停车问题与树的双射
      • 映射 φ:FnPFn\varphi:\mathcal {F_n}\to\mathcal{PF}_n
      • 逆映射:φ1:PFnFn\varphi^{-1}:\mathcal{PF}_n\to\mathcal{F}_n

格路径的基本概念

我们首先对格路径作一个基本介绍,作为后文与之相关内容的一个铺垫,并稍微探讨其计数问题。

卡特兰数与 Dyck 路

(0,0)(0,0) 走到 (p,q)(p,q) 的格路径为 (p+qp)=(p+qq)\binom{p+q}{p}=\binom{p+q}{q}。现在考虑从 (0,0)(0,0)(p,q)(p,q) 的下对角线格路径数量,我们可以将起点和终点各下移一格,将问题转化为求 (0,1)(p,q1)(0,-1)\to(p,q-1) 的总路径数量减去触碰或穿过对角线的路径数量。显然,这样的路径能与 (1,0)(p,q1)(-1,0)\to(p,q-1) 一一对应。
因之从 (0,0)(0,0)(p,q)(p,q) 的不穿过对角线的格路径数量为:
(p+qq)(p+1+q1q1)=pq+1p+1(p+qq)\binom{p+q}{q}-\binom{p+1+q-1}{q-1}=\frac{p-q+1}{p+1}\binom{p+q}{q}
p=q=np=q=n,我们就得到了卡特兰数 CC
Cn=1n+1(2nn)C_n=\frac{1}{n+1}\binom{2n}{n}
相仿地,一条不走到对角线下方的格路径称作 Dyck\mathbf{Dyck}。所有 nnDyck\mathrm{Dyck} 路的集合记作 Dn\mathcal D_n

Delannoy 数

现在考虑不仅能水平、垂直前进,还可以沿右上对角线走一格(HVD\rm HVD 路径)时,从 (0,0)(0,0)(p,q)(p,q) 的路径数。这个数就是 Delannoy\mathbf{Delannoy}
如果使用了 rr 个对角步,那么剩下 pr,qrp-r,q-r 个垂直和水平步。设:
D(p,q:r)=(p+qrprqrr)D(p,q:r)=\binom{p+q-r}{p-r\quad q-r\quad r}
Delannoy\rm DelannoyD(n,m)D(n,m) 为:
D(n,m)=k=0min(n,m)(n+mknkmkk)=k=0min(n,m)(n+mk)!(nk)!(mk)!k!D(n,m)=\sum_{k=0}^{\min(n,m)}\binom{n+m-k}{n-k\quad m-k\quad k}=\sum_{k=0}^{\min(n,m)}\frac{(n+m-k)!}{(n-k)!(m-k)!k!}

递推关系

考虑 CnC_n 的计数意义。我们枚举第一次碰到主对角线的 kk,使 (0,0)(k,k)(0,0)\to(k,k) 且中间不经过下对角线,即 Ck1C_{k-1}。而 (k,k)(n,n)(k,k)\to(n,n) 就是 CnkC_{n-k}。从而:
Cn=k=1nCk1Cnk=k=0n1CkCnk1C_n=\sum_{k=1}^n C_{k-1}C_{n-k}=\sum_{k=0}^{n-1}C_{k}C_{n-k-1}
即:
Cn+1=k=0nCkCnkC_{n+1}=\sum_{k=0}^nC_kC_{n-k}
C(z)=k=0CkzkC(z)=\sum\limits_{k=0}^{\infty}C_kz^k 为卡特兰数列的生成函数,于是就有:
C2(z)=s=0(k=0sCkCsk)zs=k=0Ck+1zk=1zk=0Ck+1zk+1=C(z)1z\begin{aligned} C^2(z)&=\sum_{s=0}^\infty\left(\sum_{k=0}^s C_kC_{s-k}\right)z^s=\sum_{k=0}^{\infty}C_{k+1}z^k\\& =\frac{1}{z}\sum_{k=0}^\infty C_{k+1}z^{k+1}=\frac{C(z)-1}{z} \end{aligned}
解出有意义的解为:
C(z)=114z2zC(z)=\frac{1-\sqrt{1-4z}}{2z}

C(z)C(z) 的展开

C(z)=114z2z=12z(1(14z)12)=12z(1i=0(12i)(4z)i)\begin{aligned} C(z)&=\frac{1-\sqrt{1-4z}}{2z}=\frac{1}{2z}\left(1-(1-4z)^\frac{1}{2}\right)\\ &=\frac{1}{2z}\left(1-\sum_{i=0}^{\infty}\binom{\frac{1}{2}}{i}(-4z)^i\right) \end{aligned}
从而:
Cn=[zn]C(z)=12(12n+1)(1)n4n+1=12k=0n(12k)(n+1)!(1)n4n+1=1212k=1n(k12)(n+1)!4n+1=12(2n)!2nn!(n+1)!2n+1=(2n)!n!(n+1)!=1n+1(2nn)\begin{aligned} C_n&=\left[z^n\right]C(z)=\frac{1}{2}\binom{\frac{1}{2}}{n+1}(-1)^n4^{n+1}\\ &=\frac{1}{2}\frac{\prod_{k=0}^n\left(\frac{1}{2}-k\right)}{(n+1)!}(-1)^n4^{n+1}\\ &=\frac{1}{2}\frac{\frac{1}{2}\prod_{k=1}^n\left(k-\frac{1}{2}\right)}{(n+1)!}4^{n+1}\\ &=\frac{1}{2}\frac{(2n)!}{2^nn!(n+1)!}2^{n+1}=\frac{(2n)!}{n!(n+1)!}\\ &=\frac{1}{n+1}\binom{2n}{n} \end{aligned}

左右子树地位不等同的二叉树计数

Catalan\rm Catalan 数还出现在很多不同的场合,左右子树地位不等同的二叉树计数就是一个例子。
有两种方法可以得到其二叉树的生成函数。我们设 A,B\mathcal {A,B} 表可空和不可空的左右不等同二叉树组合类,那么有:
A=ϵ+A××A\mathcal A=\epsilon+\mathcal A{\times}{\circ}{\times}\mathcal A B=+B×+×B+B××BB=\circ+\mathcal B{\times}{\circ}+{\circ}{\times}\mathcal B+\mathcal B{\times}{\circ}{\times}\mathcal B
可解得:
A(z)=114z2z,B(z)=12z14z2zA(z)=\frac{1-\sqrt{1-4z}}{2z},\quad B(z)=\frac{1-2z-\sqrt{1-4z}}{2z}
的确满足 A=ϵ+B\mathcal A=\epsilon+\mathcal B;这两种途径都得到了卡特兰数。事实上我们还可以代入其生成函数验证 A\mathcal AB\mathcal B 的如下关系:
A=ϵ++B×+×B+B××B\mathcal A=\epsilon+\circ+\mathcal B{\times}{\circ}+{\circ}{\times}\mathcal B+\mathcal B{\times}{\circ}{\times}\mathcal B

Schröder 数

(0,0)(p,q)(0,0)\to(p,q) 的下对角 HVD\rm HVD 路径的计数为 R(p,q)R(p,q),并记 R(p,q:r)R(p,q:r) 表示使用了 rrD\rm D 移动的不穿过对角的路径。
除去 rrD\rm D 路径后,剩下 (pr,qr)(p-r,q-r) 就是一个不穿过对角线上方的路径计数。然后将 rr 插入到 H,V\rm H,V 和两端的中间,总方案数为 (p+qrr)\binom{p+q-r}{r}。简单计算可得:
R(n,m)=k=0min(n,m)R(n,m:k)R(n,m)=\sum_{k=0}^{\min(n,m)}R(n,m:k) =k=0min(n,m)nm+1nk+1(n+mk)!(nk)!(mk)!k!=\sum_{k=0}^{\min(n,m)}\frac{n-m+1}{n-k+1}\frac{(n+m-k)!}{(n-k)!(m-k)!k!}
Schro¨der\mathbf{ Schröder} RnR_n 定义为 R(n,n)R(n,n)
Rn=k=0n1nk+1(2nk)!k!((nk)!)2R_n=\sum_{k=0}^n\frac{1}{n-k+1}\frac{(2n-k)!}{k!((n-k)!)^2}
所有 nnHVD\rm HVD 格路径的集合记作 Sn\mathcal S_n

生成函数

考虑从 (0,0)(n,n)(0,0)\to (n,n) 的第一步。当这一步为 (1,1)(1,1) 时,此后的路径数目即为 Rn1R_{n-1}。而当第一步为 (1,0)(1,0) 时,我们总能找到一个 1kn1\leqslant k\leqslant nkk,使得 kk 是第一个碰到对角线的点。在 kk 前的路径个数是 Rk1R_{k-1}kk 以后为 RnkR_{n-k}。综合以上两类第一步的数量可得:
Rn=Rn1+k=1nRk1Rnk=Rn1+k=0n1RkRn1kR_n=R_{n-1}+\sum_{k=1}^nR_{k-1}R_{n-k}=R_{n-1}+\sum_{k=0}^{n-1}R_kR_{n-1-k}
其中 R0=1R_0=1。从而:
znRn=z(zn1Rn2)+z(k=0kn1zkRkzn1kRn1k)(n1)z^nR_n=z\left(z^{n-1}R_{n-2}\right)+z\left(\sum_{k=0k}^{n-1}z^kR_{k}z^{n-1-k}R_{n-1-k}\right)\quad(n\geqslant 1)
R(z)R(z)Schro¨der\rm Schröder 数的生成函数,因 R0=1R_0=1,故有:
R(z)=1+zR(z)+zR2(z)R(z)=1+zR(z)+zR^2(z)
解出有意义的解为:
R(z)=1zz26z+12zR(z)=\frac{1-z-\sqrt{z^2-6z+1}}{2z}

Parking 函数的基本概念

nnParking\mathbf{Parking} 函数 定义为一个使 nn 位停车问题可解的序列 P=a1a2anP=a_1a_2\dots a_n。所有 nnParking\mathrm{Parking} 函数的集合记作 PFn\mathcal{PF}_n

停车问题

nn 个停车位和 nn 辆车,每辆车 ii 有一个偏好的停车位置 aia_i。每辆车依次进入时,首先开到位置 aia_i。若该位置有车,则在该车位沿往后最近的一个空位停车,求序列 aia_i 使得每辆车均可以停车成功。该问题称为停车问题

判定

定理\quad序列 a1a2a3ana_1a_2a_3\dots a_nParking\rm Parking 函数,当且仅当 aa 重排后的序列 b1b2bnb_1b_2\dots b_n 满足 i,bii\forall i,b_i\leqslant i
Proof.Proof.\quad该判定等价于偏好 1i1\sim i 的车大于等于 ii 辆。将 nn 个车位后面再加一个车位,并将 n+1n+1 个车位首尾接成一个环,则条件等价于位置 n+1n+1 无车停。
  • 充分性:假设满足该判定且位置 n+1n+1 有车,则必有一个 ini\leqslant n 无车。则此时偏好 1i1\sim i 的车仅有 i1i-1 辆,矛盾。
  • 必要性:位置 n+1n+1 无车,表明对于任意 ini\leqslant n,位置 11ii 均停满车,即 biib_i\leqslant i
这就证明了该定理。\square
推论\quad一个 Parking\text{Parking} 函数的所有排列仍是 Parking\rm Parking 函数。

Parking 函数到 Dyck 路的映射

考虑一个 Dyck\mathrm{Dyck} 路。将每辆汽车放在一个垂直步的正右一格位置,且限制若 iijj 的上方,则要求 i>ji>j
这样放置的意义为:若列 ii 上放置了车 i1,,iji_1,\dots,i_j,则表明这些车以位置 ii 为最喜欢的车位。Parking\rm Parking 函数的要求暗含了 Dyck\mathrm{Dyck} 路的要求,即,它满足了上述判定。
如果你不理解,请看下面这个例子。44 辆车的偏好位置分别为 a1=2,a2=3,a3=1,a4=2a_1=2,a_2=3,a_3=1,a_4=2,对应第一列上放置数字 33,第二列上放置数字 1,41,4,第三列上放置数字 22Dyck\rm Dyck 路不穿过主对角线的限制使这种放置满足了 aa 重排后 biib_i\leqslant i 的要求。

Parking 函数的计数

nnParking\rm Parking 函数的数量 PFn|\mathcal{P F}_n| 为:
(n+1)n1(n+1)^{n-1}
Proof.Proof.\quad下面记 [n]={1,2,,n}[n]=\{1,2,\dots,n\}。考虑对上述环形停车问题稍作改变,即 ai[n+1]a_i\in[n+1]。易见这个改变不影响成为 Parking\rm Parking 函数的条件,即,我们仍然需要对使得车位 n+1n+1 空出的序列进行计数。所有满足 i[n],ai[n+1]i\in[n],a_i\in[n+1] 的序列共有 (n+1)n(n+1)^n 个,且每个序列必空出一个位置。由圆周的对称性,空出车位 n+1n+1 的数列数量,即 nnParking\rm Parking 函数的数量 PFn|\mathcal{PF}_n|(n+1)n1(n+1)^{n-1}\square

q-q\text -模拟与组合统计量

一个组合统计量是一个组合类 A\mathcal A 到自然数集的具有组合意义的映射 f:ANf:\mathcal A\to \mathbb{N}

q-q\text -模拟

一个非负整数 nnq-\mathbf q\text -模拟 是一个关于 qqn1n-1 次多项式,记作 [n]q[n]_q,其为:
[n]q=1+q++qn1[n]_q=1+q+\dots+q^{n-1}
定义:
[n]!=[1]q[2]q[n]q,[nk]q=[n]![k]![nk]![n]!=[1]_q[2]_q\cdots[n]_q\,,\quad\begin{bmatrix}n\\k\end{bmatrix}_q=\frac{[n]!}{[k]![n-k]!}
q\mathbf{q}-阶乘q\mathbf{q}-二项式系数。显然 limq1[nk]q(q)=(nk)\lim_{q\to1}\begin{bmatrix}n\\k\end{bmatrix}_q(q)=\dbinom{n}{k}。更一般地:
[nm1m2mk]q=[n]![m1]![m2]![mk]!\begin{bmatrix}n\\m_1\quad m_2\quad \cdots\quad m_k\end{bmatrix}_q=\frac{[n]!}{[m_1]![m_2]!\cdots[m_k]!}
q\mathbf{q}-多项式系数

q-q\text -帕斯卡公式

[nk]q=qk1[n1k]q+[n1k1]q\begin{bmatrix}n\\k\end{bmatrix}_q=q^{k-1}\begin{bmatrix}n-1\\k\end{bmatrix}_q+\begin{bmatrix}n-1\\k-1\end{bmatrix}_q

排列上的组合统计量

定理(Mahonian 性质)

定义 Pn\mathcal P_n[n][n] 上所有长度为 nn 的无重复序列的集合,设 wPnw\in\mathcal P_n,定义组合统计量 maj,inv\operatorname{maj},\operatorname{inv} 为:
inv(w)=i<j,wi>wj1,maj(w)=wi>wi+1i\operatorname{inv(w)}=\sum_{i<j,w_i>w_j}1\,,\quad\operatorname{maj(w)}=\sum_{w_i>w_{i+1}}i
则对于 maj,inv\rm maj,inv,其具有 Mahonian\rm Mahonian 性质:
σPnqinv(σ)=[n]!=σPnqinv(σ)\sum_{\sigma\in \mathcal P_n}q^{\operatorname{inv(\sigma)}}=[n]!=\sum_{\sigma\in \mathcal P_n}q^{\operatorname{inv(\sigma)}}
Proof.Proof.
inv\mathbf{inv} 部分\quadh(σ)h(\sigma) 为排列 ww 中在数 nn 右侧的数的个数,并记 σ1\sigma_1σ\sigma 去掉数 nn 后的结果,显然 σ1Pn1\sigma_1\in\mathcal P_{n-1},且有 inv(σ)=h(σ)+inv(σ1)\operatorname{inv}(\sigma)=h(\sigma)+\operatorname{inv}(\sigma_1),故:
σPnqinv(σ)=k=0n1σPn,h(σ)=kqinv(σ)=k=0n1σ1Pn1qk+inv(σ1)=k=0n1qkσ1Pn1qinv(σ1)=[n]qσPn1qinv(σ)\begin{aligned} \sum_{\sigma\in\mathcal P_n}q^{\operatorname{inv(\sigma)}}&=\sum_{k=0}^{n-1}\sum_{\sigma\in \mathcal P_n,h(\sigma)=k}q^{\operatorname{inv}({\sigma})}=\sum_{k=0}^{n-1}\sum_{\sigma_1\in \mathcal P_{n-1}}q^{k+\operatorname{inv}(\sigma_1)}\\ &=\sum_{k=0}^{n-1}q^{k}\sum_{\sigma_1\in \mathcal P_{n-1}}q^{\operatorname{inv(\sigma_1)}}=[n]_q\sum_{_{\sigma\in \mathcal P_{n-1}}}q^{\operatorname{inv}(\sigma)}\end{aligned}
如是递归下去。显而易见 σP1qinv(σ)=[1]q\sum_{\sigma\in \mathcal P_1}q^{\operatorname{inv}({\sigma})}=[1]_q,立即证得 σPnqinv(σ)=[n]q[n1]q[1]q=[n]!\sum_{\sigma\in \mathcal P_n}q^{\operatorname{inv(\sigma)}}=[n]_q[n-1]_q\cdots[1]_q=[n]!
maj\mathbf{maj} 部分\quadnn 插入 Pn1P_{n-1} 中任意 τ\taunn 个间隔时,其增量恰取遍 0,1,,n10,1,\dots,n-1 一次。从而:
σPnqmaj(σ)=τPn1k=0n1qmaj(τ)+k=[n]τPn1qmaj(τ)\sum_{\sigma\in \mathcal P_n}q^{\operatorname{maj}(\sigma)}=\sum_{\tau\in \mathcal P_{n-1}}\sum_{k=0}^{n-1}q^{\operatorname{maj}(\tau)+k}=[n]\sum_{\tau\in \mathcal P_{n-1}}q^{\operatorname{maj}(\tau)}
边界与 inv\rm inv 的情形是类似的,可得其为 [n]![n]!\square
一般地,如果组合统计量 ff 满足:
σPnqf(σ)=[n]!\sum_{\sigma\in \mathcal P_{n}}q^{f(\sigma)}=[n]!
则称这样的组合统计量 ffMahonian\mathbf{Mahonian}
定理\quadα=(m1,m2,,mk)Nk,n=ȷmȷ\mathbf{\alpha}=(m_1,m_2,\dots,m_k)\in\mathbb N^k,n=\sum_{\jmath}m_{\jmath},令 Mα\mathcal M_{\alpha} 表示其上所有全排列,则:
wMαqinv(w)=[nm1m2mk]q=wMαqmaj(w)\sum_{w\in\mathcal M_{\alpha}}q^{\operatorname{inv}(w)}=\begin{bmatrix}n\\m_1\quad m_2\quad \cdots\quad m_k\end{bmatrix}_q=\sum_{w\in\mathcal M_{\alpha}}q^{\operatorname{maj}(w)}

格路径的组合统计量

Catalan 序列集与 Dyck 路集

一个序列被称之为 n\mathbf n Catalan\mathbf{Catalan} 序列,如果其由 nn00nn11 构成,且该序列的任一前缀中 00 的个数均不小于 11 的个数。所有 nnCatalan\rm Catalan 序列构成的集合记作 CWn\mathcal{CW}_n
CWn\mathcal{CW}_nDn\mathcal D_n 间存在一个显然的双射:将 00(0,1)(0,1) 对应,将 11(1,0)(1,0) 对应。

q-Catalan 数

对于 Dn\mathcal D_n 中的一条 Dyck\rm DyckΠ\Pi,令 ai(Π)a_i(\Pi) 为自下而上第 ii 行里 Π\Pi 和主对角线之间的完整方格个数,并定义组合统计量 area\operatorname{area}
area(Π)=i=1nai(Π)\operatorname{area}(\Pi)=\sum_{i=1}^n a_i(\Pi)
一个 qCatalan\mathbf{q-Catalan} Cn(q)C_n(q) 以如下形式定义:
Cn(q)ΠDnqarea(Π)C_n(q)\sum_{\Pi\in\mathcal D_n}q^{\operatorname{area}(\Pi)}

递推关系

定理\quad 对任意正整数 nn,有:
Cn(q)=k=0nqk1Ck1(q)Cnk(q)C_n(q)=\sum_{k=0}^n q^{k-1}C_{k-1}(q)C_{n-k}(q)
Proof.Proof.\quadh(Π)h(\Pi) 表示 Π\Pi(0,0)(0,0) 以后第一次碰到主对角线时的高度,则点 (h(Π),h(Π))(h(\Pi),h(\Pi))Π\Pi 分为 Π1,Π2\Pi_1,\Pi_2 上下两段。设 k=h(Π)k=h(\Pi),显然 Π1\Pi_1 必经过 (0,1),(k1,k)(0,1),(k-1,k) 两点。设该 (0,1)(0,1)(k1,k)(k-1,k) 段路径为 Π3\Pi_3。于是 1kn1\leqslant k\leqslant n,且 Π1Dk,Π2Dnk,Π3Dk1\Pi_1\in\mathcal D_k,\Pi_2\in\mathcal D_{n-k},\Pi_3\in\mathcal D_{k-1},且:
area(Π)=area(Π1)+area(Π2)=k1+area(Π3)+area(Π2)\operatorname{area}(\Pi)=\operatorname{area}(\Pi_1)+\operatorname{area}(\Pi_2)=k-1+\operatorname{area}(\Pi_3)+\operatorname{area}(\Pi_2)
则:
Cn(q)=k=1nΠDn,h(Π)=kqarea(Π)=k=1nqk(Π3Dk1qarea(Π3)×Π2Dkqarea(Π2))=k=0nqk1Ck1(q)Cnk(q)\begin{aligned} C_n(q)&=\sum_{k=1}^n\sum_{\Pi\in\mathcal D_n,h(\Pi)=k}q^{\operatorname{area}(\Pi)}\\ &=\sum_{k=1}^n q^k\left(\sum_{\Pi_3\in\mathcal D_{k-1}}q^{\operatorname{area}(\Pi_3)}\times \sum_{\Pi_2\in\mathcal D_{k}}q^{\operatorname{area}(\Pi_2)}\right)\\ &=\sum_{k=0}^n q^{k-1}C_{k-1}(q)C_{n-k}(q)\end{aligned}

另一个定理

wCWnqmaj(w)=1[n+1]q[2nn]q\sum_{w\in\mathcal{CW_n}}q^{\operatorname{maj}(w)}=\frac{1}{[n+1]_q}\begin{bmatrix}2n\\n\end{bmatrix}_q

格路径与 01 序列的对应

一条从 (0,0)(0,0)(m,n)(m,n) 的只由 (0,1),(1,0)(0,1),(1,0) 步构成的路径称之为 (m,n)\mathbf{(m,n)} 格路径。所有 (m,n)(m,n) 格路径的集合记作 Lm,n\mathcal L_{m,n}
记全体 mm11nn00 的 0/1 序列集合为 Mm,n\mathcal M_{m,n}Lm,n\mathcal L_{m,n}Mm,n\mathcal M_{m,n} 有一个显然的双射:将 00(0,1)(0,1) 对应,将 11(1,0)(1,0) 对应。
LLm,nL\in \mathcal L_{m,n},令 ai(L)a_i(L) 为第 ii 行与纵坐标轴 x=0x=0 之间的方格数,定义:
area(L)=i=1nai(L)\operatorname{area}(L)=\sum_{i=1}^n a_i(L)
定理\quadLLm,nL\in \mathcal L_{m,n}wLMm,nw_{L}\in \mathcal M_{m,n} 是上述双射对应的一对元素,则:
area(L)=inv(wL)\operatorname{area}(L)=\operatorname{inv}(w_{L})
推论
LLm,nqarea(L)=[m+nn]q\sum_{L\in\mathcal L_{m,n}}q^{\operatorname{area}(L)}=\begin{bmatrix}m+n\\n\end{bmatrix}_q

Parking 函数到树的双射

这是本文讨论的最后一个话题,也是本文介绍的主要对象之一。作为本文的最后一部分,我们将讨论经典的停车问题与标记树的联系,并给出一个双射。

有标号森林的基本概念

一个由有标号树构成的森林称之为有标号森林,特别地,有标号有根树构成的森林称为有标号有根森林 (Rooted Labeled Forests)。记所有由 nn 个点构成的有标号有根森林集合为 Fn\mathcal F_n
nn 个点的有标号有根森林数量就是 n+1n+1 个点的标记树数量,因此有:
Fn=(n+1)n1\left|\mathcal F_n\right|=(n+1)^{n-1}
这个等式可以用矩阵树定理证明,这在我们的讨论范围以外。

有标号有根森林的组合统计量

定义:
inv(F;v)=card({(v,u)udes(v),u<v})\operatorname{inv}(F;v)=\operatorname{card}\big(\{(v,u)\mid u\in\operatorname{des}(v),u<v\}\big)
其中 des(v)=subtree(v){v}\operatorname{des}(v)=\operatorname{subtree}(v)\setminus\{v\},即 vv 的子树除去 vv 以外的点构成的集合 (descendant),并定义组合统计量 inv(F)\operatorname{inv}(F)
inv(F)=vinv(F;v)\operatorname{inv}(F)=\sum_{v}\operatorname{inv} (F;v)
称一个节点 vv 是一个 leader,如果 inv(F;v)=0\operatorname{inv}(F;v)=0。定义组合统计量 lead(F)\operatorname{lead}(F)
lead(F)=card({vv is a leader in F})\operatorname{lead}(F)=\operatorname{card}\big(\{v\mid v\text{ is a leader in }F\}\big)

PFn\mathcal{PF_n}Fn\mathcal F_n 的几个关联

定理n\quad nParking\rm Parking 函数的数量和 nn 个点的有标号森林数量相等,即:
PFn=(n+1)n1=Fn|\mathcal{PF_n}|=(n+1)^{n-1}=|\mathcal F_n|
这启示我们可能存在某些双射。该式的两端在上文均已解释。

Parking 函数的组合统计量

P=p1p2pn,PPFnP=p_1p_2\dots p_n,P\in\mathcal{PF}_nPP 中每辆车最终停车位置为 q1,q2,,qnq_1,q_2,\dots,q_n,令 jump(P;i)=piqi\operatorname{jump}(P;i)=p_i-q_i,并令组合统计量 jump(P)\operatorname{jump}(P) 为:
jump(P)=i=1njump(P;i)\operatorname{jump}(P)=\sum_{i=1}^n \operatorname{jump}(P;i)
注意到:
jump(P)=(q1+q2++qn)(p1+p2++pn)=(n+12)ȷpȷ\begin{aligned} \operatorname{jump}(P)&=(q_1+q_2+\dots+q_n)-(p_1+p_2+\dots+p_n)\\ &=\binom{n+1}{2}-\sum_{\jmath} p_{\jmath} \end{aligned}
对于 PP 的一个 cc,称其为 lucky 的,如果 jump(P;c)=0 \operatorname{jump}(P;c)=0,即,它恰好停到了偏好的位置。定义组合统计量 lucky(P) \operatorname{lucky}(P)
lucky(F)=card({cc is lucky})\operatorname{lucky}(F)=\operatorname{card}\big(\{c\mid c\text{ is lucky}\}\big)

组合统计量上的联系

注意到:
FF1qinv(F)=1FF2qinv(F)=2+qFF3qinv(F)=6+6q+3q2+q3\begin{aligned} \sum_{F\in\mathcal{F}_1}q^{\operatorname{inv}(F)}&=1\\ \sum_{F\in\mathcal{F}_2}q^{\operatorname{inv}(F)}&=2+q\\ \sum_{F\in\mathcal{F}_3}q^{\operatorname{inv}(F)}&=6+6q+3q^2+q^3 \end{aligned} PPF1qjump(P)=1PPF2qjump(P)=2+qPPF3qjump(P)=6+6q+3q2+q3\begin{aligned} \sum_{P\in\mathcal{PF}_1}q^{\operatorname{jump}(P)}&=1\\ \sum_{P\in\mathcal{PF}_2}q^{\operatorname{jump}(P)}&=2+q\\ \sum_{P\in\mathcal{PF}_3}q^{\operatorname{jump}(P)}&=6+6q+3q^2+q^3 \end{aligned}
事实上,这的确是一个一般的规律。我们有:
  1. 定理 (G.Kreweras 1980)
FFnqinv(F)=PPFnq(n+12)P\sum_{F\in\mathcal{F}_n}q^{\operatorname{inv}(F)}=\sum_{P\in\mathcal{PF}_n}q^{\binom{n+1}{2}-|P|}
  1. 定理 (Gessel-Seo 2004)
FFnulead(F)=ui=1n1(i+(ni+1)u)=PPFnulucky(P)\sum_{F\in\mathcal F_n}u^{\operatorname{lead}(F)}=u\prod_{i=1}^{n-1}(i+(n-i+1)u)=\sum_{P\in\mathcal{PF}_n}u^{\operatorname{lucky}(P)}
  1. 定理 (S. 2008)
FFnqinv(F)ulead(F)=PPFnqjump(P)ulucky(P)\sum_{F\in\mathcal F_n}q^{\operatorname{inv}(F)}u^{\operatorname{lead}(F)}=\sum_{P\in\mathcal{PF}_n}q^{\operatorname{jump}(P)}u^{\operatorname{lucky}(P)}
至此,我们可以进入本文最终的部分。

停车问题与树的双射

映射 φ:FnPFn\varphi:\mathcal {F_n}\to\mathcal{PF}_n

考虑任意一个 nn 有标号有根森林 FF。新增一个节点 n+1n+1,并将所有根向节点 n+1n+1 连边,形成一棵以 n+1n+1 为根的标记树,记作树 TT。借用一张里昂大学的一篇课件上的图:
现在,我们对这棵树的每一个节点 xx 的子树进行如下操作:
  • 取出 xx 后代中标号大于 xx 的节点;
  • 保序地重排这些节点,即将取出的节点从小到大排名为 a1,a2,,ama_1,a_2,\dots,a_m,令 ai(i<m)a_i(i<m) 移动到原先 ai+1a_{i+1} 的位置;
  • xx 移动到 a1a_1 的位置,将 ama_m 移动到 xx 的位置。
易见点的操作顺序不影响结果,且操作后形成的树唯一。对每一个 xx 都如是操作后,我们将得到一棵对于任意节点(不妨设其标号为 xx)都有 xx 大于其任意后代标号的树。我们将这棵新树记作 DD
但是有多棵树都有可能重排出树 DD。为此,我们引入:
  • II:与树 TT 结构相同,其每个点的点权为树 TT 中该点的 inv\mathrm{inv}
  • CC:与树 TT 结构相同,其每个点的点权为对其后根遍历所得的次序。
将树 D,C,ID,C,I 结合,构成树 D×(CI)D\times(C-I),即:每个点有一个标号 xx 和一个点权 v(x)v(x),其中 xx 即为树 DD 中的 xxv(x)v(x) 为树 CC 中该点的点权减去树 II 中该点的点权。
由此,我们可以还原出树 TT。并且,我们已经得到了 FnPFn\mathcal F_n\to\mathcal{PF}_n 的一个单射:按标号依序取出每个点 xx,则 v(x)v(x) 即为车 xx 的偏好停车位置。例如在上图中,这个 Parking\rm Parking 函数 PP 为:

逆映射:φ1:PFnFn\varphi^{-1}:\mathcal{PF}_n\to\mathcal{F}_n

考虑任意一个 Parking\rm Parking 函数 PP。这里以上文出现过的例子为例:
P= 10   2   6   5   7   1   13   10   4   1   14   9   11 P=\text{ 10\; 2\; 6\; 5\; 7\; 1\; 13\; 10\; 4\; 1\; 14\; 9\; 11 }
Parking\rm Parking 函数给出了一个最终的停车序列。在上例中:
Parking  Space=1    2    3      4    5    6    7    8      9      10    11    12    13   1415Cars  Number  c=6    2    10    9    4    3    5    14    12    1      8        13    7     11 15jump(P;c)=0    0    2      0    0    0    0    3        0      0        1      1        0      0  14\begin{aligned} \mathrm{Parking\;Space}&=1\;\;2\;\;3\;\;\;\,4\;\;5\;\;6\;\;7\;\;\,8\;\;\;\,9\;\;\;\,10\;\;11\;\;12\;\;13\;\ 14\quad\,\,\,15\\ \mathrm{Car's\;Number\;}c&=6\;\;2\;\;10\;\;9\;\;4\;\;3\;\;5\;\;14\;\;12\;\;1\;\;\;\,8\;\;\;\;13\;\;\,7\;\;\ \,11\quad\ \,15\\ \mathrm{jump}(P;c)&=0\;\;0\;\;2\;\;\;\,0\;\;0\;\;0\;\;0\;\;3\;\;\;\;0\;\;\;\,0\;\;\;\;1\;\;\;\,1\;\;\;\;\,0\;\;\;\,0\quad\ \ \,\,14 \end{aligned}
现在,对于每一个停车位 xx,设其上停的车为 c(x)c(x),则将 xx 向其后第一个 c(y)>c(x)c(y)>c(x) 的停车位 yy 连边。
我们就获得了树 T,CT,CII。易见其是唯一的,且任意一个 Parking\rm Parking 函数 PPFnP\in\mathcal{PF}_n 都能如是构建出相应的树。这样,我们就完成了 φ1:PFnFn\varphi^{-1}:\mathcal{PF}_n\to\mathcal F_n
至此,我们解释了 PFn\mathcal{PF}_nFn\mathcal F_n 的集合大小相等的原因,并对其组合统计量间的联系给出了一个直观的表示。

参考文献:
  1. 组合数学 / 冯荣权,宋春伟编著。北京大学出版社,2015.8
  2. Forests and Parking Functions , Heesung Shin, Institut Camille Jordan, Université Claude Bernard Lyon-I, France. (THE 61ST SÉMINAIRE LOTHARINGIEN DE COMBINATOIRE. CURIA, PORTUGAL, SEP. 24, 2008)
  3. U 群神仙的答疑

评论

47 条评论,欢迎与作者交流。

正在加载评论...