Hiérarchie des jeux - principe sous-jacent d'un jeu N à N+1 - Algo - Programmation
Marsh Posté le 03-09-2013 à 11:44:29
Comme à chaque fois, j'ai du mal à comprendre ce que tu veux faire
Ce que tu décris me fait penser à de l'apprentissage par renforcement. Le jeu des allumettes que j'avais développé en école d'ingé reposait sur ce principe : l'IA joue d'abord à son propre jeu (simulation) x parties (x dépend de la complexité du jeu, par ex 200 pour les allumettes, mais sûrement plus de 1000 pour les échecs) et cet apprentissage met à jour ses connaissances. Ensuite, un humain joue contre l'IA (et se fait exploser à chaque fois ).
Par contre, je comprends pas ton pré-requis de savoir résoudre un labyrinthe pour jouer ensuite aux échecs
A part des jeux très proches (règles et but similaires), chaque jeu est différent et oblige une personne à développer une certaine stratégie.
Ex : j'ai développé un jeu proche du monopoly avec plus de règles tant dans le déplacement (plusieurs routes sur le tapis, possibilité dans certains cas d'aller en arrière, déplacement d'une gare à une autre dans certains cas...) que dans les acquisitions et constructions (possibilité de construire en fraude un 2ème hôtel sur un même terrain). Ben savoir jouer au monopoly peut certes aider à appréhender mon jeu pour les actions de "base" (achat, hypothèque, carte chance, 4 maisons pour avoir l'hôtel...), mais c'est pas une obligation et surtout, la stratégie d'achat et de construction des maisons est totalement différente car le fait qu'il y a plusieurs routes pour aller à la case départ fait que chaque terrain n'a pas la même proba de voir passer un joueur.
Alors, à la limite, tu peux faire une hiérarchie de complexité des jeux (genre, avant d'apprendre à jouer aux échecs, tu apprends les dames car c'est plus simple), un peu comme dans la vie, un enfant s'attaque pas direct à des trucs supers durs s'il sait pas faire les trucs simples. mais bon, comparer la façon d'apprendre d'un humain et d'une IA informatique... Une IA, c'est pas gênant de lui faire faire 1000 parties pour s'entrainer d'un jeu. Déjà parce qu'elle éprouvera pas de fatigue mentale et parce qu'elle pourra le faire beaucoup plus rapidement qu'un humain. Un humain doit adapter sa stratégie d'apprentissage pour qu'elle prenne le moins de temps possible, qu'elle soit pas trop fastidieuse et que le résultat soit satisfaisant...
Marsh Posté le 04-09-2013 à 11:09:06
Bonjour rufo, merci pour ta réponse,
Je suis confus (là tout de suite) par ce que j'ai perdu mon idée de départ.
J'essaie à nouveau de modéliser le WOPR, un ordinateur de science fiction du film Wargames que tu a peut-être regardé, avec son sous programme Joshua.
J'essaie donc de coller au maximum au film tout en modélisant réellement une solution.
Et dans le film, l'ordinateur ou le sous programme apprend à jouer à un jeu qui s'appelle Global Thermonuclear War en jouant au morpion.
Marsh Posté le 04-09-2013 à 11:35:23
Oui, j'ai vu ce film. Mais bon, entre ce que les scénaristes imaginent pour qu'un ordi apprenne à jouer à qq chose et comment, des ingé en info concevraient cette façon d'apprendre de manière optimale, y'a 2 mondes
Pour que ton IA arrive à apprendre à jouer à n'importe quel jeu, il faudrait que tu arrives à développer un système très souple permettant de modéliser n'importe quelle règle. Ensuite, l'IA ferait de l'apprentissage par renforcement du jeu en appliquant les règles modélisées.
Après, on pourrait imaginer une IA qui s'adapte si on lui demande de jouer à un jeu auquel elle a jamais jouer en comparant le % de proximité des règles du nouveau jeu avec un qu'elle connaît et appliquerait la stratégie qu'elle a en mémoire...
Marsh Posté le 04-09-2013 à 12:55:04
rufo a écrit : Oui, j'ai vu ce film. Mais bon, entre ce que les scénaristes imaginent pour qu'un ordi apprenne à jouer à qq chose et comment, des ingé en info concevraient cette façon d'apprendre de manière optimale, y'a 2 mondes |
Je veux bien te croire, mais je me dis aussi que la fiction ne peut-être basée que sur la réalité. je me le dis surtout pour mes objectifs.
rufo a écrit : |
Voilà, alors la je sais modéliser un type de jeux, comme les échecs ou les dames ou tout autre jeux qui rentrera dans la classe.
Je cherche un bon algo pour résoudre de tel jeux, j'ai vu l'apprentissage par renforcement, à force de lire des bout de texte ici et là je crois que j'ai compris.
rufo a écrit : |
C'est le problème, apprendre globalement à jouer à plusieurs jeux.
Pris séparément c'est plus simple, mais c'est pas représentatif du réel (L'ia).
Pour l'ago aussi, je doit avoir trouvé le moyen de faire par RdN. je crois je vais implémenté pour voir si ça marche d'ici la fin de l'année. **
edit ** je parle des échecs.
Marsh Posté le 04-09-2013 à 13:17:34
On avait déjà pas mal discuté concernant les échecs et un algo pour qu'une IA y joue bien. Là, c'est du A* / minmax, ou une BD avec pleins de parties. Je doute que pour un jeu aussi complexe, l'apprentissage par renforcement fonctionne; trop de possibilités. Même chose pour une IA à base de réseau de neurones. Pour avoir qq chose d'efficace, je pense qu'il te faudrait un sacré réseau, à plusieurs couches qui plus est. Je doute que t'arrive à faire converger les poids des neurones vers des valeurs stables...
Pour les dames, là, ça va le faire. Idem pour le morpion ou le puissance 4. Tout ce qui est jeu de cartes ne devrais pas poser de pb non plus. Même chose pour des jeux style monopoly.
Marsh Posté le 04-09-2013 à 13:20:01
T'aurais peut-être intérêt à classer tes jeux par type d'algo de résolution :
- classe A* / minmax ou tout ce qui est à base d'arbres
- classe apprentissage par renforcement
- autre ?
Sachant que pour certains jeux, y'a des algos spécifiques qui existent mais on peut "retomber/retrouver" ces algos ou au moins une efficacité équivalente avec un apprentissage par renforcement.
Marsh Posté le 04-09-2013 à 13:27:06
Citation : - classe A* / minmax ou tout ce qui est à base d'arbres |
Ok, ben je vais voir quelque temps si je peut mixer les trois. Parce que c'est mon bon plaisir.
Merci rufo.
Marsh Posté le 04-09-2013 à 13:31:09
De toute manière l'apprentissage par renforcement est à base d'arbre aussi non ?
Marsh Posté le 04-09-2013 à 15:02:24
Dans Wikipedia, ils rapprochent l'apprentissage par renforcement des chaînes de Markov, donc je dirais qu'une modélisation à base de matrice serait plus adaptée. Faudrait que je retrouve mon programme des allumettes pour voir comment j'avais modélisé ça mais je doute que ça soit avec un arbre.
Par contre, Wikipedia indique que l'apprentissage par renforcement était efficace pour le jeu des échecs. Je suis assez surpris, d'où pourquoi ce passage est souligné en demandant une référence.
Marsh Posté le 04-09-2013 à 15:24:40
on y parle de graphe également dans Wikipedia :
Citation : La classification des états et leur période se lisent de manière simple sur le graphe de la chaîne de Markov. Toutefois, si tous les éléments de la matrice de transition sont strictement positifs, la chaîne de Markov est irréductible et apériodique : dessiner le graphe de la chaîne de Markov est alors superflu. |
Ca veux dire quoi le gras s'il vous plaît ?
Marsh Posté le 03-09-2013 à 09:38:53
Bonjour, je fais des recherches, comme je sais que vous êtes avisés, je viens vous présenter mon idée qui j'espère engendrera remarques et critiques.
Je cherche une hiérarchie de jeux de manière à ce que mon jeu qui s'appelle "le jeu" soit solvable seulement si le jeu à appris à jouer en jouant à son propre jeu et à des jeux qui aurait une sous-jacent des principe du jeu le jeu.
Ex :
le jeu à une mission à accomplir,
pour accomplir cette mission,
le jeu doit apprendre à jouer aux échecs et au morpion,
pour apprendre à jouer au échecs, il faut savoir :
trouver la sortie d'un labyrinthe
le morpion s'apprend de manière empirique
le labyrinthe s'apprend de manière empirique.
A présent je dois trouver le rapport entre le tic-tac-toe, les échecs, un labyrinthe et not_to_play.
Je cherche la hiérarchie qui me permettra de lier le tout.
Donc, la question est quel jeux pensez vous pouvoir intégrer à "le jeu" ?
Mais aussi quelle(s) solution(s) algorithmique(s) pour l'apprentissage empirique ?
S'il vous plaît.
Merci. Et bienvenue dans la discutions.
Message édité par Profil supprimé le 03-09-2013 à 09:40:47