Vous êtes sur la page 1sur 55

Année Académique 2018-2019

UNIVERSITE FELIX HOUPHOUËT BOIGNY


- --------------------------
UFR des Sciences Economiques et de Gestion
Ufr des Sciences Economues et de Gestion

COURS DE RECHERCHE OPERATIONNELLE

ECUE 1 : PROGRAMMATION LINEAIRE

NOTES DE COURS

PAR
Dr Yao Silvère KONAN

1
INTRODUCTION
• L’optimisation est une branche de la RO qui utilise les techniques mathématiques
comme la programmation linéaire et non linéaire pour dériver les valeurs pour des
systèmes de variables en vue d’optimiser la performance du système.

1. Origines de la recherche opérationnelle

RO a commencé juste avant la seconde guerre mondiale avec la constitution d’équipes de


chercheurs en vue d’étudier les problèmes stratégiques et tactiques engagées dans les opérations
militaires. L’objectif était de trouver la meilleure allocation des ressources militaires limitées à
travers l’usage de techniques quantitatives
Après la 2GM, plusieurs applications en temps de paix ont émergé, engendrant l’utilisation de
la RO et de la science du management dans plusieurs industries et activités.
2. Nature de la recherche opérationnelle

La recherche opérationnelle implique la recherche dans les différentes opérations et activités


des organisations. Ainsi, ses méthodes sont appliquées aux problèmes qui portent sur la
conduite et la coordination des opérations (activités) au sein d’une organisation. La nature de
l’organisation essentiellement immatérielle et en fait, la recherche opérationnelle a été
appliquée de manière extensive dans divers secteurs tels la manufacture, le transport, la
construction, les télécommunications, la planification financière, la santé, l’armée et les
services publics. Ainsi, le champ d’action de la recherche opérationnelle est très large.
La partie recherche du nom signifie que la recherche opérationnelle utilise une approche qui
ressemble à comment la recherche est conduite dans les disciplines scientifiques établies. Dans
une large mesure, la méthode scientifique est utilisée pour analyser le problème en question.
La recherche opérationnelle porte sur la gestion pratique de l’organisation. De ce fait, elle doit
fournir des conclusions positives et compréhensibles aux décideurs lorsque cela est nécessaire
pour la prise de décision. Elle nécessite de ce fait une approche pluridisciplinaire
Une autre caractéristique de la recherche opérationnelle est qu’elle offre une vue globale en
adoptant une approche organisationnelle. Ainsi, elle essaie de résoudre les conflits d’intérêt
entre les différentes parties de l’organisation en proposant la meilleure option pour l’ensemble
de l’organisation. Ceci ne veut pas dire que la résolution de chaque problème prend en compte
toutes les considérations explicites des différentes entités, mais plutôt que les objectifs
poursuivis doivent être cohérents à ceux de l’organisation dans son ensemble.

Une autre caractéristique est que la recherche opérationnelle recherche la solution optimale du
problème posé à l’organisation. Elle utilise de ce fait une approche de système et la solution est
fournie grâce à l’utilisation intensive des ordinateurs.
3. Impacts de la recherche opérationnelle

2
La RO a un impact majeur sur l’amélioration de l’efficience de plusieurs organisations dans le
monde. La RO a apporté une contribution significative dans l’accroissement de la productivité
des économies des différents pays. Il y a titre d’illustration une douzaine de pays membres de
la Fédération Internationale des Sociétés de Recherche Opérationnelle (IFORS) avec une
société de RO dans chacun des pays membres. Le tableau 1 permet de présenter une meilleure
notion de la large application de la RO avec une liste de ses applications utilisées dans les
différentes organisations et les économies réalisées par ces dernières suite à l’adoption de ces
méthodes.

4. Algorithme / Logiciels de recherche opérationnelle

Tentative de définition
• Ensemble de méthodes (algorithmiques, mathématiques, modélisation) afin de prendre
des décisions optimales ou proches de l’optimum dans des problèmes complexes, qui
traitent de la maximisation d’un profit ou la minimisation d’un coût.

3
• Ensemble de méthodes d'analyse scientifique (maths et info.) des phénomènes
d'organisation qui traite de la maximisation d'un profit ou de la minimisation d'un coût.
La R.O. est un outil d'aide à la décision.

Quelques problèmes de recherche opérationnelle


• Comment aller le plus vite d’Orléans à Berlin, en voiture?

• Comment ordonnancer les tâches d’un projet en fonction de la main d’oeuvre, tout en
minimisant sa durée?

• Comment investir ses 1000 euros d’économie de sorte à maximiser le profit obtenu
après deux ans?

• Trouver un (plus court) chemin entre deux villes : problème du plus court chemin dans
les graphes

• Broadcast de coût minimum dans un réseau : problème des arbres recouvrant de poids
minimum.

• Envoi d’un maximum d’information dans un réseau : problème du flot maximum.

4
II. Vue d’ensemble de la modélisation d’un problème de recherche opérationnelle

1. Détection
d’un problème

3. Elaboration d’un 4. Collecte des


modèle données

2. Formulation du
problème

5. Résolution du
problème

7. Prise de décision et 6. Validation du


implémentation de la modèle
solution

1. La détection d’un problème : Les nécessités de l’action viennent des expériences


vécues ; c’est la phase préscientifique.
2. La formulation du problème : Quel est le vrai problème à résoudre ? Quels critères
permettent de juger si le problème est résolu de façon satisfaisante ?
3. L’élaboration d’un modèle : Il s’agit de représenter les principaux aspects de la réalité
par un ensemble de formules, mathématiques le plus souvent qui mettent en jeu les
variables de décisions concernées et leurs interactions. On lance des hypothèses, on
élabore une théorie, on écrit un modèle. C’est la phase de conceptualisation, de
construction théorique ; en un mot, c’est la phase de modélisation.
4. La collecte des données : Il faut préciser les paramètres du modèle en s’appuyant sur
l’information recueillie dans l’environnement du problème à résoudre. L’élaboration du
modèle s’éclaire à la lanterne des données. Le processus peut requérir plusieurs cycles
impliquant les étapes 3, 4 et 5.
5. La résolution du modèle : C’est la phase où l’on souhaite recourir aux méthodes
appropriées déjà disponible si on a réussi à classer le problème parmi ceux pour lesquels,
on connait déjà une méthode d’approche. Sinon, il faut recourir à la simulation ou
inventer une technique de résolution.
6. La validation du modèle : On confronte les conclusions obtenues du modèle aux
opinions des personnes qui ont suffisamment d’expérience du problème traité pour
apprécier ou critiquer la pertinence de la solution proposée. Si les avis reçus sont
négatifs, on peut alors remettre en cause soit l’écriture du modèle retenu, soit la valeur
de ses paramètres, soit les critères d’appréciation de la solution. On peut aller jusqu’à
remettre en cause l’approche choisie pour résoudre le problème et partant le modèle
retenu.

5
7. La prise de décision et l’implémentation de la solution : Comment implémenter la
solution obtenue ? Doit-on s’arrêter là ? Il y a ici un retour possible vers le modèle initial
pour le modifier ou l’enrichir des observations faites lors de la phase expérimentale.
Une fois les révisions nécessaires apportées, le modèle enrichi permettra de tirer des
conclusions mieux étayées.

Objectif et contenu du cours


Ce cours est une initiation à la modélisation et à la résolution dans le cadre de la
programmation linéaire. L’objectif poursuivi est de fournir des éléments aux étudiants pour :
Apprendre à construire des modèles mathématiques ;
Connaître le fonctionnement de l'algorithme du simplexe ;
Interpréter les principaux résultats d'une analyse de sensibilité et en connaître les
limites ;
Maîtriser un logiciel d’optimisation

BIBLIOGRAPHIE
• Hillier, F., Libermann, G. (2010), « Introduction to Operations research », 9th edition,
McGraw Hill, New York, 1073p.
• Norbert, Y., Ouellet, R., Parent, R., (2001), « La recherche opérationnelle », 3ème
édition, Gaëtan Morin éditeur, Quebec, 465 p.

6
Exercice 1 :
Un fabricant de gravier pour cours de maison en produit deux catégories : du gravier grossier et du gravier fin. Le
gravier grossier nécessite 2h de broyage, 5h de criblage et de 8h de séchage, tandis que le gravier fin nécessite
six heures de broyage, trois heures de criblage et deux heures de séchage. Le fabricant dispose de 36 heures pour
le broyage, de 30 heures pour le criblage et de 40 heures pour le séchage. La marge de profit est de 4000 FCFA
par unité de gravier grossier et de 5000 F par unité de gravier fin. Le fabricant désire maximiser sa marge
bénéficiaire.
T.A.F : Procéder à la mise en équations du problème posé sous forme canonique et sous formes standard.
Exercice 2
L’entreprise ZOUZ fabrique pour des entreprises de quincaillerie des pièces en inox.
Ces pièces sont de trois types A B C. Elles sont fabriquées par lots de 50 dans un grand atelier où sont rassemblées
deux machines pour la découpe de l’inox, une machine pour l’emboutissage, deux machines pour le polissage et
la finition. Chaque machine fonctionne 120 heures par mois.
Les caractéristiques de fabrication sont rassemblées dans le tableau suivant :

Coût de l’heure Lot A Lot B Lot C


Découpe 2000F 1h 1.5h 1.5h

Emboutissage 3000F 0.5h 0h 1h

Polissage et finition 4000F 2h 1h 1h


Coût de l’inox 5000F 8 500F 6 800F
Prix de vente (taxe) 20 000F 20 000F 21 000F

L’objectif de l’entreprise est de maximiser sa marge bénéficiaire globale tout en respectant les contraintes de
production.
1 a) Procéder à la mise en équations du problème posé sous forme canonique et sous forme standard.

Exercice 3
M° ZOP très soucieux de sa forme souhaite absorber chaque jour au minimum 36 unités de vitamine A ,28 unités
de vitamine C et 32 unités de vitamine D. Pour cela il décide d’acheter et de combiner deux marques M1 et M2
de produits diététiques. La marque M1 coute 3000F et procure 2 unités de vitamine A, 2unités de vitamine C et 8
unités de vitamine D. La marque M2 coûte 4000F et procure 3 unités de vitamine A, 2 unités de vitamine C et 2
unités de vitamine D. M° ZOP souhaite obtenir au moindre cout la combinaison qui respectera ses exigences
d’absorption.

7
Chapitre I : Introduction à la programmation linéaire
I Généralités
Recherche opérationnelle : Ensemble des méthodes mathématiques et algorithmiques qui
permettent de résoudre un problème donné de la meilleure façon possible.
Programmation linéaire sous domaine de la recherche opérationnelle. C’est le domaine de la
recherche opérationnelle qui consiste à chercher l’optimum d’une fonction économique linéaire
de plusieurs variables 𝐹(𝑥1 , 𝑥2 , … , 𝑥𝑛 ) soumises à des contraintes exprimées par des équations
ou inéquations qui sont également linéaires.
Pour un problème de maximisation on a un système de la forme :
𝑛

