Exploration informée



Documents pareils
Algorithmes de recherche

Cours de Master Recherche

Optimisation Combinatoire (Méthodes approchées) II. Recherche Locale simple (Les bases)

Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques

Méthaheuristiques pour l optimisation combinatoire et l affectation sous contraintes

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Une application des algorithmes génétiques à l ordonnancement d atelier

Les structures de données. Rajae El Ouazzani

Pourquoi l apprentissage?

Ebauche Rapport finale

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet.

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

Système Immunitaire Artificiel Parallèle appliqué aux Flow Shop Hybride (FSH)

Application 1- VBA : Test de comportements d'investissements

Hela Boukef. To cite this version: HAL Id: tel

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Problème à résoudre. min f(s) s.c. s S

Initiation à l algorithmique

Arbres binaires de recherche

Quelques Algorithmes simples

Jean-Philippe Préaux

Apprentissage par renforcement (1a/3)

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

LE PROBLEME DU PLUS COURT CHEMIN

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Sommaire. Introduction. I. Notions de routage a) Technologies actuelles b) Avantages et désavantages

L exclusion mutuelle distribuée

Algorithmes d'apprentissage

ALGORITHME GENETIQUE ET MODELE DE SIMULATION POUR L'ORDONNANCEMENT D'UN ATELIER DISCONTINU DE CHIMIE

Un couplage métaheuristique / simulation appliqué au problème du job shop avec transport

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Chapitre 7. Récurrences

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Chapitre 9. Algorithmique. Quelques définitions. L'informatique au lycée.

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Coup de Projecteur sur les Réseaux de Neurones

ARBRES BINAIRES DE RECHERCHE

Décrets, arrêtés, circulaires

Lancement de la mise à jour de la feuille de route nationale «Infrastructures de Recherche»

Programmation C++ (débutant)/instructions for, while et do...while

Problèmes d ordonnancement dans les systèmes de production. Journée Automatique et Optimisation Université de Paris Mars 2003

Programmation Par Contraintes

Introduction au maillage pour le calcul scientifique

Recherche dans un tableau

LES MÉTA-HEURISTIQUES : quelques conseils pour en faire bon usage

THÈSE. présentée à l Université d Avignon et des Pays de Vaucluse pour obtenir le diplôme de DOCTORAT

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Cours d algorithmique pour la classe de 2nde

Christophe CANDILLIER Cours de DataMining mars 2004 Page 1

Chaînes de Markov au lycée

Resolution limit in community detection

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Le classement des villes les plus gay-friendly de France

BILAN D ACTIVITE DU PÔLE DE SOUTIEN PSYCHOLOGIQUE Année 2010

CONSEIL AUX PERSONNES CONSEIL AUX ORGANISATIONS

Programmation par contraintes. Laurent Beaudou

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Les algorithmes de base du graphisme


Approche d'évaluation pour les problèmes d'ordonnancement multicritères : Méthode d'agrégation avec direction de recherche dynamique

CH.6 Propriétés des langages non contextuels

Plus courts chemins, programmation dynamique

Agrégation des portefeuilles de contrats d assurance vie

L apprentissage automatique

La classification automatique de données quantitatives

Système immunitaire artificiel

metal USB PEOPLE tel USB people Electronique 03 Objets et Cadeaux Publicitaires

Modélisation et simulation du trafic. Christine BUISSON (LICIT) Journée Simulation dynamique du trafic routier ENPC, 9 Mars 2005

Big Data et Graphes : Quelques pistes de recherche

Conception d'un réseau de transport d'électricité

OPTIMISATION À UNE VARIABLE

COURS CAPITOLE CONCOURS TREMPLIN 2 :

Ordonnancement robuste et décision dans l'incertain

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

LISTE DES ECOLES PERMETTANT UN RECLASSEMENT DANS LE 3 ème GRADE D INGENIEUR DE LA FILIERE TECHNIQUE

Feature Team Primer. par Craig Larman et Bas Vodde. Version 1.2

