Intelligence Artificielle...

72
Intelligence Artificielle Recherche Bruno Bouzy http://web.mi.parisdescartes.fr/~bouzy [email protected] Licence 3 Informatique UFR Mathématiques et Informatique Université Paris Descartes

Transcript of Intelligence Artificielle...

Page 1: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Intelligence ArtificielleRecherche

Bruno Bouzy

http://web.mi.parisdescartes.fr/[email protected]

Licence 3 InformatiqueUFR Mathématiques et Informatique

Université Paris Descartes

Page 2: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Algorithmes de recherche en IA

Agents avec objectifs explicitesLes differents types de problemeExemples de problemesAlgorithme de recherche de base (recherche aveugle)

4 / 46Intelligence artificielle

N

Page 3: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Algorithmes de recherche en IA

Agents avec objectifs explicitesLes differents types de problemeExemples de problemesAlgorithme de recherche de base (recherche aveugle)

5 / 46Intelligence artificielle

N

Page 4: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Agent avec des objectifs explicites

6 / 46Intelligence artificielle

N

Page 5: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Exemple de probleme: le voyage enRoumanie

Arad

Zerind

Timisoara

Oradea

Sibiu

Lugoj

Mehadia

Dobreta

Craiova

Rimnicu Vilcea

Fagaras

Pitesti

Bucharest

Giurgiu

Urziceni

Hirsova

Eforie

VasluiLasi

Neamt

75

118

71

140

151

111

70

75

120

80

146

99

138

97

211

101

90

8598

80

142

92

87

7 / 46Intelligence artificielle

N

Page 6: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Algorithmes de recherche en IA

Agents avec objectifs explicitesLes differents types de problemeExemples de problemesAlgorithme de recherche de base (recherche aveugle)

8 / 46Intelligence artificielle

N

Page 7: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Les differents types de problemes

Deterministe, completement observable → probleme a un seul etat

L’agent sait exactement dans quel etat il est et dans quel etat il seraLa solution est une sequence d’actions

Non-observable → probleme sans possibilite de percevoir l’environnement

L’agent n’a aucune idee d’ou il est reellementLa solution est une sequence d’actions

Non-deterministe ou partiellement observable → probleme dans lesquels ilfaut gerer des eventualites

Les perceptions fournissent de nouvelles informations sur l’etat courantSouvent les phases de recherche et d’execution sont entrelacees

L’expace d’etats est inconnu → probleme d’exploration

9 / 46Intelligence artificielle

N

Page 8: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Exemple : Le monde de l’aspirateur

Probleme deterministe completement observable

Etat initial : #5

Etat final : #8

Solution : 〈droite, aspire〉

10 / 46Intelligence artificielle

N

Page 9: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Exemple : Le monde de l’aspirateur

Probleme deterministe non observable

