You are on page 1of 50

IA41 Initiation l'Intelligence Artificielle et reprsentation des connaissances CM #12

Les stratgies de recherche de chemin dans les graphes : algorithme A* & Co.
Fabrice LAURI

Plan

Introduction !inition" t#pes et proprits des graphes et arbres Algorithmes de recherche non in!orms Algorithmes de recherche in!orms $a%ec heuristi&ue' (euristi&ues et !onctions heuristi&ues admissibles )*emple : recherche du plus court chemin dans un lab#rinthe

Introduction
En Intelligence Artificielle, la rsolution d'un probl e re!ient gnrale ent " 1# reprsenter ce probl e sous la for e d'un grap$e, c%%d " dfinir le probl e co e une rec$erc$e dans un espace d'tats, sac$ant &ue " un noeud ' un tat du probl e un arc ' une transition entre deu( tats 2# e(plorer ce grap$e pour trou!er une solution " d'un c$e in " Profondeur d'abord, Largeur d'abord )ec$erc$e d'un c$e in opti al " A*, Branch & Bound, etc. dans un arbre de *eu " Alpha-Beta, MiniMax )*emples " *eu( +go, c$ecs, da es#, pu,,les +ta&uin, - reines, probl e des cruc$es#, planification dans un en!ironne ent, etc.

Formalisation des probl+mes


/a for alisation d'un probl e passe par 0 tapes " dfinition des tats distincts du probl e, sans tenir co pte d'un $istori&ue &uelcon&ue

dter ination de l'tat initial et de l'ensemble des tats !inau*. /a rsolution d'un probl e ne concerne &u'un seul tat initial et !entuelle ent plusieurs tats finau(. 1es tats initiau( diffrents i pli&uent des instances diffrentes d'un 2 e probl e. dter ination des oprateurs, pour faire passer d'un tat un autre. 3n oprateur est gnrale ent constitus de deu( parties " une partie gauc$e, &ui reprsente la condition respecter, selon la disposition actuelle des pices sur l'c$i&uier, une partie droite, &ui dcrit l'action raliser, par e(e ple le dplace ent raliser sur l'c$i&uier.

Formalisation des probl+mes


/a for alisation d'un probl e passe par 0 tapes " dfinition des tats distincts du probl e, sans tenir co pte d'un $istori&ue &uelcon&ue

dter ination de l'tat initial et de l'ensemble des tats !inau*. /a rsolution d'un probl e ne concerne &u'un seul tat initial et !entuelle ent plusieurs tats finau(. 1es tats initiau( diffrents i pli&uent des instances diffrentes d'un 2 e probl e. dter ination des oprateurs, pour faire passer d'un tat un autre. 3n oprateur est gnrale ent constitus de deu( parties " une partie gauc$e, &ui reprsente la condition respecter, selon la disposition actuelle des pices sur l'c$i&uier, une partie droite, &ui dcrit l'action raliser, par e(e ple le dplace ent raliser sur l'c$i&uier.

Formalisation des probl+mes


/a for alisation d'un probl e passe par 0 tapes " dfinition des tats distincts du probl e, sans tenir co pte d'un $istori&ue &uelcon&ue

dter ination de l'tat initial et de l'ensemble des tats !inau*. /a rsolution d'un probl e ne concerne &u'un seul tat initial et !entuelle ent plusieurs tats finau(. 1es tats initiau( diffrents i pli&uent des instances diffrentes d'un 2 e probl e. dter ination des oprateurs, pour faire passer d'un tat un autre. 3n oprateur est gnrale ent constitus de deu( parties " une partie gauc$e, &ui reprsente la condition respecter, selon la disposition actuelle des pices sur l'c$i&uier, une partie droite, &ui dcrit l'action raliser, par e(e ple le dplace ent raliser sur l'c$i&uier.

)*emple : le ta&uin
,uestions :

Co

ent peut 2tre cod un tat 4

5uels sont les oprateurs 4 Ense ble des tats finau( 4

)*emple : le -eu d.checs


,uestions :

Co

ent peut 2tre cod un tat 4

5uels sont les oprateurs 4 Ense ble des tats finau( 4

Rsolution de probl+me
6ouer au( c$ecs re!ient donc " Co encer a!ec un tat initial 3tiliser un ense ble de rgles pour passer d'un tat un autre Essa7er d'atteindre un tat appartenant l'ense ble des tats finau( gagnants. 8rou!er une solution un probl e particulier re!ient " dfinir les rgles &ui font passer d'un tat un autre tat dans l'espace " ce sont les r+gles de production e(plorer l'espace d'tats pour trou!er un c$e in de l'tat courant l'tat but " application des r+gles et stratgie de recherche.

!initions associs au* graphes et au* arbres

!inition d.un graphe


3n grap$e fini 9 ' +:,E# est dfini par " un ense ble : fini : ' ; !1, !2, ..., !n < dont les l ents sont appels noeuds +ou so ets#, un ense ble E fini E ' ; e1, e2, ..., e < dont les l ents sont appels ar2tes +grap$es non orients# ou arcs +grap$es orients# 3ne ar2te e de l'ense ble E est dfinie par une paire non ordon/ ne de so ets, appels les e(tr its de e. =i l'ar2te e relie les so ets a et b, on dira &ue ces so ets sont ad-acents, ou incidents a%ec e, ou encore &ue l'ar2te e est incidente a!ec les so ets a et b. 3n arc e de l'ense ble E est dfini par une paire ordonne de so ets. /ors&ue e ' +u, !#, on dira &ue l'arc e !a de u !. >n dit aussi &ue u est l'e(tr it initiale et ! l'e(tr it finale de e.

,uel&ues t#pes de graphes $123'


0raphe planaire " grap$e dont aucune ar2te n'en coupe une autre. 9rap$e 9 ' +:,E# a!ec : ' ;1,2,0,4,?< et E ' ;+1, 0#, +1, 4#, +1, ?#, +2, 0#, +0, 4#, +0, ?#, +4, ?#<

)eprsentation non planaire de 9

)eprsentation planaire de 9

,uel&ues t#pes de graphes $523'


4ulti/graphe " grap$e pou!ant contenir des boucles +ar2te &ui relie un so et lui% 2 e# ou plusieurs ar2tes reliant les deu( 2 es so ets.

Multi%grap$e

,uel&ues t#pes de graphes $623'


0raphe conne*e " grap$e dont il est possible, partir de n'i porte &uel so et, de re*oindre tous les autres en sui!ant les ar2tes. 3n grap$e non conne(e se dco pose en co posantes conne(es.

9rap$e non conne(e Co posantes conne(es " ;1,2,0,4< et ;?,@<

,uel&ues t#pes de graphes $323'


0raphe complet " grap$e dans le&uel c$a&ue so directement tous les autres so ets. et est reli

9rap$e co plet d'ordre ?

,uel&ues d!initions $128'


>n appelle "

7rdre d.un graphe ' le no bre de noeuds du grap$e.

Facteur de branchement d.un noeud ' no bre de dcision possibles +fils# partir de ce noeud.

egr d.un noeud ' le no bre d'ar2tes incidentes a!ec ce noeud. >n note d+!# le degr du noeud !. Attention " une boucle sur un so et est co pte deu( fois.

egr d.un graphe " degr

a(i u

de tous ses so

ets.

,uel&ues d!initions $528'


!inition d.une cha9ne $g. n. o.' et d.un chemin $g. o.' 3ne c$aAneBc$e in dans un grap$e 9 est une suite de la for e +!C, e1, !1, e2, ..., !D%1, eD, !D#, a7ant pour l ents alternati!e ent des so ets +!i# et des ar2tes +ei#, co enEant et se ter inant par un so et, et telle &ue les e(tr its de ei soient !i%1 et !i, i ' 1, ..., D. =i !C ' a et !D ' b, on dira &ue la c$aAneBc$e in relie a et b. En outre, on dira &ue la c$aAneBc$e in est de longueur D, D tant le no bre d'ar2tesBarcs de la c$aAneBc$e in. 3ne c$aAneBc$e in doit co porter au oins une ar2teBarc.

,uel&ues d!initions $628'


Ce grap$e contient les c$aAnes +!1, e0, !0, e4 ,!4# et +!4, e4, !0, e2, !2, e1, !1#.

>n ne c$ange pas une c$aAne en in!ersant l'ordre des l ents dans la suite correspondante. Ainsi les c$aAnes +!1, e0, !0, e4, !4# et +!4, e4, !0, e0, !1# sont identi&ues. >n appelle distance entre deu( so petite c$aAne les reliant. ets la longueur de la plus

>n appelle dia tre d'un grap$e la plus longue des distances entre deu( so ets.

,uel&ues d!initions $328'


!inition d.une cha9ne lmentaire 3ne c$aAne est l entaire si cha&ue sommet 7 apparaAt au plus une fois. !inition d.une cha9ne simple 3ne c$aAne est si ple si cha&ue ar:te apparaAt au plus une fois.

1ans ce grap$e, +!1, e1, !2, e2, !0# est une c$aAne si ple et l entaire.

,uel&ues d!initions $828'


!inition d.une cha9ne !erme $g. n. o' et d.un circuit $g. o.' 3ne c$aAne telle &ue !C ' !D est appele c$aAne fer e. !inition d.un c#cle 3ne c$aAne fer e si ple est appele c7cle si seul le so de dpart apparaAt deu( fois dans la c$aAne. 1ans ce grap$e, +!2, e2, !0, e4, !4, e?, !2# est un c7cle, +!2, e2, !0, e4, !4, e4, !0, e2, !2# est une c$aAne fer e. et

!inition d.un arbre


3n arbre est un graphe conne*e sans c#cle. ;hor+me : =oit un grap$e 9 ' +:, E# n so sont alors &ui!alentes " ets. /es affir ations sui!antes

1. 9 est un arbre, 2. 9 est sans c7cles et conne(e, 0. 9 est sans c7cles et co porte n%1 ar2tes, 4. 9 est conne(e et co porte n%1 ar2tes, ?. C$a&ue paire ;u,!< de so ets distincts est relie par une seule c$aAne si ple +et le grap$e est sans boucles#. 3n arbre

Les stratgies de recherche d.un chemin dans un graphe

)space de recherche
C$a&ue stratgieBalgorit$ e de rec$erc$e est caractris par l'espace de rec$erc$e &u'il e(plore. !inition d.un espace de recherche : 3n espace de rec$erc$e est l'ense ble des c$e ins possibles d'un grap$e d'tats. Principes des algorithmes : Ces algorit$ es procdent par e(pansions successi!es de l'espace de rec$erc$e. Une tape d.e*pansion < c$oisir l'e(tr it n d'un c$e in de l'espace de rec$erc$e et tendre ce c$e in en gnrant des +ou tous les# successeurs du noeud n.

=tratgies de recherche
,ualits d.une stratgie de recherche : pro!o&uer une odification, sans gnrer de boucle s7st ati&ue efficace Plusieurs stratgies de recherche de chemins : un c$e in +&uelcon&ue# trou!er " Largeur d'abord, Profondeur d'abord Meilleur d'abord un c$e in optimal trou!er " Approche British Museum Algorithme A* un c$e in dans un arbre de *eu Algorithme Alpha-Beta Algorithme MiniMax

Largeur d.abord $Breadth-First Search'


FG= tend et e(a ine s7st ati&ue ent tous les noeuds d'un grap$e la rec$erc$e d'une solution. /a rec$erc$e est e($austi!e. FG= n'utilise pas d'$euristi&ue. Algorithme : 1# Crer une liste FIF7 for e d'un seul l ent " le noeud racine. 2# Gaire *us&u' ce &ue la liste soit !ide ou &ue le but soit atteint =i la t2te de la liste n'est pas le but Alors Enle!er le noeud en t2te de liste A*outer en &ueue de liste tous les fils du noeud suppri , s'il en e(iste. Gin=i GinGaire6us&u' 0# =i le but a t trou! Alors =uccs =inon Ec$ec.

Largeur d.abord $Breadth-First Search'

>rdre dans les&uels les noeuds sont tendus

Pro!ondeur d.abord $Depth-First Search'


1G= est un algorit$ e &ui tend le noeud d'un grap$e et ses successeurs le plus longte ps possible *us&u' atteindre le noeud but, ou *us&u' atteindre un noeud n'a7ant plus de fils. 1ans ce cas la rec$erc$e retourne au noeud le plus rcent &ui n'a pas t encore e(plor " backtracking. Algorithme : 1# Crer une liste LIF7 for e d'un seul l ent " le noeud racine. 2# Gaire *us&u' ce &ue la liste soit !ide ou &ue le but soit atteint =i la t2te de la liste n'est pas le but Alors Enle!er le noeud en t2te de liste A*outer en t:te de liste tous les fils du noeud suppri , s'il en e(iste. Gin=i GinGaire6us&u' 0# =i le but a t trou! Alors =uccs =inon Ec$ec.

Pro!ondeur d.abord $Depth-First Search'

>rdre dans les&uels les noeuds sont tendus

4eilleur d.abord $Best-First Search'


A c$a&ue tape, on fait progresser d'un ni!eau le eilleur c$e in +selon la distance esti e#, en crant autant de nou!eau( c$e ins &u'il 7 a de fils ce noeud. Algorithme : 1# Crer une liste FIF7 for e d'un seul l ent " le noeud racine. 2# Gaire *us&u' ce &ue la liste soit !ide ou &ue le but soit atteint =i la t2te de la liste n'est pas le but Alors Enle!er le noeud en t2te de liste A*outer en &ueue de liste tous les fils du noeud suppri , s'il en e(iste. 8rier toute la liste en esti ant la distance restant parcourir Gin=i GinGaire6us&u' 0# =i le but a t trou! Alors =uccs =inon Ec$ec.

4eilleur d.abord $Best-First Search'

>rdre dans les&uels les noeuds sont tendus

Approche British Museum


Approc$e gnrale &ui !ise trou!er une solution un probl e en e(a inant toutes les possibilits les unes aprs les autres et c$oisir la eilleure. 8ire son no du fait &u'un singe pourrait reproduire en intgralit tous les ou!rages du British Museum, si on lui en laissait le te ps... A c$a&ue tape, on gnre un seul noeud en c$oisissant au $asard une rgle de production. A partir de ce noeud, on itre le processus *us&u' obtention d'une solution. =i un instant donn, on aboutit une i passe, on reco ence l'opration depuis la racine... 1ans le *argon infor ati&ue, dire &u'un algorit$ e est de t7pe British Museum re!ient dire &u'il est au!ais H

Proprits d.une recherche in!orme


Pour&uoi > E!iter le parcours co plet de l'espace d'tats E!iter le parcours co plet de l'espace d'actions E!iter l'nu ration co plte des solutions

Comment > A liorer la rec$erc$e en " E(plorant d'abord les solutions partielles pro etteuses Mettant l'cart les solutions partielles au!aises

!initions d.une heuristi&ue


!inition ?1 : (euristi&ue 3ne $euristi&ue a pour but de diriger la rec$erc$e dans un espace d'tats, de anire rduire le te ps de rsolution du probl e. Elle introduit des canis es &ui dri!ent de connaissances spcifi&ues au probl e. !inition ?5 : (euristi&ue consistante $ou monotone' Iour tout ( et pour tout 7 descendant de (, $+(#%$+7# J c+(,7# !inition ?6 : (euristi&ue admissible Iour tout (, $+(# J $K+(# oL $K+(# est la !aleur opti ale de ( *us&u'au but. ,uestion " Co ent c$oisir une bonne $euristi&ue 4

Algorithme A* $125'
AK rec$erc$e le plus court c$e in dans un grap$e pour aller au noeud E en partant d'un noeud =. Il utilise pour cela une heuristi&ue $+ ( #, &ui donne une esti ation de ce &u'il reste parcourir pour arri!er au noeud but en partant du noeud (. A c$a&ue noeud ( est associe une !aleur f+ ( # ' g+ ( # M $+ ( #, oL g+ ( # reprsente le coNt du c$e in pour arri!er *us&u' (. /es noeuds sont !isits selon la !aleur f+ ( #, en pri!ilgiant les noeuds ( pour les&uels f+ ( # est la plus petite. Remar&ues : =i l'$euristi&ue $ est ad issible, alors AK trou!e tou*ours le c$e in opti al. =i l'$euristi&ue est consistante, alors AK a en outre une co ple(it linaire. Best- irst !earch est une spcialisation de AK, lors&ue g+ ( # ' C.

escription :

Algorithme A* $525'

"pen O ;s<P #losed O QP g$s% O CP f$s% O h$s% 8ant &ue >pen R Q Gaire E(traire de "pen l'l ent x tel &ue f$x% est ini ale Insrer x dans #losed =i x & Alors Gini " =olution trou!e =inon Iour tout ' successeur de x Gaire =i ' #losed "pen >u g$'% S g$x%(c$x,'% Alors g$'% O g$x% M c$x,'% f$'% O g$'% M h$'% pre+'# O x InsrerB)e placer ' dans "pen Gin=i GinIour Gin=i Gin8ant5ue

Proprits de A*

Complet " s'il e(iste une solution, AK la retourne 7ptimal " la pre ire solution est la ad issible et consistante eilleure si l'$euristi&ue est

7ptimalement e!!icace " aucun autre algorit$ e opti al ne peut trou!er la solution en d!eloppant oins d'tats

4ais :

Comple*it e*ponentielle " /e no bre d'tats tendus est e(po% nentiel en la taille de la solution

)*emple : recherche du plus court chemin dans un lab#rinthe $1213'


>n rec$erc$e le plus court c$e in entre A et F
A

)*emple : recherche du plus court chemin dans un lab#rinthe $5213'


AK ' TUFest%Girst =earc$UV M Gonction Weuristi&ue
A

)*emple : recherche du plus court chemin dans un lab#rinthe $6213'


cot x y heuristique optimiste evaluation
A

: C(x,y) : H(x,y) C(x,y) : Fx = C(A,x) + H(x, )

)*emple : recherche du plus court chemin dans un lab#rinthe $3213'

G ' +1 M 4,2# G ' ?,2

G ' +1 M 0,1# G ' 4,1

)*emple : recherche du plus court chemin dans un lab#rinthe $8213'

G ' ?,2

G ' ?,C

)*emple : recherche du plus court chemin dans un lab#rinthe $@213'

G ' ?,2

G ' ?,C

)*emple : recherche du plus court chemin dans un lab#rinthe $A213'

G ' ?,2

G ' @,2

)*emple : recherche du plus court chemin dans un lab#rinthe $B213'

G ' ?,@

G ' @,2

)*emple : recherche du plus court chemin dans un lab#rinthe $C213'

G ' @,2

G ' @,1

)*emple : recherche du plus court chemin dans un lab#rinthe $1D213'

G ' @,2

G ' X,C

)*emple : recherche du plus court chemin dans un lab#rinthe $11213'

G ' X,-

G ' X,C

)*emple : recherche du plus court chemin dans un lab#rinthe $15213'

G ' X,-

G ' X,C

)*emple : recherche du plus court chemin dans un lab#rinthe $16213'

G ' X,-

G ' X,C

)*emple : recherche du plus court chemin dans un lab#rinthe $13213'

G ' X,-

G ' X,C