Java 仍然可以';在TSP问题中找不到返回原点城市的方法
问题描述: 旅行推销员问题(也称为旅行推销员问题或TSP)提出以下问题:“给定一个城市列表和每对城市之间的距离,访问每个城市并返回原始城市的最短路线是什么?” 我的解决方案: 我用了回溯法,我用Google Guava库来构造图唯一的问题是我的代码没有返回初始城市,举个例子,如果我们有A,B,C,D城市,最短的轨迹是A,B,D,C,我们必须返回初始城市,像A,B,D,C,A,这是代码(或者,您可以查看以下github链接以更好地了解问题: 主课Java 仍然可以';在TSP问题中找不到返回原点城市的方法,java,algorithm,graph,guava,traveling-salesman,Java,Algorithm,Graph,Guava,Traveling Salesman,问题描述: 旅行推销员问题(也称为旅行推销员问题或TSP)提出以下问题:“给定一个城市列表和每对城市之间的距离,访问每个城市并返回原始城市的最短路线是什么?” 我的解决方案: 我用了回溯法,我用Google Guava库来构造图唯一的问题是我的代码没有返回初始城市,举个例子,如果我们有A,B,C,D城市,最短的轨迹是A,B,D,C,我们必须返回初始城市,像A,B,D,C,A,这是代码(或者,您可以查看以下github链接以更好地了解问题: 主课 ``` public class Main
```
public class Main {
public static void main(String[] args) {
TSP t = new TSP();
t.solve();
}
}
你就快到了,你只需要回到原点 为此,您必须在
TSP中有一个原点的引用。探索。您可以将其存储在this.startNode
中的某个位置,或使路由
成为一个节点数组:节点[]路由
然后您可以签入TSP。浏览,如果最后一个节点的原点是其邻居,则将该距离添加到总距离中,然后像往常一样继续
基本上可以归结为:
//存储节点而不是字符串。在使用它的任何地方编辑它。
节点[]路由;
// ...
如果(nchoices==图形化){
//
//基本情况:访问了每个节点
//
设置邻居=图。邻接节点(节点);
//如果第一个节点有一条边,这只是一个解决方案。
if(neights.contains(this.route[0])){
//与else块中的计算相同。
int distance\u btwn=这个.getDistanceBeween(节点,邻居);
//将距离添加到起始节点。
int total_distance=this.this_distance+distance_btwn;
if(总距离<此.min_距离<此.min_距离<0){
//如果这个距离<最小距离,这就是我们新的最小距离
//如果最小距离<0,这是我们的第一个最小距离
this.min\u距离=总距离;
//你必须告诉printSolution关于总距离的信息。
打印溶液(总距离);
返回;
}
}
打印失败();
}
我已经添加了一份关于如何进行的粗略草案。
The Node Class is
```
class Node {
public String label;
public boolean visited; // Helps us to keep track of where we've been on the graph
public Node(String name){
this.label = name;
this.visited = false;
}
public void visit(){
this.visited = true;
}
public void unvisit() {
this.visited = false;
}
}
The Edge Class :
```
class Edge {
public int value;
public String left, right; // For convenience in construction process. Not necessary.
public Edge(String left, String right, int value) {
this.left = left;
this.right = right;
this.value = value;
}
}
```
public class Main {
public static void main(String[] args) {
TSP t = new TSP();
t.solve();
}
}
I will be very Thankful if someone helped me with this issue