BASES DE L’INTELLIGENCE ARTIFICIELLE
Master Informatique M1
1
INTRODUCTION
Patrick NOUNAMO
2021-2022
SUJETS COUVERTS
• Intelligence artificielle
• Agents intelligents
• Rationalité
• PEAS (mesure de Performance, Environnement,Actuateurs, Senseurs)
• Types d’environnements
• Types d’agents
• Exemple – Le monde des wumpus (Wumpus world)
IFT615 © Éric Beaudry 2
SUJETS COUVERTS
• Résolution de problème par recherche
• Comprendre A*
• Implémenter A*
• Appliquer A* à un problème donné
• Espace de solutions
• Comprendre la notion d’espace d’états
• Comprendre la notion d’heuristique
IFT615 © Éric Beaudry 3
INTELLIGENCE
• Avant de définir l’intelligence artificielle, il faut définir
l’intelligence !
• Définition ?
4
INTELLIGENCE ARTIFICIELLE (IA)
Définition :
« Branche de l'informatique ayant pour objet l'étude du
traitement des connaissances et du raisonnement humain, dans
le but de les reproduire artificiellement pour ainsi permettre à
un appareil [(agent)] d'exécuter des fonctions normalement
associées à l'intelligence humaine. » [Grand dictionnaire
terminologique, 2006]
5
DEUX BRANCHES DE L’IA
• Compréhension de l’intelligence
• Sciences cognitives, psychologie
• Comprendre le raisonnement humain
• Prédire la performance d’un humaine à une tâche
• Ex: l’architecture ACT-R pour évaluer le risque de parler au
téléphone en conduisant une voiture
• Création d’agents intelligents
• Capacités fondamentales:
• Perception
• Représentation des connaissances (modélisation)
• Apprentissage
• Raisonnement
• Prise de décisions
6
EXEMPLES D’AGENTS INTELLIGENTS
7
(1) Système d’aide à la décision; (2) Azimut-3; (3) Rover de la NASA; (4)
Radarsat-II de l’ASC; (5) Mario de Nintendo.
POURQUOI AVOIR UNE IA ?
• Programmation d’actions vs Décisions automatiques
• Programmation
• Scripts
• Machine à états finis
• Décisions automatiques (~ programmation dynamique)
• Les actions à exécuter ne sont ni scriptées, ni programmées à
l’avances
• L’agent décide lui-même de ses propres actions
8
TEST DE TURING
9
IA DANS LES JEUX
10
AGENTS
• Un agent est n’importe quel entité qui perçoit son environnement par des
senseurs (capteurs) et agit sur cet environnement par des actuateurs.
• Un agent humain a:
• des yeux, des oreilles, et d’autres senseurs;
• des mains, des jambes, une bouche et d’autres actuateurs.
• Un agent robot a:
• des caméras cameras, des senseurs infra rouges et autres;
• des roues, des jambes, des bras-articulés, et d’autres actuateurs.
11
AGENTS ET ENVIRONNEMENTS
• Le processus agent prend en entrée une donnée sensorielle et retourne une
action:
[f: P* à A]
• En pratique le processus est un implémenté par un programme sur une
architecture matérielle particulière.
12
ÉBAUCHE D’UN AGENT
13
EXEMPLE :ASPIRATEUR ROBOTISÉ
• Observations (données sensorielles): position et état des lieux.
• Par exemple: [A,Clean],
[A,Dirty],
[B,Clean],
• Actions: Left, Right, Suck, NoOp
14
EXEMPLE :ASPIRATEUR ROBOTISÉ
• f:
[A,Clean] → Right
[A,Dirty] → Suck
…
[A,Clean] [B,Dirty] [B,Clean] [A,Dirty] → Suck
…
15
AGENTS RATIONNELS
• Un agent rationnel doit agir “correctement” en fonction de ce qu’il perçoit et de ses
capacités d’action:
• L’action correcte est celle permettant à l’agent de réussir le mieux.
• Mesure de performance:
• Une fonction objective mesurant la qualité d’un comportement de l’agent.
• Par exemple, une mesure de performance pour le robot aspirateur pourrait être:
• la quantité de déchets aspirés,
• la propreté des lieux;
• la durée de la tâche;
• le bruit généré;
• Agent rationnel: Étant donné une séquence d’observations (données sensorielles) et des
connaissances propres, un agent rationnel devrait choisir une action qui maximise la
mesure de performance.
16
AGENTS RATIONNELS
• Rationalité ne veut pas dire « qui sait tout » (par exemple, connaît
tous les effets de ses actions)!
• Rationnel ne veut pas dire « parfait ».
• La rationalité maximise la performance espérée.
• La perfection maximise la performance réelle/actuelle.
• Mais souvent on ne peut pas connaître la performance réelle
avant l’action.
• Un agent peut effecteur des actions d’observation pour cueillir
des informations nécessaires à sa tâche.
• Un agent est autonome s’il est capable d’adapter son
comportement en fonction de son expérience (capacité
d’apprentissage et d’adaptation) 17
MODÈLE PEAS
• PEAS: Un modèle de conceptions des agents par la spécification des
composantes majeures suivantes:
• Mesure de performance (Performance),
• Connaissance de l’environnement (Environnement),
• Les actions que l’agent peut effectuer (Actuateurs),
• La séquence des perceptions par l’agent (Senseurs)
PEAS = Performance, Environnement,Actuateurs, Senseurs
18
MODÈLE PEAS POUR UN ROBOT TAXI
• Agent: robot taxi.
• Mesure de performance: sécurité, vitesse, respect du code routier, voyage
confortable, maximisation des profits.
• Environnement: Route, trafic, piétons, clients
• Actuateurs:Volant, changement de vitesse, accélérateur, frein, clignotants, klaxon
• Senseurs: Caméras, sonar, speedometer, GPS, odomètre, témoins du moteur, etc.
19
MODÈLE PEAS POUR UN DIAGNOSTIQUE
MÉDICAL AUTOMATISÉ
• Agent: Système de diagnostique médical
• Mesure de performance: Santé des patients, minimisation des coûts, satisfaction des
patients.
• Environnement: Patients, hôpital, personnel soignant.
• Actuateurs: Moniteur pour afficher des questions, les résultats de tests ou de
diagnostique, le traitement, etc.
• Senseurs: Clavier et souris pour saisir les symptômes, les réponses aux questions, etc.
20
TYPES D’ENVIRONNEMENTS
• Complètement observables (vs. partiellement observable): Grâce à ses senseurs, l’agent a
accès un état complet de l’environnement à chaque instant.
• Déterministe (vs. stochastique): L’état suivant de l’environnement est entièrement
déterminé par l’état courant et l’action effectuée par l’agent.
• Épisodique (vs. séquentiel): Les opérations/comportements de l’agent sont divisées en
épisodes:
• chaque épisode consistant à observer l’environnement et effectuer une seule
action,
• et le choix de chaque action dans une épisode ne dépendant que de cette épisode.
• Statique (vs. dynamique): L’environnement ne change pas lorsque l’agent n’agit pas.
• Discret (vs. continu): Un nombre limité et clairement distincts de données sensoriels et
d’actions.
• Agent unique (vs. multi-agent): Un agent opérant seul dans un environnement.
21
STRUCTURE DES AGENTS
• Simple reflex agents
• Model-based reflex agents
• Goal-based agents
• Utility-based agents
22
SIMPLE REFLEX AGENTS
23
SIMPLE REFLEX AGENT
24
MODEL-BASED REFLEX AGENTS
25
GOAL-BASED AGENTS
26
UTILITY-BASED AGENTS
27
LEARNING AGENTS
28
EXEMPLE : LE MONDE DES WUMPUS
• Mesure de performance
• or +1000, mort -1000
• -1 par un pas, -10 pour une flèche
• Environnement
• Puanteur dans les chambres adjacent au wumpus.
• Brise dans les chambres adjacentes à une fosse
• Scintillement si l’or est dans la chambre
• Le wumpus meurt si on lui tire une flèche de face
• On a une seule flèche
• On peut ramasser l’or dans la même chambre
• On peut lâcher l’or dans une chambre
• Senseurs: stench (puanteur), breeze (brise), glitter (scintillement), bumper (choc), scream (cri).
• Actuateurs: Left turn, Right turn, Forward, Grab, Release, Shoot
29
CARACTÉRISATION DU MONDE DES
WUMPUS
• Complètement observable? Non – seulement perception locale.
• Déterministe? Oui – l’effet de chaque action est prévisible.
• Épisodique? Non – séquentiel au niveau des actions.
• Statique? Oui – le wumpus et les fosses ne bougent pas.
• Discret? Oui.
• Agent unique? Oui – La seule action du wumpus est de nous « bouffer » si on
atteint sa chambre.
30
EXPLORATION DU MONDE DES WUMPUS
31
EXPLORATION DU MONDE DES WUMPUS
32
EXPLORATION DU MONDE DES
WUMPUS
33
EXPLORATION DU MONDE DES WUMPUS
34
EXPLORATION DU MONDE DES WUMPUS
35
EXPLORATION DU MONDE DES WUMPUS
36
EXPLORATION DU MONDE DES WUMPUS
37
EXPLORATION DU MONDE DES WUMPUS
38
PROCHAIN COURS
- Voir le plan de cours
39
RECHERCHE HEURISTIQUE
MOTIVATION
Problèmes pouvant être résolus à l’aide d’algorithmes de
recherche
40
EXEMPLE :TROUVER CHEMIN
DANSVILLE
52e rue
51e rue
50e rue
10
e
ave
9
e
ave
8
e
ave
7
e
ave
6
e
ave
5
e
ave
4
e
ave
3
e
ave
2
e
ave
S
G
53e rue
Trouver un chemin de la 9e ave & 50e rue à la 3e ave et 51e rue
(Exemple de Henry Kautz, U. of Washington)
41
EXEMPLE :TROUVER CHEMIN
DANSVILLE
52e rue
51e rue
50e rue
10
e
ave
9
e
ave
8
e
ave
7
e
ave
6
e
ave
5
e
ave
4
e
ave
3
e
Ave
2
e
ave
S
G
53e rue
Trouver un chemin de la 9e ave & 50e rue à la 3e ave et 51e rue
(Illustration par Henry Kautz, U. of Washington)
42
EXEMPLE : GOOGLE MAPS
43
EXEMPLE : LIVRER DES COLIS
r1 r2 r3 r4
r5 r6
r1 r2 r3 r4
r5 r6
État initial But
robot
44
EXEMPLE : LIVRER DES COLIS
p1 p2 p3 p4
c1 c2
robot
O1 O2
O3
45
EXEMPLE : NPUZZLE
1
2 3
4
5
7
6
8
8
1 3
4
5
7 6
2
?
1
2 3
4
5
7 6
8
1
2 3
4
5
7 6
8 1
2 3
4
5
7 6
8
1 2 3
4
5
7 6
8
1 2 3
4
5
7 6
8
1
2 3
4
5
7
6
8
Nord Sud
Ouest
Nord Est
46
RÉSOLUTION PAR
RECHERCHE DANS UN
GRAPHE
47
RÉSOLUTION DE PROBLÈMES
• Étapes intuitives par un humain
1. Modéliser la situation (état) actuelle
2. Énumérer les options possibles
3. Évaluer les conséquences des options
4. Retenir la meilleure options possibles satisfaisant le but
• La résolution de beaucoup de problèmes peut être faite par une recherche
dans un graphe
• Le graphe peut être un espace de solutions (espaces d’états, espace
d’assignations, espace de plans, …)
48
RÉSOLUTION DE PROBLÈME PAR UNE
RECHERCHE HEURISTIQUE DANS UN
GRAPHE
• La recherche heuristique est à la base de beaucoup
d’approches en IA
• Approche générale
• Pour une application donnée, l’espace de solutions est représenté à
l’aide d’un graphe
• Un problème particulier pour une application donnée est résolu par
une recherche dans le graphe
• En général
• Le graphe est défini récursivement
• Une heuristique est utilisée pour guider la recherche
• Les heuristiques exploitent les connaissances du domaine d’application
49
PROBLÈME DE RECHERCHE DANS UN
GRAPHE
• Algorithme de recherche dans un graphe
• Entrées
• Un nœud initial
• Une fonction goal(n) qui retourne true si le but est atteint
• Une fonction de transition transitions(n) qui retourne les
nœuds successeurs de n.
• Sortie
• Un chemin dans un graphe (séquence nœuds / arrêtes)
• Le coût d’un chemin est la somme des coûts des arrêtes dans le graphe
• Il peut y avoir plusieurs nœuds qui satisfont le but
• Enjeux
• Trouver un chemin solution
• Trouver un chemin optimal
• Trouver rapidement un chemin (optimalité pas importante)
50
EXEMPLE : GRAPHE D’UNEVILLE
• Nœuds = intersections
• Arrêtes = segments de rue
52e rue
51e rue
50e rue
10
e
ave
9
e
ave
8
e
ave
7
e
ave
6
e
ave
5
e
ave
4
e
ave
3
e
Ave
2
e
ave
S
G
53e rue
(Illustration par Henry Kautz, U. of Washington)
51
EXEMPLE :TROUVER UN CHEMIN
DANS UNVILLE
v0
v3 v2 v1
v4
v6
v5
2 3
1
1 7
2
4
4
4
Domaine :
Routes entre les villes
transitions(v0):
((2,v3), (4,v2), (3, v1))
Problème posé (initNode, goal):
v0: ville de départ (état initial)
v6: destination (but)
En d’autres termes:
goal(v): vrai si v=v6
52
RAPPEL SUR LES ALGORITHMES DE
RECHERCHE DANS DES GRAPHES
• Recherche meilleur immédiat en premier (Greedy Best-First-Search)
• Attention: certains auteurs utilisent le terme Best-First-Search pour désigner
Greedy Best-First-Search.
• Les deux algorithmes sont très différents !
• Recherche en profondeur (Depth-First-Search)
• Recherche en largeur (Breadth-First-Search)
• Algorithme de Dijkstra
• Algorithme de Floyd
• Recherche heuristiques (A*)
53
ALGORITHME A*
54
ALGORITHME A*
• A* est une extension de l’algorithme de Dijkstra utilisé pour trouver un
chemin optimal dans un graphe.
• Par l’ajout des heuristiques.
• Une heuristique est une fonction d’estimation du coût entre un nœud d’un
graphe et le but (le nœud à atteindre).
• Les heuristiques sont à la base de beaucoup de travaux en IA:
• Recherche de meilleurs heuristiques
• Apprentissage automatique d’heuristiques
• Pour décrire A*, il est pratique de décrire un algorithme générique très
simple, dont A* est un cas particulier.
55
VARIABLES IMPORTANTES : OPEN
ET CLOSED
• Open contient les nœuds non encore traités, c’est à dire à la
frontière de la partie du graphe explorée jusque là.
• Closed contient les nœuds déjà traités, c’est à dire à
l’intérieur de la frontière délimitée par open.
56
INSERTION DES NŒUDS DANS
OPEN
• Les nœuds dans open sont triés selon l’estimé de leur
proximité au but.
• A chaque nœud n est associé une fonction f(n) mesurant la
qualité de la meilleure solution passant par ce nœud.
• Pour chaque nœud n, f(n) est un nombre réel positif ou nul,
estimant le coût pour un chemin partant de la racine,
passant par n, et arrivant au but.
• Dans open, les nœuds se suivent en ordre croissant selon
les valeurs f(n).
• Le tri se fait par insertion: on s’assure que le nouveau nœud
va au bon endroit.
57
DÉFINITION DE F
• La fonction f désigne la distance entre le nœud initial et le but.
• En pratique on ne connaît pas cette distance : c’est ce qu’on cherche !
• Par contre on connaît la distance optimal dans la partie explorée entre la
racine et un nœud déjà exploré.
• Il est pratique de séparer f(n) en deux parties:
• g(n) : coût réel du chemin optimal partant de la racine à n dans la
partie déjà explorée.
• h(n) : coût estimé du reste du chemin partant de n jusqu’au but.
h(n) est une fonction heuristique.
58
EXEMPLES DE FONCTIONS
HEURISTIQUES
• Chemin dans une ville
• Distance Euclidienne ou distance de Manhattan pour un chemin sur une carte.
• éventuellement pondéré par la qualité des routes, le prix du billet, etc.
• Probabilité d’atteindre l’objectif en passant par le nœud.
• Qualité de la configuration d’un jeu par rapport à une configuration gagnante
• N-Puzzle
• nombre de tuiles mal placées
• Somme des distances des tuilles
• Dans un système expert
• nombre d’hypothèses qui restent à valider, possiblement pondérés selon leur
vraisemblance.
59
ALGORITHME GÉNÉRIQUE DE RECHERCHE DANS
UN GRAPHE
Algorithme rechercheDansGraphe(noeudInitial)
1. Déclarer deux nœuds : n1, n2
2. Déclarer deux listes: open, closed // toutes les deux sont vides au départ
3. Insèrer noeudInitial dans open
4. while (1) // la condition de sortie (exit) est déterminée dans la boucle
5. si open est vide, sortir de la boucle avec échec
6. n1 = noeud au début de open;
7. enlèver n1 de open et l’ajouter dans closed
8. si n1 est le but, sortir de la boucle avec succès en retournant le chemin;
9. Pour chaque successeur n2 de n1
10. Initialiser la valeur g de n2 à : g(n1) + le coût de la transition (n1,n2)
11. mettre le parent de n2 à n1
12. Si closed ou open contient un nœud n3 égal à n2 avec f(n2) ≤f(n3), enlèver n3 de
closed ou open et insérer n2 dans open (ordre croissant selon f(n))
13. Sinon (c-à-d., n2 n’est est ni dans open ni dans closed)
14. insèrer n2 dans open en triant les nœuds en ordre croissant selon f(n)
IFT615 - Été 2011
60
© Éric Beaudry et Froduald Kabanza
EXEMPLE A* AVEC RECHERCHE DANS UNE
VILLE
v0
v3 v2 v1
v4
v6
v5
9
2
3 2
2
5
0
2 3
1
1 7
2
4
4
4
h(n0)
c(n0,n3)
Routes entre les villes :
v0: ville de départ
v6: destination
h: distance à vol d’oiseau
C: distance réelle entre deux ville
1. (v0, 9, void)
Contenu de closed à la sortie
(noeud, f) :
(v4,6), (v3,7), (v2,5), (v1,5), (v0,9)
Contenu de open à chaque
itération (état, f, parent) :
2. (v1,5,v0) (v2,6,v0), (v3,7,v0)
3. (v2,6,v0) (v3,7,v0), (v5,12,v1)
4. (v3,7,v0),(v4,9,v2),(v5,12,v1)
5. (v2,5,v3),(v4,6,v3),(v5,12,v1)
6. (v4,6,v3),(v5,12,v1)
7. (v6,7,v4), (v5,12,v1)
8. Solution: v0,v3,v4,v6
61
A* EN MARCHE
52e rue
51e rue
50e rue
10
th
Ave
9
e
ave
8
e
ave
7
e
ave
6
e
ave
5
e
ave
4
e
ave
3
e
ave
2
e
ave
S G
53e rue
f=6+2
f=1+7
f=7+3
(Illustration par Henry Kautz, U. of Washington)
62
NON-OPTIMALITÉ DE BEST-FIRST SEARCH
52e rue
51e rue
50e rue
10
e
ave
9
e
ave
8
e
ave
7
e
ave
6
e
ave
5
e
ave
4
e
ave
3
e
ave
2
e
ave
S G
53e rue
Solution par Best-first
Solution optimale
(Illustration par Henry Kautz, U. of Washington)
63
DÉMO D’ALGORITHMES DE RECHERCHE
DANS UN ESPACE D’ÉTATS
A*, Profondeur, Largeur, Best-First
64
PROPRIÉTÉS DE A*
• Si le graphe est fini,A* termine toujours.
• Si une solution existe A* la trouve toujours.
• Si la fonction heuristique h retourne toujours un estimé inférieur au
coût réel, on dit que h est admissible. Dans ce cas,A* retourne
toujours une solution optimale.
• En fait, en principe A* est l’algorithme que j’ai appelé A* avec la condition
additionnelle que h soit admissible.
65
PROPRIÉTÉS DE A*: RECHERCHE EN LARGEUR
• En utilisant des coûts des arcs uniformément égaux et strictement
positifs (par exemple, tous égaux à 1) et h retournant toujours 0
quelque soit le nœud,A* devient une recherche en largeur.
• Open devient une queue LILO (last in, last out), en d’autre termes
« dernier entré, dernier sorti ».
66
PROPRIÉTÉS DE A*
• Soit f*(n), le coût d’un chemin optimal passant par n. Pour chaque
nœud exploré par A*, on a toujours f(n) £ f*(n).
• Si quelque soit un nœud n1 et son successeur n2, nous avons toujours
h(n1) £ c(n1,n2) + h(n2), où c(n1,n2) est le coût de l’arc (n1,n2), on dit
que h est consistant (on dit aussi parfois monotone – mais c’est en réalité
f qui devient monotone). Dans ce cas,
• h est aussi admissible.
• Chaque fois que A* choisit un nœud au début de open, cela veut
dire que A* a déjà trouvé un chemin optimal vers ce nœud: le
nœud ne sera plus jamais revisité!
67
PROPRIÉTÉS DE A*
• Si on a deux heuristiques admissibles h1 et h2, tel que h1(n) < h2(n),
alors h2(n) conduit plus vite au but: avec h2,A* explore moins ou
autant de nœuds avant d’arriver au but qu’avec h1.
• Si h n’est pas admissible, soit x la borne supérieur sur la surestimation
du coût. C-à-d., on a toujours h(n) £ h*(n) + x. Dans ce cas A*
retournera une solution dont le coût est au plus x plus que le coût
optimal, c-à-d.,A* ne se trompe pas plus que x sur l’optimalité.
68
TEST SUR LA COMPRÉHENSION DE A*
• Étant donné une fonction heuristique non admissible, l’algorithme A* donne
toujours une solution lorsqu’elle existe, mais il n’y a pas de certitude qu’elle soit
optimale.
• Vrai.
• Si les coûts des arcs sont tous égaux à 1 et la fonction heuristique retourne tout
le temps 0, alors A* retourne toujours une solution optimale lorsqu’elle existe.
• Vrai.
• Lorsque la fonction de transition contient des boucles et que la fonction
heuristique n’est pas admissible,A* peut boucler indéfiniment même si l’espace
d’états est fini.
• Faux.
• Avec une heuristique monotone,A* n’explore jamais le même état deux fois.
• Vrai.
69
TEST SUR LA COMPRÉHENSION DE A*
• Étant donné deux fonctions heuristiques h1 et h2 telles que
0≤ h1(s)< h2(s) ≤ h*(s), pour tout état s, h2 est plus efficace que h1 dans
la mesure où les deux mènent à une solution optimale, mais h2 le fait en
explorant moins de nœuds.
• Vrai.
• Si h(s)=h*(s), pour tout état s, l’optimalité de A* est garantie.
• Vrai.
70
71
IFT
615
DÉFINITION GÉNÉRIQUE DE F
• Selon le poids que l’on veut donner à l’une ou l’autre partie, on définie
f comme suit:
f(n) = (1-w)*g(n) + w*h(n)
où w est un nombre réel supérieur ou égal à 0 et inférieur ou égal à
1.
• Selon les valeurs qu’on donne à 0, on obtient des algorithmes de
recherche classique:
• Dijkstra : w = 0 (f(n) = g(n) )
• Best-first search : w = 1 (f(n) = h(n) )
• A* : w = 0.5 (f(n) = g(n) + h(n) )
VARIATIONS DE A*
• Beam search
• On met une limite sur le contenu de OPEN et CLOSED
• Recommandé lorsque pas assez d’espace mémoire.
• Bit-state hashing
• CLOSED est implémenté par une table hash et on ignore les collisions
• Utilisé dans la vérification des protocoles de communication, mais avec
une recherche en profondeur classique (pas A*).
• Exemple: outil SPIN
72
VARIATIONS DE A*
• Iterative deepening
• On met une limite sur la profondeur
• On lance A* jusqu’à la limite de profondeur spécifiée.
• Si pas de solution on augmente la profondeur et on recommence A*
• Ainsi de suite jusqu’à trouver une solution.
• And-Or A*
• Fait pour les graphes ET-OU
• D* (inventé par Stenz et ses collègues).
• A* Dynamique. Évite de refaire certains calculs lorsqu’il est appelé
plusieurs fois pour atteindre le même but, suite à des changements de
l’environnement.
73
VARIATIONS DE A*
• ARA*
• Similaire au iterative deepening, en variant le poids de l’heuristique.
74
DÉMO D’ALGORITHMES DE RECHERCHE
DANS UN ESPACE D’ÉTATS
A*, Profondeur, Largeur, Best-First
75
EXEMPLE ACADÉMIQUE
• 8-puzzle
• État: configuration légale du jeu
• État initial: configuration initiale
• État final (but): configuration gagnante
• Transitions
1
2 3
4
5
7
6
8
8
1 3
4
5
7 6
2
?
1
2 3
4
5
7
6
8
1
2 3
4
5
7 6
8
. . .
. . .
Nord
1
2 3
4
5
7 6
8
Est
Ouest
Sud
76
CLASSICAL PLANNING
(A*)
77
Goto(r5,r1)
Goto(r5,r2)
…
Take(…)
Goto(…)
…
… … … …
… …
APPLICATION DANS LA PLANIFICATION DE
TRAJECTOIRES
Références:
Steven LaValle. Planning Algorithms. Morgan Kaufmann. Cambridge University Press, 2006.
http://planning.cs.uiuc.edu/
Cours IFT702.
Architecture de contrôle générale:
78
Application : industrie automobile
Démos du Motion Planning Kit (Jean-Claude Latombe)
79
Application : industrie automobile
[Steven LaValle. Planning Algorithms]
80
APPLICATION: ROBOTS HUMANOÏDES
S. Kagami. U of Tokyo
ASIMO
Honda
S. Kagami. U of Tokyo
81
APPLICATION: JEUX VIDÉOS ET CINÉMA
[Steven LaValle. Planning Algorithms]
82
APPLICATION : PERSONNAGES ANIMÉS
Julien Pettré, Jean-Paul Laumond, Thierry Siméon
http://www.cs.uu.nl/centers/give/movie/publications/iros03-laas.php
83
ÉNONCÉ DU PROBLÈME
• Énoncé: Calculer une trajectoire géométrique d’un solide articulé sans collision
avec des obstacles statiques.
Planificateur de
trajectoires
Entrée:
ØGéométrie du robot et des obstacles
ØCinétique du robot (degrés de liberté)
ØConfigurations initiale et finale
Sortie:
ØUne séquence continue de configurations
rapprochées, sans collision, joignant la configuration
initiale à la configuration finale
84
QUELQUES TERMES TECHNIQUES
• Configuration : position et orientation
du bras
• représentée par un vecteur : un angle pour
chaque joint
• Cinétique inverse: problème de
déterminer les angles pour mettre le
bout du bras dans une position donnée
• Ne tient pas compte de
l’évitement des obstacles.
• Problème algébrique.
• Le Jacobien est une matrice
relatant la vélocité du bout du
bras avec les joints
• Planification de trajectoire: tient compte
de l’évitement des obstacles.
Deux configurations diffirentes
85
CADRE GÉNÉRALE DE RÉSOLUTION DU PROBLÈEME
Problème continu
(espace de configuration + contraintes)
Discrétisation
(decomposition, échantillonage)
Recherche heuristique dans un graphe
(A* ou similaire)
86
APPROCHE COMBINATOIRE
PAR DÉCOMPOSITION EN CELLULES
Room 1
Room 2
Room 5
Room 4
Room 3
87
DÉCOMPOSER LA CARTE EN GRILLE (OCCUPANCY GRID):
4-CONNECTED (ILLUSTRÉ ICI) OU 8-CONNECTED.
NOEUD: CASE OCCUPÉ PAR LE ROBOT + ORIENTATION
DU ROBOT
Transitions:
- Turn left
- Turn right
- Go straight ahead
Room 1 Room 5
Room 2
Room 4
Room 3
88
HEURISTIQUES:
- DISTANCE EUCLIDIENNE, DURÉE DU VOYAGE
- CONSOMMATION D’ÉNERGIE OU COÛT DU BILLET
- DEGRÉ DE DANGER (CHEMIN PRÈS DES ESCALIERS,
DES ENNEMIS).
Go east =
(Turn right) +
Go straight ahead
Room 1 Room 5
Room 2
Room 4
Room 3
89
APPROCHE PAR ÉCHANTILLONAGE DE L’ESPACE DE
CONFIGURATIONS (PROBABILISTIC ROADMAP)
Espace de configurations libres
qb
qg
milestone
(jalon)
[Kavraki, Svetska, Latombe, Overmars, 95]
90
RAPIDLY EXPLORING DENSE TREE (RDT)
[Steven LaValle. Planning Algorithms]
• RRT (rapidly exploring random tree): cas particulier de RDT.
91
OUTILS DE PLANIFICATION DE TRAJECTOIRES
ET SIMULATEURS ROBOTIQUES
● OOPSMP (Object-Oriented Programming System for Motion Planning)
● http://www.kavrakilab.org/OOPSMP/index.html
● Tutoriel: http://kavrakilab.org/OOPSMPtutorial
● MPK (Motion Planning Kit)
● http://robotics.stanford.edu/~mitul/mpk
● Roman Tutor
● Basé sur MPK.
● Contacter http://planiart.usherbrooke.ca/~khaled/
● Player, Stage, Gazebo
● http://playerstage.sourceforge.net/index.php?src=gazebo
● Simulateurs de robot mobiles.
● Microsoft Robotics Developer Studio 2008.
92

