Exploration en situation d'adversité

Documents pareils
Algorithmes de recherche

Pourquoi l apprentissage?

Application 1- VBA : Test de comportements d'investissements

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Programmation Objet - Cours II

Ebauche Rapport finale

Qualité du logiciel: Méthodes de test

Cours de Master Recherche

L apprentissage automatique

Arbres binaires de recherche

Agrégation des portefeuilles de contrats d assurance vie

Calcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane

Arbres binaires de décision

Conception et Développement d un moteur d intelligence artificielle pour un jeu d échecs multiplateformes

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Résolution de systèmes linéaires par des méthodes directes

Algorithmes de Transmission et de Recherche de l Information dans les Réseaux de Communication. Philippe Robert INRIA Paris-Rocquencourt

Algorithmes d'apprentissage

Chapitre 10. Intelligence artificielle et jeux.

Optimisation Combinatoire (Méthodes approchées) II. Recherche Locale simple (Les bases)

Intelligence Artificielle Planification

Programmation linéaire

Partie 7 : Gestion de la mémoire

CH.6 Propriétés des langages non contextuels

Programmation temps-réel Cours 1 et 2 Introduction et ordonnancement

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

ARBRES BINAIRES DE RECHERCHE

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

1.6- Génération de nombres aléatoires

Optimisation Discrète

Ordonnancement temps réel

Corrigé des TD 1 à 5

Initiation à l algorithmique

Stratégie de recherche adaptative en programmation par contrainte

Recherche et Diffusion de l Information dans les Réseaux. Philippe Robert. Le 8 avril 2014

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

POKER ET PROBABILITÉ

Outils logiciels pour la combinaison de vérification fonctionnelle et d évaluation de performances au sein de CADP

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Manuel de validation Fascicule v4.25 : Thermique transitoire des structures volumiques

Cours Informatique Master STEP

Seconde et première Exercices de révision sur les probabilités Corrigé

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Programmation C++ (débutant)/instructions for, while et do...while

Importer un fichier CSV

Conception de réseaux de télécommunications : optimisation et expérimentations

ALGORITHME GENETIQUE ET MODELE DE SIMULATION POUR L'ORDONNANCEMENT D'UN ATELIER DISCONTINU DE CHIMIE

Chapitre 7. Récurrences

Propagation sur réseau statique et dynamique

Examen Médian - 1 heure 30

Intelligence Articielle (1) Introduction

Probabilités Loi binomiale Exercices corrigés

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

Cours de Probabilités et de Statistique

PROBABILITES ET STATISTIQUE I&II

Cryptographie. Cours 3/8 - Chiffrement asymétrique

Backtracking asynchrone agile pour les problèmes de satisfaction de contraintes distribués

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

Chapitre 3. Les distributions à deux variables

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Algorithmes de recherche d itinéraires en transport multimodal

Jean-Philippe Préaux

1 Recherche en table par balayage

Dossier projet isn 2015 par Victor Gregoire

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Définition des Webservices Ordre de paiement par . Version 1.0

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

LA NOTATION STATISTIQUE DES EMPRUNTEURS OU «SCORING»

Intelligence Artificielle et Robotique

Programmation Visual Basic. Visite guidée d'un programme Visual Basic 6.0

Jeux sous forme extensive (Jeux dynamiques)

Introduction aux algorithmes répartis

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Chapitre 5 : Flot maximal dans un graphe

Probabilités conditionnelles Exercices corrigés

îundesdruokerei Berlin

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

Les structures de données. Rajae El Ouazzani

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Journées MATHRICE "Dijon-Besançon" DIJON mars Projet MySafeKey Authentification par clé USB

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Théorie des Jeux Et ses Applications

Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU

Apprentissage incrémental par sélection de données dans un flux pour une application de sécurité routière

Chapitre 6. Fonction réelle d une variable réelle

Introduction à MATLAB R

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Enseignement secondaire technique

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

données en connaissance et en actions?

Cours de Génie Logiciel