Le stockage local de données en HTML5

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Qualité du logiciel: Méthodes de test

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Calculateur quantique: factorisation des entiers

Chp. 4. Minimisation d une fonction d une variable

Programmation Linéaire - Cours 1

Modélisation multi-agents - Agents réactifs

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Les formations en cycle ingénieur

Rapport d'analyse des besoins

En vue de l'obtention du. Présentée et soutenue par Abir BEN HMIDA SAKLY Le 12/12/2009

Guide de l année-recherche

Programmation Objet - Cours II

Propagation sur réseau statique et dynamique

Création intuitive des éléments d un paysage

Les cartes de Bruit. Recueil des données du trafic aérien. La a Mise en œuvre de la Directive Service Technique de l Aviation Civile

Annexe B Rapport d état détaillé relatif aux recommandations depuis 2010

Chapitre 5 : Flot maximal dans un graphe

Transcription:

Exploration informée Jerôme Champavère jerome.champavere @ lifl.fr http://www.grappa.univ-lille3.fr/~champavere/?page=enseignement

Stratégies d'exploration informée

Exploration «meilleur d'abord» Best-first search Algorithme d'exploration en arbre (ou en graphe) avec une fonction d'évaluation f(n) Dépend, en général, de la description du nœud n, de la description du but, de l'information cumulée jusqu'à ce point, et de toute autre connaissance relative au problème (Pearl, 1984) Sélection du nœud avec l'évaluation la plus faible Implémentation via une file de priorité maintenant la frontière dans l'ordre croissant des valeurs de f Choix du nœud qui semble le meilleur, compte-tenu de la fonction d'évaluation Fonction heuristique h(n) : coût estimé du chemin le moins coûteux menant du nœud n à un but

Recherche gloutonne Greedy search Développe le nœud le plus proche de but Évaluation des nœuds avec f(n) = h(n)

Recherche gloutonne Itinéraire : aller de Toulouse à Paris Heuristique : distance à vol d'oiseau Bordeaux 498 Brest 504 Clermont-F. 346 Dijon 346 Grenoble 481 Limoges 346 Lyon 392 Marseille 661 Montpellier 595 Nantes 342 Rennes 308 Rouen 111 Toulouse 588

Recherche gloutonne 1 Toulouse 588 2 Bordeaux 498 Montpellier 595 Limoges 346 3 Nantes 342 Toulouse 588 Bordeaux 498 Limoges 346 4 Rennes 308 Brest 504 Nantes 342 5 Paris 0 Rouen 108

Recherche gloutonne 54 A 63 B 65 31 75 C E 58 47 D Editor at Large / Wikimedia Commons

Recherche gloutonne Similaire à l'exploration en profondeur d'abord Ni optimale, ni complète Complexité en temps et en espace : O(b m)

Exploration A* «A étoile» Minimisation du coût total estimé de la solution : f(n) = g(n) + h(n) S g(n) : coût du chemin entre le nœud de départ et le nœud n g(n) h(n) : coût estimé du chemin le moins onéreux de n au but n f(n) f(n) : coût estimé de la solution la moins onéreuse passant par n Équivaut à l'exploration à coût uniforme si h(n) = 0 pour tout n h(n) G

Exploration A* Optimalité Exploration en arbre : oui si h(n) est admissible, c'est-à-dire si h(n) ne surestime jamais le coût pour atteindre le but Exploration en graphe : oui si h(n) est consistante, càd, pour tout n, n', a, h(n) coût(n,a,n') + h(n') 2 A 10 B 5 7 8 h(a) = 10 coût(a,a B,B) + h(b) = 2 + 5 = 7 h(a) > coût (A,A B,B) + h(b) inconsistance G 0

Exploration A* Complétude : oui si b est fini et coûts d'étape > 0 Efficacité optimale quelle que soit la fonction heuristique Complexité en temps et en espace : exponentielle dans la longueur de la solution optimale A* est généralement à court de mémoire bien avant d'être à court de temps Variantes de A* pour résoudre le problème de l'espace

Explorations heuristiques à mémoire limitée

