0% ont trouvé ce document utile (0 vote)
42 vues48 pages

P1 + P2 Cours

Transféré par

elahmediahmedyassine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
42 vues48 pages

P1 + P2 Cours

Transféré par

elahmediahmedyassine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 48

Université Mohamed Premier

Faculté des Sciences


Département de Mathématiques

Polycopié du cours
Recherche Opérationnelle

Filière : SMI - S5

Prof A. EL AMROUSS

Année universitaire : 2020/ 2021

1
Table des matières

1 Programmation linéaire : Généralités 6


1.1 Exemple Introductif : . . . . . . . . . . . . . . . . . . . . . . 6
1.1.1 Modélisation mathématique : . . . . . . . . . . . . . . 6
1.1.2 Résolution graghique : . . . . . . . . . . . . . . . . . . 7
1.2 Formulation d'un programme linéaire (PL) . . . . . . . . . . . 8
1.2.1 Dénition générale d'un programme linéaire . . . . . . 8
1.2.2 La forme canonique d'un programme linéaire . . . . . . 9
1.2.3 Forme standard d'un programme linéaire écrit sous la
forme canonique : . . . . . . . . . . . . . . . . . . . . . 10
1.2.4 Régles de transformation . . . . . . . . . . . . . . . . . 10

2 La méthode du simplexe 12
2.1 Base, solution de base, solution de base réalisable . . . . . . . 12
2.2 Méthode du simplexe : Méthode des tableaux . . . . . . . . . 12
2.2.1 Pratique de la méthode du simplexe sur un exemple . . 13
2.2.2 Construction des tableaux du simplexe sur cet exemple 14
2.2.3 Algorithme de la méthode du simplexe . . . . . . . . . 15
2.3 Méthode du simplexe. Complexité : Nombre d'itérations . . . 17

3 Dualité en programmation linéaire 18


3.1 Dualité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.1 Programme primal et dual : . . . . . . . . . . . . . . . 18
3.2 Interprétation économique de la dualité : . . . . . . . . . . . . 19
3.3 Résultats d'existence du problème dual . . . . . . . . . . . . . 20
3.3.1 Théorème fondamental de dualité : . . . . . . . . . . . 20
3.3.2 Passage du dernier tableau du simplexe primal au der-
nier tableau du simplexe dual : . . . . . . . . . . . . . 21
3.4 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4 La théorie des graphes : Généralités 23


4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2
4.2 Dénitions et concepts de base . . . . . . . . . . . . . . . . . 25
4.3 Quelques types de graphes : . . . . . . . . . . . . . . . . . . . 27
4.4 Chemins et circuits- Chaînes et cycles : . . . . . . . . . . . . 29
4.5 Représentation matricielle d'un graphe : . . . . . . . . . . . . 31
4.5.1 Utilisation de la matrice d'adjacence . . . . . . . . . . 32
4.6 Coloration de graphe . . . . . . . . . . . . . . . . . . . . . . . 33
4.6.1 Colorations des Sommets . . . . . . . . . . . . . . . . . 33
4.6.2 Algorithme de Welsh et Powell . . . . . . . . . . . . . 33
4.6.3 Colorations des arrêtes . . . . . . . . . . . . . . . . . . 34

5 Le problème du plus court chemin 36


5.1 Introduction : . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.2 Algorithme de Dijkstra (1959) . . . . . . . . . . . . . . . . . . 37
5.3 Algorithme de Bellman-Ford(1956) . . . . . . . . . . . . . . . 39

6 Problème d'ordonnancement : Méthode PERT 42


6.1 Introduction : . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.1.1 Historique . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.1.2 Projet . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.1.3 Objectifs de la méthode PERT . . . . . . . . . . . . . 43
6.2 Déscription de La méthode PERT . . . . . . . . . . . . . . . . 43
6.2.1 Dénitions . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.2.2 Graphe PERT : . . . . . . . . . . . . . . . . . . . . . . 45
6.3 Marges des tâches et chemin critique : . . . . . . . . . . . . . 46

3
Avant-propos
La recherche opérationnelle (RO) (aussi appelée aide à la décision) est une
approche quantitative permettant de produire de meilleures décisions. Faire
de la recherche opérationnelle consiste en pratique à modéliser mathémati-
quement un problème donné puis à résoudre le problème modélisé : on cite
par exemple :

- gérer les soins de santé dans les hôpitaux ;


- planier des systèmes de livraison ou de transport en commun ;
- concevoir des systèmes de communication et des systèmes informatiques ;
- établir des horaires de travail, de cours ou des calendriers sportifs ;
- choisir des politiques économiques et nancières.

Ce cours est divisé en deux parties :

La première partie traite de la programmation linéaire. On y apprend


