OÙ ON EN EST? DÉTERMINISTE OU NON

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

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

Jean-Philippe Préaux

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

Ordonnancement en temps réel d un jobshop par métaheuristique hybride : étude comparative

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

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

Corrigé des TD 1 à 5

Programmation linéaire

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

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

Ordonnancement robuste et décision dans l'incertain

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

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

La programmation à mémoire adaptative ou l évolution des algorithmes évolutifs

Principes d implémentation des métaheuristiques

Modélisation multi-agents - Agents réactifs

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

Cours de Master Recherche

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

THÈSE DE DOCTORAT DE L UNIVERSITÉ PARIS 12-VAL DE MARNE UFR de Sciences et Technologie. par. Walid TFAILI. pour obtenir le grade de

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

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

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

1 Recherche en table par balayage

Couplage efficace entre Optimisation et Simulation stochastique Application à la maintenance optimale d une constellation de satellites

Résolution de systèmes linéaires par des méthodes directes

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Ordonnancement temps réel

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

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

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

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

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

Programmation Linéaire - Cours 1

4.2 Unités d enseignement du M1

Examen Médian - 1 heure 30


Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Coup de Projecteur sur les Réseaux de Neurones

Optimisation et programmation mathématique. Professeur Michel de Mathelin. Cours intégré : 20 h

$SSOLFDWLRQGXNULJHDJHSRXUOD FDOLEUDWLRQPRWHXU

de calibration Master 2: Calibration de modèles: présentation et simulation d

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Cours Informatique Master STEP

Laboratoire d Automatique et Productique Université de Batna, Algérie

Organigramme / Algorigramme Dossier élève 1 SI

Génie Logiciel avec Ada. 4 février 2013

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Christophe CANDILLIER Cours de DataMining mars 2004 Page 1

Quatrième partie IV. Test. Test 15 février / 71

Programmation linéaire

Les colonies de fourmis : apprentissage coopératif pour le problème du voyageur de commerce

Application 1- VBA : Test de comportements d'investissements

Etude d un cas industriel : Optimisation de la modélisation de paramètre de production

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

L apprentissage automatique

Apprentissage par renforcement (1a/3)

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

Arbres binaires de recherche


Renforcement des trois compétences : compréhension orale, expression orale et expression écrite à partir de documents et vidéos.

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

Contrôle par commande prédictive d un procédé de cuisson sous infrarouge de peintures en poudre.

La classification automatique de données quantitatives

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Algorithmique I. Algorithmique I p.1/??

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Chapitre 7. Récurrences

physicien diplômé EPFZ originaire de France présentée acceptée sur proposition Thèse no. 7178

Cryptographie. Cours 3/8 - Chiffrement asymétrique

Cours de Génie Logiciel

Plan du cours. Historique du langage Nouveautés de Java 7

Parallélisme et Répartition

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

Enseignement secondaire technique

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

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

Les structures de données. Rajae El Ouazzani

Semestre 1. Objectifs Approfondissement de l environnement Java et de son interface de programmation d applications : réseaux, et processus.

PROGRAMME PEDAGOGIQUE. SPÉCIALITÉ Logistique Pour la Santé

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

Le transistor bipolaire

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Programmation par contraintes. Laurent Beaudou

Quelques Algorithmes simples

Licence Sciences et Technologies Examen janvier 2010

Mathématique et Automatique : de la boucle ouverte à la boucle fermée. Maïtine bergounioux Laboratoire MAPMO - UMR 6628 Université d'orléans

Algorithmes de recherche d itinéraires en transport multimodal

Les Français et le chauffage. Résultats de l étude menée

Machines virtuelles Cours 1 : Introduction

Conception d un lecteur de musique intelligent basé sur l apprentissage automatique.

Représentation d un entier en base b

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

Optimisation Discrète

Algorithmes de recherche

Transcription:

