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 :

IA quesako ?


Sujet :

Intelligence artificielle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 67
    Points : 64
    Points
    64
    Par défaut IA quesako ?
    bonjour à tous

    un message sûrement un peu original.

    Je "dirige" le dev d'un jeu vidéo libre; towbowltactics (http://www.towbowltactics.com)

    c'est le portage d'un jeu de plateau, une genre de football américain avec des monstres. Au tour par tour. Chaque joueur à des compétences et des caractéristiques. Il a le choix entre plusieurs actions (se déplacer, porter la balle, la passer, attaquer un adversaire ...).

    On va devoir se poser la question de l'IA et c'est la raison de ma présence.

    J'ai un peu lu et un peu discuté de ça mais pas compris grand chose.

    En gros, j'ai cru comprendre qu'on avait deux possibilités pour coder l'IA

    le reseau de neurone ou l'arbre de possibles. Mais pour ce dernier, vu la masse d'action possibles et l'environnement (l'équipe, l'équipe adverse, la situation dans le match ...) ce serait impossible.

    Du coup, il ne nous resterai que le réseau de neurones.

    Vous pouvez m'expliquer tout ça clairement ? Quels sont les enjeux pour les développeurs, ce que ça représente en terme de travail ...

  2. #2
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Commence par regarder mon article sur les réseaux de neurones : http://alp.developpez.com/tutoriels/...x-de-neurones/.

    Un RdN n'est qu'une machine à calculer (comme beaucoup d'IA d'ailleurs ) qui parvient grâce à une propriété mathématique à se corriger elle-même, avec toutefois l'aide de celui qui s'en occupe.

    Le fait est que tu dois donner des informations à un réseau de neurones. Quelles seront-elles ?

    Le réseau de neurones te renverra des nombres. As-tu pensé à ce que pourraient être ces nombres ? Comment t'en servirais-tu ?

    J'aurais dit un behavior-tree pour ton jeu, mais c'est à toi de voir. Essaye de nous donner un peu plus d'informations sur :
    - ce que recevrait l'IA (en terme d'informations)
    - ce qu'elle devra "faire"

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 67
    Points : 64
    Points
    64
    Par défaut
    héhé va encore falloir que je lise

    pour essayer de répondre à tes questions, mais ce n'est pas très clair pour moi.
    Si je raisonne comme un humain, j'ai deux phases

    une "IA d'équipe" qui regarde quel tour de jeu on est, quel est le score, comment sont placées l'équipe et l'équipe adverse sur le terrain, où est la balle. En fonction de ça, elle décide d'une tactique et de l'ordre dans lequel les joueurs seront activés.

    Pour le joueur, il doit connaître ses compétences, sa position, celle des adversaires proches (s'il doit se déplacer, par exemple) son statut (sur le ventre, le dos, debout, avec ou sans balle) et son objectif donné par "l'IA d'équipe".

    En fonction de ça l'IA envoi les ordres pour faire agir le premier joueur, puis le second ... (il y en a maximum 11 sur le terrain, par équipe. 8 tours de jeu par mi-temps).

    Ton document est trop technique pour moi, je suis absolument novice dans le domaine. Déjà, avec la description que je viens de faire, je ne sais pas s'il est possible de raisonner ainsi. Peut on avoir ces deux IA, est-ce réaliste, intéressant ?

    je n'ai rien contre l'arbre de comportement ou d'autres méthodes, qu'on se comprenne bien. J'ai besoin de dégrossir tout ça dans ma petite tête pour commencer à me faire une idée de la direction à prendre et du travail a effectuer. Plutôt une discussions sur les différentes techniques pour trouver la plus adaptée, pourquoi et ce que ça implique.

    [edit] résonne -> raisonne, j'avais trop honte [/edit]

  4. #4
    Membre expérimenté Avatar de alexrtz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2003
    Messages : 639
    Points : 1 359
    Points
    1 359
    Par défaut
    Citation Envoyé par tuxrouge Voir le message
    En gros, j'ai cru comprendre qu'on avait deux possibilités pour coder l'IA
    Faux

    Tu peux faire de l'IA n'importe comment, y a juste quelques techniques (pas seulement celles que tu cites) qui sont connues pour fonctionner plutôt bien.

    Concernant les techniques à base d'arbres, tu n'es pas obligé de construire tout l'arbre : tu peux éliminer des branches dont tu sais très bien qu'elles ne te serviront à rien ou qu'elles t'amèneront vers un mauvais résultat.

    Faire une IA "comme ça", sans trop connaître les différents outils à ta disposition, avec leurs avantages et leurs inconvénients, c'est mission impossible (sauf pour de très petits problèmes).
    "Je suis incapable d'expliquer ce qui se passa ensuite : je lâchai quelque chose, quelque chose à quoi je m'agrippais depuis toujours sans m'en rendre compte. Je m'enfonçais dans une obscurité chaude, moelleuse et protectrice, tandis qu'un loup montait la garde par mes propres yeux."

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 67
    Points : 64
    Points
    64
    Par défaut
    alex, je te rassure, c'est pas moi qui vais faire l'IA, pas fou non

    mais comme je "dirige" l'équipe, je veux avoir une vision globale du sujet pour pas dire trop de bêtise et surtout, comprendre les enjeux.

    Il n'y a pas d'urgence, l'IA ne viendra que plus tard, les devs ont juste préparé le core pour qu'on puisse la greffer quand elle sera faite.

  6. #6
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Citation Envoyé par rurouni alex Voir le message
    Faire une IA "comme ça", sans trop connaître les différents outils à ta disposition, avec leurs avantages et leurs inconvénients, c'est mission impossible (sauf pour de très petits problèmes).
    Tout à fait d'accord. J'ai par exemple passé 2 mois intensifs sur les réseaux de neurones (pas seulement ceux présentés dans mon article) afin de bien comprendre ce domaine de l'IA.

    Il faudra donc qu'au moins 1 personne de votre projet (2 ou 3 ce serait mieux) se plonge entièrement dans le monde de l'IA. Si vous avez des questions, n'hésitez pas à donner votre avis.

    Pour les Behavior Trees ("arbre de décisions" ça le fait bien moins), tu peux commencer par lire ça : http://fr.wikipedia.org/wiki/Arbre_de_d%C3%A9cision

  7. #7
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Au passage, le réseau de neurones est toujours envisageable, mais les IA que vous allez faire seront des IA que l'on appelle agents de prise de décisions.

    Un des outils les plus utilisés pour cela est justement l'arbre de décisions.

  8. #8
    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 : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par tuxrouge Voir le message
    En gros, j'ai cru comprendre qu'on avait deux possibilités pour coder l'IA

    le reseau de neurone ou l'arbre de possibles. Mais pour ce dernier, vu la masse d'action possibles et l'environnement (l'équipe, l'équipe adverse, la situation dans le match ...) ce serait impossible.
    PAs vraiment.

    Tout d'abord, il y a deux classes de jeux :
    - à connaissance complète
    - à connaissance incomplète.

    Le premier, ce sont les échecs, les dames, le Go, morpions ... pour lesquels le parcours d'un arbre est possible.

    Pour les second, on utilise d'autres outils, mais pas que les RdN ! Pour ma part, les RdN sont qqch de totalement surévalué. Comment on entraîne une AI de RdN pour un jeu de stratégie par exemple ?? Pour un bot ? D'autres solutions :
    - un système expert, basé sur des règles -> quand on voit un ennemi, on tire
    - un réseau bayesien -> si l'ennemi est en face, ne me voit pas et que j'ai des munitions, je vais envisager d'attaquer de face
    - ...

    Le mieux de mon point de vue est sans doute de mixer les différentes solutions. Par exemple, pour une IA de stratégie en temps réelle, je prends un réseau bayesien pour les objectifs à atteindre, un système expert multi-agents pour la gestion des unités, ...

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par tuxrouge Voir le message
    Si je résonne comme un humain, j'ai deux phases
    et un petit aparté

    là tu résonnes comme une cloche
    un humain raisonne


    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 67
    Points : 64
    Points
    64
    Par défaut
    souviron, apparté de qualité

    honte à moi

    alors,pour 'instant, je retiens
    - que nous sommes dans une jeu à connaissance complète
    - que les RdN ne sont pas adaptés (même si pour lui faire apprendre, on pourrait disputer des centaines de match avec le RdN en tant qu'observateur)
    - qu'il peut y avoir 2 niveaux d'IA

    ce que je ne saisi pas encore

    - les différentes catégories d'IA et leurs conséquences (RdN, système expert, multi-agent, arbre de décisions, réseau bayesien ...). J'ai lu quelques définitions (difficiles à trouver pour les multi-agents, on trouve plus de cv qu'autre chose )

    pour l'arbre de décision, j'ai l'impression que sa taille va être immense même si on essaye d'élaguer un maximum (j'aime bien la terminologie) mais j'en comprends facilement le principe.

    - l'intérêt d'avoir deux IA (je ne suis pas sûr que ce soit une bonne solution et j'ai du mal à définir les limites de l'une / l'autre)
    on pourrait avoir ça:

    Par exemple, l'IA commence par vérifier si elle a la balle ou pas. si oui, elle doit marquer ou conserver la balle, sinon, elle doit reprendre la balle ou empêcher l'autre de marquer (en fonction de données comme le tour de jeu, les forces en présence et, on pourrait moduler en fonction des équipes)
    ensuite, elle décide des actions et de l'ordre des actions

    Après, à chaque activation d'un joueur, on passe à l'autre IA. L'IA joueur a une mission, il va voir en fonction des données qu'il possède comment la remplir au mieux. Par exemple, je dois aller porter la balle dans l'en but adverse, quel est le meilleur chemin.

    Déjà là, je ne suis pas sûr que l'IA "globale" ne puisse pas tout faire. Dans le cas où un joueur doit porter la balle dans l'en but adverse, il faut aussi repérer quel est le meilleur chemin mais, peut être que mettre à terre un joueur adverse avant offrira un chemin plus favorable. Et même s'il n'y a personne entre le joueur et l'en but quel intérêt d'avoir une IA pour le joueur. L'IA globale peut très bien lui dire va sur cette case puis celle là, puis celle là ... ouais on a gagné

  11. #11
    Membre expérimenté Avatar de alexrtz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2003
    Messages : 639
    Points : 1 359
    Points
    1 359
    Par défaut
    Citation Envoyé par tuxrouge Voir le message
    difficiles à trouver pour les multi-agents, on trouve plus de cv qu'autre chose
    Et hop
    (c'est pas illégal, comme expliqué ici, le livre est gratuit parce que plus réédité)
    "Je suis incapable d'expliquer ce qui se passa ensuite : je lâchai quelque chose, quelque chose à quoi je m'agrippais depuis toujours sans m'en rendre compte. Je m'enfonçais dans une obscurité chaude, moelleuse et protectrice, tandis qu'un loup montait la garde par mes propres yeux."

  12. #12
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Dans tous les cas, ce que tu vas faire s'appelle de la Prise de décision. C'est vrai que les réseaux bayésiens sont pas mal utilisés à cet effet. Mais c'est rude de s'y mettre comme il faut. Comme pour pas mal d'autres techniques d'IA.

    Un Behavior Tree ou un Réseau Bayésien devrait très bien faire l'affaire dans ton cas. Mais c'est à ton équipe et toi de faire le choix et de vous investir un maximum dans l'IA que vous aurez choisi. L'IA n'est pas du tout un domaine facile du moment que ça dépasse la simple IA de morpion, tout ça.

    Il vous faudra beaucoup de lecture et beaucoup de temps.

    De même, pour choisir définitivement l'IA que vous voudrez, il vous faudra lire. Tu disposes dans ce post d'une liste de technique qui pourraient s'appliquer à votre jeu mais il revient à ton équipe et à toi de choisir la technique que vous voulez utilisez.

  13. #13
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par tuxrouge Voir le message
    bonjour à tous
    [...]
    Je "dirige" le dev d'un jeu vidéo libre; towbowltactics (http://www.towbowltactics.com)[...]
    On va devoir se poser la question de l'IA et c'est la raison de ma présence.
    Tiens tiens... comme on se retrouve
    Plus à la mode que les réseaux de neurones : les SVM.

    Je me rappelle que sur la liste, moi et un autre avions parlé d'envisager une autre approche : chaque joueur « joue » de son côté, une fonction de liaison lie le tout.

    Mais sans vouloir te vexer, mon vieil ami, c'est les concepteurs qui vont devoir ramener leurs fraises ici pas toi. Cependant, si personne n'a d'idée comment partir. Vous pouvez oublier. Il vous faut au moins une personne en état de comprendre et chapoter le tout.

    Dans un premier temps, je ferais simple : prise de décision par un ordre de priorité « fixe » et par une séparation de cas à l'aide d'un tirage probabiliste. Ça pourrait être hardcodé pour chaque équipe dans un premier temps. S'il y a qqs courageux qui savent faire, ça pourrait être mis dans un script (beaucoup plus intéressant). Après vous verrez si vous avez un bon en IA dans votre équipe.

    (PS pas moi... enfin, toujours pas maintenant en tout cas)

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 67
    Points : 64
    Points
    64
    Par défaut
    salut la grenouille

    rassures toi, tu ne me vexes pas. Et, comme d'habitude, ce sont les gens compétents de l'équipe, ceux qui vont se mettre au travail qui vont décider des technologies utilisées.

    je suis juste en train de me renseigner pour avoir une idée des différentes possibilités et de ce que ça implique. Un vision globale mais superficielle.
    on a le temps, l'IA ne viendra qu'une fois le jeu réalisé avec les règles.

    j'ai de la lecture mais je garde en mémoire le "enfin, toujours pas maintenant en tout cas"

  15. #15
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par tuxrouge Voir le message
    Et, comme d'habitude, ce sont les gens compétents de l'équipe, ceux qui vont se mettre au travail qui vont décider des technologies utilisées.
    Avant de savoir la technologie a utiliser il faut que vous aillez un plan de match (comme à BB et je sais de quoi je parle vu mon palmarès )

    Ça veut dire qu'« avant donc que d'écrire, apprenez à penser » (encore du Nicolas Boileau) ou plus informatiquement, il faut que vous aillez une liste précise de besoin et une conception.

    Donc cherchez un objectif précis (pas un « on aimerait que l'ordi puisse jouer seul ») avec par la suite une idée du comportement... ensuite vous passez à comment le faire de manière « abstraite » et, finalement, vous vous occuperez de la technique (quitte à revenir un peu en arrière).

    Si vous choisissez une techno a priori, vous allez vous planter.

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 67
    Points : 64
    Points
    64
    Par défaut
    hop, je réagiparce que ce que tu dis me laisse penser que j'ai rien compris.

    quand tu dis qu'on doit "chercher un objectif precis", est ce que connaître la situation de la balle et des joueurs sur le terrain en est une ?

    c'est qui lé plan de match ? tu peux préciser stp.

    merchi merchi

  17. #17
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Ce qu'il a voulu dire, c'est que quelle que soit la technique d'IA que vous choisirez, avant de la choisir, il faut que vous fixiez :
    - les informations que va recevoir l'IA
    - ce que vous attendrez de l'IA en sortie

    Ensuite, ceci vous orientera vers les domaines de l'IA (exploration de situations, prise de décisions, ...) et après étude des différentes techniques et mises au point, vous pourrez enfin choisir quelle technique vous utiliserez.

  18. #18
    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 : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Pour la position de la balle, c'est déterministe, donc pas d'IA particulière !

  19. #19
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Par contre la position de la balle influencera l'IA, c'est donc un paramètre qu'elle devra prendre en compte.

Discussions similaires

  1. Quesako ce code
    Par Doki95 dans le forum Langage
    Réponses: 3
    Dernier message: 24/09/2009, 11h35
  2. quesako: *arg et **kw ?
    Par cyrpaut dans le forum Général Python
    Réponses: 2
    Dernier message: 05/12/2005, 19h31

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