Cours de Recherche Opérationnelle - 1
Cours de Recherche Opérationnelle - 1
Cours de Recherche Opérationnelle - 1
Cours &Exercices
Presse Universitaire
1
Préambule
La recherche opérationnelle est une méthode d’analyse scientifique d’un problème mis sous
forme mathématique. Cette méthode est particulièrement tournée vers la recherche de la
meilleure façon d’appréhender les faits et de prendre des décisions susceptibles de déboucher
sur les meilleurs résultats. Cette méthode se sert entre autres de sciences exactes et sciences
humaines à savoir :
La théorie des graphes est une tentative de visualisation des faits concrets susmentionnés,
c’est donc un essai de formalisation de situations réelles de notre vie quotidienne, au moyen
de dessin permettant d’exprimer commodément un problème posé puis de le résoudre par un
algorithme approprié.
A ce titre, le cours a pour but d’initier les étudiants, ou toute autre personne, aux principes de
base de la recherche opérationnelle. Le cours vise principalement à introduire et faire méditer
les concepts fondamentaux, les méthodes élémentaires d’une organisation dans le suivi et
évaluation des activités ou des tâches pour permettre un apprentissage autonome.
2
Sommaire
3
Chapitre 1 : Théorie des graphes et Applications
1. Définitions et généralités
1.1. Notion de graphe
Le terme de graphe désigne en mathématiques une opération d'application. Il possède deux
acceptions : (1) Le graphe d'une fonction (à distinguer de sa représentation graphique) ; (2)
un objet représentant une relation binaire, orientée ou non, entre des éléments d'un ensemble .
Un graphe possède des sommets et des « arcs » (ou arêtes). Un arc relie deux sommets entre
eux : un sommet de départ et un sommet d'arrivée. Sur un dessin, on peut représenter les
sommets par des points (ou des cercles) et les arcs par des flèches. En générale, les graphes
peuvent servir à modéliser, entre autres :
✓ Un réseau routier à grande échelle : chaque ville est un sommet, chaque route entre
deux villes est un arc (si elle ne passe pas par une autre ville), et même en général
deux arcs : un dans chaque sens si la route n'est pas à sens unique ;
✓ Un réseau routier à petite échelle : chaque intersection est un sommet, chaque tronçon
de rue entre deux intersections est un arc ;
✓ Un réseau de bus, un réseau ferré, ...
✓ Un réseau social ; Un réseau téléphonique ; Un réseau de canalisation d’eau;
✓ Le web : chaque page est un sommet, chaque lien hypertexte est un arc (de la page qui
le contient vers la page pointée) ;
✓ Beaucoup de systèmes discrets : qui passent d'un état à un autre de façon discontinue
au cours du temps, par des sauts. Voir automate fini et système de transition d'états ;
✓ En mécanique du solide, par exemple, le graphe des liaisons est un outil d'aide à la
modélisation cinématique des mécanismes. Les propriétés du graphe ont parfois une
signification (nombre de cycle, classe etc.) ;
4
✓ En électronique, il peut servir à déterminer le nombre d'équations indépendantes (loi
des mailles) disponibles.
Les graphes sont beaucoup utilisés en informatique. Outre leur efficacité dans la modélisation
programmatique de structure de données complexes, on les rencontre par exemple pour :
a) Un graphe non orienté G est un couple (S, A), où : S est un ensemble dont les
éléments sont les sommets ; Et A est un ensemble de paires (non ordonnées) de
sommets, appelées arêtes. Exemple d’un graphe avec trois sommets et trois arêtes :
b) Un graphe orienté G est un couple (S, A), où : S est un ensemble dont les éléments
sont les sommets ; Et A est un ensemble de couples (ordonnés) de sommets,
appelés arcs. Exemple d’un graphe orienté avec trois sommets et quatre arêtes.
5
Toutefois, d'autres types de graphes existent. On cite notamment :
6
Nous pouvons également définir un graphe comme la donnée d’une relation binaire sur un
ensemble des sommets : « Xi est en relation avec Xj » est équivalent à « (Xi, Xj) est un arc ».
Pour un graphe non orienté, la relation binaire ainsi définie est symétrique puisque si (X i, Xj)
est un arc, (X J, Xi) l’est aussi. On obtient ainsi la représentation d’un graphe sous forme de
méthode énumérée des sommets et arcs. Dans un graphe orienté G = ( X, U ), on notera pour
un sommet x,
X1 X5
X3
X4
Exemple : Soit G = ( X, U ) avec X = {X1, X2, X3, X4, X5 , X6} et U={(X1, X2) ; (X1, X3) ;
(X2, X2) ; (X2, X3) ; (X2, X4) ; (X2, X5) ; (X3, X2) ; (X3, X4) ; (X4, X6) ; (X5, X6)} .
X3
X6
X1
X5
X2
Notation
7
Le graphe noté G = (X, U) est défini par :
8
(par exemple génétique) tant le concept de graphe, à peu près équivalent à celui de relation
binaire (à ne pas confondre donc avec graphe d'une fonction), est général. De grands
théorèmes difficiles, comme le théorème des quatre couleurs, le théorème des graphes
parfaits, ou encore le théorème de Robertson-Seymour, ont contribué à asseoir cette matière
auprès des mathématiciens, et les questions qu'elle laisse ouvertes, comme la conjecture de
Hadwiger, en font une branche vivace des mathématiques discrètes. En général, il existe trois
grandes familles de graphes et cinq catégories au total :
9
2.2. Dictionnaire des précédents
On appelle dictionnaire des précédents d’un graphe G= ( X, U), un tableau à simple entrée
dont chaque ligne relève d’un sommet précis et contient tous les précédents du sommet en
question. En face de chaque sommet x on inscrit la liste des sommets qui sont à l’extrémité
initiale d’un arc dont x est l’extrémité terminale.
Remarque
On peut également confectionner le dictionnaire des précédents en se servant directement du
dictionnaire des suivants. Dans ce cas, on note sur la ligne des sommets x le nom des lignes
dans lesquelles x apparaît comme suivant. De même on peut confectionner le dictionnaire des
suivants en se servant directement du dictionnaire des précédents. Dans ce cas, on note sur la
ligne des sommets x le nom des lignes dans lesquelles x apparaît comme précédents.
Exemple : Soit le dictionnaire des suivants d’un graphe orienté en déduire le dictionnaire des
précédents et le graphe correspondant.
X S(x)
A b, d
b c
c -
d c
On commence par chercher la lettre « a » dans la colonne S(x) et comme « a » n’y apparaît
point cela signifie qu’il n’a pas de précédent. On passe à « b », la lettre « b » apparaît sur la
ligne « a », donc le précédent de « b » est « a » puis on passe à C et ainsi de suite. Graphe
orienté correspondant.
X S(x) P(x)
A b, d -
b c a
c - b, d
d c a
a c
10
Exemple : voici un graphe d’ordre 6.
Fig1 : u6
b u3 c e u7
u10
u2 u4
u1 u8
a u5 d u9 f
10 u6
b u3 c e u7
u10
4
10
6 u
2 u4 20
u1 2 u8
5
3 14
a u5 d u9 f
Exemple : figure n°3
d c
a
e b
11
f
Exemple : Donner le dictionnaire des suivants et des précédents du graphe suivant
X1 X2
X5
X3 X4 X6
Représentations matricielles d’un graphe.
Matrice booléenne.
On construit un tableau à double entrée où figurent les sommets, en lignes (sommets initiaux)
et en colonnes (sommets finaux). A l’intersection d’une ligne x i et d’une colonne xj figure
« 0 » si l’arc (xi, xj ) n’existe pas et « 1 » si l’arc (xi , xj ) existe. Autrement dit : M= ( mij )
1 si ( xi , x j ) U
avec mij =
0 si ( xi , x j ) U
Remarques
Une colonne de zéros correspond à une entrée. Une ligne de zéros correspond à une sortie.
Quand il n’existe pas d’arcs entre deux sommets considérés, on peut aussi ne rien mettre à la
place de 0.
Exemple : voici la matrice booléenne associée à l’exemple 2.
Arrivée
X X1 X2 X3 X4 X5 X6
X1 0 1 1 0 0 0
X2 0 1 1 1 1 0
X3 0 1 0 1 0 0
X4 0 0 0 0 0 1
X5 0 0 0 0 0 1
X6 0 0 0 0 0 0
X1 est une « entrée » et X6 est une « sortie »
Matrice aux arcs.
On construit un tableau à double entrée où figurent les sommets, en lignes (sommets initiaux)
et en colonnes (sommets finaux). A l’intersection d’une ligne xi et d’une colonne xj figure
« 0 » si l’arc (xi, xj ) n’existe pas et « xi xj » si l’arc (xi , xj ) existe. Cette matrice est littérale.
12
xi x j si ( xi , x j ) U
Autrement dit : M= ( mij ) avec mij =
0 si ( xi , x j ) U
• La lecture ligne par ligne de cette matrice donne le dictionnaire des suivants.
• La lecture colonne par colonne de cette matrice donne le dictionnaire des
précédents.
Donnons le dictionnaire des suivants et des précédents et le graphe correspondant à cette
matrice.
D C
13
1°) Sommets : ce sont des points d’où partent et arrivent des lignes orientées ou non orientées,
A, B, C, D, E, représentent les sommets du graphe. Fig n°1.
2°) Un arc : est une flèche ou ligne orientée pourvue d’une extrémité initiale et d’une
extrémité terminale. On peut relier deux sommets distincts ou non et ces deux sommets
exclusivement. Il sera entièrement défini par les couples de sommets qu’il relie. On note
généralement u = (xi, xj ) ou xi xj.
3°) Sommets adjacents : sont deux sommets distincts reliés directement par au moins un arc :
D et C sont adjacents ; B et D ne le sont pas. Fig1.
4°) Chemin : suite d’arcs dont l’extrémité terminale de chacun est l’extrémité initiale du
suivant sauf pour le dernier. Par exemple (C, D, E, A) est un chemin. Ce chemin est formé par
les arcs (C, D), (D, E), (E, A). Un chemin peut donc se définir soit par la suite des sommets
(n) qu’il contient, soit par la suite d’arcs le composant. La longueur d’un chemin (au sens des
arcs) est égale à (n-1). Exemple (C, D, E, A) est de longueur 3.
- Chemin ha miltonien. Un chemin est dit ha miltonien s’il passe une fois et une seule
fois par chaque sommet du graphe et contient tous les sommets. Exemple : E, A, B, C,
D, est un chemin ha miltonien (Fig1).
- Chemin pré-ha miltonien : Chemin passant au moins une fois par chaque sommet du
graphe.
- Chemin simple : Un chemin est dit simple lorsqu’il n’utilise pas deux fois le même
sommet, ou alors les arcs qu’il emprunte sont tous distincts. Il ne passe donc qu’une
fois par chacun de ses arcs.
5°) Circuit : c’est un chemin qui se ferme sur lui même, un chemin tel que l’extrémité initiale
du premier arc coïncide avec l’extrémité terminale du dernier. C’est un chemin qui revient à
son point de départ. Par exemple E, A, B, C, D, E de la Fig n° 1 est un circuit. Le chemin a, b,
c , a de la figure ci-dessous est un circuit .
c
b d
a
- Circuit hamiltonien : Il s’agit d’un circuit passant une fois et une seulement par chaque
sommet. C’est un circuit élémentaire de longueur n ; la longueur d’un chemin ou d’un
circuit étant le nombre d’arcs qui le composent.
14
- Boucle : C’est un circuit de longueur « un », c’est à dire une ligne orientée qui revient
à son sommet de départ.
6°) Une arête : est une ligne non orientée qui équivaut à deux arcs orientés en sens inverses.
Deux arêtes sont adjacentes si elles ont une extrémité commune.
7°) Chaîne : il s’agit d’une suite d’arêtes dont chacune a une extrémité commune avec l’arête
précédente (exception faite de la première), et l’autre commune avec l’arête suivante
(exceptée la dernière). Chaîne hamiltonienne : C’est une chaîne indépendante de longueur (n-
1).
8°) Cycle : c’est une chaîne simple se fermant sur elle même. On rappelle que pour un cycle,
toutes les arêtes de la séquence sont distinctes et que le sommet initial coïncide avec le
sommet de la chaîne.
- Cycle hamiltonien : Cycle passant une fois et une seule par chaque arête de cycle
élémentaire.
- Cycle élémentaire : Cycle ne passant pas deux fois par le même sommet, sauf que le
sommet final coïncide toujours avec le sommet de départ.
Définition de niveau de génération : Dans un graphe sans circuit, il est possible de numéroter
les sommets du graphe de telle manière que le numéro affecté à chaque sommet soit inférieur
à celui des suivants et supérieur à celui des précédents. Ce numéro attribué à chaque sommet
est précisément le niveau de génération ou rang du sommet en question.
Procédure de détermination : Partant de l’exemple suivant :
b
g d
a
15
1ère étape : On confectionne le dictionnaire des précédents à partir du graphe et on obtient le
tableau 1
Tableau N°1
N° de ligne X P(x)
1 a b
2 b néant
3 c b, e, f
4 d a
5 e g
6 f e, g
7 g a
2ème étape : On recherche ensuite dans ce dictionnaire les lignes vides. Ici il n’y a qu’une ligne
vide « b » qui n’a pas de précédent. « b » est donc un sommet de niveau au rang zéro noté N0
= {b}.On barre ensuite tous les « b » dans les colonnes X et P(x), d’où le tableau N°2
Tableau n° 2
N° de lignes X P(x)
1 a néant
3 c e, f
4 d a
5 e g
6 f e, g
7 g a
On constate que la ligne « a » devient vide. Donc « a » est de niveau ou rang 1. Soit N1={a}
3ème étape : on barre tous les « a » dans le tableau n°2 et on obtient :
Tableau n° 3
N° de ligne X P(x)
3 c e, f
4 d néant
5 e g
6 f e, g
7 g néant
La ligne « e » devient à son tour vide, ce qui signifie que le sommet «e» est de rang 3.
16
Soit N3 = { e }
4ème étape : on barre tous les « e », d’où le tableau N°5 suivant.
Tableau n° 4
N° de X P(x)
ligne
3 c f
6 f néant
La nouvelle ligne vide est « f ». Donc le sommet « f » est de rang 4 .
Soit N4 = { f }
Ensuite on barre « f » , et on obtient le tableau N°6 dont la ligne « c » est vide. Le
sommet « c » sera de rang 5 d’où N5 = { c }.
Tableau n° 5
N° de X P(x)
ligne
3 c néant
Exercice : Reprendre les mêmes procédures pour générer les niveaux du graphe
suivant :
E A
D C
17
Chapitre 2 : Problème de Cheminement
Il s’agit de présenter synthétiquement une méthode de recherche : (1) D’une chaîne dans un
graphe non orienté, (2) D’un chemin dans un graphe orienté.
1. Recherche d’une chaîne dans un graphe non orienté : cas d’un graphe quelconque,
Algorithme de l’arbre
Rappelons que dans un arbre, il existe une chaîne et une seule, laquelle relie deux sommets
donnés. Il suffit donc d’élaborer un graphe partiel du graphe de départ et qui soit un arbre.
Dans le cas où il y a « n » sommets, pour construire un arbre partiel, il suffira de choisir (n-1)
arêtes, en évitant de former un cycle comme le montre la figure ci-après.
x1
a
x2
b
x3
X4
33
Graphe initial Graphe partiel matérialisé ici par arbre
A/ Principe
1ère étape : partir du sommet origine et suivre un chemin en marquant d’une croix les arcs
parcourus.
2ème étape : Si on arrive à une impasse, rétrograder en marquant d’une deuxième croix l’arc
rétrogradé ou réutilisé.
3ème étape : Si on arrive à un sommet déjà exploité, revenir alors en arrière pour une impasse.
4ème étape : si en rétrogradant, on aboutit à un sommet xi, reparti immédiatement par un arc
non marqué, s’il en existe encore, sinon rétrograder par l’arc marqué ayant conduit à xi .
5ème étape : l’algorithme prend fin dès lors qu’on arrive au sommet final ou qu’on ne peut plus
continuer.
18
B/ Application
X1 Figure n°1
a X4
X2
X3 b
3. Détermination de chemins de longueurs k, joignant deux sommets
2
1
19
Sommets de départ
1 2 3 4 5 6
1 0 1 0 0 0 0
M= 2 0 0 1 0 0 0
3 0 0 0 1 1 0
4 0 1 0 0 0 0
5 0 0 0 1 0 0
6 1 0 1 0 0 0
M2 =
20
A B C D E
A AEA ABB ABC ACD
AEC
B BBB BBC BCD
C CDA CDE
D DEA DAB DAC DAE
DEC
E EAB EAC ECD EAE
Tableau n° 6
A B C D E
A AEAEA AEABB AEABC AEACD ABCDE
ABCDA ABBBB AEAEC ABBCD AECDE
AECDA ACDAB ABBBC ACDAE
ACDEA ACDAC
ACDEC
B BBCDA BBBBB BBBBC BBBCD BBCDE
BCDEA BCDAB BCDAC BCDAE
BCDEC
M4 = C CDAEA CDABB CDABC CDACD CDEAE
CDEAB CDAEC CDECD
CDEAC
D DEAEA DEABB DEABC DEACD DACDE
DACDA DABBB DEAEC DABCD DAEAE
DECDA DAEAB DABBC DAECD DECDE
DAEAC
E EACDA EABBB EABBC EABCD EACDE
ECDEA ECDAB ECDAC EAECD ECDAE
EAEAB ECDEC EAEAE
EAEAC
21
On remarque qu’on aboutit dans M2, à l’énumération de tous les chemins de longueur 2 dans
M3 à l’énumération de tous les chemins de longueur 3, etc. Pour contrôler le nombre de
chemins obtenus, on élève la matrice booléienne M au carré, au cube etc. On obtient :
Tableau n° 7 M’22 =
A B C D E
A 1 1 2 1 0
B 0 1 1 1 0
C 1 0 0 0 1
D 1 1 2 0 1
E 0 1 1 1 1
A B C D E
A 1 2 2 2 2
B 1 1 1 1 1
M’3 = C 1 1 2 0 1
D 1 2 3 2 1
E 2 1 2 1 1
A B C D E
A 4 3 5 2 3
B 2 2 3 1 2
M’ = C
4
1 2 3 2 1
D 3 3 4 3 3
E 2 3 4 2 3
Pour chercher dans le graphe G les chemins élémentaires, on modifie légèrement la règle de la
multiplication littérale : On retient que les chemins ne comportant aucune répétition de lettres,
ce que Kaufmann et Y. Malgrange ont appelé « multiplication latine » la concaténation
assortie de cette restriction.
A B C D E
A ABC ACD
AEC
A’2 B BCD
C CDA DAC CDE
DEC
D DEA DA DAE
B
E EA EAC ECD
B
22
A B C D E
A ABCDE
B BCDEA
A’4 = C CDEAB
D DEABC
E ECDAB EABCD
En fait dans A’4 apparaissent les chemins (A, B, C , D, E) ; (B, C, D, A, E) ; (E, C, D, A, B),
le premier se renfermant sur lui même, engendre (B, C, D, E, A) ; (C, D, E, A, B) ; (D, E, A,
B, C) ;(E, A, B, C, D). Dans un graphe de n sommets les plus longs chemins élémentaires
comportent, s’ils existent (n-1) arcs. Ils passent une fois et une seule par tous les sommets du
graphe : ce sont les chemins hamiltoniens. (A, B, C, D, E, A) est un chemin hamiltonien qui
se reforme sur lui-même c’est donc un circuit hamiltonien.
23
Un autre algorithme plus rapide (car il n’impose pas de trier les arêtes sur leur valeur) et plus
commode (car il permet de décomposer le problème) a été proposé en 1961 par G.
SOLLENS, chef de travaux au C.N.A.M. (Centre national des arts et métiers de Paris)
a) Comme l’algorithme précédent on distingue les arêtes de même valeur initiale.
b) A chaque étape de l’algorithme
Choisir arbitrairement un sommet en dehors de ceux qui ont déjà été retenus et
reliés à l’arête de valeur la plus faible (pour un minimum)
Puis connecter ce sommet à l’un des sommets auxquels il est adjacent.
c) Lorsque l’ensemble des sommets a été utilisé entièrement :
Ou bien le résultat est déjà un arbre et la solution est trouvée.
Ou bien on a encore plusieurs sous-arbres et chacun sera considéré comme l’un
des sommets d’un multi graphe (un graphe dont deux sommets sont au moins
reliés par plus d’un arc). Les arêtes de ce multigraphe étant toutes des arêtes
qui sont successibles de se connecter deux à deux à ce sous-arbre et l’on
reprendra l’algorithme en b.
La validité de cet algorithme est d’aider à justifier la procédure qui est nécessairement finie et
ne peut engendre que de sous-arbres. Ces sous-arbres sont optimaux puisqu’en chaque
sommet, on sélectionne l’arête localement optimale. Finalement on construit un arbre à partir
de ces sous-arbres optimaux, ce qui constitue une application de la programmation
dynamique, un arbre optimal ne pouvant être formé que de sous-arbres optimaux.
Exercices : Arbre minimum recouvrant
Trouver dans le graphe suivant l’arbre recouvrant qui minimise la somme totale des valeurs.
A
I
E
B H
C
S
D
F
G K
24
4. Programmation dynamique dans le cas déterministe
Chemin critique
Dans un graphe valué à valeurs positives, sans circuit possédant une entrée et une sortie, on
peut associer la somme des valeurs des arcs qui le composent. Soit x 0 l’entrée, x n −1 la sortie
de Ford
25
Principe Algorithme de FORD, pour le minimum.
1er étape : Numérotation des sommets du graphe « valué » dans n’importe quel ordre, le
sommet initial étant noté X0 et le sommet final Xn-1 ( avec n le nombre total de sommets du
graphe)
2ème étape : Affectation d’une valeur Ti = avec 1 i n-1 à tous les sommets , sauf pour le
sommet initial auquel on attribue la valeur T0= 0.
3ème étape : Pour chaque arc (Xi , Xj ) si la valeur Eji= Tj - Ti est supérieur à Dij, valuation de
l’arc XiXj, on remplace alors Tj par T’j= Ti + Dij.
Par contre, si Eji = Tj -Ti est inférieur à Dij, on ne change absolument rien.
4ème étape : On réitère la 3ème étape jusqu'à ce que aucun arc ne permette plus de diminuer les
Ti Application :
Rechercher le chemin de longueur minimale à l’aide du graphe « valué » de la figure 1.
A 25 G
13 22
14 4 6
8 3
E B F S
11 2 5
15 27
Autres présentations
C 17 D
1 = 0
j = Min ( i + dij ) où xi désigne le précédent de x j
La valeur n représente la valeur du chemin minimal entre x1 et x n . Les valeurs j sont
26
4 = Min( 2 + 9 ) = 14
5 = Min(12,12,19 ) = 12
x 0 x1 x5
Le chemin qui minimise a pour valeur 12 et il est constitué des sommets
x 0 x 2 x5
Sur le graphique ce chemin critique minimal est représenté par un double trait et les valeurs
i sont placées au dessus des sommets xi .
Remarque : pour trouver les arcs qui constituent le chemin critique, on part de la sortie et on
repère l’arc qui donne la valeur correspondante.
Chemins maximaux
Exemples : x1 10 x5
0 = 0
3
1 = 0 + 3 = 3
6
2 = Max(0 + 5, 3 + 1) = 5 x0
1 5
4 = 5 + 4 = 9
5 = Max((3 + 10), 5 + 6, 9 + 5) = 14 5
x2 4 x4
Par exemple l’arc ( x 0 , x1 ) est critique mais ne fait pas partie du chemin maximal du graphe.
Arcs critiques : On appelle arc critique tout arc xi , x j tel que ij = j − i . Tout arc faisant
27
En recherche opérationnelle, il s’agit d’élaborer une politique économique optimale. Bellman
exprime ceci : « toute politique économique optimale ne peut être formée que de sous-
politiques optimales ».
Donc il est évident que tout chemin optimal soit constitué de portions de chemins, elles-même
optimales. S’il n’en était pas ainsi pour une portion quelconque, celle ci pourrait être
remplacée par une autre meilleure et par conséquent ne serait pas optimal contrairement à
l’hypothèse. On considère généralement que la programmation dynamique concerne
l’évolution dans le temps d’un système économique, celle-ci étant à chaque phase
partiellement aléatoire (intervention du hasard) et partiellement contrôlée (intervention de
l’homme). On peut distinguer (R.Fortet) les évolutions de première et seconde espèces selon
que, à chaque phase, l’intervention du hasard précède la décision humaine ou au contraire la
suit. Les cas limites sont ceux opposés :
- Où le hasard disparaît : cas déterministe ;
- Où la décision humaine ne se manifeste pas (processus stochastique).
Exemple
La construction d’une autoroute entre les villes A et K comme l’indique le dictionnaire des
suivants, passe par les villes (points) intermédiaires de passage pouvant être classés en
groupes ou « phases » et les arcs du graphe ayant été valués par l’indication des coûts totaux
(coûts de réalisation + coûts sociaux etc.).
Dans ces conditions, la meilleure des politiques F (N0, N1, N2, N3, N4) correspondant au
chemin de coût minimal (avec Ni = niveau de génération).
1) Représentation graphique.
28
2) Résolution.
Tableau n° 3
N2 chemins possibles chemin optimal coût
E
Tableau n° 4
N3 chemins possibles chemin optimal coût
I
29
Chapitre 3 : Problèmes d’ordonnancement : Méthode PERT et Méthode française
30
Une « tâche » ou « activité » est une opération. L’ensemble des tâches forme le projet. On
peut donc la définir comme étant l’unité ou l’élément d’un projet. On associe à chaque tâche
sa durée et une contrainte d’antériorité (de succession) par rapport aux autres tâches. C’est
ainsi qu’on dira que A est immédiatement antérieur à B, si B ne peut débuter que lorsque A
est achevée.
2. Diagramme de GANTT
C’est un graphe de planning et de prévision ayant pour but, de mettre en évidence, les durées
et de permettre ainsi, le contrôle à tout moment de l’évolution du projet par comparaison des
réalisations aux prévisions. Le diagramme de GANTT se présente sous forme d’un tableau
quadrillé dans lequel une colonne correspond à une unité de temps et une ligne à une tâche ou
opération. La tâche se matérialise par une barre horizontale dont la longueur représente la
durée (de la tâche). Cette longueur de la barre est proportionnelle à la durée prévue de la
tâche. Le travail effectué ou le déroulement réel de la tâche est représenté parfois, par des
barres horizontales en pointillés, juste au dessus de celles figurant les prévisions. Exemple :
Construction du diagramme de GANTT. La construction d’une maison se compose en 10
tâches dont les caractéristiques sont les suivants.
Tâches Durée Tâches Précédentes Durée effctuée
A 7 mois sans précédents 5 mois
B 5 mois succède à A 5 mois
C 6 mois succède à B 6 mois
D 8 mois succède à C 8 mois
E 9 mois succède à C,F,G 7 mois
F 4 mois succède à A 3 mois
G 3 mois succède à A 3 mois
H 4 mois succède à D 4 mois
I 6 mois succède à H 6 mois
J 3 mois succède à I 2 mois
31
En déduire le diagramme de GANTT correspondant, la durée prévue et l’état d’avancement
du projet. .
A. Avantages du diagramme de GANTT
Facilement compréhensible par les exécutants, de par sa clarté et sa simplicité il peut servir de
base à des plans d’action intermédiaire plus détaillés. Il permet également de suivre le
déroulement des opérations dans le temps et résume assez bien l’analyse du projet établie par
les responsables respectifs.
B. inconvénients de diagramme de GANTT
Le diagramme cache les erreurs de forme et de fond commises au niveau de l’analyse du
projet. Il ne met pas en évidence les tâches critiques à partir desquelles tout retard apporté au
niveau de l’exécution, entraîne un retard équivalent dans la réalisation de l’ensemble du
projet. Il est impossible de rectifier ponctuellement la durée d’une tâche précise, sans avoir à
décaler d’autant les suivantes pour redresser complètement ou partiellement l’édifice. Si un
des maillons de la chaîne change, c’est donc tout l’édifice qui s’écroule. Enfin il y a une
insuffisance dans la mise en évidence des liaisons existantes entre les différentes tâches.
32
C).Construction d’un réseau PERT
Cette construction doit obéir aux conventions fondamentales suivantes.
1) Conventions fondamentales régissant la construction d’un réseau PERT :
a) deux tâches successives doivent être représentées par 2 flèches placées l’une à la
suite de l’autre ;
b) chaque arcs représente une tâche élémentaire. Si la tâche « i » doit être antérieur à la
tâche « j », l’extrémité finale de l’arc « i » coïncide avec l’extrémité initiale de l’arc « j » ;
c) les sommets du graphe représentent alors des « étapes » dans le déroulement des
opérations ;
i j
1 2 3
Etape Etape Etape Etape
initiale finale initiale finale
de i de i de j de j
d) le graphe doit posséder une « entrée » sommet sans antécédents qui est l’extrémité
initiale des arcs associés aux tâches sans antécédents c’est à dire pouvant commencer sans
préalable. Ce sommet correspond à « l’étape début des opérations ». De même le graphe doit
posséder une « sortie » sommet sans successeurs qui est l’extrémité finale des arcs associés
aux tâches sans successeurs ce sommet correspond à l’étape « fin des opérations » ;
e) chaque tâche doit correspondre à une flèche et une seule ;
f) le graphe ne doit contenir ni boucles, ni circuits ;
g) le graphe devra comporter le moins possible de croisement d’arcs ;
h) chaque sommet correspondant à une étape doit être présenté par un cercle à
l’intérieur du quel est prévu un système de repérage (numéro ou lettre) permettant d’identifier
et de suivre aisément l’ordre de succession des tâches ;
i) afin de faciliter la consultation du graphe, on oriente les flèches de la gauche vers la
droite
33
parallèlement ou lorsque deux ou plusieurs tâches ont même sommet initial et même sommet
terminal.
Exemples
Exemple 1
i k
l succède à j
1 2 3
j l
k succède à i et j
tâche fictive (5 2)
4 5 6
Exemple 2
A et B doivent être terminés pour que C et D puissent commencer.
A C
B D
Exemple 3
A et B antérieures C et B antérieure à D la représentation ci-dessous n’est pas bonne.
A C
B D
34
A C
E1 E
1
Tâche fictive de durée 0 entre
E1 et E2
B D
E2
Le PERT-Temps
En attribuant à chaque opération une durée prévisionnelle de son exécution, il sera possible de
mettre évidence « un chemin critique » formé d’une succession de tâches critiques au niveau
desquelles tout retard entraînerait la non réalisation de l’ensemble du projet dans les délais
prévus. Ce chemin critique représente le temps minimum nécessaire pour la réalisation du
projet. Alors que les tâches critiques rendent le programme rigide, les tâches non critiques
quant à elles laissent une certaine marge de manoeuvre dans le déroulement des travaux.
Dès que le chemin critique sera établi (et implicitement les « dates au plus tôt » et « au plus
tard »), il sera possible de convertir le graphe PERT en diagramme de GANTT et de contrôler
aisément le déroulement des travaux.
La détermination des marges à partir du calcul des dates au plus tôt et au plus tard, permettra,
en outre de connaître le temps encore disponible par tâche, la marge de manoeuvre disponible,
de déceler certains retards d’imputer les responsabilités, et d’apporter des actions correctrices
qui s’imposent.
1) Le chemin critique est le temps minimum nécessaire quant à la réalisation du projet. Il est
composé exclusivement de tâches critiques c’est à dire dont l’exécution ne doit être ni
retardée ni ralentie sous peine d’augmentation d’autant le délais de la réalisation de
l’ensemble du projet. Ce chemin passe par les sommets dont les dates au plus tôt et plus tard
coïncide. Son « intervalle de flottement » est nulle.
35
2) Date au plus tôt d’un événement : Il s’agit de la date avant laquelle une tâche ne peut
démarrer. C’est donc la date attendue de la réalisation d’un événement ou date avant laquelle
un événement ne peut se réaliser.
3) Date au plus tard d’un événement : C’est la date limite de réalisation d’un événement.
Si l’événement venait à se réaliser après la date, le projet tout entier ne pourrait jamais se
réaliser dans le délai correspondant à la longueur du chemin critique.
36
tâche sans pour cela compromettre la fin du projet dans les délais impartis. Pour cela le
responsable doit avoir à sa disposition les intervalles de flottements pour chaque étape ou
événement. S’intéresser d’avantage aux tâches qu’aux événements de début et de fin qui
encadrent la tâche, sous entend que l’on s’intéresse aux « marges ».
b) Intervalle de flottement
Pour chaque sommet on obtient un intervalle de flottement en faisant la différence entre la
date au plus tard et la date au plu tôt du même événement. L’intervalle de flottement est un
intervalle dans lequel peut intervenir la réalisation d’un événement sans compromettre
l’exécution de l’ensemble du projet ni sa durée totale minimale.
c) Les marges
On distingue trois sortes de marges : marge totale, marge libre et marge certaine pour
chaque tâche.
Evénement ou étape Ei Evénement ou étape Ej
Ei Ej
ti t'i tj t'j
marge certaine de Tij : MC (Tij) = tj - t’i- dij équivalent à zéro si Mc est négative .
On a toujours : 0 ≤ Mc ≤ M L ≤ MT
37
1) La marge libre d’une opération
Elle correspond pour cette opération, au retard maximum que l’on peut apporter à son
démarrage sans perturber la date de sa réalisation au plus tôt de l’événement suivant.
Concrètement si une tâche commence à sa date au plus tôt et si sa durée est augmentée de sa
marge libre, il n’y a pas de perturbation dans la suite du projet, les dates au plus tôt et au plus
tard des autres opérations restant inchangées. Un retard supérieur à la marge libre se répercute
sur les tâches suivantes en diminuant leurs marges.
3) La marge certaine
C’est le retard maximum que l’on peut apporter à son démarrage sans perturber la date de
réalisation au plus tôt de l’événement suivant bien que l’événement précédent n’ait été réalisé
qu’à sa date limite.
Mise à jour d’un réseau -PERT : Contrôle et surveillance du déroulement des opérations.
38
Tâches Durée Tâches Précédentes
A 7 mois sans précédent
B 5 mois succède à A
C 6 mois succède à B
D 8 mois succède à C
E 9 mois succède à C, F, G
F 4 mois succède à A
G 3 mois succède à A
H 4 mois succède à D
I 6 mois succède à H
J 3 mois succède à I
Principe
Cette méthode consiste à dresser un tableau dans lequel chaque opération ( on les
prend dans un ordre quelconque) est dotée d’une colonne et d’une sous-colonne. Il existe deux
événements, le début (Dt) et l’achèvement (Fn) des opérations.
Dans chacune des colonnes, on écrit les opérations qui doivent précéder celle qui est
indiquée en tête de colonne. On indique aussi la durée de ces opérations préalables. Quand
une opération n’est précédée par aucune autre et si elle peut commencer dès le démarrage de
l’ensemble, on écrit Dt et l’on indique zéro, à côté de Dt.
Une fois cette opération effectuée, on écrit zéro en face de Dt, dans la sous colonne
correspondant aux opérations qui comportent un Dt. Comme il y a sûrement au moins une
opération qui comporte un Dt et seulement un Dt dans la colonne on a immédiatement une
colonne « complète » c’est à dire dont la colonne et la sous colonne sont remplies : on fait la
somme des chiffres inscrits dans la colonne et la sous colonne et l’on obtient : 0+0=0 , on en
déduit que la date de début de l’opération A est zéro ( Pour l’exemple ci-dessus) on marquera
zéro dans la sous colonne correspondante. Ici, dans les colonnes B, F, G, on a trois nouvelles
colonnes « complètes » et l’on inscrit respectivement : 0+7 = 7, 0+7 = 7, et 0+7 =7 en tête des
colonnes B, F et G et ainsi de suite.
39
En continuant ainsi, on arrive à marquer la colonne Fn’, le nombre qui est indiqué en
tête de cette colonne donne la date la plus proche d’achèvement de l’ensemble des opérations.
Pour trouver le chemin critique, il suffit de reprendre dans le tableau en partant de la fin, les
opérations enchaînées dont la ligne a fourni le nombre indiqué en tête de colonne. On utilise
pour cela le tableau des prédécesseurs en remontant : on cherche le ou les arcs tels que tFn= ti
+ Vi, Fn,
Pour calculer les dates au plus tard, on utilise le tableau des successeurs. On fixe la date au
plus tard de la tâche Fn à ω, la date la plus proche d’achèvement trouvé. On calcule en
remontant les dates au plus tard des tâches en appliquant la formule :
t ' = min
i j (i )
(t ' − v )
j ij où (i ) est l’ensemble des successeurs de i.
Exemple :
5
A B
Les méthode MPM et PERT sont donc inverses et donnent des représentations
graphiques différentes d’un projet.
40
Le choix de l’une ou de l’autre de ces méthodes dépend de la complexité du projet : existence
de tâches fictives, dates de début ou de fin de tâche particulière, arcs qui se ‘’croisent’’ …
Le graphe MPM porte sur les sommets les renseignements suivants :
- La date de début au plus tôt : DA notée en *
- La date de début au plus tard : DP notée en **
- Le nom de la tâche notée en ***
En faisant la différence entre les dates portées sur les sommets du graphe MPM on obtient les
marges totales.
* * *
* * *
* * *
* * *
On voit en remontant ce tableau que la détermination de Tz s’est faite par i,f,b,a qui
constituent le chemin critique.
Détermination de la date au plus tard
Il s’agit de déterminer pour chaque tache x, une date de début au plus tard Tx* telle que T fin
(date de fin de travaux) ne soit pas retardée.
1) on pose Tfin* =Tfin
41
2) soit x un sommet dont tous les sommets suivants, y sont marques (par sommet marque, il
faut entendre que Ty* a déjà été détermine) on a alors Tx*= Min {(Ty*-dx)} pour y
appartenant a l’ensemble des arcs.
Détermination des marges
a) la marge totale
c’est le retard maximum que l’on peut prendre dans la mise en route d’une tache , sans
remettre en cause les dates au plus tard des taches suivantes donc sans retarder la fin des
travaux. Pour une tache x, cette marge totale est donc égale a Tx*-Tx=Mt
b) la marge libre.
C’est le retard maximum que l’on peut apporter a la mise en route d’une tache sans remettre
en cause la date au plus tôt d’aucune tâche.
1- construction du graphe
Les opérations mises en jeu dans la construction de la maison de Monsieur NDO sont les
suivantes :
a) aménagement des voies d’accès ;
b) travaux de fouille
c) travaux de terrassement …….
Opération Durée Opérations pré requises Opérations suivantes
A 4 - B, G
B 6 A F
C 4 - E, F
D 12 - E
E 10 B, C, D H
F 24 B, C I
G 7 A H
H 10 E, G I
I 3 F, H -
Pour construire le graphe, les sommets seront placés de gauche à droite en fonction de leur
niveau. A un niveau, les sommets seront situés de façon à limiter le nombre d’intersections
entre les arcs. Un arc reliera un sommet i à un sommet j si j appartient à P (i). Chaque sommet
sera figuré par un rectangle du type :
Tx Tx’
x
42
Exemple :
4 17
22 24
4 7 34 34
0 0 G 10
H
A 10 10 I
4 4 4 24 3
6
F
B
37 37
0 6 4 10
12 14
Fin
C 4
E
0 2 12
N0 = {C, D} ; N1 = {A, B}
43
Graphe PERT
C(4) 2 A(10)
Dt 4 12 Fin
0 0 22 22
D(10) B(12)
3
10 10
Graphe MPM
C 4 A
0 8 4 12
10
Fin
Dt
22 22
0 0
12
D B
10
0 0 10 10
Exemple 2
44
Graphe PERT
B(13 3
1 )
A(18 32 32
18 18 C(12)
)
E(14 0
)
0 0
44 44
32 32
D(16) 0
F(15)
18 29
B
18 19
Q 18 13 C
18 19
0 0 32 32
0 0 32 32
0 18 14
18 12
E
18 18
Dt 18 18 Fin
0 0
0 0 44 44
44 44
0
15
D
0 13 F
16 18 29
0 13
18 29
Remarque : sur le graphe PERT, il faut placer une contrainte de liaison entre A et D et une
tâche fictive entre B et E.
45
Exemple 3
Graphe PERT
A(2)
1 3
C(5) 7 8
5 6 E (6)
Dt
0 0
5
0
14 14
B(7) 0
F(2)
4
2 12 12
D(3)
7 9
C A E
0 1 5 5 6 2 7 8
0 1 5 6 7 8
0 6
Fin
14 14
Dt 7 14 14
0 0
0 0
2
12
0
B D 12
0 2 7 7 9 3 12 12
0 2 7 9 12 12
46
Comparaison des méthodes P.E.R.T et M.P.M dans la prise en compte de
certaines contraintes potentielles
a) Comparaison des graphes lorsque les délais sont des durées opératoires
uniquement, contraintes de succession
Prenons l’exemple très simple suivant : Un ensemble de travaux comprend 7 opérations. Le
tableau suivant précise les durées opératoires et les contraintes de succession.
Graphe de P.E.R.T
c(4)
2 4
a(3) g(2)
f(4)
d(3)
1 6
b(2) v(0)
3 5
e(5)
Fig.7
Graphe de M.P.M
3 4
a c
g
0
3 4
2
3
D d f
2
F
3
b 2
e
Fig.8
47
a c
2 4
g F
6
D
1 d f
5
b 3 e
Fig.9
Sur le graphe de la figure 7 (P.E.R.T), le sommet 1 représente le début du programme, le
sommet 6 la fin de celui-ci. Il est inutile de marquer un sommet supplémentaire 7 pour la fin.
(On aurait pu aussi se servir du sommet 5 pour marquer l’évènement « fin ».) L’arc v, de
durée nulle, représente une opération virtuelle, destinée à relier le sommet 5 au sommet
terminal 6.
Le graphe M.P.M de la figure 8 fait intervenir les sommets D et E représentants les tâches
« début » et « fin ». Les contraintes potentielles sont simplement de succession / le potentiel
de chaque arc issu de l’un des sommets a , b, …, g est égal à la durée d’exécution de
l’opération correspondante, qui ici représente le délai minimum séparant les débuts de deux
tâches qui se suivent.
Les arcs issus du sommet D sont affectés de potentiels nuls puisque la tache correspondant est
de durée nulle ; cela signifie que les tâches a et b peuvent commencer dès le début.
La figure 9 visualise la dualité des 2 modes de représentation.
b) Opérations parallèles
Soient deux opérations b et c devant satisfaire aux conditions suivantes : s’effectuer en
même temps (opérations parallèles), succéder à une même opération a, précéder une
même opération d. Les durées respectives de a, b, c, d sont : 3, 2, 5, 7
P.E.R.T
La représentation suivante est incorrecte :
b(2)
a(3) d(7)
1 2 3 4
c(8)
48
Fig. 10
En effet, elle conduit à un multigraphe (cf. page 278).
Il convient d’introduire ici un évènement fictif 3’ et une opération virtuelle b’ de durée nulle.
La représentation suivante est correcte :
Évènement
fictif
3'
Opération
b(2)
b‘(0) virtuelle
1 2 3 4
a(3) c(5) d(7)
Fig. 11.
Cette représentation correcte n’est pas unique, car b et c jouent des rôles symétriques.
M.P.M.
Les artifices de représentation d’une telle situation en P.E.R.T. sont inutiles en M.P.M. On
obtient très naturellement le graphe suivant :
b
3
2
a d
3 5
Fig. 12
Tout arc issu de d sera affecté d’un potentiel égal au délai correspondant, qui pourra être 7 ou
d’autres valeurs.
c) Opérations dépendantes et indépendantes Soient, d’une part, a et b de durées 5 et 2,
indépendantes ; d’autres part, c et d de durées 3 et 1 indépendantes. Ces opérations
49
sont telles que c succède à a sans succéder à b, d succède à a sans succéder à b, d
succède à la fois à a et à b.
P.E.R.T.
La représentation suivante est incorrecte :
c(3)
4
1 a(5)
3
b(2) d(1)
2 5
Fig. 13
En effet : d succède bien à a et b, mais c, qui ne doit succéder qu’à a, succède aussi à b, ce qui
est exclu. Comme dans la situation précédente, il convient d’introduire un événement fictif 3’
et une opération virtuelle a’ de durée nulle pour obtenir la représentation correcte suivante :
a(5) c(3)
1 3' 4
a‘(0)
2 3 5
b(2) d(1)
Fig. 14
c et d ne jouent pas des rôles symétriques : la représentation précédente est la seule possible.
M.P.M.
La représentation incorrecte ci-contre a pour équivalent en M.P.M.
50
5
a c
5
2
b d
2
Fig. 15
La représentation correcte est encore ici très naturelle :
Fig.16
5
a c
b d
2
51
P.E.R.T. L’opération b doit être fractionné en 3 sous opérations successives : b1, b2, b3 de
durées respectives 1 jour, 2 jours, 4 jours. La représentation correcte est la suivante :
4 6
c(3)
d(4)
1 2 3 5 7 8
a(2) b1(1) b2(2) b3(4) e(2)
Fig. 17
M.P.M.
Evidemment, on pourrait, en M.P.M., fractionner l’opération b de la même façon et obtenir la
représentation suivante :
c d
1 2
a b1 b2 b3 e
2 1 2 4
Fig.18
Mais les 3 sommets b1, b2, b3 peuvent être condensés en un seul : b, en modifiant
correctement les potentiels sur les arcs issus de b. On obtient la représentation simplifiée
suivante :
c
2 7
a b
2 e
(1+2+4)
3 (2+1)
Fig.19
52
Cet exemple illustre parfaitement la raison pour laquelle M.P.M. introduit des délais, ce qui
conduit à plus de souplesse et de simplicité que P.E.R.T. (cf. 3-b) On tient compte des
contraintes de succession avec recouvrement (ou avec attente) en utilisant simplement des
potentiels convenables.
i j k
l(10)
1
Fig.20
2. De même l’arc l(10) traduit la contrainte de démarrage concernant b et c :
53
a(3) b(2)
i j k
c(1)
l(10)
k
1
Fig.21
3. Il y a lieu d’introduire, en plus de l’arc l(10), l’évènement fictif j’ et l’opération
virtuelle b’ de durée nulle.
a(3) c(1)
i j m
b‘(0)
1 j’ k
l(10) b(2)
Fig.22
M.P.M.
1. L’opération D représente le lancement des travaux. La contrainte de démarrage de b se
traduit par l’arc (D, b) muni du potentiel 10.
3
a b
10
Fig.23
54
2. De même les arcs (D, b) et (D, c) de potentiel 10 traduisant la contrainte de
démarrage b et c :
3
a b
10
D
10
c
Fig.24
4. L’arcs (D, b) de potentiel 10 suffit pour traduire la contrainte de démarrage
concernant b :
3
a c
10
D
b
Fig.25
Exercices d’applications
Exercice 1 : Recherche d’un chemin critique.
La réalisation d’un ouvrage se décompose en tâches suivantes A, B, C, D, E, F, G, H. Les
durées respectives sont les suivantes : A (12 jours), B (24 jours), C (14 jours), D(22jours), E
(16jours), F (12 jours), G (24 jours), H (21 jour). On se propose de déterminer la durée
minimum nécessaire quant à la réalisation dudit ouvrage, ainsi que les dates auxquelles
doivent ou peuvent débuter les tâches pour que cette minimum soit respectée. On rappelle, en
effet, que les tâches A et B sont sans tâche antérieure. Par contre, la réalisation de la tâche F
nécessite l’achèvement des tâches C et D et donc de A et de B, et précède la réalisation de la
55
tâche H. Les tâches E et H sont sans successeurs, mais H suit G et F tout comme E vient
immédiatement après A. Notons que C est précédé par A et que D suit B, ainsi que le résume
le tableau suivant :
Tâches A B C D E F G H
Tâches précédentes --- -- A B A C, D B F, G
56
Départ
A B C D E F G H I J
A
B 1
C 1
D
E 1 1
F 1 1 1
G 1 1 1 1
H 1
I 1 1 1 1 1 1 1 1 1
J 1 1
Tâches A B C D E F G H I J
Durée 6 10 7 5 12 6 8 11 8 5
Travail à faire : Construire un graphe orienté matérialisant les relations entre les tâches ainsi
que les différentes étapes que doit présenter la réalisation du projet. Déterminer la durée
minimum de réalisation de ce projet.
Exercice 4 Méthode PERT
L’entreprise « Bon temps » décide de lancer un nouveau produit sur le marché. Les services
commerciaux ont déterminé l’ensemble des tâches nécessaires à cette action :{a, b, c, d, e, f,
g, h, i, j, k}. Les conditions d’antériorité liant ces tâches et celles-ci sont rassemblées dans le
tableau ci-dessous :
Tâches Tâches antérieures Durée des tâches
a e 6
b j, e 8
c aucune 12
d aucune 14
e aucune 8
f d 5
g f, d 10
h a, c, d 6
i h, a, c, e, k, d, f 8
j e 12
k f, d 4
1) Déterminer les tâches immédiatement antérieures à chaque tâche.
2) Tracer le graphe du projet par la méthode de PERT ou par la méthode des potentiels et
déterminer le ou les chemins critiques en indiquant sur le graphe les dates au plus tôt et les
dates au plus tard. Les services commerciaux aimeraient connaître en quel temps minimum le
lancement sera réalisé. Dresser le tableau des marges de flottement (marges totales) et des
marges libres.
57
Chapitre 4 : Problème de flot maximal
On appelle réseau de transport un graphe sans circuit, comportant une entrée X0 et une sortie
Xn dont les arcs ont été valués par des nombres représentant leur capacité de transport ( le flux
maximal de matière susceptible d’être transportée). Le problème à résoudre dans un réseau de
transport, consiste en général, étant données des capacités disponibles en X1 ( entrée ), on
cherche à faire passer le maximum de matière jusqu'à Xn (sortie) compte tenu des capacités
de chaque arc. Les capacités de transport peuvent représenter des tonnages disponibles sur
des bateaux, des camions, des wagons ou encore des débits dans les oléoducs, canalisations,
voies de transmissions etc.
Rappels : Soit le graphe suivant :
x3 x4
x6
x1
x5
x2
Une chaîne est une suite de sommets adjacents (sommets reliés par un arc). Le sens des arcs
n’est pas pris en compte. Ainsi une chaîne peut comporter des arcs directs (ils sont inclus dans
la chaîne selon leur sens) ou / et des arcs inverses (ils sont inclus dans la chaîne selon le sens
inverse à leur sens). Par exemple les suites {x1 ; x2 ; x3 ; x 4 } ou {x6 ; x4 ; x3 ; x 2 } sont des
chaînes, La première ne contient que des arcs directs tandis que la seconde contient à la fois
un arcs direct {x3 ; x2 } et deux arcs indirects {x6 ; x4 } et {x4 ; x3 }.
- Un chemin est une suite de sommets adjacents dans un graphe orienté. C’est une
« chaîne ne comportant que des arcs directs ». La suite {x1 ; x2 ; x5 ; x 6} est un
chemin.
- Un circuit est un chemin dont le 1ier et le dernier sommet sont confondus.
La suite { x2; x3 ; x2 } est un circuit.
Vocabulaire
Un arc est dit saturé si le flot qui le traverse est égal à sa capacité .
58
Une chaîne est saturée si elle comprend au moins un arc direct saturé.
Un flot est dit complet si tout chemin de l’entrée à la sortie est saturé.
Un flot est maximal si toutes les chaînes de l’entrée à la sortie sont saturées.
On montre qu’un flot de valeur maximale est complet.
X5
5
9
X3 6
5
2
5 X4 5
8
X1 X6
3
6
10
10 X2
Compte tenu des capacités ij transitée par un arc (xi, xj ), il faut pouvoir la faire passer
également par les arcs suivants. Donc chaque arc de capacité ij on ne pourra faire passer
qu’une capacité inférieure ou égale tout en essayant de garder les quantités maximales.
De x1 on peut faire partir au maximum 5 + 8 + 10 =23
Des suivants de x1 on peut également faire partir des flux de matière.
59
On remarque que l’on ne peut faire parvenir à x 6 qu’une quantité égale à 9 + 5 +6 = 20, par
conséquent il existe dans le réseau de goulots d’étranglement, Il faut donc s’assurer que
chaque quantité transportée est compatible avec l’ensemble du réseau.
- Etape 1 : le flot initial F0 a pour valeur 0 : V0 = 0. Sur le graphique on place à coté de
toutes les capacités la valeur 0.
- Etape 2 : Passage au flot suivant F. On considère un chemin non saturé (tous les
chemins sont non saturés à cette étape) et on repère la plus petite capacité sur ce
chemin. Pour tous les arcs A de ce chemin, on fait passer en l’indiquant sur le
graphe en barrant pour ces arcs les 0 et plaçant la valeur . Pour tous les arcs U qui ne
font pas partie du chemin sélectionné, on ne change rien ( on laisse les 0 ). La valeur
du flot du flot F1 est V1= . Par exemple on choisit le chemin (x1 ; x2 ; x6 ), la plus
petite capacité sur le chemin est = 6. Pour les arcs (x1 ; x2 ) et ( x2 ; x6 ), on remplace
les 0 par 6. Pour les autres arcs on ne modifie rien. Ainsi l’arc ( x2 ; x6 ) est saturé ce
qu’on peut matérialiser sur le graphique par un double trait ( l’arc saturé). La valeur du
flot F1 est V1= 0+6 = 6.
- Etape 3. Passage au flot suivant F2 . On considère un chemin non saturé, par exemple
le chemin ( x1 ; x2 ; x4 ; x5 ; x6 ) . La plus petite capacité sur ce chemin est = min
{10 - 6 ; 3- 0 ; 6-0 ; 9 - 0} = 3. Pour tous les arcs du chemin sélectionné, on modifie
les anciennes capacités en leur ajoutant la valeur . Pour les autres arcs on ne change
rien . Ainsi l’arc ( x2 ; x4 ) est saturé on le matérialise sur le graphique par un double
trait ( l’arc saturé). La valeur du flot F2 est V2= 6+3 = 9.
- Etape 4 : Passage au flot suivant F3 . Soit le chemin non saturé, ( x1 ; x4 ; x6 ) . La
capacité minimale sur ce chemin est = min {8 - 0 ; 5 - 0 } = 5. On modifie les
capacités des arcs sur le graphique et on fait apparaître l’arc saturé ( x4 ; x6 )
matérialisés par un double trait . La valeur du flot F3 est V3= 9 +5 = 14 .
- Etape 5 : Passage au flot suivant F4. Soit le chemin non saturé, ( x1 ; x4 ; x5 ; x6 ) . La
capacité minimale sur ce chemin est = min {5 - 0 ; 6-3 ; 9-3 } = 3. On modifie les
capacités des arcs sur le graphique et on fait apparaître l’arc saturé ( x1 ; x4 ) et ( x4 ; x4
) matérialisés par un double trait . La valeur du flot F4 est V4= 14+3 = 17 .
- Etape 6 : Passage au flot suivant F5 . On choisit le chemin non saturé, (x1 ; x3 ; x5 ; x6
) La plus petite capacité sur ce chemin est = min {5 - 0 ; 5- 0 ; 9-6 } = 3. On
modifie les capacités des arcs sur le graphique et on fait apparaître l’arc saturé( x5 ; x6
) matérialisé par un double trait . La valeur du flot F5 est V5= 17+3 = 20.
60
- Etape 7. le flot suivant F6 est complet car tous les chemins qui mène de x1 à x6 sont
saturés. Le flot est également maximal car toutes les chaînes qui partent de x1 à x6 sont
saturées La plus petite capacité sur ce chemin est = min {5 - 0 ; 5- 0 ; 9- 6 } = 5. On
remarque également que 20 est la valeur maximale pouvant arriver en x6.
Exemple 2
Soit le réseau de transport suivant :
D
5
8
B 3 2
4
1
5 C 4 5
8
A G
E
2
7
6
F
61
On obtient le graphe suivant :
B 5 D
4 8
1 3 2
A 8 C 4 E 5
G
2
6 7
F
Etape 7 : le flot est complet car tous les chemins entre A et G sont saturés mais par contre le
flot n’est pas maximal car il existe au moins une chaîne non saturée.
En effet la chaîne ( A ; C ; E ; D ; G) n’est pas saturée .
b) Pour saturer une chaîne on utilise l’algorithme suivant :
(i) on considère le flot complet de valeur V et une chaîne non saturée ;
(2i) pour les arcs directs de la chaîne, on considère les différences entre les capacités
des arcs et les flots qui les traversent et on prend la plus petite de ces différences notée ’ ;
(3i) pour les arcs inverses, on prend le plus petit des flots qui les traversent noté ’’ ;
(4i) on pose = min{’ ; ’’} ;
(5i) on définit un nouveau flot en ajoutant la valeur à tous les arcs directs de la
chaîne, en retranchant à tous les arcs inverses de la chaîne et en ne modifiant pas les valeurs
des arcs qui ne font pas partie de la chaîne.
La valeur du nouveau flot sera V’= V + .
On itère le processus jusqu’à ce que toutes les chaînes soient saturées.
Dans le cas de l’exemple 2 ; sur la chaîne (A ; C ; E ; D ; G), ’ = min {1 ; 1 ; 3}=1 et ’’=2
donc = min{1 ; 2 }=1 . On ajoute1 aux arcs ( A ; C) ; ( C ; E) et ( D ; G) et retranche 1 à (
E ; D), la valeur du flot est V’=17+1=18.
Il n’y a plus de chaîne non saturée. Le flot est maximal et de valeur 18.
B 5 D
4 8
1 3 2
A 8 C 4 E 5
G
2
6 7
F
62
Chapitre 5 : Problème d’affectation.
Les affectations (c'est-à-dire les couples agent-tâche) ont toutes un coût défini. Le but est de
minimiser le coût total des affectations afin de réaliser toutes les tâches.
L'affectation optimale entre le groupe d'agent et de tâche est représenté ici par les arcs rouges.
Plus formellement, l'objectif est de déterminer un couplage d'une taille égale au nombre de
tâches, de poids minimum dans un graphe biparti « valué ». Si il y a autant d'agents que de
tâches, il s'agit de déterminer un couplage parfait de poids minimum dans un graphe biparti.
Le problème d'affectation est aussi lié au problème du flot de coût minimum.
Exemple
Une administration désire procéder aux mutations des Messieurs A, B, C, D et E et leur offre
les postes a, b, c, d et e. Ces fonctionnaires désirant maximiser leur satisfaction générale,
décident d’effectuer chacun un classement des postes offerts de 1 à 5 et obtiennent le tableau
suivant regroupant leurs avis (tableau 1)
63
a b C D e
A 1 2 3 4 5
B 1 4 2 5 3
C 3 2 1 5 4
D 1 2 4 2 5
E 2 1 4 3 5
a b c d e
A 0 1 2 2 2
B 0 3 1 3 0
C 2 1 0 3 1
D 0 2 3 0 2
E 1 0 3 1 2
0 0 0 1 2 3
64
Tableau 1.1
a b c d e
A 0
B 0
C 0
D 0
E 0
Dans le cas du premier exemple, on a pu choisir un zéro par ligne et par colonne, on a donc la
solution au problème posé : c’est à dire à Monsieur
A on attribue le poste a
B on attribue le poste e
C on attribue le poste c
D on attribue le poste d
E on attribue le poste b
La somme des 5 chiffres est égale à 9.
B 1 e
1 1 1
A 1 d
1 1
1
O 1 D 1 S
1 1 c 1
C
1 1 b 1
E 1 a
Exemple 2
Tableau n°2
A b C d e
A 1 2 3 4 5
B 1 4 2 5 3
C 3 2 1 5 4
D 1 2 3 5 4
E 2 1 4 3 5
65
Tableau n°2.1
a b c d e
A 0 1 2 3 4 1
B 0 3 1 4 2 1
C 2 1 0 4 3 1
D 0 1 2 4 3 1
E 1 0 3 2 4 1
5
Tableau n°2.2.
a b c d e
A 0 1 2 1 2
B 0 3 1 2 0
C 2 1 0 2 1
D 0 1 2 2 1
E 1 0 3 0 2
0 0 0 2 2 4
Tableau n°2.3
a b c d e
A 0
B 0
C 0
D
E 0
Dans le cas de l’exemple 2, si l’on pouvait choisir un zéro par ligne et par colonne, on aurait
la solution mais ceci n’est pas possible.
De plus, nous savons déjà que le coût d’affectation ne serait pas inférieur à 9 (somme des
chiffres ôtés aux différentes rangées pour faire apparaître un zéro par ligne et par colonne)
- Affectons le zéro unique de la ligne A, nous ne pouvons plus affecter sur la ligne B
que le zéro de la colonne « e »
- Affectons le zéro unique de la colonne « c », nous ne pouvons plus affecter aucun zéro
de la ligne D, l’unique zéro qu’elle contenait ayant été exclu de l’affection par le
choisi du zéro de la ligne A
- Enfin sur la ligne E, nous avons le choix entre le zéro de la colonne « b » et celui de la
colonne « d ». Retenons par exemple le premier d’où le tableau 2..3
Nous n’avons pas pu obtenir la solution mais il convient de vérifier que nous ne pouvons
affecter d’avantage de zéros.
A on attribue le poste a
B on attribue le poste e
C on attribue le poste c
66
E on attribue le poste b
D n’a pas poste et le poste d n’a pas été attribué
La somme des 5 chiffres est égale à 8.
Pour cela, considérons un graphe en forme de réseau de transport dont les arcs tous de
capacité 1, correspondent, entre les points A, B, C, D, E d’une part, et les sommets a, b, c, d ,
e d’autre part, aux zéro du dernier tableau 2.3.
1 c
C 5
1 B 1 e 1
5 5 1 5
1 1 5
5
1 A 1 a 1
O 5 5 S
1 1 1
5 5
D 1
b
1
1 5
5
E 1 b
Nous avons donc un flot maximal ce qui veut dire que, quels que soient les choix sur le
tableau 2.3, nous n’arriverons pas à affecter plus de 4 zéros. Pour résoudre le problème nous
aurons recours à la méthode hongroise (deux mathématiciens hongrois EGERVARY et
KÖNIG).
Reprenons le tableau 2.3, en mentionnant également les zéros que nous avons dû éliminer des
choix ultérieurs par suite d’affectation d’un autre zéro sur la même ligne ou la même
colonne : ces zéros seront dits : zéros barrés, les zéros affectés seront dits : zéros encadrés
a) Marquons toute ligne n’ayant pas de zéro encadré (ici la ligne D)
b) marquons ensuite toute colonne ayant un zéro barré sur une ligne marquée (ici la colonne
« a »)
c) Marquons alors toute ligne ayant un zéro encadré dans une colonne marquée (ici la ligne
A) et revenons à b) jusqu'à ce que le marquage ne soit plus possible (c’est le cas dès à
présent de notre exemple)
67
a B c d e
A 0 1 2 1 2
B 0 3 1 2 0
C 2 1 0 2 1
D 0 1 2 2 1
E 1 0 3 0 2
◼ Traçons alors un trait sur les lignes non marquées et les colonnes marquées (tableau n°6)
◼ Considérons le plus petit nombre du tableau restant : Retranchons le (ici 1) de tous les
éléments non rayés et ajoutons aux éléments rayés 2 fois (tableau 7)
Sur le tableau 7, il est maintenant possible d’affecter un zéro par ligne et par colonne, et ceci
de trois manière différentes qui constituent les solutions équivalentes du problème, en ce sens
qu’elles donnent toutes en revenant au tableau n°1, la somme 10 .
On remarquera que le coût de 10, correspond bien à la somme de la borne inférieure 9 trouvée
précédemment et du plus petit élément soustrait postérieurement au tableau.
Au cas où le tableau 2.4 n’aurait pas fourni la solution, il faut reprendre l’algorithme, après
avoir affecté le plus possible de zéros et recommencer la procédure de marquage, et ainsi de
suite jusqu'à obtention de la solution cherchée.
a b C d e
A
B
C
D
E
68
Chapitre 6 : Problème De Transport
La valeur à optimiser et les contraintes sont très souvent des fonctions linéaires des
paramètres. Il existe alors diverses techniques pour résoudre ce problème. Nous allons
présenter quelques-unes d’entre elles : la méthode géométrique, le simplexe, la méthode du
coin Nord-Ouest, la méthode de la différence maximale et l’algorithme Stopping Stone.
Les programmes linéaires seront résolus graphiquement ou par des méthodes algébriques en
particulier la méthode du simplexe. Un programme linéaire se présente sous la forme d’une
fonction linéaire : Z= f(x) qu’il faut optimiser (maximiser ou minimiser) sous des contraintes
(équations ou inéquations) linéaires.
En raison de sa pratique et de son utilité, les prérequis en Algèbre Linéaire sont nécessaires,
au préalable, en ce qui les techniques mathématiques de base (équations et inéquations
linéaires, système d’équations et d’inéquations linéaires, Matrice, Méthode de substitution,
Méthode de combinaison linéaire, Méthode de déterminant, Méthode de pivot de Gauss,
Méthode graphique pour les équations à 2 inconnus, …).
Dans le cas de la méthode graphique, chaque équation est représentée par une droite, la
solution est un point (s’il existe) d’intersection entre 2 droites. Réciproquement pour trouver
les coordonnées entre ces 2 droites, on résout le système formé par les équations de ces
droites.
69
1.2. La forme canonique
Où les Xi sont des variables qui influent sur la valeur de Z, et les Ci les poids respectifs de ces
variables modélisant l’importance relative de chacune de ces variables sur la valeur de la
fonction économique. Les contraintes relatives aux variables s’expriment de la façon suivante
Si lors de la modélisation des contraintes de l’autre type sont apparues, il suffit de multiplier
par −1 les deux membres pour renverser l’opérateur.
...
Am.1 X 1 + Am.2 X 2 + . . . + Am.n X n Bm
Avec Xi 0i
70
MinZ = C1 X 1 + C2 X 2 + ... + CnXn
A1.1 X 1 + A1.2 X 2 + . . . + A1.n X n B1
A X + A X + . . . + A X B
s / c 2.1 1 2.2 2 2.n n 2
...
Am.1 X 1 + Am.2 X 2 + . . . + Am.n X n Bm
Avec Xi 0i
Nous allons dans un premier temps nous intéresser au problème de type maximisation
Exemple 1 :
Une entreprise fabrique deux types de ceintures : A et B. Le type A est de meilleure qualité
que le type B. Le bénéfice net est 200fcfa pour le type A et 150fcfa pour le type B. Le temps
de fabrication pour le type A est deux fois le temps de fabrication pour le type B et si toutes
les ceintures étaient du type B l’entreprise pourrait en fabriquer 1000 par jour.
L’approvisionnement en cuir est suffisant pour 800 ceintures par jour (type A ou B). Enfin
400 boucles de type A et 700 boucles du type B sont disponibles chaque jour. Quels sont les
nombres respectifs de ceintures des deux types à fabriquer chaque jour de manière
à maximiser le bénéfice total de l’entreprise ?
71
2x + y ≤ 800 (contrainte liée au temps de fabrication)
Avec x ≥ 0 et y ≥ 0, les contraintes de non négativité
Dans le plan, les systèmes linéaires à deux inconnues se résolvent graphiquement. Soit un
système d’inéquations à 2 inconnus, à chaque inéquation correspond un demi-plan (ensemble
solution) borné par la droite (D) d’équation associée à l’inéquation. Pour déterminer le demi
plan solution, on trace la droite (D) d’équation ax + by + c = 0, puis en choisissant un point
quelconque A du plan n’appartenant pas à la droite (D), on détermine le signe de l’expression
(ax + by + c), (par exemple l’origine du repère quand cela est possible) et on en déduit le plan
solution cherché.
L’ensemble solution du système sera l’intersection des m demi-plan solutions. Cette méthode
n'est applicable que dans le cas où il n'y a que deux variables. Son avantage est de pouvoir
comprendre ce que fait la méthode générale du Simplexe, sans entrer dans la technique
purement mathématique.
Les solutions, si elles existent appartiennent donc à cet ensemble appelé région des solutions
admissibles. D’où l’illustration ci-contre :
72
Il s'agit donc de chercher à l'intérieur de ce domaine, le couple (x1 , x2) maximisant la
fonction objectif. Or l'équation 1200 x1 + 1000 x2 = z0 est représentée par une droite de pente
constante (-1,2) dont tous les points (x1 , x2) fournissent la même valeur z0 pour la fonction
économique. En particulier, la droite 1200 x1 + 1000 x2 = 0 passe par l'origine et donne une
valeur nulle à la fonction économique. Pour augmenter la valeur de z0 et donc la fonction
économique, il suffit d'éloigner de l'origine (dans le quart de plan x1 ≥ 0 ; x2 ≥ 0) la droite de
pente -1,2 Pour respecter les contraintes, cette droite sera déplacée jusqu'à l'extrême limite où
il n'y aura plus qu'un point d'intersection (éventuellement un segment) avec la région des
solutions admissibles.
73
des solutions admissibles. La solution se trouvant sur les deux droites d'équation
3 x1 + 4 x2 = 160
6 x1 + 3 x2 = 180
la résolution de ce système conduit à la solution x1 =16 , x2 = 28, d'où z = 47200.
Remarques : Très simple à utiliser cette méthode atteint vite ses limites pour des problèmes
correspondant aux cas réels. En dehors des cas d’école, il est rare de pouvoir construire un
modèle avec seulement deux variables. Et quand ce n’est pas le cas, il faut alors utiliser
d’autres méthodes. Le chapitre suivant présente une des méthodes les plus utilisées, car très
performante : le simplexe.
La méthode du simplexe a été mise au point par Georges Dantzig dans les années 1950. Elle
permet dans une très grande majorité des cas d’atteindre l’optimum du problème très
rapidement. Son principe consiste à parcourir un chemin sur les frontières du domaine des
solutions admissibles, en s’approchant à chaque étape un peu plus de l’optimum.
L’heuristique essaye de trouver parmi tous les chemins un qui soit très court.
Par exemple avec une nouvelle variable e1, on peut transformer l’inégalité A1.1 × X1 + A1.2
× X2 + . . . + A1.n × Xn ≤ B1 pour la faire devenir l’égalité A1.1 × X1 + A1.2 × X2 + . . . +
A1.n × Xn + e1 = B1. Avec les m variables d’écart, notre problème devient :
74
MaxZ = C1 X 1 + C2 X 2 + ... + CnXn
A1.1 X 1 + A1.2 X 2 + . . . + A1.n X n + e1 = B1
A X + A X + . . . + A X + e = B
s / c 2.1 1 2.2 2 2.n n 2 2
; Avec Xi 0i, ei 0i
...
Am.1 X 1 + Am.2 X 2 + . . . + Am.n X n + em = Bm
Ceci est la forme standard du problème.
Exemple 3 :
Forme canonique Forme standard
MaxZ = 200 x + 150 y MaxZ = 200 x + 150 y
x 400 x + e1 = 400
y + e2 = 700
y 700
s /c s /c
x + y 800 x + y + e3 = 800
2 x + y 1000 2 x + y + e4 = 1000
x0; y0 x 0 ; y 0; e1 0 ; e2 0 ; e3 0 ; e4 0
plus loin).
Donc le tableau obtenu est le suivant :
X1 X2 … Xn E1 E2 … Em Somme
E1 A1.1 A1.2 … A1.n 1 0 0 0 B1
E2 A2.1 A2.2 … A2.n 0 1 0 0 B2
.
.
Em Am.1 Am.2 … Am,n 0 0 0 1 Bm
j C1 C2 … Cn 0 0 0 0 0
75
Avant d’aller plus loin, décryptons le sens de ce tableau. Tout le long de l’algorithme du
simplexe ce tableau va donner des solutions (de plus en plus optimales pour la valeur de Z) du
système d’équations de la forme standard. Dans cette solution toutes les variables hors base
ont une valeur nulle. La valeur des variables en base se lit dans la dernière colonne (la
colonne « Somme »). Enfin le j de la colonne «Somme» donne l’opposé de la valeur de Z.
Donc ce premier tableau du simplexe donne la solution de départ qui va servir à amorcer
l’algorithme du simplexe : toutes les variables Xi sont à 0, toutes les variables d’écart Ei
valent le Bi de leur ligne d’équation et la valeur de Z est 0. Sur ce tableau la dernière ligne
j donne les gains (ou les coûts, si la valeur est négative) marginaux des variables de leur
colonne.
Autrement dit, elle permet de savoir de combien va augmenter (ou diminuer si la valeur est
négative) la valeur de Z si on augmente de 1 la variable de cette colonne. Par exemple, si on
arrive à trouver une solution admissible qui augmente de 1 la valeur de X2, alors la valeur de
Z va augmenter de C2.
V dans la base
e1 1 1 1 0 0 900
e2 1 2 0 1 0 1200
e3 7 3 0 0 1 7000
Z 1000 1200 0 0 0 0
76
x + y + e1 = 900
x + 2 y + e = 1200
2
F. standard : 7 x + 3 y + e3 = 7000
MaxZ = 1000 x + 1200 y
x 0 y 0 ei 0
Elle prend pour point de départ la solution pour laquelle la fonction économique a pour valeur
0. A chaque étape, on cherche à améliorer la solution de départ afin d’atteindre l’optimum :
Sommet O, : x = 0, y = 0 , Z = 0 e1 = 900 , e2 = 1200, e3 = 7000. Cette solution est appelée
solution de base. Les variables non nulles (e1, e2, e3) sont dites variables dans la base. Les
variables nulles (x et y) sont dites variables hors base.
1ère itération
(1) Sélection de la variable entrante.
On exprime les variables principales (variables de la base) en fonction des variables hors base.
On a y ≠ 0 et x = 0 (variable hors base), les variables e1, e2, e3 s’écrivent :
e1=900 - y ≥ 0 y ≤ 900
e2=1200 - 2y ≥ 0 y ≤ 1200/2= 600
e3=7000 -3y ≥ 0 y ≤ 7000/3
La valeur maximale de y est : Y = Min (900,600, 7000/3) = 600. La variable d’écart e2
devient : e2 =1200-2 × 600 = 0. Le choix de y comme variable dans la base a annulé la variable
d’écart e2 qui prend alors la place de y comme variable hors base. On a, à l’issu de la 1ère
itération :
77
- Variables hors base : x = 0, e2 = 0
- Variables dans la base : y = 600, e1= 900-600 = 300, e3=7000-3 ˟ 600=5200,
Z=1200 ˟ 600 =720000
Le critère de sortie est donc : la variable dans base correspondant au rapport le plus
petit positif sera sélectionnée (l’infini et un rapport négatif ne sont pris en compte)
2ème itération
On veut exprimer des nouvelles variables dans la base e1, y et e3 et la fonction économique en
x e
fonction des variables hors base, x et e2. On avait en b) e2 = 1200 − x − 2 y y = 600 − − 2 ,
2 2
en remplaçant cette valeur de la variable entrante on a :
x e2 x e2 3x 3e2 11x 3e2
e1 = 300 − − ; y = 600 − + ; e3 = 7000 − 7 x − 100 + + = 5200 − − ;
2 2 2 2 2 2 2 2
x e2
Z = 1000 x + 1200(600 − − ) , Z = 720000 + 400x - 600e2 Après la première itération, le
2 2
programme devient :
x e
+ e1 − 2 = 300
2 2
x e
+ y + 2 = 600
2 2
11x 3e2
+ + e3 = 5200
2 2
400 x − 600e2 = −720.000
a) Sélection de la variable entrante. : On n’a pas intérêt à faire rentrer la variable e2 qui
diminuera la fonction économique de 600. C’est donc la variable x rentre dans la base d’après
le critère de DANTZIG.
b) Sélection de la variable sortante. : x entrant dans la base, e2, étant hors base, reste égale à 0.
On a alors :
x
e1= 300 - ≥0 x ≤ 600
2
x
y = 600 - ≥0 x ≤ 1200
2
11x
e3 = 5000- ≥0 x ≤ 10400/11
2
La valeur maximale de x est : x = Min (600, 1200, 945) = 600. La variable d’écart e1 = 300-
600
= 0. Cette seconde itération nous a permis d’atteindre un autre sommet :
2
78
- Les variables hors base sont : e1 = 0, e2 = 0
600
- Les variables dans la base sont : x= 600, y = 600 - = 300, e3 = 5200 -11× 300
2
=1900
- La fonction économique a pour valeur : Z =720000 +400 × 600 = 960000
Les variables dans la base x, y et e3 et les variables hors base son e1 et e2. Tous les coefficients
des variables hors base de la fonction économique sont négatifs. Si on fait rentrer ces valeurs
dans la base, on diminuera la valeur de la fonction économique. La solution trouvée est donc
optimale : Z= 960000 -800 e1- 200 e2
Conclusion
Dans le cadre de la recherche d’un maximum, tous les coefficients de la fonction économique
sont négatifs ou nuls. La solution trouvée est optimale. Dans le cas de notre exemple à
l’optimum on a : x= 600, y =3 00, e3=1900, e1=e2=0 et Z = 960000
Et le programme devient :
x + 2e1 − e2 = 600
y − e1 + e2 = 300
e3 − 11e1 + 4e2 = 1900
−800e1 − 200e2 = −960.000
Ainsi, les itérations liées à la résolution du programme standard initial se présente comme
suit :
1ère itération
V Hors base X Y e1 e2 e3 R test
V dans la base
e1 1 1 1 0 0 900 900/1=900
e2 1 2 0 1 0 1200 1200/2=600→
e3 7 3 0 0 1 7000 7000/3=2333.3
Z 1000 1200 0 0 0 0
79
A partir de ce test, on choisira le plus petit élément afin d’indiquer le critère de sortie (ici
c’est la ligne e2 en jaune qui représente la ligne pivot qui permettra à travers la méthode du
pivot de Gauss de modifier les autres lignes dans le processus d’itération avenir). D’où le
tableau ci-dessous.
2ème itération
VHB X ° e1 e2 e3 R test
VB
e1 ½ 0 1 -1/2 0 300 300/0.5=600→
Y ½ 1 0 1/2 0 600 600/0.5=1200
e3 11/2 0 0 -3/2 1 5200 5200/5.5=945.45
Z 400 0 0 -600 0 -720000
Processus d’itération est à reproduire tant que les coefficients de lignes Z ne sont pas tous
nuls ou inférieurs à zéro. Alors, le critère de sélection de la variable entrant dans la base:
On sélectionne la variable HB ayant le plus grand coefficient positif dans la ligne Z. Ici
c’est 400 (colonne en bleu), le test indique que l’on choisira le critère de sortie e1 (x rentre
dans la base). D’où le tableau ci-dessous.
Solution
VHB ° ° e1 e2 e3 R
VB
x 1 0 2 -1 0 600
y 0 1 -1 1 0 300
e3 0 0 -11 4 1 1900
Z 0 0 -800 -200 0 -960000
Nous constatons que les éléments de la ligne Z (en jaune) sont tous nuls ou négatifs, le
processus d’itération s’arrête. Les solutions du programme se lisent sur la dernière colonne
(R). Donc x = 600 et y = 300. Nous avons donc ici atteint la solution optimale.
Remarques importantes:
(1) S'il existe une variable HB ayant un coefficient positif dans la ligne Z et telle que tous
les coefficients correspondants dans le tableau soient nuls ou négatifs, alors la solution
est infinie ;
(2) Si, à la fin des itérations, une variable est HB avec un coefficient nul dans la ligne Z,
alors on a une arête (plan,...) optimale. Les autres sommets solutions sont obtenus en
faisant rentrer cette variable dans la base.
80
1.6. Le programme DUAL
A tout programme linéaire appelé PRIMAL correspond un programme linéaire appelé DUAL
obtenu de la manière suivante:
PRIMAL DUAL
M CONTRAINTES D'INFÉRIORITÉ N contraintes de supériorité
N VARIABLES D'ACTIVITÉ n variables d'écart
M VARIABLES D'ÉCART m variables d'activité
ÉCRITURE EN LIGNE écriture en colonne
PRIMAL DUAL
3 x1 + 4 x2 ≤ 160 3 y1 + 6 y2 ≥ 1200
6 x1 + 3 x2 ≤ 180 4 y1 + 3 y2 ≥ 1000
Max z = 1200 x1 + 1000 x2 Min w = 160 y1 + 180 y2
x1≥ 0 ; x2 ≥ 0 y1 ≥ 0 ; y2 ≥ 0
A l'optimum, le primal et le dual sont liés par les règles suivantes: (1) Les fonctions
objectifs z et w ont la même valeur optimale. (2) La valeur marginale d'une variable dans un
programme est égale à l'opposé de la valeur optimale de la variable associée dans l'autre
programme et réciproquement. Exemple après itération, nous avons les solutions suivantes :
PRIMAL z = 47200 x1 x2 e1 e2
valeurs optimales 16 28 0 0
valeurs marginales 0 0 -160 -120
DUAL w = 47200 u1 u2 y1 y2
valeurs optimales 0 0 160 120
valeurs marginales -16 -28 0 0
81
2.1. Résolution d’un programme linéaire avec Excel
La résolution d'un programme linéaire avec Excel s'effectue en deux phases. Une première
phase consiste à écrire le programme linéaire dans le chiffrier en assurant qu'il existe une
cellule pour chaque variable, la fonction-objectif ainsi que les membres de gauche et de droite
de toutes les contraintes. La deuxième phase consiste à résoudre le programme linéaire avec le
solveur d'Excel. Pour ce faire, l’exemple 6 suivant sera utilisé :
Il est fort probable que les commandes du solveur n’apparaissent pas encore dans le menu
Outils. Afin d’effectuer une programmation linéaire sous Excel, il est nécessaire, au
préalable, d’installer les macros complémentaires du solveur, qui est également utile pour
résoudre les programmes liés à la logistique (Problème de transports, problème d’affectation,
problème de la pétrolière, Problème de fabrication d'horaire pour le centre d'appels, …).
82
➢ Pour installer le solveur :
1 Cliquez sur la section "Données"
2 Cliquez avec le bouton droit de la souris sur une section, i.e. sur la barre d'outils
apparaissant sous Données;
3 Sélectionnez "Personnaliser la barre d'outils Accès Rapide";
4 Allez dans "Compléments" et sélectionnez le "Complément Solveur";
5 Une section "Analyse" contenant le "Solveur" devrait alors apparaître dans la
section "Données".
➢ Pour résoudre le problème avec le solveur :
1 Cliquez sur la section "Données";
2 Cliquez sur l'outil "Solveur" dans la section "Analyse";
3 La fenêtre de l'outil solveur apparaît.
Il faut alors indiquer au Solveur dans quelles cellules se trouvent vos variables et votre
fonction objectif (valeur cible). Il faut également indiquer s'il s'agit d'une minimisation ou
d'une maximisation. Finalement, il faut entrer toutes vos contraintes (i.e. "ajouter une
contrainte"). Pour l'ajout des contraintes, une fenêtre apparaît. Vous devez alors indiquer la
cellule où se trouve le membre de gauche, choisir une inégalité et indiquer la cellule où se
trouve le membre de droite. En appuyant sur le bouton "Options", on peut par la suite indiquer
s'il s'agit d'un programme linéaire ou non linéaire.
83
(1)Les variables sont les quantités respectives des différents investissements (cellules jaunes).
(2) Les contraintes sont les valeurs imposées dans la donnée (cellules rouges). (3) La cellule
cible est celle contenant la formule exprimant la valeur à optimiser (cellules bleues).
Deuxième étape : Spécifications de la cellule cible. Dans la zone Cellule cible à définir,
tapez la référence de la cellule que vous voulez minimiser, maximiser (c’est à dire la fonction
économique).
(1)Si vous désirez maximiser la cellule cible, choisissez le bouton Max. (2) Si vous désirez
minimiser la cellule cible, choisissez le bouton Min. (3) Si vous désirez que la cellule cible se
rapproche d'une valeur donnée, choisissez le bouton Valeur et indique la valeur souhaitée
dans la zone à droite du bouton.
Remarques : • Allez plus vite en cliquant directement sur la cellule à spécifier plutôt que de
taper sa référence au clavier. • La cellule cible doit contenir une formule dépendant
directement ou indirectement des cellules variables spécifiées dans la zone Cellules variables.
84
Troisième étape : Spécifications des cellules variables. Tapez dans la zone Cellule variables
les références des cellules devant être modifiées par le solveur jusqu'à ce que les contraintes
du problème soient respectées et que la cellule cible atteigne le résultat recherché.
Remarques :
• Allez plus vite en cliquant-glissant directement sur les cellules à spécifier plutôt que de
taper leurs références au clavier.
• Il est probable que le solveur vous propose automatiquement les cellules variables en
fonction de la cellule cible. Contrôlez que sa proposition n’est pas trop exotique.
• Vous pouvez spécifier jusqu'à 200 cellules variables.
• Dans le programme initial, on définit les cellules variables par des zéros.
Quatrième étape : Spécifications des contraintes
A l'aide des boutons Ajouter, Modifier et Supprimer de la boîte de dialogue, établissez votre
liste de contraintes dans la zone Contraintes.
Remarques : • Après avoir cliqué dans chaque case à compléter, il suffit de cliquer dans les
cellules correspondantes directement sur la feuille Excel. Puis sur la touche pour
confirmer • Une contrainte peut être une limité inférieurement (≤), supérieurement (≥) ou
limité aux nombres entiers (opérateur ent). • La cellule à laquelle l'étiquette Cellule fait
référence contient habituellement une formule qui dépend des cellules variables. • Le solveur
gère jusqu'à 200 contraintes.
85
Cinquième étape : Les options du solveur
86
Que faire des résultats du solveur : (1) Garder la solution trouvée par le solveur ou rétablir
les valeurs d'origine dans votre feuille de calcul. (2) Créer un des rapports intégrés du solveur
Septième étape : Rapport des réponses. Au bas de l’écran, vous pouvez obtenir le rapport
des réponses en sélectionnant la feuille correspondante:
Ce rapport donne l'évolution des cellules variables et de la cellule cible. On remarque donc
bien qu'il y a eu une maximisation du bénéfice.
87
Le rapport rappelle les différentes valeurs des contraintes, leurs formules, et dans quelle
mesure elles ont été respectées.
Menu des
Outils
Commandes
pour résoudre
les PL par les
tableaux
Commandes
pour résoudre
par le
graphique
88
Max Z = 10x1 + 15x2 + 25x3
sous les contraintes :
1x1 + 2x2 + 4x3 <= 20000
1x1 + 1x2 + 3x3 <= 16000
3x1 + 5x2 + 3x3 48000
x1 , x2 , x3 >= 0
Etant donné que nous avons trois variables d’activité, nous sommes obligés de résoudre par la
méthode du simplexe. Pour cela nous allons saisir les données dans l’interface « simplexe ».
Ainsi, cliquer sur cette commande et vous obtenez l’image ci-contre :
Pour indiquer
- Supérieur ou égal ≥
- Inférieur ou égal≤
Saisir le nombre de
contraintes techniques
(Les équations)
Saisir le nombre de
variables d’activité
Dans notre exemple, nous cliquons sur la « maximisation », puis nous cliquons sur
« inéquations de type <= », en suite nous saisissons le chiffre (3) pour le nombre de
contraintes de même pour le nombre de variables, car notre programme contient 3 contraintes
(inéquations) et 3 variables inconnues (x1, x2, x3). D’où :
89
Ensuite cliquer sur « Suivant » afin d’obtenir l’interface qui nous permettra de saisir la
fonction économique, ainsi que les différentes contraintes du programme linéaire. La touche
« Suivant » permet d’accéder l’interface suivante :
Saisir la fonction
économique
Saisir les
contraintes de
production
NB : le logiciel ne tient pas compte des majuscules, et la saisir des noms des variables se fait
dans l’ordre des lettres de l’alphabet. Donc, ici : x = x1, y = x2, z = x3. En outre, ne pas
espacer les éléments saisis, ne pas intégrer le signe de la multiplication entre les coefficients
et les variables. Cliquer sur les fenêtres pour saisir les données.
90
Une fois ce tableau obtenu, cliquer sur « Suivant » ensuite sur « résolution », puis cliquer sur
« itération suivante » de façon continue afin de générer les résultats du programme linéaire.
Le logiciel indique
la fin des itérations
Le logiciel vous
propose une
solution optimale
du PL
Cliquer sur
historique pour
visualiser toutes
les itérations : de
la forme
canonique à la
solution finale
91
Il est également
possible de
visualiser la
version
imprimante
Nous partirons d’un exemple pour exposer la méthode puis nous généraliserons le principe.
Exemple 1:
92
On note :
- ai la quantité disponible à l’origine i ;
- bj la quantité demandée par la destination j ;
Remarquons ici l’offre est égale à la demande (O=D= 56)
Toute solution du problème est constituée par un ensemble de nombres positifs ou nuls x ij
représentant la quantité effectivement transportée de l’origine i vers la destination j et tels
que :
m n
(1) ai = b j
i =1 j =1
(en supposant que l’offre est égale à la demande)
x
j =1
ij = ai i=1, 2,……..,m.
x
i =1
ij = bi j=1, 2, …….., n.
m n
(2) Minimiser Z= c x
i =1 j =1
ij ij ai , bj , cij sont des nombres positifs
Nous avons affaire à une programmation linéaire particulière qu’il n’est pas intéressant de
résoudre par l’algorithme du simplexe.
Généralisation :
Soit m origines disposant des qi ( i=1,2,3, …., m ) et n destinations demandant les quantités
qj ( j=1,2,3,… ,n ) . Connaissant le coût de transport de l’origine i vers la destination j noté cij
, comment organiser ce transport au moindre coût ?
Entre les m origines et les n destinations constituant un graphe biparti on peut tracer m * n
arcs qui symbolisent les chemins que l’on peut employer pour transporter des marchandises
de chaque origine vers chaque destination.
◼ Si l’offre est supérieure à la demande on crée une destination fictive vers laquelle
tous les coûts de transport sont nuls puisqu’elles représentent en fait des
marchandises qui vont restées sur leurs lieux d’origine.
93
◼ Si la demande est supérieure à l’offre, on crée une origine fictive, à partir de
laquelle les coûts de transport sont arbitrairement élevés pour ne pas troubler le
processus de minimisation du coût des marchandises effectivement transportées.
Les capacités des arcs sont supposés illimités, mais chaque arc a un coût unitaire de transport
Ci,j . Soit xi,j les quantités transportées de l’origine i à la destination j. On cherche Min
Somme xi,j*ci,j . En respectant les contraintes Somme (i - origines) xij = Oi , Somme (j -
destinations) xi,j = Dj . En Programmation linéaire, comme nous l’avons susmentionné
précédemment : il s’agit d’une optimisation d’une fonction linéaire des xij sous des contraintes
également linéaires.
Définitions
1) Solution admissible : une solution « admissible » est un ensemble de valeurs xij qui
satisfait aux contraintes sans nécessairement minimiser le coût de transport (2).
2) Une solution de base d’un programme de transport est une solution admissible
comportant (m+n-1) xij positifs dont le graphe ne comporte pas de cycle.
3) Une solution de base comporte donc mn-(m+n-1) xij nuls, c’est-à-dire (m-1)(n-1)
zéros ; le graphe d’une solution de base comporte (m+n) sommets et (m+n-1) arcs.
De plus il est sans cycle ; il s’agit donc d’un arbre.
La résolution des programmes de transport s’articule en deux phases :
Commençons par indiquer deux méthodes permettant d’obtenir une solution de base ou s’y
ramenant.
Il s’agit d’une méthode rapide sans fondement théorique qui consiste à transporter de l’origine
I vers la destination 1 (coin nord-ouest du tableau) la quantité maximale possible c’est-à-dire
de a1 et b1, soit ici min {10 ; 11} =10, ce qui épuise l’origine I et il reste à pourvoir la
destination 1 de (11-10)=1 à partir de l’origine II. Le reste du stock (16-1)=15 de l’origine II
épuise la demande (de 14 unités) de 2 et fourni 1 unité à la destination 3. Les disponibilités
de l’origine III épuisent le reste de la destination 3 (12-1)=11 et la demande de la destination
4. Nous obtenons le tableau suivant :
94
1 2 3 4 ai
I 10 0 0 0 10
II 1 14 1 0 16
III 0 0 11 19 30
bj 11 14 12 19 56
Elle consiste à calculer pour chaque rangée (colonne ou ligne) la différence entre le coût le
plus petit et celui immédiatement supérieur ( ou égal). On recherche la différence maximale
parmi les lignes et les colonnes et on affecte à la liaison de plus petit coût dans la rangée
correspondant à , soit x*(i* ; j*), la quantité la plus élevée possible xi*j*=min{ai* ; bj*). On
épuise ainsi une disponibilité, une demande ou les deux en même temps. On réduit le
problème en supprimant la rangée ou les rangées (ligne ou colonne) épuisées et on reprend le
processus avec le problème réduit ainsi de suite.
Premier pas :
i 1 2 3 4 ai L
j
I 7 8 10 19 10 1
II 3 7 5 11 16 2
III 9 5 5 18 30 4
bj 11 14 12 19 56
C 4 2 5 7
95
Deuxième pas :
i 1 2 3 4 ai L
j
I 7 8 10 19 10 1
III 9 5 5 18 30 4
bj 11 14 12 3 40
C 2 3 5 1
La différence maximale III = 9 – 5 = 4, est relative à la ligne III dans laquelle le coût le
plus faible est CIII 2 = 5, on affecte à la liaison III-2 la quantité xIII 2 = min (aIII , b2 ) = min
(14, 18 ) =14. Ce qui a pour effet d’épuiser la destination 2 qu’on va supprimer du tableau
suivant. La disponibilité résiduelle de l’origine III est aIII : aIII = 18-14 = 4.
Quatrième étape
i 1 4 ai L
j
I 7 19 10 12
III 9 18 4 9
bj 11 3 14
C 2 1
96
Cinquième étape
i 1 4 ai L
j
III 9 18 4 9
bj 1 3 4
Première présentation :
Principe :
1) On calcule ensuite les coûts marginaux ij = cij – ( Vjj - Ui ), pour les liaisons non
affectées sans devoir recourir à des chaînes de substitution.
2) A) si tous les ij sont positifs ou nuls, l’optimum est atteint et la solution cherchée
est donnée par les quantités xij trouvées.
B) Si tous les ij ne sont pas positifs ou nuls, on recherche la chaîne de substitution
U associé à ij négatif, qui permet de réaliser le transport auquel il correspond. On
cherche ensuite la quantité maximale déplaçable.
97
Soit u- l’ensemble des arcs du cycle représentant les liaisons sur lequel le transport est
diminué et Soit u+ l’ensemble des arcs du cycle représentant les liaisons sur lequel le
transport est augmenté : calculer : q = min{ xij } tel que (i,j) u-
Substituer la quantité q le long du cycle pour obtenir une nouvelle
Solution Xij : = xij – q , pour si (i,j) u-
Xij : = xij + q , pour si (i,j) u+
xij inchangés pour (i,j) u ; au besoin ramener cette nouvelle solution de base , passer à (1)
Privilégions maintenant la solution ne conduisant pas directement à l’optimum, ce qui nous
donne la possibilité d’exposer, concrètement la deuxième phase de résolution des problèmes
de transport.
Exemple 2
j 1 2 3 4 a i= qi
i disponible
I 7 8 5 19 4
II 3 7 2 11 6
III 9 5 10 18 3
b j= q. demandée 2 2 6 3 13
Voici le résumé de la solution obtenue par la méthode de B.H et le graphe associé :
1 2 3 4 Ui
I 0 0 4 0 -3
II 2 0 1 3 0
III 0 2 1 0 -8
Vj 7 -3 2 11
Ainsi pour la solution de B.H, on a figuré dans le tableau ci- dessous les valeurs des ij (
liaisons non affectées) . Les substitutions associées ij positifs conduisent à des solution plus
chères.
1 2 3 4
I +1 +6 * +5
II * +10 * *
III -2 * * -1
Comme III1 =-2, on peut effectuer une substitution : le cycle associé est III-1-II-3-III (on le
trouve en ajoutant III-1 à l’arbre associé (ou encore puisqu’il est de longueur 4 directement
sur le tableau de xij ). La quantité maximale q que l’on peut substituer le long de ce cycle est
98
fixée par le fait que xII1 , xIII1 doivent rester positifs ou nuls dans la solution : ce sont en effet
sur ces liaisons qu’on diminue les quantités transportées, ici q = 1.
1 2 3 4
I 4
II 1 2 3
III 1 2
On obtient ainsi une solution où tous les ij sont positif donc l’optimum est atteint. Cet
optimum est unique car aucun ij n’est nul, sinon on peut déduire par des substitutions pour
lesquelles ij = 0, des solutions équivalentes.
Deuxième présentation :
Nous avons vu que pour reconnaître qu’une solution de base obtenue par une procédure
quelconque est pas optimale, Il faut calculer les coûts marginaux relatifs aux relations
inutilisées. Nous avons eu recours au calcul des différences de potentiel sur l’arbre
représentatif de la solution de base en utilisant la formule : xy = Ux + cxy - Vy.
Mais il n’est pas nécessaire de tracer le graphe, lui même, on peut opérer directement sur la
matrice des coûts en ayant soin de diviser chaque case en 2 parties l’une recevant (de façon
définitive) le coût de transport de la relation correspondante, l’autre la quantité affectée dans
une solution déterminée.
On choisit alors la relation affectée ayant le coût le plus grand ( ici II-4) et l’on pose UII = 0
(origine des potentiels) face à la ligne II sur la droite de la matrice : on a alors V1 =0+3=3 et
V4 =0+11=11et par suite, l’inscription du potentiel , 3 et 11, respectivement sous la colonne 1
et 4 au bas de la matrice ainsi de suite.
99
Pour calculer le coût marginal d’une relation inoccupé, on la repère d’abord sur le tableau
Remarque importante
- S’il y avait plusieurs négatifs on calculerait le gain relatif à chacune des substitutions
possibles et l’on choisirait de réaliser celle qui apporte le gain total le plus grand.
- Parfois, plusieurs substitutions sont possibles simultanément et rien n’empêche de les
réaliser ensemble, il suffit qu’elles se traduisent par des chaînes de substitution
indépendantes.
Exemple 2
i 1 2 3 4 a i= qi
j disponible
I 7 8 5 19 4
II 3 7 2 11 6
III 9 5 10 18 3
b j= q. demandée 2 2 6 3 13
100
Chapitre 7 : Exercices
Exercice 1
Exercice 2
Considérons un graphe G = (X , U) dont les arêtes sont évaluées par des coûts ; on veut
trouver dans ce graphe qui représente le projet d’un réseau de distribution. Déterminer l’arbre
de valeur minimale entre C et S.
A
I
E
B H
C
S
D
F
G K
Exercice 3
Une armée en mission devrait rejoindre une unité située au point 12 de la carte ci-dessous qui
comporte les liaisons entre les villes 1 à 12 avec leurs ‘’ chances de réussite.’’, ces chances
étaient exprimées par un nombre compris entre 1 et 10 ( mesurant le nombre de chances sur
101
dix succès ). Ignorant le calcul des probabilités, le commandant avait simplement choisi son
itinéraire en maximisant la somme globe des chances.
1) Déterminer l’itinéraire emprunté par l’armée.
2) Quelle était alors sous l’hypothèse d’indépendance des variables aléatoires ‘’ chances
de succès ‘’ la probabilité que cette armée réussisse ?
3) Quel aurait été son itinéraire s’il avait connu les principe du calcul des probabilités
9 4 8 5
2 4 6 8 10
6
9
9
1 5 12
8 6 3 9 2 3
8
6
8
3 5 7 9 11
9 2 5 4
Exercice 4
A C
G
B
D
F E
1) Le dictionnaire des suivants et le dictionnaire des précédents.
2) Déterminer le niveau de chaque sommet.
3) Présenter le graphe sous une forme « plus lisible », les sommets étant disposés selon
leur niveau respectif.
Exercice 5
Pour aller de la ville A à la ville I , on peut prendre plusieurs itinéraires de montants (coûts)
variables. A partir de la matrice ci-dessus, représenter le graphe valué correspondant aux
différents trajets.
102
Quel itinéraire doit-on prendre pour minimiser montant du trajet ou pour le maximiser ?
arrivée
A B C D E F G H I
A 18 30
B 26 37
C 47 39
D
E 44 60 64
F 90
G 75
H 55 59
I
Exercice 6
Déterminer le chemin de valeur maximale entre S et K.
G 75 H
A 25
10 10 20
15 40 10
25
15 25 F 25 I 75
S K
B
20 20 15 20
20 40 60
14 15
C
E
J
15
12 10
103
Exercice 7
Déterminer le chemin de valeur maximale entre S et O.
20 45
0 0
10
C 0 J 25 L
25
0 0
20 15 35 10
0 0 0 10 0
B 15 0
10 D I 35 M 60
0
0 0 0
O
10 20 25
10 0 0
15 0 80
0 H
0 E 10
0
35 N
S
25 30 0
40 15
0 0 0
15 0 20
60 0
A 30 20 G
F
0
Exercice 8
La construction d’un réseau routier entre les villes I et XII comme l’indique le dictionnaire des
suivants, passe par les villes (points) intermédiaires de passage pouvant être classés en
groupes ou « phases » et les arcs du graphe ayant été valués par l’indication des coûts
totaux (coûts de réalisation + coûts sociaux etc.).
Déterminer le (ou les) chemin critique du graphe associé
104
Tableau n° 11 (suite tableau n°2)
Ui 6-7 6-9 6-10 7-8 7-10 7-11 8-11 9-10 9-12 10-11 10-12 11-12
Vi 25 18 19 28 24 22 36 21 25 28 31 33
Exercice 9
L’organisation des examens de la première session demande la réalisation d’un certain
nombre de tâches. Le tableau suivant énumère les différentes tâches, leurs durées ainsi que
leur relation d’antériorité.
Exercice 10
La société ANGO - IMPORT pour s’installer à OYEM, réalise une étude d’implantation. Un
certain nombre de tâches doivent être réalisées qui partent de la recherche des financements à
l’ouverture de ladite société. Le tableau suivant énumère les différentes tâches, leurs durées
ainsi que leur relation d’antériorité.
105
Désignation de la Tâche i Durée en Jours Tâches Préalable
A 60 -
B 40 -
C 10 A, B
D 12 A, B
E 25 B
F 25 A
G 6 A
H 6 A, F
I 4 A, F
J 8 A,B, E, F, G, H, J
K 8 A, B, D
L 2 A, B, D, K
M 10 A, B, D
N 2 Toutes les autres tâches
106
Exercice 12
Soit trois origines I , II et III disposant de 30,56,34 tonnes de marchandises et quatre
destinations 1 ; 2 ; 3 ; 4, demandant 21 ; 24 ; 26 ; 39 tonnes de celles-ci respectivement.
Connaissant le coût de transport de l’origine i vers la destination j noté c i j , comment
organiser ce transport au moindre coût ? Voici la matrice des coûts de transport.
i 1 2 3 4
j
I 7 8 10 19
II 3 7 5 11
III 9 5 5 18
Exercice 13
Soient A,B,C,D,E,F de jeunes programmeurs auxquels on a l’intention de confier des codes
destinés à traiter les problèmes a, b, c, d, e et f. Leurs compétences étant diverses, on a noté
sur 100 leur aptitude à entreprendre tel ou tel travail ce qui est donné dans le tableau suivant
A B c d e f
A 86 94 82 84 37 85
B 59 22 56 27 30 75
C 56 19 64 20 20 22
D 54 26 95 75 17 97
E 28 68 45 49 97 19
F 31 24 88 1 17 20
107
F* signifie 10 jours après la fin de F.
A partir de la méthode française déterminer le chemin critique et la durée du projet.
A partir de la méthode PERT, déterminer le réseau associé à ce projet puis calculer les marges (libre et
totale) et battements de chaque étape et donner leurs interprétations pour un cas de votre choix.
Tracer le graphique de Gantt correspondant puis le commenter.
Exercice 15
Calculer le chemin critique, sa valeur, les dates aux plus tôt , les différentes marges.
Comparer la solution par la méthode des potentiels-tâches et la méthode des potentiel-étapes.
Exercice 16
Trois châteaux d’eau A, B et C gérés par un syndicat intercommunal, alimentant quatre
villages D, E, F et G. Le château A bénéficie d’une alimentation et d’une réserve capable de
débiter 55L/s. Le château B peut seulement débiter 35L/s et le château C, 30L/s.
Plusieurs canalisations existent et leur débit en litre/seconde, est mentionné pour chacune. Le
village D aurait besoin d’un débit de 30L/s, le village E, 20L/s, le village F, 30L/s et enfin le
village G, 30L/s. Plusieurs canalisations existent : [ AD : 10L/s ; AE :15L/s ; AG :20L/s ;
BD :20L/s ; BE :25L/s ; BF :25L/s ; CF :20L/s ; CG :15L/s ]. On demande d’établir la
meilleure alimentation possible et de déterminer s’il y a lieu, entre quels points il importe de
construire des canalisations supplémentaires.
108
Exercice 17
Pour aller de la ville A à la ville K, on peut prendre plusieurs itinéraires de montants (coûts)
variables. A partir de la matrice ci-dessus, représenter le graphe value correspondant aux
différents trajets.
Quel itinéraire doit-on prendre pour minimiser montant du trajet?
A B C D E F G H I J K
A 8 10
B 6 7
C 7 9
D 5
E 4 6 6
F 9
G 7
H 5
I 12 10
J 14 12 15
K
Exercice 18
Trois châteaux d’eau A , B, C et D gérés par un syndicat intercommunal, alimentant quatre
villages E, F, G et H. Le château A bénéficie d’une alimentation et d’une réserve capable de
débiter 55L/s. Le château B peut seulement débiter 35L/s et le château C, 30L/s et 45L/s.
Plusieurs canalisations existent et leur débit en litre/seconde, est mentionné pour chacune. Le
village E aurait besoin d’un débit de 40L/s, le village F, 50L/s, le village G, 35L/s et enfin le
village H, 40L/s. Plusieurs canalisations existent : [ AE : 10L/s ; AF :15L/s ; AG :20L/s ;
BE :20L/s ; BF :25L/s ; BH :25L/s ; CF :20L/s ; CG :15L/s : CH :18L/s ; DF :25L/s ;
DH :20L/s ; DG :15L/s ]. On demande d’établir la meilleure alimentation possible et de
déterminer s’il y a lieu, entre quels points il importe de construire des canalisations
supplémentaires.
Exercice 19
Soient A,B,C,D,E,F de jeunes programmeurs auxquels on a l’intention de confier des codes
destinés à traiter les problèmes a, b, c, d, e et f. Leurs diverses compétences à entreprendre tel
ou tel travail sont classées de 1 à 6, ce qui est résumé dans le tableau suivant
A b C d e F
A 6 4 2 4 3 5
B 5 2 6 2 3 5
C 5 1 4 2 2 3
D 1 2 6 5 5 4
E 2 6 4 1 3 5
F 3 4 6 1 1 2
Déterminer les couplages optimaux
109
BIBLIOGRAPHIE
110