Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1327 connectés 

  FORUM HardWare.fr
  Programmation

  [IA] qq un s y connait en intelligence artificielle ??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[IA] qq un s y connait en intelligence artificielle ??

n°98675
slvn
Posté le 10-02-2002 à 17:18:59  profilanswer
 

pour programmer une intelligence artificielle d un jeu sur damier.
 
quelle sont les grandes etapes ?

mood
Publicité
Posté le 10-02-2002 à 17:18:59  profilanswer
 

n°98679
wpk
Posté le 10-02-2002 à 17:44:45  profilanswer
 

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)

n°98680
Kalou
Posté le 10-02-2002 à 17:45:19  profilanswer
 

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...

n°98683
benou
Posté le 10-02-2002 à 17:57:28  profilanswer
 

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.


---------------
ma vie, mon oeuvre - HomePlayer
n°98686
benou
Posté le 10-02-2002 à 18:03:58  profilanswer
 

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.


---------------
ma vie, mon oeuvre - HomePlayer
n°98689
speedyop
Posté le 10-02-2002 à 18:13:19  profilanswer
 

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é

n°98705
benou
Posté le 10-02-2002 à 19:19:35  profilanswer
 

la ca devient quand même netteemnt plus compliqué !
 
un min-max ca se fait super facilement !


---------------
ma vie, mon oeuvre - HomePlayer
n°98709
wpk
Posté le 10-02-2002 à 19:27:14  profilanswer
 

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...

n°98730
slvn
Posté le 10-02-2002 à 21:20:22  profilanswer
 

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:(

n°98759
wpk
Posté le 10-02-2002 à 23:24:22  profilanswer
 

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.

mood
Publicité
Posté le 10-02-2002 à 23:24:22  profilanswer
 

n°98772
Jubijub
Parce que je le VD bien
Posté le 11-02-2002 à 00:32:30  profilanswer
 

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]


---------------
Jubi Photos : Flickr - 500px
n°98834
Dj_Jim
Posté le 11-02-2002 à 12:06:43  profilanswer
 

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.

n°98844
El_gringo
Posté le 11-02-2002 à 12:28:29  profilanswer
 

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]

n°99031
Dj_Jim
Posté le 11-02-2002 à 19:39:53  profilanswer
 

El_Gringo a écrit a écrit :

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  
 
 




tu c ce ke c ke des reseaux de neurones???????
non parce que ca c de l'intelligence artificielle un truc capable d'apprendre par lui meme  
Voila ce ke c de l'IA ca a rien a voir avec de l'algorithmie pure et dure comme l'est un alpha beta

n°99046
wpk
Posté le 11-02-2002 à 20:32:24  profilanswer
 

Dj_jim a écrit a écrit :

 
tu c ce ke c ke des reseaux de neurones???????
non parce que ca c de l'intelligence artificielle un truc capable d'apprendre par lui meme  
Voila ce ke c de l'IA ca a rien a voir avec de l'algorithmie pure et dure comme l'est un alpha beta  




 
 :lol: apprendre par lui meme, mais bien sur  :lol:  
 
si tu le prends comme ca, l'apprentissage d'un rez de neurones, c'est rien de plus que la retropropagation du gradient (ou un rafinement de cet algo). De plus, avec la puissance de calcul actuelle, on est loin de pouvoir simuler un rez de neurones qui puisse tenir tete à celui d'un etre humain. Les ordis sont inteligents à leur facon, pas à la notre :p

n°99064
benou
Posté le 11-02-2002 à 21:22:59  profilanswer
 

Dj_jim a écrit a écrit :

 
tu c ce ke c ke des reseaux de neurones???????
non parce que ca c de l'intelligence artificielle un truc capable d'apprendre par lui meme  
Voila ce ke c de l'IA ca a rien a voir avec de l'algorithmie pure et dure comme l'est un alpha beta  




 
les réseaux de neurone, c'est des algos à la con aussi !
c'est juste parce que c'est pas une machine de vonneuman ('scuse pour l'ortographe) que ca te semble plus "inteligent" ...
 
et puis c'est quand même la mort à mettre en place un réseau de neurone !


