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

Documents pareils