OPTIMISATION DE LA MAINTENANCE DES EQUIPEMENTS DE MANUTENTION DU TERMINAL A CONTENEURS DE BEJAIA (BMT)

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Les probabilités. Guide pédagogique Le présent guide sert de complément à la série d émissions intitulée Les probabilités produite par TFO.

Domain Name Service (DNS)

Transcription:

Exploration en situation d'adversité Jerôme Champavère jerome.champavere @ lifl.fr http://www.grappa.univ-lille3.fr/~champavere/?page=enseignement

Les jeux

Théorie des jeux Point de vue économie Environnements multi-agents Compétition ou coopération Point de vue IA (simple) Alternés Déterministes Information parfaite Somme nulle

Jeux et intelligence artificielle Domaine historique de l'ia Intéressants parce que trop difficiles à résoudre Prendre une décision même lorsque le calcul de la décision optimale est impossible Inefficacité lourdement pénalisée Quelle est la meilleure utilisation possible du temps?

Décisions optimales dans les jeux

Problème d'exploration Deux joueurs : MAX et MIN Formalisation État initial : configuration du jeu au départ Fonction successeur : liste de coups légaux et de leurs résultats Test de terminaison : fin de partie Fonction d'utilité : valeur numérique associée à un état terminal

Arbre de jeu

Stratégies optimales MIN a la possibilité de réagir MAX doit trouver une stratégie contingente VALEUR-MINIMAX(n) = UTILITÉ(n) si n est un état terminal max s succ (n) VALEUR-MINIMAX(s) si n est un nœud MAX min s succ (n) VALEUR-MINIMAX(s) si n est un nœud MIN Décision minimax à la racine : action qui constitue le choix optimal pour MAX

Arbre d'un jeu à deux demi-coups

Algorithme du minimax function DÉCISION-MINIMAX(état) v VALEUR-MAX(état) return action dans SUCCESSEURS(état) ayant la valeur v function VALEUR-MAX(état) if TEST-TERMINAL(état) then return UTILITÉ(état) v for a,s in SUCCESSEURS(état) do v MAX(v,VALEUR-MIN(s)) return v function VALEUR-MIN(état) if TEST-TERMINAL(état) then return UTILITÉ(état) v + for a,s in SUCCESSEURS(état) do v MIN(v,VALEUR-MAX(s)) return v

Algorithme du minimax Exploration en profondeur d'abord complète de l'arbre de jeu Complexité en temps : O(bm ) Complexité en espace : O(bm)

Implémentation negamax function DÉCISION-MINIMAX(état) v VALEUR-NEGAMAX(état) return action dans SUCCESSEURS(état) ayant la valeur v function VALEUR-NEGAMAX(état) if TEST-TERMINAL(état) then return UTILITÉ(état) v for a,s in SUCCESSEURS(état) do v MAX(v,-VALEUR-NEGAMAX(s)) return v

Jeux multi-joueurs Vecteur de valeurs Possibilité d'alliances

Élagage alpha-bêta

Élaguer «sans risque» La décision minimax peut être calculée sans examiner tous les nœuds de l'arbre de jeu Si m est un meilleur choix qu'un ancêtre de n pour MAX (x > y), alors n ne sera jamais atteint dans le jeu

Recherche alpha-bêta α : meilleur choix (valeur la plus élevée) à un instant donné pour MAX sur le chemin β : meilleur choix (valeur la moins élevée) à un instant donné pour MIN sur le chemin Élagage dès que la valeur du nœud courant est moins bonne que la valeur concurrente α (resp. β) pour MAX (resp. MIN)

function RECHERCHE-ALPHA-BÊTA(état) v VALEUR-MAX(état,+, ) return action dans SUCCESSEURS(état) ayant la valeur v function VALEUR-MAX(état,α,β) if TEST-TERMINAL(état) then return UTILITÉ(état) v for a,s in SUCCESSEURS(état) do v MAX(v,VALEUR-MIN(s,α,β)) if v β then return v α MAX(α,v) return v function VALEUR-MIN(état,α,β) if TEST-TERMINAL(état) then return UTILITÉ(état) v + for a,s in SUCCESSEURS(état) do v MIN(v,VALEUR-MAX(s,α,β)) if v α then return v β MIN(β,v) return v

