好的,首先我知道Dijkstra不适用于负重,我们可以使用Bellman-ford来代替它。但是在一个问题中,我给出了它的所有边都有从0到1的权重(0和1不包括在内)。而路径的成本实际上就是产品。Dijkstra的负重算法
所以我在想的就是取日志。现在所有的边缘都是负面的。现在我知道迪克斯特拉不会为负面权重工作,但在这种情况下,所有的边缘都是负面的,所以我们不能做点什么来让迪克斯特拉工作。
我虽然所有的权重乘以-1,但最短的路径成为最长的路径。
因此,无论如何,我可以避免在这种情况下的贝尔曼 - 福特算法。
确切的问题是:“假设对于某些应用,路径的成本等于路径中所有边的权重乘积。在这种情况下,您将如何使用Dijkstra算法?所有权重边缘从0到1(0和1不包括在内)“。
首先,我假设图是指向的。现在,如果权重在0到1之间,并且成本是通过权重的乘积来衡量的,那么您的确在寻找最长的路径。如果图中有任何周期,那么它相当于一个负成本周期。 –
因此Dijkstra会工作。我只需要找到最长的路径。另外,没有额外的要求,因此我很困惑。 –
你确定你不想要最可能的路径吗? –