Introduction à l Intelligence Artificielle

Documents pareils
Algorithmes de recherche

Cours de Master Recherche

Intelligence Artificielle et Robotique

Intelligence Artificielle Planification

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

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

Intelligence Articielle (1) Introduction

Les apports de l informatique. Aux autres disciplines

Pourquoi l apprentissage?

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

FIMA, 7 juillet 2005

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

Université Paris-Dauphine DUMI2E 1ère année, Applications

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

Plus courts chemins, programmation dynamique

Qualité du logiciel: Méthodes de test

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)

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

Programmation Par Contraintes

Programmation linéaire

Évaluation et implémentation des langages

Informatique Générale

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

Resolution limit in community detection

Synergies entre Artisan Studio et outils PLM

4 Exemples de problèmes MapReduce incrémentaux

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Contrainte de flot pour RCPSP avec temps de transfert

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

Algorithmes d'apprentissage

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

MIS 102 Initiation à l Informatique

Systèmes décisionnels et programmation avancée

Mathématique et Automatique : de la boucle ouverte à la boucle fermée. Maïtine bergounioux Laboratoire MAPMO - UMR 6628 Université d'orléans

L apprentissage automatique

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques

Semestre 1. Objectifs Approfondissement de l environnement Java et de son interface de programmation d applications : réseaux, et processus.

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Apprentissage Automatique

Programmation par contraintes. Laurent Beaudou

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Big Data et Graphes : Quelques pistes de recherche

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

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Baccalauréat universitaire (bachelor) en mathématiques et sciences informatiques

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Une brève introduction aux Sciences Cognitives

Pi, poker et informatique ; une «épuisante» alliance pour des projets en mathématiques

Résolution d équations non linéaires

ARBRES BINAIRES DE RECHERCHE

Dossier justificatif des travaux de R&D déclarés au titre du CIR

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

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

Installation Client (licence réseau) de IBM SPSS Modeler 14.2

Continuité et dérivabilité d une fonction

L exclusion mutuelle distribuée

Quatrième partie IV. Test. Test 15 février / 71

Introduction à la théorie des graphes. Solutions des exercices

Initiation à l algorithmique

Chapitre 5 : Flot maximal dans un graphe

Modélisation multi-agents - Agents réactifs

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Big Data et Graphes : Quelques pistes de recherche

Feuille TD n 1 Exercices d algorithmique éléments de correction

Chapitre 7. Récurrences

Disparités entre les cantons dans tous les domaines examinés

Correction du baccalauréat S Liban juin 2007

ÉTUDIANTS ÉTRANGERS EN ROUMANIE

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Représentation d un entier en base b

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

DNS ( DOMAIN NAME SYSTEM)

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

Économétrie, causalité et analyse des politiques

Etudier l informatique

Génie Logiciel avec Ada. 4 février 2013

Application de K-means à la définition du nombre de VM optimal dans un cloud

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Structure fonctionnelle d un SGBD

Polynômes à plusieurs variables. Résultant

Conception des systèmes répartis

Systèmes d information et bases de données (niveau 1)

Sujet de thèse CIFRE RESULIS / LGI2P

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Programmation linéaire

Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration

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

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Chp. 4. Minimisation d une fonction d une variable

Ingénierie et gestion des connaissances

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

LE PROBLEME DU PLUS COURT CHEMIN

Surveillance et maintenance prédictive : évaluation de la latence de fautes. Zineb SIMEU-ABAZI Univ. Joseph Fourier, LAG)

Clé USB. Quel type de données peut contenir une clé USB?

Apprentissage par renforcement (1a/3)

Transcription:

à l Intelligence Artificielle IMERIR salvat@imerir.com 2008-2009 à l Intelligence Artificielle

Déroulement du cours pôle informatique théorique et IA 12h de cours et 20h detp Résoltion Automatique de problèmes Large place aux TP de programmation Modéliser un problème Résoudre le problème à l Intelligence Artificielle

