You are on page 1of 128

1 Recherche opérationnelle 2021-2022

UNIVERSITE DE LUBUMBASHI
FACULTE DES SCIENCES ECONOMIQUES ET DE GESTION
B.P. 1825
LUBUMBASHI

COURS DE RECHERCHE OPERATIONNELLE


(destiné aux étudiants de licence en sciences économiques et de gestion, en
Statistique ou en informatique de gestion)

Par
LOUIS SUMBA CHENGE
Professeur

ANNEE ACADEMIQUE 2020-2021


2 Recherche opérationnelle 2021-2022

OBJECTIFS DU COURS

OBJECTIF GLOBAL
A la fin de ce cours de recherche opérationnelle, l’étudiant de licence de gestion à qui
il est destiné doit être capable d’analyser et de représenter par des modèles
mathématiques appropriés des phénomènes économiques ou d’organisation et de leur
appliquer des techniques rationnelles d’optimisation en vue de définir les meilleures
décisions.
OBJECTIFS SPECIFIQUES
Pour atteindre l’objectif global ainsi défini, l’apprenant doit être capable :
1. En programmation linéaire
-) de définir et d’interpréter un programme linéaire ;
-) de traduire mathématiquement des problèmes d’organisation, après analyse de leur
fonctionnement, par des programmes linéaires correspondants ;
-) de résoudre des programmes linéaires à l’aides des méthodes de résolution enseignées ;
-) d’expliquer la paramétrisation de la fonction économique et de résoudre les programmes
paramétriques établis.
2. En théorie des graphes, l’étudiant doit être capable
-) de définir et de construire un graphe représentant un phénomène économique ou
d’organisation ;
-) de rechercher sur un graphe le chemin de valeur minimale ou maximale ;
-) d’appliquer les graphes et les techniques appropriées dans les problèmes
 de la recherche du flot maximal ;
 d’affectation optimale et de transport de coût minimal ;
-) de résoudre un problème d’ordonnancement par la recherche du chemin critique, des
intervalles de flottement des événements, des marges libres des opérations, etc.
3. En gestion de stocks, l’étudiant doit être capable
-) de définir un problème de gestion de stock et de le représenter graphiquement ;
-) de déterminer les rafales économiques à commander et les périodes de gestion dans les
modèles déterministes ;
-) de déterminer le stock optimal à réapprovisionner dans les modèles aléatoires de gestion de
stocks ;
3 Recherche opérationnelle 2021-2022

-) d’appliquer les méthodes classiques et particulières de réapprovisionnement permettant de


déterminer les quantités à commander et les dates de passation de commande.
4. En théorie de jeu, l’étudiant doit être capable
-) de définir et d’interpréter un jeu sur un tableau rectangulaire ;
-) d’utiliser des critères permettant d’appliquer des stratégies pures ou mixtes ;
-) de rechercher le point d’équilibre et la valeur de jeu ;
-) de rechercher la stratégie mixte optimale à l’aide de la programmation linéaire ;
-) d’appliquer la théorie de jeu pour solutionner certains problèmes de concurrence.

CONTENU DU COURS

CHAPITRE 0 : INTRODUCTION
1. Aperçu historique
2. Définition, problèmes et branches de la recherche opérationnelle

LA PROGRAMMATIO N LINEAIRE

CHAPITRE 1 : GENERALITES
1.1 Introduction
1.2 Expressions mathématiques des programmes linéaires
1.3 Variables d’écart
1.4 Définitions essentielles associées aux programmes linéaires
CHAPITRES 2 : QUELQUES PROBLEMES ECONOMIQUES DE
PROGRAMMATION LINEAIRE
2.1 Problème de nutrition
2.2 Problème de transport
2.3 Problème de production
2.4 Problème de placement
2.5 Problème d’importation
2.6 Problème de fabrication
Chapitre 3 : METHODES DE RESOLUTION DES PROGRAMMES LINEAIRES
3.0 Propriétés des programmes linéaires
3.1 Méthode graphique ou méthode de balayage
3.2 Algorithme de dénombrement ou méthode de sélection
4 Recherche opérationnelle 2021-2022

3.3 Méthode de Simplexe ou Méthode de Dantzig


3.4 Méthode de la base artificielle ou Méthode « M »
3.5 La dualité
CHAPITRE 4 : PROGRAMMES LINEAIRES PARAMETRIQUES
Introduction
4.1 Paramétrage de la fonction économique
4.2 Construction d’un intervalle de stabilité
4.3 Applications

THEORIE DES GRAPHES

CHAPITRE 5 : DEFINITIONS ET CONCEPTS GENERAUX


5.1 Introduction
5.2 Notion de graphe
5.3 Chemin et circuit
5.4 Graphes complet, symétrique, antisymétrique et fortement connexe
5.5 Graphe partiel et sous-graphe
5.6 Fermeture transitive
5.7 Application inverse Γ-1
5.8 Concepts non orientés
CHAPITRE 6 : QUELQUES APPLICATIONS LIEES A LA STRUCTURE D’UN
GRAPHE
6.1 Recherche d’un chemin de longueur minimum
6.2 Algorithme pour trouver la fermeture transitive Γ(xi)
6.3 Recherche des circuits dans un graphe
CHAPITRE 7 : GRAPHES VALUES ET QUELQUES APPLICATIONS
ECONOMIQUES DE LA THEORIE DES GRAPHES
7.0 Généralités sur les graphes valués
7.1 Recherche de chemin de valeur optimum
7.2 Problème du flot maximal
7.3 Problème d’affectation optimale. Algorithme hongrois
7.4 Problème de transport. Algorithme de Stepping-Stone (marche pied-escalier)
CHAPITRE 8 : PROBLEME D’ORDONNANCEMENT
8.1 Enoncé du problème d’ordonnancement
5 Recherche opérationnelle 2021-2022

8.2 Etablissement du graphe de programme


8.3 Date de réalisation de l’ensemble des travaux. Chemin critique. Intervalle de flottement
et marges des opérations

GESTION DE STOKS

CHAPITRE 9 : LES PRINCIPAUX MODELES DE GESTIONS DES STOCKS


9.1 Introduction
9.2 Les modèles de base de gestion
9.3 Modèles classiques de gestion des stocks
9.3.1 Les modèles déterministes
9.3.2 Les modèles aléatoires
CHAPITRE 10 : LES METHODES CLASSIQUES DE REAPPROVISIONNEMENT
10.1 Méthode de réapprovisionnement sur point de commande ou méthode Q
10.1.1 Principe et hypothèses de la méthode
10.1.2 Détermination du stock de protection
10.1.3 Conditions d’application de la méthode Q, ses avantages et inconvénients
10.2 Méthode de réapprovisionnement cyclique dite méthode P
10.2.1 Principe et fonctionnement de la méthode
10.2.2 Avantages et inconvénients de la méthode
10.2.3 Détermination du stock de protection

RECHERCHE OPERATIONNELLE ET CONCURRENCE

CHAPITRE 11 : THEORIE DES JEUX DE STRATEGIE


11.1 Introduction
11.2 Jeu sur un tableau rectangulaire
11.3 Choix d’un critère
11.4 Point d’équilibre d’un jeu rectangulaire
11.5 Stratégie pure et stratégie mixte
11.6 Propriétés diverses
11.7 Problèmes économiques de la théorie des jeux de stratégie
REFERENCE BIBLIOGRAPHIQUE
6 Recherche opérationnelle 2021-2022

CHAPITRE 0 : INTRODUCTION

1. APERÇU HISTORIQUE

La recherche opérationnelle (R.O) est la traduction des expressions anglaises


(Operationnal Research) et américaine (Opérations Research). Les risques de guerre, la
conduite des opérations militaires ont fourni à la recherche opérationnelle les conditions
favorables à son développement. L’un des premiers problèmes militaire de la recherche
opérationnelle fut la mission confiée à Archimède par Hiéron de trouver le moyen de résister
à l’attaque des vaisseaux. Mais au cours de la deuxième guerre mondiale la recherche
opérationnelle s’est véritablement révélée. Les substantiels résultats obtenus alors l’ont été
grâce à la conjonction de deux facteurs essentiels :
- Premièrement les besoins de la défense qui, en même temps qu’ils exigeaient une parade
efficace contre le danger, faisaient passer au second plan le coût élevé des recherches ;
- Deuxièmement les progrès réalisés sur le plan des mathématiques ont fourni aux chercheurs
de nouveaux procédés d’analyse. A ces progrès ajoutons ceux obtenus en informatique avec
la naissance des ordinateurs dits de la première génération (IBM 650, Gamma-Bull, …,
1955-1956). En effet, l’informatique a permis la résolution automatique des problèmes qui,
manuellement, ne pouvaient pas l’être.
Après la deuxième guerre mondiale, la recherche opérationnelle pénétra dans les
affaires, dans l’industrie ainsi que dans les administrations publiques. Aujourd’hui des
nouvelles applications de la recherche opérationnelle en médecine et en Santé Publique ont vu
le jour.

2. DEFINITION, PROBLEMES ET BRANCHES DE LA RECHERCHE


OPERATIONNELLE

La recherche opérationnelle est une discipline carrefour où se rencontrent les


économistes, les mathématiciens, les statisticiens et les informaticiens. Plusieurs définitions de
la recherche opérationnelle ont été conçues par différents chercheurs et possèdent de points
communs. Ainsi Robert Faure, Bernard Lemaire et Christophe Picouleau considèrent la
recherche opérationnelle comme « l’ensembles des méthodes et techniques rationnelles
d’analyse et de synthèse des phénomènes d’organisation utilisables pour élaborer de
meilleures décisions ». Ces phénomènes d’organisation sont représentés en recherche
opérationnelle par des modèles mathématiques qui prennent souvent la forme des équations.
7 Recherche opérationnelle 2021-2022

Le but est d’obtenir une solution optimale, c’est-à-dire celle qui minimise ou maximise la
performance du système étudié sous condition des contraintes précisées dans le modèle.
La recherche opérationnelle est un domaine vaste dans lequel on retrouve les
problèmes de divers types ayant donné naissance aux différentes branches de la recherche
opérationnelle. Les problèmes dont s’occupe la recherche opérationnelle ne concernent pas
ceux dont une solution de bon sens peut être appliquée naturellement. La recherche
opérationnelle s’occupe des problèmes ou situations pour lesquelles, pour une raison
quelconque, le bon sens humain se révèle faible ou impuissant. Ces problèmes peuvent être
groupés en trois grandes catégories ; à savoir :
1°. Les problèmes combinatoires : ce sont des problèmes pour lesquels il existe plusieurs
solutions dénombrables et pour lesquels l’utilisation d’un algorithme judicieux permet de
choisir la ou les solutions optimales. Les principaux problèmes de cette catégorie sont :
- Les problèmes d’investissement où il est question de rechercher les investissements les
plus rentables dans un projet déterminé ;
- Les problèmes de production qui consistent à optimiser les niveaux d’activité en tenant
compte des ressources qui sont limitées ;
- Les problèmes d’affectation qui consistent à affecter un ouvrier ou une machine à une
et une seule tâche, et chaque tâche à un seul ouvrier ou à une seule machine, de manière
à rendre minimum le coût d’affectation ;
- Les programmes de transport qui consistent à organiser le transport des marchandises
entre les centres de production (ou de départ) et les centres de consommation ou
distribution (ou centres d’arrivée) de manière la moins coûteuse possible ;
- Les problèmes de circulation à travers un réseau (problème du voyageur de commerce,
problème de flot maximal, problème de chemin optimal,…) ;
- Les problèmes d’ordonnancement : il s’agit ici de planifier dans le temps un ensemble
d’opérations ou tâches contribuant à la réalisation d’un même projet ainsi que de
déterminer la durée optimale de réalisation de ce projet.
Ces problèmes peuvent être traités à l’aide des méthodes et techniques des branches
de la recherche opérationnelle suivantes : la programmation linéaire, la théorie des graphes,
l’ordonnancement, la programmation dynamique, etc.
2°. Les problèmes stochastiques ou aléatoires. Ce sont des problèmes dans lesquels le hasard
joue un rôle important et est connu à travers les distributions de probabilité. Parmi ces
problèmes nous pouvons citer :
8 Recherche opérationnelle 2021-2022

- Les problèmes de file d’attente qui consistent à l’examen d’un système d’attente
alimenté par des arrivées des unités dans le système et diminué des sorties des unités
après un service dans un ou plusieurs guichets ou stations. Le but de l’étude d’un
système d’attente peut être celui de trouver le nombre de guichets, stations ou serveurs
qui minimise la somme des coûts d’attente des clients (sujets attendant d’être servis) ;
- Les problèmes de stock où il est question de déterminer les quantités à commander dans
une gestion des stocks et les dates auxquelles il faut commander ;
- Les problèmes de gestion et de renouvellement des équipements : ce sont des problèmes
qui consistent :
 pour les matériels qui se détériorent à déterminer le moment de leur
remplacement de façon à minimiser pour une période donnée la somme des
différents coûts (coût d’achat du matériel, coût d’entretien et de réparation de
l’ancien matériel, coût de la perte de rendement) ;
 et pour les matériels sujets à des pannes irréparables à déterminer le nombre des
pièces à remplacer, la fréquence de remplacement de façon à minimiser la
somme de différents coûts (coût du matériel considéré, coût de remplacement
des pièces, coût de la panne).
Cette deuxième catégorie de problèmes stochastiques est résolue par les méthodes
et techniques des branches de la recherche opérationnelle ci-après : les files d’attente, la gestion
des stocks, la gestions des équipements. La programmation dynamique dans le cas aléatoire
peut être mise à contribution pour résoudre certains problèmes de gestion des stocks ou de
gestion des équipements.
3°. Les problèmes concurrentiels. Les problèmes de concurrence sont des problèmes dans
lesquels chacun de deux joueurs ne connaît pas la décision prise par l’autre joueur, mais cherche
à minimiser (ou maximiser) les conséquences de la décision pouvant être prise par l’autre joueur
vis-à-vis de sa décision propre. Parmi ces problèmes on peut citer la politique
d’approvisionnement, de vente, le choix d’un moyen de publicité. Ces problèmes sont du ressort
de la théorie des jeux.
Le cours de la recherche opérationnelle et notamment l’apprentissage de certaines
de ses branches exige un pré requis solide en mathématique et en statistique. Les disciplines
développées dans ce cours sont exemptées dans la mesure du possible de leurs
développements mathématiques et accordent une plus grande importance aux résultats qui
résultent de ces développements.
9 Recherche opérationnelle 2021-2022

Nous regroupons l’étude des disciplines de la recherche opérationnelle et des


problèmes correspondants en trois parties subdivisées en chapitres, les trois parties ayant
trait aux trois catégories de problèmes de recherche opérationnelle présentés ci-dessus.
10 Recherche opérationnelle 2021-2022

LA PROGRAMMATION LINEAIRE

CHAPITRE 1 : GENERALITES

1.1 INTRODUCTION
La programmation linéaire est une branche de la recherche opérationnelle qui
s’occupe de l’étude et de la résolution des programmes linéaires. Elle trouve son application
dans divers domaines et différents problèmes à caractère combinatoire, notamment dans la
résolution des problèmes de transport, de production, d’affectation, d’investissement etc. Dans
ces problèmes, il est essentiellement question de trouver l’optimum d’une fonction linéaire dite
fonction économique en respectant certaines contraintes ou certaines conditions dont on ne
peut se passer. Ces conditions ou contraintes se présentent mathématiquement sous forme
d’équations ou inéquations du premier degré. L’on comprend dès lors pourquoi il y a le mot
« linéaire » dans la dénomination de cette branche de recherche opérationnelle : c’est parce
que la fonction économique et les contraintes sont des expressions dans lesquelles les variables
sont considérées à leur première puissance.
Parmi les contraintes, il y a celles de non négativité des variables, étant donné que
celles-ci expriment le niveau d’activité (quantité à produire, à transporter, à consommer,
nombre d’ouvriers, montant à investir ou à placer…).
Ainsi un programme linéaire est un modèle mathématique dans lequel il faut
optimiser une fonction économique linéaire de certaines variables, celles-ci étant liées entre
elles par un certain nombre d’équations ou inéquations du premier degré qui doivent être
respectées lors de cette optimisation et qui jouissent de la propriété de non négativité.

1.2 EXPRESSIONS MATHEMETIQUES DES PROGRAMMES


LINEAIRES
De ce qui précède, étant donné n variables x1, x2, … xn non négatives, un
programme linéaire de ces variables se présente comme suit :
11 Recherche opérationnelle 2021-2022

Optimiser Z  c1 x1  c2 x2  ...  cn xn (1).


Sous les contraintes :

a11 x1  a12 x2  ...  a1n xn  b1


a21 x1  a22 x2  ...  a2n xn  b2 (2)
……………………………….

am1 x1  am 2 x2  ...  amn xn  bm


x1  0, x2  0,..., xn  0 (3)

Les aij , les c j et les bi sont des constantes positives, négatives ou nulles.

Autres notations.
1. Notation condensée :
n
Optimiser Z   c j x j
j 1

a
j 1
ij x j  bi , i  1, 2,..., m
Contraintes :
x j  0, j  1, 2,..., n
2. Notation matricielle :
Fonction économique : Optimiser CX tel que
Contraintes : AX ≤ B, X ≥ 0,
où A = matrice m x n ;
C = matrice ligne 1 x n ;
B = matrice colonne m x 1
X = matrice colonne n x 1.

a11 a12 a13 ......... a1n

A=
a21 a22 a23 .......... a2n
………………………..

am1 am 2 am3 .......... amn

C  (c1 , c2 ,..., cn )
12 Recherche opérationnelle 2021-2022

b1 x1
b2 x2
. .
B= ; X =
. .
. .
bm xn

3. Ecriture vectorielle :
n n
Opt  c j x j tel que
j 1
x P
j 1
j j  P0

xj  0
b1 a11 a12 a1n
b2 a21 a22 a2n
. . . .
P0 = . , P1 = . , P2 = . ,. . . , Pn = .
. . . .
bm am1 am2 amn

NB: optimiser c’est soit minimiser, soit maximiser.


S’il faut minimiser (ou maximiser) la fonction économique, le problème est dit à minimum (à
maximum).

1.3 VARIABLES D’ECART


Très souvent dans la résolution des programmes linéaires, il est fait appel à un
système de contraintes sous forme d’équations. Si donc, initialement les contraintes (2), dites
contraintes physiques du problème, sont des inéquations, il faut transformer celles-ci en
équation par l’usage de certaines variables appelées variables d’écart.

Supposons que les inéquations soient de la forme ai1 x1  ai 2 x2  ...  ain xn  bi , i


= 1, …, m. Pour que ces inéquations se transforment en équations, il suffit d’ajouter au membre
de gauche une quantité positive ou nulle pour ramener l’égalité entre les deux membres. Cette

quantité que l’on ajoute s’appelle variable d’écart. Soit t i cette variable d’écart ; il vient :
ai1 x1  ai 2 x2  ...  ain xn  t i  bi
13 Recherche opérationnelle 2021-2022

Ainsi le système de contraintes physiques, initialement sous forme de


n n

a
j 1
ij x j  bi , i  1, 2,..., m devient a
j 1
ij x j  t i  bi , i  1, 2,..., m

Notons que les variables d’écart ti jouissent aussi de la propriété de non négativité.
Supposons maintenant que les inéquations soient de la forme :

ai1 x1  ai 2 x2  ...  ain xn  bi . Pour qu’elles deviennent équations on retranche au membre de


gauche une quantité positive ou nulle capable de ramener l’égalité entre les deux membres.

Soit ti cette quantité ou variable d’écart. Il vient : ai1 x1  ai 2 x2  ...  ain xn  t i  bi


La fonction économique ne change pas car les variables d’écart ne modifient pas sa
valeur.

1.4 DEFINITIONS ESSENTIELLES ASSOCIEES AUX


PROGRAMMES LINEAIRES
On appelle :
1 Solution : un ensemble de valeurs associées aux variables xj (j = 1, …, n) d’un
programme linéaire satisfaisant au système de contraintes physiques du programme
linéaire ;
2 Solution admissible : un ensemble de valeurs des variables xj non négatives satisfaisant
aux contraintes d’un programme linéaire (X ≥ 0).
3 Solution admissible optimale : une solution admissible qui optimise la fonction
économique du programme linéaire ;
4 Base : un ensemble de m variables xj dont le déterminant de leurs coefficients aij dans
le système des contraintes sous forme d’équations est différent de zéro. Chaque fois
que l’on détermine une base, on distingue les m variables de base et le n-m variables
hors base. Bien entendu, m < n où m et n sont respectivement le nombre des contraintes
et celui des variables du programme. Pour une base à déterminant non nul les vecteurs
Pj correspondants sont linéairement indépendants ;
5 Solution de base : une solution qui s’obtient en annulant n-m variables hors base et en
résolvant le système de m contraintes sous forme d’équations à m inconnues ou
variables de base. En supposant que les m premières variables xj soient les variables de
base, la solution de base peut s’écrire (x1,x2, …, xm, 0, 0, …, 0) ;
6 Solution de basqe admissible : une solution de base telle que les variables xj ≥ 0 ;
14 Recherche opérationnelle 2021-2022

7 Système :
- Standard ou saturé : un système de contraintes constitué uniquement des
égalités : AX = B ;
- Canonique : un système de contraintes défini uniquement des inégalités :
par exemple AX ≤ B ou AX ≥ B ;
- Mixte : un système de contraintes comportant à la fois des égalités et des
inégalités ;
8 Hyperplan : une contrainte dans un espace ayant plus de trois dimensions. Exemple :

3x1  4 x2  5x3  2 x4  4. Une contrainte dans un espace à trois dimensions s’appelle

plan (exemple : 3x1  4 2  x3  2 ) et une contrainte dans un espace à deux dimensions


s’appelle droite (exemple : x1  3 x 2  5 ) ;
9 Ensemble de points convexe : un ensemble tel que toute combinaison linéaire convexe
de deux points de cet ensemble appartient encore à cet ensemble. On appelle
combinaison linéaire convexe de deux points X et Y, respectivement de coordonnées
(x1, x2 , …, x n) et (y1, y2, …, yn), un point Z de coordonnées

(x1  y1 , x2  y 2 ,...,xn  y n ) avec  ,   0 et     1 . On écrit, pour

abréger, Z  X  Y ,  ,   0,     1;
10 Polyèdre convexe : un ensemble convexe des points ayant un nombre fini de sommets.
En fait, c’est une figure géométrique obtenue en représentant graphiquement le système
de contraintes. Un sommet est un point de l’ensemble convexe qui ne peut être obtenu
par aucune combinaison linéaire convexe de points de l’ensemble. Mais tout point P de
l’ensemble convexe peut être obtenu à partir de combinaison linéaire de sommets :
P   k S k avec 0   k  1 et  k 1
L’ensemble vide peut être considéré comme convexe.
Le sommet d’un polyèdre convexe s’appelle également point anguleux ou extrémal ;
11 Espace de contraintes : un repère orthonormé de dimension m dans lequel on
représente le vecteur Po et et les vecteurs Pj de la matrice A des contraintes.
12 Espace de décisions ou de solutions : un repère euclidien orthonormé des variables
(x1, x2, …, xn).
15 Recherche opérationnelle 2021-2022

CHAPITRE 2 : QUELQUES PROBLEMES ECONOMIQUES DE


PROGRAMMATION LINEAIRE

2.1 PROBLEME DE NUTRITION


Ce problème constitue une illustration classique en programmation linéaire. IL
consiste à nourrir par exemple une armée ou un bétail de la façon la plus économique tout en
satisfaisant aux conditions nutritives.
Soient n ingrédients ou aliments différents A1, A2, …, An à partir desquels on doit
choisir la quantité de chaque nourriture à consommer périodiquement (journellement,
hebdomadairement, mensuellement etc) par une personne ou un groupe de personnes. Ce
menu, mensuel par exemple, doit contenir certains éléments nutritifs tels que les protéines, les
sels minéraux, les vitamines, etc. Soient E1, E2, …, Em ces éléments nutritifs. On suppose que
pour une bonne alimentation chaque personne doit consommer par mois au moins :
b1 unités d’élément nutritif E1 ;
b2 unités d’élément nutritif E2 ;
………………………………..
bm unités d’élément nutritif Em.
Soit aij la quantité de l’élément nutritif Ei contenu dans une unité de l’ingrédient Aj.
La présentation sous forme de tableau permet une lecture simple.

Aj Qté minimale
Ei A1 A2 A3.............An Imposée
E1 a11 a12 a13............a1n B1
E2 a21 a22 a23............a2n b2
E3 a31 a22 a32............a2n b3
............... ....................................... .....
Em am1 am2 am3...........amn bm
Prix unitai- c1 c2 c3..............cn
Res

Ce tableau est désigné par l’expression de « matrice de nutrition ». On y lit ainsi qu’il y a par
exemple a12 unités d’élément nutritif E1 dans une unité de l’aliment A2, a21 unités d’élément
nutritif E2 dans une unité de l’aliment A1. Par ailleurs b1, b2, …, bm sont les quantités minimales
respectives des éléments nutritifs E1, E2, …, Em à consommer mensuellement dans le régime
16 Recherche opérationnelle 2021-2022

alimentaire, lequel est formé des aliments A1, A2, …, An. Les prix unitaires respectifs de ces
aliments sont c1, c2, …, cn.
Déterminer le régime approprié correspondant à chercher les quantités xj de chaque
aliment qu’il faut dans le régime. Si donc on consomme xj unités de Aj (j = 1,2, …, n), on aura
consommé pour chaque élément nutritif les quantités suivantes : pour
 E1 : a11x1 + a12x2 + … + a1nxn
 E2 : a21x1 + a22x2 + … + a2nxn
………………………...........
 Ei : ai1x1 + ai2x2 + … + ainxn
.............................................
 Em : am1x1 + am2x2 + … + amnxn
L’on sait qu’il faut au moins bi unités de Ei dans le régime (i = 1,2, …, m) ; d’où :
a11x1 + a12x2 + … + a1nxn ≥ b1.
a21x1 + a22x2 + … + a2nxn ≥ b2.
………………………………..
am1x1 + am2x2 + … + amnxn ≥ bm.

Bien entendu x j  0 j  1,...., n