𝑀𝑎𝑥(𝑍 = ∑ 𝛼𝑘 𝑥𝑘 )
𝑘=1
𝑥1 𝑑1
𝐴( ) ≤ ( ⋮ )

𝑥𝑛 𝑑𝑛
{𝑥𝑘 ≥ 0 ∀ 𝑘 ∈ {1, 2, … , 𝑛}
On a 𝐴 ∈ 𝑀𝑚,𝑛 (𝑅)
Pour un problème de minimisation, on a un système de la forme :

𝑚𝑖𝑛(𝑍 = ∑ 𝑐𝑘 𝑥𝑘 )
𝑘=1
𝑥1 𝑑1
𝐴( ⋮ ) ≥ ( ⋮ )
𝑥𝑛 𝑑𝑛
{𝑥𝑘 ≥ 0 ∀ 𝑘 ∈ {1, 2, … , 𝑛}

II- Mise en équation d’un problème de programmation linéaire (exemple


support : Activité 1)
1. Choix des variables de décision

Soit 𝑥 la quantité de gravier grossier à produire


Soit 𝑦 la quantité de gravier fin à produire
2. Déclaration et définition
3. de la fonction économique du problème (ou fonction objectif)

Soit 𝑧 la marge bénéficiaire globale en milliers de francs 𝑧 = 4𝑥+5𝑦

8
4. Tableau des contraintes

G.G G.F Disponibilités


ATL Broyage 2 6 36
ATL Criblage 5 3 30
ATL Séchage 8 2 40

5. 4-Forme canonique

𝑀𝑎𝑥(𝑧 = 4𝑥 + 5𝑦)
2𝑥 + 6𝑦 ≤ 36
{
5𝑥 + 3𝑦 ≤ 30
8𝑥 + 2𝑦 ≤ 40
6. 5-Forme standard

Posons : 𝑒1 = 36 − (2𝑥 + 6𝑦)


𝑒2 = 30 − (5𝑥 + 3𝑦)
𝑒3 = 40 − (8𝑥 + 2𝑦)

Pour 𝑘 ∈ {1,2,3} 𝑒𝑘 est appelée variable d’écart associée à la kième contrainte principale.
Avec ces notations, on obtient la forme standard suivante :
𝑀𝑎𝑥(𝑧 = 4𝑥 + 5𝑦 + 0𝑒1 + 0𝑒2 + 0𝑒3)
2𝑥 + 6𝑦 + 𝑒1 = 36
5𝑥 + 3𝑦 + 𝑒2 = 30
8𝑥 + 2𝑦 + 𝑒3 = 40
{ 𝑥, 𝑦, 𝑒1 , 𝑒2 , 𝑒3 ≥ 0
REMARQUE 1 :
On distingue souvent trois types de contraintes :
- Les contraintes de non négativité, habituellement requise pour chaque variable du
modèle
- Les contraintes d’intégrité, ajoutée pour chaque variable dont les valeurs possibles sont
d’après le contexte, confinées aux nombres entiers
- Les contraintes technologiques : toutes les autres contraintes car le thème vient des
premières applications historiques, souvent tirées de contextes industriels qui faisaient
appel à diverses technologies.

Cas ZOUZ, activité2


1-Choix des variables de décision
Soit 𝑥 le nombre de lots de type A à produire

9
Soit 𝑦 le nombre de lots de type B à produire
Soit 𝑧 le nombre lots de type C à produire

2-Expression de la fonction économique


Soit 𝑧 la marge bénéficiaire globale
mu (A) =20 000- (5000+2000+1500+8000) = 3500
mu (B) =20 000-(8500+3000+4000)= 4500
mu(C)=21 000-(6800+3000+3000+4000)= 4200
z=3500𝑥+4500𝑦+4200𝑧
3. Tableau des contraintes
Lot A Lot B Lot C Disponibilité
Produit
F.D.P
D 1 3/2 3/2 240
E ½ 0 1 120
F 2 1 1 240

5-Forme standard
max(𝑧 = 3500𝑥 + 4500𝑦 + 4200𝑧)
3 3
𝑥 + 𝑦 + 𝑧 +𝑒1 = 240
2 2
1
𝑥 + 𝑧 + 𝑒2 = 120
2
2𝑥 + 𝑦 + 𝑧 + 𝑒3 = 240
{ 𝑥, 𝑦, 𝑒1 , 𝑒2 , 𝑒3 ≥ 0

III - Résolution d’un problème de programmation linéaire


A Méthode graphique
Considérons le programme linéaire de l’activité 1
Lorsque le nombre de variable de décision est au plus égal à deux, on peut résoudre le
problème au moyen d’une méthode graphique.
Rappel : Théorie du régionnement du plan
Toute droite (D), d’équation 𝑎𝑥 + 𝑏𝑦 + 𝑐 = 0, partage le plan (rapporté à un repère O, I, J) en
deux régions 𝑅1 et 𝑅2 de frontière commune (D). L’une de ces deux régions est l’ensemble
des points 𝑛(𝑥, 𝑦) solution de l’inéquation contraire: 𝑎𝑥 + 𝑏𝑦 ≥ 𝑐

10
Pour identifier la bonne région par rapport à l’inéquation donnée, il suffit de tester l’un des
trois points O, I, J.
Application pour résoudre le problème de programmation du fabricant de gravier
(𝐷1 ) ∶ 2𝑥 + 6𝑦 = 36
X y
A 0 6
B 18 0
(𝐷2 ) ∶ 5𝑥 + 3𝑦 = 30
X y
C 0 10
D 6 0
(𝐷3 ) ∶ 8𝑥 + 2𝑦 = 40
X y
E 5 0
F 0 20

20
F (D3)
A

A
10 (D2)
G
A 6

DSA H E
(D1)

D B
A 18
D S0 A : Domaine
3 de Solutions
5 6 Admissibles du problème. A
Le domaine des solutions admissibles est le polygone OAGHE
Propriétés classiques DSA :
- C’est un domaine polygonal
- C’est un domaine convexe
- Il est borné c’est-à-dire ∀ 𝑚(𝑥, 𝑦) ∈ 𝐷𝑆𝐴, 𝑖𝑙 𝑒𝑥𝑖𝑠𝑡𝑒 𝑡𝑜𝑢𝑗𝑜𝑢𝑟𝑠 𝑀 \ 𝑚 ≤ 𝑥 ≤
𝑀 𝑒𝑡 𝑚 ≤ 𝑦 ≤ 𝑀

11
Théorème du point extrême
Le DSA du problème, a un nombre fini de points extrêmes et si la fonction économique du
problème admet un optimum, cet optimum est atteint en l’un des points extrêmes c’est-à-dire
en l’un des sommets du DSA.

Application : Méthode numéraire


Sommet du DSA Coordonnées 𝑍 = 4𝑥 + 5𝑦
O (0, 0) 0
A (0, 6) 30
G (3, 5) 37
H (30/7, 20/7) 220/7
E (5, 0) 20

G vérifie à la fois les coordonnées des droites (D1) et (D2)


H vérifie à la fois les coordonnées des droites (D2) et (D3)
A l’optimum
𝑥 ∗ = 3, 𝑦 ∗ = 5 et 𝑧 ∗ = 37 (maximum de la fonction)
𝑒1∗ = 0, 𝑒2∗ = 0, 𝑒3∗ = 6
Les deux premières contraintes sont saturées graphiquement G ∈ (𝐷1 ) ∩ (𝐷2 )
Conclusion
Ce fabricant de gravier doit produire trois unités de graviers grossiers, cinq unités de gravier
fin pour obtenir une marge bénéficiaire globale maximale de 37000 FCFA.
D’autre part, à l’optimum, les ressources broyage et criblage ont été entièrement utilisées
tandis qu’il reste encore 6 heures disponibles dans l’atelier séchage.

B. METHODE DU SIMPLEXE
Lorsque le nombre de l’ensemble des variables de décisions (VDO) du problème est
strictement supérieur 2, la méthode graphique devient inopérante. On a alors recours à une
méthode algébrique basée sur un algorithme appelé algorithme du simplexe.
I. L’ALGORITHME DU SIMPLEXE
a. Notion du point extrême

Définition
Considérons un programme linéaire avec n variables de décisions et m contraintes principales
admettant donc m variables d’écart. Pour un problème de maximisation linéaire standard, le

12
DSA d’un tel programme est un domaine polygonal, fermé, borné et convexe tandis que pour
un programme de minimisation standard, le DSA est un domaine polygonal, fermé, convexe
mais non borné.
On appelle point extrême du DSA toute solution (𝑥1 , 𝑥2 , … , 𝑥𝑛 , 𝑒1 , 𝑒2 , … , 𝑒𝑚 ) qui contient au
moins n zéros.
Exemple : Dans le problème du fabricant de gravier, le point A (0,6, 0, 12, 28) est un point
extrême de DSA.
b. Théorème du point extrême

Soit (T) le DSA d’un programme linéaire (B).


1.) (T) contient une infinité de solutions mais en nombre fini de points extrêmes
2.) Si la fonction-objectif à optimiser sur le domaine (T) admet un optimum alors cet
optimum est atteint en l’un des points extrêmes.

L’algorithme du simplexe a été conçu pour explorer uniquement l’ensemble des points
extrêmes du DSA. Il passe d’un point extrême à un autre en améliorant la valeur de la
fonction-objectif à chaque étape jusqu’à ce que l’optimum soit atteint.

II. MISE EN ŒUVRE DE L’ALGORITHME DE SIMPLEXE


(Reprise du cas ZouZ) activité
max(𝑧 = 3500𝑥 + 4500𝑦 + 4200𝑧)
3 3
𝑥 + 2 𝑦 + 2 𝑧 +𝑒1 = 240
1
𝑥 + 𝑧 + 𝑒2 = 120
2
2𝑥 + 𝑦 + 𝑧 + 𝑒3 = 240
{ 𝑥, 𝑦, 𝑒1 , 𝑒2 , 𝑒3 ≥ 0

x
 y
 
z
max Z  3500 4500 4200 0 0 0  
 e1 
e2 
 
 e3 
x
 
y
 1 2 2 1 0 0     240 
3 3

  z   
s / c :  12 0 1 0 1 0      120 
 2 1 1 0 0 1   e1   240 
 e   
 
2

 e3 
Autant de ligne que de contrainte principale +2
13
Variables
x Y z 𝑒1 𝑒2 𝑒3 R Rd
Base
𝑒1 1 (3/2) 3/2 1 0 0 240 240/3/2=160
𝑒2 ½ 0 1 0 1 0 120 -
𝑒3 2 1 1 0 0 1 240 240/1=240
Z 35 45 42 0 0 0 0
Y 2/3 1 1 2/3 0 0 160 240
𝑒2 ½ 0 1 0 1 0 120 240
𝑒3 (4/3) 0 0 -2/3 0 1 80 60
Z 5 0 -3 -30 0 0 -7200
Y 0 1 1 1 0 -1/2 120
𝑒2 0 0 1 ¼ 1 -3/8 90
X 1 0 0 -1/2 0 ¾ 60
Z 0 0 -3 -55/2 0 -15/4 -7500

On continue les itérations tant qu’il existe un réel strictement positif sur la ligne de la fonction
économique (z).
Remarque sur un tableau du simplexe (tds)
Soit (P) un programme linéaire à n variable de décision et m variable d’écart (contrainte) (il y
aura m+n+2 colonne)
Définition :
Dans le tableau du simplexe d’un programme linéaire, une colonne est dite unitaire si elle
contient un (1) dans l’une de ces cases et zéro(0) dans toutes les autres.
Remarque 1 :
Dans tout tableau du simplexe, une variable de base 𝑣𝑘 a sa colonne unitaire et la ligne de 𝑣𝑘 ∩
la colonne de 𝑣𝑘 =1 → 𝐿𝑣𝑘 ∩ 𝐶𝑘 = {1}
Remarque 2 :
Lorsqu’on passe d’un tableau du simplexe à son suivant :
- une seule variable entre dans la base en une seule en sort
- La variable qui est entrée dans la base voit sa colonne devenir unitaire.
- Les autres variables qui ne sont pas entrées dans la base conservent leurs colonnes dans
le nouveau tableau
- Toute ligne contenant un zéro dans la colonne du pivot se reproduit identiquement à
elle-même dans le nouveau tableau.

En utilisant ces deux remarques et le fait de diviser la ligne pivot par le pivot, on remplit d’office
une bonne partie du nouveau tableau. Toutes les cases qu’on ne peut pas remplir au moyen
de ces deux remarques seront calculées par la méthode dite du rectangle.

14
Pivot

a b L’image d’ de d dans la nouvelle base est alors :


ac
d'd 
Pivot
d c
ac
d'd 
Colonne du Pivot b

Dans le 3ème tableau du simplexe, tous les coefficients de la ligne 𝐿𝑧 sont ≤ 0 , c’est le signe
que l’on a atteint l’optimum.
A l’optimum, on a :
𝑥 ∗ =60, 𝑒1∗ =0
𝑦 ∗ =120, 𝑒2∗ =90
𝑧 ∗ =0, 𝑒3∗ =0
Z*= 7500
Conclusion
L’entreprise ZOUZ doit produire 60 unités de lots de type A, 120 lots de type B, et aucun lot
de type C pour obtenir une marge bénéficiaire globale maximale de 750.000. D’autre part à
l’optimum 𝑒1∗ =𝑒3∗ =0. Ainsi, les ateliers 1 et 3 ont entièrement utilisé leurs ressources tandis que
puisque 𝑒2∗ =90, il reste encore 90h disponibles dans l’atelier B à l’optimum.

III- ANALYSE DES SENSIBILITES DE LA SOLUTION OPTIMALE


OBTENUE
Question : Quel serait l’impact sur la marge bénéficiaire globale d’une variation marginale
au niveau de l’atelier 1 ? En d’autres termes, quel serait l’optimum de la variation d’une
unité de la quantité de ressource disponible dans l’atelier 1 ?
La réponse est donnée par la valeur absolue du coefficient à l’intersection (∩) de la ligne 𝐿𝑧 et
de la colonne de 𝑒1 .C’est à dire 55/2. Ce coefficient révèle de combien d’unité monétaire l’on
ferait varier la quantité de ressource disponible dans l’atelier 1 d’une unité.

Nous dirons que la valeur marginale de l’atelier 1 est égale à 55/2 et nous notons √𝑚(𝑒1)=55/2.

De même, le tableau nous informe que √𝑚(𝑒2 )=0 ; la valeur marginale de 𝑒3 √𝑚(𝑒3 ) =15/4

IV- Dual d’un programme linéaire(P)


Exemple préparatoire : reprenons le problème de minimisation de Mme DJAKOUS sous sa
forme canonique.

15
𝑀𝑖𝑛(𝑍 = 4𝑥 + 2𝑦 + 6𝑧)
2𝑥 + 4𝑦 + 2𝑧 ≥ 24
(P){
5𝑥 + 𝑦 + 𝑧 ≥ 8
𝑥, 𝑦, 𝑧 ≥ 0
On appel dual du programme linéaire (P), le programme linéaire (D) suivant.
𝑀𝑎𝑥(∆= 24𝑥1 + 8𝑥2 )
2𝑥1 + 5𝑥2 ≤ 4
(D) 4𝑥1 + 𝑥2 ≤ 2
2𝑥1 + 𝑥2 ≤ 6
{ 𝑥1 , 𝑥2 ≥ 0

Plus généralement, soit(P) un programme linéaire de forme canonique donnée.


n
Max Z   c j x j
j 1
n
s/c: a x
j 1
ij j  bi , i  1, 2,..., m

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

Où A ∈ 𝑀𝑚,𝑛(𝑅) et par ≤ ou≥

On appelle dual du programme linéaire (P) le programme (D) ci-dessous :


m
min W   bi yi
i 1
m
s/c: a
i 1
ij yi  c j , j  1, 2,..., n

yi  0 , i  1, 2,..., m

Sous forme matricielle :


Max Z  cx min W  yb
s / c : Ax  b s / c : yA  c
x0 y0

De façon plus pratique, voici les règles de passage du primale au dual. Soit(P) un programme
linéaire de fonction économique notée 𝑍. Pour écrire le programme linéaire dual (D) de (P), on
doit suivre les cinq règles suivantes :
1. Le sens de l’optimisation est inversé mais les contraintes de non négativité des variables
de décision restent inchangées.
2. La matrice des coefficients de la fonction économique du dual est la transposée du
vecteur colonne des seconds membres des contraintes principales du primal.

16
3. La matrice des constantes des seconds membres des contraintes principales du dual est
la transposée du vecteur ligne des coefficients de la fonction économique du primal.
4. La matrice des coefficients des contraintes principales du dual est la transposée de son
homologue du primale.
5. Ne jamais garder les mêmes noms pour les fonctions économiques et les variables des
deux programmes.

Principaux résultats du dual

 x
min Z   4 2 6  y 
min(𝑧 = 4𝑥 + 2𝑦 + 6𝑧)  
2𝑥 + 4𝑦 + 2𝑧 − 𝑒1 = 24  z 
(P){
5𝑥 + 1𝑦 + 1𝑧 − 𝑒2 = 8  x
𝑥, 𝑦, 𝑧, 𝑒1 , 𝑒2 ≥ 0  2 4 2     24 
s / c:  y    
5 1 1 z   8 
 
Et
t
max(∆= 24𝑥1 + 8𝑥2 )  24   x 
2𝑥1 + 5𝑥2 + 𝑠1 = 4 Max      1 
 8  x2 
(D) 4𝑥1 + 1𝑥2 + 𝑠2 = 2 t
2𝑥1 + 1𝑥2 + 𝑠3 = 6  2 4 2   x1 
   4 2 6
t
s/c: 
{ 𝑥1 , 𝑥2 , 𝑠1 , 𝑠2 , 𝑠3 ≥ 0  5 1 1  x2 
x 
Max    24 8  1 
 x2 
 2 5  4
   x1   
s / c :  4 1    2
 2 1   x2   6 
   
THEOREME
Soit(P) un programme d’optimisation linéaire à n variable respectivement notées
𝑥1 , 𝑥2 , … 𝑥𝑛 𝑒𝑡 𝑚 variables d’écart notée 𝑒1 , 𝑒2 … 𝑒𝑚 .
Soit (D) son dual avec les m variables de décision notée 𝑦1 , 𝑦2 … 𝑦𝑚 𝑒𝑡 𝑠𝑒𝑠 𝑛 variables d’écart
notée respectivement𝑠1 , 𝑠2 … 𝑠𝑛 . Soit 𝑧 la fonction économique dans le primal et (∆) son
homologue dans le dual.
1. (P) admet une solution si et seulement si (D) en admet une et à l’optimum, ∆𝑜𝑝𝑡=𝑍𝑜𝑝𝑡
2. Si une variable de décision 𝑦𝑘 du dual (D) a une valeur optimale alors la variable d’écart
𝑒𝑘 qui lui est associée dans (P) est nécessairement nulle à l’optimum. (𝑦𝑘 ≠
0 𝑎𝑙𝑜𝑟𝑠 𝑒𝑘 = 𝑂)
3. Si une variable d’écart 𝑠𝑘 de (D) a une valeur optimale ≠0, alors la variable de décision
𝑥𝑘 qui lui est associée dans (P) est nécessairement nulle à l’optimum.

17
4. La valeur optimale de la variable de décision 𝑥𝑘 est égale à la valeur marginale de la
variable d’écart 𝑠𝑘 dans le dernier tableau du simplexe du dual.
5. Pour tout k allant de 1 à m (𝑘 ∈ {1, . . 𝑚}), la valeur optimale de la variable d’écart 𝑒𝑘
est égale au terme à 𝑒 ∩ de la ligne 𝐿∆ et de la colonne 𝑦𝑘 dans le dernier tableau du
simplexe de (D).
6. ∀𝑘 ∈ {1,2, … 𝑛}, la valeur marginale de la variable d’écart 𝑒𝑘 est égale à la valeur
optimale de 𝑦𝑘 (variable de décision) dans le programme (D).
min(𝑧 = 4𝑥 + 3𝑦 + 6𝑧)
2𝑥 + 4𝑦 + 2𝑧 ≥ 24
{
5𝑥 + 𝑦 + 𝑧 ≥ 8
𝑥, 𝑦, 𝑧 ≥ 0
min(𝑧 = 4𝑥 + 6𝑧 + 0𝑒1 + 0𝑒2 )
2𝑥 + 4𝑦 + 2𝑧 − 𝑒1 = 24
5𝑥 + 𝑦 − 𝑧 − 𝑒2 = 8
𝑥, 𝑦, 𝑧, 𝑒1 , 𝑒2 ≥ 0
{

 Max   24 s1  8s2

 2 s1  5s2  1  4
  4s  s    3
 1 2
s / c :
2

( D)  2 s1  s2  3  6
  s1 , s2 , 1 , 2 , 3  0




VHB
s1 s2 1 2 3 R ratios
VB
1 2 5 1 0 0 4 2
2 (4) 1 0 1 0 3 ¾
3 2 1 0 0 1 6 3
 24 8 0 0 0 0
1 0 (9/2) 1 -1/2 0 5/2 5/9
S1 1 ¼ 0 ¼ 0 ¾ 3
3 0 ½ 0 -1/2 1 9/2 9
 0 2 0 -6 0 -18
s2 0 1 2/9 -1/9 0 5/9
s1 1 0 -1/18 5/18 0 11/18
3 0 0 -1/19 -4/9 1 38/9
 0 0 -4/9 -52/9 0 -172/9

18
Tableau de correspondance entre le dual et le primal
Primal x Y z e1 e2
Dual 1 2 3 s1 s2

On établit une correspondance entre les variables du primal et celles du dual. On associe aux
variables d’écart de (P) les variables d’activités de (D) et réciproquement. Soit le tableau ci-
dessus. Une fois le lien établi, on associe à chacune de ces variables les valeurs
correspondantes au signe près de la ligne de  . Ainsi, on obtient :
Primal x Y z e1 e2
Dual 1 2 3 s1 s2
Valeurs 4/9 52/9 0 11/8 5/9

Figure 1 : Organigramme de l’algorithme du Simplexe dans le cas d’un modèle linéaire simple et Méthode du rectangle

19
Chapitre 2 : MODELE LINEAIRE CONTINU GENERAL (PLC)
Soit le programme suivant :
Max Z  1000 x1  1200 x2 Max Z  1000 x1  1200 x2
10 x1  5 x2  200 10 x1  5 x2  e1  200
2 x  3x  60 2 x  3x  60
 1 2  1 2

s / c :  x1  12 s / c :  x1  e3  12
x  6 x  e  6
 2  2 4
 x1 , x2  0  x1 , x2  0

 x1 
x 
 2
e 
Max Z  1000 1200 0 0 0 0  1 
 e2 
 e3 
 
 e4 
 x1 
10 5 1 0 0 0   x2   200 
2 3 0 1 0 0   e1   60 
s/c:  
1 0 0 0 1 0   e2   12 
   
0 1 0 0 0 1  e3   6 
 
 e4 

La solution de base est : e1  200; e2  60; e3  12; e4  6  0 . La solution (0,0, 200,60,12, 6)
n’est pas admissible.
Dans les programmes linéaires où les contraintes de signe > ou = apparaissent dans un programme de
maximisation ou encore lorsque les contraintes < ou = apparaissent dans un programme de
minimisation, la méthode du simplexe présentée dans le cadre du PLS ne peut pas s’appliquer
immédiatement. L’on doit faire des transformations d’écriture avant de pouvoir appliquer l’algorithme
du simplexe. L’on a alors deux méthodes de résolution dans ces cas là :

- La méthode de résolution en deux phases


- La méthode du Grand M

Dans la méthode dite de Grand M comme dans celle en deux étapes, les équations provenant
des contraintes technologiques de signe  ou =, on ajoute des variables dites artificielles qui
initialement serviront de variables de base et on exige de ces mêmes variables qu’elles soient non
négatives.

La méthode du Grand M.

Outre les variables artificielles introduites dans le modèle, on adjoint à la fonction


économique Z un terme de pénalité à chaque variable artificielle et M est une constante

20
positive dont la valeur sans être précisée dépasse largement tous les autres nombres présents
dans le modèle.
Le modèle à résoudre devient :
Max Z  1000 x1  1200 x2 Max Z  1000 x1  1200 x2 Max Z  1000x1  1200x2  Ma2  Ma4
10 x1  5 x2  200 10 x1  5 x2  e1  200 10 x1  5 x2  e1  200
2 x  3x  60 2 x  3x  60 2 x  3x  a  60
 1 2  1 2  1 2 2

s / c :  x1  12 s / c :  x1  e3  12 s / c :  x1  e3  12
x  6 x  e  6 x  e  a  6
 2  2 4  2 4 4
 x1 , x2  0  x1 , x2 , e1 , e3 , e4 ,  0  x1 , x2 , e1 , e3 , e4 ,  0, a2 , a4 ,  0

Les termes –Ma2 et –Ma4 entrainent des pénalités élevées dès que l’une ou l’autre des
variables artificielles est non nulle. Il en résulte que toutes les solutions admissibles
satisfaisant toutes les contraintes ci-avant où a2=a4=0 donne à ZM une valeur plus grande que
toute autre solution où a2=a4>0. Si l’on désire maximiser ZM, il faudra en premier sortir a2 et
a4 de la base. Une fois que toutes les variables artificielles sont sorties de la base, la fonction
objectif devient équivalente à celle du modèle original. Les calculs s’effectuent avec le
symbole M dont la valeur n’est jamais précisée.
La présence du paramètre M dans certains coûts marginaux des tableaux n°0 et n°1 du
simplexe en rend l’interprétation du tableau impossible. Ce qui importe, c’est que la valeur de
ZM diminue d’un tableau à l’autre. Lorsque toutes les variables artificielles seront sorties de
la base et auront pris la valeur 0, les coûts marginaux s’interpréteront dans le contexte du
problème comme habituellement. Le simplexe se déroule identiquement au modèle PLS en ce
qui concerne le choix de la variable sortante et du pivotage.

 x1 
x 
 2
 e1 
 
Max Z  1000 1200 0  M 0 0  M   a2 
 e3 
 
e4 
a 
 4
 x1 
x 
10 0 0     200 
2
5 1 0 0
2  e1 
3 0 1 0 0 0     60 
s/c: a2 
1 0 0 0 1 0 0     12 
   e3   
0 1 0 0 0 1 1     6 
e4 
a 
 4

21
VHB
x1 x2 e1 a2 e3 e4 a4 R Ratios
VB
0 e1 10 5 1 0 0 0 0 200 40
-M a2 2 3 0 1 0 0 0 60 20
0 e3 1 0 0 0 1 0 0 12 
-M a4 0 (1) 0 0 0 -1 1 6 6
zi -2M -4M 0 -M 0 M -M -66M
Z=cj-zi 1000+2M 1200+4M 0 0 0 -M 0
e1 10 0 1 0 0 5 -5 170 =170/5=34

a2 2 0 0 1 0 (3) -3 42 42/3=14

e3 1 0 0 0 1 0 0 12 
x2 0 1 0 0 0 -1 1 6 -6
Z 1000+2M 0 0 0 0 1200+3M -1200- 7200-
4M 42M
e1 20/3 0 1 -5/3 0 0 0 100 15

e4 2/3 0 0 1/3 0 1 -1 14 21

e3 (1) 0 0 0 1 0 0 12 12

x2 2/3 1 0 1/3 0 0 0 20 30
Z 200 0 0 -400- 0 0 -M 24000
M
e1 0 0 1 -5/3 -20/3 0 0 20

e4 0 0 0 1/3 -2/3 1 -1 6

x1 1 0 0 0 1 0 0 12

x2 0 1 0 1/3 -2/3 0 0 12
Z 0 0 0 -400- -200 0 -M 26400
M

Séquence des coûts marginaux dans le modèle précédent avec la méthode du Grand M
Tableau (Z)
x1 x2 e1 a2 e3 e4 a4 R
0 1000+2M 1200+4M 0 0 0 -M 0 -66M
1 1000+2M 0 0 0 0 1200+3M -1200- 7200-42M
4M
2 200 0 0 -400- 0 0 -M 24000
M
3 0 0 0 -400- -200 0 -M 26400
M

Avec la méthode du grand M ou bien toutes les variables artificielles prennent la valeur 0 à
l’optimum et l’on obtient une solution admissible et optimale ou bien certaines d’entre elles
prennent une valeur positive et alors le modèle linéaire PLC n’a pas de solution admissible.
Dans un modèle où il s’agit de minimiser une fonction objectif Z, les variables artificielles
reçoivent dans ZM le coefficient plus M. Ainsi toute valeur positive prise par l’une ou l’autre

22
d’entre elle entraine une augmentation considérable de ZM. Ce qui rend la solution fort peu
intéressante.

LES CAS PARTICULIERS OU PATHOLOGIQUES


Divers cas particuliers ou pathologiques surviennent qui peuvent être regroupés en deux
catégories :
Catégorie A : la forme du tableau final-
On a trois types de modèle linéaire continu :
1. Possède au moins une solution optimale
2. Ne possède aucune solution admissible
3. Dont la valeur de la fonction objectif peut croître sans limite dans le cas d’une
maximisation ou décroître sans limite dans le cas d’une minimisation.

Catégorie B : les choix multiples lors d’une itération


Ce sont les modèles où se présente un dilemme :
4. Choix de la variable entrante : plusieurs variables hors base admettent le coût marginal
maximal
5. Choix de la variable sortante : plusieurs variables de base correspondent à la plus
petite limite

a. Les modèles admettant une solution optimale (unique ou multiple)

Un PLC général admet au moins une solution optimale lorsqu’il existe un tableau du simplexe
vérifiant les deux conditions suivantes :
i) Dans la solution de base associée, les variables artificielles sont toutes nulles (la
solution de base est admissible)
ii) Les coûts marginaux des variables hors base sont tous négatifs ou nuls dans le cas
d’un modèle de maximisation et tous positifs ou nuls dans le cas d’un problème de
minimisation (la solution de base est optimale)
Cette solution optimale est unique si de plus le tableau vérifie la condition
suivante :
iii) Les coûts marginaux des variables hors base sont tous différents de zéro

Enfin, le modèle PLC admet une infinité de solution optimale si le tableau vérifie les
conditions (i), (ii) et (iv) où
iv) L’une des variables hors base (non artificielle) admet un coût marginal nul et sa
valeur limite en tant que variable entrante potentielle est positive ou infinie.

NB : Une VHB dont le coût marginal est nul et dont la limite est nulle donnerait un tableau
optimal dégénéré : lors d’un pivotage pour entrer cette variable dans la base aucune des

23
variables ne verraient sa valeur se modifier et on se retrouverait avec la même solution
optimale.

b. Les modèles sans solution admissible

Un modèle linéaire ne possède pas de solution admissible si dans le dernier tableau de la


phase de minimisation des variables artificielles, une ou plusieurs de ces variables prennent
des valeurs positives.

c. Les modèles non bornés

Un modèle linéaire où l’on se propose de maximiser Z est non borné lorsque dans un tableau
de simplexe consistant à maximiser la valeur de Z après avoir réussi à minimiser les valeurs
des variables artificielles, une variable hors base admet un coût marginal positif dans et aucun
de ces coefficients dans la partie centrale du tableau n’est positif. Cette variable et par
conséquent la fonction objectif Z peuvent être augmentées dans limite.

d. Le cas où plus d’une variable peut entrer dans la base

On pourrait retenir au hasard l’une de ces variables. Ce qui importe c’est d’augmenter la
valeur de Z mais le choix peut aussi se faire de manière subtile en calculant la limite
d’augementation de chacune des variables en ballotage. Certains logiciels utilisent les critères
consistant à choisir parmi les variables dont le coût marginal est positif celle ou l’une de
celles qui maximisent le produit c j  zi .limite .

e. Le cas où plus d’une variable peut sortir de la base : la dégénérescence

Lorsque plus d’une variable de base correspond à la plus petite limite, l’on a l’embarras du
choix pour la variable sortante. Lorsqu’une VB est nulle, on parle alors de solution dégénérée.
Ce phénomène de dégénérescence survient lorsque dans le tableau précédent, plus d’une
variable de base correspond à la plus petite limite : dans le tableau obtenu après pivotage, une
seule d’entre elles sort de la base et les autres restantes prennent la valeur zéro.
La dégénérescence d’un modèle linéaire a donc le potentiel d’engager l’algorithme du
simplexe dans un cyclage sans fin. Il faut également noter que le phénomène du cyclage est
peu fréquent et peut se rencontrer surtout dans les modèles de grande taille très dégénérés.
Selon R.G. Bland, dans la résolution d’un problème de maximisation, l’algorithme du
simplexe ne peut cycler si :
- Pour entrer dans la base, on choisit celles parmi les variables dont le coût marginal est
non négatif qui est doté du plus petit indice
- Pour sortir de la base, on choisit celle des variables candidates dont l’indice est le plus
petit

24
Chapitre 3 : L’ANALYSE POST-OPTIMALE
Quel serait l’impact sur la marge bénéficiaire globale d’une variation d’un coefficient
économique, d’une contrainte de disponibilité des ressources ?
Pour le savoir, il faut investiguer sur la sensibilité des solutions optimales au changement
envisageable dans la valeur des paramètres aij , bi et c j .

Cette analyse porte le nom d’analyse post-optimale car l’on s’intéresse aux mouvements de la
solution optimale induits par les changements apportés aux valeurs des paramètres. Cette
analyse permet de détecter les paramètres dont une faible oscillation suffit à chambouler la
solution optimale proposée dans le tableau final. Elle fournit aux décideurs avertis, des
diagnostics prémonitoires qui l’inciteront à recourir à de meilleures estimations des
paramètres les plus sensibles du modèle ou à mettre en place des mécanismes de surveillance
de ces paramètres déclencheurs de changement par leur moindre glissement. Nous présentons
deux cas :
- Le modèle modifié doit être une variante obtenue du modèle optimal en y changeant
une ou plusieurs cj ou encore un ou plusieurs bi
- Le tableau final du modèle original doit permettre de calculer sans pivotage
supplémentaire, une solution optimale du modèle modifié.

a. La modification d’un coefficient cj

Soit le programme (P)


Max Z  1000 x1  1200 x2
10 x1  5 x2  200 : Ebarbage
2 x  3x  60 : Peinture
 1 2

s / c :  x1  34 : Demande de tuyauterie
 x  14 : Demande de gueuse
 2
 x1 , x2  0 : Contrainte de non négativité

Supposons que le coefficient de la variable x1 subit une modification à la hausse. Déterminons alors
l’intervalle de variation de cette modification des prix pour maintenir stable la solution optimale de ce
programme. La fonction objectif Z’ du programme (P’) sera :

Z '  (1000  ) x1  1200 x2  1000 x1  x1  1200 x2


Z '  Z  x1

25
Tableau final de (P’)
VHB
x1 x2 e1 e2 e3 e4 R
VB
0 e4 0 0 0,10 -0,50 0 1 4

1000+  x1 1 0 0,15 -0,25 0 0 15

0 e3 0 0 -0,15 0,25 1 0 19

1200 x2 0 1 -0,10 0,50 0 0 10

zj 1000+  1200 150+0,15  -120 -250-0,25  +600 0 0 15000+15  +12000=

cj  zj 0 0 -30 -0,15  -350+0,25  0 0 27000+15 

La solution de base associée au tableau final de (P’) est optimal pour Z’ ssi

30  0,15  0 et  350  0, 25  0 


  200    1400
  200 et   1400 
Le plan de production (15 ;10) reste optimale pourvu que le coefficient de x1 dans la fonction
économique soit compris entre 800 et 2400. La méthode algébrique utilisée ici s’adapte à tout modèle
linéaire continu quel que soit le nombre de variables de décision qu’il comporte. On vérifie également
aisément que le Max de Z’ égale à Z '  1000 x1  (1200  ) x2 sous les mêmes contraintes est atteint
au point (15 ;10) ssi 700    300 .

b) La modification du coefficient bi (le 2nd membre des contraintes)


Supposons que le second membre de la première contrainte du programme précédent P subit une
modification. Alors le 2nd membre s’écrira : b'1  200   avec b1=200

Max Z  1000 x1  1200 x2


10 x1  5 x2  200  
2 x  3x  60
 1 2

s / c :  x1  34
 x  14
 2
 x1 , x2  0

26
Tableau initial de (P’’)
VHB
x1 x2 e1 e2 e3 e4 R
VB
0 e1 10 5 1 0 0 0 200+ 
0 e2 2 3 0 1 0 0 60

0 e3 1 0 0 0 1 0 34

0 e4 0 1 0 0 0 1 14

Z 1000 1200 0 0 0 0 0

Tableau final de (P’’)


Coeff VHB 
x1 x2 e1 e2 e3 e4 R
VB
0 e4 0 0 0,10 -0,50 0 1 4 0,10

1000 x1 1 0 0,15 -0,25 0 0 15 0,15

0 e3 0 0 -0,15 0,25 1 0 19 -0,15

1200 x2 0 1 -0,10 0,50 0 1 10 -0,10

zj 1000 1200 30 350 0 0 27000 30

cj  zj 0 0 -30 -350

e4  4  0,1  0   40


 x  15  0,15  0   100
 1 
   Max(40; 100)    min(100;126, 66)
e3  19  0,15  0   126, 66
 x2  10  0,10  0   100
La
solution demeure optimale si 40    100 ce qui veut dire que 160    200  300

27
Année Académique 2018-2019
UNIVERSITE FELIX HOUPHOUËT BOIGNY
- --------------------------
UFR des Sciences Economiques et de Gestion
Ufr des Sciences Economues et de Gestion

COURS DE RECHERCHE OPERATIONNELLE

ECUE 2 : THEORIE DES GRAPHES

NOTES DE COURS

PAR
Dr Yao Silvère KONAN

28
Chapitre 4 : GÉNÉRALITÉS SUR LES GRAPHES

Les graphes sont des structures discrètes formées de sommets et d’arcs reliant ces sommets. Ils servent
à résoudre des problèmes concrets dans une multitude de domaines. Ils permettent de représenter les
connections entre les différents éléments d’un ensemble complexe. Ils sont extrêmement utiles dans la
modélisation et l’analyse des réseaux de communication, des réseaux routiers et de certains circuits
électriques. Plus généralement, l’utilisation des graphes permet de modéliser une grande variété de
problèmes en les ramenant à l’étude de sommets et d’arcs (ou d’arêtes).

On retrouve de nombreuses applications des graphes.

- en logistique : problème de flots, d’ordonnancement, d’affectation etc.

-en informatique : gestion des réseaux, le routage dans les circuits « very large scale intégration » (VLSI)
et autres, la détection des pannes, la modélisation d’un système temps réel etc.

- en gestion des projets et en Gestion de Production Assistée par Ordinateur (GPAO) : ordonnancement
des tâches ; allocation des ressources.

I-Définitions et exemples

Définitions 1 : Graphe non orienté

Soit un entier naturel non nul ; un graphe non orienté d’ordre n est un couple G = (S, A) où :

- S = S1, S2, S3……Sn est un ensemble de dont les éléments sont appelés sommets ou nœuds.
- A  a1, a2, a3…. am une partie de l’ensemble P2(S) des parties à deux éléments de S.

Les éléments de A sont appelés arêtes.

Lorsque a  X, Y} ϵ A, on dit que a est l’arête de G d’extrémités X et Y dans G.

Définition 2 : Graphe orienté

On note n un entier naturel non nul ;

Un graphe orienté d’ordre n est couple G = (S, A) formé d’un ensemble

S = S1, S2, S3,…... Sn} à n éléments appelés sommets ou nœuds et d’un ensemble

A = a1, a2, a3,…..am} partie du produit cartésien S x S dont les éléments sont appelés arcs. La
représentation la plus visuelle d’un graphe est sa représentation sagittale.

Si a = (X, Y) ϵ A, on dit que a est l’arc de G d’extrémité initiale X et d’extrémité finale Y ; X est appelé
un précédent de Y et Y est un successeur de X.

29
Exemple 1

G = (S, A) avec S = Amon (A), Balla (B), Colette (C), Damien (D), Émilie (E)

G1 : Sociogramme d’influence

Exemple 2

G2 : Graphe non orienté modélisant un réseau d’ordinateurs


G3 : Graphe orienté modélisant un problème de planification

Exemple 4

G4 : Graphe orienté modélisant le problème des représentants

30
Définition 3

Un graphe G = (S, A) est dit simple si tout couple (X, Y) de sommets de S est relié par au plus un arc
ou une arête.

Exemple

Le graphe G1 n’est pas un graphe simple ; c’est un multigraphe. Par contre les graphes G2, G3 et G4 sont
des graphes simples.

NB Dans la suite de ce cours, nous intéresseront essentiellement aux graphes simples.

Dictionnaires associé à un graphe orienté

Soit G = (S, A) un graphe orienté d’ordre n avec S = S1, S2, S3, …, Sn ;

La définition formelle de G ou sa représentation sagittale nous permet d’établir deux tableaux appelés
dictionnaire des précédents et dictionnaires des suivants du graphe G.

Exemple

Les deux tableaux ci-dessous donnent respectivement le dictionnaire des suivants et celui des précédents
du graphe G3.

X S (X) X P(X)
1 2;3 1
2 4;5;6 2 1
3 4 3 1
4 8 4 2;3
5 6;7 5 2
6 8 6 2;5
7 8 7 5
8 9 8 4;6;7
9 9 8

II-Terminologie usuelle des graphes

1-Chemin, chaîne, circuit, cycle.

Soit G = (S, A) un graphe orienté ; X, Y deux sommets quelconques de S ;

 Un chemin d’extrémité initiale (ou origine) X et d’extrémité finale Y de G est une suite finie
de sommets reliés entre eux par des arcs tels que le premier élément de la suite soit X et le
dernier Y. On dit plus simplement chemin de X à Y dans G.
 Un chemin est dit simple s’il ne contient pas deux fois le même arc.

31
 Un chemin de X à Y de G est appelé circuit si X coïncide avec Y.
 Un chemin dont l’un au moins des arcs n’est pas orienté est appelé une chaîne.
 On appelle cycle toute chaîne dont les extrémités initiales et finales coïncident.

2-Sous-graphes et graphes partiels.

Définitions

Soit G = (S, A) un graphe orienté ou non et H = (U, β)

 On dit que H est un sous graphe de G si U  S et β  A ; en d’autres termes H est un sous


graphe de G s’il est obtenu par suppression d’au moins un sommet ou un arc (arête) de G.
 On dit que H est un sous-graphe partiel de G si U = S et β  A. Il revient au même de dire
que H est un sous-graphe partiel de G s’il est obtenu par suppression d’au moins un arc de
G.

Exemples

o (C2, E4, P2, t) est un chemin dans le graphe G4


o (B, D, C, B) est un circuit dans le graphe G1
o (A, G, I, J, B, D, C, E) est une chaîne simple de A à E dans le graphe G2.
o (F, I, D, C, F) est un cycle dans le même graphe.

Ce graphe est un graphe partiel du graphe G1


Ce graphe st un sous-graphe du graphe G2.

3-Longueur d’un chemin (ou d’une chaîne)

Définition

Soit G = (S, A) un graphe orienté ou non ; on appelle longueur d’un chemin C (ou d’une chaîne) dans
G au sens des arcs (ou des arêtes), le nombre d’arcs (arêtes) qui composent ce chemin (ou cette chaîne).

32
Notons L (C) la longueur d’un chemin C

Proposition

o Si C = (X1, X2, ……, Xp) est un chemin (chaîne) simple dans G alors la longueur L (C) vaut p-
1.
o Un chemin (une chaîne) de longueur 1 est appelé boucle

4-Degré d’un sommet dans un graphe orienté

Définition

Soit G = (S, A) un graphe orienté d’ordre n et contenant m arcs ; X un sommet donné de S,

 On appelle degré intérieur de X dans G le nombre d’arcs de G ayant pour extrémité finale X.

On le note d  (X)

 On appelle degré extérieur de X dans G le nombre d’arc de G ayant pour extrémité initiale X.

On le note d  (X) .

 On appelle degré de X dans G la somme de ses degrés intérieurs et extérieurs. On le note d (X).

d (X)  d (X)  d ( X )

Exemple : dans le graphe orienté G4 on a :

d  (C2 )  1 ; d  (C2 )  3 ; d (C2 )  4 ; d ( P2 )  2  1  3

III-Matrice d’adjacence d’un graphe orienté

Définition

Soit G = (S, A) un graphe orienté simple d’ordre n avec S = S1, S2, S3,…….. ; Sn.

On appelle matrice d’adjacence de G (ou encore matrice booléenne associée à G), la matrice carrée
d’ordre n M = (mi,j) 1 i,j n définie par

1 si (si ,s j )  A
mi j  
0 si (si ,s j )  A

La matrice d’adjacence est aussi appelée matrice booléenne associée à G.

33
Proposition

Avec les notations ci-dessus on a : i  1, 2, 3,..........., n

n n
d ( si )   mij ;

d ( si )   m ji ;

j 1 j 1
n n n

d
i 1

( si )  d  ( si )  mij  a où a désigne le nombre d'arêtes de G.
i 1 i, j

Exemple

Considérons le graphe G5 dont le dictionnaire des suivants est le tableau ci-dessous

X A B C D E
S(X) B, C C, E D A, B A, D

La matrice d’adjacence de G5 est : A B C D E

0 1 1 0 0
 
0 0 1 0 1
0 0 0 1 0
 
1 1 0 0 0
1 0 
 0 0 1

Lecture de la matrice : la lecture de la ligne n°i permet de retrouver les suivants de sommets Si et la
lecture de la colonne n°j permet de retrouver les précédents du sommet Sj.

Remarque

Un ensemble S  s1 , s2 , s3 , sn  de sommets étant fixé, une matrice booléenne d’ordre n


détermine un graphe orienté d’ordre n unique d’ensemble de sommets S.

Connaissant la matrice d’adjacence d’un graphe orienté G = (S, A) on peut déterminer par simple
lecture :

o Le degré intérieur et le degré extérieur (et par conséquence le degré de chaque sommet.

Exemple

L’observation de la matrice d’adjacence de G5 nous permet de dire que :

o les précédents du sommet D sont les sommets C et E.

34
4
o le degré extérieur du sommet B est m
j 1
2j  0  0 1 0 1  2

4
o le degré extérieur du sommet E est m
j 1
j5  0 1 0  0  0  1

o -le degré du sommet B est 2 + 2 = 4

La matrice d’adjacence M d’un graphe orienté G possède également la remarquable propriété


suivante :

Théorème

Soit G = (S, A) un graphe simple tel que S  s1 , s2 , s3 , sn  ayant pour matrice d’adjacence

M  (mij )1i , j n .

Pour tout k  IN*, posons M  (mij )1i , j  n , M k étant la puissance algébrique de la matrice M
k (k)

(k)
(définie de la même façon qu’en calcul matriciel) (mij ) est égal au nombre de chemins de

longueur k allant du sommet si au sommet s j .

Exemple

Reprenons la matrice booléenne M du graphe G5 et déterminons le nombre de chemins de longueur


3 (au sens des arcs) allant du sommet E au sommet C. Un calcul de M 3 au moyen d’Excel donne

2 1 0 2 0
2 3 1 0 0 

M 3  0 1 2 0 1
 
1 0 1 3 1
 0 1 3 1 2 

Dans M 3 nous lisons m5,3  3


(3)

Donc après le théorème précédent, le nombre de chemins du sommet E (S5) au sommet C (S3) est
égal à 3.

Par contre, il n’existe aucun chemin de longueur 3 allant du sommet B au sommet D.

On devine aisément l’importance du théorème ci-dessus lorsqu’on manipule des graphes ayant une
multitude d’arcs.

Exercice

35
1-Combien y a-t-il de chemins de longueur 4 allant du sommet E vers le sommet D dans le graphe
G5 ?

2-Vérifier la réponse trouvée au 1 en dressant la liste explicite de ces chemins.

IV-Fonction ordinale sur l’ensemble des sommets orientés et sans circuit

Définition

Soit G un graphe orienté d’ordre n sans circuit, X un sommet donné de G.

On appelle niveau de X dans G la longueur du plus long chemin ayant pour extrémité finale le
sommet X. Nous noterons N (X) le niveau du sommet X

Exemple

Considérerons le graphe G6 ci-dessous

On peut vérifier par observation directe que ce graphe ne contient pas de circuit.

Déterminons par exemple le niveau du sommet H.

Une observation attentive de la représentation sagittale de G6 montre que N (H)= 7.

Lorsque le graphe étudié est suffisamment dense (c’est-à-dire avec un grand nombre d’arêtes) il
n’est pas facile de montrer qu’il ne contient pas de circuit ou de déterminer le niveau de certains de
ses sommets.

L’algorithme suivant appelé Algorithme de Demoucron permet de montrer qu’un graphe orienté
G possède un circuit, soit de trouver le niveau de chacun de ses sommets.

On peut l’exécuter aussi bien à partir de la matrice booléenne de G qu’à partir de son dictionnaire
des précédents.

36
À titre d’exemple d’application de cet algorithme, déterminons le niveau de chacun des sommets du
graphe orienté G6 défini par la matrice booléenne suivante :

A B C D E F G H I
0 1 0 1 1 0 0 0 0
0 0 1 1 0 0 0 0 0 

0 0 0 0 0 0 1 0 0
 
0 0 0 0 1 1 0 0 0
M G6  0 0 1 0 0 1 1 1 0
 
0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1 0
 
0 0 0 0 0 0 0 0 0
0 0 
 0 0 0 0 0 1 1

Étape 1 :

À partir de la matrice booléenne de G6 on peut établir une ligne L0 constituée des totaux en colonne
de M G6.

L0 : 0 1 2 2 2 2 3 3 1

Tous les sommets correspondants à des totaux nuls sont de niveau 0 ; notons Nk l’ensemble des
sommets de niveau k ; nous avons donc N 0   A

Étape 2

On soustrait terme à terme de L0 la somme des lignes de tous les sommets de niveau 0 et on obtient :

L1 : 0 2 0 1 2 3 2 2

N1   B, D

On réitère la procédure précédente.

Nous présentons ci-dessous le tableau complet des étapes successives de l’algorithme

A B C D E F G H I Niveaux
L0 0 1 2 2 2 2 3 3 1 N0 = A}
L1 X 0 2 1 1 2 3 3 1 N1 = B}
L2 X x 1 X 0 1 3 3 1 N2 = D}
L3 X x 1 x 0 1 3 3 1 N3 = E}

