Algorithmes de recherche informés (heuristiques)

Slides:



Advertisements
Présentations similaires
Les Cases Cachées 3 2 Les Verbes ER Tu/ manger Je/ parler Elles/
Advertisements

Explorer un espace d’états
Fabrice Lauri, François Charpillet, Daniel Szer
Julie Dugdale Génie Logiciel 2 Julie Dugdale
Algorithmes et structures de données avancés
Fonctions & procédures
GEF 435 Principes des systèmes d’exploitation
Métaheuristiques pour l’optimisation combinatoire
Optimisation dans les télécommunications
Ordonnancement des mouvements de deux robots
Plus rapide chemin bicritère : un problème d’aménagement du territoire
Analyse de la variance à un facteur
R.K.Ahuja & James B.Orlin (1988)
IFT 615 – Intelligence artificielle Recherche heuristique locale
To Tune or not to Tune? To Tune or not to Tune? A Lightweight Physical Design Alerter Costa Jean-Denis Le Yaouanc Aurélie Mécanismes de SGBD 2007.
UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D’ORAN
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Application des algorithmes génétiques
L’Heure Telling Time.
Les structures de données arborescentes
Algorithmes Branch & Bound
Heuristiques A. Introduction B. Recherche d ’une branche
Sémantique axiomatique
Programmation linéaire
1.2 COMPOSANTES DES VECTEURS
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
Gestion de Fichiers Arbres B.
Algorithme de Bellman-Ford
Arbres Rouge noir Démo : INF3105 Structures de données et algorithmes
IFT 615 – Intelligence artificielle Recherche locale
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
Courbes de Bézier.
Génération d’un segment de droite
CSI 4506: Introduction à l’intelligence artificielle
1 CSI 4506: Introduction à lintelligence artificielle La recherche adversairiale.
Match-up the numbers to the letters
Algorithmes d ’approximation
Recherche Opérationnelle
Les arbres et tas binomiaux
Les Algorithmes de Tri Introduction Tri par Sélection
Nous finissons Je regarde.. Le Présent Ils vendent.
Programmation linéaire en nombres entiers : les méthodes de troncature
Réseaux bayésiens: Inférence
Coupes efficaces pour la relaxation lagrangienne
Instructions for using this template. Remember this is Jeopardy, so where I have written “Answer” this is the prompt the students will see, and where.
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
Dév. d’application interactive III Recherche de chemin.
 CREATE TABLE  DROP TABLE  ALTER TABLE  INSERT  UPDATE  DELETE  SELECT interrogation 2 Instruction de mise à jour structure.
Slide 1 of 39 Waterside Village Fête ses 20 ans.
LES PILES ET FILES.
les méthodes de recherche locale
Programmation dynamique
Répondons 1 2 vends 2 3 L e s C a s e s C a c h é e s Je/ perdre Elles/ entendre Nous/ répondre Tu/ vendre Les Verbes RE.
To practice: Quantities Un, une, des, de Du, de la, de l’, de Le, la, l’, les.
Use of the Genetic Algorithm for optimal operation of multi - reservoirs on demand irrigation system By I. Nouiri,F. Lebdi,N. Lamaddalena O. Gharsallah,
Laboratoire des outils informatiques pour la conception et la production en mécanique (LICP) ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE 1 Petri nets for.
Licence Informatique Algorithmique des graphes
Intelligence Artificielle
CSI 4506: Introduction à l’Intelligence Artificielle
Travaux Pratiques Optimisation Combinatoire
Recherches locales et méta-heuristiques
IFT 615 – Intelligence artificielle Recherche heuristique
Trajectory Tree [1] Patrick Cinq-Mars. © Name – Month YEAR2 / TOTAL PAGES TTree: Tree-Based State Generalization with Temporally Abstract Actions William.
ANNEE UNIVERSITAIRE :2010/2011
Le Jeu et l’intelligence artificielle
La pile de crêpes.
Les monceaux (Heap) Monceaux Propriétés des Monceaux
1 CSI 4506: Introduction à l’Intelligence Artificielle La Recherche Adversariale.
Techniques d’Optimisation Chapitre 2: Problème de flôt Dr TARI Abdelkamel Mars 2014.
Transcription de la présentation:

Algorithmes de recherche informés (heuristiques) Chap. 4

