Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Cours Intelligence Artificielle 27

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 37

Intelligence Artificielle

Recherche dans un espace d’états


Maria Malek

Département Informatique

Intelligence Artificielle – p. 1/1


États, Actions & Résolution de problèmes

Comment résoudre un problème ?

Intelligence Artificielle – p. 2/1


États, Actions & Résolution de problèmes

Comment résoudre un problème ?


Recherche des solutions ..

Intelligence Artificielle – p. 2/1


États, Actions & Résolution de problèmes

Comment résoudre un problème ?


Recherche des solutions ..
Recenser les états d’un système donné et trouver parmi ces états
une ou plusieurs solutions.

Intelligence Artificielle – p. 2/1


États, Actions & Résolution de problèmes

Comment résoudre un problème ?


Recherche des solutions ..
Recenser les états d’un système donné et trouver parmi ces états
une ou plusieurs solutions.
Comment ?
Le passage d’un état à un autre se fait par
l’application d’une action donnée.
Développement d’un arbre de recherche + une stratégie de
recherche.

Intelligence Artificielle – p. 2/1


Stratégie de recherches & Modélisation

Algorithme de recherche aveugle en profondeur ou en


largeur (coûteux).

Intelligence Artificielle – p. 3/1


Stratégie de recherches & Modélisation

Algorithme de recherche aveugle en profondeur ou en


largeur (coûteux).
Objectif : diminution du temps de recherche.

Intelligence Artificielle – p. 3/1


Stratégie de recherches & Modélisation

Algorithme de recherche aveugle en profondeur ou en


largeur (coûteux).
Objectif : diminution du temps de recherche.
Intégration d’une heuristique : Algorithme A*.

Intelligence Artificielle – p. 3/1


Stratégie de recherches & Modélisation

Algorithme de recherche aveugle en profondeur ou en


largeur (coûteux).
Objectif : diminution du temps de recherche.
Intégration d’une heuristique : Algorithme A*.
Modélisation par un quadruplet (S, E0 , F, T ) où :
S est l’ensemble de tous les états.
E0 est l’état initial, E0 ∈ S .
F est l’ensemble des états finaux F ⊂ S .
T est la fonction de transition : associe à chaque état
Ei un ensemble de couples (Aij , Eij ) tq Aj soit une
action élémentaire permettant de passer de l’état Ei à
l’états Eij .
Intelligence Artificielle – p. 3/1
Résolution de problème

Trouver une séquence E0 , E1 , .., Ej , ..En tel que


∃A1 , ..Aj , ..An tels que (Aj , Ej ) ∈ T (Ej−1 ) et En ∈ F .

Intelligence Artificielle – p. 4/1


Résolution de problème

Trouver une séquence E0 , E1 , .., Ej , ..En tel que


∃A1 , ..Aj , ..An tels que (Aj , Ej ) ∈ T (Ej−1 ) et En ∈ F .
Un arbre de recherche est construit ;
La racine de l’arbre : l’état initial.
Un état Eij est fils d’un autre état Ei s’il existe une
action qui permet d’obtenir Eij à partir de Ei .
Si une des feuilles correspond à un état final, la
solution est trouvée.

Intelligence Artificielle – p. 4/1


Résolution de problème

Trouver une séquence E0 , E1 , .., Ej , ..En tel que


∃A1 , ..Aj , ..An tels que (Aj , Ej ) ∈ T (Ej−1 ) et En ∈ F .
Un arbre de recherche est construit ;
La racine de l’arbre : l’état initial.
Un état Eij est fils d’un autre état Ei s’il existe une
action qui permet d’obtenir Eij à partir de Ei .
Si une des feuilles correspond à un état final, la
solution est trouvée.
Méthode :
Recherche aveugle en profondeur,
Recherche aveugle en largeur,
L’algorithme A*.
Intelligence Artificielle – p. 4/1
La recherche aveugle - En profondeur

En profondeur : développement d’une branche entière


avant de parcourir le reste de l’arbre :
La solution est trouvée : arrêt ou continuer à chercher
les autres solutions (backtracking).
La solution n’est pas trouvée (état d’échec),
poursuivre la recherche (backtracking).
Une branche infinie est à explorer : un test d’arrêt à
une profondeur maximale sera appliqué.

Intelligence Artificielle – p. 5/1


La recherche aveugle - En profondeur

En profondeur : développement d’une branche entière


avant de parcourir le reste de l’arbre :
La solution est trouvée : arrêt ou continuer à chercher
les autres solutions (backtracking).
La solution n’est pas trouvée (état d’échec),
poursuivre la recherche (backtracking).
Une branche infinie est à explorer : un test d’arrêt à
une profondeur maximale sera appliqué.
Complexité liée à l’ordre d’exploration des branches.

Intelligence Artificielle – p. 5/1


La recherche aveugle - En largeur

En largeur : Visiter les états en parcourant l’arbre niveau


par niveau.

Intelligence Artificielle – p. 6/1


La recherche aveugle - En largeur

En largeur : Visiter les états en parcourant l’arbre niveau


