un truc qui me turlupine : l`intelligence artificiel

un truc qui me turlupine : l`intelligence artificiel - Programmation

Marsh Posté le 13-03-2001 à 17:27:45    

y aurai t`il quelqu'un ici qui serait apte a m'expliquer rapidos comment peu fonctionner l`intelligence artificiel.
 
for example tout con :
tu programme un jeu de dame, comment prevoir le meilleur coup...
 
 
ca c un truc que j`arrive pas a cerner.
 
ok on peu tester toutes les combinaisons possibles mais comment "voir" celle qui sera la meilleur.
 
encore pire dans un quake like...
 
 :??:  :??:  :??:  :??:  :??:  :??:  :??:  :??:  :??:  :cry:


---------------
Oui aux titres de topic clair et precis...
Reply

Marsh Posté le 13-03-2001 à 17:27:45   

Reply

Marsh Posté le 13-03-2001 à 17:47:45    

Ben dans Quake les bots suivent un "path" pour chaque map (certaines map ne le supportent pas et donc on peut pas y mettre de bots)
Le bot ben il suit connement le chemin qu'un joueur aura décidé... et puis y'a l'auto aim ... le bot il te touche a coup sur ... on multiplie ca par l'accuracy qu'on lui a attribué ... en clair s'il a accuracy 50% il te touche un coup sur 2...
A Starcraft l'ordi il triche ... (il sait ou tu es ...)
Pour les jeux comme les dames ben y'a des bibliotheques d'ouvertures ... et des fois la theorie va tres loin (aux echecs on peut etre dans la theorie jusqu'a 20 coups) si tu en sort t'es dans la merde ... Voila un debut de reponse ...

Reply

Marsh Posté le 13-03-2001 à 17:51:30    

t'as des algorithmes aussi pour ca, je crois que y a les algorithmes alpha / beta pour les dames, ou un truc comme ca, et d'autres algorithmes pour chaque situation pour prevoir le meilleur coup.

Reply

Marsh Posté le 13-03-2001 à 18:14:14    

ok mais quel est le premier genie qui a pondu un algo de ce type et comment peut bien etre cet algo, comment fonctionne t-il, c ca ke je comprend po

Reply

Marsh Posté le 13-03-2001 à 18:37:10    

Le premier gars a faire ca ...c'est assez vieux en tous cas (100 ans ??? +???)Y'avait une machine (a roues dentees et tout )qui resolvait un probleme connu des echecs : matter un roi seul avec son roi et une tour (y'a une technique)
Des fois un algoo tout con est assez efficace : j'avais fait sur casio un touche coule : l'ordi choisissait au hasard une case parmis les 50 (il tirait sur une case sur 2)
puis il verifiait qu'il n'avait pas deja tire la
si oui il choisissait une autre case
sinon il tirait ;)
s'il touchait il tournait autour de cette case juqsqu'a trouver la suite du bateau
 
De meme il placait ses bateaux aleatoirement ...
 
Cherche des petits algos a la con comme ca (notament pour le Morpion) ca te donnera un petit appercu

Reply

Marsh Posté le 13-03-2001 à 19:16:55    

en fait, c'est basé sur les probabilité. On étudie toutes les solutions possibles et on determine celle pour lesquelles on a le plus de chance de gagner. Il faut pour cela determiner des regles pour tester une situation et indiquer le pourcentage de reussite.  
c'est pas clair ?
 
un exemple avec le puisssance 4 :
  en fait tu peux à partir d'une situation donnée, definir toutes les possibilités de jeu. Pour chaque possibilité il faut determiner quelle est la chance de gagner (par exemple le plus grand alignement de points obtenus).

Reply

Marsh Posté le 14-03-2001 à 09:56:36    

pour t'eclairer un peu, beaucoup d'algos qui cherchent a etre "intelligent" cherchent le meilleur chemin pour aller d'un point a un autre. Par exemple, pour les echecs le point initial c'est la configuration de depart d'un jeu d'echec et le point final c'est le roi adverse en echec et mat.
Pour arriver du point initial au point final, le programme doit savoir quelles sont les etapes possibles pour se rapprocher du but: pour les echecs c'est les regles de mouvement des pieces. Ensuite il doit etre capable d'analyser ou plutot de "noter" une position. Pour une certaine configuration des pieces, le programme doit pouvoir dire "oui je suis sur la bonne voie" ou "non c'est pas terrible". La fonction qui assure ce calcul evalue en fait la distance (en terme d'"etapes" ) qu'il reste a parcourir pour arriver au point final : c'est une fonction heuristique, et c'est la que se situe toute la finesse d'un algo ce type. En connaissant le moyen de passer d'une configuration a une autre et en sachant noter une configuration, le programme est alors capable d'estimer le meilleur chemin pour arriver a son but. Pour cela il va essayer de minimiser le nombre d'etapes et/ou la valeur de la fonction heuristique et parcourir un arbre (en revenant des fois sur ces pas) jusqu'a trouver la solution (ou non!).
C'est un algo tres tres generique et je prends l'exemple du jeu d'echec pour illustrer sans bien savoir comment fonctionne un vrai jeu d'echec.
Si tu veux regarder a quoi ressemble cet algo, tu dois pouvoir trouver des exemples sur le net en cherchant "A*" (il s'appelle bien A "ETOILE" ...).

Reply

Marsh Posté le 17-03-2001 à 00:44:29    

altac, je te confirme que ton exemple est bon.
Les IA d'échecs sont basés sur des algos complexes dont les versions basiques sont les alpha/beta (cités plus hauts) et min/max. La partie la plus difficile à programmer à mon avis est l'évaluation de la situation. Je travaille sur un bete jeu de cartes (coinche) et malgré l'apparente simplicité des regles c'est pas facile de bien évaluer un jeu.
Mais bon je débute dans ce domaine :)
 
Pour plus d'infos je vous conseille ces rubriques sur le site du concepteur d'un jeu de dames:
http://perso.wanadoo.fr/alemanni/page2.html
 
A+

Reply

Marsh Posté le 17-03-2001 à 09:20:06    

Ca me rapelle des souvenir vous histoires.
Enfin tout ça ce n'est qu'une fine cuisine d'arbres n aires et de listes chainées. Seaupoudrée de quelques recherches de plus court chemin et de cycles.
 
Bah! http://forum.hardware.fr/sqlforum/icones/icon16.gif Je vais me rendre malade!

Reply

Marsh Posté le 17-03-2001 à 12:28:28    

L'intelligence artificielle c'est reussir a codifier
un comportement humain.
Apres tous les moyens sont bons pour y arriver..
 
Les parcours d'arbre, les plus courts chemins, ce n'est pas de l'intelligence a proprement parler, c'est un deroulement bete d'algorithme dont on suppose qu'ils vont donner la bonne solution. En clair, c'est une modelisation mathematique de probleme.
Pour A etoile (A*), suppose que tu veuilles aller d'un point a un autre par le plus court chemin (ou celui qui minimisera une fonction d'energie), ton intuition te dit qu'il ne sert a rien de t'eloigner de ton but pour t'en rapprocher, c'est a dire que tu vas privilegier certaines directions qui "a priori" te rapprocheront de ton but.
Par exemple tu veux gagner aux echecs mais tu sais qu'un deplacement qui te fera perdre ta reine te rendra ta partie plus difficile, donc tu vas dire qu'un tel deplacement va t'eloigner de ta position finale.  
C'est la que ta fonction heuristique est tres importante, elle est basee sur une estimation donc imprecise et peut-etre fausse, plus ta fonction d'estimation de la distance est precise plus elle te coutera en calcul: par exemple si tu te contentes de te limiter aux intuitions faibles (la perte de la reine t'eloigne de la victoire), tu risques de laisser passer des situations ou en provoquant la prise de ta reine, tu te mets en situation de force aux coups suivants. Or l'une des caracteristique des echecs c'est l'impossibilite de derouler entierement l'arbre des coups (ordi a memoire infinie et temps de calcul infini aussi) donc l'intelligence humaine intervient encore enormement dans ce calcul d'estimation! (l'ordi a ses capacites
de traitement pour lui mais face a un calcul infini, il  
est perdu, aussi puissant soit-il)
Les problemes que j'appelerai "chaotiques" sont difficilement previsibles et la on est un peu demuni: on peut s'en referer aux probas et l'on doit accepter une certaine chance d'echouer
ou esperer gagner sur le long terme si c'est un jeu comme le poker ou l'on n'est pas oblige de gagner a chaque partie mais ou l'on peut minimiser ses pertes, sans parler des choses tres "humaines" comme le bluff. (par exemple adopter trois fois la meme strategie au pretexte qu'elle a une chance sur trois de passer, c'est de la stupidite artificielle :-) !)
 
Pour des problemes plus difficiles a modeliser, il y a d'autres types de resolutions basees sur une vision globale et locale. Exemple: deplacement d'un ennemi, base sur ce qu'il voit, la l'intelligence est centre sur cette unite, mais il peut suivre des ordres de plus haut, c'est a dire qu'un general sait ou deplacer ses troupes pour mettre mal ses adversaires en supposant que ses soldats aient un bon "comportement individuel".
La ca commence a devenir interessant parce qu'on introduit de l'humain aux deux niveaux, inutile de dire qu'il n'est pas envisageable de traiter ca sous forme de graphe, de parcours minimum et de fonctions de couts bien definies.
L'approche qui est adoptee dans les jeux en general, c'est "la triche" c'est a dire qu'on attribue a l'ordinateur des capacites en surnombre pour que le challenge reste un peu interessant. Inutile de dire que ce n'est pas tres satisfaisant :-).
 
Je passe sur les reseaux neuronaux, les algo genetiques qui sont aussi d'autres manieres d'apprehender l'intelligence sur un mode plus empirique.
 
A+
LEGREG

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed