Vous êtes sur la page 1sur 42

Intelligence Artificielle

Rsolution de problmes laide dalgorithmes de recherche


Alain Boucher
Institut de la Francophonie pour lInformatique (IFI, Vietnam) alain.boucher(arobas)auf.org Cours prpar pour l'Institut de Technologie du Cambodge (ITC)

Rsolution de problmes

Cours d'intelligence artificielle

Agent de rsolution de problmes

Actions Etat initial Test-solution


Cours d'intelligence artificielle 3

Agent de rsolution de problmes


Ce sont des agents bass sur des objectifs. La solution d'un problme s'obtient sous la forme d'une squence d'actions qui mne aux tats-solutions souhaits. Pour cela il faut :
exprimer l'objectif comme un sous-ensemble des tats possibles du monde, clairement spcifier quel est l'espace d'tats du problme : cest-dire quels sont les aspects du monde importants pour le problme rsoudre, clairement spcifier toutes les actions possibles.

Une fois que l'espace d'tats, l'ensemble d'actions, les tatssolutions ont t identifis et spcifis, alors la squence d'actions menant de l'tat initial l'tat-objectif peut tre obtenu par une mthode de recherche.
Cours d'intelligence artificielle 4

Agent de rsolution de problmes


1. Formulation dun but
un ensemble dtats atteindre.

2. Formulation du problme
les tats et les actions considrer.

3. Recherche de solution
examiner les diffrentes squences dactions menant un tat but et choisir la meilleure.

4. Excution
accomplir la squence dactions slectionne.
Cours d'intelligence artificielle 5

Espace d'tats, fonction successeur

Source : http://cui.unige.ch/DI/cours/IA/
Cours d'intelligence artificielle 6

Etat initial

Cours d'intelligence artificielle

Test-solution

Cours d'intelligence artificielle

Dfinir un problme de recherche


Espace d'tats tat initial Fonction "successeur" Test-solution (ou test de but) Cot du chemin (ou fonction-cot)

Cours d'intelligence artificielle

Dfinir un problme de recherche


Espace d'tats
chaque tat est une reprsentation abstraite de l'environnement l'espace d'tat est discret

tat initial Fonction "successeur" Test-solution (ou test de but) Cot du chemin (ou fonction-cot)

Cours d'intelligence artificielle

10

Dfinir un problme de recherche


Espace d'tats tat initial
habituellement l'tat courant parfois un ou plusieurs tats hypothtiques

Fonction "successeur" Test-solution (ou test de but) Cot du chemin (ou fonction-cot)

Cours d'intelligence artificielle

11

Dfinir un problme de recherche


