终于到啦我最喜欢的拟阵交。拟阵交技术允许我们通过一个可实现的多项式算法解决许许多多的问题。
这一节我们首先介绍一下多个拟阵交的复杂性,再介绍两个拟阵交的算法。
拟阵交问题
我们通常会碰到一些拟阵,他们都是定义在同一个全集上的,只是独立集不一样,于是我们便定义出他们的交,以便研究一些更有用的东西。
给出两个在同一个集合 上定义的拟阵
。我们称
的交为
。
那很自然的,就能提出一个问题:两个拟阵的交是拟阵吗?答案是否定的,但是为什么呢?把这个问题留给大家思考一下,同时考虑一下和啥拟阵相交得到的一定也是个拟阵呢~当然我们这里要讨论的问题不是判断两个拟阵的交是否是拟阵。
现在,给出了多个定义在同一个全集上的拟阵,能不能找到一个足够大的集合,使得这个集合在各个拟阵上都是独立的呢?这便是拟阵交问题。这里我们形式化说明一下:
对于一个固定的 ,我们定义
-拟阵交问题(
-Matoid Intersection)为,输入一个全集
,
个矩阵表出的定义在
上的拟阵
和一个正整数
,问是否存在一个子集
,使得
在
上都是独立的。
我们接下来通过讨论 的大小,来研究这个问题的可解性。先抛出结果,
时
-拟阵交问题是NP-complete,
时
-拟阵交问题是多项式可解的。
l取不同值时,问题的可解性不同
当 ![《拟阵及应用(四)》](http://ddrvcn.oss-cn-hangzhou.aliyuncs.com/2019/4/RJ3UJj)
如果输入的拟阵数量达到三个,那么我们很不幸,就有下面这个定理。
定理4.1:3-拟阵交问题是NP-complete的。
证明:证明一个问题是NP-complete的,需要先证明其属于NP,其次再证明其是NP-hard的。属于NP的证明是很简单的,这里不做赘述。我们来考虑为啥是NP-hard的。
我们通过一个在二分图上的哈密顿路径问题来规约证明。
二分图上的哈密顿路径问题(Hamilton Path Problem in bipartite graph):输入一个二分图 ,问是否存在一条路径访问了每个点刚好一次。
哈密顿路径是我们熟悉的NP-complete问题,但实际上,哈密顿路径在二分图上也是NP-complete。
对于一个二分图(这里我们只考虑连通图,不连通就没有哈密顿路径了)上的哈密顿路径问题实例 ,我们构造三个定义在边集
上的拟阵
。其中
是图
的图拟阵。考虑边集
,如果
中的任意一个点最多与
中的两条边相连,那么
是
的独立集。同样我们构造
。如下图所示。
拟阵M_L中的独立集只与V_L最多两个点相连;拟阵M_R中的独立集只与V_R最多两个点相连
现在我们可以断言:如果 有一条哈密顿路径当且仅当存在一个边集
,满足
同时是
的独立集且
。
充分性:由于 是图拟阵
的独立集且
,所以
是原图的生成树。而又由于
是
的独立集,所以
的生成图在
中的度数都至多为
,一个度数最多为
的生成树,必为哈密顿路径。
必要性:哈密顿路径对图上的每个点最多访问了一次,且是一棵生成树,所以必然是三个拟阵的独立集。
证毕。
如果你仔细下来想想看,这个证明其实是不完整的,嘿嘿,想想为啥?(Hint 我有用到二分图吗?)
当 ![《拟阵及应用(四)》](http://ddrvcn.oss-cn-hangzhou.aliyuncs.com/2019/4/YJJJze)
敲黑板,重点!
定理4.2:2-拟阵交是多项式可解的。
我们通过一个多项式算法来说明这是正确的,这个多项式算法很简单,但证明其正确性是非常困难的,但是不慌,我们慢慢来剖析(或者你可以选择不看)。
算法的核心在于通过输入的两个拟阵 和当前的解集
(还记得住我们要找个什么解吗?)构建一个有向二分图(我们称之为交换图)
,通过不断扩大当前解集
,来找到最后的最大公共独立集。
交换图 的点集由两部分构成,一部分代表
中的元素,一部分代表
中的元素。而对于其边集,如果有从
到
的边,则必须要求
,同样,如果有从
到
的边,则必须要求
。
交换图的构造
有了这个交换图的概念,我们现在给出2-拟阵交的算法:
- 循环
- 构造交换图
- 计算在
上,从
到
的最短路
- 直到
不存在,输出
算法中 表示对称差
光看这个算法,可能摸不着头脑,我画个图感受一下:
U\I被划分为三部分,计算从X_1到X_2的最短路P,最后把P在U\I中的点加入I,把P在I中的点从I中去除
考虑一下复杂度。易见,每次我们都会多拿一个点进入 ,所以最多求
次最短路,而一次最短路的复杂度依赖于总的边数,其大小不会超过
,也就不会超过
。所以最后的复杂度是
。
这个算法正确性的证明非常的长(个鬼),好吧其实很短就能证明。。。
2-拟阵交算法正确性证明
这个算法的正确性的证明,是通过证明一个拟阵的最大最小定理来实现的(相辅相成?)
定理4.3(最大最小定理):对于两个定义在同一个全集 上的拟阵
,有:
我们会在接下来的证明中,通过构造指出算法找出的独立集就是上式的 。
证明:首先我们需要注意到一点拟阵的性质,考虑这两个拟阵任意的一个独立集 和一个子集
,总是有:
这是为什么呢?事实上
在
中独立,则
也在
中独立,所以
,同理可说明
。
现在我们只用说明上述不等式的等号总能取得到,即证明了定理4.3。
我们令 为2-拟阵交算法最终返回的公共独立集,并构造集合
为所有能在交换图
上间接或直接到达
的点。
我们假设 ,那么由拟阵的交换性质,存在元素
,使得
。由于这里没有从
到
的最短路(算法结束),所以
(注意
的定义)。那么一定存在
,使得
(想想为啥),根据交换图
的构造,存在
到
的有向边,所以
,矛盾。
故而 ,同理可证
。结合上面的不等式,我们就可以发现,我们构造的
和算法计算出来的
能取到最大最小定理的等号。
证毕。