37
L4 X x 0 x x 0 2 2 1 N4 = C, F}
L5 X x x x x x 1 2 0 N5 = I}
L6 X x x x x x 0 1 x N6 = G}
L7 X x x x x x x 0 x N7= H}

Exécutons l’algorithme de DEMOUCRON à partir d’un dictionnaire des précédents.

X P(X) Niveau Sommets


A - 0 A}
B A1 1 B}
C B2 ; E4 2 D}
D A1 ; B2 3 E}
E A1 ; D3 4 C, F}
F D3 ; E4 5 I}
G C5 ; E4 ; l6 6 G}
H E4 ; G7 ; l6
7 H}
I F5

Commentaire de la méthode tabulaire

Le graphe étant orienté et sans circuit, il existe nécessairement au moins un sommet qui n’a pas de
précédent.

Soit Nk l’ensemble des sommets de niveau k  (k IN)

1-Dans N0 on met tous les sommets sans précédents et on élimine tous ces sommets de la colonne
P(X) ; on obtient ainsi un nouveau tableau.

2-Tous les sommets sans précédents dans le nouveau tableau passent dans N1 et on réitère le
processus d’élimination comme au 1 jusqu’à épuisement de tous les sommets.

Remarque

En procédant de façon méthodique on peut déterminer tous les ensembles Nk sans avoir à faire
plusieurs tableaux. Les chiffres en indice des sommets dans la colonne P (X) indiquent l’ordre dans
lequel ils sont rayés.

TAF :

Tracer le graphe ordonnancé par niveau

38
CHAPITRE V : GRAPHES VALUES ET PROBLEMES DE CHEMINS OPTIMAUX
L’objectif de ce chapitre est de déterminer le plus court chemin ou le plus long chemin dans un graphe
orienté et pondéré.

I. Graphes orientés et valués

Définition 1 :
Soit G  (S , A) un graphe orienté ou non ; on appelle valuation ou fonction de pondération sur le
V :A 
graphe G toute application : , a est un arc ou une arête.
a V ( a)

V (a) est appelé Valuation ou poids de l’arc (l’arête) a.


Dans la pratique, la valuation définie sur G peut modéliser : une distance, une durée de trajet, un coût
de transport, une capacité de transport, un degré de satisfaction.

Dans la suite de ce cours, le triplet G  (S , A,V ) désigne un graphe orienté et valué de fonction de
pondération V.
Exemples 1:

60
P5 P2

100
100 P1
150
120
P4 P3
70

Les quantités sur les arêtes représentent le nombre de donnée en Mo que peuvent échanger les postes
interreliés. Ce graphe non orienté d’ordre 5 valué modélise un réseau informatique. Le poids d’une
arête  X , Y représente la quantité de données en Mo que peuvent échanger les postes X et Y entre
eux par unité de temps.
Exemple 2