IDA* Iterative-Deepening A* Exploration itérative en profondeur adaptée au contexte de l'exploration heuristique Limite utilisée : coût de f (g + h) au lieu de la profondeur

RBFS Recursive Best-First Search (Korf, 1993) Exploration «meilleur d'abord» récursive qui n'utilise qu'un espace linéaire Mémorise la valeur f du meilleur chemin alternatif parmi les ancêtres du nœud courant

RBFS function RBFS(problème) RBFS-REC(problème,CRÉÉR-NŒUD-ÉTAT-INITIAL(problème), ) function RBFS-REC(problème,nœud,limite) if TEST-ÉTAT-FINAL(problème,ÉTAT(nœud)) then return SOLUTION(nœud) successeurs DÉVELOPPER(nœud,problème) if successeurs est vide then return échec, foreach s sucesseurs do f[s] max(g(s)+h(s),f[nœud]) loop meilleur nœud ayant la plus faible valeur f dans successeurs if f[meilleur] > limite then return échec,f[meilleur] alternative deuxième plus faible valeur f dans successeurs résultat,f[meilleur] RBFR-REC(problème,meilleur, min(limite,alternative)) if résultat échec then return résultat

RBFS Un peu plus efficace que IDA* Optimal si h(n) est admissible Complexité en espace : O(bd) Complexité en temps : exponentielle

SMA* Simple Memory-Bounded A* Développe la meilleure feuille jusqu'à ce que la mémoire soit pleine Supprime le nœud feuille le moins favorable Comme RBFS, mémorise la valeur du nœud oublié au niveau de son parent

SMA* Complétude : oui s'il existe une solution accessible Optimalité : oui s'il existe une solution optimale accessible Compromis espace / temps

Fonctions heuristiques Jeu de taquin

Jeu de taquin à 8 pièces Facteur de branchement : 3 Coût moyen de la solution : 22 étapes Exploration exhaustive en profondeur : 322 3.1010 états En mémorisant les états dupliqués : 181 440 états Mais taquin à 15 pièces : 1013 états 26 étapes

Heuristiques pour le jeu de taquin h 1 : nombre de pièces mal placées h 2 : somme des distances des pièces par rapport à leur position cible suivant la distance de Manhattan h 2 domine h 1 : h 2 (n) h 1 (n) pour tout n h 1 = 8 h 2 = 3+1+2+2+2+3+3+2 = 18

Création d'heuristiques Problème relaxé Problème formel : «Une pièce peut passer de la case A à la case B si A est adjacent à B et si B est vide.» Problème relaxé «Une pièce peut passer de la case A à la case B si A est adjacent à B.» : h 2 «Une pièce peut passer de la case A à la case B si B est vide.» (Gaschnig, 1979) «Une pièce peut passe de la case A à la case B.» : h 1 Le coût d'une solution optimale à un problème relaxé est une heuristique admissible pour le problème initial Si l'heuristique dérivée est un coût exact pour le problème relaxé, elle est consistante Les problèmes relaxés doivent pouvoir être résolus facilement, idéalement sans exploration Si l'on dispose d'une collection d'heuristiques admissibles h 1,,h m et qu'aucune ne domine, on peut définir h(n) = max{h 1 (n),,h m (n)}

Création d'heuristiques Bases de données de motifs Définir des heuristiques à partir du coût de la solution d'un sous-problème Mémoriser les coûts des solutions exactes de tous les exemples de sousproblèmes possibles Base de données construite en explorant en amont à partir de l'état final et en enregistrant le coût de chaque nouveau motif rencontré Réduction du nombre de nœuds générés d'un facteur 1000 pour la résolution du problème du taquin à 15 pièces

Création d'heuristiques Apprentissage Définir des heuristiques à partir du coût de chaque solution optimale d'un problème Algorithme d'apprentissage inductif pour construire une fonction h(n) qui prédit les coûts des solutions pour les autres états qui surviennent dans l'exploration

Algorithmes d'exploration locale et problèmes d'optimisation

