Algorithmes d’exploration

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
LES NOMBRES PREMIERS ET COMPOSÉS
Ma surprise du Zoo.
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Fabrice Lauri, François Charpillet, Daniel Szer
Licence pro MPCQ : Cours
Additions soustractions
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
ACTIVITES NUMERIQUES Ranger les nombres Trouver le nombre manquant
Les numéros 70 –
Les numéros
Les identités remarquables
Introduction à la logique
La diapo suivante pour faire des algorithmes (colorier les ampoules …à varier pour éviter le « copiage ») et dénombrer (Entoure dans la bande numérique.
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
Le Concours de Conaissance II Francais I decembre 2012.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
SERABEC Simulation sauvetage aérien avec un Hercule C130. Départ de St-Honoré le 4 octobre Durée de vol 3 heures. Premier vol en Hercule pour les.
1 5 octobre 2011 / paw Présentation du 7 octobre 2011.
La méthodologie………………………………………………………….. p3 Les résultats
Le Concours de Conaissance III Francais I fevrier 2013.
Écrit, animé et illustré par Sheila CartwrightTraduit par
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Les structures de données arborescentes
1 Choisir une catégorie. Vous recevrez la réponse, vous devez donner la question. Cliquez pour commencer.
Heuristiques A. Introduction B. Recherche d ’une branche
Cours de physique générale I Ph 11
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
Session 7 1 IST/VIH/SIDA.
Le Concours de Conaissance Francais I novembre 2012.
Si le Diaporama ne s'ouvre pas en plein écran Faites F5 sur votre clavier.
Détection de co-évolution de gènes Master 2 : Informatique à Finalité Professionnelle et Recherche Unifiée (IFPRU) Parcours Ingénierie de lIntelligence.
Titre : Implémentation des éléments finis sous Matlab
LES NOMBRES PREMIERS ET COMPOSÉS
Les chiffres & les nombres
Algorithme de Bellman-Ford
1 INETOP
RACINES CARREES Définition Développer avec la distributivité Produit 1
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
CSI 4506: Introduction à l’intelligence artificielle
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Titre : Implémentation des éléments finis en Matlab
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Aire d’une figure par encadrement
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
Comment rendre une femme heureuse…
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Vous allez voir des nombres sur la diapositive suivante. Il faudra bien les observer et les garder en mémoire. Vous devrez les écrire sur l’ardoise quand.
Formation des commissaires sportifs
Nom:____________ Prénom: ___________
LES COURSES SUR PISTE.
les méthodes de recherche locale
Exercice de vérification 1 p
Annexe Résultats provinciaux comparés à la moyenne canadienne
LES JEUNES BOURGUIGNONS ET LEURS STRATÉGIES D’INFORMATION LES JEUNES BOURGUIGNONS ET LEURS STRATÉGIES D’INFORMATION.
Commission paritaire de suivi des opérations de reclassement repositionnement dans le cadre du droit d’option Statistiques novembre 2010.
Les Chiffres Prêts?
La formation des maîtres et la manifestation de la compétence professionnelle à intégrer les technologies de l'information et des communications (TIC)
Transcription de la présentation:

Algorithmes d’exploration Luc Lamontagne PLT 3990 luc.lamontagne@ift.ulaval.ca Tiré du matériel de Brahim Chaib-draa (A09) Dire l’introduction du chapitre 3

Planification de trajectoire Représentation continue (espace des configurations) Discrétisation Recherche dans un graphe (blind, best-first, A*) Le contenu de cette section

Recherche dans un graphe environnement représentation discrète représentation par graphe

Plan Agent de résolution de problèmes Stratégies de recherche Recherche non-informée Largeur d’abord, profondeur d’abord, etc. Recherche informée Meilleur d’abord, A*, etc. Quelques exemples

Rappel - Agent basé sur les buts Capteurs Agent État Comment le monde est maintenant? Comment le monde évolue? Comment sera le monde si je fais l’action A? Quel est l’impact de mes actions? Environnement Quelle action dois-je faire maintenant? Facile si une action mène directement au but, mais sinon, il faut utiliser un algorithme de recherche ou de planification. Plus flexible qu’un agent réflexe, car on peut changer de but sans réécrire toutes les règles. Goal-based agents Knowing about the current state of the environment is not always enough to decide what to do. The agent need some sort of goal information that describes situations that are desirable. Sometimes goal-based is straightforward when goal satisfaction results immediately from a single action. Sometimes more tricky when the agent has to consider long sequences of twists and turn to find a way to achieve the goal. Search and planning. Different from condition-action rule behavior. “What will I happen if I do such and such”. “Will that make me happy”. Ex. If the car in front breaks, I need to slow down. Achieved by break. More flexible than the reflex – decision knowledge is explicit. Easy to modify the behavior, no need to rewrite many condition-action rules. Buts Effecteurs Goal-based agent

Agent basé sur les buts : Agent de résolution de problèmes Formulation d’un but: Un état à atteindre. Formulation du problème: Les états et les actions à considérer. Exploration de solution: Examiner les différentes séquences d’actions menant à un état but; Et choisir la meilleure. Exécution: Accomplir la séquence d’actions sélectionnées.

Agent basé sur les buts : Agent de résolution de problèmes

Exemple de formulation de problèmes : Planification de route

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

Exemple de formulation de problèmes : 8-puzzle 5 7 3 États : Positions des huit tuiles dans les cases. État initial : Les huit tuiles dans n’importe quelle case. Actions : Déplacement du trou droite, gauche, haut, bas. Test de but : Un état qui correspond à l’état final. Coût : Chaque action coûte 1. 8 1 4 2 6 État initial 1 2 3 4 5 6 7 8 État but

Exemple de formulation de problèmes : 8-reines États Une configuration de 0 à 8 reines sur l’échiquier. État initial Aucune reine sur l’échiquier. Actions Ajouter une reine sur une case vide. Test de but Les 8 reines sont placés sur l’échiquier sans attaque. Coût Chaque action coûte 1 (sans intérêt!).

Exploration de solutions dans un arbre Exloration 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)