OÙ ON EN EST? Que faire face à un problème dur? ACT -dernier ACTE S.Tison Université Lille1 Master1 Informatique Rappels Paradigmes d algorithme Complexité des problèmes Algorithmique Avancée QUE FAIRE FACE À UN PROBLÈME NP-DUR? DÉTERMINISTE OU NON Un algorithme d approximation peut être: abandonner l idée d avoir un algorithme polynomial abandonner l idée d avoir un algorithme qui donne toujours la solution exacte Dans ce cas, on utilise donc un algorithme d approximation: il fournit toujours une solution mais pas forcément une solution optimale. déterministe ou non basé sur un critère glouton propre au problème- on parle d heuristique (gloutonne), du grec ancien heurískô («trouver»), duquel est aussi issu eurêka- ou l instanciation d une métaheuristique -algorithmes génétiques, recuit simulé, tabou..., souvent basée sur des analogies avec des phénomènes physiques (recuit simulé) ou naturels (algorithmes génétiques, colonies de fourmis, essaims...)

HEURISITIQUES GLOUTONNES ET GARANTIES: BILAN LES MÉTAHEURISTIQUES DEUX GRANDES FAMILLES Les heuristiques gloutonnes sont souvent simples et efficaces (linéaires, ou presque) Le ratio de garantie... garantit une certaine qualité mais n est qu une indication correspondant au pire des cas! Certains problèmes NP-durs n ont pas d algorithmes polynomiaux d approximation avec garantie, sauf si P=NP. les méthodes par voisinage ou par parcours de l espace des solutions les méthodes à base de populations LES MÉTHODES PAR VOISINAGE VOISINAGE Idée: transformer une solution petit à petit, explorer l espace des solutions en partant d une solution et en se "déplaçant" de proche en proche pour (essayer de) l améliorer Le hill climbing La méthode taboue Le recuit simulé Explorer l espace des solutions en se "déplaçant" de de proche en proche: Il faut définir une notion de voisinage. Exemple: Sac à dos: échanger x -au plus- objets contre y-au plusautres. Pb d affectation de tâches: permuter deux tâches.

VOISINAGE POUR TSP SYMÉTRIQUE VOISINAGE POUR TSP SYMÉTRIQUE H G F E H G F E A B C D A B C D RECHERCHE D UN OPTIMUM LOCAL OU HILL-CLIMBING LE SCHÉMA D ALGORITHME On part d une solution si possible "bonne", par exemple donnée par une heuristique et on balaie l ensemble des voisins de cette solution; si il n existe pas de voisin meilleur que notre solution, on a trouvé un optimum local et on arrête; sinon, on choisit le meilleur des voisins et on recommence. Une autre implémentation consiste non pas à passer au meilleur des voisins à chaque étape mais au premier meilleur voisin trouvé. Hillclimbing Sol solution obtenue par ex. par un glouton //Variante non déterministe: // Sol tirée au hasard; while Sol a un voisin meilleur do Sol son meilleur voisin //variante: Sol un voisin meilleur qu elle La solution obtenue est un optimum local.

BIEN CHOISIR SON VOISINAGE LES INCONVÉNIENTS DE LA MÉTHODE Le voisinage doit être un bon compromis: Si le voisinage est trop petit, risque de se bloquer très vite dans un optimum "de mauvaise qualité" Si le voisinage est trop grand, chaque itération est très longue (surtout dans la première version) On n obtient qu un optimum local. On peut diversifier en lançant plusieurs recherches à partir de solutions différentes. La convergence peut être lente. On peut fixer un nombre maxi d itérations. HILL CLIMBING ET DESCENTE DU GRADIENT Cette méthode est le pant dans le cas discret de la méthode du gradient. pour minimiser y = f (x) à chaque pas, x > x ɛ f (x) HILL CLIMBING ET DESCENTE DU GRADIENT En 3D, pour minimiser z = f (x, y): x > x ɛ f (x)