Plan Best-first search Greedy best-first search A* search Heuristics Local search algorithms Hill-climbing search Simulated annealing search Local beam search Genetic algorithms

Rappel: Recherche dans l’arbre Une stratégie de recherche est définie par l’ordre d’expansions de noeuds choisi

Recherche meilleur-d’abord Idée: utiliser une fonction d’évaluation f(n) pour chaque nœud estimer la « désirabilité » selon les caractéristiques du nœud (état), et non seulement la topologie de l’espace Expansion du nœud non exploré le plus désirable Implantation: Ordonner les nœuds dans la frange dans l’ordre décroissant de désirabilité Cas spéciaux: Recherche meilleur d’abord glouton Recherche A*

Roumanie avec coût d’étape en km

Recherche meilleur-d’abord vorace (Greedy best-first search) Fonction d’évaluation f(n) = h(n) (heuristique) = estimation du coût de n à but e.g., hSLD(n) = distance en ligne droite de n à Bucharest Recherche meilleur-d’abord vorace développe le nœud qui paraît le plus proche du but Algorithme: Tant que current ≠goal & il y a des nœuds suivants: Sélectionner h(best_next), Aller à best_next

Recherche meilleur-d’abord glouton - Exemple

Recherche meilleur-d’abord glouton - Exemple

Recherche meilleur-d’abord glouton - Exemple

Recherche meilleur-d’abord glouton - Exemple

Propriétés de la recherche meilleur-d’abord glouton Complète? Non – peut être coincé dans un boucle, e.g., Iasi  Neamt  Iasi  Neamt  Temps? O(bm), mais une bonne heuristique peut beaucoup améliorer ça Espace? O(bm) – garde tous les nœuds en mémoire (potentiellement) Optimal? Non

Recherche A Fonction d’évaluation f(n) = g(n) + h(n) Idée: faire une estimation du chemin complet (du nœud initial jusqu’à un but) Fonction d’évaluation f(n) = g(n) + h(n) g(n) = coût jusqu’à présent pour atteindre n h(n) = coût estimé de n à un but f(n) = coût total du chemin passant par n à un but C’est une fonction plus complète que celle utilisé dans Meilleur-d’abord glouton

Exemple rechrche A

Exemple rechrche A

Exemple rechrche A

Exemple rechrche A

Exemple rechrche A

Exemple rechrche A

Heuristiques admissibles Une heuristique h(n) est admissible si pour chaque noeud n, h(n) ≤ h*(n), où h*(n) est le vrai coût pour atteindre un but à partir de n. Une heuristique admissible ne surestime jamais le coût pour atteindre au but, i.e., elle est optimiste Exemple: hSLD(n) (ne surestime jamais la vraie distance en route) Théorème: Si h(n) est admissible, A utilisant TREE-SEARCH est optimal Un algorithme A admissible est un algorithme A*.

Optimalité de A* (proof) Supposons qu’un but non optimal G2 a été généré et inséré dans la frange. Soit n un noeud non exploré dans la frange qui fait partie du chemin le plus court (optimal) menant au but optimal G. f(G2) = g(G2) car h(G2) = 0 g(G2) > g(G) car G2 est suboptimal f(G) = g(G) car h(G) = 0 f(G2) > f(G) à partir de ci-dessus

Optimalité de A* (proof) Supposons qu’un but non optimal G2 a été généré et inséré dans la frange. Soit n un nœud non exploré dans la frange qui fait partie du chemin le plus court (optimal) menant au but optimal G. f(G2) > f(G) à partir de ci-dessus h(n) ≤ h*(n) puisque h est admissible g(n) + h(n) ≤ g(n) + h*(n) f(n) ≤ f(G) Donc f(G2) > f(n), et A* ne va jamais sélectionner à développer G2 pour terminer l’algorithme

Heuristiques consistantes Une heuristique est consistante si pour chaque nœud n, chacun de ses successeurs n' générés par une action, h(n) ≤ c(n,a,n') + h(n') Si h est consistante, nous avons f(n') = g(n') + h(n') = g(n) + c(n,a,n') + h(n') ≥ g(n) + h(n) = f(n) i.e., f(n) est non-décroissante en suivant un chemin quelconque. Théorème: si h(n) est consistante, A* utilisant GRAPH-SEARCH est optimal

