拟阵及应用(三)

这一节主要介绍一些拟阵的问题,和相关的算法。

输入的界定

在讨论问题或者算法之前,我们写界定一下一个拟阵的输入是啥。通常来说,我们表达拟阵与两种方式:

  • 列举所有的独立集
  • 给出表出矩阵

在我们接下来的讨论中,我们都假设问题的输入,是第二种方式,即我们通过给出表出矩阵 《拟阵及应用(三)》 来表达一个拟阵 《拟阵及应用(三)》

那么,可能大家容易想到的一个问题就是,对于一个集合 《拟阵及应用(三)》 ,我们想知道 《拟阵及应用(三)》 是否是 《拟阵及应用(三)》 的独立集。当然,这是很容易办到的。因为我们只需要判断 《拟阵及应用(三)》 在矩阵 《拟阵及应用(三)》 中对应的向量是否线性独立,而高斯消元(Gaussian elimination)(搞死小圆)就可以在多项式时间内判断向量组的线性独立。判断一个集合 《拟阵及应用(三)》 是否是独立集,除了通过高斯消元,在不同的问题中,我们也可以通过不同的办法来实现(比如在均匀拟阵中,只用回答 《拟阵及应用(三)》 大小是否超过秩)。

接下来,我们讨论一些关于基与环的问题,这都有着很实际的意义。

寻找最小带权基

问题定义:全集 《拟阵及应用(三)》 中的每个边有个权重 《拟阵及应用(三)》 ,我们的任务是寻找一个权值和最小的基。(对于找最大权值,我们只需要对权值求相反数,因为权值函数是定义在 《拟阵及应用(三)》 上的)。

先回顾一下基的定义:

基(Basis):一个极大独立集叫做基。

比如在均匀拟阵中,大小为秩的子集便是基;在图拟阵中,一棵生成树(如果图连通的话)就是基。

咦!那寻找最小带权基,在图拟阵中不就是最小生成树嘛?(你可能会发出这样的疑问)。没错,而且好巧不巧,解决最小生成树的贪心算法Kruskal,同样能解决其他拟阵的最小带权基问题!贪心算法流程如下:

  • 令初始解集 《拟阵及应用(三)》
  • 不断扩大解集
    • 在第 《拟阵及应用(三)》 步,寻找未加入解集,且权值最小,并能保证解集独立的边 《拟阵及应用(三)》
    • 若能找到
      • 《拟阵及应用(三)》 加入解集, 《拟阵及应用(三)》
    • 若不能找到
      • 输出当前解集 《拟阵及应用(三)》

这个算法简单粗暴,而且效率非常高(在图拟阵问题中是 《拟阵及应用(三)》 的复杂度)。

定理3.1:上述贪心算法输出的 《拟阵及应用(三)》 为最小带权基。

证明:首先 《拟阵及应用(三)》 一定是一个基,这是因为我们找到的是一个极大的独立集。现在证明 《拟阵及应用(三)》 是最小带权基。

我们令 《拟阵及应用(三)》《拟阵及应用(三)》 的最小带权基,我们把 《拟阵及应用(三)》 中的元素按照非递减的顺序排序 《拟阵及应用(三)》 ,设 《拟阵及应用(三)》 。我们通过归纳法证明 《拟阵及应用(三)》 的权值至多是 《拟阵及应用(三)》 的权值。对于 《拟阵及应用(三)》《拟阵及应用(三)》 来说,显然是满足的。对于 《拟阵及应用(三)》 ,假设 《拟阵及应用(三)》《拟阵及应用(三)》 的权重都不超过 《拟阵及应用(三)》 的权重。

我们令 《拟阵及应用(三)》 是第 《拟阵及应用(三)》 步加入 《拟阵及应用(三)》 的边。由交换性质,我们知道 《拟阵及应用(三)》 ,使得 《拟阵及应用(三)》 是独立的。然而在算法的过程中,我们选择了 《拟阵及应用(三)》 而不是 《拟阵及应用(三)》 ,这意味着 《拟阵及应用(三)》 。由于 《拟阵及应用(三)》 是非减的,所以有 《拟阵及应用(三)》 。所以由归纳假设: 《拟阵及应用(三)》

证毕。

《拟阵及应用(三)》
《拟阵及应用(三)》 利用S_{i-1}比X_i小,证明每次加入的元素总比X对应的元素权值更小

这个贪心算法除了应用在求最小生成树,还能应用在哪里呢?可以看出,只要讲问题的限制描述成拟阵,而问题的目标是求最小或最大带权基,那么就能应用!比如说,给定一些同维度的带权向量,求最小权的极大线性无关向量组,也是能用贪心做的(似乎不是很会举例)。

寻找最小或最大带权环

既然最小带权基能多项式做,那能不能多项式做最小或最大带权环呢(星星眼)?答案是,不能!除非P=NP

对于最大带权环问题,其在图拟阵上,等价于寻找最大的圈,如果权值都是1的话。然而这和著名的NP-complete问题哈密顿回路等价,所以寻找最大带权环是NP-hard的。

对于最小带权环问题,其在图拟阵上,等价于寻找最小的圈,当然这是多项式可解的。但这并不意味着,寻找最小带权环是多项式可解的。事实上,我们可以通过一个叫Even Set的NP-complete问题规约证明寻找最小带权环是NP-hard的。

Even Set 问题是说给定一个全集 《拟阵及应用(三)》 ,和一个 《拟阵及应用(三)》 上的集族 《拟阵及应用(三)》 ,和一个整数 《拟阵及应用(三)》 ,问是否存在一个集合 《拟阵及应用(三)》 ,其大小不超过 《拟阵及应用(三)》 ,且 《拟阵及应用(三)》《拟阵及应用(三)》 是个偶数。

对任意一个Even Set的实例,我们构造一个二元拟阵 《拟阵及应用(三)》 。考虑这个二元拟阵 《拟阵及应用(三)》 的表出矩阵为 《拟阵及应用(三)》 ,每一行代表一个集合 《拟阵及应用(三)》 ,每一列代表一个元素 《拟阵及应用(三)》 。当第 《拟阵及应用(三)》 个元素在第 《拟阵及应用(三)》 个集合中时, 《拟阵及应用(三)》 否则 《拟阵及应用(三)》

如此一来,寻找集合 《拟阵及应用(三)》 ,便是在 《拟阵及应用(三)》 中找寻最小带权环。所以最小带权环也是NP-hard的。

更不幸的是,寻找最小带权环,以解集大小作为参数,甚至是属于W[1]-hard的,即在一定假设下,似乎也没有FPT算法。另一方面,如果限制了拟阵可以在一个有限域表出,那么是存在以解集大小作为参数的FPT算法[1, 2]。但如果限制拟阵是可以在一个整环上表出,是否存在以解集大小作为参数的FPT算法,至今也是Open的。

这一节就到这里啦,下一节讲讲非常非常棒的拟阵交(科研的好工具;ACM选手看着就眼馋)。

Ref.

[1] Hlinený, P.: Branch-width, parse trees, and monadic second-order logic for matroids. J. Combinatorial Theory Ser. B 96(3), 325–351 (2006)

[2] Geelen, J., Gerards, B., Whittle, G.: Excluding a planar graph from GF(q)-representable matroids. J. Combinatorial Theory Ser. B 97(6), 971–998 (2007)

    原文作者:好地方bug
    原文地址: https://zhuanlan.zhihu.com/p/54178375
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