Plan Tentative d une définition... Les Fondements de l IA Histoire de l IA 1 Tentative d une définition... Les Fondements de l IA Histoire de l IA 2 3 4 à l Intelligence Artificielle

Tentative d une définition... Les Fondements de l IA Histoire de l IA Vous avez dit Intelligence Artificielle? un des domaines les plus récents de la science apparu après la seconde guerre mondiale le nom lui même ne date que de 1956! beaucoup reste à faire! nombreux sous domaines : génériques : apprentissage, compréhension, résolution de problème... spécifiques : jouer aux échecs, faire des preuves mathématiques, aider au diagnostic médical,... à l Intelligence Artificielle

Mais c est quoi au juste l IA? Tentative d une définition... Les Fondements de l IA Histoire de l IA Systèmes qui pensent comme les humains Systèmes qui agissent comme les humains Systèmes qui raisonnent de façon rationnelle Systèmes qui agissent de façon rationnelle à l Intelligence Artificielle

Plan Tentative d une définition... Les Fondements de l IA Histoire de l IA 1 Tentative d une définition... Les Fondements de l IA Histoire de l IA 2 3 4 à l Intelligence Artificielle

Les disciplines originelles Tentative d une définition... Les Fondements de l IA Histoire de l IA Philosophie - 428 av. J.C. à nos jours Mathématiques - 800 à nos jours Linguistique - Informatique à l Intelligence Artificielle

Plan Tentative d une définition... Les Fondements de l IA Histoire de l IA 1 Tentative d une définition... Les Fondements de l IA Histoire de l IA 2 3 4 à l Intelligence Artificielle

Tentative d une définition... Les Fondements de l IA Histoire de l IA 1956 : Naissance de l Intelligence Artificielle John McCarthy organise à Darmouth un colloque de 2 mois Première démonstration du "Logic Theorist" de Newell et Simon programme de raisonnement symbolique basé sur la logique des propositions peu de temps après : preuves de théorèmes mathématiques dont une plus concise que les preuves connues... C est à l occasion de ce colloque que McCarthy lance le terme Intelligence Artificielle à l Intelligence Artificielle

L age doré Tentative d une définition... Les Fondements de l IA Histoire de l IA Fev 1956 : démo. télévisée d un jeu d échecs qui apprend d Arthur Samuel (IBM) 1958 : McCarthy au MIT Le Lisp (un des lang. de prog les plus anciens!) invention du "time sharing" article "Program with Common Sense" 1959 : Geometry Theorem Prover d Herbet Gelernter (IBM) 1961 : le GPS de Newell et Simon construit sur le modèle du raisonnement humain résoud des problèmes de type "énigme" à l Intelligence Artificielle

La désillusion Tentative d une définition... Les Fondements de l IA Histoire de l IA 1958, Simon prédit qu une machine sera champion du monde des échecs d ici à 10 ans objectif atteint en... 1997! les problèmes traités ne nécessitent pas beaucoup de connaissance Traduction automatique largement financé par les militaires objectif : accélérer la traduction des documents techniques relatifs à Sputnik les programmes manquent de connaissance "the spirit is willing but the flesh is weak" donne "the vodka is good but the meat is rotten" retrait des fonds gouvernementaux Nombreux problèmes insolubles Explosion combinatoire : théorie de la NP-complètude à l Intelligence Artificielle

Tentative d une définition... Les Fondements de l IA Histoire de l IA Systèmes à base de connaissance DENDRAL 1969 Etude des systèmes experts MYCIN : diagnostic des infections sanguines plus de 450 règles pas de modèle théorique comme pour les formules chimiques les règles sont construites par interrogation des médecins, résultats d expériences, extraites de la littérature spécialisée introduction de la notion d incertain à l Intelligence Artificielle

