IFT 702 – Planification en intelligence artificielle
Planification par recherche heuristique dans un espace d’états
Froduald Kabanza
Département d’informatique Université de Sherbrooke
planiart.usherbrooke.ca/cours/ift608
Contenu
• Rappels
• Architecture d’un planificateur utilisant comme solveur une recherche dans un espace d’états
• Langage de modélisation STRIPS et transformation
correspondante pour un solveur par recherche dans un espace d’états
• Langage de modélisation PDDL transformation
correspondante pour un solveur par recherche dans un
espace d’états
Rappel – un planificateur est un solveur de modèle
observations buts
action
World
Exécution de l’actionPlan Planificateur
Modèle d’actions, capteurs et buts
observations buts
IFT608/IFT702 3
Rappel – Hypothèses sur le domaine
Les hypothèses du domaine à considérer sont:
–
Un seul agent au lieu plusieurs agents–
Déterministe au lieu de stochastique–
Complétement observable au lieu de partiellement observable–
Séquencement d’actions ayant des liens de causalitéUn algorithme défini avec ces hypothèse peut dans une certaine mesure être appliqué dans un environnement ne satisfaisant pas les deux premières
hypothèses:
–
Un planificateur déterministe centralisé peut planifier pour plusieurs agents–
L’incertitude est géré par l’architecture décisionnelle en re-planifiantArchitecture générale d’un planificateur opérant par recherche dans un espace d’états
Modèle (actions, buts)
Fonction de transition
Recherche heuristique dans un graphe d’états
Plan (Séquence d’actions) État initial But
•
Le modèle ne décrit pas les capteurs puisque l’environnement est déterministe.•
Le modèle est transformé en fonction de transition pour un graphe d’états.IFT608/IFT702 5
Un robot doit empiler des blocs dans une configuration indiquée.
C’est une version simplifiée d’un robot de manipulation de conteneurs dans un port.
Exemple 1: Monde des blocs
Exemple 2: Livraison de colis
Un robot doit recevoir des commandes de livraisons de colis et les exécuter.
r1 (chambre) r2 (chambre)
c1 (corridor)
r4 (cuisine) r3 (s. bain)
c2 (corridor) Colis 1
Colis 2
d11 d12 d23 d24
Exemple 1 : Empiler des blocs
•
Étant donné un modèle d’actions primitives (prendre un block, relâcher un bloc, etc.), trouver un plan pour attendre le but.•
Le problème est transformé en un problème de trouver un chemin dans un graphe dirigé.Exemple 2 : Livrer des colis
•
Étant donné un modèle d’actions primitives (prendre un colis, relâcher un bloc, se déplacer d’une pièce à l’autre), trouver un plan pour attendre le but.•
Le problème est transformé en un problème de trouver un chemin dans un graphe dirigé.r1 r2 r3 r4
r5 r6
r1 r2 r3 r4
r5 r6
État initial But
robot
IFT608/IFT702 9
…
Take(…)
Goto(…)
…
… … … …
… …
Rappel - Comment trouver un chemin dans un graphe?
•
Non informé: Largeur, profondeur, iterative deepening, Dijkstra, etc.•
Ces algorithmes ne sont pas efficaces pour des problèmes qui nous intéressent. Ils n’ont aucun sens de direction.•
Le sens de direction est donné par une fonction heuristique.•
Recherche heuristique dans un graphe–
Best-first: (f(x) = α*g(x) + β*h(x))o
α = 0: algorithme glouton (greedy)o
β = 0: uniform-costo
α = β: A*•
Défi: trouver une fonction heuristique h(x)IFT608/IFT702 11
•
IFT 615 (Recherche heuristique globale)Prérequis IFT615
IFT608/IFT702 13
•
Voir IFT 615 (Recherche heuristique globale)•
A* est une extension de l’algorithme de Dijkstra–
Utilisé pour trouver un chemin optimal dans un graphe via l’ajout d’une heuristique•
Une heuristique h(n) est une fonction d’estimation du coût entre un nœud n d’un graphe et le but (le nœud à atteindre)•
L’heuristique donne un sens de direction à l’exploration de l’espace d’états.•
Le temps de calcul de A* et la qualité de la solution (proximité à la solution optimale) dépendent beaucoup de la qualité de l’heuristique.Rappel - Recherche heuristique
•
Entrée de A*–
État initial (l’état courant)–
État final (le but)–
Fonction de transition : successeur(état, action)–
Fonction de cout : cout(état,successeur)–
Fonction heuristique: h(état)•
Sortie: chemin entre l’état initial et l’état final. Le chemin est optimal si l’heuristique est admissible.•
Les fonctions sont définies une seule fois pour un domaine. Ellesdéfinissent le domaine. L’état initial et le but spécifie un problème dans le domaine.