39
Définition 2 :
Soit C un chemin dans un graphe orienté et valué G  (S , A,V ) . On appelle longueur de C au sens de
la Valuation V, la somme des longueurs des arcs qui composent C.
Notons L(C), la somme des longueurs des arcs qui composent le chemin C.

L(C )   V (a )
aC

k 1
Autrement dit si C  (s1 ,s2 ,s3 ,..........., sk ) alors L(C )  V (s , s
i 1
i i 1 )

Exemple 3 :
Dans le graphe G1 précédent, considérons les chemins :

C1  ( A, E , F , H , G ) et C2  (C , B, F , H , G )
L(C1 )  V(A, E)  V(E, F)  V(F, H)  V(H, G)  10  6  19  30  65
L(C2 )  V(C , B)  V( B, F)  V(F, H)  V(H, G)  35  7  19  30  59

II. Problèmes de chemins optimaux dans un graphe orienté et valué


Dans nombre de situations concrètes (réseaux de communication, réseaux de transport, problèmes
d’ordonnancement, …), l’on est amené à déterminer le chemin le plus court ou le chemin le plus long
sur le graphe modélisant le problème :
o Soit d’un sommet donné à tous les autres sommets ;
o Soit entre deux sommets donnés.

1. Définition d’un chemin optimal

