是否知道此路径问题的复杂性?


9

实例:一个无向图具有两个不同的顶点和一个整数。Gstk0

问题:是否存在一条路径,使得该路径最多与三角形相交?(对于此问题,如果路径包含三角形的至少一条边,则该路径被称为相交。)stGk


3
错了吗 我们为每个边缘分配权重,然后找到最短的st路径。每个边缘的权重是包括该边缘的三角形的数量。该路径的权重不等于它遇到的三角形数量,而是一条最小三角形数量的st路径。(可能的问题是,我们可能会对一个或多个三角形进行两次计数,因为我们访问了该三角形的两个边,但是选择它们的原因是它们比穿过三角形的另一个边小,并且我们拥有简单的路径均值三角形的两个边缘彼此相邻)。
2015年

3
@Saeed我不明白:过度计数不会使您选择次优路径的说法是什么?您的算法当然是2近似值。也许一种解决方法是为每个路径添加一条边,其权重等于包含和的三角形的数量(u,w)uvw(u,v)(v,w)
Sasho Nikolov

2
是的,我们可以从u转到v,然后选择x(某个其他节点不在三角形uvw中),然后转到w,这是错误的(我的错误是我错过了不在三角形uvw中的顶点之间) ,但经过修正后,它是正确的,因为对于原始图中每个带有三角形的st路径,辅助图中都有一条权重的路径。此外,新图形中路径的权重始终至少等于原始图形中相应路径中的三角形数。αα
2015年

1
我对此进行了更多考虑,即使修复后仍然无法使用。对不起,安德拉斯,如果我带来了错误的希望。要了解为什么修复错误,请考虑路径中的顶点,我们有一个三角形和并且假设边和入射到太多三角形。如果我们使用一个人造新边连接那么我们对三角形两次计数。PS:我的推理又是错误的,因为我认为我们只需用新的(多)边替换和u>v>w>xPu,v,wv,w,xvxuwu>wv,w,xu>vv>wu>w。如果我们为每条路径添加这些人造边缘,它将很​​简单。好像是NPC。
2015年

1
我的想法行不通-我需要维护多个集合,而且我认为它们将太多。
reinierpost 2015年

Answers:


1

假设中没有自我优势。G

对于节点之间的每个边和在,让,并且如果不存在边缘。计算矩阵,得出每对之间的两跳路径数节点和。然后对之间的边缘和在计算否则组,这给三角形的数量边缘是(如果没有边缘则为无穷大)的一部分。计算所需的矩阵乘法vivjGE[i,j]=1E[i,j]=0n×nC[i,j]=k=1nE[i,k]E[k,j]vivjvivjGD[i,j]=E[i,j]C[i,j]D[i,j]=C成本为(可以根据稀疏度更快地进行计算)。O(n3)G

现在计算矩阵,使得。是中所有长度最短的路径,最多增加两个,以说明沿着某个三角形的两个边缘的路径。n×nAA[i,j]=min(D[i,j],mink(D[i,k]+D[k,j]E[i,j]))AD

现在只是计算之间的最短路径和在上一个新的图,其中是使用迪杰斯特拉(因为所有的边缘的权重为正),即第(加权)邻接矩阵,并确定是否,其中是热带半环上的闭合(给出距离矩阵)。vivjGAA[i,j]kA

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.