Introduction à l Intelligence Artificielle

Documents pareils
Algorithmes de recherche

Cours de Master Recherche

Programmation Par Contraintes

Programmation par contraintes. Laurent Beaudou

Intelligence Artificielle Planification

Intelligence Artificielle et Robotique

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

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

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

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

Programmation linéaire

Master IMA - UMPC Paris 6 RDMM - Année Fiche de TP

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

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Plus courts chemins, programmation dynamique

Informatique Générale

Les apports de l informatique. Aux autres disciplines

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

Qualité du logiciel: Méthodes de test

Chapitre 5 : Flot maximal dans un graphe

Pourquoi l apprentissage?

Systèmes décisionnels et programmation avancée

Introduction à la Programmation par Contraintes (PPC) Ruslan Sadykov LIX, École Polytechnique

Algorithmes d'apprentissage

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

Stratégie de recherche adaptative en programmation par contrainte

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

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

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

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

Intelligence Articielle (1) Introduction

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

Polynômes à plusieurs variables. Résultant

L apprentissage automatique

Chapitre 7. Récurrences

Contrainte de flot pour RCPSP avec temps de transfert

FIMA, 7 juillet 2005

Transmission d informations sur le réseau électrique

Modélisation multi-agents - Agents réactifs

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)

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

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

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

L exclusion mutuelle distribuée

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

Qu est-ce qu une probabilité?

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

Resolution limit in community detection

Représentation d un entier en base b

Annexe 6. Notions d ordonnancement.

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Initiation à l algorithmique

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

Correction TD algorithmique

ARBRES BINAIRES DE RECHERCHE

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

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

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

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

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

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

MIS 102 Initiation à l Informatique

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Synergies entre Artisan Studio et outils PLM

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

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

Coup de Projecteur sur les Réseaux de Neurones

Utilisation des tableaux sémantiques dans les logiques de description

Bases de données Cours 5 : Base de données déductives

Apprentissage Automatique

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Algorithmes de recherche d itinéraires en transport multimodal

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

L analyse d images regroupe plusieurs disciplines que l on classe en deux catégories :

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

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

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

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

LE PROBLEME DU PLUS COURT CHEMIN

Ingénierie et gestion des connaissances

Résolution d équations non linéaires

Codage d information. Codage d information : -Définition-

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

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

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Raisonnement probabiliste

4.2 Unités d enseignement du M1

Solution logicielle pour le pilotage et l ERM. Journées d études IARD 26 mars mars 2010

Création intuitive des éléments d un paysage

Licence Sciences et Technologies Examen janvier 2010

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

Poker. A rendre pour le 25 avril

Programmation linéaire

Chp. 4. Minimisation d une fonction d une variable

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

Algèbre binaire et Circuits logiques ( )

Sujet 4: Programmation stochastique propriétés de fonction de recours

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

Correction du baccalauréat S Liban juin 2007

Transcription:

1/ 111 à l Intelligence Artificielle Eric Salvat IMERIR salvat@imerir.com 2009-2010

2/ 111 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

3/ 111 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

4/ 111 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,...

5/ 111 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

6/ 111 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

7/ 111 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

8/ 111 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

9/ 111 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

10/ 111 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"

1/ 111 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

12/ 111 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

13/ 111 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

14/ 111 Plan Formalisation Recherche arborescente 1 2 Formalisation Recherche arborescente Recherche en largeur d abord Recherche en profondeur d abord Recherche en profondeur limitée Recherche en profondeur incrémentale 3 4

5/ 111 Un exemple Formalisation Recherche arborescente En vacance en Roumanie, actuellement dans la ville d Arad. Votre avion de retour décolle le lendemain de Bucarest. Formuler le problème

16/ 111 Une carte Oradea Formalisation Recherche arborescente Neamt Zerind Arad Iasi Sibiu Fagaras Vaslui Timisoara Rimnicu Vilcea Lugoj Pitesti Mehadia Urziceni Hirsova Dobreta Craiova Bucharest Giurgiu Eforie