---------------
ma vie, mon oeuvre - HomePlayer
n°99080
Jubijub
Parce que je le VD bien
Posté le 11-02-2002 à 21:41:02  profilanswer
 

on s'éloigne du sujet, lui pourrissez pas son topic


---------------
Jubi Photos : Flickr - 500px
n°99089
benou
Posté le 11-02-2002 à 21:53:02  profilanswer
 

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 ;)


---------------
ma vie, mon oeuvre - HomePlayer
n°99096
slvn
Posté le 11-02-2002 à 22:05:53  profilanswer
 

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 :)

n°99099
benou
Posté le 11-02-2002 à 22:13:00  profilanswer
 

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


---------------
ma vie, mon oeuvre - HomePlayer
n°99105
Jubijub
Parce que je le VD bien
Posté le 11-02-2002 à 22:18:44  profilanswer
 

ben pour ton IA on avait répondu au début...


---------------
Jubi Photos : Flickr - 500px
n°99114
slvn
Posté le 11-02-2002 à 22:24:26  profilanswer
 

Jubijub a écrit a écrit :

ben pour ton IA on avait répondu au début...  




vi, d ailleurs je vous remercie  :jap:  :jap:  
 
ps: je n 'ai pas donné volontairement le nom jeu dont il est question, car c est quand meme un projet "scolaire"  et que je souhaite faire normallement :d  
j en ai juste parlé pour avoir des qq pistes où m orienter

n°99115
benou
Posté le 11-02-2002 à 22:26:19  profilanswer
 

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 ???


---------------
ma vie, mon oeuvre - HomePlayer
n°99190
Dj_Jim
Posté le 11-02-2002 à 23:39:33  profilanswer
 

wpk a écrit a écrit :

 
 
 :lol: apprendre par lui meme, mais bien sur  :lol:  
 
si tu le prends comme ca, l'apprentissage d'un rez de neurones, c'est rien de plus que la retropropagation du gradient (ou un rafinement de cet algo). De plus, avec la puissance de calcul actuelle, on est loin de pouvoir simuler un rez de neurones qui puisse tenir tete à celui d'un etre humain. Les ordis sont inteligents à leur facon, pas à la notre :p  




g jamai parlé de tenir tete a un etre humain on en est tres tres loin et j'espere quon i arrivera pas de si tot.
le truc c kun rez de neurones ou un SE (systeme experts) deduits des trucs de sa propre xp donc il "apprend" par lui meme et pour moi ca c de l'IA pace ke excuse moi mais un alpha beta c rien d'autre kun calcul d'explosion combinatoires de solutions...

n°99194
Dj_Jim
Posté le 11-02-2002 à 23:41:57  profilanswer
 

benou a écrit a écrit :

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 ???  




 
tu cois vraiment kil programmerais un alpha beta pour un jeu de taquin ??? o non ca seré tellement surprenant c pas l'exemple choisi  d'habitude... ;)  
ou alors il faudrait pitet utiliser un A* ou encore un ptit SSS* si je ne m'abuse???
 
Merde g dit le nom de taquin j'espere que cété pas ca le jeu sinon je t grillé  :)

n°99219
wpk
Posté le 12-02-2002 à 00:16:23  profilanswer
 

Dj_jim a écrit a écrit :

 
g jamai parlé de tenir tete a un etre humain on en est tres tres loin et j'espere quon i arrivera pas de si tot.
le truc c kun rez de neurones ou un SE (systeme experts) deduits des trucs de sa propre xp donc il "apprend" par lui meme et pour moi ca c de l'IA pace ke excuse moi mais un alpha beta c rien d'autre kun calcul d'explosion combinatoires de solutions...  




 
il n'apprend rien du tout, y'a rien de "magique" dans l'apprentissage d'un rez de neurones, c'est un simple algo qui essaye de minimiser l'erreur entre la sortie et l'entrée et qui stocke ses resultats dans un pauv tablo (c'est les poids "synaptiques" ). C'est du meme niveau de difficulté que le min/max (on appelle alpha beta l'amelioration du min/max par l'elagage des branche initeressantes et c'est pas du tout un "calcul de l'explosion combinatoire"...).

n°99239
benou
Posté le 12-02-2002 à 00:44:42  profilanswer
 

