Algorithm 我们可以使用Dijkstra';s即使在边权重为负的图中也能找到最短路径?

Algorithm 我们可以使用Dijkstra';s即使在边权重为负的图中也能找到最短路径?,algorithm,graph,shortest-path,dijkstra,Algorithm,Graph,Shortest Path,Dijkstra,假设我有一个图,其中最小边权重为−100我可以将100作为偏移量添加到所有边并使用Dijkstra算法吗 请帮助我理解为什么这样的方法会给出错误的解决方案。在每个边权重中添加100会给出错误的解决方案,因为它会惩罚边数较多的路径,而不是边数较少的路径 例如,假设我们有一个图,从点a到点B的最短路径有3条边,总距离为5。假设从点A到点B的其他路径有2条边,但总距离为10 如果我们向每个边权重添加100,则第一条路径的成本为305,而第二条路径的成本为210。因此,第二条路径比第一条路径短 因此,

假设我有一个图,其中最小边权重为−100我可以将100作为偏移量添加到所有边并使用Dijkstra算法吗


请帮助我理解为什么这样的方法会给出错误的解决方案。

在每个边权重中添加100会给出错误的解决方案,因为它会惩罚边数较多的路径,而不是边数较少的路径

例如,假设我们有一个图,从点a到点B的最短路径有3条边,总距离为5。假设从点A到点B的其他路径有2条边,但总距离为10

如果我们向每个边权重添加100,则第一条路径的成本为305,而第二条路径的成本为210。因此,第二条路径比第一条路径短


因此,我们可以得出结论,向每个边权重添加偏移量或偏差不一定会保留最短路径。

为什么您认为它给出了错误的答案?它给出了错误的答案,因为Dijkstra的算法没有定义为否定的否,原因已经由Nayuki指出。