我有以下问题:

\ begin {align} l_2={a,k \ \ mid \ text {a是3dnf(析出正常形式)和} \\ \案文{} a \}恰好符合k $满足Q $ Q $令人满意 \结束{对齐}

我知道 $ l_2 \以$ npc。

显示 $ l_2 \以$ np相对容易,我将跳过那部分。

我试图使用Vc $ \ leq_p l_2 $ (VC是我们在其NPC中知道的顶点封面)

i定义了以下功能 $ f $

$$ f(g,k)=(a,k)$$

我想到了每个节点的东西 $ i $ $ g $ 将定义一个文字 $ x_i $ ,并以3dnf格式制作它, $ a=bigvee(x_i \ wedge x_i \ wedge x_i) $ 其中 $ 1 \ leq i \ leq n $ 其中 $ n $ 是数量 $ g $ 中的节点。 我们可以定义以下 $ z $ ,使得 $ z $ sub完全安全 $ k $ 条文,只给 $'1'$ 文字 $ x_i $ 使得节点 $ i $ 在VC中,而 $'0'$ 否则,因此此类 $ z $ 存在。

如此易于看到 $(g,k)\在$ vc $ \意味着(a,k) \在L_2 $ 中,我们显式显示 $ z $ ,它们完全安全地 $ k $ 条文。

但我不确定另一侧保持 $(g,k)\ not \ in $ vc $ \暗示(a,k)\ not \ in l_2 $ 我们给出了一个没有vc大小的图形 $ k $ ,但我认为到期到我的建筑( $ a=bigvee(x_i \ wedge x_i \ wedge x_i)$ )我们可以找到 $ z $ 完全安全地缓解 $ k $ 条文(实际上我们可以找到 $ z $ 那个SAFIFIES $ x $ 条款 $ 1 \ LEQ x \ LEQ N $ 其中 $ n $ $ g $ 的节点数。

所以我的减少不容纳?

有帮助吗?

解决方案

你有问题的原因是因为你的解决方案不起作用。特别是,问题是您的公式不会捕获VC问题语句。更准确地说,您构建的公式始终具有满足<跨度类=“Math-Container”> $ k $ 条文的分配,只需设置 $ k $ 变量真实,剩下的是假。

所以让 $ g=(v,e)$ 是图表和 $ x \ subseteq v $ $ g $ 中的VC。 然后对于任何边缘 $ vw \中的e $ ,我们必须具有 $ v \ in x $ $ w \ in x $ ,给我们3互斥的可能性(通过基本重写 $ v \ vee w $ DNF):

  • $ v \ in x $ $ w \ notin x $
  • $ v \ notin x $ $ w \ in x $
  • $ v \ in x $ $ w \ in x $
因此

因此边缘 $ vw $ $ x $ 如果且仅当公式< Span Class=“Math-Container”> $ \ PSI(VW)=(v \ wedge w)\ vee(\ neg v \ wedge w)\ vee(v \ wedge \ neg w)$ 恰好是一个满意子句(根据与 $ x $ )的分配。

为每个边缘构造这种公式,并采取它们的分离,我们得到DNF公式 $$ \ psi ^ \ text {vc}(g)=bigvee_ {e \ in e} \ psi(e)=bigvee_ {vw \在e}(v \ wedge w)\ vee(\ neg v \ wedge w)\ vee(v \ wedge \ neg w)$$ 并且任何令人满意的分配完全 $ | e | $ 子句必须是 $ g $ 的VC。 现在我们需要一种方法来将VC的大小编码为全部,我们可以重用您的想法。 定义 $$ \ psi(g)=psi ^ \ text {vc}(g)\ vee \ bigvee_ {v v} v $$ 并且注意,第二部分中满足条款的数量恰好由我们选择的顶点集的大小为给出,因此对应于某些VC $ g $ $ | e | + | x | $

这里只剩下一个问题。 我们可以获得与VC对应的作业,但包括更多顶点以满足所需VC将相同数量的子句。 作为一个补救措施,我们可以重复第一个公式一些 $ | v | + 1 $ 时间,这样无论您选择多少个顶点,满意的条款总数都将始终太低。

因此我们获得了最终公式 $$ \ psi ^ \ ast(g)=bigvee_ {i= 1} ^ {| v | + 1} \ psi ^ \ text {vc}(g)\ vee \ bigvee_ {v \ in v} v $$ 并且注意,如果 $ g $ 具有vc $ x $ 那么相应的分配将完全满足 $(| v | + 1)\ cdot | e | + | x | $ $ \ psi ^ \ ast(g)$ 的子句。 为了反向方向,让 $ \ alpha $ 是一些赋值 $(| v | + 1)\ cdot | e | + k $ $ \ psi ^ \ ast(g)$ 的子句。 然后 $ \ alpha $ 必须表示vc in g,否则, $ \的第一部分中的满意子句的数量psi ^ \ ast(g)$ 最多 $(| v | + 1)\ cdot(| e | - 1)= | v | \ cdot | e | + | e | - | v | - 1 $ 以及 $ \ alpha $ 可以满足大多数 $ | v | $ 第二部分的条款,满意的条款总数最多 $$(| v | + 1)\ cdot(| e | - 1)+ | v |= | v | \ cdot | e | + | e | - 1 <(| v | + 1)\ cdot | e | $$ 但是,这意味着第一部分中的满意条款总数必须完全是<跨度类=“math-container”> $(| v | + 1)\ cdot | e | $ ,因此完全是< Span Class=“Math-container”> $ k $ 第2部分的子句满足 $ \ alpha $ ,因此 $ \ Alpha $ 对应于VC $ X_ \ Alpha $ 大小 $ k $ $ g $

注意,为了清楚起见,我没有指定 $ 3 $ -dnf公式。但是,由于 $ \ psi ^ \ ast(g)$ 的所有条款都是大多数 $ 2 $ 你可以jus

t增加了冗余文字到子句,以将它们吹到大小 $ 3 $ 如果需要。

我不确定这是做到这一点的最佳方式,但它应该解决。我省略了一些简洁的细节,如果不清楚你的话,请随时澄清:)

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top