【读书笔记】组合计数中的行列式方法 专题4 Routings: the Lindstrm–Gessel–Viennot lemma
书用的是Handbook of Enumerative Combinatorics (Miklos Bona)
- 专题4-Routings: the Lindstrm–Gessel–Viennot lemma
- 一些定义
- the Lindstrm–Gessel–Viennot lemma
- Lindstrm–Gessel–Viennot lemma 应用
专题4-Routings: the Lindstrm–Gessel–Viennot lemma
一些定义
- DAG 有向无环图
- \(\mathrm{wt}(e)\) 边的权重
- \(\mathrm{wt}(P)=\prod \mathrm {wt}(e)\) 路径的权重
- \(\mathrm{wt}(R)=\prod _{i=1}^n \mathrm {wt}(P)\) routing的权重
- 源,汇 Let S ={s1,...,sn} and T ={t1,...,tn} be two (not necessarily disjoint) sets of vertices,which we call sources and sinks,respectively
- Routing定义 A routing from S to T is a set of paths P1,..., Pn from the n sources s1,...,sn to the n sinks t1,...,tn such that no two paths share a vertex.
- Let π be the permutation of [n] such that \(P_i\) starts at source \(s_i\) and ends at sink \(t_{π(i)}\), and define sign(R) = sign(π).
- path matrix Q定义 \(q_{ij}=\sum\limits_{P\ path from\ s_i to\ t_j }\mathrm{wt}(P)\) 考虑Q的元素\(q_{ij}\)时只是看\(s_i\)到\(t_j\)的所有路径
原文如下
the Lindstrm–Gessel–Viennot lemma
维基百科词条-Lindstrm–Gessel–Viennot lemma
式子右边的求和是对\(S\)到\(T\)的所有routings
【In particular】那里是说,
如果正好图还有这样的性质:每条边权都是1,而且\(S\)到\(T\)的所有routing都是1->1,2->2...这样的形式,那么\(detQ=number \ of \ routings\ from\ S\ to \ T\)
Lindstrm–Gessel–Viennot lemma 应用
Example1 Binomial determinants
\(\begin{gathered}
\begin{pmatrix} a_1,...,a_n \\ b_1,...,b_n \end{pmatrix}
\end{gathered}\)记号表示的是那个行列式
...开始我还看不懂为什么there are \(\begin{gathered}
\begin{pmatrix} a_i \\ b_j \end{pmatrix}
\end{gathered}\) SE paths from \(A_i\) to \(B_j\)
SE path 是说south 和 east ,我以为是往东往北了
since every SE routing from A to B takes Ai to Bi for all i, 这是因为0≤a1 <···<an and 0≤b1 <···<bn ; points A ={A1,...,An} and B ={B1,...,Bn} where Ai = (0,ai) and Bi = (bi,bi) for1≤i≤n 然后你还要要走SE path
Example2 Counting permutations by descent set
先定义一个n排列的decent set是说一个集合\(S\),集合\(S\)的元素是index i使得\(\pi_i>\pi_{i+1}\)
然后问你 number of permutations of [n] with descent set\(\{c_1,...,c_k\}\)
可以构造一个A到B的SE routings构成bijeciton,答案是\(\begin{gathered}
\begin{pmatrix} c_1,...c_k,n \\ 0,c_1,...,c_k \end{pmatrix}
\end{gathered}\)(前面的行列式记号)
随手讲解图片里的例子,顺便讲一下符号
比如对于\(\pi=27351684\)(原书中给的是\(\pi=28351674\),我认为应该是\(\pi=27351684\),不然说不通)来说,
定义\(\pi_i>\pi_{i+1}\)的位置是\(c_i\),\(c_0\)往往取\(0\),\(c_{k+1}\)往往取\(n\),这里\(c=\{0,2,4,7,8\}\)
定义了一个从permuation π到序列f的映射,\(f_i\)是满足$j\leq i \text { && } \pi_j\leq\pi_i $ 的 \(j\) 的数量,这里,\(f(\pi)=12231574\)
接着在那些\(c_i\)位置处做分割,得到
\(f(\pi)=12.23.157.4\)
\(B_i\)点的坐标形如\((c_{i-1},c_{i-1})\),在y=x上
\(A_i\)点的坐标形如\((0,c_i)\)
路径如何确定?拿到序列\(f\)被分割后的片段\(f^i\),比如第一段是{1,2},那么在\(B_4\)到\(A_4\)的2步长path中,第1步和第2步就是N step,其他步是W step
Example3 Rhombus tilings and plane partitions
让你用【1,1,1,1 60° 120°】的菱形密铺边长为\(n\)的正六边形(需要按照网格线摆放)。问你方案数\(R_n\)
有几种观点:
看成正视图,如此,容易看到3种【\(60^°120^°\)的菱形】每种都是\(n^2\)个
思路是把每个菱形都看成是两个正三角形拼接,每个正三角形的中心作为一个节点,一般而言(内部的)每个节点和最近的3个节点相连。构成hexagonal grid。
相邻两个节点相连如果两个等边三角形上面正好是覆盖所用的菱形。问题转变为求完美匹配。plane partition理解。从观点1的角度往前一步,给出【表明每个格子上垒有多少个cube】的俯视图。 an array of nonnegative integers(finitely many of which are non-zero)that is weakly decreasing in each row and column. We conclude that \(R_n\) is also the number of plane partitions whose non-zero entries are at most n, and fit inside an n×n square.
从观点1的角度出发,看高度\(n-0.5\),...,高度2.5,高度1.5,高度0.5,截cube stack的曲线。这对应于 n sources S1,...,Sn on the left to the sinks T1,...,Tn ,(S1到T1,S2到T2....)的routing。利用前面的Lindstrm–Gessel–Viennot lemma,矩阵元素\(\begin{gathered}
\begin{pmatrix} 2n \\ n+i-j \end{pmatrix}
\end{gathered}\)\[R_n=det\bigg[\begin{gathered}
\begin{pmatrix} 2n \\ n+i-j \end{pmatrix}\bigg]
\end{gathered}_{1\leq i,j\leq n}=\prod\limits_{i,j,k=1}^{n}\frac{i+j+k-1}{i+j+k-2}
\]
Example4 Catalan determinants, multitriangulations, and Pfaffian rings
定义一个序列\(A=(a_0,a_1,a_2,...)\)的Hankel矩阵\(H_n(A)\)和\(H_n'(A)\)
H_n(A)
=\begin{pmatrix}
a_0 & a_1 & \cdots\ &a_n\\
a_1 & a_2 & \cdots\ & a_{n+1}\\
\vdots & \vdots & \ddots & \vdots \\
a_n & a_{n+1} & \cdots\ & a_{2n}\\
\end{pmatrix}
\end{equation}
\]
和
H_n'(A)
=\begin{pmatrix}
a_1 & a_2 & \cdots\ &a_{n+1}\\
a_2 & a_3 & \cdots\ & a_{n+2}\\
\vdots & \vdots & \ddots & \vdots \\
a_{n+1}& a_{n+2} & \cdots\ & a_{2n+1}\\
\end{pmatrix}
\end{equation}
\]
如果我们知道 the Hankel determinants \(det \ H_n(A)\) and \(det\ H_n'(A)\) ,而且对所有的n它们都是非零的,我们可以利用递推关系从 \(a_0,…, a_{k-1}\)来恢复每一个 \(a_k\) 。
如果序列是卡特兰序列\(C=(C_0,C_1,C_2,...)\)的话,恰好有一种很好的解释。
式(1.9)是许多事物的组合计数。
the number of k-fans of Dyck paths of length \(2(n−2k)\)
式(1.9)也是the number of k-fans of Dyck paths of length \(2(n-2k)\)
the number of k triangulations of an n-gon
k-crossing 定义 a k-crossing in an n-gon to be a set of k diagonals that cross pairwise(两两相交)
k-triangulation定义 A k-triangulation is a maximal set of diagonals with no(k+1)-crossings.
式(1.9)也是 the number of k triangulations of an n-gon 。
Example5 Schröder determinants and Aztec diamonds
【读书笔记】组合计数中的行列式方法 专题4 Routings: the Lindstrm–Gessel–Viennot lemma的更多相关文章
- Lindström–Gessel–Viennot lemma定理 行列式板子
https://blog.csdn.net/qq_37025443/article/details/86537261 博客 下面是wiki上的讲解,建议耐心地看一遍...虽然看了可能还是不懂 http ...
- 排列组合( Lindström–Gessel–Viennot lemma 定理)
链接:https://www.nowcoder.com/acm/contest/139/A来源:牛客网 Monotonic Matrix 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ ...
- 强化学习读书笔记 - 10 - on-policy控制的近似方法
强化学习读书笔记 - 10 - on-policy控制的近似方法 学习笔记: Reinforcement Learning: An Introduction, Richard S. Sutton an ...
- 强化学习读书笔记 - 09 - on-policy预测的近似方法
强化学习读书笔记 - 09 - on-policy预测的近似方法 参照 Reinforcement Learning: An Introduction, Richard S. Sutton and A ...
- WC集训DAY2笔记 组合计数 part.1
目录 WC集训DAY2笔记 组合计数 part.1 基础知识 组合恒等式 错排数 卡特兰数 斯特林数 伯努利数 贝尔数 调和级数 后记 补完了几天前写的东西 WC集训DAY2笔记 组合计数 part. ...
- 【记】《.net之美》之读书笔记(二) C#中的泛型
前言 上一篇读书笔记,很多小伙伴说这本书很不错,所以趁着国庆假期,继续我的读书之旅,来跟随书中作者一起温习并掌握第二章的内容吧. 一.理解泛型 1.为什么要使用泛型?-----通过使用泛型,可以极大地 ...
- 《深入理解Java虚拟机:JVM高级属性与最佳实践》读书笔记(更新中)
第一章:走进Java 概述 Java技术体系 Java发展史 Java虚拟机发展史 1996年 JDK1.0,出现Sun Classic VM HotSpot VM, 它是 Sun JDK 和 Ope ...
- 《SQL Server企业级平台管理实践》读书笔记——SQL Server中关于系统库Tempdb总结
Tempdb系统数据库是一个全局资源,可供连接到SQL Server实例的所有用户使用. 存储的内容项: 1.用户对象 用户对象由用户显示创建.这些对象可以位于用户会话的作用域中,也可以位于创建对象所 ...
- 秒味课堂Angular js笔记------Angular js中的工具方法
Angular js中的工具方法 angular.isArray angular.isDate angular.isDefined angular.isUndefined angular.isFunc ...
- Java学习笔记十七:Java中static使用方法
Java中static使用方法 一:Java中的static使用之静态变量: 我们都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的 ...
随机推荐
- 最长上升子序列(LIS) dp典型例题(tzoj 矩形嵌套,Rectangles )
5985: 矩形嵌套 题意:求最长递增子序列(包含两个元素) 思路:先找出关系式子: li=lj+1(当ai<aj时) 两层循环 第一层i从1-n 第二层j 从0-i :求出i前面的每个j 的m ...
- <<Python编程:从入门到实践>>踩坑记 Django
<<Python编程:从入门到实践>>踩坑记 Django Django Python 19.1.1.5 模板new_topic 做完书上的步骤后,对主题添加页面经行测试,但是 ...
- 我的第一周C语言作业
这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-2 这个作业要求在哪里 https://edu.cnblogs.com/campus/zs ...
- STM32自学笔记
1位带操作 第一种位带操作 #define BITBAND_REG(Reg,Bit) (*((uint32_t volatile*)(0x42000000u + (((uint32_t)&(R ...
- 元素定位xpath路径中添加参数的方法
在某次自动化测试中,需要定位下拉列表(非select列表)中不同的元素,我想到了利用参入参数的方式来实现,经过多次尝试,得到如下方法,与大家分享 例如在通过text定位某个元素时,self.find_ ...
- cin和缓存区问题
稍微记录一下今天刷题遇到的C++问题 看到使用while(cin >> s);来读取最后一个字符串.百度了一下发现cin以空格,制表符和回车为终止依据.也就是说我输入"abc 1 ...
- python使用openpyxl读取合并单元格的值(转)
目录问题:解决思路:问题:假设在test.xlsx的"Sheet1"工作表中,A1:D3区域的值如下:要求给定指定的行.列以及对应的工作表作为参数,能够正确解析合并单元格,获取指定 ...
- docker安装常用软件
linux安装docker 1.安装gcc相关 yum install gcc -y yum install gcc-c++ -y 2.安装工具包 #安装工具包 yum -y install yum- ...
- Python 错误:TypeError: range() takes no keyword arguments
问题描述: for循环时使用range()出错: for page in range(start=1, stop=8 + 1,step=1): print(page) 结果报错TypeError: r ...
- C语言初级阶段7——指针1
C语言初级阶段7--指针1 地址与指针 1.地址:数据在内存中的存储位置编号,是一个常量. 2.指针:指针的本质就是地址. 指针变量的定义和声明 1.指针变量:存储的数据是地址. 2.定义方法:类型* ...