Recherche alpha-bêta L'efficacité dépend de l'ordre des successeurs Si les nœuds sont «bien» ordonnés Temps : O(bm/2) pour sélectionner le meilleur coup Branchement effectif : b au lieu de b Ordre aléatoire : O(b 3m/4)

Implémentation negamax function RECHERCHE-ALPHA-BÊTA(état) v VALEUR-NEGAMAX(état,+, ) return action dans SUCCESSEURS(état) ayant la valeur v function VALEUR-NEGAMAX(état,α,β) if TEST-TERMINAL(état) then return UTILITÉ(état) v for a,s in SUCCESSEURS(état) do v MAX(v,VALEUR-NEGAMAX(s,β,α)) if v β then return v α MAX(α,v) return v

Transpositions Permutations d'une séquence de coups qui aboutissent à la même position Table des transpositions : table de hachage qui mémorise les positions déjà rencontrées

Décisions imparfaites en temps réel

Fonctions d'évaluation Estimation de l'utilité espérée du jeu pour une position donnée Ordonner les états terminaux comme la vraie fonction d'utilité Calcul rapide Bonne chances de victoire pour les états non terminaux

Fonctions d'évaluation Calcul de différents attributs d'un état Catégorie d'états Mêmes valeurs pour tous les attributs Valeur espérée : moyenne pondérée des issues possibles (basée sur l'expérience) Combinaison linéaire des attributs pour chaque état EVAL s =w 1 f 1 s w n f n s = i=1 n w i f i s

Recherche avec arrêt Cut-off Modification de l'algorithme alpha-bêta Fixer une profondeur limite Incrémenter la profondeur courante à chaque appel récursif Remplacer la condition d'arrêt de l'exploration if TEST-TERMINAL(état) then return UTILITÉ(état) if TEST-CUTOFF(état,profondeur) then return ÉVAL(état) Autre méthode : appliquer l'exploration itérative en profondeur

Recherche avec arrêt

Recherche avec arrêt Effet d'horizon Recherche de stabilité (quiescence search) Extensions singulières

Élagage en avant Forward pruning Suppression immédiate de certains coups sans autre considération Exploration en faisceau (beam search) Variante probabiliste

Jeux comportant une part de hasard

Valeur minimax espérée Nœuds de hasard dans l'arbre de jeu EXPECTIMINIMAX(n) = UTILITÉ(n) si n nœud terminal max s succ(n) EXPECTIMINIMAX(s) si n nœud MAX min s succ(n) EXPECTIMINIMAX(s) si n nœud MIN s succ(n) P(s) EXPECTIMINIMAX(s) si HASARD Complexité en temps : O(b mp m ), avec p facteur de hasard

État de l'art

Programmes de jeux «Les jeux sont à l'ia ce que la F1 est à l'industrie automobile.» Premiers champions du monde non humains Dames 8 x 8 : Chinook (1994) Échecs : Deep Blue (1997) Othello : Logistello (1997) Go : niveau amateur Backgammon : prise en compte de l'incertitude Bridge : information imparfaite

Deep Blue Superordinateur IBM : 30 processeurs RS/6000 et 480 processeurs VLSI Exploration alpha-bêta itérative en profondeur : 126 millions de nœuds par seconde, 30 milliards de positions par coup, profondeur 14 Table de transpositions Extensions au-delà de la profondeur limite (jusqu'à 40 coups) Fonction d'évaluation : plus de 8 000 attributs Bibliothèque d'ouvertures : 4 000 positions Base de données de 700 000 parties de niveau grand maître Fins de parties : base de données avec toutes les positions résolues à cinq pièces (voire six) Heuristique du coup nul : borne inférieure sur la valeur d'une position

Conclusion Approche dominante : minimax/alpha-bêta L'efficacité des machines repose essentiellement sur des capacités de calcul phénoménales Les humains jouent avec des objectifs