Top Banner
4 – Exploration en situation d’adversité Faculté des Sciences Département d’Informatique Introduction à l’Intelligence artificielle L3 Informatique 2019/2020 http://IntroIA.wordpress.com Amine Brikci-Nigassa [email protected] Ces diapos sont librement adaptées de celles de Dan Klein et Pieter Abbeel : CS188 Intro to AI (University of California, Berkeley - ai.berkeley.edu)
48

4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Mar 23, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

4 – Exploration en situation d’adversité

Faculté des Sciences Département d’Informatique

Introduction à l’Intelligence artificielle

L3 Informatique 2019/2020

http://IntroIA.wordpress.com Amine Brikci-Nigassa

[email protected]

Ces diapos sont librement adaptées de celles de Dan Klein et Pieter Abbeel : CS188 Intro to AI (University of California, Berkeley - ai.berkeley.edu)

Page 2: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Les diapos de ce cours sont adaptées de :CS 188: Artificial Intelligence

Adversarial Search

Instructors: Pieter Abbeel & Dan KleinUniversity of California, Berkeley

[These slides were created by Dan Klein and Pieter Abbeel for CS188 Intro to AI at UC Berkeley (ai.berkeley.edu).]

qui se basent sur le livre de Stuart Russell et Peter Norvig...

Page 3: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Programmes de Jeu : État de l’Art

Jeu de Dames (anglaises) :1950 : 1er programme joueur. 1994 : 1er programme champion : Chinook met fin aux 40 ans de reigne du champion humain Marion Tinsley. 2007 : Le jeu est résolu !

Échecs : 1997 : Deep Blue bat le champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta. Les programmes actuels sont encore meilleurs...

Jeu de Go : Les champions humains commencent à êtré défiés par les machines. Dans le go, b > 300 !

Page 4: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Jeu de Dames (anglaises) :1950 : 1er programme joueur. 1994 : 1er programme champion : Chinook met fin aux 40 ans de reigne du champion humain Marion Tinsley. 2007 : Le jeu est résolu !

Échecs : 1997 : Deep Blue bat le champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta. Les programmes actuels sont encore meilleurs...

Jeu de Go : 2016 : AlphaGo bat le champion humain Lee Sedol.2017 : Il bat le champion du monde Ke Jie.Il utilise une exploration en arbre de Monte Carlo, avec apprentissage.

Pacman

Programmes de Jeu : État de l’Art

Page 5: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Comportement calculé

Page 6: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Demo : Mystery Pacman

Page 7: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Jeux en situation d’adversité

Page 8: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

De nombreux types de jeux différents !

Axes :

Déterministe ou stochastique ?

Un, deux ou plusieurs joueurs ?

Somme nulle ?

Information parfaite (peut-on voir l'état) ?

On veut des algorithmes pour calculer une stratégie (politique) qui recommande un déplacement pour chaque état.

Types de Jeux

Page 9: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Jeux Déterministes

Une définition formelle : États: S (départ à s0)

Joueurs: P={1...N} (chacun son tour en général) Actions: A (dépendent du joueur/de l’état) Fonction de Transition: SxA S Test Terminal: S {t,f} Utilité Terminale: SxP R

La Solution pour un joueur est une politique : S A

Page 10: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Jeux à Somme Nulle

Jeux à Somme Nulle

Les agents ont des utilités (valeurs des gains) opposées.

Fait penser à une valeur unique que l'un maximise et l'autre minimise.

Pure competition, en adversité

Jeux Généraux Les agents ont des utilités (valeurs

des gains) indépendantes. Coopération, indifférence,

compétition, etc. sont toutes possibles

Nous reviendrons plus tard sur les jeux à somme non nulle.

Page 11: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Exploration en Situation d’Adversité

Page 12: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Arbres pour un Agent Unique

8

2 0 2 6 4 6… …

Page 13: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Valeur d’un État

États Non Terminaux :

8

2 0 2 6 4 6… …États Terminaux :V(s) = connu

Valeur d’un état : Meilleur gain

(utilité) atteignable à partir de cet état.

Page 14: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Arbres de Jeux avec Adversité

-20 -8 -18 -5 -10 +4… … -20 +8

Page 15: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Valeurs Minimax

+8-10-5-8

États sous Contrôle de l’Agent :

États terminaux :

États sous Contrôle de l’Adversaire

V(s) = connu

Page 16: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Arbre de Jeu du Morpion (Tic-Tac-Toe)

Page 17: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Exploration en Adversité (Minimax)

Jeux à somme nulle déterministes : Morpion, échecs, dames Un joueur maximise le résultat L’autre minimise le résultat

Exploration Minimax : Un arbre d’espace d’états Les joueurs jouent tour à tour Calculer la valeur minimax de

chaque nœud : la meilleure utilité réalisable contre un adversaire rationnel (optimal)

8 2 5 6

max

min2 5

5

Valeurs terminales :partie du jeu

Valeurs minimax :calculées récursivement

Page 18: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Minimax : Implémentation

def val_min(état):v ← +∞pour chaque successeur de état:

v ← min(v, val_max(successeur))

retourner v

def val_max(état):v ← -∞pour chaque successeur de état:

v ← max(v, val_min(successeur))

retourner v

Page 19: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

def valeur(état):si état est terminal : retourner utilité(état)si le prochain agent est MAX : retourner val_max(état)si le prochain agent est MIN : retourner val_min(état)

def val_min(état):v ← +∞pour chaque successeur de état: v ← min(v, valeur(successeur))

retourner v

def val_max(état):v ← -∞pour chaque successeur de état:

v ← max(v, valeur(successeur))

retourner v

Minimax : Implémentation (dispatchée)

Page 20: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Minimax : Exemple

12 8 5 23 2 144 6

Page 21: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Minimax : Propriétés

Optimal contre un joueur parfait. Sinon ?

10 10 9 100

max

min

Page 22: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Video of Demo Min vs. Exp (Min)

Chaque déplacement : -1 pointChaque bille mangée : +10 pointsFin du jeu : Toutes les billes mangées : +500 Collision avec fantôme : -500

Page 23: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Video of Demo Min vs. Exp (Exp)

Chaque déplacement : -1 pointChaque bille mangée : +10 pointsFin du jeu : Toutes les billes mangées : +500 Collision avec fantôme : -500

Page 24: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Minimax : Efficacité

Quelle est l’efficacité de minimax ? Tout comme DFS (exhaustive) Temps : O(bm) Espace : O(bm)

Exemple : Jeu d’échecs, b 35, m 100 La solution exacte est totalement irréalisable. Mais, a-t-on besoin d’explorer tout l’arbre ?

Page 25: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Ressources Limitées

Page 26: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Élagage de l’Arbre de Jeu

Page 27: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Minimax : Exemple

12 8 5 23 2 144 6

Page 28: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Minimax : Élagage

12 8 5 23 2 14

Page 29: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Élagage Alpha-Bêta

Configuration générale (version MIN) On veut calculer la VALEUR MIN à un nœud n

On fait une itération sur les nœuds fils de n

La valeur estimée pour n diminue pendant

l’itération

Qui a besoin de la valeur de n ? MAX

Soit a la meilleure valeur que MAX peut obtenir à

n'importe quel nœud de choix le long du chemin

courant depuis la racine

Si n devient pire que a, MAX l’évitera, donc on peut

arrêter d’examiner les autres fils de n (c’est déjà

assez mauvais pour ne pas être joué)

La version MAX est la symétrique

MAX

MIN

MAX

MIN

a

n

Page 30: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Alpha-Bêta : Implémentation

def valeur_min(état , α, β):

v ← +∞ Pour chaque successeur s de état : v ← min(v, valeur(s, α, β)) si v ≤ α retourner v β ← min(β, v) retourner v

def valeur_max(état, α, β): v ← –∞ Pour chaque successeur s de état : v ← max(v, valeur(s, α, β)) si v ≥ β retourner v α ← max(α, v) retourner v

α : le meilleur choix pour MAX sur le chemin vers la racineβ : le meilleur choix pour MIN sur le chemin vers la racine

Page 31: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Propriétés de l’élagage Alpha-Bêta

Cet élagage n’a pas d’effet sur la valeur minimax calculée pour la racine !

Les valeurs des nœuds intermédiaires peuvent être fausses Important : les nœuds fils de la racine peuvent avoir la mauvaise valeur Ainsi la version la plus naïve ne vous laissera pas sélectionner l’action

Bien ordonner les nœuds fils améliore l’efficacité de l’élagage

Avec l’ordre « parfait » : La complexité temporelle tombe à O(bm/2) La profondeur résoluble est doublée ! L’exploration complète dans le jeu d’échecs (par ex.) reste sans espoir…

Ceci est un exemple de métaraisonnement (raisonnement sur le raisonnement: calcul de ce qu’il faut calculer)

10 10 0

max

min

Page 32: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Alpha-Bêta : Quiz

Page 33: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Alpha-Bêta : Quiz 2

Page 34: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Ressources Limitées

Page 35: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Ressources Limitées Problème : Dans les jeux réalistes, l’exploration ne peut pas

atteindre les feuilles (nœuds terminaux) !

Solution : Exploration à profondeur limitée À la place, explorer seulement jusqu’à une profondeur

limitée dans l’arbre Remplacer les utilités terminales avec une fonction

d’évaluation pour les positions non-terminales

Exemple : Supposez qu’on a 100 secondes, et qu’on peut explorer

10K nœuds / s Ainsi on peut tester 1M nœuds / coup - atteint une profondeur de 8 environ – programme de

jeu d’échecs décent

La garantie d’un jeu optimal a disparu

Explorer plus de coups fait une GRANDE différence

Utiliser la profondeur itérative pour un algorithme anytime

? ? ? ?

-1 -2 4 9

4

min

max

-2 4

Page 36: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Démo : Thrashing (d=2)

Page 37: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Pourquoi Pacman Reste Affamé

Le danger des agents replanificateurs ! Il sait que son score augmentera s’il mange la bille maintenant (gauche, droite) Il sait que son score augmentera autant s’il mange la bille plus tard (droite,

gauche) Il n’y a pas de chances de marquer des points après avoir mangé la bille (dans la

limite de l’horizon, 2 ici) Les deux options semblent aussi bonnes : il peut aller à gauche, puis revenir à

droite au prochain tour de replanification !

Page 38: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Démo : Thrashing -- Réparé (d=2)

Page 39: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Fonctions d’Évaluation

Page 40: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Les fonctions d’évaluation estiment le score des nœuds non terminaux dans l’exploration en profondeur limitée

Fonction idéale : renvoie la valeur minimax réelle de la position En pratique : souvent une somme linéaire pondérée des attributs :

Par ex. : f1(s) = (nombre de reines blanches – nombre de reines noires), etc.

Fonctions d’Évaluation

Page 41: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Evaluation for Pacman

Page 42: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Démo Smart Ghosts (Coordination)

Page 43: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Démo Smart Ghosts (Coordination) – Zoomée

Page 44: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

La Profondeur a son Importance

Les fonctions d'évaluation sont toujours imparfaites.

Plus la fonction d'évaluation est enfouie profondément dans l'arbre, moins la qualité de la fonction d'évaluation est importante.

Il s’agit d’un exemple important de compromis entre la complexité des fonctionnalités et la complexité du calcul.

Page 45: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Démo : Profondeur Limitée (2)

Page 46: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Démo : Profondeur Limitée (10)

Page 47: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

Synergies entre Fonction d'évaluation et Alpha-bêta ?

Alpha-Bêta : la quantité d'élagage dépend de I'ordre de développement. La fonction d'évaluation peut fournir des indications pour développer

d'abord les nœuds les plus prometteurs (ce qui rend plus probable qu'il existe déjà une bonne alternative sur le chemin vers la racine). (assez similaire au rôle de l’heuristique A*)

Alpha-Bêta : (rôles similaires de min-max échangés) La valeur d’un nœud min ne fera que diminuer Quand la valeur d’un nœud min est plus basse que la meilleure option

pour max sur le chemin vers la racine, on peut élaguer Donc : SI la fonction d’évaluation fournit une limite sup. de la valeur à un

nœud min, et la limite sup. déjà plus basse que la meilleure option pour max sur le chemin vers la racine ALORS on peut élaguer

Page 48: 4 – Exploration en situation d’adversité · 2019-12-19 · champion humain Gary Kasparov. Deep Blue examinait 200M positions par seconde, avec un algorithme d’exploration alpha-beta.

La prochaine fois : Incertitude !