Quelques résultats Tentative d une définition... Les Fondements de l IA Histoire de l IA Système autonome de plannification et d ordonnancement de la NASA (Jonsson et al.) Programme de jeux : 1997 Deep Blue bat un champion du monde (G. Kasparov) Controle autonome : ALVINN, conduits une voiture Diagnostic médical : Heckerman 1991 Plannification logistique : 1991, Dynamic Analysis and Replaining Tool (DART) Robotique : chirurgie assistée (e.g. HipNav, 1996) Compréhension du langage et résolution de problème : PROVERB, 1999, résouds les mots croisés à l Intelligence Artificielle

Plan 1 2 Recherche en largeur d abord Recherche en profondeur d abord Recherche en profondeur limitée Recherche en profondeur incrémentale 3 4 à l Intelligence Artificielle

Un exemple En vacance en Roumanie, actuellement dans la ville d Arad. Votre avion de retour décolle le lendemain de Bucarest. Formuler le problème à l Intelligence Artificielle

Une carte Oradea Neamt Zerind Arad Iasi Sibiu Fagaras Vaslui Timisoara Rimnicu Vilcea Lugoj Pitesti Mehadia Urziceni Hirsova Dobreta Craiova Bucharest Giurgiu Eforie à l Intelligence Artificielle

Trois étapes Formulation du problème Recherche de la solution Exécution de la solution à l Intelligence Artificielle

Plan 1 2 Recherche en largeur d abord Recherche en profondeur d abord Recherche en profondeur limitée Recherche en profondeur incrémentale 3 4 à l Intelligence Artificielle

Définition d un Problème Un problème peut être formellement définit par 4 éléments : Remarque Ensemble, l état initial et la fonction successeur, definissent du problème. Il s agit de l ensemble des états atteignables depuis l état initial. à l Intelligence Artificielle

Un autre exemple Le monde de L aspirateur Seulement 2 pièces Chaque pièce peut être sale ou propre Actions : se déplacer à droite, se déplacer à gauche, aspirer la poussière, ne rien faire le but : tout est propre! A B à l Intelligence Artificielle

L aspirateur : les différents états 1 2 3 4 5 6 7 8 à l Intelligence Artificielle

L aspirateur : l espace de recherche L R L R S S L R R L R R L L S S S S L R L R S S à l Intelligence Artificielle

L aspirateur : formalisation État : État initial : Fonction successeur : Test de réussite : Coût : à l Intelligence Artificielle

Autre example le taquin 3x3 7 2 4 51 2 3 5 6 4 5 6 8 3 1 7 8 Start State Goal State État : État initial : un état donné Fonction successeur : Test de réussite : teste l égalité à l état de droite Coût : chaque déplacement coûte 1 à l Intelligence Artificielle

Plan 1 2 Recherche en largeur d abord Recherche en profondeur d abord Recherche en profondeur limitée Recherche en profondeur incrémentale 3 4 à l Intelligence Artificielle

Construction d une solution Idée de base : simuler l exploration de l espace de recherche en générant les successeurs des états déjà explorés Arad Sibiu Timisoara Zerind Arad Fagaras Oradea Rimnicu Vilcea Arad Lugoj Arad Oradea Arad à l Intelligence Artificielle

Programmation : État vs Noeud un état est une représentation d une configuration physique un noeud est une structure de donnée de l arbre de recherche et possède : parent (prédecesseur) enfants (successeurs) profondeur coût un état n a parent, action State 5 6 7 4 1 3 8 2 state Node depth = 6 g = 6 à l Intelligence Artificielle

Construction de l arbre de Recherche Algorithme 1 : Arbre de recherche Données : Un problème Pb, et une stratégie Strat. Résultat : Une solution ou Échec Initialiser l arbre avec l état initial de Pb ; tant que Vrai faire si aucun candidat à l extension alors renvoie Échec; sinon Choisir un noeud d extension selon Strat ; si le noeud contient un état but alors renvoie la solution correspondante; sinon développer le noeud et ajouter les nouveaux noeuds à l arbre de recherche; à l Intelligence Artificielle

