Projet jeu à deux joueurs - Laboratoire d`Informatique de Paris 6
Transcription
Projet jeu à deux joueurs - Laboratoire d`Informatique de Paris 6
Projet jeu à deux joueurs Thierry Artières Equipe Apprentissage Automatique (Connexionnisme) http://www-connex.lip6.fr/~artieres LI 260 - Projet - T. Artières 1 Evaluation But du projet Les jeux Othello et Awélé Le module en 3 étapes Quelques notions sur l’I.A. LI 260 - Projet - T. Artières 2 Évaluation Assiduité / participation Performance du logiciel Comptes rendus de projet { Rapports intermédiaires (2) et final Soutenance LI 260 - Projet - T. Artières 3 But du projet : Programmation d’un jeu à deux joueurs Trois phases principales (1/3 – 1/3 – 1/3) { Comprendre et développer les outils et algorithmes génériques intervenant dans la programmation de tout jeu à deux joueurs. { Adaptation à un jeu particulier (Othello-Reversi ou Awélé) { configuration des algorithmes de recherche, définition de fonctions d’évaluations etc. Perfectionnement des programmes par apprentissage automatique. Algorithmes de recherche du typa alpha-béta et minimax. Idée = faire jouer entre eux les programmes Exploiter les résultats des parties (victoire ou défaite) pour en améliorer le comportement. Le projet sera écrit en Scheme, { { langage de programmation dérivé de Lisp, Lisp = langage de choix pour la recherche en intelligence artificielle. LI 260 - Projet - T. Artières 4 Othello Othello est un jeu où le hasard n'a aucune place, Deux pions de chaque couleur sont posés sur les 4 cases centrales. Les joueurs jouent à tour de rôle en posant un pion Jusqu'à ce que les 64 pions soient posés. Le gagnant est alors celui qui possède le plus grand nombre de pions de sa couleur. LI 260 - Projet - T. Artières 5 Noir commence toujours la partie. Tour d’un joueur { Pose d’un pion Tenu de capturer des pions adverses lors de son mouvement Si un joueur ne peut pas capturer de pion(s) adverse(s), il est forcé de passer. Capture de pions { Fermeture d’un alignement Le joueur place un de ses pions à l'extrémité d'un alignement de pions adverses contigus et dont l'autre extrémité est déjà occupée par un de ses propres pions. { { Si le pion nouvellement placé vient fermer plusieurs alignements, il capture tous les pions adverses des lignes ainsi fermées. Effet Alignements : colonne, ligne, ou diagonale. La capture se traduit par le retournement des pions capturés. Ces retournements n'entraînent pas d'effet de capture en cascade : seul le pion nouvellement posé est pris en compte. Fin du jeu { Si aucun des deux joueurs ne peut jouer, ou si l'othellier ne comporte plus de case vide, la partie s'arrête. LI 260 - Projet - T. Artières 6 Awélé L’Awélé est un jeu où le hasard n'a aucune place, { { Jeu de société combinatoire abstrait d'origine africaine, considéré comme le jeu d'échecs africain. Le plus répandu des jeux de la famille mancala, ensemble de jeux africains de type «compter et capturer». Nombreuses règles différentes { En Côte d'Ivoire, cohabitent deux règles principales { la règle bété, qui se base sur dix cases une règle commune aux Akan (Baoulé, notamment) et aux Dioula ("commerçants" en bambara, notion qui englobe les représentants des communautés culturelles du Nord). Ce sont les règles de ces derniers qui, à quelques détails près, sont utilisées par la Fédération internationale. LI 260 - Projet - T. Artières 7 Initialisation { { { On répartit quarante-huit graines dans les douze trous à raison de quatre graines par trou. Les joueurs sont l'un en face de l'autre, avec une rangée devant chaque joueur. Cette rangée sera son camp. Les joueurs jouent alternativement. { Un tour se joue de la façon suivante Le joueur prend toutes les graines d'un des trous de son camp Il les égraine dans toutes les cases qui suivent sur sa rangée puis sur celle de son adversaire suivant le sens anti-horaire { une graine dans chaque trou après celui où il a récupéré les graines LI 260 - Projet - T. Artières 8 Si la dernière graine tombe dans un trou du camp adverse et qu'il y a maintenant deux ou trois graines dans ce trou : { { Le joueur capture ces deux ou trois graines et les met de côté. Puis on itère regarder la case précédente Si elle est dans le camp adverse et contient deux ou trois graines récupère ces graines et allezr à la case précédente Sinon arrêt On ne saute pas de case lorsqu'on égraine { { sauf lorsqu'on a plus de douze graines, c'est-à-dire qu'on fait un tour complet => on ne remplit pas la case où l'on vient de prendre les graines LI 260 - Projet - T. Artières 9 But : avoir capturé le plus de graines à la fin de la partie. NB : Il faut nourrir l'adversaire { { { Quand celui-ci n'a plus de graines, il faut absolument jouer un coup qui lui permette de rejouer ensuite. Si ce n'est pas possible, la partie s'arrête et le joueur qui allait jouer capture les graines restantes. Corrolaire : Si un coup peut prendre toutes les graines adverses, alors le coup peut être joué, mais aucune capture n'est faite : il ne faut pas affamer l'adversaire. LI 260 - Projet - T. Artières 10 Etapes du projet 1. Implémentation du jeu entre humains Règles de jeu Validité d’un coup Exécution d’un coup Interface Affichage du plateau, Saisie des coups, Affichage de l’état du jeu (points, pions capturés etc) Nécessite Structures de données Plateau, Pion, Coup, Ensemble de coups, etc Algorithme de gestion du jeu Initialisation Itération sur les tours Saisie de coup et exécution du Coup, mise à jour état du jeu, affichage état du jeu, … LI 260 - Projet - T. Artières 11 Etapes du projet 2. Implémentation du Stratège Génération de l’ensemble des coups possibles Algorithme(s) d’exploration des parties possibles Critère d’arrêt de l’exploration Définition d’une fonction d’évaluation Choix d’un paramétrage du stratège Evaluation du stratège Choix d’une technique Exemple : Définition d’un ensemble de (situation-coup idéal) Implémentation et évaluation Stratège pour un jeu à deux joueurs Exploration de l’ensemble des coups Diverses stratégies de parcours de l’espace de recherche (largeur, profondeur, A*, etc) Espace trop grand { { { Exploration partielle { { Basée sur des heuristiques (e.g. élagage) Arrêt à une profondeur limitée Déterminée a priori En fonction de la situation LI 260 - Projet - T. Artières 12 Etapes du projet 3. Apprentissage du stratège Définition de ce que l’on apprend Mise en œuvre d’une technique d’apprentissage (e.g. par renforcement) Exploration de l’espace Fonction d’évaluation Critère d’arrêt d’exploration … Sur une partie Sur un ensemble de parties Interfaçage avec d’autres programmes Evaluation de l’apprentissage LI 260 - Projet - T. Artières 13 Quelques notions sur l’Intelligence Artificielle Cf. Artificial Intelligence: A Modern Approach S. Russell and P. Norvig Prentice Hall, 2003, Second Edition LI 260 - Projet - T. Artières 14 Domaines de l’I.A. Recherche de solution / résolution de problème Logique Planification Prise en compte de l’incertain Apprentissage Language naturel LI 260 - Projet - T. Artières 15 Définition de l’IA 4 catégories de définitions Penser comme des Penser humainems rationnellement Agir comme des Agir rationnellement humains LI 260 - Projet - T. Artières 16 Agir comme des humains : Le test de Turing Turing (1950) "Computing machinery and intelligence": “Les machines peuvent-elles penser?" Æ “Les machines peuvent-elles se comporter intelligemment?" Test opérationnel pour le comportement intelligent : Le jeu de l’imitation Prévision qu’en 2000 une machine tromperait un humain à 3¨% sur 5 minutes Requiert les composantes majeures de l’IA : connaissances, raisonnement, compréhension du langage, apprentissage. LI 260 - Projet - T. Artières 17 Penser comme des humains : l’appoche cognitive 1960s "cognitive revolution": information-processing psychology Nécessite des théories scientifiques des activités internes du cerveau Validation ? 1) Prediction et test du comportement d’humains (top-down) ou 2) Identification directe à partir de données neurologiques (bottom-up) Ces 2 approches (en gros, Cognitive Science and Cognitive Neuroscience) sont maintenant distinctes en IA LI 260 - Projet - T. Artières 18 Penser rationnellement: “les lois de la pensée" Aristote: Quels sont les mécanismes de la pensée / de l’argumentation ? Ecoles grecques ont développé diverses formes de logiques : notation et règles de dérivation pour la pensée; Ancêtre en ligne directe (à travers les mathématiques et la philosophie) de l’IA moderne Problèmes: 1. 2. Tout comportement intelligent n’est pas le résultat d’une délibération logique Quel est le but de la pensée? Quelles pensées devrais-je avoir? LI 260 - Projet - T. Artières 19 Agir rationnellement Comportement rationnel : doing the right thing / agir correctement The right thing: action qui est supposée rapprocher le plus possible d’un but à atteindre, étant donnée l’information disponible Ne nécessité pas la pensée (actions reflexes) mais la pensée devrait être au service de l’action rationnelle. LI 260 - Projet - T. Artières 20 Agents rationnels Un agent est une entité qui perçoit et qui agit IA / construire des agents intelligents De façon abstraite un agent est une fonction de l’espace des historiques de perceptions dans l’espace des actions: [f: P* Æ A] Pour une classe d’environnement et de tâche donnée on cherche l’agent (ou la classe d’agents) qui a la meilleure “performance”? Problème: Limitations calculatoires (e.g. explosion combinatoire etc) rend cette recherche impossible généralement. Æ But : construire le meilleur programme étant donné les ressources machines à disposition. LI 260 - Projet - T. Artières 21 La préhistoire de I’IA Philosophie Mathématiques Economie Neurosciences Psychologie Informatique Contrôle Linguistique Logique, méthodes de raisonnement, langage, … Représentation formelle et algorithmes de preuve, calculabilité, (non) décidabilité, probabilités utilité, théorie de la décision phénomènes de perception et de contrôle moteur, techniques expérimentales construction d’ordinateurs rapides construction de systèmes qui maximisent un objectif au cours du temps Représentation de la connaissance, grammaire LI 260 - Projet - T. Artières 22 L’histoire de l’AI en abrégé 1943 1950 1956 1952—69 1950s 1965 1966—73 1969—79 1980-1986-1987-1995-- McCulloch & Pitts: Circuit Booléen modèle du cerveau Turing's "Computing Machinery and Intelligence" Dartmouth meeting: "Artificial Intelligence" adopted Look, Ma, no hands! Early AI programs, including Samuel's checkers program, Newell & Simon's Logic Theorist, Gelernter's Geometry Engine Robinson's complete algorithm for logical reasoning AI discovers computational complexity Neural network research almost disappears Early development of knowledge-based systems AI becomes an industry Neural networks return to popularity AI becomes a science The emergence of intelligent agents LI 260 - Projet - T. Artières 23 Aujourd’hui Deep Blue defeated the reigning world chess champion Garry Kasparov in 1997 Proved a mathematical conjecture (Robbins conjecture) unsolved for decades No hands across America (driving autonomously 98% of the time from Pittsburgh to San Diego) During the 1991 Gulf War, US forces deployed an AI logistics planning and scheduling program that involved up to 50,000 vehicles, cargo, and people NASA's on-board autonomous planning program controlled the scheduling of operations for a spacecraft Proverb solves crossword puzzles better than LI 260 - Projet - T. Artières most humans 24 Agents Intelligents LI 260 - Projet - T. Artières 25 Agents et environements PEAS (mesure de Performance, Environement, Acteurs, Senseurs) Types d’environement Types d’agents LI 260 - Projet - T. Artières 26 Agents Un agent = n’importe quoi qui peut être vu comme percevant son environement à travers des senseurs et agissant sur cet environement à travers des acteurs Agent humain { { yeux, oreilles, mains, etc comme senseurs Lèvres, bouche, et autres membres du corps comme acteurs Agent robotique { { caméra etc comme senseurs; Moteurs comme acteurs LI 260 - Projet - T. Artières 27 Agents et environements Fonction agent : [f: P* Æ A] Le programme agent s’exécute sur une architecture physique pour implémenter f agent = architecture + programme LI 260 - Projet - T. Artières 28 Le monde de l’aspirateur Percepts: lieu et contenu, e.g., [A,Dirty] Actions: Gauche, Droite, Aspire, Rien LI 260 - Projet - T. Artières 29 PEAS PEAS: mesure de Performance, Environnement, Acteurs, Senseurs Contexte pour la construction d’un agent intelligent Exemple : conduite de taxi { { { { Mesure de Performance : Rapidité, Sécurité, Légalité, Confort, Profits Environnement : Routes, trafic, piétons, clients Acteurs : frein à main, accélérateur, freins, klaxon Senseurs: Rétroviseurs, GPS, Indications du tableau de bord Autres exemples { { Agent: système de diagnostique médical Tuteur interactif pour l’apprentissage de l’anglais LI 260 - Projet - T. Artières 30 Types d’environnement Complètement observable (vs. partiellement observable): Déterministe (vs. stochastique): Le prochain état est totalement déterminé par l’état courant de l’agent et l’action exécutée. Episodique (vs. séquentiel): L’expérience de l’agent est divisée en « épisodes » atomiques (un épisode = l’agent perçoit et exécute une action unique). Pas de dépendance d’un épisode à un autre. Statique (vs. dynamique): Discret (vs. continu): Agent isolé (vs. multiagent) LI 260 - Projet - T. Artières 31 Types d’agents 4 types basiques (ordre croissant de généralité) Agents réflexes simples Agents réflexes basés sur des modèles Agents basés sur des buts Agents basés sur l’utilité LI 260 - Projet - T. Artières 32 Model-based reflex agents LI 260 - Projet - T. Artières Goal-based agents 33 Utility-based agents Learning agents LI 260 - Projet - T. Artières 34 Résolution de problème par recherche LI 260 - Projet - T. Artières 35 Résolution de problème Agents pour la résolution de problèmes Types de problèmes Formulation de problème Exemple de problèmes Algorithmes de recherche de base LI 260 - Projet - T. Artières 36 Agent pour la résolution de problème LI 260 - Projet - T. Artières 37 Exemple: Se déplacer en Roumanie En vacances en Roumanie; actuellement à Arad. Votre vol part demain de Bucarest Formulation du but: { Formulation du problème: { { Etre à Bucarest états: les villes de Roumanie actions: se rendre d’une ville à une autre en voiture Recherche d’une solution: { Séquence de villes, e.g., Arad, Sibiu, Fagaras, Bucharest LI 260 - Projet - T. Artières 38 Exemple: Roumanie LI 260 - Projet - T. Artières 39 Types de problèmes Déterministe, complètement observable Æ problème à états { L’Agent sait exactement dans quel état il sera si action. La solution est une séquence d’actions. Non-observable Æ problèmes sans capteurs { L’Agent peut n’avoir aucune idée d’où il est. Non déterministe et/ou partiellement observable Espace d’états inconnu Æ problème d’exporation LI 260 - Projet - T. Artières 40 Exemple: L’aspirateur Etat simple, Début en #5. Solution? [Droite,Aspire] LI 260 - Projet - T. Artières 41 Tree search example LI 260 - Projet - T. Artières 42 Tree search example LI 260 - Projet - T. Artières 43 Tree search example LI 260 - Projet - T. Artières 44 Implémentation: recherche générique dans un arbre LI 260 - Projet - T. Artières 45