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 :

[Débutant] Questions sur une IA de comportement animal


Sujet :

Intelligence artificielle

  1. #1
    Membre du Club Avatar de lkryss
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 92
    Points : 49
    Points
    49
    Par défaut [Débutant] Questions sur une IA de comportement animal
    Bonjour,

    Je voudrais essayer de mettre en place une petite simulation de vie animal:
    • carnivore/herbivore
    • déplacement unitaire/troupeau
    • cycle de vie/mort


    En détails:
    Les herbivores se font manger par les carnivores.
    Les herbivores se déplacent vers des terrains herbeux.
    les carnivores suivent donc les herbivores.
    Un animal se déplace aléatoirement sur un périmètre donné et évite de trop s'éloigner du troupeau.

    Il y a reproduction pour augmenter la taille d'un troupeau(pas de gestion de sexe). Si celui ci atteint une taille critique, il se scinde en 2 troupeaux indépendants, l'un des deux devant migrer.

    Je me doute que ce projet perso peut être vite complexe. C'est pourquoi je ne veux pas partir la dedans sans quelques conseils.

    Vers quel type d'algo je peut me tourner pour faire ce genre de chose? Mes premières recherches m'indiquent qu'un système multi agents pourrait convenir.
    Auriez vous des pistes de réflexions à me donner? Sachant que je voudrais faire ça en Java.

    merci.

  2. #2
    Membre émérite
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Points : 2 464
    Points
    2 464
    Par défaut
    Effectivement, les système multi-agents sont une bonne piste pour ton problème, étant donné que tu fais une simulation d'un système où se trouve plusieurs agents dont chaque comportement est défini. Sur http://en.wikipedia.org/wiki/Multi-agent_system où tu es probablement déjà allé, tu verras que ton système a bien les caractéristiques d'un système multi-agents, en particulier :
    Citation Envoyé par http://en.wikipedia.org/wiki/Multi-agent_system
    The agents in a multi-agent system have several important characteristics:
    • Autonomy: the agents are at least partially autonomous
    • Local views: no agent has a full global view of the system, or the system is too complex for an agent to make practical use of such knowledge
    • Decentralization: there is no designated controlling agent (or the system is effectively reduced to a monolithic system)
    Ensuite, pour faciliter l'implémentation, il existe beaucoup de frameworks : http://en.wikipedia.org/wiki/Compari...eling_software

    Le plus connu en Java est JADE : http://jade.tilab.com/

  3. #3
    Membre du Club Avatar de lkryss
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 92
    Points : 49
    Points
    49
    Par défaut
    Merci pour ta réponse, je suis effectivement déjà passé sur wikipedia et jeté un oeil rapide sur Jade.

    je vais approfondir un peu et je reviendrais poser mes questions (je laisse ouvert le thread, vu que je pense y revenir bientôt)

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur 3D
    Inscrit en
    Avril 2008
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur 3D

    Informations forums :
    Inscription : Avril 2008
    Messages : 400
    Points : 968
    Points
    968
    Par défaut
    Personnellement, je dirais que tu l'as déjà, ton algo (c'est juste ce que tu as décrit dans ton premier post). Un système multi agent, ça veut pas dire grand chose, et, a mon humble avis, c'est surtout un terme pompeux et fourre-tout. Je te conseille donc d'y aller "a l'instinct" et de commencer a découper tes taches de haut niveau ("carnivore mange herbivores", "se déplacer vers terrain herbeux") en plus petites taches ("trouver herbivores", "attaquer herbivore isolé", etc).
    Certaines de ces petites taches auront besoin d'algorithmes déjà bien connus et bien documentés (aller d'un point A a un point B, par exemple), mais la plupart du temps, il suffit d’être un peu inventif. Par exemple: chaque zone du monde a un niveau d'herbosité qui diminue quand un herbivore passe dessus, et chaque herbivore essaie d'aller sur les zones les plus vertes sans pour autant s’éloigner des autres. L'IA des herbivores peut se gérer avec un simple calcul du genre "si distance vers le centre du troupeau > gain d'herbe en allant sur la zone suivante, alors ne pas bouger".

  5. #5
    Membre émérite
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Points : 2 464
    Points
    2 464
    Par défaut
    Tout à fait d'accord avec math_lab, j'aurais peut-être dû le préciser effectivement, les systèmes multi-agents désignent simplement une structure de système, c'est bien de la repérer pour se situer (c'est toujours pratique pour chercher des algorithmes, des frameworks ou encore étudier des problèmes ayant une structure similaire) mais ensuite derrière c'est assez creux

  6. #6
    Membre du Club Avatar de lkryss
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 92
    Points : 49
    Points
    49
    Par défaut
    Pour ce que je compte faire, il semble donc logique d'utiliser le SMA?
    Ou est ce utiliser une grenade pour tuer un moustique?

    Par curiosité je compte faire quelques tests de ce coté de toute façon, mais mon projet serais il plus facile en le faisant de manière plus conventionnel?

    Sinon, une ou deux questions sur le principe de JADE:
    - un agent est bien une unité d'un groupe? (un mouton dans un troupeau)
    - un container est bien un groupe? (le troupeau)
    (ça me semble logique, mais je préfère demander )

  7. #7
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 33
    Points : 80
    Points
    80
    Par défaut
    Salut,

    j'arrive après la bataille, mais je ne peux pas m’empêcher de répondre...

    il y a 15 ans j'ai participé à la création un simulateur (Mobidyc) en multi agents codé en smalltalk qui permettait créer des populations et de leur donner tout un tas de comportements...
    Le but étant de modéliser des populations de poissons et de prédire leur évolution dans différentes circonstances (c'était un porjet INRA)

    Si tu veux avoir une grande souplesse de comportement, il faut préparer un certain nombre de taches "basiques", conditionnables, paramétrables... ensuite tu n'as plus qu'à attribuer un ensemble de taches à tes entités.

    Exemple :
    Les herbivores se déplacent vers des terrains herbeux.
    Les carnivores suivent donc les herbivores.

    Soit tu crées 2 comportement différents, soit un seul "déplacement" qui est conditionné différemment pour tes 2 espèces...
    Au sein d'une même espèce tu peux ajouter un paramétrage indiquant qu'en fonction de l'age la vitesse de déplacement n'est pas la même...


    Au final je trouve ce genre de projet aussi passionnant au moment de la conception / réalisation qu'après à l'utilisation...
    Si il y a assez de customisation possible, tu peux vraiment obtenir des résultats sympas (avec ton exemple tu devrais pouvoir arriver à des équilibres proies / prédateurs ou au contraire des extinctions quand les prédateurs auront mangé toutes les proies, ou quand les prédateurs seront morts de faim sans avoir pu rattraper leurs proies)

    Bref tu m'a rappelé plein de bon souvenirs...

  8. #8
    Membre du Club Avatar de Zilian
    Homme Profil pro
    Intern
    Inscrit en
    Août 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Intern
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 25
    Points : 41
    Points
    41
    Par défaut
    D'ailleurs si tu as un Github, ça serait intéressant à suivre ton projet

  9. #9
    Membre du Club Avatar de lkryss
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 92
    Points : 49
    Points
    49
    Par défaut
    Salut,

    j'ai listé pas mal de comportements différents, que je penserais à remonter sur ce thread quand je passerai par chez moi .

    C'est un projet perso, pas pour une boite, ou un projet d'étude, donc je n'avance pas très vite, mais le concept en lui même est intéressant oui.

    je ferais un point d'avancement (+/-) régulier si ça intéresse du monde

  10. #10
    Membre émérite
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Points : 2 464
    Points
    2 464
    Par défaut
    Citation Envoyé par lkryss Voir le message
    je ferais un point d'avancement (+/-) régulier si ça intéresse du monde
    Très volontiers

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 6
    Points : 6
    Points
    6
    Par défaut 12 ans après j'ai initialisé le même type de projet ...
    Bonjour, cette discussion date de 2006, mais je développe actuellement le même type d'application en java. J'utilise slick2D pour le moteur 2D.
    j'ai déjà bien avancé sur :
    - le déplacement (vectoriel + pathfinding)
    - la gestion du troupeau d'herbivore
    - la map
    - les différentes class : Entity / Animal & Plant / Herbivore

    Je m'attaque donc à "l'IA" comme IKryss à l'époque ... 12 ans après j'aurai aimé savoir ce qu'il était advenu de son projet (sans grand espoir) ... alors IKryss si tu m'entends ...

Discussions similaires

  1. [parseur] [Débutant] Question sur les parseurs
    Par steph-n dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 02/05/2005, 19h17
  2. [Débutant] questions sur Visibroker
    Par Man Dak dans le forum CORBA
    Réponses: 1
    Dernier message: 29/06/2004, 23h02
  3. [Débutant] DISTINCT sur une seule des colonnes ?
    Par Neilos dans le forum Langage SQL
    Réponses: 9
    Dernier message: 23/06/2004, 23h04
  4. [débutant] question sur les #
    Par Ultros dans le forum C
    Réponses: 3
    Dernier message: 29/04/2004, 12h30
  5. [Débutant] Connexion sur une machine distante protégée
    Par arthix dans le forum Développement
    Réponses: 3
    Dernier message: 28/08/2003, 09h46

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