Stratégies de recherche Il existe plusieurs façon d explorer l arbre de recherche. On parle de. Dans l algorithme de construction la stratégie affecte la fonction de choix. à l Intelligence Artificielle

Comparer les stratégies Qualité des solutions Coût en terme de ressources nécessaires à la résolution : à l Intelligence Artificielle

En largeur d abord (Breadth-first search) Construction de l arbre de recherche niveau par niveau On utilise une structure de file On traite les sommets au fur et à mesure de leur apparition à l Intelligence Artificielle

à l Intelligence Artificielle

Algorithme Largeur Algorithme 2 : Largeur Données : Un problème Pb. Résultat : Une solution ou Échec. AJOUTER-FILE(état initial de Pb) ; tant que Non(FILE-VIDE()) faire x = RETIRER-FILE() ; si x est un but alors renvoie solution(x) ; sinon pour chaque y = Successeur(x) faire AJOUTER-FILE(y); à l Intelligence Artificielle

Propriétés de la recherche en largeur d abord Adéquat Complet (si le facteur de branchement est fini) pas forcément optimal (oui, si coût constant) complexité en temps : complexité en espace : à l Intelligence Artificielle

Limites de l algorithme en largeur Supposons un problème avec les caractéristiques suivantes : un facteur de branchement de 10 espace occupé par chaque noeud : 1000 octets puissance de calcul : 10000 noeuds/s. Prof. Nb. noeuds Tps de calcul Espace mémoire 2 1100 0.11s. 1 Mo 4 111100 11s 106 Mo 6 10 7 19mn 10 Go 8 10 9 31h 1To (10 9 Ko) 10 10 11 129 jours 101 To 12 10 13 35 ans 10 petaoctets (10 16 Ko) 14 10 15 3523 ans 1 exaoctet (10 18 Ko) à l Intelligence Artificielle

En profondeur d abord (Depth-first search) Construction de l arbre de recherche branche par branche Implantation : on utilise une structure de Pile Développer toujours le noeud le plus profond à l Intelligence Artificielle

à l Intelligence Artificielle

Algorithme Profondeur Algorithme 3 : Profondeur Données : Un problème Pb. Résultat : Une solution ou Échec. AJOUTER-PILE(état initial de Pb) ; tant que Non(PILE-VIDE()) faire x = RETIRER-PILE() ; si x est un but alors renvoie solution(x) ; sinon pour chaque y = Successeur(x) faire AJOUTER-PILE(y); à l Intelligence Artificielle

Algorithme Profondeur - version récursive La version récursive est souvent préférée car plus simple à écrire! Procédure Profondeur(x) Données : Un problème Pb. Résultat : Une solution ou Échec. à l Intelligence Artificielle

Propriétés de la recherche en profondeur d abord Adéquat Pas optimal complexité en temps : complexité en espace : Remarque Le BackTrack est une variante de la recherche en profondeur. On ne génère qu un seul successeur. Chaque noeud partiellement exploré mémorise quel sera le prochain successeur à générer. La complexité en espace est alors en O(m) à l Intelligence Artificielle

Profondeur limitée Pour éviter le problème des branches infinies, on peut fixer une limite de profondeur l. Les noeuds à la profondeur l n ont pas de successeurs Une nouvelle source d incomplétude. Selon le problème, on peut choisir judicieusement l Par exemple sur la carte de Roumanie : Il y a 20 villes... on pourrait prendre l = 19 En regardant de plus près... 2 villes quelconques peuvent être reliées en au plus 9 étapes! Ce nombre s appelle le diamètre de l espace de recherche. Il constitue une très bonne limite pour l algorithme Malheureusement pour la plupart des problèmes, on ne peut pas définir une bonne limite sans résoudre le problème. à l Intelligence Artificielle