7/ 111 Trois étapes Formalisation Recherche arborescente Formulation du problème Recherche de la solution Exécution de la solution

18/ 111 Plan Formalisation Recherche arborescente 1 2 Formalisation Recherche arborescente Recherche en largeur d abord Recherche en profondeur d abord Recherche en profondeur limitée Recherche en profondeur incrémentale 3 4

19/ 111 Définition d un Problème Formalisation Recherche arborescente 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.

0/ 111 Un autre exemple Formalisation Recherche arborescente 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

21/ 111 L aspirateur : les différents états Formalisation Recherche arborescente 1 2 3 4 5 6 7 8

22/ 111 Formalisation Recherche arborescente 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

23/ 111 L aspirateur : formalisation Formalisation Recherche arborescente État : État initial : Fonction successeur : Test de réussite : Coût :

24/ 111 Autre example le taquin 3x3 Formalisation Recherche arborescente 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

25/ 111 Plan Formalisation Recherche arborescente 1 2 Formalisation Recherche arborescente Recherche en largeur d abord Recherche en profondeur d abord Recherche en profondeur limitée Recherche en profondeur incrémentale 3 4

Construction d une solution Formalisation Recherche arborescente 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 6/ 111 Arad

7/ 111 Programmation : État vs Noeud Formalisation Recherche arborescente 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

28/ 111 Formalisation Recherche arborescente 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;

9/ 111 Stratégies de recherche Formalisation Recherche arborescente 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.

30/ 111 Comparer les stratégies Formalisation Recherche arborescente Qualité des solutions Coût en terme de ressources nécessaires à la résolution :

1/ 111 Formalisation Recherche arborescente 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

33/ 111 Formalisation Recherche arborescente

34/ 111 Algorithme Largeur Formalisation Recherche arborescente 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);

5/ 111 Formalisation Recherche arborescente 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 :

36/ 111 Formalisation Recherche arborescente 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)

37/ 111 Formalisation Recherche arborescente 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

39/ 111 Formalisation Recherche arborescente

40/ 111 Algorithme Profondeur Formalisation Recherche arborescente 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);

1/ 111 Formalisation Recherche arborescente 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.

2/ 111 Formalisation Recherche arborescente 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)

43/ 111 Profondeur limitée Formalisation Recherche arborescente 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.

44/ 111 Formalisation Recherche arborescente 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

45/ 111 Formalisation Recherche arborescente Propriétés de la recherche en profondeur limitée Adéquat Pas optimal complexité en temps : complexité en espace :

46/ 111 Profondeur incrémentale Formalisation Recherche arborescente 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

48/ 111 Formalisation Recherche arborescente 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

9/ 111 Formalisation Recherche arborescente 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!

50/ 111 Plan Glouton Rappel : Dijkstra A* 1 2 3 Glouton Rappel : Dijkstra A* 4

51/ 111 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

52/ 111 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.

3/ 111 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

54/ 111 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

55/ 111 Plan Glouton Rappel : Dijkstra A* 1 2 3 Glouton Rappel : Dijkstra A* 4

56/ 111 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

58/ 111 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

59/ 111 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

60/ 111 Plan Glouton Rappel : Dijkstra A* 1 2 3 Glouton Rappel : Dijkstra A* 4

61/ 111 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

62/ 111 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;

63/ 111 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

4/ 111 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.

65/ 111 Plan Glouton Rappel : Dijkstra A* 1 2 3 Glouton Rappel : Dijkstra A* 4

6/ 111 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

67/ 111 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,

68/ 111 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.

69/ 111 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};

71/ 111 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

2/ 111 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!

73/ 111 Plan et définition Représentation graphique Solution d un CSP Recherche de solution 1 2 3 4 et définition Représentation graphique Solution d un CSP Recherche de solution