Etant donné qu’une unité de l’aliment Aj coûte cj (j = 1, …, n), alors le coût du régime
alimentaire s’exprime par la fonction Z = c1x1 + c2x2 + … + cnxn.
Déterminer un régime alimentaire le plus économique correspond à résoudre le
programme linéaire suivant :
n
Minimiser Z   c j x j
j 1

sous les contraintes :


n

a
j 1
ij x j  bi , i  1,...., m

x j  0, j  1, , n
C’est la traduction mathématique du problème.

2.2 PROBLEME DE TRANSPORT


Les marchandises doivent être transportées d’un ensemble des centres de
production vers un ensemble des centres de distribution (consommation). Soient P1, P2, …, Pm
les centres de production et a1, a2, …, am les quantités respectives produites dans ces centres.
Soient encore B1, B2, …, Bn les centres de distribution et d1, d2, ...., dn les quantités minimales
17 Recherche opérationnelle 2021-2022

demandées (consommées) dans ces centres. Soit cij le coût de transport d’une unité de

marchandise du centre Pi au centre Bj.


Le problème est d’organiser le transport des marchandises de la manière la moins
coûteuse possible. Appelons xij la quantité de marchandises transportée du centre Pi au centre
Bj. On sait par ailleurs que chaque centre de production Pi ne peut délivrer au plus que ce qu’il
a produit, tandis que chaque centre de distribution Bj peut recevoir une quantité dépassant sa
demande minimale. Le problème actuel est de déterminer un programme d’expédition tel que :
m
1°. La demande dj au centre Bj soit satisfaite : x
i 1
ij  d j ( j  1, 2,...., n)

n
2°. Le ravitaillement au centre Pi ne soit pas dépassé : x
j 1
ij  a i (i  1, 2,...., m)

m n
3°. Le coût d’expédition soit minimum : c
i 1 j 1
ij xij

n m
4°. La demande totale soit au moins inférieure au ravitaillement total : d  a
j 1
j
i 1
i

Exemple numérique.
1
P1 D1 (d1 = 2)
a1 = 4 2
2 D2 (d2 = 3)
4
3
P2 D3 (d5 = 5)
a2 = 7 6
Le programme linéaire correspondant se présente comme suit :

Min Z  x11  2 x12  3x13  2 x21  4 x22  6 x23


sous les contraintes :
x11  x 21  2

x12  x 22  3

x13  x23  5
x11  x12  x13  4
x21  x22  x23  7
xij  0 (i  1, 2 ; j  1, 2, 3)
18 Recherche opérationnelle 2021-2022

2.3 PROBLEME DE PRODUCTION


Pour fabriquer deux produits P1 et P2, on doit leur faire subir des opérations sur trois
machines M1, M2 et M3 successivement, mais dans un ordre indifférent (pas de temps
d’attente). Les temps unitaires d’exécution sont donnés dans le tableau ci-après où par exemple
on peut relever que le temps unitaire d’exécution de la pièce P1 sur la machine M2 est de 7
minutes.

Machines
Produits M1 M2 M3
P1 11 minutes 7 minutes 6 minutes
P2 9 minutes 12 minutes 16 minutes

On suppose que les machines n’ont pas de temps mort par suite d’une attente d’un produit en
opération sur une autre machine, ce qui peut être réalisé puisque l’ordre des opérations est
indifférent.
Les heures disponibles pour chaque machine pour une activité d’un mois sont :
M1 : 165 heures = 9900 minutes ;
M2 : 140 heures = 8400 minutes ;
M3 : 160 heures = 9600 minutes.
Le produit P1 donne un profit unitaire de 900 F et P2 un profit unitaire de 1000 F.
On se propose de déterminer le programme linéaire qui maximise le profit de cette production.
Toutes les données du problème peuvent être consignées dans le tableau ci-après :
Machines
Produits M1 M2 M3 Profit unitaire
P1 11 minutes 7 minutes 6 minutes 900 F
P2 9 minutes 12 minutes 16 minutes 1000 F
Temps disponible des 9900 minutes 8400 minutes 9600 minutes
Machines
19 Recherche opérationnelle 2021-2022

Le programme linéaire correspondant est le suivant :


Max Z = 900 x1 + 1000 x2
sous les contraintes :
11 x1 + 9 x2 ≤ 9900 ;
7 x1 + 12 x2 ≤ 8400 ;
6 x1 + 16 x2 ≤ 9600 ;
xj ≥ 0, j = 1,2
où xj est le nombre de pièces Pj à produire pendant un mois.
Remarque : pour qu’un système de contraintes sous forme d’équations soit compatible, c’est-
à-dire ne soit pas contradictoire il faut que le nombre d’équations exprimant les contraintes soit
inférieur au nombre de variables ou inconnues : m < n.
2.4 PROBLEME DE PLACEMENT
Une société désire placer un capital de 100 unités monétaires. Son but est
évidemment de maximiser le revenu global de ce placement. Diverses modalités de placement
s’offrent à la société sur le marché financier. Chacune d’elles lui assure un intérêt déterminé se
chiffrant comme suit :
M1 : 3% ; M2 : 2,5% ; M3 : 3,5% ; M4 : 4% ; M5 : 5% ; M6 : 4,5%.
Pour des raisons définies la société se voit contrainte de placer 40% au moins du
capital selon les modalités M1 ou M2, 35% au plus selon les modalités M3 ou M4 et 35% au
plus selon les modalités M5 ou M6.
On observe d’abord que l’ensemble des données se réduit au tableau suivant :

Modalités d’investissement M1 M2 M3 M4 M5 M6
Intérêt 3% 2,5% 3,5% 4% 5% 4,5%
Sommes placées x1 x2 x3 x4 x5 x6
Contraintes 40% minimum 35% maximum 35% maximum
20 Recherche opérationnelle 2021-2022

On en tire facilement le programme linéaire suivant :

Maximiser Z  3x1  2,5x2  3,5x3  4 x4  5x5  4,5x6


x1  x2  x3  x4  x5  x6  100
x1  x 2  40

si x3  x4  35
x5  x6  35
x1 , x2 , x3 , x4 , x5 , x6  0
2.5 PROBLEME D’IMPORTATION
Un importateur de whisky dispose d’un marché illimité, mais se trouve restreint
par la réglementation des importations quant aux quantités mensuelles maximales autorisées
qui s’établissent comme suit :
Sir Roses : au plus 2000 bouteilles à 35 F ;
Highland Wind : au plus 2500 bouteilles à 25 F ;
Old Frenzy : au plus 1200 bouteilles à 20 F.
Il effectue trois mélanges A, B et C qu’il vend aux prix respectifs de 34 ; 28,5 et 22,5
la bouteille. Ces mélanges se définissent comme suit :
Pas moins de 60% de Sir Roses ;
A
Pas plus de 20% de Old Frenzy.

Pas moins de 15% de Sir Roses ;


B
Pas plus de 60% de Old Frenzy.

C Pas plus de 50% de Old Frenzy.


On cherche les mélanges qui rendent maximaux les bénéfices de l’importateur. On se
contentera de traduire le problème sous forme d’un programme linéaire.
Notons que la qualité C ne contient pas plus de 50% de Old Frenzy, au mieux elle
devrait donc contenir 50% de Highland Wind, mais dans ces conditions elle serait alors vendue
au prix d’achat. Cette procédure n’ayant pas de sens économique on ne saurait entreprendre
une telle fabrication.
21 Recherche opérationnelle 2021-2022

Appelons x11 la quantité de Sir Roses, x12 celle de Highland Wind et x13 celle de Old
Frenzy contenues dans le mélange A. Soient x21, x22 et x23 les quantités correspondantes
contenues dans le mélange B.
La fonction économique s’écrit :

Z  34( x11  x12  x13 )  28,5( x21  x22  x23 )  35( x11  x21 )  25( x12  x22 )  20( x13  x23 )

Soit Z   x11  9 x12  14 x13  6,5x21  3,5x22  8,5x23


Cette fonction économique Z est à rendre maximale sous les contraintes ci-dessous :

x11  x 21  2000 x11  0,60( x11  x12  x23 )

x12  x 22  2500 et x13  0,20( x11  x12  x13 )


x13  x23  1200 x23  0,60( x21  x22  x23 )
x21  0,15( x21  x22  x23 )

Soit : x11  x 21  2000 3x12  3x13  2 x11  0

x12  x 22  2500 et 4 x13  x11  x12  0


x13  x23  1200 2 x23  3x21  3x22  0
3x22  3x23  17 x21  0
2.6 PROBLEME DE FABRICATION
Une entreprise a la faculté de fabriquer sur une machine donnée, travaillant 45
heures par semaine, trois produits différents P1, P2 et P3. L’article P1 laisse un revenu net de 4
F, l’article P2 un revenu de 12 F et l’article P3 un revenu de 3 F. Les rendements horaires de la
machine sont respectivement pour chacun des trois produits et dans l’ordre 50, 25 et 75. Enfin
les ventes possibles sont limitées comme suit : 1000 objets P1, 500 objets P2 et 1500 objets P3.
Comment répartir la production de façon à maximiser le revenu de l’entreprise ?
Le programme linéaire correspondant se présente comme suit, si l’on appelle x 1 la
quantité à fabriquer du produit P1, x2 la quantité correspondante de P2 et x3 celle de P3.
22 Recherche opérationnelle 2021-2022

Fonction économique à maximiser : Z  4 x1  12 x2  3x3


Contraintes : x1  1000

x 2  500 contraintes de production maximale.

x3  1500
x1 x x
 2  3  45 : contrainte de temps disponible
50 25 75

x1 , x2 , x3  0 : contraintes de non négativité.


23 Recherche opérationnelle 2021-2022

CHAPITRE 3 : METHODES DE RESOLUTION DES PROGRAMMES LINEAIRES

3.0 PROPRIETES DES PROGRAMMES LINEAIRES


Les méthodes de résolution des programmes linéaires s’appuient sur les propriétés
ou théorèmes ci-après :
1. L’ensemble des solutions satisfaisant aux contraintes d’un programmes linéaire est
convexe : {X/AX ≤ B, X ≥0} est convexe.
2. Toute solution de base admissible est un sommet de C = {X/AX ≤ B, X ≥0}, c’est-à-dire
c’est un sommet de l’ensemble des solutions satisfaisant aux contraintes du programme
linéaire. Tout sommet de l’ensemble C = {X/AX ≤ B, X ≥0} est une solution de base
admissible.
3. L’ensemble C = {X/AX ≤ B, X ≥0} ou ensemble des solutions satisfaisant aux contraintes
du programme linéaire est soit vide, soit un polyèdre convexe, soit un ensemble
polyédrique convexe non borné.
4. Dans le cas où P = {X/AX = B, X ≥0} est un polyèdre convexe non vide la fonction
économique prend son minimum ou son maximum en un sommet ou éventuellement en
une combinaison linéaire des sommets. Si la fonction économique C(X) est optimum en
plusieurs sommets, C(X) est optimum en toute combinaison linéaire convexe de ces
sommets. Cette combinaison ne contient jamais de points intérieurs au polyèdre, mais
seulement des points d’une de ses faces ou d’un de ses segments.

3.1 METHODE GRAPHYQUE OU METHODE DE BALAYAGE


Nous allons illustrer la présentation de cette méthode en résolvant un programme
linéaire. Soit le problème de fabrication dont le programme ci-après a été établi au point 2.3 :
Maximiser Z = 900 x1 + 1000 x2 tel que :
11 x1 + 9 x2 ≤ 9900
7 x1 + 12 x2 ≤ 8400
6 x1 + 16 x2 ≤ 9600
x1 ≥ 0, x2 ≥ 0.
Résoudre un programme linéaire consiste à rechercher sa solution admissible optimale.
La méthode graphique part de la représentation graphique des contraintes dans
l’espace des solutions. Dans le cas d’espèce, les droites qui séparent la zone admissible de la
zone non admissible de chaque contrainte sont :
d1 ≡ 11 x1 + 9 x2 = 9900.
24 Recherche opérationnelle 2021-2022

d2 ≡ 7 x1 + 12 x2 = 8400.
d3 ≡ 6 x1 + 16 x2 = 9600.

d1

1000

d2
d3
B
500
C
D

E
A 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1500
1700
Z = 90000

La représentation graphique des contraintes du programme ci-dessus consiste à


dessiner les droites d1, d2 et d3, et à considérer l’espace du plan dont les coordonnées des points
vérifient les inégalités. On obtient ainsi un polyèdre convexe à 5 sommets ABCDE (Voir partir
non hachurée du graphique). L’ensemble des points de ce polyèdre convexe donne l’ensemble
des solutions admissibles.
Soit par exemple la solution x1 = 450 et x2 = 100 : c’est le point F(450 ; 100). Pour
ce point Z = 900 x 450 + 1000 x 100 = 505000 F. Ceci n’est pas le maximum de Z puisqu’on
peut augmenter les valeurs de x1 et x2, et par conséquent celle de Z. De même en considérant
la solution x1 = 266 et x2 = 500 (points G sur d3), on obtient Z = 900 x 266 + 1000 x 500 =
729400 F. Ceci ne fournit pas non plus le maximum de Z.
Représentons aussi la fonction Z sur le graphique en lui donnant une valeur
arbitraire de façon à permettre la représentation, par exemple Z = 90000. Déplaçons la droite
25 Recherche opérationnelle 2021-2022

Z parallèlement à elle-même de façon à accroître les valeurs de x1 et de x2. En procédant ainsi,


on remarque que le point D = d1 ∩ d2 donne la plus grande valeur à Z. Ce point est un sommet
du polyèdre convexe, c’est-à-dire une solution de base admissible. Il est tel que si l’on déplace
encore la droite Z dans la même direction, elle se trouvera complètement en dehors du polyèdre
convexe dans la zone hachurée. D est le point de coordonnées x1 = 626 et x2 = 334 obtenues
par résolution du système des équations des droites d1 et d2.
Le maximum de Z est donc 900 x 626 + 1000 x 334 = 897400 F. Il correspond à la
saturation des machines M1 et M2, la machine M3 restant encore disponible pendant 9600 – (6
x 626 + 16 x 334) = 500 minutes.
Exemple d’un régime alimentaire.
On se propose de réaliser une alimentation économique des bestiaux, alimentation
qui contient obligatoirement quatre sortes de composants nutritifs A, B, C, D. L’industrie
alimentaire produit précisément deux aliments M et N qui contiennent ces composants. La
quantité de chaque composant nutritif contenue dans 1 kg de chaque aliment, la quantité
minimale de chaque composant nutritif exigée pour l’alimentation journalière d’un animal et
le coût unitaire par kg de chaque aliment sont contenus dans la matrice de nutrition qui suit :

Aliments M N Quantité minimale


Composant nutritif exigée par jour
A 100 g = 0,1 kg 0 0,4 kg
B 0 100 g = 0,1 kg 0,6 kg
C 100g = 0,1 kg 200 g = 0,2 kg 2 kg
D 200 g = 0,2 kg 100g = 0,1 kg 1,7 kg
Coût unitaire 10 F/kg 4 F/kg

Quelle quantité d’aliment M et N doit-on utiliser par jour et par animal pour réaliser
l’alimentation la moins coûteuse ?
Soient x1 et x2, les quantités respectives en kg de M et N à consommer par jour et
par animal.
26 Recherche opérationnelle 2021-2022

Le programme linéaire correspondant se présente comme suit :


Minimiser Z = 10 x1 + 4 x2
sous les contraintes
0,1 x1 + 0 x2 ≥ 0,4.
0 x1 + 0,1 x2 ≥ 0,6.
0,1 x1 + 0,2 x2 ≥ 2.
0,2 x1 + 0,1 x2 ≥ 1,7.
x1 ≥ 0, x2 ≥ 0.

Résolution par la méthode graphique.


Les droites correspondant aux contraintes sont :
d1 ≡ 0,1 x1 = 0,4
d2 ≡ 0,1 x2 = 0,6
d3 ≡ 0,1 x1 + 0,2 x2 = 2
d4 ≡ 0,2 x1 + 0,1 x2 = 1,7
Représentation graphique :
27 Recherche opérationnelle 2021-2022

En plaçant Z présentement dans la zone hachurée vers la zone non hachurée, le premier point
de cette dernière zone qui sera rencontré par Z correspond au minimum. C’est le point I1 de
coordonnées (4 ; 9) se trouvant à l’intersection de d1 et d4 qui donne le minimum de Z = (10 x
4) + (4 x 9) = 76 F. On remarque encore que le minimum correspond à un sommet du polyèdre,
c’est-à-dire une solution de base admissible. Ce minimum correspond à la consommation
minimale des composants A et D et il y a dépassement de la quantité minimale prescrite pour
B et C. En effet,
0,1 x 9 = 0,9 >0,6 soit un dépassement de 0,3 kg de B ;
0,1 x 4 + 0,2 x 9 = 2,2 > 2 soit un dépassement de 0,2 kg de C.
Exercice.
Résoudre par la méthode graphique le programme linéaire ci-après :
1
Maximiser Z  x  y tel que :
2
x ≤2
x +y≤3
-x + y ≤ 1
x, y ≥ 0
Limite de la méthode graphique.
Cette méthode ne permet que la résolution des programmes linéaires ayant deux
variables ou tout au plus trois. En effet, chaque variable étant représentée par un axe, il est
impossible de représenter un système orthonormé de plus de trois axes sur une feuille de papier
à deux dimensions.
3.2 ALGORITHME DE DENOMBREMENT OU METHODE DE
SELECTION
Principe et justification de la méthode.
Nous avons vu que l’optimum de la fonction économique d’un programme linéaire
a lieu à un sommet (ou quelques sommets) du polyèdre convexe qui en est alors la solution
optimale. C’est-à-dire la solution optimale d’un programme linéaire est une solution de base
admissible. C’est pourquoi le principe de la méthode de dénombrement consiste à rechercher
toutes les solutions de base du système {X/AX = B}. Uniquement pour les solutions de base
admissibles on calculera la valeur de la fonction économique. On choisira la solution de base
admissible qui optimise la fonction économique.
Lorsque le système AX = B comporte m équations et n inconnues, la méthode
consiste à choisir m variables parmi les n inconnues, à annuler les n – m autres restantes et à
résoudre le système composé de m équations et m inconnues. Il faut procéder ainsi et résoudre
28 Recherche opérationnelle 2021-2022

tous les systèmes possibles de m équations à m inconnues. Il y en aura au total


n!
C nm  . On comprend tout de suite que si n et m sont grands, la méthode devient
m!(n  m)!
impraticable et fastidieuse.
Exemple : résoudre le programme linéaire ci-après :
1
Maximiser Z  x1  x 2 tel que
2
x1 ≤ 2
x1 + x2 ≤ 3
-x1 + x2 ≤ 1
x1≥ 0, x2 ≥ 0
Il faut convertir le système de contraintes en égalités par l’introduction des variables d’écart.
Il vient le programme ci-après :
1
Maximiser Z  x1  x 2
2
sous les contraintes :
x1 + t1 = 2
x1 + x2 + t2 = 3
-x1 + x2 + t3 =
x1  0, x2  0, t1  0, t 2  0, t 3  0
Tableau des résultats de calcul
Variables x1 x2 t1 t2 t3 Commentaires Z
Annulées
(x1, x2) 0 0 2 3 1 S.B.A 0
(x1, t1) 0 - 0 - - Impossible -
(x1, t2) 0 3 2 0 -2 S.B.N.A -
(x1, t3) 0 1 2 2 0 S.B.A 1
(x2, t1) 2 0 0 1 3 S.B.A 1
(x2, t2) 3 0 -1 0 4 S.B.N.A -
(x2, t3) -1 0 3 4 0 S.B.N.A -
(t1, t2) 2 1 0 0 2 S.B.A 2
(t1, t3) 2 3 0 -2 0 S.B.N.A -
(t2, t3) 1 2 1 0 0 S.B.A 2,5
29 Recherche opérationnelle 2021-2022

Z est maximum pour x1  1, x2  2, t1  1, t 2  t 3  0 ; alors Z  2,5


Exercice : Résoudre le programme linéaire ci-après par la méthode de dénombrement :
Max. F = 3 x + 4 y + 2 z tel que :
x+y+z≤2
z≤1
x+y≤1
x ≥ 0, y ≥ 0, z ≥ 0.

3.3 METHODE DE SIMPLEXE OU METHODE DE DANTZIG


3.3.1 Introduction
La méthode de Simplexe, c’est la méthode générale de résolution des programmes
linéaires. On l’appelle aussi méthode de Dantzig car, elle a été mise au point en 1947 par
George Dantzig.
Le principe de l’algorithme de Simplexe consiste à :
1° Déterminer une première base admissible, c’est-à-dire à se positionner à un sommet du
polyèdre convexe ;
2° Etablir une procédure permettant d’évoluer de base en base (de sommet en sommet à la
surface du polyèdre) en améliorant (diminution ou augmentation selon le cas) la valeur de
la fonction économique ;
3° Arrêter la procédure dès qu’il n’est plus possible de diminuer ou d’augmenter la valeur de
la fonction économique.
L’application de l’algorithme nécessite donc la connaissance :
- des formules de changement de base ;
- de la variation de la fonction économique lors des changements de base ;
- des critères de choix pour les changements ;
- d’un critère d’optimalité ;
- d’un critère pour le cas où la solution est infinie.
3.3.2 Résultats principaux de la description algébrique de l’algorithme de simplexe
1 Formule de changement de base
La matrice A des contraintes est composée des vecteurs P1, P2, …, Pn. Appelons Po
le vecteur ayant comme composantes les deuxièmes membres des contraintes sous forme
d’équations. Supposons que les vecteurs P1, P2, …, Pr, …,Pm sont des vecteurs unités de
l’espace des contraintes et forment une première base admissible. Dès lors les vecteurs Pm+1,
30 Recherche opérationnelle 2021-2022

…, Pk, …, Pn sont des vecteurs hors base. Effectuer un changement de base c’est extraire un
vecteur Pr de la base et lui substituer un vecteur Pk hors base.
Le changement de base s’opère grâce aux formules suivantes :
xr j
x k j 
xr k

xi k
xi j  xi j  xr j pour i  k (1)
xr k

xr
x k 
xr k

xi k
x i  x i  xr pour i  k
xr k

Dans ces formules les xi j sont les composantes des vecteurs Pj. hors base et x i celles du

vecteur P0. Après changement de base les composantes des vecteurs Pj hors base deviennent
les xi j et celles du vecteur P0 deviennent x i . La composante xr k est appelée le pivot du

changement de base et doit être non nul.


Les formules (1) sont des formules de remplacement permettant des applications
intéressantes telles que la résolution des systèmes d’équations et l’inversion des matrices.
Exemple : Appliquer les formules de remplacement pour résoudre le système ci-après :
2 x1 + 3 x2 – x3 = 1
x1 + 0 x2 + 2 x3 = -2
x1 + x2 + x3 = 2
   
Ce système forme le vecteur x1 a1  x2 a 2  x3 a3  b .
31 Recherche opérationnelle 2021-2022

Nous plaçons et résolvons le système dans le tableau suivant.


   
To a1 a 2 a3 b

u1 2 3 -1 1
u2 1 0 2 -2
u3 1 1 1 2

u1 0 3 -5 5

a1 1 0 2 -2

u3 0 1 -1 4

u1 0 0 -2 -7

a1 1 0 2 -2
 0 1 -1 4
a2

a3 0 0 1 7/2
 1 0 0 -9
a1
 0 1 0 15/2
a2

D’où X  ( x1 , x2 , x3 )  (9 ; 15
2 ; 72 )

Exemple de l’inversion d’une matrice.


Soit la matrice
1 0 1
A= 1 2 0
2 -1 3
Déterminer sa matrice inverse par l’application du théorème de remplacement.
32 Recherche opérationnelle 2021-2022

  
a1 a2 a3 u1 u2 u3

u1 1 0 -1 1 0 0
u2 1 2 0 0 1 0
u3 1 -1 3 0 0 1

a3 -1 0 1 -1 0 0

u2 1 2 0 0 1 0

u3 5 -1 0 3 0 1

a3 0 2 1 -1 1 0

a1 1 2 0 0 1 0

u3 0 -11 0 3 -5 1

a3 0 0 1 -5/11 1/11 2/11


a1 1 0 0 6/11 1/11 2/11
a2 0 1 0 -3/11 5/11 -1/11

a1 6/11 1/11 2/11


D’où A-1 = a2 = -3/11 5/11 -1/11
a3 -5/11 1/11 2/11
On peut vérifier que A-1 A = I (= matrice unité)

1 0 0
A-1 A = AA-1 = 0 1 0
0 0 1
2. Variation de la fonction économique lors de changement de base
Introduisons les notations suivantes :
I (B) = l’ensemble des indices des vecteurs de la base B ;
I (B’) = l’ensemble des indices des vecteurs de la base B’.
Alors : Z 0  cx
iI ( B )
i i ; Zj  c x
iI ( B )
i ij

Observons que Zo est la valeur de la fonction économique en la base initiale B.


Si Z 0 est la valeur de la fonction économique en la nouvelle base B’, il vient :

xr
1°. Z 0  Z 0  (Z k  ck ) (2)
xr k
33 Recherche opérationnelle 2021-2022

Dans un problème à minimum (maximum), le changement de base sera choisi de telle sorte que
la valeur de la fonction économique diminue (augmente). Il faudra donc que
Z k  ck  0 ( Z k  ck  0) (cfr critères de choix pour le changement de base).

xr j
2°. Z j  c j  ( Z j  c j )  ( Z k  ck ) (3)
xr k

Les quantités Z j  C j représentent les variations unitaires de la fonction économique lors du

passage d’un point extrémal à un autre point extrémal : ce sont les coût marginaux des variables
xj hors base par rapport à la solution de base.

1. Critères déterminant le changement de base.


On peut résumer les critères d’entrée et de sortie des vecteurs dans le tableau
suivant :
Pk entre dans la base si : Pr sort de la base si
Z k  ck  max ( Z j  c j ) Z j  c j  0
j

pour un problème à minimum.


Z k  ck  min (Z j  c j ) Z j  c j  0 xr x (4)
j   min i xi k
xr k i xi k
pour un problème à maximum.

2. Critères d’optimalité et du cas d’une solution infinie


1°. Le critère d’optimalité pour :
- un problème à minimum est d’arriver à trouver toutes les quantités Z j  c j  0 ;

