Le Jeu et l’intelligence artificielle Oana Frunza University of Ottawa 4 mai, 2009
Les jeux comme un problème de recherche Qu'est-ce qu’on cherche? solution, étapes pour arriver à la solution Où on cherche? dans une espace de recherche - ensemble d’objets (solution partiale) dans laquelle la recherche s’effectue (structure en arbre) Comme on cherche? dans un espace de recherche, les objets sont reliés les uns aux autres par des opérateurs qui transforment un objet en un autre
La plus importante étape Représentation comment mettre en évidence les caractéristiques essentielles d’un problème pour les rendre accessibles à une procédure de résolution de problèmes graphes et machines d’états calcul propositionnel
Graphe d’états objectes opérateurs (actions) espace de recherche
Comme on cherche? Application systématique des opérateurs Vérification, après chaque transformation pour voir si l’objet qui résulte est un élément de l’ensemble des buts finaux. Recherche Aveugle: Une méthode de recherche qui n’est pas guidée par des informations sur le domaine. Mesure pour un espace: Un système de calcul de mesure de distance entre deux objets dans l’espace de recherche où la mesure de la valeur d’un objet donné dans cet espace. Recherche Heuristique: Une méthode de recherche qui emploie une mesure pour guider la recherche.
La Recherche Heuristique Heuristiques (Greek heuriskein = trouver, découvrir): « l’étude de méthodes et règles pour la découverte et l’invention". Ils sont des espaces de recherche trop grande pour une recherche aveugle : pour chéquiers il est 1040 chemins, échecs 10120 En utilisant des heuristiques on diminue l’espace de recherche, on accélérer la recherche – on doit utilise une fonction pour grade les objecte/les prochaines actions http://www.site.uottawa.ca/~nat/Courses/csi4506_Automne2004/
Note Dans la vie réelle on utilise aussi l’heuristique: Exemple: Au supermarché, on choisit la queue la moins longue ou alors on choisit la queue dans laquelle les clients on le plus petit nombre d’objets dans leur panier. Avez-vous d’autres exemples?
Nouvelle Stratégie pour la recherche heuristique – A* A* - un algorithme qui garantit une solution optimale A* - demande une estimation limite inférieure pour mesurer la distance entre aucun nœud et la solution finale
Le Jeu 8-Puzzle
État initial = la planche initiale État final = la planche finale (solution) Regardant la planche initiale trouve l’état finale La Recherche Commence avec l’état initial = état courant (x) Pour l’état courent générer tous les mouvements possibles compter les carreaux mal assortis – fonction m(x) et la profondeur de l’arbre de recherche – fonction d(x) Calculer la fonction heuristique f(x) = m(x) + d(x) Sélecter le prochain état e avec la valeur minimale de f(x) État courant = prochain état Répéter jusqu‘à la solution finale
Mouvements légaux: Déplace le <blanc> vers: État initiale État final 2 8 3 1 6 4 7 5 1 2 3 8 4 7 6 5 Mouvements légaux: Déplace le <blanc> vers: - le haut - la droite - le bas - la gauche Contraintes: Les mouvements en diagonal sont interdits
8-puzzle avec heuristique A* A, ..., N: mouvements m = mal assortis carreaux d = niveau dans l’arbre (profondeur) f(x) = m(x) + d(x)
8-puzzle avec heuristique A* A, ..., N: mouvements m = mal assortis carreaux d = niveau dans l’arbre (profondeur) f(x) = m(x) + d(x)
8-puzzle avec heuristique A* A, ..., N: mouvements m = mal assortis carreaux d = niveau dans l’arbre (profondeur) f(x) = m(x) + d(x)
8-puzzle avec heuristique A* A, ..., N: mouvements m = mal assortis carreaux d = niveau dans l’arbre (profondeur) f(x) = m(x) + d(x)
8-puzzle avec heuristique A* A, ..., N: mouvements m = mal assortis carreaux d = niveau dans l’arbre (profondeur) f(x) = m(x) + d(x)
8-puzzle avec heuristique A* A, ..., N: mouvements m = mal assortis carreaux d = niveau dans l’arbre (profondeur) f(x) = m(x) + d(x)
8-puzzle avec heuristique A* A, ..., N: mouvements m = mal assortis carreaux d = niveau dans l’arbre (profondeur) f(x) = m(x) + d(x)
8-puzzle avec heuristique A* A, ..., N: mouvements m = mal assortis carreaux d = niveau dans l’arbre (profondeur) f(x) = m(x) + d(x)
8-puzzle avec heuristique A* A, ..., N: mouvements m = mal assortis carreaux d = niveau dans l’arbre (profondeur) f(x) = m(x) + d(x)
8-puzzle avec heuristique A* A, ..., N: mouvements m = mal assortis carreaux d = niveau dans l’arbre (profondeur) f(x) = m(x) + d(x)
État final 8-puzzle avec heuristique A* A, ..., N: mouvements m = mal assortis carreaux d = niveau dans l’arbre (profondeur) f(x) = m(x) + d(x) État final
Votre tour..! Allez: http://www.robofesta-europe.org/britain/resources/RFonly8/ Jouer 5 fois le jeu (sans l’heuristique A*). Pour chaque fois compter combien de mouvements vous a pris pour trouver la solution âpre jouer autre 5 fois le jeu, mais avec la technique A* (utilise un papier pour tracer l’arbre). Aussi pour chaque fois compter combien de mouvements vous a pris pour trouver la solution Comparer les 2 manches de comptes. Quelle technique est le mieux (moins des mouvements), vous ou A*? http://www.dc.fi.udc.es/lidia/mariano/demos/8puzzle/EightPuzzle.html