Algorithme Profondeur limitée - version récursive Procédure Profondeur-limitée(x, l) Données : Un problème Pb. Résultat : Une solution ou Échec. Test_lim faux; si x est un but alors renvoie solution(x) ; sinon si prof (x) = l alors renvoie "limite atteinte" sinon pour chaque y = Successeur(x) faire res Profondeur-limitée(y, l); si res ="limite atteinte" alors Test_lim vrai; sinon si res Échec alors renvoie res ; si Test_lim = vrai alors renvoie "limite atteinte"sinon renvoie Échec à l Intelligence Artificielle

Propriétés de la recherche en profondeur limitée Adéquat Pas optimal complexité en temps : complexité en espace : à l Intelligence Artificielle

Profondeur incrémentale Amélioration de la recherche avec profondeur limitée Itération sur la profondeur limite (0,1,2,...) Avantage de la recherche en profondeur : faible encombrement mémoire Avantage de la recherche en largeur : complétude et optimalité Fonction Profondeur-Incrémentale(Pb) Données : Un problème Pb. Résultat : Une solution ou Échec. pour l 0 à faire res Profondeur-limitée(etat_init(Pb), l); si res "limite atteinte" alors renvoie res à l Intelligence Artificielle

Limit = 0 A A Limit = 1 A A A A B C B C B C B C Limit = 2 A A A A B C B C B C B C D E F G D E F G D E F G D E F G A A A A B C B C B C B C D E F G D E F G D E F G D E F G Limit = 3 A A A A B C B C B C B C D E F G D E F G D E F G D E F G H I J K L M N O H I J K L M N O H I J K L M N O H I J K L M N O A A A A B C B C B C B C D E F G D E F G D E F G D E F G H I J K L M N O H I J K L M N O H I J K L M N O H I J K L M N O A A A A B C B C B C B C D E F G D E F G D E F G D E F G H I J K L M N O H I J K L M N O H I J K L M N O H I J K L M N O à l Intelligence Artificielle

Propriétés de la recherche en profondeur incrémentale Adéquat optimal complexité en temps : complexité en espace : Remarque La génération multiple des noeuds des niveaux supérieurs de l arbre de recherche, n est pas une surcharge importante! à l Intelligence Artificielle

Plan Glouton Rappel : Dijkstra A* 1 2 3 Glouton Rappel : Dijkstra A* 4 à l Intelligence Artificielle

Guider la recherche Glouton Rappel : Dijkstra A* Les mèthodes précédentes sont du type Générer & tester Elles reposent sur un parcours systèmatique de l espace de recherche Elles deviennent rapidement inefficaces (lorsque la taille du pb augmente) En utilisant des informations spécifiques au problème traité on peut améliorer sa résolution à l Intelligence Artificielle

Le meilleur d abord Glouton Rappel : Dijkstra A* Principe : évaluer les différents états afin de selectionner "le meilleur d abord". Mais comment évaluer les états? Choisir à coût sûr à chaque étape le meilleur état, signifie que le calcul de la solution se fait par la fonction de choix. On se contentera d un état potentiellement le meilleur. à l Intelligence Artificielle

Heuristique Glouton Rappel : Dijkstra A* La fonction d évaluation est basée sur une fonction heuristique (du grec heurikein=trouver) Une bonne heuristique doit être : très rapide à calculer, car appelée pour chaque nouveau noeud de la recherche le plus discréminante possible entre les différents états le plus proche de la réalité possible nulle pour tous les noeuds solution Par exemple, sur le problème de la carte de Roumanie, on peut utiliser la distance à vol d oiseau entre chaque ville et Bucarest à l Intelligence Artificielle

Glouton Rappel : Dijkstra A* Oradea 71 Neamt 87 Zerind 75 151 Iasi Arad 140 92 Sibiu 99 Fagaras 118 80 Vaslui Timisoara Rimnicu Vilcea 111 142 211 Lugoj 97 Pitesti 70 98 146 Hirsova Mehadia 101 85 Urziceni 75 138 86 Bucharest 120 Dobreta 90 Craiova Giurgiu Eforie Straight line distance to Bucharest Arad 366 Bucharest 0 Craiova 160 Dobreta 242 Eforie 161 Fagaras 178 Giurgiu 77 Hirsova 151 Iasi 226 Lugoj 244 Mehadia 241 Neamt 234 Oradea 380 Pitesti 98 Rimnicu Vilcea 193 Sibiu 253 Timisoara 329 Urziceni 80 Vaslui 199 Zerind 374 à l Intelligence Artificielle