Etats initiaux : {#1, #2, #3,#4, #5, #6, #7, #8}Solution pour {#1, #3, #5,#7} :〈aspire, droite, aspire〉Solution pour {#2, #4 #6,#8} :〈gauche, aspire, droite, aspire〉

11 / 46Intelligence artificielle

N

Page 10: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Exemple : Le monde de l’aspirateur

Probleme non deterministe partiellement observable

Non-deterministe : aspirer negarantit pas que le sol soitpropre

Partiellement observable : onne sait pas si le sol a droite estpropre⇒ Etats initiaux : {#5, #7}Solution :〈droite, si sol sale alors aspire〉

12 / 46Intelligence artificielle

N

Page 11: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Les problemes deterministes et com-pletement observables

Un probleme deterministe et completement observable est defini par :

1. un etat initialpar exemple, “a Arad”

2. un ensemble d’actions ou une fonction de transition, succ(x) :par exemple, succ(Arad) = {Zerind , Timisoara, Sibiu}

3. un test de terminaison pour savoir si le but est atteindexplicite, e.g., “a Bucharest”implicite, e.g., “verifier mat au echec”

4. un cout (additif)par exemple la somme des distances, le nombre d’actions executees, etc.par exemple, c(x, a, y) est le cout d’une transition, c(x, a, y) ≥ 0

Une solution est une sequence d’actions partant de l’etat initial et menantau but.

13 / 46Intelligence artificielle

N

Page 12: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

L’espace d’etats

Le monde reel est trop complexe pour etre modelise

L’espace de recherche modelise une vue abstraite et simplifiee du mondereel

Un etat abstrait represente un ensemble d’etats reels

Une action abstraite represente une combinaison complexe d’actionsreelles

par exemple, “Arad → Zerind” represente un ensemble de routes possibles,de detours, d’arrets, etc.Une action abstraite doit etre une simplification par rapport a une actionreelle

Une solution abstraite correspond a un ensemble de chemins qui sontsolutions dans le monde reel.

14 / 46Intelligence artificielle

N

Page 13: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Algorithmes de recherche en IA

Agents avec objectifs explicitesLes differents types de problemeExemples de problemesAlgorithme de recherche de base (recherche aveugle)

15 / 46Intelligence artificielle

N

Page 14: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Exemple : Espace d’etats du monde del’aspirateur

R

L

S S

S S

R

L

R

L

R

L

S

SS

S

L

L

LL R

R

R

R

Etats? sol sale ou propre, position de l’aspirateur

Actions? droite, gauche, aspire

Test du but? les deux pieces doivent etre propres

Cout du chemin? 1 par action

16 / 46Intelligence artificielle

N

Page 15: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Exemple : Le jeu du taquin

Etats? les positions des pieces

Actions? deplacement droite, gauche, haut, bas

Test du but? etat but donne

Cout du chemin? 1 par deplacement

17 / 46Intelligence artificielle

N

Page 16: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Exemple : Le robot assembleur

Etats? coordonnees du robot, angles, position de l’objet a assembler...

Actions? deplacements continus

Test du but? objet completement assemble

Cout du chemin? le temps d’assemblage

18 / 46Intelligence artificielle

N

Page 17: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Exemple de problemes reels

Recherche de parcours

Itineraires automatiques, guidage routier, planification de routes aeriennes,routage sur les reseaux informatiques, ...

Robotique

Assemblage automatique, navigation autonome, ...

Planification et ordonnancement

Horaires, organisation de taches, allocation de ressources, ...

19 / 46Intelligence artificielle

N

Page 18: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Algorithmes de recherche en IA

Agents avec objectifs explicitesLes differents types de problemeExemples de problemesAlgorithme de recherche de base (recherche aveugle)

20 / 46Intelligence artificielle

N

Page 19: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Algorithme de recherche de base(recherche aveugle)

Idee de base

Recherche hors ligne, i.e. exploration de l’espace d’etats en generant dessuccesseurs d’etats deja generes (developper des etats)Generation d’un arbre de recherche

On s’arrete lorsqu’on a choisi de developper un nœud qui est un etat final

21 / 46Intelligence artificielle

N

Page 20: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Exemple : arbre de rechercheArad

22 / 46Intelligence artificielle

N

Page 21: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Exemple : arbre de recherche

Sibiu Zerind Timisoara

Arad

22 / 46Intelligence artificielle

N

Page 22: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Exemple : arbre de recherche

Arad Fagaras Oradea Rimnicu Vilcea

Sibiu Zerind Timisoara

Arad

22 / 46Intelligence artificielle

N

Page 23: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Implemetation des algorithmes derecherche

Structure de donnees nœud qui contient

etatparentenfantprofondeurcout du chemin (note g(x))

Expand cree de nouveaux nœuds

InsertAll insere de nouveaux nœuds dans la liste a traiter

23 / 46Intelligence artificielle

N

Page 24: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Algorithme de recherche dans les arbres

24 / 46Intelligence artificielle

N

Page 25: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Etats vs Nœuds

Un etat est une representation d’une configuration physique du monde

Un nœud est une structure de donnees qui est partie integrante de l’arbrede recherche et qui inclue :

l’etatle parent, i.e. le nœud perel’action realisee pour obtenir l’etat contenu dans le nœudle cout g(x) pour atteindre l’etat contenu dans le nœud depuis l’etat initialla profondeur du nœud, i.e., la distance entre le nœud et la racine de l’arbre

25 / 46Intelligence artificielle

N

Page 26: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Strategie de recherche

Les differents attributs des nœuds sont initialises par la fonction Expand

Une strategie de recherche est definie par l’ordre dans lequel les nœudssont developpes, i.e., la fonction Insert-Fn

Une strategie s’evalue en fonction de 4 dimensions :

la completude : est ce que cette strategie trouve toujours une solution sielle exise ?la complexite en temps : le nombre de nœuds creesla complexite en memoire : le nombre maximum de nœuds en memoirel’optimalite : est ce que la strategie trouve toujours la solution la moinscouteuse ?

26 / 46Intelligence artificielle

N

Page 27: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Strategie de recherche

La complexite en temps et en memoire se mesure en termes de :

b : le facteur maximum de branchement de l’arbre de recherche, i.e., lenombre maximum de fils des nœuds de l’arbre de recherched : la profondeur de la solution la moins couteusem : la profondeur maximale de l’arbre de recherche→ attention peut etre ∞

27 / 46Intelligence artificielle

N

Page 28: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Strategies de recherche non-informees(aveugles)

Les strategies de recherche non-informees utilisent seulement lesinformations disponibles dans le probleme

Il existe plusieurs strategies :

Recherche en largeur d’abordRecherche en cout uniformeRecherche en profondeur d’abordRecherche en profondeur limiteeRecherche iterative en profondeur

28 / 46Intelligence artificielle

N

Page 29: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en largeur d’abord

La fonction Insert-Fn ajoute les successeurs en fin de liste

fringe = [A]

A

29 / 46Intelligence artificielle

N

Page 30: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en largeur d’abord

La fonction Insert-Fn ajoute les successeurs en fin de liste

fringe = [B,C ]

B C

A

29 / 46Intelligence artificielle

N

Page 31: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en largeur d’abord

La fonction Insert-Fn ajoute les successeurs en fin de liste

fringe = [C ,D,E ]

D E

B C

A

29 / 46Intelligence artificielle

N

Page 32: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en largeur d’abord

La fonction Insert-Fn ajoute les successeurs en fin de liste

fringe = [D,E ,F ,G ]

D E F G

B C

A

29 / 46Intelligence artificielle

N

Page 33: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en largeur d’abord

La fonction Insert-Fn ajoute les successeurs en fin de liste

fringe = [E ,F ,G ]

D E F G

B C

A

29 / 46Intelligence artificielle

N

Page 34: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Exemple de probleme: le voyage enRoumanie

Arad

Zerind

Timisoara

Oradea

Sibiu

Lugoj

Mehadia

Dobreta

Craiova

Rimnicu Vilcea

Fagaras

Pitesti

Bucharest

Giurgiu

Urziceni

Hirsova

Eforie

VasluiLasi

Neamt

75

118

71

140

151

111

70

75

120

80

146

99

138

97

211

101

90

8598

80

142

92

87

30 / 46Intelligence artificielle

N

Page 35: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en largeur d’abord

Complet, si b est fini

Complexite en temps :

1 + b + b2 + b3 + . . . + bd + (bd+1 − b) = O(bd+1)

Complexite en espace : O(bd+1) (garde tous les nœuds en memoire)

Optimale si cout = 1 pour chaque pas, mais non optimale dans le casgeneral

⇒ L’espace est le plus gros probleme

31 / 46Intelligence artificielle

N

Page 36: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en largeur d’abord

b = 10

10000 nœuds par seconde

1000 octets de memoire pour un nœuds

Profondeur Nœuds Temps Memoire8 109 31 heures 1 Teraoctet, 1024 Go

12 1013 35 ans 10 Petaoctets, 1024 Teraoctet

32 / 46Intelligence artificielle

N

Page 37: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en cout uniforme

La fonction Insert-Fn ajoute les nœuds dans l’ordre du cout g(x)

fringe = [(S , 0)]

S

A

B

C

G

1

15

5

10

5

5

S, 0

33 / 46Intelligence artificielle

N

Page 38: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en cout uniforme

La fonction Insert-Fn ajoute les nœuds dans l’ordre du cout g(x)

fringe = [(A, 1), (C , 5), (B, 15)]

S

A

B

C

G

1

15

5

10

5

5

A, 1 B, 15 C, 5

S, 0

33 / 46Intelligence artificielle

N

Page 39: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en cout uniforme

La fonction Insert-Fn ajoute les nœuds dans l’ordre du cout g(x)

fringe = [(C , 5), (G , 11), (B, 15)]

S

A

B

C

G

1

15

5

10

5

5

G, 11

A, 1 B, 15 C, 5

S, 0

33 / 46Intelligence artificielle

N

Page 40: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en cout uniforme

La fonction Insert-Fn ajoute les nœuds dans l’ordre du cout g(x)

fringe = [(G , 10), (G , 11), (B, 15)]

S

A

B

C

G

1

15

5

10

5

5

G, 11 G, 10

A, 1 B, 15 C, 5

S, 0

33 / 46Intelligence artificielle

N

Page 41: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en cout uniforme

La fonction Insert-Fn ajoute les nœuds dans l’ordre du cout g(x)

fringe = [(G , 11), (B, 15)]

S

A

B

C

G

1

15

5

10

5

5

G, 11 G, 10

A, 1 B, 15 C, 5

S, 0

33 / 46Intelligence artificielle

N

Page 42: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en cout uniforme

Equivalent a la largeur d’abord si le cout est toujours le meme

Complet si le cout de chaque pas est strictement superieur a 0

Complexite en temps : nombre de nœuds pour lesquels g ≤ C∗, ou C∗ estle cout de la solution optimale

Complexite en espace : idem que la complexite en temps

Optimale car les nœuds sont developpes en fonction de g

34 / 46Intelligence artificielle

N

Page 43: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur d’abord

La fonction Insert-Fn ajoute les successeurs en debut de liste

fringe = [A]

A

35 / 46Intelligence artificielle

N

Page 44: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur d’abord

La fonction Insert-Fn ajoute les successeurs en debut de liste

fringe = [B,C ]

B C

A

35 / 46Intelligence artificielle

N

Page 45: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur d’abord

La fonction Insert-Fn ajoute les successeurs en debut de liste

fringe = [D,E ,C ]

D E

B C

A

35 / 46Intelligence artificielle

N

Page 46: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur d’abord

La fonction Insert-Fn ajoute les successeurs en debut de liste

fringe = [H, I ,E ,C ]

D E

H I

B C

A

35 / 46Intelligence artificielle

N

Page 47: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur d’abord

La fonction Insert-Fn ajoute les successeurs en debut de liste

fringe = [I ,E ,C ]

D E

H I

B C

A

35 / 46Intelligence artificielle

N

Page 48: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur d’abord

La fonction Insert-Fn ajoute les successeurs en debut de liste

fringe = [E ,C ]

D E

H I

B C

A

35 / 46Intelligence artificielle

N

Page 49: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur d’abord

La fonction Insert-Fn ajoute les successeurs en debut de liste

fringe = [J,K ,C ]

D E

H I J K

B C

A

35 / 46Intelligence artificielle

N

Page 50: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur d’abord

La fonction Insert-Fn ajoute les successeurs en debut de liste

fringe = [K ,C ]

D E

H I J K

B C

A

35 / 46Intelligence artificielle

N

Page 51: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur d’abord

La fonction Insert-Fn ajoute les successeurs en debut de liste

fringe = [C ]

D E

H I J K

B C

A

35 / 46Intelligence artificielle

N

Page 52: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur d’abord

La fonction Insert-Fn ajoute les successeurs en debut de liste

fringe = [F ,G ]

D E F G

H I J K

B C

A

35 / 46Intelligence artificielle

N

Page 53: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur d’abord

La fonction Insert-Fn ajoute les successeurs en debut de liste

fringe = [G ]

D E F G

H I J K

B C

A

35 / 46Intelligence artificielle

N

Page 54: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur d’abord

La fonction Insert-Fn ajoute les successeurs en debut de liste

fringe = []

D E F G

H I J K

B C

A

35 / 46Intelligence artificielle

N

Page 55: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur d’abord

Non complet dans les espaces d’etats infinis ou avec boucle

Il est possible d’ajouter un test pour detecter les repetitions

Complexite en temps : O(bm)

Tres mauvais si m est beaucoup plus grand que b

Complexite en espace : O(bm)

Lineaire!

Non optimale

36 / 46Intelligence artificielle

N

Page 56: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur limitee

Algorithme de recherche en profondeur d’abord, mais avec une limite l surla profondeur

Les nœuds de profondeur l n’ont pas de successeurs

Exemple pour l = 2

A

37 / 46Intelligence artificielle

N

Page 57: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur limitee

Algorithme de recherche en profondeur d’abord, mais avec une limite l surla profondeur

Les nœuds de profondeur l n’ont pas de successeurs

Exemple pour l = 2

B C

A

37 / 46Intelligence artificielle

N

Page 58: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur limitee

Algorithme de recherche en profondeur d’abord, mais avec une limite l surla profondeur

Les nœuds de profondeur l n’ont pas de successeurs

Exemple pour l = 2

D E

B C

A

37 / 46Intelligence artificielle

N

Page 59: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur limitee

Algorithme de recherche en profondeur d’abord, mais avec une limite l surla profondeur

Les nœuds de profondeur l n’ont pas de successeurs

Exemple pour l = 2

D E

B C

A

37 / 46Intelligence artificielle

N

Page 60: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur limitee

Algorithme de recherche en profondeur d’abord, mais avec une limite l surla profondeur

Les nœuds de profondeur l n’ont pas de successeurs

Exemple pour l = 2

D E

B C

A

37 / 46Intelligence artificielle

N

Page 61: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur limitee

Algorithme de recherche en profondeur d’abord, mais avec une limite l surla profondeur

Les nœuds de profondeur l n’ont pas de successeurs

Exemple pour l = 2

D E F G

B C

A

37 / 46Intelligence artificielle

N

Page 62: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur limitee

Algorithme de recherche en profondeur d’abord, mais avec une limite l surla profondeur

Les nœuds de profondeur l n’ont pas de successeurs

Exemple pour l = 2

D E F G

B C

A

37 / 46Intelligence artificielle

N

Page 63: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur limitee

Algorithme de recherche en profondeur d’abord, mais avec une limite l surla profondeur

Les nœuds de profondeur l n’ont pas de successeurs

Exemple pour l = 2

D E F G

B C

A

37 / 46Intelligence artificielle

N

Page 64: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur limitee

Complet si l ≥ d

Complexite en temps : O(bl )

Complexite en espace : O(bl)

Non optimale

38 / 46Intelligence artificielle

N

Page 65: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur limitee

39 / 46Intelligence artificielle

N

Page 66: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur iterative

Profondeur limitee, mais en essayant toutes les profondeurs: 0, 1, 2, 3, . . .

Evite le probleme de trouver une limite pour la recherche profondeurlimitee

Combine les avantages de largeur d’abord (complete et optimale), mais ala complexite en espace de profondeur d’abord

40 / 46Intelligence artificielle

N

Page 67: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur iterative

41 / 46Intelligence artificielle

N

Page 68: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur iterative: l = 0

A A

42 / 46Intelligence artificielle

N

Page 69: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur iterative: l = 1

A A

B C

A

B C

A

B C

43 / 46Intelligence artificielle

N

Page 70: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur iterative: l = 2

A A

B C

A

B C

D E

A

B C

D E

A

B C

D E

A

B C

D E F G

A

B C

D E F G

A

B C

D E F G

44 / 46Intelligence artificielle

N

Page 71: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Recherche en profondeur iterative

Peut paraıtre du gaspillage car beaucoup de nœuds sont etendus demultiples fois

Mais la plupart des nouveaux nœuds etant au niveau le plus bas, ce n’estpas important d’etendre plusieurs fois les nœuds des niveaux superieurs

Complet

Complexite en temps :

(d + 1)b0 + db1 + (d − 1)b2 + . . . + bd = O(bd )

Complexite en espace : O(bd)

Optimale : oui, si le cout de chaque action est de 1. Peut etre modifieepour une strategie de cout uniforme

45 / 46Intelligence artificielle

N

Page 72: Intelligence Artificielle Recherchehelios.mi.parisdescartes.fr/~bouzy/Doc/IAL3/02_IA_recherche_BB.pdf · Pitesti Bucharest Giurgiu Urziceni Hirsova Eforie Lasi Vaslui Neamt 75 118

Algorithmes de recherche en IA

Resume des algorithmes de recherche

CriteresLargeurd’abord

Coutuniforme

Prof.d’abord

Prof.limitee

Prof.iterative

Completude Oui Oui NonOui sil ≥ d

Oui

Temps O(bd+1) O(bdC∗/εe) O(bm) O(bl ) O(bd )

Espace O(bd+1) O(bdC∗/εe) O(bm) O(bl) O(bd)

Optimalite -cout d’uneaction = 1

Oui Oui Non Non Oui

Optimalite -cas general

Non Oui Non Non Non

46 / 46Intelligence artificielle

N