modele de recherche operationnele

Upload: nangaayissi

Post on 04-Apr-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 Modele de Recherche Operationnele

    1/113

    Modles de Recherche Oprationnelle

    Fabian Bastin

    [email protected]

    Dpartement dInformatique et de Recherche OprationnelleUniversit de Montral

    IFT-1575Hiver 2010

    http://www.iro.umontreal.ca/~bastin

  • 7/30/2019 Modele de Recherche Operationnele

    2/113

    La prsente version du syllabus sinspire des notes de Patrice Marcotte, Bernard Gendron, ainsi que des livresIntroduction to Operational Research [1] et The Basics of Practical Optimization [3].

    Le prsent document peut tre modifi et redistribu des fins non commerciales, sous conditions dtre diffussous les mme conditions.

    Photographie de couverture: viaduc de Millau, France.

    cFabian Bastin, 2006

  • 7/30/2019 Modele de Recherche Operationnele

    3/113

    Table des matires

    1 Introduction 1

    1.1 Les origines de la recherche oprationnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 La nature de la recherche oprationnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Modlisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4 Algorithmes et logiciels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    1.4.1 Un exemple avec GAMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.5 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    2 Programmation linaire 7

    2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Modle gnral de programmation linaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3 Terminologie de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.4 Hypothses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.5 La mthode du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    2.5.1 Solution de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.5.2 Interprtations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.5.3 Critre doptimalit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.5.4 Adaptation dautres formes de modles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.5.5 Obtention dune base admissible initiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.5.6 Variables valeurs quelconques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    2.6 Dualit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    2.6.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.6.2 Analyse de sensibilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    3 Programmation non linaire 31

    3.1 Fonctions convexes et concaves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.1.1 Ensembles convexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    3.2 Algorithmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.2.1 Lalgorithme du simplexe dans le cas non-linaire . . . . . . . . . . . . . . . . . . . . . . . . . 353.2.2 Optimisation sans contrainte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.2.3 Mthode de la bissection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.2.4 Mthode du gradient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.2.5 Optimisation sous contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    3.2.6 Conditions doptimalit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.3 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    4 Programmation mixte entire 41

    4.1 Prsentation gnrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.2 Contraintes mutuellement exclusives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    4.2.1 Deux contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.2.2 K contraintes parmi N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.2.3 Fonction ayant N valeurs possibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

    iii

  • 7/30/2019 Modele de Recherche Operationnele

    4/113

    iv TABLE DES MATIRES

    4.2.4 Objectif avec cots fixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.2.5 Variables entires en variables 01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474.2.6 Problme de recouvrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    4.3 Stratgies de rsolutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.3.1 Relaxation linaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.3.2 Approche par numration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524.3.3 Les hyperplans coupants (mthode de coupe) . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

    4.4 Modlisation avec GAMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624.6 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    5 Rseaux 63

    5.1 Graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635.1.1 Graphe orient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635.1.2 Graphe non orient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635.1.3 Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645.1.4 Chemins et circuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645.1.5 Connexit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

    5.2 Problme du chemin le plus court - algorithmes de corrections dtiquettes . . . . . . . . . . . . . . . 655.2.1 Algorithme de Dijkstra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    5.3 Flot dans un rseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675.3.1 Rseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675.3.2 Modle de flot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675.3.3 Algorithme de Bellman-Ford . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685.3.4 Modle du chemin critique (PERT/CPM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

    5.4 Problme de larbre partiel minimum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695.4.1 Algorithme de Prim (1957) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

    5.5 Problme du flot maximum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705.5.1 Algorithme de Ford-Fulkerson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725.5.2 Flot maximum - Coupe minimum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

    5.6 Problme de flot minimum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

    6 Modles stochastiques 77

    6.1 Concepts de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776.2 Variable alatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

    6.2.1 Variables alatoires discrtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.2.2 Variables alatoires continues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.2.3 Esprance mathmatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.2.4 Variance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

    6.3 Loi de probabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

    6.3.1 Loi de Bernouilli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806.3.2 Loi uniforme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806.3.3 Loi de Poisson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816.3.4 Loi exponentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

    6.4 Modles stochastiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816.4.1 Processus stochastiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816.4.2 Chanes de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

    6.5 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

  • 7/30/2019 Modele de Recherche Operationnele

    5/113

    TABLE DES MATIRES v

    7 Programmation dynamique 85

    7.1 Principe doptimalit de Bellman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857.2 Affectation de ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887.3 Programmation dynamique dterministe et plus court chemin . . . . . . . . . . . . . . . . . . . . . . 907.4 Cas probabiliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 907.5 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

    8 Simulation 93

    8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 938.2 Files dattente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

    8.2.1 Concepts de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 938.2.2 Modle M/M/1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

    8.3 Simulation vnements discrets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968.4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

    Annexe 99

    8.5 Logiciels doptimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 998.5.1 IOR Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 998.5.2 GAMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 998.5.3 Autres logiciels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

    8.6 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

    Bibliographie 105

  • 7/30/2019 Modele de Recherche Operationnele

    6/113

    vi TABLE DES MATIRES

  • 7/30/2019 Modele de Recherche Operationnele

    7/113

    Chapitre 1

    Introduction

    1.1 Les origines de la recherche oprationnelle

    Si la recherche oprationnelle, en abrg RO, est aujourdhui prsente dans la plupart des domaines civils, sesracines sont habituellement attribus aux services militaires. La seconde guerre mondiale, de part son envergure,cra une besoin urgent dallouer de manire efficace des ressources limites aux diffrentes oprations militaireset aux activits au sein de chaque opration. En particulier, lorganisation militaire britannique, puis amricaine,mis contribution un grand nombre de scientifiques pour grer ces allocations, et soccuper dautres problmesstratgiques et tactiques. Ce faisant, ils furent appels poursuivre des recherches sur des oprations (militaires),et constiturent les premires quipes de RO. Leurs efforts furent signifactifs dans la marche vers la victoire, parexemple en ce qui touche lutilisation du radar, nouvellement dvelopp. Ces succs encouragrent la poursuite delutilisation de la RO dans dautres domaines. La croissance importante de lindustrie daprs-guerre entrana desproblmes, causs par la complexit croissante et la spcialisation dans les organisations, problmes en fait prochesde ceux prsent lors du conflit. Au dbut des annes 1950s, la RO avait pntr une multitude dorganisationscommerciales, industrielles, et gouvernementales. Et ce ntait que le dbut.

    Au moins deux autres facteurs ont jou un rle cl dans la croissance rapide de la RO. Tout dabord, desprogrs substantiels ont t obtenus trs tt afin damliorer les techniques de RO. Ces techniques, dans leur miseen pratique, furent soutenues par lessor des outils informatiques.

    1.2 La nature de la recherche oprationnelle

    Rechercher sur des oprations touche tous les problmes relis la conduite et la coordination des oprations(activts) au sein dune organisation. Cette organisation peut reprsenter des domaines trs divers: lindustriemanufacturire, le transport, la construction, les tlcommuncations, la finance, les soins de sant,. . . . La RO,associe la rvolution informatique, pntre pratiquement tous les secteurs dactivits de la vie courante, mmesi sa prsence est souvent invisible.

    La premire tape de la recherche est lobservation attentive du problme et sa formulation, ainsi que la collectede donnes associes. Il convient par la suite de construire un modle scientifique qui tente labstraire lessence duproblme rel. Tout modle est une simplification de la ralit, mais cette reprsentation doit tre sudffisammentprcise pour capturer les caractristiques essentielles de la situation, et de pouvoir tirer des conclusions valides pourle problme relle. Il conviendra ds lors de tester ce modle, et de le modifier au besoin.

    Une caractristique additionnelle est que la RO essaye souvent de trouver une meilleure solution (dite solutionoptimale) pour le problme examin. Cette solution peut ne pas tre unique. Cette recherche doptimalit est unthme important en RO, mais si son interprtation en terme managriels peut tre dlicate.

    Il est difficile pour un individu de pouvoir matrise tous les aspects du problmes ltude, de sorte que la RO estgnralement plus un travail dquipe, avec des experts en mathmatiques, statistiques et probabilits, ingnierie,conomie, administration, informatique, physiques, sciences comportementales, et les techniques spcifiques de laRO.

    1

  • 7/30/2019 Modele de Recherche Operationnele

    8/113

    2 CHAPITRE 1. INTRODUCTION

    1.3 Modlisation

    Un modle, telle que considr dans ce cours, est une construction mathmatique utilise pour reprsentercertains aspects significatifs de problmes du monde rel. Il y a beaucoup de types diffrents de modles mathma-tiques, mais nous nous focaliserons dans un premier temps sur les modles doptimisation. Il y a trois composantesprincipales dans un modle doptimisation:

    Variables: elles reprsentent les composantes du modle qui peuvent tre modifies pour crer des configurations

    diffrentes.Contraintes: elles reprsentent les limitations sur les variables.

    Fonction objection : cette fonction assigne une valeur chaque configuration diffrente. Le terme objectif vientdu fait que lobjectif est doptimiser cette fonction.

    Exemple 1 (Un exemples de dcisions binaires (oui/non)). Un tudiant en qute dune universit projette devisiter les campus de trois universits du Maine au cours dun voyage unique, dbutant et finissant laroport dePortland. Les trois tablissements sont dans les villes de Brunswick, Lewiston, et Waterville, et ltudiant ne veutvisiter chaque ville quune seule fois, tout en maintenant le trajet total le plus court possible. Les distances entre cesvilles sont donnes dans la Table 1.1.

    Ville Portland Brunswick Lewiston Waterville

    Portland 0 26 34 78

    Brunswick 26 0 18 52Lewiston 34 18 0 51

    Waterville 78 52 51 0

    Table 1.1 Distances entre les villes (miles)

    Ltape la plus importante dans la construction dun modle est le choix des variables qui vont entrer en jeu.Dans le prsent cas, puisque nimporte quel trajet consiste en une srie de petits dplacements entre deux villes, il estraisonnable dassigner des variables aux dcisions de partir ou non dune ville vers une autre. Pour plus de faciliter,numrotons les villes comme suit: 1 pour Portland, 2 pour Brunswick, 3 pour Lewiston et 4 pour Waterville. Ainsi,nous aurons une variablex1,2 gale 1 si ltudiant voyage de Portland Brunswick au cours de son parcours total,et 0 sinon. Puisquil ny a pas de voyage dune ville vers cette mme ville, nous avons dores et dj les contraintes

    xi,i = 0, i = 1, . . . , 4. (1.3.1)

    Une fois les variables choisies, nous pouvons essayer de formuler le problme. Ce processus est en fait souvent unemanire utiles pour guider le choix des variables.

    Chaque ville ne devant tre visite quune seule fois, elle ne peut apparatre quune seule fois comme villedarriv. En dautres termes, pour j fix, xi,j ne peut tre non-nul que pour un i donn, avec i = j. Une manireplus simple dencoder cette information est dcrire, pour j = 1, . . . , 4,

    x1,j + x2,j + x3,j + x4,j = 1,

    ou de manire plus concise.4

    i=1

    xi,j = 1, j = 1, . . . , 4. (1.3.2)

    Les contraintes formules jusqu prsent ne garantissent aucune forme de trajet ayant mme dpart et arrive.Par exemple, laffectation x1,2 = 1, x1,3 = 1, x1,4 = 1, x2,1 = 1, et toutes les autres variables gales 0, satisfontles contraintes 1.3.1 et 1.3.2. Cette solution dcrit toutefois un schma de visites impossible puisque Portland estlorigine de tous les dplacements aux trois autres villes universitaires, mais nest destination que depuis Brunswick.Nous avons videmment aussi besoin des contraintes

    4j=1

    xi,j = 1, i = 1, . . . , 4, (1.3.3)

  • 7/30/2019 Modele de Recherche Operationnele

    9/113

    1.3. MODLISATION 3

    afin dassurer que chaque ville ne serve dorigine que pour exactement un dplacement vers une autre ville. Fi-nalement, afin dobtenir un vritable trajet ayant mme origine et dpart, nous devons rejeter les affectations quidcrivent des groupes dconnects de petits dplacements comme x1,2 = x2,1 = 1, x3,4 = x4,3 = 1, avec toutes lesautres variables gales 0. Nous pouvons forcer ceci avec les contraintes

    xi,j + xj,i 1, i = 1, . . . , 4, et j = 1, . . . , 4.

    Cette contrainte exclut tout mini-cycle.Les contraintes dfinies, nous devons dcrire la distance totale associ nimporte quel parcours autoris. Puisque

    nos variables ont seulement comme valeurs possibles 0 ou 1, nous pouvons multiplier chacune delle par la distancecorrespondante entre les deux villes indexes, et les additionner:

    4i=1

    4j=1

    xi,jai,j.

    Notre modle mathmatique consiste minimiser cette fonction, dite fonction objectif par rapport aux variablesxi,j, tout en satisfaisant les contraintes pralablement dcrites:

    minx

    4

    i=14

    j=1xi,jai,j,

    s.c. xi,i = 0, i = 1, . . . , 4,4i=1

    xi,j = 1, j = 1, . . . , 4,

    4j=1

    xi,j = 1, i = 1, . . . , 4,

    xi,j + xj,i 1, i = 1, . . . , 4, et j = 1, . . . , 4,

    xi,j {0, 1}, i = 1, . . . , 4, et j = 1, . . . , 4.

    Ici, x = (xi,j)i=1,...,4,j=1,...,4, et s.c., sous les contraintes. Le problme doptimisation ainsi construit constitue unprogramme mathmatique.

    Le problme de visites duniversits est assez petit que pour tre rsolu explicitement, sans recourir des m-thodes doptimisation numrique. Puisquil y a seulement trois parcours significativement diffrents, la distance totaleassocie chacun deux pourrait tre facilement calcule, et nous choisissons le parcours de longueur minimale, quiest ici

    Portland Brunswick Waterville Lewiston Portland.

    avec une distance totale de 163 miles. Il est cependant clair quune telle stratgie de rsolution ne fonctionne pluscomme le nombre de villes augmente.

    Exemple 2 (Un problme de mlange). Un armateur doit construire un navire de guerre partir de 50 tonnesdacier contenant entre 0.5% et 1.25% de carbone (C), entre 0.3% and 0.5% de silicone (Si), pas plus de 0.05% desulfure (Su), et pas plus de 0.04% de phosphore (Ph). Un fournisseur produit de lacier partir de sept matires

    premiress dont les qualits, les disponibilits en tonnes, et les cots en $/tonne sont donns dans la Table 2. Lefournisseur veut dterminer la combinaison la moins coteuse de composants bruts quil peut utiliser pour produirelacier rpondant aux besoins de larmateur.

    Puisque les fournisseur peut changer les quantits de matries premires utilises dans la producton de lacier,nous pourrions assigner une variable diffrente pour reprsenter la quantiter de chaque matire premire:

    x1 = tonnes de limonite, x2 = tonnes de taconite, x3 = tonnes dhmatite, x4 = tonnes de magntite,

  • 7/30/2019 Modele de Recherche Operationnele

    10/113

    4 CHAPITRE 1. INTRODUCTION

    Matire premire % C % Si % Su % Ph Disponibilit Cot

    limonite 3.0 0 0.013 0.015 40 200taconite 2.5 0 0.008 0.001 30 250hmatite 0 0 0.011 0.05 60 150magntite 1.2 0 0.002 0.008 50 220silicone 1 0 90 0.004 0.002 20 300silicone 2 0 96 0.012 0.003 30 310charbon 90 0 0.002 0.01 25 165

    Table 1.2 Donnes pour le problme de production dacier

    x5 = tonnes de silicone 1, x6 = tonnes de silicone 2, x7 = tonnes de charbon.

    Notons que les variables sont ici continues, contrairement lexemple prcdent.Afin de modliser les contraintes, observons tout dabord que les variables dans ce cas sont naturellement bornes

    infrieurement par 0 (puisque des quantits ngatives ne feraient pas de sens), et bornes suprieurement par leurquantit disponible, aussi avons-nous:

    0 x1 40,

    0 x2 30,

    0 x3 60,

    0 x4 50,

    0 x5 20,

    0 x6 30,

    0 x7 25.

    En supposant que nimporte quelle quantit dune matire premire contribue pour la mme quantit dacier, et ensachant que nous devons produire au moins 50 tonnes, nous avons

    7i=1

    xi 50.

    Notons que nous ne supposons pas que nous produirons exactement 50 tonnes, puisquil peut tre ncessaire deproduire davantage afin de satisfaire les autres exigences du problme.

    Lautre caractristique contraignante dans ce problme que que lacier doit contenir un certain pourcentage decarboine, de silicone, de sulfure et de phosphore. Afin de voir comment ces exigences de composition se traduisent encontraintes par rapport nos variables, nous nous concentrerons dabord sur lexigence davoir entre 0.5% et 1.25%de carbone, en esprant que les exigences sur le silicone, le sulfure et le phosphore se formulent de manire similaire.A partir des donnes, nous connaissons le pourcentage de contribution en carbone de chaque matire premire, aussinous pouvons facilement calculer la quantit de carbone pour nimporte quel choix de variables comme

    0.03x1 + 0.025x2 + 0.012x4 + 0.9x7.

    Cependant, comme nous avons une exigences de proportion de carbone dans lacier, nous devons diviser cettequantit de carbone par la quantit dacier:

    %C = 100

    tonnes de carbone

    tonnes dacier

    =

    3.0x1 + 2.5x2 + 1.2x4 + 90x7x1 + x2 + x3 + x4 + x5 + x6 + x7

    .

    La contrainte que lacier contienne entre 0.5% et 1.25% de carbone se traduit dans la paire de contraintes

    0.5 3.0x1 + 2.5x2 + 1.2x4 + 90x7

    x1 + x2 + x3 + x4 + x5 + x6 + x7 1.25. (1.3.4)

  • 7/30/2019 Modele de Recherche Operationnele

    11/113

    1.4. ALGORITHMES ET LOGICIELS 5

    Les contraintes pour les autres composants se formulent de manire similaires.Puisque ce problme implique de trouver la combinaison la moins coteuse de matires premires qui rencontre

    la demande de 50 tonnes dacier, la fonction objectif est simplement le cot des matires premires utilises:

    cot= 200x1 + 250x2 + 150x3 + 220x4 + 300x5 + 310x6 + 165x7,

    o chaque matire premire contribue pour son propre cot au total. Le problme doptimisation est ds lors laminimisation de cette fonction cot sur tous les choix des variables qui satisfont les contraintes modlises.

    Il nest plus possible ici dnumrer les solutions possibles afin de rsoudre le modle, en particuler puisque lesvariables considres sont continues. Nous pouvons nanmoins obtenir une intuition de la solution en considrant lecomportement de la fonction objectif. Ainsi, il est vident que celle-ci dcrot quand une des variables diminue, et quela contribution la plus faible en termes de cot vient des variabless avec les plus petits coefficients (i.e. les matirespremires avec les cots moindres par unit). Si nous ignorons les contraintes de composition, le fournisseur devraitproduire exactement 50 tonnes dacier partir des matires premires disponibles les moins chres. Ceci signifieraitutiliser 50 des 60 tonnes disponibles dhmatite (au cot de $150 par tonne), pour un cot total des $7,500.

    Avant dessayer de rsoudre le problme doptimisation complet ( laide dun ordinateur), nous devrions r-crire les contraintes de composition dans une forme plus simple. Par exemple, la contrainte 1.3.4 est nonlinaire,mais peut tre rexprime comme deux contraintes linaires en multipliant chaque terme des ingalits par le d-nominateur. Aprs la simplification de toutes les contraintes de composition de cette manire, et en utilisant unlogiciel doptimisation, nous obtenons la solution

    x1 = 13.7888, x3 = 35.8097, x5 = 0.166667, x7 = 0.234818, x2 = x4 = x6 = 0,

    qui se traduit en exactement 50 tonnes dacier, produit partir de 13.7888 tonnes de limonite, 35.8097 tonnesdhmatite, 0.166667 tonnes de silicone 1 et 0.234818 tonnes de charbon. Le cot total de production pour cettesolution est $8,217.96.

    1.4 Algorithmes et logiciels

    Au-del de la modlisation, la rsolution de problmes de recherche oprationnelle ncessite de recourir des algorithmes adapats la nature du problme, et capables de traiter de quelques dizaines des millions devariables. Leur tude consistera par consquent une partie importante du prsent document. Mme si de nombreuxlogiciels mettant en oeuvre ces algorithmes sont commerciaux, le monde de lopen-source nest pas en reste avecnotamment des projets tels que COIN-OR (http://www.coin-or.org). Il existe aussi diverses versions dvaluationsde solveurs commerciaux, ainsi que linterface web NEOS (http://www-neos.mcs.anl.gov). Lutilisation de telsoutils ncessitent toutefois lapprentissage de langages de modlisation adapts ; dans ce cours, nous nous baseronssur le langage GAMS (http://www.gams.com). Ces langages servent dcrire dans des termes comprhensibles parle solveur le problme rsoudre. La dernire version de IOR-Tutorial, dvelopp en Java et propos en complment Hillier et Lieberman [1], peut galement se rvler un complment prcieux pour se familiariser avec les techniquesde recherche oprationnelle.

    1.4.1 Un exemple avec GAMS

    GAMS est lacronyme de General Algebric Modeling System. Il consiste en un langage de description de pro-blmes, qui peut tre compil, et en une interface vers diffrent solveurs. Une version gratuite de dmonstra-

    tion, permettant de rsoudre des problmes de petite taille, est disponible en tlchargement ladress http://www.gams.com. Ce langage peut galement tre utilis avec divers solveurs proposs sur NEOS. Nous reviendronsplus en dtail ultrieurement sur la formulation dun programme mathmatique avec GAMS, et nous contenteronsdun petit exemple introductif ce stade.

    Considrons un brasseur qui disposent des lments suivants dans son stock:

    1. malt (75 kg);

    2. houblon (60 kg) ;

    3. levure (50 kg).

  • 7/30/2019 Modele de Recherche Operationnele

    12/113

    6 CHAPITRE 1. INTRODUCTION

    Deux produits peuvent tre obtenus: de la bire lgre et de la bire noire. Pour un kg de bire lgre, il faut 2 kgde malt, 3 kg de houblon, et 2 kg de levure. Pour un kg de bire noire, il faut 3 kg de malt, 1 kg de houblon, et 5/3kg de levure. La bire noire est vendue la moiti du prix de la bire lgre. En supposant que toute la productionsera vendue, le brasseur souhaiterait dcider des quantits de bires noire et lgre produire pour optimiser sonprofit. Le programme GAMS rsultant est

    set b types of beer /light, dark/;

    set i inputs /malt, hops, yeast/

    parameter r(i) raw supplies /malt 75, hops 60, yeast 50/;

    table a(i,b) input requirements

    light dark

    malt 2 3

    hops 3 1

    yeast 2 1.67

    parameter p(b) selling price / light 2, dark 1/;

    variables pi profit (maximand)

    x(b) production level;

    equations profit defines gross revenue

    supply(i) input supply constraint;

    profit.. pi =e= sum(b, p(b) * x(b));

    supply(i).. sum(b, a(i,b)*x(b)) =L= r(i);

    model beer /all/;

    x.lo(b) = 0;

    solve beer using lp maximizing pi;

    1.5 Notes

    Le contenu des Section 1.1 et 1.2 se base principalement sur Hillier et Lieberman [1], Chapitre 1. La Section 1.3est construite partir du Chapitre 1 de Levy [3]. Lexemple GAMS est d Thomas F. Rutherford.

  • 7/30/2019 Modele de Recherche Operationnele

    13/113

    Chapitre 2

    Programmation linaire

    2.1 Introduction

    Bien que la ralit soit souvent loin dtre linaire, un grand nombre de problmes peuvent scrire sous formelinaire, soit directement, soit en premire simplification. Dautre part, un trs grand nombre de modles constituent

    des extensions de programmes linaires. Sa comprhension est essentielle la comprhension de modles plussophistiqus.

    Un programme linaire gnrique scrit sous la forme

    maxx c1x1 + . . . + cnxna11x1 + . . . + a1nxn b1

    ......

    am1x1 + . . . + amnxn bm,

    ou, sous une forme plus compacte,

    maxx

    nj=1 c

    jxj

    nj=1

    aijxj bi, i = 1, . . . , m .

    La lignenj=1

    cjxj

    reprsente la fonction objectif, que nous souhaitons maximiser. La maximisation se fait en respectant les mcontraintes

    nj=1

    aijxj bi, i = 1, . . . , m .

    Sous forme matricielle, le problme se recrit

    maxx

    cTx

    Ax b,

    7

  • 7/30/2019 Modele de Recherche Operationnele

    14/113

    8 CHAPITRE 2. PROGRAMMATION LINAIRE

    avec

    x =

    x1...

    xn

    , c =

    c1...

    cn

    , b =

    b1...

    bn

    A = a11 a12 . . . a1na21 a22 . . . a2n

    am1 am2 . . . amn .

    La terminologie linaire vient du fait que toutes les fonctions impliques sont linaires. Typiquement, nousajouterons galement des contraintes de non-ngativits:

    xi 0, i = 1, . . . , n ,

    ou, en abrg,x 0.

    Nous dirons aussi que le vecteur x appartient lorthant positif (i.e. x Rn+).

    Exemple 3 (Wyndor Glass). La compagnie Wyndor Glass Co. produit des produits verriers de haute qualit,incluant des fentres et des portes vitres. Elle dispose cette fin de trois usines (usine 1, usine 2, usine 3), qui ontchacune une capacit de production limite. Les chssis en aluminium et les matriaux sont produits dans lusine 1,les chssis en bois sont fabriqus dans lusine 2, et lusine 3 produit le verre et assemble les produits. La compagniea dcid de mettre en place de ligne de production:

    produit 1: une porte vitre avec un chssis daluminium ; produit 2: une fentre double-vritage avec chssis en bois.Un lot de 20 units donne lieu un profit de $3000 et $5000, respectivement pour le produit 1 et le produit 2.

    Les donnes du problme sont synthtises dans la Table 2.1. Chaque lot dun produit est le rsultat combin de la

    Produit 1 Produit 2 Capacit deTemps de prod. (h) Temps de prod. (h) production (h)

    Usine 1 1 0 4

    Usine 2 0 2 12

    Usine 3 3 2 18

    Table 2.1 Donnes du problme Wyndor Glass

    production dans les trois usines. Nous souhaitons dterminer le taux de production pour chaque produit (nombre delots par semaine) de faon maximiser le profit total.

    Les variables de dcision sont x1, le nombre de lots du produit 1 ; x2, le nombre de lots du produit 2.

    Le fonction objectif est le profit total, qui vaut3x1+5x2, en lexprimant en miller de dollars. Nous voulons maximiserce profit.

    Les contraintes concernent tout dabord les capacts de production:x1 4 (usine 1)

    2x2 12 (usine 2)

    3x1 + 2x2 18 (usine 3)

    Viennent ensuite les contriantes de non-ngativit:

    x1 0, x2 0. (nombre positif dunits produites)

  • 7/30/2019 Modele de Recherche Operationnele

    15/113

    2.2. MODLE GNRAL DE PROGRAMMATION LINAIRE 9

    En rsum, nous avons le problme doptimisation suivant:

    maxx

    z = 3x1 + 5x2

    sous les contraintes

    x1 4 (usine 1)

    2x2 12 (usine 3)

    3x1 + 2x2 18 (usine 3)x1 0, x2 0 (non-ngativit)

    Avant de traiter de mthodes numriques, essayons de visualiser le problme afin de dvelopper une intuitionquand sa rsolution. Le problme peut-tre reprsent comme sur la Figure 2.1. Pour le raliser, nous traonsdabord les droites correpondant aux contraintes, puis nous dterminons le domaine ralisable en vrifiant le sensdes ingalits pour chacune delle. Nous traons ensuite les droites correspondant la variation de lobjectif. Danslexemple

    z = 3x1 + 5x2 x2 = 3

    5x1 +

    1

    5z.

    Lordonne lorigine, dpendant de la valeur dez, est 15z, et la pente vaut 35 . Maximiser revient augmenterz.

    x1

    x2

    3x1 + 2x2 18

    2x2 12

    x1 4

    0 1 2 3 4 5 6 7 8 90

    1

    2

    3

    4

    5

    6

    7

    8

    9

    domaineralisable

    Figure 2.1 exemple Wyndor Glass

    La reprsentation graphique, bien quintressante pour voir comment se passe les choses, ne fonctionnent plusds que nous avons plus de deux variables. Il faut alors passer lutilisation de logiciels, utilisant lalgorithme dusimplexe ou de points intrieurs. Nous naborderons que le premier dans le cadre de ce cours introductif.

    2.2 Modle gnral de programmation linaire

    Le modle complet

    maxx

    cTx

    Ax b,

    x 0,

  • 7/30/2019 Modele de Recherche Operationnele

    16/113

    10 CHAPITRE 2. PROGRAMMATION LINAIRE

    x1

    x2

    0 1 2 3 4 5 6 7 8 90

    1

    2

    3

    4

    56

    7

    8

    9

    10 = 3x1 + 5x2

    20 = 3x1 + 5x2

    36 = 3x1 + 5x2

    (2, 6)

    Figure 2.2 exemple Wyndor Glass: maximisation

    est appel forme standard. Le modle complet

    maxx

    cTx

    Ax b,

    x 0,

    est appel forme standard.Dautres formes sont possibles et dfinissent aussi des modles de programmation linaire:

    minimiser au lieu de maximiser:min f(x) = max f(x);

    les ingalits peuvent tre remplaces par des galits, ou tre de sens contraire ; certaines variables peuvent ne pas tre forcs tre suprieures 0. Par exemple, considrons la contrainte

    x 4,

    qui quivaut x + 4 0.

    Nous pouvons alors dfinir y = x + 4, de sorte que la contrainte devient

    y 0.

    De mme, considrons 10 x 2.

    En dfinissons y = x + 10, nous avons la contrainte y 0.

    2.3 Terminologie de base

    Nous parlerons de solution ralisable propos dune solution (i.e. une instance particulire du vecteur x) pourlaquelle toutes les contraintes sont satisfaites. En dautres termes cette solution appartient au domaine ralisable.

  • 7/30/2019 Modele de Recherche Operationnele

    17/113

    2.4. HYPOTHSES 11

    Par exemple, le point (1, 1) est une solution ralisable pour la Figure 2.1. A contrario, une solution non ralisableest une solution pour laquelle au moins une contrainte est viole. Elle nappartient pas au domaine ralisable. Unesolution optimale est une solution donnant la meilleure valeur possible pour lobjectif. Cette valeur est dite valeuroptimale. Un modle na aucune solution optimale si son domaine ralisable est vide, ou si la fonction objectif estnon borne. Ajoutons par exemple la contrainte

    3x1 + 5x2 50

    dans lexemple Wyndor Glass. Cette nouvelle contrainte ne peut tre satisfaite en mme temps que les contraintesprcdentes, comme illustr dans la Figure 2.3. Plus aucun point nest ralisable. Si nous supprimons plutt lescontraintes

    2x2 12, 3x1 + 2x2 18,

    la fonction objectif devient non borne dans le domaine ralisable, comme illustr sur la Figure 2.4. Un modle peutgalement prsenter une infinit de solutions optimales. Considrons dans lexemple la fonction objectif

    z = 3x1 + 2x2.

    Tout point sur le segment [(2, 6), (4, 3)] est alors solution optimale (voir Figure 2.5).

    x1

    x2

    0 1 2 3 4 5 6 7 8 90

    1

    23

    4

    5

    6

    7

    8

    9

    10

    Figure 2.3 exemple Wyndor Glass: domaine non ralisable

    2.4 HypothsesLa premire hypothse dun modle de programmation linaire est la proportionnalit: la contribution de chaque variable la valeur de la fonction objectif est proportionnelle la valeur de cette

    variable. la contribution de chaque variable au terme de gauche de chaque contrainte fonctionnelle est proportionnelle

    la valeur de cette variable.Des cas o cette hypothse nest pas satisfaite sont

    cot fixe initial (Figure 2.6).

  • 7/30/2019 Modele de Recherche Operationnele

    18/113

    12 CHAPITRE 2. PROGRAMMATION LINAIRE

    x1

    x2

    x1 4

    0 1 2 3 4 5 6 7 8 9

    0

    1

    2

    3

    4

    5

    67

    8

    9

    domaineralisable

    Figure 2.4 exemple Wyndor Glass: objectif non born

    x1

    x2

    3x1 + 2x2 18

    2x2 12

    x1 4

    0 1 2 3 4 5 6 7 8 901

    2

    3

    4

    5

    6

    7

    8

    9

    domaineralisable

    18 = 3x1 + 3x2

    solutionsoptim

    ales

    Figure 2.5 exemple Wyndor Glass: infinit de solutions

  • 7/30/2019 Modele de Recherche Operationnele

    19/113

    2.4. HYPOTHSES 13

    x1

    x2

    pro

    porti

    onnel

    non

    pro

    porti

    onnel

    cot fixe initial

    0 1 2 3 41

    0

    1

    2

    3

    4

    Figure 2.6 cot fixe initial

    x1

    x2

    constant

    non

    constant

    0 1 2 3 4

    0

    1

    2

    3

    4

    5

    67

    Figure 2.7 profit marginal

  • 7/30/2019 Modele de Recherche Operationnele

    20/113

    14 CHAPITRE 2. PROGRAMMATION LINAIRE

    profit marginal (profit par unit) croissant ou dcroissant (Figure 2.7).

    Nous avons dautre part la proprit dadditivit: la fonction objectif est compose de la somme des contributionsindividuelles de chaque variable, et le terme de gauche de chaque contrainte fonctionnelle est compos de la sommedes contributions individuelles de chaque variable. Ladditivit interdit les termes de la forme x1x2. Si une de ceshypothses est invalide, nous sommes en prsence dun programme non linaire, tudi au Chapitre 3.

    Dautre part, les variables sont continues. Si nous imposons des variables valeurs entires, nous obtenons

    un modle de programmation en nombres entiers (Chapitre 4). De plus, les valeurs affectes chaque paramtresont des constantes connues avec certitude. Cette hypothse peut tre fort loigne de la ralit. Nous pouvonstester cette hypothse en conduisant une analyse de sensibilit, qui consiste vrifier la sensibilit du modle deschangements de valeurs des paramtres. Nous pouvons galement introduire des variables alatoires, ce qui conduittypiquement un problme de programmation stochastique. La programmation stochastique dpasse cependant lesobjectifs du prsent cours.

    Exemple 4 (Horaire de personnel). Nous souhaitons tablir un horaire quotidien, sachant que chaque jour estdivis en priodes et en supposant que nous avons pu estimer un nombre minimum demploys devant tre affectdurant chaque priode. Chaque jour est divis en quarts de travail de 8 heures. Plusieurs quarts partagent unemme priode, mais chaque quart exige un salaire particulier. Nous souhaitons savoir combien demploys doit-on

    affecter chaque quart de travail de faon minimiser le total des salaires verss, en respectant le nombre minimumdemploys pour chaque priode. Les donnes du problme sont donnes dans la Table 2.2.

    Priode Quart 1 Quart 2 Quart 3 Quart 4 Quart 5 Minimum employs

    68 X 48

    810 X X 79

    1012 X X 65

    1214 X X X 87

    1416 X X 64

    1618 X X 73

    1820 X X 822022 X 43

    2224 X X 52

    06 X 15

    Salaire 170 160 175 180 195

    Table 2.2 donnes du problme dhoraire de personnel

    Comme variables, nous pouvons choisir xj comme le nombre demploys affects au quart j. Lobjectif est

    min z = 170x1 + 160x2 + 175x3 + 180x4 + 195x5.

    Pour chaque priode, le nombre demploys affects aux diffrents quarts doit couvrir le minimum demploys requispour cette priode. Par exemple, pour la priode de 14h 16h, nous aurons:

    x2 + x3 64.

  • 7/30/2019 Modele de Recherche Operationnele

    21/113

    2.4. HYPOTHSES 15

    Le programme linaire rsultant est

    min z = 170x1 + 160x2 + 175x3 + 180x4 + 195x5,

    s.c. x1 48,

    x1 + x2 79

    x1 + x2 65

    x1 + x2 + x3 87x2 + x3 64

    x3 + x4 73

    x3 + x4 82

    x4 43

    x4 + x5 52

    x5 15

    xj 0, j = 1, 2, 3, 4, 5.

    Nous pouvons remarquer la prsence de contraintes redondantes:

    si nous avons x1 + x2 79, alors x1 + x2 65 ; cette dernire contrainte est donc redondante et peut tre

    limine ; de mme, x3 + x4 82 impliquex3 + x4 73 ; les contraintes x1 0, x4 0, x5 0, sont aussi redondantes, mais il ny a aucun intrt les liminer.

    La solution optimale du problme est

    x = (x1, x

    2, x

    3, x

    4, x

    5) = (48, 31, 39, 43, 15).

    Une difficult est que le nombre demploys doit toujours tre entier, aussi lhypothse de continuit nest passatisfaite dans le modle (bien que la solution optimale dans ce cas particulier soit entire).

    Exemple 5 (Rseau de distribution). Considrons deux usines (U1 et U2), un centre de distribution (CD), etdeux entrepts (E1, E2). Chaque usine manufacture un certain nombre dunits dun mme produit (offre). Chaqueentrept requiert un certain nombre dunits de ce mme produit (demande). Sur chaque lien (arc) du rseau, il ya un cot de transport par unit de produit (cot unitaire). De plus, sur certains arcs, il y a une capactit sur lenombre dunits transportes. Le rseau considr est reprsent dans la Figure 2.8. Lobjectif est de minimiser lecot de transport total.

    Comme dordinaire, pour formuler le modle, identifions en premier lieu les variables dintrt. Nous dsigneronsparxi,j le nombre dunits du produit transportes sur larc (i, j) (i.e. entre les sommets i etj) La fonction objectif(en chiifrant le montant total en centaines de dollars):

    min z = 2xU1,U2 + 4xU1,CD + 9xU1,E1 + 3xU2,CD + xCD,E2 + 3xE1,E2 + 2xE2,E1 .

    Les contraintes concernent tout dabord la conservation du flot: en chaque sommet du rseau, le flot sortant moinsle flot entrant est gal au nombre dunits produites dans le cas dusine, loppos du nombre dunits requises pour

    un entrept, et zro pour le centre de distribution. Nous devons en outre tenir compte de la capacit sur certainsarcs. Par exemple, pour larc (U1, U2), nous avons

    xU1,U2 10.

    Il nous reste prciser les traditionnelles contraintes de non-ngativit:

    xi,j 0.

  • 7/30/2019 Modele de Recherche Operationnele

    22/113

    16 CHAPITRE 2. PROGRAMMATION LINAIRE

    50 unitsproduites

    U1

    40 unitsproduites

    U2

    30 unitsrequises

    E1

    60 unitsrequises

    E2

    CD

    900$/unit

    200$/unit 10

    400$/unit

    300$

    /unit

    100$/unit80

    300$/unit 200$/unit

    Figure 2.8 Rseau de distribution

    Le modle dtaill peut ds lors scrire de manire dtaille comme suit:

    min z = 2xU1,U2 + 4xU1,CD + 9xU1,E1 + 3xU2,CD + xCD,E2 + 3xE1,E2 + 2xE2,E1 .

    s.c. xU1,U2 + xU1,CD + xU1,E1 = 50,

    xU1,U2 + xU2,CD = 40,

    xU1,CD xU2,CD + xCD,E2 = 30,

    xU1,E1 + xE1,E2 xE2,E1 = 30,

    xCD,E2 xE1,E2 + xE2,E1 = 60,

    xU1,U2 10,

    xCD,E2 80,

    xU1,U2 0, xU1,CD 0, xU1,E1 0, xU2,CD 0, xCD,E2 0, xE1,E2 0, xE2,E1 0.

    Il sagit dun problme de flot cot minimum, que nous tudierons plus en dtail au Chapitre 5. La solutionoptimale est

    (xU1,U2 , xU1,CD

    , xU1,E1 , xU2,CD

    , xCD,E2 , xE1,E2

    , xE2,E1) = (0, 40, 10, 40, 80, 0, 20).

    Le nombre dunits transportes doit toujours tre une valeur entire, aussi lhypothse de continuit nest passatisfaite dans ce cas. Nanmoins, dans ce cas particulier, la solution entire. En fait, pour tout problme de flot cot minimum (avec paramtres valeurs entires), il existe toujours une solution optimale entire.

    2.5 La mthode du simplexe

    Dvloppe en 1947 par George Dantzig, la mthode du simplexe reste dactualit pour rsoudre des problmesde grande taille. Il sagit dune mthode algbrique base sur la rsolution de systmes dquations linaires ; nousnous intressons ici uniquement aux systmes dquations linaires avec un nombre n de variables suprieur aunombre m dquations:

    Ax = b,

    o x Rn, b Rm et A Rmn. Dans ce cas, il y a trois possibilits:

    1. aucune solution;

    2. une et une seule solution;

  • 7/30/2019 Modele de Recherche Operationnele

    23/113

    2.5. LA MTHODE DU SIMPLEXE 17

    3. une infinit de solutions.

    Nous supposerons que toutes les variables sont positives. Le second cas, avec une et seule solution, ne peut survenirque si n = m, et si la matrice A est inversible, ce qui revient exiger que nous avons limin au pralabletoute quation pour scrire comme combinaison linaire des autres quations. Si nous navons quune seule solutionadmissible, elle est forcment optimale, par consquent, nous ignorerons ce cas dans le reste du chapitre, et prendronsn strictement suprieur m.

    Dans le cas o il y a une infinit de solutions, la mthode dlimination de Gauss-Jordan permet didentifier

    trois types de variables: variables fixes ; variables dpendantes ; variables indpendantes.

    Exemple 6 (Prliminaires lalgorithme du simplexe). Considrons le systme

    x1 + x2 + x3 + x4 = 4,x1 + x3 + x4 = 3,x1 + x2 + 2x4 = 2.

    Nous pouvons le rcrire sous la forme

    x1 + + 2x4 = 1,

    x2 = 1,x3 x4 = 2.

    La variable x2 est fixe, comme elle ne peut prendre que la valeur 1, sans considration pour les autres variables.A loppose, x4 est indpendante, comme elle peut prendre nimporte quelle valeur dans R. x1 et x3 sont quant elles dpendantes: le choix de x4 fixe leur valeur, et de plus, il nest pas possible de les liminer en combinant desquations entre elles (au contraire de x4).

    2.5.1 Solution de base

    Il sagit de la solution obtenue en fixant toutes les variables indpendantes zro. Nous qualifierons de variableshors-base les variables indpendantes fixes zro. Les autres variables seront dites variables de base. Une solutionde base est ralisable (ou admissible) lorsque toutes les variables de base ont une valeur positive. Une solution debase ralisable est dgnre lorsquau moins une variable de base a la valeur 0. Il est possible de montrer quunesolution de base ralisable est un sommet du polydre.

    Exemple 7 (Prliminaires lalgorithme du simplexe: solution de base). Dans lexemple, la solution de base est

    x1 = 1, x2 = 1, x3 = 2.

    Elle est ralisable et non dgnre.

    Pivot

    Il est facile de changer le statut des variables par des opratins lmentaires.

    Exemple 8 (Prliminaires lalgorithme du simplexe: pivot).

    x1 + + 2x4 = 1,x2 = 1,x3 x4 = 2.

    peut se rcrire commex1 + 2x3 = 5,

    x2 = 1,x3 + x4 = 2.

    Dans cette nouvelle solution de base, nous avons

  • 7/30/2019 Modele de Recherche Operationnele

    24/113

    18 CHAPITRE 2. PROGRAMMATION LINAIRE

    variable hors-base: x3 ; variables de base: x1, x2, x4 ; solution de base non ralisable: x1 = 5, x2 = 1, x4 = 2.

    Le pivot est une opration consistant remplacer une variable de base par une variable hors base pour obtenirune nouvelle solution de base, dite adjacente.

    Exemple 9 (Wyndor Glass). Rappelons que pour cet exemple, les contraintes fonctionnelles sont

    x1 4

    2x2 12

    3x1 + 2x2 18

    Au lieu dingalits, nous voudrions des galits. Pour ce faire, nous ajoutons des variables dcart (en anglais slackvariables) suprieures 0:

    x1 +x3 = 42x2 +x4 = 12

    3x1 +2x2 +x5 = 18

    Les variables hors-base sont x1 et x2. Fixons-les 0. Nous obtenons comme solution de base

    (x1, x2, x3, x4, x5) = (0, 0, 4, 12, 18).

    Effectuons un pivot, en remplaant la variable hors-base par une des variables de base actuelles. Reste dterminercomment la choisir. Nous souhaitons en premier lieu que la nouvelle solution de base soit ralisable. Dans cettesolution de base, on aura toujours x1 = 0, et une des variables dcart deviendra une variable hors-base, doncprendre la valeur 0. En exploitant le systme linaire prcdent et la positivit des variables, nous avons

    x1 = 4 x3 0 4 x3x4 = 12 2x2 0 12 2x2 0x5 = 18 3x1 2x2 0 18 2x2 0

    En exploitant les ingalits

    x4 = 12 2x2 0

    x5 = 18 2x2 0,

    nous obtenons

    x2 12/2 = 6

    x2 18/2 = 9.

    Par consquent, en posant x2 = 6, nous obtenons x4 = 0, alors que si nous augmentons davantage x2, la solutiondevient non ralisable. Nous effectuons comme pivot le remplacement de la variable de base x4 (qui deviendra hors-base) par x2. Nous obtenons alors le systme suivant:

    x1 +x3 = 4

    x2 +

    1

    2x4 = 63x1 x4 +x5 = 6,

    qui donne la solution de base:(x1, x2, x3, x4, x5) = (0, 6, 4, 0, 6).

    Nous effectuons ensuite un pivot pour que la variable x1 entre dans la base (i.e. devienne une variable de base).Comme x4 = 0,

    x3 = 4 x1 0x5 = 6 3x1 0

    x1 4x1 2

  • 7/30/2019 Modele de Recherche Operationnele

    25/113

    2.5. LA MTHODE DU SIMPLEXE 19

    En posant x1 = 2, nous obtenons x5 = 0. Le pivot revient remplacer la variable de base x5 parx1. Le systmeobtenu est alors :

    x3 +13

    x4 13

    x5 = 2x2 +

    12

    x4 = 6x1

    13x4 +

    13x5 = 2

    La solution de base correspondante est

    (x1, x2, x3, x4, x5) = (2, 6, 2, 0, 0).

    x1

    x2

    3x1 + 2x2 = 18

    2x2 = 12

    x1 = 4x1 = 0

    x2 = 0(0, 0)

    (0, 6) (2, 6) (4, 6)

    (4, 0) (6, 0)

    domaineralisable

    Figure 2.9 exemple Wyndor Glass

    2.5.2 Interprtations

    Interprtation gomtrique

    Une solution de base ralisable correspond un point extrme du domaine ralisable. Un pivot correspond undplacement dun point extrme un autre qui lui est adjacente, i.e. toutes les variables hors-base sauf une sont lesmmes. La mthode du simplexe peut se rsumer comme suit.

    1. Nous dbutons avec une solution de base ralisable initiale (un point extrme).

    2. A chaque itration, nous effectuons un pivot, passant ainsi une solution de base ralisable adjacente (unpoint extrme adjacent).

    3. Lalgorithme sarrte lorsquil identifie une solution de base ralisable optimale (un point extrme correspon-dant une solution optimale).

    Interprtation des variables dcart

    Exemple 10. Dans la solution optimale du problme Wyndor Glass, nous avons x3 = 2, x4 = x5 = 0. Cela indiqueque les deux dernires ressources (temps aux usines 2 et 3) sont pleinement utilises. Une partie de la premireressource (temps lusine 1) nest pas utilise: 2 heures

  • 7/30/2019 Modele de Recherche Operationnele

    26/113

    20 CHAPITRE 2. PROGRAMMATION LINAIRE

    2.5.3 Critre doptimalit

    Exemple 11 (Wyndor Glass: critre doptimalit). Exprimons lobjectif en fonction des variables hors-base dansla solution optimale Rappelons que dans cette solution, nous avons

    x2 +12

    x4 = 6x1

    13x4 +

    13x5 = 2

    Aprs substitution dans lobjectif, nous obtenonsmax z = 3x1 + 5x2

    = 3

    2 +

    1

    3x4

    1

    3x5

    + 5

    6

    1

    2x4

    = 36 3

    2x4 x5.

    Toute solution ralisable(x1, x2, x3, x4, x5) satisfait

    z = 36 + 0x1 + 0x2 + 0x3 3

    2x4 x5 36.

    Le critre doptimalit snonce ainsi comme suit: tant donn que lobjectif sexprime uniquement en fonction

    des variables hors-base de la solution de base ralisable courante, si les coefficients de ces variables dans lobjectifsont tous ngatifs ou nuls, alors la solution de base ralisable courante est optimale. Les coefficients des variableshors-base dans lobjectif sont appels cots rduits (ou cots relatifs).

    Si au moins un cot rduit est positif pour la solution de base courante, nous navons pas encore atteint unesolution optimale. Il faut par consquent effectuer au moins un pivot, mais quelle variable doit-on faire entrer dansla base. Regardons celle dont le cot rduit est le plus grand parmis toutes les variables hors-base, vu que cettevariable fournit la plus grande augmentation marginale (par unit) de la valeur de lobjectif. Ce qui ne signifietoutefois pas la plus grande augmentation globale !

    Vu que nous faisons entrer une variable dans la base, nous devons galement choisir la variable qui va sortir dela base en tentant de garder toutes les variables non ngatives. Supposons que xj est la variable dentre. Chaquevariable de base xi sexprime alors en fonction de la variable dentre (puisque les autres variables hors-base sontnulles):

    xi = bi aijxj .

    Dans cette expression, les coefficients bi et aij sont obtenus suite plusieurs pivots. Mais nous avons ncessairementbi positif (en partant dun b positif). Pour que toutes les variables demeurent non ngatives suite au pivot, nousdevons avoir

    xi = bi aijxj 0,

    soit, en dautres termes,aijxj bi.

    Si aij est ngatif, cette ingalit ne limite pas laugmentation de xj . Si cette condition est satisfaite pour tous lesi, nous pouvons donc augmenter indfiniment xj ; lobjectif est non born. Si aij est strictement positif, lingalitlimite laugmentation de xj . Nous prendrons comme variable de sortie celle qui atteint

    min biaij a

    ij> 0 .

    Algorithm 2.1: Simplexe

    1. Obtenir une solution de base ralisable.

    2. Vrifier le critre doptimalit: si les cots rduits de toutes les variables hors-base sont ngatifs ou nuls,stop.

    3. Choisir la variable xj , soit celle qui a le cot rduit le plus lev.

  • 7/30/2019 Modele de Recherche Operationnele

    27/113

    2.5. LA MTHODE DU SIMPLEXE 21

    4. Dterminer la variable de sortie:

    min

    bi

    aij

    aij > 0

    .

    5. Effectuer un pivot et dterminer une nouvelle solution de base ralisable. Retour ltape 2.

    Exemple 12 (Production). Une entreprise fabrique quatre produits. La fabrication de chaque produit ncessite unecertaine quantit de ressources. Les ressources consommes, les stocks des ressources et les bnfices des produitssont rcapituls dans la Table 2.3. Nous souhaitons tablir un plan de production de faon maximiser le chiffre

    Produit 1 2 3 4 Stock

    Ressource A 2 4 5 7 42Ressource B 1 1 2 2 17Ressource C 1 2 3 3 24

    Profit 7 9 18 17 -

    Table 2.3 Donnes de production

    daffaires.Soient x1, x2, x3 etx4 les quantits respectives de produits 1, 2, 3, 4. Nous avons le problme de programmation

    linaire sous forme standard

    max z = 7x1 + 9x2 + 18x3 + 17x4

    s.c. 2x1 + 4x2 + 5x3 + 7x4 42

    x1 + x2 + 2x3 + 2x4 17

    x1 + 2x2 + 3x3 + 3x4 24

    x1, x2, x3, x4 0.

    Introduisons trois variables dcart x5, x6, x7, qui mesurent pour chaque ressource lcart entre la quantit initiale-ment disponible et la quantit consomme par le plan de fabrication donn par les variables de dcision x1, x2, x3,

    x4:max z = 7x1 + 9x2 + 18x3 + 17x4

    s.c. 2x1 + 4x2 + 5x3 + 7x4 + x5 = 42

    x1 + x2 + 2x3 + 2x4 + x6 = 17

    x1 + 2x2 + 3x3 + 3x4 + x7 = 24

    x1, x2, x3, x4 0.

    Cette formulation permet dexprimer facilement les variables dcart comme fonctions affines des variables de dci-sion:

    x5 = 42 2x1 4x2 5x3 7x4

    x6 = 17 x1 x2 2x3 2x4x7 = 24 x1 2x2 3x3 3x4

    z = 7x1 + 9x2 + 18x3 + 17x4

    Le tableau ci-dessus est appel un dictionnaire. Les variables x5, x6, x7 sont les variables de base et x1, x2, x3,x4 sont des variables hors-base. La solution de base associe au dictionnaire est obtenue en donnant la valeur 0 toutes les variables hors-base. La solution basique correspondant au dictionnaire ci-dessus est donc

    (x1, x2, x3, x4, x5, x6, x7) = (0, 0, 0, 0, 42, 17, 24).

  • 7/30/2019 Modele de Recherche Operationnele

    28/113

    22 CHAPITRE 2. PROGRAMMATION LINAIRE

    Le bnfice correspondant est z = 0 ; on ne produit rien, on ne consomme aucune ressource et on ne gagne rien.Nanmoins, cest une solution ralisable, car elle satisfait toutes les contraintes.

    En partant de cette solution basique, nous cherchons amliorer le bnfice. Nous slectionnons la variablehors-base de cot rduit maximum, i.e. x3, et gardons les autres variables hors-base zro. Il est vident que sion fait crotre x3 partir de 0, les autres variables hors-base restant nulles, la valeur de la fonction z crot. Nouscherchons augmenter au plus la fonction objectif tout en gardant la solution reste ralisable. Les contraintes surlaugmentation de x3 sont:

    x5 0 42 5x3 0 x3 8.4

    x6 0 17 3x3 0 x3 8.5

    x7 0 24 3x3 0 x3 8.

    La plus restrictive de ces contraintes estx3 8. Linterprtation gomtrique est la suivante: en partant du sommet(0, 0, 0, 0) du polydre des contraintes, nous nous dplaons sur une arte de ce polydre. Le premier hyperplanrencontr est x7 = 0. Nous arrivons alors dans un nouveau sommet, lintersection des hyperplans x1 = 0, x2 = 0,x4 = 0, x7 = 0.

    Nous allons faire un changement de dictionnaire, i.e. un pivot, en changeant les rles dex3 etx7. Nous utilisonsla troisime quation du premier dictionnaire pour exprimer x3 en fonction de x1, x2, x4 et x7:

    x3 = 8

    1

    3 x1

    2

    3 x2 x4

    1

    3 x7.

    Nous remplaons ensuite x3 par cette expression dans les autres quations du dictionnaire:

    x5 = 2 1

    3x1

    2

    3x2 +

    5

    3x7 2x4

    x6 = 1 1

    3x1 +

    1

    3x2 +

    2

    3x7

    x3 = 8 1

    3x1

    2

    3x2

    1

    3x7 x4

    z = 144 + x1 3x2 6x7 x4.

    La variablex7 est sortie de la base et la variable x7 est entre dans la base. La nouvelle base est par consquent x5,

    x6, x3. La solution basique associe au nouveau dictionnaire est x1 = x2 = x7 = x4 = 0, x5 = 2, x6 = 1, x3 = 8.Elle correspond au sommet de coordonnes (0, 0, 8, 0) du polydre de contraintes. Cette solution dfinit un plan deproduction beaucoup plus intressant: nous fabriquons 8 units du produit 3 (x3 = 8) en consommant entirementla ressource C (x7 = 0). Il nous restex5 = 2 units de la ressource A et x6 = 1 unit de B. Le bnfice est z = 144.

    Dans la nouvelle expression de la fonction z, nous voyons que seule la variable x1 a un coefficient positif. Nousdcidons de faire entrer x1 en base, et ainsi de parcourir une nouvelle arte du polydre des contraintes. Nous avonsles limites suivantes sur laugmentation de x1:

    x5 0 x1 6x6 0 x1 3x3 0 x1 24

    dox1 3 Nous faisons sortir x6 de la base faisons entrer x1 sa place. Nous obtenons le dictionnaire suivant:

    x5 = 1 + x6 x2 + x7 2x4

    x1 = 3 3x6 + x2 + 2x7

    x3 = 7 + x6 x2 x7 x4

    z = 147 3x6 2x2 4x7 x4.

    La solution de base associe est x6 = x2 = x7 = x4 = 0, x5 = 1, x1 = 3, x3 = 7, correspond au sommet (3, 0, 7, 0)du polydre des contraintes. Elle dfinit le plan de production suivant: nous fabriquons 3 units du produit 1 et 7units du produit 3. Il ne nous reste quune unit de la ressource A. Le bnfice est z = 147. De plus, tous les cotsrduits sont ngatifs, aussi la solution est optimale.

  • 7/30/2019 Modele de Recherche Operationnele

    29/113

    2.5. LA MTHODE DU SIMPLEXE 23

    2.5.4 Adaptation dautres formes de modles

    Tout modle de programmation linaire peut se ramener la forme suivante:

    maxnj=1

    cjxj

    s.c.n

    j=1

    aijxj + xn+i = bi, i = 1, 2, . . . , m

    xj 0, j = 1, 2, . . . , n ,

    xn+i 0, i = 1, 2, . . . , m .

    Nous supposons de plus que bi est positif, i = 1, 2, . . . , m. Sous cette forme, il est facile dinitialiser la mthodedu simplexe en ajoutant des variables dcart, et en les prenant comme variables de base. Cela revient de plus considrer lorigine comme solution initiale, et il est facile deffectuer les oprations de pivot. Le situation secomplique avec dautres formes fonctionnelles pour les contraintes, en particulier dans la recherche dune solutionde base initiale.

    Transformation du min au max

    Supposons que nous devions minimiser lobjectif au lieu de le maximiser. Nous utilisons la proprit

    minnj=1

    cjxj = max nj=1

    cjxj .

    Nous rsolvons le problme de maximisation en changeant les signes des coefficients dans lobjectif. La valeuroptimale du problme de minimisation est loppos de celle du problme de maximisation.

    Transformation des ingalits en galits

    Sin

    j=1 aijxj bi, il y a deux cas:

    1. bi 0: nous ajoutons une variable dcart positive xni :

    nj=1

    aijxj + xn+i = bi.

    2. bi < 0: nous multiplions lingalit par -1, pour se ramener au cas dvelopp ci-dessous.

    Sin

    j=1 aijxj bi, nous avons nouveau deux cas possibles:

    1. bi 0: nous multiplions lingalit par -1, pour se ramener au cas dvelopp prcdemment.

    2. bi > 0: nous soustrayons une variable de surplus positive x0i:

    nj=1

    aijxj x0i = bi.

    Nous nous ramenons alors au cas dajout de variables artificielles.

    2.5.5 Obtention dune base admissible initiale

    Ajout de variables artificielles

    Si

    j=1,...,n aijxj = bi et quaucune variable nest isole (une variable est isole si elle coefficient 1 dans cettequation et coefficient 0 dans les autres):

    1. nous ajoutons une variable artificielle xn+1 0, dont lunique but est de fournir une variable de base initialepour cette contrainte;

  • 7/30/2019 Modele de Recherche Operationnele

    30/113

    24 CHAPITRE 2. PROGRAMMATION LINAIRE

    2. nous lui associons un profil trs ngatif: M

    max

    j=1,...,n

    cjxj M xn+i

    s.c. . . .

    j=1,...,naijxj + xn+i = bi

    . . .

    Le seul but des variables artificielles est de pouvoir initialiser lalgorithme du simplexe en produisant une solutionde base ralisable initiale. Si le problme est ralisable, nous devrions avoir xn+i = 0. Deux mthodes peuvent treconsidres.

    1. La mthode du grandM consiste optimiser en utilisant une fonction objective forme de la fonction de cotinitiale et de la somme, trs fortement pnalise, des variables artificielles.

    2. La mthode deux phases se droule comme suit:

    Phase 1 Trouver une solution ralisable en minimisant la somme des variables artificielles.

    Phase 2 Optimiser en revenant la fonction de cot initial partir de la solution initiale trouve dans la

    phase 1.Exemple 13. Considrons le programme

    min z = 0.4x1 + 0.5x2

    s.c. 0.3x1 + 0.1x2 2.7

    0.5x1 + 0.5x2 = 6

    0.6x1 + 0.4x2 6

    x1 0, x2 0.

    Nous devons tout dabord transformer le systme de contraintes afin de pouvoir traiter un systme linaire:

    0.3x1 + 0.1x2 + xs1 = 2.70.5x1 + 0.5x2 = 6

    0.6x1 + 0.4x2 xs2 = 6

    xs1 0, xs2 0.

    En ajoutant les variables artificielles, nous obtenons

    0.3x1 + 0.1x2 + xs1 = 2.7

    0.5x1 + 0.5x2 + xa2 = 6

    0.6x1 + 0.4x2 xs2 + xa3 = 6

    xs1 0, xs2 0, xa2 0, xa3 0.

    Afin de dmarrer la mthode du simplexe, nous appliquons une des deux mthodes prcdentes. Mthode deuxphases:

    Phase 1 minimiser xa2 + xa3 jusqu obtenir une valeur optimale nulle (si le programme linaire une solutionralisable).

    Phase 2 minimiser0.4x1 + 0.5x2.

    Mthode du grand M:

    min0.4x1 + 0.5x2 + M xa2 + Mxa3

  • 7/30/2019 Modele de Recherche Operationnele

    31/113

    2.6. DUALIT 25

    2.5.6 Variables valeurs quelconques

    Si une variable xj peut prendre des valeurs ngatives, nous introduisons deux variables x+j 0 et x

    j 0. Nous

    posons alorsxj = x

    +j x

    j .

    Une autre possible, si xj Lj , o Lj est une constante ngative, consiste poser

    x+j = xj Lj 0.

    2.6 Dualit

    2.6.1 Motivation

    Exemple 14 (Wyndor Glass: dualit). Supposons quune compagnie partenaire de Wyndor Glass, appele DualGlass, aimerait louer du temps aux usines afin de fabriquer des lots de produits. Quel prix horaire pour chaqueusine devrait-elle demander de telle sorte que le rsultat soit quitable, soit aucun profit ni perte pour aucun desdeux partenaires ?

    Dnotons les nouvelles variables de dcision par yi, le prix de location horaire lusine i, et reprenons lesdonnes du problmes telles quexprim prcdemment dans la Table 2.1.

    Produit 1 Produit 2 Capacit de

    Temps de prod. (h) Temps de prod. (h) production (h)Usine 1 1 0 4Usine 2 0 2 12 Usine 3 3 2 18

    Dual Glass cherche a minimiser le prix total quelle devra payer pour le temps lou aux trois usines. Le prix totalpour chaque usine peut etre exprim comme

    temps de production maximum (h) prix

    pour louer du temps ($/h). Lobjectif est par consquent

    min w = 4y1 + 12y2 + 18y3.

    Les contraintes assurent que le prix total associ la fabrication dun lot de chaque produit ne doit pas tre infrieureau profit ($/lot) quen retire Wyndor Glass. Le prix total associ un produit peut tre exprim comme le tempsconsacr la production de chaque lot (h/lot) multipli par le prix pour louer du temps ($/h). La contrainte associeau produit 1 peut sexprimer comme

    y1 + 3y3 3.

    La contrainte associe au produit 2 est2y2 + 2y3 5.

    Nous obtenons ainsi le modle pour Dual Glass, appel modle dual:

    min w = 4y1 + 12y2 + 18y3

    s.c. y1 + 3y3 3

    2y2 + 2y3 5

    y1, y2, y3 0.

    Pour rappel, le modle pour Wyndor Glass, dit modle primal est

    max z = 3x1 + 5x2

    s.c. x1 4

    2x2 12

    3x1 + 2x2 18

  • 7/30/2019 Modele de Recherche Operationnele

    32/113

    26 CHAPITRE 2. PROGRAMMATION LINAIRE

    Rappelons que pour la solution de base optimale du problme Wyndor Glass, lobjectif scrit:

    z = 36 3

    2x4 x5.

    x4 et x5 sont les variables hors base et les coefficients 32 et 1 sont leurs cots rduits. Si on augmente la valeurdex4 de une unit, le profit diminue de 32 . x4 est galement la variable dcart associe la contrainte de ressourcepour lusine 2:

    2x2 + x4 = 12.Augmenter x4 dune unit signifie par consquent diminuer le terme de droite correspondant de 1. En effet, siWyndor Glass loue a Dual Glass une heure de temps de production lusine 2:

    la capacit lusine 2 diminue de 1 heure (diminution dune unit du terme de droite) ; la valeur de lobjectif diminue de 32 .

    Pour retrouver un profit total gal, il faudra donc demander un prix de 32 (1500$) pour chaque heure de temps loue lusine 2. De manire gnrale, la solution optimale du dual est donne par loppos des cots rduits des variablesdcart (aussi appels multiplicateurs optimaux, ou shadow prices en anglais). Dans notre exemple:

    y1 = 0, y2 =3

    2, y3 = 1.

    Le prix de la variable y1 est fix 0:

    Wyndor Glass nexige rien pour une heure loue lusine 1, ce qui se justifie par le fait quil lui reste dutemps de production non utilis (la variable dcart x3 est strictement positive). Un prix strictement positif ferait augmenter le profit, et la solution ne serait plus quitable.

    Les prix des autres variables est strictement positif: puisque le temps de production est utilis pleinement, louer une heure Dual Glass revient perdre une heure

    de production, donc rduire le profit total ; pour retrouver le mme profit, il faut exiger un prix gal au multiplicateur optimal, gal loppos du cot

    rduit.Nous pouvons constater des carts complmentaires: pour tout i, nous avons

    xn+i.yi = 0.

    Tout modle de programmation linaire possde un dual. A tout programme linaire sous forme standard

    max z = cTx

    s.c. Ax b,

    x 0,

    nous associons le programme dual

    min w = bTy

    s.c. ATy c,

    y 0,

    Nous obtenons ainsi un couple primal-dual, avec les relations suivantes entre les deux modles.

    Primal DualVariable ContrainteContrainte Variable

    max minProfit unitaire Terme de droite

    Terme de droite Cot unitaireLigne Colonne

    Colonne LigneContrainte Contrainte

  • 7/30/2019 Modele de Recherche Operationnele

    33/113

    2.6. DUALIT 27

    Si un modele de programmation linaire possde une solution optimale, il en est de mme pour son dual, et lesvaleurs optimales des deux modles sont gales.

    La solution optimale du dual correspond aux multiplicateurs optimaux. Nous pouvons les lire directement dansle tableau optimal du simplexe: ce sont les coefficients dans la ligne correspondant lobjectif. Le cot rduit(correspondant loppos du coefficient dans la ligne de lobjectif) mesure la variation de lobjectif entran parune augmentation dune unit de la valeur de la variable hors-base associe.

    2.6.2 Analyse de sensibilitEn gnral, le cot rduit dune variable hors-base indique le changement dans lobjectif apport par une

    augmentation dune unit de la valeur de cette variable. Pour les variables dcart, ce principe peut se formulerainsi: le cot rduit dune variable dcart hors-base indique le changement dans lobjectif apport par une diminutiondune unit du terme de droite associ. Ceci est un exemple danalyse de sensibilit: un paramtre (ici, un terme dedroite) est modifi et nous mesurons la sensibilit de la solution optimale ce changement.

    Nous pouvons aussi mesurer la sensibilit de la solution optimale un changement dun terme de droite ou duncoefficient dans lobjectif en resolvant nouveau le modle modifi.

    Exemple 15 (Wyndor Glass: sensibilit). Une analyse de sensibilit complte nous apprendrait ce qui suit. Les multiplicateurs optimaux (Shadow Prices) sont 0, 1500 et 1000. La capacit lusine 3 peut prendre nimporte quelle valeur entre 12h et 24h sans changer la solution optimale

    du dual. Le profit unitaire pour le produit 1 peut prendre nimporte quelle valeur entre 0 et 7500$ sans changer la

    solution optimale du primal.

    Exemple 16. Considrons un fermier cultivant trois types de plantes (mas, bl, coton), en utilisant des ressourcesde terre et de main doeuvre. Les revenus nets venant de la culture du mas, du bl et du coton sont de $109/acre,$90/acre et $115/acre, respectivement. Un acre de mas exige 6 heures de travail, un acre de bl, 4 heures, et unacre de coton, 8 heures. Le fermier a disposition 100 acres de terre et 500 heures de travail ; il souhaite maximiserle revenu net de ses plantations.

    Nous obtenons le programme mathmatique linaire

    max z = 109x1 + 90x2 + 115x3

    s.c. x1 + x2 + x3 100,

    6x1 + 4x2 + 8x3 500,x1, x2, x3 0,

    ce qui peut se traduire en GAMS comme suit:

    SETS

    Crop Crop production

    / Corn Corn production

    Wheat Wheat production

    Cotton Cotton production /

    Resource Elment de ressources utilises dans le modle

    / Land Land used by cropLabor Labord used by crop /;

    VARIABLES

    Profit Net income from crops;

    POSITIVE VARIABLES

    Production(Crop) Production by crop;

  • 7/30/2019 Modele de Recherche Operationnele

    34/113

    28 CHAPITRE 2. PROGRAMMATION LINAIRE

    SCALAR LandAvailable Total Land / 100 /;

    PARAMETER

    Revenue(Crop) Revenues from crop production

    / Corn 109

    Wheat 90

    Cotton 115 /

    ResourceAvailable(Resource) Resource availability

    / Land 100

    Labor 500 /;

    TABLE ResourceUse(Resource, Crop) Resource used in the model

    Corn Wheat Cotton

    Land 1 1 1

    Labor 6 4 8 ;

    EQUATIONS

    Objective Maximimze farm income

    ResourceEq(Resource) Resource Constraint;

    Objective..

    Profit =E= SUM(Crop, Revenue(Crop)*Production(Crop));

    ResourceEq(Resource)..

    SUM(Crop, ResourceUse(Resource,Crop)*Production(Crop))

    =L= ResourceAvailable(Resource);

    MODEL FarmIncome /ALL/;

    SOLVE FarmIncome USING LP MAXIMIZING Profit;

    Lexcution de GAMS sur ce fichier donne---- EQU ResourceEq Resource Constraint

    LOWER LEVEL UPPER MARGINAL

    Land -INF 100.000 100.000 52.000

    Labor -INF 500.000 500.000 9.500

    LOWER LEVEL UPPER MARGINAL

    ---- VAR Profit -INF 9950.000 +INF .

    Profit Net income from crops

    ---- VAR Production Production by crop

    LOWER LEVEL UPPER MARGINAL

    Corn . 50.000 +INF .

    Wheat . 50.000 +INF .

    Cotton . . +INF -13.000

  • 7/30/2019 Modele de Recherche Operationnele

    35/113

    2.7. NOTES 29

    La premire partie de cet extrait indique que les deux contraintes, sur la terre et la main doeuvre, sont actives:toutes les resources sont employes. Les variables duales optimales correspondantes peuvent par consquent trenon-nulles, et reprsentent la valeur marginale de ces contraintes (actives). Nous voyons en particulier ici que laterre a la plus grande valeur marginale.

    La seconde partie donnent les quantits de plantes cultives. Seuls le mas et le bl sont produits, mais pas lecoton. Le dual contient trois contraintes comme nous avons avons trois variables primales. Il est facile de vrifierque les deux premires contraintes sont actives, mais pas la troisime, mais dpasse la borne infrieure de 13 units.

    Nous pouvons otenir les valeurs des variables dcart avec la ligneOPTION SOLSLACK = 1;

    avant la commande SOLVE, ce qui dans cas confirme que les contraintes sont actives.

    LOWER SLACK UPPER MARGINAL

    Land -INF . 100.000 52.000

    Labor -INF . 500.000 9.500

    Si nous ajoutons la commande

    DISPLAY Profit.L, Production.L, ResourceEq.M, ResourceUse;

    nous obtenons en sortie:

    ---- 53 VARIABLE Profit.L = 9950.000 Net income from crops

    ---- 53 VARIABLE Production.L Production by crop

    Corn 50.000, Wheat 50.000

    ---- 53 EQUATION ResourceEq.M Resource Constraint

    Land 52.000, Labor 9.500

    ---- 53 PARAMETER ResourceUse Resource used in the model

    Corn Wheat Cotton

    Land 1.000 1.000 1.000

    Labor 6.000 4.000 8.000

    La syntaxe .L conduit obtenir les valeurs optimales des variables primales (ou de la solution) quand appliqu une variable, et la valeur du terme de gauche dune quation de contrainte, quand appliqu une contrainte. Lasyntaxe .M permet dobtenir le multiplicateur optimal associe une quation, si appliqu une quation. Dans lecas dune variable, il nous permet de connatre la valeur excdentaire pour la contrainte duale associe.

    2.7 Notes

    Ce chapitre se base essentiellement sur les notes de cours de Bernard Gendron, 2007. Lexemple 3 est tir deHillier et Lieberman [1], Section 3.1. Lexemple de production est d Stefan Balev.

  • 7/30/2019 Modele de Recherche Operationnele

    36/113

    30 CHAPITRE 2. PROGRAMMATION LINAIRE

  • 7/30/2019 Modele de Recherche Operationnele

    37/113

    Chapitre 3

    Programmation non linaire

    Nous pouvons gnraliser le programme linaire introduit au chapitre prcdent comme suit:

    maxx

    f(x1, . . . , xn)

    s.c.g1(x1, . . . , xn) b1,

    .

    ..gm(x1, . . . , xn) bm.

    Si f et gi, i = 1, . . . , m, sont linaires, nous retrouvons le programme linaire prcdemment introduit, mais ilnexiste pas de raison de se limiter de tels cas.

    En gnral, nous supposerons aussi que toutes ces fonctions sont deux fois drivables.

    3.1 Fonctions convexes et concaves

    Soient a et b deux points dans Rn. Le segment de droite joignant ces deux points est lensemble des points

    {x Rn | [0, 1] tel que x = a + (b a) = b + (1 )a}.

    Une fonction est convexe si tout point sur le segment de droite joignant f(a) et f(b) se trouve au-dessus du graphede f:

    f(b + (1 )a) f(b) + (1 )f(a), (3.1.1)

    pour toute paire de points (a, b). Si cette ingalit est stricte, la fonction f est dite strictement convexe. Enremplaant le sens de lingalit dans (3.1.1), la fonction f est dite concave:

    f(b + (1 )a) f(b) + (1 )f(a),

    pour toute paire (a, b). Si cette dernire ingalit est stricte, la fonction f est strictement concave. La Figure 3.1illustre une fonction strictement convexe et une fonction strictement concave.

    Tests de convexit et de concavit

    Supposons que f est une fonction deux fois drivable dune seule variable. Alors,

    1. f est convexe si et seulement si

    x,d2f(x)

    dx2 0;

    2. f est strictement convexe si

    x,d2f(x)

    dx2> 0;

    31

  • 7/30/2019 Modele de Recherche Operationnele

    38/113

    32 CHAPITRE 3. PROGRAMMATION NON LINAIRE

    x

    f(x)

    fonction convexe

    x

    f(x)

    fonction concave

    Figure 3.1 Fonctions convexe et concave

    3. f est concave si et seulement si

    x,

    d2f(x)

    dx2 0;

    4. f est strictement concave si

    x,d2f(x)

    dx2< 0.

    Supposons que f est une fonction deux drivable de deux variables. Dans ce cas, nous utilisons la Table 3.1comme conditions ncessaires.

    Convexe Strict. convexe Concave Strict. concave2f(x1,x2)

    x21

    0 > 0 0 < 02f(x1,x2)

    x22 0 > 0 0 < 02f(x1,x2)

    x21

    .2f(x2,x2)

    x22

    2f(x1,x2)x1x2

    2 0 > 0 0 > 0

    Table 3.1 Test de convexit et de concavit pour une fonction deux variables deux fois drivable

    Ces tests se gnralisent des fonctions de plus de deux variables en utilisant le Hessien (la matrice des drivessecondes). Deux rsultats supplmentaires sont utiles pour tester la convexit:

    une fonction qui sexprime comme la somme de fonctions convexes (concaves) est convexe (concave) ; loppos dune fonction concave est convexe et vice-versa.

    3.1.1 Ensembles convexesUn ensemble est convexe si, pour toute paire de points de lensemble, le segment de droite joignant ces points

    est contenu dans lensemble. Il est possible de dmontrer quun ensemble est convexe grce aux proprits suivantes: si f est convexe, alors {x | f(x) b} est convexe ; si f est concave, alors {x | f(x) b} est convexe ; lintersection densembles convexes est convexe.

    Exemple 17 (Wyndor Glass). Modifions lexemple Wyndor Glass en remplaant certaines contraintes par une

  • 7/30/2019 Modele de Recherche Operationnele

    39/113

    3.1. FONCTIONS CONVEXES ET CONCAVES 33

    contrainte non linaire.

    max z = 3x1 + 5x2

    s.c. x1 4

    9x21 + 5x22 216

    x1 0, x2 0.

    Le problme ainsi modifi peut se reprsenter comme sur la Figure 3.2. Remarquons que lobjectif est concave (car

    x1

    x2

    z = 36 = 3x1 + 5x2

    0 1 2 3 4 5 60

    1

    23

    4

    5

    6

    7

    8

    domaine

    ralisable

    (2, 6)

    Figure 3.2 exemple Wyndor Glass

    linaire) et que le domaine ralisable est convexe: cest un modle de programmation convexe. Dans le cas prsent,la solution optimale est sur la frontire du domaine ralisable, mais ne correspond pas un coin (lintersection de

    deux contraintes).Modifions encore lexemple Wyndor Glass, mais cette fois en remplaant lobjectif lineaire par une fonction non

    lineaire, comme illustr sur la Figure 3.3:

    max z = 126x1 9x21 + 182x2 13x

    22

    x1 4

    2x2 12

    3x1 + 2x2 18

    Nous pouvons nouveau remarquer que lobjectif est concave et que le domaine ralisable est convexe: cest aussiun modle de programmation convexe. Ici, la solution optimale (8/3, 5) est sur la frontire du domaine ralisable,

    mais ne correspond pas un point extrme du domaine ralisable.Considrons le mme exemple, mais avec une fonction objectif diffrente, tel que reprsent sur la Figure 3.4:

    max z = 54x1 9x21 + 78x2 13x

    22

    x1 4

    2x2 12

    3x1 + 2x2 18

    Il sagit nouveau dun modle de programmation convexe, avec comme solution optimale (3, 3), laquelle se trouve

  • 7/30/2019 Modele de Recherche Operationnele

    40/113

    34 CHAPITRE 3. PROGRAMMATION NON LINAIRE

    x1

    x2

    0 1 2 3 4 5 6 7 8 90

    1

    2

    3

    4

    5

    6

    7

    8

    9

    domaineralisable

    z = 907z = 857z = 807

    (8/3, 5)

    Figure 3.3 exemple Wyndor Glass - cas 2

    x1

    x2

    0 1 2 3 4 5 6 70

    1

    2

    3

    4

    5

    6

    7

    z = 189

    z = 162

    z = 117

    z = 198

    (3, 3)

    Figure 3.4 exemple Wyndor Glass - cas 3

  • 7/30/2019 Modele de Recherche Operationnele

    41/113

    3.2. ALGORITHMES 35

    lintrieur du domaine ralisable. La fonction objectif est la somme de deux fonctions dune seule variable. Si nousannulons les drives de chacune de ces fonctions, nous obtenons la solution unique (3, 3), qui se trouve lintrieurdu domaine ; cest donc ncessairement la solution optimale.

    Revenons sur la fonction objectif initiale, mais introduisons une contrainte non-linaire, qui dfinit un domaineralisable non-convexe, comme illustr sur la Figure 3.5:

    max z = 3x1 + 5x2

    s.c. x1 4x2 7

    8x1 x21 + 14x2 x

    22 49

    x1 0, x2 0.

    Le problme ainsi modifi peut se reprsenter comme sur la Figure 3.5. Dans ce modle de programmation non

    x1

    x2

    0 1 2 3 4 5 60

    1

    2

    3

    4

    5

    6

    7

    8

    domaineralisable

    z = 35 = 3x1 + 5x2

    z = 27 = 3x1 + 5x2

    (0.7) = maximum global

    (4.3) = maximum local

    Figure 3.5 exemple Wyndor Glass - cas 4

    convexe, nous remarquons la prsence de deux maxima locaux: x est unmaximum local si f(x) f(a) pour tout a ralisable suffisamment prs de a ; (4, 3) et (0, 7) sont des maxima locaux, mais x = (0, 7) est la maximum global: f(x) f(a) pour tout a

    ralisable.Les mthodes classiques de programmation non-linaire permettent didentifier un maximum local, mais pas nces-sairement le maximum global, alors quen programmation convexe, tout maximum local est global.

    3.2 Algorithmes

    3.2.1 Lalgorithme du simplexe dans le cas non-linaire

    Le succs de lalgorithme du simplexe en programmation linaire a naturellement motiv le dveloppement detechniques similaires pour loptimisation non-linaire. Une telle approche fut propose en par Nelder et Mead [5].Nanmoins, la notion de point extrme est beaucoup plus dlicate exploiter en non-linaire, en particulier enlabsence de contraintes. Il convient de construire un polyhdre artificielle, ce qui nest pas immdiat, et en pratique,la mthode souffre de labsence de garantie de convergence, except pour des fonctions convexes une variable [2].Nous pouvons mme observer une convergence vers un point non-stationnaire [4]. Un algorithme doptimisation

  • 7/30/2019 Modele de Recherche Operationnele

    42/113

    36 CHAPITRE 3. PROGRAMMATION NON LINAIRE

    sans garantie de convergence est appel heuristique.s Cette mthode est pourtant encore frquemment employe,en particulier par les ingnieurs. La fo