Bonjour
Je souhaite coder un algorithme d'optimisation par colonie de fourmis, le plus simple possible, mais surtout, plutot que de recopier betement des sources, bien le comprendre.
J'ai donc chercher dans google, et trouvé sur http://web.archive.org/web/200208121...gorithmes.html
un début d'algorithme, que voici :
1 2 3 4 5 6 7 8
| max_phéromone = 0;
Pour Ville_courante allant de 1 à N
Si Ville_courante pas encore visitée
Si Phéromone[Ville_précédente, Ville_courante] > max_phéromone
Ville_suivante = Ville_courante
max_phéromone = Phéromone[Ville_précédente, Ville_courante]
FinSi
FinPour |
et
Pheromone[i, j] = (1 - alpha) Pheromone[i, j] + alpha * K
Néanmoins je me pose toujours quelques petites questions:
- Lors de la première itération, les pheromones ne seront présentes nulle part. Comment les fourmis choisiront elles leurs villes de destination ? Au hasard ? Ou en fonction de la distance de cette ville par rapport à celle de départ ?
- Une fois que les fourmis ont visité chacune toutes les villes, que se passe t'il ? Le résultat est il trouvé, ou faut il réinitialiser les fourmis encore et encore ?
- Comment le plus court chemin est trouvé ? S'agit t'il des x chemins comportant le plus de phéromones ? Ou alors, au bout d'un certains nombre d'itérations, le chemin que les fourmis suivent ( en supposant qu'elles stockent en mémoire l'ordre des villes qu'elles visitent )
Merci
Floopy
Partager