Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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
Java Dijkstra算法是否适用于旅行商问题?_Java_Algorithm_Graph Algorithm_Dijkstra - Fatal编程技术网

Java Dijkstra算法是否适用于旅行商问题?

Java Dijkstra算法是否适用于旅行商问题?,java,algorithm,graph-algorithm,dijkstra,Java,Algorithm,Graph Algorithm,Dijkstra,这是一个一般性的问题。Dijkstra的算法能够找到每个节点之间的最短距离,而TSP问题说,通过以最短路径至少移动每个节点一次,在同一节点上开始和结束。 因为我无法用动态规划实现复杂的方法,所以我有没有办法用Dijkstra的算法方法来解决这个问题?可以使用Dijkstra的算法,但它没有多大帮助。 首先,您需要看到,用于找到解决方案的图不是输入图G=而是从输入图派生的图。哪一种可能 Gd=其中Vd是V的有序子集,Ed是来自Vd的一对,其中Ed中存在边“[v1,…,vn],[v1,…,vn,vm

这是一个一般性的问题。Dijkstra的算法能够找到每个节点之间的最短距离,而TSP问题说,通过以最短路径至少移动每个节点一次,在同一节点上开始和结束。
因为我无法用动态规划实现复杂的方法,所以我有没有办法用Dijkstra的算法方法来解决这个问题?

可以使用Dijkstra的算法,但它没有多大帮助。 首先,您需要看到,用于找到解决方案的图不是输入图G=而是从输入图派生的图。哪一种可能 Gd=其中Vd是V的有序子集,Ed是来自Vd的一对,其中Ed中存在边“[v1,…,vn],[v1,…,vn,vm],如果E中存在vn,vm\的话。 现在Gd中一条边的代价对应于G中的代价。当一个节点包含G中的所有节点时,它就是一个目标状态

蛮力深度/深度/迭代将起作用。迪克斯特拉怎么样。你需要有

一种一致的启发式算法,其估计值总是小于或等于 从任何相邻顶点到目标的估计距离,加上 到达邻居的步骤成本

显然,常数零是一种启发。你能得到更好的启发吗?
不是因为TSP的NP性质。有趣的是,在现实世界的问题中,你有时可以在一致的启发式算法中找到答案,这仍然会产生很好的结果。

Dijkstra的算法不适用于旅行推销员问题。想要评论:解释为什么Dijkstra的算法不起作用。