par niveau.
On utilise une file d’attente.

Intelligence Artificielle – p. 6/1


La recherche aveugle - En largeur

En largeur : Visiter les états en parcourant l’arbre niveau


par niveau.
On utilise une file d’attente.
la recherche s’arrête quand on état final est trouvé ou bien une
profondeur maximale est trouvée.

Intelligence Artificielle – p. 6/1


La recherche aveugle - En largeur

En largeur : Visiter les états en parcourant l’arbre niveau


par niveau.
On utilise une file d’attente.
la recherche s’arrête quand on état final est trouvé ou bien une
profondeur maximale est trouvée.
Très cher en temps et espace,

Intelligence Artificielle – p. 6/1


La recherche aveugle - En largeur

En largeur : Visiter les états en parcourant l’arbre niveau


par niveau.
On utilise une file d’attente.
la recherche s’arrête quand on état final est trouvé ou bien une
profondeur maximale est trouvée.
Très cher en temps et espace,
mais garantie de trouver la solution (si elle existe).

Intelligence Artificielle – p. 6/1


La recherche aveugle - En largeur

En largeur : Visiter les états en parcourant l’arbre niveau


par niveau.
On utilise une file d’attente.
la recherche s’arrête quand on état final est trouvé ou bien une
profondeur maximale est trouvée.
Très cher en temps et espace,
mais garantie de trouver la solution (si elle existe).
Pas de problème de branche infinie.

Intelligence Artificielle – p. 6/1


L’algorithme de recherche en profondeur

FONCTION ExplorationProf (Ei , DejaV u, N ): Booleen


res : Booleen
SI Ei ∈ F
res ← V RAI
SINON SI N = 0
res ← F AU X
SINON PourTout (Aj , Ej ) ∈ T (Ei ) ET NON
(Ej ∈ DejaV u)
SI ExplorationP rof (Ej , DejaV u ∪ Ej , N − 1) = V RAI
· Af f icherAj , Ej
· res ← V RAI
Retourner res

Intelligence Artificielle – p. 7/1


L’algorithme de recherche en largeur

Fonction ExplorationLarg(E0 ) : Liste


F : FILE
F ← f ileV ide, L ← listeV ide
Ajouter(F, E0 )
TANTQUE NON vide(F)
inserer(L, premier(F ))
SI NON premier(F ) ∈ F
· PourTout (Aj , Ej ) ∈ T (premier(F )) [ajouter(F, Ej )]
· supprimer(F )
SINON
· F ← f ileV ide
Retourner L

Intelligence Artificielle – p. 8/1


Les différents problèmes de Recherche d’une

Recherche d’une solution quelconque : algorithmes de


recherche en profondeur d’abord

Intelligence Artificielle – p. 9/1


Les différents problèmes de Recherche d’une

Recherche d’une solution quelconque : algorithmes de


recherche en profondeur d’abord
Recherche de toutes les solutions : construire l’arbre en
largeur d’abord en introduisant une stratégie qui
n’explore pas les branches ne menant pas à une bonne
solution.

Intelligence Artificielle – p. 9/1


Les différents problèmes de Recherche d’une

Recherche d’une solution quelconque : algorithmes de


recherche en profondeur d’abord
Recherche de toutes les solutions : construire l’arbre en
largeur d’abord en introduisant une stratégie qui
n’explore pas les branches ne menant pas à une bonne
solution.
Recherche de la meilleure solution selon un critère donné :
un coût qui sera associé à l’ensemble des actions
formalisant le problème.

Intelligence Artificielle – p. 9/1


Introduction dun coût

Notations :
k(Ei , Ej ) Le coût de l’action la moins chère pour aller
de Ei à Ej si elle existe.
k ∗ (Ei , Ej ) Le coût de la séquence d’actions la moins
chère pour aller de Ei à Ej .
g ∗ (Ei ) g ∗ (Ei ) = k ∗ (E0 , Ei )
h∗ (Ei ) h∗ (Ei ) = min k ∗ (Ei , Ej ) avec Ej ∈ F , autrement
dit h∗ (Ei ) représente le coût minimal pour atteindre
l’objectif si ce chemin existe.
f ∗ (Ei ) f ∗ (Ei ) = g ∗ (Ei ) + h∗ (Ei ) Autrement dit f ∗ (Ei )
représente le coût minimal d’une solution passant par
Ei si elle existe.

Intelligence Artificielle – p. 10/1


Recherche Guidée : Définitions

Une solution est optimale s’il n’existe pas aucune solution


de coût strictement inférieur.

Intelligence Artificielle – p. 11/1


Recherche Guidée : Définitions

Une solution est optimale s’il n’existe pas aucune solution


de coût strictement inférieur.
Une méthode est admissible si chaque solution optimale
est trouvée en un temps fini.

Intelligence Artificielle – p. 11/1


Recherche Guidée : Définitions

Une solution est optimale s’il n’existe pas aucune solution