Problèmes d'optimisation Problèmes dans lesquels le chemin vers le but n'est pas pertinent Problème jouet : les 8 dames Problèmes du monde réel : conception de circuits intégrés, ordonnancement d'ateliers, de tâches, programmation automatique, optimisation de réseaux de télécommunication, routage de véhicules, etc. Trouver le meilleur état selon une fonction objectif

Exploration locale Algorithmes d'exploration locale Ne tiennent pas compte des chemins N'utilisent qu'un seul état courant Ne s'occupent que du voisinage de l'état courant Avantages par rapports aux algorithmes systématiques Consomment très peu de mémoire Trouvent des solutions raisonnables dans des espaces d'états de grande taille ou infinis (continus)

Paysage de l'espace des états

Exploration par escalade Hill-climbing Idée générale : «Atteindre le sommet de l'everest dans un épais brouillard tout en souffrant d'amnésie.» function HILL-CLIMBING(problème) courant CRÉÉR-NŒUD-ÉTAT-INITIAL(problème) loop voisin un successeur de courant ayant une valeur plus élevée if VALEUR(voisin) VALEUR(courant) then return ÉTAT(courant) courant voisin

Exploration par escalade h = 17 h = 1 minimum local (5 itérations)

Exploration par escalade Pour quelles raisons l'escalade échoue? Maxima locaux Crêtes Plateaux et paliers Variantes Déplacement latéral Escalade stochastique Escalade du premier choix Escalade avec reprise aléatoire

Exploration par recuit simulé Simulated annealing Combine escalade (intensification) et parcours aléatoire (diversification) Inspiré de la métallurgie Équilibre énergétique lors de la cristallisation des métaux Paramètre de température qui décroît avec avec le temps

Exploration par recuit simulé function SIMULATED-ANNEALING(problème,cadence) courant CRÉÉR-NŒUD-ÉTAT-INITIAL(problème) for t = 1 to do T cadence[t] if T = 0 then return courant suivant un voisin de courant choisi au hasard E VALEUR(suivant) VALEUR(courant) if E > 0 then courant suivant else courant suivant avec une probabilité de e E/T

Exploration locale en faisceau Local beam search Mémorise k états au lieu d'un seul Commence avec k états générés aléatoirement À chaque étape, tous les successeurs des k états sont générés Si l'un d'eux est un but, l'algorithme s'arrête Sinon, il sélectionne les k meilleurs successeurs et recommence Variante stochastique : sélectionne les k successeurs au hasard

Algorithme génétique Variante de l'exploration en faisceau stochastique États successeurs générés en combinant deux états parents au lieu de modifier un seul état Maintien d'une population de k individus, autrement dit en ensemble de k états Représentation des individus sous forme de chaînes de caractères (généralement 0 et 1)

Algorithme génétique 24748552 24 32752411 327 48552 32748152 32752411 23 24748552 247 52411 24752411 24415124 20 32752411 32752 124 32252124 32543213 11 24415124 24415 411 24415417 Population initiale Fonction d'adaptation Sélection Recombinaison Mutation

Algorithme génétique function GENETIC-ALGORITHM(population,ADAPTATION) courant CRÉÉR-NŒUD-ÉTAT-INITIAL(problème) do nouvelle_population Ø for i = 1 to TAILLE(population) do x SÉLECTION-ALÉATOIRE(population,ADAPTATION) y SÉLECTION-ALÉATOIRE(population,ADAPTATION) enfant REPRODUIRE(x,y) if [petite probabilité aléatoire] then enfant MUTER(enfant) nouvelle_population nouvelle_population {enfant} population nouvelle_population while un individu convienne suffisamment ou suffisamment de temps s'est écoulé return meilleur individu de le population selon ADAPTATION function REPRODUIRE(x,y) n LONGUEUR(x) c nombre aléatoire compris entre 1 et n return AJOUTER(SOUS-CHAÎNE(x,1,c),SOUS-CHAÎNE(y,c+1,n))

Exercice

Taquin à 8 pièces et A* Développer l'algorithme A* pour le problème du taquin à 8 pièces avec l'heuristique h 2 puis h 1.