à modéliser des problèmes sous la forme de programmes linéaire et à les
résoudre soit par la méthode graphique ou la méthode du simplexe.
Cette technique utilisée par la majorité des entreprises (banques, éduca-
tion, industrie pétrolière, transport, compagnies aériennes, ...).
La deuxiéme partie traite la théorie des graphes et ses applications. Les
exemples qui accompagnent cette partie :
- Comment aller le plus vite , par exemple , d'Oujda à Tanger, en voiture ?
c'est à dire trouver un plus court chemin entre ces deux villes → Problème
du plus court chemin dans les graphes.
- Comment ordonnancer les tâches d'un projet en fonction de la main
d'oeuvre, tout en minimisant sa durée ? → Problème de la méthode perte
(problèmes d'ordononcement).
- Envoi d'un maximum d'informations dans un réseau. → Problème du
ot maximum.

4
Bibliographie
-[1] F. Droesbeke, M. Hallin , CL. Lefevre, Programmation linéaire par l'exemple,
ellipses, 1986.
-[2] J. Teghem, Programmation linéaire , ellipses, 1996.
-[3] R. Faure, B. Lrmaire, CH. Piconleau, Précis de recherche opérationnelle,
Dunod, 1993.
-[4] M. Gondran , M. Minoux, Graphes et algorithmes, Eyrolles, Paris, 1979.
-[5] F. Droesbeke, M. Hallin , CL. Lefevre, Les graphes par l'exemple, ellipses,
1987.

5
Chapitre 1

Programmation linéaire :

Généralités

1.1 Exemple Introductif :


Une usine fabrique deux types de produits( bureaux et tables). La fabri-
cation de chaque type nécissite de la matiére première (bois) et deux types
d'activités : menuiserie et nition. La quantité de chaque ressource ainsi que
le prix de vente (en Dh) relatifs à la fabrication de chaque produit sont
données dans le tableau suivant :

Bureau T able
Bois(plaque) 8 6
Menuiserie+ Finition(heure) 2 3
Prix de vente(Dh) 600 300

l'usine dispose de 48 plaques de bois, de 18 heures de menuiserie et de nition.


Le problème de l'usine est de déterminer les quantités de chaque produit de
sorte à maximiser le revenu.

1.1.1 Modélisation mathématique :


Notons x1 le nombre de bureaux et x2 le nombre de tables à produire.
L'usine cherche à maximiser le revenu associé à une production (x1 , x2 ) c'est
à dire maximiser la fonction objectif :

max z = 600x1 + 300x2 . (1.1)

6
Il ne faut pas dépasser les quantités disponibles pour l'usine de chaque res-
source, les contraintes suivantes devront être satisfaites :

8x1 + 6x2 ≤ 48
(1.2)
2x1 + 3x2 ≤ 18

Finalmement on peut pas produire des quantités négatives. On a évidement


les deux contraintes de positivité :

x1 ≥ 0, x2 ≥ 0 (1.3).

L'ensemble formé de (1.1), (1,2) et (1.3) est donné par




 max z = 600x1 + 300x2 .
s.c. 8x1 + 6x2 ≤ 48,

(P )

 2x1 + 3x2 ≤ 18,
x1 ≥ 0, x2 ≥ 0.

s'appelle un programme linéaire.

1.1.2 Résolution graghique :


Résoudre graphiquement le programme linéaire(P ) donné ci- dessus.
x1
6

S
S
S
S
Q
Q S
Q
Q S → 4x1 + 3x2 = 24
Q S
Q S
Q
Q S
Q S
Q
QS
QSQ
A SQ
A
A S QQ
A S Q
A S Q
Q
Q→ domaine réalisable
A S Q
A S Q
A S Q
A S Q -
Q
A S Q
Q → 2x1 + 3x2 = 18 x2
→ 2x1 + x2 = 0 S
A S Q
A Q
A
A
A
A 7
A
A
Il s'agit donc de chercher à l'intérieur de ce domaine le couple (x1 , x2 )
maximisant la fonction économique. le chire d'aaires réalisé par cette usine
est
z = 600x1 + 300x2 .
Remarquons que la droite 600x1 + 300x2 = 0 passe par l'origine et donne une
valeur nulle à la fonction économique.
Pour augmenter le revenu il sut de déplacer la droite d'équation 600x1 +
300x2 = 0 parallélement de gauche à droite. 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 avec le domaine admissible.
La droite optimale (qui correspond à un chire d'aaire maximal est celle
qui passe par le point (6, 0) et donc z = 600 × 6 + 300 × 0 = 3600(DHs).
Remarquons que la solution optimale est un sommet de la région achurée et
cette région est un convexe.

1.2 Formulation d'un programme linéaire (PL)


1.2.1 Dénition générale d'un programme linéaire
 n
P
max z = cj x j




 i=1
n


 P


 s.c. aij xj ≤ bi , i ∈ I ⊂ {1.......m},
j=1


n
(P ) P
akj xj ≥ bk , k ∈ K ⊂ {1.......m},

j=1


n


 P


 arj xj = br , r ∈ R ⊂ {1.......m},
r=1



 xj ≥ 0, j = 1........n. (1.4)

 Le problme (P ) est appelé programme linéaire en abrégé PL.


 L'ensemble I, K et R sont disjoints et I ∪ K ∪ R = {1.......m}.
 L'abbréviation s.c. signie "sous les contraintes".
Les variables x1 , ...., xn sont appelées les variables de décision du pro-
blème.
 La fonction linèaire à optimiser est appelée la fonction économique
(ou parfois fonction objectif ou fonction objet).
 Les contraintes prennent la forme d'équations et d'inéquations li-
néaires.
 Les contraintes (1,4) contraintes de positivité.

8
 Les aij sont des coecients techniques issus du processus étudié, les
bi représentent le plus souvent des seuils d'activité ou des quantités
de resources disponibles.
 les cj sont des bénéces ou des coûts issus de la comptabilité.
Interprétation géométrique :
 L'ensemble des solutions d'une inéquation (linéaire) correspond à un
demi-espace dans Rn (un demi-plan dans R2 ).
 L'ensemble des solutions d'une inéquation (linéaire) correspond à un
hyperplan dans Rn (une droite dans R2 ).
 L'ensemble des solutions d'un système d'équations et d'inéquations
(linéaires) correspond à l'intersection des demi-espaces et des hyper-
plans associés à chaque élément du système.
 Cette intersection, appelée domaine réalisable, est convexe et dénit
un polyédre dans Rn ( une région polygonale dans R2 ).
Terminologie :
 La terminologie programme est due à G.B. Dantzig, pére de l'algo-
rithme du simplex (1947).
 Une solution est réalisable si elle est satisfaite toutes les contraintes
du problème (y compris les contraintes de positivité).
 Une solution d'un programme linéaire est dite optimale si elle est
réalisable et optimise la fonction objectif z .
Résultat d'un PL :
Le domaine réalisable d'un PL peut être :
 vide : Dans un tel cas le problème ne possède pas de solution optimale.
 borné . Le problème possède toujours au moins une solution optimale,
quelle que soit la fonction économique.
 non borné . Dans ce cas, selon la fonction objectif choisie le problème
peut possèder des solutions optimales ou non (la valeur maximale de
la fonction économique sera +∞).

1.2.2 La forme canonique d'un programme linéaire


 n
P



 max z = cj x j
 i=1
n
(P1 ) s.c. P
aij xj ≤ bi , i = 1.......m,



 j=1
xj ≥ 0, j = 1........n.

 Toutes les contraintes sont de type "≤".


 Toutes les variables sont positives.

9
Ecriture Matricielle

 max z =< c, x >
(Pcan ) s.c. Ax ≤ b,
x ≥ 0,

   
c1 x1
 .
où c =  ,x =  . 
  
 .   . 
cn x
 n  
a11 . . a1n b1
 . . . .   ∈ Mm,n (R) et b =  . .
 
A=  . . . .   . 
am1 . . amn bm
 La forme linéaire s'appelle fonction coût ou fonction objectif .
 La matrice A s'appelle matrice des contraintes.
 Le vecteur b s'appelle second membre des contraintes.

1.2.3 Forme standard d'un programme linéaire écrit


sous la forme canonique :
On passe de la forme canonique à la forme standard en ajoutant dans
chaque contrainte une variable d'écart ti :
n
X n
X
aij xj ≤ bi → aij xj + ti = bi
j=1 j=1
 n
P



 max z = cj x j
 i=1
Pn
 s.c. aij xj + ti = bi , i = 1.......m,


 j=1
xj ≥ 0, j = 1........n, ti ≥ 0, i = 1........m.

 Toutes les contraintes sont des équations.


 Toutes les variables sont positives.
 Les variables t1 , ...., tm sont appelées variables d'écart.
Exercice : Vérier que toute soulution du PL écrit sous la forme standard
est une solution du PL écrit sous la forme canonique.

1.2.4 Régles de transformation


 Minimisation ↔ Maximisation : min f (x) = − max(−f (x)). Pour
maximiser Z =< c, x > il sut de minimiser w = − < c, x > et

10
de multiplier la valeur optimale de w par −1 pour obtenir celle de z .
 Inéquation ” ≥ ” ↔ inéquation ” ≤ ”.
n
X n
X
aij xj ≥ bi ↔ − aij xj ≤ −bi .
j=1 j=1

 Equation → inéquation ” ≤ ”,
n

P
X n


 aij xj ≤ bi
j=1
aij xj = bi ↔ n
P
 − aij xj ≤ −bi

j=1 
j=1

 Inéquation → équation : On ajoute une variable d'écart,


n
X n
X
aij xj ≤ bi ↔ aij xj + ti = bi , ti ≥ 0.
j=1 j=1

n
X n
X
aij xj ≥ bi ↔ aij xj − ti = bi , ti ≥ 0.
j=1 j=1

Exercice : Vérier que tout PL écrit sous la forme générale est converti à
un PL écrit sous la forme canonique.

11
Chapitre 2

La méthode du simplexe

2.1 Base, solution de base, solution de base


réalisable
Considérons un système d'équations Ax = bà n variables
 et m équations
b1
 . 
indépendantes où n ≥ m, A ∈ Mm,n (R) et b = 
 . ∈R .
 m

bm
Dénition 2.1 On dit que (xi1 , ....., xim ) est une base si la sous-matrice
construite sur les colonnes (i1 , ....., im ) est inversible.
On dit alors que les m variables sont les variables de base et que les n − m
variables restantes sont les variables hors base.
Dénition 2.2 On appelle solution de base de ce système une solution où
les n − m variables hors base sont xées à 0, on obtient une solution unique
en résolvant les m contraintes du système.
Dénition 2.3 Une Solution de base est réalisable si toutes les variables de
la solution de base sont ≥ 0. Cette solution de base réalisable correspond à
un sommet du polyédre {x ∈ Rn + | Ax = b}.

2.2 Méthode du simplexe : Méthode des ta-


bleaux
La résolution d'un programme linéaire par la méthode du simplexe est gé-
néralement présentée sous la forme des tableaux successifs, appelés tableaux
simplexe.

12
2.2.1 Pratique de la méthode du simplexe sur un exemple
Considérons le programme linéaire suivant :


 max z(x) = x1 − x2
 s.c. 2x1 − x2 ≥ −2


(P ) x1 − x2 ≤ 2
x1 + x2 ≤ 5




x1 , x2 ≥ 0

a) Mettre le programme sous forme canonique :




 max x1 − x2
 s.c. −2x1 + x2 ≤ 2


(P ) x1 − x2 ≤ 2
x1 + x2 ≤ 5




x1 , x2 ≥ 0

b) Mettre les contraintes sous forme d'égalités (introduire les va-


