我知道这是指数级的。我已经实现了一种使用Dijkstra算法找到最短路径的方法。是否可以修改方法来找到最长路径?如果我将所有重量都设为负值,那么这不应该起作用。我当前图表上的所有权重都是正数。也应该没有重复的路径。
我知道Bellman Ford算法适用于负权重,但我希望我可以修改现有的最短路径方法。
答案 0 :(得分:3)
如果图形是无向的,那么最长的路径具有无限长度,因为您可以根据需要多次向前和向后访问边缘。因此,您应该添加一些条件,例如:节点只能访问一次,或者图形必须是定向的。
使所有权重为负且运行Dijkstra将产生无限循环。它实际上等同于我刚才解释的内容。
有关详情,请您阅读以下内容: http://en.wikipedia.org/wiki/Topological_sorting http://en.wikipedia.org/wiki/Travelling_salesman_problem
祝你好运!