- un problème à maximum est d’arriver à trouver toutes les quantités Z j  c j  0 .

Dans les deux cas, la solution optimale ainsi obtenue est fournie par les composantes x i du

vecteur P0 . La valeur minimum ou maximum de la fonction économique est donnée par :

Z 0  c x
iI ( B )
i i que l’on lit en dessous de la colonne de P0

2°. Le cas d’une solution infinie. S’il existe des quantités Z j  c j  0 pour un problème à

minimum ou des quantités Z j  c j  0 pour un problème à maximum, mais que toutes les

quantités xi k  0 , cela signifie que le polyèdre des solutions admissibles n’est pas borné et que

la direction de décroissance ou de croissance de la fonction économique est contenue dans la


partie ouverte du polyèdre. Donc la valeur minimum ou maximum de la fonction économique
est égale à – ∞ ou à +∞. Dans les deux situations, la solution optimale est infinie.
34 Recherche opérationnelle 2021-2022

3. Résumé de l’algorithme de Simplexe


Le tableau ci-dessous donne la discussion complète pour les deux types de programmes.
Formules de changement de base.
Programme à minimum Programme à maximum
n n
Fonction économique : min Z   c j x j Fonction économique : max Z   c j x j
j 1 j 1

n n
Contraintes  aij x j  bi , i  1,...., m
j 1
Contraintes a
j 1
ij x j  bi , i  1,...., m

x j  0, j  1,....,n x j  0, j  1,.....,n

Si les contraintes sont données sous forme d’inéquations, introduire les variables d’écart. Si on ne dispose
pas d’une base admissible explicite, l’expliciter par la méthode de remplacement ou introduire les
variables artificielles ; puis ranger les données en tableau comme celui donné en 6.
1°. Si Z j  c j  0 j alors la solution de base 1°. Si Z j  c j  0 j alors la solution de base

considérée est optimale, sinon on passe au point 2° considérée est optimale, sinon on passe au point 2°
ci-dessous. ci-dessous.
2° Si  j / Z j  c j  0 et xi j  0 i, alors la solution 2° Si j / Z j  c j  0 et xi j  0 i, alors la solution

optimale est infinie. La valeur de la fonction optimale est infinie. La valeur de la fonction
économique = -∞. Sinon on passe au point 3° ci- économique = +∞. Sinon on passe au point 3° ci-
après. après.
3°.Certains Z j  c j  0 avec certains xi j  0, faire 3°. Certains Z j  c j  0 avec certains xi j  0, faire

entrer le vecteur Pk tel que entrer le vecteur Pk tel que


Z k  ck  max (Z j  c j ) pour les Z j  c j  0 Z k  c k  min ( Z j  c j ) pour les Z j  c j  0
j i

et faire sortir le vecteur Pr tel que : et faire sortir le vecteur Pr tel que :

xr x xr x
  min i  0 ( xi k  0)   min i  0 ( xi k  0)
x rk i xi k xr k i xi k

puis effectuer un changement de base selon les puis effectuer un changement de base selon les
formules (1), (2) et (3) reprises ci-dessous. Poser formules (1), (2) et (3) reprises ci-dessous. Poser
avant de procéder l’itération suivante : avant de procéder l’itération suivante :

xij  xij , xi  xi i et j xij  xij , xi  xi i et j

Z j  c j  Z j  c j j Z j  c j  Z j  c j j

Z 0  Z 0 , puis reprendre au point 1° Z 0  Z 0 , puis reprendre au po int 1


35 Recherche opérationnelle 2021-2022

xr j xik x x
x k j  ; xi j  xij  x r j i  k ; x k  r ; xi  xi  ik x r i  k
xr j x rk x rk x rk

xr x rj
Z 0  Z 0  (Z k  ck ) ; Z j  c j  Z j  c j  (Z k  ck )
x rk x rk
4. Disposition pratique ou tableau de Simplexe.
Nous supposons que les vecteurs P1, P2, …, Pm constituent une première base
admissible.
C1 C2 C3 … C r … Cm Cm+1 … Ck … Cn
Ci Base Po P1 P2 P3 ... Pr.... Pm Pm+1 … Pk … Pn
(xi) (xi1) (xi2) (xi3)...xir xim (xim+1) (xik) (xin)
C1 P1 x1 1 0 0 …0 …0 x1,m+1 ... x1,k ... x1,n
C2 P2 x2 0 1(E) 0 …0 …0 x2,m+1 ... x2,k(K) …x2,n
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
Cr Pr xr 0 0(L) 0 ... 1 ... 0 xr,m+1 … xr,k(S) …xr,n
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
Cm P m xm 0 0 0 ... 0 ... 1 xm,m+1 ... xm,k ... xm,n
Zo 0 0 0 … 0 …0 Zm+1–cm+1…zk-ck ... zn-cn
m m
N.B Z 0   ci xi ; Z j   ci xij
i 1 i 1

Formule du rectangle :
Pour faciliter l’application de l’algorithme de Simplexe, il existe un moyen pour
retrouver facilement les formules de changement de base. Si E est un élément du tableau de
simplexe, S étant le pivot, K l’élément situé dans la ligne de E et la colonne de S, L l’élément
situé dans la colonne de E et la ligne de S, c’est-à-dire si E, K,S,L sont les sommets d’un
rectangle dans le tableau de Simplexe et si E’ est l’élément du nouveau tableau correspondant
KL
à E, alors on a : E   E  i  r , sauf pour les éléments de la ligne S qui sont divisés
S
simplement par S. Cette formule est désignée sous le nom de la formule du rectangle.
36 Recherche opérationnelle 2021-2022

Exemple numérique
Soit à trouver les valeurs de Y= (y1, y2, …, y5) ≥ 0 qui minimisent :
Z = y1 + 6 y2 – 7 y3 +y4 + 5 y5 sous les contraintes :
5 y1 - 4 y2 + 13 y3 - 2 y4 + y5 = 20
y1 - y2 + 5 y3 - y4 + y5 = 8

5 -4 13 -2 1 20
A= ; P0 =
1 -1 5 -1 1 8

Le système ne possède pas de base admissible explicite. Nous allons donc d’abord chercher par
la méthode de remplacement une première base admissible explicite à partir du tableau To ci-
après :
To A1 a2 a3 a4 a5 Po
u1 5 -4 13 -2 1 20
u2 1 -1 5 -1 1 8
u1 4 -3 8 -1 0 12
a5 1 -1 5 -1 1 8
a1 1 -3/4 2 -1/4 0 3
a5 0 -1/4 3 -3/4 1 5

Le système d’équations précédent devient :


y1 -3/4 y2 + 2 y3 -1/4 y4 +0 y5 = 3
0 y1 -1/4 y2 + 3 y3 -3/4 y4 + y5 = 5
Ainsi la première base admissible est constituée des composantes a1 et a5. On a une première
solution de base admissible Y = (3, 0, 0, 0, 5). Pour cette solution
Z  3  6  0  7  0  5  5  28 .
37 Recherche opérationnelle 2021-2022

Appliquons à présent l’algorithme de Simplexe.


1 5 6 -7 1
Ci BASE Po P1 P5 P2 P3 P4
1 a1 3 1 0 -3/4 2 -1/4
5 a5 5 0 1 -1/4 3 -3/4
Zj - cj 28 0 0 -8 24 -5
-7 P3 3/2 ½ 0 -3/8 1 -1/8
5 a5 ½ -3/2 1 7/8 0 -3/8
-8 -12 0 1 0 -2
-7 P3 12/7 -1/7 3/7 0 1 -2/7
6 P2 4/7 -12/7 8/7 1 0 -3/7
-60/7 -72/7 -8/7 0 0 -11/7

La dernière itération fournit tous les zj - cj ≤ 0 ; c’est le critère d’optimalité pour un


problème à minimum. Donc la solution optimale est Y = (y1, y2, y3, y4, y5) = (0 ; 4/7 ; 12/7 ; 0 ;
0). Pour cette solution Zo = -60/7 : c’est la valeur minimale de la fonction économique.
Exercice
Trouver X = (x1, x2, x3, x4) ≥ 0 qui maximise Z = 2 x1 + 4 x2 + x3 + x4 sous les contraintes :
x1 +3 x2 + x4 ≤ 4
2 x1 + x2 ≤ 3
x2 +4 x3 + x4 ≤ 3
x j  0 j  1, 2, 3, 4 .

Après introduction des variables d’écart le programme devient


Max Z  2 x1  4 x2  x3  x4
sous les contraintes :
x1  3x2  0 x3  x4  t1  4

2 x1  x2  0 x3  0 x4  t 2  3

0 x1  x2  4 x3  x4  t 3  3

x j  0, j  1, 2, 3, 4 ; t i  0, i  1, 2, 3

Comme les variables d’écart sont toutes affectées du signe + elles constituent une première
solution de base admissible explicite, c’est-à-dire la solution.
( x1, x2, x3, x4, t1, t2, t3) = (0 ;0 ;0 ;0 ;4 ;3 ;3)
On peut donc démarrer la méthode de simplexe à partir de cette solution
38 Recherche opérationnelle 2021-2022

TABLEAUX DE SIMPLEXE
2 4 1 1 0 0 0
Ci BASE Po x1 x2 x3 x4 t1 t2 t3
0 t1 4 1 3 0 1 1 0 0
0 t2 3 2 1 0 0 0 1 0
0 t3 3 0 1 4 1 0 0 1
0 -2 -4 -1 -1 0 0 0
4 x2 4/3 1/3 1 0 1/3 1/3 0 0
0 t2 5/3 5/3 0 0 -1/3 -1/3 1 0
0 t3 5/3 -1/3 0 4 2/3 -1/3 0 1
16/3 -2/3 0 -1 1/3 4/3 0 0
4 x2 4/3 1/3 1 0 1/3 1/3 0 0
0 t2 5/3 5/3 0 0 -1/3 -1/3 1 0
1 x3 5/12 -1/12 0 1 1/6 -1/12 0 ¼
23/4 -3/4 0 0 ½ 5/4 0 ¼
4 x2 1 0 1 0 2/5 2/5 -1/5 0
2 x1 1 1 0 0 -1/5 -1/5 3/5 0
1 x3 ½ 0 0 1 3/20 -1/10 1/20 ¼
13/2 0 0 0 7/20 11/10 9/20 ¼

Solution optimale :
x1 = 1, x2 = 1, x3 = ½, x4 = 0, t1 = t2 = t3 = 0
Valeur de la fonction économique Z = 13/2

3.4 METHODE DE LA BASE ARTIFICIELLE OU METHODE « M »


Considérons le cas d’un programme à minimum (avec tous les bi  0). En général
on ne dispose pas d’une première base admissible et l’algorithme de Simplexe ne peut
démarrer. Nous avons vu que l’on pouvait utiliser la méthode de remplacement pour chercher
une première solution de base admissible explicite. Cela nécessite d’abord des calculs de
remplacement avant le démarrage proprement dit de l’algorithme de simplexe.
Pour contourner cette difficulté on utilise la méthode de la base artificielle. Pour ce
faire, si certaines composantes du vecteur B sont négatives (c’est-à-dire tous les bi ne sont
positifs ou nuls) il suffit de multiplier les membres des contraintes correspondantes par -1 pour
que tous les bi deviennent positifs ou nuls. Puis on modifie le programme initial en ajoutant à
39 Recherche opérationnelle 2021-2022

chaque contrainte une nouvelle variable vi affectée d’un coefficient M > 0 arbitrairement grand
dans la fonction économique. Ainsi le programme initial :
n
min Z   c j x j tel que
j 1

a
j 1
ij x j  bi , i  1, 2,..., m

x j  0, j  1, 2,..., n

devient, après introduction des variables artificielles, le programme modifié ci-après :


n m
min Z   c j x j   M vi tel que
j 1 i 1

a
j 1
ij x j  vi  bi , i  1, 2,..., m

x j  0, vi  0

On peut donc observer que les m variables v i , dites variables artificielles, fournissent une
première base admissible et la procédure de Simplexe peut être entamée. Comme M est très
grand et vi  0 , la valeur de la fonction économique est très grande.
Pour que le programme modifié soit équivalent au programme initial il faut que dans
sa solution toutes variables artificielles soient nulles. Cela est possibles car pour réaliser le
minimum l’algorithme de Simplexe aura tendance à rejeter les variables vi hors de la base à
cause de leur coefficient M positivement très grand.
Si le programme initial admet une solution optimale finie (x1, x2,…; xn) alors (x1,
x2,…xn, 0, 0, 0, …, 0) est une solution optimale du programme modifié. En fait trois situations
peuvent se présenter :
1. Le programme complété (modifié) admet une solution optimale où toutes les variables
artificielles sont hors base : cette solution est aussi la solution optimale du programme
initial. Dans ce cas la procédure de Simplexe élimine tous les vecteurs P vi de la base et
l’on obtient ainsi une base du programme initial. La procédure peut se poursuivre, et il est
inutile de poursuivre les calculs des composantes d’un vecteur Pvi dès que celui-ci est sorti
de la base, le coefficient M figurant dans la fonction économique empêchant tout vecteur
Pvi sorti de réapparaître dans la base.
2. La solution optimale du problème complété contient des variables artificielles en base, mais
elles sont toutes nulles : on dit que la solution du problème initiale est une base dégénérée.
Ce cas arrive lorsque certaines contraintes sont linéairement dépendantes.
40 Recherche opérationnelle 2021-2022

3. La solution optimale du programme complété contient des variables artificielles non nulles
en base. Cela signifie que le programme initial n’admet pas de solution c’est-à-dire son
système de contraintes est contradictoire.
Remarques
1° Dans le tableau Simplexe on écrit Z j  c j en deux lignes, l’une contenant les termes

indépendant de M, l’autre ceux qui en dépendent. On introduira dans la base le vecteur


correspondant à la quantité Z j  c j ayant le plus grand terme positif en M.

2° Dans un problème à maximum, la fonction économique du programme complété sera du


n m
type : max Z   c j x j   M vi
j 1 i 1

Comme ici M est très grand et affecté du signe -, vi ≥ 0, la valeur de la fonction économique est
très petite et pour maximiser cette fonction, les variables vi à coefficient négativement très petit
sortiront de la base.
Exemple : Soit à résoudre le programme linéaire suivant :
min Z = x1 + x2,
sous les contraintes :
2 x1 + x2 ≥ 8
x1 + x2 ≥ 6
x1 +5 x2 ≥ 10
xj ≥ 0, j = 1,2.
Nous commencerons par l’introduction des variables d’écart pour avoir un système standard.
Il vient :
2 x1 + x2 - t1 = 8
x1 + x2 – t2 = 6
x1 + 5 x2 – t3 = 10.
A ce niveau la matrice A n’ayant pas une base admissible explicite, nous introduisons les
variables artificielles afin d’en faire une première solution de base explicite. Le programme
devient :
min Z = x1 + 2 x2 + M v1 +M v2 +Mv3
sous les contraintes :
2 x1 +x2 – t1 + v1 = 8
x1 +x2 – t2 + v2 = 6
x1 +5 x2 – t3 + v3 = 10
xj ≥ 0, ti ≥ 0, vi ≥ 0
41 Recherche opérationnelle 2021-2022

Tableau de Simplexe
1 2 0 0 0 M M M
C BASE B Px1 Px2 Pt1 Pt2 Pt3 Pv1 Pv2 Pv3
M Pv1 8 2 1 -1 0 0 1 0 0
M Pv2 6 1 1 0 -1 0 0 1 0
M Pv3 10 1 5 0 0 -1 0 0 1
0 -1 -2 0 0 0 0 0 0
24 M 4M 7M -M -M -M 0 0 0
M Pv1 6 9/5 0 -1 0 1/5 1 0
M Pv2 4 4/5 0 0 -1 1/5 0 1
2 Px2 2 1/5 1 0 0 -1/5 0 0
4 -3/5 0 0 0 -2/5 0 0
10 M 13M/5 0 -M -M 2M/5 0 0
1 Px1 10/3 1 0 -5/9 0 1/9 0
M Pv2 4/3 0 0 4/9 -1 1/9 1
2 Px2 4/3 0 1 1/9 0 -2/9 0
6 -3/4 0 -1/3 0 -1/3 0
4M/3 0 0 4M/9 -M M/9 0
1 Px1 5 1 0 0 -5/4 ¼
0 Pt1 3 0 0 1 -9/4 ¼
2 Px2 1 0 1 0 ¼ -1/4
7 0 0 0 -3/4 -1/4

La solution optimale est donc : x1 = 5 ; x2 = 1 ; t1 = 3 ; t2 = t3 = v1 = v2 = v3 = 0


La valeur minimale de la fonction économique est Z = 7.
3.5 LA DUALITE
3.5.1 Définition :
A tout programme linéaire, qu’on appelle alors primal, tel que :
n
min f ( x )   c j x j
j 1

sous les contraintes :


n

a
j 1
ij x j  bi , i  1, 2,...., m (I)

x j  0, j  1, 2,..., n
42 Recherche opérationnelle 2021-2022

on peut faire correspondre un nouveau programme, dit problème dual, défini comme suit :
m
max g ( y )   bi y i
i 1

sous les contraintes :


m

a i 1
ij y i  c j , j  1, 2,..., n ( II )

yi  0, i  1, 2,..., m
Reprenons toutes les données dans le tableau suivant :
xj
x1 x2 … xn ≥0
yj
y1 a11 a12 … a1n ≥ b1
y2 a21 a22 … a2n ≥ b2
. . . … . .
. . . … . .
. . . … . .
ym am1 am2 … amn ≥ bm
! ! ! … !
Max g = min f
0 c1 C2 … cn

Programme primal (I) Programme dual (II)

min f ( x)  c1 x1  c2 x2  ...  cn xn max g ( y)  b1 y1  b2 y 2  ...  bm y m


sous les contraintes : sous les contraintes :
a11x1 + a12x2 + … + a1nxn ≥ b1 a11y1 + a21y2 + … + am1ym ≤ c1
a21x1 + a22x2 + … + a2nxn ≥ b2 a12y1 + a22y2 + … + am2ym ≤ c2
………………………………….. …………………………………..
am1x1 + am2x2 + … + amnxn ≥ bm a1ny1 + a2ny2 + … + anmym ≤ cm
x1, x2, … , xn ≥ 0 y1, y2, … , ym ≥ 0

La fonction économique d’un programme à minimum exprime souvent le coût et


celle du programme à maximum le bénéfice.
On remarque que la dualité est involutive, c’est-à-dire que si l’on cherche le dual du
programme II, on trouve le programme I : le dual du dual est donc le primal. On dira donc que
les problèmes I et II forment un couple de problèmes duals l’un de l’autre.
43 Recherche opérationnelle 2021-2022

On peut encore remarquer qu’à toute contrainte primale représentée par une
inéquation correspond une variable duale positive ou nulle et réciproquement.
3.5.2 Exemple des programmes duals et leurs solutions
Soit à résoudre le programme primal ci-après :
Max g = 2 x1 +4 x2 + x3 + x4
sous les contraintes :
x1 + 3 x2 + 0 x3 + x4 ≤ 4
2 x1 + x2 + 0 x3 + 0 x4 ≤ 3
0 x1 + x2 + 4 x3 + x4 ≤ 3
x1 ≥ 0, x2 ≥ 0, x3 ≥, x4 ≥ 0
Si on y introduit les variables d’écart, il devient :
max g = 2 x1 + 4 x2 + x3 + x4 tel que :
x1 + 3 x2 + 0 x3 + x4 + t1 = 4
2 x1 + x2 + 0 x3 + 0 x4 + t2 = 3
0 x1 + x2 + 4 x3 + x4 + t3 = 3
xj ≥ 0, j , ti ≥ 0 i
Ce problème a été résolu à la fin du point 3.3.2 par l’algorithme de Simplexe qui a fourni la
solution suivante :
x1 = 1, x2 = 2, x3 = ½ ; x4 = t1 = t2 = t3 = 0
g = 13/2.
Résolvons aussi par l’algorithme de Simplexe le programme dual correspondant. Ce
programme est alors :
min f = 4 y1 + 3 y2 + 3 y3
sous les contraintes :
y1 + 2 y2 + 0 y3 ≥ 2
3 y1 + y2 + y3 ≥ 4
0 y1 + 0 y2 + 4 y3 ≥ 1
y1 + 0 y2 + y3 ≥ 1
y1 ≥ 0, y2 ≥ 0, y3 ≥ 0
44 Recherche opérationnelle 2021-2022

En introduisant les variables d’écart et les variables artificielles, le programme devient :


min f = 4 y1 + 3 y2 + 3 y3 + M v1 + M v2 + M v3 + M v4
sous les contraintes :
y1 + 2 y2 + 0 y3 - t1 + v1 = 2
3 y1 + y2 + y3 - t2 + v2 = 4
0 y1 + 0 y2 + 4 y3 - t3 + v3 = 1
y1 + 0 y2 + y3 - t4 + v4 = 1
yi  0 i, t i  0 i, v j  0 j

Les tableaux de résolution de Simplexe sont les suivants :


4 3 3 0 0 0 0 M M M M
C BASE B y1 y2 y3 t1 t2 t3 t4 v1 V2 v3 v4
M v1 2 1 2 0 -1 0 0 0 1 0 0 0
M v2 4 3 1 1 0 -1 0 0 0 1 0 0
M v3 1 0 0 4 0 0 -1 0 0 0 1 0
M v4 1 1 0 1 0 0 0 -1 0 0 0 1
0 -4 -3 -3 0 0 0 0 0 0 0 0
8M 5M 3M 6M -M -M -M -M 0 0 0 0
M v1 2 1 2 0 -1 0 0 0 1 0 0
M v2 15/4 3 1 0 0 -1 ¼ 0 0 1 0
3 y3 ¼ 0 0 1 0 0 -1/4 0 0 0 0
M v4 3/4 1 0 0 0 0 ¼ -1 0 0 1
¾ -4 -3 0 0 0 -3/4 0 0 0 0
13M/2 5M 3M 0 -M -M M/2 -M 0 0 0
M v1 5/4 0 2 0 -1 0 -1/4 1 1 0
M v2 3/2 0 1 0 0 -1 -1/2 3 0 1
3 y3 ¼ 0 0 1 0 0 -1/4 0 0 0
M y1 3/4 1 0 0 0 0 ¼ -1 0 0
15/4 0 -3 0 0 0 ¼ -4 0 0
11M/4 0 3M 0 -M -M -3M/4 4M 0 0
M v1 ¾ 0 5/3 0 -1 1/3 -1/12 0 1
0 t4 ½ 0 1/3 0 0 -1/3 -1/6 1 0
3 y3 ¼ 0 0 1 0 0 -1/4 0 0
4 y1 5/4 1 1/3 0 0 -1/3 1/12 0 0
23/4 0 -5/3 0 0 -4/3 -5/12 0 0
45 Recherche opérationnelle 2021-2022

3M/4 0 5M/3 0 -M M/3 -M/12 0 0


3 y2 9/20 0 1 0 -3/5 1/5 -1/20 0
0 t4 7/20 0 0 0 1/5 -2/5 -3/20 1
3 y3 ¼ 0 0 1 0 0 -1/4 0
4 y1 11/10 1 0 0 1/5 -2/5 1/10 0
13/2 0 0 0 -1 -1 -1/2 0

La Solution du programme dual est donc :


y1 = 11/10 ; y2 = 9/20 ; y3 = ¼ ; t4 = 7/20, t1 = t2 = t3 = 0.
La valeur minimale de f = 13/2.
Les solutions optimales de ces deux programmes duals nous amènent aux constations
suivantes :
1°. max g = min f = 13/2 ;
2°. Les gk - ck ≥ 0 (qu’on appelle coûts marginaux) du programme primal à son optimum pour
les variables d’écart sont la solution du programme dual ; par contre les -(fk -bk), qu’on appelle
coûts marginaux du programme dual à son optimum pour les variables d’écart sont la solution
du programme primal.
3.5.3 Propriétés de la dualité
1. S’il existe deux solutions finies xj (j = 1, …, n) pour le problème à minimum et
yi (i = 1, …, m) pour le problème à maximum alors :
m n

 bi yi   c j x j , c’est-à-dire la valeur de la fonction économique de la solution yi


i 1 j 1

du problème à maximum est toujours inférieure ou égale à celle de la fonction


économique de la solution xj du problème à minimum.
2. Critère d’optimalité :
Si un problème dual et son primal admettent des solutions possibles, alors ils ont
tous les deux des solutions optimales qui ont toutes la même valeur de leurs
fonctions économiques. Inversement s’il existe des solutions possibles x1, …, xn
pour un problème à minimum et y1,..., ym pour un problème à maximum telles que :
n m

 c j x j   bi yi alors ces solutions sont des solutions optimales des problèmes


j 1 i 1

respectifs. Si l’un des problèmes n’a pas de solution possible alors l’autre n’en a pas
non plus.
46 Recherche opérationnelle 2021-2022

Conclusion :
La recherche de l’optimum d’un programme peut être remplacée par la recherche de l’optimum
du programme dual correspondant. Ou encore la recherche du minimum peut être transformée
en recherche du maximum et réciproquement. D’autre part, la dualité peut servir à vérifier
l’exactitude des calculs. Par ailleurs, un programme et son dual forment un jeu de stratégie à
somme nulle. Enfin, la recherche de l’optimum d’un programme paramétrique dont les seconds
membres des contraintes sont paramétrisés ne peut se faire que par la résolution du programme
dual associé.
47 Recherche opérationnelle 2021-2022

CHAPITRE 4 : PROGRAMMES LINEAIRES PARAMETRIQUES

INTRODUCTION
Un des reproches les plus sérieux qu’on pouvait faire, il y a quelques années, aux
méthodes de programmation linéaire, était de fournir un optimum sur la stabilité duquel on avait
aucun renseignement. D’importants travaux ont porté sur la mise en cause des coefficients de
la fonction économique (revenus ou coûts unitaires) et des seconds membres des contraintes ou
objectifs (limitation de budgets, de quantités, de temps, de capacités disponibles, …). En
revanche on n’a encore que peu de résultats en ce qui concerne la variation des coefficients de
la matrice, souvent appelés coefficients techniques.
En pratique, compte tenu des résultats de recherche jusque là obtenus, on ne peut
résoudre par Simplexe que les programmes linéaires paramétriques dont uniquement les
coefficients de la fonction économique sont paramétrisés. De plus pour la même raison, seule
l’introduction d’un seul paramètre ne pose pas de problème de résolution. La résolution devient
pratiquement difficile à réaliser lorsque le programme comporte plusieurs paramètres.
Si les coefficients bi représentant les deuxièmes membres des contraintes sont
paramétrisés, la résolution d’un tel programme se fait à travers de la résolution du programme
dual correspondant

4.1 PARAMETRAGE DE LA FONCTION ECONOMIQUE


Le paramétrage de la fonction économique revient à modifier la direction de
l’hyperplan de la fonction économique, tandis que l’hyper polyèdre des contraintes demeure
fixe.

P S

W
T

V
U
Il résulte de la convexité de l’hyper polyèdre que la direction de l’hyperplan (P) de la fonction
économique, passant par le point optimal S, peut subir des modifications d’une certaine
48 Recherche opérationnelle 2021-2022

amplitude sans que S cesse d’être l’optimum ; sinon, dans un premier stade l’optimum se trouve
transporté en l’un des points adjacents T, U, V, ou W, puis encore au-delà en l’un des points
adjacents des précédents, et ainsi de suite.
Soit à résoudre le programme linéaire suivant :
Minimiser  (c   c ) x
j j j

si a ij x j  bi , i  1, 2,..., m

x j  0, j  1, 2,..., n

où les coefficients aij , bi , cj et cj sont donnés et où λ est un paramètre. Dans un tel programme,

le polyèdre des contraintes est fixe, mais l’orientation de la fonction économique varie avec λ.
Il est clair que le sommet du polyèdre qui donne la solution optimale va varier selon les valeurs
de λ. En général un sommet fournira la solution optimale pour un ensemble de valeurs de λ
appartenant à un intervalle. On dit que la solution optimale est stable sur un tel intervalle et l’on
parle d’intervalle de stabilité. Le problème que l’on se propose de résoudre est de décomposer
l’axe réel λ, (-∞ < λ < + ∞), en intervalles de stabilité. Remarquons que sur un intervalle de
stabilité, la solution optimale (x1, x2, …, xn) reste inchangée, mais que la valeur numérique de
la fonction économique varie. La valeur de λ séparant deux intervalles de stabilité confère à
l’hyperplan de la fonction économique une direction parallèle à une arête ou face du polyèdre
des solutions admissibles. Par conséquent, la valeur de la fonction économique est identique à
chaque point de cette arête ou face parallèle à l’hyperplan de la fonction économique.

4.2 CONSTRUCTION D’UN INTERVALLE DE STABILITE


Sur un intervalle de stabilité la solution considérée est optimale. Il résulte du dernier
tableau Simplexe que :
a. Pour un problème à minimum :
m
Z j  c j   xij (ci   ci)  (c j   c j )  0
i 1

m  m 
  ci xij  c j     cixij  c j   0
  (1)
 i 1   i 1 
On pose :
m m
 j   ci xij  c j et  j   cixij  c j
i 1 i 1

La relation (1) devient :  j   j  0   j   j


49 Recherche opérationnelle 2021-2022

 j
 Si  j  0 alors  
j
 j
 Si  j  0 alors  
j

On en déduit les extrémités  et  de l’intervalle de stabilité dans le cas d’un problème à


minimum :
  j    j 
  max        min 


j   
 j 
 j 0
 j 

 

S’il n’y a pas de coefficient  j  0 l’intervalle n’est pas borné à droite et    . Et s’il n’y

a pas de coefficient  j  0 l’intervalle n’est pas borné à gauche et   .

Si    ou si    certains Z j  c j sont positifs et la solution n’est plus optimale. Il faut

alors effectuer de nouveaux changements de base et déterminer un nouvel intervalle de stabilité


adjacent au premier. On décompose ainsi la droite réelle λ en un nombre fini d’intervalles de
stabilité (puisque le nombre de sommets du polyèdre est fini), chaque intervalle correspondant
à un sommet du polyèdre.

S1 S2 S3 ... Sk
λ

b. Pour un problème à maximum :


Les Z j  c j du dernier tableau Simplexe doivent être positifs ou nuls ; d’où :

 j   j  0   j   j
 j
 Si  j  0 alors  
j
 j
 Si  j  0 alors  
j
D’où l’intervalle de stabilité dans le cas d’un problème à maximum :
  j    j 
  max        min 


 j 0   
 j 
 j 0
 j 
50 Recherche opérationnelle 2021-2022

S’il n’y a pas de coefficient  j  0 , l’intervalle n’est pas borné à droite et    et s’il n’y a

pas de coefficient  j  0 l’intervalle n’est pas borné à gauche et   .

Si    ou si    certains Z j  c j sont négatifs et la solution n’est plus optimale. Il faut


¯
alors effectuer un nouveau changement de base et déterminer un nouvel intervalle de stabilité
adjacent au premier. La droite réelle λ est encore ainsi décomposée en un certain nombre fini
d’intervalles de stabilité, chaque intervalle correspondant à un sommet du polyèdre.

4.3 APPLICATIONS
1. Maximiser Z = (2 + λ) x1 + 5 x2
Si x1 + x3 = 4
x2 + x4 = 3
x1 + 2 x2 + x5 = 8
x1, x2, x3, x4, x5 ≥ 0
On dispose d’une base admissible (0, 0, x3, x4, x5) qui permet d’entamer
immédiatement la procédure Simplexe. On obtient successivement les tableaux ci-après :
2+λ 5 0 0 0 Observations
x2
4
C BASE P0 P1 P2 P3 P4 P5
3 C
0 P3 4 1 0 1 0 0 Certains Z j  c j  0 B
2 D
0 P4 3 0 1 0 1 0  toute valeur de  . La 1
x1
0 P5 8 1 2 0 0 1 E
solution de base considérée A
αj 0 -2 -5 0 0 0
ne peut être optimale.
βj 0 -1 0 0 0 0
0 P3 4 1 0 1 0 0  2    0      2 x2
C
5 P2 3 0 1 0 1 0 Changer de base dès que
B
0 P5 2 1 0 0 -2 1 D
  2 x1
αj 15 -2 0 0 5 0 A E
βj 0 -1 0 0 0 0
0 P3 2 0 0 1 2 -1 1–2λ≥0 x2
C
5 P2 3 0 1 0 1 0 2+ λ≥0
B
2+ P1 2 1 0 0 -2 1 1
 2    D
λ 2
Changer de base dès que E
αj 19 0 0 0 1 2 x1
A
βj 2 0 0 0 -2 1  1
2
51 Recherche opérationnelle 2021-2022

x2
0 P4 1 0 0 ½ 1 -1/2 -½+λ≥0
C
5 P2 2 0 1 -1/2 0 ½ => ½ ≤ λ < + ∞.
B
2+ P1 4 1 0 1 0 0 D
λ
E
αj 18 0 0 -1/2 0 5/2 x1
A
βj 4 0 0 1 0 0

-2 ½
λ
B C D
2. Résoudre le programme linéaire paramétré :
Min Z = 2 λx1 + (1 – λ)x2 + 3 x3 + λx4 + 2 x5 + 3 λx6
Sous les contraintes :
x1 + 3 x2 + x3 + 2 x5 = 7
2x2 + 4 x3 + x4 = 12
4x2 + 3 x3 + 8 x5 + x6 = 10.
52 Recherche opérationnelle 2021-2022

2λ 1–λ 3 Λ 2 3λ
C BASE P0 x1 x2 x3 x4 x5 x6 Observations
2λ x1 7 1 3 1 0 2 0 -1 + 21λ ≤ 0**
λ x4 12 0 2 4 1 0 0 -3 + 15 λ ≤ 0 => -∞ < λ ≤ 1/21
3λ x6 10 0 4 3 0 8 1 -2 + 28 λ ≤ 0
αj 0 0 -1 -3 0 -2 0
βj 56 0 21 15 0 28 0 Changer de base dès que λ > 1/21.
1-λ x2 7/3 1/3 1 1/3 0 2/3 0 1/3 - 7λ ≤ 0*
λ x4 22/3 -2/3 0 10/3 1 -4/3 0 -8/3 + 8λ ≤ 0 => 1/21 ≤ λ ≤ 2/21
3λ x6 2/3 -4/3 0 5/3 0 16/3 1 -4/3 + 14 λ ≤ 0**
αj 7/3 1/3 0 -8/3 0 -4/3 0
βj 7 -7 0 8 0 14 0 Changer de base dès que λ > 2/21.
1-λ x2 9/4 1/2 1 1/8 0 0 -1/8 -7λ/2 ≤ 0
λ x4 15/2 -1 0 15/4 1 0 1/4 -9/4 + 29λ/8 ≤ 0 => 2/21 ≤ λ ≤ 18/29
2 x5 1/8 -1/4 0 5/16 0 1 3/16 1/4 - 21λ/8 ≤ 0
αj 5/2 0 0 -9/4 0 0 1/4
βj 21/4 -7/2 0 29/8 0 0 -21/8 Changer de base dès que λ > 18/29.
1-λ x2 11/5 3/5 1 0 0 -2/5 -1/5 -9/5 - 3λ/5 ≤ 0
λ x4 6 2 0 0 1 -12 -2 36/5 - 58λ/5 ≤ 0 => 18/29 ≤ λ < + ∞
3 x3 2/5 -4/5 0 1 0 16/5 3/5 8/5 -24λ/5 ≤ 0
αj 17/5 -9/5 0 0 0 36/5 8/5
βj 19/5 -3/5 0 0 0 -58/5 -24/5
53 Recherche opérationnelle 2021-2022

Présentation de la solution
λ -∞ 1/21 2/21 18/29 +∞
x1 7 0 0 0
x2 0 7/3 9/4 11/5
x3 0 0 0 2/5
x4 12 22/3 15/2 6
x5 0 0 1/8 0
x6 10 2/3 0 0
Z 56λ 7/3 + 7λ 5/2 + 21λ/4 17/5 + 19λ/5
8/3 3 167/29

3. Résoudre le programme linéaire paramétré ci-après :


min g  6 x1  8 x2  5 x3  10 x4

si x1  x 4  4

x 2  2 x 4  3(1   )

x3  3 x 4  2
Cela revient à résoudre le programme dual associé suivant :
max f  4 y1  3(1   ) y 2  2 y3

si y1  0 y 2  0 y3  6

0 y1  y 2  0 y3  8

0 y1  0 y 2  y3  5

y1  2 y 2  3 y3  10
En introduisant les variables d’écart le programme dual devient :
max f  4 y1  3(1   ) y 2  2 y3

si y1  0 y 2  0 y3  t1  6

0 y1  y 2  0 y3  t 2  8

0 y1  0 y 2  y3  t 3  5

y1  2 y 2  3 y3  t 4  10

Résolution du programme dual.


54 Recherche opérationnelle 2021-2022

4 3(1+λ) 2 0 0 0 0
T4 C BASE P0 y1 y2 y3 t1 t2 t3 t4 Observations
__
0 t1 6 1 0 0 1 0 0 0
0 t2 8 0 1 0 0 1 0 0 Certains Z j  c j  0  , d ' où la solution
0 t3 5 0 0 1 0 0 1 0 de base considérée ne peut être optimale.
0 t4 10 1 2 3 0 0 0 1
αj 0 -4 -3 -2 0 0 0 0
βj 0 0 -3 0 0 0 0 0
4 Y1 6 1 0 0 1 0 0 0 Certains Z j  c j  0__ , d ' où la solution
0 t2 8 0 1 0 0 1 0 0 de base considérée ne peut être optimale.
0 t3 5 0 0 1 0 0 1 0
0 t4 4 0 2 3 -1 0 0 1
αj 24 0 -3 -2 4 0 0 0
βj 0 0 -3 0 0 0 0 0
4 Y1 6 1 0 0 1 0 0 0 5 5
0 t2 8 0 1 0 0 1 0 0   3  0      
3 9
0 t3 11/3 0 -2/3 0 1/3 0 1 -1/3 Changer de base dès que λ > -5/9.
2 y3 4/3 0 2/3 1 -1/3 0 0 1/3
αj 80/3 0 -5/3 0 10/3 0 0 2/3
βj 0 0 -3 0 0 0 0 0
4 Y1 6 1 0 0 1 0 0 0
0 t2 6 0 0 -3/2 1/2 1 0 -1/2
5
2  92   0
0 t3 5 0 0 1 0 0 1 0 5
 32   0 => -5/9 ≤ λ ≤ 5/3.
3(1+λ) y2 2 0 1 3/2 -1/2 0 0 1/2 2

 32   0
3
αj 30 0 0 5/2 5/2 0 0 3/2 2

βj 6 0 0 9/2 -3/2 0 0 3/2 Changer de base dès que λ > 5/3.


0 t1 6 1 0 0 1 0 0 0 -5/2 + 3λ/2 ≥ 0
0 t2 3 -1/2 0 -3/2 0 1 0 -1/2 5/2 + 9λ/2 ≥ 0 => 5/2 ≤ λ <+ ∞.
0 t3 5 0 0 1 0 0 1 0 3/2 + 3λ/2 ≥ 0
3(1+λ) y2 5 ½ 1 3/2 0 0 0 1/2 Changer de base dès que λ > 5/3.
αj 15 -5/2 0 5/2 0 0 0 3/2
βj 15 3/2 0 9/2 0 0 0 3/2
55 Recherche opérationnelle 2021-2022

Tableau des solutions du programme dual.

 -∞ -5/9 5/3 +∞
y1 6 6 0
y2 0 2 5
y3 4/3 0 0
t1 0 0 6
t2 8 6 3
t3 11/3 5 5
t4 0 0 0
F 80/3 30 + 6 λ 15 + 15λ

Tableau des solutions du programme primal.


 -∞ -5/9 5/3 +∞
b2=3(1+λ) 4/3 8
X1 10/3 5/2 – 3λ/2 0
x2 0 0 0
x3 0 0 0
x4 2/3 3/2 +3λ/2 3/2 +3λ/2
G 80/3 30 + 6λ 15 + 15 λ
56 Recherche opérationnelle 2021-2022

THEORIE DES GRAPHES

CHAPITRE 5 : DEFINITIONS ET CONCEPTS GENERAUX

5.1 INTRODUCTION
La théorie des graphes est une partie importante de la théorie des ensembles. Elle
peut apporter une aide très efficace dans le traitement de certains problèmes de caractère
combinatoire apparaissant dans divers domaines économiques, sociologiques, psychologiques
ou technologiques… Elle constitue la base mathématique de la méthode du « Chemin critique »
dont l’une des variantes importantes est la méthode américaine PERT (Program Evaluation
Research Task). Cette méthode permet de mettre en œuvre et de surveiller l’exécution des
programmes de production ou de recherche.

Dans cette partie nous verrons quelques applications pratiques de la théorie des
graphes dans la résolution de certains problèmes notamment les problèmes du flot maximum,
de transport, d’affectation et d’ordonnancement.

5.2 NOTION DE GRAPHE


Considérons un ensemble de points en nombre fini ou non, mais distincts et
dénombrables. Soit par exemple un ensemble X de n points x 1, x2,…, xn : X = {x1, x2,…, xn }.
A chaque élément xi  X faisons correspondre zéro, un ou plusieurs éléments de X en
représentant la liaison de tout élément xi à xj par des branches orientées que l’on appellera
arcs. Les éléments ou points de X sont appelés « sommets ». Le graphe est cet ensemble des
points reliés entre eux par des arcs.
Mathématiquement, on appelle graphe toute application d’un ensemble dans lui-
même. Le symbole Γ représente cette application. Ainsi, ( xi ) représentera l’ensemble des

sommets reliés à xi par un arc en provenance de x i . Lorsqu’à xi ne correspond aucun


sommet on dit qu’on lui fait correspondre l’ensemble vide  .
Pour désigner un graphe, il convient donc de définir à la fois l’ensemble X des
sommets et les correspondances qui existent entre ces sommets (application de X dans X) et
que l’on désigne par Γ: ainsi un graphe peut être désigné par le symbole G = (X, Γ). On peut
57 Recherche opérationnelle 2021-2022

aussi désigner un graphe par l’ensemble X des sommets et l’ensemble V des arcs : on écrit alors
G = (X, V). On peut représenter un graphe à l’aide d’un dessin tel que celui de la figure 1.1 ci-
dessous appelé « représentation sagittale du graphe ». On peut aussi le représenter comme sur
la figure 1.2 ou bien encore à l’aide d’une matrice booléenne appelée matrice d’incidence du
graphe.

x2 c x3
a
j
g
x1 b
d x5 k
x6
i
l
f
h
m
e
x4 x7
p n
Figure 5.1
Γ(x1) = {x2, x4, x5} ; Γ(x2) = {x1, x3} ; Γ(x3) = {x5};
Γ(x4) = {x4, x5, x6, x7} ; Γ(x5) = {x4, x5} ;
Γ(x6) = {x3, x6, x7} ; Γ(x4) =  .
x1 b x1

x2 a x2
c
e
x3 x3
d
g j
x4 p x4

h f
x5 x5
k
i
x6 l x6
n
m
x7 . x7

Figure 5.2
58 Recherche opérationnelle 2021-2022

Matrice booléenne correspondante.


On associe au graphe G= (X, Г) la matrice carrée n x n telle que M = ( mij )
où mij  0 si l ' arc ( xi , x j ) n' existe pas

1 si l ' arc ( xi , x j ) 

Pour le graphe des figures 1.1 et 1.2 la matrice booléenne est la suivante :
X1 x2 x3 x4 x5 x6 x7
X1 0 1 0 1 1 0 0
X2 1 0 1 0 0 0 0
X3 0 0 0 0 1 0 0
X4 0 0 0 1 1 1 1
X5 0 0 0 1 1 0 0
X6 0 0 1 0 0 1 1
X7 0 0 0 0 0 0 0

On peut représenter par un graphe des structures très diverses, par exemple :
- un réseau de routes ;
- un réseau électrique ;
- un groupe humain dont on étudie en psychologie les communications ;
- les relations de parenté d’un groupe d’individus ;
- la circulation des informations dans un système ;
- les opérations de montage ou de démontage d’un ensemble technologique ;
- les règles de certains jeux comme celles des échecs ou des dames ;
- un ensemble d’opérations concourant à la réalisation d’un projet.
Soit l’arc (xi, xj) : xi est l’extrémité initiale et xj est l’extrémité terminale. Deux
sommets xi et xj sont adjacents s’ils sont distinct et s’il existe un arc (xi, xj) ou (xj, xi).
Deux arcs sont adjacents s’ils sont distincts et ont une extrémité commune.
Exemple : Sur la figure 1.1, les sommets x1 et x2, x3 et x6 sont adjacents 2 à 2. Les arcs a et c, f
et g sont adjacents. Un sommet est isolé s’il n’est adjacent à aucun autre sommet.

5.3 CHEMIN ET CIRCUIT


Un chemin est une séquence d’arcs telle que l’extrémité terminale de chaque arc
coïncide avec l’extrémité initiale du suivant. C’est une succession d’arcs adjacents permettant
59 Recherche opérationnelle 2021-2022

de passer d’un sommet à un autre en suivant les arcs. Ainsi sur la fig. 1.1, (x 1, x2, x3, x5, x4),
(x1, x2, x1, x4, x5, x5, x4, x6, x7), (x2, x1, x4, x5, x5, x4, x6, x3, x5), (x4, x7) sont des chemins.
- Un chemin peut être fini ou infini.
- Un chemin est simple lorsqu’il n’utilise pas deux fois le même arc ; dans le cas contraire, il
est dit composé. Exemple : (x1, x2, x3, x5, x4, x6, x3) sur la figure 1.1 est un chemin simple.
- Un chemin est élémentaire s’il n’utilise pas deux fois le même sommet. Exemple : (x2, x1,
x5, x4, x7) est chemin élémentaire.
- Un circuit est un chemin dont le sommet initial coïncide avec le sommet final. Exemple :
(x3, x5, x4, x6, x3) est un circuit sur la figure 1.1.
- Une boucle est un circuit constitué par un seul arc et un seul sommet. Exemple : l’arc p est
une boucle.
- La longueur d’un chemin ou d’un circuit est le nombre d’arcs que contient ce chemin ou
ce circuit. Exemple : le circuit (x3, x5, x4, x6, x3) sur la figure 11 est de longueur 4.
- Un chemin ou circuit hamiltonien est un chemin ou circuit qui passe une et une seule fois
par chaque sommet.

5.4 GRAPHE COMPLET, SYMETRIQUE, ANTISYMETRIQUE ET


FORTEMENT CONNEXE
 Un graphe G = (X, V) est complet si xi , x j  X , ( xi , x j ) V ou ( x j , xi ) V , c’est-à-

dire tout couple de sommets est relié au moins dans un sens.


 Un graphe G = (X, V) est symétrique_ si ( xi , x j )  V  ( x j , xi )  V , c’est-à-dire si

tout couple de sommets reliés est relié dans les deux sens. Exemple : le graphe de la
figure 1.1 n’est pas symétrique.
 Un graphe G = (X, V) est antisymétrique si ( xi , x j )  V  (/ x j , xi )  V , c’est-à-dire

si tout arc (xi, xj) appartient à V, l’arc (xj, xi) en sens inverse n’existe pas. Ainsi le graphe
de la figure 1.1 n’est pas antisymétrique. Il résulte de la définition d’un graphe
antisymétrique que celui-ci ne contient pas de boucle.
 Un graphe est fortement connexe si entre tout couple de sommets xi, xj il existe un
chemin de xi à xj et un autre de xj à xi ; Ainsi le graphe de la figure 1.3 ci-dessous est
fortement connexe mais celui de la figure 1.1 ne l’est pas.
60 Recherche opérationnelle 2021-2022

x2

x3

x1 x6

x4
x5
Figure 1.3

5.5 GRAPHE PARTIEL ET SOUS-GRAPHE


 Si dans un graphe on supprime un ou plusieurs arcs, on forme un graphe partiel du
graphe de référence. Exemple : le graphe formé des routes nationales est un graphe
partiel du graphe de toutes les routes d’un pays.
 Si dans un graphe on supprime un ou plusieurs sommets ainsi que les arcs qui y arrivent
et qui en partent, le graphe restant est un sous-graphe du graphe de référence. Exemple :
le graphe formé des routes d’une province est un sous-graphe du graphe de toutes les
routes du pays.
5.6 FERMETURE TRANSITIVE
Soit un graphe G = (X, Г), on a Г2(xi) = Г(Г(xi)) : c’est l’ensemble de tous les sommets qui
sont extrémités terminales d’arcs dont l’extrémité initiale est un sommet de Г(x i) ; ou encore c’est
l’ensemble des sommets accessibles de xi par un chemin de longueur 2.
De même Г3(xi) = Г(Г2(xi)) = Г(Г(Г(xi))) = ensemble des sommets accessibles de xi par un chemin
de longueur 3 ; etc.

La fermeture transitive de Г est une application  de X dans X définie par
 
( xi )  xi  ( xi )   2 ( xi )  ...   n ( xi ) . En d’autres mots ( xi ) est l’ensemble des sommets
accessibles à partir de xi par un chemin de longueur quelconque, xi étant compris dans cet ensemble.
Exemple : soit X un ensemble d’individus, Г(xi) est l’ensemble des enfants de xi, Г2(xi) est l’ensemble

des petits enfants de xi. La fermeture transitive ( xi ) est l’ensemble de xi et tous ses descendants.
Soit d(xi, xj) l’écart du sommet xi au sommet xj, c’est-à-dire la longueur du plus court

chemin de xi à xj. On posera d(xi, xj) = +∞ si x j  ( xi ) .

 xj sera un suivant de xi si ( xi , x j ) V ; xi sera un précédent de xj si ( xi , x j ) V ;


61 Recherche opérationnelle 2021-2022

 xj est un descendant d’ordre α de xi si d(xi, xj) = α. Dans ce cas xi est alors un ascendant
d’ordre α de xj.

5.7 APPLICATION INVERSE Г-1


L’inverse de Г est une application Г-1 définie par :  1 ( x j )  xi / x j  ( xi ), c’est-à-dire

 1 ( x j ) est l’ensemble des précédents xj ou encore c’est l’ensemble des sommets xi tels qu’il existe

un arc (xi, xj).


 
 1 ( x j ) est constitué de xj et de tous les ascendants d’ordre fini de xj, ou encore  1 ( x j ) est

l’ensemble formé de xj et de tous les sommets d’où xj est accessible par un chemin.

5.8 CONCEPTS NON ORIENTES


Lorsqu’on étudie un graphe, il est parfois utile de faire abstraction de l’orientation des
arcs : c’est la théorie des graphes non orientés. Ainsi on appelle :
- Une arête, un arc sans flèche. On dit qu’il existe une arête entre deux sommets xi et xj s’il
existe un arc de xi à xj et/ou de xj à xi. Cest le cas par exemple sur la figure 1.3 pour les couples
(x1, x5), (x6, x5) etc..., mais pas pour le couple (x1, x6).
Une arête est généralement notée avec une lettre minuscule surmontée d’une barre. Ainsi u =
(xi, xj) est un arc allant de xi à xj, mais u  ( xi , x j ) est une arête entre xi et xj.

- Une chaîne, une séquence d’arêtes consécutives.


- Cycle, une chaîne fermée. C’est une chaîne finie qui part d’un sommet xi et aboutit à ce même
sommet.
- Chaîne simple : une chaîne dont les arêtes utilisées sont toutes différentes ; dans le cas
Contraire elle est dite « composée ».
- Chaîne élémentaire, une chaîne qui ne rencontre pas deux fois un même sommet.
- Graphe simplement connexe (on dit aussi graphe connexe) un graphe dont tout couple de
sommets est relié par une chaîne. Un graphe fortement connexe est connexe.
- Composante connexe du graphe G = (X, Г) et que l’on note Cxi, l’ensemble des sommets
pouvant être reliés à xi par une chaîne augmenté de xi lui-même. Les différentes composantes
connexes du graphe G = (X, Г) constituent une partition de X, c’est-à-dire, si xi  X :

1°. C xi   ;

2°. C xi  C x j  C xi  C x j   ;
62 Recherche opérationnelle 2021-2022

3°.  C xi  X ;
xi X

Un graphe est connexe s’il ne possède qu’une composante connexe.


Exercice
Soit le graphe G ci-après :
v2 v3