4/ 111 et définition Représentation graphique Solution d un CSP Recherche de solution Problèmes de satisfaction de contraintes Un langage formel de représentation de problèmes Des variables et des restrictions sur les valeurs acceptables pour ces variables Adaptation des algos de recherche de solution dans un soucis d efficacité

75/ 111 CSP - Principe et définition Représentation graphique Solution d un CSP Recherche de solution Un ensemble de variables Prenant leurs valeurs dans leur domaine En respectant les combinaisons de valeurs compatibles entre les différentes variables.

76/ 111 Un exemple et définition Représentation graphique Solution d un CSP Recherche de solution Exemple Le problème des 4-reines modélisé par un CSP. 4 variables (une par reine) : Q 1, Q 2, Q 3, Q 4 les 4 domaines sont identiques : i = 1, 2, 3, 4D i = {1; 2; 3; 4} les contraintes : Chaque reine est contrainte par toutes les autres i, j i j, Q i Q J i, j i j, Q i Q j i j

7/ 111 Quelques restrictions et définition Représentation graphique Solution d un CSP Recherche de solution Dans ce cours on ne traitera que les CSP pour lesquels : les domaines des variables sont finis et discrets les contraintes sont binaires les ensembles de valeurs compatibles sont donnés en extension

78/ 111 Définition et définition Représentation graphique Solution d un CSP Recherche de solution Définition Un CSP est un quadruplet Π = (X, D, C, R) où : X = {X 1 ; X 2 ;... ; X n } est l ensemble fini des variables D = {D 1 ; D 2 ;... ; D n } est l ensemble des domaines de valeurs de variables C = {C 1 ; C 2 ;... ; C m } est l ensemble des contraintes. j 1 j m C j X pour nous C j X 2 R = {R 1 ; R 2 ;... ; R m } est l ensemble des relations. j 1 j m tq C j = (X j1, X j2 ) R j D j1 D j2

9/ 111 Retour sur l exemple et définition Représentation graphique Solution d un CSP Recherche de solution Exemple Pour le problème des 4 reines, on construit le CSP Π = (X, D, C, R) avec : X = {Q 1 ; Q 2 ; Q 3 ; Q 4 } D = {D 1 ; D 2 ; D 3 ; D 4 } et i = 1, 2, 3, 4D i = {1; 2; 3; 4} C = {C 1 = (Q 1 ; Q 2 ); C 2 = (Q 1 ; Q 3 ); C 3 = (Q 1 ; Q 4 ); C 4 = (Q 2 ; Q 3 ); C 5 = (Q 2 ; Q 4 ); C 6 = (Q 3 ; Q 4 )} R = {R 1 ; R 2 ; R 3 ; R 4 ; R 5 ; R 6 } où : R 1 = {(1; 3); (1; 4); (2; 4); (3; 1); (4; 1); (4; 2)} = R 4 = R 6 R 2 = {(1; 2); (1; 4); (2; 1); (2; 3); (3; 2); (3; 4); (4; 1); (4; 3)} = R 5 R 3 = {(1; 2); (1; 3); (2; 1); (2; 3); (2; 4); (3; 1); (3; 2); (3; 4); (4; 2); (4; 3)}

80/ 111 et définition Représentation graphique Solution d un CSP Recherche de solution Un autre exemple : coloration d une carte Exemple But : colorier une carte de sorte que 2 pays limitrophes n aient pas la même couleur. P3 P1 P2 P4 P5 P6

