下面的问题与统计物理中的 Dimer 格点模型有关:
问题: 用 的多米诺骨牌密铺一张
的国际象棋棋盘,有多少种不同的方法?
下图是其中一种:
答案是 12988816,非常大的一个数字,显然不可能是逐个枚举数出来的。1961
年德国物理学家 Kasteleyn
借助线性代数的工具首先解决了这个问题,本文就来介绍他的方法。
反对称矩阵的 Pfaffian
我们从一个线性代数的结论说起,先来看一个 4 阶反对称矩阵的行列式:
你发现了什么?这个反对称矩阵的行列式是一个多项式的平方,而且观察右边每个单项式的下标你发现,它们分别是
,,,恰好跑遍集合 的所有匹配!
这个结论不是偶然的,实际上对任何 阶反对称矩阵 ,
的行列式都可以表示为一个多项式的平方,这个多项式叫做 Pfaffian
多项式,记作 。 中的单项式与集合
的匹配一一对应。
那么奇数阶反对称矩阵呢?它们的行列式都是 0,所以不考虑它们。
我们来给出
的定义:考虑一种把
两两配对(从而分成 对)的方式:
叫做集合
的一个匹配,它可以用一个置换来表示,仍然记作 :
定义 的权为 其中 就是置换 的符号,偶置换时为 ,奇置换时为 , 于是 是一个次数为 的单项式。
但是,
的定义是合理无歧义的吗?注意一个匹配
可以有多种不同的置换表示:你可以按任意的顺序排列这些 对,比如
或是交换某一对中 和 的位置:
不难验证,虽然不同的置换表示给出的 和 可能不同,但是二者的乘积 总是一样的。比如把某个
改写成 ,那么 和 都同时变号,乘积保持不变。总之
的定义只与匹配
有关,并不依赖于具体置换的选择。
定义.
设 为 的所有匹配组成的集合,矩阵 的 Pfaffian 多项式 定义为
现在我们可以叙述本节的主要结论了:
证明:根据行列式的定义,
回忆任何置换
都可以表示为若干不相交的轮换的乘积: 设 为轮换长度
都是偶数的那些置换组成的集合,我们要证明在上述行列式的求和中, 只跑遍 ,不属于
的那些置换整体对行列式的贡献为 0。
分两种情况:
- 如果
包含一个不动点:,则由于
从而 对行列式的贡献为 0。
- 如果
没有不动点,但是包含长度为奇数的轮换,选择其中含有最小元素的那个,设为
,这里 为奇数且大于等于 3。定义置换 如下: 的其它轮换与 完全相同,只是把 整个倒过来变成 。显然 对应的和项与 抵消,而且如果对 执行此操作又会回到 。于是所有没有不动点,而且包含长度是奇数的轮换的置换可以两两配对抵消。
例:
有
2 个长度为奇数的轮换 和 ,最小的元素 出现在 中,所以 。
这就证明了在行列式的求和中,
只跑遍那些轮换分解长度都是偶数的置换。
于是为了证明 ,只要证明
为此我们来证明存在双射
而且这个双射还保持权的相等,即
这样就证明了定理。
对任何两个匹配 ,我们把它俩画在同一张图上,图的顶点集合就是
,两个顶点 如果在
中配成一对就在它们之间连一条红色边,或者如果 在
中配成一对就在它们之间连一条蓝色边。这样我们得到的是一个每个顶点恰好有一条红边和一条蓝边的图,即每个顶点度数都是
2 的正则图。这个图一定可以表示为若干条不相交的回路的并 ,在一个回路中,红边和蓝边是交错出现的,因此每个回路的长度都是偶数。
设 是这样的一条回路, 是 中最小的元素,从 出发,沿着红色的边,即 的方向绕 一圈:
这样得到了一个轮换 。对每个回路都这样做,我们就得到了一组轮换,与 对应的置换
就定义为所有这些轮换的乘积。由于这些回路互不相交,这些轮换两两交换,所以我们不必关心它们相乘的顺序,任何顺序都给出同样的
。
逆映射也很显然,对任何 ,在 的每个轮换 中,找到最小的 ,设 ,那么依次规定
即可。
最后我们来验证这个对应保持权的相等:设 的轮换分解式为 其中
是每个轮换中最小的元素。于是
容易验证 以及 ,从而 定理 1.1 得证。
平面图的 Pfaffian 定向
Pfaffian 多项式的结论启发我们可以用它来计算一个图 的所有匹配的个数。
设 有 个顶点。首先给 的边任意定向,得到一个简单有向图 。写出 的邻接矩阵 :
则 是一个反对称矩阵且
这里
跑遍集合 的所有匹配。由于每个
的取值是 或者 ,所以 的值也是 或者 ,并且 当且仅当对每个 , 和 在 中是相邻的,即 给出 的一个匹配。于是 的所有匹配与
中的非零项一一对应。不幸的是,这些非零项有 +1 有
-1,把它们直接加起来得到的可不是
的所有匹配的个数。但是我们可以这样想: 能否通过适当的定向 ,即适当给 赋以 +1 或者 -1,使得每一个非零的
都同为 +1 或者同为
-1?如果可以,那么
就是要求的匹配的个数。
回忆在证明 定理 1.1
时,我们有结论
要使得所有非零的
都同为 +1 或者同为 -1,只要让每个非零的 都等于 1
即可。设 是一个使得 的置换且 的轮换分解为 ,这里每个 的长度都是偶数,则 这里规定 时 。如果我们能够使得每个 ,那么就有 而 等于
-1 意味着,当在
中沿着回路 绕 一圈时,有奇数条边在与
的定向一致(由于轮换长度
是偶数,这也等价于有奇数条边与 的定向相反)。
定义.
设 是有限图。如果 的一个回路 的长度是偶数,且删除 后剩下的部分仍然存在匹配,就称 是一个好的回路。如果 的一个定向 使得
的所有好的回路都是奇定向的,即沿着回路的任一方向行走都有奇数条边的定向与行走方向一致,就称
是一个 Pfaffian
定向。
对一般的图,找到其 Pfaffian
定向是困难的事,但是对平面图却很简单。这就是下面的定理:
定理
2.1 (Kasteleyn). 设
是一个简单平面图,则可以给
的边适当定向,使得当逆时针沿着
的每个面行走时(外部的无穷区域不算),都有奇数条边与行走方向一致,这种定向就是
的 Pfaffian 定向。
证明:我们首先说明存在这样的定向,使得
的每个面都是奇定向的。对面的个数归纳:,则 是一个树,任何定向都是 Pfaffian
定向。设结论对有
个面的简单有向图成立,对有
个面的图 ,找到一条内部面与外部区域相邻的边 ,删去 得到的是一个有
个面的有向图,由归纳假设,可以让每个面都是奇定向,然后把 补回去,并适当在
的两种可能的定向中选择一个使得最后这个面也是奇定向的即可。
其次我们要说明这样的定向是 Pfaffian 定向,即对 中任意好的回路 ,当绕着
的内部逆时针行走一圈时,有奇数条边的定向与行走方向一致。
设 长度为 ,
内部有 个顶点, 条边, 个面, 上逆时针定向的边的个数为 ,内部的第 个面 () 上逆时针定向的边的个数为 。
绕着所有面都逆时针走一圈,遇到的与行走方向定向相同的边的个数是 ,这是因为
内部的
条边都被走了两次,一次逆时针,一次顺时针,因此都被计算了一次;而 上的边只有逆时针定向的那些边(一共有
条)被计算了一次。
由于每个 都是奇数,因此
另一方面对 包含的区域用 Euler
定理,得到 从而
与 奇偶性相反,但是 是偶数,这是因为删去 以后仍然存在匹配说明 的内部和外部各有偶数个顶点,因此 是奇数,这就证明了定理。
棋盘的多米诺骨牌密铺的计数
回到文章开始的问题。
设棋盘的大小为 , 是行数。这里
必须至少有一个是偶数,我们这里假定列数 是偶数。
把棋盘的每个方格看作图
的顶点,两个方格对应的顶点 在
中相邻当且仅当它们有公共的边,这样就得到一个有 个顶点的平面图。棋盘的多米诺密铺与
的完美匹配是一一对应的:密铺中的每个骨牌恰好盖住两个相邻的方格,这两个方格匹配在了一起。
为了求出
的完美匹配个数,只要标记出 的一个
Pfaffian 定向,写出对应的邻接矩阵,然后求出行列式,再开平方即可。
Pfaffian 定向是很容易找的,如下图所示:
网格图的 Pfaffian 定向
下一步是写出这个定向图的邻接矩阵。我们按照从第一行开始,每一行从左到右的顺序给顶点排序。设
则邻接矩阵为
我把求邻接矩阵的详细过程放在后面的附录中。下面先来求 的行列式。
适当给
的行列变号,可以得到 其中 这个变号步骤并不显然,我们需要选择 的一些行列变号,使得对角线上的每个
所在的行列恰好有一次变号,每个
所在的行列要变号两次,要么不变。具体规则是这样的:由于 出现在 对角线上的 位置上,我们选择:
- 将所有形如
的列变号;
- 将所有形如
的行变号;
- 将所有形如
的行和列同时变号;
这样显然可以把对角线上都变成 。对每个位于次对角线上 位置的 ,
- 如果 ,则 ,根据 1
它改变了一次符号;
- 如果 ,则 ,根据 2, 3
它改变了三次符号;
- 如果 ,则 ,根据 2
它改变了一次符号;
- 如果 ,则 ,根据 1, 3
它改变了三次符号。
总之 都会变成 。类似地所有 均保持不变。
剩下的就是线性代数中求特征值的部分,需要一些关于矩阵张量积的知识,这里就不展开写了,大致逻辑是这样的:设
的特征值为 , 的特征值为 ,则 的 个特征值为 ,所以
和
的特征值的计算应该是线性代数课程中行列式部分的常见的习题,我把具体的计算步骤放在附录中,最终结果是
此即为要求的完美匹配的个数。
未尽的讨论
我们已经得到了一个关于
棋盘的多米诺骨牌密铺的漂亮的表达式,事情可以结束了吗?其实还没有,这个表达式虽然很漂亮,但是我们没法用它来具体计算匹配个数的值(一堆三角函数的乘积怎么算?)。那应该怎么办呢?我把后面的故事留给
(Aigner 2007, sec. 10.1)。
附录
求邻接矩阵 的具体步骤
将 简写为 。把网格图 的顶点标记如下:
对这些顶点排序,首先是第一行从左到右,然后是第二行从左到右,等等:
是 阶矩阵,它的行和列分别由
和 标记。 可以划分成 个子块,每个子块是 阶的,其中位于 处的子块对应的矩阵是 :
注意到 和
之间有边相连当且仅当:
- 且 ;
- 且 。
这说明
在除去对角线以及两侧的次对角线以外的位置都是 0。
在情形 1 中,由于水平的边(红色和绿色)是交替改变方向的,所以 这说明 对角线上的第 个子块是 ,其中 即 形如 在情形 2
中,由于竖直的边(蓝色)是恒定向下的,所以 这说明 右上方次对角线上的 位置的子块都是 。再结合 是反对称的,下方次对角线上都是 ,所以 形如
此即为 的邻接矩阵。
求 和 的特征值
我们以
为例来说明怎样求它的特征值,
的求解是类似的。
我们需要求出其特征多项式
按第一行展开可得递推关系
结合初始条件
(初始条件可以从
的情形展开确定) 可得
由此不难确定 的 个特征值为
References
Aigner, M. 2007. A Course in Enumeration. Graduate Texts in
Mathematics. Springer Berlin Heidelberg.
上一篇:矩阵空间的子空间
下一篇:平面分拆的 Macmahon 公式