【读书笔记】组合计数中的行列式方法 专题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使用之静态变量: 我们都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的 ...
随机推荐
- 逆向学习物联网-网关ESP8266-04系统联合调试
1.测试平台原理 2.搭建硬件测试平台 3.软件测试平台 1)串口终端 2)串口监视 3)OneNET后台服务 https://open.iot.10086.cn/passport/login/ 户名 ...
- 【2020NOI.AC省选模拟#5】C. 光滑序列
题目链接 原题解: 光滑的序列一定有长度为$K$的循环节. 使用动态规划,设$F(i,j)$为使前$i$个整数的和为$j$的最小修改次数. 记$cost(i,v)$为令$A_i,A_{i+K},A_{ ...
- 【BOOK】Ajax数据爬取
Requests获取原始HTML文档,Ajax加载和JavaScript处理的数据无法获得 一.Ajax Ajax-异步的JavaScript和XML Ajax请求页面更新: 1. 发送请求 2. 解 ...
- 20192305 王梓全Python程序设计实验一报告
20192305 王梓全Python程序设计实验一报告 课程:<Python程序设计> 班级: 1923 姓名: 王梓全 学号:20192305 实验教师:王志强 实验日期:2021年4月 ...
- Spring之IOC(控制反转)入门理解
在面向对象编程中,我们经常处理处理的问题就是解耦,程序的耦合性越低表明这个程序的可读性以及可维护性越高(假如程序耦合性过高,改一处代码通常要对其他地方也要做大量修改,难以维护).控制反转(Invers ...
- centos8 安装 spdk
1. 下载 2.配置 ./configure --enable-debug --disable-tests --without-isal --without-ocf --with-uring --w ...
- 【闫式dp分析法】
- 面向对象2(Java)
封装 基本介绍 该露的露,该藏的藏,我们的程序设计要追求"高内聚,低耦合": 高内聚:类的内部数据操作细节自己完成,不允许外部干涉 低耦合:仅暴露少量的方法给外部使用 封装(数据的 ...
- 2月26日Android开发学习
1.App运行日志 Android采用Log工具打印日志,他讲各类日志划分为五个等级 (1)Log.e:表示错误信息,比如可能导致程序崩溃的异常. (2)Log.w:表示警告信息. (3)Log.i: ...
- 怎样修改linux内核
1.先查看linux内核 uname -a 2.打开内核配置文件 sudo vi /etc/default/grub 3.跟新grub文件 sudo update-grub 4.最后重启电脑 sudo ...