riables d'écarts) :


 max x1 − x2
 s.c. −2x1 + x2 + t1 = 2


(P ) x1 − x2 + t2 = 2
x1 + x2 + t3 = 5




x1 , x2 , t1 , t2 , t3 ≥ 0

PL équivalent 

 t1 = 2 + 2x1 − x2
t 2 = 2 − x1 + x2



t 3 = 5 − x1 − x2
z = x1 − x2




max z s.c x1 , x2 , t1 , t2 , t3 ≥ 0

1. Solution de base réalisable initiale : x1 = x2 = 0, t1 = 2, t2 =


2, t3 = 5; z = 0.
 x1 , x2 variables hors base.
 t1 , t2 , t3 variables de base.
Si on augmente x1 en maintenant x2 = 0, z sera augmenté.
2. De combien ? x1 ≤ 2 et x1 ≤ 5 car t2 , t3 ≥ 0. D'où x1 = 2.
3. Nouvelle solution ? x1 = 2, x2 = t2 = 0, t1 = 6, t3 = 3; z = 2.
 t1 , x1 , t3 variables de base et par suite t2 variable sortante et x1
variable entrante.

13
 t2 , x2 variables hors base.
4. Reformuler le système an d'exprimer les variables x1 , t1 , t3 en
fonction de x2 , t2 .


 t1 = 6 − 2t2 + x2
x1 = 2 − t2 + x2


 t3 = 3 + t2 − 2x2
z = 2 − t2

5. Peut on faire mieux ? Non car t2 ≥ 0 et donc z ≤ 2. Par suite, la


nouvelle solution est une solution optimale.

2.2.2 Construction des tableaux du simplexe sur cet


exemple
La forme de tableaux est un formalisme plus facile à manipuler ,mais
qui eectue les mêmes opérations. Chaque itération est représentée par un
tableau.
1) Formation du tableau initial :
β x1 ↓ e x2 t1 t2 t3 (S0 )i (S0 )i /αie
t1 -2 1 1 0 0 2 2/-2=-1
s ← t2 1 -1 0 1 0 2 2/1=2
t3 1 1 0 0 1 5 5/1=5
1 -1 0 0 0 0

β = {t1 , t2 , t3 }, (0, 0, 2, 2, 5) est le sommet initial,


La variable entrante x1 , la variable sortante t2 et le pivot est a21 = 1.

2) Formation du deuxième tableau :


* Opération de Pivotage

β x1 x2 t1 t2 t3 (S1 )i
t1 0 -1 1 2 0 6
x1 1 -1 0 1 0 2
t3 0 2 0 -1 1 3
0 0 0 -1 0 2

La nouvelle base est β1 = {t1 , x1 , t3 },

14

L2
∗L02 = .


1



 ∗L01 = L1 + 2L02 .


∗L03 = L3 − L02 .
∗ L04 = L4 − L02 .




 2
 ∗ z0 = z + .


1
c̄j ≤ 0, ∀j .
S1 = (2, 0, 6, 0, 3) est un sommet optimal.

(2, 0) est une solution optimale de (P) et max z = 2.

2.2.3 Algorithme de la méthode du simplexe


Considérons le programme suivant :
 n
P
 max z = cj x j


i=1
(P )

 s.c. Ax ≤ b,
 x ≥ 0,
où    
a11 . . a1n b1
 . . . .   ∈ Mm,n (R) et b =  . .
 
A=  . . . .   . 
am1 . . amn bm
Avant que l'algorithme du simplexe puissse être utilisé pour résoudre un
tel programme linéaire, on doit mettre les contraintes sous forme d'égalités(
introduire les variables d'écarts). On a
n

P


 max z = cj x j
j=1
(Pst )

 s.c. Ax + t = b,
x, t ≥ 0,

où  
t1
 . 
t=  . .

tm
Remarque : Nous allons traiter le cas où toutes les variables de b sont po-
sitives. Chaque itération est représentée par un tableau de la forme

15
β x1 ..... xe ... xn t1 ... tm (S)i (S)i /αie
xi 1 α11 .... α1e ... ... α1n+m b̄1
.... ... ... ...
.... ... ... ...
... ... ... ...
xi m αm1 .... αme .... ... ... αmn+m b̄m
c̄1 ..... c̄e ... ... ... c̄n+m z

Principe de l'algorithme du simplexe


Le principe est le suivant :
1. Initialisation : Le tableau initial se construit de la manière suivante :
b̄i = bi , les c̄j correspondent aux coecients des variables dans la
fonction objectif z du (Pst ), les αij correspondent aux coecients des
contraintes du (Pst ) et z = 0.
2. Critère d'optimalité : Si c̄j ≤ 0, j = 1, ...., n, alors STOP, (la solu-
tion optimale est trouvée).
3. Choix de colonne pivot (variable à entrer en base) : Si 2) n'est
pas veriée, choisir une colonne e, telle que c̄e > 0.
4. Choix de ligne pivot (variable à sortir de la base) :
(a) Si αie ≤ 0, i = 1, ...., m, alors STOP, (la fonction objective n'est
pas bornée).
(b) Sinon, choisir une ligne s, telle que

b̄s b̄i
= min{ |i = 1, ..., m, αie > 0}.
αse αie

5. Opération de pivotage (passage d'un tableau au tableau sui-


vant) : Soit s l'indice la ligne pivot et e l'indice de la colonne pivot.
Soit αse 6= 0 le pivot de la transformation. Considéons Li la ième ligne
de tableau initial et L0i la ième ligne du nouveau tableau.
Si 
Ls
∗ i = s, L0s = .


αse


 ∗ i 6= s, 1 ≤ i ≤ m, L0 = L − αie L = L − a L0 .



i i s i ie s
αse
0 0
 ∗ Lm+1 = Lm+1 − c̄e Ls .


b̄s


 ∗ z 0 = z + c̄e .


αse
6. Ecrire le nouveau tableau ; retourner à l'étape 2.

16
Remarque :
1)- Pour un programme linéaire à minimum on suit la même procédure ,
mais on renverse les inégalités dans 2) et 3) du principe de l'algorithme du
simplexe.
2)- Dans le cas où les composantes du second membre bi ne sont pas tous
positifs il y a une diculté de trouver une solution de base de départ réali-
sable .Pour remédier ce problème il y a La possibilité d'ajouter les variables
articielles mais cette méthode est couteuse en terme de calcul.

2.3 Méthode du simplexe. Complexité : Nombre


d'itérations
Dans la pratique :
- Le nombre d'itérations est proportionnel au nombre de contraintes ini-
tiales (typiquement entre 3m
2
et 3m).

- Le nombre d'itérations croit très peu avec le nombre n de variables


initiales.
En théorie (au pire cas) :
Il existe des exemples qui nécessitent 2n itérations [Klee, Minty 1972].

17
Chapitre 3

Dualité en programmation

linéaire

3.1 Dualité
3.1.1 Programme primal et dual :
Soit le programme primal :

 max (c, x)