Définition 3:
Soit G  (S , A,V ) un graphe orienté et valué d’ordre n dont les sommets supposés numérotés de 1 à
n.

Posons donc S  ( X1 , X 2 , X 3 ,..........., X n )

Pour tout couple (i, j )  1, 2,3,..........., n , notons Cij l’ensemble de tous les chemins de X i à X j
2

dans G ;

Un chemin C de Cij est dit minimal au sens de la valuation V si C  Cij , L(C )  L(C )
' '
o
Un chemin C de Cij est dit maximal au sens de la valuation V si C  Cij , L(C )  L(C )
' '
o

40
Il existe différents algorithmes pour déterminer les chemins optimaux dans un graphe orienté et valué
selon que ce dernier possède ou non un circuit. On distingue :

 L’algorithme de Ford
 L’algorithme de Bellmam
 L’algorithme Djykstra

Dans ce cours, nous étudions l’algorithme de Ford qui s’applique au graphe orienté valué et sans
circuit.
2. Algorithme de Ford

Lorsque les sommets d’un graphe orienté valué et sans circuit, sont ordonnés par ordre de niveau
croissant, l’algorithme de Ford permet de déterminer facilement le chemin le plus court (ou le plus
long) d’un sommet X i à X j .

Algorithme de Ford pour le plus court chemin

L’objectif est de déterminer le plus court chemin de X i à X j dans G.

Phase 1 (prétraitement)
i. Ordonner les sommets de G par ordre de niveau croissant ;
ii. Eliminer tous les sommets X k différents de X i et de niveau inférieur ou égal à celui de
X i ainsi que tous les arcs incidents à X k ;
iii. Eliminer tous les sommets X k différents de X j et de niveau supérieur ou égal à celui de
X j ainsi que les arcs incidents à ces sommets.

On obtient alors un sous-graphe dans lequel X i est de niveau 0 et X j , de niveau maximal. A chaque
sommet X de ce sous-graphe est attaché deux paramètres :

 L( X )  Longueur du plus court chemin de X i à X


 Pred (X)=Précédent de X sur le plus court chemin de X j à X .

Algorithme de Ford
1ère écriture :

 Poser L( X i )  0
Tous les précédents d’un sommet X étant marqués, on a :
 L( X )  min Y P ( X ) L(Y )  V (Y , X ) où P(X) représente l’ensemble de tous les précédents
du sommet X.

2ème écriture :

41
* L( X i )  0
* L( X k )   X k  S '   X i 
tant que  ( X k , X h )  G ' avec L( X h ) L( X k )  Vkh
L( X h )  L( X i )  Vkh
Pred[X h ]  X k
Fin tant que
Exemple :
Appliquons l’algorithme de Ford au graphe G1 pour déterminer le plus court chemin du sommet D au
sommet G.
1. Commençons par ordonner les sommets de G1 par ordre de niveau croissant

X A B C D E F G H I
P(X) B C,D D A, C, D A, B, E E, F, H D, F, I D, E

N 0  D ; N1  C  ; N 2  B ; N 3   A ; N 4  E  ; N 5  F , I  ; N 6  H  ; N 7  G

2. Traçons le graphe G1 ordonné par niveau

L’application de l’algorithme de FORD à ce graphe devient plus aisée et permet d’obtenir


facilement les marques relatives à chaque sommet.

X D C B A E F I H G
L(X) 0 6 3 7 15 10 27 29 25
P(X) - D D B C B E F F

Conclusion : La longueur du plus court chemin de D à G est 25 ; ce chemin est (D, B, F, G).
Remarque :
L’algorithme de FORD s’applique également à la détermination du plus long chemin d’un sommet à
un autre ; dans ce cas il suffit de remplacer dans l’algorithme précédent, min par max dans la forme 1.

42
Illustration
Déterminons au moyen de l’algorithme de FORD, le chemin le plus long (en valeur et itinéraire) de C
à H dans le graphe G1.
Résolution
Après avoir éliminé le sommet D de niveau inférieur à celui de C et le sommet G de niveau supérieur à
celui de H ainsi que leurs arcs incidents, on obtient le sous-graphe ci-dessous :

X C B A E F I H
L(X) 0 3 7 17 23 29 49
P(X) - C B A E E E

Conclusion : Le plus long chemin de C à H a pour longueur 49 ; ce chemin est (C, B, A, E, I, H).
Remarque :
L’algorithme de FORD ne s’applique qu’à un graphe orienté et sans circuit.
Lorsque le graphe étudié est non orienté ou possède un circuit, on utilise d’autres algorithmes tels que
celui de BELLMAN ou celui de DJIKSTRA (ce dernier n’étant valable que pour les graphes à
pondérations positives).

43
CHAPITRE 6 : PROBLEME D’ORDONNANCEMENT

L’ordonnancement consiste à ordonner dans le temps un ensemble d’opérations contribuant à la


réalisation d’un même projet.
Le déroulement de ces diverses opérations (ou tâches) doivent respecter certaines contraintes qui
peuvent être :
1° soit des contraintes d’antériorité :
a) Une tâche j ne peut commencer lorsque la tache i est terminée ; (contraintes de succession).
b) Une tâche j ne peut commencer qu’un certain laps de temps après que la tâche i ait commencé

2° soit des contraintes de date :


Une tâche ne peut commencer avant une certaine date (indépendamment du fait qu’elle doit succéder
les autres tâches)
L’objectif consiste à minimiser la durée totale de réalisation du projet compte tenu de la durée nécessaire
à la réalisation de chacune des opérations et compte tenu des contraintes qu’elles doivent respecter.
EXEMPLE D’ILLUSTRATION
Les opérations de mise en jeu dans la construction d’un ensemble hydroélectrique sont les suivantes :
a) Construction des voies d’accès
b) Travaux de terrassement
c) Construction des bâtiments administratifs
d) Commande du matériel électrique
e) Construction de la centrale
f) Construction du barrage
g) Installation des galeries et conduites forcées
h) Montage des machines
i) Essais de fonctionnement

Les données du problème peuvent être formalisées sur le tableau ci-dessous :


Opérations Durée (en mois) Opérations pré-requises
A 4 -
B 6 A
C 4 -
D 12 -
E 10 B, C, D
F 24 B, C
G 7 A
H 10 E, G
I 3 F, H

Dans la colonne « Opérations pré-requises » figurent les opérations qui doivent être achevées pour que
puissent commencer l’opération correspondante à la ligne.
Le problème ainsi posé peut alors être schématisé sous la forme d’un graphe, selon deux modes de
représentation :

44
 La méthode M.P.M (Méthode des Potentiels Métra) de conception française.
 La méthode P.E.R.T («Program Evaluation Research Task ») de conception américaine.

I. GENERALITES
1. Définitions

Définition 1 : un projet est un ensemble de tâches concourantes à un même objectif global.


Exemple : construction d’un campus universitaire.
En général, les tâches composant un projet sont soumises aux contraintes d’antériorité et de dates,
chaque tâche étant caractérisée par sa durée minimale d’exécution.
Définition 2 : Ordonnancer un projet c’est organiser les différentes tâches qui le composent de façon
à le réceptionner dans le délai le plus court possible tout en tenant compte des différentes contraintes
sur les taches.

II. RESOLUTION D’UN PROBLEME D’ORDONNANCEMENT PAR LA


METHODE DES POTENTIEL METRA (FRANÇAISE)
1. Principe

Dans la méthode MPM, le projet étudié est modélisé par un graphe orienté valué et sans circuit
(GOVSC) dans lequel un sommet représente une tâche du projet et un arc une contrainte de succession.
En MPM, le schéma ci-dessous signifie que la tâche X de durée minimale d’exécution 5 unités de temps.
La tâche X de durée minimale d’exécution 5, doit être terminée avant que ne commence la tâche Y de
durée minimale d’exécution 6 unités de temps.

TX T*X 5 TY T*Y 6
X Y

Exemple :
Support (voir fiche)

Tâches Durée Tâches pré-requises


A 4 - N0 ={𝐴, 𝐶, 𝐷}
B 6 A 𝑁1 = {𝐵, 𝐺}
C 4 - 𝑁2 = {𝐸, 𝐹}
D 12 -
𝑁3 = {𝐻}
E 10 B, C, D
𝑁4 = {𝐼}
F 24 B, C
G 7 A
H 10 E, G
I 3 F, H

45
2. Construction du graphe MPM du projet EHE

0 0 4 4 7 7 22 24
A G H
4

4 4 10
B 10

0 6 4 6
C 10 10 24 34 34 3 37 37
F I FDT
4
0 2 12 12 14
D E

GRAPHE MPM DU PROJET

3. Détermination des calendriers au plus tôt et au plus tard

A chaque tâche X du projet, on associe deux dates notées TX et TX*.


TX T X*
A

a) Date de démarrage au plus tôt (*)

C’est la date à laquelle la tâche X peut démarrer au plus tôt. Elle est notée T X et se calcule au moyen de
l’algorithme de Ford pour le plus long chemin jusqu’au sommet X. Les sommets de niveau 0 ont 0 dans
la première case de chaque sommet.
Au réseau ainsi construit, on ajoute également :
o Un sommet ‘’Début’’ représentant le début des travaux, de durée nulle et précédant tous les
sommets sans prédécesseur ;
o Un sommet ‘’Fin’’ représentant la fin des travaux, de durée nulle et succédant à tous les sommets
sans successeur

 Toute tâche n’ayant pas de prédécesseur est appelée « tâche commençante »


 Toute tâche n’ayant pas de successeur est appelée « tâche finissante »
 Lorsque plusieurs tâches précèdent une même tâche, elles sont dites convergentes.

b) Date de démarrage au plus tard.

C’est la date à laquelle la tâche X doit démarrer au plus tard. Elle est notée T X*et se calcule par
l’algorithme de Ford du plus court chemin en sens inverse en partant de la tâche fin de travaux (marche
du scarabée). La date de fin des travaux est égale à : TFin=T*Fin
Si MT(X)=0 alors on a une tâche critique

46
Une tâche critique à sa marge libre ML(X)=0 et MT(X)=0
4. Calcul des marges

A chaque tâche X de projet, on associe deux nombres positifs appelé marge totale et marge libre de X,
respectivement noté MT(X) et ML(X).
a) Marge totale

C’est le retard maximal que l’on peut accuser dans le démarrage ou dans l’exécution de la tâche X sans
allonger le délai optimal de livraison du projet. Elle est donnée par la formule MT(X)= TX*- TX.
Exemples :
MT(A)=0-0=0
MT(C)= 6-0=6
MT(D)=2-0=2
MT(B)=4-4=0
Toute tâche x telle que MT(X)=0 est appelée tâche critique et l’ensemble des tâches critiques constitue
le chemin critique du projet. Dans notre exemple de projet, le chemin critique est (A, B, F, I, FDT).
Utilisation concrète des MT(X) (MT(X)=ddd tard-ddd tôt)
Tout retard de n unités de temps (udt) au démarrage ou dans l’exécution de la tâche X n’aura aucun
impact si le délai optimal de livraison n  MT ( X ) . Mais un retard de n  MT ( X ) udt engendre un
retard de n'  n  MT ( X ) sur la durée globale du projet.

