Intelligence Artificielle : des tentatives de dé définitions Intelligence Artificielle Repré Représentation des connaissances Définitions Discipline de l'informatique dont le but est de construire des programmes « intelligents » Mais aussi : Références du cours « C’est la science qui consiste à faire faire aux machines ce que l’homme ferait moyennant une certaine intelligence », Marvin Minsky, MIT. • "Artifical Intelligence, a modern approach", S. Russel, P. Norvig, Prentice Hall. « Tout problème pour lequel il n’existe pas d’algorithmes connu ou raisonnable permettant de le résoudre relève a priori de l’IA » … • "Artificial Intelligence", third edition, P.H. Winston, Addison Wesley Le test de Turing (1950)... Contourner le problème de la comparaison Capacité à simuler des performances équivalentes à celles d’humains dans des tâches cognitives (jeu de l’imitation). • "Foundations of Constraint Satisfaction", E. Tsang, Academic Press « Je crois que, dans une cinquantaine d’années, il sera possible de programmer des ordinateurs [...] pour les faire si bien jouer au jeu de l’imitation qu’un interrogateur moyen n’aura pas plus de 70% de chances de procéder à l’identification exacte au bout de cinq minutes de questionnement », Turing, 1950 Alan Turing, en bref… Le test de Turing • Le test a été maintes fois reformulé en 50 ans... Aujourd’hui : Un humain qui interroge un ordinateur à travers un télétype (pas d'interaction entre l'humain et l'ordinateur), et l'humain ne peut pas distinguer si son interlocuteur est un humain ou un ordinateur. • Requiert des capacités en Grand Informaticien, Mathématicien, Physicien, Philosophe, (et d’autres)… anglais (1912-1954) Son implication dans la seconde guerre mondiale et la réussite de sa machine « bombe » pour casser les codes allemands l’a définitivement motivé pour se lancer dans la quête de machines intelligentes... • représentation complexe des connaissances • compréhension langage naturel • raisonnement automatique • apprentissage Intelligence Artificielle : un bref panorama (suite) S'appuie sur des disciplines telles que • la philosophie • la psychologie et les neuro-sciences (modèles cognitifs) Intelligence Artificielle Terme créé en 1950-56 par Mc Carthy • • les mathématiques : Les débuts (1950 – 1970) : – logique (incomplétude de Goedel) : un système formel est –il complet – correct ? complexité : une classe de problèmes est dite intractable si le temps pour résoudre des instances de cette classe de problème augmente au moins exponentiellement avec la taille de ces instances; • linguistique Souvent fortement liée à d’autres disciplines informatique • Recherche Opérationnelle • Graphes • Complexité (problèmes NP et au dessus…) • … • méthodes générales de recherche (méthodes faibles) : GPS (General Problem Solving) par Newell et Simon, CMU, – Lisp (Mac Carthy) (langage de haut niveau) – Programme qui joue aux dames (Samuel) – Représentation des connaissances : logique (représentation explicite du monde + processus déductif) – Recherche en traitement naturel de la langue (projets de traduction automatique) fondé sur la syntaxe. Mais.... un gros problème de complexité et… les premières déceptions… Intelligence Artificielle • Seconde période (1969 – 1979) – Domaines de compétence plus restreint et utilisation plus grande de connaissances du domaine. – Les systèmes experts – En linguistique : langages plus restreints, la notion de sémantique émerge (organisation de la mémoire, définition et reconnaissance de situations prototypiques, …) – En représentation des connaissances, langages de frames beaucoup plus structurés que la logique – Prolog, projet de 5ème génération • Mais, les résultats n'atteignent pas les promesses des années 70... • Le retour des approches sub-symboliques (réseaux neuronaux). Intelligence Artificielle • Depuis 1987 – des techniques de recherche efficaces résolvent des problèmes combinatoires (voir notamment SAT et la résolution de contraintes) – le champion du monde d'échecs battu par un programme – des interfaces en langage naturel sont opérationnelles – des systèmes experts temps réel • Des méthodes numériques : Modèles de Markov cachés, • De nouveaux défis avec l’augmentation des données disponibles sous forme électronique (Web) : indexation/classification de raisonnement probabiliste et manipulation de données incertaines (réseaux bayésiens) documents, recherche d’information, extraction de connaissances dans les bases de données, recherche d’informations dans des « peers », … Le plan du cours On trouve de l’IA un peu partout... Résolution de problèmes – Etat, opérateur, espace des états – Recherche non informée, heuristique, recherche informée Satisfaction de contraintes et SAT – Etat, contraintes, problème de satisfaction de contraintes – Techniques de cohérence par noeud, par arc – Techniques avancées Forward Checking, backjumping,... – SAT Raisonnement, déduction, systèmes experts – Représentation des connaissances, faits, règles – Recherche dans un arbre ET/OU, chaînage avant, chaînage arrière Pourquoi l’IA peut souvent se ré résumer à de la recherche ? Exemple : le jeu du taquin État initial • À l’origine la plupart des problèmes d’IA étaient liés à – Résolution de puzzles, (Taquin, Rubik’s Cube, 8-Reines, …) – Démonstration de théorèmes (logique, arithmétique, géométrie, …) – Jeux (Dames, Echecs, GO,…) – … État final 2 8 3 1 6 4 8 5 7 7 1 2 3 4 6 5 Les opérateurs de changements d’état : • Faire bouger une tuile à droite, à gauche, en haut, en bas (si la case adjacente dans cette direction est vide) • Faire bouger la case vide à droite, à gauche, en haut en bas (si on reste dans les limites du damier) Méthodes de recherches... Méthodes de recherches... Etat Final F I Etat Initial Espace des états : le taquin Résolution de problè problèmes Le problème à résoudre peut se formaliser comme • Chaque configuration possible du taquin est un état • Un but – 9 cases, 9! Possibilités (362880) • Un état initial • Un ensemble d'opérateurs permettant de passer d'un état à un autre Un état initial + un ensemble d'opérateurs permettent de définir un espace de recherche. • L’ensemble des états crée l’espace des états dans lequel la recherche de l’état but aura lieue • Note: certains états ne sont pas atteignables depuis l’état initial (la moitié sur l’exemple du taquin). Résoudre un problème : trouver un chemin entre l'état initial et l'état final. En général, on associe également une fonction de coût à chaque opérateur. Il faut donc dans ce cas trouver le meilleur chemin (le moins coûteux). Exemple : 2 7 8 1 2 8 7 6 3 4 5 • ... Espace des états pour le taquin noeud : état arc : application d'un opérateur 8 2 6 1 [étiquette des arcs: coût de l'application d'un opérateur] 2 8 1 7 7 5 2 4 6 4 • facteur de branchement • profondeur 1 5 8 7 6 2 4 5 7 8 3 1 4 6 5 2 1 7 8 3 2 4 3 6 4 7 5 6 5 1 8 6 6 2 8 6 1 7 3 1 5 7 8 1 3 4 5 1 4 5 2 1 7 8 6 2 8 3 2 1 6 4 1 5 7 6 3 1 2 3 8 6 7 3 2 2 8 6 2 3 4 5 3 4 5 2 6 . . . 3 4 5 . . . . . . . . . 2 1 7 8 6 3 6 4 7 5 2 1 7 8 3 2 4 1 8 4 3 5 7 6 5 2 3 4 1 8 4 5 7 6 5 3 4 5 8 3 6 5 4 . . . . . . caractéristiques de l'arbre de recherche : 3 2 8 3 4 7 8 Une solution pour le pb du taquin 1 8 3 4 5 7 3 7 8 • Problèmes de routage 2 6 1 • Les jeux 1 1 7 4 6 5 7 Importance de la modé modélisation • Intelligence humaine cachée dans la modélisation… L’efficacité des méthodes générales dépend de cette partie « cachée » de l’IA classique • Exemple : labyrinthe dans les jeux 3D contemporains Evaluation d'une mé méthode de ré résolution de problè problème Comment mesurer la performance d'une méthode de résolution de problèmes ? • trouve-t-elle une solution / toutes les solutions/ une bonne solution / la meilleure des solutions? ? • quel est le coût de la recherche (temps/mémoire requis pour trouver la solution) ? Construction de l'arbre de recherche Recherche-solution(problème,stratégie) %problème= (Etat-initial,Etat-but,Opérateurs ). Retourne un chemin solution ou échec OUVERT ← {Etat-initial}; Straté Stratégies de recherche Régissent l' ordre dans lequel les noeuds de l'arbre de recherche vont être développés. Types de stratégies : • non informée, aveugle: purement syntaxiques Tant que OUVERT ≠ ∅ • heuristique: exploitation d'information sur le problème à résoudre Etat-courant ← tete(OUVERT) si Etat-courant = Etat-but alors return(chemin(Etat-initial,Etatcourant)) Propriétés d'une stratégie : • Complétude sinon NEtats← développer(Etat-courant,opérateurs,stratégie) OUVERT ← mise-à-jour( OUVERT, NEtats,stratégie) • Complexité en temps / espace • Admissibilité Fin tant que return(échec). OUVERT = frontière de l’espace de recherche Un exemple simple Problème de routage Problème de routage 4 3 4 B A 5 S Un exemple simple 4 C 3 5 G 4 E C 5 G 4 3 4 2 D 5 S 3 4 B A 4 2 D F Point de départ: S Point de départ: S Point d'arrivée : G Point d'arrivée : G E F Un exemple simple Problème de routage Problème de routage 4 3 4 B A 5 S Un exemple simple 4 C 3 5 G 4 E Point de départ: S Point d'arrivée : G Un exemple simple Problème de routage E F Un exemple simple 4 B A 5 4 C 3 5 G 4 E D 5 S 3 4 B A C 5 G 4 3 4 2 4 2 E D F Point de départ: S Point de départ: S Point d'arrivée : G Point d'arrivée : G Un exemple simple Problème de routage F Un exemple simple Problème de routage 4 4 B A 5 S 4 Problème de routage 4 3 G 3 D F Point d'arrivée : G S 5 2 Point de départ: S 3 C 4 4 2 D 5 S 3 4 B A 4 C 3 5 G 4 E C 5 G 4 3 4 2 D 5 S 3 4 B A 4 2 D F Point de départ: S Point de départ: S Point d'arrivée : G Point d'arrivée : G E F Straté Stratégie Largeur d'abord Arbre de recherche en largeur d'abord 1 • stratégie complète 5 4 4 B • ne développe jamais un noeud de profondeur n avant d'avoir développé tous les noeuds de profondeur n-1 5 9 • s'il y a un coût associé à l'application de chaque opérateur, ne trouve pas nécessairement la solution de meilleur coût en premier. 2 4 1 F5 Ordre lexicographique sur Les fils d’un même noeud 4 A 5 4 4 B 5 8 C 10 E 2 1 4 D 4 1 F5 1 5 6B 3 2 G 3 19 5 4 E 4 4 1 8 C 3 2 G 5 1 7 4 2 0 A 5 1 E9 4 2 C1 1 3 4 2 F 6 3 2 G 7 2 7 S • Stratégie qui n'est ni complète, ni admissible (de plus, pb si erreur dans les niveaux hauts de l'arbre) 1 3 2 7 Ordre lexicographique sur Les fils d’un même noeud 4 3 5 2 4 1 4 D 1 F5 1 5 6B 3 2 4 E 4 4 1 2 B 1 F3 4 4 1 E9 3 4 2 0 A 5 1 8 C 3 2 C1 2 G2 1 3 4 2 G 5 1 7 7 E 5 1 1 B 1 F 7 2 4 C 7 A 4 2 G 3 19 6 3 6 2 10 E D 4 D 9 5 2 F 6 3 2 G 7 2 7 Arbre de recherche avec straté stratégie en profondeur d'abord S 1 3 2 Ordre lexicographique sur Les fils d’un même noeud 1 D 5 4 A 4 3 • Complexité en espace: bm, où b est le facteur de branchement, et m la profondeur max de l'arbre de recherche • A éviter s'il existe des chemins infinis dans l'arbre de recherche 2 G 7 5 8 4 C Les descendants du noeud courant développé sont placés en tête de OUVERT • Peut être plus efficace que la largeur d'abord si beaucoup de solutions 2 G2 2 F 6 3 5 Straté Stratégie Profondeur d'abord • Complexité en temps : O(bm) 3 2 C1 4 2 G 5 1 7 3 2 G2 1 E9 3 4 2 0 A 5 1 8 C A 4 1 F3 1 F3 4 4 4 4 4 B 4 1 2 B 4 1 F 7 4 1 2 B 1 1 B E 2 4 C 2 3 E 1 1 B 1 F 7 4 2 4 C 7 A E 5 4 1 1 2 6 2 9 3 7 A Arbre de recherche en largeur d'abord 2 D 4 D 4 5 1 5 6B 3 2 G 3 19 Arbre de recherche en largeur d'abord S 10 1 4 D • complexité : en temps et en espace, pour un facteur de branchement b et une solution de profondeur d : O(bd). Applicable à de « petits » problèmes uniquement. 3 6 2 E 3 2 5 8 C • trouve la solution la plus courte en premier (le plus petit nombre d'applications d'opérateurs) D 4 D 4 1 Ordre lexicographique sur Les fils d’un même noeud 4 A OUVERT est géré comme une file 2 S 3 2 5 5 4 4 2 5 C 10 E 6 2 4 D 7 F 3 8 G 19 1 5 1B 1 2C 4 1 6A 9 D B 2 2 2 E 5 4 4 1 1 4 F3 8 C 4 3 G 1 7 1 4 4 2 F 6 2 3 B 1 7 B E 2 4A 5 1 E9 4 2 C5 3 G 1 3 4 2 0 F 3 2 1 G 4 2 7 2 7 Recherche dans un espace d’ d’ états + détection de cycles Cycles dans la recherche Recherche-solution(problème,stratégie) Induit des chemins infinis et des solutions qui sont exhibées plusieurs fois %problème= (Etat-initial,Etat-but,opérateurs ). Retourne un chemin solution ou échec Plusieurs manières de complexité croissante en espace: OUVERT ← {Etat-initial}; FERME = ∅ • ne pas revenir dans l'état d'où l'on vient • vérifier que le chemin que l'on construit ne contient pas de cycle. • vérifier que l'on ne revient pas dans un état que l'on a déjà visité (complexité en espace O(bd)). Tant que OUVERT ≠ ∅ Etat-courant ← tete(OUVERT) si Etat-courant = Etat-but alors return(chemin(Etat-initial,Etat-courant)) sinon NEtats ← développer(Etat-courant,opérateurs,stratégie); Modification de l'algorithme de recherche FERME ← FERME ∪ Etat-courant; OUVERT ← mise-à-jour( OUVERT, FERME, NEtats,stratégie) Fin tant que return(échec). Fonctions d'é d'évaluation d'un état Fonction d’évaluation s’applique à un nœud de l’espace de recherche En. Nous étudierons les fonctions d'évaluation de la forme : f(En) := a. g(En) + b. h(En) h(En) : estimation du coût du meilleur chemin pour aller de l'état En à un état but. Il existe des fonctions d'évaluation qui s'appuient uniquement sur la composante g ou h, certaines qui s'appuient sur les 2. Arbre de recherche en recherche avec coû coût uniforme 10 S 34 D A 6 D 11 11 C 8 E 1 12 2 E 16 14 D F 15 B 1 4 F OUVERT est géré comme une liste triée par ordre croissant sur les coûts de chaque état. Trouve la solution optimale si pour tout fils de En g(fils(En)) ≥ g(En) Amé Amélioration de la recherche branch and bound Exemple : SD : coût 4 SAD coût 8 79 A 8 10 •Variante de la stratégie largeur d'abord(largeur d'abord = coût uniforme avec g(En) = profondeur(En)) Il existe dans cet arbre beaucoup de chemins redondants 3 57 B Appelé également stratégie « branch and bound » • Fonction d'évaluation à composante g uniquement. g(En) : estimation du coût du meilleur chemin pour aller de l'état initial à l'état courant En. 2 Straté Stratégie de coû coût uniforme 46 E 1 0 B 13 1 B 3 15 18 C 17 E 910 F 11 A 15 C 1 13 4G 1 3 Ordre dans OUVERT : moindre g + ordre lexicographique Si l'on est dans un cas tel que le chemin pour aller de S à I n'influence pas le chemin pour aller de I à G: le plus court chemin pour aller de S à G passant par I est le plus court chemin pour aller de S à I + le plus court chemin pour aller de I à G. Pour un état I, on maintient le coût du meilleur chemin pour aller de S à I. Ce coût peut être mis à jour au cours de la recherche. On ne développe pas les noeuds qui ont des évaluations supérieures. Exemple de recherche branch and bound amé amélioré liorée 10 S 2 Ordre dans lequel sont développés les noeuds 34 D 3 A 57 B 7 12 11 C 16 9 A B F C F 4 3 8 15 A E B 5 S B 17 Estimation (liée au problème à résoudre) du coût d'une solution. 610 F 11 15 Exemple : 13 pb de routage : heuristique : distance à vol d'oiseau entre l'état n et l'état but. G C pb du tic-tac-toe : le nombre de tuiles mal placées. 1 3 4 A Toute technique qui améliore la performance dans le cas moyen d'un processus de résolution de problème, sans forcément améliorer sa performance dans le pire des cas. 46 E 18 1 4 15 14 D 8 D 8 Non exploré ! 13 10 1 B E 3 E Heuristique C 5 h peut être n'importe quelle fonction telle que h(but)=0 G 4 3 4 2 E D F Recherche gloutonne Exemple de recherche par gradient 6.7 C B Si l'évaluation est fondée uniquement sur h(En), stratégie de recherche dite gloutonne. 4. 0 10.4 A S 10.4 G Stratégie par gradient: variante de la stratégie profondeur d'abord. On développe les descendants d'un noeud, on les trie en fonction de h, on les met en tête de Etats-à-développer. 8.9 A 11.0 D S 6.9 8.9 D Problèmes : E 6.7 B • Stratégie incomplète et non admissible (comme profondeur 4 d'abord) 3 • Même complexité (dans le pire des cas) que profondeur d'abord. • Par contre, si l'heuristique est bonne, amélioration substantielle des performances de la recherche A B 5 S C 5 9 3 D 4 E 5 S C 5 13 9 A D G 13 A 3 100 Faisceau : borne sur la taille de OUVERT. 4 B D 4 2 D E F 9 7 3 E On élague OUVERT pour ne garder que les n meilleurs états (évaluation g et/ou f). S 7 8.9 10.4 E 9 3 B F A 6.7 4.0 G C D 8.9 10.4 B F F La recherche par faisceau S 10000 4 A G 1 3 G 4 2 D 6.9 E 6.9 E A 6.7 B F 109 G 17 3.0 F 4 Straté Stratégie gloutonne : optimum local 13 E F optimum local - plateau 3 6.9 10.4 A 3.0 G 3.0 Recherche A* Algorithme de recherche A* Recherche-Aetoile(problème) % retourne un chemin solution ou échec Ouvert ← Etat-initial; Ferme = ∅ Tant que Ouvert ≠ ∅ Etat-courant ← tete(Ouvert); Ferme = Ferme ∪ Etat-courant si Etat-courant = Etat-but alors return(chemin(Etatinitial,Etat-courant)) sinon pour tous les successeurs s de Etat-courant évaluer(s) g(s) et h(s) si s ∈ Ouvert ∪ Ferme alors si g(Etat-courant) + c(Etat-courant ,s) ≤ g(s) alors mettre-a-jour(pere(s)); inserer (s,Ouvert) sinon inserer(s,Ouvert) fin pour Fin Tant que Fonction d'évaluation f(n) = g(n) + h(n) On cherche à minimiser le coût total du chemin entre l'état initial et un état but. g*(n): le coût du plus court chemin allant de l'état initial à l'état n. g(n): estimation du coût du plus court chemin allant de l'état initial à l'état n (étant donné les états développés à l'instant courant). Si h est minorante, la stratégie de recherche est complète et correcte. h(n) minorante : pour tout n, h(n) ≤ h*(n) c'est-à-dire, l'estimation du chemin qui reste à parcourir entre l'état n et l'état but est toujours inférieure ou égale à la valeur réelle de ce coût. Cas particulier : recherche branch and bound : h=0 pour tout n. return(échec). Recherche A* Optimisation sur A* Comment sélectionner une heuristique ? • Plus h est élevée, moins on va développer de noeuds. • Par contre, si h(n) ≥ h*(n) pour un noeud qui est sur le chemin de meilleur coût, on risque de "rater" ce chemin. Le problème du taquin : facteur de branchement ~ 3 • Monotonie : Une heuristique h est dite monotone si pour toute paire de d'états n et s tels que s est un successeur de n h(n) ≤ h(s) + c(n,s) (l'heuristique est cohérente avec les coûts des arcs). Si h est monotone, si A* sélectionne un état n pour le développer, g(n) = g*(n) Si recherche exhaustive jusqu'à un niveau 20 ~ 3.5 x 109 états... ( 9! ~ 370 000 si on garde la trace des états déjà générés). • h1 : le nombre de tuiles mal placées • h2 : la somme des distances de chaque tuile par rapport à sa position dans l'état final. • h3 : h2+S ( S est la somme pour chaque tuile sur la circonférence des si, avec si=2pour la tuile i si elle n'est pas suivie par son "vrai" successeur, si =0 sinon). h3 n'est pas minorante : pas d'optimalité, mais recherche très efficace. Lorsqu'un état e est généré, il est inutile de vérifier s'il a déjà été généré (avec un coût moindre), on ne mettra jamais à jour le coût du meilleur chemin pour aller de s à un état n quelconque. • Entre deux noeuds qui ont la même f, choisir le noeud qui a le plus grand g Recherche de type A* 6.7 C B 4. 0 10.4 A S (3;10.4;13.4) G 6.9 8.9 E 3.0 E 4 A g(A)=9 1 S (10;3.0; 13.0) F G 4 3 4 E 2 (5,7) D E 6 2 (3,9) B 3 D G (6,8) E (8,108) C (5,7) E C 5 2 1 A (11;0; 11.0) D (4,10) D 4 B 5 S (2,9) C A F B 100 3 B A 4 (11;6.7; 17.7) S 2 3 2 D (6;6.9;12.9) S 3 7 (4;8.9;12.9) A 11.0 D Recherche de type A* avec h non minorante F G (9,9) G (8,8) G Recherche A* avec h non monotone S 6.7 C B 4. 0 10.4 A A G S (7;6.7;13.7) 6.9 10 E 3 A D A E B 3.0 (12;6.9;18.9) F E 4 g(A)=9 (6;6.9;12.9) 11.0 D (4;10;14) (3;10.4;13.4) (11;4;15) C g(B)=11 (10;3.0 ; 13.0) B F 4 B C (11;0; 11) 5 S 5 G 3 4 2 D 4 E F G