• Aucun résultat trouvé

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
37
0
0

Texte intégral

(1)

Intelligence Artificielle

Recherche dans un espace d’états

Maria Malek

D ´epartement Informatique

(2)

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

Comment résoudre un problème ?

(3)

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

Comment résoudre un problème ? Recherche des solutions ..

(4)

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

Comment résoudre un problème ? Recherche des solutions ..

Recenser les ´etats d’un syst `eme donn ´e et trouver parmi ces ´etats une ou plusieurs solutions.

(5)

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

Comment résoudre un problème ? Recherche des solutions ..

Recenser les ´etats d’un syst `eme donn ´e et trouver parmi ces ´etats 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 ´egie de recherche.

(6)

Stratégie de recherches & Modélisation

Algorithme de recherche aveugle en profondeur ou en largeur (coûteux).

(7)

Stratégie de recherches & Modélisation

Algorithme de recherche aveugle en profondeur ou en largeur (coûteux).

Objectif : diminution du temps de recherche.

(8)

Stratégie de recherches & Modélisation

Algorithme de recherche aveugle en profondeur ou en largeur (coûteux).

Objectif : diminution du temps de recherche.

Int ´egration d’une heuristique : Algorithme A*.

(9)

Stratégie de recherches & Modélisation

Algorithme de recherche aveugle en profondeur ou en largeur (coûteux).

Objectif : diminution du temps de recherche.

Int ´egration 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.

(10)

Résolution de problème

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

A1, ..Aj, ..An tels que (Aj, Ej) T(Ej1) et En F.

(11)

Résolution de problème

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

A1, ..Aj, ..An tels que (Aj, Ej) T(Ej1) 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.

(12)

Résolution de problème

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

A1, ..Aj, ..An tels que (Aj, Ej) T(Ej1) 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*.

(13)

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é.

(14)

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.

(15)

La recherche aveugle - En largeur

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

(16)

La recherche aveugle - En largeur

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

On utilise une file d’attente.

(17)

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 ˆete quand on ´etat final est trouv ´e ou bien une profondeur maximale est trouv ´ee.

(18)

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 ˆete quand on ´etat final est trouv ´e ou bien une profondeur maximale est trouv ´ee.

Très cher en temps et espace,

(19)

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 ˆete quand on ´etat final est trouv ´e ou bien une profondeur maximale est trouv ´ee.

Très cher en temps et espace,

mais garantie de trouver la solution (si elle existe).

(20)

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 ˆete quand on ´etat final est trouv ´e ou bien une profondeur maximale est trouv ´ee.

Très cher en temps et espace,

mais garantie de trouver la solution (si elle existe).

Pas de problème de branche infinie.

(21)

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

(22)

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

(23)

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

Recherche d’une solution quelconque : algorithmes de recherche en profondeur d’abord

(24)

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.

(25)

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.

(26)

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.

(27)

Recherche Guidée : Définitions

Une solution est optimale s’il n’existe pas aucune solution de coût strictement inférieur.

(28)

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.

(29)

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)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).

(30)

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’ ´etats nous avons h(Ei) h(Ej) k(Ei, Ej) et plus

particuli `erement si Ej Succ(Ei) alors

h(Ei) h(Ej) k(Ei, Ej) et par d ´efinition nous avons

k(Ei, Ej) k(Ei, Ej).

Maintenant supposons que la strat ´egie est monotone Soient

(E0, En) une paire d’ ´etats pour laquelle il y a un chemin optimal E1, ..En1, En, nous avons

i(h(Ei1) h(Ei) k(Ei1, Ei)) En sommant nous obtenons : h(E0) h(En) Pn

i=1 k(Ei1, Ei) et donc : h(E0) h(En) k(E0, En)

(31)

Théorèmes sur les heuristiques - 2

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

Démonstration :

Par hypoth `ese 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)

(32)

L’algorithme A* : Principe

Utilisation d’une heuristique pour pendant l’exploration de l’arbre.

(33)

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.

(34)

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)

(35)

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.

(36)

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.

(37)

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 ´ee que h1 si toutes les deux sont minorantes et si h2(e) > h1(e), e S.

Références

Documents relatifs

On va maintenant appliquer le prédicat rechPf aux deux problèmes suivants, en définissant pour chacun d'entre eux l'état initial, l'état final et les opérateurs.. 2 Le problème

Dans le prédicat de recherche, on considère tous les états auxquels peuvent conduire les opérateurs applicables, et l’on choisit l’opérateur qui conduit à l’état le plus

Dans cette perspective, Hitt (1996) a analysé leurs approches suivies par des enseignant(e)s de niveau secondaire sur des tâches liées à des problèmes non routiniers (ceux

Enfin, on remarque que pour les nombres auxquels on associe des groupes cycliques, l’intersection entre l’ensemble des g´ en´ erateurs du groupe et l’ensemble des nombres

Ce cervid´ e passe de longues heures ` a se raffraichir dans ces lacs et rivi` eres o` u il s’abreuve de plantes aquatiques riches en sodium, mais il se nourrit aussi de feuilles et

Or si l'on observe le tableau statut, pour tout sommet x, statut[x] vaut -1 lorsque l'appel à profondeur(G,statut,x) n'est pas commençé, 0 lorsqu'il commence et 1 lorsqu'il

”Maintenant, on va expliquer comment on peut avoir l’id´ ee des exemples 1 et 2 sans astuce, juste en appliquant nos connaissances du cours.. Supposons que E est de dimension finie

[r]