Bonjour a tous.
Je suis en classe préparatoire BCPST et j'ai pris l'option informatique. Pour la fin de l'année, nous avons deux projets a monter, avec un thème et une trame imposée, mais une démarche libre.
Pour notre projet, nous devons simuler le comportement des fourmis. Je vous "donne" l’énoncé qui résume assez bien le phénomène.
On cherche donc a faire un programme qui simule le comportement normal des fourmis.Des fourmis ayant détecté une source de nourriture rapportent cette nourriture au nid en suivant au départ plusieurs chemins possibles, puis au bout d'un certain temps, l'un des chemins devient privilégié : c'est le plus court.
En fait les fourmis sont guidées pas la quantité de phéromones laissées par les précédentes. Sur le chemin le plus court, la fréquence de passage des fourmis est plus importante, ainsi le chemin le plus court est progressivement renforcé en phéromones et l'effet boule de neige assure la suprématie de ce chemin.
Simulation : les fourmis circulent sur un trajet rectiligne entre deux points lorsqu'un obstacle survient. Il y a alors deux chemins possibles pour contourner l'obstacle, l'un étant plus court que l'autre.
Voila alors ce que j'ai fait :
J'ai modélisé les 2 chemins possibles par deux vecteurs a deux coordonnées : la longueur du chemin en premier, le nombre de phéromones sur le chemin. On peut ainsi obtenir le nombre de phéromones sur chaque "cases" du vecteur.
L=[l,pl] et C=[c,pc]
Avec l et c les longueurs des vecteurs L et C et pl et pc le nombre de phéromones.
J'ai aussi fixé qu'une fourmis faisais l'aller et le retour sur le même chemin.
Je pense mettre une part de hasard (avec la fonction random) pour les premières fourmis, jusqu'a ce que le nombre de phéromones atteigne un certain seuil (a ce moment là, les fourmis ne prendrais plus que le chemin court!)
Le problème, c'est qu'il faudrais une notion de temps, ou un compteur pour "montrer" que les fourmis sur le chemin court reviennent plus vite que celles du chemin long... Et là je ne vois pas comment faire!
Auriez vous des idées? Ma démarche est-elle bonne?
Merci!
Partager