(P ) s.c. Ax ≤ b
x≥0

où c ∈ Rn , A ∈ Mm,n (R) et b ∈ Rm .
Son programme dual est dénit comme :

 min (b, y)
(D) s.c. A0 y ≥ c
y≥0

où A0 ∈ Mn,m (R) est la matrice transposée de A.


Exemple:
 Soit 

 max (x1 − x2 ) 
 max (x1 − x2 )
 s.c. 2x1 − x2 ≥ −2  s.c. − 2x1 + x2 ≤ 2

 

(P) x1 − x2 ≤ 2 ⇐⇒ x1 − x2 ≤ 2 .
x1 + x2 ≤ 5 x1 + x2 ≤ 5

 


 

x1 , x2 ≥ 0 x1 , x2 ≥ 0
 
Son dual est : 

 min (2y1 + 2y2 + 5y3 )
s.c. 2y1 − y2 − y3 ) ≤ 1

(D)

 −y1 + y2 − y3 ≤ −1
y1 , y2 , y3 ≥ 0

18
Proposition 3.1 Le dual du dual est le primal.
Preuve : Voir [T.D.]

3.2 Interprétation économique de la dualité :


la notion de la dualité est très importante pour le mathématicien car dans
le cas où le primal a beaucoup de contraintes, le dual peut être plus facile à
résoudre que le primal.
pour l'économiste et le gestionnaire, la dualité est très importante.
Exemple : Une usine fabrique des bureaux des tables et des chaises. La
fabrication de chaque produit nécissite de la matiére première (bois) et deux
types d'activités : menuiserie et nition. La quantité de chaque ressource, le
prix de revient (en Dh) relatifs à la fabrication de chaque produit et ainsi
que la quantité de ressource disponible chez l'entreprise sont données dans le
tableau suivant :
Bureau T able Chaise Disponibilité
Bois(plaque) 8 6 1 48
Menuiserie(heure) 2 3
2
1
2
8
Finition(heure) 4 2 3
2
20
Prix de revient(Dh) 600 300 200

Le problème de l'usine est de déterminer les quantités de chaque produit de


sorte à maximiser le revenu.
Formulation mathématique :
Notons x1 le nombre de bureaux et x2 le nombre de tables à produire. L'usine
cherche à maximiser le revenu associé à une production (x1 , x2 , x3 ) c'est à
dire maximiser la fonction objectif :

max z = 600x1 + 300x2 + 200x3 .

Il ne faut pas dépasser les quantités disponibles pour l'usine de chaque res-
source. D'où le problème de l'entreprise :


 max z = 600x1 + 300x2 + 200x3
 s.c. 8x1 + 6x2 + x3 ≤ 48


(P ) 2x1 + 32 x2 + 12 x3 ≤ 8
4x1 + 2x2 + 32 x3 ≤ 20




x1 , x2 , x3 ≥ 0

19
Maintenant, supposons qu'un entrepreneur veut acheter toutes les res-
sources de l'usine (bois, heure menuiserie, heure nition). Il veut certaine-
ment que le prix total de ses ressources soit minimal.

On dénit alors :
- y1 = prix d'une plaque du bois.
- y2 = prix d'une heure de menuiserie.
- y3 = prix d'une heure de nition.

L'entrepreneur doit payer w(y) = 48y1 + 8y2 + 20y3 et désire minimiser w,


mais il doit payer susament pour convincre l'usine de vendre ses ressources
car l'entreprise peut utiliser ces ressources pour fabriquer un bureau et le
vendre avec 600Dh. L'entrepreneur doit payer au moins 600Dh, sinon l'usine
ne verra aucune raison de lui vendre ses ressources. Ceci implique
8y1 + 2y2 + 4y3 ≥ 600.
De même on a
3
6y1 + y2 + 2y3 ≥ 300,
2
et
1 3
y1 + y2 + y3 ≥ 200,
2 2
avec y1 , y2 , y3 ≥ 0. Ces variables sont appelés coûts fectifs ou prix ombre.
Le problème de l'entrepreneur est :


 min w = 48y1 + 8y2 + 20y3
 s.c. 8y1 + 2y2 + 4y3 ≥ 600


(D) 6y1 + 23 y2 + 2y3 ≥ 300
y1 + 12 y2 + 32 y3 ≥ 200




y1 , y2 , y3 ≥ 0

Remarque 3.1 1. Il est évident de remarquer que (D) est le dual de (P ).


2. le programme dual vu comme le problème d'une entreprise concurente
qui estime pouvoir utiliser les facteurs de production d'une façon e-
cace.

3.3 Résultats d'existence du problème dual


3.3.1 Théorème fondamental de dualité :
Téorème 3.1 Si le primal (P ) a au moins une solution réalisable notée xb
et le dual (D) a au moins une solution réalisable notée yb. Les propriétès sui-

20
vantes sont équivalentes :
i) 
b et yb sont des solutions optimales de (P ) et (D) respectivement .
x
x (A0 yb − c) = 0, ∀i = 1, ...., n.
ii) y i(b − Abx) i = 0, ∀i = 1, ...., m (conditions de complémentarité ou condi-
i i
tions des écarts complémentaires)
iii) (c, xb) = (b, yb).

Nous avons aussi le résultat suivant :


Téorème 3.2 Les propriétès suivantes sont équivalentes :
i) (P ) admet une solution optimale notée xb .
ii) (D) admet une solution optimale notée yb.
iii) Le primal et le dual ont chacun au moins une solution réalisable.

3.3.2 Passage du dernier tableau du simplexe primal au


dernier tableau du simplexe dual :
Considérons les programmes primal et dual suivants :

max z = x2 − x1 
min w = 2y1 + 2y2 + 5y3


 s.c. 2x1 − x2 ≥ −2

 

s.c. 2y1 − y2 − y3 ≤ 1

(P ) x1 − x2 ≤ 2 (D)
−y1 + y2 − y3 ≤ −1
x1 + x2 ≤ 5

 

y1 ≥ 0, y2 ≥ 0, y3 ≥ 0

 
x1 , x2 ≥ 0

Le dernier tableau du simplexe de (P ) est :

β x2 x2̄ x1̄ x1 x3̄ (S)i


x1̄ -1 2 1 0 0 6
x1 -1 1 0 1 0 2 Le sommet optimal est (2, 0, 6, 0, 3). La
x3̄ 2 -1 0 0 1 3
0 -1 0 0 0 2
solution optimale est (2,0) et la valeur optimale est z = 2.

Le dernier tableau du simplexe du problème dual (D) est obtenu comme


suit :

β y2̄ y2 y1 y1̄ y3 (S 0 )i
y2̄ 1 0 1 1 -2 0
y2 0 1 -2 -1 1 1
0 0 6 2 3 2

21
x1̄ ←→ y1 ;
x2̄ ←→ y2 ;
x3̄ ←→ y3 ;
x1 ←→ y1̄ ;
x2 ←→ y2̄ .
Le sommet : 0 1 0 0 0 la solution optimale : la valeur
 
0 1 0
optimale : w(S 0 ) = 2.

3.4 Résumé
Pour un problème de programmation linéaire exactement une des trois
possibilités suivantes peuvent exister :
1. Il y a une solution optimale.
2. Le problème est non borné.
3. Le problème est non réalisable.

Téorème 3.3 Etant donné un probléme primal (P) et son dual(D) , une et
une seule des trois situations suivantes a lieu :
a) Les deux problèmes possèdent chacun des solutions optimales.
b) Un des problèmes possèdent une solution réalisable avec un optimum inni,
l'autre n'a pas de solutions.
c) Aucun des deux problèmes ne possèdent pas de solutions réalisables.
Il y a donc trois situations qui peuvent se résumer dans le tableau suivant :
P/D solution optimale optimum inni pas de solution
solution optimale possible impossible impossible
optimum inni impossible impossible possible
pas de solution impossible possible possible

