quelques éléments d’intelligence...
TRANSCRIPT
Design III
Quelques éléments d’intelligence artificielle
Olivier DugasPLT [email protected]
Matériel tiré des coursIFT-4102 Concepts avancés pour systèmes intelligentsGLO-4001 Introduction à la robotique mobile
1
Design III
Mise en contexte
• Contrôle du robot → Agent• Déplacement du robot → Exploration• Positionnement des rondelles → Planification• Prise de décision
2
Design III
Plan
Intelligence artificielle et agent intelligent
Algorithmes d’exploration
Exploration non informée
Exploration heuristique
Discrétisation d’espace
Espace de configuration
Discrétisation de l’espace continu
Exemples d’exploration
3
Design III
Quels sont les domaines de l’IA ?
• L’exploration, le CSP et l’optimisation combinatoire
• L’inférence logique• La planification• La représentation des connaissances• Le raisonnement incertain• La prise de décision• L’apprentissage automatique• Les agents et les systèmes multi-agents• La vision numérique• Le traitement de la langue naturelle• La robotique
4
Design III
Ce dont vous avez besoin pour votre projet?
• L’exploration, le CSP et l’optimisation combinatoire
• L’inférence logique• La planification• La représentation des connaissances• Le raisonnement incertain• La prise de décision• L’apprentissage automatique• Les agents et les systèmes multi-agents• La vision numérique• Le traitement de la langue naturelle• La robotique
5
Design III
Qu’est-ce qu’un agent intelligent?
Agent intelligent: tout ce qui perçoit son environnement
à l’aide de ses capteurset qui agit sur son environnement
à l’aide de ses effecteurs.
6
Environnement?
Agent
Effecteurs
Capteurpercepts
actions
Design III
Environnement de tâche
Première étape de la conception d’un agent : Spécifier l’environnement de tâche (task environment)
Contient les quatre éléments suivants (PEAS):Mesure de la performance (Performance measure)Environnement (Environment)Effecteurs (Actuators)Capteurs (Sensors)
7
Environnement?
Agent
Effecteurs
Capteurpercepts
actions
Design III
Exemple
Système de diagnostic médicalMesure de performance: patient en santé, éviter les poursuites, minimiser les coûtsEnvironnement: patient, hôpital, personnelEffecteurs: l’écran du système
Questions, tests, diagnostic, traitements, référencesCapteurs: clavier
Saisie des symptômes, évidences, réponses du patient
8
Design III
Autre exemple - Votre robot
• Les composantes de votre système– Mesure de performance?
• Maximiser la précision du positionnement• Optimiser la recherche des rondelles• Minimiser le temps de déplacement...
– Environnement? • La table, les grilles, la zone cible, les rondelles, les obstacles, la
station...– Effecteurs?
• Le préhenseur, les roues...– Capteurs?
• La caméra, la kinect, l'ohmmètre…
9
Design III
Propriétés de l’environnement
• Complètement observable vs partiellement observable
• Déterministe vs stochastique
• Épisodique vs séquentielle
• Statique vs dynamique
• Discret vs continu
• Un agent vs plusieurs agents
• Connu ou inconnu...
10
Environnement?
Agent
Effecteurs
Capteurpercepts
actions
Design III
Propriétés de l’environnement
• Situation la plus difficile• Partiellement
observable• Stochastique• Séquentielle• Dynamique• Continue• Multi-agents• Inconnue
• Exemple • Conduite automatisée
d’un véhicule
• Votre projet• Totalement
observable• Stochastique• Séquentielle• Statique• Discret/continue• Mono-agent• Connue
• En résumé:• On est gentil !!!
11
Design III
Structure d’un agent
4 types en ordre de généralité croissante:Agent simple réflexeAgent réflexe avec état interneAgent basé sur les butsAgent basé sur l’utilité
Utile pour la conception du module de contrôle du robot.
12
EnvironnementStructure
Agent
Effecteurs
Capteurpercepts
actions
Design III
Agent simple réflexe13
Simple reflex agent
Capteurs
Analyse des données
Quelle action dois-je faire maintenant?
Effecteurs
Règles condition-action
Agent En
vir on
ne
men
t
Design III
Agent simple réflexe14
Design III
Agent réflexe avec état interne
15
Model-based reflex agent
Capteurs
Analyse des données
Quelle action dois-je faire maintenant?
Effecteurs
Règles condition-action
Agent
En
vir on
ne m
ent
État
Quel est l’impact de mes actions?
Design III
Agent réflexe avec état interne
16
Design III
Agent basé sur les buts17
Goal-based agent
Capteurs
Analyse des données
Quelle action dois-je faire maintenant?
Effecteurs
Agent
En
vir on
ne
men
t
État
Quel est l’impact de mes actions?Comment sera le mondesi je fais l’action A?
Buts
Design III
Plan
Intelligence artificielle et agent intelligent
Algorithmes d’exploration
Exploration non informée
Exploration heuristique
Discrétisation d’espace
Espace de configuration
Discrétisation de l’espace continu
Exemples d’exploration
18
Design III
Planification de trajectoire
Représentation continue(espace des configurations)
Discrétisation
Recherche dans un graphe(best-first, A*) Le contenu de
cette section
Design III
Recherche dans un graphe20
environnement représentation discrète
représentation par graphe
Design III
Exploration par résolution de problèmes1.Formulation d’un but: Un état à atteindre.
2.Formulation du problème: Les états et les actions à considérer.
3.Exploration de solution: Examiner les différentes séquences d’actions
menant à un état but; Et choisir la meilleure.
4.Exécution: Accomplir la séquence d’actions sélectionnées.
21
Design III22
Agent basé sur les buts :
Agent de résolution de problèmes
Design III23
Exemple de formulation de problèmes :
Planification de route
Design III
Exemple de formulation de problèmes :
Planification de route• On est à Arad et on veut aller à Bucharest
– Problème:• États : villes• Actions : aller d’une ville à une autre.
– But : • Être à Bucharest
– Solution : • Une séquence de villes.• Par ex. Arad, Sibiu, Fagaras, Bucharest
– Coût : • Distance entre les deux villes (en km)
• Environnement simple– statique, observable, discret et déterministe
24
Design III25
Exploration de solutions dans un arbre
• Exploration obtenue par simulation– On simule l’exploration de l’espace d’états en générant des successeurs
pour les états déjà explorés.• Exploration de type hors-ligne (offline)
Arad
Sibiu Timisoara Zerind
Arad Fagaras Oradea Rimnicu Vilcea
Sibiu Bucharest
Design III26
Exemple d’exploration dans un arbre
Design III27
Exemple d’exploration dans un arbre
Design III28
Exemple d’exploration dans un arbre
Design III29
Exploration dans un arbre : Mise en oeuvre
Design III30
Exploration de solutions dans un arbre
• Simuler l’exploration de l’espace d’états en générant des successeurs pour les états déjà explorés.
• Nœud de recherche– État: l’état dans l’espace d’état.– Nœud parent: Le nœud dans l’arbre de recherche qui a généré ce nœud.– Action: L’action qui a été appliquée au parent pour générer ce nœud.– Coût du chemin: Le coût g(n) du chemin à partir de l’état initial jusqu’à ce
nœud. – Profondeur: Le nombre d’étapes dans le chemin à partir de l’état initial.
Design III31
Stratégies d’exploration
• Détermine l’ordre de développement des nœuds.• Explorations non informées
– Aucune information additionnelle. – Elles ne peuvent pas dire si un nœud est meilleur qu’un
autre. – Elles peuvent seulement dire si l’état est un but ou non.
• Explorations informées (heuristiques): – Elles peuvent estimer si un nœud est plus prometteur
qu’un autre.
Design III32
Stratégies d’exploration non informées
• Largeur d’abord (Breath-first - BFS)
• Coût uniforme (Uniform-cost - UFS)
• Profondeur d’abord (Depth-first - DFS)
• Profondeur limitée (Depth-limited - DLS)
• Itérative en profondeur (Iterative deepening - IDS)
• Bidirectionnelle (Bidirectional search)
Design III
Largeur d’abord (BFS)
• Approche – Développer tous les noeuds au niveau i– Développer par la suite tous les nœuds au niveau
i+1– Et ainsi de suite…
• Implémenté à l’aide d’une file. –Les nouveaux successeurs vont à la fin.
33
Design III34
Exemple largeur d’abord
A
B C
D E F G
A
B C
D E F G
B C
File:
D E F G
Ordre de visite: A – B – C – D – E – F - G
Design III35
Évaluation des stratégies
• Complétude: – Est-ce que l’algorithme garantit de trouver une
solution s’il y en a une?• Optimalité:
– Est-ce que la stratégie trouve la solution optimale?
• Complexité en temps: – Combien de temps pour trouver une solution?
• Complexité en espace: – Quelle quantité de mémoire a-t-on besoin?
Design III36
Propriétés de largeur d’abord
• Complétude : oui, si b est fini• Complexité en temps : O(b^d)
– 1 + b^1 + b^2 + b^3 + … + b^d = O(b^d)• Complexité en espace : O(b^d)
– Garde tous les nœuds en mémoire• Optimal : non en général.
– Oui si le coût des actions est le même pour toutes les actions
Profondeur Nœuds (b=10)
Temps(1 million nœuds/sec)
Mémoire(1000 octets/ nœuds)
8 108 2 minutes 103 gigaoctet
12 1012 13 jours 1 pétaoctets
Design III37
Coût uniforme (UCS)
• Développe le nœud ayant le coût le plus
faible.
– g(n) := coût du nœud initial au nœud développé.
• File triée selon le coût.
• Si le coût des actions est toujours le même
– Équivalent à largeur d’abord !
Design III
Coût uniforme (UCS)38
80
99
177310
278
Design III39
Coût uniforme
• Complète : oui, si le coût > ε• Complexité en temps : nombre de nœuds avec g(n) ≤ coût(solution optimale)O(b^(1+ C*/ ϵ))où C* est le coût de la solution optimale.• Complexité en espace : même que celle en temps• Optimal : oui
– Les nœuds sont développés en ordre de g(n).
Design III40
Profondeur d’abord (DFS)
• Développe le nœud le plus profond.
• Implémenté à l’aide d’un pile. – Les nouveaux nœuds générés vont sur le dessus.
Design III41
A
B C
D E
H I J K
D
Exemple profondeur d’abord
A
B C
D E
B
C
Pile:
H I J K
H
E
I
K
J
Ordre de visite: A – B – D – H – I – E – J – K - C
Design III42
Propriétés de profondeur d’abord • Complétude :
– Non si la profondeur est infinie, s’il y a des cycles. – Oui, si on évite les états répétés ou si l’espace de
recherche est fini.• Complexité en temps : O(b^m)
– Très mauvais si m est plus grand que d. – Mais si les solutions sont denses, il peut être
beaucoup plus rapide que largeur d’abord.• Complexité en espace : O(bm), linéaire• Optimal : Non
Design III43
Profondeur limitée (DLS)
• L’algorithme de profondeur d’abord, mais avec une limite de l sur la profondeur.– Les nœuds de profondeur l n’ont pas de
successeurs.• Complétude : Seulement si l > d• Complexité en temps : O(b^l)• Complexité en espace : O(bl), linéaire• Optimal : Non!
Design III44
A
B C
D E
H I J K
D
Exemple profondeur limité
A
B C
D E
B
C
Pile:
E
Ordre de visite: A – B – D – E - C
Limite l = 2
Design III45
Itérative en profondeur (IDS)
• Profondeur limitée, mais en essayant toutes les profondeurs: 0, 1, 2, 3, …
• Évite le problème de trouver une limite pour la recherche profondeur limitée.
• A les avantages de largeur d’abord (complète et optimale), – Mais a la complexité en espace de profondeur
d’abord.– Donc une combinaison des deux stratégies.
Design III46
Exemple - itérative en profondeur
Ordre de visite: A – A – B – C – A – B – D – E – C – F – G – A – B – D – H – I – E – J – K – C – F – L – M – G – N – O
A
B
D E
H I J K
C
F G
L M N O
1
10
2
34
5
6
7 8
9
12
13
1114 17
15 16 18 19 22 23 25 26
20
21 24
Limite: 0Limite: 1Limite: 2Limite: 3
Design III47
Propriétés itérative en profondeur
• Complétude: Oui• Complexité en temps:
– (d+1)b^0 + db^1+ (d-1)b^2 + b^d = O(b^d)• Complexité en espace: O(b^d)• Optimal?
–Oui, si le coût de chaque action est de 1. –Peut être modifiée pour une stratégie de coût uniforme.
Design III
Stratégie de recherche non-informées : Sommaire
48
Dans ce tableau:
1) b est le facteur de branchement;
2) d est la profondeur du but le - profond;
3) m est la profondeur max;
4) l est la profondeur limite
Design III49
Répétition d’états
• La répétition d’états fait perdre du temps – Dans le pire cas, la recherche tourne en rond
dans les cycles créés.• Détection de répétitions
– Normalement faite en comparant les nouveaux nœuds aux nœuds déjà développés.
• Avant d’éliminer le nouveau nœud – On doit vérifier s’il est meilleur que le nœud que
l’on a déjà.
Design III50
Répétition d’états :
Exploration de type Graph-Search
Design III
Exploration de type Graph-Search
51
Design III52
Stratégies d’exploration informées
• Stratégies d’exploration non informées –Ne sont pas très efficaces dans la plupart des cas.
–Elles ne savent pas si elles approchent du but.
• Stratégies d’exploration informées –Elles utilisent une fonction d’estimation
• Fonction heuristique.• Pour choisir les nœuds à visiter.
Design III53
Stratégies d’exploration informée
• Meilleur d’abord (BFS - Best-first)• Meilleur d’abord gloutonne (Greedy best-first)• A* (A-Star)• Algorithmes heuristiques à mémoire limitée
– IDA*, RDFS et SMA*• Par escalade (Hill-climbing)• Par recuit simulé (Simulated annealing)• Exploration locale en faisceau (Local beam)• Algorithmes génétiques
Design III54
Exemple d’exploration:
Voyage en Roumanie (avec coûts en km)
Design III55
Meilleur d’abord
• L’idée principale– Utiliser une fonction d’évaluation – Estimer l’intérêt des nœuds – Développer le nœud le plus intéressant.
• Le nœud à développer est choisi selon une fonction d’évaluation f(n)
• Une composante importante de ce type d’algorithme est une fonction heuristique h(n) – Elle estime le coût du chemin le plus court pour se
rendre au but.• Deux types de recherche meilleur d’abord
– Meilleur d’abord gloutonne.– A*
A
B
but
g(B)
h(B)
.
.
.
f(B)= g(B) + h(B)
Design III56
Meilleur d’abord gloutonne
• f(n) = h(n)
• Donc on choisit toujours
de développer le nœud le
plus proche du but.
A
B
but
g(B)
h(B)
.
.
.
f(B)= h(B)
Design III57
Exemple meilleur d’abord gloutonne
Arad366
Sibiu Timisoara Zerind253 329 374
Arad Fagaras Oradea Rimnicu Vilcea366 176 380 193
Sibiu Bucharest253 0
But atteint, l’exploration arrête.
Design III58
Propriétés - Meilleur d’abord gloutonne• Complétude : Non
– Car elle peut être prise dans des cycles. – Mais oui, si l’espace de recherche est fini avec vérification
des états répétés.• Complexité en temps : O(b^m)
– Mais une bonne fonction heuristique peut améliorer grandement la situation.
• Complexité d’espace : O(b^m) – Elle retient tous les nœuds en mémoire.
• Optimale : Non– Elle s’arrête à la première solution trouvée.
Design III59
A* (A-star)• Fonction d’évaluation: f(n) = g(n) + h(n)
– g(n) : coût du nœud de départ jusqu’au nœud n– h(n) : coût estimé du nœud n jusqu’au but– f(n) : coût total estimé du chemin passant par n pour se
rendre au but.• A* utilise une heuristique admissible
– c’est-à-dire h(n) ≤ h*(n)– h*(n) est le véritable coût pour se rendre de n au but.
• Demande aussi que : – h(n) ≥ 0, et que – h(G) = 0 pour tous les buts G.
A
B
but
g(B)
h(B)
.
.
.
f(B)= g(B) + h(B)
Design III60
Exemple A*Arad366 = 0 + 366
Sibiu Timisoara Zerind393 = 140 + 253 447 = 118 + 329
449 = 75 + 374
Arad Fagaras Oradea Rimnicu Vilcea
646 = 280+ 366
415 = 239 + 176
671 = 291 + 380
413 = 220 + 193
Sibiu Bucharest
591 = 338 + 253 450 = 450 + 0
Craiova Pitesti Sibiu
553 = 300 + 253
417 = 317 + 100
526 = 366 + 160
CraiovaBucharest Rimnicu Vilcea
607 = 414 + 193615 = 455 + 160418 = 418 + 0
But atteint, la recherche arrête.
Design III61
Propriétés de A*
• Complétude : Oui – À moins qu’il y est une infinité de nœuds avec f ≤ f(but).
• Complexité de temps : Exponentielle – Selon la longueur de la solution.
• Complexité en espace : Exponentielle – Selon la longueur de la solution. – Elle garde tous les nœuds en mémoire.
• Optimale : Oui– Habituellement, on manque d’espace longtemps avant de
manquer de temps.
Design III62
Exploration heuristique à mémoire limitée• A* est parfois trop gourmand en mémoire. • Il existe des algorithmes pour surmonter ce
problème dont: – IDA*; – RBFS; – SMA*.
• Ces algorithmes permettent de préserver l’optimalité et la complétude.
• L’augmentation du temps d’exécution est raisonnable. • Voir les notes de 2011 pour un exemple de IDA*.
Design III
Plan
Intelligence artificielle et agent intelligent
Algorithmes d’exploration
Exploration non informée
Exploration heuristique
Discrétisation d’espace
Espace de configuration
Discrétisation de l’espace continu
Exemples d’exploration
63
Design III
Planification de trajectoire
Représentation continue(espace des configurations)
Discrétisation
Recherche dans un graphe(blind, best-first, A*)
Le contenu de cette section
Design III
Espace de configuration C
• Transformation de l’espace– Réduire la dimension du robot
• Le centre du robot devient le point de référence.– « Gonfler » les obstacles
• Reporter les dimensions du robot sur les obstacles.– Planifier un chemin dans l’espace de
configuration (C-space) • Avec les obstacles gonflés et le robot comme un point.
65
Espace libre
Design III
Espace de configuration C
• Pour un robot circulaire se déplaçant en x-y
66
Espace libre
Design III
Espace de configuration C
• Le centre du robot ne peut être que dans la zone grise.
67
Clibre
(approximé comme un cercle)
régions non-accessibles
Design III
Espace de configuration C
• Pour un robot se déplaçant en (x,y,θ)
68
intersection
Design III
Trajectoire libre vs. semi-libre
69
Design III
Planification de trajectoire
Représentation continue(espace des configurations)
Discrétisation
Recherche dans un graphe(blind, best-first, A*)
Le contenu de cette section
Design III
Discrétisation71
environnement représentation discrète
représentation par graphe
Design III
Découpage de l’espace72
Design III
Grille régulière uniforme
• La forme la plus simple de découpage.• On découpe l’espace en cellules, toutes de même dimension.
On marque les cellules contenant les obstacles – Les cellules occupées.– Et reporter la dimension du robot.
• On recherche un chemin dans les cellules vides.
73
Design III
Grille régulière uniforme
• Deux types de déplacement possibles
–Connectivité 4 directions
–Connectivité 8 directions
74
1
4 2
3
C
connectivité von Neumann
1 2 3
4 5
6 7 8
C
connectivité Moore
Design III
Grille régulière uniforme :
Exploration meilleur d’abord
• Explorer la grille G avec une stratégie meilleur d’abord avec fonction heuristique
But
Design III
Grille régulière uniforme :
Propagation par front d’onde
• Exploration sur une grille régulière (Wavefront planner)– 0: non-visité 1: obstacle 2: indique le départ
76
départ
but
Design III
Grille régulière uniforme :
Propagation par front d’onde
• À chaque étape :– On ajoute +1 aux cellules adjacentes ayant des 0– Déplacement à 8 directions pour cet exemple (au choix)
77
Design III
Grille régulière uniforme :
Propagation par front d’onde
• On continue jusqu’à ce qu’il n’y ait plus de cellules 0 à côté des cellules > 2
78
Design III
Grille régulière uniforme :
Propagation par front d’onde
79
Design III
Grille régulière uniforme :
Propagation par front d’onde
80
Design III
Grille régulière uniforme :
Propagation par front d’onde
81
Design III
Grille régulière uniforme :
Propagation par front d’onde
82
• On continue jusqu’à ce que la grille soit pleine• Les 0 correspondent aux cellules non accessibles
Design III
Grille régulière uniforme :
Propagation par front d’onde
• La trajectoire consiste à partir du but et à choisir de façon vorace les cases les plus petites.
83
Design III
Grille régulière uniforme :
Propagation par front d’onde
search() : return boolean {graph := {nodes}, {edges} ;fringe := {root} ;visited := empty ;
return breadth-first-search (graph, fringe, visited);}
breadth-first-search (graph, fringe, visited) return boolean {while fringe not empty {
node := first element of fringe ;if node is what we are searching for { return success ;}//do whatever you need to do to node here children := find children of node in graph;add children not in visited to back of fringe ;add node to visited ;remove node from fringe;
}return failure;
}
84
Design III
Grille régulière uniforme• Point à considérer :
– Si les cellules sont trop petites• On augmente le nombre de nœuds considéré durant
l’exploration (temps de calcul).– Si les cellules sont trop grosses
• Risque d’avoir des solutions de moindre qualité (moins d’options de chemins).
• Possibilité de ne pas trouver de chemin réalisable. – Choisir une taille de cellule empiriquement
• En fonction de la taille du robot , des obstacles et de la table.
85
Design III
Grille non régulière
• Découpage par des quadtrees – On divise l’espace en deux régions.– On répète pour chaque région jusqu’à ce qu’on
sépare les obstacles des régions libres.– Revient à créer un arbre binaire qui contient les
différentes régions de notre espace de configuration.
86
Design III
Grille non régulière - quadtrees
87
Space Representation Equivalent quadtree
Design III
Grille non régulière - quadtrees
88
Space Representation Equivalent quadtree
Free nodeGray node
NW childNE SW
SE
Design III
Grille non régulière - quadtrees
89
Space Representation Equivalent quadtree
Obstacle Node
G
S(G)
Design III
Grille non régulière - quadtrees
90
Space Representation Equivalent quadtree
Design III
Grille non régulière - quadtrees
91
Space Representation Equivalent quadtree
Design III
Grille non régulière - quadtrees
92
Space Representation Equivalent quadtree
Complete quadtree
Design III
Grille non régulière - quadtrees
• Planification de trajectoire– Trouver le chemin qui mène du point de départ
au but.
– En passant par le centre des régions libres.
93
..
.
.
.
. .
Design III
Décomposition cellulaire verticale
• Décomposer une carte 2D en trapèzes et triangles.• Pour chaque sommet Pi des obstacles:
– Étend ligne verticale en haut et en bas, jusqu’à un obstacle• 4 cas possibles:
–C1:(haut,bas)–C2:(haut),–C3:(bas), –C4:(aucun)
94
Design III
Décomposition cellulaire verticale
95
Étape 2:place 1 point au milieu frontière entre cellules
Étape 3:place 1 point au milieu de la cellules
Étape 4:relie les centres aux points frontières
Design III
Décomposition cellulaire verticale
• Planification : recherche dans le graphe du chemin le plus court
• Donne des trajectoires qui sont en général loin des obstacles
96
Design III
Ce dont je n’ai pas parlé...
• Graphe de visibilité – voir matériel de 2012• Diagramme de Voronoi – voir matériel de 2012• Approche Bug
– Déplacement qui s’inspire de celui des insectes.• SLAM (Simultaneous localisation and mapping)
– Déplacement lorsqu’un robot veut construire une carte d’un environnement inconnu
• Méthodes probabilistes– Probabilistic Roadmaps– RRT-Connect
97
Design III
Points à considérer
• On suit la trajectoire planifiée hors ligne…–En boucle ouverte–En boucle fermée
• Par la caméra, la kinect ou un capteur de proximité.• Quel est le cycle de rétroaction? (100 ms, 1s, 10 s?)
98
Design III
Conclusion
• Plusieurs options disponibles pour structurer votre espace de navigation
• Différents niveaux de complexité• Prêter une attention particulière :
–Aux trajectoires semi-libres;–Aux approches trop coûteuses en temps;–Replanifier votre itinéraire en cas de déviation de la trajectoire initiale.
99