Plan Glouton Rappel : Dijkstra A* 1 2 3 Glouton Rappel : Dijkstra A* 4 à l Intelligence Artificielle

Méthode Gloutone Glouton Rappel : Dijkstra A* Toujours choisir le noeud qui paraît le plus proche du but L évaluation d un noeud est directement donnée par la fonction heuristique Sur le pb de la Roumanie : on choisit systématiquement la ville suivante en direction de Bucarest et qui permet de faire le plus grand bon en avant C est ce que l on qualifie de comportement glouton à l Intelligence Artificielle

Glouton Rappel : Dijkstra A* (a) The initial state Arad 366 (b) After expanding Arad Arad Sibiu Timisoara Zerind 253 329 374 (c) After expanding Sibiu Arad Sibiu Timisoara Zerind 329 374 Arad Fagaras Oradea Rimnicu Vilcea 366 176 380 193 (d) After expanding Fagaras Arad Sibiu Timisoara Zerind 329 374 Arad Fagaras Oradea Rimnicu Vilcea 366 380 193 Sibiu Bucharest 253 0 à l Intelligence Artificielle

Glouton Rappel : Dijkstra A* Propriétés de la recherche gloutone Adéquate complexité en temps : complexité en espace : Remarque Les complexités sont données dans le pire des cas. Une bonne heuristique améliore de façon importante le temps de calcul à l Intelligence Artificielle

Plan Glouton Rappel : Dijkstra A* 1 2 3 Glouton Rappel : Dijkstra A* 4 à l Intelligence Artificielle

L algorithme de Dijkstra Glouton Rappel : Dijkstra A* Algorithme de calcul de plus court chemin dans un graphe dont la valuation des arcs est positive Principe : tout sous chemin d un chemin optimal est optimal La fonction de choix ne prend en compte que la distance parcourue depuis le noeud initial L algorithme calcule les plus courts chemins entre le sommet de départ et tous les sommets du graphe Basé sur 2 ensembles de sommets S les sommets fixés, et S les sommets non fixés à l Intelligence Artificielle

Algorithme Glouton Rappel : Dijkstra A* Algorithme 7 : Dijkstra(G, s) Données : Un graphe G = (X, U), un sommet s. Résultat : Les plus courts chemins de s à tous les sommets. S X ; d(s) 0 ; pred(s) ; pour tous les i X\{s} faire d(i) + ; tant que S faire choisir i S tel que d(i) est min; S S\{i}; pour tous les j voisins(i) faire si d(j) > d(i) + val(ij) alors d(j) d(i) + val(ij); pred(j) i; à l Intelligence Artificielle

Glouton Rappel : Dijkstra A* Un exemple d exécution de l algo de Dijkstra 2 D 1 3 B 7 E A 6 4 2 10 C 3 F à l Intelligence Artificielle

Glouton Rappel : Dijkstra A* Propriétés de l algorithme de Dijkstra Adéquat complexité en temps : complexité en espace : Avec : ɛ constante positive, inférieure ou égale à tous les coûts élémentaires C le coût de la solution optimale Remarque Si tous les coûts élémentaires sont égaux, l algorithme est équivalent à celui de la largeur. à l Intelligence Artificielle

Plan Glouton Rappel : Dijkstra A* 1 2 3 Glouton Rappel : Dijkstra A* 4 à l Intelligence Artificielle

