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 :

algorithme de fourmis!


Sujet :

Intelligence artificielle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par défaut algorithme de fourmis!
    Bonsoir!

    je cherche à modéliser la phéromone sur un environnement de simulation, avec JAVA? avez vous une idée?

    Merci pour votre aide

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Le principe de la colonie de fourmis repose sur le fait que plus un chemin est court vers la nourriture plus celui ci est attractif.
    Il va donc en un même temps être plus parcouru et donc plus attractif au détriment des autres qui vont devenir de moins en moins attractif car de moins en moins parcourus.

    Pour implémenter ceci, je verrais bien un système A*-like où chaque case du monde mon aurait à la place de l'heuristique sur la distance le poids des phéromones. Ce poids diminuerais naturellement au cours du temps mais serai augmenté à chaque passage d'une fourmis sur la case. Ainsi, plus le poid des phéromones est élevé, plus la case a un poind faible vis à vis de de A*.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    je suis d'accord avec ce qui vient d'être marqué précédemment, mais je crois qu'il faut ajouter quelques précisions :
    - si une fourmi trouve de la nourriture, elle retourne immédiatement à la fourmilière en laissant plus de féromones que d'habitude.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Sauf qu'on ne sait pas où est la nourriture, donc pas possible d'utiliser A*.

    A chaque instant, la fourmi peut se déplacer dans une direction probabilisée par la densité de phéromones autour d'elle. A chaque instant, elle en dépose là où elle passe. Et comme le dit ToTo13, une fois qu'elle a trouvé de la nourriture, elle part en chemin inverse en déposant potentiellement plus de phéromones.

  5. #5
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    On peut utiliser A*, il suffit de rendre aléatoire la case d'arivée. Et si en chamin on trouve de la nourriture, on déplace la case d'arrivé sur la case actuelle.
    Sinon, on peut parcourir de facon vraiment aléatoire le monde jusqu'a trouver de la nourriture.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Ce que tu proposes, c'est juste du sucre supplémentaire pour indiquer qu'on se balade dans la nature. Sauf que tu favorises une arrivée qui ne devrait pas l'être puisque ce n'est pas forcément de la nourriture et ce n'est pas donc pas optimal.
    De plus, la colonie de fourmis n'a pas la possibilité de connaître un chemin d'arrivée. Ce n'est pas le principe des fourmis qui ont un horizon très très restreint. Dans les algos de fourmis plus complexes, tu ne verras jamais ce principe de connaître un point très loin vers lequel tu te diriges.

    Ce que je propose :
    - tu places tes fourmis à la sortie de la(les) fourmilière(s) dans des directions aléatoires
    - la nouvelle direction de la fourmi est fonction de la direction de la fourmi actuelle (par exemple une loi de Laplace symétrique) + des phéromones (gaussienne) pour réorienter la fourmi vers les chemins avec phéromones.

    L'intérêt, c'est que la direction principale sera tout droit, mais avec du bruit en plus. En revanche, une fois qu'un chemin existe, le lissage de la direction avec les phéromones permettra de créer au fur et à mesure un chemin optimal.

Discussions similaires

  1. Algorithme Treads fourmi
    Par ranim2806 dans le forum Débuter avec Java
    Réponses: 0
    Dernier message: 23/05/2010, 00h56
  2. optimisation dynamique avec algorithme de fourmi
    Par moudy51 dans le forum MATLAB
    Réponses: 1
    Dernier message: 04/05/2009, 15h34
  3. simulation d'un algorithme de fourmis dans un problème d'emploi du temps
    Par etdmi3 dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 27/02/2009, 19h56
  4. Algorithme des fourmis (ant)
    Par ymoreau dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 11/01/2008, 19h17
  5. algorithme de fourmi
    Par miyare dans le forum C
    Réponses: 4
    Dernier message: 28/03/2006, 17h56

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