22
Chapitre 4

La théorie des graphes :

Généralités

4.1 Introduction
La théorie des graphes, issue de l'analyse combinatoire, est sans doute ap-
parue au XVIIIe siècle avec le célèbre problème, soumis à Euler, des ponts de
Königsberg. Consistant en l'étude d'objets nommés graphes, elle permet de
modéliser des problèmes de mathématiques discrètes de manière plus simple
et plus intuitive. Aujourd'hui la théorie des graphes trouve ses applications
principalement dans d'autres domaines des mathématiques et en informa-
tique, mais aussi en sciences sociales (réseaux ou transport) ou en gestion
(méthode PERT).
Problème des sept ponts de Königsberg
Ce problème est un des problèmes fondateurs de la théorie des graphes, pro-
posé par le mathématicien suisse Leonhard Euler en 1736. En 1652, la ville
de Königsberg (aujourd'hui Kaliningrad) possède sept ponts enjambant la
Pregel, qui coule de part et d'autre de l'île de Kneiphof.
Au cours d'une promenade, est-il possible de passer sur tous les ponts de la
ville une et une seule fois ?

23
Organisation d'une d'une session d'examens :
Des étudiant A,B,C,D,E et F doivent passer des examens dans diérentes
disciplines, chaque examen occupant une demi-journée :
Chimie étudiants A et B.
Électronique étudiants C et D.
Informatique étudiants C,E,F et G.
Mathématique étudiants A,E,F et H.
Physique étudiants B,F,G et H.
On cherche à organiser la session d'examens la plus courte possible.
On peut représenter chacune des disciplines par un sommet, et relier par des
arrêtes les sommets correspondant aux examens incompatibles (ayant des
étudiants en commun).

24
4.2 Dénitions et concepts de base
Graphe :
Un graphe G est constitué de 2 ensembles X et U . X est un ensemble non
vide de sommets ou n÷uds . U est un ensemble de paires de sommets de X .
Ces paires sont appelés arêtes, et on le note G = [X, U ].
Les graphes G = [X, U ] peuvent être considérés comme des schémas, repré-
sentant simplement la structure d'un problème, ils sont généralement déter-
minés par la donnée de :
ı) Un ensemble ni X = {x1 , · · · , xn } les éléments appelés sommets.
ıı) Un ensemble ni U = {u1 , · · · , un } dont les éléments sont des couples de
sommets appelés arêtes. U est donc une famille d'éléments du produit carté-
sien X × X = {(xi , xj ) | xi ∈ X et xj ∈ Y }.
Graphe non orienté :
Dans un graphe non orienté, la paire de sommets (xi , xj ) n'est pas ordonées.
Autrement dit, les (xi , xj ) et (xj , xi ) représentent la même arête.
Graphe orienté :
Dans un graphe orienté, la paire de sommets (xi , xj ) est ordonée ; xi étant
l'extrimité d'origine et xj l'extrimité nale, on ne parle plus d'arête mais
d'arc. par suite, (xi , xj ) et (xj , xi ) représentent deux arcs diérents. Il nous
arrivera parfois dans la suite par souci de simplication, de noter un arc
(xi , xj ) soit par (i, j).
•Exemples : Graphe non orionté

G1 = {(a, b); (a, c); (b, c); (b, e); (b, d); (c, e)}.

Graphe orionté

G2 = {(b, a); (c, a); (c, b); (b, e); (d, b); (e, c)}.

Voici quelques dénitions de base utilisées dans la théorie des graphes :


•Ordre d'un graphe :
Nombre de sommets d'un graphe.
•Boucle :
Une boucle est une arête reliant un sommet à lui même.

25
•Adjacence :
Deux arêtes sont adjacentes s'elles ont une extrémité en commune.
Deux sommets sont adjacents (ou voisins) s'il existe un arc, ou une arête, les
reliant.
Un sommet qui n'a pas de voisin est dit isolé.
•Successeur - Prédécesseur :
Dans l'arc (x, y), y est un successeur de x et x est un prédécesseur de y .
•Arcs (arêtes) incidents à un sommet :
Soit u = (x, y) un arc (qui n'est pas une boucle ) de G, il est dit incident à
x vers l'extérieur et incident à y vers l'intérieur.
Dans les deux cas, on dit que l'arc u est un arc incident aux sommets x et y .
Convention On utilise également l'appellation arc entrant pour incident
vers l'intérieur et arc sortant pour incident vers l'extérieur.
•Degré :
Le degré d'un sommet x d'un graphe non-orienté est le nombre d'arêtes in-
cidentes à ce sommet.
Par convention, une boucle touchant deux fois le sommet sera compté comme
deux arêtes incidentes à x.
Dans un graphe orienté, le nombre d'arcs incidents à x vers l'extérieur est
noté d+ G (x) et s'appelle le demi-degré extérieur de x. Par analogie le demi-
degré intérieur de x, noté d− G (x), représente le nombre d'arcs incidents à x
vers l'intérieur, le degré dG (x) d'un sommet x est alors égale à d+
G (x) + dG (x).

•Exemple :

Les degrés des sommets du graphe ci dessus sont donnés dans le tableau sui-
vant :

Sommet a b c d e f g h
Degré 1 2 2 5 3 1 3 3

26
4.3 Quelques types de graphes :
Graphe Simple :
Un graphe est dit simple s'il n' a pas d' arêtes doubles ni boucles.
p-Graphe :
Un p-graphe est un graphe tel qu'il n'existe pas plus de p arêtes de la forme
(x, y) entre deux sommets x et y .
Graphe symétrique :
Un graphe est symétrique si deux sommets adjacents sont toujours reliés par
deux arcs
(x, y) ∈ U ⇐⇒ (y, x) ∈ U .
Graphe antisymétrique :
Un graphe est antisymétrique si deux sommets ne sont jamais reliés par deux
arcs.
(x, y) ∈ U ⇒ (y, x) ∈ /U
Attention : Il ne faut pas confondre graphe symétrique / anti-symétrique
avec graphe non orienté / orienté. Un graphe non orienté est fatalement sy-
métrique, puisqu'une arête est dénie par une paire de sommets, dans ordre
particulier. En fait, il n'y a aucune raison de parler de graphe symétrique ou
non lorsqu'on parle de graphe non orienté.
Par contre, un graphe orienté peut être symétrique ou anti-symétrique, ou ni
l'un ni l'autre.
Graphe complet : Un graphe simple est dit complet si deux sommets quel-
conques sont toujours adjacents.
•Exemples :

27
Graphe complet d'ordre 5

Sous graphe :
Étant donné un sous-ensembleA ⊂ X de sommets de G, le sous graphe GA
engendré par A est déni par GA =(A,UA ), où UA est l'ensemble des arcs de
U ayant leurs deux extrémités dans A.
Graphe partiel de G = (X, U )
Étant donné un sous ensemble d'arcs V ⊂ U , le graphe partiel engendré par
V est déni par (X,V).
Sous graphe partiel de G=(X,U) :
Étant donné A ⊂ X et V ⊂ U , le sous graphe partiel engendré par A et V
est le graphe partiel de GA =(A,VA ), engendré par V ∩ VA
. •Exemples :
Si par exemple G est un graphe représentant les lignes des bus de Oujda
celui qui représente les lignes de l'université est un graphe partiel. Celui qui
représente les lignes de l'université des bus Nour est un sous-graphe partiel.

28
4.4 Chemins et circuits- Chaînes et cycles :
Chemin-Circuit :
Un chemin est une suite d'arcs telle que chaque arc ait une extrémité com-
mune avec le suivant.
Si le dernier sommet coincide avec le premier sommet du chemin, un tel che-
min est appelé circuit.
La longueur d'un chemin est le nombre d'arcs dans le chemin.
Chaîne -Cycle :
Une chaîne dans G, est une suite ayant pour éléments alternativement des
sommets et des arêtes, commençant et se terminant par un sommet, et telle
que chaque arête est encadrée par ses extrémités.
Un cycle est une chaîne dont le dernier sommet est identique au premier.
Ces concepts de chaînes et cycles sont non orientés.
Chemin élémentaire : Un chemin élémentaire est un chemin ne passant
pas deux fois par le même sommet c'est à dire que tous les sommets qui le
composent sont tous distincts
Chemin simple :
Un chemin (resp. une chaîne) est " simple " si il (resp. elle) ne comporte pas
plusieurs fois le même arc (resp. la même arête). ne passe pas deux fois par
la même arc (resp. la même arête) c'est à dire que tous les arcs (resp. les
arêtes ) qui le composent sont tous distincts
Chemin hamiltonien :
Un chemin (resp. une chaîne) " hamiltonien " (resp. hamiltonieiie) est un che-
min (resp. une chaîne) élémentaire quipasse une fois et une seule par chaque
sommet du graphe.
Chemin eulérien :
Un chemin (resp. une chaîne) " eulérien " (resp. eulérienne) est un chemin
(resp. une chaîne) simple qui passe une fois et une seule par chaque arc du
graphe
•Exemples :

