| |||||
| Dernière réponse | |
|---|---|
| Sujet : [IA] qq un s y connait en intelligence artificielle ?? | |
| Jubijub | une heuristique capable de battre n'importe quel joueur d'échec oui, mais pour kasparov, ils avaient programmé le calculateur avec ses coups préférés, et son style de jeu...de sorte que le rézo anticipait avec un finesse bcp plus grande la profondeur de coups de kasparov... |
| Aperçu |
|---|
| Vue Rapide de la discussion |
|---|
| Jubijub | une heuristique capable de battre n'importe quel joueur d'échec oui, mais pour kasparov, ils avaient programmé le calculateur avec ses coups préférés, et son style de jeu...de sorte que le rézo anticipait avec un finesse bcp plus grande la profondeur de coups de kasparov... |
| Dj_Jim | Totalement d'accord la programmation doit pas etre le plus casse couille c clair que c pas ca le plus dur comme dans bien des cas, mais c plutot la conception le + cho.
Pour reussir a faire "apprendre kk chose a un RdN" c pas gagné et pour peter une heuristique capable de battre Kasparov aux echecs c pas evident, la programmation c loin d'etre le + dur on est bien d'accord la dessus. |
| wpk | bonhomme> entierement d'accord, à l'utilisation, ca peut etre tres compliqué, en tout cas ca demande des nombreux essais et une bonne definition de la taille de la base d'apprentissage pour ne pas apprendre justement le bruit (en plus, y'a des details non negligeables comme le nb de couches, le nb de noeuds, le choix d'une fonction non lineaire pour la reponse...) Par contre, pour ce qui est de la programmation du truc, c'est tres facile, aussi facile que la prog du minmax (et dans bien de cas, la def d'une heuristique satisfaisante pour evaluer une pos est aussi compliqué que de mettre en place un rdn) |
| Bonhomme |
|
| Dj_Jim |
|
| El_gringo |
|
| benou |
|
| wpk |
|
| Dj_Jim |
|
| Dj_Jim |
|
| benou | ha merde ... je croyais que tu parlais du jeu où on doit reconstituer un puzzle en déplaçant une case vide ... :??: comment ca s'appelle ce jeu ??? |
| slvn |
|
| Jubijub | ben pour ton IA on avait répondu au début... |
| benou | ben un réseau de neurone, c'est vachement artificiel quand même ...
c'est sorte de base de données executable qui s'automodifie ... et puis c'est pas seulement en fonction du nombre d'exemple gournit que le réseau devient efficace. Ca dépend aussi beaucoup de l'implémentation même du réseau (la façon dont il construit au départ et dont il mutte) et de la qualité du jeu d'exemple |
| slvn | nan nan, vous pourrissez pas mon topic :d
serieusement, vos remarques sont interessantes. pour ma part le reseau de neuronnes, n est pas de l IA (car dans IA, y a artificielle), l idée que je m en fait, c est que l IA = algo "statique" qui a des "deductions" pregrogrammée sur lesquels il se base pour jouer. alors qu avec les reseaux de neurones, la strategie de l ordinateur "evolue" au cours de son apprentissage. le but, etant de lui faire apprendre beaucoup pour qu il soit tres fort :) |
| benou | bha on a déjà répondu ... on a bien le droit d'utiliser son topic : il s'en sert plus !
c'est pour pas gacher ;) |
| Jubijub | on s'éloigne du sujet, lui pourrissez pas son topic |
| benou |
|
| wpk |
|
| Dj_Jim |
|
| El_gringo | Bah, et t'espères programmer avec autre chose que des algo !? jusqu'a aujourd'hui, les ordi savent uniquement appliquer des "bêtes algos" comme tu dis. Des trucs qui simulent un raisonnement logique quoi. Après, si t'as une idée pour faire réfléchir réellement un ordi, 'faut en parler ! :D [jfdsdjhfuetppo]--Message édité par El_Gringo--[/jfdsdjhfuetppo] |
| Dj_Jim | Perso je vois pas en quoi un alpha beta c de l'intelligence artificielle c "juste un bete algo" et pour moi ya po d'IA la dedans. |
| Jubijub | pis ca peut avoir des limites : par ex, aux echecs, un sacrifice de la dame peut etre payant...
Une dame aux échecs c "10 points" ...mais faut prendre en compte la position qu'occupe la dame : si elle controle le centre, et qu'elle peut jouer de ses 2 diagonales et de sa colonne et de sa rangée, elle vaut bien plus...si jamais elle est enfermée, voir clouée, elle vaudra tt juste 10... Si tu fais ce que tu appelles le alpha/beta, l'algo aura tendence à couper la branche du sacrifice dame, parce que ca fait du -10 pour toi +10 pour l'ennemis...c le pire rapport possible aux échecs si on se base uniquement sur le sys des points communément admis... alors qu'un sacrifice peut permettre un échange, ou une prise de position clé...déjà faut au moins intedire le coupage de branches avant 2 coups, ne serait-ce que pour tester si un échange est possible, ou si c juste un coup foireux -->pour othello, tu dois pouvoir faire une machine de guerre avec des heuristiques qui cherchent juste le domination des bords...tu rends très désirables pour l'ordi le périmètre du plateau de jeu... [jfdsdjhfuetppo]--Message édité par Jubijub--[/jfdsdjhfuetppo] |
| wpk | j'connais pas bien les regles de ton jeu mais à priori aucun jeu ne possede une fonction cout predefinie, aux echecs, othelo, go etc..., cette fonction est une approximation de la valeur qu'un joueur veut bien donner à une position (c'est en gros lors de la definition de cette fonction que l'imagination peut s'exprimer). C'est une heuristique donc pas besoin d'avoir une super fonction qui te donne un cout exact (qui n'existe sans doute jamais), ca doit etre une fonction qui doit introduire une hierarchie entre les differentes positions. Le fait que dans deux ou trois coups une position jugée forte puisse parraitre catastrophique, importe peu, c'est le min/max qui va faire le boulot de recherche en profondeur. |
| slvn | mmmmmm, alors, difficile d etablir une "cote" car le jeu n etablit pas de score:( un coup mal placé suffit a perdre, faut plutot voir la stratégie je pense. j ai fait mon TIPE sur les reseaux de neurones, mais vu que y a pas moyen de faire de "cote", je vois pas comment appliqué d algo d apprentissage:( |
| wpk | speedyop> moi je dirais ke dans des jeux simples (allant jusqu'aux echecs, echecs presque y compris), la machine bien programmé mettra un patté monumentale à tout pauv cervo humain :p. Dans les jeux à forte explosion combinatoire (je pense au go par exemple), ta remarque est valable. On peut par exemple "aider" le minmax par un petit rez de neurones à la place de l'heuristique qui permet d'evaluer chaque pos et reduire grace à une meilleure notation la profondeur de recherche... |
| benou | la ca devient quand même netteemnt plus compliqué !
un min-max ca se fait super facilement ! |
| speedyop | en plus tu peut ajouter une intelligence qui apprends des joueurs (je dit peut etre des conneries j'y connait rien). tu augmente le poids d'une branche si c'est celle emprunté par un jouer qui a gagner la partie... l'homme a peut etre des truc a apprendre a la machine ;).
En fait ca peut etre interessant par exmple par ce moyen de faire apprendre des "strategies" un peu plus elaboré |
| benou | l'alpha-béta c'est une optimisation de l'ago du min-max.
Le principe c'est qu'il y a certaines branches de l'arbres qu'ils ne sers à rien d'explorer parce qu'un branche voisine est plus avantageuse. Ca permet donc de "couper" certaines branche de l'arbre, et donc de limiter le nombre de fonction d'évaluation à executer. bha oui. l'ago min-max c'est quand même bien lourd à executer si le nombre de possibilité à chaque tour est élevé. Pour le damier, ca va : y a que 4 possibilité au maximum à chaque fois. Si tu choisis une pronfondeur de 5, tu auras environ 4 puissance 5 fonction d'évaluation à executer => 1024 fonction (sans compter le calcul des configurations de jeux) avec une profondeur de 10 ca feras plus d'un millions de fonctions d'évalution. |
| benou | le principe de l'algo du min max :
les conditions d'utilisation de cet algotyhme : - il te faut tu as une fonction qui établit un score pour une configuration du jeu donnée. - il faut que tu puisse déterminer l'ensemble des configurations de jeu possibles en partant d'une configuration et en jouant une fois. ca correspond bien au jeu de dammier. le principe c'est que tu construit un arbre d'une certaine profondeur. La racine de l'arbre est la configuration initiale. Tu fais ensuite un fils à la racine pour chaque configuration de jeu possible. Tu fais ca jusqu'à arriver à la pronfondeur voulue. ensuite tu applique la fonction à chacune des feuilles de l'arbre. Ca te permet d'avoir un "score" pour chaque configuration de jeu au bout de n tours. ensuite tu applique le min-max. chaque étage correspond à un tour de jeu. Par exemple, les étages pairs corresponderont à tes tours de jeu et les étages impaires aux tours ennemis. Il faut donc minimiser les scores de l'ennemi et maximiser les tiens. Donc en partant des feuilles, tu détermine le score de l'étage du dessus en prenant le min ou le max des scores des feuilles suivant le fait que ce soit ton tour de jeu ou celui de l'ennemi. En fesant comme ca et en emontant jusqu'à la racine, tu sauras quel chemin prendre dans l'arbre pour maximiser ton score. pour le damier, une bonne fonction d'évaluation c'est la somme, pour chaque dalles, de la distance séparant la dalle de sa position normale. |
| Kalou | je ne connais rien en intelligence artificielle mais a mon avis il faut que ton programme analyse (avec la prevision de plusieur coups futurs...) toutes les possibilités de jeu et qu'il détermine la meilleure... tu peux peut etre établir une "cote" si tu "manges" un adversaire cette possibilité de jeu gagne 10 points mais si le coup d'apres, l'adversaire t'en mange un a son tour elle perd alors 10 points... fois tous les coups analysés, tu optes pour la solution qui a obtenu les plus de points... |
| wpk | en gros :
1. definir une fonction cout pour chaque position 2. appliquer l'algo du minmax sur l'arbre des possibilitées (elagage alpha/beta pour accelerer un peu) |
| slvn | pour programmer une intelligence artificielle d un jeu sur damier.
quelle sont les grandes etapes ? |