Optimalité de A* A* développe les noeuds dans l’ordre croissant de f Ajoute graduellement des "f-contours" de noeud fi < fi+1: f augmente Un contour i encercle tous les noeuds avec f ≤ fi,

Propriétés de A* Complète? Oui (à moins qu’il y a un nombre infini de nœuds avec f ≤ f(G) ) Temps? Exponentiel Espace? Garde tous les nœuds en mémoire Optimal? Oui

Heuristiques admissibles E.g., Pour 8-puzzle: h1(n) = nombre de tuiles mal placés h2(n) = distance Manhattan totale (i.e., nb. de carrées pour arriver à la place désirée pour chaque tuile) h1(S) = ? h2(S) = ?

Heuristiques admissibles E.g., Pour 8-puzzle: h1(n) = nombre de tuiles mal placés h2(n) = distance Manhattan totale (i.e., nb. de carrées pour arriver à la place désirée pour chaque tuile) h1(S) = ? 8 h2(S) = ? 3+1+2+2+2+3+3+2 = 18

Dominance Si h2(n) ≥ h1(n) pour tout n (supposons que les 2 sont admissibles) Alors h2 domine h1 h2 est meilleure pour la recherche Coûts typiques de recherche (nb. moyen de nœuds explorés) : d=12 IDS = 3,644,035 nodes A*(h1) = 227 nœuds A*(h2) = 73 nœuds d=24 IDS = trop de nœuds A*(h1) = 39,135 nœuds A*(h2) = 1,641 nœuds

Problèmes relaxés Un problème a généralement des contraintes sur les actions Si on enlève une ou plusieurs de ces contraintes, on a un problème relaxé Le coût pour une solution optimale du problème relaxé est admissible pour le problème original Si les règles du jeu de 8-puzzle sont relaxées pour qu’on puisse placer un tuile n’importe où, alors h1(n) donne la solution du chemin le plus court Si les règles sont relaxées pour qu’un tuile puisse bouger vers un carré adjacent, alors h2(n) donne le chemin le plus court

Fonctions heuristiques côut optimal réel heuristique 2 heuristique 1 0 (h0) h2 domine h1

F-contour h2 h1 h0

En pratique Tous les problèmes ne nécessitent pas toujours la solution optimale On se contente souvent d’une solution « acceptable » Difficulté de trouver une heuristique admissible « tractable » (temps, espace) Le problème est assez petit et on n’a pas à le faire très souvent … On utilise souvent un algorithme non optimal On peut aussi surestimer le coût parfois (non admissible), mais l’estimation reste assez proche du réel

Fonctions heuristiques surestimation 2 coût optimal réel heuristique 1 0 (h0)

Des variantes Borne de mémoire autorisée IDA* (iterative deepning A*): augmente graduellement f-cost et recommencer à partir du Start SMA* (Simple Memory-bounded A*): s’il n’y a plus assez de mémoire pour insérer de nouveaux candidats, retirer les nœuds les moins intéressants et remplacer par leur parents si nécessaire

SMA* function SMA*(problem) returns a solution sequence inputs: problem, a problem static: Queue, a queue of nodes ordered by f-cost Queue  MAKE-QUEUE({MAKE-NODE(INITIAL-STATE[problem])}) loop do if Queue is empty then return failure n  deepest least-f-cost node in Queue if GOAL-TEST(n) then return success s  NEXT-SUCCESSOR(n) if s is not a goal and is at maximum depth then f(s)   else f(s)  MAX(f(n),g(s)+h(s)) if all of n’s successors have been generated then update n’s f-cost and those of its ancestors if necessary if SUCCESSORS(n) all in memory then remove n from Queue if memory is full then delete shallowest, highest-f-cost node in Queue remove it from its parent’s successor list insert its parent on Queue if necessary insert s in Queue end

Simple Memory-bounded A* (SMA*) (Exemple avec une mémoire de 3 nœuds) Progress of SMA*. Each node is labeled with its current f-cost. Values in parentheses show the value of the best forgotten descendant. Search space f = g+h A 12 A B G 13 15 A  = goal 13[15] A 12 A B G C D E F H J I K 0+12=12 10+5=15 20+5=25 30+5=35 20+0=20 30+0=30 8+5=13 16+2=18 24+0=24 24+5=29 10 8 16 G 13 B 15 18 H  A G 24[] I 15[15] 24 A B G 15 24 A B C 15[24] 15 25 A B D 8 20 20[24] 20[] 24+0=24  Algorithm can tell you when best solution found within memory constraint is optimal or not.