v1 v5

v4

Figure 5.4
Questions Réponses
a. Combien des sommets y a-t-il ? a. 5
b. Combien d’arcs. Y a-t-il ? b. 6
c. Déterminer Г(vi) c. Г(v1) = {v2, v4}
Г(v2) = {v3}
Г(v3) = {v5}
Г(v4) = {v5}
Г(v5) = {v1}
d. Combien de circuits y a-t-il et quels sont- d. 2 : (v1 - v2 - v3 - v5 - v1)
ils ? (v1 - v4 - v5 - v1)
e. Non, car il existe de couples de sommets,
e. Ce graphe est-il complet ? comme (v1, v3), non reliés par un arc.
f. C’est un graphe antisymétrique.
f. Est-il symétrique ou antisymétrique ? g. Oui
g. Est-il simplement connexe ? h.
h. Donner la matrice booléenne v1 v2 v3 v4 v5
v1 0 1 0 1 0
correspondant à ce graphe.
v2 0 0 1 0 0
v3 0 0 0 0 1
v4 0 0 0 0 1
v5 1 0 0 0 0
i. d (v1, v5) = 2
i. Quelle est la valeur de d (v1, v5).
63 Recherche opérationnelle 2021-2022

CHAPITRE 6 : QUELQUES APPLICATIONS LIEES A LA STRUCTURE D’UN


GRAPHE

6.1 RECHERCHE D’UN CHEMIN DE LONGUEUR MINIMUM


Le problème revient à déterminer une piste allant d’un sommet u vers un sommet v dans
un graphe G donné. Deux possibilités se présentent :
1°. On considère tous les chemins élémentaires allant de u à v et on choisit celui de longueur minimum
d(u, v).
2°. Pour des graphes complexes, on applique la théorie suivante :
- Marquer 0 le sommet u ;
- Marquer 1 tous les sommets ayant des arcs aboutissants, venant de u, puis i+1 tous les
sommets ayant des arcs aboutissants venant d’un sommet marqué i. Un sommet déjà marqué
ne peut plus l’être pour la deuxième fois.
- La longueur cherchée égale au numéro marqué sur v.
Exemple : Soit le graphe ci-après. Cherchez-en le chemin de longueur minimum allant de u à v.

2 3
1

4
2
1
1

0
u
2
2
v
4
1

3
Figure 6.1

D’où d (u, v) = 4 : c’est le chemin représenté par le tracé rouge.


6.2 ALGORITHME POUR TROUVER LA FERMETURE TRANSITIVE Г(xi)
1°. marquer 0 le sommet xi (origine) ;
2°. marquer α+1 tout suivant non marqué d’un sommet marqué α ;
64 Recherche opérationnelle 2021-2022

Certains sommets ne pourront éventuellement pas être marqués. L’ensemble des sommets marqués

constituent donc la fermeture transitive ( xi ).
Cet algorithme permet :
- Le calcul des distances d’un sommet xi à un sommet xj, d (xi, xj).
- L’obtention d’un chemin de longueur minimum allant de xi à xj.
- L’obtention d’un circuit passant par xi qui soit de longueur minimum : il suffit de déterminer
d (xi, xj) et d (xj, xi).
NB : Le marquage peut se faire soit sur le graphe, soit encore sur la matrice associée.
Exemple : trouver la fermeture transitive du sommet xi du graphe ci-après :
x2 ^
x3 Г(x3)
1
2 x4
1 2
x6
0
x1
3

x5
11
2 3
x7 x8
x9

Figure 6.2
65 Recherche opérationnelle 2021-2022

Matrice associée au graphe

x1 x2 x3 x4 x5 X6 x7 x8 x9
x1 0 1 1 0 0 0 1 0 0
x2 0 0 1 0 0 0 0 0 0
x3 0 0 0 0 0 0 0 1 0
x4 0 0 1 0 1 0 0 0 0
x5 0 0 0 0 0 0 0 0 0
x6 0 0 0 0 1 0 0 0 1
x7 0 0 0 1 0 0 0 0 0
x8 0 0 0 1 1 0 0 0 1
x9 0 0 0 0 1 0 0 0 0

Donc,

( x1 )  x1 , x2 , x3 , x4 , x5 , x7 , x8 , x9 .
6.3 RECHERCHE DES CIRCUITS DANS UN GRAPHE
Notons tout d’abord que les boucles sont des cas particuliers des circuits. Il est facile
de les détecter dans un graphe ou sur sa matrice incidente : elles sont représentées par les 1 de
la diagonale. Après avoir supprimé les boucles ainsi détectées, on applique l’algorithme ci-
dessous pour rechercher les autres circuits du graphe.
Algorithme de recherche des circuits.
a. Sur le tracé du graphe.
1°. Repérer le sommet i = 1 ;
2°. Les arcs du sommet i sont-ils tous aboutissants ou tous incidents ? Si oui aller en
3°, sinon reprendre en 1° avec le sommet i + 1.
3°. Effacer le sommet i ainsi que ses arcs adjacents. Puis reprendre en 1° avec le
sommet i + 1.
La procédure s’arrête lorsque tous les sommets non effacés ont à la fois des arcs incidents et
aboutissants. Si le graphe ne contient aucun circuit, la procédure efface tout le graphe. Dans le
cas contraire seuls les circuits subsistent.
66 Recherche opérationnelle 2021-2022

Exemple : Chercher les circuits s’il y en a, du graphe suivant :

x1 x2

x4
x4
x10
x5
x3
x9
x8

x6
x7

Figure 6.3

Il reste deux circuits, à savoir : x4 - x3 - x8 - x4 et x6 - x5 – x10 - x6

x3 x5

x4 x6

x10
x8

b. Sur la matrice d’incidence du graphe


Considérer un sommet i = 1
1°. Répérer la case (i, i);
2°. La ligne i ou la colonne i ne contient-elle que des zéros ? Si oui, aller en 3°, sinon
reprendre en 1° avec le sommet i + 1 ;
3°. Barrer la ligne i et la colonne i, puis reprendre en 1° avec le sommet i + 1.
La procédure s’arrête d’elle-même par épuisement. Si le graphe ne contient pas de circuits,
toutes les lignes et colonnes seront barrées. Dans le cas contraire, la partie non barrée de la
matrice indique les circuits.
67 Recherche opérationnelle 2021-2022

Exemple : chercher les circuits du graphe précédent à partir de sa matrice incidente.


x1 x2 X3 x4 X5 x6 x7 x8 x9 x10
x1 0 1 0 0 0 0 0 0 0 0
x2 0 0 0 0 0 0 0 0 0 0
x3 0 1 0 0 0 0 0 1 0 0
x4 1 0 1 0 0 0 0 0 0 0
x5 1 0 0 0 0 0 0 0 0 1
x6 0 0 0 0 1 0 0 0 1 0
x7 0 0 0 1 0 0 0 1 0 0
x8 0 0 0 1 0 0 0 0 0 0
x9 0 0 0 0 0 0 0 0 0 0
x10 0 0 0 0 0 1 0 0 1 0

Le graphe de la partie non barrée se présente comme suit :

x8
x5
x3
x6

x4
x10
68 Recherche opérationnelle 2021-2022

CHAPITRE 7 : GRAPHES VALUES ET QUELQUES


APPLICATIONS ECONOMIQUES DE LA THEORIE DES
GRAPHES

7.0 GENERALITES SUR LES GRAPHES VALUES


Un graphe valué est un graphe dont les arcs sont munis d’une certaine valeur. A
chaque arc du graphe G(X, V) on associe une valeur v. Le système des valeurs associées aux
arcs du graphe peut être numérique ou non.
- Le système des valeurs non numériques représente généralement les diverses structures
dans un groupe.
- Le système des valeurs numériques permet de représenter une grande variété de
phénomènes concrets faisant intervenir les grandeurs comme celles de fréquence, de
probabilité, de coûts, de capacité, des flots, de distance, …
Nous n’aborderons dans ce qui suit que les graphes valués dans un système de valeurs
numériques.

Système des valeurs numériques dans un graphe valué.


Etant donné un graphe G(X,V). On associe à tout arc (x i, xj) V un nombre
l ( xi , x j )  lij  0 appelé « longueur » représentant la grandeur étudiée (probabilité, capacité,

coût, distance, …).


Exemple : soit le graphe G ci-après :

x2 4
5 x3

G= 1
3 x5
x1
2
2
x4
Figure 7.1
69 Recherche opérationnelle 2021-2022

Matrice associée à un graphe valué


A tout graphe valué G(X, V) on peut associer une matrice M dont le rôle est analogue à
celui de la matrice booléenne d’un graphe et qui est définie comme suit :
 
M  mij tel que

mij  0 si ( xi , x j )  V

lij  valeur associée à l ' arc ( xi , x j ) si ( xi , x j ) V

Exemple : matrice associé au graphe G de la fig. 7.1


x1 x2 x3 x4 x5
x1 0 5 1 2 0
x2 0 0 4 0 0
x3 0 0 0 3 0
x4 0 0 0 0 2
x5 0 0 0 0 0

On appelle « force » d’un graphe valué numérique la valeur maximum des valeurs des arcs du
graphe. Par exemple dans le graphe de la fig. 7.1. la force de G est 5.

7.1 RECHERCHE DE CHEMIN DE VALEUR OPTIMUM


Le problème est de trouver le ou les chemins allant d’un sommet S0 appelé « source »
ou « entrée » à un autre sommet Sp appelé « destination » ou « sortie » tel que la valeur totale
du chemin soit optimum c’est-à-dire l ij
 optimum (minimum ou maximum).
( xi , x j )

Dans la théorie économique la recherche du chemin de valeur minimum ou maximum


permet de minimiser ou maximiser selon le cas, dans les problèmes de transport, de vente…, le
coût, la capacité, la distance, le flot, … Les valeurs lij représentent alors le coût de transport, les
capacités …
Pour résoudre ce problème de recherche de chemin de valeur optimum il existe plusieurs
algorithmes dont ceux de Ford et Bellman-Kalaba. Mais l’algorithme suivant s’applique
aisément pour les réseaux comportant un grand nombre de sommets.
Après avoir vérifié qu’il n’y a pas de circuit dans le graphe on peut donc appliquer
l’algorithme ci-après expliqué dans le cas de maximisation :
1°. Marquer λ0 = 0 le sommet x0 ;
70 Recherche opérationnelle 2021-2022

2°. Rechercher un sommet xi non marqué λi ;


3°. Tester si tous les sommets de   ( xi ) sont marqués. Si oui passer au point 4°, sinon
revenir en 2°
4°. Marquer i le sommet xi tel que i  max ( j  c ji ) avec x j    ( xi ) ; reprendre en 2°.
j

Le marquage ainsi obtenu constitue une solution du problème, la marque λi de xi indiquant la


valeur maximale du chemin allant de x0 à xi.
Le même algorithme peut aussi servir pour la recherche d’un chemin de valeur minimale
si le graphe ne contient pas de circuit. Dans ce cas le 4ème point de l’algorithme sera : « marque
λi le sommet xi tel que i  min ( j  c ji ) avec x j    ( xi ); puis reprendre au point 2° ».
j

Exemple : soit le graphe ci-après. Rechercher dans ce graphe le chemin des valeurs maximale
et minimale allant de x0 à xn .
a. Recherche du chemin de valeur maximale

9 15
5
3
20
2 3
3
7 13 4 11
11
0 5
31
x0 13
9 7
8 8 4
21
4
2
3 9
4 5 33
4 3
xn
4 5
16
2 8
8

Figure 7.2

Le chemin de valeur maximale allant de x0 à xn est tracé en rouge sur le graphe : sa valeur est
33. Le marquage à chaque sommet exprime la valeur maximale du chemin allant de x 0 à ce
sommet.
71 Recherche opérationnelle 2021-2022

b. Reprenons le même graphe pour la recherche du chemin de valeur minimale.


12
9
5
3
12
2 3
3 7
10 4 11
11
0 5 13
x0 8
9 7
8 8 4
4 15 2
3 9
4 5 15
4 3
xn
4 5
13
2 8
6
Figure 7.3
La valeur minimale des chemins allant de x0 à xn est 15.
Exercice.
Soit un réseau de villes A, B, C, … et des routes les reliant entre elles. Un voyageur veut se
rendre de la ville A vers la ville G. Trouver le chemin qu’il peut parcourir afin de minimiser la
distance.

C
30
100

B 70 D

60
50 30 80 150 130
45 35
140
A G
360
95
180

60
F
80
E
Figure 7.4
72 Recherche opérationnelle 2021-2022

7.2 PROBLEME DU FLOT MAXIMAL


7.2.1 Définition
On appelle « réseau de transport » un graphe fini sans boucle où, à chaque arc v,
est associé un nombre c(v) ≥ 0 a appelé « capacité de l’arc » et dans lequel il existe deux
sommets particuliers x0 et xn tels que :
1°.   ( x0 )  , c’est-à-dire x 0 n’a pas d’antécédent. On l’appelle « entrée ou source
du réseau ».
2°. ( x n )   , c’est-à-dire x n n’a pas de suivant ; on l’appelle « sortie ou destination
du réseau ».
Soient V  ( xi ) l’ensemble des arcs incidents intérieurement à xi et V  ( xi ) celui des
arcs incidents extérieurement à xi. On dit qu’un arc v est « incident à un sommet xi vers
l’extérieur » si xi est l’extrémité initiale de v et si l’extrémité terminale de v est différente
de xi. Un arc v est « incident à un sommet xi vers l’intérieur » si xi est l’extrémité terminale
de v et si l’extrémité initiale de v est différente de xi.
On peut donc dire que V  ( xi ) est l’ensemble des arcs venant des sommets autres

que xi mais ayant xi comme extrémité terminale, tandis que V  ( xi ) est l’ensemble des arcs
partant de xi vers d’autres sommets.
Un flot  pour un réseau de transport est une quantité  (v) associée à chaque arc
v du réseau telle que :
1°.  (v)  0 v  V (V = ensemble des arcs du réseau) ; c’est-à-dire que le flot ne peut
jamais être négatif, il ne peut être que positif ou nul ;
2°.   (v)    (v), x i  x 0 , xi  x n
vV  ( xi ) vV  ( xi )

Cette propriété exprime que le flot est conservatif, c’est-à-dire que le flot respecte la loi
de Kirchhoff en tout sommet autre que x0 et xn : « Tout flot qui entre dans un sommet
doit en sortir ».
_
3°.  (v)  C (v) v  V : Cela signifie que le flot dans un arc doit être inférieur ou égal
à la capacité de cet arc. Si  (v)  C (v) on dit que l’arc est saturé. Un flot  (v) peut être
assimilé à une quantité de matière qui passe dans l’arc v et qui ne doit jamais
dépasser la capacité C(v) de cet arc.
4°.   (v )    (v )   0
vV  ( x0 ) vV  ( xn )
73 Recherche opérationnelle 2021-2022

Le nombre  0 représente la quantité de matière qui sort de x0 vers le réseau et arrive du réseau
en xn. Un flot est dit complet ssi tout chemin de x0 à xn du réseau comporte au moins un arc
saturé.
7.2.2 Exemple d’un réseau de transport
Certains ports de chargement A1, A2, …, Am disposent respectivement des tonnages
x1, x2, …, xm d’un produit que d’autres ports B1, B2, …, Bn réclament en quantités y1, y2, …,
yn. Chaque liaison maritime entre un port Ai et un port Bj a une capacité limitée Cij. On cherche
à satisfaire au mieux toutes les demandes et à organiser les expéditions.
A cette fin, on construit un réseau de transport en reliant une entrée A aux m
sommets Ai par des arcs de capacité xi et les n sommets Bj à une sortie B par des arcs de capacité
yj. En appelant  j le tonnage total arrivant en un port Bj et  i celui correspondant aux

expéditions des Ai, rij étant la quantité transportée de Ai à Bj le tonnage global sera maximal si
m n
R   rij est max imal avec 0  rij  C ij , i  1, 2, ..., m ; j  1, 2, ..., n .
i 1 j 1

m
et r
i 1
ij   j  y j , j  1, 2, ..., n

r
j 1
ij   i  xi , i  1, 2, ..., m

Ajoutons que certaines capacités Cij peuvent être nulles par hypothèse car aucune liaison
maritime entre Ai et Bj n’existe.
Ce problème peut être représenté par le graphe ci-après :

A1 C11 B1

C12 C21
x1 Cm1

C13 B2 y2 y1
A2 C22
Cm2
A B3 B
x2 C23
C2n Cm3 y3
yn
C1n
xm

Figure 7.5
Am Cmn Bn
74 Recherche opérationnelle 2021-2022

La quantité rij à faire passer de Ai à Bj s’appelle « flot ». Le problème consiste à maximiser le


m n
flot global R   rij de transport soumis à des capacités limitées.
i 1 j 1

7.2.3 Coupe et valeur d’une coupe


Soit E l’ensemble de touts les sommets dans le réseau de transport et F un ensemble
des sommets contenant la sortie xn et ne contenant pas x0. L’ensemble V  (F ) des arcs incidents
vers l’intérieur à F est une coupe du réseau.
Exemple : Soit le réseau représenté par le graphe ci-dessous.

x4

x8
x1

x5 F

x0 x2 x9
xn

x3 x6

x10

x7

Figure 7.6
F = {x2, x3, x6, x9, xn}
V  (F ) = {(x1, x2), ( x0, x2), (x5, x2), (x0, x3), (x5, x9), (x10, x9), (x8, xn), (x10, xn)}

V  (F ) est la coupe correspondant à F. Soit F l’ensemble des sommets du réseau n’appartenant


pas à F.
En notant encore par C ( F , F ) une coupe dans un réseau correspondant à F et F . On

peut dire que la coupe C ( F , F ) détermine une partition de tous les sommets en deux sous

ensembles F et F tels que xn  F et x0  F . La valeur de la coupe C ( F , F ) est par définition


75 Recherche opérationnelle 2021-2022

la somme des capacités des arcs allant de F à F (avec x0  F et xn  F ). Donc, si l’on appelle

 (F ) la valeur de la coupe C ( F , F ) , alors :


 ( F )   C (v )    C( x , x
i j )
vV  ( F ) xi F x j F

Comme F contient la sortie toute unité de matière allant de x0 à xn emprunte au moins une fois
un arc de V  (F ). Donc quel que soit un flot  et une coupe V  (F ) on a :

 ( xn )  C(V  ( F ))
S’il existe un flot 0 ( xn ) et une coupe V  ( F ) telle que  0 ( xn )  C(V ( F )) alors le flot  0 ( x n )
a donc une valeur maximale et la coupe V une capacité minimale ; d’où le théorème suivant :
Théorème de Ford-Fulkerson ou théorème de min-cut, max-flow :
« Dans un réseau de transport donné, la valeur maximale d’un flot est égale à la capacité
minimale d’une coupe : max  0  min C ( V  ( F ))
x0 F , xn F

7.2.4 Recherche du flot maximum. Algorithme de Ford-Fulkerson.


L’algorithme de Ford-Fulkerson permet d’obtenir le maximum d’un flot à travers
un réseau. Il se justifie par le théorème précédent. Il s’énonce comme suit :
1°. Faire passer un flot au jugé (flot initial ou flot à volonté). Ce flot initial doit être borné à la
capacité des arcs et respecter la loi de Kirchhoff.
2°. Améliorer le flot initial (flot ou jugé) pour qu’il devienne complet. Si le flot n’est pas
complet il existe dans le graphe au moins un chemin n’ayant pas d’arc saturé allant de
l’entrée à la sortie. On augmente le flot de ce chemin d’une quantité telle qu’un arc au moins
soit saturé. On recommence l’opération jusqu’à ce que tous les chemins contiennent chacun
au moins un arc saturé et l’on obtient ainsi un flot complet.
3°. A partir d’un flot complet marquer les sommets du graphe de la façon suivante :
a. Marquer l’entrée x0 du signe + ;
b. -Marquer d’une marque +xi tout sommet xj non marqué d’un arc (xi, xj) non saturé tel
que xi est marqué ;
-Marquer d’une marque -xi tout sommets xj non marqué d’un arc (xj, xi) transportant un
flot non nul pour lequel l’extrémité xi est marquée.
c. Si, par cette procédure, on parvient à marquer la sortie, le flot n’est pas maximal. On
considère alors une chaîne de points marqués (+ ou/et -) allant de l’entrée à la sortie et
la séquence de sommets qui la composent. (Une chaîne est une suite ordonnée d’arcs
adjacents d’orientation quelconque). Si un arc placé dans cette séquence est orienté dans
76 Recherche opérationnelle 2021-2022

l’ordre de la séquence, on augmente le flot de cet arc ; s’il est orienté en sens inverse,
on diminue le flot de cet arc. La quantité à augmenter ou à retrancher au flot des arcs de
la séquence est choisie de telle sorte qu’au moins un arc soit saturé et que les flots des
arcs soient tous positifs ou nuls.
Si en appliquant une nouvelle fois la procédure de marquage décrite ci-dessus, on n’arrive pas
à marquer la sortie alors on a trouvé un flot global maximal. Pour le calculer, on réalise une
coupe en constituant l’ensemble F des sommets marqués et l’ensemble F des sommets non
marqués. La valeur de cette coupe est la valeur maximale du flot.
Exemple : Trouver le flot maximal du réseau de transport représenté par la figure 4.3 ci-dessous
où les nombres indiqués à côté des flèches des arcs représentent les capacités respectives.

6
4 2
1 2 8 9 8
6
9
44-
5 1
8
5 3
0 2 6
9 11
3 2
1
7 7
14 6
6
44 12
8
3 8 11
11
10
Figure
7 7.7
2 9
La recherche du flot complet sera faite sur les matrices des capacités de la manière suivante.
Soit la matrice ci-dessous dont les capacités k(i, j) sont celles de la figure 7.7.
77 Recherche opérationnelle 2021-2022

k (i, j)
0 1 2 3 4 5 6 7 8 9 10 11
0 0 6 8 14 0 0 0 0 0 0 0 0
1 0 0 4 0 6 2 0 0 0 0 0 0
2 0 0 0 0 0 0 7 0 0 3 0 0
3 0 0 1 0 0 0 8 2 0 0 0 0
4 0 0 0 0 0 8 0 0 2 0 0 0
5 0 0 0 0 0 0 0 0 9 1 6 0
6 0 5 0 0 0 0 0 11 0 0 0 0
7 0 0 0 0 0 0 0 0 0 4 9 2
8 0 0 0 0 0 0 0 0 0 3 0 9
9 0 0 0 0 0 0 7 0 0 0 8 6
10 0 0 0 0 0 0 0 0 0 0 0 12
11 0 0 0 0 0 0 0 0 0 0 0 0
Nous faisons passer un flot au jugé sur le chemin 0 - 1- 2 -6 - 7- 11. Dans la matrice nous
encerclons les capacités de ce chemin et lançons un flot égal à la plus petite valeur des capacités
encerclées. Nous lançons donc le flot de valeur 2 sur le chemin indiqué. Les capacités sur ce
chemin deviennent k ((i1,)j )  k (i, j )  f (i, j )  k (i, j )  2 . La matrice des capacités k ((i1,)j ) est donc

celle du tableau ci-après


k ((i1,)j )

0 1 2 3 4 5 6 7 8 9 10 11
0 4 8 14
1 2 6 2
2 5 3
3 1 8 2
4 8 2
5 9 1 6
6 5 9
7 4 9
8 3 9
9 7 8 6
10 12
11
78 Recherche opérationnelle 2021-2022

Sur la matrice des capacités k ((i1,)j ) on repère le chemin non saturé 0 - 1 - 2- 6 - 7- 9- 11 sur lequel

on fait passer un flot de valeur 2 (plus petite capacité du chemin considéré). On retranche ce
flot aux capacités du chemin considéré et l’on obtient la matrice des capacités
k ((i2, )j ) telle que :

k ((i2, )j )  k ((i1,)j )  2  capacité sur le che min considéré ou  k ((i1,)j )  autre capacité .

k ((i2, )j )

0 1 2 3 4 5 6 7 8 9 10 11
0 2 8 14

1 6 2

2 3 3

3 1 8 2

4 8 2

5 9 1 6

6 5 7

7 2 9

8 3 9

9 7 8 4

10 12

11
79 Recherche opérationnelle 2021-2022

k ((i3, )j )  k ((i2, )j )  2 si la capacité est sur le che min indiqué .

0 1 2 3 4 5 6 7 8 9 10 11
0 8 14

1 4 2

2 3 3

3 1 8 2

4 8 0

5 9 1 6

6 5 7

7 2 9

8 3 7

9 7 8 4

10 12

11
k ((i4, )j )  k ((i3, )j )  2 .

0 1 2 3 4 5 6 7 8 9 10 11
0 6 14

1 4 2

2 1 3

3 1 8 2

4 8

5 9 1 6

6 5 5

7 9

8 3 7

9 7 8 2

10 12

11
80 Recherche opérationnelle 2021-2022

k ((i5, )j )  k ((i4, )j )  3 .

0 1 2 3 4 5 6 7 8 9 10 11
0 3 14

1 4 2

2 1 0

3 1 8 2

4 8

5 9 1 6

6 5 5

7 9

8 3 7

9 7 5 2

10 9

11
k ((i6, )j )  k ((i5, )j )  1 .

0 1 2 3 4 5 6 7 8 9 10 11
0 2 14

1 4 2

2
3 1 8 2

4 8

5 9 1 6

6 5 4

7 8

8 3 7

9 7 5 2

10 8

11
81 Recherche opérationnelle 2021-2022

k ((i7, )j )  k ((i6, )j )  4 .

0 1 2 3 4 5 6 7 8 9 10 11
0 2 10
1 4 2
2
3 1 4 2
4 8
5 9 1 6
6 5
7 4
8 3 7
9 7 5 2
10 4
11

k ((i8, )j )  k ((i7, )j )  2 .

0 1 2 3 4 5 6 7 8 9 10 11
0 2 8
1 4 2
2
3 1 4
4 8
5 9 1 6
6 5
7 2
8 3 7
9 7 5 2
10 2
11
82 Recherche opérationnelle 2021-2022

k ((i9, )j )  k ((i8, )j )  2 .

0 1 2 3 4 5 6 7 8 9 10 11
0 2 6

1 2 2

2
3 1 2

4 6

5 9 1 4

6 3

7 2

