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 :

Quel algorithme ?


Sujet :

Intelligence artificielle

  1. #1
    Membre régulier
    Homme Profil pro
    .
    Inscrit en
    Octobre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 174
    Points : 90
    Points
    90
    Par défaut Quel algorithme ?
    Bonjour à tous,

    Je suis entrain de réaliser un petit programme pour m’entrainer mais voila,
    je ne sais pas trop quel algorithme utiliser ni comment :

    Alors le but (dans un premier temps) c'est d'imaginer un organisme simple qui rencontre un autre organisme, 2 choix possible :
    -Le manger
    -Fuir.
    -(plus tard : reproduction...)

    Ces actions dépendrons à priori de conditions simple tel que la taille respective et sa réserve en énergie.

    Je ne veux pas faire un programme bateau de type : if mySize > hisSize => eatHim() ....
    Je souhaite plutôt passer par des algorithme génétique ou autre permettant au programme d'apprendre et évoluer suivant les conditions rencontrées.

    J'ai pensé aux arbre aléatoire mais je maitrise encore très mal le sujet et je ne vois pas bien comment l'appliquer ni si cela convienne.

    Un conseil ?

    Merci


    Ps : Mes petit organismes devront par la suite apprendre à se déplacer, évolueront en tailles/formes, apprendrons pleins de choses rigolote ect...

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Généralement, les algorithmes "évolutifs", reposent sur un principe d'optimisation. L'optimisation étant de dire, que pour une fonction déterminant un score, le score doit être amélioré à chaque itération. C'est cet aspect qui pousse l'algorithme à s'améliorer.
    Bref, vous devez trouver un moyen de calculer un score, qui orientera votre algorithme vers ce qui est correct ou non (ce qui est bon ou non). Par exemple, cela peut être la taille de la population. Plus la population est grande, mieux c'est.
    Mais cela peut aussi être le fait de manger le plus "d'ennemies".

    Ensuite, il faudra trouver les paramètres à changer. Par exemple, dans un cas très simple, vous pouvez jouer sur une probabilité. Au tout début (itération 1), votre programme aura une probabilité de 50 % de manger, ou 50 % de fuir. Ensuite, suivant le score, vous allez modifier d'une façon à déterminer (cela peut être aléatoire), une nouvelle probabilité (par exemple 40%, 60%). Si vous avez un meilleur score après une telle itération, c'est que cette technique est "meilleure".

    Pour un algorithme génétique, l'idée est la même, juste que la méthode de modification du comportement est particulière (croisement + 5 % mutation). Bref, à vous de chercher (il y a plein de ressources dessus) et de voir comment implémenter pour votre cas.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre régulier
    Homme Profil pro
    .
    Inscrit en
    Octobre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 174
    Points : 90
    Points
    90
    Par défaut
    Bonjour LittleWhite,

    Merci pour ta réponse,
    Il y a bien des éléments déterministe de type : je mange, je récupère de l'énergie, je suis mangé, je perd des points.
    Il y aura plus d'un organisme, donc la taille de la population est également un critère de sélection et chaque organisme fait son propre apprentissage (quid de la puissance de calcul/data...)

    Le Random Forest nécessite un grand nombre d'apprentissage, hors mes organismes feront des rencontres ponctuelles (et non 1millions par second).
    De plus, je vois mal encore comment se fait sont implantation (dois-je créer les nœuds et la fonction mathématique ?) bref faut que je me document mais je souhaitais avoir un avis pour savoir si ce type d’algorithme est adapté (arbre décisionnel => foret aléatoire...).

    Je vais encore me documenté, si tu as une idée pour orienter mes recherches ?

    Merci

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 594
    Points
    188 594
    Par défaut


    C'est bien de balancer l'idée de forêt aléatoire… mais que veux-tu qu'elle résolve, comme problème ? Qu'aurais-tu comme entrées et comme sorties ?

    Ton problème semble plutôt rentrer dans la case de l'apprentissage par renforcement : tu définis ce que ton/tes agents doivent atteindre comme but (avoir une espèce qui survit des millénaires ?), de manière numérique, puis tu leur donnes une récompense chaque fois qu'ils s'approchent de cet objectif.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  5. #5
    Membre averti
    Avatar de anadoncamille
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 395
    Points : 310
    Points
    310
    Billets dans le blog
    1
    Par défaut
    Le problème que tu proposes peut se rapprocher naturellement d'un algorithme génétique.
    Tu dois en plus des rencontres que tu proposes implémenter des rencontres amoureuses.
    Lors de ces rencontres, tu croises les gènes des parents pour créer un certain nombre d'enfants qui iront à leur tour s'égayer dans la nature.
    Les moins adaptés à l'environnement vont mourir et les mieux adaptés vont se reproduire.
    Le tout va tendre vers un équilibre.
    Tu dois cependant veiller à éviter la surpopulation sinon ça va ramer. Pour cela tu peux fixer une limite maximale que la population ne pourra pas dépasser.
    Si la limite est atteinte, tu interdis le processus de reproduction jusqu'à ce que la population diminue.
    __________________________________
    | +
    | Sylvain Tournois - Création logicielle
    |
    | sylv.tournois.free.fr
    |

Discussions similaires

  1. Client serveur : quel algorithme choisir
    Par e-medi dans le forum Réseau
    Réponses: 1
    Dernier message: 15/07/2007, 22h54
  2. Quel algorithme de cryptage je peux utiliser?
    Par bejaouijamil dans le forum Sécurité
    Réponses: 2
    Dernier message: 04/01/2007, 15h33
  3. Réponses: 7
    Dernier message: 12/10/2006, 01h23
  4. Quel algorithme pour insertion d'objets "triés" da
    Par phplive dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2005, 09h27
  5. Quel algorithme utilisé pour faire un arbre hiérarchique
    Par deaven dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 26/01/2005, 21h30

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