Je suis un étudiant travaillant sur un simulateur de colonie de fourmis pour un projet de cours. L'algorithme est (évidemment) un algorithme de colonie de fourmis. Je sais qu'il existe différentes formes de l'algorithme, mais toutes étaient trop détaillées mathématiquement pour nous, nous avons donc adopté une approche dans laquelle nous avons:
- Une fourmi est née dans une colonie et doit recueillir de la nourriture à partir d'une source pour soutenir la colonie.
- Toutes les fourmis sont similaires.
- La zone dans laquelle la fourmi se déplace est une grille de 1000x1000, donc chaque point de la grille sert de point valide pour une fourmi à occuper. Maintenant, tous les algorithmes que j'ai rencontrés impliquent de traiter les sommets et les bords séparément, mais comme nous limitons le mouvement des fourmis à seulement quatre directions (haut, bas, gauche, droite), je suppose que peu importe où nous mettons la phéromone.
- Les points de grille mentionnés ci-dessus stockent la phéromone.
- Une fourmi ne laisse tomber la phéromone que si elle transporte de la nourriture.
- Pour une fourmi à une position (i, j), elle décide où se déplacer à l'étape suivante en tenant compte des quantités de phéromones sur ses quatre nœuds adjacents dans une formule probabiliste simple, c'est-à-dire que la probabilité de voyager vers un nœud est donnée par (quantité de phéromones à un nœud adjacent particulier) / (somme des quantités de phéromones dans 4 nœuds adjacents).
- Une fourmi ne peut pas revenir à sa position d'origine. Il ne peut le faire que s'il se trouve dans un site qui a de la nourriture ou s'il est dans sa colonie.
Maintenant, ma préoccupation est (et ce qui se passe réellement dans notre programme) que lorsqu'une fourmi PREMIÈRE atteint une position qui a de la nourriture et la ramasse, alors, par la façon dont notre algorithme fonctionne, elle peut se déplacer n'importe où! En effet, il ne laissera qu'une trace de phéromone, une fois qu'il a la nourriture et pas avant et comme c'est la première fourmi, il n'y a pas de trace existante.
Si la fourmi peut se déplacer n'importe où, les fourmis qui atteignent la source de nourriture après elle auront également tendance à la suivre. MÊME SI elle ne recule pas vers la colonie. Cela va à l'encontre du but de l'algorithme entier.
Donc mes questions sont
- La préoccupation ci-dessus est-elle valable? Si non, alors pourquoi? Si oui, comment y faire face?
- Avons-nous besoin de faire quelques changements dans notre compréhension de base de l'algorithme pour le faire fonctionner?
- Quelles sont les autres choses subtiles mais importantes que les débutants comme moi peuvent manquer dans ce cas?