8 3 7

9 7 5 2

10
11
k ((i10, j))  k ((i9, )j )  2 .

0 1 2 3 4 5 6 7 8 9 10 11
0 2 4

1 2

2
3 1

4 6

5 7 1 4

6 1

7 2

8 3 5

9 7 5 2

10
11
83 Recherche opérationnelle 2021-2022

Sur la matrice k (10) , on a encerclé les capacités des sommets qu’on peut atteindre à partir de 0
par des chemins non saturés. Ces sommets sont 2 et 3. Il n’existe plus de chemin non saturé qui
permet d’atteindre la sortie 11. On a donc trouvé un flot complet. Ce flot peut être calculé en
faisant : f (i, j )  k (i, j )  k ((i10, j)) . Ce calcul donne le tableau ci-après :

0 1 2 3 4 5 6 7 8 9 10 11
0 6 6 10

1 4 4 2

2 7 3

3 0 8 2

4 2 2

5 2 0 2

6 4 11

7 4 7 2

8 0 4

9 0 3 4

10 12

11

Le graphe avec les flots de ce tableau se présente comme celui de la figure 7.8 ci-après sur
laquelle on a appliqué la technique de marquage comme expliquée précédemment. Les arcs
saturés sont indiqués en rouge.
84 Recherche opérationnelle 2021-2022

+1

-2 4+2 4 2
+5
1 2 2+2 2+2 8
6
+4 4+2
4-2
4 0
6+2 5 0 +8
0 2 4
+ +3 9 11
3 2
0
7 0
10 2
6
4 12
3
3 8 11
+0 10
7
2 7
Figure 7.8
On a pu marquer la sortie : le flot total n’est donc pas optimal. Considérons la séquence suivante
des sommets marqués : 0-2-1-4-5-8-11. En considérant les capacités des arcs de cette séquence,
on augmentera de 2 le flot des arcs dirigés dans le sens du chemin et l’on diminuera de 2 les
autres arcs du chemin. Ainsi, (0, 2) passera de 6 à 8, (2, 1) de 4 à 2, (1, 4) de 4 à 6, (4, 5) de
2 à 4, (5, 8) de 2 à 4, (8, 11) de 4 à 6. Ainsi les arcs (0, 2) et (1, 4) deviennent saturés tandis que
l’arc (1, 2) ne l’est plus. Le graphe et les flots deviennent comme ceux de la figure 7.9 ci-après:

-2 6 4 2
1 4 8
6 4
2 4 2 6
5 0 0
0 2 4
8 +3 9 11
+ 3
0 2
7 -1 0
10 2
6 4 12
3
3 8 11
+0 10
2 7
7
Figure 7.9
85 Recherche opérationnelle 2021-2022

Sur le graphe de la figure 7.9 il n’est plus possible de marquer la sortie. On a donc trouvé un
flot global maximal. Pour le calculer réalisons la coupe dont les sommets marqués forment
l’ensemble F et les sommets non marqués, l’ensemble F :
F  0,1, 2, 3, 6 ; F  4, 5, 7, 8, 9,10,11 . Donc la valeur de la coupe est alors

(F )  C(F , F )    k(x , xi j )  6  2  3  2  11  24


xi F x j F

7.3 PROBLEME D’AFFECTATION OPTIMALE. ALGORITHME


HONGROIS
Soient n ouvriers 01, 02, …, 0n et n postes p1, p2, …, pn. A toute affectation (0i, pj)
est attachée une valeur Cij ≥ 0, (i, j = 1, 2, …, n). Les valeurs Cij attachées aux affectations
peuvent être suivant la nature du problème considéré comme les coûts, des durées etc. Certains
Cij peuvent être infinis, ce qui signifie que l’affectation correspondante est impossible. Affecter
les n ouvriers aux n postes de manière que tous les ouvrier aient chacun un poste et un seul et
que chaque poste soit affecté à un et un seul ouvrier, ceci de telle sorte que la valeur totale des
affectations soit minimale, tel est l’énoncé du problème d’affectation. L’algorithme hongrois
permet de résoudre ce problème.
La méthode hongroise s’appuie sur le lemme suivant : on ne change pas la ou les
solutions optimales d’un problème d’affectation en diminuant ou augmentant d’une même
quantité λ tous les éléments d’une même ligne (ou d’une même colonne) de la matrice Cij. Une
telle opération diminue ou augmente de λ la valeur totale des affectations, mais ne change pas
la solution optimale.
L’algorithme hongrois se déroule en cinq phases :
Phase I : Obtention des zéros
A tous les éléments d’une même colonne de la matrice des Cij enlever le plus petit
élément de la colonne ; puis dans la matrice obtenue enlever à tous les éléments d’une
même ligne le plus petit élément de la ligne. De cette façon, on est certain d’obtenir une matrice
C ij(1) ayant au moins un zéro par ligne et par colonne.
86 Recherche opérationnelle 2021-2022

Exemple : Soit le tableau des Cij ci-après, exprimant le coût d’une affectation de Xi à Yj.
Chercher les affectations de coût minimum.
Y1 Y2 yY3 Y4 Y5
En appliquant la procédure de la phase I on enlèvera 6 à
X1 7 3 5 7 10
la colonne (1), 3 à la colonne (2), 1 à la colonne (3), 2 à la
X2 6 ∞ ∞ 8 7
colonne 4 et 7 à la colonne (5). Il vient le tableau ci-
X3 6 5 1 5 ∞
dessous :
X4 11 4 ∞ 11 15
X5 ∞ 4 5 2 10
(a)
(1) (2) (3) y(4)
5 (5) On appliquera la même procédure sur les éléments d’une
(1) 1 0 4 5 3 même ligne du tableau (b) ci contre et l’on obtient le
(2) 0 ∞ ∞ 6 0 tableau (c).
(3) 0 2 0 3 ∞
(4) 5 1 ∞ 9 8
(5) ∞ 1 4 0 3
(b)
(1) (2) (3) y(4)
5 (5) (1) (2) (3) y(4)
5 (5)
(1) 1 0 4 5 3 (1) 1 0 4 5 3

(2) 0 ∞ ∞ 6 0 (2) 0 ∞ ∞ 6 0
X
(3) 0 2 0 3 ∞ (3) X
0 2 0 3 ∞
(4) 4 0 ∞ 8 7 (4) 4 0
X ∞ 8 7
(5) ∞ 1 4 0 3 (5) ∞ 1 4 0 3
(c) (d)

Phase II : Recherche d’une solution optimale


Avec les zéros de C ij(1) , on cherche à former une solution de valeur zéro, c’est-à-dire une

affectation où tous les C ij(1) sont des zéros. Si cela est possible, on a trouvé la solution optimale,

sinon on passe à la phase III. Pour rechercher cette solution nulle, on considère d’abord une des
lignes qui a le moins de zéros, on encadre l’un des zéros de cette ligne, puis on barre les zéros
qui se trouvent sur la même ligne ou la même colonne que le zéro encadré. On procède de
même successivement pour toutes les lignes.
Dans notre exemple sur le tableau (d), on a d’abord encadré C12(1 ) et barré C 42
(1)
,
87 Recherche opérationnelle 2021-2022

(1)
encadré C54 (1)
, encadré C 21 (1)
et barré C 25 (1)
et C31 (1)
, encadré C33 . On voit qu’on n’a pas pu obtenir
une affectation de valeur nulle car la 4ème ligne et la 5ème colonne n’ayant pas de zéro encadré,
on est obligé d’affecter X4 à Y5, ce qui entraîne un coût C45
(1)
 7.
Phase III : obtention d’un ensemble minimal de lignes et colonnes contenant tous les
zéros
Opérer pas à pas comme suit :
a. Vérifier que le couplage obtenu en phase II est maximal. Dans le cas contraire, employer
l’algorithme de Ford-Fulkerson comme dans le cas d’affectation simple pour obtenir un
couplage maximal.
b. Marquer d’une croix toutes les lignes qui ne contiennent aucun zéro encadré.
c. Marquer toute colonne qui a un ou plusieurs zéros barrés dans une des lignes marquées.
d. Marquer toute ligne qui a un zéro encadré dans une colonne marquée.
e. Répéter c et d jusqu’à ce qu’il ne soit plus possible d’obtenir ainsi de nouvelles lignes
ou colonnes marquées.
Ce procédé permet d’obtenir un ensemble de lignes et/ou colonnes en nombre
minimal qui contient tous les zéros encadrés ou rayés.
Dans notre exemple, on a d’abord marqué la ligne (4) (voir tableau (d)), puis la
colonne (2) et la ligne (1). On n’a pas pu pousser plus loin.
Phase IV : Suite de la phase III
Tracer un trait sur toute ligne non marquée et un trait sur toute colonne marquée.
Ceci permet d’obtenir d’une façon certaine l’ensemble des lignes et/ou des colonnes en nombre
minimal qui contient tous les zéros.
Sur le tableau (d) il faut tracer des traits sur les lignes (2), (3) et (5) et sur la colonne
(2).
Phase V : Déplacement éventuel de certains zéros
Considérer le tableau partiel des éléments qui ne sont pas traversés par des traits et
prendre le plus petit nombre de ce tableau partiel, enlever ce nombre aux colonnes non
traversées par un trait et l’ajouter aux lignes traversées par un trait. Ceci revient à enlever ce
nombre à la partie non traversée par des traits et à l’ajouter aux éléments se trouvant à
l’intersection de deux traits et à laisser le reste invariable.
Sur le tableau (d) il faut retrancher 1 aux colonnes (1), (3), (4), (5) et ajouter ensuite
1 aux lignes (2), (3) et (5) : on obtient le tableau (e).
88 Recherche opérationnelle 2021-2022

(1) (2) (3) y(4)


5 (5)
0 X0 3 4 2
=
X0 ∞ ∞ 6 0
>
=
X 0 -3 0 3 ∞
> 5
=
-
>3 /0 ∞ 7 6
5
-∞ 92 4 0 3
/ ≤
5
9 (e)
/ λ
≤ ≤ optimale obtenue ou établissement d’un nouveau cycle
Phase VI : Solution
9
λ
≤ 5
Onλ≤ reproduira
/ la phase II sur le nouveau tableau Cij( 2) obtenu en phase V. Si une
5
≤ 3
solution optimale
5 a .été obtenue on s’arrête, sinon on continue jusqu’à ce qu’une phase II donne
/
3
/
une solution optimale. Cette solution optimale peut ne pas être unique.
.
3 ( 2) ( 2) ( 2) ( 2)
Sur
. le tableau (e) on a encadré C 42 et barré C12 , encadré C54 , encadré C11 et
( 2) ( 2) ( 2) (1)
barré C 21 et C31 , encadré C25 , encadré C33 . Chaque ligne et chaque colonne contiennent un

zéro encadré : une solution optimale est donc trouvée avec C11( 2)  C25
( 2)
 C33
( 2)
 C42
( 2)
 C54
( 2)
0
. Cette solution optimale donne, en revenant au tableau initial : C11 + C25 + C33 + C42 + C54 = 7
+ 7 + 1 + 4 + 2 = 21. Le couplage à valeur minimale est représenté par le schéma ci-dessous :

X1 Y1
X2 Y2
X3 Y3
X4 Y4
X5 Y5
Figure 7.10
Remarques :
1. S’il y a plus d’individus que des jobs ( m  n ) on introduira m  n jobs fictifs pour lesquels
tous les individus ont la même qualification ou une même valeur des Cij = 0. Il est clair que
toute solution au problème modifié donne une solution au problème original. En effet, si un
individu est affecté à un job fictif dans le problème modifié, il n’est pas affecté du tout dans
le problème original et de cette façon le principe d’optimalité est préservé.
2. Dans certains problèmes d’affectation on se propose de rechercher l’affectation donnant le
maximum de la fonction économique. Dans ce cas on opère de la façon suivante :
a) On recherche le maximum des Cij dans la matrice des valeurs Cij, soit C = max Cij.
89 Recherche opérationnelle 2021-2022

b) On calcule les valeurs Cij telles que Cij  C  Cij .

Il est évident que le maximum du problème d’affectation formé avec les Cij correspond
au minimum de celui formée avec les Cij . On recherche donc la solution optimale du
tableau formé avec les Cij .

7.4 PROBLEME DE TRANSPORT. ALGORITHME DE STEPPING-STONE


(MARCHE PIED-ESCALIER)
Soit le problème de transport ci-après. Des marchandises doivent être transportées
d’un ensemble des centres de production vers un ensemble de centres de distribution. Soient P1,
P2, …, Pm les centres de production et a1, a2, …, am les quantités produites dans ces centres
respectivement. Soient encore B1, B2, …, Bn les centres de distribution et d1, d2, …, dn les
quantités minimums demandées dans ces centres. Soit cij le coût de transport d’une unité de
marchandise du centre Pi au centre Bj.
Le problème est d’organiser le transport des marchandises de la manière la moins
coûteuse possible. Si l’on appelle xij la quantité transportée de l’origine Pi à la destination Bj, le
tableau formé avec les quantités xij (i = 1, …, m, j = 1, …, n) est appelé « matrice des débits ou
schéma de transport ». Signalons que ce problème a été présenté dans le chapitre 2 et peut être
traité à l’aide de la programmation linéaire.
m n
Supposons que a  d
i 1
i
j 1
j . Dans ces conditions il y a lieu de trouver une solution

m
telle que : x
i 1
ij  d j ( j  1, 2, ..., n)

x
j 1
ij  ai (i  1, 2, ..., m)

m n
Le coût d’expédition sera alors déterminé par la fonction  c
i 1 j 1
ij xij
90 Recherche opérationnelle 2021-2022

Le graphe correspondant si m = 4 et n = 5 se présente comme suit :


P1 B1

P2 B2

P3 B3

P4 B4

B5
Figure 7.11
Un tel problème peut aussi être résolu par l’algorithme de Stepping-Stone dû au mathématicien
américain G. Dantzig.
Exemple :
Dans 3 usines A, B et C on dispose de certains tonnages d’un produit ; ces tonnages sont
respectivement 100, 120 et 120. Le produit est livré à 5 magasins 1, 2, 3, 4 et 5 qui doivent
recevoir respectivement 40, 50, 70, 90 et 90 tonnes. Le coût de transport d’une certaine unité
du produit est donné par le tableau qui suit. On se propose de déterminer un plan (schéma) de
transport des 340 tonnes de telle sorte que le coût total de transport de ces 340 tonnes soit
minimum.
(1) (2) (3) y(4)
5 (5)
(A) 4 1 2 6 9

(B) 6 4 3 5 7
(C) 5 2 6 4 8
Dde 40 50 70 90 90
L’algorithme de Stepping-Stone part de la construction d’une première solution de
base en utilisant une règle dite « règle du coin nord-ouest ».
(1) (2) (3) y(4)
5 (5)
(A) 40 50 10 100

(B) 60 60 120
(C) 30 90 120
40 50 70 90 90
91 Recherche opérationnelle 2021-2022

On part du coin nord-ouest du tableau des affectations. A l’intersection de la 1ère ligne et de 1ère
colonne, on porte le plus petit des nombres représentant la disponibilité (100) et la demande
(40). On porte donc 40. On complètera donc la 1ère ligne (la 1ère colonne si la ligne est saturée)
jusqu’à saturation de la disponibilité (ou de la demande). Ceci nous conduit donc à prendre :
x11 = 40 ; x12 = 50 ; x13 = 10 ; x14 = x15 = 0. Nous saturerons ensuite la demande dans la 3ème
colonne, puis la disponibilité dans la 2ème ligne, ce qui donnera x21 = x22 = 0, x23 = 60 ; x24 =
60 ; x25 = 0. Saturons maintenant la demande dans la 4ème colonne, puis la disponibilité dans la
3ème ligne, soit x31 = x32 = x33 = 0 ; x34 = 30 ; x35 = 90. On a ainsi réalisé une solution de base.
Le coût global en est :
Z = (40)(4) + (50)(1) + (10)(2) + (60)(3) + (60)(5) + (30)(4) + (90)(8) = 1550.
Nous allons maintenant en partant de cette solution en rechercher une nouvelle qui
correspond à un coût global moins élevé, mais qui contiendra encore au moins 8 variables à
valeur nulle. Pour ce faire, nous supposerons chaque fois que l’on affecte une unité du produit
dans une case à variable précédemment nulle ; il faudra, pour garder l’équilibre, retrancher ou
augmenter d’une unité dans les cases déjà affectées de ligne et de colonne correspondantes.
40 50 10 40 50 10
+1 +1
-1 -1
60 60 60 60
+1 -1 +1 -1
30 90 30 90
+1 -1

(a) (b)
 14  6235  2  15  9  8  4  5  3  2  1
40 50 10 40 50 10

+1 -1 +1
-1
60 60 60 60
+1 -1 +1 -1
30 90 30 90

(c) (d)
 21  6  4  2  3  1  22  4  1  2  3  2
92 Recherche opérationnelle 2021-2022

40 50 10 40 50 10
-1 +1
60 60 60 60
-1 +1 -1 +1
30 90 30 90
+1 -1 +1 -1

(e) (f)
 25  7  8  4  5  2  31  5 4 235 4 1

50 10 40 50 10
-1 +1
60 60 60 60

-1 +1 -1 +1
30 90 30 90

+1 -1 +1 -1

(g) (h)
 32  2  1  2  3  5  4  1  33  6  4  5  3  4
Pour réaliser une solution plus avantageuse supposons que l’on affecte une unité
dans la case (1,4) : 1ère ligne et 4ème colonne, tableau (a). Il faut alors en retirer une de la case
(1,3), en ajouter une dans la case (2,3) et finalement en retirer une de la case (2,4). Cet échange
circulaire d’une unité fait varier le coût total d’une quantité  14 (case 1,4).
Les  ij dont il est question constituent les coûts marginaux unitaires quand on passe d’une base

à l’autre.  ij est facilement évalué en consultant le tableau des coûts unitaires cij.

Après calcul des  ij pour toutes les cases à variable nulle on peut remarquer que

l’échange qui fait diminuer le coût est tel que  rk  min  ij ,  ij  0. Ici c’est l’échange
i, j

correspondant à  25  2 . Mais au lieu de déplacer une seule unité, déplaçons le plus grand
nombre d’unités possibles. Pour cela considérons dans l’escalier (cases intervenant dans
l’échange) la plus petite quantité correspondant à une case où se trouve une quantité
-1. Le tableau (e) nous montre que c’est la case (2,4) où se trouve le nombre 60.On portera donc
60 dans la case (2,5), quantité que l’on enlèvera de la case (2,4) et, pour rétablir les disponibilités
93 Recherche opérationnelle 2021-2022

et demandes imposées, on inscrira 90 au lieu de 30 dans la case (3,4) et 30 au lieu de 90 dans


la case (3,5). La Solution devient :
(1) (2) (3) y(4)
5 (5)
40 50 10 100
60 60
120
90 30 120
40 50 70 90 90
Le coût correspondant est
Z = (40)(4) + (50)(1) + (10)(2) + (60)(3) + (60)(7) + (90)(4) + (30)(8) =1430.
C’est un résultat prévisible puisque l’échange d’une unité diminuant le coût global de 2,
l’échange de 60 le diminue de 120 ; d’où le coût total passe de 1550 à 1550 – 120 = 1430.
Nous allons répéter sur cette nouvelle solution les calculs précédents en examinant
le tableau du schéma de transport ci-dessus. On obtient sans présenter les tableaux pour le calcul
des  ij :

 14 = 6 – 4 + 8 – 7 + 3 – 2 = 4;  15 = 9 – 7 + 3 – 2 = 3 ;  21 = 6 – 4 + 2 – 3 = 1;  22

= 4 – 1 + 2 – 3 = 2;  24 = 5 – 4 + 8 – 7 = 2;  31 = 5 – 4 + 2 – 3 + 7 – 8 = -1;

 32 = 2 – 1 + 2 – 3 + 7 – 8 = -1;  33 = 6 – 3 + 7 – 8 = 2.
On a le choix entre  31  1 et  32  1 .

Choisissons par exemple  31. Prenons un nombre d’unités égal au plus petit nombre figurant
dans les cases où il y a une quantité -1 : ces cases sont (1,1) renfermant le nombre 40, (2,3)
renfermant 60 et (3,5) renfermant 30. On échangera donc 30 unités à partir de la case (3,1). Ceci
donne la solution du tableau ci-après :

(1) (2) (3) y(4)


5 (5)
(A) 10 50 40 100

(B) 30 90 120
(C) 30 90 120
40 50 70 90 90
Z = (10)(4) + (50)(1) + (40)(2) + (30)(3) + (90)(7) + (30)(5) + (90)(4) = 1400.
Calculons une nouvelle fois les  ij correspondant au tableau précédent :

 14 = 6 – 4 + 5 – 4 = 3 ;  24 = 5 – 4 + 5 – 4 + 2 - 3 = 1 ;  15 = 9 – 7 + 3 – 2 = 3 ;

 32 = 2 - 1 + 4 – 5 = 0 ;  21 = 6 – 4 + 2 – 3 = 1 ;  33 = 6 – 5 + 4 – 2 = 3 ;
94 Recherche opérationnelle 2021-2022

 22 = 4 – 1 + 2 – 3 = 2 ;  35 = 8 – 7 + 3 – 2 + 4 - 5 = 1.
Aucun échange ne peut plus diminuer le coût puisque tous les  ij sont positifs ou nuls. On en

conclut qu’il est impossible d’obtenir une meilleure solution. Par contre, il y a une solution
équivalente puisque  32  0 . Un échange avec  32 donne la solution du tableau suivant :

(1) (2) (3) y(4)


5 (5)
(A) 40 20 40 100

(B) 30 90 120
(C) 30 90 120
40 50 70 90 90

Cette solution donne la même valeur de la fonction des coûts :


Z = (40)(4) + (20)(1) + (40)(2) + (30)(3) + (90)(7) + (30)(2) + (90)(4) = 1400.
Exercices
1. Une société dispose dans les centres M1, M2, M3 et M4 de minerais qu’elle désire écouler
vers les concentrateurs C1, C2, C3 et C4. Les stocks disponibles sont les suivants : 120 T,
100 T, 100 T et 100 T. Les demandes dans chacun des concentrateurs Ci sont
respectivement 100 T, 80 T, 90 T et 150 T. Divers camions se rendent du point de départ
au point de destination. Les tonnages dont ils disposent sont donnés par le tableau de débit
ci-après :
100 T 80 T 90 T 150 T
C1 C2 C3 C4
120 T M1 70 30 20 0
100 T M2 50 40 100 0
100 T M3 0 20 40 80
100 T M4 0 20 40 80

Abstraction faite du coût de transport déterminer les diverses cargaisons de manière à


satisfaire les demandes au maximum.

2. Dans une société industrielle, les cotations mensuelles des ouvriers sont présentées dans le
tableau ci-dessous :
95 Recherche opérationnelle 2021-2022

y1 y2 y3 y4 y5
x1 9 6 7 3 4
x2 2 1 9 1 8
x3 4 3 2 2 7
x4 9 1 8 8 3
x5 1 7 8 9 5
On demande de trouver la meilleure affectation des ouvriers aux différents travaux de manière
à maximiser le rendement de travail.
96 Recherche opérationnelle 2021-2022

CHAPITRE 8 : PROBLEME D’ORDONNANCEMENT

8.1 ENONCE DU PROBLEME D’ORDONNANCEMENT


Nous appelons « problème d’ordonnancement », un ensemble d’opérations
concourant à la réalisation d’un objectif (projet de travail, un grand ensemble des travaux
complexes, …) telles qu’on connaisse, pour chacune d’entre elles, sa durée (déterminée ou
aléatoire) et les relations d’ordre la concernant (antériorités obligatoires). Un problème
d’ordonnancement constitue un programme ou planning pouvant être représenté par un graphe
appelé « graphe de programme » ou « graphe d’ordonnancement ».
Nous dirons qu’un problème d’ordonnancement est élémentaire s’il satisfait aux
cinq conditions ci-après :
1°. Le travail total peut être décomposé en un nombre fini de tâches élémentaires. Par travail
total nous entendons un ensemble d’activités de nature diverse. Exemple : recherche,
production, entretien, construction,…
Les tâches, par contre, sont des activités ou des groupes d’activités homogènes que les
techniciens peuvent plus ou moins naturellement isoler du travail total. Ces tâches peuvent
être désignées par les entiers 0, 1, 2, 3, …, n. La définition des tâches doit être
suffisamment précise pour que dans un programme donné on puisse parler :
a. de la date de début ti de la tâche i.
b. de la date de fin fi de la tâche i.
Dans ces conditions, la durée di d’une tâche i (temps opératoire) est alors la différence de
fi et ti : di = fi - ti ;
2°. Il existe une tâche « début du travail » qui doit précéder toutes les autres. Il existe ensuite
une tâche « fin de travail » qui doit suivre toutes les autres. On désignera par 0 la tâche
« début de travail » et par n la tâche « fin de travail ». Le début d’un travail correspond
lorsqu’il s’agit de la construction d’un grand ensemble, à la mise en chantier et la fin du
travail à la mise en service ;
3°. La durée d’exécution des tâches est fixe et connue d’une manière certaine : di = cte ;
4°. Les contraintes liant les différentes tâches peuvent toutes être ramenées à la forme : « pour
que la tâche j puisse commencer, il faut que la tâche i soit entièrement terminée ». Nous
dirons qu’un ordonnancement est compatible avec les contraintes si tj - ti ≥ di pour tout
couple des tâches (i, j) entre lesquelles existe une contrainte ;
5°. Le critère d’optimalité consiste à rendre la durée totale du travail minimum. Autrement dit
on s’efforce de minimiser la fonction économique tn – t0.
97 Recherche opérationnelle 2021-2022

8.2 ETABLISSEMENT DU GRAPHE DE PROGRAMME