Exemple d’exploration dans un arbre

Exemple d’exploration dans un arbre

Exemple d’exploration dans un arbre

Exploration dans un arbre : Mise en oeuvre

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.

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.

É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?

Complexité Elle est exprimée en utilisant les quantités suivantes B : le facteur de branchement c.-à-d. le nombre maximum de successeurs à un nœud. D : la profondeur du nœud but le moins éloigné. M : la longueur maximale d’un chemin dans l’espace d’états. Complexité en temps le nombre de nœuds générés pendant la recherche. Complexité en espace le nombre maximum de nœuds en mémoire.

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)

Largeur d’abord (BFS) Approche Implémenté à l’aide d’une file. 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.

Exemple largeur d’abord File: B C B C B C D E F G D E D E F G F G Ordre de visite: A – B – C – D – E – F - G

Propriétés de largeur d’abord Complétude : oui, si b est fini Complexité en temps : O(bd) 1 + b + b2 + b3 + … + bd = O(bd) Complexité en espace : O(bd) 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 millions nœuds/sec) Mémoire (1000 octets/ nœuds) 8 108 2 minutes 103 gigaoctet 12 1012 13 jours 1 pétaoctets

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 !

Coût uniforme (UCS) 99 80 310 177 278

Coût uniforme Complète : oui, si le coût > e Complexité en temps : nombre de nœuds avec g(n) ≤ coût(solution optimale) O(b1+ 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).

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.

Exemple profondeur d’abord C D E H I J K A Pile: B C D E H D I J H I J K B E K C Ordre de visite: A – B – D – H – I – E – J – K - C

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(bm) 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

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(bl) Complexité en espace : O(bl), linéaire Optimal : Non!

Exemple profondeur limité Limite l = 2 A B C D E H I J K A Pile: B C D E D E B C Ordre de visite: A – B – D – E - C

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.

Exemple - itérative en profondeur 12 5 2 1 A Limite: 1 Limite: 3 Limite: 2 Limite: 0 B 20 9 4 C 13 6 3 D E F G 14 7 17 8 21 10 24 11 H I J K L M N O 15 16 18 19 22 23 25 26 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

Propriétés itérative en profondeur Complétude: Oui Complexité en temps: (d+1)b0 + db1+ (d-1)b2 + bd = O(bd) Complexité en espace: O(bd) Optimal? Oui, si le coût de chaque action est de 1. Peut être modifiée pour une stratégie de coût uniforme.

Stratégie de recherche non-informées : Sommaire Dans ce tableau: b est le facteur de branchement; d est la profondeur du but le - profond; m est la profondeur max; l est la profondeur limite

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

Répétition d’états : Exploration de type Graph-Search

Exploration de type Graph-Search

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. Uninformed search incredibly inefficient in most cases. Informed search, using problem-specific knowledge, can find solutions more efficiently.

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

Exemple d’exploration: Voyage en Roumanie (avec coûts en km)

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* f(B)= g(B) + h(B) g(B) B h(B) . Based on the best-first search general approach. Can be implemented using a priority queue. Key component = heuristic function h(n) but

Meilleur d’abord gloutonne f(n) = h(n) Donc on choisit toujours de développer le nœud le plus proche du but. Greedy best-first search f(n) = h(n)  juste l’heuristique. h(goal node) = 0 It is not optimal, as it tries to get as close to the goal as it can. Sometimes, can cause unecessary nodes to be expanded. Can oscillate between repeated states. O(bm) where m is the maximum depth of the search tree A good heuristic can reduce the complexity substantially. Depends on the quality of the heuristics.

