”乳罩图“ 的完美匹配:高温展开与顶点膨胀技巧

本文的目的是通过一个例子来介绍统计力学中精确可解模型的两个经典方法:高温展开和顶点膨胀。

问题是这样的:考虑这样一张非常类似 "bra" 的图:

注意这个图不是平面图!上面两条实线的边与下面两条实线的边分别是粘在一起的,左边两条实线的边和右边的两条实线的边也是分别粘合的;虚线部分不是边,只是用来描述粘合定向的。因此这个图的每个顶点的度数都是 3。

想象它的立体图:这是一个乳罩,已经穿戴在某个美女身上,则上下和左右的实线边相当于系的绳子。

问这个图有多少不同的完美匹配?

答案是 $64$ 种。你想知道为什么吗?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

首先介绍一个在计数组合学中要用到的技巧:高温展开。它来自物理学中的 Ising 模型。

设 $G$ 是一个有限连通图,顶点依次标记为 $1,2,\cdots,n$。给每个顶点 $i$ 赋以一个变量 $\sigma_i\in\{+1,-1\}$。每一种赋值方式 $\sigma=\{\pm1,\cdots,\pm1\}$ 叫做系统的一种状态,系统总共有 $2^n$ 种可能的状态 。

整个系统的配分函数 $Z$ 定义为

\[ Z=\sum_{\sigma}\prod_{(i,j)\in E}e^{k\sigma_i\sigma_j}.\]

这里内层的乘积号跑遍 $G$ 的所有边,外层的求和号跑遍所有 $2^n$ 种可能的状态,$k$ 是一个正常数。

求出一个系统的配分函数是非常重要的问题,Onsager 在 1944 年求出了二维 Ising 模型的配分函数的精确解,被看做是统计物理中第一个重大的理论成果,而三维 Ising 模型的精确解至今没有解决。

引理:$e^{k\sigma_i\sigma_j}=\cosh(k)(1+\sigma_i\sigma_j\tanh(k))$。

引理的证明:\[\begin{align}e^{k\sigma_i\sigma_j}&=\frac{e^{k\sigma_i\sigma_j}+e^{-k\sigma_i\sigma_j}}{2}+\frac{e^{k\sigma_i\sigma_j}-e^{-k\sigma_i\sigma_j}}{2}\\&=\cosh(k\sigma_i\sigma_j)+\sinh(k\sigma_i\sigma_j)\\&=\cosh(k\sigma_i\sigma_j)(1+\tanh(k\sigma_i\sigma_j))\\&=\cosh(k)(1+\sigma_i\sigma_j\tanh(k)).\end{align}\]

这里最后一个等号是因为 $\sigma_i\sigma_j=\pm1$,以及 $\cosh$ 和 $\tanh$ 分别是偶函数和奇函数。

现在我们用上面的引理来简化 $Z$:(为简单记 $a=\tanh(k)$)

\[\begin{align}Z&=\sum_{\sigma}\prod_{(i,j)\in E}\cosh(k)(1+\sigma_i\sigma_j\tanh(k))\\&=[\cosh(k)]^{|E|}\sum_{\sigma}\prod_{(i,j)\in E}(1+a\sigma_i\sigma_j).\end{align}\]

上面式子中的乘积展开的话,是对 $G$ 的所有子图 $H$ 求和:

\[\prod_{(i,j)\in E}(1+a\sigma_i\sigma_j)=\sum_{H}a^{|E(H)|}\prod_{(i,j)\in E(H)}\sigma_i\sigma_j.\]

因此\[\begin{align}Z&=[\cosh(k)]^{|E|}\sum_{\sigma}\sum_{H}a^{|E(H)|}\prod_{(i,j)\in E(H)}\sigma_i\sigma_j\\&=[\cosh(k)]^{|E|}\sum_{H}a^{|E(H)|}\sum_{\sigma}\prod_{(i,j)\in E(H)}\sigma_i\sigma_j.\end{align}\]

