我在Java中有一个A*搜索算法,我希望能够打印出旅游路线,以便用户可以查看它尝试过哪些路线以及哪条是最佳路线。目前它只会打印出最佳路线,这很好,但我也希望它能够打印出一份路线清单,以便您可以查看每个最差路线及其相关成本。
从下面的代码中,如果我打印followedRoute,那么它会打印出每一次旅行,但是我能否打印出每一次旅行的费用呢?该算法通过找到每个完整的旅行和其中最低的成本来工作,理想情况下,我只想打印完整的旅行,而不是{0},{0, 3}等不完整的旅行。
非常感谢您的帮助!提前致谢:)
从下面的代码中,如果我打印followedRoute,那么它会打印出每一次旅行,但是我能否打印出每一次旅行的费用呢?该算法通过找到每个完整的旅行和其中最低的成本来工作,理想情况下,我只想打印完整的旅行,而不是{0},{0, 3}等不完整的旅行。
以下是我认为相关的代码段,如果需要更多信息,请询问 :)
Cities aux = currentCities;
ArrayList followedRoute = new ArrayList();
followedRoute.add(aux.number);
while (aux.level != 0) {
aux = aux.parent;
followedRoute.add(0, aux.number);
}
if (currentCities.level == distances.getCitiesCount()) {
solution = true;
bestRoute = followedRoute;
bestCost = currentCities.g;
} else {
for (int i=0; i<distances.getCitiesCount(); i++) {
// have we visited this city in the current followed route?
boolean visited = followedRoute.contains(i);
boolean isSolution = (followedRoute.size() == distances.getCitiesCount())&&(i == firstNode);
if (!visited || isSolution) {
Cities childCities = new Cities(i, currentCities.g + distances.getCost(currentCities.number, i),
getHeuristicValue(currentCities.level + 1), currentCities.level + 1);
childCities.parent = currentCities;
opened.add(childCities);
System.out.println(followedRoute);
}
}
}
非常感谢您的帮助!提前致谢:)