b) La marge libre ML(X)

C’est le retard maximal que l’on peut accuser au démarrage ou dans l’exécution de la tâche X sans
modifier la date de démarrage au plus tôt de l’une au moins de ses tâches suivantes. Elle se calcule par
la formule
ML(X)= min {𝑇𝑌 − 𝑇𝑋 − 𝑑𝑋 }
𝑌𝜖𝑆(𝑋)

Où TY est la date de démarrage au plus tôt de la tâche suivante de X, dX la durée de X. On montre que
ML  X   MT  X  .

ML  C   min TE  TC  dC ; TF  TC  dC 
Dans l’exemple du projet EHE
 min 12  0  4;10  0  4  6

Définition :
On appelle date de fin d’une tâche X sa date de début plus sa durée.

Date de fin au plus tôt de X : TX  d X

Date de fin au plus tard de X : TX*  d X

Exemple
Date de fin au plus tôt (G)=4+7=11

47
Date de fin au plus tard de E =14+10=24
5. Tableau récapitulatif

tâche durée Date de début Date de fin MT(X) ML(X)


Au + tôt Au + tard Au + tôt Au + tard
A 4 0 0 4 4 0 0
B 6 4 4 10 10 0 0
C 4 0 6 4 10 6 6
D 12 0 2 12 14 2 0
E 10 12 14 22 24 2 0
F 24 10 10 34 34 0 0
G 7 4 17 11 24 13 11
H 10 22 24 32 34 2 2
I 3 34 34 37 37 0 0
FDT 0 37 37 37 37 0 0

III. LA METHODE PERT (AMERICAIN)


1. Principe

Dans la méthode PERT, le projet étudié est modélisé par un GOVSC dans lequel chaque arc représente
une tâche et sa valuation la durée d’exécution la durée d’exécution minimale de la tâche. En PERT, les
différents sommets du graphe numérotés de façon topologique et appelé évènement représente les
différentes étapes de l’évolution du projet.
En PERT, le schéma ci-dessous signifie que :

- la tâche A de durée minimale 5 udt qui démarre à l’étape 1 doit être terminé à l’étape 2
avant que ne commencent les tâches B et C de durées d’exécution minimale respectives 6 et
8 udt.

Exercice

Tâche Durée Tâche antérieure


A 4 - A(4)
B 3 -
C 5 A, C(5)
D 7 A, B

B(3) D(7)
Au niveau de C, il y’a une ambiguité.

A NE PAS FAIRE

48
2. Introduction des tâches fictives

A(4) C(5)

B(3) D(7)

Tâche Durée Tâche antérieure


A 4 - A et B des tâches successives
B 3 A
B et C des tâches simultanées
C 5 A,
D 7 B, C

A(4) B(3)

C(5)

D(7)

3. Construction du graphe du graphe PERT du projet EHE

Tâche commençante : {A, C, D} ; tâche finissante : {i} ; tâche convergentes : {B, C, D}, {B, C}, {E,
G} , {F,H}.
En PERT, les sommets ne sont pas des tâches. Ce sont les étapes.

49
D(12) E(10)
22|24
0|0 12|14
5
1 A(4) 4

4|4 H(10)
10
2 G(7)
C(4)
B(6) 34|34
I(3)
6 37|37
10|10
7
3 F(247)

4. Détermination des dates attendues au plus tôt et au plus tard des (évènements)
différentes étapes du projet

A chaque étape n°x du projet, on associe deux dates appelées date attendue au plus tôt et date attendue
au plus tard de cette étape. Elles sont respectivement notées tx et tx*

tx tx*

tx est calculée par l’algorithme de Ford du plus long chemin jusqu’au sommet n°x et tx* par l’algorithme
Ford en sens inverse du plus court chemin (marche du scarabée).
Interprétation concrète de tx et tx*
Pour tout sommet n°x, tx représente la date de démarrage au plus tôt de toutes les tâches qui partent du
sommet x ( qui admettent comme x, l’extrémité initiale )
Exemple : la date de début au plus tôt de la tâche E est 12 et sa date de fin au plus tard est 24.
Les graphes PERT ne donnent pas la date de début au plus tard.
tx* représente la date de fin au plus tard de toutes les tâches qui se terminent au sommet n°x.
Sommet critique et tâche critique
Un sommet n°x du graphe PERT est dit critique si tx= tx*. Une tâche X=(x,y) est dite critique si et
seulement si elle appartient au chemin le plus long.
Remarque
Si X=(x,y) , alors les sommets n°x et n°y sont des sommets critiques. Mais la réciproque est fausse.
(confère la tâche C )

50
IV. DIAGRAMME DE GANTT DU PROJET EHE.

E H

B F I

4 10 22 32 34 37

51
CHAPITRE 7 : Réseaux de transport et problèmes de flots
Objectif Principal : Transporter sur un réseau de transport la plus grande quantité possible de matière
Exercice : Problème de transport
Question : Le flot ci-dessous est-il complet ? Quelle est sa valeur ? Maximal ? Sinon trouver une
chaine améliorante et le rendre maximal. Donnez sa valeur maximale.

2- Définitions
D1 : on appelle réseau de transport tout graphe orienté valué et sans circuit, (GOVSC) Ɽ = (Ŋ, a,c,e,s),
ayant un seul sommet et sans précédent appelé entrée du réseau ou source et un seul sommet sans
suivant appelé sortie du réseau ou puits.
Ŋ = ensemble des sommets ou nœuds du réseau
A = ensembles des arcs
C = fonction de capacité (pondération sur a)
C:a R+
c:u c(u) capacité de l’arc u
Pour chaque arc u, c(u) représente la quantité maximale de matière qui peut traverser la liaison u per
unité de temps.
EXEMPLE DE Rdt

Position du problème
Etant donné un réseau de transport Ɽ (Ŋ, a, c, e, s), on suppose que nous disposons de la matière en
nœud d’entrée et que l’on veut transporter au nœud de sortie s. Il s’agit d’exploiter les différentes
liaisons de ce réseau tout en tenant compte de leur capacité de transport.
 On suppose également que tout ce qui est envoyé à partir () sans perte au nœud de sortie s. Il
n’y a donc pas de stagnation de matière aux nœuds intermédiaires appelés nœuds de transit.

52
D2 Notion de flot sur un réseau de transport
Soit Ɽ () RdT. On appelle flot sur Ɽ toute application
F:a R+
U f(u), qui vérifie les propriétés suivantes
P1 : ɏ u ϵ a ; 0 ≤ f(u) ≤ c(u)
P2 : Pour tout nœud X ε Ŋ - { e, s }, la somme

∑ f(u) = ∑ f(u)
u ϵΓ− (X) u ϵΓ+ (X)

Où Γ-(X) désigne l’ensemble des arcs entrants de X et Γ+(X) l’ensemble des arcs sortant de X.
P3: ∑ u ϵΓ−(e) f(u) = ∑ u ϵΓ+(s) f(u)

D3 : 𝐹 = ∑ u ϵΓ+(s) f(u) est appelé valeur du flot à un instant donnée

D4 Soit Ɽ un réseau de transport muni d’un flot f. Un arc u de a est dit saturé si f(u) est égal à c(u) : f(u)
= c(u)
Exemple
Sur le réseau de transport ci contre les arcs (e, A) et (c, L) sont saturés.
D5 On appelle capacité résiduelle de l’arc u le réel positif Cr (u) est égal à C(u)- f(u) : Cr (u) = C(u) – f(u)
Exemple
Sur le réseau de transport ci-contre, la capacité résiduelle est
Cr (e, A) = 30 - 30 = 0
Cr (e, B) = 20 - 20 = 0
Cr (e, C) = 45-35=10
Remarque
U est saturé si et seulement si sa capacité résiduelle est nulle Cr (u) = 0
D6 Un chemin C allant de e à s est dit saturé si l’un au moins de ses arcs est saturé.
Exemple
Sur le graphe ci-contre, le chemin (e, C, G, s) est saturé.
D7 Un arc inverse (ie traversé mentalement en sens interdit () traversé en sens inverse est dit saturé si
le flux de matière qui circule dans son sens est nul. F(u) = 0
Exemple
Sur le réseau de transport ci contre, l’arc inverse (E, A) est saturé tandis que l’arc inverse (E, B) ne l’est
pas.

53
D8 Une chaine ℓ allant de e à s est dite saturé si l’un au moins de ses arcs directs ou l’un au moins de
ses arcs inverse est saturé.
Exemple
La chaine (e, C, H, B, F, s) est saturée et (e, C, G, A, E, B, F, s) n’est pas saturée
D9 Notion de flot complet
Un flot (est dit complet) sur un réseau de transport est dit complet si tous les chemins allant de e à s
sont saturés
Considérons le chemin (e, S, B, H, s)

arc u Cr (u)
(e, c) 10
(C, G) 5
(A, E) 5
(B, F) 10
(F, s) 10

II Le problème de flot maximal


Etant donné un réseau à capacité R = (N, a, c, e, s) comment utiliser les différentes liaisons de ce
réseau pour transporter la plus grande quantité possible de matière de nœud d’entrée e vers le nœud
de sortie s tout en tenant compte des différentes capacités de transport de ces liaisons ? C’est le
problème du flot maximal. On démontre qu’un flot maximal est nécessairement complet mais la
réciproque est fausse.
Comment partir alors d’un flot complet pour obtenir le flot maximal La solution de ce problème est
donné par l’algorithme de Ford – Fulkerson.
Description de l’algorithme de Ford – Fulkerson
Initialisation : on marque l’entrée e d’in signet (±)
- On marque ensuite tout suivant X de e du symbole e tel que (e, X) n’est pas saturé.
- Pour tout autre sommet X marqué, on marque tous ses suivants marquables et tous ses
précédents marquables en tenant compte des notions de saturation précédente.
 Un suivant y de x est marquable si l’arc (x,y) n’est pas saturé
 Un précédent z de x est marquable si e f ((z, x))ǂ 0

En appliquant cette procédure de marquage ou notre réseau, il ne nous est pas possible de marquer s.
C’est la preuve que ce flot est maximal et de valeur 85.
Résolution du problème du réseau de transport
1. Le flot est complet car tous les chemins allant de e à s sont tous saturés. La valeur du flot
complet est de 85 = (30+20+35).
54
2. Mais ce flot n’est pas maximal car l’on peut encore trouver au moins une chaine améliorante
par la procédure de marquage. Une chaine améliorante est :
(e, C, G, A, E, B, F, s).

En appliquant l’algorithme du marquage et en posant   min( , ,  ,, )

La valeur du flot maximal est de 90= (10+25+15+25+15)

55

Vous aimerez peut-être aussi