我想知道如何做 BOUND 因为我生成了所有可能的解决方案矩阵 tsp 但没有生成边界。问题是旅行推销员。是否有可能做到这一点?
public void bnb (int from, ArrayList followedRoute) {
if (followedRoute.size() == distances.getMatrix().get(0).size()) {
followedRoute.add(sourceCity);
nodes++;
// update the route's cost
routeCost += distances.getCost(from, sourceCity);
if (routeCost < optimumCost) {
optimumCost = routeCost;
optimumRoute = (ArrayList)followedRoute.clone();
result += followedRoute.toString() + "// Cost: "+ routeCost + "\n";
System.out.println(result);
}
routeCost -= distances.getCost(from, sourceCity);
}
else {
for (int to=0; to < distances.getMatrix().get(0).size(); to++){
if (!followedRoute.contains(to)) {
// update the route's cost
routeCost += distances.getCost(from, to);
if((routeCost < optimumCost) ) {
ArrayList increasedRoute = (ArrayList)followedRoute.clone();
increasedRoute.add(to);
nodes++;
bnb(to, increasedRoute);
}
routeCost -= distances.getCost(from, to);
}
}
}
}