Simplexe. Recherche Opérationnelle et Optimisation Master 1 I2L. Sébastien Verel

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

Programmation linéaire

Programmation linéaire

Programmation Linéaire - Cours 1

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Programmation linéaire et Optimisation. Didier Smets

Sujet 4: Programmation stochastique propriétés de fonction de recours

Optimisation Discrète

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

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Cours 02 : Problème général de la programmation linéaire

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

Cours de recherche opérationnelle I

Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction

Cours d analyse numérique SMI-S4

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

TRACER LE GRAPHE D'UNE FONCTION

Résolution d équations non linéaires

RECHERCHE OPERATIONNELLE

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

Optimisation, traitement d image et éclipse de Soleil

Exercices - Polynômes : corrigé. Opérations sur les polynômes

OPTIMISATION À UNE VARIABLE

Chapitre 7. Récurrences

INFO-F Algorithmique 3 et Recherche Opérationnelle

Optimisation des fonctions de plusieurs variables

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

Calcul différentiel sur R n Première partie

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

Théorèmes de Point Fixe et Applications 1

Resolution limit in community detection

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

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

3. Conditionnement P (B)

1 Complément sur la projection du nuage des individus

3 Approximation de solutions d équations

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

Plus courts chemins, programmation dynamique

L apport du HPC pour l optimisation. Eric Jacquet-Lagrèze. FORUM TERATEC 28 juin 2011

Moments des variables aléatoires réelles

CHAPITRE IV Oscillations libres des systèmes à plusieurs degrés de liberté

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

Problème 1 : applications du plan affine

Fonctions linéaires et affines. 1 Fonctions linéaires. 1.1 Vocabulaire. 1.2 Représentation graphique. 3eme

Chapitre 3. Les distributions à deux variables

Chapitre 6. Fonction réelle d une variable réelle

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

Exercices Corrigés Premières notions sur les espaces vectoriels

Programmation mathématique Discrète et Modèles Linéaires

Une forme générale de la conjecture abc

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

Formes quadratiques. 1 Formes quadratiques et formes polaires associées. Imen BHOURI. 1.1 Définitions

RO04/TI07 - Optimisation non-linéaire

Géométrie Algorithmique Plan du cours

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Continuité en un point

[ édité le 30 avril 2015 Enoncés 1

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

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)

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Deuxième partie es jeux non-coopératifs avec information complète 3. É quilibre de Nash (1951) 4. D ynamique et rétroduction 5.

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Chapitre 2. Matrices

Définitions. Numéro à préciser. (Durée : )

2.4 Représentation graphique, tableau de Karnaugh

Chapitre 5 : Flot maximal dans un graphe

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

Chp. 4. Minimisation d une fonction d une variable

Fonctions de deux variables. Mai 2011

LES MÉTHODES DE POINT INTÉRIEUR 1

Probabilités sur un univers fini

Image d un intervalle par une fonction continue

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

Jean-Philippe Préaux

Algorithmique et Programmation Fonctionnelle

Cours d Analyse. Fonctions de plusieurs variables

NOMBRES COMPLEXES. Exercice 1 :

Université Paris-Dauphine DUMI2E 1ère année, Applications

Simulation de variables aléatoires

Algorithmique et Programmation

Chapitre 11. Séries de Fourier. Nous supposons connues les formules donnant les coefficients de Fourier d une fonction 2 - périodique :

DUT Techniques de commercialisation Mathématiques et statistiques appliquées

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008)

Apprentissage Automatique

FIMA, 7 juillet 2005

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

Algorithmes pour la planification de mouvements en robotique non-holonome

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

Calcul différentiel. Chapitre Différentiabilité

Un K-espace vectoriel est un ensemble non vide E muni : d une loi de composition interne, c est-à-dire d une application de E E dans E : E E E

Théorème du point fixe - Théorème de l inversion locale

Feuille TD n 1 Exercices d algorithmique éléments de correction

Programmation par contraintes. Laurent Beaudou

Premiers exercices d Algèbre. Anne-Marie Simon

FORMULAIRE DE STATISTIQUES

Corrigé Problème. Partie I. I-A : Le sens direct et le cas n= 2

Programmation linéaire

Master IMA - UMPC Paris 6 RDMM - Année Fiche de TP

Extrait du poly de Stage de Grésillon 1, août 2010