29
- (U,R,T,V,S) chaine Hamiltonienne non eulérienne.
- (U,R,T,V,S, U) chaine eulérienne non Hamiltonienne.

30
4.5 Représentation matricielle d'un graphe :
Matrice d'adjacence :
On considère G 1-graphe de n sommets numérotés de 1 à n, la matrice d'ad-
jacence est une matrice carée A = (ai,j ) dans chaque ligne et chaque colonne
se réfère à un sommet du graphe. L'existence d'un arc (i, j) se traduit par
la présence d'un 1 à l'intersection de la ligne i et de la colonne j , l'absence
d'arc par la présence d'un 0.
Il peut enn caractérisé par M = (ai,j ), si (i, j) ∈ U, ai,j = 1 sinon ai,j = 0
•Exemple

Les matrices d 'adjacence assiciées sont représentées comme suit


 
0 1 1 0 0
1 0 1 1 1
 
1 1 0 0 1
 
0 1 0 0 0
0 1 1 0 0
On peut remarquer que la matrice est symétrique.

 
0 0 0 0 0
1 0 0 0 1
 
1 1 0 0 0
 
0 1 0 0 0
0 0 1 0 0
Cette matrice n'est pas symétrique.

31
4.5.1 Utilisation de la matrice d'adjacence
On note M k = M × ...... × M , le produit k fois de la matrice M .
Proposition : Soit G un graphe orienté (respectivement non orienté) d'ordre
n et soit M sa matrice d'adjacence. Alors pour tout entier k > 0 et pour tout
couple de sommets(i, j) ∈ {1, 2, ..., n},  L'élément M k (i, j) est le nombre
de chemins (respectivement chaînes) de longueur k de i vers j .  L'élément
M k (i, i) est le nombre de circuits (respectivement cycles) de longueur k à
partir de i.

32
4.6 Coloration de graphe
Les problèmes de coloration de graphes apparaissent dans de nombreux
contextes.
Un premier exemple : Conjoncture Francis Guthrie (1852)
Peut-on colorier toutes les cartes géographiques avec quatre couleurs, de telle
sorte que toute paire de pays voisins aient des couleurs distinctes ?
1879 : preuve de Kempe.
1890 : la preuve de Kempe est fausse (Heawood).
1977 : preuve assistée par ordinateur, par Appel et Haken.
1997 : Robertson, Sanders, Seymour et Thomas simplient la preuve.
2005 : Gonthier valide la preuve avec Coq.
Un deuxième exemple : est celui de la planication d'une session d'exa-
mens d'une université. Si V est l'ensemble des cours et si une arête lie deux
cours ayant au moins un étudiant en commun, le nombre chromatique est le
nombre minimum de périodes permettant de planier des examens, de telle
sorte que chaque étudiant puisse passer tous ses examens.

4.6.1 Colorations des Sommets


Soit G un graphe sans boucles.

Dénition 4.1 La coloration des sommets d'un graphe consiste à aecter à


tous les sommets de ce graphe une couleur de telle sorte que deux sommets
adjacents ne portene pas la même couleur.
Si k couleurs sont utilisés , on parle de k− coloration.
Le plus petit entier k pour lequel existe une k− coloration des sommets est
appelé le nombre chromatique du graphe G, noté γ(G).

4.6.2 Algorithme de Welsh et Powell


1. Repérer le degré de chaque sommet.
2. Ranger les sommets par ordre de degrés décroissants (dans certains cas
plusieurs possibilités).
3. Attribuer au premier sommet (A) de la liste une couleur.
4. Suivre la liste en attribuant la même couleur au premier sommet (B)
qui ne soit pas adjacent à (A).
5. Suivre (si possible) la liste jusqu'au prochain sommet (C) qui ne soit
adjacent ni à A ni à B.
6. Continuer jusqu'à ce que la liste soit nie.

33
7. Prendre une deuxième couleur pour le premier sommet (D) non encore
coloré de la liste.
8. Répéter les opérations 4 à 7.
9. Continuer jusqu'à avoir coloré tous les sommets.
Exemple :

Les couleurs attribués aux sommets du graphe ci dessus sont données dans
le tableau suivant :

Sommet a b c d e f g h
Degré 1 2 2 5 3 1 3 3
Sommets ordonés d e g h b c a f
Couleur attribuée Rouge Bleu Bleu Jaune Bleu Rouge Bleu Jaune

4.6.3 Colorations des arrêtes


Soit G un graphe sans boucles.

Dénition 4.2 La coloration des arrêtes d'un graphe consiste à aecter à


tous les arrêtes de ce graphe une couleur de telle sorte que deux arrêtes ad-
jacentes ne portene pas la même couleur.
Si k couleurs sont utilisés , on parle de k− coloration.
Le plus petit entier k pour lequel existe une k− coloration desarrêtes est ap-
pelé l'indice chromatique du graphe G, noté γ(G).
Remarque : Pour colorer les arrêtes d'un graphe, on peut se ramener au
problème de la coloration des sommets. il sut pour cela de travailler sur le

34
graphe adjoint , noté G0 , et que l'on dénit ainsi :
- à chaque arrête de G correspond un sommet de G0 .
-deux sommets de G0 sont reliés par une arrête si selement si les deux arrêtes
correspondantes de G sonts adjacentes.
Exemple :

35
Chapitre 5

Le problème du plus court chemin

5.1 Introduction :
De nombreux problèmes concrets se traduisent par la recherche d'un che-
min de longueur minimale :
 recherche de l'itinéraire le plus court (valuation d'un arc = distance entre
deux villes).
- recherche de l'itinéraire le plus rapide (valuation d'un arc = temps pour
parcourir la route entre deux villes).
 routage dans des réseaux
 etc.

Dénition 5.1 Un graphe orionté (G, U ) est dit valué si à chaque arc u on
lui associe un nombre `(u) ∈ R appelé "valuation de u". Cette valuation peut
représenter une distance, un temps, un coût,...
La valuation d'un chemin µ quelconque, notée `(µ), est alors dénit comme
la somme des valuations des arcs qui le composent :
X
`(µ) = `(u).
u∈µ

Un problème fondamental, et qui se pose fréquemment dans les applications,


