以下问题的复杂性是什么?
输入:
查询:是否有一个匹配 ,使得对于每一个(v ,Û )∈ [R ,d G ^(v ,Û )≤ ķ?
(其中,G ^ = ([ Ñ ] ,中号∪ ħ ))
我一直在和朋友讨论这个问题。我的朋友认为问题出在多项式时间内。我认为它是NP完整的。
以下问题的复杂性是什么?
输入:
查询:是否有一个匹配 ,使得对于每一个(v ,Û )∈ [R ,d G ^(v ,Û )≤ ķ?
(其中,G ^ = ([ Ñ ] ,中号∪ ħ ))
我一直在和朋友讨论这个问题。我的朋友认为问题出在多项式时间内。我认为它是NP完整的。
Answers:
这个答案是不正确的。
你的朋友是对的。您的问题(由Sasho解释)对匹配的基数没有任何限制。因此,选择C作为R中的对之间的匹配。那么对于任何正整数k,R中每对之间的距离小于k。
如果您强制路径包含来自匹配和路径P的边,那么您的问题将变得很有趣。
更新:下面的答案是不正确的,因为我错误地认为哈密顿路径在任意图中,而不是在。我不删除它,也许我可以修复它,否则它会为其他答案提供一些提示。
我认为这是NP完整的。这是3SAT的一种非常非正式/快速减少想法
对于每个变量添加一个带有以下内容的“变量小工具”:
添加一个源节点并将其连接到所有变量X i。
对于每个子句添加节点ç Ĵ并将其连接到相应的变量+ X 我或- X 我形成子句。
下图表示:
该组(即必须被链接的节点)包含 (小号,Ç 1),(小号,Ç 2),。。。
简单的路径应包括除了可变边缘所有的“BLUE”边缘(X 我,+ X 我)和(X 我,- X 我)(在上面的蓝色边缘的图像表示的边缘,我们包括在P)。
此时,当且仅当从到每个子句节点C j的最短路径不大于3时,初始公式才可满足。实际上,要从S中获得一个子句,我们必须遍历至少一个变量X i:S → X i → ± X i → C j。因此,我们必须遍历两个边之一: X i → + X i或X i → − X i)并将其包含在C中(由于构造,它不是的一部分)。但是不能同时包含两者,因为它们共享一个顶点。
但是我们不确定是否可以构建包含所有蓝色边缘的简单路径,因为某些节点具有多个入射蓝色边缘。
为了解决这个问题,我们将每个节点替换为多个蓝色入射边缘,并用一棵仅包含成对的蓝色入射边缘的树替换为,将它们分开的边缘也应包含在C中以到达子句节点:
原始图变为: