引言1
给一非空集合 A A A,可定义一个判定问题,
即:对于给定的 x x x,判定 x ∈ A x \in A x∈A是否为真?
传统的多项式时间规约 A ≤ p B A\le_p B A≤pB是
存一多项式时间可计算函
数
f
:
A
→
B
f:A\rightarrow B
f:A→B s.t.
∀
x
,
x
∈
A
⇔
f
(
x
)
∈
B
\forall x,x\in A \Leftrightarrow f(x)\in B
∀x,x∈A⇔f(x)∈B
在这一转换过程中,
A
−
问
题
A-问题
A−问题解的一个分支转换成
B
−
问
题
B-问题
B−问题解的一个分支
如果
A
≤
p
B
A\le_p B
A≤pB,
A
A
A是NP完全的,则
B
B
BNP-hard。
++++++++++++++++++++++++++++++++++++++++++++++++++
以SAT 问题为种, 只要构建一个多项式归约, 且证 B-在 NP 类中,
就可证 B-问题是 NP-完全。这方法证明了(如:哈密尔顿问题、结点覆盖问题)是 NP-完全。
+++++++++++++++++++++++++++++++++++++++++++++++++++++
引言2
提出全息归约及算法(), :原来认为只有指数时间算法的, 用全息算法建立了多项式
++++++++++++++++++++++++++++++++++++++++++++++++++++
全息归约是计数问题之间的归约, 借助归约变换, 将另一个问题的多项式求解算法转换到目标问题的多项式算法。
+++++++++++++++++++++++++++++++++++++++++++++++++++
一般, 解分支之间可能有四种关系:一对一、
一对多、多对一、多对多。
Valiant 的全息归约特点是:将一个问题的解分支的总和数对应到另
一个问题的解分支的总和数。
即, 考虑所有组合可能下一个问题的完整解的和数与另一个问题的完
整解的和数之间的关系。
于是, 不同问题类的解分支之间是多对多的关系。
+++++++++++++++++++++++++++++++++++++++++++++
引言3
若
A
≤
H
B
A \le_H B
A≤HB,且问题 B 解的和数是多项式可计算, 则问题 A 解的和数也是多项式可计算
的。即问题 A 的解的和数有多项式算法。
按此“向下归约”的原理, 如能找到一种子(计数)B 有多项式时间算法, 则借助于全息归约关系,
可构建计数问题 A 的多项式时间算法。
由此产生的算法称为问题 A 的全息算法。
++++++++++++++++++++++++++++++++++++++++++++++++
全息算法有效性基于结论:寻找平面图的完美匹配数可以在多项式时间内计算。
具体来说,一个平面图的完美匹配数可以转化成计算一个矩
阵行列式值的平方根
++++++++++++++++++++++++++++++++++++++++++++++++++++
于是, 全息算法的种子算法是:平面图的完美
匹配数的多项式时间算法。
++++++++++++++++++++++++++++++++++++++++
根据“向下归约”原理, 全息算法主用于验
证 Valiant计数问题有多项式求解算法,
主要思想是将计数问题转换为一个平面图的完美匹配多项
式计算问题。
由于后者可在多项式时间内求解, 从而原计数问题
在多项式时间内可解。完成这一转换过程称为全息
归约。
在转换过程中, 本质上要构造一个平面图作为基图, 并构造一个 2 阶(或更高阶)的可逆矩阵作为基矩阵,
利用基矩阵对各种基本状态进行长编码,利用张积表示所有可能组合,
构造恰当的产生器和识别器, 用产生器和识别器取代基图中的结点(或
边),
并指定或引入一组边作为中间件连接产生器的输出端和识别器的输入端,
从而形成一个平面匹配网格。
通过中间件的状态组合取值计算匹配网格的 Holant 量, 而这个量刚好是匹配网格作为带权图的完美匹配多项式。
+++++++++++++++++++++++++++++++++++++++++++++++++
引言4
Va提出全息算法以来, 多数研究工作是在完善和简化该算法的理论和方法。
理解全息算法需要代数、组合数学、图论、算法理论等方面的知
识。对一般人而言, 全息算法具有一定的难度。
为简化和完善全息算法,蔡进一等人在全息算法方面做了工作:建立了全息算法中相关基础问题的代数描述体系;
基于Grassmann-Plucker 等人的工作, 建立了一般匹配门的一个完备描述;
给出了在保证完美匹配总数不变的前提下, 通过引入辅助子图处理原图中的交叉边, 以建立图的平面化的多项式时间算法;
研究了不同基的关系与表示能力; 提出了全息算法模板等
引言5
类比 NP-完全问题的证明方法, 全息算法所走
的路径刚好相反:
基于平面图的完美匹配数计算在
多项式时间内可解, 只要证明所考虑的计数问题能
够全息归约到平面图的完美匹配计数问题, 则可以
构造出问题的多项式时间算法。
这在实际中是非常有用的。
引言6
于这样思路, 全息算法的研究工作主要在如下几个方面:
- 全息算法理论的逐步完善, 并借助于其他
方法、理论对算法的描述, 使算法的构建变得更容
易和实用。 - 借助于全息算法, 寻找某些计数问题的多
项式时间算法。 - 全息算法的思想在其他领域的应用。
- 经典算法理论与全息算法理论的结合。
全息算法理论得到的算不同于以往的算法。
一个诱惑力的问题是:这一全新的方法会不会导致问题复杂性的分层坍塌。
现代理论计算机界普遍相信
P
≠
N
P
P\not=NP
P=NP, 这一信念是建立在多年来对高
效算法深入研究的基础之上。
但是, 以往的这些经验并没有应用在全息理论的新算法上。当然, 很可
能全息理论最终不会导致复杂性分层的坍塌,但正
如 Valiant 所预言的那样, 任何
P
≠
N
P
P\not=NP
P=NP的证明都需
要解释, 而不仅仅是暗示这一方法对 NP-难问题的
不可解性。
引言7
本文分析了全息算法的基本理论、原理和使用
方法, 对全息算法中最基本的概念(匹配门)及其标
识矩阵进行了详细分析, 给出了(生成)基矩阵利用
张积生成的变换矩阵与量子算法中酉变换矩阵分
解成二阶酉矩阵(量子门)的相似性。
联系多项式在给定基下的有限展开表示, 利用多项式编码联系到
其他正交函数系对函数进行编码和有限表示问题,
将此方法联系到布尔函数的线性表示及 0/1 串的线性布尔函数编码问题。
对全息算法原理的详细分析,旨在简化对全息算法的理解和应用, 对解决其他组
合问题提供帮助。
2 基本概念和记号
G = ( V , E , W ) G=(V,E,W) G=(V,E,W):边带权,无向图, W W W啥意思?
G G G无自回路
边子集 E ′ ⊂ E E'\subset E E′⊂E所关联的点集合为 I n c ( E ′ ) Inc(E') Inc(E′)
E ′ E' E′是匹配的定义
I n c ( E ′ ) = V Inc(E')=V Inc(E′)=V就是完美匹配
2.1 图的匹配多项式
考虑带权无向
G
=
(
V
,
E
,
W
,
Λ
)
G=(V,E,W,\Lambda)
G=(V,E,W,Λ),
W 是 边 集 合 权 函 数 W是边集合权函数 W是边集合权函数
Λ : V → F \Lambda:V\rightarrow F Λ:V→F是结点集合权函数, F F F是个域