A* Glouton Rappel : Dijkstra A* Glouton : ni optimal, ni complet, minimise le chemin restant Dijkstra : optimal et complet, minimise le chemin parcouru A* : combine les deux approches Fonction d évaluation est de la forme : f (n) = g(n) + h(n) g(n) est le coût du chemin du noeud initial jusqu au noeud n h(n) est le coût estimé du plus court chemin de n au but f (n) est le coût estimé de la meilleure solution passant par le noeud n à l Intelligence Artificielle

Heuristique admissible Glouton Rappel : Dijkstra A* A* est optimal si h(n) est une heuristique admissible Définition h est une fonction heuristique admissible pour A* ssi Définition h est une heuristique consistante ssi h est admissible et, pour chaque noeud n et chaque successeurs n de n, à l Intelligence Artificielle

Principe de A* Glouton Rappel : Dijkstra A* Sur le même principe que l algorithme de Dijkstra 2 ensembles de noeuds : les Ouverts et les Fermés A chaque étape on choisit un noeud n dans les Ouverts tel que f (n) soit minimum On modifie l évaluation de tous ces voisins pour lesquels on a une amélioration Remarque Dans l algorithme de Dijkstra on ne revient jamais sur un noeud déjà exploré. Avec A*, l évaluation prenant en compte une partie heuristique, elle n est pas sûre à 100%. Il faut donc pouvoir revenir sur une éventuelle erreur. Et faire repasser dans les Ouverts un noeud des Fermés pour lequel une meilleure valeur de g vient d être trouvée. à l Intelligence Artificielle

Glouton Rappel : Dijkstra A* Algorithme 8 : A* Ouverts {etat_init} ; Fermes ; tant que Ouverts faire choisir x Ouverts tel que f (x) est minimal ; Fermes Fermes {x} ; Ouverts Ouverts\{x}; si x est un but alors renvoyer solution(x) ; sinon pour tous les y successeurs(x) faire si y / Ouverts Fermes alors Ouverts Ouverts {y}; g(y) g(x) + val(x, y) ; f (y) g(y) + h(y); sinon si g(y) > g(x) + val(x, y) alors g(y) g(x) + val(x, y) ; f (y) g(y) + h(y); si y Fermes alors Ouverts Ouverts {y} ; Fermes Fermes\{y}; à l Intelligence Artificielle

Glouton Rappel : Dijkstra A* (a) The initial state Arad 366=0+366 (b) After expanding Arad Arad Sibiu 393=140+253 Timisoara Zerind 447=118+329 449=75+374 (c) After expanding Sibiu Arad Sibiu Timisoara Zerind 447=118+329 449=75+374 Arad Fagaras Oradea Rimnicu Vilcea 646=280+366 415=239+176 671=291+380 413=220+193 (d) After expanding Rimnicu Vilcea Arad Sibiu Timisoara Zerind 447=118+329 449=75+374 Arad Fagaras Oradea Rimnicu Vilcea 646=280+366 415=239+176 671=291+380 Craiova Pitesti Sibiu 526=366+160 417=317+100 553=300+253 (e) After expanding Fagaras Arad Sibiu Timisoara Zerind 447=118+329 449=75+374 Arad 646=280+366 Fagaras Oradea 671=291+380 Rimnicu Vilcea Sibiu Bucharest Craiova Pitesti Sibiu 591=338+253 450=450+0 526=366+160 417=317+100 553=300+253 (f) After expanding Pitesti Arad Sibiu Timisoara Zerind 447=118+329 449=75+374 Arad 646=280+366 Fagaras Oradea 671=291+380 Rimnicu Vilcea Sibiu Bucharest Craiova Pitesti Sibiu 526=366+160 553=300+253 591=338+253 450=450+0 Bucharest Craiova Rimnicu Vilcea 418=418+0 615=455+160 607=414+193 à l Intelligence Artificielle

Propriétés de l algorithme A* Glouton Rappel : Dijkstra A* Adéquat complexité en temps : complexité en espace : Remarque De plus A* est d efficacité optimale pour une heuristique donnée! à l Intelligence Artificielle