Cours File - SAVOIR
Transcription
Cours File - SAVOIR
Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Méthodes et outils d'optimisation Optimisation Mathias Kleiner [email protected] http://www.lsis.org/kleinerm Conclusion Biblio Mai 2013 http://creativecommons.org/licenses/by-sa/3.0/ Plan du cours Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio 1 Introduction 2 Programmation linéaire 3 Nombres entiers 4 Programmation par Contraintes 5 Meta-heuristiques 6 Conclusion 7 Biblio Plan du cours Méthodes et outils d'optimisation 1 Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes 2 Programmation linéaire 3 Nombres entiers 4 Programmation par Contraintes 5 Meta-heuristiques Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Introduction Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Problème d'optimisation = minimisation (ou maximisation) d'une fonction objectif (de coût) Cette fonction comporte des paramètres et est généralement soumise à des contraintes En fonction des caractéristiques du problèmes (paramètres fortement variables, domaines discrets, types de contraintes, etc.), le problème peut être dicile à résoudre ⇒ Necessite des outils avancés pour la modélisation et la résolution å Variables (paramètres) å Fonction objectif å Contraintes Première dénition Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio fonction objectif f : A → R Généralement, A ⊂ Rn , et est déni par un ensemble de contraintes Le domaine de A est appelé espace de solutions, les éléments de A sont appelés solutions candidates une solution candidate ai qui minimise f (∀aj ∈ A, f (ai ) ≤ f (aj )) est appelée solution optimale Optimisation et méthodes numériques Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio il existe des méthodes numériques pour résoudre certains problèmes d'optimisation cette possibilité depends de caractéristiques du problème. Par exemple, la méthode (de base) du gradient requiert que f soit doublement dérivable, que le problème ne soit pas contraint, et, si l'on cherche un optimum global, que la région dénie par f soit convexe. dans ce cours nous étudierons plus particulièrement les cas où ces techniques ne sont pas (ou dicilement) applicables En particulier, nous verrons des problèmes pour lesquels l'ensemble A est discret Exemples de problèmes : revenu Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Un agriculteur possède un certain nombre d'hectares, d'engrais et d'insecticide Possibilité de planter du maïs ou du blé Les cultures requièrent des quantités diérentes d'engrais et d'insecticide Les cultures fournissent un revenu diérent Objectif : maximiser le revenu net Exemples de problèmes : revenu Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Un restaurateur possède des oursins, crevettes et huîtres Dispose de deux types d'assiettes Objectif : déterminer le nombre d'assiette de chaque type à proposer pour maximiser le revenu net Exemples de problèmes : ux de transport Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Une coopérative laitière eectue quotidiennement le ramassage de lait dans diérentes fermes Objectif : eectuer la tournée la plus courte Exemples de problèmes : couverture de charge Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Courbe de charge (compagnie aérienne, supermarché, péages, . . .) Objectif : Assurer la couverture avec un minimum de personnel Exemples de problèmes : emploi du temps Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Une université doit eectuer un certain nombre de cours à un certain nombre d'élèves, avec un certain nombre d'enseignants-chercheurs contraintes de précédences de cours, salles, désidératas Objectif : trouver une solution ! Exemples de problèmes : rangement Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio On dispose de containers et d'éléments de tailles diérentes à ranger dans ces containers (pour envoi) Objectif : trouver un arrangement pour minimiser le nombre de containers Exemples de problèmes : réseaux Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio On souhaite approvisionner une région en eau potable diérents consommateurs, diérents points de pompage contraintes de pression Objectif : minimiser le nombre points de pompage et la longueur du réseau Exemples de problèmes : conception produit Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Fabrication d'un système de traction Diérents matériaux, contraintes de traction Objectif : minimiser le coût de fabrication Exemples de problèmes : séparation d'un stock Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio On dispose de rouleaux de tissu d'une certaine longueur On souhaite les couper pour obtenir des bandes de longueurs diérentes données Objectif : minimiser le nombre de rouleaux à acheter Exemples de problèmes : planication horaires (work scheduling) Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Etant donné des besoins / jours en nombre d'employés Planier les aectations de la semaine Objectif : minimiser le nombre d'employés Exemples de problèmes : ordonnancement Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Planier des tâches sur des machines de production Contraintes de précédences sur les tâches, délais sur machines, . . . Objectif : minimiser le temps de complétion des tâches Exemples de problèmes : autres Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Euler : "Il n'y a rien dans le monde qui ne se réalise sans la volonté de minimiser ou maximiser quelque chose." Encore beaucoup d'autres domaines d'application : å å å å å å å Economie/Finances Biologie Transport Organisation/Logistique/SCM Robotique/Intelligence articielle Ingénierie ... Caractéristiques Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Continuité, linéarité, bornes de la fonction de coût ? Variables discretes ? Domaine des variables ? mono-objectif, multi-objectifs ? Contraintes linéaires ? Quadratiques ? Connaissances stochastiques (i.e pseudo-aléatoires) ou incertaines ⇒ les caractéristiques d'un problème inuent sur : å la modélisation (puissance expressive nécessaire) å les techniques de résolution å la diculté (ecacité des méthodes/algorithmes) Complexité Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Diculté de résolution d'un problème par un algorithme/méthode : å quantité d'opérations/étapes à eectuer (complexité en temps) å quantité d'informations à stocker (complexité en espace) On s'intéresse à un ordre de grandeur en fonction des données en entrée (indépendant de la puissance machine) : å linéaire ou pseudo-linéaire å polynomial å exponentiel/factoriel (on parle de problèmes NP-diciles) å (in)décidable, (in)calculable Théorie des automates (deterministes ou non-deterministes) par A.Turing (machine de Turing) Complexité : exemple Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Soit un graphe G = (V, E) Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio G est-il connexe ? Complexité : exemple Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Soit un graphe G = (V, E) G possède-t-il un chemin hamiltonien ? Complexité : exemple Méthodes et outils d'optimisation Optimisation Soit un graphe G = (V , Ep ) complet Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Quel chemin passant exactement une fois par chaque point minimise le poids total ? 69 villes → nombre à 100 chires ! Complexité : conséquences Méthodes et outils d'optimisation Temps de résolution d'un problème selon sa complexité (10ns par étape) Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Not. O (n) O (n 2 ) O (n 3 ) O (e n ) O (n!) Complexite lineaire quadratique(P) cubique(P) exponentielle factorielle n=20 200ns 4µs 80ms 10ms 770ans n=50 500ns 25µs 1.25ms 130jours 1048 ans n=250 2.5µs 625µs 156ms 1059 ans ? n=1000 10µs 10ms 10s ? ? n=104 100µs 1s 2.7h ? ? ce n'est pas anodin ! distingue complexite pire des cas, en moyenne, en pratique il existe des classes polynomiales pour des problèmes NP-diciles sous certaines conditions n=106 10ms 2.8h 316ans ? ? Processus d'optimisation Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Processus d'optimisation Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Analyse du problème Modélisation et choix de méthode Résolution Interprétation des résultats Processus d'optimisation : Analyse du problème Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Compréhension du système Dénition des objectifs, du champ de couverture Obtention des données ... Processus d'optimisation : Modélisation Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Choix d'un langage (formel), de la méthode Traduction du problème : paramètres, domaines, contraintes, incertitude, . . . ⇒ simplication : résultat d'un consensus entre acteurs ... Processus d'optimisation : Résolution Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Mise en oeuvre algorithmique, utilisation d'un outil/solveur Analyse de la robustesse, pertinence des résultats ... Processus d'optimisation : Interpretation Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Interpréter les résultats dans le monde réel Présenter aux acteurs ... Processus d'optimisation : Mise en oeuvre Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Mise en oeuvre opérationnelle Suivi des impacts, actions correctives ⇒ peut donner lieu à la dénition d'un nouveau problème ! Méthodes d'optimisation Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Méthodes génériques : Programmation linéaire (modélisation sous forme d'équations linéaires) Programmation en nombres entiers (variables entières) Programmation quadratique Programmation dynamique Méthodes énumératives (PPC) : SAT, CSP, Models Méta-heuristiques (optimisation stochastique) ... domaines de recherche/activité : recherche opérationnelle, intelligence articielle, . . . Méthodes d'optimisation Méthodes et outils d'optimisation Optimisation Introduction Introduction Exemples Caractéristiques Complexité Processus Méthodes Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Mais pour des cas particuliers, il peut exister des méthodes dédiées ecaces (optimales ou approchées). Par exemple : Sac à dos, sous conditions : algorithme glouton Ordonnancement : méthode du chemin critique (PERT) Ordonnancement à 2 machines : algorithme de Johnson ... → longue liste en évolution : requiert une veille technologique ou une étude approfondie, par exemple lorsque la résolution d'un problème par les méthodes génériques n'est pas satisfaisante (e.g. temps de calcul trop important). Plan du cours Méthodes et outils d'optimisation 1 Introduction 2 Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils 3 Nombres entiers 4 Programmation par Contraintes Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Dénition Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Techniques d'optimisation pour des problèmes caractérisés par : å une fonction objectif linéaire å soumise à des contraintes d'égalité et/ou d'inégalités linéaire ⇒ modélisation par un ensemble d'équations linéaires on peut noter que les contraintes dénissent alors un polytope convexe Forme canonique Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Denition maximiser soumis à c >x Ax ≤ b, x ≥ 0 où x est un vecteur de variables, c et b des vecteurs de coecients, et A une matrice de coecients. D'autres formes (minimisation, variables négatives, etc.) peuvent être réecrites de manière équivalente en forme canonique. Exemple de l'agriculteur Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Un agriculteur possède un certain nombre d'hectares, d'engrais et d'insecticide Possibilité de planter du maïs ou du blé Les cultures requièrent des quantités diérentes d'engrais et d'insecticide Les cultures fournissent un revenu diérent Objectif : maximiser le revenu net Exemple de l'agriculteur Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Un agriculteur possède un certain nombre d'hectares (T ), d'engrais (E ) et d'insecticide (I ) Possibilité de planter du maïs (x1 ) ou du blé (x2 ) Les cultures requièrent des quantités diérentes d'engrais et d'insecticide (E1 ,I1 ,E2 ,I2 ) Les cultures fournissent un revenu diérent (S1 ,S2 ) Objectif : maximiser le revenu net Exemple de l'agriculteur Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Maximiser soumis à S1 x1 + S2 x2 x1 + x2 ≤ T E1 x1 + E2 x2 ≤ E I1 x1 + I2 x2 ≤ I x1 ≥ 0, x2 ≥ 0 (fonction objectif) (limite terrain) (limite engrais) (limite insecticide) (terrain positif !) Exemple de culture Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Culture de courgettes et de navets 8l d'engrais A disponible → 2l /m2 pour courgettes, 1l /m2 pour navets 7l d'engrais B disponible → 1l /m2 pour courgettes, 2l /m2 pour navets 3l anti-parasite disponible → 1l /m2 pour navets Objectif : produire le maximum (en poids) de légumes, sachant que rendements = 4kg /m2 courgettes, 5kg /m2 navets Exemple de culture Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Variables de décision : xc (surface de courgettes), xn (surface de navets) Maximiser soumis à 4xc + 5xn 2xc + xn ≤ 8 xc + 2xn ≤ 7 xn ≤ 3 xc , xn ≥ 0 (fonction objectif) (limite A) (limite B) (limite anti-parasite) (terrain positif !) Caractéristiques Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Simplex = polytope à N + 1 sommets (pour N dimensions) Caractéristiques du problème : å chaque inégalité du PPL à n variables dénit un demi-espace dans un espace Euclidien à n dimensions å leur intersection est l'ensemble des solutions candidates å l'ensemble des points pour lesquels la fonction objectif réalise la valeur v est un hyperplan å la fonction objectif étant linéaire et concave sur le polytope, elle admet un minimum sur (au moins) un de ses sommets Interprétation géométrique Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Culture de courgettes et de navets Interprétation géométrique Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Les lignes de niveau (f = constante) sont des droites parallèles ⇒ maximum en 1 sommet ou en 1 arête Interprétation géométrique Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Les lignes de niveau (f = constante) sont des hyperplans anes Solutions PPL Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion La région admissible peut-être : å vide ⇒ pas de solution (optimale) å non vide et bornée ⇒ 1 ou ∞ solutions optimale å non vide et non bornée ⇒ 0 ou 1 ou ∞ solutions optimales Algorithme naïf de résolution Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Algorithme naïf : énumérer tous les sommets du polytope, évaluer f , prendre le minimum ⇒ nombre important de sommets ⇒ pas ecace (confère complexité) Algorithme du Simplexe Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Algorithme crée par George Dantzig en 1947 Idée : à partir d'un sommet, chercher un sommet voisin qui améliore l'objectif Denition (Principe d'amélioration locale) Soit x0 non optimum, alors il existe un sommet voisin x tel que f (x ) > f (x0 ) ⇒ Méthode de résolution itérative : on part d'un sommet quelconque, on trouve un sommet voisin qui améliore l'objectif (règle de pivotage), on réitère Note : on est passé d'un problème continu à un problème discret ! Algorithme du Simplexe - Culture Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Illustration courgettes et navets Algorithme du Simplexe - étapes Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Necessaire de passer en forme standard : égalités (variables d'écart) ⇒ plus de dimensions mais manipulations algébriques plus simples Maximiser 4xc + 5xn Maximiser 4xc + 5xn soumis à 2xc + xn ≤ 8 soumis à 2xc + xn + e1 = 8 xc + 2xn ≤ 7 xc + 2xn + e2 = 7 xn ≤ 3 xn + e3 = 3 xc , xn ≥ 0 xc , xn , e1 , e2 , e3 ≥ 0 Algorithme du Simplexe : histoire Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Application après-guerre : å Opérations Vittles et Plainfare pour ravitaillement de la trizone pendant le blocus de Berlin par pont aérien (23 juin 1948 12 mai 1949) å Simplexe exécuté à la main (des milliers de variables), jusqu'à 12 000 tonnes de matériel par jour ! 1975 : prix Nobel économie Kantorovitch aujourd'hui : PL largement répandue à de nombreux domaines d'application Problème Dual Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Soit P un problème de PL, appelé problème primal Il existe un problème D, appelé dual, utilisant les mêmes données mais un objectif diérent (inverse) Ce problème a une illustration économique importante : si P est un problème de minimisation de coût pour un acheteur, D est un problème de maximisation du prot pour un vendeur tout en restant compétitif Exemple : Primal Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion une famille utilise 6 produits alimentaires comme source de vitamine A et C produits (unités/kg) demande 1 2 3 4 5 6 (unités) vitamine A 1 0 2 2 1 2 9 vitamine B 0 1 3 1 3 2 19 prix/kg 35 30 60 50 27 22 Objectif : minimiser le coût total Exemple : Dual Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion un producteur de cachets de vitamines synthétiques veut convaincre la famille d'acheter des vitamines ⇒ Quel prix de vente wA et wB ? å pour être compétitif å et maximiser le prot Exemple : Dual Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Maximiser soumis à 9wA + 19wB wA ≤ 35 wC ≤ 30 2wA + 3wc ≤ 60 2wA + wc ≤ 50 wA + 3wc ≤ 27 2wA + 2wc ≤ 22 wA , wC ≥ 0 (fonction objectif) (produit 1) (produit 2) (produit 3) (produit 4) (produit 5) (produit 6) (prix positif) Dualité : généralisation économique Méthodes et outils d'optimisation Optimisation produit j coût i Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers ressource i aij bi demande j cj Primal (demandeur) : quelle quantité xi de ressource i acheter pour satisfaire demande à coût minimum min X i bi xi s .c . X i aij xi ≥ cj ∀j Dual (vendeur) : à quel prix wj proposer les produits pour maximiser le prot tout en restant compétitif Programmation par Contraintes Metaheuristiques Conclusion max X j cj wj s .c . X j aij wi ≥ bi ∀i Dualité : propriétés Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Le dual du dual est équivalent au primal Théorème de dualité faible (pour prouver l'optimalité) Denition Pour chaque paire de solutions admissibles x de P et w de D cx ≥ wb ⇒ Si le primal est non-borné, le dual est insatisable (et inversement). Théorème de dualité forte (pour garantir qu'une preuve d'optimalité est possible) Denition Si P et D ont des solutions, alors cx ∗ ≥ w ∗ b Ecarts complémentaires (pour trouver une solution optimale du dual connaissant celle du primal) Autres méthodes Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Améliorations du simplexe, barrières Algorithme de l'ellipsoïde [Khachiyan, 1979] Méthodes du point intérieur [Karmakar, 1984] Versions spéciques à un problème particulier, combinaisons ... Outils Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Dénition Exemples Caractéristiques Simplexe Dualité Autres méthodes Outils Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Outils non-commerciaux et/ou libres : glpk, CLP, Cassowary, SciLab, . . . Outils commerciaux : ILOG/IBM CPLEX, MatLab (opt toolbox), Mathematica, Excel, . . . Plan du cours Méthodes et outils d'optimisation 1 Introduction 2 Programmation linéaire 3 Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-and-Bound Autres méthodes Outils 4 Programmation par Contraintes Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Introduction Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Programmation linéaire en nombres entiers (PLNE) Variables de décision discrètes (entiers, booléens) (contre-intuitivement ?) Pas de méthode générale ecace de résolution ⇒ branch-and-bound, cutting-planes, branch-and-cut, ... on entre dans l'optimisation combinatoire Modélisation générique de l'optimisation combinatoire Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Un ensemble E = {e0 , . . . , en } de solutions candidates (espace de recherche) où ei est une assignation d'un ensemble de variables E , généralement déni par des contraintes, a une cardinalité importante (ex. : n = 2m où m est déni par la taille du problème) objectif (maximisation) : ei ∈ E tel que ∀j , f (ei ) >= f (ej ) Modélisation PLNE canonique Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Forme PLNE canonique : maximiser soumis à c >x Ax ≤ b x ∈ Zn x ≥0 Exemples : rangement (packing) Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques On dispose de containers et d'éléments de tailles diérentes à ranger dans ces containers (pour envoi) Objectif : trouver un arrangement pour minimiser le nombre de containers Exemples : rangement 1D (bin packing) Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques un déménageur souhaite empaqueter des objets en minimisant le nombre de cartons (de capacité C = 6) Objectif : trouver un arrangement pour minimiser le nombre de cartons Objets : livre (2), livre (2), pull (3), chaussettes (1), chaussures (2), assiettes (5), verres (6) Exemples : rangement 1D (bin packing) Méthodes et outils d'optimisation Optimisation xij = 1 si l'article i est rangé dans la boîte j, 0 sinon yj = 1 si la boîte j est utilisée, 0 sinon Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques n X minimiser soumis à n X i =1 j =1 yj ci xij ≤ 6yj , j = 1, . . . , n n X j =1 xij = 1, i = 1, . . . , n xij ∈ {0, 1}, yj ∈ {0, 1} Exemples : sac-à-dos Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Remplir son sac-à-dos (max. 3kg) pour une randonnée objet utilité poids carte 10 200 gourde A 7 1500 gourde B 3 1500 pull 6 1200 k-way 2 500 tomme 4 800 fruits secs 5 700 Objectif : maximiser l'utilité pour un poids limité Exemples : sac-à-dos Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques xi = 1 si l'objet i est choisi, 0 sinon ui utilité de l'objet i, wi son poids n X maximiser soumis à n X i =1 ui xi wi xi ≤ 3 i =1 xi ∈ {0, 1} Exemples : sac-à-dos Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Problème classique : utiliser au mieux une capacité, allocation de ressources Nombreuses variantes (utilité diérente selon conteneur, combinaisons augmentent l'utilité, . . .) Applications å nances : gestion de portefeuille å gestion de personnel pour un projet å ... Exemples : planication horaires (work scheduling) Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Une chaîne de restauration rapide ouverte 7 jours sur 7 a besoin des nombres d'employés suivants du lundi au dimanche : 45, 45, 40, 50, 65, 35, 35. Chaque employé travaille au maximum 1 jour de n de semaine et 4 jours dans la semaine Objectif : déterminer le nombre minimum d'employés nécessaires et leur aectation. Exemples : planication horaires (work scheduling) Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Xi = 1 si on recrute l'employé i (i ∈ [1, n] avec n susamment grand) Yij = 1 si l'employé i travaille le jour j (j ∈ [1, 7]) Soit Bj le besoin par jour n X minimiser soumis à n X i =1 5 X j =1 7 X i =1 Xi Yij >= Bj , ∀j Yij ≤ 4 ∗ Xi , ∀i Yij ≤ 1 ∗ Xi , ∀i j =6 X ∈ {0, 1}, Y ∈ {0, 1} Exemples : planication horaires (work scheduling) Méthodes et outils d'optimisation Optimisation Introduction Xij ∈ Zn : nombre d'employés ne travaillant pas les jours i et j (i ∈ [1, 5], j ∈ [6, 7]) Soit Bj le besoin par jour Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques 5 X 7 X minimiser soumis à i =1 j =6 XX i !=k j XX i j !=k Xij Xij >= Bk , ∀k ∈ [1, 5] Xij >= Bk , ∀k ∈ [6, 7] Xi j >= 0 Exemples : séparation d'un stock (cutting-stock) Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques On dispose de rouleaux de tissu d'une certaine longueur On souhaite les couper pour obtenir des bandes de longueurs diérentes données Objectif : minimiser le nombre de rouleaux à acheter Généralisation du bin packing Exemples : séparation d'un stock (cutting-stock) Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques j = {0, . . . , m} commandes, avec j requiert quantité qj de pièces de tissu i = {0, . . . , n} combinaisons de découpe, avec xi le nombre de fois où elle est utilisée, et ci son coût (déchet) aij le nombre de fois où la commande j apparait dans la combinaison i n X minimiser soumis à n X i =1 i =1 ci xi xi aij ≥ qj ∀j = 1, . . . , m xi , aij , qj ∈ Z, xi ≥ 0 Exemple : Illustration cutting-stock Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques une machine peut produire des pièces maîtres de 5600mm de largeur les commandes sont les suivantes : largeur quantité 1380 22 1520 25 1560 12 1710 14 1820 18 1880 18 1930 20 2000 10 2050 12 ... ... Exemples : séparation d'un stock (cutting-stock) Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Diérentes modélisations selon données/objectifs (nombre de pièces maîtres, changements d'outil de découpe, . . .) diverses applications å 1D : découpe de cables, matériaux å 2D : découpe de verre, tissu å liens avec d'autres problèmes types Techniques de modélisation : ensembles discrets Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques x doit prendre sa valeur parmi P = {p1 , . . . , pk } ⇒ yi ∈ {0, 1}, 1 pour x = pi k X yi = 1 i =1 k X x= pi yi i =1 xi ∈ {0, 1} Techniques de modélisation : propositions logiques Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques x et y deux variables booléennes x ⇒ y : contrainte : x ≤ y x ∨ y : contrainte : x + y ≥ 1 Techniques de modélisation : ordonnancement Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Deux tâches de durée di et dj doivent être usinées sur une même ressource ti et tj le temps de départ d'usinage ti + di ≤ tj + M (1 − yij ) tj + dj ≤ ti + M (yij ) yij ∈ {0, 1} Techniques de modélisation : linéarisation Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques linéariser un terme quadratique simple ex. xx 0 avec x , x 0 ∈ {0, 1} introduit une variable y, y = 1 ssi x = 1 et x 0 = 1 x ≤y x0 ≤ y x + x0 − 1 ≤ y yij ∈ {0, 1} Relaxation linéaire Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Idée : peut-on résoudre un PLNE X en résolvant le PL associé ? ⇒ relaxation linéaire denit un polyèdre P = {X ∈ Rn |Ax ≤ b} Denition Un PL P est une formulation de X ssi X = P ∩ Zn Question : quel lien entre l'optimum du PL et l'optimum du PLNE ? Relaxation linéaire : illustration Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Relaxation linéaire : illustration Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques ⇒ peu d'indications, on ne peut pas simplement résoudre le PL associé Méthodes énumératives Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Idée : énumérer les solutions possibles (nombre ni), les évaluer, conserver la meilleure Problème : ce nombre peut être très important (car exponentiel) ⇒ pas ecace C'est le challenge de l'optimisation combinatoire ! Eliminer a priori des solutions, sans les évaluer explicitement Branch-and-Bound : principe Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques On veut résoudre z ∗ = {max cx |x ∈ X } Partitionne X en (X1 , X2 ) Alors z ∗ = max {z1∗ , z2∗ } Branch-and-Bound : principe Méthodes et outils d'optimisation Optimisation Introduction Si z1∗ > z2∗ , alors il est inutile d'explorer X2 car il ne contient pas de solution optimale Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Comment déterminer de ne pas explorer X2 sans calculer z2∗ ? ⇒ estimation (par excès) de z2∗ : borne supérieure Propriété de la relaxation linéaire Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Soit un problème de maximisation, son PLNE IP, sa ∗ et relaxation linéaire L et leurs optimums respectifs ZIP ZL∗ La propriété suivante est vériée : ∗ å ZIP ≤ ZL∗ å ⇒ Si ZL∗ est un entier, c'est l'optimum du PLNE ⇒ le PL fournit une borne supérieure au PLNE ! Branch-and-Bound : principe Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques On partitionne l'ensemble X en {X1 , . . . , Xn } On calcule les bornes supérieures B (Xi ) de l'optimum pour chaque Xi Si B (Xi ) ≤ meilleure solution trouvée, on élague Sinon on découpe récursivement Xi ⇒ arbre de recherche implicite Branch-and-Bound : découpe Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Résolution de la RL sur X (P) si x ∗ non entier, on branche sur une variable non entière Branch-and-Bound : découpe Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques X1 = x ∈ X et xi ≤ a X2 = x ∈ X et xi ≥ a + 1 Branch-and-Bound : découpe Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Recherche de la meilleure solution sur X2 RL sur X2 (P2 ), découpe, RL sur X21 (P3 ) et X22 (P4 ) Branch-and-Bound : découpe Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Recherche de la meilleure solution sur X1 RL sur X1 (P1 ), découpe, RL sur X11 (P5 ) et X12 (P6 ) Branch-and-Bound : découpe Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques x ∗ = max (x1∗ , x2∗ ) Branch-and-Bound : élaguage Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques On élague une branche si : å La RL n'a pas de solution (discard) å La RL a une solution entière (optimum) å La borne sup. est inférieure à la meilleure solution actuelle (discard) Branch-and-Bound : exemple Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques maximiser z = 2x1 + 3x2 soumis à 5x1 + 7x2 ≤ 35 4x1 + 9x2 ≤ 36 x1 , x2 ≥ 0 ∈ Z Branch-and-Bound : exemple Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques maximiser z = 2x1 + 3x2 soumis à 5x1 + 7x2 ≤ 35 4x1 + 9x2 ≤ 36 x1 , x2 ≥ 0 ∈ Z Autres méthodes Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Améliorations (choix des partitions, ordre de résolution, . . .) Coupes (cuts), plans sécants (cutting-planes) Contraintes redondantes (symmétries) Méthodes mixtes (branch-and-cut) Versions spéciques à un problème particulier ... Outils Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Introduction Modélisation Exemples Techniques de modélisation Branch-andBound Autres méthodes Outils Programmation par Contraintes Metaheuristiques Outils non-commerciaux et/ou libres : glpk, LP_SOLVE, SciLab, . . . Outils commerciaux : ILOG/IBM CPLEX, MatLab (opt toolbox), Mathematica, Excel, . . . Plan du cours Méthodes et outils d'optimisation 1 Introduction 2 Programmation linéaire 3 Nombres entiers 4 Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils 5 Meta-heuristiques Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Introduction Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Programmation par contraintes = méthode de modélisation et de résolution Variables de décision et leur domaine Contraintes de diérents types, faciles à vérier indépendamment, liberté de modélisation Méthodes de résolution énumératives Du Sudoku à la PPC Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Principes de la PPC Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Raisonnement par élimination : on ne cherche pas directement la valeur d'une variable mais ses valeurs possibles (réduction du domaine) Raisonnement énumératif : on essaie diérentes solutions par étapes successives de construction (arbre de recherche) Raisonnement local : on considère les contraintes indépendamment Raisonnement par propagation : lorsque le domaine d'une variable change, on s'intéresse aux contraintes qui dépendent cette variable (propagation) Modélisation générique de l'optimisation combinatoire Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Un ensemble E = {e0 , . . . , en } de solutions candidates (espace de recherche) où ei est une assignation d'un ensemble de variables E , généralement déni par des contraintes, a une cardinalité importante (ex. : n = 2m où m est déni par la taille du problème) objectif (maximisation) : ei ∈ E tel que ∀j , f (ei ) >= f (ej ) Modélisation SAT Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Un problème SAT est un doublet {X , C } où : X est un ensemble de variables booléennes (littéraux) {x0 , . . . , xn } C est un ensemble de contraintes sous la forme CNF (forme normale conjonctive) å CNF = conjonction de clauses å clause = disjonction de littéraux Dans un problème d'optimisation, on ajoute une fonction objectif f (ei ) où ei est une solution candidate (i.e. une assignation d'une valeur à chaque variable) Modélisation SAT : exemple Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Ringo Etoile, musicien londonien, appelle Scotland Yard pour signaler que son appartement vient d'être cambriolé. La police a établi les faits suivants : å Il y a trois suspects : John, Paul et Georges, et personne d'autre ne peut être coupable å Si John est coupable, alors il a un et un seul complice å Si Paul est innocent alors Georges l'est aussi å Si Georges est innocent alors Paul l'est aussi å Si il y a exactement deux coupables, alors John est l'un d'entre eux Modélisez puis dessinez l'arbre de recherche Modélisation SAT : exemple Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio X = {J,P,G} C = (à mettre sous forme CNF) å J ∨P ∨G å J ⇒ ((P ∧ ¬G ) ∨ (G ∧ ¬P )) å ¬P ⇒ ¬G å ¬G ⇒ ¬P å ((J ∧ P ∧ ¬G ) ∨ (J ∧ ¬P ∧ G ) ∨ (¬J ∧ P ∧ G )) ⇒ J Modélisation CSP Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Un problème CSP est un triplet {X , D , C } où : X est un ensemble de variables {x0 , . . . , xn } D = {d0 , . . . , dn } est un ensemble de domaines de valeurs (discrets ou continus) correspondant aux variables de X C est un ensemble de contraintes (logiques, mathématiques, etc.) Dans un problème d'optimisation, on ajoute une fonction objectif f (ei ) où ei est une solution candidate (i.e. une assignation d'une valeur à chaque variable) Modélisation CSP : exemple Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio On considère l'addition suivante : S E N D + M O R E = M O N E Y où chaque lettre représente un chire diérent compris entre 0 et 9. On souhaite connaitre la valeur de chaque lettre, sachant que la première lettre de chaque mot représente forcément un chire diérent de 0. Modélisation CSP : exemple Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Modélisation A (horizontale) : X = {S , E , N , D , M , O , R , Y } D (S ) = D (M ) = {1, 2, 3, 4, 5, 6, 7, 8, 9} D (E ) = D (N ) = D (D ) = D (O ) = D (R ) = D (Y ) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} C 1 : 1000 ∗ S + 100 ∗ E + 10 ∗ N + D + 1000 ∗ M + 100 ∗ O + 10 ∗ R + E = 10000 ∗ M + 1000 ∗ O + 100 ∗ N + 10 ∗ E + Y C 2 : all − dierent ({S , E , N , D , M , O , R , Y }) Modélisation CSP : exemple Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Modélisation B (verticale) : X = {S , E , N , D , M , O , R , Y } D (S ) = D (M ) = {1, 2, 3, 4, 5, 6, 7, 8, 9} D (E ) = D (N ) = D (D ) = D (O ) = D (R ) = D (Y ) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} C 1 : D + E = Y + 10 ∗ R1 C 2 : R1 + N + R = E + 10 ∗ R2 C 3 : R2 + E + O = N + 10 ∗ R3 C 4 : R3 + S + M = O + 10 ∗ M C 5 : all − dierent ({S , E , N , D , M , O , R , Y }) Types de contraintes Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Contraintes par extension (liste des valeurs possibles) ou par intention (formule logique ou mathématique) l'ordre n'a pas d'importance Déclaratives (pas d'algorithme de vérication), non dirigées (x − 2y = z), pas restreintes à une forme particulière (i.e. linéaire) Arité d'une contrainte = nombre de variables impliquées (x 2 = 4, est − pair (x ), x 6= y) Contraintes globales (toutes − dierentes (E )) Contraintes quanticatives, existentielles pour des problèmes avancés Jeu des reines Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire But : Placer 4 reines sur un échiquier 4x4 sans qu'elles se menacent. Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Modélisation ? Jeu des reines : modélisation A Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio But : Placer 4 reines sur un échiquier 4x4 sans qu'elles se menacent. Variables : Associe à chaque reine i sa position en lignes (L = ∪i =1..4 Li ) et en colonnes (C = ∪i =1..4 Ci ) ⇒ X = L ∪ C ) Domaines : ∀i ∈ {1, 2, 3, 4}DLi = DCi = {1, 2, 3, 4} Contraintes : CoL = {∀i , j ∈ {1, 2, 3, 4}, i 6= j , Li 6= Lj } CoC = {∀i , j ∈ {1, 2, 3, 4}, i 6= j , Ci 6= Cj } CoD M = {∀i , j ∈ {1, 2, 3, 4}, i 6= j , Ci + Li 6= Cj + Lj } CoD D = {∀i , j ∈ {1, 2, 3, 4}, i 6= j , Ci − Li 6= Cj − Lj } Jeu des reines : modélisation B Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio But : Placer 4 reines sur un échiquier 4x4 sans qu'elles se menacent. Variables : On place une reine par colonne, donc on associe à une reine i sa position en lignes ⇒ X = {X1 , X2 , X3 , X4 }) Domaines : ∀i ∈ {1, 2, 3, 4}DXi = {1, 2, 3, 4} Contraintes : CoL = {∀i , j ∈ {1, 2, 3, 4}, i 6= j , Xi 6= Xj } CoD M = {∀i , j ∈ {1, 2, 3, 4}, i 6= j , Xi + i 6= Xj + j } CoD D = {∀i , j ∈ {1, 2, 3, 4}, i 6= j , Xi − i 6= Xj − j } Jeu des reines : modélisation C Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio But : Placer 4 reines sur un échiquier 4x4 sans qu'elles se menacent. Variables : Une variable par case à domaine Booleen ⇒ modélisation SAT Jeu des reines : plusieurs modélisations Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Il existe (toujours) plusieurs modélisations, laquelle est la meilleure ? å Celle qui correspond le mieux à la réalité å La plus intuitive, la plus simple à trouver å La plus ecace (voir résolution) Coloriage de cartes Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio But : Colorier une carte sans que deux pays contigus aient la même couleur. Applications : allocation de ressources, emploi du temps, ordonnancement, . . . Modélisation ? Coloriage de cartes Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio But : Colorier une carte sans que deux régions contigues aient la même couleur. Applications : allocation de ressources, emploi du temps, ordonnancement, . . . Variables : une variable Xi pour chaque région Domaines : Di = {bleu , jaune , rouge , vert } Contraintes : en extension, ou, ∀i , j tq voisines (i , j ), Xi 6= Xj Résolution naïve Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Méthode naïve : å on énumére les aectations totales å on vérie si elles sont consistantes ⇒ pas ecace ! Résolution par étapes Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Construire une aectation totale par incrémentation d'aectations partielles (arbre de recherche) Revenir en arrière si une aectation partielle est inconsistante (backtrack) Restreindre les domaines des variables à chaque étape (anticipation par propagation locale des contraintes) utiliser des heuristiques utiliser connaissances sur le problème (symétries, . . .) ... Arbre et backtrack : exemple des reines Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Construire une aectation totale par incrémentation d'aectations partielles (arbre de recherche) Revenir en arrière si une aectation partielle est inconsistante (backtrack) Anticipation Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Restreindre les domaines des variables à chaque étape (anticipation/ltrage par propagation locale des contraintes) De manière générale, ltre consiste à modier le domaines des variables non aectées en fonction de l'aectation partielle (A) courante å consistance de noeud (ou 1-consistance) : on enlève de D (Xi ) toute valeur v telle que A ∪ (Xi , v ) est inconsistante å consistance d'arc (ou 2-consistance) : on enlève de D (Xi ) toute valeur v telle que qu'il existe une variable Xj dont toutes les valeurs donnent A ∪ (Xi , v ) ∪ (Xj , w ) inconsistante å consistance de chemin (ou 3-consistance) å ... å Si il reste k variables à aecter, à quoi correspond la k − consistance ? Anticipation : exemple des reines Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Restreindre les domaines des variables à chaque étape (anticipation/ltrage par propagation locale des contraintes) 1-consistance Anticipation : exemple des reines Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Restreindre les domaines des variables à chaque étape (anticipation/ltrage par propagation locale des contraintes) 2-consistance Heuristiques Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Utiliser des heuristiques = parcourir l'arbre dans un ordre préférentiel Préférence non systématique (sinon le problème est linéaire !), mais très ecace Types : å Heuristiques de variables (min-domain, max-constraints) å Heuristiques de valeurs Création de l'ordre : å statique (une fois pour toutes au départ) å dynamique (à chaque étape) Connaissances des symétries Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Utiliser connaissances sur le problème : symétries å manuel durant la modélisation å automatique durant la recherche Variantes Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio MAX-CSP : satisfaire un maximum de contraintes VCSP : valuation sur les contraintes, maximiser Conditional CSP : contraintes activées sur certaines conditions Dynamic CSP : ajout dynamique de variables au cours de la recherche ... Outils Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Introduction Modélisation Exemples Résolution Outils Metaheuristiques Conclusion Biblio Outils non-commerciaux et/ou libres : Comet, Gecode, Choco, Cassowary, GNU Prolog, SWI Prolog, ECLiPSe (Prolog), Alloy (R-SAT), . . . Outils commerciaux : ILOG/IBM CPLEX, CHARME, CHIP v5, . . . Plan du cours Méthodes et outils d'optimisation 1 Introduction 2 Programmation linéaire 3 Nombres entiers 4 Programmation par Contraintes 5 Meta-heuristiques Introduction Recuit simulé PSO ACO Génétique Caractéristiques Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Introduction Recuit simulé PSO ACO Génétique Caractéristiques Autres méthodes Outils Conclusion Introduction aux méthodes incomplètes Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Introduction Recuit simulé PSO ACO Génétique Caractéristiques Autres méthodes Outils Conclusion Constat : pour de nombreux problèmes (taille), aucune technique vue precédemment n'est ecace Les techniques étudiées sont complètes (ou exactes) : si elles ne fournissent pas de solution, la solution n'existe pas Idée : peut-on trouver des méthodes incomplètes qui soient ecaces dans certains cas ? Parmis ces méthodes, on trouve les méta-heuristiques Introduction aux méta-heuristiques Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Introduction Recuit simulé PSO ACO Génétique Caractéristiques Autres méthodes Outils Conclusion Principe : on va parcourir partiellement l'espace de recherche, avec des heuristiques plus complexes Plusieurs manières de parcourir partiellement : å sauter d'une aectation totale à une autre (réparation locale) å repartir de la racine en ayant emmagasiné de la connaissance å ... Toutes ces méthodes se reposent sur des techniques aléatoires (ou stochastiques) La plupart de ces méthodes sont inspirées du monde réel (nature et notamment animaux) et de l'intelligence collective Nous n'en verrons qu'une toute petite partie Recuit simulé Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Introduction Recuit simulé PSO ACO Génétique Caractéristiques Autres méthodes Outils Conclusion Le recuit simulé est une méthode inspirée de la metallurgie Energie E du système = Fonction à minimiser Temperature T = paramètre contrôlant la diversication Determine conditions initiales : E0 et T0 (aléatoirement élevée) A chaque étape : å Modie solution courante et évalue la variation d'énergie ∆E Si ∆E < 0, elle est appliquée Sinon, elle est appliquée avec une probabilité de E e− T ∆ (règle de Metropolis) å Modication de la température : par paliers ou par une loi de décroissance (Ti +1 = λTi avec λ < 1) Particle Swarm Optimization Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Introduction Recuit simulé PSO ACO Génétique Caractéristiques Autres méthodes Outils Conclusion PSO = Particle Swarm Optimization un essaim de particule se déplace dans un espace à n dimensions (n = nombre de variables) Une particule est caractérisée par sa position (xi ) et sa vitesse (vi ) Initialise chaque particule pseudo-aléatoirement (distribution uniforme) à chaque étape, chaque particule se déplace (modication du vecteur vitesse et application à la position) en fonction de 3 critères : å son meilleur score (pi ) å le meilleur score de toutes les particules (g ) å facteur aléatoire vi = ω vi + σp rp (pi − xi ) + σg rg (g − xi ) où ω , σp , σg sont des paramètres globaux PSO : exemple 2D Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Introduction Recuit simulé PSO ACO Génétique Caractéristiques Autres méthodes Outils Conclusion Applications courantes : choix ou adéquation de paramètres PSO : exemple 2D Méthodes et outils d'optimisation Optimisation Introduction Local best Random factor Programmation linéaire Nombres entiers Global best Programmation par Contraintes Metaheuristiques Introduction Recuit simulé PSO ACO Génétique Caractéristiques Autres méthodes Outils Conclusion Applications courantes : choix ou adéquation de paramètres Ant Colony Optimization Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Introduction Recuit simulé PSO ACO Génétique Caractéristiques Autres méthodes Outils Conclusion ACO = Ant Colony Optimization Algorithme inspiré de l'observation des colonies de fourmis : capacité à trouver le chemin le plus court vers une source de nourriture Première application algorithmique [Dorigo] : recherche du plus court chemin dans un graphe aux arêtes pondérées Etendu depuis à divers problèmes d'optimisation, notamment les problèmes de satisfaction de contraintes ??? 20% 80% Ant Colony Optimization : PPC Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Introduction Recuit simulé PSO ACO Génétique Caractéristiques Autres méthodes Outils Conclusion A chaque tour, un certain nombre de fourmis articielles parcourent l'espace de recherche an de construire une solution (par exemple, un graphe) Le trajet d'une FA (ici un choix xy) est inuencé par : β å une heuristique (ηxy ) α å les phéromones déposées par toutes les FA (τxy ) å facteur aléatoire (α, β ) k = pxy α ∗η β τxy xy P α β z τxz ∗ηxz Après évaluation de la solution, chaque FA dépose des phéromones sur son trajet en fonction de la qualité de la k) solution (∆τxy Les phéromones s'évaporent (ρ) au cours du temps an d'oublier les mauvaises solutions k τxy = (1 − ρ)τxy + ∆τxy Algorithmes génétiques Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Introduction Recuit simulé PSO ACO Génétique Caractéristiques Autres méthodes Outils Conclusion Les algorithmes génétiques sont inspirés de la sélection naturelle Opérations (sélections, enjambements/croisements, mutations) appliquées à une population de solutions candidates Principe : génération d'une population initiale (aléatoirement), puis, itérativement : å Evaluation puis selection (diérentes méthodes) des meilleurs individus å Croisements (diérentes possibilités) par paires å Mutations sur une faible partie de la population résultante Comment représenter les solutions sous forme de gênes (i.e séquence de valeurs) ? ⇒ importance du codage Algorithmes génétiques : étapes Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Introduction Recuit simulé PSO ACO Génétique Caractéristiques Autres méthodes Outils Conclusion Selection : rang, roulette, tournoi, uniforme Croisements : place de l'enjambement Mutations : i.e. permutations Algorithmes génétiques : exemple du VC Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Introduction Recuit simulé PSO ACO Génétique Caractéristiques Autres méthodes Outils Conclusion Exemple du voyageur de commerce Codage : un entier par ville, séquence : suite ordonnée de villes visités å S1 = 1 0 5 3 2 7 4 6 å S2 = 7 1 3 5 6 2 0 4 å Croisements : S10 = 1 0 5 3 2 7 6 4 S20 = 7 1 3 5 6 0 4 2 å Mutation (par permutation) : S100 = 1 0 7 3 2 5 6 4 Caractéristiques des meta-heuristiques Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Introduction Recuit simulé PSO ACO Génétique Caractéristiques Autres méthodes Outils Conclusion Optimum global n'est pas garanti : il ne doit donc pas être requis Présence de nombreux paramètres : phases de tests nécessaires Contrôle des facteurs d'exploration (ou diversication), d'intensication, d'aprentissage Importance du choix de modélisation : liberté relative, fonction objectif simple à calculer Robustesse face aux problèmes stochastiques (données incertaines) Diverses preuves de convergence ont été fournies sous certaines conditions Autres méthodes Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Introduction Recuit simulé PSO ACO Génétique Caractéristiques Autres méthodes Outils Conclusion Réseaux de neurones (classication) Autres réparations locales : recherche tabou Nombreuses variantes des méthodes présentées Méthodes hybrides : hybridation globale/locale ou déterministe/stochastique ... Outils Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Introduction Recuit simulé PSO ACO Génétique Caractéristiques Autres méthodes Outils Conclusion Outils non-commerciaux et/ou libres : ParadisEO (evol.,local, PSO), ECj (evol.), oMetah (evol., local, ACO, RS), . . . Outils commerciaux : ILOG/IBM CPLEX (RS, local), Mathematica (RS), . . . Plan du cours Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio 1 Introduction 2 Programmation linéaire 3 Nombres entiers 4 Programmation par Contraintes 5 Meta-heuristiques 6 Conclusion 7 Biblio Conclusion Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Optimisation est un vaste domaine qui fait intervenir plusieurs types de compétences Comprendre le schéma général pour attaquer un problème : Analyse, Modélisation, Résolution, Interpretation, Application Comprendre les avantages et limitations des diérentes méthodes an de choisir la plus adaptée (caractéristiques du problème ? objectifs ? contexte ? diculté de résolution ?) Se ramener si possible à un problème type an de proter de l'expérience accumulée Suivre un fonctionnement itératif et tester abondamment Si vous faites appel à une expertise extérieure pour une ou plusieurs étapes, la compréhension du domaine permet de chirer et de superviser Conclusion Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Ce cours est loin d'être exhaustif sur les types de problèmes (optimisation multi-objectifs, contraintes temps et stochastiques, données incertaines, objectifs robustesse, . . .), les méthodes associées et les outils existants Nécessaire de maintenir une veille technologique ou de mettre à jour ses connaissances une fois confronté à une problématique précise Associer connaissance théorique à la maîtrise d'outils performants (et leur langage) Plan du cours Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio 1 Introduction 2 Programmation linéaire 3 Nombres entiers 4 Programmation par Contraintes 5 Meta-heuristiques 6 Conclusion 7 Biblio Bibliographie Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Portail RO sur wikipedia (maintenu par E/C) Recherche opérationnelle pour l'ingénieur [Hêche&al.] Meta-heuristiques pour l'optimisation dicile [Dréo&al.] Introduction à la calculabilité [Wolper] ... Crédits Méthodes et outils d'optimisation Optimisation Introduction Programmation linéaire Nombres entiers Programmation par Contraintes Metaheuristiques Conclusion Biblio Une partie du contenu de ce cours est adapté du travail de : å å å å å å å Wikipedia : portail RO Nadia Brauner & al. - Laboratoire G-SCOP (Grenoble) Christine Solnon - Laboratoire LIRIS (Lyon) Philippe Chretienne - ISIMA Philippe Liberti - LIX Vincent Mousseau - Centrale Paris ...