两个周期中包含的最长周期


11

以下问题NP是否完整?(我认为是)。

输入: 一个无向图,其中边集可以分解为两个边不相交的简单循环(这些不是输入的一部分)。kN,G=(V,E)

问题:是否存在长度大于的简单循环?ķGk

显然,问题出在NP上,的最大是,但这似乎无济于事。4G4


1
我认为“连接任何一对最多4条路径”是不对的。参见:i.imgur.com/mYL4n1V.png
svinja

1
@svinja你是对的,我应该说在两个顶点之间,最多存在4个成对的边不相交的路径。
上市

您的标题具有误导性,因为最长的简单循环可能不是分解(在任何分解中)的两个循环中的任何一个。E
丹尼斯

@dkuper它实际上可以看两个顶点不相交的简单循环的并集。
上市

我的意思不是说它永远不能成为其中之一,而是有时候它不是其中之一。因此,问题不在于找到两者中的更大者。
丹尼斯

Answers:


2

减少尝试....

图的最大阶数为3的图是汉密尔顿路径的归约法,即NPC [G&J]G=(V,E)

  • 忽略边缘的方向,并使用从任意节点进行的第一深度(无向)扫描,将的边缘划分为两组不同的(无向)路径(图中的红色和绿色);G
  • 连接红色路径,添加额外的“链接节点”(图B中的紫色节点),并建立无向红色电路;连接绿色路径,添加额外的“链接节点”(图中的紫色节点),并建立无方向的绿色电路;
  • 变换每个原始节点入度1和2出度(图C),加入在入站黄色节点红色边缘,并加入在第一出站黄色节点红色边缘 ; 最后使用绕着的“包裹”路径将黄色节点“朝向”第二个出站绿色边缘,该路径接触了红色边缘的最外面的黄色节点(图D)。ķ 一个b ķ b c ^ ķ b d bbVkabkbckbdb

在结果图中,仅可以通过图E和图F中所示的两种方式通过一条简单路径遍历所有黄色节点,这两种方式对应于原始节点的两个有效遍历;非正式地,如果使用朝向额外的“链接”紫色节点的边缘,则无法遍历黄色节点。b V ķ3kbVk

  • 以类似的方式变换in度2和out度1的V的每个原始节点

选择足够大的,且仅当原始图具有哈密顿路径(长度)时,结果图的长度才大于)。ģ ' 3 ķ | V | - 1 g ^ | V | 1k|V|G3k(|V|1)G|V|1

在此处输入图片说明

较大的图片可以在这里下载


这是一个非常漂亮的证明,也许您应该将图“ A”中的边缘指向正确位置,以使其更易于理解如何获得路径(尽管我认为我已经理解了)。
上市

@Listing:路径的构造不依赖于有向边(实际上我在答案中写了“无向”搜索)。您应该从一个任意节点开始,首先从深度进行扫描,然后将红色遍历的边缘着色,然后回溯到遇到的第一个3度节点,然后从深度开始遍历它的深度优先扫描,以遍历的边缘绿色,依此类推。 ..也许它有一个更正式的定义,但我现在不知道。让我知道您是否需要更多详细信息。

我看到,沿“正确”方向遍历边缘的属性由上一次转换强制执行。谢谢你的澄清。
上市

0

受Vor的回答启发,我想给出一个简单的答案。

从网格图问题开始的汉密尔顿循环问题开始,伊泰对此进行了证明。

可以很容易地看出,网格图的边缘集可以分为两个不相交的子集:水平和垂直。

所以现在,我们需要将所有水平的编织到一个简单的循环中,并将所有垂直的编织到另一个简单的循环中。

这是非常容易的任务:对于垂直的,从最左边到最右边扫掠,只需连接任何垂直间隙,然后连接连续的x坐标垂直线,然后将最低的最左顶点与最高的最右顶点连接。对水平边缘进行类似的处理。

注意,所获得的图仍然是简单,无向的并且满足要求。这很简单,因为在垂直阶段和水平阶段的最后一步,我们处理两个不同的顶点对。

kk2k|V|

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.