组合独立集/汉明距离的算法/近似

时间:2010-08-18 15:24:19

标签: algorithm set np-complete packing hamming-distance

输入:图G 输出:几个独立集,以便节点对所有独立集的成员资格是唯一的。因此,节点与其自己的集合中的任何节点都没有连接。这是一个示例路径。

由于这里要求澄清另一种改写:

将给定的图形分成几组,以便

  1. 我可以通过其成员资格来告诉所有其他节点,例如如果节点i仅存在于集合A中,则仅在集合A中不存在其他节点

    如果节点j出现在集合A和B中,则集合A和B中不应存在其他节点。如果节点的成员资格是通过位模式编码的,那么这些位模式的汉明距离至少为一个

  2. 如果图中有两个节点相邻,则它们不应出现在同一个集合中,因此是一个独立的集合

  3. 实施例: B没有相邻节点 D => A,A => D

    解决方案:

    1. A B /
    2. / B D
    3. A具有位模式10,并且其集合中没有相邻节点。 B具有位模式11并且没有相邻节点,D具有01 因此,所有节点的汉明距离至少为1,无相邻节点=>正确

      错了,因为D和A是连接的:

      1. A D B
      2. / D B
      3. A在其集合中具有位模式10和D,它们是相邻的。 B具有位模式11而没有相邻节点,D具有11和B一样,因此该解决方案中存在两个错误,因此不被接受。

        当然,随着图表中节点数量的增加,这应该扩展到更多集合,因为您至少需要log(n)个集合。

        我已经在MAX-SAT中编写了一个转换,为此使用了一个sat-solver。但条款的数量只是很大。更直接的方法会很好。到目前为止,我有一个近似值,但我想要一个精确的解决方案或至少更好的近似。

        我尝试过一种方法,我使用粒子群从任意解决方案优化到更好的解决方案。然而,运行时间非常糟糕,结果远非如此。我正在寻找动态算法或其他东西,但我无法理解如何划分和征服这个问题。

2 个答案:

答案 0 :(得分:7)

答案 1 :(得分:1)

这可能不是您可能期望的答案,但我找不到添加评论的地方。所以我在这里直接输入。我无法完全理解你的问题。或者它需要特定的知识才能理解?这个独立集是什么?据我所知,有向图中独立集合中的节点具有到该集合中任何其他节点的双向路径。你的观念是一样的吗?

如果这个问题与我假设的一样,可以通过此算法找到独立集合: 1.在有向图上进行深度优先搜索,记录遍历此节点的树的时间。 2.然后反转此图中的所有边 3.在修改后的图形上再次进行深度搜索。 algorihtm由书"introduction to alogrithm"

精确解释