de coût strictement inférieur.
Une méthode est admissible si chaque solution optimale
est trouvée en un temps fini.
Une heuristique est une mesure associée à un état donné
qu’on notera h(Ei ).
h(Ei ) est coı̈ncidente si ∀Ej ∈ F, h(Ej ) = 0.
h(Ei ) est presque parfaite si h(Ej ) < h(Ei ) où Ej est un
état qui suit Ei .
h(Ei ) est consistante si h(Ei ) − h(Ej ) ≤ k ∗ (Ei , Ej ).
h(Ei ) est monotone si
∀(Ei , Eij ), (Aij , Eij ) ∈ T (Ei ), h(Ei ) − h(Eij ) ≤ k(Ei , Eij ).
h(Ei ) est minorante si h(Ei ) ≤ h∗ (Ei )
Intelligence Artificielle – p. 11/1
Théorèmes sur les heuristiques - 1

h est monotone ssi h est consistante


Démonstration :
Supposons que h est consistante , dons pour toute paire
d’états nous avons h(Ei ) − h(Ej ) ≤ k ∗ (Ei , Ej ) et plus
particulièrement si Ej ∈ Succ(Ei ) alors
h(Ei ) − h(Ej ) ≤ k ∗ (Ei , Ej ) et par définition nous avons
k ∗ (Ei , Ej ) ≤ k(Ei , Ej ).
Maintenant supposons que la stratégie est monotone Soient
(E0 , En ) une paire d’états pour laquelle il y a un chemin
optimal E1 , ..En−1 , En , nous avons
∀i(h(Ei−1 ) − h(Ei) ≤ k(Ei−1 , Ei)) En sommant nous
Pn
obtenons : h(E0 ) − h(En ) ≤ i=1 k(Ei−1 , Ei) et donc :
h(E0 ) − h(En ) ≤ k ∗ (E0 , En )

Intelligence Artificielle – p. 12/1


Théorèmes sur les heuristiques - 2

Si h est monotone et coïncidente, alors h est minorante.


Démonstration :
Par hypothèse de monotonie et sur un chemin optimal, on
obtient que h(E0 ) − h(En ) ≤ k ∗ (E0 , En ) et puisque le
chemin est optimal alors h(E0 ) − h(En ) ≤ h∗ (E0 ) et puisque
l’heuristique est coı̈ncidente alors h(E0 ) ≤ h∗ (E0 )

Intelligence Artificielle – p. 13/1


L’algorithme A* : Principe

Utilisation d’une heuristique pour pendant l’exploration


de l’arbre.

Intelligence Artificielle – p. 14/1


L’algorithme A* : Principe

Utilisation d’une heuristique pour pendant l’exploration


de l’arbre.
Deux files sont utilisées pour stocker les états visités et
à visiter : Inactif & Actif
Parmi tous les successeurs d’un état, sont ajoutés à
actifs Actif :
les états non visités,
les états déjà visités ayant un coût actuel moins
élevé.
Une mesure f (e) = g(e) + h(e) est associée à chaque
état.
La file Actif est triée par ordre de f croissant.

Intelligence Artificielle – p. 14/1


L’algorithme A*

Procedure A*()
e,e’ : ETAT, Actif, Inactif : FILE,
Actif ← [e0 ], Inactif ← []
g(e0 ) ← 0 , e ← e0
TANTQUE non f ileV ide(Actif ) ET non e ∈ F
supprimer(Actif ) ,inserer(Inactif, e)
PourToute0 ∈ Succ(e), SI non (e0 ∈ Actif ET
e0 ∈ Inactif ) OU g(e0 ) > g(e) + k(e, e0 )
· g(e0 ) ← g(e) + k(e, e0 ), f (e0 ) ← g(e0 ) + h(e0 )
· pere(e0 ) ← e
· ajouterT rier(Actif, e0 )
SI non(f ileV ide(Actif ))
· e ← premier(Actif )
Intelligence Artificielle – p. 15/1
Complément : Théorèmes & Définition

Si tout chemin de longueur infinie a un coût infini, si sur


un chemin optimal, la valeur de l’heuristique est bornée
et si chaque état a un nombre fini de successeurs alors
l’algorithme A* termine.

Intelligence Artificielle – p. 16/1


Complément : Théorèmes & Définition

Si tout chemin de longueur infinie a un coût infini, si sur


un chemin optimal, la valeur de l’heuristique est bornée
et si chaque état a un nombre fini de successeurs alors
l’algorithme A* termine.
Si les conditions de terminaisons sont réalisées et si
l’heuristique est minorante alors l’algorithme A* est
admissible.

Intelligence Artificielle – p. 16/1


Complément : Théorèmes & Définition

Si tout chemin de longueur infinie a un coût infini, si sur


un chemin optimal, la valeur de l’heuristique est bornée
et si chaque état a un nombre fini de successeurs alors
l’algorithme A* termine.
Si les conditions de terminaisons sont réalisées et si
l’heuristique est minorante alors l’algorithme A* est
admissible.
L’heuristique h2 est plus informée que h1 si toutes les deux
sont minorantes et si h2(e) > h1(e), ∀e ∈ S .

Intelligence Artificielle – p. 16/1

Vous aimerez peut-être aussi