HILL CLIMBING ET DESCENTE DU GRADIENT La méthode de descente du gradient et ses dérivées est très utilisée, par exemple pour calculer les paramètres d un modèle (cf APE, réseaux de neurones). Remarque: L algorithme simplexe peut être vu comme un exemple de "hill-climbing", exact puisqu un programme linéaire n aura qu un optimum local. Comment éviter de rester bloqué dans un optimum local? LA MÉTHODE TABOUE Idée: permettre de s échapper de l optimum local. On pourra aller chez un voisin moins bon: on choisit le meilleur de ceux qu on n a jamais visités, ou qu on n a pas visités depuis longtemps. On maintient une liste -FIFO- taboue des derniers visités. LE SCHÉMA DU TABOU Sol solution obtenue au hasard, par un glouton... Meil Sol; nb_boucles 0; nb_boucles_sans_amelioration 0; Init(Tabou); while true do if Sol meilleure que Meil then Meil Sol; nb_boucles_sans_amelioration 0; else nb_boucles_sans_amelioration + + Ajouter(Sol, Tabou); Sol son meilleur voisin non Tabou; nb_boucles ++; exit si nb_boucles > MAX1 ou nb_boucles_sans_amelioration > MAX2 return Meil;

LA LISTE TABOUE Gérée en File (FIFO) Si la liste est trop courte, on n arrive pas à s "échapper". Si la liste est trop longue, cela peut être coûteux de vérifier qu une solution n est pas taboue. On stocke souvent non pas les solutions, mais les transformations faites. La méthode "taboue" peut donc être vue comme une généralisation de la recherche d optimum local. si N=0, on retombe dans le cas du hill-climbing; LE RECUIT SIMULÉ SOURCE: PALMER & EASTERBROOK 1999 C est une méthode non déterministe. La méthode (simulated annealing) est inspirée de la physique: le recuit est utilisé pour obtenir des états de faible énergie. Le principe est utilisé en métallurgie depuis des millénaires -on chauffe très fort le métal puis on le refroidit lentement pour obtenir un alliage sans défaut- ou dans la fabrication du verre. Idée: au départ température haute, état instable. Il y a assez d énergie pour changer de configuration même pour aller dans une moins stable; on "laisse les choses" s organiser petit à petit et au fur et à mesure, on refroidit.

IMAGES DE WIKIPEDIA IMAGES DE WIKIPEDIA Pixels aléatoires de différentes couleurs "rangés" par un recuit avec un refroidissement rapide. Pixels aléatoires de différentes couleurs "rangés" par un recuit avec un refroidissement lent. FAUT-IL ACCEPTER LE CHANGEMENT? On part d une solution quelconque. A chaque étape, on tire au hasard une solution voisine. Si elle est meilleure, on l adopte; sinon on va adopter cette solution avec une probabilité liée à son augmentation de coût: plus le coût augmente, plus la probabilité de la garder sera faible- mais aussi au temps écoulé: au début, on accepte facilement un changement qui produit une solution plus coûteuse, à la fin on l accepte très difficilement. On calcule l augmentation de coût. Puis on calcule accept = E /T, T étant une quantité que nous appellerons la température. On tire au hasard un réel p entre 0 et 1: si p est inférieur à accept, on adopte la nouvelle solution, sinon on garde l ancienne. Donc plus T est élevée, plus on accepte le risque du changement.