Dj_jim a écrit a écrit :

 
tu cois vraiment kil programmerais un alpha beta pour un jeu de taquin ??? o non ca seré tellement surprenant c pas l'exemple choisi  d'habitude... ;)  




:)
remarque, ce serait pas évident un jeu de taquin dans lequel t'as pas le droit de te tromper une fois ...


---------------
ma vie, mon oeuvre - HomePlayer
n°99264
El_gringo
Posté le 12-02-2002 à 09:00:26  profilanswer
 

benou a écrit a écrit :

 
:)
remarque, ce serait pas évident un jeu de taquin dans lequel t'as pas le droit de te tromper une fois ...  




 
Bah, avec un bon vieux mini max, la solution la meilleur est surement vite trouvée !

n°99419
Dj_Jim
Posté le 12-02-2002 à 14:16:16  profilanswer
 

wpk a écrit a écrit :

 
 
il n'apprend rien du tout, y'a rien de "magique" dans l'apprentissage d'un rez de neurones, c'est un simple algo qui essaye de minimiser l'erreur entre la sortie et l'entrée et qui stocke ses resultats dans un pauv tablo (c'est les poids "synaptiques" ). C'est du meme niveau de difficulté que le min/max (on appelle alpha beta l'amelioration du min/max par l'elagage des branche initeressantes et c'est pas du tout un "calcul de l'explosion combinatoire"...).  




Si tu veux chui pas d'accord mais bon...
En tout cas pour la difficulte la chui anti-d'accord un alpha beta c tout con a programmer pour un jeu c juste l'heuristique a trouver qui est baleze, apres c rien a programmer mais un rez de neurones c plus casse couilles a mettre en place kan meme....

n°99423
Bonhomme
Posté le 12-02-2002 à 14:24:04  profilanswer
 

wpk a écrit a écrit :

 
 
il n'apprend rien du tout, y'a rien de "magique" dans l'apprentissage d'un rez de neurones, c'est un simple algo qui essaye de minimiser l'erreur entre la sortie et l'entrée et qui stocke ses resultats dans un pauv tablo (c'est les poids "synaptiques" ). C'est du meme niveau de difficulté que le min/max (on appelle alpha beta l'amelioration du min/max par l'elagage des branche initeressantes et c'est pas du tout un "calcul de l'explosion combinatoire"...).  




 
Et bien là je ne suis pas trop d'accord quand à la difficulté d'un réseau de neurones.
J'ai bossé dessus pendant un an complet et je peux te dire que programmer un réseau de neurones c'est assez compliqué.
Ecrire le code ça va c'est pas ça le plus dur. Le plus compliqué c'est de lui faire apprendre. C'est a dire ne pas faire de l'overfitting et donc le faire "trop apprendre" ce qui veut dire qu'il sera incapable de se demerder avec un cas nouveau ni de faire le contraire non plus.
Le plus gros problème avec RdN c'est l'apprentissage ET le jeu d'essai a effectuer après. Après tu l'essayes sur des exemples aléatoires et généralement.... tu recommences...
 
Bonhomme

n°99468
wpk
Posté le 12-02-2002 à 16:42:40  profilanswer
 

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)

n°99562
Dj_Jim
Posté le 12-02-2002 à 20:09:57  profilanswer
 

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.

n°99629
Jubijub
Parce que je le VD bien
Posté le 12-02-2002 à 23:59:11  profilanswer
 

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...


---------------
Jubi Photos : Flickr - 500px
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [IA] qq un s y connait en intelligence artificielle ??

 

Sujets relatifs
[Web] qui connait de bons sites qui traitent de l'optimisation Web ?qui connait le TCL/TK
quelqu'un connait l'entet des fichier MPeg ?quelqun connait sa ?
[Eiffel] quelqu'un connait ce langage ?qui s'i connait en langage PCL je veux juste les commandes !!!!
[C'est quoi ce bordel] JAVA connait pas les bmp ?????qui connait un provider qui accepte le mailto sous php????
[Java / proxy] Quelqu'un connait JigSaw du W3C ici[oracle 8] qui connait un bon tutorial de a à z ?
Plus de sujets relatifs à : [IA] qq un s y connait en intelligence artificielle ??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR