Chapitre II : Résolution de problèmes Résolution de problèmes

Slides:



Advertisements
Présentations similaires
Théorie des graphes.
Advertisements

Chap. 4 Recherche en Table
Chapitre annexe. Récursivité
Algorithmes et structures de données avancés
Structures de données et complexité
Introduction à l’Algorithmique
Calculs de complexité d'algorithmes
MATHEMATIQUES COMPETENCE 3 :
Problème de 8 dames: Sachant que dans un jeu des échecs, une dame peut pendre toute pièce se trouvant sur la colonne ou sur la ligne ou sur les diagonales.
Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude.
Séminaire Florin Périer Alain Gély LIMOS
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Chap. 1 INTRODUCTION Beaucoup de problèmes de la vie courante, tels la gestion de réseaux de communication ou l'ordonnancement de tâches, correspondent.
INTRODUCTION.
Plus rapide chemin bicritère : un problème d’aménagement du territoire
MasterMind en spécialité i.s.n.
Utilisation des tableaux
UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D’ORAN
Structures de données linéaires
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Les structures de données arborescentes
Algorithmes Branch & Bound
Heuristiques A. Introduction B. Recherche d ’une branche
GPA750 – Ordonnancement des systèmes de production aéronautique
Pr ZEGOUR Djamel Eddine
Les fichiers indexés (Les B-arbres)
LES ARBRES IUP 2 Génie Informatique
Algorithme de Bellman-Ford
Structures de données IFT-2000
Structures de données IFT-2000
IFT Complexité et NP-complétude
CSI 4506: Introduction à l’intelligence artificielle

Algorithmes d ’approximation
Recherche Opérationnelle
Programmation dynamique
GPA750 – Gestion de Projets
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
Transformations linéaires et sous-espaces associés
Pour le chemin le plus court pour tous les couples
Programmation linéaire en nombres entiers : les méthodes de troncature
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.

IFT Complexité et NP-complétude Chapitre 0 Rappels.

Heuristiques C. Recherche de la meilleure branche . Branch And Bound
Exploration systématique de graphes
Diviser pour résoudre A. Principe général B. Applications
ACADEMIE NAVALE DE MANZEL BOURGUIBA
Coupes efficaces pour la relaxation lagrangienne
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
ASI 3 Méthodes numériques pour l’ingénieur
Arbres et graphes.
D.E ZEGOUR Ecole Supérieure d’Informatique
les méthodes de recherche locale
Programmation dynamique
INTRODUCTION.
Programmation linéaire en nombres entiers
Algorithmes Branch & Bound
CSI 4506: Introduction à l’Intelligence Artificielle
Exploration systématique de graphes
Problème de double digestion
Recherches locales et méta-heuristiques
Le Jeu et l’intelligence artificielle
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
Cycle, Cocycle, Arbre et Arborescence
Transcription de la présentation:

Chapitre II : Résolution de problèmes Résolution de problèmes Intelligence Artificielle chapitre II Résolution de problèmes EPSI / Montpellier - Cycle CSII 2A EPSI/Montpellier Cycle CSII 2A Module Intelligence Artificielle

Résolution de problèmes Introduction La résolution de problèmes est le processus qui consiste à sélectionner et ordonnancer des actions élémentaires en séquences afin d'atteindre des buts donnés en respectant les contraintes d'un environnement donné. Composition du processus : un état initial (le problème à résoudre), un état final (la solution au problème), un ensemble d'actions élémentaires permettant de passer d'un état à un autre, Objectif du processus : Trouver une séquence d'actions à exécuter pour passer de l'état initial à l'état final

Résolution de problèmes Introduction Complexité du processus : A partir d'un état donné, on peut effectuer plusieurs actions élémentaires différentes qui débouchent sur des états différents. La méthode qui consiste à essayer successivement toutes les possibilités jusqu'à trouver une solution est une méthode de recherche fortement combinatoire On est souvent amené à choisir entre plusieurs choix ou à choisir la meilleur solution : problème d’optimisation combinatoire Apport de l’IA : L’IA apporte une solution à ce problème : les “ heuristiques ” : méthodes permettant de choisir en premier les actions ayant le plus de chance d'aboutir

Résolution de problèmes Types de domaines La démonstration de théorèmes Les jeux de stratégies (échec, dame) La planification : robotique  allocations de ressources emploi du temps

Résolution de problèmes Exemple de problème - Planification de chaîne de production Chaîne de production Atelier A Atelier B Atelier C Atelier D Capacité de production 5v/h/h 3v/h/h 2v/h/h 3v/h/h - Op1 : 8h-13h - Op2 : 8h-13h - Op3 : 9h-13h- Op4 : 10h-15h Ressources 30v en attente à 8h 0v en attente à 8h 0v en attente à 8h 0v en attente à 8h Etat initial Etablir l'emploi du temps indiquant heure par heure quels opérateurs sont affectés à chaque atelier, de telle sorte que le maximum de voitures soient passées par les 4 ateliers à la fin de la journée But

Résolution de problèmes Exemple de problème - Le voyageur de commerce Un voyageur de commerce partant d'une ville veut se rendre successivement dans un certain nombres de villes sans repasser deux fois dans la même ville et en revenant finalement à la ville de départ. On connaît les distances de ville à ville. Quel trajet doit-il effectuer de façon à minimiser la distance parcourue ? Ville K Ville A 120 160 160 140 Ville B 150 99 100 80 Ville D 180 Ville L 140 70 Ville C 211 EXPLOSION COMBINATOIRE 97 220 (n-1)!/2 configurations 181440 configurations pour n=10 466631x10150 configurations pour n=100 Ville E 101 Ville F

Résolution de problèmes Exemple de problème - Le Taquin n n+1 carreaux numérotés et un carreau "vide" sont disposés sur un damier dans une configuration donnée. L'objectif du taquin est de modifier la position des carreaux pour arriver à une configuration finale donnée. On autorise les changements de position seulement par glissement d'un des carreaux sur le carreau vide à partir d'une position adjacente orthogonale. Le but du jeu est de trouver la séquence la plus courte amenant à la configuration finale. Initial Final EXPLOSION COMBINATOIRE (n+1)! configurations 362880 configurations pour n = 8 933262x10152 configurations pour n=99

Résolution de problèmes Exemple de problème - La tour de Hanoï Trois disques (un grand, un moyen et un petit) sont enfilés dans cet ordre sur une tige A. Les déplacer sur une tige B sachant que les opérations autorisées consistent à prendre le disque de sommet de pile sur une tige donnée et le placer sur le disque de sommet de pile d'une autre tige (ou sur la tige seule s'il ne s'y trouve pas de disque). En cas d'empilement, un disque ne peut se poser que sur un disque plus large. On peut utiliser une tige intermédiaire C. EXPLOSION COMBINATOIRE 2n -1configurations 7 configurations pour n = 3 264 -1 configurations pour n=64 (soit 238 années (1s/déplacement))

Résolution de problèmes Exemple de problème - Les n reines Mettre n reines sur un échiquier de taille nxn sans qu’aucune reine ne soit en prise par une autre (n>3) EXPLOSION COMBINATOIRE n! permutations 40320 permutations et 92 solutions différentes pour n = 8

Résolution de problèmes Complexité Complexité d’un algorithme * une mesure de temps (complexité en temps) ou d'espace mémoire (complexité en espace ) utilisé par un algorithme en fonction de la taille des données * la complexité en temps d’un algorithme est le nombre d'étapes de calcul qu ’il nécessite, et sa complexité en espace comme la taille de mémoire nécessaire pour stocker les données intermédiaires au cours de son exécution; ces grandeurs sont indiquées en fonction de la taille des données du problème à résoudre, et généralement à une constante de proportionnalité près * seul l’ordre de grandeur du nombre d’opérations, noté O, est utilisé pour exprimer la complexité : O(f(n))

Résolution de problèmes Complexité principales classes de complexité d’algorithmes complexité logarithmique coût : O(log n) ex : recherche dichotomique dans un tableau trié complexité linéaire coût : O(n) ex : recherche du minimum d ’une liste de n éléments, calcul du produit scalaire de deux vecteurs de Rn complexité polynomiale coût : O(nk) (k : une constante > 1) ex : multiplication de deux matrice carrées d’ordre n : (O(n3)) complexité exponentielle coût : O(an) (n : une constante > 1) ex : tours de Hanoï, voyageur de commerce

Résolution de problèmes Complexité Complexité d’un problème La complexité (maximale) du meilleur algorithme connu pour le résoudre Classification des problèmes la classe P Classe des problèmes qu ’on peut résoudre en temps polynomial la classe E Classe des problèmes qu ’on peut résoudre en temps exponentiel la classe NP Classe des problèmes qu ’on peut vérifier en temps polynomial et résoudre en temps exponentiel (problèmes non déterministes polynomiaux)

Résolution de problèmes Représentation des problèmes Espace d’états Un problème est défini par un espace d’états qui est l'ensemble des états possibles de ce problèmes Exemples d ’états : * une configuration de pièces dans un jeu d ’échecs * un calendrier partiel ou complet des matches de tennis * une partie de preuve ou une preuve complète d'un démonstrateur de théorèmes Opérateurs Les états d’un problème sont reliés les uns aux autres par des opérateurs qui transforment un état dans un autre Exemples d’opérateurs : * un coup légal aux échecs qui transforme la configuration des pièces dans une autre * l'ajout d'un match de tennis dans le problème de planification * l'application d'une règle d'inférence dans le démonstrateur de théorèmes

Résolution de problèmes Représentation des problèmes But Dans la résolution d’un problème, on a un but qui décrit ce que l'on cherche. Un but est un sous-ensemble d’états de l’espace d’états Exemples de buts : * dans le jeu d'échecs, le but est l'ensemble des configurations de pièces qui mettent votre adversaire échec et mat * Pour le démonstrateur de théorèmes ce sont toutes les preuves dont la dernière ligne correspond à la formule à prouver

Résolution de problèmes Représentation des problèmes - Graphe d’états et espace de recherche * En IA, on utilise les graphes pour représenter l’espace d’états d’un problème (graphe d’états) chaque nœud représente un état chacun des arcs représente un opérateur (une transition) faisant passer d'un état à un autre le but est un nœud particulier du graphe * La résolution d’un problème revient à explorer Le graphe dans la recherche du nœud but (l’espace de recherche)

Résolution de problèmes Représentation des problèmes - Réduction de problèmes et graphe ET/OU * Lorsque on a un problème principal qui peut se décomposer en sous problèmes plus faciles à résoudre, résoudre ce problème principal revient à résoudre tous les sous problèmes qu’il le compose * La technique qui consiste à résoudre un but en résolvant ses sous-buts est appelé réduction de problème * certains buts ne peuvent être atteints que si leurs sous-buts immédiats le sont tous (nœud ET) * les autres buts sont atteints si l'un au moins de leurs sous-buts immédiats est atteint (nœud OU) * le graphe formé de nœuds ET et OU est appelé graphe ET/OU

Résolution de problèmes Représentation des problèmes Composition d’un système de résolution - Des structures de données organisés en arbre ou en graphe Des opérateurs définies par leurs conditions d'application et leur action Une structure de contrôle mettant en œuvre la stratégie de recherche dans l’arbre ou le graphe (méthodes de recherche ou de résolution)

Résolution de problèmes Raisonnement Caractéristiques 1) Le système doit-il trouver une solution à partir de ce qu'il connaît du problème ou peut-il y avoir une interaction avec l'utilisateur 2) Faut-il se contenter d'une solution sous-optimale mais plus facilement et rapidement accessible 3) Peut-on annuler une action décidée au cours de la réflexion une fois qu'elle a été exécutée 4) Est-ce qu'on peut prévoir exactement l'effet d'une action sur l'état courant du problème 5) Est-ce que le problème peut se décomposer en sous problèmes plus faciles à résoudre et est-ce que les sous problèmes sont indépendants ou non. 6) Quelles sont les connaissances minimales requises pour aboutir à la solution 7) Est-ce qu’une solution est garantie ?, est-ce que la recherche terminera ? quelle est la complexité de la recherche en temps et en espace ?

Résolution de problèmes Raisonnement Caractéristiques 1) Le système doit-il trouver une solution à partir de ce qu'il connaît du problème ou peut-il y avoir une interaction avec l'utilisateur 2) Faut-il se contenter d'une solution sous-optimale mais plus facilement et rapidement accessible 3) Peut-on annuler une action décidée au cours de la réflexion une fois qu'elle a été exécutée 4) Est-ce qu'on peut prévoir exactement l'effet d'une action sur l'état courant du problème 5) Est-ce que le problème peut se décomposer en sous problèmes plus faciles à résoudre et est-ce que les sous problèmes sont indépendants ou non. 6) Quelles sont les connaissances minimales requises pour aboutir à la solution 7) Est-ce qu’une solution est garantie ?, est-ce que la recherche terminera ? quelle est la complexité de la recherche en temps et en espace ?

Résolution de problèmes Méthodes de recherche Méthodes aveugles : énumération exhaustive de tous les états de l’espace de recherche Heuristiques : construction de chemins minimaux dans l ’exploration de l ’espace de recherche basée sur des critères, des principes, ou des méthodes permettant de faire les choix les plus efficaces pour atteindre le but fixé

Résolution de problèmes Méthodes de recherche Méthodes aveugles : Recherche en profondeur Recherche en largeur Recherche en profondeur limitée Recherche en approfondissement itératif Méthodes heuristiques : Recherche en profondeur ordonné Recherche du meilleur d ’abord Algorithme A*

Résolution de problèmes Méthodes de recherche Critères d’évaluation : Complétude : solution garantie si elle existe Optimalisé : meilleur solution garantie Complexité en espace : espace mémoire nécessaire pour effectuer la recherche Complexité en temps : temps nécessaire pour effectuer la recherche La complexité est mesuré selon les 3 critères : 1. b : facteur de branchement (nombre de descendants/nœuds) maximum du graphe d’états 2. d : profondeur à la quelle se trouve le (meilleur) nœud solution 3. m : profondeur maximale du graphe

Résolution de problèmes Méthodes de recherche aveugle Profondeur d ’abord (LIFO) : Principe : la priorité est donné aux nœuds de niveaux les plus profonds du graphe de recherche Exemple E0 1 13 7 E1 E2 E3 14 2 5 6 8 12 9 E4 E5 E6 E7 E8 E9 E10 3 4 10 11 E11 E12 E13 E14 14 situations explorées

Résolution de problèmes Méthodes de recherche aveugle Profondeur d ’abord : Algorithme : Début 1 empiler la racine 2 répéter Si sommet de pile <>nœud but alors - dépiler le premier élément - empiler ses fils s'il en a du plus à droite au plus à gauche Sinon ne rien faire Jusqu'à ce que la pile soit vide ou sommet pile =nœud but 3 la recherche aboutit si lenœud but a été atteint. Fin

Résolution de problèmes Méthodes de recherche aveugle Profondeur d ’abord : Propriétés : Complétude : Non si m tends vers l’infini Complexité en temps : O(bm) Complexité en espace : O(b*m) Optimalité : Non

Résolution de problèmes Méthodes de recherche aveugle Largeur d’abord (FIFO) : Principe : la priorité est donné aux nœuds de niveaux les moins profonds du graphe de recherche Exemple E0 1 3 2 E1 E2 E3 10 4 5 6 7 9 8 E4 E5 E6 E7 E8 E9 E10 10 situations explorées

Résolution de problèmes Méthodes de recherche aveugle Largeur d ’abord : Algorithme : Début 1 empiler la racine 2 répéter Si sommet de pile <>nœud but alors - dépiler le premier élément - empiler ses fils s'il en a du plus à gauche au plus à droite Sinon ne rien faire Jusqu'à ce que la pile soit vide ou sommet pile =nœud but 3 la recherche aboutit si lenœud but a été atteint. Fin

Résolution de problèmes Méthodes de recherche aveugle Largeur d’abord : Propriétés : Complétude : Non si b tends vers l’infini Complexité en temps : O(bd) Complexité en espace : O(bd) Optimalité : Non Exemple: - b = 10 - production de nœuds : 1000 /s -espace mémoire : 100 octet/noeud

Résolution de problèmes Méthodes de recherche aveugle Profondeur limitée : Principe : idem que profondeur d ’abord avec une limite de profondeur d ’exploration L Exemple avec une profondeur limitée L=2 E0 1 9 5 E1 E2 E3 10 2 3 4 6 8 7 E4 E5 E6 E7 E8 E9 E10

Résolution de problèmes Méthodes de recherche aveugle Profondeur Limitée : Algorithme : Début 1 empiler la racine 2 répéter Si sommet de pile <>nœud but alors - dépiler le premier élément - empiler ses fils s'il en a du plus à droite au plus à gauche Sinon ne rien faire Jusqu'à ce que la pile soit vide ou sommet pile =nœud but ou limite profondeur atteinte 3 la recherche aboutit si le nœud but a été atteint. Fin

Résolution de problèmes Méthodes de recherche aveugle Profondeur Limitée : Propriétés : Complétude : Oui si L >=d Complexité en temps : O(bL) Complexité en espace : O(b*L) Optimalité : Non

Résolution de problèmes Méthodes de recherche aveugle Approfondissement itératif : Principe : recherche en profondeur, limitée à la profondeur 1, puis 2, ... jusqu'à l'obtention d'une solution (ou l'échec de la recherche) Exemple 1,4 3,12 2,8 E1 E2 E3 13 5 6 7 9 11 10 E4 E5 E6 E7 E8 E9 E10