8.2.1 Mise en graphe par la méthode française dite de potentiel
Dans cette méthode, chaque tâche (opération) i est représentée par un sommet xi
du graphe. Toute contrainte « i doit être terminée complètement avant que j commence » se
traduit par un arc (xi, xj) auquel on associe la longueur di = tij.
Exemple
Le travail consiste à construire et à équiper un ensemble minier complet comprenant un port,
une cité, une route, un chemin de fer et les mines. Considérons que l’analyse technologique de
ce travail a conduit à un premier découpage de celui-ci en 8 tâches (auxquelles nous
ajouterons la tâche 0, début du travail et la tâche 9, fin du travail).
Conditions de
N° Tâches Durée (en trimestres)
démarrage
0 - - -
1 Construction d’un port provisoire - 3
2 Construction de la route - 6
3 Commande du matériel portuaire - 2 (délais de livraison)
4 Pose de la voie ferrée 1 achevé 4
5 Construction d’un port définitif 1 achevé 2
6 Construction de la cité 1 achevé 7
7 Construction de l’installation minière 2 et 4 achevés 3
8 Mise en place de l’équipement portuaire définitif 3 livré et 5 achevé 4
9 - -

La mise en graphe du tableau ci-dessus par la méthode de potentiel nous conduit au graphe ci-
dessous :

0 4
x4 4

x1 3
x0 x9
0 33 x6 7

x5
3 3
0 2

x3 x8
Figure 8.1
98 Recherche opérationnelle 2021-2022

8.2.2 Mise en graphe par la méthode américaine dite de P.E.R.T..


N.B: P.E.R.T = Program Evaluation Research Task ou Program Evaluation and Review
Technique.
Dans la méthode PERT, chaque opération i est représentée par un arc. Les durées
des opérations ou temps opératoires étant supposés connus, on attachera aux arcs du graphe
une valeur non négative tij ≥ 0 représentant chacun de ces temps opératoires. Les sommets du
graphe appelés événements peuvent s’interpréter comme marquant la réalisation d’objectifs
partiels (montage d’un sous-ensemble, par exemple). Toute contrainte du type « Pki doit être
complètement terminée avant que Pij ne puisse commencer » se traduit par le fait que
l’extrémité finale Ei de l’opération Pki (qui est une des opérations contribuant à la réalisation
de l’événement Ei) coïncide avec l’extrémité initiale Ei de l’opération Pij (qui est une des
opérations contribuant à la réalisation de l’événement Ej).
L’établissement du graphe nécessite, pour chaque opération, la connaissance des
opérations qui la précèdent immédiatement. Le graphe traduit donc les relations d’ordre
existant dans l’ensemble des opérations. Notons que le graphe d’un programme est sans
circuit sinon une opération pourrait se faire suite à elle-même.
Exemple.
Le graphe PERT de l’exemple précédent se présente comme suit :

7 (4)
2 (6) 4 (4)
B E
1 (3)
A 6 (7)

3 (2)
5 (2)
8 (3)

D
Figure 8.2
Dans l’exemple du graphe PERT ci-dessus, il n’y a aucune tâche fictive. Si on ajoute une
contrainte supplémentaire « 5 doit être déterminé pour que 6 puisse commencer », alors il
apparaît une tâche ou une opération fictive (arc fictif) dans le graphe PERT. Le graphe
potentiel devient :
99 Recherche opérationnelle 2021-2022

x2 x7

x4
x1 x6
x0 x9

x5

x3 x8
Figure 8.3

Le graphe PERT devient :

7
2 4

1 B E
6
A
5 F

0 8
3

D
Figure 8.4

8.3 DATE DE REALISATION DE L’ENSEMBLE DES TRAVAUX.


CHEMIN CRITIQUE. INTERVALLE DE FLOTTEMENT ET
MARGES DES OPERATIONS
Le problème consiste à trouver un ordonnancement optimum. La date de réalisation
tn, c’est-à-dire la durée du programme à réaliser ne peut être inférieure à la somme des temps
opératoires pris sur le chemin le plus long de x0 à xn, c’est-à-dire qui donne entre ces deux
points une somme de temps opératoires maximal. Ce chemin (il peut y en avoir plusieurs) est
appelé « chemin critique ». En prenant pour durée de l’ensemble des travaux, la somme des
temps opératoires pris sur le chemin le plus défavorable de x0 à xn, on est ainsi assuré que toutes
100 Recherche opérationnelle 2021-2022

les opérations prévues peuvent être effectivement réalisées, en tenant compte de leurs durées
respectives.
Pour trouver le chemin critique, on applique l’un des algorithmes permettant de
trouver le chemin de valeur maximum dans un graphe (voir chapitre 8). En appliquant donc un
algorithme vu, on peut déterminer pour chaque événement (sommet du graphe) sa date de
réalisation (c’est la valeur maximale des temps opératoires depuis le début des travaux jusqu’au
début de l’événement considéré). Ces dates « de réalisation des événements » sur le programme
sont appelées dates de réalisation des événements ou dates au plutôt des opérations. Appelons
ti ces dates attachées aux événements Ei. Les opérations constituant le chemin critique ou sur le
chemin critique sont appelées « opérations critiques ». Elles doivent débuter aux dates de
réalisation des événements origines des arcs. Si le démarrage d’une opération critique est
retardé, alors tout le programme se trouve retardé. Les opérations critiques sont donc les
opérations du programme sur lesquelles le planificateur doit porter toute son attention au cours
de la réalisation, car de son bon déroulement dépend la date de réalisation de l’ensemble des
travaux.
Les opérations « non critiques », c’est-à-dire celles ne se trouvant pas sur le chemin
critique, tolèrent certains retards dans leur mise à exécution, sans pourtant accroître la durée
totale du travail. Il est intéressant de connaître, pour chaque événement Ei non critique, sa date
limite de réalisation, date au-delà de laquelle tout le programme se trouve retardé.
Considérons l’événement Ei. Le temps minimal nécessaire pour réaliser les
opérations situées entre Ei et En est obtenu en cherchant sur le graphe le chemin de valeur
maximale de Ei à En. Par une telle procédure, on est assuré que les opérations succédant à Ei
peuvent être effectivement réalisées, en tenant compte de leurs durées respectives. La date
limite cherchée t i* sera obtenue en retranchant ce temps (valeur maximale du chemin de Ei à En)
de la date tn de l’événement final En.
Pratiquement, pour déterminer les dates t i* , appelées dates limites de réalisation des
événement Ei ou encore dates au plus tard du début des opérations commençant en Ei on
procède comme suit :
1°. Considérer un sommet Ei.
2°. Si Ei est sur le chemin critique, alors t i*  t i , sinon aller en 3°.
3°. Considérer tous les arcs partant de Ei, leurs extrémités terminales Ej portent-elles
Toutes des dates limites t *j ? Si oui alors : t i*  min (t *j  t ij ) où tij est le temps opératoire
j i
101 Recherche opérationnelle 2021-2022

de l’opération (Ei, Ej), Sinon aller en 1°.


On s’arrête quand on a calculé la date limite t i* de chaque événement Ei. Pour les événements

critiques, la date limite t i* est confondue avec la date attendue ti.

L’intervalle [ t i , t i* ] est appelé « intervalle de flottement ou de battement ». C’est


donc l’intervalle dans lequel pourra se placer l’événement non critique Ei sans modifier le
temps total d’exécution de l’ensemble des travaux.
Exemple : déterminer le chemin critique, les dates attendues et les dates limites des
événements sur le graphe PERT ci-dessous
. 33 (43)
17 (40) 3 5
9
48
9 5 9 10
8 (9) 4
8
2 6 5
23 (26) 13
8 4 3
10 6
13 8 29 6
0 1 3 12
6 5
13 61
13
9 9 17
7 8
6
4 1
10 7 1
42
20 4
37 (38)

Figure 8.5
Le chemin critique, représenté sur la figure par les arcs en rouge, est constitué comme suit :
1-3-4-8-11-10-12. Les dates attendues ti sont portées sur chaque sommet à côté des nombres
entre parenthèses. On les obtient lors du marquage servant à la recherche du chemin critique.
Les dates limites, portées sur chaque sommet, sont celles données par les nombres entre
parenthèses. Celles des événements critiques sont confondues aux dates attendues. Celles des
événements non critiques sont déterminées selon la procédure expliquée ci haut. Considérons
par exemple l’événement E7 qui est séparé de E11 par un temps opératoire de 4, donc
l’opération P7, 11 peut commencer 4 semaines avant E11. Donc l’événement E7 doit avoir lieu
au plus tard à la date t 7*  42  4  38 . E9 est séparé de E10 par un temps opératoire de 5, donc
l’opération P9,10 peut commencer 5 semaines avant E10 et l’événement E9 doit donc avoir lieu
102 Recherche opérationnelle 2021-2022

au plus tard à la date t9* = 48 – 5 = 43. E6 est séparé de E9 par un temps opératoire de 8, de E8
par un temps opératoire de 3 et de E7 par un temps opératoire de 5 ; il faut comparer 43 – 8 =
35, 29 – 3 = 26 et 38 – 5 = 33. Ainsi l’événement E6 doit avoir lieu au plus tard à la date
t 6*  26 .
Finalement, les dates des événements Ei pourront se placer dans les intervalles, dits
intervalles de flottement, donnés ci-après :

E1 :0 E5 : [17, 40] E9 : [33, 43]


E2 : [8, 9] E6 : [23, 26] E10 : 48
E3 : 13 E7 : [37, 38] E11 : 42
E4 : 20 E8 : 29 E12 : 61

Il est également intéressant de connaître pour chaque opération Pij le retard qui peut
être apporté à sa mise en route sans perturber la date de réalisation de l’événement Ej. On appelle
« marge libre » de l’opération Pij, le retard qui peut être apporté à sa mise en route sans perturber
la date de réalisation de l’événement Ej. Si ti et tj sont les dates attendues des événements Ei et
Ej encadrant l’opération Pij de durée tij, sa marge libre est tj – ti – tij. Les marges libres des
opérations critiques sont nulles car aucun délai ne peut être apporté à leur démarrage.
On définit de même pour chaque opération Pij une « marge totale » comme la
quantité tj* - ti – tij. La marge certaine de l’opération Pij est par définition tj – ti* - tij.
Intervalles de flottement et marges libres mesurent l’élasticité d’un programme : plus elles sont
réduites, plus le programme est rigide. Un programme totalement rigide est un programme où
tous les chemins sont critiques : il n’y a alors ni intervalles de flottement, ni marge libres. Aucun
retard ne peut être toléré sur quelque opération que ce soit.
103 Recherche opérationnelle 2021-2022

GETION DES STOCKS

CHAPITRE 9 : LES PRINCIPAUX MODELES DE GESTION DES STOCKS

9.1 INTRODUCTION
La gestion d’un stock consiste pour l’essentiel, à prévoir les dates et les volumes des
réapprovisionnements. Les principaux éléments qui interviennent dans une gestion des stocks
sont :
- La demande d’articles qui, en général, est aléatoire et une fonction du temps, mais qui,
dans d’autres cas, peut être connue d’avance et déterminée ;
- L’existence d’un stock de ces articles pour satisfaire la demande, ce stock s’épuisant et
devant être réapprovisionné ou renouvelé. M. Ramboz définit un stock comme
essentiellement une quantité variable d’un produit augmenté par les entrées (achats ou
fabrications) et diminuée par les sorties (ventes ou livraisons à l’atelier). Le
réapprovisionnement peut être continu, périodique ou encore être réalisé à des
intervalles de temps quelconques ;
- Le délai de réapprovisionnement ou délai de livraison qui peut être, lui aussi déterminé
ou aléatoire ou dépendre du volume de la commande de réapprovisionnement ;
- Les différents coûts :
1°. Le coût de stockage ou de magasinage Cs mesuré par pièce et par unité de
temps ;
2°. Le coût de lancement Cl représentant les frais administratifs de l’opération de
réapprovisionnement ;
3°. Le coût de pénurie Cp, qui apparaît dans les modèles admettant des ruptures de
stock ;
4°. Enfin, lorsque les coûts de lancement et de stockage sont négligeables on
Considère une perte C1 sur les articles soldés lorsque la demande r est inférieure
au stock, un coût supplémentaire C2 pour approvisionnement spécial lorsque la
demande est supérieure au stock S.
Ces coûts permettent de se donner une fonction économique que l’on se proposera
d’optimiser ;
104 Recherche opérationnelle 2021-2022

- Le volume des commandes de réapprovisionnement qui peut être constant ou variable


suivant la règle de gestion adoptée ;
- Les dates de réapprovisionnement t et les périodes de gestion T (intervalle de temps qui
sépare deux réapprovisionnements successifs), elles aussi constantes ou variables
suivant la règle de gestion adoptée ;
- Les contraintes qui peuvent être des interactions entre les divers produits, des limitations
des moyens (volume, poids, temps opératoires, disponibilités financières …).
L’évolution du niveau d’un stock pendant une période T se présente, pour chaque
article, sous forme d’une fonction en escalier décroissante. Il est commode de remplacer le tracé
en escalier par une droite ou une courbe qui donnera une description analytique plus commode
de la demande.

Niveau du stock

Stock
initial

Stock
final

T temps

Figure 9.1

9.2 LES MODELES DE BASE DE GESTION


Il existe de nombreuses règles de gestion. Les modèles de base les plus courants sont
les suivants :
1. Gestion à période fixe
a) La demande est constante et le réapprovisionnement a lieu instantanément et par
quantités constante n ;
105 Recherche opérationnelle 2021-2022

Niveau du stock

niveau
maximal
n

niveau
minimal t0 t1 t2 t3 t4
temps
T T T T

Figure 9.2

b) La demande est variable (aléatoire ou déterminée). Le réapprovisionnement se fait avec


ou sans délai  par quantités variable ni de façon à rendre au stock son niveau maximal
à la fin de chaque période. Les quantités ni doivent être estimées aux dates ti par
extrapolation de la courbe de consommation.

T T T T
niveau
maximal


  
niveau
minimal
t0 t1 t2 t3 t4 temps
Figure 9.3

Généralement on tolère une rupture de stock et on se préoccupe de déterminer le


niveau S0 auquel doit être complété le stock à chaque fin de période de façon à
minimiser le coût de gestion.
2. Gestion à période variable
a) La demande est variable (aléatoire ou déterminée).
Le réapprovisionnement se fait avec ou sans délai  par quantités fixes de façon à
106 Recherche opérationnelle 2021-2022

rendre au stock son niveau maximal à la fin de chaque période. Les dates ti où les
ordres de réapprovisionnement doivent être passés doivent être déterminés par
extrapolation de la droite ou de la courbe de consommation.

T1 T2 T3 T4
niveau
maximal
n

niveau
minimal

temps
t0 t1 t2 t3 t4

Figure 9.4

b) La demande est variable (aléatoire ou déterminée).


Le réapprovisionnement a lieu par quantités fixes et demande un délai constant  .
Dans ce modèle de gestion, que les Anglo-Saxons appellent « two-bin-system », les
ordres de réapprovisionnement sont passés au moment où le stock tombe à un niveau
convenable choisi, appelé « niveau de réapprovisionnement ».

T1 T2 T3
NM
NI NM = niveau maximal
NI = niveau initial
NR= niveau
de réapprovisionnement
NR Nm = niveau minimal
 
Nm 

temps
t0 t1 t2 t3
Figure 9.5
107 Recherche opérationnelle 2021-2022

Cette méthode offre l’avantage d’une gestion commode. Elle est d’un usage assez
répandu. Le mode de réapprovisionnement correspondant est appelé
« réapprovisionnement sur point de commande ».
9.3 MODELES CLASSIQUES DE GESTION DES STOCKS
Ces modèles partent d’un ensemble de prémisses et d’hypothèses à partir desquelles
l’analyse algébrique déduit des formules mathématiques. Selon que la demande r est déterminée
ou aléatoire on distingue d’une part les modèles déterministes pour lesquels la demande est
certaine et le taux de la demande constant, et d’autre part les modèles aléatoires pour lesquels
la demande est aléatoire et connue en probabilité.
Dans ce qui suit nous nous contenterons de présenter les principaux résultats obtenus
lors de l’analyse mathématique de ces modèles. Il faut cependant souligner que, dans la
pratique, comme dans tout problème de recherche opérationnelle, il n’est pas toujours possible
de ramener le cas étudié à un modèle classique et qu’il y a lieu de faire une étude spéciale tenant
compte de toutes les contraintes et hypothèses particulières du problème réel considéré.
9.3.1 LES MODELES DETERMINISTES
1. GESTION A PERIODE FIXE ET DEMANDE CONSTANTE
Ce modèle porte le nom du « modèle déterministe de Wilson ». Les hypothèses
et prémisses du modèle de Wilson sont :
- Le coût de lancement d’une commande ou rafale Cl est indépendant du nombre
d’articles ou de la quantité du produit à commander ;
- La demande totale pour un intervalle de temps (une année très souvent) est N ;
- Aucune pénurie n’est admise ;
- Le coût de stockage d’une pièce ou quantité unitaire pendant l’unité de temps est Cs ;
On demande quelles sont les quantités n à réapprovisionner périodiquement pour minimiser
le coût global de lancement et de stockage des N pièces.
En appelant T la période de gestion le modèle se ramène à celui de la figure 9.2, et
l’on peut montrer que le coût global de gestion pour l’intervalle de temps θ est une fonction
de la rafale n et donné par :
N Cl  Cl
 ( n)   n
n 2
N Cl
Le coût global (n) sera minimum pour n  no  2
 Cs

n o est la rafale ou quantité économique à réapprovisionner.


108 Recherche opérationnelle 2021-2022

On en déduit :

  Cl
T  To  no  2 : c’est la période de gestion optimale ;
N N CS

(no )  o  2 N  CS Cl : c’est le coût minimum de gestion, c’est-à-dire correspondant

aux réapprovisionnements en quantité économique n o .

Exemple
Le coût de stockage d’un article de forte consommation (200 000 unités par an = 360 jours)
dont la demande est constante, est égale à 0,002 F par jour et par pièce. Quelle est la
grandeur de la rafale la plus économique et la période de gestion, sachant que le coût de
lancement d’une rafale est de 720 F.
Solution
Données du problème : N = 200 000 ; θ = 360jours ; Cl = 720 F ; Cs = 0,002 F

N Cl 200000 720
no  2  2  20000 articles.
 CS 360 0,002

 360
To  no   20000  36 jours.
N 200000

o  2 N CS Cl  2  200000  360  720  0,002  14400 F .

2. GESTION A PERIODE FIXE ET DEMANDE CONSTANTE AVEC POSSIBILITE


DE DEFAILLANCE
Ce modèle est aussi sous-tendu par les hypothèses et prémisses du modèle
précédent, sauf que l’on admet ici une possibilité de pénurie à laquelle on associe un coût de
pénurie Cp par unité de temps et par pièce. En effet pendant une durée T1 dans chaque période
T, le niveau journalier du stock est suffisant pour satisfaire la demande, puis pendant une durée
T2 il y a pénurie et le reliquat est livré dès l’entrée en stock de la rafale suivante.
109 Recherche opérationnelle 2021-2022

T T T T

T1 T2 T1 T2 T1 T2 T1 T2

Figure 9.6

On peut établir que le coût global pour l’intervalle de temps θ est une fonction de n
et S, et donné par :
S 2 C S N (n  S ) 2 
 ( n, S )   Cl  CP .
2n n 2n

N Cl CS  CP
Cette fonction à deux variables sera minimale pour n  no  2 et
 CS CP

CP N Cl CP
S  So  no  2 .
CS  CP  CS CS  CP

no et S o sont respectivement la quantité économique à réapprovisionner et le niveau optimal du


stock au début d’une période de gestion T. A la fin de chaque période T on lance une rafale no
destinée d’une part à satisfaire la demande S   n  S qui n’a pu être satisfaite pendant T2 et
d’autre part à reconstituer le stock S.
CP
La quantité est appelée « taux de pénurie » ou « taux de défaillance ».
CP  CS
On peut également tirer :

 Cl CS  CP CP
To  2 et o  2 N  C S Cl représentant respectivement la
N CS CP CS  CP

période de gestion optimale et le coût global minimal.


Exemple
Reprendre l’exercice précédent en admettant une rupture de stock avec un coût de pénurie de
0,008 F par jour et par article.
110 Recherche opérationnelle 2021-2022

Solution :
0,008
Le taux de défaillance est alors    0,8 ; d’où :
0,002  0,008

1 1
no  20000   22361 ; S o  22361  0,8  17889 ; To  36   40,25 jours
0,8 0,8

o  14400  0,8  12879 ,75 F .

3. GESTION A PERIODE FIXE ET DEMANDE CONSTANTE AVEC COÛT DE


STOCKAGE PROPORTIONNEL AU PRIX DE REVIENT OU PRIX D’ACHAT
Nous nous placerons dans une situation semblable à celle du modèle de Wilson,
mais en faisant intervenir cette fois le prix de revient ou prix d’achat des pièces, le coût de
stockage étant proportionnel au prix de revient ou prix d’achat d’une rafale. Le niveau du stock
sera comme décrit par la figure 9.2.
Les paramètres de gestion sont :
N = nombre de pièces pour la période θ ;
n = nombre de pièces dans une rafale de durée T ;
Ca = prix d’achat ou de revient d’une pièce (non compris le coût fixe d’une rafale);
Cb = coût fixe d’une rafale ;
 = coefficient de proportionnalité entre le coût de stockage par pièce et par unité de temps et
la valeur d’une pièce Ca + Cb/n ; c’est-à-dire :
CS C
 , d ' où C S   (C a  b )