est celui de la recherche de chemins de valuation minimale (on dit aussi "plus
court chemin") ou maximale. Pour résoudre ce problème il existe plusieurs
algorithmes, Bellman-Ford, Bellman-Kalaba, Dijkstra ...., permettant d'ob-
tenir de tels chemins.
La recherche du plus court chemin sera de trois types :
1. Recherche du plus court chemin d'un sommet à un autre.

36
2. Recherche du plus court chemin d'un sommet à tous les autres.
3. Recherche du plus court chemin entre tous les couples de sommets.
Par la suite, on considère G = (X, U, `) un graphe orionté valué simple et
connexe, avec X = {x1 , x2 , ....., xn }.
Un graphe est dit connexe S'il existe toujours une chaîne ou un chemin entre
deux sommets quelconques.

5.2 Algorithme de Dijkstra (1959)


Cet algorithme permettra de trouver les plus court chemins de x1 (sommet
de départ) aux autres sommets du graphe xi , 2 ≤ i ≤ n et sous la condition
que les valeurs des valuations `(xi , xj ) sont toutes positives. Il présente de
grands avantages de rapidité dans son application.
Notons par λ(xi ) = la valeur la plus courte du chemin allant de x1 à xi .

Algorithme : (:= désigne "devient")


1. Initalisation Posons λ(x1 ) = 0, λ(xi ) = ∞, i ≥ 2, sélectionner xp =
x1 ; S = {x1 } .
2. Pour xi ∈ / S , on remplace λ(xi ) par min(λ(xi ), λ(xp ) + `(xp , xi )), ∀i tel
que (xp , xi ) ∈ U .
3. xp := le sommet de X \S pour lequel λ(xp ) est minimum. S := S {xp }
S

4. Si S = X , Fin ; sinon retourner en 2).

Remarque : S'il se faisait que plusieurs valeurs λ(xp1 ) = λ(xp2 ) = ...... =


λ(xpl ) réalisent ce minimum, tous peuvent être inclus à S ; l'instruction 2. de
l'algorithme devient :
Pour xi ∈ / S , on remplace λ(xi ) par min(λ(xi ), λ(xp1 )+`(xp1 , xi ), ........, λ(xpl )+
`(xpl , xi )), ∀i tel que (xpj , xi ) ∈ U, j = 1, ..., l.

EXEMPLE :
Considérons le graphe orionté suivant

37
Notons parλ(.) le plus court chemin de A à un sommet et par p(.) le
prédécesseur d'un sommet.
Itération 0 :
λ(A) = 0, λ(B) = λ(C) = λ(D) = λ(E) = λ(F ) = ∞.
Itération 1 :
λ(A) = 0, λ(B) = min(λ(B), λ(A) + `(A, B)) = min(∞, 0 + 7) = 7, λ(C) =
min(λ(C), λ(A) + `(A, C)) = min(∞, 0 + 3) = 3, λ(D) = λ(E) = λ(F ) = ∞.
Nous présentons l' algorithme de DIJKSTRA sous forme du tableau suivant

38
Les valuations les plus courtes de A à tous les autres sommets et des prédé-
cesseurs sont donc respectivement :
λ(A) = 0, λ(B) = 6, λ(C) = 3, λ(D) = 9, λ(E) = 8, λ(F ) = 10. et p(B) =
C, p(C) = A, p(D) = E, p(E) = C, p(F ) = D.
Le plus court chemin de A à B est ACB.
Le plus court chemin de A à C est AC.
Le plus court chemin de A à D est ACED.
Le plus court chemin de A à E est ACE.
Le plus court chemin de A à F est ACEDF.

5.3 Algorithme de Bellman-Ford(1956)


L'algorithme de Bellman-Ford est un algorithme qui permet de trouver
des plus courts chemins, depuis un sommet source donné aux autres sommets,
pour des valuations quelconques. Contrairement à l'algorithme de Dijkstra,
l'algorithme de Bellman-Ford autorise la présence de certains arcs de va-
luation négative et permet de détecter l'existence d'un circuit absorbant,
c'est-à-dire de valuation totale négative, accessible depuis le sommet source.
Pour que le problème admette une solution d'un chemin de longueur maxi-
male nie nous supposerons cependant que le graphe G étudié ne comporte
aucun circuit de longueur positive.
Principe : A partir de λ(x1 ) = 0 et λ(xi ) = ∞∀i 6= 1 on parcourt séquentiel-
lement tous les arcs du graphe : pour chaque arc (xi , xj ) on teste si λ(xj ) ≤
λ(xi ) + `(xi , xj ) si ce n'est pas le cas λj prend la valeur λ(xi ) + `(xi , xj ),
puis on teste l'arc suivant. Si, à l'issue d'une deuxième itération, λ(xi ) n'est
pas modié, il représente les valeurs plus courtes cherchées sinon un parcours
supplémentaire est nécessaire et cela jusqu'à stabilisation de λ(xi )

Algorithme :
1. Initalisation Posons λ(x1 ) = 0, λ(xi ) = ∞, i ≥ 2.
2. Pour chaque arc (xi , xj ) ∈ U , si λ(xj ) > λ(xi ) + `(xi , xj ) on remplace
λ(xj ) par λ(xi ) + `(xi , xj ).
3. Tant qu'il n'existe pas (xi , xj ) ∈ U tel que λ(xj ) > λ(xi ) + `(xi , xj ) ,
Fin ; sinon retourner en 2).

EXEMPLE : Considérons le graphe orionté suivant

39
Pour chaque itération considérons les arcs dans l'ordre lexicographique (ce
n'est pas obligatoire, tout ordre convient, mais c'est plus simple à gérer) c'est
à dire AB, AC, AD ; BA, BC, BD, BE ; CB, CE ; DB, DF ; EC, ED, EF ; FE.
Notons par p(.) le prédécesseur d'un sommet.
Itération 0 :
λ(A) = 0, λ(B) = λ(C) = λ(D) = λ(E) = λ(F ) = ∞.
Itération 1 :
AB : λ(B) = ∞ > λ(A) + `(A, B) = 0 + 7 = 7, d'où les modications
λ(B) = 7 et p(B) = A.
AC :λ(C) = ∞ > λ(A) + `(A, C) = 0 + 3 = 3, d'où les modications
λ(C) = 3 et p(C) = A.
AD :λ(D) = ∞ > λ(A) + `(A, D) = 0 + 13 = 13, d'où les modications
λ(D) = 13 et p(D) = A.
BC : λ(C) = 3 ≤ λ(B) + `(B, C) = 7 + 2 = 9, aucune modication.
BD :λ(D) = 13 ≤ λ(B) + `(B, D) = 7 + 6 = 13,aucune modication.
BE :λ(E) = ∞ > λ(B) + `(B, E) = 7 + 4 = 11, d'où les modications
λ(E) = 11 et p(E) = B .
CE : λ(E) = 11 > λ(C) + `(C, E) = 3 + 5 = 8, d'où les modications
λ(E) = 8 et p(E) = C .
DF : λ(F ) = ∞ > λ(D) + `(D, F ) = 13 + 1 = 14, d'où les modications
λ(F ) = 14 et p(F ) = D.
ED :λ(D) = 13 > λ(E) + `(E, D) = 8 + 1 = 9, d'où les modications
λ(D) = 9 et p(D) = E .
EF :λ(F ) = 14 > λ(E) + `(E, F ) = 8 + 3 = 11, d'où les modications
λ(F ) = 11 et p(F ) = E .

Itération 2 :
Dans le deuxième itération (tous les arcs du graphe doivent être testés, tou-

40
jours dans le même ordre : AB, AC, . . . , FE) la seule modication est :
DF : λ(F ) = 11 > λ(D) + `(D, F ) = 9 + 1 = 10, d'où les modications
λ(F ) = 10 et p(F ) = D.
Itération 3 :
Cette itération n'apporte rien, l'algorithme est donc terminé. Les valuations
les plus courtes de A à tous les autres sommets et des prédécesseurs sont
donc respectivement :
λ(A) = 0, λ(B) = 6, λ(C) = 3, λ(D) = 9, λ(E) = 8, λ(F ) = 10. et p(B) =
C, p(C) = A, p(D) = E, p(E) = C, p(F ) = D.
Remarque : Remarquons pour terminer que cet exemple met bien en évi-
dence la diérence d'ecacité en temps de ces deux algorithmes : l'algorithme
de DIJKSTRA est bien plus rapide et clair que celui de BELLMAN  FORD.

41
Chapitre 6

Problème d'ordonnancement :

Méthode PERT

6.1 Introduction :
6.1.1 Historique
La méthode PERT est une méthode utilisable en gestion de projet dé-
veloppée aux U.S. A en 1958 à la demande de la marine américainne pour
réaliser dans les meilleurs délais, le système d'armes Polaris. Le terme PERT
est l'acronyme de " Program Evaluation and review Technique". Elle résout
des problèmes appelés problèmes d'ordonnancement.
Le projet POLARIS représentait entre autres : - 250 fournisseurs, - 9000
sous-traitants, -7 ans de réalisation. La méthode permet de ramener la réa-
lisation de ce projet de 7ans à 4 ans.
D'autres méthodes utilisées en gestion de projet, on cite par exemple :
- "Méthode MPM" (Méthode des potentils Métra (1958)) méthode francaise
voisine de celle du PERT.
- " Critical Path method (CPM)".

6.1.2 Projet
Le projet est un ensemble de tâches ou opérations. En général, elles ne
pourront pas toutes être réalisées simultanément, certaines tâches devront
être achevées avant que d'autres ne puissent débuter.
On résumera l'information sur le projet sous la forme d'un tableau, appelé
dictionnaire, où seront indiquées les tâches, leur durée, et les contraintes
d'antériorité à respecter.

42
Exemple :
Tâches Taches antérieurs Durée
A  6
B  5
C A 4
D B 6
E C 5
F A,D 6
G E,F 4

6.1.3 Objectifs de la méthode PERT


La méthode PERT permet de répondre aux questions suivantes :
1. Quelle est la durée minimale du projet ?
2. Quand faut -il commencer et achever chacune de ces tâches ? (dates au
plus tôt et au plus tard).
3. Calculer les marges totales et les marges libres ?
4. Identier le chemin critique dans le réseau des tâches de ce projet ? (
détecter les parties de ce projet ne supportant aucun retard).

6.2 Déscription de La méthode PERT


6.2.1 Dénitions
Tâche : Opération qui évolue d'un état initial vers un état nal. La
tâche est représentée par un arc

Etape : une étape est le début ou la n d'une tâche. Elle est représentée
par un cercle

Date au plus tôt : Pour un sommet j , la date au plus tôt tj représente


le temps minimum nécessaire pour atteindre ce sommet ( on ne peut pas faire
mieux).
Date au plus tard : Pour un sommet j , la date au plus tard Tj représente
la date à laquelle ce sommet doit obligatoirement être atteint si l'on ne veut
pas augmenter la durée totale du projet.

43
Tâche antérieure : Tâche qui, par rapport à une autre, doit être réalisée
avant.
Tâche antécédente : Tâche immédiatement antérieure à une autre.
Tâches commençantes : Tâches qui n'ont pas des prédécesseurs (tâches
antérieures).
Tâches nissantes : Tâches qui n'ont pas des successeurs (qui n'apparît
pas dans les tâches antérieures).
Tâches simultanées : Tâches qui commencent en même temps et s'éxé-
cutent en même temps.
Tâches convergentes : Tâches qui s'éxécutent en même temps et s'achè-
ventt en même temps.
Tâches qui sont partout ensemble (i.e jamais l'une sans l'autre) dans la co-
lonne des tâches antérieures.
Exemple :

A et B tâches convergentes ; D et E tâches simultanées.

Tâche ctive : C'est une contrainte entre tâches non dépendantes. Une
tâche ctive a une durée nulle. Elle ne modie pas le délai nal. Elle est
représentée par une èche en pointillés. Par exemple, si la tâche F succède
aux tâches A et D, et que la tâche C succède seulement à la tâche A, on
représentera le problème de la manière suivante :.

44
Exemple :

6.2.2 Graphe PERT :


La méthode commence par la construction d'un graphe, appelé graphe
PERT, à partir de dictionnaire. Ce graphe sera un graphe valué dont les arcs
seront les tâches, les valeurs des arcs étant leur durée et les sommets repré-
senteront des étapes de la tâche, numérotés de 1 à n.
Pour construire un graphe PERT dans le cas général, on procèdera de la
manière suivante :
1) Détermination des niveaux des tâches :
On attribuera le niveau 0 aux tâches qui n'ont pas de tâche antérieure. On
attribuera le niveau 1 aux tâches dont les tâches antérieures sont de niveau
0.
On déterminera ainsi le niveau de chaque tâche : les tâches de niveau k + 1
seront les tâches dont les tâches antérieures sont de niveau inférieur avec au
moins une tâche de niveau k parmi elles.
Dans l'exemple :
Niveaux 0 1 2 3
A,B C,D E,F G
2) Détermination des dates au plus tôt :
La date au plus tôt se déterminera de proche en proche, par ordre de sommet
croissant, à partir de l'entrée du graphe. Ainsi :
t1 = 0 et tj = Max (ti + dij ) sur tous les i précédant j avec dij = durée de
la tâche ij (la tâche allant du sommet i au sommet j).