Résolution de problèmes Méthodes de recherche aveugle Approfondissement itératif : Propriétés : Complétude : Oui Complexité en temps : O(bd) Complexité en espace : O(b*d) Optimalité : Non

Résolution de problèmes Méthodes de recherche aveugle Conclusions : Les recherches en largeur garantissent de trouver la solution (si elle existe) et de trouver le chemin le plus court au but Les recherches en largeur demandent un espace mémoire qui augmente exponentiellement, car elles gardent tous enfants au même niveau Les recherches en profondeur sont très efficace dans les cas où le but est loin de la racine, et les branches sont arrangées de gauche à droite par probabilité de solution Les recherches en profondeur peuvent se perdre dans une branche sans fin et parfois se retrouve en boucle infinie Les recherches aveugles sont caractérisées par une taille souvent rédhibitoire des arborescences et une très forte complexité des algorithmes

Résolution de problèmes Méthodes de recherche heuristique Fonction heuristique h : E   - un état e  E (espace d'états) --> un nombre h(e)   - h(e) est (généralement) une estimation du rapport coût/bénéfice qu'il y a à étendre le chemin courant en passant par e. - contrainte : h(solution) = 0 A h(e1) = 0.8 h(e2) = 2 e1 e2 e3 h(e3) = 1.6

Résolution de problèmes Méthodes de recherche heuristique Exemples de fonction heuristique Problème des 8 reines Heuristique : laisser un plus grand nombre de cases non attaquables dans la partie restante de l'échiquier pour garder le plus de choix possibles pour les ajouts de reines futures

Résolution de problèmes Méthodes de recherche heuristique Exemples de fonction heuristique Problème des 8 reines nombre de cases non attaquables : 8 h(A) = 8

Résolution de problèmes Méthodes de recherche heuristique Exemples de fonction heuristique Problème des 8 reines nombre de cases non attaquables : 9 h(B) = 9

Résolution de problèmes Méthodes de recherche heuristique Exemples de fonction heuristique Problème des 8 reines nombre de cases non attaquables : 10 h(C) = 10 :meilleure solution

Résolution de problèmes Méthodes de recherche heuristique Exemples de fonction heuristique Problème du taquin 3x3 Heuristique : nombre de carreaux mal placés

Résolution de problèmes VA Méthodes de recherche heuristique Profondeur ordonnée : Principe : Approfondissement des branches jusqu'a leur extrémité, dans l'ordre inverse de leur distance au but 366 329 374 250 VL VK VB 366 380 190 178 VA VM VC VD 50 Heuristique : distance à vol d’oiseau VE 152 Meilleur chemin : VA>VB>VC>VF VF 70

Résolution de problèmes Méthodes de recherche heuristique Profondeur ordonnée : Algorithme : Début 1 empiler la racine 2 répéter Si sommet de pile <>nœud but alors - dépiler le premier élément - empiler ses fils s'il en a dans l ’ordre inverse de leur distance au but Sinon ne rien faire Jusqu'à ce que la pile soit vide ou sommet pile = nœud but 3 la recherche aboutit si le nœud but a été atteint Fin

Résolution de problèmes Méthodes de recherche heuristique Meilleur premier : Principe : Dès que l'on rencontre un chemin meilleur qu'auparavant, c'est celui là que l ’on approfondit Heuristique : proximité du but

Résolution de problèmes Méthodes de recherche heuristique Meilleur premier : Algorithme : Début 1 empiler la racine 2 répéter Si sommet de pile <>nœud but alors - dépiler le premier élément - empiler ses fils s'il en a dans la file et trier la pile entière par ordre croissant des distances calculées au but Sinon ne rien faire Jusqu'à ce que la pile soit vide ou sommet pile = nœud but 3 la recherche aboutit si le nœud but a été atteint Fin

Résolution de problèmes Méthodes de recherche heuristique Meilleur premier : Propriétés : Complétude : Non Complexité en temps : O(bm) Complexité en espace : O(bm) Optimalité : Non

Résolution de problèmes Méthodes de recherche heuristique Algorithme A* : Principe : améliorer l’algorithme du “ Meilleur premier ” en calculant le plus court chemin pour passer d'un état initial à un état final Soient : * n0 : la racine du graphe * G : le nœud solution * c(ni,nj) : le coût pour aller du nœud ni au nœud nj On définit - g (n) = c(n0,n) : le coût pour aller du nœud racine n0 au nœud n - h (n) = c(n,G) : l ’estimation heuristique du coût pour aller du nœud n au nœud solution G On obtient alors la fonction d ’évaluation du coût du chemin en passant par le noeud n : f(n) = g(n) + h(n)

Résolution de problèmes Méthodes de recherche heuristique Algorithme A* : Exemple

Résolution de problèmes Méthodes de recherche heuristique Algorithme A* : Définitions - Heuristique consistante : Pour tout x, pour tout y descendant de x : h (x) <= h (y) + c (x,y) - Heuristique admissible : Pour tout x, h (x) <= h* (x) où h* (x) est la valeur optimale de x à G

Résolution de problèmes Méthodes de recherche heuristique Algorithme A* : Algorithme : Début Initialement, la file des chemins partiels contient le chemin d'ordre zéro, de longueur nulle et reliant la racine à nulle part 2. Repeter si le premier chemin de la file n'aboutit pas au but alors le supprimer de la file former les nouveaux chemins obtenus en prolongeant d'un niveau le chemin supprimé insérer ces nouveaux chemins dans la file le coût de chaque chemin étant la somme de la distance déjà parcourue et d'une estimation minorante de la distance restant à parcourir. trier la file par coûts croissants si deux chemins ou plus atteignent le même noeud ne conserver que celui ayant la longueur minimale finsi Jusqu'à ce que la file soit vide ou que le noeud but soit atteint

Résolution de problèmes Méthodes de recherche heuristique Algorithme A* : Propriétés : Complétude : Oui Complexité : linéaire si h est consistante Optimalité : Oui si h est admissible

Résolution de problèmes Programmes de jeux de stratégie Caractéristique des jeux : jeux de plateaux à 2 joueurs (les échecs, les dames, le tic-tac-toc), jeux à information totale, jeux avec deux adversaires effectuent à tour de rôle des déplacements, chacun considérant les défaillances de l'adversaire comme ses propres succès à chaque tour, le joueur doit imaginer comment l'adversaire va réagir, puis comment le lui répondre, et ainsi de suite jeux trop complexe pour envisager une solution exhaustive (les échecs ont un facteur de branchement = 35) Tous les déplacements ne sont contrôlés par l’ordinateur Le jeu commence à partir d'un état initial spécifié et se termine à une position qui, en utilisant un critère simple, peut être déclarée gagnante pour un joueur et perdante pour l'autre, ou encore comme un match nul

Résolution de problèmes Programmes de jeux de stratégie Composante de base d ’un programme de jeux : - Générateur de mouvements génère les mouvements valides à partir de l'état courant - Test de terminaison décide si l'état courant est un gain, une perte, un nul ou rien de particulier - Fonction d'évaluation (fonction de gain) évalue les gains d'un état donné indépendamment des coups passés ou futurs - Stratégie de contrôle fournit les éléments nécessaires pour choisir entre différentes options celle qui semble la plus prometteuse

Résolution de problèmes Programmes de jeux de stratégie Exemple de jeu : les échecs 1 E5 E4 21 C6 B4 4 31 3 F6 G5 2 1 41 H7 H6 5 F8 B4 5 …

Résolution de problèmes Programmes de jeux de stratégie Exemple de jeu : les échecs Situation courante ? ? Quel coup choisir ?

Résolution de problèmes Programmes de jeux de stratégie Arbre de jeu : - Arbre de jeu : une représentation explicite de toutes les actions possibles de jeu (espace d’états) - Nœud racine : position initiale du jeu - Nœuds niveau 1 : positions que le premier joueur peut atteindre en un déplacement - Nœuds niveau 2 : positions résultant de la réplique du second joueur - Nœuds terminaux : représentent un nœud gagnant, un nœud perdant ou un match nul - Chemin racine ==>nœud terminal : une partie complète du jeu

Résolution de problèmes Programmes de jeux de stratégie Arbre de jeu :

Résolution de problèmes Méthode du MiniMax Caractéristiques : Méthode qui schématise le processus décisionnel que devrait suivre tout joueur : supposer que chaque joueur va, à chaque moment, prendre la décision qui est la meilleure pour lui Méthode qui transcrit le principe de rendre ses chances minimales quand on considère le jeu du point de vue de l ’adversaire, et maximales quand on réfléchit pour soi Méthode où le premier joueur est appelé Max et son adversaire Min Technique qui amène l'ordinateur à passer en revue toutes les possibilités pour un nombre limité de coups et à leur assigner une valeur qui prenne en compte les bénéfices pour le joueur et pour son adversaire. Le meilleur coup étant alors celui qui maximise ses bénéfices tout en minimisant ceux de son adversaire

Résolution de problèmes Méthode du MiniMax Caractéristiques : On supposera dans cette technique que : aucune partie ne comporte un nombre infini de coups à chaque position, il existe un nombre fini de coups légaux à chaque position p, il existe un nombre fini F(p) tel que toute partie commençant à partir de p ne comporte pas plus de F(p) coups Le but de cette technique est de construire un algorithme qui, étant donné une position p, et un joueur, choisissent un coup valable et optimal pour ce joueur Méthode universellement utilisée (échecs, dames, othello, bridge,... )

Résolution de problèmes Méthode du MiniMax Principe : - Pour chaque demi-coup des noirs possibles, l ’ordinateur va envisager toutes les réponses possibles des blancs et pour chaque réponse de blancs, il va envisager toutes les répliques possibles des noirs et etc. - On développe l'arbre de jeu à partir d ’une position courante p en explorant toutes les positions possibles à partir de p et jusqu ’à une profondeur donnée et on fait remonter à la racine une valeur qui est calculée récursivement de la façon suivante : MiniMax(p)=eval(p) si p est une position terminale (une feuille) MiniMax(p)=max(MiniMax(s1), ..., MiniMax(sn)) si p est une position joueur avec successeurs s1, ..., sn (un nœud max) MiniMax(p)=min(MiniMax(f1), ..., MiniMax(fm)) si p est une position opposant avec successurs f1, ..., fm (un nœud min) MiniMax(p) est la meilleure valeur possible (meilleur coup) à partir de la position p, si l'opposant joue de façon optimale

-1 4 -3 8 7 -5 Résolution de problèmes Méthode du MiniMax Principe : Position courante p Evaluation des nœuds -1 4 -3 8 7 -5 Positions terminales

4 4 -5 4 8 7 -5 -1 4 -3 8 7 -5 Résolution de problèmes Méthode du MiniMax Principe : 4 Application du Min/Max 4 -5 max 4 8 7 -5 min -1 4 -3 8 7 -5 max

Résolution de problèmes Méthode du MiniMax Implémentation : un type de données position qui permet de représenter les états possibles du jeu une fonction pour évaluer les positions terminales une fonction qui sert à déterminer si une position est une position joueur ou opposant (qui c ’est qui joue? L ’ordinateur ou le joueur?) une fonction qui prenne une position p et retourne la liste de tous les coups jouables à partir de p et jusqu’à une profondeur n une fonction qui détermine si le jeu est terminé ou pas une fonction qui détermine le gagnant : l ’ordinateur, le joueur ou match nul

Résolution de problèmes Méthode du MiniMax Exemple de jeu : jeux de Nîmes On dispose d'une pile d'allumettes. Il y a 2 joueurs. Chaque joueur peut, à son tour, séparer une pile en 2 piles inégales. Le jeu se termine lorsqu'un joueur ne peut plus jouer et il perd 1 1 1 1 -1 1 -1 1 -1 1 -1 Fonction d ’évaluation : eval(f) = -1 si Min gagne 1 si Max gagne -1 1 -1

Résolution de problèmes Méthode du MiniMax Raisonnement de l’ordinateur : Profondeur 1 A : position initiale du jeu, niveau maximisant (ordinateur qui joue) 10

Résolution de problèmes Chapitre II : Résolution de problèmes Résolution de problèmes Méthode du MiniMax Raisonnement de l’ordinateur : Profondeur 2 B : niveau minimisant (adversaire qui joue) 3 5 hgfdhgqdfhgkjh 3 5 2 EPSI/Montpellier Cycle CSII 2A Module Intelligence Artificielle

Résolution de problèmes Chapitre II : Résolution de problèmes Résolution de problèmes Méthode du MiniMax Raisonnement de l’ordinateur : Profondeur 3 5 5 4 2 3 5 11 8 4 12 2 3 11 5 EPSI/Montpellier Cycle CSII 2A Module Intelligence Artificielle

Résolution de problèmes Chapitre II : Résolution de problèmes Résolution de problèmes Méthode du MiniMax Fonction d’évaluation : Fonction primordiale qui renvoi un score qui doit être représentatif de la position : score > 0 : avantage pour la machine (MAX) score < 0 : avantage pour le joueur (MIN) score = 0 : partie équilibrée Fonction utilisée pour calculer le meilleur coup Fonction qui doit être le plus fiable et le plus rapide possible EPSI/Montpellier Cycle CSII 2A Module Intelligence Artificielle

Résolution de problèmes Chapitre II : Résolution de problèmes Résolution de problèmes Méthode du MiniMax Algorithme : Fonction MiniMax(p) 1. si p est terminal alors Score <- eval(p) 2. sinon pour i de 1 à j faire // j = nombre de successeurs de p (a) Générer fi ie successeurs de p (b) si = 1 alors Score <- MiniMax(f1) sinon // i >= 2 si p noeud min alors Score <- min(Score, MiniMax(fi)) si p noeud max alors Score <- max(Score, MiniMax(fi)) 3. retourner Score EPSI/Montpellier Cycle CSII 2A Module Intelligence Artificielle

Résolution de problèmes Chapitre II : Résolution de problèmes Résolution de problèmes Méthode du MiniMax Propriétés : Complétude : Oui si l ’arbre de jeu est fini Complexité : O(bm) Optimalité : Oui si l ’adversaire est optimal EPSI/Montpellier Cycle CSII 2A Module Intelligence Artificielle

Résolution de problèmes Chapitre II : Résolution de problèmes Résolution de problèmes Méthode du MiniMax Complexité combinatoire : Pour un jeu avec 10 demi-coups possibles : niveau 1 : 10 niveau 2 : 100 niveau 3 : 1000 niveau 4 : 10000 niveau 5 : 100000 niveau 6 : 1 million niveau 7 : 10 millions niveau 8 : 100 millions Tic-Tac-Toe : 39 (19683) nœuds Echecs : 35100 noeuds EPSI/Montpellier Cycle CSII 2A Module Intelligence Artificielle

Résolution de problèmes Chapitre II : Résolution de problèmes Résolution de problèmes Méthode du MiniMax Complexité combinatoire : Solutions MiniMax avec profondeur limitée (prédictions sur 2 ou 4 niveaux max) Elagage a - b EPSI/Montpellier Cycle CSII 2A Module Intelligence Artificielle

Résolution de problèmes Chapitre II : Résolution de problèmes Résolution de problèmes Elagage a - b Exemple : Profondeur 3 Résultat : 11 positions étudiés 16 positions éliminées soit un gain de 60% 5 5 5 6 8 4 3 EPSI/Montpellier Cycle CSII 2A Module Intelligence Artificielle

Résolution de problèmes Chapitre II : Résolution de problèmes Résolution de problèmes Elagage a - b Principe : Etendre l'arbre de jeu jusqu'à une profondeur N par recherche en profondeur Chaque nœud Max garde la trace d'une a -valeur = valeur de son meilleur successeur trouvé jusqu'ici Chaque nœud Min garde la trace d'une b -valeur = valeur de son plus mauvais successeur trouvé jusqu'ici Ne plus générer les successeurs d'un nœud dès qu'il est évident que ce nœud ne sera pas choisi (compte tenu des nœuds déjà examinés) Interrompre la recherche d'un nœud Min si sa b -valeur £ a -valeur de son nœud-parent : coupure a Interrompre la recherche d'un nœud Max si son a -valeur ³ b -valeur de son nœud-parent : coupure b EPSI/Montpellier Cycle CSII 2A Module Intelligence Artificielle

Résolution de problèmes Chapitre II : Résolution de problèmes Résolution de problèmes Elagage a - b Coupure a : Coupure b : a -valeur Min b -valeur b -valeur Max a -valeur EPSI/Montpellier Cycle CSII 2A Module Intelligence Artificielle

Résolution de problèmes Elagage a - b Algorithme : Minimax_alpha_beta(P, a, b) Début Soient P1, P2, …, Pn successeurs de P Si n = 0 Alors retourner eval(P) // P est terminal Sinon k1 Si P est un nœud Max Alors Coupure  faux Tant que k <= n et Coupure <> Vrai Faire a  max[a, Minimax_alpha_beta(P, a, b) Si a >= b Alors Coupure  Vrai // élagage de l’arbre Fin Si k  k+1 Fin Tant que Si coupure = Vrai Alors Retourner b Retourner a Fin Si Sinon // Nœud Min Fin Coupure  faux Tant que k <= n et Coupure <> Vrai Faire b  min[b , Minimax_alpha_beta(P, a, b) Si b <= a Alors Coupure  Vrai // élagage de l’arbre Fin Si k  k+1 Fin Tant que Si coupure = Vrai Alors Retourner a Sinon Retourner b

Résolution de problèmes Elagage a - b Propriétés : Complétude : Oui si l ’arbre de jeu est fini Complexité : O(bm/2) doubler la profondeur de recherche (8 niveaux de prédictions pour les échecs) Optimalité : Oui si l ’adversaire est optimal