我们发现\[\begin{align*}\sum_{\sigma}\prod_{(i,j)\in E(H)}\sigma_i\sigma_j&=\sum_{\sigma}\sigma_1^{d_H(1)}\sigma_2^{d_H(2)}\cdots\sigma_n^{d_H(n)}\\&=(\sum_{\sigma_1=\pm1}\sigma_1^{d_H(1)})(\sum_{\sigma_2=\pm1}\sigma_2^{d_H(2)})\cdots(\sum_{\sigma_n=\pm1}\sigma_n^{d_H(n)}).\end{align*}\]

这里 $d_H(i)$ 表示顶点 $i$ 在子图 $H$ 中的度数。

如果 $d_H(i)$ 是奇数,那么 $\sum_{\sigma_i=\pm1}\sigma_i^{d_H(i)}=0$,否则等于 2。因此我们得到如下的高温展开公式:

\[Z=2^{|V|}[\cosh(k)]^{|E|}\sum_{\text{$H$ 为 $G$ 的欧拉子图}}a^{|E(H)|}.\]

这里 $G$ 的欧拉子图的定义是所有顶点度数都是偶数的子图。

高温展开公式可以帮助我们算出 $G$ 的欧拉子图的个数,这就是下面的定理:

定理:设 $G$ 是有限连通图,则 $G$ 的欧拉子图的个数为 $2^{|E|-|V|+1}$。

证明:设 $G$ 的欧拉子图的个数为 $N$,令 $k\to+\infty$,则 $\cosh(k)\sim\dfrac{e^k}{2}$,$a=\tanh(k)\sim1$,因此

\[ Z\sim2^{|V|}(\frac{e^k}{2})^{|E|}\cdot N.\quad k\to+\infty \]

那么另一边的 \[\sum_{\sigma}\prod_{(i,j)\in E}e^{k\sigma_i\sigma_j}\]

又怎样呢?在这个和式中,当所有 $\sigma_i$ 都是 +1 或者 -1 的时候,这两项的值最大,和为 $2 e^{k|E|}$,其它的项的阶都严格小于这两项,因此 $Z\sim 2e^{k|E|}$,$k\to+\infty$。两种估计相等就得出 $N=2^{|E|-|V|+1}$。

我们得到这个结论的途径看起来很曲折,是从一个看起来完全不相关的问题出发意外得到的。这是物理学家们推导出来的,毫不奇怪数学家们有更直接的做法(利用 Tutte 多项式或者线性代数),但是这个技巧是最初等的。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fisher 顶点膨胀技巧

顶点膨胀技巧是 Fisher 在求解二维 Ising 模型精确解的时候引入的一种图变换的技巧。以下是其中一个版本:

设 $G$ 是一个 3-正则图(每个顶点的度数都是 3),我们对 $G$ 进行如下的操作,把 $G$ 变成一个新图 $G‘$:对 $G$ 的每个顶点 $v$,把 $v$ "膨胀" 为一个 3-环,让这个 3-环的顶点代替 $v$ 与 $v$ 的 3 个邻居相连。图 $G‘$ 叫做 $G$ 的 Fisher 图。

定理 [Fisher]: 图 $G$ 的所有偶子图与图 $G‘$ 的所有完美匹配之间存在一一对应。

证明:设 $P$ 是 $G$ 的一个偶子图,令 $P^\ast$ 为 $P$ 在 $G$ 中的补子图:$P^\ast$ 的顶点集也是 $V(G)$,但是 $P^\ast$ 的边由不属于 $P$ 的那些边组成。由于 $P$ 是偶子图而 $G$ 是 3 次图,所以 $P$ 的每个顶点度数为 0 或者 2,从而 $P^\ast$ 的每个顶点度数为 1 或者 3。

我们来看 $P^\ast$,在一个顶点 $v$ 处,$P^\ast$ 只有两种可能:

第一种可能:顶点 $v$ 的三条边都属于 $P^\ast$,那么我们定义 $G‘$ 在此局部的匹配如右下图:

第二种可能:顶点 $v$ 的三条边中只有一条属于 $P^\ast$,则定义 $G‘$ 在此局部的匹配如右下图:

这样对给定的 $P^\ast$,我们在 $G‘$ 的每一个局部的 3-环 处都规定了匹配,那么这些局部的匹配 “拼起来”是否构成 $G‘$ 的匹配呢?这需要说明这些匹配是兼容的。比如说在 $G‘$ 中两个相邻的 3-环 $\Delta_1$ 和 $\Delta_2$,$v_1\in\Delta_1$ 和 $v_2\in\Delta_2$ 之间有边 $e$ 相连。如果 $\Delta_1$ 处的匹配是将 $v_1$ 和 $\Delta_1$ 中的另一个点匹配,而 $\Delta_2$ 处的匹配是将 $v_2$ 和 $v_1$ 匹配,那么这两个匹配显然是不兼容的。所以我们需要说明边 $e$ 要么同时被 $\Delta_1$ 和 $\Delta_2$ 使用,要么同时不被使用。这很容易:如果 $\Delta_1$ 使用了 $e$,说明在图 $G$ 中膨胀为 $\Delta_1$ 和 $\Delta_2$ 的两个顶点之间的边属于 $P^\ast$,从而 $\Delta_2$ 也使用了 $e$。

而反过来的逆映射也是很显然的,对 $G‘$ 的每一个匹配,将每一个 3-环收缩为单个顶点,得到一个顶点度数都是 1 或者 3 的图,再求补就得到 $G$ 的一个偶子图。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

现在我们可以回答前面 "bra" 图的完美匹配的个数的问题了:把这个图记作 $G$,$G$ 满足这样的性质:

1. 它的顶点是若干个无公共顶点的 3-环的并。

2. 它的边由 3-环中的边和连接这些 3-环的边组成。

3. $G$ 的每个顶点度数是 3。

把 $G$ 的每个 3-环 收缩为一个顶点,得到的图记作 $H$,则 $H$ 是一个 3-正则图,于是 $G$ 的完美匹配的个数等于 $H$ 的偶子图的个数。我们已经用高温展开的技巧计算了 $H$ 的偶子图的个数为 $2^{|E(H)|-|V(H)|+1}$,下面把这些量用图 $G$ 的参数表示出来。

首先 $|V(H)|=|V(G)|/3$,其次图 $H$ 的所有顶点度数之和等于 $2|E(H)|$,而 $H$ 是 3-正则的,因此\[ 3|V(H)|=2|E(H)|,\]

即 $|E(H)|=|V(G)|/2$,所以 $G$ 的完美匹配的个数为

\[2^{|E(H)|-|V(H)|+1}=2^{\frac{|V(G)|}{6}+1}.\]

时间: 2024-12-17 21:56:46

”乳罩图“ 的完美匹配:高温展开与顶点膨胀技巧的相关文章

KM算法(二分图完美匹配)