La date au plus tôt de la sortie du graphe représente la durée minimale


réalisable pour l'ensemble du projet, ( dans l'exemple, t7 = 21, le projet
durera donc au mieux 21 jours).

45
3) Détermination des dates au plus tard :
La date au plus tard se déterminera de proche en proche, mais par ordre de
sommet décroissant, depuis la sortie du graphe :
Tn = tn = Durée du projet et Ti = min(Tj − dij ) sur tous les j suivant i.
4) Construction du graphe PERT :

6.3 Marges des tâches et chemin critique :


Dénition 6.1 1. La marge libre d'une tâche représentera le retard maxi-
mal qu' on pourra prendre dans la réalisation d'une tâche sans retarder
le début des tâches suivantes, on la notera ML.
M Lij = tj − ti − dij .

2. La marge totale d'une tâche représentera le retard maximal qu' on


pourra prendre dans la réalisation d'une tâche sans retarder l'ensemble
du projet, on la notera MT.
M Tij = Tj − ti − dij .

Remarque 6.1
0 ≤ M L ≤ M T.

Dénition 6.2 Une tâche est dite critique si la marge totale est nulle.
L'ensemble des tâches critiques constitue le chemin critique.

46
Remarque : une tâche critique est une tâche "urgente", une tâche sur la-
quelle il ne faut pas prendre de retard si l'on ne veut pas augmenter la durée
totale du projet.
Dans l'exemple
Taches A B C D E F G
ML 0 0 0 0 2 0 0
MT 2 0 2 0 2 0 0
Ainsi, dans l'exemple, si la durée de la tâche E augment de 7 jours, le projet
durera 26 jours, soit 5 jours de plus (2 jours seront absorbés par la marge de
la tâche E).

47
Exercice :
La construction d'un entrepôt est découpée en dix tâches dont les caracté-
ristiques sont données dans le tableau suivant :

Tâches Nature T. A Durée


A Acceptation des plans par le propriétaire  4
B Préparation du terrain  2
C Commande des matériaux A 1
D Creusage des fondations A,B 1
E Commande des portes et des fenêtres A 2
F Livraison des matériaux C 2
G Coulage des fondations D,F 2
H Livraison des portes et des fenêtres E 10
I Pose des murs, de la charpente et du toit G 4
J Mise en place des portes et fenêtres H,I 1

Tracer le Graphe Pert et en déduire le chemin critique.

48

Vous aimerez peut-être aussi