IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Intelligence artificielle Discussion :

Création d'une simulation de comportement des fourmis


Sujet :

Intelligence artificielle

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Création d'une simulation de comportement des fourmis
    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.
    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.
    On cherche donc a faire un programme qui simule le comportement normal des fourmis.



    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!

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 37
    Points : 34
    Points
    34
    Par défaut fourmis
    bonjour.
    Mon niveau en IA n'est pas bon, mais une solution pourrait être
    1 : au début tu a n fourmis qui parte de la fourmilière en mode recherche( une variable suffi genre 0 mode recherche 1 mode récupération de nourriture) chaque fourmi a une Phéromone différente( Constant : A,B, ect),elle se déplace de façon aléatoire , sauf qu'elle ne peuvent pas revenir sur leurs pas ou passer sur une zone ou il y a une Phéromone d'autre fourmi( sauf si le degré de phéromone et plus élever que 1, alors elle passe en mode récupération) .a chaque fois en mode recherche qu'une fourmi passe sur une case elle y met sa Phéromone et incrément le compteur de la case (genre intensité du Phéromone ) .
    2: des qu'une fourmi voit de la nourriture(les case autour d'elle) elle vas dessus puis passe en mode 1 puis suit obligatoirement le chemin qui par de la nourriture qui a le degré de Phéromone le plus élever même si se n'est pas le sien( se qui peut permettre quand 2 fourmi trouve la même nourriture de revenir pas le plus cour chemin), car une fourmi ( en mode récupération )qui passe par un case qui contient son phéromone l’incrément (mais uniquement elle).
    exemple:
    une fourmi A arrive a de la nourriture, elle voit une case a A 1 elle repart sur son chemin donc une case autour de la nourriture vaut A 2.une autre fourmi B arrive a la même nourriture prend une portion puis regard autour de la nourriture et voit une case avec B 1 et une case avec A2 donc ça veut dire que a est aller plus vite donc elle choisi A2 . Mais incrément pas le degrés de phéromone du chemin A.

    3: quand des fourmi en mode 1 arrive au nid elle font le même chois du chemin elle vont ver celui du degrés le plus élever car cela veut dire que la fourmi du chemin en question a trouver de la nourriture plus prêt.si il n'y a que des chemin de degrés 1 et qu'il n'y a plus de chemin de son propre phéromone elle repasse en mode 0 recherche

    4: quand une fourmi en mode 1 ne trouve plus de nourriture ou de chemin elle reviens en arrière si ces son chemin elle enlève son phéromone( je c pas si cela est réaliste mais pour un programme ça colle ).

    c'est une idée comme ça que j'ai us en voyant ton énoncer je pense qu'il y a plein d'erreur de raisonnement et je ne sait pas si ça colle avec de la vrai IA.

    C'est peut être se que tu a dit mais comme moi et les vecteurs ça fait plusieurs (non pas 2 , plusieurs)ainsi que moi et le français beaucoup plus.

    j'ai bien envi d'essayer aussi ,en C et SDL, je le montrerai au cas et j'aimerai bien voir le tient une fois fini aussi .

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 243
    Points : 328
    Points
    328
    Par défaut
    Salut,

    Je ne sais pas ce que tu est autorisé à faire ou non (algo. tout nouveau tout beau et inédit ou le droit de s'inspirer des prédécesseurs) mais au cas ou, cherche 'Ant colony optimization' sur wikipédia, tu trouvera quelque chose qui ressemble quand même un peu à ce que tu dois faire et dont tu peut peut-être t'inspirer.

    Pour plus d'info : cette recherche te donne des liens sur des livres/articles s'y rapportant.

    Pour info, tu clique sur les liens de la colonne de droite pour y accéder gratuitement (les liens de la colonne de gauche mènent souvent sur les mêmes articles/livres mais payants).
    Si le résultat ne change pas, le 1er lien te mène à (le ?) livre de Dorigo, qui a conçu quelques uns de ces d'algorithmes. Le 4eme te mène sur un des 1er (ou le 1er) article de ce même Dorigo à ce sujet.

    Pratiquement tout est en anglais (pour le français, je te laisse faire la recherche toi-même )

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Merci d'avoir répondu!

    Bibistudio, j'ai peur que ça soit plutôt compliqué a réaliser avec Matlab... Car oui nous somme sous matlab obligatoirement (mon sujet a été déplacé et je le précise donc maintenant ^^)

    J'avoue être d'accord avec toi sur le principe, mais nous n'avons qu'un an de cours d'informatique (1h a peine par semaine!) et je ne vois pas comment écrire un tel programme! :s

    250rgv, je vois ça ce soir, merci!


    Donc si vous avez d'autres idées, je suis toujours preneuse!

  5. #5
    Membre expert

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2006
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 1 031
    Points : 3 092
    Points
    3 092
    Par défaut
    Si sur une case donnée la quantité de phéromones diminue avec le temps ( lors de chaque déplacement de fourmis ? )
    Dans ce cas lors du retour ça sera forcément le chemin avec le plus de phéromones qui sera choisi et donc le plus court non ?
    Suivez le développement de Chibis Bomba
    twitter : https://twitter.com/MoD_DiB
    DevBlog : http://moddib.blogspot.fr/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Lazarus] Création d'une unité pour générer des tableaux statiques
    Par Ndjicki dans le forum Lazarus
    Réponses: 0
    Dernier message: 15/03/2010, 13h07
  2. [Débutant] Création d'une boucle pour récupérer des informations
    Par youcef60 dans le forum MATLAB
    Réponses: 15
    Dernier message: 02/03/2010, 22h31
  3. [AJAX] simuler le comportement des iframes
    Par duplo dans le forum AJAX
    Réponses: 2
    Dernier message: 30/11/2009, 22h01
  4. Réponses: 1
    Dernier message: 03/04/2009, 10h09
  5. création d'une requette pour inscrire des données
    Par jeanjean555 dans le forum Access
    Réponses: 9
    Dernier message: 04/02/2007, 19h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo