Vous êtes sur la page 1sur 125

Génie Réseaux et Télécommunication - ENSAK

Recherche Opérationnelle
Mathématiques pour l’Aide à la Décision


 max P rof it = f (quantité1 , . . . , quantitén , coût1 , . . . , coûtn )
Programmation 

h1 (quantité1 , . . . , quantitén ) ≤ capacité1



linéaire

..

 .
hn (quantité1 , . . . , quantitén ) ≤ capacitén





(quantité1 , . . . , quantitén ) ∈ Rn

Projet a au moins différence trop


oui aussi bon que Projet b ou criarde
Optimisation (concordance) (discordance)

multicritère

non performance du Projet b


moins
performance du Projet a

Pr. Khalid ISKAFI

2021-2022
Regarder ce cours
Table des matières

Table des figures IV

Motivation 1

I Programmation linéaire 6
1 Modélisation d’un programme linéaire 7
1.1 Formulation d’un programme linéaire . . . . . . . . . . . . . . . . . . . . 7
1.2 Problèmes classiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.1 Problème de production . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.2 Problème de transport . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.3 Problème de planification . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Généralisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 Programmation linéaire et Méthode de résolution graphique 12


2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Problème classique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 Résolution graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4 Formulation générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3 Algorithme du Simplexe en Méthode algébrique 21


3.1 Principe de l’algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Formes canoniques d’un programme linéaire . . . . . . . . . . . . . . . . 22
3.3 Notion de solution de base . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4 Initialisation de l’algorithme . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.5 Itération Simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.5.1 Choix de la direction . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.5.2 Choix de la variable sortante . . . . . . . . . . . . . . . . . . . . . 26
3.5.3 Calcul du nouveau sommet . . . . . . . . . . . . . . . . . . . . . . 27
3.5.4 Test d’optimalité . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5.5 Chemin suivi par l’algorithme du Simplexe . . . . . . . . . . . . . 29
3.6 Algorithme du Simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.7 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

I
Regarder ce cours
TABLE DES MATIÈRES K. ISKAFI

4 Algorithme du Simplexe en Tableaux 32


4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.2 Notion de tableau Simplexe . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3 Tableaux Simplexe et pivotage . . . . . . . . . . . . . . . . . . . . . . . . 33
4.4 Algorithme du Simplexe en tableaux . . . . . . . . . . . . . . . . . . . . 37
4.5 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

5 Questions sur l’algorithme du Simplexe 41


5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.2 Initialisation de l’algorithme . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.3 Détermination de la variable entrante . . . . . . . . . . . . . . . . . . . . 46
5.4 Détermination de la variable sortante . . . . . . . . . . . . . . . . . . . . 46
5.5 Arrêt après un nombre fini d’itérations . . . . . . . . . . . . . . . . . . . 48
5.6 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

6 Dualité en programmation linéaire 52


6.1 Programme linéaire dual . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.2 Théorème de dualité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.3 Analyse de sensibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.4 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

7 Analyse post-optimale 62
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
7.2 Variation par rapport au second membre . . . . . . . . . . . . . . . . . . 62
7.3 Variation des coefficients objectifs . . . . . . . . . . . . . . . . . . . . . . 66
7.4 Coût réduit des variables hors base . . . . . . . . . . . . . . . . . . . . . 68
7.5 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

8 Programmation en nombres entiers 72


8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
8.2 Formulation des problèmes mixtes . . . . . . . . . . . . . . . . . . . . . . 72
8.2.1 Problèmes avec coûts fixes . . . . . . . . . . . . . . . . . . . . . . 72
8.2.2 Problèmes avec contrainte logique . . . . . . . . . . . . . . . . . . 73
8.2.3 Mélange avec nombre limité d’ingrédients . . . . . . . . . . . . . . 74
8.2.4 Choix parmi un nombre discret de valeurs . . . . . . . . . . . . . 75
8.3 Méthode de branch and bound . . . . . . . . . . . . . . . . . . . . . . . . 76
8.4 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

II Optimisation multicritères 82
9 Aide à la décision multicritères 83
9.1 Méthodes multicritères . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
9.1.1 Définition du problème et Objet de la décision (action) . . . . . . 84
9.1.2 Analyse des conséquences et détermination des critères . . . . . . 85
9.1.3 Choix d’une méthode d’aide à la décision multicritère . . . . . . . 87
9.1.4 Performance des actions . . . . . . . . . . . . . . . . . . . . . . . 87
9.2 Agrégation des critères et l’analyse multicritère . . . . . . . . . . . . . . 88

II
Regarder ce cours
K. ISKAFI TABLE DES MATIÈRES

10 Méthodes ELECTRE 89
10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
10.2 Bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
10.3 Problématique de Choix : Electre I . . . . . . . . . . . . . . . . . . . . . 92
10.3.1 Electre I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
10.3.2 Electre Iv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
10.3.3 Electre Is . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
10.4 Problématique d’Affectation : Electre Tri . . . . . . . . . . . . . . . . . . 100
10.4.1 Trichotomie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
10.4.2 Electre TRI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
10.5 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

III
Table des figures

2.1 Ensemble de production. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15


2.2 Hyperfaces d’un polyèdre dans R3 . . . . . . . . . . . . . . . . . . . . . . 15
2.3 Droites d’isoprofit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.1 Programme linéaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.1 Chemin suivi par l’algorithme du Simplexe. . . . . . . . . . . . . . . . . . 36

5.1 Problème irréalisable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46


5.2 Solution non bornée. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

7.1 Analyse postoptimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64


7.2 Variation de capacité de l’atelier 3 . . . . . . . . . . . . . . . . . . . . . . 65
7.3 Analyse de sensibilité de c1 . . . . . . . . . . . . . . . . . . . . . . . . . . 67

8.1 Représentation d’un coût fixe . . . . . . . . . . . . . . . . . . . . . . . . 73


8.2 Représentation de la région réalisable. . . . . . . . . . . . . . . . . . . . . 76
8.3 Arbre de branch and bound. . . . . . . . . . . . . . . . . . . . . . . . . . 78

9.1 Processus de décision multicritère . . . . . . . . . . . . . . . . . . . . . . 84


9.2 Préférence d’actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

10.1 Notions de concordance et de discordance . . . . . . . . . . . . . . . . . . 90


10.2 Calcul de l’indice de concordance local . . . . . . . . . . . . . . . . . . . 90
10.3 Utilisation du veto flou dans un pseudo-critère . . . . . . . . . . . . . . . 91
10.4 Algorithme établissant les surclassements . . . . . . . . . . . . . . . . . . 93
10.5 Organigramme de la trichotomie de Moscarola et Roy . . . . . . . . . . . 101
10.6 Etablissement de la relation de surclassement . . . . . . . . . . . . . . . 104

IV
Motivation

La recherche opérationnelle peut être définie comme l’ensemble des méthodes et tech-
niques rationnelles orientées vers la recherche du meilleur choix dans la façon d’opérer en
vue d’aboutir au résultat visé ou au meilleur résultat possible.
Elle fait partie des "aides à la décision" dans la mesure où elle propose des modèles
conceptuels en vue d’analyser et de maitriser des situations complexes pour permettre
aux décideurs de comprendre, d’évaluer les enjeux et d’arbitrer ou de faire les choix les
plus efficaces.
Ce domaine fait largement appel au raisonnement mathématique (logique, algèbre,
probabilités, analyse des données) et à la modélisation des processus. Il est fortement lié
à l’ingénierie des systèmes, ainsi qu’au management du système d’information.

Historique
Dès le xviie siècle, des mathématiciens comme Christian Huygens ou Blaise Pascal
(problème des partis) tentent de résoudre des problèmes de décision dans l’incertain
avec l’espérance mathématique. D’autres, au xviiie et xixe siècle, résolvent des problèmes
combinatoires. Au début du xxe siècle, l’étude de la gestion de stock peut être considérée
comme étant à l’origine de la recherche opérationnelle moderne avec la formule du lot
économique (dite formule de Wilson) proposée par Harris en 1913.
Mais ce n’est qu’avec la Seconde Guerre mondiale que la pratique va s’organiser pour
la première fois et acquérir son nom. En 1940, Patrick Blackett est appelé par l’état-major
anglais à diriger la première équipe de recherche opérationnelle, pour résoudre certains
problèmes tels que l’implantation optimale de radars de surveillance ou la gestion des
convois d’approvisionnement. Le qualificatif "opérationnelle" vient du fait que la première
application d’un groupe de travail organisé dans cette discipline avait trait aux opérations
militaires. La dénomination est restée par la suite, même si le domaine militaire n’est plus
le principal champ d’application de cette discipline.
Après la guerre, les techniques se sont considérablement développées, grâce, notam-
ment, à l’explosion des capacités de calcul des ordinateurs. Les domaines d’application
se sont également multipliés.

Types de problèmes traités


La recherche opérationnelle peut aider le décideur lorsque celui-ci est confronté à un
problème combinatoire, aléatoire ou concurrentiel.
Un problème est dit combinatoire lorsqu’il comprend un grand nombre de solutions
admissibles parmi lesquelles on cherche une solution optimale ou proche de l’optimum.

1
Regarder ce cours
Motivation K. ISKAFI

Exemple typique : déterminer où installer 5 centres de distribution parmi 30 sites d’im-


plantation possibles, de sorte que les coûts de transport entre ces centres et les clients
soient minimums. Ce problème ne peut être résolu par une simple énumération des so-
lutions possibles par l’esprit humain, puisqu’il en existe 30 !/(5 !25 !)= 142 506. Si un
problème de cette taille peut être résolu par énumération par un ordinateur, les décideurs
sont régulièrement confrontés à des problèmes infiniment plus complexes, où le nombre de
solutions acceptables se compte en milliards de milliards (voir explosion combinatoire).
Un problème est dit aléatoire s’il consiste à trouver une solution optimale à un pro-
blème qui se pose en termes incertains. Exemple typique : connaissant la distribution
aléatoire du nombre de personnes entrant dans une administration communale en une
minute et la distribution aléatoire de la durée de traitement du cas d’une personne, dé-
terminer le nombre minimum de guichets à ouvrir pour qu’une personne ait moins de 5
% de chances de devoir attendre plus de 15 minutes.
Un problème est dit concurrentiel s’il consiste à trouver une solution optimale face à
un problème dont les termes dépendent de l’interrelation entre ses propres agissements
et ceux d’autres décideurs. Exemple typique : fixer une politique de prix de vente, sa-
chant que les résultats d’une telle politique dépendent de la politique que les concurrents
adopteront.

Applications pratiques
Les problèmes que la R.O. peut aider à résoudre sont soit stratégiques (on peut citer
le choix d’investir ou pas, le choix d’une implantation, le dimensionnement d’une flotte de
véhicules ou d’un parc immobilier. . . ) soit opérationnels (notamment l’ordonnancement,
la gestion de stock, l’affectation de moyens (humains ou matériels) à des tâches, les
prévisions de ventes. . . ).
La gestion de projets est une composante très importante de la communauté de re-
cherche opérationnelle. De nombreux travaux traitent de l’ordonnancement et de la ges-
tion de projets, mais aussi de logistique (tournées de véhicules, conditionnement. . . ), de
planification et de problèmes d’emploi du temps.
Dans le cadre de l’industrie manufacturière, la recherche opérationnelle permet notam-
ment de trouver des plans de productions (ordonnancement de production), de disposer
au mieux les machines dans un atelier, de diminuer le gaspillage des matières premières
(problèmes de découpe) ou de l’énergie ou bien encore d’optimiser le conditionnement et
la livraison des produits intermédiaires ou finis.
Dans le domaine de la finance, les problèmes d’investissement sont des problèmes
classiques de recherche opérationnelle. Ils consistent en général à maximiser le profit (ou
l’espérance de profit) obtenu à partir d’un montant donné en combinant au mieux les
différentes possibilités offertes à l’investisseur.
La recherche opérationnelle a aussi des applications dans le domaine de l’énergie. Elle
est couramment utilisée dans l’industrie pétrolière, principalement dans l’établissement
des plans de production, l’approvisionnement des bruts, l’utilisation des unités de raffi-
nage, et le choix des canaux de distribution les plus rentables. De même, les opérateurs
du marché de l’électricité font largement appel à la recherche opérationnelle tant pour
des problèmes stratégiques (par exemple des investissements sur le réseau) que pour des
questions plus opérationnelles (stabilité du réseau, prévisions. . . ).
Les applications dans le domaine de l’informatique sont très nombreuses elles aussi.

2
Regarder ce cours
K. ISKAFI Recherche Opérationnelle

On peut citer, entre autres, le choix de la localisation et du nombre de serveurs à mettre


en place, de la capacité de stockage, de la puissance de calcul et du débit du réseau, le
choix d’une architecture informatique (application centralisée / distribuée, traitements
en temps réel ou en différé, réseau maillé ou en étoile, etc.), et l’ordonnancement dans les
systèmes d’exploitation.

Implantation dans le monde des entreprises


Très peu d’entreprises emploient des chercheurs opérationnels pour aider le décideur à
résoudre ses problèmes. Lorsque de tels problèmes se posent, ils sont généralement soumis
à un gros cabinet de conseil ou au département de recherche opérationnelle d’une univer-
sité (bien que la tendance actuelle soit à l’externalisation de ces compétences universitaires
via de petites sociétés privées appelées spin-off, répondant mieux aux besoins du monde
industriel). Certains problèmes simples peuvent être résolus au sein même de l’entreprise,
la plupart des universités ayant intégré des cours d’introduction à la recherche opération-
nelle dans les programmes des ingénieurs, des mathématiciens, des informaticiens, des
contrôleurs de gestion et, moins souvent, des économistes.
Malgré son importance intrinsèque, la R.O. est encore peu utilisée dans le monde
industriel, soit à cause du manque d’(in)formation des décideurs, soit par le manque de
pertinence de l’outil ou sa difficulté de mise en oevre. Les principales craintes émises par
le décideur quant à l’application de modèles R.O. dans son entreprise sont :

• Une prise en compte limitée des facteurs


Pour les questions stratégiques, la réponse "pure et parfaite" d’une solution mathé-
matique semble rarement applicable de facto. Même si la recherche opérationnelle
intègre beaucoup de facteurs, si certains aspects sont relativement faciles à modé-
liser au sens mathématique du terme (le coût, la rentabilité, la distance, la durée,
la cadence, par exemple), d’autres éléments sont en revanche plus difficiles à mo-
déliser : contraintes légales, volonté commerciale de faire barrage à un concurrent,
importance des relations avec les élus, climat social, etc. Le poids de ces éléments
dans la décision est pourtant important, parfois déterminant.

• Un investissement important
L’outil mathématique lui-même exige un niveau élevé de connaissances mathéma-
tiques, une bonne aptitude à modéliser les problèmes et décrire les facteurs ; ces
contraintes sont consommatrices de temps et d’argent (que ce soit par dévelop-
pement interne, qui consomme des ressources ; ou par développement externe, qui
consomme de l’argent). Il est alors nécessaire de trouver un équilibre entre l’inves-
tissement nécessaire et les retombées prévues.

• Pour des événements peu fréquents


L’entreprise ne bénéficie pas de l’effet d’expérience : d’une fois sur l’autre, le pro-
blème concerne un service différent, ou les responsables ont changé entre deux
études. Il est donc difficile d’entretenir les compétences R.O. à l’intérieur de l’en-
treprise.

Le décideur devra prendre ces différents aspects en compte lorsqu’il décidera ou non de
mettre en oevre des modèles de recherche opérationnelle dans son entreprise.

3
Regarder ce cours
Motivation K. ISKAFI

Relations avec d’autres disciplines


La recherche opérationnelle se situe au carrefour de différentes sciences et technologies.
Par exemple, l’analyse économique est souvent nécessaire pour définir l’objectif à atteindre
ou pour identifier les contraintes d’un problème.
Elle est aussi liée à l’ingénierie des systèmes. Par rapport à celle-ci, le champ d’ap-
plication de la recherche opérationnelle est historiquement plus axé sur les événements
incertains et l’industrie, et ses méthodes plus particulièrement mathématiques.
La recherche opérationnelle utilise de nombreuses méthodes issues de théories mathé-
matiques diverses. En ce sens, une partie de la recherche opérationnelle peut être considé-
rée comme une branche des mathématiques appliquées. Les mathématiques, notamment
les statistiques, contribuent aussi à poser efficacement les termes d’un problème.
La théorie des graphes sert de support à la résolution d’un vaste échantillon de pro-
blèmes, notamment certains issus de l’algorithmique classique, tels que les problèmes de
plus court chemin, le problème du voyageur de commerce, les problèmes d’ordonnance-
ment de tâches, les problèmes de planning ou encore les problèmes d’optimisation de
flux.
Les progrès de l’informatique sont intimement liés à l’accroissement des applications
de la recherche opérationnelle. Une puissance de calcul importante est nécessaire à la
résolution de problèmes de grande taille. Cette puissance est cependant loin de constituer
une panacée : la théorie de la complexité des algorithmes nous apprend que certains pro-
blèmes ne peuvent pas être résolus de manière optimale dans un temps raisonnable, même
si l’on considère des ordinateurs un milliard de fois plus puissants que ceux d’aujourd’hui.
Plusieurs méthodes de résolution de problèmes sont issues de l’intelligence artificielle.
Alors que l’approche de l’intelligence artificielle est de proposer des méthodes de résolution
génériques, la recherche opérationnelle utilise ces méthodes en les spécialisant pour les
rendre plus efficaces à résoudre des classes plus restreintes de problèmes.
On peut aussi citer la théorie des jeux, bien connue des économistes, qui aide à résoudre
les problèmes concurrentiels.

Principales classes de méthodes


• Optimisation (ou programmation) linéaire et non linéaire
L’optimisation linéaire est très souvent utilisée pour résoudre des problèmes combi-
natoires. Elle permet de résoudre très efficacement les problèmes dans lesquels les
variables sont continues. Lorsqu’il y a des variables discrètes, optimisation linéaire
et méthodes arborescentes (voir ci-après) peuvent être combinées. L’optimisation
non linéaire peut aussi être utilisée. La possibilité d’utiliser des contraintes ou des
fonctions objectifs non linéaires offre une puissance de modélisation très importante,
mais les algorithmes de résolution des problèmes d’optimisation non linéaire sont
significativement moins efficaces que ceux de l’optimisation linéaire.

• Méthodes arborescentes
Les méthodes de type A ou branch and bound sont couramment utilisées pour
trouver la solution exacte d’un problème de recherche opérationnelle. Pour une
résolution efficace, un soin particulier est apporté au calcul de bornes supérieures ou
inférieures pour la valeur de la solution. La programmation par contraintes permet

4
Regarder ce cours
K. ISKAFI Recherche Opérationnelle

de mettre en oeuvre rapidement et efficacement de telles méthodes de recherche


arborescente. Plusieurs bibliothèques (logiciels) d’optimisation commerciales ou non
reposent sur cette approche (ILOG Solver, Chip, Mozart/Oz, FaCiLe). De nombreux
logiciels d’optimisation de problèmes réels utilisent ainsi cette technologie.

• Heuristiques et métaheuristiques
Lorsque la solution optimale ne peut être obtenue en un temps raisonnable, on a
souvent recours à des méthodes approchées de type heuristique ou métaheuristique.

• Théorie des graphes


Les problèmes d’ordonnancement sont résolus à l’aide des graphes.

• Optimisation multicritère
Il s’agit des méthodes et des calculs permettant de choisir la meilleure solution ou la
solution optimale parmi tout un ensemble de solutions dans l’objectif de résoudre des
problèmes d’Aide à la décision multicritère. Des méthodes telle que "ELECTRE 1 "
constituent une étape importante du processus de décision, qui suit celle d’iden-
tification et de définition du problème, et aboutissent au choix d’une ou plusieurs
solutions optimale(s) parmi un ensemble discret de solutions, via une procédure
de sélection. Elles permettent également de répondre aux problématiques de tri et
de rangement, par l’intermédiaire d’une procédure d’affectation et de classement
respectivement.

• Processus stochastiques
Les processus stochastiques concernent tous les problèmes aléatoires, en particulier
des problèmes de fiabilité (de systèmes, de composants électroniques. . . ) et l’opti-
malité de gestion des files d’attente.

• Simulation informatique
La simulation est souvent employée pour résoudre des problèmes de RO, notamment
dans le milieu non académique.

1. ELimination Et Choix Traduisant la REalité.

5
Première partie

Programmation linéaire

6
Chapitre 1

Modélisation d’un programme


linéaire

1.1 Formulation d’un programme linéaire


La formulation d’un programme linéaire est décrite en trois étapes :

1. Identifier les variables du problème à valeur non connues (variable de décision) et


les représenter sous forme symbolique (x1 , x2 , y1 , y2 , . . .) ;

2. Identifier les restrictions (les contraintes) du problème et les exprimer par un sys-
tème d’équations linéaires ;

3. Identifier l’objectif ou le critère de sélection et le représenter sous une forme linéaire


en fonction des variables de décision, puis spécifier si le critère de sélection est à
maximiser ou à minimiser.

1.2 Problèmes classiques


1.2.1 Problème de production
Un fabricant produit 2 types de yaourts à la fraise A et B à partir de Fraise, de Lait et
de Sucre. Chaque yaourt doit respecter les proportions suivantes de matières premières.

A B
Fraise 2 1
Lait 1 2
Sucre 0 1

On dispose de 800 Kg de Fraises, 700 Kg de Lait et 300 Kg de sucre. La vente de


1 Kg de yaourts A et B rapporte respectivement 40dh et 50dh. Le fabricant cherche à
maximiser son profit et donc modéliser le problème à partir de trois questions principales :

• Sur quelles quantités peut-on travailler ?


Variables : xA et xB ;

7
Regarder ce cours
CHAPITRE 1. MODÉLISATION D’UN PROGRAMME LINÉAIRE K. ISKAFI

• Que cherche-t-on à optimiser ?

max z = 40xA + 50xB

• Quelles sont les contraintes du problème ?

2xA + xB ≤ 800 (fraises)


xA + 2xB ≤ 700 (lait)
xB ≤ 300 (sucre)
xA , xB ≥0 (positivité)

Donc nous sommes amenés à résoudre le programme linéaire suivant

max 40xA + 50xB


2xA + xB ≤ 800
xA + 2xB ≤ 700
xB ≤ 300
xA , xB ≥0

1.2.2 Problème de transport


Approvisionner au moindre coût les clients à partir des usines.

Usines (i ∈ I ) Bordeaux Biarritz Toulouse


Productions (pi ) 25 15 20

Clients (j ∈ J) Pau Bayonne Bordeaux Libourne


Demandes (dj ) 20 12 9 14

Prix/unité (ci,j ) Pau Bayonne Bordeaux Libourne


Bordeaux 26 19 0 4
Biarritz 12 2 20 24
Toulouse 19 30 24 28

Pour résoudre ce problème de transport, on fixe

• Variables : xi,j : quantité transportée de i à j

• Objectif : XX
Minimiser ci,j xi,j
i∈I j∈J

• Contraintes :
xi,j ≤ pi ∀i ∈ I (Capacité de production)
P
j∈J
∀j ∈ J (Demandes à satisfaire)
P
xi,j = dj
i∈I
xi,j ≥ 0 ∀(i, j) ∈ I × J

8
Regarder ce cours
K. ISKAFI 1.3. GÉNÉRALISATION

1.2.3 Problème de planification


Planifier la production d’articles à moindre coût pour les 4 prochains mois à la donnée
de :

• Production maximale normale : 1200 articles / mois

• Production maximale en heure sup : 400 articles / mois

• Surcoût heures sup : 7 dhs / article

• Stockage : 3 dhs / article / mois

mois 1 mois 2 mois 3 mois 4


Demandes 900 1100 1700 1300

Pour la modélisation de ce problème, on détermine :

• Variables :
xt : production normale en période t = 1, . . . , 4
yt : production en heure sup en période t = 1, . . . , 4
st : stock en fin de période t = 1, . . . , 3

• Objectif :

4
X 3
X
Minimiser 7 yt + 3 st
t=1 t=1

• Contraintes :
x1 + y1 = 900 + s1
s1 + x2 + y2 = 1100 + s2
s2 + x3 + y3 = 1700 + s3
s3 + x4 + y4 = 1300
0 ≤ xt ≤ 1200, t = 1, . . . , 4
0 ≤ yt ≤ 400, t = 1, . . . , 4 . . .
st ≥ 0, t = 1, . . . , 3

1.3 Généralisation
Un problème général de programmation linéaire en forme canonique consiste à déter-
miner les réels x1 , x2 , . . . , xn qui maximisent (ou minimisent) une fonction linéaire
n
X
f (x1 , x2 , . . . , xn ) = ci x i
i=1

9
Regarder ce cours
CHAPITRE 1. MODÉLISATION D’UN PROGRAMME LINÉAIRE K. ISKAFI

et qui vérifie les égalités linéaires :


n

a1i xi ≤ b1
 P




 i=1

 n
a2i xi ≤ b2

 P


 i=1
..

 .
n


api xi ≤ bp

 P


i=1



x ≥0


i

où n et p sont des entiers naturels non nuls, aij , cj et bj sont des réels donnés, i ∈ I =
{1, . . . , p} , j ∈ J = {1, . . . , n} .

10
Regarder ce cours
K. ISKAFI 1.4. APPLICATIONS

1.4 Applications
Modéliser les problèmes suivants :

Exercice 1.1.

Une usine a pour objectif la maximisation de son profit en produisant deux produits A1
et A2 tout en respectant les contraintes imposées par les durées maximales du fonction-
nement de ses trois ateliers.
Le tableau suivant résume les contraintes de fonctionnement des ateliers et les marges
bénéficiaires

Produit 1 Produit 2 Capacité disponible


(heures/produit) (heures/produit) (heures/semaine)
Atelier 1 8 0 4
Atelier 2 0 2 12
Atelier 3 3 2 18
Marge 1$ 4$

Exercice 1.2.

Une aciérie produit des bandes et des rouleaux métalliques. Elle fonctionne 40 heures par
semaine. Les vitesses de production sont de 200 bandes par heure et de 140 rouleaux par
heure. Les bandes sont vendues 25 euros l’unité ; les rouleaux 30 euros l’unité. Le marché
est limité : il est impossible de vendre plus de 6000 bandes et 4000 rouleaux par semaine.

Exercice 1.3.

Une usine fabrique deux produits P1 et P2 à partir d’une matière première M :

Quantité utilisée par tonne Quantité disponible par jour


P1 P2
M 1 2 4
Profit par tonne 1 3

Le problème est de déterminer les quantités de chacun des deux types de produits à
fabriquer de manière à obtenir le plus grand profit possible, sachant que l’usine s’est
engagée à livrer 3 tonnes des deux produits à un client régulier et la production en P1
doit dépasser au moins d’une tonne celle de P2 .

11
Chapitre 2

Programmation linéaire et Méthode


de résolution graphique

2.1 Introduction

L’objectif de ce chapitre est double. Il s’agit, d’une part, de donner une introduction
à la formulation en modèles d’optimisation, et il s’agit d’autre part de présenter les
techniques de résolution de ces problèmes.
On parle de problème d’optimisation lorsqu’il faut maximiser ou minimiser une fonc-
tion sous contraintes. Par exemple, maximiser le bénéfice d’une entreprise sous les contraintes
de satisfaire la demande et de respecter la capacité de production.
Nous nous concentrerons sur les problèmes linéaires, c’est-à-dire les problèmes où la
fonction objectif et les contraintes sont purement linéaires. Lorsqu’il n’y a que deux va-
riables de décision, un problème linéaire peut être résolu de manière purement graphique.
C’est ce que nous verrons dans ce chapitre 1. Lorsqu’il y a un plus grand nombre de va-
riables, un algorithme mis en oeuvre sous la forme d’un programme informatique s’avère
nécessaire. Il s’agit de l’algorithme du Simplexe que nous verrons au chapitre 2. Nous al-
lons voir au chapitre 3 une autre façon de présenter les calculs algébrique de l’algorithme
du Simplexe. Il s’agit de la présentation du Simplexe en tableaux. Ensuite, nous verrons
au chapitre 4 les embûches que l’on peut rencontrer à chacune des étapes de l’algorithme.
Au chapitre 5, nous examinerons la notion de la dualité qui est un concept fondamental
en programmation linéaire et qui conduit à des résultats de grande portée théorique et
pratique (économie, gestion. . . ). Puis, on entame au chapitre 6 une des applications prin-
cipales de la dualité en programmation linéaire : l’analyse de la sensibilité de l’objectif
réalisé vis-à-vis d’une perturbation des paramètres ; on parle d’analyse post-optimale.
Lorsque les variables doivent prendre des valeurs entières, on parle de problèmes en
nombres entiers. On devrait à proprement parler de problèmes linéaires en nombres entiers
car on impose, en plus, aux contraintes et à la fonction objectif d’être linéaires. Nous
verrons au chapitre 7 une technique de résolution de ces problèmes : il s’agit de la méthode
de branch and bound.
Il est à remarquer que toutes ces méthodes de résolution étant mises en oeuvre dans
des logiciels commerciaux, il ne viendrait plus à l’idée de les programmer soi-même. Par
exemple, le solveur d’Excel dispose d’une implémentation de ces algorithmes.

12
Regarder ce cours
K. ISKAFI 2.2. PROBLÈME CLASSIQUE

2.2 Problème classique


Il s’agit d’une entreprise de fabrication de châssis qui envisage la production de deux
nouveaux modèles au moyen des capacités résiduelles de ses trois ateliers. Il s’agit respec-
tivement d’un châssis en aluminium et d’un châssis en bois. Le premier produit nécessite
le passage dans le premier atelier pour fabriquer le cadre en aluminium et dans le troi-
sième atelier où le verre est monté sur le châssis. Tandis que le second produit nécessite
le passage dans le deuxième atelier pour fabriquer le cadre en bois et dans le troisième
atelier où le verre est monté sur le châssis. Les marges unitaires, les temps de fabrication
de chacun des produits dans chacun des ateliers ainsi que les capacités hebdomadaires
résiduelles de ces ateliers sont donnés au tableau 2.1.
Produit 1 Produit 2 Capacité disponible
(heures/produit) (heures/produit) (heures/semaine)
Atelier 1 1 0 4
Atelier 2 0 2 12
Atelier 3 3 2 18
Marge 3 dh 5 dh —

Table 2.1 – Marges, temps d’usinage et capacités.

La question qui se pose est la suivante : "Combien faut-il produire de châssis de chaque
type par semaine pour maximiser le profit net ?"
La formulation d’un problème d’optimisation comporte toujours les trois étapes sui-
vantes :
1. choix des variables du modèle ;
2. formulation de l’objectif ;
3. formulation des contraintes.
La première étape consiste à choisir les variables du problème.
Definition 2.2.1. On appelle variable toute quantité utile à la résolution du problème
dont le modèle doit déterminer la valeur.
Cette définition permet de différencier les variables des paramètres, qui sont des don-
nées qui peuvent varier, par exemple d’une période à l’autre ou d’un scénario à l’autre. Ici
les quantités que le modèle doit déterminer sont les productions de châssis par semaine.
Notons donc :
x1 = nombre de châssis de type 1 produits par semaine,
x2 = nombre de châssis de type 2 produits par semaine.
La deuxième étape consiste à formuler mathématiquement l’objectif.
Definition 2.2.2. On appelle fonction objectif d’un problème d’optimisation le critère de
choix entre les diverses solutions possibles.
Ici l’entreprise désire maximiser son profit net. La marge étant de 3 pour le premier
type de châssis et de 5 pour le second, l’objectif s’exprime comme suit :
max z = 3x1 + 5x2 .
La troisième étape consiste à formuler les contraintes du problème.

13
Regarder ce cours
CHAPITRE 2. PROGRAMMATION LINÉAIRE ET MÉTHODE DE RÉSOLUTION GRAPHIQUE K. ISKAFI

Definition 2.2.3. On appelle contraintes du problème toutes les relations limitant le


choix des valeurs possibles des variables.
Ces relations peuvent être de simples bornes sur les variables. Par exemple, les quan-
tités produites ne peuvent être négatives. Mathématiquement :

x1 , x2 ≥ 0.

Elles peuvent être plus complexes comme les contrainte de capacité de production.
Le temps pour assembler 1 châssis de type 1 dans l’atelier 1 est de 1 heure où il reste 4
heures disponibles. D’où la contrainte de capacité de l’atelier 1 :

x1 ≤ 4.

Semblablement, on peut construire les contraintes de capacités des deux autres ateliers :

2x2 ≤ 12
3x1 + 2x2 ≤ 18

Il est alors très utile de reprendre sous une forme condensée la formulation complète
du problème. Ici, on obtient la formulation suivante :

max z = 3x1 + 5x2






x1 ≤ 4
2x2 ≤ 12




s.c.q. 3x1 + 2x2 ≤ 18 (2.2.1)
≥ 0




 x1
x2 ≥ 0

2.3 Résolution graphique


Comme annoncé dans l’introduction, dans le cas de deux variables de décision, un
problème linéaire peut être résolu de manière purement graphique en suivant le processus
en trois étapes qui suit.
La première étape de la résolution consiste à représenter graphiquement la région
réalisable.
Definition 2.3.1. On appelle région réalisable, l’ensemble des valeurs de variables de
décision qui satisfont toutes les contraintes.
Dans le cas de l’exemple, c’est l’ensemble des points (x1 , x2 ) satisfaisant les inégalités
de (2.2.1).
Graphiquement une inégalité telle que 3x1 + 2x2 ≤ 18 correspond à un demi-plan
limité par la droite obtenue en prenant l’inéquation à l’égalité (3x1 + 2x2 = 18). Lorsque
l’on fait l’intersection des cinq demi-plans correspondant aux cinq inégalités :




x1 ≤ 4 (1)
2x2 ≤ 12 (2)




3x1 + 2x2 ≤ 18 (3)
≥ 0 (4)




 x1
x2 ≥ 0 (5)

14
Regarder ce cours
K. ISKAFI 2.3. RÉSOLUTION GRAPHIQUE

on obtient le polygone hachuré à la figure 2.1. En économie, cet ensemble réalisable est
encore appelé l’ensemble de production.

Figure 2.1 – Ensemble de production.

Généralisation. La notion de polyèdre de Rn


Plus généralement, si on a n variables, on ne parle plus de polygone, mais bien de polyèdre.
En effet, la région de Rn correspondant aux solutions d’une inégalité linéaire du type
suivant :
ak1 x1 + ak2 x2 + . . . + akn xn ≤ bk
est un demi-espace fermé situé d’un côté de l’hyperplan de Rn d’équation :
ak1 x1 + ak2 x2 + . . . + akn xn = bk .
Definition 2.3.2. On appelle polyèdre de Rn l’ensemble des x ∈ Rn vérifiant un système
d’inéquations linéaires :
ak1 x1 + ak2 x2 + . . . + akn xn ≤ bk , k = 1, . . . , p.
A titre d’illustration, le polyèdre de R3 défini par les inégalités suivantes :
x 1 + x2 + x3 ≤ 1
x1 , x 2 , x 3 ≥ 0
est représenté à la figure 2.2 par le prisme OABC où O note l’origine des axes :

Figure 2.2 – Hyperfaces d’un polyèdre dans R3 .

15
Regarder ce cours
CHAPITRE 2. PROGRAMMATION LINÉAIRE ET MÉTHODE DE RÉSOLUTION GRAPHIQUE K. ISKAFI

Pour l’exemple de châssis, on voit clairement que le système est sous-déterminé. On va


devoir choisir entre ces différents plans de production. Pour ce faire, et c’est la deuxième
étape de la résolution, on va représenter graphiquement des lignes d’isovaleur de la
fonction objectif :
z = 3x1 + 5x2 .
En effet, on remarquera que l’expression de la fonction objectif fait intervenir trois va-
riables et ne peut donc être représentée que dans l’espace. Pour se ramener dans le plan,
on va considérer des valeurs successives de l’objectif :

z = k.

Ce qui correspond graphiquement à des droites parallèles

3x1 + 5x2 = k.

Les points d’une de ces droites sont donc le lieu de tous les points donnant la même
valeur du profit (d’où le nom de droite d’isovaleur de la fonction objectif). Ceci est fait à
la figure 2.3 où l’on a représenté z = 10, 20 et 36.

Figure 2.3 – Droites d’isoprofit.

Enfin, et c’est la troisième étape de la résolution, l’optimum sera déterminé


graphiquement comme le plan de production situé sur la droite d’isoprofit la plus élevée,
c’est-à-dire celle qui donne le profit le plus élevé. On voit à la figure 2.3 qu’il s’agit du
point
x∗ = (2, 6).
Justifions ce choix. Comme on maximise le profit on a intérêt à prendre la droite d’iso-
valeur la plus élevée possible. Bien sûr, il faut que le plan de production soit encore
réalisable : autrement dit, il faut se restreindre à la région réalisable. On a alors l’im-
portante remarque suivante :

16
Regarder ce cours
K. ISKAFI 2.3. RÉSOLUTION GRAPHIQUE

Observation 1 :
Pour maximiser l’objectif, il faut prendre la droite d’isovaleur de l’objectif qui touche
encore la région réalisable et qui donne la plus grande valeur à l’objectif.
Sur base de cet exemple, on tire une deuxième observation :
Observation 2 :
On constate que la solution optimale est à un sommet de la région réalisable.
On peut alors se demander si la solution optimale sera toujours à un sommet de la
région réalisable. En fait, lorsque la ligne d’iso-marge est parallèle à un côté du polygone,
on a que tout le côté du polygone est optimal. Par exemple, si l’objectif avait été z =
3x1 + 2x2 , tout le segment entre (2, 6) et (4, 3) aurait été optimum.
Observation 3 :
Même si tout un côté du polygone est optimal, on peut toujours choisir une solution
optimale correspondant à un sommet.
En conclusion, on peut voir qu’il suffit d’évaluer la valeur de l’objectif en chacun des
sommets pour déterminer l’optimum d’un problème linéaire.
Mais on peut aller plus loin encore pour limiter le nombre de sommets à examiner en
se basant sur la quatrième observation suivante.
Observation 4 :
Le long d’un côté du polygone, la valeur de l’objectif peut être soit constante, soit stricte-
ment croissante, soit strictement décroissante.
On peut donc suggérer l’algorithme suivant :

Algorithme 1.1 Principe de l’algorithme du Simplexe.

i) Choisir comme point de départ un sommet x∗ de la région réalisable.

ii) Déterminer les côtés passant par ce sommet x∗ . Trouver un côté le long duquel z
croît. S’il n’y en n’a pas, STOP : le x∗ courant est optimal.

iii) Déterminer le sommet y ∗ à l’autre bout du côté et poser x∗ = y ∗ . Retour en ii).

Nous allons voir au chapitre suivant comment généraliser cet algorithme au cas de
n
R : on obtient alors l’algorithme du Simplexe. Mais avant cela, généralisons la notion
de côté et de sommet et voyons la formulation générale d’un problème linéaire.

Généralisation. Notion de faces d’un polyèdre.


On peut également généraliser les notions de cotés et de sommet d’un polygone. Il s’agit,
en fait, de cas particuliers de la notion de face d’un polyèdre.

Definition 2.3.3. On appelle face d’un polyèdre l’ensemble des points appartenant au
polyèdre et qui vérifient un certain nombre de contraintes à l’égalité :

ak1 x1 + ak2 x2 + . . . + akn xn = bk , k ∈ I ⊂ {1, . . . , p}.

Suivant la dimension de l’ensemble obtenu, on a des noms particuliers.

Definition 2.3.4. Dans l’espace Rn , on appelle hyperface, une face de dimension n − 1,


arête, une face de dimension 1 et sommet, une face de dimension 0.

17
Regarder ce cours
CHAPITRE 2. PROGRAMMATION LINÉAIRE ET MÉTHODE DE RÉSOLUTION GRAPHIQUE K. ISKAFI

Reprenons l’exemple du polyèdre OABC ci-dessus. Le triangle ABC est l’ensemble


des points du polyèdre vérifiant une contrainte à l’égalité (x1 + x2 + x3 = 1). Il s’agit donc
d’une face. Elle est de dimension 2 et donc il s’agit d’une hyperface. La droite AB est
l’ensemble des points du polyèdre vérifiant 2 contraintes à l’égalité (x1 + x2 + x3 = 1 et
x3 = 0). Elle est de dimension 1 : il s’agit donc d’une arête. Le point C est l’intersection
de 3 (n = 3) hyperplans délimitants, il est de dimension 0 : c’est donc un sommet.

2.4 Formulation générale


Nous allons généraliser l’exemple introductif. Considérons qu’il y a n produits pos-
sibles (ici n = 2) nécessitant l’utilisation éventuelle de m ressources limitées (ici m = 3
ateliers de capacité limitée). Notons cj , l’accroissement du profit par unité de produit
j et bi , la quantité de ressource i disponible. Notons par aij la quantité de ressource i
consommée pour produire une unité de produit j. Les données numériques du problème
sont résumées au tableau 2.2.
Produit Capacité
Ressource
1 2 ... n disponible
1 a11 a12 . . . a1n b1
2 a21 a22 . . . a2n b2
.. .. ..
. . .
m am1 am2 ... amn bm
marge c1 c2 ... cn —

Table 2.2 – Données numériques du problème.

Un programme linéaire peut donc se formuler en général de la manière suivante.


On veut déterminer le point qui maximise un critère, fonction linéaire des variables de
décision, tout en respectant des contraintes, elles aussi fonctions linéaires des variables
de décision. On peut écrire :
max z = c1 x1 + c2 x2 + . . . + cn xn ,



 a11 x1 + a12 x2 . . . + a1n xn ≤ b1 ,
a21 x1 + a22 x2 . . . + a2n xn ≤ b2 ,




.. .. .. ..






 . . . .
am1 x1 + am2 x2 . . . + amn xn ≤ bm ,


s.c.q.


 x1 ≥ 0,
x2 ≥ 0,




..






 .
xn ≥ 0.

On a donc un problème à n variables et à m + n contraintes d’inégalité, les n dernières


étant celles de non négativité des variables.
Matriciellement, le problème peut s’écrire comme
max z = cT x,
(
Ax ≤ b,
s.c.q. (2.4.1)
x ≥ 0.

18
Regarder ce cours
K. ISKAFI 2.4. FORMULATION GÉNÉRALE


A matrice (m × n), b vecteur (m × 1)
avec .
c vecteur (n × 1), x vecteur (n × 1)

Definition 2.4.1. Tout point x vérifiant les contraintes de (2.4.1) est dit une solution
réalisable pour le problème linéaire.

Notons par S la région réalisable :

S = {x ∈ Rn | Ax ≤ b, x ≥ 0}.

Parmi ces solutions réalisables, celles qui maximisent l’objectif sont appelées solutions
optimales.

Definition 2.4.2. Tout point x∗ ∈ S et tel que

∀x ∈ S, cT x∗ ≥ cT x,

est dit une solution optimale pour le problème linéaire (2.4.1).

19
Regarder ce cours
CHAPITRE 2. PROGRAMMATION LINÉAIRE ET MÉTHODE DE RÉSOLUTION GRAPHIQUE K. ISKAFI

2.5 Applications
Exercice 2.1.

Résoudre les programmes linéaires suivants en utilisant la méthode graphique :

1. PL 1

max z = 4x1 + 3x2




 3x1 + 4x2 ≤ 12
s.c.q.  7x1 + 2x2 ≤ 14

x1 , x2 ≥ 0

2. PL 2

max z = 5x1 + 4x2


≤ 20


 x1 + x2
2x1 + x2 ≤ 35


s.c.q.


 3x1 − x2 ≥ 12
x1 , x2 ≥ 0

Exercice 2.2.

Pour les deux cas suivants, modéliser le problème puis le résoudre graphiquement :

1. Une usine a pour objectif la maximisation de son profit en produisant deux produits
A1 et A2 tout en respectant les contraintes imposées par les durées maximales du
fonctionnement de ses trois ateliers.
Le tableau suivant résume les contraintes de fonctionnement des ateliers et les
marges bénéficiaires

Produit 1 Produit 2 Capacité disponible


(heures/produit) (heures/produit) (heures/semaine)
Atelier 1 8 0 4
Atelier 2 0 2 12
Atelier 3 3 2 18
Marge 1$ 4$

2. Une aciérie produit des bandes et des rouleaux métalliques. Elle fonctionne 40
heures par semaine. Les vitesses de production sont de 200 bandes par heure et de
140 rouleaux par heure. Les bandes sont vendues 25 euros l’unité ; les rouleaux 30
euros l’unité. Le marché est limité : il est impossible de vendre plus de 6000 bandes
et 4000 rouleaux par semaine.

20
Chapitre 3

Algorithme du Simplexe en Méthode


algébrique

3.1 Principe de l’algorithme

L’algorithme du Simplexe permet de déterminer une solution optimale d’un pro-


gramme linéaire lorsqu’une telle solution existe. Dans le cas contraire, l’algorithme, lors
du passage par une phase préliminaire appelée phase I, détermine l’absence de solution
réalisable. Nous verrons la phase I au chapitre 4.

Rappelons la formulation de l’exemple introductif :

max z = 3x1 + 5x2






x1 ≤ 4
2x2 ≤ 12




s.c.q. 3x1 + 2x2 ≤ 18 (3.1.1)
≥ 0




 x1
x2 ≥ 0

dont la représentation graphique est donnée à la figure 3.1.

21
Regarder ce cours
CHAPITRE 3. ALGORITHME DU SIMPLEXE EN MÉTHODE ALGÉBRIQUE K. ISKAFI

Figure 3.1 – Programme linéaire.

Le principe de l’algorithme du Simplexe est de déterminer une solution optimale en


allant de sommet en sommet adjacent. Partant du point (0, 0), l’algorithme va déterminer
une arête le long de laquelle l’objectif s’accroît : par exemple, l’arête en direction de
(0, 6). Ensuite, on va aller jusqu’au bout de cette arête : c’est-à-dire au sommet (0, 6) ;
et le processus continue de manière itérative. On détermine une arête le long de laquelle
l’objectif s’accroît : l’arête en direction de (2, 6). On va jusqu’au bout de l’arête et, là,
on constate que tout mouvement, en arrière vers (0, 6) ou en avant vers (4, 3), conduit à
diminuer l’objectif. On est donc à l’optimum.
Nous allons maintenant voir comment effectuer ces mêmes opérations en utilisant
uniquement l’algèbre. C’est l’objet de l’algorithme du Simplexe.

3.2 Formes canoniques d’un programme linéaire


La forme canonique d’un programme linéaire dans l’espace des variables originales
avait été vue au chapitre 1. Elle correspond à la forme matricielle suivante :

max z = cT x,
(
Ax ≤ b,
s.c.q.
x ≥0

A matrice (m × n), b vecteur (m × 1)
avec
cvecteur (n × 1), x vecteur (n × 1).
Il s’agit d’un problème avec n variables et m + n contraintes d’inégalité. Cependant,
parmi ces dernières, il y a m contraintes qui peuvent être des contraintes d’inégalité
générales et n qui ne sont que des contraintes de positivité des variables.
Observons qu’il est toujours possible de transformer une contrainte d’inégalité générale
en une contrainte d’égalité par ajout d’une variable à laquelle on impose d’être positive

22
Regarder ce cours
K. ISKAFI 3.2. FORMES CANONIQUES D’UN PROGRAMME LINÉAIRE

(non négative). Considérons, par exemple, la contrainte

3x1 + 2x2 ≤ 18.

Imposer que le membre de gauche soit inférieur ou égal au membre de droite, revient à
dire qu’il faudrait ajouter une quantité non négative au membre de gauche pour qu’il y
ait égalité :
3x1 + 2x2 + x3 = 18,
avec la condition que la variable x3 soit positive

x3 ≥ 0.

Cette quantité représente un déficit ou un écart. Comme cet écart peut varier, on l’appelle
variable d’écart.

Definition 3.2.1. La variable d’écart est la quantité qui, ajoutée au membre de gauche
d’une contrainte, permet de transformer la contrainte en égalité.

Bien que dans la forme canonique on ne considère que des contraintes d’inégalités
générales du type inférieur ou égal, on peut aussi envisager de transformer des contraintes
générales du type supérieur ou égal en égalité. Lorsqu’on impose

2x1 + x2 ≥ 4,

on impose que le membre de gauche dépasse le membre de droite. Il y a donc aussi un


écart qui s’avère cette fois être un surplus. Pour revenir à l’égalité, il faut retrancher une
quantité non négative du membre de gauche :

2x1 + x2 − x3 = 4,

avec x3 ≥ 0.
Appliquons ceci au problème (3.1.1). On obtient le problème sous forme standard avec
égalités suivant :

max z = 3x1 + 5x2




 x1 +x3 = 4
2x2 +x4 = 12


s.c.q. (3.2.1)


 3x1 +2x2 +x5 = 18
x1 , x2 , x3 , x4 , x5 ≥ 0

Remarquons qu’il y a équivalence totale entre les deux formes. En effet, d’une part,
toute solution réalisable du problème (3.1.1) peut être augmentée en une solution réa-
lisable pour le problème (3.2.1). Toute solution réalisable du problème (3.2.1) peut être
tronquée en une solution réalisable pour le problème (3.1.1). Comme, d’autre part, les
fonctions objectifs sont identiques, on a bien équivalence entre les deux problèmes.
Illustrons cette correspondance entre solutions : à la solution (3, 2) du problème (3.1.1)
correspond la solution augmentée (3, 2, 1, 8, 5) du problème (3.2.1). Dans l’autre sens, il
suffit de tronquer la solution dans R5 en ne retenant que ses deux premières composantes.

23
Regarder ce cours
CHAPITRE 3. ALGORITHME DU SIMPLEXE EN MÉTHODE ALGÉBRIQUE K. ISKAFI

3.3 Notion de solution de base


On remarquera que les égalités du problème (3.2.1) forment un système de m = 3
égalités en n + m = 2 + 3 = 5 inconnues. Donc la valeur de n = 2 variables peut être
fixée arbitrairement. Par exemple, dans le système d’égalités :


 x1 +x3 = 4
2x2 +x4 = 12 (3.3.1)


3x1 +2x2 +x5 = 18
les deux variables x1 et x2 peuvent être fixées à zéro. On dit qu’elles sont mises hors base.
Definition 3.3.1. On appelle variables hors base (v.h.b.) les n variables de Rn+m fixées
à zéro. Les m variables restantes sont appelées variables de base (v.b.).
Dans l’exemple, les variables de base sont donc x3 , x4 et x5 dont on peut lire la valeur
dans (3.3.1) :
x3 = 4
x4 = 12
x5 = 18
Definition 3.3.2. On appelle solution de base une solution où en ayant choisi n variables
hors base, on obtient une solution unique en résolvant les m contraintes d’égalités obtenues
en ajoutant les variables d’écart.
Definition 3.3.3. On appelle solution de base réalisable une solution de base qui, en
plus, vérifie les contraintes de positivité.
Dans l’exemple, la solution de base suivante :
x1 = 0, x2 = 0 variables hors base
x3 = 4, x4 = 12, x5 = 18 variables de base
est réalisable car toutes les variables de base sont positives.
Le lien entre l’algèbre et la géométrie est alors donné par la propriété suivante.
Proposition 3.3.1. La notion géométrique de sommet du polygone correspond à la notion
algébrique de solution de base réalisable.
On peut vérifier cette propriété sur l’exemple. A la figure 3.1, les sommets (0, 0),
(0, 6), (2, 6), (4, 3), (4, 0) correspondent à des solutions de base réalisables tandis que les
points (0, 9), (4, 6) et (6, 0) correspondent à des solutions de base non réalisables. Cette
correspondance est établie au tableau 3.1 :

v.h.b. (x1 , x2 ) (x3 , x4 , x5 ) sommet ?


x1 , x2 (0, 0) (4, 12, 18) oui
x1 , x4 (0, 6) (4, 0, 6) oui
x1 , x5 (0, 9) (4, −6, 0) non
x4 , x5 (2, 6) (2, 0, 0) oui
x3 , x4 (4, 6) (0, 0, −6) non
x3 , x5 (4, 3) (0, 6, 0) oui
x2 , x3 (4, 0) (0, 6, 6) oui
x2 , x5 (6, 0) (−2, 12, 0) non

Table 3.1 – Correspondance entre solution de base réalisable et sommet.

24
Regarder ce cours
K. ISKAFI 3.4. INITIALISATION DE L’ALGORITHME

Nous avons déjà annoncé que l’algorithme du Simplexe consiste à aller de sommet en
sommet adjacent. Interprété algébriquement, cela revient à considérer un passage d’une
solution de base réalisable à une autre solution de base réalisable. La notion d’adjacence
doit être étendue aux solutions de base.
Definition 3.3.4. On appelle solutions de base adjacentes deux solutions de base dont
les variables de base sont les mêmes sauf une qui est de base dans la première base et
hors base dans la seconde.
Dans l’exemple, les deux solutions de base suivantes sont adjacentes :

x1 = 0, x1 = 0,
x2 = 0, x2 = 6,
x3 = 4, x3 = 4,
x4 = 12, x4 = 0,
x5 = 18, x5 =6

car elles ne diffèrent que par une seule variable hors base. Par contre les solutions sui-
vantes :
x1 = 0, x1 = 2,
x2 = 0, x2 = 6
ne sont pas adjacentes puisqu’elle diffèrent par plus d’une variable hors base. On peut le
vérifier à la figure 3.1.
Proposition 3.3.2. La notion géométrique de sommets adjacents correspond à la notion
algébrique de solutions de base réalisables adjacentes.

3.4 Initialisation de l’algorithme


La question qui se pose est : "Comment choisir le point de départ ?"
Si le problème est mis sous forme d’inégalités avec bi ≥ 0, i = 1, . . . n, il suffit de
prendre l’origine comme point de départ. Dans l’exemple, cela donne :

(x1 , x2 ) = (0, 0).

En termes algébriques, toutes les variables originales sont mises hors base. Automatique-
ment, dans le système d’égalités :


 x1 +x3 = 4
2x2 +x4 = 12


3x1 +2x2 +x5 = 18

on lit la valeur des variables de base :

x3 = 4
x4 = 12
x5 = 18

D’où la solution de base réalisable de départ :

(0, 0, 4, 12, 18).

25
Regarder ce cours
CHAPITRE 3. ALGORITHME DU SIMPLEXE EN MÉTHODE ALGÉBRIQUE K. ISKAFI

Remarquons que si un membre de droite avait été négatif ou si une contrainte avait été
sous forme d’égalité, on n’aurait pas pu démarrer ainsi. Ces embûches peuvent être levées
en passant par une phase préliminaire appelée phase I de l’algorithme du Simplexe (voir
chapitre 4).
Que vaut la fonction objectif pour cette première solution de base ?
z = 3x1 + 5x2 = 3 × 0 + 5 × 0 = 0,
c’est-à-dire une marge bénéficiaire nulle, ce qui n’est pas étonnant vu que cela correspond
à une production nulle des deux produits.

3.5 Itération Simplexe


Pour rappel, le principe de l’algorithme du Simplexe consiste à se déplacer de sommet
en sommet adjacent de façon à améliorer la fonction objectif. On va donc se déplacer à
partir de notre solution de base de départ vers une solution de base réalisable en suivant
une arête le long de laquelle l’objectif s’accroît.

3.5.1 Choix de la direction


La question qui se pose est alors : comment choisir la direction ? Remarquez qu’algé-
briquement, cette question se formule de manière équivalente par : quelle variable hors
base va entrer en base ?
Le critère de sélection de la variable entrante est de prendre la variable hors base qui
fournit le plus fort taux d’augmentation de la fonction objectif :
z = 3x1 + 5x2 .
Pour une augmentation unitaire de x1 , z augmente de 3. Pour une augmentation unitaire
de x2 , z augmente de 5.
Le critère de sélection de la variable entrante est donc le suivant : on choisit la variable
avec le coefficient objectif le plus élevé.
Remarquez que pour pouvoir appliquer ce critère simple (choisir la variable de co-
efficient objectif le plus élevé), la fonction objectif z doit être exprimée en fonction des
seules variables hors base.

3.5.2 Choix de la variable sortante


La question qui se pose est : quand s’arrêter le long de la direction ?
Géométriquement, on se dirige sur l’axe (ox2 ) et on s’arrête en (0, 6), à la première
contrainte rencontrée. Algébriquement, on constate qu’en ce point la variable d’écart x4
s’annule et aller au delà conduirait à la rendre négative. On va donc pousser x2 le plus
loin possible, tant que les variables de base restent non négatives.
Le critère de sélection de la variable sortante est donc le suivant : prendre comme
variable sortante la première variable de base à s’annuler.
En maintenant x1 hors base dans (3.3.1), on obtient la variation des variables de base
en fonction de x2 :
x3 = 4 ≥0
x4 = 12 − 2x2 ≥ 0
x5 = 18 − 2x2 ≥ 0

26
Regarder ce cours
K. ISKAFI 3.5. ITÉRATION SIMPLEXE

ou encore :
12
x2 ≤ =6
2
18
x2 ≤ =9
2

On en conclut que la variable sortante est x4 , c’est-à-dire la première qui s’annule


(pour x2 = 6).
De manière générale, on calcul le minimum du rapport du coefficient du membre de
droite sur le coefficient de la variable entrante dans la même ligne lorsque celui-ci est
positif. La variable sortante est celle dont on lit la valeur dans la ligne où ce minimum
se produit.

3.5.3 Calcul du nouveau sommet


La question qui se pose est : comment calculer la nouvelle solution de base ?
On va y répondre en utilisant la résolution de systèmes. Plus précisément, on va
calculer la nouvelle solution de base en explicitant le système (3.3.1) en fonction des
nouvelles variables de base.
Ceci peut être fait au moyen de deux types d’opérations qui ne modifient pas l’en-
semble des solutions d’un système d’équations :

1. Multiplier une égalité par une constante non nulle ;

2. Additionner un multiple d’une équation à une autre équation.

Appliquons ceci à l’exemple. Ajoutons au système de départ (3.3.1) en première ligne


la définition de la fonction objectif :

z −3x1 −5x2 = 0 (0)


x1 +x3 = 4 (1)
2x2 +x4 = 12 (2)
3x1 +2x2 +x5 = 18 (3)

Donc x2 remplace x4 comme variable de base. On veut donc expliciter x2 dans la contrainte
(2) en lieu et place de x4 . Pour ce faire, il faut :

1. Amener un 1 comme coefficient de x2 dans (2). Autrement dit, la nouvelle contrainte


notée (2’) est l’ancienne (2) multipliée par 1/2 :

1
(20 ) = (2) ×
2

2. Eliminer x2 des autres équations. Ceci en retranchant à la contrainte (3) la contrainte


(2) et en ajoutant à l’objectif (0) cinq fois la nouvelle contrainte (2’) :

(30 ) = (3) − (2)


(00 ) = (0) + 5 × (20 ).

27
Regarder ce cours
CHAPITRE 3. ALGORITHME DU SIMPLEXE EN MÉTHODE ALGÉBRIQUE K. ISKAFI

Le nouveau système est donc le suivant :

z −3x1 + 52 x4 = 30 (00 )
x1 +x3 = 4 (1)
x2 + 12 x4 = 6 (20 )
3x1 −x4 +x5 = 6 (30 )

où l’on peut lire directement (en se souvenant que x1 et x4 sont hors base donc nulles) :

z = 30
x3 =4
x2 =6
x5 = 6.

On en déduit la valeur de la nouvelle solution de base :

(x1 , x2 , x3 , x4 , x5 ) = (0, 6, 4, 0, 6)

qui donne la nouvelle valeur de l’objectif :

z = 30.

Remarquez que les opérations d’élimination de x2 des lignes autres que la deuxième
se font obligatoirement en retranchant à chacune de ces lignes un multiple de la deuxième
ligne. Toute autre opération détruirait les colonnes de la matrice identité dans le système
résultant comme on peut le constater en essayant, par exemple, de faire :

(30 ) = −1 × (3) + (2).

3.5.4 Test d’optimalité


La question qui se pose maintenant est la suivante : comment déterminer le fait d’être
optimum ?
Un sommet est optimal si tous les sommets adjacents donnent des valeurs inférieures
ou égales à la fonction objectif. Comment peut-on voir s’il existe encore un sommet
adjacent profitable ?
Pour répondre à cette question, nous allons utiliser la ligne de définition de l’objectif.
L’équation (00 ) se récrit :
5
z = 30 + 3x1 − x4 .
2
Comme x1 a un coefficient positif, il est intéressant de faire entrer x1 en base.
Le critère d’arrêt sera donc le suivant : la solution de base courante est optimale si tous
les coefficients objectif sont négatifs ou nuls lorsque z est exprimée en fonction des seules
variables hors base.
Effectuons donc la seconde itération de l’algorithme du Simplexe. Au vu de
5
z = 30 + 3x1 − x4 .
2
On sélectionne donc pour la variable entrante x1 . En effet, c’est la variable avec le plus
grand coefficient objectif, et d’ailleurs la seule possible.

28
Regarder ce cours
K. ISKAFI 3.5. ITÉRATION SIMPLEXE

Pour déterminer la variable sortante, étudions la variation des variables de base en


fonction d’une augmentation de x1 :
x 3 = 4 − x1
x2 = 6
x5 = 6 − 3x1 .
La variable sortante est x5 , c’est elle qui est la première à s’annuler (pour x1 = 2).
Pour calculer le nouveau sommet, on exprime le système en fonction des nouvelles
variables de base (x1 prend la place de x5 ) :
z + 32 x4 +x5 = 36
x3 + 13 x4 − 13 x5 = 2
x2 + 12 x4 = 6
x1 − 13 x4 + 13 x5 = 2
donnant la nouvelle solution de base réalisable :
(2, 6, 2, 0, 0).
Appliquons à nouveau le test d’optimalité. La ligne objectif s’écrit :
3
z = 36 − x4 − x5 .
2
Comme tous les coefficients objectifs sont négatifs, la solution courante
x∗1 = 2
x∗2 = 6
est optimale. Elle donne sa valeur maximale à l’objectif qui est de :
z ∗ = 36.
Nous verrons au chapitre suivant une autre façon de présenter les mêmes calculs. Il s’agit
de la présentation du Simplexe en tableaux.

3.5.5 Chemin suivi par l’algorithme du Simplexe


On peut suivre à la figure 3.1 le chemin emprunté par l’algorithme du Simplexe.
Partant du sommet (0, 0), la première itération consiste à aller au sommet (0, 6). La
second itération consiste à rejoindre le sommet (2, 6). La troisième itération consiste à
constater que l’on est à l’optimum.
Nous verrons au chapitre 4 les différents problèmes qui peuvent se produire lors de
l’exécution de l’algorithme du Simplexe. Ces problèmes peuvent se produire durant les
trois étapes de l’algorithme :
1. Initialisations. Pourra-t-on toujours trouver une solution de base de départ réali-
sable ?
2. Itérations. Pourra-t-on, à chaque itération, trouver une variable entrante ? Pourra-
t-on, à chaque itération, trouver une variable sortante ?
3. Terminaison. L’algorithme va-t-il converger en un nombre fini d’étapes ?
Mais avant cela donnons un résumé de l’algorithme du Simplexe.

29
Regarder ce cours
CHAPITRE 3. ALGORITHME DU SIMPLEXE EN MÉTHODE ALGÉBRIQUE K. ISKAFI

3.6 Algorithme du Simplexe


Terminons en donnant une description schématique de l’algorithme du Simplexe.

Pas 0. Initialisations.

• Ajouter les variables d’écart.

• Sélectionner les variables originales comme variables hors base.

Pas 1. Choix de la variable entrante.

• Choisir comme variable entrante la v.h.b. dont le coefficient objectif est le plus élevé
lorsque z est exprimée en fonction des seules v.h.b.

• Si, dans l’expression de z, tous les coefficients des v.h.b sont négatifs ou
nuls, alors stop. Le tableau courant décrit une solution optimale.

• Sinon, soit e l’indice de cette variable entrante.

Pas 2. Choix de la variable sortante.

• La variable sortante est la première à s’annuler : c’est celle pour laquelle le minimum
est atteint dans :
bs bi
= min .
ase i|aie>0 aie
où s désigne l’indice de la ligne correspondante.

Pas 3. Déterminer la nouvelle solution de base :

• Diviser tous les coefficients de la ligne s par ase .

• Eliminer xe des autres lignes par soustraction d’un multiple de la ligne s.

• Retour au Pas 1.

30
Regarder ce cours
K. ISKAFI 3.7. APPLICATIONS

3.7 Applications
Exercice 3.1.

Une usine fabrique deux produits P1 et P2 en utilisant un certain nombre de res-


sources : équipement, main d’oeuvre, matières premières. Ces besoins sont indiqués dans
le tableau ci-dessous. Par ailleurs, chaque ressource est disponible en quantité limitée :
Ressources P1 P2 Disponibilité
Equipement 3 9 81
Main d’Oeuvre 4 5 55
Matière Première 2 1 20
Les deux produits P1 et P2 rapportent à la vente respectivement des bénéfices de 6
dirhams et 4 dirhams par unité. On veut déterminer la quantité des produits P1 et P2 que
doit produire l’usine afin de maximiser le bénéfice total venant de la vente des 2 produits.

Exercice 3.2.

Une société produit de la peinture d’extérieur et d’intérieur à partir de deux produits


de base M1 et M2 :

Quantité utilisée par tonne Quantité disponible par jour


Extérieur Intérieur
M1 6 4 24
M2 1 2 6
Profit par tonne 5 4

Le problème est de déterminer les quantités de chacun des deux types de peintures à
produire de manière à obtenir le plus grand profit possible, sachant que la demande maxi-
male en peinture d’intérieur est de 2 tonnes/jour et la production en peinture d’intérieur
ne doit dépasser que d’une tonne celle d’extérieur.

Exercice 3.3.

Résoudre le problème suivant en utilisant l’algorithme du Simplexe :

max z = 20x1 + 16x2 + 12x3


≤ 400


 x1
2x1 + x2 + x3 ≤ 1000


s.c.q. 

 2x1 + 2x2 + x3 ≤ 1600
x1 , x2 , x3 ≥ 0

31
Chapitre 4

Algorithme du Simplexe en Tableaux

4.1 Introduction
Nous avons vu au chapitre précédent une présentation algébrique de l’algorithme du
Simplexe. Pour rappel, il s’agit, partant d’une solution de base (correspondant à un
sommet de la région réalisable), à chaque itération de

1. choisir comme variable entrante, celle de coefficient le plus élevé dans la ligne objectif
(ce qui correspond à choisir la direction assurant le plus grand taux d’accroissement
à la fonction objectif) ;

2. choisir comme variable sortante, la première variable de base à s’annuler (ce qui
correspond à la rencontre de la première contrainte dans la direction choisie) ;

3. faire le pivotage : la variable entrante prend la colonne de la variable sortante dans


le système d’équation, en ce compris dans l’expression de la fonction objectif.

Nous allons maintenant voir une autre façon de présenter les mêmes calculs. Il s’agit de
la présentation du Simplexe en tableaux.
Nous verrons au chapitre suivant les embûches que l’on peut rencontrer à chacune des
étapes de l’algorithme.
On effectue généralement les calculs sur le tableau des coefficients qui porte le nom de
tableau Simplexe. Mais il faut bien garder à l’esprit que ce tableau et les opérations que
l’on va y effectuer ne sont qu’une traduction des opérations sur le système d’équations
algébriques correspondantes.

4.2 Notion de tableau Simplexe


Definition 4.2.1. Un tableau Simplexe est constitué des coefficients des équations
algébriques sans le nom des variables. On aura donc :

1. les coefficients de la fonction objectif ;

2. les coefficients des variables dans le membre de gauche des contraintes ;

3. les coefficients du membre de droite

32
Regarder ce cours
K. ISKAFI 4.3. TABLEAUX SIMPLEXE ET PIVOTAGE

où l’on sépare les coefficients de l’objectif des contraintes d’une barre horizontale et les
coefficients du membre de gauche des contraintes des coefficients du membre de droite par
une barre verticale.

Reprenons l’exemple du chapitre 1. Sa formulation est reprise ci-dessous :

max z = 3x1 + 5x2






x1 ≤ 4
2x2 ≤ 12




s.c.q. 3x1 +2x2 ≤ 18
≥ 0




 x1
x2 ≥ 0.

Le système de départ :

z −3x1 −5x2 = 0
x1 +x3 = 4
2x2 +x4 = 12
3x1 +2x2 +x5 = 18

se met sous la forme du tableau suivant :


z x1 x2 x3 x4 x5
1 −3 −5 0 0 0 0
0 1 0 1 0 0 4
0 0 2 0 1 0 12
0 3 2 0 0 1 18

où l’on a ajouté au-dessus du tableau le nom des variables pour voir à quelle variable
correspond chaque colonne du tableau.
Plusieurs caractéristiques d’un tableau sont à remarquer.

• Tout d’abord les valeurs du membre de droite donnent les valeurs courantes des
variables de base.

• Ensuite la première ligne donne l’opposé des coefficients objectif.

• Enfin, le dernier coefficient dans la première ligne donne la valeur courante de


l’objectif.

• On identifie les variables de base à une colonne de coefficient de la matrice identité


et à un coefficient objectif nul.

On en déduit la solution courante :

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

4.3 Tableaux Simplexe et pivotage


A la première itération, on sélectionne comme variable entrante la variable x2 de
coefficient le plus négatif dans la ligne objectif. On indique ceci dans le tableau en

33
Regarder ce cours
CHAPITRE 4. ALGORITHME DU SIMPLEXE EN TABLEAUX K. ISKAFI

encadrant la colonne de la variable entrante que l’on appelle la colonne pivot :


z x1 x2 x3 x4 x5
1 −3 −5 0 0 0 0
0 1 0 1 0 0 4
0 0 2 0 1 0 12
0 3 2 0 0 1 18
On sélectionne la variable sortante comme étant la variable de base qui s’annule la pre-
mière. Comme nous l’avons vu au chapitre précédent, cela revient à calculer le minimum
du rapport du coefficient du membre de droite de chaque contrainte sur le coefficient
correspondant de la colonne pivot lorsque ce dernier est strictement positif :
12 18
 
min , = 6.
2 2
Dans le cas où le coefficient dans la colonne entrante est négatif ou nul, la ligne n’entre
pas en compte dans le calcul du minimum. Illustrons ceci sur un exemple. Supposons
que le coefficient de x2 dans la première contrainte soit −1 à la place de 0. L’équation
correspondante se récrit de manière équivalente comme suit :

x1 = 4 + x2 .

Quelle que soit la valeur de x2 > 0, la variable de base x1 reste positive.


La variable sortante est alors la variable de base dont la valeur se lit dans la ligne où
le minimum se produit : ici, il s’agit de la deuxième ligne et donc de la variable x4 . Il
suffit, dans le cas présent, de chercher la colonne identité dont le coefficient 1 est dans la
deuxième ligne. Elle correspond bien à la variable x4 .
On encadre alors la ligne où le minimum se produit. Cette ligne reçoit le nom de ligne
pivot :
z x1 x2 x3 x4 x5
1 −3 −5 0 0 0 0
0 1 0 1 0 0 4
0 0 2 0 1 0 12
0 3 2 0 0 1 18
Definition 4.3.1. On appelle élément pivot le coefficient situé à l’intersection de la
colonne pivot et de la ligne pivot.
C’est donc le centre de la croix ainsi formée par la ligne et la colonne pivot.
Le pas suivant de l’itération Simplexe consiste à déterminer le nouveau sommet : ceci
en exprimant x2 dans la deuxième équation en lieu et place de x4 . Remarquez que cela
revient à amener la colonne de x4 en lieu et place de celle de x2 . Ceci peut être fait par
deux types d’opérations :
1. Amener un coefficient 1 à la place du pivot en divisant la ligne pivot par le pivot :
z x1 x 2 x3 x4 x5
1 −3 −5 0 0 0 0
0 1 0 1 0 0 4
0 0 1 0 1/2 0 6
0 3 2 0 0 1 18

34
Regarder ce cours
K. ISKAFI 4.3. TABLEAUX SIMPLEXE ET PIVOTAGE

2. Eliminer x2 des autres équations en retranchant chaque fois un multiple de la nou-


velle ligne pivot :
z x1 x2 x3 x4 x5
1 −3 0 0 5/2 0 30
0 1 0 1 0 0 4
0 0 1 0 1/2 0 6
0 3 0 0 −1 1 6

Rappelons que l’on doit utiliser, dans cette seconde opération, un multiple de la ligne
pivot à l’exclusion de toute autre ligne sinon on détruirait la matrice identité.
La nouvelle solution de base et la nouvelle valeur de l’objectif sont respectivement :

(x1 , x2 , x3 , x4 , x5 ) = (0, 6, 4, 0, 6)
z = 30.

Effectuons maintenant la deuxième itération de l’algorithme du Simplexe. Le premier


pas de la deuxième itération consiste à déterminer la variable entrante. Il s’agit de x1 , la
variable de coefficient le plus négatif dans la ligne objectif. D’où la sélection de la colonne
pivot suivante :
z x1 x2 x3 x4 x5
1 −3 0 0 5/2 0 30
0 1 0 1 0 0 4
0 0 1 0 1/2 0 6
0 3 0 0 −1 1 6
Le second pas de l’itération consiste à déterminer la variable sortante. On calcul le
minimum du rapport des coefficients du membre de droite sur le coefficient correspondant
de la colonne entrante lorsque celui-ci est strictement positif :
4 6
 
min , = 2.
1 3
Le minimum se produit dans la dernière ligne où l’on lit la valeur de x5 qui sort donc de
base. On encadre la ligne pivot :

z x1 x2 x3 x4 x5
1 −3 0 0 5/2 0 30
0 1 0 1 0 0 4
0 0 1 0 1/2 0 6
0 3 0 0 −1 1 6

Le dernier pas de l’itération Simplexe consiste à déterminer la nouvelle solution de


base au moyen des deux types d’opérations élémentaires sur le tableau Simplexe :

1. Amener un 1 en position pivot ;

z x1 x2 x3 x4 x5
1 −3 0 0 5/2 0 30
0 1 0 1 0 0 4
0 0 1 0 1/2 0 6
0 1 0 0 −1/3 1/3 2

35
Regarder ce cours
CHAPITRE 4. ALGORITHME DU SIMPLEXE EN TABLEAUX K. ISKAFI

2. Eliminer x1 des autres contraintes.

Le résultat de ces deux types d’opérations est le suivant :

z x1 x2 x3 x4 x5
1 0 0 0 3/2 1 36
0 0 0 1 1/3 −1/3 2
0 0 1 0 1/2 0 6
0 1 0 0 −1/3 1/3 2

La nouvelle solution de base et la nouvelle valeur de l’objectif valent :

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

Si maintenant, on effectue par la troisième itération, on constate que lors du premier


pas de celle-ci, c’est-à-dire lors de la sélection de la variable entrante, il n’y a aucun
candidat. On arrête l’algorithme : la solution courante est optimale :

x∗1 = 2
x∗2 = 6
z ∗ = 36.

Le chemin suivi par l’algorithme du Simplexe est illustré à la figure II.1. Initialement,
on part de l’origine des axes, soit le point P0 = (0, 0). Au cours de

Figure 4.1 – Chemin suivi par l’algorithme du Simplexe.

la première itération, on suit l’axe des x2 en direction du point P1 = (0, 6). A la


deuxième itération, on se dirige horizontalement vers le sommet P2 = (2, 6). La troisième
itération constate l’optimalité du point P2 .

36
Regarder ce cours
K. ISKAFI 4.4. ALGORITHME DU SIMPLEXE EN TABLEAUX

Nous verrons au chapitre suivant les embûches que l’on peut rencontrer dans l’exé-
cution de l’algorithme du Simplexe. En effet, nous avons ici supposé que l’on pouvait
toujours trouver une solution de base de départ réalisable et qu’à chaque itération, il y
avait toujours une variable sortante de la base. Nous verrons au chapitre suivant comment
on peut démarrer l’algorithme si toutes les contraintes initiales ne se présentent pas sous
forme de contraintes d’inégalités du type "inférieur ou égal à" avec un membre de droite
positif. Nous examinerons également ce qu’il convient de faire si on ne trouve aucune
variable candidate à sortir de la base.
Mais avant cela, résumons l’algorithme du Simplexe en tableaux.

4.4 Algorithme du Simplexe en tableaux


Algorithme du Simplexe.
Pas 0. Initialisation : Pour démarrer l’algorithme,

1. Ajouter les variables d’écart aux contraintes d’inégalité.

2. Mettre les variables originales hors base et les variables d’écart en base.

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

Il en résulte le tableau de départ suivant :

z x1 x2 . . . xn xn+1 xn+2 . . . xn+m


1 −c1 −c2 · · · −cn 0 0 0 0
0 a11 a12 · · · a1n 1 0 ··· 0 b1
0 a21 a22 · · · a2n 0 1 ··· 0 b2
.. .. .. .. .. .. ... .. ..
. . . . . . . .
0 an1 an2 · · · ann 0 0 ··· 1 bn

Pas 1. Choix de la variable entrante : sélectionner comme variable entrante la variable


hors base avec le coefficient dans la ligne objectif le plus négatif, en se restreignant aux
variables à coefficient négatif.

Soit xe telle que − ce ≤ −cj , ∀j | − cj < 0.

Si une telle variable n’existe pas, stop : on a trouvé la solution optimale. Sinon, on entoure
la colonne correspondante qui est appelée colonne entrante.

z x1 x2 · · · xe · · · xn xn+1 xn+2 . . . xn+m


1 −c1 −c2 · · · ce · · · −cn 0 0 0 0
0 a11 a12 · · · a1e · · · a1n 1 0 ··· 0 b1
0 a21 a22 · · · a2e · · · a2n 0 1 ··· 0 b2
.. .. .. .. . ... .. .. .. .. .. ..
. . . . .. . . . . . .
0 an1 an2 · · · ane · · · ann 0 0 ··· 1 bn

Pas 2. Choix de la variable sortante : sélectionner comme variable sortante la pre-


mière variable de base à s’annuler. Pour cela, on calcule le minimum du rapport du

37
Regarder ce cours
CHAPITRE 4. ALGORITHME DU SIMPLEXE EN TABLEAUX K. ISKAFI

coefficient du membre de droite sur le coefficient de la variable entrante dans la même


ligne lorsque celui-ci est positif. Soit l la ligne où le minimum se produit :
( )
bl bi
= min | aie > 0 .
ale aie

La variable sortante est celle dont on lit la valeur dans la ligne où le minimum se produit.
Soit xs la variable de base dont on lit la valeur en ligne l. On entoure la ligne où le
minimum se produit. Il en résulte le tableau suivant :

z x1 x2 · · · xe · · · xn xn+1 xn+2 · · · xs · · · xn+m


1 −c1 −c2 · · · ce · · · −cn 0 0 ··· ··· 0 0
0 a11 a12 · · · a1e · · · a1n 1 0 ··· ··· 0 b1
0 a21 a22 · · · a2e · · · a2n 0 1 ··· ··· 0 b2
.. .. .. .. . .. .. .. .. .. .. ..
. . . . .. . . . . . ··· . .
...
0 al1 al2 · · · ale · · · aln 0 ··· 1 ··· 0 bl
.. .. .. .. .. . . .. .. ... ... .. ..
. . . . . . . . ··· ··· . .
0 an1 an2 · · · ane · · · ann 0 0 ··· ··· 0 1 bn

Pas 3. Pivotage : La variable entrante xe prend la place de la variable sortante xs dans


la base. Il faut

1. Exprimer la fonction objectif en fonction des nouvelles variables hors base.

2. Expliciter le système d’équations des contraintes en fonctions des nouvelles variables


de base.

Pour cela, pratiquement on doit

1. Amener un coefficient 1 au croisement de la colonne pivot et de la ligne pivot en


divisant celle-ci par le coefficient ale .

2. Amener des zéros dans le reste de la colonne pivote en ajoutant aux autres lignes
un multiple de la ligne où l’on a amené le 1.

Pas 4. Itérer : retour au Pas 1.

38
Regarder ce cours
K. ISKAFI 4.5. APPLICATIONS

4.5 Applications
Exercice 4.1.
Une entreprise spécialisée dans la fabrication de matériels informatiques, propose à
son catalogue d’ordinateurs des centaines de référence. Pour simplifier, on ne s’intéresse
ici qu’à deux types d’ordinateurs : le IM4 et le IM5 .
Chacun d’eux comporte un processeur - le même - mais les deux modèles diffèrent en
particulier par le nombre de barrettes mémoires. Plus précisément, le IM4 comporte 2
barrettes alors que le IM5 en comporte 6.
Le marché pour ces composants est tel qu’on ne peut espérer acheter auprès des
fournisseurs habituels plus de 10 000 processeurs pour le trimestre à venir et plus de 48
000 barrettes.
Une autre limitation risque d’intervenir sur la production. L’assemblage est caracté-
risé, en particulier, par une opération délicate, qui pour l’IM4 est de 3 minutes alors que
pour l’IM5 elle n’est que d’une minute ; on ne dispose a priori pour l’assemblage de ces
deux types de machines que de 24 000 minutes pour le trimestre à venir.
Enfin, compte tenu des conditions actuelles du marché, on peut espérer retirer un
profit de 400 euros sur l’IM4 et de 800 euros sur l’IM5 .
Le problème est de déterminer les quantités de chacun des deux types d’ordinateurs
à fabriquer de manière à obtenir le plus grand profit possible.
1. Résoudre le problème par la méthode graphique.
2. Résoudre le problème par l’algorithme du Simplexe en tableaux.
Exercice 4.2.
Une usine fabrique deux produits P1 et P2 en utilisant un certain nombre de res-
sources : équipement, main d’oeuvre, matières premières. Ces besoins sont indiqués dans
le tableau ci-dessous. Par ailleurs, chaque ressource est disponible en quantité limitée :
Ressources P1 P2 Disponibilité
Equipement 3 9 81
Main d’Oeuvre 4 5 55
Matière Première 2 1 20
Les deux produits P1 et P2 rapportent à la vente respectivement des bénéfices de 6
dirhams et 4 dirhams par unité. On veut déterminer la quantité des produits P1 et P2 que
doit produire l’usine afin de maximiser le bénéfice total venant de la vente des 2 produits.
1. Résoudre le problème par la méthode graphique.
2. Résoudre le problème par l’algorithme du Simplexe en tableaux.
Exercice 4.3.
Une société produit de la peinture d’extérieur et d’intérieur à partir de deux produits
de base M1 et M2 :
Quantité utilisée par tonne Quantité disponible par jour
Extérieur Intérieur
M1 6 4 24
M2 1 2 6
Profit par tonne 5 4

39
Regarder ce cours
CHAPITRE 4. ALGORITHME DU SIMPLEXE EN TABLEAUX K. ISKAFI

Le problème est de déterminer les quantités de chacun des deux types de peintures à
produire de manière à obtenir le plus grand profit possible, sachant que la demande maxi-
male en peinture d’intérieur est de 2 tonnes/jour et la production en peinture d’intérieur
ne doit dépasser que d’une tonne celle d’extérieur.

1. Résoudre le problème par la méthode graphique.

2. Résoudre le problème par l’algorithme du Simplexe en tableaux.

Exercice 4.4.

Résoudre le problème suivant en utilisant l’algorithme du Simplexe en tableaux :

max z = 20x1 + 16x2 + 12x3


≤ 400


 x1
2x1 + x2 + x3 ≤ 1000


s.c.q.


 2x1 + 2x2 + x3 ≤ 1600
x1 , x2 , x3 ≥ 0

40
Chapitre 5

Questions sur l’algorithme du


Simplexe

5.1 Introduction
L’exemple considéré au chapitre 2 pour illustrer le fonctionnement de l’algorithme du
Simplexe ne montrait pas les embûches qui peuvent surgir à chaque étape de l’algorithme
du Simplexe :

(i) Initialisation : comment construire une solution de base réalisable ?

(ii) Chaque itération : pourra-t-on, à chaque itération, trouver une variable entrante et
une variable sortante ?

(iii) Terminaison : va-t-on arriver à une conclusion (solution optimale ou absence de


solution) en un nombre fini d’itérations ? Qu’est-ce qui nous garantit que l’on ne va
pas itérer à l’infini ?

Le premier point sera résolu en considérant un problème auxiliaire : le problème dit de


phase I. Ce problème sera lui-même résolu par l’application de l’algorithme du Simplexe.
En ce qui concerne les itérations, nous verrons que l’absence de variable entrante traduit
le fait que l’on est à l’optimum tandis que l’absence de variable sortante traduit le fait
que le problème est non borné. Enfin, concernant le troisième point, nous verrons que si
la fonction objectif croît strictement à chaque itération, la convergence est garantie.

5.2 Initialisation de l’algorithme


Les exemples de problèmes examinés jusqu’à présent n’ont pas posé de problème
d’initialisation car nous partions d’un problème où toutes les composantes du membre de
droite étaient non négatives. Supposons donc qu’il existe au moins un des coefficients du
membre de droite strictement négatif.
Le problème est double. D’une part, il n’est pas évident que le problème considéré
ait une solution réalisable. D’autre part, même dans le cas où une solution réalisable
existe, il n’est pas clair de savoir à quelle base elle se rapporte. On va répondre à ces deux
questions par la résolution d’un problème auxiliaire : le problème de phase I. Nous allons

41
Regarder ce cours
CHAPITRE 5. QUESTIONS SUR L’ALGORITHME DU SIMPLEXE K. ISKAFI

illustrer ceci sur le problème suivant :


max z = x1 − x2 + x3
2x1 −x2 +2x3 ≤ 4



−2x1 +3x2 −x3 ≥ 5


s.c.q.


 x1 −x2 +2x3 ≥ 1
x1 , x2 , x3 ≥ 0.

On peut se ramener à la forme avec égalités en multipliant les deux dernières inéqua-
tions par (−1) et en ajoutant les variables d’écart. On obtient la formulation sous forme
d’égalités suivante :
max z = x1 − x2 + x3
2x1 −x2 +2x3 +x4


 = 4
2x1 −3x2 +x3 +x5 = −5


s.c.q.


 −x1 +x2 −2x3 +x6 = −1
x1 , x2 , x3 , x4 , x5 , x6 ≥ 0.

Pour rendre le membre de droite non négatif, on va lui ajouter une quantité positive
x0 , ou ce qui revient au même, retrancher x0 au membre de gauche. On obtient le système
suivant : 
 2x1
 −x2 +2x3 +x4 −x0 = 4
2x1 −3x2 +x3 +x5 −x0 = −5
−x1 +x2 −2x3 +x6 −x0 = −1.

On voit qu’en donnant à x0 la valeur 5 et en la faisant passer dans le membre de droite,


on rend non négatives toutes les composantes du membre de droite. Il faudra cependant
éliminer cette variable artificielle si on veut déterminer une base de départ réalisable pour
le problème original. Puisqu’on veut se débarrasser de x0 , on va chercher à minimiser cette
variable, ou, ce qui revient au même, à maximiser son opposé. Notons par le symbole w,
la fonction objectif de sorte que l’on peut ajouter la ligne objectif suivante correspondant
à une maximisation :
max w = −x0 .
On obtient ainsi le problème dit de phase I de l’algorithme du Simplexe.
Notons que l’on se trouve, avec ce problème de phase I, toujours confronté au problème
de la construction d’une base de départ réalisable. Une opération de pivotage non standard
nous permet cependant de nous en tirer dans le cas présent. On forme une base de départ
non réalisable en prenant comme précédemment les variables d’écart en base. On fait
alors rentrer la variable artificielle x0 dans la base en l’échangeant avec la variable
de base la plus négative. Cette opération correspond précisément à donner à la variable
artificielle une valeur suffisante pour qu’elle rende toutes les composantes du membre de
droite non négatives.
On peut alors résoudre le problème auxiliaire par la méthode du Simplexe.
Les tableaux successifs seront les suivants :
Tableau de départ :
w x0 x1 x2 x3 x4 x5 x6
1 1 0 0 0 0 0 0 0
0 −1 2 −1 2 1 0 0 4
0 −1 2 −3 1 0 1 0 −5
0 −1 −1 1 −2 0 0 1 −1

42
Regarder ce cours
K. ISKAFI 5.2. INITIALISATION DE L’ALGORITHME

Première itération spéciale :


w x 0 x1 x2 x3 x4 x5 x6
1 0 2 −3 1 0 1 0 −5
0 0 0 2 1 1 −1 0 9
0 1 −2 3 −1 0 −1 0 5
0 0 −3 4 −3 0 −1 1 4
Deuxième itération : x2 entre, x6 sort :
w x0 x1 x2 x3 x4 x5 x6
1 0 −1/4 0 −5/4 0 1/4 3/4 −2
0 0 3/2 0 5/2 1 −1/2 −1/2 7
0 1 1/4 0 5/4 0 −1/4 −3/4 2
0 0 −3/4 1 −3/4 0 −1/4 1/4 1
Troisième itération : x3 entre, x0 sort :
w x0 x1 x2 x3 x4 x5 x6
1 1 0 0 0 0 0 0 0
0 −2 1 0 0 1 0 1 3
0 4/5 1/5 0 1 0 −1/5 −3/5 8/5
0 3/5 −3/5 1 0 0 −2/5 −1/5 11/5
Nous avons obtenu la solution optimale du problème auxiliaire. La valeur correspon-
dante de la fonction objectif est w = 0. Ce qui revient à dire que l’on a réussi à annuler la
variable artificielle. On a donc une solution de base réalisable pour le problème original.
On remarquera que le problème de phase I est toujours réalisable (par construction),
et qu’il est toujours borné. En effet, son objectif est de minimiser la variable artificielle qui
est astreinte à être non négative. Zéro est, dans ce cas, une borne inférieure sur la valeur
de la fonction objectif (à minimiser). Le problème de phase I a donc toujours une solution
optimale. Deux cas sont possibles quant à la valeur optimale de sa fonction objectif. Soit
elle est nulle et on a une solution de base réalisable du problème original, soit elle est non
nulle et le problème original n’est pas réalisable.
Lorsqu’on a obtenu une solution de base réalisable pour le problème original, on passe
à la phase II :
• en supprimant la variable artificielle x0 ;
• en reprenant comme fonction objectif la fonction objectif du problème origi-
nal ;
Appliquons ceci à l’exemple. Pour rappel, la fonction objectif originale était ici :
z = x 1 − x2 + x3 .
Les deux premières opérations donne le tableau de phase II suivant :
z x 1 x2 x3 x4 x5 x6
1 −1 1 −1 0 0 0 0
0 1 0 0 1 0 1 3
0 1/5 0 1 0 −1/5 −3/5 8/5
0 −3/5 1 0 0 −2/5 −1/5 11/5

43
Regarder ce cours
CHAPITRE 5. QUESTIONS SUR L’ALGORITHME DU SIMPLEXE K. ISKAFI

• en exprimant cette fonction objectif en fonction des seules variables hors base.
Cette troisième opération peut être effectuée en ajoutant à la ligne objectif la
deuxième contrainte et en retranchant la troisième. On obtient le tableau suivant
de départ de la phase II :
z x 1 x2 x3 x4 x5 x6
1 −1/5 0 0 0 1/5 −2/5 −3/5
0 1 0 0 1 0 1 3
0 1/5 0 1 0 −1/5 −3/5 8/5
0 −3/5 1 0 0 −2/5 −1/5 11/5
On peut alors procéder à la phase II car on dispose cette fois d’une base de départ
réalisable, x1 = x5 = x6 = 0, hors base, et x2 = 11
5
, x3 = 85 , x4 = 3 en base avec la valeur
correspondante de la fonction objectif z = − 53 . A la première itération de la phase II, x6
entre et x4 sort. On obtient le tableau suivant :
z x 1 x2 x3 x4 x5 x6
1 1/5 0 0 2/5 1/5 0 3/5
0 1 0 0 1 0 1 3
0 4/5 0 1 3/5 −1/5 0 17/5
0 −2/5 1 0 1/5 −2/5 0 14/5
La solution optimale vaut donc :
z∗ = 3/5
x∗1 =0
x∗2 = 14/5
x∗3 = 17/5

Exemple 2 : problème non réalisable. Soit le problème :


max z = 3x1 + x2
−x1 ≥


 +x2 1
x1 +x2 ≥ 3


s.c.q.
 2x1

 +x2 ≤ 2
x1 , x 2 ≥ 0.

Mettons le d’abord sous forme canonique avec inégalités du type ≤ :


max z = 3x1 + x2
−x2 ≤ −1


 x1
−x1 −x2 ≤ −3


s.c.q.
 2x1

 +x2 ≤ 2
x1 , x 2 ≥ 0.

Puis sous forme canonique avec variables d’écart :


max z = 3x1 + x2
x1 −x2 +x3 = −1



−x1 −x2 +x4 = −3


s.c.q.


 2x1 +x2 x5 = 2
x1 , x2 , x3 , x4 , x5 ≥ 0.

44
Regarder ce cours
K. ISKAFI 5.2. INITIALISATION DE L’ALGORITHME

Formons le tableau de départ de la phase I :

w x0 x 1 x2 x3 x4 x5
1 1 0 0 0 0 0 0
0 −1 1 −1 1 0 0 −1
0 −1 −1 −1 0 1 0 −3
0 −1 2 1 0 0 1 2

On effectue un premier pivotage non standard. La variable x0 remplace dans la base la


variable la plus négative, soit x4 . La suite des tableaux est la suivante :

w x 0 x1 x 2 x 3 x4 x5
1 0 −1 −1 0 1 0 −3
0 0 2 0 1 −1 0 2
0 1 1 1 0 −1 0 3
0 0 3 2 0 −1 1 5

A la première itération, la variable x1 entre et x3 sort de la base :

w x 0 x1 x2 x3 x4 x5
1 0 0 −1 1/2 1/2 0 −2
0 0 1 0 1/2 −1/2 0 1
0 1 0 1 −1/2 1/2 0 2
0 0 0 2 −3/2 1/2 1 2

A la deuxième itération, la variable x2 entre et x5 sort de la base :

w x 0 x1 x2 x3 x4 x5
1 0 0 0 −1/4 3/4 1/2 −1
0 0 1 0 1/2 −1/2 0 1
0 1 0 0 1/4 −3/4 −1/2 1
0 0 0 1 −3/4 1/4 1/2 1

A la troisième itération, la variable x3 entre et x1 sort de la base :

w x0 x1 x2 x3 x4 x5
1 0 1/2 0 0 1/2 1/2 −1/2
0 0 2 0 1 −1 0 2
0 1 −1/2 0 0 −1/2 −1/2 1/2
0 0 −3/2 1 0 −1/2 1/2 5/2

La phase I se termine sans que w = 0 (x0 est encore dans la base et vaut 1/2). Le
problème original n’est donc pas réalisable. En effet, les contraintes du problème sont
incompatibles. Ce verdict est confirmé par un examen de la figure 5.1.

45
Regarder ce cours
CHAPITRE 5. QUESTIONS SUR L’ALGORITHME DU SIMPLEXE K. ISKAFI

Figure 5.1 – Problème irréalisable.

5.3 Détermination de la variable entrante


La variable entrante doit être une variable hors base avec un coefficient c0j
négatif dans la ligne objectif du tableau courant. Si une telle variable n’existe pas, alors
le tableau courant décrit une solution optimale. En effet, la ligne objectif du tableau
courant peut s’écrire
c0j xj = z ∗ ,
X
z+
j∈N
où N dénote l’ensemble des indices des variables hors base. Ceci qui peut encore s’écrire
comme suit :
z = z∗ − c0j xj .
X

j∈N
La solution courante où xj = 0 pour tout j ∈ N donne la valeur z ∗ à la fonction objectif.
Si c0j ≥ 0 pour tout j ∈ N , alors toute solution réalisable où xj ≥ 0 pour tout j ∈ N
donne à la fonction objectif une valeur qui est au plus z ∗ . La solution courante est
par conséquent optimale.

5.4 Détermination de la variable sortante


La variable qui quitte la base est la première à bloquer l’augmentation de la
variable entrante. Cette règle est ambigue car elle peut donner lieu à plusieurs candidats
ou à aucun candidat. Ce dernier cas est illustré à la deuxième itération dans le problème
suivant :
max z = 2x1 + x2


 x1 −2x2 +x3 = 2
s.c.q. −2x1 +x2 +x4 = 2
x1 , x2 , x3 , x4 ≥ 0.

46
Regarder ce cours
K. ISKAFI 5.4. DÉTERMINATION DE LA VARIABLE SORTANTE

Le tableau de départ est :


z x1 x2 x3 x4
1 −2 −1 0 0 0
0 1 −2 1 0 2
0 −2 1 0 1 2
Première itération :
Au départ, x1 = x2 = 0 sont hors base et x3 = 2, x4 = 2 sont en base. On fait entrer x1
dans la base. Il n’y a que la variable de base x3 qui limite la croissance de x1 . La variable
x3 sort de la base lorsque x1 vaut 2.

z x1 x2 x3 x4
1 0 −5 2 0 4
0 1 −2 1 0 2
0 0 −3 2 1 6

Deuxième itération :
La variable x2 est seule candidate à l’entrée en base. Comme tous les coefficients de
la colonne x2 sont non positifs, aucune des variables de base n’est bloquante.
La variable x2 peut croître au delà de toute limite. On en conclut que le problème est
non borné. On peut le vérifier graphiquement. Le système de départ est le suivant :

max z = 2x1 + x2


 x1 −2x2 ≤ 2
s.c.q. −2x1 +x2 ≤ 2
x1 , x2 ≥ 0.

On peut voir à la figure 5.2 qu’à partir du sommet (2, 0), la région connaît une direction
où x2 n’est plus bornée.

Figure 5.2 – Solution non bornée.

47
Regarder ce cours
CHAPITRE 5. QUESTIONS SUR L’ALGORITHME DU SIMPLEXE K. ISKAFI

On peut arriver à la même conclusion en général : s’il n’y a pas de candidat pour
quitter la base, on peut faire croître la variable entrante et donc aussi la
fonction objectif autant qu’on le veut. Dans ce cas, le problème est non borné.
D’autre part, s’il y a plusieurs candidats pour quitter la base, alors n’importe lequel
de ces candidats peut servir. La présence de plusieurs candidats pour quitter la base a
une conséquence importante : la dégénérescence.
Illustrons ceci par l’exemple suivant :
z x1 x2 x3 x4 x5 x6
1 −2 1 −8 0 0 0 0
0 0 0 2 1 0 0 1
0 2 −4 6 0 1 0 3
0 −1 +3 4 0 0 1 2
Ayant choisi x3 pour entrer en base, on trouve que chacune des trois variables de base,
x4 , x5 et x6 bloque l’accroissement de x3 à 12 . Chacune de ces variables est donc candidate
à sortir de base. On peut choisir x4 . On obtient le tableau suivant :
z x1 x2 x3 x4 x5 x6
1 −2 1 0 4 0 0 4
0 0 0 1 1/2 0 0 1/2
0 2 −4 0 −3 1 0 0
0 −1 +3 0 −2 0 1 0
où l’on constate que les variables de base x5 et x6 ont une valeur nulle ! Des solu-
tions de base avec une ou plusieurs variables de base nulles sont appelées des solutions
dégénérées.
La dégénérescence peut avoir la conséquence suivante. Continuons l’exemple. A l’ité-
ration suivante, x1 entre en base et x5 bloque son entrée à une valeur égale à zéro !
Donc la valeur de x1 et, par voie de conséquence, des autres variables et de l’objectif
restent inchangées au cours de ce pivotage.
Des itérations Simplexe qui changent juste la base sans changer la valeur de
la solution de base sont appelées itérations dégénérées. Il est à remarquer que
les itérations dégénérées sont très souvent présentes dans la résolution de problèmes pra-
tiques mais, en général, ne constituent que des "accidents passagers" dans le sens qu’après
quelques itérations dégénérées la fonction objectif se remet à croître strictement. Ceci
amène directement à considérer le point suivant.

5.5 Arrêt après un nombre fini d’itérations


Si, à chaque itération, la fonction objectif augmente strictement, alors on doit atteindre
une solution optimale ou détecter que le problème est non borné après un nombre fini
d’itérations. En effet, à chaque itération, la solution de base correspond à un sommet du
polyèdre des contraintes. La fonction objectif augmentant strictement à chaque itération,
on ne peut pas repasser par une solution de base déjà rencontrée. Le nombre de solutions
de base réalisables, ou ce qui revient au même le nombre de points extrêmes du polyèdre
n
des contraintes, est majoré par Cm+n , un nombre fini. Il faut en effet choisir n variables
hors base parmi les n + m variables possibles (celles de départ plus les variables d’écart).
Il n’est alors pas possible d’itérer indéfiniment.

48
Regarder ce cours
K. ISKAFI 5.5. ARRÊT APRÈS UN NOMBRE FINI D’ITÉRATIONS

Tout ce raisonnement repose sur l’hypothèse que la fonction objectif augmente


strictement à chaque itération. Comme le montre l’exemple suivant, si cette hy-
pothèse n’est pas satisfaite, on peut cycler, c’est-à-dire répéter à l’infini la même suite
d’itérations.
z x1 x2 x3 x4 x5 x6 x7
1 −10 57 9 24 0 0 0 0
0 0, 5 −5, 5 −2, 5 9 1 0 0 0
0 0, 5 −1, 5 −0, 5 1 0 1 0 0
0 1 0 0 0 0 0 1 1
Supposons que l’on adopte les règles suivantes en présence de candidats multiples pour
les critères d’entrée et de sortie :
(i) La variable entrante est toujours la variable hors base de coefficient le plus négatif
dans la fonction objectif. En cas d’ex-aequo, on prend la variable de plus petit
indice.

(ii) En cas de plusieurs variables de base candidates à la sortie de la base, on prend la


variable de plus petit indice.
On remarquera la présence de composantes nulles dans le membre de droite.
Première itération :
z x1 x2 x3 x4 x5 x6 x7
1 0 −53 −41 204 20 0 0 0
0 1 −11 −5 18 2 0 0 0
0 0 4 2 −8 −1 1 0 0
0 0 11 5 −18 −2 0 1 1

Deuxième itération :
z x1 x2 x3 x4 x5 x6 x7
1 0 0 −14, 5 98 6, 75 13, 25 0 0
0 1 0 0, 5 −4 −0, 75 2, 75 0 0
0 0 1 0, 5 −2 −0, 25 0, 25 0 0
0 0 0 −0, 5 4 0, 75 2, 75 1 1

Troisième itération :
z x1 x2 x3 x4 x5 x6 x7
1 29 0 0 −18 15 93 0 0
0 2 0 1 −8 −1, 5 5, 5 0 0
0 −1 1 0 2 0, 5 −2, 5 0 0
0 1 0 0 0 0 0 1 1

Quatrième itération :

z x 1 x2 x3 x4 x5 x6 x7
1 20 9 0 0 −10, 5 70, 5 0 0
0 −2 4 1 0 0, 5 −4, 5 0 0
0 −0, 5 0, 5 0 1 0, 25 −1, 25 0 0
0 1 0 0 0 0 0 1 1

49
Regarder ce cours
CHAPITRE 5. QUESTIONS SUR L’ALGORITHME DU SIMPLEXE K. ISKAFI

Cinquième itération :

z x1 x2 x3 x4 x5 x6 x7
1 −22 93 21 0 0 −24 0 0
0 −4 8 2 0 1 −9 0 0
0 0, 5 −1, 5 −0, 5 1 0 1 0 0
0 1 0 0 0 0 0 1 1

Sixième itération :
z x1 x2 x3 x4 x5 x6 x7
1 −10 57 9 24 0 0 0 0
0 0, 5 −5, 5 −2, 5 9 1 0 0 0
0 0, 5 −1, 5 −0, 5 1 0 1 0 0
0 1 0 0 0 0 0 1 1

On retrouve le tableau initial. L’algorithme du Simplexe va donc répéter inlassablement


la même suite de six itérations sans jamais atteindre la solution optimale qui existe
cependant avec z = 1. On dit que l’algorithme cycle.
Notons que le phénomène de cyclage est nécessairement associé à la présence de solu-
tions de base où certaines variables de base sont nulles. Une base dégénérée peut donner
lieu à une ou plusieurs itérations consécutives au cours desquelles ni la fonction objectif,
ni aucune des variables ne change de valeur. La seule chose qui change est la liste des va-
riables qui sont en base ou hors base. Géométriquement on se trouve en un point extrême
du polyèdre des contraintes où plus de n hyperplans s’intersectent. Il y a donc différentes
façon de définir ce point extrême comme intersection de n hyperplans. On passe d’une
de ces définitions à une autre.
Il existe des règles qui permettent d’empêcher le cyclage. Par exemple, la règle de
Bland. Cette règle consiste à systématiquement choisir comme variable entrante la pre-
mière de coefficient négatif dans la ligne objectif et comme la variable sortante, la
première qui veut sortir. Insistons sur la différence par rapport à la règle que nous avons
utilisé. Nous avions chaque fois choisi la candidate de plus petit indice parmi toutes
les variables de coefficient objectif le plus négatif. Ici, on décide de prendre la
première variable de coefficient négatif rencontrée donc pas forcément celle de
coefficient minimum. On vérifiera, sur l’exemple ci-dessus, qu’en adoptant la règle de
Bland, on évite que l’algorithme ne boucle. En effet, à la cinquième itération, on choisit
x1 plutôt que x6 pour entrer en base et on sort du phénomène de cyclage.
D’autres méthodes qui évitent le problème du cyclage peuvent être consultées : la
méthode de perturbation et la méthode lexicographique
Terminons en remarquant que le cyclage est un phénomène assez rare dans la pratique
de sorte que beaucoup de logiciels mettant en oeuvre la méthode du Simplexe ignorent
totalement ce problème.

50
Regarder ce cours
K. ISKAFI 5.6. APPLICATIONS

5.6 Applications
Exercice 5.1.

Une usine fabrique deux produits P1 et P2 à partir d’une matière première M :

Quantité utilisée par tonne Quantité disponible par jour


P1 P2
M 2 1 4
Profit par tonne 3 1

Le problème est de déterminer les quantités de chacun des deux types de produits
à fabriquer de manière à obtenir le plus grand profit possible, sachant que l’usine s’est
engagée à livrer 3 tonnes des deux produits à un client régulier et la production en P2
doit dépasser au moins d’une tonne celle de P1 .

1. Résoudre le problème par la méthode graphique.

2. Résoudre le problème par l’algorithme du Simplexe en tableaux.

Exercice 5.2.

Reprenons le problème de l’exercice (5.1). Déterminer la nouvelle solution optimale si


l’usine décide :

1. de diminuer la quantité disponible en matière première à 2 tonnes par jour.

2. que la production en P1 ne doit dépasser que d’une tonne la moitié de celle de P2 .

51
Chapitre 6

Dualité en programmation linéaire

6.1 Programme linéaire dual


Commençons par une interprétation économique du programme dual.

Exemple. Problème de la production. Notons :


xj nombre d’unités du produit Pj fabriquées en entreprise I (j = 1, 2, . . . , n)
aij nombre d’unités de la matière première Mi utilisées pour la fabrication d’une unité
de Pj
cj bénéfice de l’entreprise I en vendant une unité de Pj .
Le programme linéaire pour déterminer le plan de production qui permet de maximiser
le bénéfice de l’entreprise I s’énonce comme suite :
max z(x) = cx

n
 Pa
ij xj ≤ bi (i = 1, 2, . . . , m)

s.c. de disponibilité j=1
xj ≥ 0 (j = 1, 2, . . . , n).

En forme matricielle les contraintes se lisent : Ax ≤ b, x ≥ 0 où A = (aij ; i =


1, 2, . . . , m, j = 1, 2, . . . , n), b = (b1 , b2 , . . . , bm )t .
Supposons que l’entreprise II essaie de s’emparer du marché. Sous l’hypothèse d’un com-
portement économique de l’entreprise I, celle-ci est prête à céder les matières premières
à un prix qui est au moins aussi élevé que le bénéfice qu’elle fera en vendant ses produits.
Soit yi le prix que l’entreprise II devra payer pour une unité de Mi (i = 1, 2, . . . , m).
Les contraintes sont les suivantes :
m
yi aij ≥ cj (j = 1, 2, . . . , n)
P
i=1
yi ≥ 0 (i = 1, 2, . . . , m).
En forme matricielle yA ≥ c, y ≥ 0 où y = (y1 , y2 , . . . , ym ). L’entreprise II essaiera de
m
P
minimiser le coût d’achat des matières premières : elle essaiera de minimiser yi bi .
i=1
déf
Le programme linéaire pour l’entreprise II est donc de minimiser w(y) = yb sous les
contraintes yA ≥ c, y ≥ 0.
Comme on verra il y a un lien mathématique étroit entre les deux programmes linéaires.

52
Regarder ce cours
K. ISKAFI 6.1. PROGRAMME LINÉAIRE DUAL

Definition 6.1.1.
Programme primal Programme dual
 

 max z(x) = cx 
 min w(y) = yb
(P )  Ax ≤ b (D)  yA ≥ c

x ∈ Rn+ 
y ∈ Rm+

Remarque. On a les liens suivants :


m = nombre de contraintes de (P ) = nombre de variables de (D),
n = nombre de variables de (P ) = nombre de contraintes de (D).
Si (P ) contient deux contraintes, (D) contient deux variables et peut être résolu graphi-
quement quelque soit le nombre de variables de (P ).
Quelle est la forme de (D) si (P ) n’est pas en forme canonique ? On détermine (D)
en ramenant (P ) à la forme canonique, comme le montre l’exemple suivant :

Exemple.
max z(x) = cx
 ! !
( A b
Ax = b x≤


(P ) ⇐⇒  −A −b
x ≥ 0 
x≥0
Par la définition ci-dessus le dual de (P ) est donné par
!
b
min w(u, v) = (u, v) = (u − v)b
−b
 !
A
(u, v) = (u − v)A ≥ c,


(D) −A
u, v ∈ Rm

+.

En posant y = u − v, on obtient
min w(y) = yb
(
yA ≥ c
(D)
y sans restriction de signe (noté (y)).
Le résultat général est le suivant.
Theorem 6.1.1. Les liens entre le programme primal et son dual sont les suivants :
Primal Dual
maximisation minimisation
coefficient de z second membre des contraintes
second membre

des contraintes coefficient

de w
 =
  sans contrainte de signe

contrainte ≤ variable ≥ 0
≥ ≤0

 

 
 sans contrainte de signe
  =

variable  ≥ 0 contrainte  ≥

≤0 

53
Regarder ce cours
CHAPITRE 6. DUALITÉ EN PROGRAMMATION LINÉAIRE K. ISKAFI

Preuve. On se donne

max z(x, y) = cx + dy




Ax + By ≤ a
Cx + Dy = b








 x ≥ 0




 (y)
(c, x) ∈ Rs


(P )


 d, y ∈ Rn−s
A matrice r×s





B matrice r × (n − s)








 C matrice (m − r) × s
(m − r) × (n − s).


D matrice

On démontre que le dual de (P ) est donné par :

min w(u, v) = ua + vb
≥ c


 uA + vC
uB + vD = d


(D)


 u ≥ 0
(v)


 max z(x) = cx + dy
max z(x) = cx + dy



 

 Ax + By

 a
Ax + By ≤ a

 

Cx + Dy ≤ b

 

Cx + Dy = b ⇐⇒ 
Cx + Dy ≥ b



 x 0 

x ≥ 0

 

(y)

 


(y)





max z(x) = cx + dy1 − dy2
Ax + By1 − By2 ≤ a




⇐⇒  Cx + Dy1 − Dy2 ≤ b



 −Cx − Dy1 + Dy2 ≤ −b
x, y1 , y2 ≥ 0


  

 x
max z(x) = (c, d, −d)  y1 

  



y


⇐⇒     2 

 A B −B x a
 C D −D    y1  ≤  b 

     



−C −D D y2 −b

54
Regarder ce cours
K. ISKAFI 6.2. THÉORÈME DE DUALITÉ

Passons au dual :
  


 a
0 0
min w(y ) = y  b

 

 

−b



  
A B −B
y0  D −D ≥ (c, d, −d)

 C

 

 
−C −D D





y0 ≥ 0






min w(u, v1 , v2 ) = ua + v1 b − v2 b = ua + (v1 − v2 )b
uA + v1 C − v2 C = uA + (v1 − v2 )C ≥ c




⇐⇒ uB + v1 D − v2 D = uB + (v1 − v2 )D ≥ d
y 0 =(u,v1,v2)
−uB − v1 D + v2 D = −uB − (v1 − v2 )D ≥ −d





u, v1 , v2 ≥ 0



 min w(u, v) = ua + vb 
min w(u, v) = ua + vb


 

 uA + vC c 

uA + vC ≥ c

 

uB + vD ≥ d

 

⇐⇒ ⇐⇒ uB + vD = d
v=v1 −v2 −uB − vD ≥ −d

 

 
 u 0
u ≥ 0

 

(v)

 


(v)

L’interprétation est alors la suivante : la contrainte égalité de (P ) est Cx + Dy = b, et b


est lié à v dans (D) qui est une variable sans contrainte de signe. La variable y est sans
contrainte de signe dans (P ). Elle est facteur de B et D qui forment la contrainte égalité
dans (D).
Theorem 6.1.2. Le dual du dual est le primal.
Preuve. Pour le dual de la définition ci-dessus on a
t t
 

 min w(y) = yb  max −w(y) = (−b) y

yA ≥ c ⇐⇒ (−At )y t ≤ −c
y ≥ 0 y ≥ 0

 

Le dual est donc donné par


 

 min z(x) = −cx  max −z(x) = cx

xt (−At ) ≥ (−b)t ⇐⇒ Ax ≤ b
≥ x ≥ 0
 

x 0 

La démonstration dans le cas plus général du Théorème 6.1.2 est analogue.

6.2 Théorème de dualité


Après avoir défini le dual d’un programme linéaire, nous étudions dans cette section
les liens entre les solutions de programmes en dualité.
Proposition 6.2.1. Soit (x, y) une solution réalisable de (P ) et (u, v) une solution réa-
lisable de (D). Alors :
1. z(x, y) ≤ w(u, v)

55
Regarder ce cours
CHAPITRE 6. DUALITÉ EN PROGRAMMATION LINÉAIRE K. ISKAFI

2. z(x, y) = w(u, v) =⇒ (x, y) et (u, v) sont des solutions optimales de (P ) et (D).

Preuve.

1. On a
z(x, y) = cx + dy ≤ (uA + vC)x + (uB + vD)y
(D)
= u(Ax + By) + v(Cx + Dy)
≤ ua + vb = w(u, v)
(P )

Dans cette chaine d’inégalités il est important de noter que x ≥ 0 et u ≥ 0.

2. ua + vb étant une borne supérieure pour z(x, y), l’égalité z(x, y) = ua + vb signifie
que (x, y) est un point maximal de z. Raisonnement analogue pour w(u, v).

Rappelons les trois cas qui peuvent se produire en appliquant le simplexe à (P ) :

(i) il existe une (ou plusieurs) solutions optimales finies

(ii) l’ensemble des solutions réalisables est non borné et max z(x, y) = +∞

(iii) (P ) ne possède pas de solutions réalisables.

Le même raisonnement s’applique à (D). Le théorème suivant dit que trois cas seulement
se produisent parmi les 9 cas possibles (voir tableau ci-dessous).

(D)
(i) (ii) (iii)
(i) a) × ×
(P) (ii) × × b)
(iii) × b) c)

Theorem 6.2.1. (Théorème de dualité)


Seuls les trois cas suivants peuvent se produire :

a) (P ) et (D) possèdent des solutions optimales et max z(x, y) = min w(u, v).

b) (P ) ou (D) possède une solution réalisable, mais pas les deux.

c) Ni (P ) ni (D) possèdent des solutions réalisables.

Preuve. Essentiellement à l’aide de la proposition 6.2.1.


Pour la partie c) il suffit de donner un exemple où ni (P ) ni (D) ont des solutions
réalisables :

(P) maximiser z(x1 , x2 ) = x1 + x2 sous x1 − x2 = 1, x1 − x2 = −1, x1 , x2 ≥ 0

(D) minimiser w(y1 , y2 ) = y1 − y2 sous y1 + y2 ≥ 1, y1 + y2 ≤ −1, (y1 ), (y2 )

Supposons maintenant que le cas a) du théorème précédent s’est réalisé. Quelles sont
les liens entre les solutions optimales de (P ) et de (D) ? Comment calculer l’une à partir
de l’autre ? La réponse se déduit facilement du théorème suivant.

56
Regarder ce cours
K. ISKAFI 6.2. THÉORÈME DE DUALITÉ

Theorem 6.2.2. Soient (x, y) resp. (u, v) des solutions réalisables de (P ) resp. de (D).
(x, y) et (u, v) sont alors des solutions optimales de (P ) et de (D) si et seulement si les
énoncés suivants valent :

1. Si une contrainte est satisfaite en tant qu’une inégalité dans (P ) resp. (D), alors la
variable correspondante de (D) resp. de (P ) est nulle.

2. Si la valeur d’une variable restreinte (c’est-à-dire une variable ≥ 0 ou une variable ≤


0) dans l’un des programmes (P ) ou (D) est 6= 0, alors la contrainte correspondante
de l’autre programme est une égalité.

Preuve. Soit ξ ≥ 0 tel que Ax + By + ξ = a, et soit η ≥ 0 tel que uA + vC − η = c (ξ, η


sont des variables d’écart). Alors

z(x, y) = cx + dy = (uA + vC − η)x + (uB + vD)y = u(Ax + By) + v(Cx + Dy) − ηx


w(u, v) = ua + vb = u(Ax + By + ξ) + v(Cx + Dy) = u(Ax + By) + v(Cx + Dy) + uξ

Donc z(x, y) − w(u, v) = −ηx − uξ ≤ 0 par construction. D’après le théorème 6.2.1 (x, y)
et (u, v) sont optimales si et seulement si ηx + ξu = 0. Donc si et seulement si ui ξi = 0
pour tout i = 1, 2, . . . , r et ηj xj = 0 pour tout j = 1, 2, . . . , s. L’assertion s’ensuit :

ξi > 0 (contrainte 6= dans (P )) ⇒ ui =0 (variable =0 dans (D))


ui > 0 (variable 6= 0 dans (D)) ⇒ ξi =0 (contrainte = dans (P ))
ηi > 0 (contrainte 6= dans (D)) ⇒ xi =0 (variable =0 dans (P ))
xj > 0 (variable 6= 0 dans (P )) ⇒ ηj =0 (contrainte = dans (D))

Exemple.

max z(x) = 4x1 + 5x2
(P )

sous 3x1 + x2 ≤ 1, x1 + 4x2 ≤ 1, x1 , x2 ≥ 0

min w(y) = y1 + y2
(D)

sous 3y1 + y2 ≥ 4, y1 + 4y2 ≥ 5, y1 , y2 ≥ 0
 
3 2
solution optimale de (P ) : x = ,
11 11
. Comment en déduire la solution optimale de
(D) ?
D’après le Théorème 6.2.2 on a
)
x1 > 0 ⇒ 3y1 + y2 = 4
⇒ (y1 , y2 ) = (1, 1).
x2 > 0 ⇒ y1 + 4y2 = 5
 
3 2
Donc y1 = y2 = 1 est solution optimale de (D). En effet z 11 , 11 = 2 = w(1, 1).
Le lien entre les solutions du primal et le dual sont facilement visibles si on les résout
par le simplexe. En fait, les tableaux finaux se recouvrent partiellement comme le montre
le schéma ci-après. Les variables d’écart ξ de (P ) sont notées ξ1 , ξ2 , et les variables d’écart

57
Regarder ce cours
CHAPITRE 6. DUALITÉ EN PROGRAMMATION LINÉAIRE K. ISKAFI

η de (D) sont notées η1 , η2 .

(P) → → x1 x2 ξ1 ξ2 solution
↓ (D) → η1 η2 y1 y2 optimale de (D)
↓ ↓

ξ1 y1 −4/11 −1/11 1 0 1
ξ2 y2 -1/11 3/11 0 1 1
x1 η1 1 0 0
x2 η2 0 1 0
solution 3/11 2/11 0 0
optimale de (P) 2

Les colonnes de x1 et x2 et la dernière colonne représentent le tableau final du simplexe


appliqué au primal. La solution optimale du primal apparaît en dernière ligne : x1 = 3/11,
x2 = 2/11 (le tableau est transposé par rapport à la représentation habituelle : les lignes
du tableau habituel sont les colonnes ici).
Les lignes de y1 et y2 et la dernière ligne forment le tableau optimal du simplexe
appliqué au dual. La solution optimale du dual apparaît en dernière colonne :

y1 = y2 = 1.

La valeur optimale commune des deux programmes figure dans la dernière cellule : z ∗ =
w∗ = 2.
Il n’est donc pas nécessaire de résoudre (P ) et (D). Il suffit de résoudre (P ) ou (D), la
solution optimale de l’autre se trouve dans le tableau optimal du premier, en première
ligne. Il suffit alors d’identifier les variables :

xi 7→ ηi , ξi 7→ yi (i = 1, 2).

6.3 Analyse de sensibilité


Les applications principales de la dualité en programmation linéaire sont associées à
l’analyse de la sensibilité de l’objectif réalisée vis-à-vis d’une perturbation des paramètres.

Theorem 6.3.1. La variation de la valeur optimale, de la fonction objectif de (P ),




max cx
(P )  Ax = b

x≥0

pour une variation δb suffisamment faible du second membre, pour que la base optimale
de (P ) reste optimale pour (Pδ ),


 max cx
(Pδ ) Ax = b + δb
x≥0

est ȳδb, (où ȳ est solution optimale du dual de (P )).

58
Regarder ce cours
K. ISKAFI 6.3. ANALYSE DE SENSIBILITÉ

Exemple. Une usine produit deux ciments, rapportant 500Dh et 700Dh par tonne. Une
tonne du ciment N◦ 1 nécessite 40 min de calcination dans un four à chaux et 20 min de
broyage. Une tonne du ciment N◦ 2 nécessite 30 min de calcination dans un four à chaux
et 30 min de broyage. Le four et l’atelier de broyage sont disponibles 6h et 8h par jour.
Combien de ciment de chaque type peut-on produire par jour pour maximiser le bénéfice ?
Ce problème se modélise comme suit :


 max z = 500x1 + 700x2
40x1 + 30x2 ≤ 360 (I)


(P )
 20x1 + 30x2

 ≤ 480 (II)
x1 , x2 ≥ 0

on ajoute les variables d’écarts x3 et x4 aux deux contraintes (I) et (II).




 max z = 500x1 + 700x2
40x1 + 30x2 + x3 = 360




 20x1 + 30x2 + x4 = 480
x1 , x2 , x3 , x4 ≥ 0

on applique l’algorithme du simplexe sur ce dernier problème avec la base de départ


B1 = x3 , x4 . x2 entre en base et x3 sort de la base. On écrit le problème sous forme
canonique par rapport à la nouvelle base B2 = x2 , x4
max z = 8400 − 1300 x1 − 70


 3
x
3 3
4 1
x +x2 + 30 x3 = 12


3 1


 −20x 1 −x 3 +x 4 = 120
x1 , x2 , x3 , x4 ≥ 0

Maintenant, puisque max(− 13003


, − 70
3
) ≤ 0, la solution est optimale (x∗1 = 0, x∗2 = 12) et

z = 8400.
Le directeur veut augmenter les quantités des ciments fabriqués, il se demande de combien
il est raisonnable de les augmenter pour utiliser une unité supplémentaire des biens (I)
et (II).
Si on augmente la disponibilité du four (I) d’une unité, de combien le profit augmentera
t-il ? Le programme (P ) sera modifié en remplaçant 360 par 361 dans le second membre
de la première inégalité. On trouve que la même base est optimale, et que
36.1
x∗1 = 0, x∗2 =
3
36.1
z ∗ = 700 ×
3
0.1
= 8400 + 700 × ' 8400 + 23.33.
3
Donc une unité de fonctionnement supplémentaire de (I) vaut "23.33" pour le directeur de
l’usine, c’est à dire que si le coût d’une minute de four est inférieure à "23.33" le directeur
à intérêt à augmenter la disponibilité du four. Donc le fonctionnement de l’usine permet
de définir des prix pour les différentes matières premières sur le marché, c’est un prix
marginale. Le même raisonnement est fait pour l’atelier (II), on trouve que la valeur
optimale ne change pas, donc on n’a pas intérêt à augmenter la disponibilité du broyeur.
y1 = 70
3
, y2 = 0 sont les prix marginaux, et correspondent à la solution optimale du dual
de (P ).

59
Regarder ce cours
CHAPITRE 6. DUALITÉ EN PROGRAMMATION LINÉAIRE K. ISKAFI

D’autres applications de la dualité pour l’analyse de la sensibilité de l’objectif seront


abordées dans le chapitre de l’analyse post-optimale qui sera traitée graphiquement et à
partir du tableau Simplexe final du problème original de maximisation.

60
Regarder ce cours
K. ISKAFI 6.4. APPLICATIONS

6.4 Applications
Deux usines produisent du papier de trois qualités différentes. Elles ont des commandes
pour chaque type de papier : la compagnie qui gère les usines a des contrats pour fournir
16 tonnes de papier de qualité inférieure, 5 tonnes de papier de qualité moyenne et 20
tonnes de papier de qualité supérieure. Il coûte 1000 euros par jour pour faire fonctionner
l’usine A et 2000 euros par jour pour l’usine B. L’usine A produit 8 tonnes de papier de
qualité inférieure, 1 tonne de papier de qualité moyenne et 2 tonnes de papier de qualité
supérieure par jour. L’usine B produit 2 tonnes de papier de qualité inférieure, 1 tonne
de papier de qualité moyenne et 7 tonnes de papier de qualité supérieure par jour. On
cherche combien de jours chaque usine doit fonctionner afin de satisfaire la demande de
la façon la plus économique.

1. Modéliser le problème.

2. On a affaire à un concurrent qui tente de faire fermer les deux usines. Le concurrent
vend à l’entreprise du papier des trois différentes qualités au prix le plus élevé
possible (bien sûr) mais tout en s’assurant que les prix soient compétitifs vis-à-vis
des deux usines. Déterminer l’objectif du concurrent et résoudre le problème.

3. On suppose que la quantité de papier de qualité moyenne commandée passe de 5 à


6 tonnes. Interpréter les résultats de cette augmentation.

61
Chapitre 7

Analyse post-optimale

7.1 Introduction
Dans ce chapitre, nous allons voir comment va varier la valeur optimale de l’objectif
d’un programme linéaire lorsque l’on modifie certains coefficients du problème (coefficients
objectif ou du membre de droite). En effet, généralement la solution numérique d’un
problème linéaire est moins significative que de savoir comment l’objectif va bouger si
l’on modifie certaines données du problème. C’est l’objet de ce que l’on appelle l’analyse
post-optimale ou l’analyse sensibilité.
Pour voir l’effet de tels changements de données, une solution naïve consiste à appli-
quer le Simplexe au nouveau problème et bien sûr on peut en déduire l’effet sur l’objectif.
Mais nous allons voir dans ce chapitre que, si la base optimale ne change pas, on
peut prédire sans aucun nouveau calcul l’effet de variation des données sur la fonc-
tion objectif en exploitant simplement le tableau Simplexe optimal du problème original.
Nous allons d’abord envisager le cas de la variation des coefficients du membre de
droite des contraintes. Nous allons voir que la variation de la valeur optimale de l’objectif
d’un programme linéaire en fonction des coefficients du membre de droite est donnée par
la valeur des "prix cachés" (ou coûts ombres) que l’on peut lire dans la ligne objectif du
tableau Simplexe final. Nous verrons comment déterminer le domaine de validité de ces
prix cachés.
Nous verrons ensuite, le cas de la variation des coefficients de la fonction ob-
jectif. Ici, nous verrons que le taux de variation de l’objectif est donné par la valeur des
variables à l’optimum. Ici aussi, il y a un domaine de validité pour ces valeurs optimales
des variables : elles restent valables tant que la base optimale ne change pas.
Enfin, nous terminerons en donnant l’interprétation d’une autre information que l’on
peut tirer du tableau Simplexe, à savoir la valeur des coûts réduits des variables hors
base.

7.2 Variation par rapport au second membre


La question qui se pose ici est la suivante : "Si on augmente la capacité disponible
d’une ressource, quel est l’impact sur la valeur optimale de la fonction objectif ?"
Pour des variations du membre de droite suffisamment faibles pour que la même
base reste optimale, on peut répondre à cette question en exploitant le tableau Simplexe
optimal de la manière suivante :

62
Regarder ce cours
K. ISKAFI 7.2. VARIATION PAR RAPPORT AU SECOND MEMBRE

Le "prix caché", ou "coût ombre", (noté yi∗ ) mesure l’augmentation de la fonction objectif
si l’on accroît d’une unité la capacité disponible (bi ). Dans le tableau Simplexe optimal, le
prix caché yi∗ est le coefficient de la variable d’écart de la contrainte dans la ligne objectif.
Nous allons illustrer ceci sur l’exemple introductif du chapitre 2 dont l’énoncé est
rappelé ci-dessous :

max z = 3x1 + 5x2






x1 ≤ 4
2x2 ≤ 12




s.c.q. 3x1 +2x2 ≤ 18
≥ 0




 x1
x2 ≥ 0.

Considérons le tableau final qui a été déterminé au chapitre 3 :

z x1 x2 x3 x4 x5
1 0 0 0 3/2 1 36
0 0 0 1 1/3 −1/3 2
0 0 1 0 1/2 0 6
0 1 0 0 −1/3 1/3 2

Comme x3 , x4 et x5 sont les variables d’écart des contraintes de capacité des trois ateliers,
on en déduit les valeurs des prix cachés suivants :

y1∗ = 0



y2∗ = 3/2
 ∗

y3 = 1

qui correspondent aux prix cachés des ressources utilisées dans les ateliers 1, 2 et 3 dont
les capacités disponibles sont :


 b1
 = 4
b2 = 12


b3 = 18

Ce résultat peut être démontré mathématiquement. Mais, plutôt que d’en donner une
démonstration formelle, nous allons l’illustrer graphiquement. Considérons tout d’abord
une augmentation de capacité du premier atelier de b1 = 4 à b01 = 5. On peut voir à la
figure 7.1 que le nouveau point optimal reste le même :

63
Regarder ce cours
CHAPITRE 7. ANALYSE POST-OPTIMALE K. ISKAFI

36/5

+
z*=36
++
+++
++++
+++++
+++++++
+++++++
+++++++
+++++++
+++++++
+++++++
+++++++

12

Figure 7.1 – Analyse postoptimale

x0∗ = x∗ = (2, 6).


En conséquence de quoi, la valeur optimale de l’objectif ne change pas :

z 0∗ = z ∗ = 36

d’où une variation nulle de l’objectif, ce qui était bien prédit par la valeur nulle du prix
caché y1∗ :
∆z = z 0∗ − z ∗ = 0 = y1∗ .
Une augmentation de capacité du deuxième atelier de b2 = 12 à b02 = 13 donne un
déplacement du point optimal (voir figure 7.1) vers le nouveau point :

x0∗ = (5/3, 13/2).

En conséquence de quoi, la nouvelle valeur de l’objectif est donnée par :

z 0∗ = 37, 5.

D’où un accroissement de l’objectif égal à la valeur du deuxième prix caché :


3
∆z = z 0∗ − z ∗ = 37, 5 − 36 = = y2∗ .
2
Enfin, considérons une augmentation de capacité du troisième atelier de b3 = 18 à
b03= 19. Comme on peut le voir à la figure 7.2, cela donne un déplacement du point
optimal vers :
x0∗ = (7/3, 6).
En conséquence de quoi, la nouvelle valeur de l’objectif vaut :

z 0∗ = 37.

64
Regarder ce cours
K. ISKAFI 7.2. VARIATION PAR RAPPORT AU SECOND MEMBRE

D’où une augmentation d’objectif égale à la valeur du troisième prix caché :


∆z = z 0∗ − z ∗ = 37 − 36 = 1 = y3∗ .

37/5
36/5

++
+++
+++
+ +++
++++
++++
++++
++++
++++

z*=37
+++
++++
++

z*=36

37/3
12

Figure 7.2 – Variation de capacité de l’atelier 3

Le résultat peut aussi être interprété dans l’autre sens : y3∗ est la perte de profit si on
diminue d’une unité la capacité du troisième atelier.
Remarquons, et ceci est l’objet de l’analyse de sensibilité, qu’il y a une limite de
validité de chaque prix caché. En effet, dans le cas de la première ressource, si l’effet d’une
augmentation de b1 sera nul sur la valeur optimum de l’objectif quel que soit b1 ≥ 4, il n’en
va pas de même d’une diminution. En effet, en dessous de b1 = 2, la solution optimale va
changer. On a donc déterminé le domaine de validité de y1∗ = 0. Il s’agit de l’intervalle :
b1 ∈ [2, +∞].
Pour le deuxième atelier, au delà de b2 = 18, la solution optimale reste en (0, 9). La
base optimale et y2∗ changent :
y2∗ = 0.
De même, une diminution en deçà de b2 = 6 va changer la base optimale. On en déduit
le domaine de validité de y2∗ = 3/2. Il s’agit de l’intervalle :
b2 ∈ [6, 18].
Pour le troisième atelier, au delà de b3 = 24, la solution optimale reste en (4, 6). La
base optimale et y3∗ changent :
y3∗ = 0.
De même, une diminution en deçà de b3 = 12 va changer la base optimale. On en déduit
le domaine de validité de y3∗ = 1. Il s’agit de l’intervalle :
b3 ∈ [12, 24].
Ces informations sont données dans le rapport de sensibilité du solveur d’Excel, elles
sont fournies sous la forme d’une augmentation admissible et d’une diminution admis-
sible :

65
Regarder ce cours
CHAPITRE 7. ANALYSE POST-OPTIMALE K. ISKAFI

Contrainte augmentation diminution membre


admissible admissible de droite
Atelier 1 +∞ 2 4
Atelier 2 6 6 12
Atelier 3 6 6 18
Remarquons finalement que l’on a toujours une valeur nulle du prix caché pour
une contrainte non liante. Une contrainte liante est une contrainte où la variable
d’écart est non nulle. Par exemple, la première contrainte

x1 ≤ 4

a un "prix caché" nul. Ceci a une interprétation économique. La ressource n’est pas
entièrement utilisée : il ne sert donc à rien d’augmenter son stock disponible.

7.3 Variation des coefficients objectifs


La question qui se pose ici est la suivante : "Si on augmente le prix de vente unitaire ou
si l’on diminue le coût unitaire de production, quel est l’impact sur la valeur de l’objectif ?"
A nouveau, on peut prédire cette variation de l’objectif pour autant que la base
optimale ne change pas. En effet, tant que la base optimale ne change pas, la solution
optimale x∗ = (x∗1 , x∗2 , . . . , x∗n ) reste la même. Seul le profit optimal change. Le nouveau
profit vaut donc :
n
z∗ = (cj + ∆cj )x∗j .
X

j=1

On en conclut que pour une variation unitaire du coefficient cj , l’augmentation de z ∗ est


exactement la valeur optimale de la variable x∗j .
La "valeur de la j ème variable à l’optimum" (notée x∗j ) mesure l’augmentation de la
fonction objectif si l’on accroît d’une unité la marge unitaire cj .
Dans le cas de l’exemple, les augmentations de profit pour une augmentation unitaire
de la marge des produits valent respectivement :

x∗1 = 2 et x∗2 = 6.

Considérons maintenant la question l’analyse de sensibilité. Nous allons à nouveau


l’illustrer sur le même exemple. Initialement :

z = 3x1 + 5x2 .

On veut déterminer l’intervalle de variation maximum de c1 autour de 3 tel que la base


optimale ne change pas.
A la figure 7.3, on constate que le coefficient c1 peut descendre jusqu’à ce que l’objectif
z = c1 x1 + 5x2 soit parallèle au segment

2x2 = 12,

c’est-à-dire lorsque c1 = 0. Le coefficient c1 peut augmenter jusqu’à ce que l’objectif


z = c1 x1 + 5x2 soit parallèle au segment

3x1 + 2x2 = 18.

66
Regarder ce cours
K. ISKAFI 7.3. VARIATION DES COEFFICIENTS OBJECTIFS

Ceci se produit lorsqu’il y a égalité des pentes :


−c1 −3
= ,
5 2

Figure 7.3 – Analyse de sensibilité de c1

c’est-à-dire lorsque c1 = 15/2.


La réponse à la question de l’analyse de sensibilité est donc la suivante. Tant
que
c1 ∈ [0, 15/2],
on a la même base optimale et donc la même solution optimale.
Effectuons l’analyse de sensibilité pour le second coefficient objectif. Celui-ci peut
décroître jusqu’à ce que l’objectif z = 3x1 + c2 x2 soit parallèle au segment
3x1 + 2x2 = 18.
Ceci se produit lorsqu’il y a égalité des pentes :
−3 −3
= ,
c2 2
c’est-à-dire lorsque c2 = 2. Dans l’autre sens, c2 peut augmenter jusqu’à ce que l’objectif
z = 3x1 + c2 x2 soit parallèle au segment
2x2 = 12.
Ceci ne se produit jamais. On en conclut que tant que :
c2 ∈ [2, +∞[,
on a la même base optimale et donc la même solution optimale.
Ces intervalles de sensibilité sont également donnés dans le rapport de sensibilité du
solveur d’Excel.

67
Regarder ce cours
CHAPITRE 7. ANALYSE POST-OPTIMALE K. ISKAFI

7.4 Coût réduit des variables hors base


Pour terminer ce chapitre consacré à l’analyse postoptimale, nous allons définir une
notion importante qui peut également être déduite du tableau Simplexe optimal, il s’agit
du coût réduit d’une variable hors base.
Le "coût réduit" de la variable hors base xj , noté dj , mesure l’augmentation de la
fonction objectif si l’on accroît d’une unité la valeur de la variable hors base xj . Dans le
tableau Simplexe optimal, le coût réduit dj est l’opposé du coefficient de la variable dans
la ligne objectif.
Nous illustrerons cette notion sur l’exemple de planification de la production de châssis
auquel on adjoint un troisième châssis mixte aluminium bois, pour lequel la marge unitaire
est de 4 et les temps unitaires de fabrication dans les trois ateliers sont respectivement
de 1, 2 et 3 heures. La formulation de ce problème est reprise ci-dessous :

z −3x1 −5x2 −4x3 = 0


x1 +x3 +x4 = 4
2x2 +2x3 +x5 = 12
3x1 +2x2 +3x3 +x6 = 18

Elle se met sous la forme du tableau Simplexe initial suivant :

z x1 x2 x3 x4 x5 x6
1 −3 −5 −4 0 0 0 0
0 1 0 1 1 0 0 4
0 0 2 2 0 1 0 12
0 3 2 3 0 0 1 18

La solution optimale de ce problème linéaire peut être déterminée par l’algorithme du


Simplexe. Le tableau Simplexe optimal final est le suivant :

z x1 x2 x3 x4 x5 x6
1 0 0 2 0 3/2 1 36
0 0 0 2/3 1 1/3 −1/3 2
0 0 1 1 0 1/2 0 6
0 1 0 1/3 0 −1/3 1/3 2

On en déduit la solution optimale suivante :

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

Tandis que la valeur optimale de l’objectif est donnée par :

z ∗ = 36.

On constate que seuls sont rentables les productions des châssis 1 et 2. En effet, le
châssis 3, bien qu’ayant une marge unitaire supérieure au châssis 1, consomme plus de
ressources et permet, pour la même capacité disponible des trois ateliers de faire moins
de châssis 3 que de châssis 1. On peut alors se poser la question suivante : de combien
faut-il augmenter la marge du châssis 3 pour le rendre attractif ?
On peut répondre à cette question en exploitant le tableau Simplexe optimal de la
manière suivante : les coefficients dans la ligne objectif du tableau Simplexe final (l’opposé

68
Regarder ce cours
K. ISKAFI 7.4. COÛT RÉDUIT DES VARIABLES HORS BASE

des coûts réduits) fournissent l’augmentation de prix nécessaire. En effet, les coûts réduits
des variables hors base s’interprètent, en général, comme l’augmentation de la fonction
objectif lorsque l’on augmente d’une unité la variable. Ici, à l’optimum, ce coût réduit,
noté d3 , est négatif, traduisant le fait que si la production de ce châssis était positive, elle
diminuerait le profit d’autant.
d3 = −2.
Pour qu’il devienne intéressant de le produire, il faut donc augmenter sa marge d’au
moins cette quantité. Ici, le coût réduit s’interprète comme l’opposé de l’augmentation
minimale de prix pour que la production devienne intéressante.
Remarquez que tous les optimiseurs fournissent en plus de la solution optimale d’un
problème linéaire, cette information : les coûts réduits des variables hors base sont, en
effet, au signe près, les coefficients des variables hors base dans la ligne objectif du tableau
Simplexe optimal.
En conclusions, nous avons vu dans ce chapitre comment interpréter tous les coeffi-
cients dans la ligne objectif du tableau Simplexe optimal final :

• Les coûts réduits sont, au signe près, les coefficients des variables hors base dans la
ligne objectif du tableau Simplexe optimal. Ils s’interprètent, en général, comme
l’augmentation de la fonction objectif lorsque l’on augmente d’une
unité la variable hors base.

• Les prix cachés sont les coefficients des variables d’écart des contraintes dans la
ligne objectif du tableau Simplexe optimal. Ils s’interprètent comme l’augmenta-
tion du profit pour une augmentation unitaire d’un des coefficients du
membre de droite.

Le rapport de sensibilité d’Excel donne ces deux informations.

69
Regarder ce cours
CHAPITRE 7. ANALYSE POST-OPTIMALE K. ISKAFI

7.5 Applications
Exercice 7.1.

Sensibilité aux coefficients objectif.


Soit le problème linéaire suivant :

min 0x1 + x2



 3x1 + 4x2 9
5x1 + 2x2 ≤ 8


s.c.q.


 3x1 − x2 ≤ 0
x1 , x2 ≥ 0

1.1) Déterminer graphiquement la solution optimale.

1.2) Déterminer l’intervalle maximum de variation de c1 autour de zéro qui préserve la


solution optimale.
Exercice 7.2.

Sensibilité au membre de droite.


Planification de production sur coût variable. Une entreprise fabrique deux produits
P1 et P2 . Chaque produit doit passer par les deux ateliers d’usinage et de finition.
Le mois dernier, 500 unités de P1 ont été produites grâce à 750 heures d’usinage
et 250 heures de finition. De même, 700 unités de P2 ont été produites, nécessi-
tant 700 heures d’usinage et 350 heures de finition. L’entreprise dispose également
d’une section administration. Une partie du coût de production est indépendante du
nombre d’heures passées à la production (les frais fixes), une partie est directement
proportionnelle au nombre d’heures passées à la production (les frais variables). Le
mois passé, on a observé la répartition suivantes entre frais fixes et frais variables :

Section Frais Fixes Frais Variables


Administration 50.000 0
Usinage 60.000 11.600
Finition 40.000 6.000

Il y a un coût de conditionnement de 8 dh l’unité pour P1 et de 6 dh pour P2 . Les


prix de vente sont de 55 dh et 43 dh respectivement.

2.1) Calculer les marges sur coûts variables (différence entre prix de vente et coût variable
de production) par unité de chacun des deux produits.
Indication : calculer d’abord le prix de l’heure dans chacun des ateliers et le temps
nécessaire dans chacun des ateliers par produit.

2.2) Les capacités de production sont de 1.200 heures par mois pour l’usinage et de
500 heures pour la finition. Formuler le programme linéaire correspondant à la
maximisation de la marge sur coûts variables.

70
Regarder ce cours
K. ISKAFI 7.5. APPLICATIONS

2.3) Déterminer graphiquement la solution optimale.

2.4) Résoudre par l’algorithme du Simplexe.

2.5) Déterminer la valeur des prix cachés à l’optimum.

2.6) Si l’unité de capacité supplémentaire coût le même prix pour les deux ateliers, a-t-on
intérêt à augmenter la capacité du premier ou du second atelier ?

2.7) Jusqu’à quel niveau est-il intéressant d’augmenter cette capacité ?

71
Chapitre 8

Programmation en nombres entiers

8.1 Introduction
L’algorithme du Simplexe fournit une méthode de résolution générale pour tous les
problèmes linéaires quelle que soit leur forme. Au contraire, en programmation linéaire
en nombres entiers (PLNE), on ne dispose pas d’un algorithme général qui permet de
résoudre efficacement tous les problèmes en nombres entiers. Cependant, il existe une
classe générale de méthodes connue sous le nom de branch and bound (séparation et
borne/évaluation) qui permet de résoudre bon nombre de problèmes en nombres entiers.
On appelle problèmes mixtes (MIP en anglais pour Mixed Integer Programming) les
problèmes comportant un certain nombre de variables linéaires (donc continues) et un
certain nombre de variables en nombres entiers (donc discrètes).
Nous allons ici décrire cette méthode qui commence par la résolution du problème
linéaire obtenu en relaxant les conditions d’intégralité des variables (valeurs entières).
C’est pourquoi on appelle ce programme la relaxation linéaire du problème.
Les problèmes de flots (programmation sur les graphes) sont eux à mi-chemin entre
les problèmes linéaires et les problèmes mixtes. En effet, si les données du problème de
flot à coût minimum (la formulation la plus générale d’un problème de flot) sont toutes
entières (demandes aux sommets entières, capacités des arcs entières et coefficients de
coût entiers), la solution du problème linéaire fournit automatiquement une solution
entière. Autrement dit, ici la solution de la relaxation linéaire fournit la solution optimale
du problème mixte. Pour ces problèmes, ou pour ceux qui peuvent s’y ramener, on en
conclut que l’on dispose d’un algorithme performant de calcul : l’algorithme du Simplexe.
Malheureusement, un grand nombre de problèmes en nombres entiers ne peuvent se
mettre sous la forme de problèmes de flot. Il convient donc pour ces problèmes d’avoir
une méthode tenant compte explicitement du caractère discret des variables.

8.2 Formulation des problèmes mixtes


Nous allons voir quelques problèmes classiques nécessitant le recours à la programma-
tion mixte entière.

8.2.1 Problèmes avec coûts fixes


Problèmes avec coût fixe de mise en route de la production. On veut représenter
un coût de production qui est nul en l’absence de production et qui, dans le cas contraire,

72
Regarder ce cours
K. ISKAFI 8.2. FORMULATION DES PROBLÈMES MIXTES

vaut la somme d’un coût fixe de production, noté K, et d’un coût proportionnel, le taux
marginal étant m.

On veut donc pouvoir exprimer la fonction


suivante :


K + mx, si x > 0
c(x) =
0, si x = 0

où x dénote le niveau de production (voir


Fig. 8.1). Figure 8.1 – Représentation d’un coût fixe

La représentation mathématique de ce coût fixe nécessite :


1. l’ajout d’une variable indicatrice d’une production positive :

1, si x > 0
y=
0, si x = 0

2. la modification de la fonction objectif en :


c(x, y) = Ky + mx
qui devient donc purement linéaire ;
3. l’ajout des contraintes suivantes :
x ≤ M y, et y ∈ {0, 1} (8.2.1)
avec M une borne supérieure sur la quantité produite (x).
Remarquons que si x > 0, par les relations (8.2.1), on a que y = 1 et on tient compte
du coût fixe de mise en route de production. Par contre, lorsque x = 0, (8.2.1) permet les
choix y = 0 ou y = 1. Cependant, comme on minimise, l’optimiseur va automatiquement
choisir y = 0, la solution qui évite le coût fixe !
Il y a de nombreuses applications de cette modélisation des coûts fixes par la program-
mation mixte entière. Un exemple de mise en application de ces coûts fixes est fournit par
l’exemple de localisation d’entrepôts où il y a un coût fixe d’ouverture de ces entrepôts.

8.2.2 Problèmes avec contrainte logique


Parfois des problèmes de gestion comportent une condition logique. Un exemple ty-
pique est celui des problèmes de gestion de projets avec contrainte disjonctive. Dans ces
problèmes, on doit déterminer l’enchaînement des tâches d’un projet de manière à le réa-
liser dans le meilleur délai, il se peut que deux tâches doivent être effectuées par la même
équipe d’ouvriers, soit mettent en oeuvre la même machine. Les deux tâches ne peuvent
donc avoir lieu simultanément, sans que l’on puisse dire laquelle doit être effectuée en
premier lieu. Mathématiquement, on peut écrire ceci par la condition suivante :

i + di = tj si i est réalisée avant j
t
soit  (8.2.2)
tj + dj = ti si j est réalisée avant i

73
Regarder ce cours
CHAPITRE 8. PROGRAMMATION EN NOMBRES ENTIERS K. ISKAFI

où ti est la variable indiquant le temps de début au plus tôt de la tâche i et di , sa durée,


est donnée.
Cette disjonction peut être résolue par la programmation mixte binaire. En
effet, définissons la variable binaire yij , dont la valeur est 1 si la tache i est réalisée avant
la tâche j et 0 si la tâche j est réalisée avant la tâche i.
On remplace alors la condition de disjonction (8.2.2) par les contraintes suivantes :


 ti + di ≤ tj + M (1 − yij )
tj + dj ≤ ti + M yij (8.2.3)
yij ∈ {0, 1}

où M note une borne supérieure sur la date de fin des travaux.


Démontrons l’équivalence. Deux cas sont possibles pour la variable binaire :

1. Cas où yij = 1. Dans ce cas, le système (8.2.3)) devient :



t
i+ di ≤ tj
tj + dj ≤ ti + M

La première contrainte exprime donc que la tâche i doit être finie avant que ne
commence la tâche j. La seconde contrainte est automatiquement satisfaite.

2. Cas yij = 0. Dans ce cas, le système (8.2.3) devient :



t + di ≤ tj + M
i
tj + dj ≤ ti

La première contrainte est automatiquement satisfaite. La seconde contrainte ex-


prime que la tâche j doit être finie avant que ne commence la tâche i.

8.2.3 Mélange avec nombre limité d’ingrédients


Il s’agit également d’un problème générique conduisant à une formulation mixte en-
tière, les variables binaires indiquant la présence où non d’un ingrédient dans le mélange.
C’est le cas, par exemple, d’un problème de mélange d’huiles où cinq huiles sont dispo-
nibles mais où des contraintes techniques impliquent que seulement trois huiles différentes
peuvent être présentes dans le mélange. Un autre exemple, est celui du chargement de
hauts fourneaux où le nombre de charbons disponibles est souvent nettement supérieur
au nombre de charbons qui peuvent être chargés simultanément dans le haut fourneau.
Ce nombre étant limité par le nombre de portes de chargement du haut fourneau.
Ce problème peut être résolu par la programmation mixte zéro/un. Si xi note
la quantité d’ingrédient i dans le mélange, définissons la variable binaire yi indiquant la
présence de l’ingrédient i dans le mélange. Autrement dit :

yi = 1 si xi > 0;
yi = 0 si xi = 0.

On introduit alors les contraintes suivantes :

xi = Mi yi et yi ∈ {0, 1} (8.2.4)

74
Regarder ce cours
K. ISKAFI 8.2. FORMULATION DES PROBLÈMES MIXTES

où Mi est une borne supérieure sur xi .


La condition du nombre maximum d’ingrédients dans le mélange s’exprime
alors simplement par :
n
X
yi ≤ k, (8.2.5)
i=1

avec k, le nombre maximum d’ingrédients dans le mélange.


Démontrons l’équivalence. Deux cas sont possibles pour la variable xi :

1. Soit xi > 0. Alors, par les contraintes (8.2.4), la variable yi doit valoir 1 et exprime
bien que l’ingrédient i est dans le mélange.

2. Soit xi = 0. Alors, par les contraintes (8.2.4), la variable yi peut valoir 0 ou 1. La


contrainte (8.2.5), exprimera donc bien que au plus k ingrédients seront pris dans
le mélange.

Remarquons que si on veut que yi soit une parfaite indicatrice de xi > 0, il faut
ajouter la contrainte suivante :
m i y i ≤ xi
avec mi , la teneur minimum d’un ingrédient dans le mélange. Cette nouvelle contrainte
forcera yi à zéro lorsque xi est nul.

8.2.4 Choix parmi un nombre discret de valeurs


Dans beaucoup de problèmes industriels, lors du dimensionnement d’un appareillage,
on doit choisir sa capacité parmi les valeurs commerciales existant sur le marché. Par
exemple, lors du dimensionnement d’une canalisation de transport d’eau, on doit choisir
parmi les valeurs suivantes pour le diamètre :

12cm, 17cm, 24cm ou 47cm.

On peut à nouveau modéliser ce choix par l’utilisation de variables binaires. En effet,


définissons la variable x comme étant le diamètre choisi et définissons yi une indicatrice
du fait que le diamètre numéro i a été choisi. On peut alors écrire la relation suivante
pour le choix du diamètre :

x = 12y1 + 17y2 + 24y3 + 47y4

avec la contrainte qu’un seul diamètre doit être choisi :

y1 + y2 + y3 + y4 = 1 (8.2.6)

et bien sûr en imposant le caractère binaire de chaque indicatrice :

yi ∈ {0, 1}, ∀i = 1, 2 . . . 4.

La contrainte (8.2.6) fera en effet qu’une seule indicatrice vaudra un tandis que toutes les
autres seront à zéro.

75
Regarder ce cours
CHAPITRE 8. PROGRAMMATION EN NOMBRES ENTIERS K. ISKAFI

8.3 Méthode de branch and bound


La méthode de "branch and bound" ou encore appelée méthode de séparation et
évaluation que nous allons maintenant décrire est destinée à résoudre les problèmes en
nombres entiers du type suivant :

z ∗ = max cT x
(
Ax ≤ b,
s.c.q.
x ≥ 0 et entiers.

Cette méthode peut également être appliquée aux problèmes avec variables binaires (zéro-
un). Elle peut également être appliquée aux problèmes mixtes (MIP), c’est- à-dire aux
problèmes comportant un certain nombre de variables entières et un certain nombre de
variables continues.
Nous illustrons la méthode sur l’exemple suivant

z ∗ = max z = 10x1 + 50x2


−x1 + 2x2 ≤ 5



x1 + 2x2 ≤ 14


s.c.q.  (8.3.1)

 x1 ≤ 8
x1 , x2 ≥ 0 et entiers.

La région réalisable est représentée à la figure 8.2.

Figure 8.2 – Représentation de la région réalisable.

Remarquons qu’une façon de résoudre le problème serait de construire une borne


supérieure sur z ∗ et une borne inférieure sur z ∗ et ensuite de raffiner ces bornes jusqu’à
les égaliser.
Question 1 : comment construire une borne inférieure sur z ∗ ?
La réponse à cette question est à la fois simple et difficile. En effet, pour trouver une
borne inférieure, il suffit de donner une solution réalisable pour (8.3.1). Comme l’objectif
est de maximiser, l’optimum du problème ne pourra qu’être supérieur à la valeur de z
en ce point. Cependant trouver en général une solution réalisable pour un problème en

76
Regarder ce cours
K. ISKAFI 8.3. MÉTHODE DE BRANCH AND BOUND

nombres entiers n’est pas une mince affaire.


Question 2 : comment construire une borne supérieure sur z ∗ ?
Une façon de répondre à cette question est de résoudre le problème linéaire que l’on
obtient à partir de (8.3.1) en laissant tomber les contraintes d’intégralité des variables.
Comme on maximise sur un ensemble réalisable plus large, l’optimum ainsi obtenu ne
pourra qu’être supérieur à l’optimum du problème en nombres entiers. C’est aussi le
premier pas de la méthode de branch and bound que nous allons maintenant décrire sur
l’exemple.
Pas 0. Résoudre la relaxation linéaire.
Pour cet exemple, on obtient comme solution de la relaxation linéaire le point noté P0 à
la figure 8.2 :
x1 = 4, 5
x2 = 4, 75
z0 = 282, 5.

Cette solution est inacceptable car elle viole les contraintes d’intégralité des variables.
Cependant, elle fournit une première borne supérieure sur z ∗ :

z ∗ ≤ 282, 5.

Pas 1. Brancher sur une variable non entière.


La seconde idée de la méthode de branch and bound est (comme le nom l’indique) d’opérer
une séparation : la région réalisable va être séparée en deux sous-régions dont aucune ne
peut contenir la solution optimale non entière P0 . Cette séparation nécessite le choix d’une
variable de séparation. Le choix de cette variable est heuristique. Différents choix sont
possibles et de ce choix peut dépendre l’efficacité de la méthode de résolution. Une façon
simple de choisir cette variable est de prendre la variable la plus distante d’un entier. Une
alternative, parfois utilisée, est de prendre la variable la plus proche d’un entier.
Dans notre exemple, il s’agit de la variable x1 . On va effectuer un branchement sur
cette variable. Comme x1 ne peut prendre que des valeurs entières, il n’y a aucune perte
de généralité d’imposer que

soit x1 ≤ 4 soit x1 ≥ 5.

Cependant imposer cette condition va éliminer la solution courante P0 de la relaxation


linéaire. En général si la variable choisie xk a la valeur fractionnaire N + , on imposera :

soit xk ≤ N soit xk ≥ N + 1.

En imposant séparément l’une et l’autre conditions, on obtient deux sous-modèles,


un modèle fils et un modèle fille. Ce que l’on représente par un diagramme du type de
celui de la figure 8.3. Chaque noeud de cette figure correspond à un problème linéaire. Le
noeud 0 au modèle original. Le noeud 1 est le modèle original avec en plus la restriction
x1 ≤ 4, tandis que le noeud 2 correspond au modèle original avec en plus la restriction
x1 ≥ 5. On a ici numéroté les noeuds dans l’ordre où ils ont été générés.

77
Regarder ce cours
CHAPITRE 8. PROGRAMMATION EN NOMBRES ENTIERS K. ISKAFI

Figure 8.3 – Arbre de branch and bound.

On peut maintenant résoudre les relaxations linéaires correspondant aux problèmes


fils et fille. Dans notre exemple, on obtient les deux solutions suivantes :

Noeud 1 : x1 = 4, x2 = 4, 5, z1 = 265
Noeud 2 : x1 = 5, x2 = 4, 5, z2 = 275.

Remarquez que les valeurs atteintes par la fonction objectif sont moins élevées que dans
la relaxation linéaire précédente. Ceci n’est pas étonnant : on a, en effet, ajouté des
contraintes et donc restreint l’espace des solutions réalisables. Comme les deux sous-
régions forment une représentation contenant l’ensemble des solution entières, on peut en
conclure que la borne supérieure sur z ∗ est :

z ∗ ≤ max(z1 , z2 ) = 275.

Pas 2. Diviser à nouveau un noeud fils ou fille en deux.


Ici, aucune des deux solutions n’est acceptable car toutes les deux comportent des parties
fractionnaires. On va donc continuer en choisissant un des deux noeuds pour le diviser à
nouveau. Le choix du noeud à diviser est à nouveau heuristique et peut à nouveau avoir
une grande influence sur le temps total mis pour résoudre le problème.
Pour l’illustration de la méthode, nous adoptons la règle de choix heuristique suivante :
choisir le problème dont la relaxation linéaire fournit la meilleure (c’est- à-dire la plus
grande en cas de maximisation) valeur de la fonction objectif. Pour cet exemple, on choisit
donc le noeud 2 et on répète le Pas 1.
Pas 1. Choisir une variable pour brancher.
Ici seule la variable x2 est non entière. On la choisit donc pour opérer le branchement
suivant :
soit x2 ≤ 4 soit x2 ≥ 5.
On ajoute séparément chacune de ces contraintes aux contraintes du problème 2 et on
génère ainsi les noeuds 3 et 4. Ceci est illustré à la figure 8.3. On résout graphiquement
les relaxations linéaires (voir figure 8.2) et on obtient les solutions suivantes :

Noeud 3 : x1 = 6, x2 = 4, z3 = 260.
Noeud 4 : impossible.

78
Regarder ce cours
K. ISKAFI 8.3. MÉTHODE DE BRANCH AND BOUND

Noter que, au noeud 3, on a obtenu une solution entière dont la valeur correspondante
de la fonction objectif est 260. On a une première borne inférieure sur la valeur optimale
de la fonction objectif et on a donc que :
260 ≤ z ∗ ≤ 275.
Si la fourchette n’est pas trop grande, on peut se satisfaire de cette solution non optimale
plutôt que de continuer de longs calculs. Il est clair également qu’il n’y a aucune raison de
continuer à diviser le noeud 3 pour lequel la solution optimale du problème en nombres
entiers a été obtenue. On dit que le noeud est coupé.
Remarquons aussi que le noeud 4 a conduit à un problème non réalisable. Ce n’est
pas étonnant vu que l’on rajoute de plus en plus de contraintes. A nouveau, dans ce cas,
il ne sert à rien de continuer à diviser ce noeud. Continuons la division des autres noeuds.
Pas 2. Diviser à nouveau un noeud fils ou fille en deux.
On choisit le noeud 1 qui est le seul à encore diviser. Remarquez que c’est parce que la
valeur de z1 = 265 est supérieure à la borne inférieure 260 que l’on doit continuer. On
a en effet un espoir de trouver ici une solution entière meilleure que 260. Dans le cas
contraire, on aurait également coupé cette branche et la méthode était terminée.
Pas 1. Brancher sur une variable non entière.
On branche ici sur x2 en créant les noeuds 5 et 6 par la séparation suivante :
soit x2 ≤ 4 soit x2 ≥ 5.
On résout les relaxations linéaires correspondantes. On obtient :
Noeud 5 : x1 = 4, x2 = 4, z5 = 240
Noeud 6 : impossible.
La méthode est terminée puisqu’il n’existe plus de noeud à diviser. On détermine la
solution optimale comme étant la meilleure solution entière trouvée. Il s’agit du point P3
suivant :
x∗1 = 6
x∗2 = 4
auquel correspond une valeur optimale de l’objectif de z ∗ = 260. On a ainsi, pour notre
exemple, trouvé et aussi prouvé que la solution du noeud 3 était la solution optimale
du problème en nombres entiers.
En conclusions, il y a trois raisons de couper une branche dans l’arbre :
1. lorsque la relaxation linéaire obtenue est non réalisable,
2. lorsque la relaxation linéaire obtenue fournit une solution entière,
3. lorsque la valeur de la borne supérieure est inférieure à la valeur de la meilleure
solution entière obtenue.
La méthode par séparation et évaluation n’intervient pas seulement en programmation
linéaire, mais dans tous les problèmes d’optimisation, où on travaille avec des arbres de
décision.
Enfin terminons par la remarque générale suivante. Si la région réalisable de la relaxa-
tion linéaire n’est pas bornée, il n’y a pas de garantie de convergence de la méthode de
branch and bound. Pour éviter ce problème, certaines implémentations demandent une
borne inférieure et supérieure sur chaque variable. On est ainsi garanti d’un nombre fini
de branches dans l’arbre.

79
Regarder ce cours
CHAPITRE 8. PROGRAMMATION EN NOMBRES ENTIERS K. ISKAFI

8.4 Applications
Exercice 1
Mélange de maximum 4 charbons
Pour produire du coke, on mélange des charbons dans un haut fourneau où ensuite, une
réaction à haute température produit le coke. On suppose qu’il y a 8 charbons disponibles.
Ces charbons sont entrés par des bandes porteuses qui sont au nombre de 4, permettant
d’avoir au maximum 4 charbons différents dans le mélange. De plus, si un charbon est
présent dans le mélange, il doit l’être à hauteur de minimum 5%. De plus, on exige que
la teneur du mélange en Silicium soit d’au plus 1,8% Le tableau 8.1 reprend les prix et
teneur en Si des charbons.

Charbon Prix Teneur Si Charbon Prix Teneur Si


Charbon 1 12 2,0 % Charbon 5 13 1,0 %
Charbon 2 14 2,5 % Charbon 6 9 5,0 %
Charbon 3 17 1,0 % Charbon 7 15 2,0 %
Charbon 4 10 5,0 % Charbon 8 11 1,5 %

Table 8.1 – Teneurs en Si et prix des différents charbons.

On veut déterminer le mélange répondant aux spécifications qui soit de coût minimum.
Exercice 2
Localisation optimale d’émetteurs de télévision.
Etant donné une région comportant quatre villes (Lille, Dunkerque, Valencienne et Ba-
sieux), on veut savoir où implanter, parmi divers emplacements disponibles (au nombre de
5), un ensemble d’émetteurs de télévision susceptibles de desservir ces différentes villes au
moindre coût. La dernière colonne représente le coût de construction de chaque émetteur.

Ville Lille Dunkerque Valencienne Basieux Coût


Emetteur 1 1 1 25
Emetteur 2 1 1 30
Emetteur 3 1 1 15
Emetteur 4 1 1 35
Emetteur 5 1 1 1 90

Table 8.2 – Accessibilité des villes à partir des émetteurs.

On demande d’écrire le programme correspondant à la détermination du nombre


d’émetteurs à construire afin que chaque ville soit desservie par au moins un émetteur et
ceci à coût d’investissement total minimum.
Exercice 3
Problème d’affectation de lignes aériennes.
Une petite compagnie aérienne dispose de six avions de 150 places. Elle désire affecter
sa flotte d’avions aux deux lignes intérieures ouvertes à la concurrence (les lignes OM et
OT). Le nombre de passagers désirant effectuer chaque jour un parcours sur la ligne OM
par cette nouvelle compagnie est 500, et de 200 sur la ligne OT. Le coût marginal (frais
variables tels que le carburant, les taxes d’atterrissage, etc.) d’un voyage sur la ligne OM
est de 4 et de 3 sur la ligne OT. On désire minimiser le coût d’exploitation en satisfaisant
la demande.

80
Regarder ce cours
K. ISKAFI 8.4. APPLICATIONS

1. Modéliser le problème de la meilleure affectation de la flotte de cette compagnie.

2. Résoudre par la méthode de Branch and Bound en résolvant chaque fois la relaxation
linéaire de manière purement graphique.

81
Deuxième partie

Optimisation multicritères

82
Chapitre 9

Aide à la décision multicritères

9.1 Méthodes multicritères


L’aide à la décision est un processus qui utilise un ensemble d’informations disponibles
à un instant donné, afin de formuler un problème et aboutir à une décision sur un objet
précis. Dans le cadre de la décision multicritère, l’objet de la décision est formé par un
ensemble d’actions ou alternatives. Pour (Roy, 1996) les problèmes réels peuvent être
formulés à l’aide des méthodes d’analyse multicritère, selon trois formulations de bases :
problématique de choix, notée Pα , la problématique de tri ou d’affectation notée Pβ et la
problématique de rangement noté Pγ .

Problématique Objectif Résultat


Pα Eclairer la décision par le choix Un choix ou une procédure de sé-
d’un sous-ensemble aussi res- lection.
treint que possible en vue d’un
choix final d’une seule action.
Pβ Eclairer la décision par un tri Un tri ou une procédure d’affec-
résultant d’une affectation de tation
chaque action à une catégorie, les
catégories étant définies à priori
en fonction des normes ayant
trait à la suite à donner aux ac-
tions qu’elles sont destinées à re-
cevoir
Pγ Eclairer la décision par un ran- Un rangement ou procédure de
gement obtenu en regroupant classement
tout ou partie (les "plus satis-
faisantes") des actions en classes
d’équivalence, ces classes étant
ordonnées, de façon complète ou
partielle, conformément aux pré-
férences
Pδ Eclairer la décision par une des- Une description ou une procé-
cription, dans un langage ap- dure cognitive
proprié, des actions et de leurs
conséquences

Table 9.1 – Identification des types de problématique

Le processus de décision multicritère peut être décrit par la Figure 9.1. Il est caractérisé
par 4 étapes essentielles :

83
Regarder ce cours
CHAPITRE 9. AIDE À LA DÉCISION MULTICRITÈRES K. ISKAFI

Contexte Environnement Acteurs

Formulation du problème

Objet de la décision, Construction


l’action ou alternative des critères

Choix d’une méthode


multicritère

Détermination des Evaluation des


seuils et des poids performances

Implémentation
et Analyse

Recommandation et
Aide à la Décision

Décision

Figure 9.1 – Processus de décision multicritère

9.1.1 Définition du problème et Objet de la décision (action)


La définition du problème requiert une compréhension de la situation étudiée, du
contexte et des acteurs impliqués dans la prise de décision. L’interaction avec les différents
acteurs permet de comprendre le processus de décision, les enjeux, l’objet de la décision et
la nature de la décision à prendre. Il s’agit donc de définir la nature du problème posé en
le formulant soit en une problématique de choix, de tri ou de rangement. La détermination
de l’objet de la décision consiste à identifier l’ensemble des actions ou alternatives sur
lesquelles va porter la décision.
"Une action a est la représentation d’une éventuelle contribution à la décision globale
susceptible, en égard à l’état d’avancement du processus de décision, d’être envisagée de
façon autonome et de servir de point d’application à l’aide à la décision". C’est l’objet de
la décision.
Une action est dite globale, si, dans sa mise en exécution, elle est exclusive de toute
action introduite dans le modèle ; dans le cas contraire, elle est dite fragmentaire. Une

84
Regarder ce cours
K. ISKAFI 9.1. MÉTHODES MULTICRITÈRES

action potentielle est une action réelle ou fictive provisoirement jugée réaliste par un
acteur au moins. On note par A l’ensemble des actions potentielles.

9.1.2 Analyse des conséquences et détermination des critères


Il s’agit en effet d’identifier et mesurer les conséquences des actions sur lesquelles
va porter la décision. Les critères découlent des conséquences des actions. Souvent, une
action a plusieurs conséquences, ainsi la conséquence d’une action selon un critère donné
est évaluée par une fonction g (à valeurs réelles) définie sur l’ensemble A des actions
potentielles de telle sorte qu’il soit possible de raisonner ou de décrire le résultat de
la comparaison de deux actions a et b relativement à partir des nombres g(a) et g(b).
L’évaluation de l’action sera donc effectuée sur un ensemble de critères. On distingue le
vrai-critère et le pseudo-critère.
Pour le vrai critère, en considérant deux actions a et b à comparer, deux situations
sont possibles :
g(b) = g(a) ⇔ bIg a (indifférence)
g(b) > g(a) ⇔ bPg a (préférence stricte)
C’est une vision peu réaliste car une simple différence g(b) − g(a) n’est pas significative
d’une préférence stricte.
Pour le pseudo-critère on associe à la fonction critère g deux fonctions seuils qg (g(a))
exprimant un seuil d’indifférence et pg (g(a)) exprimant un seuil de préférence :

g(b) ≥ g(a) ⇒ bSb a

Sb : "aussi bon que", où S est une relation de sur-classement, c’est à dire que b est au moins
aussi bon que a sur une majorité de critères sans être vraiment plus mauvais relativement
sur les autres critères. On dira dans ce cas que b surclasse a, on notera bSb a. On introduit
des seuils (constants ou fonctions de g) tels que :

g(b) − g(a) ≤ qg (g(a)) ⇔ bIg a


pg (g(a)) < g(b) − g(a) ⇔ bPg a

où qg est un seuil dit d’indifférence et pg un seuil dit de préférence.


La situation non couverte par ces deux éventualités, à savoir :

qg (g(a)) < g(b) − g(a) ≤ pg (g(a))

correspond à une situation d’hésitation (indétermination) entre l’indifférence et la préfé-


rence stricte appelée préférence faible et notée Qg .
Ce qui peut se traduire ainsi :

b Qg a
a Ig b b Pg a

g(a)-qg g(a) g(a)+qg g(a)+pg g(b)

Indifférence Préférence faible Préférence stricte

Figure 9.2 – Préférence d’actions

85
Regarder ce cours
CHAPITRE 9. AIDE À LA DÉCISION MULTICRITÈRES K. ISKAFI

Ces différentes situations sont reprises dans le Tableau 9.2.

Relation binaire
Situation Définition
(propriétés)
Indifférence Elle correspond à l’existence de raisons I : relation symétrique
claires et positives qui justifient une équi- réflexive
valence entre deux actions.
Préférence Elle correspond à l’existence de raisons P : relation asymétrique
stricte claires et positives qui justifient une préfé- (irréflexive)
rence significative en faveur de l’une (iden-
tifiée) des deux actions.
Préférence Elle correspond à l’existence de raisons Q : relation asymétrique
faible claires et positives qui infirment une préfé- (irréflexive)
rence stricte en faveur de l’une (identifiée)
des deux actions. Mais ces raisons sont in-
suffisantes pour en déduire soit une préfé-
rence stricte en faveur de l’autre, soit une
indifférence entre ces deux actions.
Incomparabilité Elle correspond à l’absence de raisons R : relation symétrique
claires et positives justifiant l’une des trois irréflexive
situations précédentes

Table 9.2 – Situations possibles lors de la comparaison de deux actions

La construction des critères est une étape délicate qui nécessite une compréhension
du problème posé et une interaction avec les acteurs impliqués dans la prise de décision.
Il s’agit d’identifier les enjeux et la nature des conséquences possibles sur l’objet de la
décision, c’est à dire les actions considérées. La définition des critères nécessite par la
suite une évaluation de la contribution et l’influence de chaque critère dans la décision
finale. Ceci ce traduit par des pondérations qui sont définies par les acteurs impliqués ou
bien obtenus par un processus itératif suite à l’interaction avec les acteurs concernés.
Les critères à retenir pour juger quelle est l’action préférée, doivent présenter les
conditions suivantes :
• l’aide multicritère à la décision doit permettre de juger de l’intérêt économique des
différentes actions entre elles. Il s’agit donc de construire une famille de critères qui
puissent représenter, d’une façon aussi proche que possible, les coûts et les avantages
des actions, bénéfices.
• les critères doivent être d’une part, suffisamment nombreux et précis pour bien
discriminer entre elles les différentes actions ; d’autre part, ne pas être redondant
pour éviter de majorer l’importance attribuée à une dimension d’analyse.
• les critères peuvent être de nature différente. On définit des familles de critères :
économiques, sociaux, environnementaux, techniques. Chaque famille de critères
peut contenir un ou plusieurs critères.
Les critères doivent également vérifier des axiomes :
• Axiome d’exhaustivité : si deux actions ont les mêmes vecteurs de performances
(mêmes conséquences pour tous les critères) alors il faut être sûr que les acteurs
sont bien indifférents entre les deux actions.

86
Regarder ce cours
K. ISKAFI 9.1. MÉTHODES MULTICRITÈRES

• Axiome de cohésion : en partant de deux actions qui sont jugées équivalentes, si l’on
accroît la performance de la première sur un critère quelconque, alors elle apparaît
"comme au moins aussi bonne" que la seconde action inchangée.

• Axiome de non-redondance : un critère est redondant si son retrait de la famille


laisse une nouvelle famille vérifiant les deux axiomes précédents.

9.1.3 Choix d’une méthode d’aide à la décision multicritère


Cette étape dépend de la nature du problème posé. Plusieurs méthodes ont été déve-
loppées, le Tableau 9.3 identifie certaines méthodes en fonction de la nature du problème
étudié.

Nature du problème
Critères α (selection) β (affectation) γ (classement)
Vrai critère I - II
Pseudo-critère Is Tri III, IV

Table 9.3 – Choix de la méthode multicritère

9.1.4 Performance des actions


Lorsque l’analyse des actions a conduit à la construction d’un seul critère, on peut
réaliser une optimisation sur ce critère, ce qui peut être simple lorsque le nombre d’actions
est faible, sinon il faut avoir recours à des outils plus ou moins compliqués.
Dans le cas fréquent, où l’analyse des conséquences des actions potentielles a conduit à
construire plusieurs critères, c’est l’analyse multicritère qui permet de donner des réponses
au problème posé. Pour chaque action considérée et pour chaque critère, un seuil de
préférence p, d’indifférence q et un seuil de veto v sont estimés. Chaque critère se voit
attribué un poids k traduisant sa contribution dans la décision finale. Le résultat de
l’analyse des conséquences est présenté dans un tableau de performances (Tab. 9.4).

Critères C1 C2 ... Cj ... Cn


Actions
a1 g1 (a1 ) g2 (a1 ) ... gj (a1 ) ... gn (a1 )
a2 g1 (a2 ) g2 (a2 ) ... gj (a2 ) ... gn (a2 )
.. .. .. .. ..
. . . . .
ai g1 (ai ) g2 (ai ) ... gj (ai ) ... gn (ai )
.. .. .. .. ..
. . . . .
am g1 (am ) g2 (am ) ... gj (am ) ... gn (am )
Poids k1 k2 ... kj ... kn
p1 p2 ... pj ... pn
Seuils q1 q2 ... qj ... qn
v1 v2 ... vj ... vn

Table 9.4 – Tableau de performances

87
Regarder ce cours
CHAPITRE 9. AIDE À LA DÉCISION MULTICRITÈRES K. ISKAFI

9.2 Agrégation des critères et l’analyse multicritère


On distingue entre l’approche d’agrégation classique et l’approche d’agrégation par-
tielle dite de sur-classement proposée par les méthodes ELECTRE. L’approche classique
se base sur l’agrégation des critères de décision en un critère unique. Elle consiste à bâ-
tir un critère unique de synthèse en utilisant une fonction d’agrégation V en posant :
g(a) = V (g1 (a), g2 (a), g3 (a), . . . , gn (a)). Deux actions quelconques deviennent ainsi com-
parables grâce à l’utilisation des différents critères présentés plus haut. Une fois obtenu
le critère de synthèse, on peut simplement élaborer une prescription dans une des trois
problématiques : α, β, γ. La fonction d’agrégation V prend généralement une des deux
formes :
n
kj · gj (a)
P
1. agrégation par somme pondérée : g(a) =
j=1

n
kj · vj (gj (a))
P
2. agrégation additive : g(a) =
j=1

Les poids kj sont des coefficients strictement positifs et les vj des fonctions monotones
n
kj = 1 et 0 ≤ vj ≤ 1.
P
strictement croissantes. Il n’est pas restrictif d’imposer
j=1
Par opposition à l’approche classique, l’approche dite de sur-classement vise à construire
sur l’ensemble A une relation de sur-classement globale S enrichissant la relation de do-
minance. Elle vise à modéliser la part des préférences globales que l’on est en mesure
d’asseoir de façon suffisamment probante. La relation S est généralement construite à
l’aide d’un test de sur-classement appliqué à toutes les paires d’actions de A. Les mé-
thodes ELECTRE utilisent une relation de sur-classement pour l’agrégation des critères
de décision.

88
Chapitre 10

Méthodes ELECTRE

10.1 Introduction
Les méthodes ELECTRE 1 qui est une famille de méthodes mathématiques d’analyse
multicritère, développée par Thomas L. Saaty et du chercheur Bernard Roy, se présentent
comme des méthodes multicritères d’optimisation alternatives aux méthodes d’optimisa-
tion classiques basées sur la définition d’une fonction unique, souvent exprimée en terme
économique (monétaire) et qui reflète la prise en compte de plusieurs critères, souvent
incommensurables. L’intérêt de ces méthodes multicritères est de considérer un ensemble
de critères de différentes nature (exprimés en unité différentes), sans nécessairement les
transformer en critères économiques, ni en une fonction unique. Il ne s’agit pas de re-
chercher un optimum, mais une solution compromis qui peut prendre diverses formes :
choix, affectation ou classement. Plusieurs méthodes existent dans la littérature, dans le
cadre de ce chapitre nous allons définir le cadre théorique et les aspects méthodologies
des méthodes multicritères fondées sur le surclassement.
Ensuite nous allons illustrer leurs approches en étudiant 2 types de méthodes multi-
critères : Electre I et Electre-Tri, en fonction de la problématique considérée. La première
méthode Electre I, est préconisée pour répondre à une problématique de choix. La mé-
thode Electre-Tri est préconisée pour les problématiques de tri ou d’affectation.

10.2 Bases
On procède en deux temps :

• comparaisons deux à deux d’actions potentielles ou de classements d’actions,

• synthèse de ce qu’on a constaté précédemment.

Les méthodes d’agrégation partielle vont donc se différencier par leur façon de réaliser ces
deux étapes. La comparaison au sein d’un couple 2 d’actions se fait en utilisant la notion
de surclassement. Une action a en surclasse une autre b si :

• a est au moins aussi bonne que b relativement à une majorité de critères,


1. ELimination Et Choix Traduisant la REalité.
2. Rappelons qu’un couple est une paire orientée. Par conséquent la paire "ab", sans autre précision,
désigne l’un ou l’autre couple (a, b) ou (b, a), différents.

89
Regarder ce cours
CHAPITRE 10. MÉTHODES ELECTRE K. ISKAFI

• sans être trop nettement plus mauvaise relativement aux autres critères.
Ces deux conditions sont appelées conditions de concordance et de non discordance des
données (du tableau des performances) avec la proposition "a surclasse b".
Pour chaque critère, ces deux notions peuvent, chacune, être portées sur un graphe
dont l’axe horizontal reprend les différences de performances entre actions selon un critère
et l’axe vertical reprend soit la concordance soit la discordance (Figure 10.1).

a au moins aussi bonne que b Différence trop criarde


oui (concordance)
ou
(discordance)

Performance de b
non moins
performance de a

Figure 10.1 – Notions de concordance et de discordance

Pour quantifier concordance et discordance, il suffit alors d’accorder la valeur 1 au


"oui" du graphe et 0 au "non". Cela va permettre de calculer des indices de concordance
(locaux cj (a, b) puis l’indice de concordance global C(a, b)) et des indices de discordance
(dj (a, b)).
Pragmatiquement, voici ce que cela donne pour le calcul de l’indice de concordance
local dans le cas, le plus complet, d’un pseudo-critère (Figure 10.2).

cj(a,b)

Performance de b
moins
performance de a
q p

Figure 10.2 – Calcul de l’indice de concordance local

Si la différence de performances est inférieure à q, l’indice de concordance est égal


à 1, signifiant que les deux actions sont indifférentes (bIg a). Si la performance de b est
très nettement supérieure à celle de a, c’est-à-dire si la différence des performances est
supérieure à p, l’indice de concordance est égal à 0. En effet, b est strictement préférée à
a (bPg a) et donc a ne peut, sur le critère considéré, surclasser b. Enfin, si b est faiblement
supérieure à a, autrement dit si la différence de performance est comprise entre p et q,
b est faiblement préférée à a (bQg a). Cette situation ne concorde pas tout à fait avec la
proposition "a surclasse b" mais, comme on n’en est pas loin, on se contente de prendre
un indice de concordance compris entre 0 et 1, calculé par interpolation. Cette façon de
faire permet de tenir compte du flou ou de l’imprécision des données



 1 si gj (b) − gj (a) ≤ q
cj (a, b) = 0 si gj (b) − gj (a) > p
 p−(gj (b)−gj (a))


p−q
sinon

90
Regarder ce cours
K. ISKAFI 10.2. BASES

où 1 ≤ j ≤ n et n est le nombre des critères.


Une fois tous les indices locaux calculés, la moyenne pondérée de ces indices par les poids
des critères donne l’indice de concordance global
P
kj cj (a, b)
1≤j≤n
C(a, b) = P .
kj
1≤j≤n

P
kj
gj (a)≥gj (b)
Pour le cas d’un vrai critère (p = q = 0), on a C(a, b) = P .
kj
1≤j≤n
Les indices de discordances peuvent prendre diverses formes :

• mesure de la plus grande différence discordante de performances pour chaque couple


d’action (Electre I) ;

• utilisation d’un seuil de veto net, valeur (supérieure à p) au delà de laquelle une
différence de performances impliquant déjà bP a (i.e. g(b) − g(a) > p), donne un
indice de discordance dj (a, b) égal à 1, et en deçà de laquelle cet indice vaut 0,

• utilisation d’un seuil de veto flou : le mécanisme est le même que celui du veto
net si ce n’est que la valeur 0 est attribuée à l’indice de discordance seulement
pour des différences de performances impliquant au pire bQa. Si on a bP a et que la
différence de performances reste inférieure au seuil de veto, on effectue encore une
interpolation (Figure 10.3).



 0 si gj (b) − g(a) ≤ p
dj (a, b) = 1 si gj (b) − gj (a) > v
 p−(gj (b)−gj (a))


p−v
sinon
L’indice de discordance intervient aussi différemment selon les méthodes. A titre d’exemple
voici le graphe d’un pseudo-critère à seuil de veto flou (Figure 10.3).

dj(a,b)

Performance de b
moins
p v performance de a

Figure 10.3 – Utilisation du veto flou dans un pseudo-critère

Indices de concordance et de discordance peuvent éventuellement mener au calcul


d’un indice de crédibilité, mesurant l’intensité avec laquelle une action en surclasse une
autre. Voici comment cet indice peut être calculé :

C(a, b) Y
δ(a, b) = (1 − dj (a, b)) ,
1 − C(a, b) dj (a,b)>C(a,b)

91
Regarder ce cours
CHAPITRE 10. MÉTHODES ELECTRE K. ISKAFI

où on notera que, pour un calcul correct et afin d’éliminer les dj qui ne pèsent pas
valablement, il faut éliminer les dj inférieurs à l’indice de concordance (d’où la notation
dj (a, b) > C(a, b)).
Le degré de crédibilité δ n’est autre que l’indice de concordance C(a, b) affaibli par les
indices de discordance dj (a, b), mais dj (a, b) contribue à cet affaiblissement si et seulement
si il est supérieur à C(a, b). En effet, l’indice de concordance est un bon reflet de la crédi-
bilité du surclassement et aussi longtemps que les indices de discordance ont des valeurs
faibles par rapport à celle de l’indice de concordance, ce dernier continue à représenter
correctement cette crédibilité.

Remarques. L’examen de la formule ci-dessus révèle ainsi que l’indice de concordance


est multiplié par des fractions inférieures à l’unité. Ces fractions sont d’autant plus proches
de 0 que les dj sont proches de l’unité (donc que la discordance est grande) et que l’indice
de concordance s’éloigne de 1 (donc que la concordance est plus discutable). De plus :

• S’il existe au moins un critère j tel que dj (a, b) = 1, alors le degré de crédibilité
sera nul, quelle que soit l’importance de ce critère

si ∃j, dj (a, b) > C(a, b) : dj (a, b) = 1 ⇔ δ(a, b) = 0

• Lorsque l’indice de concordance globale est égal à l’unité, alors ceci implique que
tous les indices de discordance sont nuls et que le degré de crédibilité et aussi égal
à l’unité 
δ(a, b) = 1
C(a, b) = 1 ⇔ 
dj (a, b) = 0, ∀j | dj (a, b) > C(a, b)

• Si tous les indices de discordances sont inférieurs à l’indice de concordance, alors


l’indice de crédibilité est égal à l’indice de concordance

si ∀j | dj (a, b) < C(a, b) : δ(a, b) = C(a, b).

10.3 Problématique de Choix : Electre I


La méthode Electre I relève de la problématique α (procédure de sélection) : le pro-
blème est posé en termes de choix de la "meilleure" action.
Rappelons brièvement qu’en problématique de choix, le but est de déterminer au sein
de A, un sous-ensemble N ou noyau, contenant les actions les plus adéquates.

10.3.1 Electre I
Du fait des techniques de calcul utilisées dans cette méthode, il faut transformer toutes
les performances des actions en notes. Celles-ci varieront sur des échelles dont la longueur
évoluera de la même façon que les poids accordés aux critères.
Cela étant fait, on peut calculer l’indice de concordance en considérant chaque critère
comme un critère vrai (p = q = 0). L’indice de discordance sera établi en mesurant, pour
chaque critère dans chaque couple d’actions, l’éventuelle différence discordante entre les
deux actions, en n’en retenant que la plus grande pour ce couple, et en la divisant par la

92
Regarder ce cours
K. ISKAFI 10.3. PROBLÉMATIQUE DE CHOIX : ELECTRE I

plus grande longueur d’échelle (∆). Cela garantit un indice de discordance compris entre
0 et 1 :
max (gj (b) − gj (a))
1≤j≤n
di (a, b) = , 1 ≤ i ≤ n.

En plaçant chaque action à la fois en ligne et en colonne, on établit les matrices de
concordance et de discordance, dont la diagonale ne présente aucune valeur.
Il faut alors définir un seuil de concordance et un seuil de discordance. Ces seuils per-
mettront de réaliser les tests de concordance et de discordance (Figure 10.4). Le premier
indique une valeur minimale à dépasser (souvent supérieure à 0,5), le second une valeur
maximale à ne pas outrepasser (souvent inférieure à 0,5)

Figure 10.4 – Algorithme établissant les surclassements

On peut ainsi établir le graphe de surclassement, dont les actions sont les sommets.
Si l’une de ces actions (ai ) surclasse une autre action (ak ), une flèche partant de ai
et aboutissant à ak , unit les deux sommets. Cela permet de définir le noyau comme
l’ensemble des actions auxquelles n’aboutit aucune flèche . . . du noyau lui-même. Cette
définition laisse entrevoir les problèmes de circuit et d’intransitivité qui peuvent surgir.

Remarque. Pour l’analyse de robustesse, les paramètres à tester seront évidemment les
amplitudes d’échelles des critères, les poids et les seuils de concordance et de discordance.
Exemple 10.3.1.
Cet exemple traite l’aménagement d’un réseau de télécommunication selon 8 scénarios
de gestion évalués sur 5 critères reflétant la fonction de production 3 du réseau. Le tableau
3. lignes d’abonnés, modems, routeurs qui connectent au web, administration, marché, prix, etc.

93
Regarder ce cours
CHAPITRE 10. MÉTHODES ELECTRE K. ISKAFI

des performances, auquel on a ajouté les seuils d’indifférence, de préférence et de veto,


est repris au Tableau 10.32.

Critère 1 Critère 2 Critère 3 Critère 4 Critère 5


Action 1 0,720 3,560 1,340 0,62 44,340
Action 2 0,800 3,940 1,430 0,74 36,360
Action 3 0,760 3,630 1,380 0,89 48,750
Action 4 0,780 3,740 1,450 0,72 42,130
Action 5 0,740 3,540 1,370 0,73 36,990
Action 6 0,690 3,740 1,450 0,84 42,430
Action 7 0,700 3,280 1,280 0,83 47,430
Action 8 0,860 3,370 1,150 0,8 80,790
Poids 30 30 20 10 10
Seuil d’indifférence 0,02 0,05 0,02 0,05 2
Seuil de préférence 0,05 0,1 0,05 0,1 8
Seuil de veto 0,15 0,6 0,25 0,25 15
Sens du critère max. max. max. max. max.

Table 10.1 – Tableau des performances

En ce qui concerne Electre I, les 4 dernières lignes de ce tableau sont inutiles. Elles
serviront pour d’autres exemples le long de ce chapitre.
Avant d’utiliser le tableau, Electre I impose de retraduire les performances en notes
variant sur des échelles dont la longueur est proportionnelle aux poids des critères. Si on
pose la performance la plus basse égale à 0 (MIN = 0) et la plus haute égale au poids du
critère considéré (ki ), on obtient le Tableau 10.2 suivant la formule :
ki − MIN
∀xi ∈ [gmin , gmax ], yi = αi x+βi , yi ∈ [MIN, ki ], αi = , βi = MIN−αi gmin = ki −αi gmax .
gmax − gmin
• pour le critère 1 :
30 − 0
α1 = ' 176, 471, β1 = 30 − 176, 471 × 0, 86 ' −121, 765,
0, 86 − 0, 69

• pour le critère 3 :
20 − 0
α3 = ' 66, 667, β3 = 20 − 66, 667 × 1, 45 ' −76, 667.
1, 45 − 1, 15

Critère 1 Critère 2 Critère 3 Critère 4 Critère 5


Action 1 5,294 12,727 12,667 0,000 1,796
Action 2 19,412 30,000 18,667 4,444 0,000
Action 3 12,353 15,909 15,333 10,000 2,789
Action 4 15,882 20,909 20,000 3,704 1,299
Action 5 8,824 11,818 14,667 4,074 0,142
Action 6 0,000 20,909 20,000 8,148 1,366
Action 7 1,765 0,000 8,667 7,778 2,492
Action 8 30,000 4,091 0,000 6,667 10,000

Table 10.2 – Tableau des performances modifié pour Electre I

94
Regarder ce cours
K. ISKAFI 10.3. PROBLÉMATIQUE DE CHOIX : ELECTRE I

Les critères sont considérés comme des vrais critères (p = q = 0). Pour chacun, on peut
alors calculer un indice de concordance de l’action a sur l’action b (Tableau 10.3)
(
1 si g1 (b) ≤ g1 (a)
c1 (a, b) =
0 si g1 (b) > g1 (a)

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Action 1 1 1 1 1 1 0 0 1
Action 2 0 1 0 0 0 0 0 1
Action 3 0 1 1 1 0 0 0 1
Action 4 0 1 0 1 0 0 0 1
Action 5 0 1 1 1 1 0 0 1
Action 6 1 1 1 1 1 1 1 1
Action 7 1 1 1 1 1 0 1 1
Action 8 0 0 0 0 0 0 0 1

Table 10.3 – Indices de concordance Electre I pour le critère 1

Tous ces indices de concordances permettent de calculer l’indice de concordance global


(Tableau 10.4) P
kj
gj (a)≥gj (b)
C(a, b) = P .
kj
1≤j≤n

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Action 1 1,000 0,900 1,000 0,900 0,600 0,600 0,200 0,500
Action 2 0,100 1,000 0,200 0,300 0,100 0,400 0,200 0,500
Action 3 0,000 0,800 1,000 0,800 0,000 0,500 0,000 0,400
Action 4 0,100 0,700 0,200 1,000 0,100 0,700 0,200 0,500
Action 5 0,400 0,900 1,000 0,900 1,000 0,700 0,200 0,500
Action 6 0,400 0,600 0,500 0,800 0,300 1,000 0,400 0,400
Action 7 0,800 0,800 1,000 0,800 0,800 0,600 1,000 0,700
Action 8 0,500 0,500 0,600 0,500 0,500 0,600 0,300 1,000

Table 10.4 – Indice de concordance global Electre I

La méthode impose aussi de calculer un indice de discordance. Pour ce faire, pour


chaque couple d’action (a, b), on calcule les différences de performances g(b) − g(a) pour
tous les critères. On en retient la plus grande, que l’on divise par la plus grande longueur
d’échelle ∆, en l’occurrence, ∆ = 30 :
max (gj (b) − gj (a))
1≤j≤n
d(a, b) = .

Par exemple,
g5 (a1 ) − g5 (a2 ) 1, 796
d(a2 , a1 ) = = ' 0, 060
30 30
95
Regarder ce cours
CHAPITRE 10. MÉTHODES ELECTRE K. ISKAFI

Les résultats sont repris dans le Tableau 10.5.

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Action 1 0,000 0,060 0,000 0,017 0,055 0,176 0,424 0,422
Action 2 0,576 0,000 0,470 0,303 0,606 0,647 1,000 0,864
Action 3 0,333 0,185 0,000 0,210 0,198 0,412 0,530 0,511
Action 4 0,353 0,044 0,167 0,000 0,303 0,529 0,697 0,667
Action 5 0,136 0,005 0,000 0,012 0,000 0,294 0,394 0,489
Action 6 0,273 0,123 0,167 0,148 0,303 0,000 0,697 0,667
Action 7 0,259 0,111 0,000 0,136 0,123 0,059 0,000 0,289
Action 8 0,824 0,353 0,588 0,471 0,706 1,000 0,941 0,000

Table 10.5 – Indice de discordance Electre I

Tous ces indices doivent être comparés à des seuils. Le seuil de concordance sera fixé
à 0,7, le seuil de discordance à 0,3. L’algorithme établissant les surclassements (Figure
10.4) permet de construire le graphe des surclassements. Celui-ci reste relativement simple
dans l’exemple traité car il ne présente que peu de sommets. Toutefois, on ne donnera
ici que le tableau des surclassements (Tableau 10.6), affichant la valeur 1 lorsque l’action
de la colonne étudiée surclasse l’action de la ligne étudiée. Il suffit alors d’observer les
sommes conditionnelles selon les lignes pour déterminer au moins une première partie du
noyau : si une action présente une somme nulle, elle n’est surclassée par aucune autre
action. Ensuite, au sein des autres actions, il faut vérifier qu’aucune n’est surclassée par
une action du noyau précédemment établi.
Cette façon de travailler par tableau plutôt que par graphe permet, via un tableur,
de travailler sur des exemples plus imposants. De plus, comme on va le voir, certaines
méthodes affectent des valeurs aux arcs du graphe, ce qui en complique encore la lecture.

Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8 Som. Cond.
Action 1 - 1 1 1 0 0 0 0 3
Action 2 0 - 0 0 0 0 0 0 0
Action 3 0 1 - 1 0 0 0 0 2
Action 4 0 0 0 - 0 0 0 0 0
Action 5 0 1 1 1 - 0 0 0 3
Action 6 0 0 0 1 0 - 0 0 1
Action 7 1 1 1 1 1 0 - 0 5
Action 8 0 0 0 0 0 0 0 - 0

Table 10.6 – Tableau des surclassements Electre I

On voit que les actions 2, 4 et 8 sont non surclassées et constituent donc le noyau
recherché. Au sein des autres actions, il n’en est aucune qui ne soit pas surclassée par au
moins l’une des trois actions du noyau. Par conséquent, aucune autre ne rentre dans ce
dernier. Si les calculs avaient amené un surclassement de l’action 6 par l’action 7 et non
par l’action 4, par exemple, l’action 6 serait rentrée dans le noyau car non surclassée par
une action de ce dernier.

96
Regarder ce cours
K. ISKAFI 10.3. PROBLÉMATIQUE DE CHOIX : ELECTRE I

10.3.2 Electre Iv
Cette variante utilise les vraies valeurs des performances, sans les traduire au préalable
en notes avec échelles variables. Elle fait toujours appel au critère vrai mais cette fois
muni d’un veto net, d’où le "v" dans "Electre Iv".
Il faut alors choisir un seuil de veto pour chaque critère et préciser s’il s’agit de
minimiser ou maximiser ces critères (ce qui était inutile avec des notes).
Pour chaque hypothèse de surclassement, on calcule l’indice de concordance local et
on arrête le processus si l’on tombe sur une différence de performances qui déclenche le
veto. L’indice de concordance global est alors posé nul pour cette hypothèse. Il n’est donc
plus question de seuil de discordance, l’action de celui-ci étant remplacée par le seuil de
veto.
Du fait du mode de calcul différent utilisé ici, par rapport à Electre I, on peut trouver
des matrices de concordance différentes. Pour tester la robustesse vis-à-vis de la discor-
dance, on fait varier l’un après l’autre les seuils de veto, ce qui est évidemment moins
pratique que de travailler sur le seuil de discordance.

Exemple 10.3.2.

Pour cet exemple, on peut reprendre le tableau des performances initial en laissant
toutefois tomber les lignes des seuils d’indifférence et de préférence (ici encore, p = q = 0).
Le tableau des indices de concordance sans effet de veto est évidemment le même que
celui d’Electre I.
Les indices de concordance laucaux sont calculés à travers la relation
(
1 si gj (b) ≤ gi (a)
cj (a, b) = j = 1...5
0 si gj (b) > gj (a)

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Action 1 1,000 1,000 1,000 1,000 1,000 0,000 0,000 1,000
Action 2 0,000 1,000 0,000 0,000 0,000 0,000 0,000 1,000
Action 3 0,000 1,000 1,000 1,000 0,000 0,000 0,000 1,000
Action 4 0,000 1,000 0,000 1,000 0,000 0,000 0,000 1,000
Action 5 0,000 1,000 1,000 1,000 1,000 0,000 0,000 1,000
Action 6 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000
Action 7 1,000 1,000 1,000 1,000 1,000 0,000 1,000 1,000
Action 8 0,000 0,000 0,000 0,000 0,000 0,000 0,000 1,000

Table 10.7 – Indice de concordance local Electre Iv pour le critère 1

L’indice de concordance global pour chaque couple d’action est calculé sous l’effet des
seuils de veto 
 0 P

 si ∃j | gj (b) − gj (a) ≥ vj

 kj
C(a, b) = gj (a)≥gj (b)
 P sinon
kj




1≤j≤n

97
Regarder ce cours
CHAPITRE 10. MÉTHODES ELECTRE K. ISKAFI

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Action 1 1,000 0,900 1,000 0,900 0,600 0,600 0,200 0,500
Action 2 0,100 1,000 0,200 0,300 0,100 0,400 0,000 0,000
Action 3 0,000 0,800 1,000 0,800 0,000 0,500 0,000 0,400
Action 4 0,100 0,700 0,200 1,000 0,100 0,700 0,200 0,000
Action 5 0,400 0,900 1,000 0,900 1,000 0,700 0,200 0,500
Action 6 0,400 0,600 0,500 0,800 0,300 1,000 0,400 0,000
Action 7 0,800 0,800 1,000 0,800 0,800 0,600 1,000 0,700
Action 8 0,000 0,000 0,000 0,000 0,000 0,000 0,000 1,000

Table 10.8 – Indice de concordance global Electre Iv

Par exemple :

• Pour le couple (a1 , a3 ), C(a1 , a3 ) = 0 car g4 (a3 ) − g4 (a1 ) = 0, 27 ≥ v4 = 0, 25,

• Pour le couple (a1 , a8 ), C(a1 , a8 ) = 0 car g5 (a8 ) − g5 (a1 ) = 36, 45 ≥ v5 = 15,

• Pour le couple (a7 , a2 ), C(a7 , a2 ) = 0 car g2 (a2 ) − g2 (a7 ) = 0, 66 ≥ v2 = 0, 6.

Le Tableau 10.9 présente les surclassements avec un seuil de concordance de 0,7.

Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8 Som.Cond.


Action 1 - 1 1 1 0 0 0 0 3
Action 2 0 - 0 0 0 0 0 0 0
Action 3 0 1 - 1 0 0 0 0 2
Action 4 0 0 0 - 0 0 0 0 0
Action 5 0 1 1 1 - 0 0 0 3
Action 6 0 0 0 1 0 - 0 0 1
Action 7 1 1 1 1 1 0 - 0 5
Action 8 0 0 0 0 0 0 0 - 0

Table 10.9 – Surclassements Electre Iv

Par rapport à Electre I, les résultats sont les mêmes.

10.3.3 Electre Is
On emploie toujours un indice de concordance mais cette fois appliqué à un critère à
seuil, ce qui permet d’évincer la "brutalité" de la concordance d’Electre Iv. Néanmoins,
on recourt encore au veto net.
De par l’utilisation de pseudo-critère, il faut préciser en outre, par rapport à Electre
Iv, les seuils de préférence et d’indifférence de chaque critère.
Le reste de la méthode est analogue aux deux précédentes : matrice de concordance,
tableau de surclassement, conclusion et analyse de robustesse.

Exemple 10.3.3.

Pour Electre Is, toutes les lignes du tableau initial 10.32 des performances sont né-
cessaires. Cela a pour conséquence de modifier légèrement les indices de concordance par

98
Regarder ce cours
K. ISKAFI 10.3. PROBLÉMATIQUE DE CHOIX : ELECTRE I

rapport à Electre Iv (Tableau 10.11)


L’expression de l’indice de concordance local est



 1 si gj (b) − gi (a) ≤ qj
cj (a, b) =  0 si gj (b) − gj (a) > pj j = 1...5
 pj −(gj (b)−gj (a))

sinon
pj −qj

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Action 1 1,000 1,000 1,000 1,000 1,000 0,667 1,000 1,000
Action 2 0,000 1,000 0,333 1,000 0,000 0,000 0,000 1,000
Action 3 0,333 1,000 1,000 1,000 1,000 0,000 0,000 1,000
Action 4 0,000 1,000 1,000 1,000 0,333 0,000 0,000 1,000
Action 5 1,000 1,000 1,000 1,000 1,000 0,000 0,333 1,000
Action 6 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000
Action 7 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000
Action 8 0,000 0,000 0,000 0,000 0,000 0,000 0,000 1,000

Table 10.10 – Indice de concordance local Electre Is pour le critère 1

L’expression de l’indice de concordance global est

si ∃j | gj (b) − gj (a) ≥ vj (j ∈ {1, . . . , 5})




 P 0
kj cj (a,b)

C(a, b) = 1≤j≤n



P
kj
sinon
1≤j≤n

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Action 1 1,000 0,900 1,000 0,900 0,900 0,800 0,500 0,500
Action 2 0,100 1,000 0,300 0,700 0,200 0,400 0,200 0,000
Action 3 0,000 0,800 1,000 0,800 0,500 0,500 0,000 0,400
Action 4 0,100 0,900 0,500 1,000 0,200 0,700 0,200 0,000
Action 5 0,833 0,900 1,000 1,000 1,000 0,700 0,300 0,500
Action 6 0,400 0,800 0,500 0,800 0,300 1,000 0,500 0,000
Action 7 0,800 0,800 1,000 0,800 0,800 0,900 1,000 0,767
Action 8 0,000 0,000 0,000 0,000 0,000 0,000 0,000 1,000

Table 10.11 – Indice de concordance global Electre Is

Muni d’un seuil de concordance toujours égal à 0,7, on peut alors remplir le tableau
des surclassements (Tableau 10.12).

99
Regarder ce cours
CHAPITRE 10. MÉTHODES ELECTRE K. ISKAFI

Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8 Som. Cond.
Action 1 - 1 1 1 1 1 0 0 5
Action 2 0 - 0 0 0 0 0 0 0
Action 3 0 1 - 1 0 0 0 0 2
Action 4 0 1 0 - 0 0 0 0 1
Action 5 1 1 1 1 - 0 0 0 4
Action 6 0 1 0 1 0 - 0 0 2
Action 7 1 1 1 1 1 1 - 1 7
Action 8 0 0 0 0 0 0 0 - 0

Table 10.12 – Surclassements Electre Is

Par rapport à Electre Iv, l’action 4 quitte le noyau qui ne contient maintenant que les
actions 2 et 8.
Les résultats, on vient de le voir, sont différents pour les différentes méthodes, alors
qu’elles sont sensées extraire chacune les meilleures actions. Ces divergences trouvent
évidemment leurs causes dans la forme de critère utilisée et dans le type d’intervention
de la notion de discordance.

Remarque. Le noyau des méthodes Electre I ne renferme pas les meilleures actions
sensu stricto mais des actions les plus difficiles à comparer entre elles et parmi lesquelles
se trouve la "meilleure". Cela pose d’ailleurs le problème de la "seconde meilleure action" :
si la meilleure action, pour une raison ou une autre, n’est plus disponible, alors il ne faut
en aucun cas choisir celle qui semblerait être la "seconde" dans le noyau ! Il faut reprendre
toute la procédure à zéro.

10.4 Problématique d’Affectation : Electre Tri


Ces méthodes relèvent de la problématique β (procédure d’affectation) : le problème
est posé en termes d’attribution de chaque action à une catégorie prédéfinie.
Dans cette problématique d’affectation, on cherche à scinder l’ensemble A en un cer-
tain nombre de classes définies à l’avance. C’est justement là que réside la difficulté :
définir les frontières entre classes. En méthodologie multicritère, chaque action est quali-
fiée par plusieurs valeurs correspondant chacune à un critère. On risque donc de tomber
sur des problèmes de chevauchement de frontières. En outre, plusieurs actions peuvent
définir une même frontière.

10.4.1 Trichotomie
Comme son nom l’indique, cette procédure va trier les actions en 3 classes ("bon", "dou-
teux", "mauvais"), plusieurs actions pouvant définir une frontière. Ainsi, il faut construire
un ensemble B, constitué de toutes les actions-étalons "bonnes" et un ensemble M , com-
prenant toutes les actions-étalons "mauvaises".
On étudie ensuite les surclassements qui existent entre les actions à classer et les
actions-étalons 4 . Ces surclassements peuvent résulter de diverses procédures : algorithmes
4. Pour conserver une certaine cohérence, il est bon de vérifier aussi qu’aucune action-étalon mauvaise
ne surclasse une action étalon bonne.

100
Regarder ce cours
K. ISKAFI 10.4. PROBLÉMATIQUE D’AFFECTATION : ELECTRE TRI

de surclassement d’Electre I, Iv ou Is. Cela permet de définir 4 nombres pour chaque action
ai :
• B + ou nombre de fois que l’action à classer surclasse une action de B,
• B − ou nombre de fois qu’une action de B surclasse l’action à classer,
• M + ou nombre de fois que l’action à classer surclasse une action de M ,
• M − ou nombre de fois qu’une action de M surclasse l’action à classer.
Ces nombres sont utilisés dans l’organigramme repris à la Figure 10.5.

Figure 10.5 – Organigramme de la trichotomie de Moscarola et Roy

Les actions classées douteuses ne sont pas "entre bonne et mauvaise". Elles sont placées
dans cette catégorie parce que, sur base des données disponibles on ne peut les mettre
ailleurs.
Exemple 10.4.1.
Les données restent les mêmes par rapport aux exemples précédents mais il faut
ajouter au moins deux actions étalons : une action étalon "mauvaise" M et une action
étalon "bonne" B. Ces étalons doivent être déterminés avec le décideur car c’est lui qui
délimite les catégories auxquelles on va affecter les actions.

Critère 1 Critère 2 Critère 3 Critère 4 Critère 5


Action étalon "Mauvaise" 0,750 3,500 1,300 0,730 42,000
Action étalon "Bonne" 0,800 3,700 1,370 0,790 43,000

Table 10.13 – Actions étalons

101
Regarder ce cours
CHAPITRE 10. MÉTHODES ELECTRE K. ISKAFI

Disposant de ces données supplémentaires, on va utiliser ici un surclassement de type


Electre Iv, qui ne s’applique donc plus qu’entre actions à affecter et actions étalons. En
considérant un vrai critère (p = q = 0), on peut ainsi commencer par calculer des indices
de concordance locaux (
1 si g1 (b) ≤ g1 (a)
c1 (a, b) =
0 si g1 (b) > g1 (a)

Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8


c1 (ai , B) 0 1 0 0 0 0 0 1
c1 (B, ai ) 1 1 1 1 1 1 1 0
c1 (ai , M ) 0 1 1 1 0 0 0 1
c1 (M, ai ) 1 0 0 0 1 1 1 0

Table 10.14 – Indice de concordance trichotomique pour le critère 1

Les indices de concordance locaux mènent à l’indice de concordance global





 P0 si ∃i | gi (b) − gi (a) ≥ vi

 ki
C(a, b) =  gi (a)≥gi (b)
P sinon
ki




1≤i≤n

qui est modulé par le veto (voir Electre Iv)

Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8


C(ai , B) 0,100 0,800 0,400 0,500 0,200 0,600 0,200 0,500
C(B, ai ) 0,900 0,500 0,600 0,500 1,000 0,400 0,800 0,000
C(ai , M ) 0,600 0,900 1,000 0,900 0,600 0,700 0,200 0,500
C(M, ai ) 0,400 0,100 0,000 0,100 0,500 0,300 0,800 0,000

Table 10.15 – Indice de concordance global modulé par le veto

Par exemple :
• C(B, a8 ) = 0 car g5 (a8 ) − g5 (B) = 37, 79 ≥ v5 = 15,

• C(M, a8 ) = 0 car g5 (a8 ) − g5 (M ) = 38, 79 ≥ v5 = 15.


Il suffit maintenant de se fixer un seuil de concordance (ici, toujours 0,7) pour pouvoir
remplir le tableau des surclassements (Tableau 10.16).

Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8


(ai , B) 0 1 0 0 0 0 0 0
(B, ai ) 1 0 0 0 1 0 1 0
(ai , M ) 0 1 1 1 0 0 0 0
(M, ai ) 0 0 0 0 0 0 1 0

Table 10.16 – Surclassements relatifs à la trichotomie

Grâce à l’arbre reproduit à la Figure 10.5, on peut alors affecter chaque action à l’une
des trois catégories : bon, mauvais ou douteux. Il est à noter que les valeurs B + , B − ,

102
Regarder ce cours
K. ISKAFI 10.4. PROBLÉMATIQUE D’AFFECTATION : ELECTRE TRI

M + , M − ne peuvent prendre comme valeurs que 0 ou 1. Il n’y a, en effet, qu’une action


étalon bonne et une action étalon mauvaise :

a1 : B+ ≯0 → M− ≯0 ⇒ a1 douteux,
a2 : B+ >0 → M− ≯0 → B− ≯ B+ ⇒ a2 bon,
a3 : B+ ≯0 → M− ≯0 ⇒ a3 douteux,
a4 : B+ ≯0 → M− ≯0 ⇒ a4 douteux,
a5 : B+ ≯0 → M− ≯0 ⇒ a5 douteux,
a6 : B+ ≯0 → M− ≯0 ⇒ a6 douteux,
a7 : B+ ≯0 → M− >0 → M + ≯ M − ⇒ a7 mauvais,
a8 : B+ ≯0 → M− ≯0 ⇒ a8 douteux.

Ces résultats sont repris dans le Tableau 10.17.

Catégories N◦ d’action
Bons 2
Douteux 1, 3, 4, 5, 6, 8
Mauvais 7

Table 10.17 – Résultat de la trichotomie

10.4.2 Electre TRI


Cette méthode s’attaque aux problèmes à plus de trois classes. Mais dans ce cas, il n’y
a plus, entre chaque classe, qu’une action-étalon, du moins pour la procédure actuellement
opérationnelle.
La procédure Electre TRI appelle plusieurs exigences dont la plus importante est la
monotonie : chaque action-étalon doit être meilleure que l’action-étalon juste en dessous
d’elle dans au moins un critère et au moins égale dans les autres critères.
Les surclassements retenus ici sont pourvus d’un indice de crédibilité et d’un seuil
de crédibilité que l’indice doit dépasser pour que le surclassement soit considéré comme
effectif. La méthode Electre-Tri présente une règle d’affectation optimiste et une pessi-
miste.
Dans la première, on commence par le bas, avec le surclassement "étalon surclasse ai ".
Les indices vont aussi croissant. Dès qu’ils dépassent le seuil de crédibilité, et à condition
que le surclassement en sens contraire ait un indice inférieur à ce même seuil, ai est
affectée à la classe dont l’étalon est la frontière haute.
Dans la règle pessimiste, on compare chaque action ai à chaque étalon, en commençant
par la plus haut placée. Les indices de crédibilité du surclassement "ai surclasse l’étalon"
vont donc croissant. Dès que cet indice dépasse le seuil de crédibilité, ai est affectée à la
classe dont l’étalon est la frontière basse.
La règle pessimiste tend donc à pousser les actions vers le bas du tableau, tandis
que la règle optimiste les pousse vers le haut. Dans un cas réel, on choisit alors l’une
ou l’autre règle selon qu’on doit être respectivement exigeant ou laxiste. Cependant, un
détail fâcheux est la variabilité de l’ordre dans lequel les actions peuvent apparaître dans
les deux procédures. Cela est souvent dû au manque de comparabilité des actions vis-à-
vis des étalons. La procédure de surclassement d’Electre Tri est reproduite dans la figure
10.6.

103
Regarder ce cours
CHAPITRE 10. MÉTHODES ELECTRE K. ISKAFI

non
oui

non oui non oui

Figure 10.6 – Etablissement de la relation de surclassement

En ce qui concerne l’analyse de robustesse, c’est le seuil de crédibilité qui joue le rôle
de "bouton de réglage" dans Electre TRI.
Exemple 10.4.2.
Comme elles ne présentent qu’une seule action étalon par catégorie, on reprendra ici
les données de la trichotomie. Alors que cette dernière utilisait des surclassements de
type Electre Iv, Electre TRI va employer des pseudo-critères à veto flou et donc calculer
des indices de crédibilité. Cette relation est "floue" car il existe des couples où elle paraît
indiscutable et des couples où elle paraît très peu convaincante. cette plausibilité variant
d’un couple à l’autre est exprimée par un indice associé à chaque surclassement, le degré
de crédibilité du surclassement.
A titre de rappel, l’expression de l’indice de discordance pour le critère 1 est
si g1 (b) − g1 (a) ≤ p1 = 0, 05


 0
d1 (a, b) =  1 si g1 (b) − g1 (a) > v1 = 0, 15
 p1 −(g1 (b)−g1 (a))
p1 −v1
sinon
les résultats sont repris dans les tableaux suivants :

Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8


d1 (ai , B) 0,300 0,000 0,000 0,000 0,100 0,600 0,500 0,000
d1 (B, ai ) 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,100
d1 (ai , M ) 0,000 0,000 0,000 0,000 0,000 0,100 0,000 0,000
d1 (M, ai ) 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,600

Table 10.18 – Indice de discordance Electre TRI pour le critère 1

Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8


d2 (ai , B) 0,080 0,000 0,000 0,000 0,120 0,000 0,640 0,460
d2 (B, ai ) 0,000 0,280 0,000 0,000 0,000 0,000 0,000 0,000
d2 (ai , M ) 0,000 0,000 0,000 0,000 0,000 0,000 0,240 0,060
d2 (M, ai ) 0,000 0,680 0,060 0,280 0,000 0,280 0,000 0,000

Table 10.19 – Indice de discordance Electre TRI pour le critère 2

104
Regarder ce cours
K. ISKAFI 10.4. PROBLÉMATIQUE D’AFFECTATION : ELECTRE TRI

Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8


d3 (ai , B) 0,000 0,000 0,000 0,000 0,000 0,000 0,200 0,850
d3 (B, ai ) 0,000 0,050 0,000 0,150 0,000 0,150 0,000 0,000
d3 (ai , M ) 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,500
d3 (M, ai ) 0,000 0,400 0,150 0,500 0,100 0,500 0,000 0,000

Table 10.20 – Indice de discordance Electre TRI pour le critère 3

Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8


d4 (ai , B) 0,467 0,000 0,000 0,000 0,000 0,000 0,000 0,000
d4 (B, ai ) 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000
d4 (ai , M ) 0,067 0,000 0,000 0,000 0,000 0,000 0,000 0,000
d4 (M, ai ) 0,000 0,000 0,400 0,000 0,000 0,067 0,000 0,000

Table 10.21 – Indice de discordance Electre TRI pour le critère 4

Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8


d5 (ai , B) 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000
d5 (B, ai ) 0,000 0,000 0,000 0,000 0,000 0,000 0,000 1,000
d5 (ai , M ) 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000
d5 (M, ai ) 0,000 0,000 0,000 0,000 0,000 0,000 0,000 1,000

Table 10.22 – Indice de discordance Electre TRI pour le critère 5

Les indices de concordance locaux sont les suivants

si gi (b) − gi (a) ≤ qi


 1
ci (a, b) = 0 si gi (b) − gi (a) > pi i = 1...5
 pi −(gi (b)−gi (a))

pi −qi
sinon

Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8


c1 (ai , B) 0,000 1,000 0,333 1,000 0,000 0,000 0,000 1,000
c1 (B, ai ) 1,000 1,000 1,000 1,000 1,000 1,000 1,000 0,000
c1 (ai , M ) 0,667 1,000 1,000 1,000 1,000 0,000 0,000 1,000
c1 (M, ai ) 1,000 0,000 1,000 0,667 1,000 1,000 1,000 0,000

Table 10.23 – Indice de concordance local Electre TRI pour le critère 1

Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8


c2 (ai , B) 0,000 1,000 0,600 1,000 0,000 1,000 0,000 0,000
c2 (B, ai ) 1,000 0,000 1,000 1,000 1,000 1,000 1,000 1,000
c2 (ai , M ) 1,000 1,000 1,000 1,000 1,000 1,000 0,000 0,000
c2 (M, ai ) 0,800 0,000 0,000 0,000 1,000 0,000 1,000 1,000

Table 10.24 – Indice de concordance local Electre TRI pour le critère 2

105
Regarder ce cours
CHAPITRE 10. MÉTHODES ELECTRE K. ISKAFI

Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8


c3 (ai , B) 0,667 1,000 1,000 1,000 1,000 1,000 0,000 0,000
c3 (B, ai ) 1,000 0,000 1,000 0,000 1,000 0,000 1,000 1,000
c3 (ai , M ) 1,000 1,000 1,000 1,000 1,000 1,000 1,000 0,000
c3 (M, ai ) 0,333 0,000 0,000 0,000 0,000 0,000 1,000 1,000

Table 10.25 – Indice de concordance local Electre TRI pour le critère 3

Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8


c4 (ai , B) 0,000 1,000 1,000 0,600 0,800 1,000 1,000 1,000
c4 (B, ai ) 1,000 1,000 0,000 1,000 1,000 1,000 1,000 1,000
c4 (ai , M ) 0,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000
c4 (M, ai ) 1,000 1,000 0,000 1,000 1,000 0,000 0,000 0,600

Table 10.26 – Indice de concordance local Electre TRI pour le critère 4

Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8


c5 (ai , B) 1,000 0,227 1,000 1,000 0,332 1,000 1,000 1,000
c5 (B, ai ) 1,000 1,000 0,375 1,000 1,000 1,000 0,595 0,000
c5 (ai , M ) 1,000 0,393 1,000 1,000 0,498 1,000 1,000 1,000
c5 (M, ai ) 0,943 1,000 0,208 1,000 1,000 1,000 0,428 0,000

Table 10.27 – Indice de concordance local Electre TRI pour le critère 5

Les indices de concordance locaux mènent à l’indice de concordance global suivant


P
ki ci (a, b)
1≤i≤n
C(a, b) = P
ki
1≤i≤n

Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8


C(ai , B) 0,233 0,923 0,680 0,960 0,313 0,700 0,200 0,500
C(B, ai ) 1,000 0,500 0,838 0,800 1,000 0,800 0,960 0,600
C(ai , M ) 0,800 0,939 1,000 1,000 0,950 0,700 0,400 0,500
C(M, ai ) 0,801 0,200 0,321 0,400 0,800 0,400 0,843 0,560

Table 10.28 – Indice de concordance global Electre TRI

Maintenant, l’indice de concordance global et les indices de discordances locaux per-


mettent alors de calculer l’indice de crédibilité de chaque surclassement (Tableau 10.29)
C(a, b) Y
δ(a, b) = (1 − di (a, b)) ,
1 − C(a, b) di (a,b)>C(a,b)

sans oublier de mentionner que



∃i di (a, b) > C(a, b)
•  ⇔ δ(a, b) = 0
di (a, b) = 1

106
Regarder ce cours
K. ISKAFI 10.4. PROBLÉMATIQUE D’AFFECTATION : ELECTRE TRI


δ(a, b) =1
• C(a, b) = 1 ⇔
di (a, b) = 0 ∀i

• ∀i di (a, b) < C(a, b) =⇒ δ(a, b) = C(a, b).

Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8


δ(a, B) 0,114 0,923 0,680 0,960 0,313 0,700 0,045 0,150
δ(B, a) 1,000 0,500 0,838 0,800 1,000 0,800 0,960 0,000
δ(a, M ) 0,800 0,939 1,000 1,000 0,950 0,700 0,400 0,500
δ(M, a) 0,801 0,048 0,283 0,333 0,800 0,333 0,843 0,000

Table 10.29 – Indices de crédibilité Electre TRI

Pour pouvoir effectuer l’affectation, il faut se munir de trois éléments supplémentaires :


• un seuil de crédibilité λ,
• une action étalon fictive b∗ surclassant toutes les autres (autrement dit, δj (b∗ , ai ) =
1 ∀i, j et δj (ai , b∗ ) = 0 ∀i, j),
• une action étalon fictive m∗ surclassée par toutes les autres (autrement dit, δj (m∗ , ai ) =
0 ∀i, j et δj (ai , m∗ ) = 1 ∀i, j).
En choisissant λ = 0.7, les relations de surclassements suivantes sont obtenues en utilisant
l’organigramme 10.6 :

a1 a2 a3 a4 a5 a6 a7 a8
bon > < > I > I > R
mauvais I < < < I < > R

Table 10.30 – Relation de surclassement

Les deux règles d’affectation donnent alors les résultats du Tableau 10.31 :

Catégories Affectation Optimiste Affectation Pessimiste


bon a2 , a 4 , a 6 , a 8 a2
douteux a1 , a 3 , a 5 a3 , a 4 , a 6
mauvais a7 a1 , a 5 , a 7 , a 8

Table 10.31 – Affectations d’Electre TRI

Par exemple :
• Affectation Optimiste
M ≯ a1 →B > a1 ⇒ a1 douteux
M ≯ a2 →B ≯ a2 ⇒ a2 bon
M ≯ a3 →B > a3 ⇒ a3 douteux
M ≯ a4 →B ≯ a4 ⇒ a4 bon
M ≯ a5 →B > a5 ⇒ a5 douteux
M ≯ a6 →B ≯ a6 ⇒ a6 bon
M > a7 ⇒ a7 mauvais
M ≯ a8 → B ≯ a8 ⇒ a8 bon

107
Regarder ce cours
CHAPITRE 10. MÉTHODES ELECTRE K. ISKAFI

• Affectation Pessimiste

a1 ≯B → a1 ≯ M ⇒ a1 mauvais
a2 >B ⇒ a2 bon
a3 ≯B → a3 > M ⇒ a3 douteux
a4 ≯B → a4 > M ⇒ a4 douteux
a5 ≯B → a5 ≯ M ⇒ a5 mauvais
a6 ≯B → a6 > M ⇒ a6 douteux
a7 ≯B → a7 ≯ M ⇒ a7 mauvais
a8 ≯B → a8 ≯ M ⇒ a8 mauvais

Bien que les deux résultats soient évidemment différents, on note quand même une
certaine cohérence. L’action 2 est toujours la mieux classée, l’action 3 est toujours reléguée
dans la catégorie suivante, pendant que l’action 7 est placée dans la dernière catégorie.
On remarquera que ces résultats recoupent aussi ceux de la trichotomie.

10.5 Applications
Reprenons l’exemple qui traite l’aménagement d’un réseau de télécommunication selon
un ensemble A de 8 scénarios de gestion évalués sur 5 critères reflétant la fonction de
production du réseau.

Exercice 10.1. (Electre I)

Le tableau des performances est le suivant :

Critère 1 Critère 2 Critère 3 Critère 4 Critère 5


Action 1 0,72 3,560 1,340 0,62 44,340
Action 2 0,8 3,940 1,430 0,74 36,360
Action 3 0,76 3,630 1,380 0,89 48,750
Action 4 0,78 3,740 1,450 0,72 42,130
Action 5 0,74 3,540 1,370 0,73 36,990
Action 6 0,69 3,740 1,450 0,84 42,430
Action 7 0,7 3,280 1,280 0,83 47,430
Action 8 0,86 3,370 1,150 0,8 80,790
Poids 20 10 10 30 30

1. Compléter les performances traduites en notes variant sur des échelles dont la lon-
gueur est proportionnelle aux poids des critères (en posant la performance la plus
basse égale à 0 et la plus haute égale au poids du critère considéré).

108
Regarder ce cours
K. ISKAFI 10.5. APPLICATIONS

Critère 1 Critère 2 Critère 3 Critère 4 Critère 5


Action 1 3.529 4.242 6.333 0.000 5.388
Action 2 ... 10.000 9.333 13.333 0.000
Action 3 8.235 5.303 7.667 30.000 8.366
Action 4 10.588 6.970 10.000 ... 3.896
Action 5 5.882 3.939 7.333 12.222 0.425
Action 6 0.000 6.970 10.000 24.444 4.099
Action 7 1.176 0.000 4.333 23.333 7.475
Action 8 20.000 1.364 0.000 20.000 30.000

Table 10.32 – Tableau des performances modifié pour Electre I

2. Les critères sont considérés comme des vrais critères (p = q = 0). Compléter les
matrices de l’indice de concordance local d’Electre I de l’action a sur l’action b pour
tous les critères.

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Act. 1 1 1 1 1 1 0 0 1
Act. 2 0 1 0 0 0 0 0 ...
Act. 3 0 1 1 1 0 0 0 1
Act. 4 ... 1 0 1 0 0 0 1
Act. 5 0 1 1 1 1 0 0 1
Act. 6 1 1 1 1 1 1 1 1
Act. 7 1 1 1 1 1 0 1 1
Act. 8 0 0 0 0 0 0 0 1

Table 10.33 – Indice de concordance local Electre I pour le critère 1

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Act. 1 1 1 1 1 0 ... 0 0
Act. 2 0 1 0 0 0 0 0 0
Act. 3 0 1 1 1 0 1 0 0
Act. 4 0 1 0 1 0 1 0 0
Act. 5 1 1 1 1 1 1 0 0
Act. 6 0 1 0 1 0 1 0 0
Act. 7 ... 1 1 1 1 1 1 1
Act. 8 1 1 1 1 1 1 0 1

Table 10.34 – Indice de concordance local Electre I pour le critère 2

109
Regarder ce cours
CHAPITRE 10. MÉTHODES ELECTRE K. ISKAFI

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Act. 1 1 1 1 1 1 1 0 0
Act. 2 0 1 0 1 0 1 0 0
Act. 3 0 1 1 1 0 1 0 0
Act. 4 0 0 0 1 0 1 0 0
Act. 5 0 1 1 1 1 1 0 0
Act. 6 0 0 0 1 0 1 0 0
Act. 7 1 1 1 1 1 1 1 0
Act. 8 1 1 1 1 1 1 1 1

Table 10.35 – Indice de concordance local Electre I pour le critère 3

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Act. 1 1 1 1 1 1 1 1 1
Act. 2 0 1 1 0 0 1 1 1
Act. 3 0 0 1 0 0 0 0 0
Act. 4 0 1 1 1 1 1 1 1
Act. 5 0 1 1 0 1 1 1 1
Act. 6 0 0 1 0 0 1 0 0
Act. 7 0 0 1 0 0 1 1 0
Act. 8 0 0 1 0 0 1 1 1

Table 10.36 – Indice de concordance local Electre I pour le critère 4

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Act. 1 1 0 1 0 0 0 1 1
Act. 2 1 1 1 1 1 1 1 1
Act. 3 0 0 1 0 0 0 0 1
Act. 4 1 0 1 1 0 1 1 1
Act. 5 1 0 1 1 1 1 1 1
Act. 6 1 0 1 0 0 1 1 1
Act. 7 0 0 1 0 0 0 1 1
Act. 8 0 0 0 0 0 0 0 1

Table 10.37 – Indice de concordance local Electre I pour le critère 5

3. Construire la matrice de l’indice de concordance global Electre I.

110
Regarder ce cours
K. ISKAFI 10.5. APPLICATIONS

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Act. 1 1.000 ... 1.000 0.700 0.600 0.500 0.600 0.800
Act. 2 0.300 1.000 0.600 0.400 0.300 0.700 0.600 0.800
Act. 3 0.000 0.400 1.000 0.400 0.000 0.200 0.000 0.500
Act. 4 0.300 0.600 0.600 1.000 0.300 0.800 0.600 0.800
Act. 5 0.400 0.700 1.000 0.700 1.000 0.800 0.600 0.800
Act. 6 0.500 0.300 0.800 ... 0.200 1.000 0.500 0.500
Act. 7 0.400 0.400 1.000 0.400 0.400 0.500 1.000 0.600
Act. 8 0.200 0.200 0.500 0.200 0.200 0.500 0.400 1.000

Table 10.38 – Indice de concordance global Electre I

4. Calculer l’indice de discordance Electre I (en calculant, pour chaque couple (a, b),
les différences de performances g(b) − g(a) pour tous les critères, puis on en retient
la plus grande, que l’on divise par la plus grande longueur d’échelle).

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Act. 1 0.000 0.180 0.000 0.050 0.165 0.118 0.141 0.211
Act. 2 0.444 0.000 0.157 0.101 0.235 0.431 0.392 0.311
Act. 3 1.000 ... 0.000 0.630 0.593 0.275 0.235 0.333
Act. 4 0.370 0.130 0.078 0.000 0.157 0.353 0.314 0.333
Act. 5 0.407 0.014 0.000 0.037 0.000 0.196 0.157 0.244
Act. 6 0.815 0.370 0.078 0.444 0.407 0.000 0.232 0.333
Act. 7 0.778 0.333 0.000 0.407 ... 0.113 0.000 0.144
Act. 8 0.820 1.000 0.721 0.870 0.986 0.863 0.751 0.000

Table 10.39 – Indice de discordance Electre I

5. Si les indices sont soumis à un seuil de concordance de 0.7, et un seuil de discordance


de 0.3, construire le tableau des surclassements Electre I (des sommes condition-
nelles) en utilisant l’algorithme établissant les surclassements (Figure 10.4).

6. En déduire au sein de l’ensemble A, le noyau N contenant les actions les plus


adéquates.

Exercice 10.2. (Electre Iv)

Le tableau des performances, auquel on a ajouté les seuils de veto, est le suivant :

111
Regarder ce cours
CHAPITRE 10. MÉTHODES ELECTRE K. ISKAFI

Critère 1 Critère 2 Critère 3 Critère 4 Critère 5


Action 1 0,72 3,560 1,340 0,62 44,340
Action 2 0,8 3,940 1,430 0,74 36,360
Action 3 0,76 3,630 1,380 0,89 48,750
Action 4 0,78 3,740 1,450 0,72 42,130
Action 5 0,74 3,540 1,370 0,73 36,990
Action 6 0,69 3,740 1,450 0,84 42,430
Action 7 0,7 3,280 1,280 0,83 47,430
Action 8 0,86 3,370 1,150 0,8 80,790
Poids 20 10 10 30 30
Seuil de veto 0.15 0.6 0.25 0.25 15
Sens du critère max. max. max. max. max.

1. Les critères sont considérés comme des vrais critères (p = q = 0). Calculer l’indice
de concordance global d’Electre Iv de l’action a sur l’action b, sous l’effet du veto.

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Act. 1 1.000 0.700 1.000 0.700 0.600 0.500 0.600 0.800
Act. 2 0.300 1.000 0.600 0.400 0.300 0.700 0.000 ...
Act. 3 0.000 0.400 1.000 0.400 0.000 0.200 0.000 0.500
Act. 4 0.300 0.600 0.600 1.000 0.300 0.800 0.600 0.000
Act. 5 0.400 0.700 1.000 ... 1.000 0.800 0.600 0.800
Act. 6 0.500 0.300 0.800 0.400 0.200 1.000 0.500 0.000
Act. 7 0.400 0.400 1.000 0.400 0.400 0.500 1.000 0.600
Act. 8 ... 0.000 0.000 0.000 0.000 0.000 0.000 1.000

Table 10.40 – Indice de concordance global Electre Iv

2. Construire le tableau des surclassements d’Electre Iv en considérant un seuil de


concordance de 0.7.

3. En déduire le noyau de A contenant les actions les plus adéquates.

Exercice 10.3. (Electre Is)

Le tableau des performances, auquel on a ajouté les seuils d’indifférence, de préférence et


de veto, est le suivant :

112
Regarder ce cours
K. ISKAFI 10.5. APPLICATIONS

Critère 1 Critère 2 Critère 3 Critère 4 Critère 5


Action 1 0,72 3,560 1,340 0,62 44,340
Action 2 0,8 3,940 1,430 0,74 36,360
Action 3 0,76 3,630 1,380 0,89 48,750
Action 4 0,78 3,740 1,450 0,72 42,130
Action 5 0,74 3,540 1,370 0,73 36,990
Action 6 0,69 3,740 1,450 0,84 42,430
Action 7 0,7 3,280 1,280 0,83 47,430
Action 8 0,86 3,370 1,150 0,8 80,790
Poids 20 10 10 30 30
Seuil d’indifférence 0.02 0.05 0.02 0.05 2
Seuil de préférence 0.05 0.1 0.05 0.1 8
Seuil de veto 0.15 0.6 0.25 0.25 15
Sens du critère max. max. max. max. max.

1. Construire les matrices de l’indice de concordance global d’Electre Is de l’action a


sur l’action b.

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Act. 1 1.000 1.000 1.000 1.000 1.000 0.667 1.000 1.000
Act. 2 0.000 1.000 0.333 1.000 0.000 0.000 0.000 1.000
Act. 3 0.333 1.000 1.000 1.000 1.000 0.000 0.000 1.000
Act. 4 0.000 1.000 1.000 1.000 0.333 0.000 0.000 1.000
Act. 5 1.000 1.000 1.000 1.000 1.000 0.000 0.333 1.000
Act. 6 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000
Act. 7 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000
Act. 8 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000

Table 10.41 – Indice de concordance local Electre Is pour le critère 1

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Act. 1 1.000 1.000 1.000 1.000 1.000 1.000 0.000 0.000
Act. 2 0.000 ... 0.000 0.000 0.000 0.000 0.000 0.000
Act. 3 0.000 1.000 1.000 1.000 0.000 1.000 0.000 0.000
Act. 4 0.000 1.000 0.000 1.000 0.000 1.000 0.000 0.000
Act. 5 1.000 1.000 1.000 1.000 1.000 1.000 0.000 0.000
Act. 6 0.000 1.000 0.000 1.000 ... 1.000 0.000 0.000
Act. 7 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000
Act. 8 1.000 1.000 1.000 1.000 1.000 1.000 0.000 1.000

Table 10.42 – Indice de concordance local Electre Is pour le critère 2

113
Regarder ce cours
CHAPITRE 10. MÉTHODES ELECTRE K. ISKAFI

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Act. 1 1.000 1.000 1.000 1.000 1.000 1.000 0.000 0.000
Act. 2 0.000 1.000 0.000 1.000 0.000 1.000 0.000 0.000
Act. 3 0.333 1.000 1.000 1.000 1.000 1.000 0.000 0.000
Act. 4 0.000 1.000 0.000 1.000 0.000 1.000 0.000 0.000
Act. 5 0.667 1.000 1.000 1.000 1.000 1.000 0.000 0.000
Act. 6 0.000 1.000 0.000 1.000 0.000 1.000 0.000 0.000
Act. 7 1.000 1.000 1.000 1.000 1.000 1.000 1.000 0.000
Act. 8 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000

Table 10.43 – Indice de concordance local Electre Is pour le critère 3

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Act. 1 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000
Act. 2 0.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000
Act. 3 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000
Act. 4 0.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000
Act. 5 0.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000
Act. 6 0.000 0.000 1.000 0.000 0.000 1.000 1.000 0.333
Act. 7 0.000 0.000 1.000 0.000 0.000 1.000 1.000 0.667
Act. 8 0.000 0.000 1.000 0.000 0.000 1.000 1.000 1.000

Table 10.44 – Indice de concordance local Electre Is pour le critère 4

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Act. 1 1.000 0.000 1.000 0.000 0.000 0.000 1.000 1.000
Act. 2 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000
Act. 3 0.000 0.000 1.000 0.000 0.000 0.000 0.000 1.000
Act. 4 1.000 0.000 1.000 1.000 0.000 1.000 1.000 1.000
Act. 5 1.000 0.000 1.000 1.000 1.000 1.000 1.000 1.000
Act. 6 1.000 0.000 1.000 0.000 0.000 1.000 1.000 1.000
Act. 7 0.000 0.000 1.000 0.000 0.000 0.000 1.000 1.000
Act. 8 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000

Table 10.45 – Indice de concordance local Electre Is pour le critère 5

2. Calculer l’indice de concordance global d’Electre Is de l’action a sur l’action b, sous


l’effet du veto.

114
Regarder ce cours
K. ISKAFI 10.5. APPLICATIONS

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
Act. 1 1.000 ... 1.000 0.700 0.700 0.633 0.800 0.800
Act. 2 0.300 1.000 0.667 0.900 0.600 0.700 0.600 0.000
Act. 3 0.000 0.400 1.000 0.400 0.300 0.200 0.000 0.500
Act. 4 0.300 0.700 0.800 1.000 0.367 0.800 0.600 0.000
Act. 5 0.667 0.700 1.000 1.000 1.000 0.800 0.667 0.800
Act. 6 0.500 0.400 0.800 0.400 0.200 1.000 0.800 0.000
Act. 7 0.400 0.400 1.000 0.400 0.400 0.700 1.000 0.800
Act. 8 0.000 0.000 0.000 0.000 0.000 0.000 ... 1.000

Table 10.46 – Indice de concordance global Electre Is

3. Déterminer le tableau des surclassements Electre Is en considérant un seuil de


concordance de 0.7.

4. En déduire le noyau de A contenant les actions les plus adéquates.

Exercice 10.4. (Trichotomie)

Reprenons le tableau des performances, auquel on a ajouté les seuils de veto :

Critère 1 Critère 2 Critère 3 Critère 4 Critère 5


Action 1 0,72 3,560 1,340 0,62 44,340
Action 2 0,8 3,940 1,430 0,74 36,360
Action 3 0,76 3,630 1,380 0,89 48,750
Action 4 0,78 3,740 1,450 0,72 42,130
Action 5 0,74 3,540 1,370 0,73 36,990
Action 6 0,69 3,740 1,450 0,84 42,430
Action 7 0,7 3,280 1,280 0,83 47,430
Action 8 0,86 3,370 1,150 0,8 80,790
Poids 20 10 10 30 30
Seuil de veto 0.15 0.6 0.25 0.25 15
Sens du critère max. max. max. max. max.

On ajoute aussi deux actions étalons : une action étalon "mauvaise" M et une action
étalon "bonne" B. Puis on va utiliser un surclassement de type Electre Iv, qui ne s’applique
qu’entre actions a à affecter et actions étalons B et M .

Critère 1 Critère 2 Critère 3 Critère 4 Critère 5


Action étalon "Mauvaise" 0.75 3.5 1.3 0.73 42
Action étalon "Bonne" 0.8 3.7 1.37 0.79 43

1. Les critères sont considérés comme des vrais critères (p = q = 0). Compléter les
tableaux de l’indice de concordance local trichotomique pour chaque critère.

115
Regarder ce cours
CHAPITRE 10. MÉTHODES ELECTRE K. ISKAFI

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
c1 (a, B) 0 1 0 0 0 0 0 1
c1 (B, a) 1 1 1 1 1 1 1 0
c1 (a, M ) 0 1 1 1 0 0 0 1
c1 (M, a) 1 0 0 0 1 1 1 0

Table 10.47 – Indice de concordance local Trichotomique pour le critère 1

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
c2 (a, B) ... 1 0 1 0 1 0 0
c2 (B, a) 1 0 1 0 1 0 1 1
c2 (a, M ) 1 1 ... 1 1 1 0 0
c2 (M, a) 0 0 0 0 0 0 1 1

Table 10.48 – Indice de concordance local Trichotomique pour le critère 2

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
c3 (a, B) 0 1 1 1 1 1 0 0
c3 (B, a) 1 0 0 0 1 0 1 1
c3 (a, M ) 1 1 1 1 1 1 0 0
c3 (M, a) 0 0 0 0 0 0 1 1

Table 10.49 – Indice de concordance local Trichotomique pour le critère 3

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
c4 (a, B) 0 0 1 0 0 1 1 1
c4 (B, a) 1 1 0 1 1 0 0 0
c4 (a, M ) 0 1 1 0 1 1 1 1
c4 (M, a) 1 0 0 1 1 0 0 0

Table 10.50 – Indice de concordance local Trichotomique pour le critère 4

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
c5 (a, B) 1 0 1 0 0 0 1 1
c5 (B, a) 0 1 0 1 1 1 0 0
c5 (a, M ) 1 0 1 1 0 1 1 1
c5 (M, a) 0 1 0 0 1 0 0 0

Table 10.51 – Indice de concordance local Trichotomique pour le critère 5

2. Calculer l’indice de concordance global modulé par le veto.

116
Regarder ce cours
K. ISKAFI 10.5. APPLICATIONS

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
C(a, B) 0.300 0.400 0.700 0.200 0.100 0.500 0.600 0.800
C(B, a) 0.700 0.800 0.300 0.800 1.000 0.500 ... 0.000
C(a, M ) 0.500 0.700 1.000 0.700 0.500 0.800 0.600 0.800
C(M, a) ... 0.300 0.000 0.300 0.800 0.200 0.400 0.000

Table 10.52 – Indice de concordance global Trichotomique modulé par le véto

3. Construire le tableau des surclassements si le seuil de concordance est fixé à 0.7.

4. En utilisant l’organigramme 10.5, déduire les résultats de la trichotomie.

Exercice 10.5. (Electre-Tri)

Considérons un tableau des performances, auquel on a ajouté les seuils d’indifférence, de


préférence et de veto, ainsi que les données de la trichotomie :

Critère 1 Critère 2 Critère 3 Critère 4 Critère 5


Action 1 0,72 3,560 1,340 0,62 44,340
Action 2 0,8 3,940 1,430 0,74 36,360
Action 3 0,76 3,630 1,380 0,89 48,750
Action 4 0,78 3,740 1,450 0,72 42,130
Action 5 0,74 3,540 1,370 0,73 36,990
Action 6 0,69 3,740 1,450 0,84 42,430
Action 7 0,7 3,280 1,280 0,83 47,430
Action 8 0,86 3,370 1,150 0,8 80,790
Poids 20 10 10 30 30
Seuil d’indifférence 0.02 0.05 0.02 0.05 2
Seuil de préférence 0.05 0.1 0.05 0.1 8
Seuil de veto 0.15 0.6 0.25 0.25 15
Sens du critère max. max. max. max. max.

Critère 1 Critère 2 Critère 3 Critère 4 Critère 5


Action étalon "Mauvaise" 0.75 3.5 1.3 0.73 42
Action étalon "Bonne" 0.8 3.7 1.37 0.79 43

1. Calculer l’indice de discordance local pour tous les critères.


PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
d1 (a, B) 0.300 0.000 0.000 0.000 0.100 0.600 0.500 0.000
d1 (B, a) 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.100
d1 (a, M ) 0.000 0.000 0.000 0.000 0.000 0.100 0.000 0.000
d1 (M, a) 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.600

Table 10.53 – Indice de discordance local Electre Tri pour le critère 1

117
Regarder ce cours
CHAPITRE 10. MÉTHODES ELECTRE K. ISKAFI

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
d2 (a, B) 0.080 0.000 0.000 0.000 0.120 0.000 0.640 0.460
d2 (B, a) 0.000 0.280 0.000 0.000 0.000 0.000 0.000 0.000
d2 (a, M ) 0.000 0.000 0.000 0.000 0.000 0.000 0.240 0.060
d2 (M, a) 0.000 0.680 0.060 0.280 0.000 0.280 0.000 0.000

Table 10.54 – Indice de discordance local Electre Tri pour le critère 2

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
d3 (a, B) 0.000 0.000 0.000 0.000 ... 0.000 0.200 0.850
d3 (B, a) 0.000 0.050 0.000 0.150 0.000 0.150 0.000 0.000
d3 (a, M ) 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ...
d3 (M, a) 0.000 0.400 0.150 0.500 0.100 0.500 0.000 0.000

Table 10.55 – Indice de discordance local Electre Tri pour le critère 3

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
d4 (a, B) 0.467 0.000 0.000 0.000 0.000 0.000 0.000 0.000
d4 (B, a) 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
d4 (a, M ) 0.067 0.000 0.000 0.000 0.000 0.000 0.000 0.000
d4 (M, a) 0.000 0.000 0.400 0.000 0.000 0.067 0.000 0.000

Table 10.56 – Indice de discordance local Electre Tri pour le critère 4

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
d5 (a, B) 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
d5 (B, a) 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000
d5 (a, M ) 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
d5 (M, a) 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000

Table 10.57 – Indice de discordance local Electre Tri pour le critère 5

2. Calculer l’indice de concordance local pour tous les critères.


PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
c1 (a, B) 0.000 1.000 0.333 1.000 0.000 0.000 0.000 1.000
c1 (B, a) 1.000 1.000 1.000 1.000 1.000 1.000 1.000 0.000
c1 (a, M ) 0.667 1.000 1.000 1.000 1.000 0.000 0.000 1.000
c1 (M, a) 1.000 0.000 1.000 0.667 1.000 1.000 1.000 0.000

Table 10.58 – Indice de concordance local Electre Tri pour le critère 1

118
Regarder ce cours
K. ISKAFI 10.5. APPLICATIONS

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
c2 (a, B) 0.000 1.000 0.600 1.000 0.000 1.000 0.000 0.000
c2 (B, a) 1.000 0.000 1.000 1.000 1.000 1.000 1.000 1.000
c2 (a, M ) 1.000 1.000 1.000 1.000 1.000 1.000 0.000 0.000
c2 (M, a) 0.800 0.000 0.000 0.000 1.000 0.000 1.000 1.000

Table 10.59 – Indice de concordance local Electre Tri pour le critère 2

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
c3 (a, B) 0.667 1.000 1.000 1.000 1.000 1.000 0.000 0.000
c3 (B, a) 1.000 0.000 1.000 0.000 1.000 0.000 1.000 1.000
c3 (a, M ) 1.000 1.000 1.000 1.000 1.000 1.000 1.000 0.000
c3 (M, a) 0.333 0.000 0.000 0.000 0.000 0.000 1.000 1.000

Table 10.60 – Indice de concordance local Electre Tri pour le critère 3

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
c4 (a, B) 0.000 1.000 1.000 0.600 0.800 1.000 1.000 1.000
c4 (B, a) 1.000 1.000 0.000 1.000 1.000 1.000 1.000 1.000
c4 (a, M ) 0.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000
c4 (M, a) 1.000 1.000 0.000 1.000 1.000 0.000 0.000 0.600

Table 10.61 – Indice de concordance local Electre Tri pour le critère 4

PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
c5 (a, B) 1.000 ... 1.000 1.000 0.332 1.000 1.000 1.000
c5 (B, a) 1.000 1.000 0.375 1.000 1.000 1.000 0.595 0.000
c5 (a, M ) 1.000 0.393 1.000 1.000 ... 1.000 1.000 1.000
c5 (M, a) 0.943 1.000 0.208 1.000 1.000 1.000 0.428 0.000

Table 10.62 – Indice de concordance local Electre Tri pour le critère 5

3. Calculer l’indice de concordance global Electre TRI.


PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
C(a, B) 0.367 0.768 0.827 0.880 0.440 0.800 0.600 0.800
C(B, a) 1.000 ... 0.513 0.900 1.000 0.900 0.879 0.500
C(a, M ) 0.633 0.818 1.000 1.000 0.850 0.800 0.700 0.800
C(M, a) ... 0.600 0.263 0.733 0.900 0.500 0.529 0.380

Table 10.63 – Indice de concordance global Electre Tri

119
Regarder ce cours
CHAPITRE 10. MÉTHODES ELECTRE K. ISKAFI

4. Calculer l’indice de crédibilité Electre TRI en utilisant l’indice de concordance global


et les indices de discordance locaux.
PP
P PPAct. a Act.1 Act.2 Act.3 Act.4 Act.5 Act.6 Act.7 Act.8
Act. b PPPP
δ(a, B) 0.309 0.768 0.827 0.880 0.440 0.800 0.540 0.600
δ(B, a) 1.000 0.800 ... 0.900 1.000 0.900 0.879 0.000
δ(a, M ) 0.633 0.818 1.000 1.000 0.850 0.800 0.700 ...
δ(M, a) 0.896 0.480 0.214 0.733 0.900 1.000 0.529 0.000

Table 10.64 – Indice de crédibilité Electre Tri

5. Pour λ = 0.7, construire la relation de surclassement.

6. Déduire le résultat des deux affectations Optimiste et Pessimiste Electre-Tri.

120

Vous aimerez peut-être aussi