Ax = b iff (B + N) x N



Documents pareils
Programmation linéaire

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

Programmation linéaire

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

Optimisation Discrète

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

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

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

Programmation linéaire et Optimisation. Didier Smets

Programmation Linéaire - Cours 1

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

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

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Représentation des Nombres

Chapitre 5 : Flot maximal dans un graphe

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

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.

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Plus courts chemins, programmation dynamique

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

Correction de l examen de la première session

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

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

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


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

Fonctions de plusieurs variables

Théorie et codage de l information

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

Problème 1 : applications du plan affine

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

1 Complément sur la projection du nuage des individus

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

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

Probabilités sur un univers fini

Chapitre 3. Les distributions à deux variables

PEUT-ON «VOIR» DANS L ESPACE À N DIMENSIONS?

Structures algébriques

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

III- Raisonnement par récurrence

Polynômes à plusieurs variables. Résultant

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

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

Simulation de variables aléatoires

Leçon N 4 : Statistiques à deux variables

Algorithmique I. Algorithmique I p.1/??

IV- Equations, inéquations dans R, Systèmes d équations

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

EXERCICES - ANALYSE GÉNÉRALE

Analyse en Composantes Principales


Cours d analyse numérique SMI-S4

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

FORMULAIRE DE STATISTIQUES

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

Pour l épreuve d algèbre, les calculatrices sont interdites.

CARTE DE VOEUX À L ASSOCIAEDRE

Direction des Études et Synthèses Économiques Département des Comptes Nationaux Division des Comptes Trimestriels

Chapitre 2. Matrices

Calcul différentiel sur R n Première partie

3 Approximation de solutions d équations

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

Equations cartésiennes d une droite

Complément d information concernant la fiche de concordance

La fonction exponentielle

V- Manipulations de nombres en binaire

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

Master IAD Module PS. Reconnaissance de la parole (suite) Alignement temporel et Programmation dynamique. Gaël RICHARD Février 2008

Comparaison de fonctions Développements limités. Chapitre 10

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

F411 - Courbes Paramétrées, Polaires

Comment tracer une droite représentative d'une fonction et méthode de calcul de l'équation d'une droite.

Raisonnement par récurrence Suites numériques

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

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

aux différences est appelé équation aux différences d ordre n en forme normale.

Optimisation des fonctions de plusieurs variables

Exemple 4.4. Continuons l exemple précédent. Maintenant on travaille sur les quaternions et on a alors les décompositions

Corrigé des TD 1 à 5

L ANALYSE EN COMPOSANTES PRINCIPALES (A.C.P.) Pierre-Louis GONZALEZ

Qu est-ce qu une probabilité?

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Exercice : la frontière des portefeuilles optimaux sans actif certain

La classification automatique de données quantitatives

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

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

TSTI 2D CH X : Exemples de lois à densité 1

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG

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

Correction du baccalauréat ES/L Métropole 20 juin 2014

Continuité et dérivabilité d une fonction

Cours de recherche opérationnelle I

Théorèmes de Point Fixe et Applications 1

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

Coefficients binomiaux

Algorithmes de recherche

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Limites finies en un point

Résolution d équations non linéaires

NOMBRES COMPLEXES. Exercice 1 :

Transcription:

Chapitre 3 Algorithme du simplexe 3.1 Solution de base admissible P en forme standard. A = (a 1,...,a n ) Hypothèse : n m (plus de variables que d équations) et rg(a)=m (pas d équation inutile). Donc après rearrangement des vecteurs on peut écrire A = (a i 1,..., a im, a i m+1,...,a in ) avec les m premiers vecteurs indépendants c.a.d. A = B + N avec B(m, m) de rang m. D où Ax = b iff (B + N) ( xb x N ) = b ce qui donne x B = B 1 b + B 1 N( x N ) Definition 1 B est appelée une base et x B = B 1 b la solution de base associée à B Si x B 0 alors (x B, 0) est une solution admissible de P. Deux idées à retenir pour la suite : une solution de base admissible est un sommet du polyhèdre d éfini par les contraintes. Le simplexe va faire passer d une solution de base admissible à une autre qui améliore la fonction objectif. 3.2 Solution de base admissible et polytope des contraintes On considère que des polyhèdres situé dans l orthant positif (x i 0 pour i = 1,...,n). Les équations de définitions sont donc : des équations d hyperplans et les contraintes x i 0. 1

2 CHAPITRE 3. ALGORITHME DU SIMPLEXE Premier résultat : on suppose que Ax = b, x 0 avec rang(a) = m définit un ensemble borné. Alors c est un polytope de R n m. Deuxième résultat : x B est une solution de base admissible ssi x B correspond à un sommet du polytope associé. Le polytope associé à Ax = b x 0 donne x B = B 1 b + B 1 N( x N ) avec x B, x N 0, c.a.d. B 1 N(x N ) B 1 b x N 0 ce qui donne bien un polytope de R n m. Réciproquement, étant donné un polytope de R n m dans le premier orthant, ses équations de définition sont : d ou x l 0 pour l = 1,..., n m Σ l=n m l=1 a i,l x l b i pour i = 1,...,n. x k 0 pour k = 1,..., m Σ l=n m l=1 a i,l x l + x n = b i pour i = 1,...,n. B donnée, on associe à x le ˆx de R n m obtenu en ne gardant que les valeurs x i B. On admettra que si (P) est un polytope et (C) est le problème standard associé, alors 1. x solution de base admissible de (C) 2. ˆx le sommet correspondant est un sommet de (P) 3.3 Méthode de Gauss-Jordan 3.3.1 Principe du pivotage La méthode du pivot (Gauss-Jordan) pour résoudre un système d équation linéaire consiste à itérer les étapes suivantes : 1. à l étape p, choisir une variable x j et une ligne r tel que le coefficient a r,j soit non-nul 2. garder cette ligne après l avoir divisée par le coefficient a r,j (pour que le nouveau coefficient de x j soit 1) ligne r (ligne r)/a r,j 3. Ajouter cette ligne aux autres lignes après multiplication par le coefficient qui permet de faire disparaitre x j. ligne i ligne i a i,k /a r,j ligne r

3.3. MÉTHODE DE GAUSS-JORDAN 3 4. on réarrange les variables de manière à ce que x j soit la p ieme variable. En itérant et regroupant les variables correspondant aux pivots on obtient une matrice (I m, A ) avec I la matrice identité (m,m). Les variables qui correspondent à I m définissent une base. 3.3.2 Maintenir l admissibilité de la base Le principe du simplexe est d appliquer la méthode de pivotage sur une matrice qui est déjà de la forme (I m, A ) et telle que la base soit admissible. On verra comment on peut toujours se ramener à ce cas plus tard. Cela correspond à : a 1... a m a m+1... a n 1 0.. 0 0 1 0. 0..... A.... 0 0.. 0 1 ( xb x N ) = b 1.. b m et où b i 0 pour i = 1,...,m (sinon la base n est pas admissible). Forme tableau Les équations peuvent s écrire : x 1.... x m x m+1.. x n 1 0.. 0 0 b 1 0 1 0. 0 0 A....... =. 0 0.. 0 1 b m Ces équations définissent les m premières variables et on peut les écrire : x m+1.. x n x 1 b 1. =. A.. x m b m Les variables x 1,..., x m sont les variables de bases et les variables x m+1,..., x n sont les variables hors base. Pour avoir la base admissible, on met les variables hors bases égales à 0 et la valeur des variables de base se lit sur le tableau : x i = b i. La base est admissible ssi b i > 0. Par abus de language, on identifiera la base et ses variables de base. Le pivotage consiste à choisir une variable x j à faire entrer dans la base (donc choisir une colonne j) à choisir une variable à faire sortir de la base x r (donc choisir une ligne r) ce qui correspond à un pivot a r,j qui doit être non-nul. Le pivotage donne un tableau tel que :

4 CHAPITRE 3. ALGORITHME DU SIMPLEXE 1. ligne r ligne r/a r,j 2. ligne i ligne i + ligne r( a i,j /a r,j ) pour i r 3. les variables x j et x r sont échangées et la colonne j est remplacée par la colonne des coefficients multiplicateurs : 1/a r,j sur la ligne r et ( a i,j /a r,j ) sur les lignes i j. Maintien de l admissibilité de la base. On a une nouvelle base admissible si les nouveaux coefficients pour b sont 0. Ces coefficients sont : * b r /a r,j pour la ligne r * b i b r (a i,j /a r,j ) Si la base précédente est admissible la nouvelle l est ssi : a r,j > 0 et b i /a i,j b r /a r,j (pour les i tel que a i,j > 0.) 3.3.3 Amélioration de la fonction objectif On rajoute aux calculs précédents la fonction objectif. A = B + N avec B(m, m) de rang m et c = (c B, c N ). ce qui donne Après remplacement Max z = c B x B + c N x N x B = B 1 b + B 1 N( x N ) Max z = c B B 1 b B 1 Nx N + c N x N Le premier terme s écrit z 0 = c B B 1 b et on écrit le second terme comme Σ j B (z j c j )( x j ). On a la forme tableau Exemple : Le pivotage consiste à x m+1. x j. x n z z 0. z j c j.. x 1 b 1 α 1,j... =....... x m b m α m,j.. 1. Choisir une variable à faire rentrer dans B (une colonne j) 2. Choisir une variable à faire sortir de B (une ligne r) 3. Effectuer le pivotage Il faut de plus * Garder l admissibilite de la base * Ameliorer la fonction objectif (au moins ne pas la dégrader).

3.4. ALGORITHME DU SIMPLEXE. 5 La valeur de la fonction objectif dans la nouvelle base après pivotage sur α r,j est z 0 = z 0 (z j c j )b r /α r,j On veut z 0 z 0. Pour maintenir l admissibilité on a choisi α r,j > 0 et on sait que b r 0, donc il faut et il suffit que : z j c j < 0 Remarque : on ne choisit evidemment jamais de pivot sur la ligne de la fonction objectif. 3.4 Algorithme du Simplexe. 3.4.1 Description. 1. Partir d une base admissible. 2. Chercher à effectuer un pivotage (a) j 0 tel que z j0 c j0 < 0, mais i = 1,...m, α i,j0 0 alors pas d optimum fini, STOP. (b) j, z j c j 0, alors la base actuelle donne l optimum qui est fini, STOP. (c) un pivot existe avec les critères de choix donnés précédemment, effectuer le pivotage et aller en 2. Remarque : rien ne garantit que l algorithme termine, et il existe des cas où il ne termine pas. Pour assurer la terminaison, il faut soit mémoriser toutes les bases pour éviter celles déjà calculées (couteux et impossible en pratique) soit utiliser des règles de choix particulière des pivots (règle de Bland par exemple, voir chapitre suivant). 3.4.2 Correction de l algorithme. A chaque étape la base est admissible et la fonction objectif ne se dégrade pas. Il suffit donc de montrer que les cas d arrêt correspondent à ce qui est dit (optimum fini atteint ou infini). Le cas pas de solution aux contraintes est éliminé car on suppose qu on part d une base admissible. On suppose j 0 tel que z j0 c j0 < 0 mais tous les α i,j0 0. Le système d équation est vrai pour toutes les valeurs x j. Prenons x j = 0 pour j j 0. On a z = z 0 + (z j0 c j0 )(x j0 ) donc > z 0 Pour une valeur x j0 quelconque. x i = b i + (z j0 c j0 )(α i,j0 ) donc 0. positive on a une base admissible et une valeur de la fonction objectif et celle ci tend vers + quand x j0 tend vers +.

6 CHAPITRE 3. ALGORITHME DU SIMPLEXE On suppose j tel que z j c j 0 pour une base B. On considere une autre base admissible B qui donne une valeur z 0 a la fonction objectif. Le tableau obtenu pour la base B définit une égalité valable pour toutes les valeurs des variables. z = z 0 + Σ j B (z j c j )( x j ) avec z j c j > 0. Les variables x j de B ont une valeur positive v j car B est admissible. Par conséquent la valeur de z pour B vaut z 0 + Σ j B (z j c j )( v j ) z 0. Donc B réalise l optimum. 3.4.3 Terminaison Règle de Bland : lors d un pivotage, la variable qui entre est celle d indice minimal parmi celles qui peuvent rentrer et la variable qui sort est celle d indice minimal parmi celles qui peuvent sortir. Proposition 1 L algorithme du simplexe termine si on applique la règle de Bland. Preuve par l absurde : on suppose qu il ne termine pas. Alors il existe un cycle B... B. Nécessairement z 0 est constante le long du cycle, on peut le supposer nul. z = z 0 + Σ j IB (z j c j )( x j ) I B indices de la base B. Pour un pivotage en r, j (x r sort, x j entre) on a : z 0 = z 0 (z j c j )(b r /α i,j ) et donc b r = 0. et si b r vaut 0, la valeur des autres b i ne change pas. Donc tous les b i pour une variable i qui sortira valent 0. On peut éliminer les équations des variables qui restent toujours dans la base. On suppose que tous les b i sont 0 ainsi que z 0. Tableau x m+1. x j. x n z 0. z j c j. x 1 0 α 1,j. =... x m 0 α m,j q indice maximal des indices des variables de B.

3.4. ALGORITHME DU SIMPLEXE. 7 T 1 tableau avant que x q rentre. x m+1. x q. x n z 0. z q c q. x 1 0 α 1,j. =... x m 0 α m,j Alors z q c q < 0 et z j c j 0 pour tout j < q z = Σ j q, IB (z j c j ) ( x j ) + (z q c q ) ( x q ) 0 0 < T 2 tableau juste avant que x q sorte (donc pour tout l q, α l,p 0. x m+1. x p. x n z z 0. z p c p. x 1 0 α 1,p 0. =. x q = 0 α q,p > 0.. x m 0 α m,p 0 B On peut choisir les valeurs de certains x i dans les équations données par les tableaux T 1, T 2 de manière à obtenir des égalités interessantes. On choisit x i = ξ i tel que : * ξ p = 1 * ξ i = 0 pour i I B, i p * ξ i donné par le tableau T 2 sinon c.a.d. * ξ i = α i,p 0 * ξ q = α q,p < 0 D après T 1 on a : z = Σ j q,j IB (z j c j ) ( ξ j ) + (z q c q ) ( ξ q ) 0 0 0 < > 0 donc z < 0 D après T 2 contradiction. z = (z p c p ) ( y p ) 0 < = 1 > 0

8 CHAPITRE 3. ALGORITHME DU SIMPLEXE 3.5 Exemples de déroulement du simplexe Cas optimum fini. Max z = 5x 1 + 8x 2 x 1 + x 2 2 x 1 2x 2 0 x 1 + 4x 2 1 x 1, x 2 0 Variables d ecart e 1, e 2, e 3 donnent une base admissible. On peut écrire la fonction objectif avec les variables hors base : z = 0 + ( 5)( x 1 ) + ( 8)( x 2 ) d où le tableau : x 1 x 2 z 0 5 8 e 1 2 1 1 e 2 = 0 1 2 e 3 1 1 4 Pivotage : on peut choisir la première ou la deuxième colonne. On choisit la seconde et on calcule min(2/1,1/4) donc pivot 4. x 1 e 3 z 2 7 2 e 1 7/4 5/4 1/4 e 2 = 1/2 1/2 1/2 x 2 1/4 1/4 1/4 On vérifie que z a bien augmenté. Nouveau pivot obligatoirement sur colonne 1 et on calcule min((7/4)/(5/4),(1/2)/(1/2)) d ou ligne 2 e 2 e 3 z 9 14 9 e 1 1/2 5/2 3/2 x 1 = 1 2 1 x 2 1/2 1/2 1/2 Tous les coefficients z j c j sont positifs ou nuls, donc arret sur l optimum donné par la base B = {e 1, x 1, x 2 }, la valeur z = 9, et les variables de base e 1 = 1/2, x 1 = 1, x 2 = 1/2, les variables hors base valant 0. Optimum infini Max z = x 1 + x 2 x 1 + x 2 2 x 2 3 x 1, x 2 0

3.5. EXEMPLES DE DÉROULEMENT DU SIMPLEXE 9 Tableau x 1 x 2 z 0 1 1 e 1 2 1 1 e 2 3 0 1 On choisit colonne 2 et min(2/1,3/1) donne la ligne 1. Colonne 1 et min(1/1) donne la ligne 2 x 1 e 1 z 2 2 1 x 2 2 1 1 e 2 1 1 1 e 2 e 1 z 4 2 1 x 2 3 1 0 x 1 1 1 1 Colonne 2 obligatoirement mais pas de pivot sur cette colonne donc optimum infini (ce qu on voyait sur la colonne 1 dès le départ). Cas dégénéré Max z = 2x 1 + x 2 x 1 + 2x 2 2 x 1 + x 2 2 x 1, x 2 0 Les variables d écart donnent une base admissible : x 1 x 2 z 0 2 1 e 1 2 1 2 e 2 2 1 1 On choisit la colonne 1 et on calcule min(2/1,2/1) les deux lignes sont possibles, on prend la première. e 1 x 2 z 4 2 3 x 1 2 1 1 e 2 0 1 1 On est à l optimum avec une base dégénérée : une des variables de base vaut 0. On pourrait refaire un pivotage (non autorisé dans le déroulement normal car le pivot serait négatif et le coefficient de x 2 dans z est positif) pour echanger e 2 et x 2 : dans ce cas la valeur de x 2 resterait 0 et celle de z resterait 4.