Transcription:

Simplexe Recherche Opérationnelle et Optimisation Master 1 I2L Sébastien Verel verel@lisic.univ-littoral.fr http://www-lisic.univ-littoral.fr/~verel Université du Littoral Côte d Opale Laboratoire LISIC Equipe CAMOME

Plan 1 Base et points extrêmes 2

Bibliographie Cours de recherche opérationnelle, Nadia Brauner, IMAG.

Forme d un problème de prog. lin. Forme normale Max z = c.x A x b x 0 c = (c i ) IR n, x = (x i ) IR n, b = (b j ) t IR m, A = (a ij ) IR m n.

Forme d un problème de prog. lin. Forme normale Max z = c.x A x b x 0 c = (c i ) IR n, x = (x i ) IR n, b = (b j ) t IR m, A = (a ij ) IR m n. Forme standard Max z = c.x A x = b x 0 c = (c i ) IR n, x = (x i ) IR n, b = (b j ) t IR m, A = (a ij ) IR m n.

Equivalence forme normale / forme standard Exercice Ecrire sous forme standard le système suivant : Max z = 4x + 5y 2x + y 8 x + 2y 7 y 3 x, y 0

Propriétés polytope Proposition Un polytope n a qu un nombre fini de sommets. Tout point M d un polytope peut s écrire comme une combinaison linéaire convexe des sommets : M = i λ i S i avec i λ i = 1 et λ i 0.

Convexité Ensemble convexe C est convexe ssi : pour tous points M et M de C, tout point du segment [M, M ] appartient à C pour tout λ [0, 1] Fonction convexe f est convexe ssi : λm + (1 λ)m C pour tout x et x de IR n, pour tout λ [0, 1] f (λx + (1 λ)x ) λf (x) + (1 λ)f (x )

Maximums Proposition Une fonction convexe f sur un polytope P a un maximum et celui-ci est est obtenu sur un sommet. Preuve : à faire Un algorithme serait donc d énumérer f sur les tous les sommets... mais qui peuvent être très nombreux...

Solutions d un problème de prog. lin. Forme normale Max z = c.x A x b x 0 c = (c i ) IR n, x = (x i ) IR n, b = (b j ) t IR m, A = (a ij ) IR m n. Les contraintes définissent le polyèdre La solution optimale est un sommet du polyèdre Comment énumérer les sommets?

Base et points extrêmes Version géométrique Exercice A l aide de la représentation graphique du polyèdre : énumérer les points intéressants (points à l intersection de contraintes) énumérer les sommets admissibles (points respectant les contraintes).

Base et points extrêmes Version algébrique 2x + y + e 1 = 8 x + 2y + e 2 + = 7 y + + + e 3 = 3 x, y, e 1, e 2, e 3 0 Les solutions de base admissibles les intersections de contraintes (2 variables à 0). x y e 1 e 2 e 3 sol. base admiss. pt extrême 0 0 8 7 3 ok ok (0, 0)...

Principe de résolution Principe Toute les méthodes de résolution ont besoin d au moins de calculer un point extrême : solution de base liée à des variables de bases

Bases et points extrêmes Définition formelle Système linéaire Ax = b A matrice de dimension m n et rang A = m n Base de la matrice A sous-matrice B de rang m de A (n est pas unique) B matrice m m avec det B 0 Posons A = (B N) Ax = b (B N)x = b Bx B + Nx N = b x B = B 1 b B 1 Nx N Solution de base associée à B x N = 0 : variables hors base x B = B 1 b : variables de base

Bases et points extrêmes Définition formelle Système linéaire Ax = b A matrice de dimension m n et rang A = m n Base de la matrice A sous-matrice B de rang m de A (n est pas unique) B matrice m m avec det B 0 Posons A = (B N) Ax = b (B N)x = b Bx B + Nx N = b x B = B 1 b B 1 Nx N Solution de base associée à B x N = 0 : variables hors base x B = B 1 b : variables de base Problème : comment trouver une matrice B? et x B?

Exemple de calcul d une base 2x + y + e 1 = 8 x + 2y + e 2 = 7 y + e 3 = 3 x, y, e 1, e 2, e 3 0 Pour trouver une base, en tenter une... Par exemple {e 1, e 2, e 3 } 2x + y + e 1 = 8 x + 2y + e 2 = 7 y + e 3 = 3 e 1 = 8 2x y e 2 = 7 x 2y e 3 = 3 y {e 1, e 2, e 3 } : variables de base et {x, y} variables hors base

Exemple de solution de base {e 1, e 2, e 3 } : variables de base et {x, y} variables hors base e 1 = 8 2x y e 2 = 7 x 2y e 3 = 3 y Pour calculer une solution de base : variables hors base = 0 variables de base à calculer (si possible, c est ok)

Exemple de solution de base {e 1, e 2, e 3 } : variables de base et {x, y} variables hors base e 1 = 8 2x y e 2 = 7 x 2y e 3 = 3 y Pour calculer une solution de base : variables hors base = 0 variables de base à calculer (si possible, c est ok) Pour x = y = 0, on trouve : e 1 = 8 2x y = 8 e 2 = 7 x 2y = 7 e 3 = 3 y = 3

Remarques finales Ax = b, x 0 où A = (B N) (x B 0) est est une solution de base admissible si x B 0 Equivalence points de vue géométrique / algébrique : L ensemble des points extrêmes du polyèdre sont les solutions de base admissibles du syst. lin. Nombre de points extrêmes (maximum) : Solutions de base dégénérés : lorsque certaines variables de base sont nulles Pratique : lorsque A est inversible, solution de base unique.

Remarques finales Ax = b, x 0 où A = (B N) (x B 0) est est une solution de base admissible si x B 0 Equivalence points de vue géométrique / algébrique : L ensemble des points extrêmes du polyèdre sont les solutions de base admissibles du syst. lin. Nombre de points extrêmes (maximum) : ( ) n m Solutions de base dégénérés : lorsque certaines variables de base sont nulles Pratique : lorsque A est inversible, solution de base unique.

Introduction Une idée naïve, simple mais impraticable : Enumérer tous les sommets Calculer l objectif sur chacun eux Retenir le meilleur

Introduction Une idée naïve, simple mais impraticable : Enumérer tous les sommets Calculer l objectif sur chacun eux Retenir le meilleur Cet algo termine et est correct (nombre fini), mais malheureusement très très grand. Pourtant la géométrie du problème joue en notre faveur...

Simplexe Principe Dantzig, 1947 Algo itératif de résolution de problème de programmation linéaire A partir d un sommet, chercher un sommet voisin qui améliore l objectif.

Simplexe Principe Dantzig, 1947 Algo itératif de résolution de problème de programmation linéaire A partir d un sommet, chercher un sommet voisin qui améliore l objectif. Propriété du problème Soit x 0 sommet non optimum. Alors il existe x, un sommet voisin de x0, tel que f (x) > f (x 0 ). Donc ça marche...

Illustration Max z = 4x + 5y 2x + y 8 x + 2y 7 y 3 x, y 0 A suivre sur votre graphique... x 0 = (0, 0) d où z = 0

Illustration Max z = 4x + 5y 2x + y 8 x + 2y 7 y 3 x, y 0 A suivre sur votre graphique... x 0 = (0, 0) d où z = 0 x 1 = (0, 3) d où z = 15

Illustration Max z = 4x + 5y 2x + y 8 x + 2y 7 y 3 x, y 0 A suivre sur votre graphique... x 0 = (0, 0) d où z = 0 x 1 = (0, 3) d où z = 15 x 2 = (1, 3) d où z = 19

Illustration Max z = 4x + 5y 2x + y 8 x + 2y 7 y 3 x, y 0 A suivre sur votre graphique... x 0 = (0, 0) d où z = 0 x 1 = (0, 3) d où z = 15 x 2 = (1, 3) d où z = 19 x 3 = (3, 2) d où z = 22

Base voisine Bases voisines Deux sommets voisins correspondent à deux bases B et B telles que qu on remplace une variable de B par une autre pour obtenir B. Passer d un sommet à l autre revient à changer de base (principe du pivotage )

par l exemple Solution de base Maximizer z = 4x + 5y 2x + y 8 x + 2y 7 y 3 x, y 0 Maximizer z = 4x + 5y 2x + y + e 1 = 8 x + 2y + e 2 = 7 y + e 3 = 3 x, y, e 1, e 2, e 3 0