1/ 111 et définition Représentation graphique Solution d un CSP Recherche de solution Un autre exemple : coloration d une carte Exemple On construit le CSP Π col = (X, D, C, R) avec : X = {P 1 ; P 2 ; P 3 ; P 4 ; P 5 ; P 6 } D = {D 1 ; D 2 ; D 3 ; D 4 ; D 5 ; D 6 } et i = 1, 2, 3, 4, 5, 6D i = {R; V ; B} C = {C 1 = (P 1 ; P 2 ); C 2 = (P 1 ; P 3 ); C 3 = (P 1 ; P 4 ); C 4 = (P 2 ; P 4 ); C 5 = (P 2 ; P 5 ); C 6 = (P 3 ; P 4 ); C 7 = (P 3 ; P 5 ); C 8 = (P 4 ; P 5 ); C 9 = (P 5 ; P 6 )} R = {R 1 ; R 2 ; R 3 ; R 4 ; R 5 ; R 6 ; R 7 ; R 8 ; R 9 } où : R 1 = R 2 = R 3 = R 4 = R 5 = R 6 = R 7 = R 8 = R 9 = {(R, V ); (R, B); (V, R); (V, B); (B, R); (B, V )}

82/ 111 Plan et définition Représentation graphique Solution d un CSP Recherche de solution 1 2 3 4 et définition Représentation graphique Solution d un CSP Recherche de solution

83/ 111 Graphe des contraintes et définition Représentation graphique Solution d un CSP Recherche de solution Soit Π = (X, D, C, R) un CSP on lui associe le graphe G = (X, C) chaque variable est un sommet chaque contrainte est un arc Exemple (les 4 reines) Q 1 Q 2 Q 3 Q 4

84/ 111 et définition Représentation graphique Solution d un CSP Recherche de solution Graphes des contraintes du pb de coloration Exemple (le pb de coloration) P 1 P 2 P 4 P 3 P 5 P 6

5/ 111 Graphe des relations et définition Représentation graphique Solution d un CSP Recherche de solution Utilisation d un graphe multi-parties Chaque composante est un domaine d une variable On construit le graphe G = (D, R) Exemple (partiel sur la coloration) P 1 R R P 2 R P 5 V V V B B B

86/ 111 Plan et définition Représentation graphique Solution d un CSP Recherche de solution 1 2 3 4 et définition Représentation graphique Solution d un CSP Recherche de solution

7/ 111 Instanciation et définition Représentation graphique Solution d un CSP Recherche de solution Définition (instanciation) Soient Π = (X, D, C, R) un CSP et X X, X = {X i1 ; X i2 ;... ; X ik }. On appelle instanciation de X tout élément I de D i1 D i2 D ik. Pour tout X X, on notera I[X ] la projection de I sur X Exemple Sur le Π col, I = est une instanciation de

8/ 111 Instanciation Consistante et définition Représentation graphique Solution d un CSP Recherche de solution Définition (instanciation consistante) Soient Π = (X, D, C, R) un CSP, X X, et I une instanciation de X. I est une instanciation consistante ssi C j C/C j X I[C j ] R j. (i.e. I respecte les contraintes de Π)

89/ 111 Solution et définition Représentation graphique Solution d un CSP Recherche de solution Définition Soit Π = (X, D, C, R) un CSP. Une de Π est une instanciation consistante de X. (i.e. une valeur pour chaque variable en respectant toutes les contraintes) Exemple I 1 = (R, V, R, B, V, R) I 2 = (R, V, V, B, R, B) de Π col de Π col

90/ 111 Plan et définition Représentation graphique Solution d un CSP Recherche de solution 1 2 3 4 et définition Représentation graphique Solution d un CSP Recherche de solution

1/ 111 Première approche et définition Représentation graphique Solution d un CSP Recherche de solution Méthode constructive de type générer et tester état inital : aucune variable n est instanciée opérateur : instancier une variable libre test de réussite : toutes les variables sont instanciées et l instanciation est consistante un état : un ensemble de variables instanciées avec leur valeur un ensemble de variables non instanciées les domaines de chaque variable