前言 其实这是一个很玄学的算法,我也不是很懂.但是慢慢地写,就慢慢地懂了. 例子 我们先看到这样一个例子:现有n个男生和n个女生,每一个女生对于一个男生都有一个期望值.现在想知道期望值最大是多少. 算法 那么显然,我们需要一种算法来完成这个任务,KM腾空出世! 在此之前,我们需要了解一些东西: 前置知识 期望值:女生连的边中边权最大的值,称之为女生的期望值 l(x)+l(y)>=w(i,j) 当l(x)+l(y)=w(i,j)时,是M图的完美匹配! 过程 原则 能换就换(思想很像匈牙利求二分图最

POJ1043 What's In a Name 逆图+完美匹配

题目链接: poj1043 题意: 一个犯罪团伙有N个人,他们分别有一个名字和一个网名 现已知他们会先后进出一个房间发送电报 警方可以知道所有时间下: 进出房间的人的真实名字 同时通过截获该房间发出的电报,获得网名 问最后能否将所有真实名字和虚拟网名对上 解题思路: 首先根据题目条件名字和网名是一一对应的,可以大概确定是二分匹配中的完美匹配 然而根据样例很容易看出来,要想根据正确关系来建边是很复杂的 容易的做法是:每次将不可能匹配的名字和网名建边,最后根据补图进行最大匹配即可初步得出所有匹配关系

(转)二分图的最大匹配、完美匹配和匈牙利算法

转载自http://www.renfei.org/blog/bipartite-matching.html 二分图的最大匹配.完美匹配和匈牙利算法 这篇文章讲无权二分图(unweighted bipartite graph)的最大匹配(maximum matching)和完美匹配(perfect matching),以及用于求解匹配的匈牙利算法(Hungarian Algorithm):不讲带权二分图的最佳匹配. 二分图:简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的边界,则这就是

二分图的最大匹配、完美匹配和匈牙利算法(转)

转载自:http://blog.csdn.net/pi9nc/article/details/11848327 二分图的最大匹配.完美匹配和匈牙利算法 这篇文章讲无权二分图(unweighted bipartite graph)的最大匹配(maximum matching)和完美匹配(perfect matching),以及用于求解匹配的匈牙利算法(Hungarian Algorithm):不讲带权二分图的最佳匹配. 二分图:简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的边界,则这

二分图的最大匹配、完美匹配和匈牙利算法

这篇文章讲无权二分图(unweighted bipartite graph)的最大匹配(maximum matching)和完美匹配(perfect matching),以及用于求解匹配的匈牙利算法(Hungarian Algorithm):不讲带权二分图的最佳匹配. 二分图:简单来说,假设图中点能够被分为两组.而且使得全部边都跨越组的边界,则这就是一个二分图.准确地说:把一个图的顶点划分为两个不相交集 U和V .使得每一条边都分别连接U.V中的顶点. 假设存在这种划分,则此图为一个二分图.二分

(转)二分图的最大匹配、完美匹配和匈牙利算法

二分图的最大匹配.完美匹配和匈牙利算法 这篇文章讲无权二分图(unweighted bipartite graph)的最大匹配(maximum matching)和完美匹配(perfect matching),以及用于求解匹配的匈牙利算法(Hungarian Algorithm):不讲带权二分图的最佳匹配. 二分图:简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的边界,则这就是一个二分图.准确地说:把一个图的顶点划分为两个不相交集 U  和 V ,使得每一条边都分别连接U . V  

HDU 3488 Tour (最大权完美匹配)【KM算法】

<题目链接> 题目大意:给出n个点m条单向边边以及经过每条边的费用,让你求出走过一个哈密顿环(除起点外,每个点只能走一次)的最小费用.题目保证至少存在一个环满足条件. 解题分析: 因为要求包含所有点一次的环,我们不难发现,这个环中的每个点的出度和入度均为1,所以我们不妨将每个点进行拆点,将所有点的出度和入度分为两部分.因为该环需要包括所有的点,并且题目需要求该环的最小权值,相当于该带权二分图的每个点都需要被覆盖到,由于本题就转化为求该二分图的最优完美匹配问题.二分图的最优匹配问题求解,我们会想

Hall定理 二分图完美匹配

充分性证明就先咕了,因为楼主太弱了,有一部分没看懂 霍尔定理内容 二分图G中的两部分顶点组成的集合分别为X, Y(假设有\(\lvert X \rvert \leq \lvert Y \rvert\)).G中有一组无公共点的边,一端恰好为组成X的点(也就是存在完美匹配)的充分必要条件是:X中的任意k个点至少与Y中的k个点相邻,即对于X中的一个点集W ,令N(W)为W的所有邻居, 霍尔定理即对于任意W,\(\lvert W\rvert \leq \lvert N(W)\rvert\) 证明 1.必

hdu2255 奔小康赚大钱 km算法解决最优匹配(最大权完美匹配)

/** 题目:hdu2255 奔小康赚大钱 km算法 链接:http://acm.hdu.edu.cn/showproblem.php?pid=2255 题意:lv 思路:最优匹配(最大权完美匹配) km算法 模板来自:http://www.cnblogs.com/wenruo/p/5264235.html 如果是求最小权完美匹配,那么将所有权值取相反数,然后求得最大权,输出最大权的相反数即可. */ #include <iostream> #include <cstring> #