par l exemple Solution de base Maximizer z = 4x + 5y 2x + y 8 x + 2y 7 y 3 x, y 0 Maximizer z = 4x + 5y 2x + y + e 1 = 8 x + 2y + e 2 = 7 y + e 3 = 3 x, y, e 1, e 2, e 3 0 Pour trouver une base, en tenter une... Par exemple {e 1, e 2, e 3 } 2x + y + e 1 = 8 x + 2y + e 2 = 7 y + e 3 = 3 e 1 = 8 2x y e 2 = 7 x 2y e 3 = 3 y {e 1, e 2, e 3 } : variables de base et {x, y} variables hors base

par l exemple Solution de base Pour calculer une solution de base : variables hors base = 0 variables de base à calculer (si possible, c est ok) Valeur de z {e 1, e 2, e 3 } : variables de base et {x, y} : variables hors base

par l exemple Solution de base Pour calculer une solution de base : variables hors base = 0 variables de base à calculer (si possible, c est ok) Valeur de z {e 1, e 2, e 3 } : variables de base et {x, y} : variables hors base x = y = 0, on trouve : e 1 = 8 2x y = 8 e 2 = 7 x 2y = 7 e 3 = 3 y = 3 et z = 4x + 5y = 0

Changement de base Regardons bien : z = 4x + 5y

Changement de base Regardons bien : z = 4x + 5y On peut faire augmenter z en faisant entrer x ou y dans la base

Changement de base Regardons bien : z = 4x + 5y On peut faire augmenter z en faisant entrer x ou y dans la base Essayons y : quelle est la valeur maximale que pourra avoir y? e 1 = 8 2x y 0 y 8 e 2 = 7 x 2y 0 y 3.5 e 3 = 3 y 0 y 3

Changement de base Regardons bien : z = 4x + 5y On peut faire augmenter z en faisant entrer x ou y dans la base Essayons y : quelle est la valeur maximale que pourra avoir y? e 1 = 8 2x y 0 y 8 e 2 = 7 x 2y 0 y 3.5 e 3 = 3 y 0 y 3 Le max de y est 3, pour y = 3, on obtenons e 1 = 5 x, e 2 = 1 x et e 3 = 0.

Changement de base Regardons bien : z = 4x + 5y On peut faire augmenter z en faisant entrer x ou y dans la base Essayons y : quelle est la valeur maximale que pourra avoir y? e 1 = 8 2x y 0 y 8 e 2 = 7 x 2y 0 y 3.5 e 3 = 3 y 0 y 3 Le max de y est 3, pour y = 3, on obtenons e 1 = 5 x, e 2 = 1 x et e 3 = 0. Nouvelle base candidate : {e 1, e 2, e 3 } {y} \ {e 3 } = {e 1, e 2, y}

Nouvelle base {e 1, e 2, y} e 1 = 8 2x y e 2 = 7 x 2y e 3 = 3 y e 1 = 5 2x + e 3 e 2 = 1 x + 2e 3 y = 3 e 3 z en fonction des variables hors base : z = 4x + 5y = 15 + 4x 5e 3 Solution de base associée : x = e 3 = 0 e 1 = 5 2x + e 3 = 5 e 2 = 1 x + 2e 3 = 1 y = 3 e 3 = 3 et z = 15.

Nouvelle itération Augmenter encore z? z = 15 + 4x 5e 3

Nouvelle itération z = 15 + 4x 5e 3 Augmenter encore z? Faire entrer x Quelle est la valeur maximale que pourra avoir x? e 1 = 5 2x + e 3 0 x 2.5 e 2 = 1 x + 2e 3 0 x 1 y = 3 e 3 0 pas de contrainte

Nouvelle itération z = 15 + 4x 5e 3 Augmenter encore z? Faire entrer x Quelle est la valeur maximale que pourra avoir x? e 1 = 5 2x + e 3 0 x 2.5 e 2 = 1 x + 2e 3 0 x 1 y = 3 e 3 0 pas de contrainte Le max de x est 1, et e 2 peut sortir de la base

Nouvelle itération z = 15 + 4x 5e 3 Augmenter encore z? Faire entrer x Quelle est la valeur maximale que pourra avoir x? e 1 = 5 2x + e 3 0 x 2.5 e 2 = 1 x + 2e 3 0 x 1 y = 3 e 3 0 pas de contrainte Le max de x est 1, et e 2 peut sortir de la base Nouvelle base candidate : {e 1, x, y} e 1 = 3 + 2e 2 3e 3 x = 1 e 2 + 2e 3 y = 3 e 3 z = 19 4e 2 + 3e 3

Nouvelle itération Augmenter encore z? z = 19 4e 2 + 3e 3

Nouvelle itération z = 19 4e 2 + 3e 3 Augmenter encore z? Faire entrer e 3 Quelle est la valeur maximale que pourra avoir e 3? e 1 = 3 + 2e 2 3e 3 0 e 3 1 x = 1 e 2 + 2e 3 0 pas de contrainte y = 3 e 3 0 e 3 3

Nouvelle itération z = 19 4e 2 + 3e 3 Augmenter encore z? Faire entrer e 3 Quelle est la valeur maximale que pourra avoir e 3? e 1 = 3 + 2e 2 3e 3 0 e 3 1 x = 1 e 2 + 2e 3 0 pas de contrainte y = 3 e 3 0 e 3 3 Le max de e 3 est 1, et e 1 peut sortir de la base

Nouvelle itération z = 19 4e 2 + 3e 3 Augmenter encore z? Faire entrer e 3 Quelle est la valeur maximale que pourra avoir e 3? e 1 = 3 + 2e 2 3e 3 0 e 3 1 x = 1 e 2 + 2e 3 0 pas de contrainte y = 3 e 3 0 e 3 3 Le max de e 3 est 1, et e 1 peut sortir de la base Nouvelle base candidate : {e 3, x, y} e 3 = 1 + 2/3e 2 1/3e 1 x = 3 + 1/3e 2 + 2/3e 1 y = 2 2/3e 2 + 1/3e 1 z = 22 2e 2 e 1

Terminaison z = 22 2e 2 e 1 donc z 22 Or la solution de base x = 3, y = 2 et e 3 = 1 permet d obtenir le max z = 22 Donc on a trouvé l optimum

Suite du cours... Cours de recherche opérationnelle, Nadia Brauner, IMAG. http: //pagesperso.g-scop.grenoble-inp.fr/~braunern/ro.pdf, slide p.156.

Démarage difficile Démarrage facile L algorithme du simplexe nécessite de démarrer avec une base vérifiant : le programme linéaire est sous forme canonique par rapport à la base la base réalisable : les éléments de la dernière colonne sont positifs ou nuls la case en haut à droite est égale à z(0,..., 0) Comment faire lorsque la colonne de gauche n est pas positive ou nulle?

Démarage difficile Démarrage facile L algorithme du simplexe nécessite de démarrer avec une base vérifiant : le programme linéaire est sous forme canonique par rapport à la base la base réalisable : les éléments de la dernière colonne sont positifs ou nuls la case en haut à droite est égale à z(0,..., 0) Comment faire lorsque la colonne de gauche n est pas positive ou nulle? Résolution d un problème auxilière...

Explication par l exemple x y = z [max] 3x 4y 12 2x + y 4 x, y 0 Introduction des variables d écart : x y = z [max] 3x + 4y e 1 = 12 2x + y + e 2 = 4 x, y, e 1, e 2 0 Le système est pas sous forme standard (coefficient négatif pour e 1 )

Explication par l exemple x y = z [max] 3x + 4y e 1 = 12 2x + y + e 2 = 4 x, y, e 1, e 2 0 Problème linéaire associé : e 3 = w [min] 3x + 4y e 1 + e 3 = 12 2x + y + e 2 = 4 x, y, e 1, e 2, e 3 0 Introduction d une variable e 3 à la ligne qui ne satisfait pas l admissibilité (e 2, e 3) est une base admissible Problème équivalent lorsque e 3 est nul. Exprimer l objectif en fonction des variables hors base : e 3 = 3x + 4y e 1 12

Explication par l exemple 3x + 4y e 1 12 = w [max] 3x + 4y e 1 + e 3 = 12 2x + y + e 2 = 4 x, y, e 1, e 2, e 3 0 En résolvant on trouve la base admissible (y, e 2 ) avec la solution de base : (0 3 0 1 0) t On obtient une première base réalisable en supprimant e 3 et utilisant la base (y, e 2 ) : x y = z [max] 3/4x + y 1/4e 1 = 3 5/4x + 1/4e 1 + e 2 = 1 x, y, e 1, e 2 0