IA_Infotel_2021_01.pdf

  • 1.
    BASES DE L’INTELLIGENCEARTIFICIELLE Master Informatique M1 1 INTRODUCTION Patrick NOUNAMO 2021-2022
  • 2.
    SUJETS COUVERTS • Intelligenceartificielle • Agents intelligents • Rationalité • PEAS (mesure de Performance, Environnement,Actuateurs, Senseurs) • Types d’environnements • Types d’agents • Exemple – Le monde des wumpus (Wumpus world) IFT615 © Éric Beaudry 2
  • 3.
    SUJETS COUVERTS • Résolutionde problème par recherche • Comprendre A* • Implémenter A* • Appliquer A* à un problème donné • Espace de solutions • Comprendre la notion d’espace d’états • Comprendre la notion d’heuristique IFT615 © Éric Beaudry 3
  • 4.
    INTELLIGENCE • Avant dedéfinir l’intelligence artificielle, il faut définir l’intelligence ! • Définition ? 4
  • 5.
    INTELLIGENCE ARTIFICIELLE (IA) Définition: « Branche de l'informatique ayant pour objet l'étude du traitement des connaissances et du raisonnement humain, dans le but de les reproduire artificiellement pour ainsi permettre à un appareil [(agent)] d'exécuter des fonctions normalement associées à l'intelligence humaine. » [Grand dictionnaire terminologique, 2006] 5
  • 6.
    DEUX BRANCHES DEL’IA • Compréhension de l’intelligence • Sciences cognitives, psychologie • Comprendre le raisonnement humain • Prédire la performance d’un humaine à une tâche • Ex: l’architecture ACT-R pour évaluer le risque de parler au téléphone en conduisant une voiture • Création d’agents intelligents • Capacités fondamentales: • Perception • Représentation des connaissances (modélisation) • Apprentissage • Raisonnement • Prise de décisions 6
  • 7.
    EXEMPLES D’AGENTS INTELLIGENTS 7 (1)Système d’aide à la décision; (2) Azimut-3; (3) Rover de la NASA; (4) Radarsat-II de l’ASC; (5) Mario de Nintendo.
  • 8.
    POURQUOI AVOIR UNEIA ? • Programmation d’actions vs Décisions automatiques • Programmation • Scripts • Machine à états finis • Décisions automatiques (~ programmation dynamique) • Les actions à exécuter ne sont ni scriptées, ni programmées à l’avances • L’agent décide lui-même de ses propres actions 8
  • 9.
  • 10.
    IA DANS LESJEUX 10
  • 11.
    AGENTS • Un agentest n’importe quel entité qui perçoit son environnement par des senseurs (capteurs) et agit sur cet environnement par des actuateurs. • Un agent humain a: • des yeux, des oreilles, et d’autres senseurs; • des mains, des jambes, une bouche et d’autres actuateurs. • Un agent robot a: • des caméras cameras, des senseurs infra rouges et autres; • des roues, des jambes, des bras-articulés, et d’autres actuateurs. 11
  • 12.
    AGENTS ET ENVIRONNEMENTS •Le processus agent prend en entrée une donnée sensorielle et retourne une action: [f: P* à A] • En pratique le processus est un implémenté par un programme sur une architecture matérielle particulière. 12
  • 13.
  • 14.
    EXEMPLE :ASPIRATEUR ROBOTISÉ •Observations (données sensorielles): position et état des lieux. • Par exemple: [A,Clean], [A,Dirty], [B,Clean], • Actions: Left, Right, Suck, NoOp 14
  • 15.
    EXEMPLE :ASPIRATEUR ROBOTISÉ •f: [A,Clean] → Right [A,Dirty] → Suck … [A,Clean] [B,Dirty] [B,Clean] [A,Dirty] → Suck … 15
  • 16.
    AGENTS RATIONNELS • Unagent rationnel doit agir “correctement” en fonction de ce qu’il perçoit et de ses capacités d’action: • L’action correcte est celle permettant à l’agent de réussir le mieux. • Mesure de performance: • Une fonction objective mesurant la qualité d’un comportement de l’agent. • Par exemple, une mesure de performance pour le robot aspirateur pourrait être: • la quantité de déchets aspirés, • la propreté des lieux; • la durée de la tâche; • le bruit généré; • Agent rationnel: Étant donné une séquence d’observations (données sensorielles) et des connaissances propres, un agent rationnel devrait choisir une action qui maximise la mesure de performance. 16
  • 17.
    AGENTS RATIONNELS • Rationaliténe veut pas dire « qui sait tout » (par exemple, connaît tous les effets de ses actions)! • Rationnel ne veut pas dire « parfait ». • La rationalité maximise la performance espérée. • La perfection maximise la performance réelle/actuelle. • Mais souvent on ne peut pas connaître la performance réelle avant l’action. • Un agent peut effecteur des actions d’observation pour cueillir des informations nécessaires à sa tâche. • Un agent est autonome s’il est capable d’adapter son comportement en fonction de son expérience (capacité d’apprentissage et d’adaptation) 17
  • 18.
    MODÈLE PEAS • PEAS:Un modèle de conceptions des agents par la spécification des composantes majeures suivantes: • Mesure de performance (Performance), • Connaissance de l’environnement (Environnement), • Les actions que l’agent peut effectuer (Actuateurs), • La séquence des perceptions par l’agent (Senseurs) PEAS = Performance, Environnement,Actuateurs, Senseurs 18
  • 19.
    MODÈLE PEAS POURUN ROBOT TAXI • Agent: robot taxi. • Mesure de performance: sécurité, vitesse, respect du code routier, voyage confortable, maximisation des profits. • Environnement: Route, trafic, piétons, clients • Actuateurs:Volant, changement de vitesse, accélérateur, frein, clignotants, klaxon • Senseurs: Caméras, sonar, speedometer, GPS, odomètre, témoins du moteur, etc. 19
  • 20.
    MODÈLE PEAS POURUN DIAGNOSTIQUE MÉDICAL AUTOMATISÉ • Agent: Système de diagnostique médical • Mesure de performance: Santé des patients, minimisation des coûts, satisfaction des patients. • Environnement: Patients, hôpital, personnel soignant. • Actuateurs: Moniteur pour afficher des questions, les résultats de tests ou de diagnostique, le traitement, etc. • Senseurs: Clavier et souris pour saisir les symptômes, les réponses aux questions, etc. 20
  • 21.
    TYPES D’ENVIRONNEMENTS • Complètementobservables (vs. partiellement observable): Grâce à ses senseurs, l’agent a accès un état complet de l’environnement à chaque instant. • Déterministe (vs. stochastique): L’état suivant de l’environnement est entièrement déterminé par l’état courant et l’action effectuée par l’agent. • Épisodique (vs. séquentiel): Les opérations/comportements de l’agent sont divisées en épisodes: • chaque épisode consistant à observer l’environnement et effectuer une seule action, • et le choix de chaque action dans une épisode ne dépendant que de cette épisode. • Statique (vs. dynamique): L’environnement ne change pas lorsque l’agent n’agit pas. • Discret (vs. continu): Un nombre limité et clairement distincts de données sensoriels et d’actions. • Agent unique (vs. multi-agent): Un agent opérant seul dans un environnement. 21
  • 22.
    STRUCTURE DES AGENTS •Simple reflex agents • Model-based reflex agents • Goal-based agents • Utility-based agents 22
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
    EXEMPLE : LEMONDE DES WUMPUS • Mesure de performance • or +1000, mort -1000 • -1 par un pas, -10 pour une flèche • Environnement • Puanteur dans les chambres adjacent au wumpus. • Brise dans les chambres adjacentes à une fosse • Scintillement si l’or est dans la chambre • Le wumpus meurt si on lui tire une flèche de face • On a une seule flèche • On peut ramasser l’or dans la même chambre • On peut lâcher l’or dans une chambre • Senseurs: stench (puanteur), breeze (brise), glitter (scintillement), bumper (choc), scream (cri). • Actuateurs: Left turn, Right turn, Forward, Grab, Release, Shoot 29
  • 30.
    CARACTÉRISATION DU MONDEDES WUMPUS • Complètement observable? Non – seulement perception locale. • Déterministe? Oui – l’effet de chaque action est prévisible. • Épisodique? Non – séquentiel au niveau des actions. • Statique? Oui – le wumpus et les fosses ne bougent pas. • Discret? Oui. • Agent unique? Oui – La seule action du wumpus est de nous « bouffer » si on atteint sa chambre. 30
  • 31.
    EXPLORATION DU MONDEDES WUMPUS 31
  • 32.
    EXPLORATION DU MONDEDES WUMPUS 32
  • 33.
    EXPLORATION DU MONDEDES WUMPUS 33
  • 34.
    EXPLORATION DU MONDEDES WUMPUS 34
  • 35.
    EXPLORATION DU MONDEDES WUMPUS 35
  • 36.
    EXPLORATION DU MONDEDES WUMPUS 36
  • 37.
    EXPLORATION DU MONDEDES WUMPUS 37
  • 38.
    EXPLORATION DU MONDEDES WUMPUS 38
  • 39.
    PROCHAIN COURS - Voirle plan de cours 39
  • 40.
    RECHERCHE HEURISTIQUE MOTIVATION Problèmes pouvantêtre résolus à l’aide d’algorithmes de recherche 40
  • 41.
    EXEMPLE :TROUVER CHEMIN DANSVILLE 52erue 51e rue 50e rue 10 e ave 9 e ave 8 e ave 7 e ave 6 e ave 5 e ave 4 e ave 3 e ave 2 e ave S G 53e rue Trouver un chemin de la 9e ave & 50e rue à la 3e ave et 51e rue (Exemple de Henry Kautz, U. of Washington) 41
  • 42.
    EXEMPLE :TROUVER CHEMIN DANSVILLE 52erue 51e rue 50e rue 10 e ave 9 e ave 8 e ave 7 e ave 6 e ave 5 e ave 4 e ave 3 e Ave 2 e ave S G 53e rue Trouver un chemin de la 9e ave & 50e rue à la 3e ave et 51e rue (Illustration par Henry Kautz, U. of Washington) 42
  • 43.
  • 44.
    EXEMPLE : LIVRERDES COLIS r1 r2 r3 r4 r5 r6 r1 r2 r3 r4 r5 r6 État initial But robot 44
  • 45.
    EXEMPLE : LIVRERDES COLIS p1 p2 p3 p4 c1 c2 robot O1 O2 O3 45
  • 46.
    EXEMPLE : NPUZZLE 1 23 4 5 7 6 8 8 1 3 4 5 7 6 2 ? 1 2 3 4 5 7 6 8 1 2 3 4 5 7 6 8 1 2 3 4 5 7 6 8 1 2 3 4 5 7 6 8 1 2 3 4 5 7 6 8 1 2 3 4 5 7 6 8 Nord Sud Ouest Nord Est 46
  • 47.
  • 48.
    RÉSOLUTION DE PROBLÈMES •Étapes intuitives par un humain 1. Modéliser la situation (état) actuelle 2. Énumérer les options possibles 3. Évaluer les conséquences des options 4. Retenir la meilleure options possibles satisfaisant le but • La résolution de beaucoup de problèmes peut être faite par une recherche dans un graphe • Le graphe peut être un espace de solutions (espaces d’états, espace d’assignations, espace de plans, …) 48
  • 49.
    RÉSOLUTION DE PROBLÈMEPAR UNE RECHERCHE HEURISTIQUE DANS UN GRAPHE • La recherche heuristique est à la base de beaucoup d’approches en IA • Approche générale • Pour une application donnée, l’espace de solutions est représenté à l’aide d’un graphe • Un problème particulier pour une application donnée est résolu par une recherche dans le graphe • En général • Le graphe est défini récursivement • Une heuristique est utilisée pour guider la recherche • Les heuristiques exploitent les connaissances du domaine d’application 49
  • 50.
    PROBLÈME DE RECHERCHEDANS UN GRAPHE • Algorithme de recherche dans un graphe • Entrées • Un nœud initial • Une fonction goal(n) qui retourne true si le but est atteint • Une fonction de transition transitions(n) qui retourne les nœuds successeurs de n. • Sortie • Un chemin dans un graphe (séquence nœuds / arrêtes) • Le coût d’un chemin est la somme des coûts des arrêtes dans le graphe • Il peut y avoir plusieurs nœuds qui satisfont le but • Enjeux • Trouver un chemin solution • Trouver un chemin optimal • Trouver rapidement un chemin (optimalité pas importante) 50
  • 51.
    EXEMPLE : GRAPHED’UNEVILLE • Nœuds = intersections • Arrêtes = segments de rue 52e rue 51e rue 50e rue 10 e ave 9 e ave 8 e ave 7 e ave 6 e ave 5 e ave 4 e ave 3 e Ave 2 e ave S G 53e rue (Illustration par Henry Kautz, U. of Washington) 51
  • 52.
    EXEMPLE :TROUVER UNCHEMIN DANS UNVILLE v0 v3 v2 v1 v4 v6 v5 2 3 1 1 7 2 4 4 4 Domaine : Routes entre les villes transitions(v0): ((2,v3), (4,v2), (3, v1)) Problème posé (initNode, goal): v0: ville de départ (état initial) v6: destination (but) En d’autres termes: goal(v): vrai si v=v6 52
  • 53.
    RAPPEL SUR LESALGORITHMES DE RECHERCHE DANS DES GRAPHES • Recherche meilleur immédiat en premier (Greedy Best-First-Search) • Attention: certains auteurs utilisent le terme Best-First-Search pour désigner Greedy Best-First-Search. • Les deux algorithmes sont très différents ! • Recherche en profondeur (Depth-First-Search) • Recherche en largeur (Breadth-First-Search) • Algorithme de Dijkstra • Algorithme de Floyd • Recherche heuristiques (A*) 53
  • 54.
  • 55.
    ALGORITHME A* • A*est une extension de l’algorithme de Dijkstra utilisé pour trouver un chemin optimal dans un graphe. • Par l’ajout des heuristiques. • Une heuristique est une fonction d’estimation du coût entre un nœud d’un graphe et le but (le nœud à atteindre). • Les heuristiques sont à la base de beaucoup de travaux en IA: • Recherche de meilleurs heuristiques • Apprentissage automatique d’heuristiques • Pour décrire A*, il est pratique de décrire un algorithme générique très simple, dont A* est un cas particulier. 55
  • 56.
    VARIABLES IMPORTANTES :OPEN ET CLOSED • Open contient les nœuds non encore traités, c’est à dire à la frontière de la partie du graphe explorée jusque là. • Closed contient les nœuds déjà traités, c’est à dire à l’intérieur de la frontière délimitée par open. 56
  • 57.
    INSERTION DES NŒUDSDANS OPEN • Les nœuds dans open sont triés selon l’estimé de leur proximité au but. • A chaque nœud n est associé une fonction f(n) mesurant la qualité de la meilleure solution passant par ce nœud. • Pour chaque nœud n, f(n) est un nombre réel positif ou nul, estimant le coût pour un chemin partant de la racine, passant par n, et arrivant au but. • Dans open, les nœuds se suivent en ordre croissant selon les valeurs f(n). • Le tri se fait par insertion: on s’assure que le nouveau nœud va au bon endroit. 57
  • 58.
    DÉFINITION DE F •La fonction f désigne la distance entre le nœud initial et le but. • En pratique on ne connaît pas cette distance : c’est ce qu’on cherche ! • Par contre on connaît la distance optimal dans la partie explorée entre la racine et un nœud déjà exploré. • Il est pratique de séparer f(n) en deux parties: • g(n) : coût réel du chemin optimal partant de la racine à n dans la partie déjà explorée. • h(n) : coût estimé du reste du chemin partant de n jusqu’au but. h(n) est une fonction heuristique. 58
  • 59.
    EXEMPLES DE FONCTIONS HEURISTIQUES •Chemin dans une ville • Distance Euclidienne ou distance de Manhattan pour un chemin sur une carte. • éventuellement pondéré par la qualité des routes, le prix du billet, etc. • Probabilité d’atteindre l’objectif en passant par le nœud. • Qualité de la configuration d’un jeu par rapport à une configuration gagnante • N-Puzzle • nombre de tuiles mal placées • Somme des distances des tuilles • Dans un système expert • nombre d’hypothèses qui restent à valider, possiblement pondérés selon leur vraisemblance. 59
  • 60.
    ALGORITHME GÉNÉRIQUE DERECHERCHE DANS UN GRAPHE Algorithme rechercheDansGraphe(noeudInitial) 1. Déclarer deux nœuds : n1, n2 2. Déclarer deux listes: open, closed // toutes les deux sont vides au départ 3. Insèrer noeudInitial dans open 4. while (1) // la condition de sortie (exit) est déterminée dans la boucle 5. si open est vide, sortir de la boucle avec échec 6. n1 = noeud au début de open; 7. enlèver n1 de open et l’ajouter dans closed 8. si n1 est le but, sortir de la boucle avec succès en retournant le chemin; 9. Pour chaque successeur n2 de n1 10. Initialiser la valeur g de n2 à : g(n1) + le coût de la transition (n1,n2) 11. mettre le parent de n2 à n1 12. Si closed ou open contient un nœud n3 égal à n2 avec f(n2) ≤f(n3), enlèver n3 de closed ou open et insérer n2 dans open (ordre croissant selon f(n)) 13. Sinon (c-à-d., n2 n’est est ni dans open ni dans closed) 14. insèrer n2 dans open en triant les nœuds en ordre croissant selon f(n) IFT615 - Été 2011 60 © Éric Beaudry et Froduald Kabanza
  • 61.
    EXEMPLE A* AVECRECHERCHE DANS UNE VILLE v0 v3 v2 v1 v4 v6 v5 9 2 3 2 2 5 0 2 3 1 1 7 2 4 4 4 h(n0) c(n0,n3) Routes entre les villes : v0: ville de départ v6: destination h: distance à vol d’oiseau C: distance réelle entre deux ville 1. (v0, 9, void) Contenu de closed à la sortie (noeud, f) : (v4,6), (v3,7), (v2,5), (v1,5), (v0,9) Contenu de open à chaque itération (état, f, parent) : 2. (v1,5,v0) (v2,6,v0), (v3,7,v0) 3. (v2,6,v0) (v3,7,v0), (v5,12,v1) 4. (v3,7,v0),(v4,9,v2),(v5,12,v1) 5. (v2,5,v3),(v4,6,v3),(v5,12,v1) 6. (v4,6,v3),(v5,12,v1) 7. (v6,7,v4), (v5,12,v1) 8. Solution: v0,v3,v4,v6 61
  • 62.
    A* EN MARCHE 52erue 51e rue 50e rue 10 th Ave 9 e ave 8 e ave 7 e ave 6 e ave 5 e ave 4 e ave 3 e ave 2 e ave S G 53e rue f=6+2 f=1+7 f=7+3 (Illustration par Henry Kautz, U. of Washington) 62
  • 63.
    NON-OPTIMALITÉ DE BEST-FIRSTSEARCH 52e rue 51e rue 50e rue 10 e ave 9 e ave 8 e ave 7 e ave 6 e ave 5 e ave 4 e ave 3 e ave 2 e ave S G 53e rue Solution par Best-first Solution optimale (Illustration par Henry Kautz, U. of Washington) 63
  • 64.
    DÉMO D’ALGORITHMES DERECHERCHE DANS UN ESPACE D’ÉTATS A*, Profondeur, Largeur, Best-First 64
  • 65.
    PROPRIÉTÉS DE A* •Si le graphe est fini,A* termine toujours. • Si une solution existe A* la trouve toujours. • Si la fonction heuristique h retourne toujours un estimé inférieur au coût réel, on dit que h est admissible. Dans ce cas,A* retourne toujours une solution optimale. • En fait, en principe A* est l’algorithme que j’ai appelé A* avec la condition additionnelle que h soit admissible. 65
  • 66.
    PROPRIÉTÉS DE A*:RECHERCHE EN LARGEUR • En utilisant des coûts des arcs uniformément égaux et strictement positifs (par exemple, tous égaux à 1) et h retournant toujours 0 quelque soit le nœud,A* devient une recherche en largeur. • Open devient une queue LILO (last in, last out), en d’autre termes « dernier entré, dernier sorti ». 66
  • 67.
    PROPRIÉTÉS DE A* •Soit f*(n), le coût d’un chemin optimal passant par n. Pour chaque nœud exploré par A*, on a toujours f(n) £ f*(n). • Si quelque soit un nœud n1 et son successeur n2, nous avons toujours h(n1) £ c(n1,n2) + h(n2), où c(n1,n2) est le coût de l’arc (n1,n2), on dit que h est consistant (on dit aussi parfois monotone – mais c’est en réalité f qui devient monotone). Dans ce cas, • h est aussi admissible. • Chaque fois que A* choisit un nœud au début de open, cela veut dire que A* a déjà trouvé un chemin optimal vers ce nœud: le nœud ne sera plus jamais revisité! 67
  • 68.
    PROPRIÉTÉS DE A* •Si on a deux heuristiques admissibles h1 et h2, tel que h1(n) < h2(n), alors h2(n) conduit plus vite au but: avec h2,A* explore moins ou autant de nœuds avant d’arriver au but qu’avec h1. • Si h n’est pas admissible, soit x la borne supérieur sur la surestimation du coût. C-à-d., on a toujours h(n) £ h*(n) + x. Dans ce cas A* retournera une solution dont le coût est au plus x plus que le coût optimal, c-à-d.,A* ne se trompe pas plus que x sur l’optimalité. 68
  • 69.
    TEST SUR LACOMPRÉHENSION DE A* • Étant donné une fonction heuristique non admissible, l’algorithme A* donne toujours une solution lorsqu’elle existe, mais il n’y a pas de certitude qu’elle soit optimale. • Vrai. • Si les coûts des arcs sont tous égaux à 1 et la fonction heuristique retourne tout le temps 0, alors A* retourne toujours une solution optimale lorsqu’elle existe. • Vrai. • Lorsque la fonction de transition contient des boucles et que la fonction heuristique n’est pas admissible,A* peut boucler indéfiniment même si l’espace d’états est fini. • Faux. • Avec une heuristique monotone,A* n’explore jamais le même état deux fois. • Vrai. 69
  • 70.
    TEST SUR LACOMPRÉHENSION DE A* • Étant donné deux fonctions heuristiques h1 et h2 telles que 0≤ h1(s)< h2(s) ≤ h*(s), pour tout état s, h2 est plus efficace que h1 dans la mesure où les deux mènent à une solution optimale, mais h2 le fait en explorant moins de nœuds. • Vrai. • Si h(s)=h*(s), pour tout état s, l’optimalité de A* est garantie. • Vrai. 70
  • 71.
    71 IFT 615 DÉFINITION GÉNÉRIQUE DEF • Selon le poids que l’on veut donner à l’une ou l’autre partie, on définie f comme suit: f(n) = (1-w)*g(n) + w*h(n) où w est un nombre réel supérieur ou égal à 0 et inférieur ou égal à 1. • Selon les valeurs qu’on donne à 0, on obtient des algorithmes de recherche classique: • Dijkstra : w = 0 (f(n) = g(n) ) • Best-first search : w = 1 (f(n) = h(n) ) • A* : w = 0.5 (f(n) = g(n) + h(n) )
  • 72.
    VARIATIONS DE A* •Beam search • On met une limite sur le contenu de OPEN et CLOSED • Recommandé lorsque pas assez d’espace mémoire. • Bit-state hashing • CLOSED est implémenté par une table hash et on ignore les collisions • Utilisé dans la vérification des protocoles de communication, mais avec une recherche en profondeur classique (pas A*). • Exemple: outil SPIN 72
  • 73.
    VARIATIONS DE A* •Iterative deepening • On met une limite sur la profondeur • On lance A* jusqu’à la limite de profondeur spécifiée. • Si pas de solution on augmente la profondeur et on recommence A* • Ainsi de suite jusqu’à trouver une solution. • And-Or A* • Fait pour les graphes ET-OU • D* (inventé par Stenz et ses collègues). • A* Dynamique. Évite de refaire certains calculs lorsqu’il est appelé plusieurs fois pour atteindre le même but, suite à des changements de l’environnement. 73
  • 74.
    VARIATIONS DE A* •ARA* • Similaire au iterative deepening, en variant le poids de l’heuristique. 74
  • 75.
    DÉMO D’ALGORITHMES DERECHERCHE DANS UN ESPACE D’ÉTATS A*, Profondeur, Largeur, Best-First 75
  • 76.
    EXEMPLE ACADÉMIQUE • 8-puzzle •État: configuration légale du jeu • État initial: configuration initiale • État final (but): configuration gagnante • Transitions 1 2 3 4 5 7 6 8 8 1 3 4 5 7 6 2 ? 1 2 3 4 5 7 6 8 1 2 3 4 5 7 6 8 . . . . . . Nord 1 2 3 4 5 7 6 8 Est Ouest Sud 76
  • 77.
  • 78.
    APPLICATION DANS LAPLANIFICATION DE TRAJECTOIRES Références: Steven LaValle. Planning Algorithms. Morgan Kaufmann. Cambridge University Press, 2006. http://planning.cs.uiuc.edu/ Cours IFT702. Architecture de contrôle générale: 78
  • 79.
    Application : industrieautomobile Démos du Motion Planning Kit (Jean-Claude Latombe) 79
  • 80.
    Application : industrieautomobile [Steven LaValle. Planning Algorithms] 80
  • 81.
    APPLICATION: ROBOTS HUMANOÏDES S.Kagami. U of Tokyo ASIMO Honda S. Kagami. U of Tokyo 81
  • 82.
    APPLICATION: JEUX VIDÉOSET CINÉMA [Steven LaValle. Planning Algorithms] 82
  • 83.
    APPLICATION : PERSONNAGESANIMÉS Julien Pettré, Jean-Paul Laumond, Thierry Siméon http://www.cs.uu.nl/centers/give/movie/publications/iros03-laas.php 83
  • 84.
    ÉNONCÉ DU PROBLÈME •Énoncé: Calculer une trajectoire géométrique d’un solide articulé sans collision avec des obstacles statiques. Planificateur de trajectoires Entrée: ØGéométrie du robot et des obstacles ØCinétique du robot (degrés de liberté) ØConfigurations initiale et finale Sortie: ØUne séquence continue de configurations rapprochées, sans collision, joignant la configuration initiale à la configuration finale 84
  • 85.
    QUELQUES TERMES TECHNIQUES •Configuration : position et orientation du bras • représentée par un vecteur : un angle pour chaque joint • Cinétique inverse: problème de déterminer les angles pour mettre le bout du bras dans une position donnée • Ne tient pas compte de l’évitement des obstacles. • Problème algébrique. • Le Jacobien est une matrice relatant la vélocité du bout du bras avec les joints • Planification de trajectoire: tient compte de l’évitement des obstacles. Deux configurations diffirentes 85
  • 86.
    CADRE GÉNÉRALE DERÉSOLUTION DU PROBLÈEME Problème continu (espace de configuration + contraintes) Discrétisation (decomposition, échantillonage) Recherche heuristique dans un graphe (A* ou similaire) 86
  • 87.
    APPROCHE COMBINATOIRE PAR DÉCOMPOSITIONEN CELLULES Room 1 Room 2 Room 5 Room 4 Room 3 87
  • 88.
    DÉCOMPOSER LA CARTEEN GRILLE (OCCUPANCY GRID): 4-CONNECTED (ILLUSTRÉ ICI) OU 8-CONNECTED. NOEUD: CASE OCCUPÉ PAR LE ROBOT + ORIENTATION DU ROBOT Transitions: - Turn left - Turn right - Go straight ahead Room 1 Room 5 Room 2 Room 4 Room 3 88
  • 89.
    HEURISTIQUES: - DISTANCE EUCLIDIENNE,DURÉE DU VOYAGE - CONSOMMATION D’ÉNERGIE OU COÛT DU BILLET - DEGRÉ DE DANGER (CHEMIN PRÈS DES ESCALIERS, DES ENNEMIS). Go east = (Turn right) + Go straight ahead Room 1 Room 5 Room 2 Room 4 Room 3 89
  • 90.
    APPROCHE PAR ÉCHANTILLONAGEDE L’ESPACE DE CONFIGURATIONS (PROBABILISTIC ROADMAP) Espace de configurations libres qb qg milestone (jalon) [Kavraki, Svetska, Latombe, Overmars, 95] 90
  • 91.
    RAPIDLY EXPLORING DENSETREE (RDT) [Steven LaValle. Planning Algorithms] • RRT (rapidly exploring random tree): cas particulier de RDT. 91
  • 92.
    OUTILS DE PLANIFICATIONDE TRAJECTOIRES ET SIMULATEURS ROBOTIQUES ● OOPSMP (Object-Oriented Programming System for Motion Planning) ● http://www.kavrakilab.org/OOPSMP/index.html ● Tutoriel: http://kavrakilab.org/OOPSMPtutorial ● MPK (Motion Planning Kit) ● http://robotics.stanford.edu/~mitul/mpk ● Roman Tutor ● Basé sur MPK. ● Contacter http://planiart.usherbrooke.ca/~khaled/ ● Player, Stage, Gazebo ● http://playerstage.sourceforge.net/index.php?src=gazebo ● Simulateurs de robot mobiles. ● Microsoft Robotics Developer Studio 2008. 92