Exemple meilleur d’abord gloutonne 366 Arad Sibiu Timisoara Zerind 253 329 374 Arad Fagaras Oradea Rimnicu Vilcea 366 176 380 193 Sibiu Bucharest 253 But atteint, l’exploration arrête.

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(bm) Mais une bonne fonction heuristique peut améliorer grandement la situation. Complexité d’espace : O(bm) Elle retient tous les nœuds en mémoire. Optimale : Non Elle s’arrête à la première solution trouvée.

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* Search f(n) = g(n) + h(n)  cost + heuristic. A* is optimal if h(n) is an admissible heuristic. h(n) never overestimates the cost through n. Let C* be the optimal cost Let G2 be a suboptimal goal node f(G2) = g (G2) + h(G2) = g(G2) + 0 = g(G2) > C* for all n on the optimal path, f(n) = g(n) + h(n) < C* < f(G2)

Exemple A* But atteint, la recherche arrête. Arad Sibiu Timisoara 366 = 0 + 366 Arad Sibiu Timisoara Zerind 393 = 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 Example for Bucharest. Craiova Bucharest Rimnicu Vilcea 607 = 414 + 193 615 = 455 + 160 418 = 418 + 0 But atteint, la recherche arrête.

Propriétés de A* Complétude : Oui Complexité de temps : Exponentielle À 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 Elle garde tous les nœuds en mémoire. Optimale : Oui Habituellement, on manque d’espace longtemps avant de manquer de temps. A* is optimal, complete and optimally efficient. The use of a good heuristic still provides enormous savings compared to the use of an uninformed search. Computation time is not the major problem. A* usually runs out of space long before it runs out of time. So not practical for many large-scale problems.

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. Memory bounded heuristic search Algorithms developed to overcome the space problem of A* without sacrificing optimality or completeness, at a small cost in execution time.

Exploration heuristique à mémoire limitée IDA* (Iterative-deepening A*) C’est un algorithme de profondeur itérative Utilise la valeur f(n) comme limite Contrairement à la profondeur pour IDS. À chaque itération : On fixe la limite à la plus petite valeur f(n) de tous les nœuds qui avaient une valeur plus grande que la limite au tour précédent. Memory bounded heuristic search Algorithms developed to overcome the space problem of A* without sacrificing optimality or completeness, at a small cost in execution time. IDA* Simple to adapt the idea of iterative-deepening  IDA* Cutoff used is the f-cost (g+h) rather than depth. At each iteration, the cutoff value is the smallest f-cost of any node that exceeded the cutoff on the previous iteration. Unfortunately it suffers from the same difficulties with weak-valued costs as does the iterative version of uniform-cost search.

Exemple IDA* Limite: 366 Arad Sibiu Timisoara Zerind 366 = 0 + 366 393 = 140 + 253 447 = 118 + 329 449 = 75 + 374 Example for Bucharest.

Exemple IDA* Limite: 393 Arad Sibiu Timisoara Zerind Arad Fagaras 366 = 0 + 366 Arad Sibiu Timisoara Zerind 393 = 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 Example for Bucharest.

Exemple IDA* Limite: 413 Arad Sibiu Timisoara Zerind Arad Fagaras 366 = 0 + 366 Arad Sibiu Timisoara Zerind 393 = 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 Craiova Pitesti Sibiu 553 = 300 + 253 417 = 317 + 100 526 = 366 + 160 Example for Bucharest.

Exemple IDA* Limite: 415 Arad Sibiu Timisoara Zerind Arad Fagaras 366 = 0 + 366 Arad Sibiu Timisoara Zerind 393 = 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 Example for Bucharest.

Exemple IDA* Limite: 417 Arad Sibiu Timisoara Zerind Arad Fagaras 366 = 0 + 366 Arad Sibiu Timisoara Zerind 393 = 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 Example for Bucharest. Craiova Bucharest Rimnicu Vilcea 607 = 414 + 193 615 = 455 + 160 418 = 418 + 0

Exemple IDA* Limite: 418 But atteint, la recherche arrête. Arad Sibiu 366 = 0 + 366 Arad Sibiu Timisoara Zerind 393 = 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 Example for Bucharest. Craiova Bucharest Rimnicu Vilcea 607 = 414 + 193 615 = 455 + 160 418 = 418 + 0 But atteint, la recherche arrête.

Plan Agent de résolution de problèmes Stratégies de recherche Recherche non-informée Largeur d’abord, profondeur d’abord, etc. Recherche informée Meilleur d’abord, A*, etc. Prochain cours Espaces de configuration Discrétisation d’espaces Quelques exemples d’exploration pour le projet