Je me demande s'il y a un moyen d'obtenir le chemin (pas seulement la distance) choisi par l'algorithme de force brute (TSP) dans ma solution comme je reçois seulement la distance.Voyageur voyageant (TSP) obtenant le chemin réel
Remarquez que j'ai commencé à Stockholm et que je suis arrivé à Stockholm.
- Le chemin le plus court est city1 -> City2 -> City3 ----> ....... puis ---> City1?
Une partie de ma classe principale:
public void step(boolean[] wentTo, int currentCity, float distance)
{
int wentToCount = 0;
for (int i = 1; i <= cityCount; ++i)
{
if (wentTo[i - 1])
{
++wentToCount;
continue;
}
boolean[] copy = new boolean[cityCount];
System.arraycopy(wentTo, 0, copy, 0, cityCount);
copy[i - 1] = true;
float dist = distance + distances[distanceIndex(currentCity, i)];
step(copy, i, dist);
}
if (wentToCount == cityCount)
{
if (shortest > distance)
{
shortest = distance;
}
}
}
N'est-ce pas simplement une question d'enregistrement dans les variables en cours dans votre calcul? Réinitialisation si votre algorithme décide plus tard d'un itinéraire différent. –
@ OleV.V. Pourrait s'il vous plaît veuillez le montrer dans le code? –