C a  Cb / n n
La quantité Ca + Cb/n est la valeur d’une pièce donnée par la somme de son prix d’achat ou de
revient et sa quotte part du coût fixe.
r = nombre de rafales dans la période θ.
Le coût global d’une période θ est alors :
(n)  nCa  Cb  12  T (nCa  Cb r  nCa  12 ( T )nCa  Cb  12  T Cb r

 N
Mais r   , alors :
T n
 C a N Cb
(n)  NCa  12   Cb  n .
2 n
Dans cette formule N C a  12   Cb est une quantité indépendante de n. En annulant la dérivée
de Г(n) on arrive à la relation :
111 Recherche opérationnelle 2021-2022

 Ca  N Cb 2 N Cb
 ; d ' où n  no  : c’est la quantité économique qui minimise la
2 n 2
  Ca
dépense globale Г(n). On en déduit :

  Cb
T  To  no  2 ; o  2 N   C a Cb  N C a  12   Cb
N N  Ca

Exemple numérique.
Ca = 1000 F ; Cb = 50 000 F ; N = 75 000 ; θ = 360 jours ;   0,3  10 3 ; il vient :

2  75000  50000 360


no  3
 8333 ; To   8333  40 jours ;
360  1000  0,3  10 75000

o  2  75000  360  0,3  10 3  1000  50000  75000  1000  12 360  0,3  10 3  50000

= 75 903 000 F.
9.3.2 LES MODELES ALEATOIRES
A. MODELES ALEATOIRES A VARIABLES DISCRETES
1. Gestion à période fixe et demande aléatoire avec perte sur les excédents et coût
supplémentaire pour la pénurie (coût de stockage négligé)
Nous allons supposer maintenant que la demande r pour un intervalle de temps T est
aléatoire et que l’on connaît la distribution P(r) de la probabilité d’une demande égale à r. Si r
est inférieur au stock S les pièces restantes sont vendues avec une perte unitaire C1 ; au contraire
si r est supérieur à S il faut une exécution ou un approvisionnement spécial des pièces
manquantes, et le supplément du coût représente une perte unitaire C2. Si le coût de stockage
est négligeable devant C1 ou C2, la durée T n’intervient plus et l’on peut dire que la gestion est
alors indépendante du temps.
Convenons d’appeler S le nombre pièces à placer dans le stock. Deux situations sont
possibles et s’excluent mutuellement :
1°. r ≤ S : le stock couvre la demande et l’on doit solder une quantité égale à S – r pièces avec
une perte unitaire C1 ;
2°. r > S : il y a pénurie et il faut faire exécuter ou approvisionner spécialement r – S pièces
avec une perte unitaire C2.
On ne connaît pas r, mais connaissant la distribution P(r), on peut évaluer
l’espérance mathématique des dépenses donnée par l’expression suivante :
S 
( S )  C1  ( S  r ) P(r )  C 2  (r  S ) P(r ) .
r 0 r  S 1

On démontre que le minimum de Г(S) a lieu pour une valeur So telle que :
112 Recherche opérationnelle 2021-2022

C2
P (r  S o  1)    P (r  S o ) où   et P (r  S o )  P (0)  P (1)  P (2)  ...  P ( S o )
C1  C 2

La comparaison de  et de la distribution cumulée P(r  S ) donne immédiatement So et de là


( S o )  min .

Exemple numérique
1000
C1 = 50 F ; C2 = 20 C1 = 1000 F ;    0,952 .
50  1000
La distribution est donnée par le tableau ci-après :

S R Ρ( r) Ρ(r ≤ S)
0 0 0,900 0,900
1 1 0,050 0,950
2 2 0,020 0,970
3 3 0,010 0,980
4 4 0,010 0,990
5 5 0,010 1
≥6 ≥6 0 1

On voit que :
P(r  1)  0,950    0,952  P(r  2)  0,970 .
Ainsi l’optimum a lieu pour S = 2 auquel correspond une valeur du coût de gestion
2 
(2)  C1  (2  r ) P(r )  C 2  (r  2) P(r )  50(2)(0,900 )  (1)(0,050 )  (0)(0,020) 
r 0 r 3

1000 (1)(0,010 )  (2)(0,010 )  (3)(0,010 )  0  152,5 F .


2. Gestion à période fixe et demande aléatoire avec coût de stockage et coût de la pénurie
La demande pour une période T considérée comme unité de temps est aléatoire, P(r)
étant la probabilité d’une demande r pendant T. La pénurie d’un article entraîne une perte Cp
par unité de temps. Cs est le coût de magasinage d’une pièce par unité de temps T. Le stock est
réapprovisionné à chaque fin de période d’une quantité égale à S. On se propose de déterminer
le niveau So rendant minimal le coût moyen de gestion.
Deux situations sont possibles et s’excluent mutuellement :
1°. La demande totale r dans l’intervalle T est inférieure au stock S : r ≤S. La situation est celle
de la figure 9.7a ci-après ;
113 Recherche opérationnelle 2021-2022

2°. La demande totale r est supérieure au stock S : r > S. La situation est celle de la figure
9.7b.

r
S S
r
s-r

r-s
T

Figure 9.7a T1 T2
T
Figure 9.7b

S S r  r
- Si r ≤ S, le coût de stockage par unité de temps est 1   C S   S  C S
 2   2
- Si r > S le coût de stockage et de pénurie par unité de temps est :
S T1 C S  12 (r  S ) T2 C P 1 T1
1
T
2  2
 2 S C S  12 (r  S ) 2 C P ;
T T T
T1 S T rS
or  et 2  ;
T r T r
S2 (r  S ) 2
donc 2  1
2 C S  12 CP ;
r r
d’où l’espérance mathématique du coût total de gestion pendant T ou l’unité de temps
est donnée par l’expression :
S
 r 
S2 
(r  S ) 2
( S )  C S   S   P(r )  C S  P(r )  C P  P(r )
r 0  2 r  S  a 2r r S a 2r
On démontre que le minimum de Г(S) a lieu pour une valeur So telle que :
Cp 
P( r )
L( S o  a)    L( S o ) où  
CS  CP
, L( S o )  P(r  S o )  ( S o  a2 ) 
r  So  a r
et

P(r  S )  P(0)  P(a)  P(2a)  .... P(S )

La comparaison de  et de la distribution L(S) donne immédiatement So et là ( S o )  min


N.B. : a est la raison de la suite exprimant les valeurs de la demande.
114 Recherche opérationnelle 2021-2022

Exemple numérique
Soient Cs = 100 000 F et Cp = 20Cs = 2 000 000 F. Calculer le stock optimal So et min si la
demande est aléatoire et distribuée comme l’indique le tableau qui suit:

S r Ρ(r) P (r ) 
P(r ) 
P(r ) Ρ (r ≤ S) L(S)
r 
r  S 1 r
( S  12 ) 
r  S 1 r

0 0 0,1 ∞ 0,445 0,2225 0,1 0,3225


1 1 0,2 0,200 0,245 0,3675 0,3 0,6675
2 2 0,2 0,100 0,145 0,3625 0,5 0,8625
3 3 0,3 0,100 0,045 0,1575 0,8 0,9575
4 4 0,1 0,025 0,020 0,0900 0,9 0,9900
5 5 0,1 0,020 0,000 0,0000 1 1
≥6 ≥6 0 0,000 0,000 0,0000 1 1

20
Pour S = 3, on a : L(2)  0,8625     0,9524  L(3)  0,9575 ; Le stock optimum est
21
donc égal à 3. Le coût correspondant est égal à :
(3)  0,1[(3)(0,1)+(2,5)(0,2)+(2)(0,2)+(1,5)(0,3)]+(0,1)[(1,125)(0,1)+(0,9)(0,1)+0]
+ 2[(0,125)(0,1)+(0,4)(0,1)] = 0,29 millions.
Exercice
Le réapprovisionnement d’un article se fait à période fixe de façon à compléter le stock à un
niveau donné S. Tout article non disponible est livré dès l’entrée en stock de la commande
suivante. Le coût de stockage par article et par unité de temps est Cs. Le coût de pénurie par
article et par unité de temps est Cp = 30 Cs. Pour quelle valeur So du stock en début de période
l’espérance mathématique du coût de gestion est-elle minimale, sachant que la demande r
pour chaque période est aléatoire et distribuée comme indiqué ci – après :

R 0 1 2 3 4 5 6 7
P(r) 0 0,1 0,1 0,2 0,3 0,2 0,1 0

B. MODELES ALEATOIRES A VARIABLES CONTINUES


Dans ces modèles la distribution P(r) de la demande est remplacée par la densité de
probabilité f(r).
115 Recherche opérationnelle 2021-2022

1. Gestion à période fixe et demande aléatoire avec perte sur les excédents et coût
supplémentaire pour la pénurie (coût de stockage négligé)
L’espérance mathématique des dépenses est donnée par :
S 
( S )  C1  ( S  r ) f (r )dr  C 2  (r  S ) f (r )dr
0 S

Pour trouver le minimum de Г(S) on annule la dérivée de


d ( S )
 C1  f (r )dr  C 2  f (r )  C1  f (r )dr  C 2 1   f (r )dr 
S  S S

dS 0 S 0 
 0 

 C1 F ( S )  C 2 1  F ( S )  (C1  C 2 ) F ( S )  C 2
S
où F ( S )   f (r )dr  P (r  S )
0

d C2
 0  F (S )  
dS C1  C 2

C2
Donc une valeur So de S telle que F ( S o )  rend minimum (S )
C1  C 2
Exemple
Supposons que la densité de probabilité f(r) soit de la forme f (r )   e   S
S
Alors F (r )    e  r dr  1  e  S
0

C2 C2
(S ) est minimum lorsque F ( S )   1  e  S  
C1  C 2 C1  C 2

ln(1   )
 e  S  1      S  ln(1   ) ; d ' où S  S o  

2. Gestion à période fixe et demande aléatoire avec coût de stockage et coût de la
pénurie
La distribution P(r) étant remplacée par la densité de probabilité f(r), on a :
 (r  S )
2 2
S r  S
( S )  C S  ( S  ) f (r ) dr  C S  f (r ) dr  C P  f (r ) dr
0 2 S 2r S 2r
Pour trouver le minimum de Г(S) il faut annuler sa dérivée :
d S S  S2  r S
 C S  f (r ) dr  C S f (r )  C S  r f (r )dr  C S
S
f (r )  C P  f (r )dr
dS 0 2 S 2S S r
S   
 C S  f (r )dr  C S  S
f (r )dr  C P  f (r )dr  C P  S
f (r )dr
0 S r S S r

S  S 
 C S  f (r )dr  C S  S
f (r )dr  C P  C P  f (r )dr  C P  S
f (r )dr
0 S r 0 S r
116 Recherche opérationnelle 2021-2022

S 
 (C S  C P )  f (r )dr  (C S  C P )  S
f (r )dr  C P
0 S r

 (C S  C P )  f (r )dr   Sr f (r )dr   C P


S 

 0 S 
Le minimum de (S ) a lieu pour une valeur S = So telle que :

(C S  C P )  f (r )dr   f (r )dr   C P  0


SO  SO

 0 SO r

So  CP
 
0
f (r )dr  S o  f (r )dr 
SO CS  CP


 f (r )
 F (S o )  S o  dr  
SO r
C. APPLICATION : QUANTITE A REAPPROVISIONNER DANS LE CAS DE
DELAI DE REAPPROVISIONNEMENT PLUS LONG QUE LES PERIODES DE
GESTION
Considérons un intervalle de temps θ divisé en n périodes de temps T, et
supposons que le délai entre l’ordre de réapprovisionnement et la réception soit égal à
θ. Au début de chaque période T, on transmet les ordres de manière que la livraison soit
faite n périodes plus tard. On a déterminé la distribution P(r) ou la fonction de densité
f(r) d’une demande r pour un intervalle de temps θ. Le problème qui se pose alors est le
suivant : quelle quantité qi doit-on commander n périodes T avant la période n° i de
manière que le coût global pour cette période soit minimum ?
Sur l’axe de temps on a le schéma suivant :

Nous supposons que les quantités qi pour les n-1 périodes qui précèdent la période n
sont connues car ayant fait l’objet d’ordres passés en temps voulu. Il est question de
rechercher la quantité optimum qn qu’il faut commander à la période 1 et qui sera reçue
n périodes plus tard de manière que le coût global pour les n T périodes soit minimum.
Nous nous placerons dans le cas de la demande aléatoire avec perte sur les
excédents et coût supplémentaire pour la pénurie (coût de stockage négligé ).
Soient C1 la perte unitaire concernant les pièces en excédent, C2 celle due aux
pièces en déficit. Posons :
So = stock initial (début de la 1ère période) ;
Si = stock à la fin de la période i ;
ri = demande pour la période i ;
117 Recherche opérationnelle 2021-2022

qi = réapprovisionnement pour la période i ;


Alors :
S1 = So+q1 – r1
S2 = S1 + q2 – r2
S3 = S2 +q3 – r3
…………………………………………………………
Si = Si-1 + qi - ri
………………………………………………………….
Sn = Sn-1 +qn -rn
En additionnant membres à membres des égalités ci-dessus, on tire :
Sn = So + q1 + q2 + …. + qn – ( r1 + r2 + …. + rn )
Si S = So + q1 +q2+….+qn
r = r1 + r2 + …. + rn
Alors Sn = S – r : cette quantité peut être positive ou négative suivant que S > r ou S < r.
L’espérance mathématique du coût total pour l’intervalle θ = n T est donnée par :
S 
(n)  C1  ( S  r ) P(r )  C 2  (r  S ) P(r ) le cas d’une demande discrète
r 0 r  S 1

S 
ou ( S )  C1  ( S  r ) f (r )dr  C 2  (r  S ) f (r )dr le cas d’une demande continue.
0 S

Le minimum de Г(s) a lieu, comme nous l’avons vu, pour une valeur S* telle que :
P(r ≤ S*-1) < ρ < P(r ≤ S*)
C2 C2
où F ( S  )  avec  
C1  C 2 C1  C 2
Le stock optimum S* étant déterminé on a, puisque les quantités q1, q2 …, qn-1 sont connues :
qn  S   S o  (q1  q2  ...  qn1 ).
Exemple numérique
Un dépôt régional d’une manufacture est réapprovisionné tous les mois pour un certain article.
Les nombres d’articles reçus sont des multiples de 100. Pendant les 5 premiers mois de l’année,
les réapprovisionnements ont été q1 = 100, q2 = 200, q3 = 200, q4 = 200, q5 = 300. Le stock
initial So = 100. La distribution de la demande r pour une durée de 6 mois est donnée par le
tableau ci – après. Le délai entre l’ordre de réapprovisionnement et la livraison au dépôt est de
6 mois. Le coût unitaire d’un excédent est 1500 F et celui d’une pénurie 18000 F. Quelle
quantité q6 doit – on réapprovisionner pour le 6ème mois ?
118 Recherche opérationnelle 2021-2022

18000 12
   0,923
1500  18000 13
Tableau de calcul
R P( r ) P( r ≤ S )
0 0,000 0,000 Ρ(2 < 1200) = 0,910 < ρ < ρ(r < 1300 ) = 0,947
100 0,002 0,002 Ainsi le stock économique pour une durée de 6 mois
sera S* = 1300
200 0,008 0,010 de là :

300 0,022 0,032 q6 = S* - So – ( q1+q2+q3+q4+q5)


400 0,046 0,078 q6 = 1300 – 100 – ( 100 + 200+200+200+300) = 200
500 0,078 0,156
N. B : La quantité qn ayant été déterminée on
600 0,109 0,265 recherchera la quantité qn+1 telle que
700 0,131 0,396 qn+1= S* - S1 – ( q2 + q3 +….+qn )
800 0,138 0,534 Si la distribution P(r) est invariable quand la tranche θ
900 0,129 0,663 se déplace la quantité optimum S* ne varie pas.
1000 0,108 0,771
1100 0,082 0,853
1200 0,057 0,910
1300 0,037 0,947
1400 0,022 0,969
1500 0,012 0,981
1600 0,007 0,988
1700 0,004 0,992
1800 0,002 0,994
1900 0,001 0,995
2000 0,001 0,996
>2000 0,004 1
119 Recherche opérationnelle 2021-2022

CHAPITRE 10 : METHODES CLASSIQUES DE REAPPROVISIONNEMENT

10.1 METHODE DE REAPPROVISIONNEMENT SUR POINT DE COMMANDE


Cette méthode est aussi appelée « méthode Q » ou encore « méthode de deux
magasins ». Les anglo-saxons l’appellent « two-bin-system ».
10.1.1 PRINCIPE ET HYPOTHESES DE LA METHODE
Supposons que la demande totale pour une période  soit N, que le coût de stockage
d’une pièce par jour (ou par unité de temps) soit CS, celui de lancement d’un
réapprovisionnement Cl. Supposons encore que la demande est aléatoire mais que le taux
moyen de la demande est constant. Ainsi le coût total pour l’intervalle de temps  est donné
N Cl  CS
par : (n)   n. La minimisation de cette fonction du coût permet d’obtenir la rafale
n 2

N Cl  Cl
économique nO  2 et la période de gestion optimale T0  2 . Le coût minimal
 SS N CS

sera alors O  2 N  Cl C S . On constitue deux magasins (physiquement distincts ou non)

pour constituer le stock. Quand le premier est épuisé on passe au second et aussitôt on lance
une commande de réapprovisionnement no qui sera livrée dans le délai  . En attendant que le
réapprovisionnement arrive, c’est le second magasin qui fournit les pièces pour la
consommation et qui constitue ainsi un stock contre la pénurie. On a ainsi un niveau minimum
de réapprovisionnement « m », appelé aussi point de commande. Quand le stock atteint ce
niveau on lance une commande de no pièces. Ainsi le système se présente graphiquement
comme suit :

t0
Temps

T1 T2 T3
Fig. 1.1
120 Recherche opérationnelle 2021-2022

Les commandes sont passées aux dates t1 , t 2 , t 3 , ... dès que le stock atteint le niveau m

et sont reçues aux dates t1 , t 2 , t 3 , ... après un délai de livraison  . On se propose de déterminer

m et n de telle sorte que le coût du stock pour la période  soit minimum.


Une méthode approximative consiste à admettre que le taux moyen de la demande est
constant et  , la durée moyenne du délai de réapprovisionnement a un faible écart type. Dans

N Cl
ces conditions, la valeur optimum de n est n0  2 . Cette méthode est dite « méthode
 CS
Q » parce qu’elle consiste à lancer des commandes en quantités fixes q selon des périodicités
variables. On évaluera la loi de probabilité de la demande y pour l’intervalle de temps  . Soit
P ( y ) la probabilité d’une demande de y pièces dans l’intervalle  et F ( y)  P(Y  y) la
probabilité cumulée. Imposons-nous par exemple que la probabilité d’une rupture de stock soit
inférieure ou égale à une valeur  . On doit avoir 1  F ( y)   (a).

Ceci permet, connaissant  et la loi de probabilité F ( y) , de déterminer pour quelle valeur

y  m l’équation (a) est satisfaite. On obtient ainsi le niveau m correspondant au niveau


minimum de réapprovisionnement. Ce niveau minimum ou point de commande doit être
capable, d’une part de satisfaire la demande prévue pendant l’intervalle de temps  , et d’autre
part de faire face aux aléas de consommation (accélérations imprévues des sorties) et de
livraison (retards de livraison du fournisseur) et même aux erreurs de prévision. La partie du
stock destinée à couvrir la demande pendant le temps  est estimée par la consommation
moyenne durant ce temps. En appelant s la consommation moyenne par unité de temps,  .s
devient la quantité du stock à prévoir pour la consommation durant  .
Pour faire face aux aléas de consommation et de livraison, on constitue un stock de

protection Sp. De lors le point de commande m est tel que m   .s  S P


121 Recherche opérationnelle 2021-2022

10.1.2 DETERMINATION DU STOCK DE PROTECTION


1. Stock de protection basé sur la loi normale
La loi normale est caractérisée par la courbe en forme de cloche comme celle de la figure
suivante :

Sortie durant la
période de
réapprovisionnement
y  2 y  y y  y  2
Couverture pour 50% des aléas
Couverture pour 84,13% des aléas
Couverture pour 97,72% des aléas
Figure n° 1.2
On constate que les aléas de sortie sont couverts à 50% par le stock moyen y  s. Si au cours
de la période de réapprovisionnement on ne dispose que de y il y a 50% de risque de connaître

une rupture de stock. Pour diminuer ce risque il faut ajouter à y une quantité S P  t où t ,

appelé « facteur de protection », est fonction de la probabilité de rupture  désirée, et donné


dans la table de la fonction de répartition de la loi normale centrée réduite N(0 ;1),  est l’écart-
type des sorties rapporté au délai de réapprovisionnement  . On appelle cette période, période
de risque, car c’est au cours de cette période où l’on peut connaître une rupture des stocks. Si
 se rapporte à l’unité de temps, alors S P  t  période de risque

 t   .

Exemple : Soient  =360 jours,   7 jours, N = 120000, CS = 3.5 F par unité et par jour. Cl =
300000 F. La demande est distribuée selon une loi gaussienne avec une moyenne
y  (120000 / 360) x7  2333 pour une semaine et un écart-type hebdomadaire  = 170.
Déterminez la quantité économique n0, le point de commande et le stock de protection si l’on
admet un risque de rupture  = 0.06.
122 Recherche opérationnelle 2021-2022

Solution
2  120000  300000
1. La quantité économique nO   7559
360  3.5
2. Si  = 0.06, F (t )  1  0.06  0.94

En consultant la table de la fonction de répartition N(0, 1) on trouve F (t )  0.94 pour

t  1.57 . Comme y  2333 est la demande moyenne pour 7 jours (délai de


réapprovisionnement) alors le point de commande est
m  y  t   2333  (1.57)(170)  2333  267  2600

3. Le stock de protection (ou stock de sécurité) est donc S P  t   267


Ainsi, en passant une commande de réapprovisionnement de 7559 pièces chaque fois que le
stock atteint le niveau 2600, la probabilité d’une rupture de stock sera inférieure à 0,06.
2. Stock de protection basé sur la loi de Poisson
La loi de Poisson est caractérisée par sa moyenne  . Pour la détermination du stock de
protection la moyenne  sera égale à la consommation moyenne pendant le délai  :    s  y

. En fonction de  et de la probabilité de rupture  choisie, la loi des probabilités cumulées de


Poisson indique la quantité m désignant le point de commande. En effet, la quantité y = m est
telle que F ( y)  1   , F ( y) étant la probabilité cumulée de la loi de Poisson. Connaissant 1-

 on détermine y = m à partir de la table des probabilités cumulées. Sachant que m  y  Sp ,

on trouve S P  m  y  m   s.
Exemple
La consommation moyenne mensuelle d’un article est 2. Le délai de réapprovisionnement est
de 2 mois. On désire être couvert à 97% de chance contre la rupture de stock. Déterminer le
point de commande m et le stock de protection Sp sachant que la loi des sorties des pièces est
poissoniènne.
Solution :    s  2  2  4
La table de la loi de Poisson des probabilités cumulées pour   4 donne
F ( y)  1    0.9786 pour y  8. Donc le point de commande m = 8.

Le stock de protection S P  m   s  8  4  4.
3. Stock de protection basé sur la loi exponentielle
La demande y pendant la période de risque  est régie par la loi exponentielle de la forme :
f ( y )  e   y , y  0. Le point de commande m est tel que m   s  S P .
123 Recherche opérationnelle 2021-2022

1
a. Si y exprime la demande pendant le délai  , alors y   s  .

En admettant un risque de rupture  le point de commande m doit être tel que
m ln 
 0
e  y dy  1   soit 1  e  m  1   ; d’où m = 

1 ln  1
Par ailleurs m =  Sp ; d’où le stock de protection Sp est donné par Sp   
  
1
b. Si y exprime la demande pendant l’unité de temps servant à chiffrer  alors y  s 

Si  est le risque de rupture choisi alors le point de commande m doit être tel que :
 
m   y  m  ln 
 0 
e dy  1   ; soit 1  e   1    m  

; par conséquent

 ln  
SP   
 
Exemple
La demande y pendant le délai de réapprovisionnement  est régie par la loi exponentielle de
1
1 100 y
la forme f ( y )  e , y  0.
100
En admettant un risque de rupture de 5%, déterminez pour cet article le point de commande et
le stock de protection.
Solution
ln 0,05
1. Le point de commande : m    100 ln 0,05  299,57  300
1 / 100
ln 0,05 1
2. S P     100 ln 0,05  100  199,57  200
1 / 100 1 / 100
10.1.3 CONDITIONS D’APPLICATION DE LA METHODE Q, SES AVANTAGES ET
INCONVENIENTS
Cette méthode impose une comparaison très fréquente entre le disponible en stock et le
point de commande. La régularité des délais d’approvisionnement et des moyennes des sorties
conditionne sa bonne marche. Les avantages de la méthode sont :
- Mieux que la méthode de réapprovisionnement cyclique, elle permet de réduire les stocks
cycliques et de protection ;
- Le déclenchement de commande est automatique et la détermination de la rafale simple ;
d’où elle s’accommode à un personnel peu évolué (moins qualifié) ;
- Elle se prête aisément à la gestion intégrée sur ordinateur.
124 Recherche opérationnelle 2021-2022

Parmi ses inconvénients on peut citer :


- La méthode ne facilite pas le regroupement des commandes susceptibles de relever d’un
même fournisseur ;
- Le contrôle très fréquent du niveau du disponible signalé plus haut entraîne un lourd travail
administratif.
10.2 METHODE DE REAPPROVISIONNEMENT CYCLIQUE DITE METHODE P
10.2.1 PRINCIPE ET FONCTIONNEMENT DE LA METHODE
Selon une périodicité fixe, donc à dates fixes, on passe pour un même article des
commandes variables relevant le disponible  à un niveau qui satisfasse les sorties de la
prochaine période et réserve le stock de protection SP. La période ou le cycle de
réapprovisionnement, symbolisé par P, est dicté dans le cas simple de sorties sensiblement
constantes, par la quantité économique de commande no, révisée au moins une fois l’an.
Exemple : supposons pour un article une prévision de sorties de 3600 pour l’année à venir et
une rafale économique n0  900 . Il faut réapprovisionner 4 fois dans l’année puisque 3600/900
= 4, soit une fois par trimestre, d’où P = 3 mois.
Pour éviter une trop grande variété des périodicités, on arrondit celles-ci sur des
nombres entiers de mois, de quinzaines, de semaines, et l’on groupe les articles par familles de
même période. On bâtit ainsi le planning de réapprovisionnement sur 5 ou 6 périodicités types,
si possible multiples les unes des autres, par exemple quinzaine, 1 mois, 2 mois, etc. A chaque
date de révision d’une famille tous les stocks disponibles de cette famille sont dégagées, ce qui
permet, non seulement de déclencher les commandes nécessaires, mais en outre de déceler les
modifications de tendance, les ralentissements ou arrêts des sorties.
125 Recherche opérationnelle 2021-2022

La méthode fonctionne selon le graphique ci-après :


Disponible

Sp

t1 t2 t3
Temps

P P

Figure 3.3

Les commandes sont lancées aux dates successives t1, t2 = t1+P, t3 = t2+P, etc, dates de révision
du disponible. Les dates respectives des arrivages correspondants sont t1  t1   , t 2  t 2   ,
t 3  t 3   , … Au temps t1, date de révision, on se pose la question : « le disponible  est-il

suffisant pour couvrir la période   P, c'est-à-dire pour faire face aux sorties (  P) s

correspondant à la durée (  P) qui sépare t1 de t 2 et laisser en outre un stock de protection


SP normal ? Deux situations sont donc possibles :
1°. Si   (  P ) s  S P on ne passe pas commande au temps t1, on attendra t2 ;

2°. Si  < (  P ) s  S P on passe une commande égale à q  (  P ) s  S P  

La quantité (  P ) s  S P est appelée ici, non pas point de commande comme dans la méthode
Q, mais niveau de reconstitution du stock.
Exemple de détermination de la quantité à commander en méthode P : On suppose que
s  300 / mois ,   2 mois, P = 3 mois, Sp =80,  = 650. Alors
q  (2  3)  300  80  650  930
10.2.2 AVANTAGES ET INCONVENIENTS DE LA METHODE P
Les avantages sont :
1. Elle se prête à l’organisation d’un planning d’approvisionnement
- facilitant le groupement des commandes par fournisseur,
126 Recherche opérationnelle 2021-2022

- étalant rationnellement les travaux de révision,


- décelant les variations de tendance et les arrêts de sorties ;
2. En dispensant de suivre le disponible en permanence, elle réduit le travail administratif ;
3. Comme la méthode Q elle s’adapte facilement à la gestion intégrée sur ordinateur.
Les inconvénients de la méthode P sont :
1. Elle immobilise des stocks plus importants que ceux de la méthode Q. En effet,  s  S p <

(  P ) s  S P . ; de plus la méthode P exige un stock de protection plus important que la


méthode Q ;
2. Le fait de ne pas réviser les supports d’information entre deux dates de lancement de
commande laisse la porte ouverte à des ruptures de stock si les sorties s’accélèrent. Pour
éviter cet inconvénient on révise les supports d’information entre deux dates de lancement
de commande ;
3. Les quantités q à commander sont très variables.
10.2.3 DETERMINATION DU STOCK DE PROTECTION
1. Stock de protection basé sur la loi normale
Les formules sont identiques à celles de la méthode Q avec cette différence que la période de
risque  en méthode Q est   P en méthode P. C’est pourquoi S P  t  avec 

correspondant à la période de risque   P. Mais si  se rapporte à l’unité de temps servant à

chiffrer  et P , alors S P  t   P .

2. Stock de protection basé sur la loi de Poisson


Le paramètre  est donné par   (  P) s  y . En fonction de  et de la probabilité de
rupture ou son complément on déterminera à partir des probabilités cumulées le niveau de
reconstitution du stock y  (  P ) s  S P et de là S P  y  (  P ) s .
3. Stock de protection basé sur la loi exponentielle
Le niveau de reconstitution du stock est donné par N  (  P ) s  S P .
a. Si y exprime la demande pendant la période de risque   P, alors
1
y  (  P) s  . En admettant un risque de rupture  le niveau de reconstitution du stock

N
(N.R.S.) N doit être tel que :  0
e  y dy  1   , soit 1  e  N  1   . D’où

ln  ln  1
N=  , donc SP =  
  
127 Recherche opérationnelle 2021-2022

1
b. Si y exprime la demande pendant l’unité de temps servant à chiffrer  et P alors s   y

. Le niveau N de reconstitution du stock doit être tel que

 N
1 e  P
 1
(  P) ln 
N  

(  P) ln  (  P)
 SP   
 
128 Recherche opérationnelle 2021-2022

REFERENCE BIBLIOGRAPHIQUE

1. Brans J.P. : Programmation mathématique, notes de cours, ULB.


2. Desbazeille G. : Exercices et problèmes de recherche opérationnelle, Dunod, Paris,
1976.
3. Gavaut L. ; Lauret A. : Techniques et pratique de la gestion des stocks, 3ème édition, 1985.
4. Kaufmann A. : Méthodes et modèles de la recherche opérationnelle, Tome I, Dunod,
Paris, 1972.
5. Kaufmann A. : Méthodes et modèles de la recherche opérationnelle, Tome II, Dunod,
Paris, 1968.
6. Lee A.M. : Les files d’attente. Théorie et application, Dunod, Paris, 1970.

You might also like