2/ 111 Schéma de déroulement et définition Représentation graphique Solution d un CSP Recherche de solution F={P 1 ;... ; P 6 } I= F={P 2 ;... ; P 6 } I={(P 1, R)}... F={P 1 ; P 3 ;... ; P 6 } I={(P 2, V )}... F={P 1 ;... ; P 5 } I={(P 6, B)} F : ensemble des variables libres. I : instanciation partielle.

3/ 111 et définition Représentation graphique Solution d un CSP Recherche de solution Critique de la méthode "Générer et Tester" Constat ordre d affection des variables sans conséquence sur la satisfaction des contraintes Conséq. arbre inutilement large Constat une instanciation non consitante ne peut être étendue de façon consistante Conséq. génération d instanciations inutiles

94/ 111 Algorithme BackTrack et définition Représentation graphique Solution d un CSP Recherche de solution Algorithme 9 : BackTrack(I = (d 1,..., d k ), k) Données : Un CSP Π = (X, D, C, R), un entier k X, et I une instanciation consistante de X 1,..., X k. Résultat : Les instanciations consistantes de X qui étendent I si k = X alors I = (d 1,..., d k ) est une solution ; sinon pour chaque d k+1 D k+1 faire pour chaque C j = (X i, X k+1 ) C tel que i k faire si (d i, d k+1 ) R j alors BackTrack((d 1,..., d k, d k+1 ), k + 1);

95/ 111 Amélioration du BacktTrack et définition Représentation graphique Solution d un CSP Recherche de solution Notation Soient Π = (X, D, C, R) et I une instanciation consistante de X = {X 1 ;... ; X k }. Pour tout X j / X, on note Dj I = {d j D j /I {(X j, d j )} est une instanciation consistante de {X 1 ;... ; X k ; X j }}. Exemple Sur le problème des 4 reines. Soit I = {(Q 1, 2); (Q 2, 4)} une instanciation de {Q 1 ; Q 2 }.

96/ 111 Forward Checking et définition Représentation graphique Solution d un CSP Recherche de solution Algorithme 10 : ForwardChecking(I = (d 1,..., d k ), k) Données : Un CSP Π = (X, D, C, R), un entier k X, et I une instanciation consistante de X 1,..., X k. Résultat : Les instanciations consistantes de X qui étendent I si k = X alors I = (d 1,..., d k ) est une solution ; sinon pour chaque i > k faire D i D (d 1,...,d k ) i ; si i > k D (d 1,...,d k ) i alors pour chaque d k+1 D k+1 faire ForwardChecking((d 1,..., d k, d k+1 ), k + 1) ;

97/ 111 Méthodes de Filtrages et définition Représentation graphique Solution d un CSP Recherche de solution Méthodes précédentes : construction au fur et à mesure d une instanciation Mais : l instanciation courante peut ne pas être prolongeable en une solution Filtrage : éliminer avant la recherche de solution les valeurs avec les quelles on est sûr de ne pas pouvoir construire de solution

98/ 111 Un exemple et définition Représentation graphique Solution d un CSP Recherche de solution Exemple Soit le CSP Π = (X, D, C, R) avec : X = {X 1 ; X 2 ; X 3 } D = {D 1 ; D 2 ; D 3 } et D 1 = D 2 = D 3 = {a; b} C = {C 1 = (X 1, X 2 ); C 2 = (X 2, X 3 )} R = {R 1 = {(b, a); (b, b)}; R 2 = {(a, a); (a, b); (b, b)}}

99/ 111 Définitions préliminaires et définition Représentation graphique Solution d un CSP Recherche de solution Définition (CSP équivalents) Deux CSP sont équivalents si ils ont Définition (Comparaison de CSP équivalents) Soient Π 1 = (X, D 1, C, R) et Π 2 = (X, D 2, C, R) deux CSP (différents seulement par les domaines des variables). Π 1 D Π 2