Algorithmes de recherche locale Dans beaucoup de problèmes d’optimisation, le chemin pour arriver au but n’est pas pertinente. Tout ce qui importe est l’état solution lui-même. Espace d’états = ensemble complet de configurations Trouver une configuration qui satisfait les contraintes e.g., n-reines Dans ce cas, on utilise des algorithmes de recherche locale Principe: Garder un seul état, et tenter de l’améliorer

Exemple: n-reines Mettre n reines dans un échiquier n × n sans que les reines s’attaquent départ état suivant …

Recherche Hill-climbing Comme grimper l’Everest dans un brouillard épais avec amnésie

Hill-climbing Problème: Selon le point de départ, peut être coincé à un maximum local

Hill-climbing : problème de 8-reines h = nombre de paires de reines qui s’attaquent h = 17 pour la configuration montrée

Hill-climbing : problème de 8-reines Un minimum local, avec h = 1

Recherche avec recuit simulé (Simulated annealing) Idée: échapper le maximum local en permettant d’aller à une moins bonne place, mais graduellement diminuer la probabilité (fréquence) de faire ceci

Propriétés du recuit simulé On peut prouver que: si T diminue suffisamment lentement, alors le recuit simulé va trouver l’optimum global avec une probabilité proche de 1 Plus T diminue lentement, plus c’est probable de trouver la solution optimale Et si T ne diminue pas? Largement utilisé pour corriger le problème de recherche locale (VLSI layout, airline scheduling, etc)

Simulated Annealing Solution Quality 5 10 15 20 2 6 14 18 The schedule determines the rate at which the temperature is lowered If the schedule lowers T slowly enough, the algorithm will find a global optimum High temperature T is characterized by a large portion of accepted uphill moves whereas at low temperature only downhill moves are accepted T= 100 – t*5 Probability > 0.9 => If a suitable annealing schedule is chosen, simulated annealing has been found capable of finding a good solution, though this is not guaranteed to be the absolute minimum.

Recherche locale en faisceau (Beam search) Garder k états candidats plutôt qu’un seul Commencer avec k états aléatoires À chaque itération, tous les successeurs de k états sont générés Si un d’eux est un état but, arrêt; sinon sélectionner k meilleurs successeurs à partir de la liste et répéter le processus

Beam Search Overcomes storage complexity of Best-First-Search Maintains the k best nodes in the fringe of the search tree (sorted by the heuristic function) When k = 1, Beam search is equivalent to Hill-Climbing When k is infinite, Beam search is equivalent to Best-First-Search If you add a check to avoid repeated states, memory requirement remains high Incomplete, search may delete the path to the solution.

Search Performance 8-Square 3 2 5 7 1 4 6 8 1 2 3 4 5 6 7 8 Heuristic 1: Tiles out of place Heuristic 2: Manhattan distance 3 2 5 7 1 4 6 8 1 2 3 4 5 6 7 8 h1 = 7 h2 = 2+1+1+2+1+1+1+0=9 => Choice of heuristic is critical to heuristic search algorithm performance.

Algorithmes génétiques Un successeur est généré en combinant les deux états parents Commencer avec k états générés aléatoirement (population) Un état esr représenté comme une chaîne sur un alphabet infini (souvent une chaîne de 0 et 1) Fonction d’évaluation (fitness function). Valeur plus grande pour de meilleurs états Produire la prochaine génération d’états avec les opérations de sélection, croisement et mutation Sélection: choisir entre les 2 parent Croisement: combiner les caractéristiques des parents Mutation: modifier certaine caractéristique

Algorithme génétique

Algorithmes génétiques Fonction de Fitness : nb. de paires de reines qui ne s’attaquent pas (min = 0, max = 8 × 7/2 = 28) Probabilité de sélection 24/(24+23+20+11) = 31% 23/(24+23+20+11) = 29% etc

Exemple de croisement

Résumé Informée = heuristique pour évaluer la qualité de nœud Qualité de l’heuristique Admissible  optimale Proche du coût réel Imaginer des heuristiques par relaxation du problème Définir des heuristiques selon l’expérience (pas nécessairement admissibles) 2 classes de problèmes Trouver le chemin Trouver la configuration finale (recherche locale) Recherche offline Question: recherche online?