Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 最长简单路径_Algorithm_Language Agnostic_Computer Science_Graph Theory_Theory - Fatal编程技术网

Algorithm 最长简单路径

Algorithm 最长简单路径,algorithm,language-agnostic,computer-science,graph-theory,theory,Algorithm,Language Agnostic,Computer Science,Graph Theory,Theory,因此,我理解在图中寻找最长简单路径的问题是NP难的,因为你可以通过将边权重设置为1,看看最长简单路径的长度是否等于边的数目,轻松地解决哈密顿回路问题 我的问题是:如果你拿一张图,找到最大边权重,m,用m-w替换每个边权重w,并在上面运行标准的最短路径算法,你会得到什么样的路径?这显然不是最长的简单路径,因为如果它是,那么NP=P,我认为类似的证明会更复杂一些=P。如果你能用负权重解决最短路径问题,你会找到一条最长路径,这两条路径是等价的,这可以通过将权重设为-w而不是w来实现 负权重的标准算法是

因此,我理解在图中寻找最长简单路径的问题是NP难的,因为你可以通过将边权重设置为1,看看最长简单路径的长度是否等于边的数目,轻松地解决哈密顿回路问题


我的问题是:如果你拿一张图,找到最大边权重,
m
,用
m-w
替换每个边权重
w
,并在上面运行标准的最短路径算法,你会得到什么样的路径?这显然不是最长的简单路径,因为如果它是,那么NP=P,我认为类似的证明会更复杂一些=P。

如果你能用负权重解决最短路径问题,你会找到一条最长路径,这两条路径是等价的,这可以通过将权重设为-w而不是w来实现

负权重的标准算法是算法。但是,如果图中存在一个循环,使得边和为负,则该算法将不起作用。在您创建的图中,所有这样的循环都具有负和权重,因此该算法无法工作。当然,除非你没有循环,在这种情况下,你有一棵树(或一片森林),这个问题可以通过动态规划来解决

如果我们用m-w替换w的权重,这保证了所有权重都是正的,那么可以通过标准算法找到最短路径。如果此图中的最短路径P有k条边,则长度为k*m-w(P),其中w(P)是具有原始权重的路径的长度。该路径不一定是最长的路径,但是,在所有具有k条边的路径中,P是最长的

使用您的算法将上图转换为下图

最长路径是上图中的红线。根据断开连接的方式和使用的算法,变换后的图中最短路径可以是蓝线或红线。因此,使用您提到的常数变换图边权重不会产生显著的结果。这就是为什么不管你有多聪明,你都不能用最短路径算法找到最长的路径。一个更简单的转换可以是否定所有边权重并运行算法。我不知道我是否回答了你的问题,但就路径属性而言,转换后的图没有任何关于距离的有用信息

然而,这种特殊的转换在其他领域是有用的。例如,如果您有多个约束,可以通过添加一个巨大的常量强制算法在双矩阵匹配中选择特定的边权重

  • 编辑:我被告知要添加这句话:上面的图表不仅仅是物理距离。他们不需要持有三角形不等式。谢谢

这里有一个提示:如果在新图形中找到长度为L的路径,并且它包含k条边,那么在旧图形中对应路径的长度是多少?它将是“mk-[路径中每个i的总和(权重(i))”。。。我想我需要另一个提示你说的“什么样的道路”是什么意思?我不认为这有什么特别的意义。@v3:我认为这是正确的答案。这肯定不是最长的简单路径或最短的路径。啊,我将新的权重设置为
m-w
,而不是
-w
。最小的权重为0。“在所有长度为k的路径中,P是最长的。”-难道所有长度为k的路径都不具有相同的长度吗?我在两个意义上使用了“长度”,即边数和权重之和。我已经在编辑中澄清了这一点。很抱歉,你所附的图片现在似乎不起作用。也许你把它从你的投递箱里拿出来了?该死,我真的很想看这张照片