100/ 111 Consistance d arc et définition Représentation graphique Solution d un CSP Recherche de solution Définition (Domaine AC) Soit Π = (X, D, C, R) un CSP. D i D est AC (Arc Consistant) ssi d i D i, C j = (X i, X k ) C, d k D k tq (d i, d k ) R j Définition (CSP AC) Soit Π = (X, D, C, R) un CSP. Π est AC ssi Exemple (CSP non AC)

01/ 111 Fortement AC et définition Représentation graphique Solution d un CSP Recherche de solution Définition Soit Π = (X, D, C, R) un CSP. Π est fortement Arc Consistant ssi : Remarque La consistance d arc est une consistance partielle : un CSP AC ne possède pas nécessairement de solution.

102/ 111 AC(Π) et définition Représentation graphique Solution d un CSP Recherche de solution Définition Soit Π = (X, D, C, R) un CSP. La fermeture consistante de Π est le CSP AC(Π) = (X, D, C, R ) tel que : AC(Π) D Π AC(Π) est AC Π AC(Π) < D Π D Π et Π est AC (i.e. AC(Π) est maximal).

104/ 111 Exemple et définition Représentation graphique Solution d un CSP Recherche de solution Exemple a b a a b b

105/ 111 Propriétés de AC(Π) et définition Représentation graphique Solution d un CSP Recherche de solution Propriété Quelque soit Π un CSP, AC(Π) est unique. Propriété Π et AC(Π) sont équivalents.

06/ 111 Principe du filtrage AC et définition Représentation graphique Solution d un CSP Recherche de solution Idée : supprimer des domaines, les valeurs ne respaectant pas l arc consistance Algorithme en 2 étapes : 1 détecter les valeurs non AC 2 supprimer ces valeurs et propager les suppressions

07/ 111 Structures de données et définition Représentation graphique Solution d un CSP Recherche de solution Supports : X i X, d i D i Support(X i, d i ) = Nombre de supports : X i X, d i D i, X j /(X i, X j ) C Cpt(X i, d i, X j ) = Exemple Sur le CSP précédent : Support(X 1, b) = Cpt(X 2, b, X 3 ) =

108/ 111 Filtrage AC : première étape(1/2) et définition Représentation graphique Solution d un CSP Recherche de solution Algorithme 11 : Initialisation de AC (1/2) Données : Un CSP Π = (X, D, C, R) Résultat : Instanciation des Supports et compteurs pour chaque D i D faire D i D i ; pour chaque d i D i faire Support(X i, d i ) = ; L ;

109/ 111 Filtrage AC : première étape(2/2) et définition Représentation graphique Solution d un CSP Recherche de solution Algorithme 12 : Initialisation de AC (2/2) pour chaque X i X faire pour chaque C k = (X i, X j ) C faire pour chaque d i D i faire Cpt(X i, d i, X j ) 0 ; pour chaque (d, d j ) R k faire si d = d i alors Cpt(X i, d i, X j ) Cpt(X i, d i, X j ) + 1; Support(X i, d i ) Support(X i, d i ) {(X j, d j )} ; si Cpt(X i, d i, X j ) = 0 alors L L {(X i, d i )} ;

110/ 111 Filtrage AC : deuxième étape et définition Représentation graphique Solution d un CSP Recherche de solution Algorithme 13 : AC : Suppression et propagation tant que L faire Choisir (X i, d i ) L ; D i D i {d i } ; pour chaque (X j, d j ) Support(X i, d i ) faire Cpt(X j, d j, X i ) Cpt(X j, d j, X i ) 1; si Cpt(X j, d j, X i ) = 0 alors si d j D j alors L L {(X j, d j )}

111/ 111 et définition Représentation graphique Solution d un CSP Recherche de solution Remarque L agorithme de filtrage est linéaire dans la taille de la donnée ; Le filtrage peut conduire à une solution ou peut ne rien simplifier ; Le filtrage AC peut être utilisé dans le BackTrack ; L AC est le filtrage de base permettant de définir des filtrages de niveaux supérieurs (e.g. Chemin Consistance, etc.).