Espace d'tats tat initial Fonction "successeur"
fonction : [ tat sous-ensemble d'tats ] une reprsentation abstraite des actions possibles

Test-solution (ou test de but) Cot du chemin (ou fonction-cot)

Cours d'intelligence artificielle

12

Dfinir un problme de recherche


Espace d'tats tat initial Fonction "successeur" Test-solution (ou test de but)
habituellement une condition satisfaire parfois la description explicite d'un tat

Cot du chemin (ou fonction-cot)

Cours d'intelligence artificielle

13

Dfinir un problme de recherche


Espace d'tats tat initial Fonction "successeur" Test-solution (ou test de but) Cot du chemin (ou fonction-cot)
fonction : [chemin nombre positif ] Habituellement : cot du chemin = somme des cots de ses tapes

Cours d'intelligence artificielle

14

Dfinir un espace d'tats


Le monde rel est excessivement complexe lespace dtats doit tre une abstraction de la ralit tat (abstrait) = ensemble d'tats rels oprateur (abstrait) = combinaison d'actions relles solution (abstraite) = ensemble de chemins-solutions dans le monde rel

Cours d'intelligence artificielle

15

Formulation dun problme

Cours d'intelligence artificielle

16

Exemple 1 : voyage en Roumanie

Cours d'intelligence artificielle

17

Exemple 1 : voyage en Roumanie


On est Arad et on veut aller Bucharest But : tre Bucharest Problme : tats : villes Actions : aller dune ville une autre Solution : Une squence de villes Exemple : Arad, Sibiu, Fagaras, Bucharest

Environnement trs simple


statique, observable, discret et dterministe
Cours d'intelligence artificielle 18

Exemple 2 : laspirateur
Le monde consiste en positions
pice gauche pice droite

Chaque pice peut tre poussireuse L'agent (aspirateur) est dans l'une des 2 pices Il y a au total 8 tats possibles 3 actions possibles:
aller gauche aller droite aspirer
Cours d'intelligence artificielle 19

Exemple 2 : laspirateur
Laspirateur est dans lune des deux pices But : liminer toute la poussire Problme : tats : les 8 tats possibles du problme Actions : se dplacer gauche, droite, aspirer Solution : tre dans ltat 7 ou 8

Environnement trs simple


statique, observable, discret et dterministe

Cours d'intelligence artificielle

20

10

Formulation dun problme


Un problme est dfini par 4 lments :
Etat initial ex: "tre Arad" Actions fonction successeur S(x) = ensemble de paires <action-tat > ex: S(Arad) = {< Arad Zerind, Zerind >, } Test de but explicite x = "tre Bucarest" implicite PasDePoussire(x) Fonction-cot (fonction additive) somme des distances, nombre d'oprateurs excuts,

Une solution est une squence d'oprateurs menant de l'tat initial l'tat final.
Cours d'intelligence artificielle 21

Formulation : aspirateur

tats : entiers indiquant la position du robot et de la poussire (ignorer la quantit de poussire) actions : aller gauche (L), aller droite (R), aspirer (S), ne rien faire (NoOp) test de but : plus de poussire nulle part fonction-cot : chaque action cote 1 unit, (0 pour NoOp)
Cours d'intelligence artificielle 22

11

Formulation : puzzle-8

tats : numros des positions des plaquettes (ignorer les positions intermdiaires) actions : dplacer la case vide gauche (L), droite (R), en haut (U), en bas (D) test de but : tat courant = tat final fonction-cot : chaque dplacement de la case vide vaut 1, cot total = nombre total de dplacements de la case vide

Remarque : solution optimale pour puzzle-n est NP-difficile


Cours d'intelligence artificielle 23

Typologie des problmes


Tous les problmes qui peuvent tre dcrits par
un ensemble fini d'tats, un ensemble fini d'actions, un sous-ensemble d'tats initiaux et finaux, une relation "successeur" dfinie sur l'ensemble des tats et des actions dans l'ensemble des tats, une fonction de cot positive.

Principalement les problmes dont la solution s'exprime en termes de chemin dans des graphes finis.

Cours d'intelligence artificielle

24

12

Reprsentation par arbre dun problme

Cours d'intelligence artificielle

25

Reprsentation par arbre dun problme


Problme gnral Reprsentation par arbre

Cours d'intelligence artificielle

26

13

Recherche de solutions dans un arbre


Simuler lexploration de lespace dtats en gnrant des successeurs pour les tats dj explors. Nud de recherche
tat : ltat dans lespace dtat. Nud parent : Le nud dans larbre de recherche qui a gnr ce nud. Action : Laction qui a t applique au parent pour gnrer ce nud. Cot du chemin : Le cot du chemin partir de ltat initial jusqu ce nud. g(n) Profondeur : Le nombre dtapes dans le chemin partir de ltat initial.
Cours d'intelligence artificielle 27

Exemple graphe arbre

Cours d'intelligence artificielle

28

14

Exemple de recherche dans un graphe

Ide de base de la recherche dans un arbre :


Exprimer toutes les possibilits Rechercher la meilleure possibilit en parcourant larbre
Source : http://aima.cs.berkeley.edu/
Cours d'intelligence artificielle 29

Exemple de recherche dans un graphe

Ide de base de la recherche dans un arbre :


Exprimer toutes les possibilits Rechercher la meilleure possibilit en parcourant larbre

Cours d'intelligence artificielle

30

15

Exemple de recherche dans un graphe

Ide de base de la recherche dans un arbre :


Exprimer toutes les possibilits Rechercher la meilleure possibilit en parcourant larbre

Problme de la stratgie de recherche ???


Cours d'intelligence artificielle 31

Etats vs noeuds
Un tat est (une reprsentation d')une configuration relle Un nud est un lment d'une structure de donnes constitutive d'un arbre de recherche ; il possde les champs suivants:
tat, parent, (enfants), profondeur, cot du chemin g(x) ces notions nexistent pas pour les tats

Etat

Noeud
enfants
Cours d'intelligence artificielle 32

16

Etats vs noeuds

Source : http://cui.unige.ch/DI/cours/IA/
Cours d'intelligence artificielle 33

Stratgies de recherche
Dtermine lordre de dveloppement des nuds. Stratgies aveugles n'exploitent aucune information contenue dans un nud donn Stratgies heuristiques exploitent certaines informations pour dterminer si un nud est plus prometteur qu'un autre

Cours d'intelligence artificielle

34

17

Exemple : puzzle-8

Source : http://cui.unige.ch/DI/cours/IA/
Cours d'intelligence artificielle 35

Exemple : puzzle-8

Source : http://cui.unige.ch/DI/cours/IA/
Cours d'intelligence artificielle 36

18

Evaluation des stratgies


Compltude
Est-ce que lalgorithme garantit de trouver une solution sil y en a une ?

Optimalit
Est-ce que la stratgie trouve la solution optimale ?

Complexit de temps
Combien de temps a prend pour trouver une solution ?

Complexit despace
Quelle quantit de mmoire a-t-il besoin ?
Cours d'intelligence artificielle 37

Complexit
Elle est exprime en utilisant les quantits suivantes:
b : le facteur de branchement : le nombre maximum de successeurs un nud. d : la profondeur du nud but le moins profond. m : la longueur maximale dun chemin dans lespace dtats.

Complexit de temps : le nombre de nuds gnrs pendant la recherche. Complexit despace : le nombre maximum de nud en mmoire.
Cours d'intelligence artificielle 38

19

Recherche aveugle

Cours d'intelligence artificielle

39

Stratgies de recherche aveugle


Largeur dabord (Breath-first) Cot uniforme (Uniform-cost) Profondeur dabord (Depth-first)
Profondeur limite (Depth-limited) Profondeur itratif (Iterative deepening)

Cours d'intelligence artificielle

40

20

Largeur dabord
Dveloppement de tous les noeuds au niveau i avant de dvelopper les nuds au niveau i + 1. Les nouveaux successeurs vont la fin. File :

Ordre de visite : ABCDEF-G


Cours d'intelligence artificielle 41

Largeur dabord
1 2

Source : http://aima.cs.berkeley.edu/

Cours d'intelligence artificielle

42

21

Proprits de largeur dabord


Compltude
oui (si b est fini)

Complexit de temps
1 + b + b2 + b3 + + bd + (bd+1 b) = O(bd+1)

Complexit despace
O(bd+1) (Garde tous les nuds en mmoire)

Optimal :
non en gnral oui si le cot des actions est le mme pour toutes les actions

Cours d'intelligence artificielle

43

Proprits de largeur dabord

Complexits en temps et en mmoire pour la recherche en largeur dans les conditions suivantes:
facteur de branchement b = 10 production de 1000 noeuds/seconde espace-mmoire de 100 octets/nud
Cours d'intelligence artificielle 44

22

Cot uniforme
Dveloppe le nud ayant le cot le plus bas. File trie selon le cot. quivalent largeur dabord si le cot des actions est toujours le mme. Compltude : oui Complexit en temps : O(bd) Complexit en espace : O(bd) Optimal : oui

Cours d'intelligence artificielle

45

Exemple de cot uniforme

Cours d'intelligence artificielle

46

23

Profondeur dabord
Dveloppe le nud le plus profond. Implment laide dun pile. Les nouveaux nuds gnrs vont sur le dessus. Pile :

Ordre de visite : ABDHIEJK-C


Cours d'intelligence artificielle 47

Profondeur dabord
1 2 3

Source : http://aima.cs.berkeley.edu/
Cours d'intelligence artificielle 48

24

Proprits de profondeur dabord


Compltude
non si la profondeur est infinie, sil y a des cycles. oui si espaces finis acycliques. Complexit en temps : O(bm) Trs mauvais si m est plus grand que d

Complexit en espace : O(bm) linaire. Optimal : Non.

Cours d'intelligence artificielle

49

Profondeur limite
Lalgorithme de profondeur dabord, mais avec une limite de l sur la profondeur.
Les nuds de profondeur l nont pas de successeurs.
Exemple avec l=2

Cours d'intelligence artificielle

50

25

Profondeur limite
Compltude : oui, si l d Complexit en temps : O(bl) Complexit en espace : O(b*l) linaire Optimal : Non 3 possibilits :
solution chec absence de solution dans les limites de la recherche

Cours d'intelligence artificielle

51

Profondeur itrative
Le problme avec la recherche en profondeur limite est de fixer la bonne valeur de L. Profondeur itrative = rpter pour toutes les valeurs possibles de L = 0, 1, 2, combine les avantages de la recherche en largeur et en profondeur
presque optimal et complet comme la recherche en largeur conome en espace comme la recherche en profondeur

C'est l'algorithme de choix si l'espace de recherche est grand et si la profondeur de la solution est inconnue
Cours d'intelligence artificielle 52

26

Profondeur itrative
Limite = 1

Source : http://aima.cs.berkeley.edu/
Cours d'intelligence artificielle 53

Profondeur itrative
Limite = 2

Source : http://aima.cs.berkeley.edu/
Cours d'intelligence artificielle 54

27

Profondeur itrative
Limite = 3

Source : http://aima.cs.berkeley.edu/
Cours d'intelligence artificielle 55

Proprits profondeur itrative


Compltude : Oui Complexit en temps : O(bd) Complexit en espace : O(b*d) Optimal : presque, si le cot de chaque action est de 1.

Cours d'intelligence artificielle

56

28

Comparaison pour la recherche aveugle


Comparaison de 5 algorithmes selon les 4 critres d'valuation retenus avec:

b d m l

= facteur de branchement = profondeur de la solution = profondeur maximum de l'arbre de recherche = limite de la profondeur de recherche Largeur dabord Oui* Cot uniforme Oui* O(bd)
O(bd)

Critre
Compltude Temps Espace Optimal

Profondeur Profondeur Profondeur dabord limite itrative Non Oui, si ld Oui

O(bd+1) O(bd+1)
Oui*

O(bm) O(bm)
Non

O(bl) O(bl)
Non

O(bd) O(b*d)
Oui*
57

Oui

Cours d'intelligence artificielle

Recherche heuristique

Cours d'intelligence artificielle

58

29

Recherche heuristique
Les algorithmes de recherche aveugle n'exploitent aucune information concernant la structure de l'arbre de recherche ou la prsence potentielle de nuds-solution pour optimiser la recherche.
Recherche simple" travers l'espace jusqu' trouver une solution.

La plupart des problmes rels sont susceptibles de provoquer une explosion combinatoire du nombre d'tats possibles. Un algorithme de recherche heuristique utilise l'information disponible pour rendre le processus de recherche plus efficace. Une information heuristique est une rgle ou une mthode qui presque toujours amliore le processus de recherche.
Cours d'intelligence artificielle 59

Fonction heuristique
Une fonction heuristique
H:ER

fait correspondre un tat s E (espace dtats) un nombre h(s) R qui est (gnralement) une estimation du rapport cot/bnfice qu'il y a tendre le chemin courant en passant par s.
Contrainte : h(solution) = 0 Le nud A a 3 successeurs pour lesquels : h(s1) = 0.8 h(s2) = 2.0 h(s3) = 1.6 La poursuite de la recherche par s1 est heuristiquement la meilleure.
Cours d'intelligence artificielle 60

30

Exemples de fonctions heuristiques


Puzzle-8

h(N) = nombre de plaquettes mal places = 6

h(N) = somme des distances (Manhattan) de chaque plaquette sa position finale =3+1+3+0+2+1+0+3 = 13
Cours d'intelligence artificielle 61

Recherche meilleur-dabord
Combinaison entre recherche en profondeur et en largeur. En profondeur
Avantage : solution trouve sans avoir besoin de calculer tous les nuds

En largeur
Avantage : ne risque pas de rester pris dans une impasse"

L'algorithme recherche meilleur-dabord permet d'explorer les nuds dans l'ordre (croissant/dcroissant) de leurs valeurs heuristiques

Cours d'intelligence artificielle

62

31

Recherche meilleur-dabord
Ide : tendre le noeud le plus prometteur selon sa valeur heuristique. Cas particuliers de la recherche meilleur-dabord Recherche avare A*

Cours d'intelligence artificielle

63

Recherche avare
Stratgie la plus simple de recherche meilleur-dabord Fonction heuristique
h(n) = estimation du cot du nud n au but

Recherche avare = minimiser le cot estim pour atteindre le but Le nud qui semble tre le plus proche du but sera tendu en priorit Fonctions heuristiques classiques
distance vol d'oiseau distance Manhattan : dplacements limits aux directions verticales et horizontales
Cours d'intelligence artificielle 64

32

Exemple : voyage en Roumanie

Cours d'intelligence artificielle

65

Exemple : voyage en Roumanie

h(N) = distance vol doiseau Les noeuds sont tiquetts avec leurs valeurs heuristiques
Source : http://aima.cs.berkeley.edu/
Cours d'intelligence artificielle 66

33

Exemple : voyage en Roumanie

h(N) = distance vol doiseau Les noeuds sont tiquetts avec leurs valeurs heuristiques
Cours d'intelligence artificielle 67

Exemple : voyage en Roumanie

h(N) = distance vol doiseau Les noeuds sont tiquetts avec leurs valeurs heuristiques
Cours d'intelligence artificielle 68

34

Exemple : voyage en Roumanie

h(N) = distance vol doiseau Les noeuds sont tiquetts avec leurs valeurs heuristiques
Cours d'intelligence artificielle 69

Proprits recherche avare


Compltude : Non, peut rester pris dans une boucle, est complet si espace de recherche fini et si vrification d'absence de boucle. Complexit en temps : O(bm) exponentielle Complexit en espace : O(bm) garde tous les noeuds en mmoire Optimal : Non Remarque : la performance de la recherche avare est fonction de la prcision de h(), avec une bonne fonction heuristique, les complexits en temps et en espace peuvent tre fortement rduites.
Cours d'intelligence artificielle 70

35

Recherche avare - commentaires


La solution
Arad > Sibiu > Fagaras > Bucarest

n'est pas optimale; elle est de 32 km plus longue que


Arad > Sibiu > Rimnicu > Pitesti > Bucarest

car lalgorithme ne considre pas la distance parcourue. Stratgie : toujours enlever le plus grand morceau du cot restant pour atteindre le but cest--dire minimiser le cot estim pour atteindre la solution
Relativement efficace, quoique pas toujours optimal

Susceptible de faux dpart


exemple: pour aller de Iasi Fagaras, la recherche avare considre Neamt avant Vaului, mme si cest une impasse.
Cours d'intelligence artificielle 71

Algorithme A*
Recherche avare minimise le cot estim h(n) du nud n au but rduisant ainsi beaucoup le cot de la recherche,
mais il nest pas optimal et pas complet L'algorithme de recherche en cot uniforme minimise le cot g(n) depuis l'tat initial au nud n, il est optimal et complet, mais pas trs efficace. Ide : combiner les deux algorithmes et minimiser le cot total f(n) du chemin passant par le nud n f(n) = g(n) + h(n)
Cours d'intelligence artificielle 72

36

Algorithme A*
Thorme : si A* utilise une fonction heuristique admissible, cd qui ne surestime jamais le cot rel cest-dire si
n 0 h(n) h*(n) avec h*(n) cot rel de n au but

alors A* est optimal une fonction heuristique admissible est toujours optimiste! Exemple : hvol doiseau(n) de surestime jamais la distance relle.
Cours d'intelligence artificielle 73

Exemple : voyage en Roumanie

Cours d'intelligence artificielle

74

37

Exemple : voyage en Roumanie

Source : http://aima.cs.berkeley.edu/
Cours d'intelligence artificielle 75

Exemple : voyage en Roumanie

Cours d'intelligence artificielle

76

38

Exemple : voyage en Roumanie

Cours d'intelligence artificielle

77

Exemple : voyage en Roumanie

Cours d'intelligence artificielle

78

39

Exemple : voyage en Roumanie

Cours d'intelligence artificielle

79

Exemple : voyage en Roumanie

Cours d'intelligence artificielle

80

40

Optimalit de A*
A* tend les nuds dans l'ordre croissant des valeurs de f Tous les noeuds lintrieur du contour i ont des valeurs f < fi avec fi < fi+1

Cours d'intelligence artificielle

81

Proprits A*
Compltude : Oui, sauf si nombre infini de noeuds Complexit en temps : exponentielle Complexit en espace : garde tous les noeuds en mmoire Optimal : Oui

Cours d'intelligence artificielle

82

41

Exemple : Puzzle-8
Problme du puzzle-8 : total 9! = 362 880 tats possibles
h1(N) = nombre de plaquettes mal places h2(N) = somme des distances (Manhattan) de chaque plaquette sa position finale

h1(start) = 6 h2(start) = 4 + 0 + 3 + 3 + 1 + 0 + 2 + 1 = 14
Cours d'intelligence artificielle 83

42