LE SCHÉMA DU RECUIT SIMULÉ RÉGLAGE DE LA TEMPÉRATURE init(sol); T T0; while true do newsol voisin au hasard de sol; if newsol meilleur que sol then sol newsol else Delta cout(newsol) cout(sol); surcoût de sol tirerproba(p); p réel dans [0,1] if p e Delta/kT then sol newsol; newsol acceptée avec proba e Delta/kT T refroidissement(t); Une difficulté de cette heuristique réside dans le réglage des paramètres selon l instance du problème considérée. Il faut: choisir la température initiale: La température initiale doit être assez élevée pour que accept soit assez grand au départ même si l augmentation de coût est grande. C est un paramètre fixé par l utilisateur. régler le refroidissement: on peut par exemple multiplier T par un réel inférieur à 1 à chaque fois. Plus ce réel est proche de 1, plus le refroidissement est lent. Ce "coefficient de refroidissement" est lui aussi un paramètre fixé lors de l utilisation. LES ALGORITHMES À BASE DE POPULATIONS LE SCHÉMA D UN ALGORITHME GÉNÉTIQUE Les algorithmes génétiques, créés par J. Holland (75) puis développés par David Goldberg, sont basés sur deux principes de génétique: la survie des individus les mieux adaptés et la recombinaison génétique. Le principe de base est de simuler l évolution d une population de solutions avec ces deux règles pour obtenir une solution ou un ensemble de solutions les plus adaptées. "A chaque génération, un nouvel ensemble de créatures artificielles est créé en utilisant des parties des meilleures solutions précédentes avec éssssssventuellement des parties innovatrices." (Goldberg) créer la population initiale par exemple au hasard while true do sélectionner les individus sélection des plus adaptés hybridation à l aide d opérateurs de croisement crossover (optionnel) effectuer des mutations aléatoires modification d un gène (innovation) L arrêt se fera par exemple quand la population ne s "améliore" plus de manière significative ou après un nombre donné de générations.

Pour la mise en oeuvre il faut donc: choisir le codage (souvent binaire) d une solution fixer la taille d une population définir la fonction d adaptation (fitness) définir les opérateurs de sélection, le principe étant: meilleure est notre adaptation, plus on a de chances d être sélectionné définir les opérateurs de croisement définir éventuellement les opérateurs de mutation. D autres métaheuristiques inspirées par le monde du vivant ont été introduites, comme les colonies de fourmis, ou les essaims particulaires L un des problèmes de la méthode est encore la convergence prématurée vers une population non optimale. CE QU IL DEVRAIT AU MOINS VOUS RESTER QUAND VOUS AUREZ TOUT OUBLIÉ (DEMAIN?) HASHCODE GOOGLE Les questions à se poser Un peu plus de rigueur dans l écriture d un algorithme: est-il correct? Un peu de réflexion sur le coût de l algorithme: est-il efficace? Un peu de réflexion sur la nature du problème: est-ce un problème connu? est-il dur? Quelques techniques d algorithmique "avancée" Inscription sur le site d Hash Code avant le 9 février! ET Inscription sur moodle (http://moodle.univlille1.fr/mod/wiki/view.php?pageid=2843) en // pour être dans le hub Lille1 Phase de qualification à Lille 1 (jeudi 11 février 2016) Phase finale à Paris (samedi 19 mars) Séances d entraînement le mardi de 17h30 à 19h30 au M5

LE BICENTENAIRE DE LA NAISSANCE D ADA LOVELACE ADA LOVELACE -THÉÂTRE MUSICAL COMPAGNIE "LES PASSEURS D ONDES" Visionnaire, souvent considérée comme le premier programmeur grâce à son travail sur la machine de Babbage. "English mathematician and writer, she wrote the first-ever computer algorithm, put forth the idea that humanities and technology should coexist and dreamed up the concept of artificial intelligence." - New York Times, 2014, à propos du livre "The Innovators: How a Group of Hackers, Geniuses, and Geeks Created the Digital Revolution " de Walter Issacson - Londres, 1843. Ada Lovelace est une mathématicienne. Fille de Lord Byron, elle a été conditionnée pour devenir une femme soumise et respectueuse des conventions. Ada travaille à linvention du premier programme informatique de lhistoire mais un différ avec Babbage vient interrompre son avancée et raviver les profondes blessures quelle porte en elle. A travers la lutte de cette mathématicienne anglaise pour parvenir à ses fins, le spectacle sinterroge sur notre marge de liberté vis-à-vis du programme social et mental qui croit nous prédéterminer. 9 DÉCEMBRE 18H, KINO -LILLE 3, OUVERT À TOUS