在有向图中找到至少两个相同长度的路径


20

假设我们有一个有向图和两个节点和。我想知道是否已经有算法来计算以下决策问题:G=(V,E)AB

和之间是否至少有两条相同长度的路径?AB

复杂度如何?我可以在多项式时间内求解吗?


我想在图表上添加一个新的约束,也许这个问题可以解决。在邻接矩阵上,每一列都不为空。因此,每个节点在输入上至少有一个箭头,并且至少还有一个与其连接的节点。因此,如果节点是第个节点,则是图中的边。i(i,i)


你是说简单的道路吗?(最多一次访问每个节点),还允许它们具有一个公共内部节点吗?

1
不,路径没有限制。如果需要,您可以循环播放。
Paolo Parisen T. 2012年

容易观察到的是:如果之间只有一条简单路径,并且该简单路径最多连接到一个回路,则可以简单地说,如果至少有两个不同长度的回路连接到该简单路径,您可以说是...(我认为类似的事情很有用,您可以证明这一点),但是在不相交的简单路径的情况下(如果在证明这一点时遇到不相交的简单路径),则是NPC。Ñ öA,BNo

1
@mrm:我不认为这是重复的。要求所有步行都是一项非常耗时的操作(通常,步行的次数是无限的),而OP要求的是两条(简单)路径,而不是全部步行。
Dave Clarke

Answers:


10

考虑图,我们想知道从AB的两条不同长度的路径是否相同。该怎么办?简单:将两个路径合而为一。定义图形ģ '与顶点V × V × { 0 1 }。你让在步骤'通过在两个独立的步骤。附加位告诉您两条路径是否已经彼此分开。GABGV×V×{0,1}GG

形式上,存在边缘ģ '当且仅当'Ĵ Ĵ 'G ^ë ' = È 'j j '(i,j,e)(i,j,e)GiijjGe=e(i,i)(j,j)

该算法检查是否存在一个路径1 ģ ',这是ø V 4,或者类似的东西ø V + ë 2(A,A,0)(B,B,1)GO(V4)O((V+E)2)

如果您同意该算法正确,那么,的路径的长度最多为2 n 2,因此必须最晚在该长度处发生潜在的“路径冲突”。你可以得到一个Ô V ω日志V 从这一观察,在那里,规则ω是矩阵乘法的复杂性(询问你是否需要一个扰流板......)。G2n2O(VωlogV)ω

我强烈感觉到有一种算法,它使用了更多问题的结构。O(V+E)


3
很好
拉斐尔

4

也许我对这个问题有一个答案,但我不确定它是否有效。

“找到”两条路径并不重要,唯一重要的是“知道”它们是否存在。我认为这不是NP完全问题。

因此,采取邻接矩阵。我们可以轻松地假设它填充有0,1值。(0 =不存在边缘; 1 =存在边缘)让我们使用与3个值(0,1,2),下面的代数,一切作品照例除了:2 + <东西> = 2 ; 2 * <大于0的任何值> = 2A2+<something>=22<whatever greater than 0>=2

所以,如果有来自两个相同长度的路径我期待有一个值p,使得 p Ĵ = 2i,jp(Ap)i,j=2

为图中的顶点数(或者说A的维数为n × n)。我不知道p的值,但是如果我通过与A乘以最多n 2来迭代A,那么我应该找到答案。(因此,p < n 2)(感觉是我检查A,然后我检查A 2,然后我检查A 3,依此类推...)nAn×npAn2p<n2AA2A3

这是我的论点:

  • 如果这两个路径是简单路径,那么它会起作用。如果有,我最多必须迭代次。n
  • 如果至少有一个必需的周期或有两个周期的路径,那么,我必须找到最小公倍数(LCM)。肯定是一个较大的值,如果有,我应小于n 2倍才能找到它们。n2n2
  • 如果两个路径有两个不同的路径,都与一个周期,那么它找出解决办法对这种两个方程或多或少类似:,其中ķ是这两个不同的长度周期。如上定义的矩阵乘法A q表示“是否存在从ij且长度为q的路径?” 因此,如果A q1大,则意味着从ij的路径更多。通过迭代矩阵nα+βm=γ+δkmkAqijqAq1ij倍,我们通过所有可能的组合 δ β。实际上, L C M a b 定义为a b / G C D a b ,任何周期都不能大于 nn2δβLCM(a,b)(ab)/GCD(a,b)n

一旦找到我就停止迭代。(Ap)i,j=2

我错了吗?


我尝试了同样的方法,但遇到了一些问题/不确定性:1)如果路径连接到多个周期,该怎么办?您是否必须“检查”所有组合(在最坏的情况下,每个节点都处于指数级的多个循环!),炸毁上限,还是仅考虑每个组合一个就足够了?2)由于偏移量γ恒定,LCM真的是上限吗?αγ
拉斐尔

顺便说一句,不需要时髦的代数:只要在您计算作为矩阵项的那一刻就停止。2
拉斐尔

@Raphae 1)如果有一条带有两个循环的路径,那么肯定有两条长度相同的路径。一个在第一个循环上循环,另一个在第二个循环上循环。他们必须循环多少?恰好是两个周期长度的LCM。它以为界,其中n是图中的顶点数。2)LCM是上限(在情况1中),因为LCM(a,b)受a * b加αγ偏移量限制;因此,总共有L C M a b + α + γ < a b + α + γn2nαγLCM(a,b)+α+γ<ab+α+γα+γ+a+b<nab+α+γn2
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.