Vous êtes sur la page 1sur 87

Mathmatiques Recherche Oprationnelle

Alain Billionnet
Notes de cours
20102011

Avertissement
Ce document ne prtend pas lexhaustivit dun cours.
Il se peut que des erreurs ou des fautes de frappe sy soient galement
glisses par mgarde, auquel cas je vous invite envoyer vos corrections
ladresse marc.vanderwal@ensiie.fr.
Jespre que ces notes vous seront nanmoins utiles pour vos rvisions.
Marc x0r van der Wal

Ce document est distribu sous la licence CreativeCommons Paternit Pas dUtilisation Commerciale Partage des Conditions Initiales lIdentique version 2.0. Pour plus dinformations :
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/

Table des matires


0 Introduction
Gnralits . . . . . . . . . . . . . . . . . . . . . . .
Types de problmes tudis . . . . . . . . . . . . .
Programmation linaire . . . . . . . . . . . .
Programmation linaire en nombre entiers
Alatoire/Stochastique . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

9
9
10
10
10
10

1 Programmation dynamique
1.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Exemple : Trac optimal dune autoroute . . . . . . . . .
1.3 Formalisation . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.1 Formules doptimisation squentielle . . . . . . . .
1.4 Deuxime exemple dapplication . . . . . . . . . . . . . . .
1.4.1 Reprsentation du problme en tant que graphe

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

11
11
11
12
13
13
15

2 Chemins optimaux dans les graphes


2.1 Position du problme . . . . . . . .
2.2 Algorithme de Dijkstra . . . . . . .
2.2.1 Exemple dapplication . . .
2.2.2 Preuve de lalgorithme . .
2.3 Algorithme de BellmanFord . . .
2.3.1 Exemple dapplication . . .
2.4 Algorithme de FloydWarshall . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

17
17
18
19
19
20
20
21

3 Flots dans les graphes


3.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Problme du flot maximal . . . . . . . . . . . . . . . . . .
3.2.1 Dfinitions . . . . . . . . . . . . . . . . . . . . . . .
3.2.2 Condition ncessaire et suffisante doptimalit .
3.3 Algorithme de FordFulkerson . . . . . . . . . . . . . . .
3.3.1 Lalgorithme . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

23
23
25
25
27
27
27

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

TABLE DES MATIRES

3.3.2 Exemple dapplication . . . . . . . . . . . . . . . . . . . . . . 29


4 Ordonnancement
4.1 Gnralits . . . . . . . . . . . . . . . . . . . . .
4.2 La mthode PERT . . . . . . . . . . . . . . . . .
4.2.1 Exemple de diagramme . . . . . . . . .
4.2.2 Exemple avec des tches fictives . . .
4.2.3 Dfinitions . . . . . . . . . . . . . . . . .
4.2.4 Marges relatives aux tches . . . . . .
4.2.5 Exemple dordonnancement datelier
5 Mthodes dnumration implicite
5.1 Ide sur un exemple . . . . . . . . . . .
5.2 Schma gnral . . . . . . . . . . . . . .
5.3 Application au problme du voyageur
5.3.1 Calcul du regret . . . . . . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

31
31
32
32
33
33
35
35

.
.
.
.

.
.
.
.

.
.
.
.

37
37
38
40
41

6 Programmation linaire
6.1 Problmes de production . . . . . . . . . . . . . . . . . . . . . .
6.1.1 Optimisation fractionnaire . . . . . . . . . . . . . . . . .
6.1.2 Interprtation gomtrique dun programme linaire .
6.1.3 Forme gnrale dun programme linaire . . . . . . . .
6.1.4 Base et solution de base . . . . . . . . . . . . . . . . . .
6.2 Algorithme du simplexe . . . . . . . . . . . . . . . . . . . . . . .
6.2.1 Caractrisation des solutions optimales . . . . . . . . .
6.2.2 Algorithme du simplexe pour la minimisation . . . . .
6.2.3 Mthode des tableaux . . . . . . . . . . . . . . . . . . . .
6.3 Initialisation de lalgorithme du simplexe . . . . . . . . . . . .
6.3.1 Problme auxiliaire : Mthode des 2 phases . . . . . .
6.3.2 Exemples dapplication . . . . . . . . . . . . . . . . . . .
6.3.3 Mthode des pnalits . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

43
43
44
45
45
46
48
48
52
52
54
55
56
59

.
.
.
.
.
.
.
.

61
61
61
63
65
68
68
69
70

.
.
.
.

.
.
.
.

7 Processus alatoires
7.1 Processus de Markov (sans mmoire) . . .
7.1.1 Processus de Poisson . . . . . . . .
7.1.2 Processus de naissance . . . . . . .
7.1.3 Processus de naissance et de mort
7.2 Chanes de Markov . . . . . . . . . . . . . .
7.2.1 Matrice associe . . . . . . . . . . .
7.2.2 Graphe associ une chane . . . .
7.2.3 Classification des tats . . . . . . .

.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

TABLE DES MATIRES

7.2.4 Distribution limite dune chane de Markov finie . . . . . 72


8 Phnomnes dattente
8.1 Systme un guichet . . . . . . . . . . . . . . . . . .
8.1.1 Nombre moyen de clients dans le systme
8.1.2 Nombre moyen de clients dans la file . . .
8.2 Systme plusieurs guichets identiques . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

75
75
76
77
77

9 Fiabilit des quipements


9.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2 Formes analytiques de la fiabilit et du taux davarie
9.3 Gnralisation de la loi exponentielle : loi Erlang-k .
9.4 Matriel dusure . . . . . . . . . . . . . . . . . . . . . . .
9.5 Fiabilit des systmes . . . . . . . . . . . . . . . . . . . .
9.5.1 Systme en srie . . . . . . . . . . . . . . . . . .
9.5.2 Systme en parallle . . . . . . . . . . . . . . . .
9.6 Probabilit de consommation . . . . . . . . . . . . . . .
9.7 Entretien prventif . . . . . . . . . . . . . . . . . . . . .
9.7.1 Calcul du cot moyen . . . . . . . . . . . . . . .
9.7.2 Conclusion . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

79
79
80
80
81
81
81
82
83
84
84
85

A Transforme de Laplace

.
.
.
.

87

TABLE DES MATIRES

Introduction
Gnralits
Bibliograhie
Faure, Lemaire, Picouleau, Prcis de Recherche Oprationnelle, Dunod.
Roseaux, Exercices et problmes rsolus de RO (3 tomes), Dunod.
But du cours
Savoir prendre les meilleures dcisions (critre doptimalit dfinir)
Dmarche scientifique
Aperu des grands domaines de la RO
Historique
Pascal, Fermat, Bernoulli
Monge : problme des dblais et des remblais
Fourier : systmes dquations linaires ( programmation linaire)
Borel, Von Neumann : thorie des jeux
Sainte-Lague, Konig : thorie des graphes
1956 : Recherche oprationnelle civile (les militaires sen taient appropris en premier), sorte daide la dcision
Domaines
1. Combinatoire
2. Alatoire
3. Concurrentiel
Exemple 1. Problme daffectation : on a n personnes et n postes. Chaque
personne inscrit sa prfrence pour un certain poste dans une grille. Comment
trouver laffectation qui maximise la somme des prfrences ?
Il y a n! solutions ; pour n = 4 cela en fait 24 ; pour n = 20, on atteint
8 1010 solutions.
9

INTRODUCTION

10

Un problme facile est un problme dont le nombre doprations est born


par un polynme.
Un problme difficile est un problme pour lequel il ny a pas dalgorithme
polynomial connu ; on conjecture quil nen existe pas.
Exemple 2. Rotation davions, dquipages. . .
Exemple 3. Problme du voyageur de commerce : traverser les villes dun pays
et retourner son point de dpart en minimisant le cot (trouver un circuit
hamiltonien de valeur minimale). Problme NP-difficile ; pour n villes il y a
(n 1)! chemins diffrents.

Types de problmes tudis


Programmation linaire
Il sagit doptimiser une fonction linaire :

n
X

min
cj x j

j=1

min c x
n
X
Ax = b

ai j x j = bi i 1, m

x 0

j=1

x i 0 i 1, m

Programmation linaire en nombre entiers


On remplace la contrainte x 0 par i 1, m, x i N, voire x i {0, 1}
(dnas le cas de prises de dcisions).

Alatoire/Stochastique
Problmes de files dattente, de fiabilit et de gestion des stocks. Par exemple, on souhaite tudier le temps moyen dattente une file dattente, et savoir
combien de guichets supplmentaires on doit ouvrir pour ramener ce temps
moyen une certaine valeur.

Chapitre 1
Programmation dynamique
1.1 Gnralits
Principe doptimalit de Bellman : Toute sous-politique dune politique optimale est optimale.
Par exemple, lorsquon a trouv un chemin optimal dun sommet A vers un
sommet B, et que les sommets C et D sont sur ce mme chemin, le chemin
optimal de C vers D est le sous-chemin qui emprunte une partie de celui de A
vers B.

1.2 Exemple : Trac optimal dune autoroute


On se donne le graphe en figure 1.1. On veut dterminer le trac de cot
minimal ; trac qui sexprime par
cot dun trac =

cots des tronons

Algorithme possible :
1. Chemin optimal depuis A jusqu chaque ville de la phase 2 :
x2
E
F
G
H

chemin optimal
AC E, ADE
AC F
ADG
AC H

cot
10
9
9
9

2. Chemin optimal depuis A jusqu chaque ville de la phase 3 :


11

CHAPITRE 1. PROGRAMMATION DYNAMIQUE

12

3
B

4
5

I
5

4
A

K
3

6
7

7
2

G
2

4
H

FIGURE 1.1 Trac dune autoroute.


x3
I
J

chemin optimal
A G I
A GJ

cot
12
11

3. Chemin optimal depuis A jusqu chaque ville de la phase 4 :


x4
K

chemin optimal
A I K

cot
17

4. En considrant chaque possibilit de la fin vers le dbut, on en dduit


que le chemin optimal est ADG I K de cot 17.

1.3 Formalisation
Soit F une fonction de N + 1 variables optimiser :
F (x 0 , x 1 , . . . , x N ) = v1 (x 0 , x 1 ) + v2 (x 1 , x 2 ) + + vN (x N 1 , x N )
Pour tout n 0, N 1, x n dpend de x 0 et de x n+1 .
Dans notre exemple prcdent, nous avions :
F (x 0 , x 1 , . . . , x n ) =

4
X
i=1

vi (x i1 , x i )

1.4. DEUXIME EXEMPLE DAPPLICATION

13

o vi (x i1 , x i ) est le cot du tronon reliant la ville x i1 de la phase i 1 la


ville x i de la phase i.

1.3.1

Formules doptimisation squentielle

On cherche f2 (x 0 , x 2 ), la valeur optimale de v1 (x 0 , x 1 ) + v2 (x 1 + x 2 ), cest-dire



f2 (x 0 , x 2 ) = min
v1 (x 0 , x 1 ) + v2 (x 1 + x 2 )
x 1 X 1 (x 0 ,x 2 )

Ensuite, on cherche la valeur optimale de f3 (x 0 , x 3 ), i.e.



f3 (x 0 , x 3 ) = min f2 (x 0 , x 2 ) + v3 (x 2 , x 3 )
x2

On continue ensuite jusqu trouver f N (x 0 , x N ). Ainsi, loptimum recherch


est obtenu avec la formule
min F (x 0 , x 1 , . . . , x N ) = min f N (x 0 , x N )
x 0 ,x N

(1.1)

Dans notre exemple :



v1 (A, x 1 ) + v2 (x 1 , E) = 10
x 1 {B,C,D}

= min
f2 (A, x 2 ) + v3 (x 2 , I)
= 12
x 2 {E,F,G}

= min f3 (x 0 , x 3 ) + v(x 3 , K)
= 17

f2 (x 0 , E) =
f3 (A, I)
f4 (A, K)

min

x 3 {I,J}

1.4 Deuxime exemple dapplication


On se propose de faire une campagne de publicit dans quatre rgions. On
possde un budget de B units. On investit un certain nombre dunits dans
chaque rgion ; le rendement tant donn dans le tableau suivant :
I
II
III
IV
0
0
0
0
0
1 0,28 0,25 0,15 0,20
2 0,45 0,41 0,25 0,35
3 0,65 0,55 0,40 0,42
4 0,78 0,65 0,50 0,48
5 0,90 0,75 0,62 0,53
Dterminer la stratgie optimale dinvestissement.
Exemple de stratgie dinvestissement :
I
II
III
IV
1
0
2
2
0,28 0 0,25 0,35

CHAPITRE 1. PROGRAMMATION DYNAMIQUE

14

ce qui donne un rendement de 0,88.


Si on tente de rechercher max F (x 1 , x 2 , x 3 , x 4 ) o x i est la somme investie
dans la rgion i, a ne marchera pas. Il faut rechercher max F (x 1 , x 2 , x 3 , x 4 ) o
x i est le sous-total des sommes investies dans les rgions 1, 2, . . . , i. On pose
alors vi (x i1 , x i ) le rendement obtenu en investissant x i x i1 dans la rgion
i.
On a

f2 (x 2 ) = max v1 (x 0 , x 1 ) + v2 (x 1 , x 2 )
x 1 0,x 2

le rendement maximal que lon peut obtenir en investissant x 2 units au total dans les deux premires rgions. Il faut faire les calculs pour tous les cas
possibles pour x 2 :
x 2 f2 (x 2 ) x 1
0
0
0
1
0,28
1
0,53
1
2
3
0,70
2
4
0,90
3
5
1,06
3
Au rang 3, on a :

f3 (x 3 ) = rendement max en investissant x 3 dans I, II et III



= max v1 (x 0 , x 1 ) + v2 (x 1 , x 2 ) + v3 (x 2 , x 3 )
x 1 ,x 2

f2 (x 2 ) + v3 (x 2 , x 3 )
= max
x 2 0,x 3

do
(I, II)
III
x 3 f3 (x 3 ) x 2
0
0
0
0
0
1 0,28 0,15
1
0,28
1
0,53
2
2 0,53 0,25
2
3 0,70 0,40
3
0,70
3
4 0,90 0,50
4
0,90
4
5 1,06 0,62
5
1,06
5
Loptimum est atteint lorsque x 3 = 0 ; cette rgion nest pas suffisamment
intressante pour investir dedans. Passons ensuite au rang 4 :
x 4 f4 (x 4 ) x 3
5
1,10
4
Loptimum est atteint lorsque x 4 = 4.
La solution est donc la suivante :

1.4. DEUXIME EXEMPLE DAPPLICATION

Investissement cumul
Investissement
Rendement

1.4.1

I
3
3
0,65

II
4
1
0,25

15
III
4
0
0

IV
5
1
0,20

Total
5
5
1,10

Reprsentation du problme en tant que graphe

Le problme peut galement tre reprsent selon un graphe (fig. 1.2).


E

F
Chaque arc a pour valeur le rendement de linvestissement envisag.
FIGURE 1.2 Graphe des investissements
Ici, il faut trouver le chemin de valeur maximale de E F .

16

CHAPITRE 1. PROGRAMMATION DYNAMIQUE

Chapitre 2
Chemins optimaux dans les
graphes
2.1 Position du problme
Soit G = (X , U) un graphe. Pour tout u U, on note v(u) la valeur de larc
u. Cette valeur peut reprsenter une distance, un temps, ou de faon gnrale
un cot.
Soient (A, B) X 2 . La valeur du chemin est simplement :
X

v(u)

Problme : dterminer un chemin de valeur minimal de A B.


Exemple 4. Rseau de tlcommunications : chaque couple (A, B) de stations
est relie par un nombre donn de stations intermdiaires. Chaque arc a alors
pour valeur pi, j , qui est la probabilit de fonctionnement correct de la liaison
entre i et j.
Trouver le chemin de A B consiste trouver :
Y

max

pi, j

(i, j)

ou encore
min

log(pi, j )

(i, j)

17

18

CHAPITRE 2. CHEMINS OPTIMAUX DANS LES GRAPHES

2.2 Algorithme de Dijkstra


Soit G = (X , U) quelconque, tel que u U, v(u) 0. s est une racine. On
attribue pour chaque x X la valeur (x). La valeur (x) peut tre :
Dfinitive : valeur du chemin optimal de s x.
Provisoires : borne suprieure de la valeur du chemin optimal de s x.
On note c(s, x) la valeur de larc (s, x) sil existe, + sinon.

Algorithme 1 Algorithme de Dijkstra


{Initialisation}
(s) = 0
pour chaque x 6= s faire
(x) = c(s, x)
A(x) = s
fin pour
D = {s}
P = X {s}
A(s) =
tant que P 6= ; faire
{Attribution dune valeur dfinitive un sommet de P}
Soit x 0 P t.q. (x 0 ) = min xP (x)
D = D + {x 0 }
P = P {x 0 }
{Rvision ventuelle des valeurs attribues au sommet de P}
pour chaque x P faire
si (x) > (x 0 ) + c(x 0 , x) alors
(x) = (x 0 ) + c(x 0 , x)
A(x) = x 0
fin si
fin pour
fin tant que

La complexit de lalgorithme est O(n2 ).

2.2. ALGORITHME DE DIJKSTRA

x2

19

6
x4

x1

6
3

x6

x3

4
3
x5

FIGURE 2.1 Exemple dapplication de lalgorithme de Dijkstra

2.2.1
Init.

2.2.2

Exemple dapplication
x1
0
0
0
0
0
0

x2
3
3
3
3
3
3

x3
6
6
5
5
5
5

x4

9
9
6
6
6

x5
3
3
3
3
3
3

x6

8
8
7
7

Preuve de lalgorithme

Dmonstration. Soit k le numro de ltape de lalgorithme. chaque tape k,


pour tout x D, (x) a pour valeur celle du chemin optimal de s x.
On slectionne x 0 . Montrer que (x 0 ) gale la valeur du chemin optimal
de s x.
Soit (x 0 ) la valeur dun chemin de s x 0 . Soit un chemin quelconque
de s x 0 . Soit h le premier sommet de P rencontr, tel que x est prdcesseur
de h, et h fait partie du chemin entre .
On pose 1 le chemin de s h, 2 le chemin de h x 0 .
La phase de rvision des valeurs aprs le choix de x donne :
(h) (x) + c(x, h)
(x) + c(x, h) c(1 )
(x 0 ) (h)

(x) = val du chemin opt. de s x


par dfinition de x 0

CHAPITRE 2. CHEMINS OPTIMAUX DANS LES GRAPHES

20

Et ainsi, par transitivit :


(x 0 ) c(1 ) c()

2.3 Algorithme de BellmanFord


Soit G = (X , U) un graphe orient quelconque, avec n sommets, sans circuit absorbant, la valeur des arcs tant quelconque ; soit s une racine.
Algorithme 2 Algorithme de BellmanFord
{Initialisation}
1 (s) = 0
1 (x) = c(s, x) pour x 6= s
{tape gnrale : calcul des m+1 (x) en fonction des m1 (x)}.
pour m 1, n 2 faire
m+1 (x) = min{m (x), min y6= x {m ( y) + c( y, x)}}
fin pour
n1 (x) = valeur du chemin optimal de s x
{Hypothse de rcurrence}
m (x) = valeur du chemin opt. de s x de longueur m
Cet algorithme a pour complexit O(n3 ).

2.3.1

Exemple dapplication

x1 x2 x3
x4
x5
x6
(x) 0
3
6 + 3 +
2 (x) 0
3
0
7
3
8
3
(x) 0
3
0
1
3
8
4 (x) 0
3
0
1
3
2
5
(x) 0
3
0
1
3
2
On peut sarrter ds quil y a deux lignes identiques.
1

Trouver le chemin optimal de x i x j dans un graphe quelconque sans circuit


absorbant : appliquer lalgorithme 2 en prenant pour origine x 1 puis x 2 , etc.
Cet algorithme a pour complexit O(x 4 ).

2.4. ALGORITHME DE FLOYDWARSHALL

x2

21

6
x4

3
x1

6
3

x6

x3

2
x5

FIGURE 2.2 Exemple dapplication de lalgorithme de Bellman-Ford

2.4 Algorithme de FloydWarshall


Algorithme 3 Algorithme de FloydWarshall
{Initialisation}
(0)
i, j valeur de (i, j) sil existe, + sinon
pour m = 1, 2, . . . , n faire
pour chaque (i, j) faire

(m)
(m1)
(m1)
(m1)
i j = min i j
; i,m + m, j
fin pour
fin pour
(n)

(m)

On a alors i, j la valeur du chemin optimal de i j, et i, j la valeur


du chemin optimal de i j dont les sommets intermdiaires appartiennent
1, m.
Cet algorithme a pour complexit O(n3 ).

22

CHAPITRE 2. CHEMINS OPTIMAUX DANS LES GRAPHES

Chapitre 3
Flots dans les graphes
3.1 Gnralits
Il ne sagit plus de trouver un chemin, mais de savoir quelle quantit de
matire on peut faire circuler entre deux sommets.
Soit G = (X , U). Soit (s, t) X 2 un couple particulier de sommets ; on
appelle s la source, et t le puits. Pour tout (i, j) U, on note ci j la capacit de
larc, tel que ci j 0.
Flot Pour chaque arc (i, j) U, il faut associer une valeur x i j appelle flux
sur larc (i, j), tel que 0 x i j ci j .
La loi de conservation des flux stipule que
i X \ {s, t},

X
j (i)

x ji =

xi j

j+ (i)

FIGURE 3.1 Loi de conservation sur un nud

23

CHAPITRE 3. FLOTS DANS LES GRAPHES

24

Proprit 1. Soit A X un sous-graphe tel que s, t 6 A. Alors


X

xi j =

(i, j) (A)

x ji

(i, j)+ (A)

La loi de conservation ne sapplique pas qu des nuds, mais aussi des


sous-graphes entiers.
On pose
X
X
v=
x jt
xt j
j (t)

j+ (t)

La quantit v correspond au flux total qui sort du rseau.

FIGURE 3.2 Graphe avec arc de retour


En crivant la loi de conservation entre s et t :
X
j(x)

xs j +

xt j =

j(t)

do
v=

X
j(x)

X
j (s)

xs j

x js +

x jt

jin 1(t)

x js

j (s)

On ajoute alors un arc fictif de retour de flux v afin que la loi de conservation soit valable en tous les sommets. La valeur v est appele valeur du flot (de
s t).
Exemple 5. Sur la figure 3.3, la valeur du flot est 6. Mais peut-on faire mieux ?

3.2. PROBLME DU FLOT MAXIMAL

25

4 (10)

4
3 (3)

3 (4)
1 (2)

1 (1)
s

2 (5)

1 (2)

2 (2)

1 (6)

4 (6)
0 (4)

0 (4)

1 (5)

FIGURE 3.3 Exemple de calcul de v

3.2 Problme du flot maximal


On cherche maximiser v

max v =

X
xi j =

j+ (i)
0

3.2.1

sous les contraintes :


x ts
P
j (i)

Flot maximal
x ji Loi de conservation

x i j ci j

Dfinitions

Dfinition 1. Un flot admissible est un flux qui vrifie les contraintes (mais
non ncessairement optimal).
Dfinition 2. Un flot complet est un flot admissible tel que tous les chemins de
s t comportent au moins un arc satur.
Dfinition 3. Un arc (i, j) est satur ssi x i j = ci j .
Dfinition 4. Soient (i, j) X 2 . Une chane entre i et j est dite augmentante
si tous les arcs orients de i vers j sont non saturs et si tous les arcs orients
de j vers i ont un flux strictement positif (i.e. non nul).
Autrement dit : Soit une chane entre s et t ; on note + les arcs orients
de s vers t, ceux orients de t vers s. Alors :
x i j < ci j (i, j) +
x i j > 0 (i, j)

CHAPITRE 3. FLOTS DANS LES GRAPHES

26

On va pouvoir augmenter le flot en modifiant uniquement les arcs de .


+
s

+
FIGURE 3.4 Augmentation de la valeur du flot de
Exemple 6. Laugmentation du flot consiste :
Ajouter sur tous les arcs de +
Retrancher sur tous les arcs de .
Ceci permet daugmenter la valeur du flot de .
La valeur de maximale est


= min min+ (ci j x i j ); min x i j
(i, j)

(i, j)

Dfinition 5. Une coupe note (S, T ) est une partition de X en deux, tel que
s S et t T .
Dfinition 6. On appelle capacit de (S, T ) la grandeur
X
c(S, T ) =
ci j
iS, jT
(i, j)U

Proprit 2. Soit x un flot admissible, et (S, T ) une coupe du graphe. Alors, la


valeur du flot admissible est infrieure ou gale c(S, T ). On a galit lorsque le
flot est maximal.
Dmonstration. Daprs la loi de conservation applique en T :
X
X
xi j =
xi j v
(i, j) (T )

(i, j)+ (T )

Or, par dfinition de c(S, T ), on a


c(S, T ) =

X
(i, j) (T )

ci j

3.3. ALGORITHME DE FORDFULKERSON

27

Daprs ces deux galits, on a


X

ci j

(i, j) (T )

3.2.2

Condition ncessaire et suffisante doptimalit

Thorme 3 (Condition ncessaire et suffisante doptimalit). Un flot de s t


est maximal ssi il nadmet pas de chane augmentante de s t.
Dmonstration. Condition ncessaire Sil existait une chane augmentante, on
peut augmenter de , donc le flot ne serait pas optimal.
Condition suffisante Le flot x nadmet pas de chane augmentante de s t.
Dfinissons une coupe telle que S est lensemble des sommets i du graphe tel
quil existe une chane augmentante de s i, et T lensemble complmentaire.
Ainsi, s S et t T .
la frontire entre S et T , on constate alors que
(i, j) U t.q. i S, j T, x i j = ci j
et
(i, j) U t.q. i T, j S, x i j = 0
Lcriture de la loi de conservation en T donne :
X
X
xi j
xi j =
(i, j) (T )

do

(i, j)+ (T )

ci j = v

(i, j) (T )

Le flot x est donc bien maximal, et (S, T ) est une coupe de capacit minimale.
Thorme 4 (de FordFulkerson). La valeur maximale dun flot est gale la
capacit minimale dune coupe.
Ce thorme illustre bien la notion de goulet dtranglement.

3.3 Algorithme de FordFulkerson


3.3.1

Lalgorithme

Soit G = (X , U), (s, t) X 2 .

28

CHAPITRE 3. FLOTS DANS LES GRAPHES

Algorithme 4 Algorithme de FordFulkerson


{Initialisation}
Marquer le sommet s
{tape gnrale}
si i marqu, j non marqu et (i, j) non satur alors
Marquer j avec i
fin si
si i marqu, j non marqu et ( j, i) t.q. x i j > 0 alors
Marquer j avec i
fin si
si on ne peut plus marquer de sommets alors
si t est marqu alors
{il existe une chane augmentante de s t}
augmenter le flot de
recommencer
sinon
le flot considr est maximal
fin si
fin si

3.3. ALGORITHME DE FORDFULKERSON

3.3.2

29

Exemple dapplication

On part dun rseau et dun flot initial. Une premire application de lalgorithme est donne dans la figure 3.5.
s

5 [20]

A
D

10 [10]
15 [35]

20 [20]

15 [15]

35 [35] D

20 [25]

C 30 [30]

F
t

0 [5]
30 [40]

30 [60]
10 [20]

s C

20 [20]

F B

80
FIGURE 3.5 Premire application de lalgorithme
On constate que t est marqu. Cela signifie quon a une chane augmentante ; celle-ci est explicite dans la figure 3.6.
Larc (B, F ) est celui qui va nous limiter. Ainsi, on a le flot donn en figure
3.7.
En reprenant lalgorithme, on ne peut plus marquer F , et donc on ne peut
plus trouver t. Le flot maximal a donc pour valeur v = 85.
La coupe de capacit minimale est
S = {sommets marqus} et T = {sommets non marqus}
donc ici, S = {s, A, B, C, D, E} et T = {F, t}.

CHAPITRE 3. FLOTS DANS LES GRAPHES

30

15 [35] +5

5 [20] +5

15 [15] 5
s

30 [60] +5

0 [5] +5
F
FIGURE 3.6 Chane augmentante trouve par lalgorithme

10 [20] A

10 [10]
20 [35]

10 [15]

35 [35] D

20 [25]

20 [20]

C 30 [30]

5 [5]
30 [40]

35 [60]
10 [20]

s C

20 [20]

85
FIGURE 3.7 Flot obtenu lissue de lalgorithme

Chapitre 4
Ordonnancement
4.1 Gnralits
On se donne un projet avec de multiples tches, et on souhaite organiser
le mieux possible lexcution de ces tches.
Cette application de la recherche oprationnelle a vu le jour dans les annes 1960, avec la mthode PERT (Program Evaluation and Review Technique)
et la mthode des potentiels.
Les critres doptimisation sont les suivantes :
la date dachvement du projet : on va essayer de terminer le plus tt
possible ;
lutilisation des ressources : on va essayer de lisser lutilisation des ressources (personnels, matriels, financiers. . . ) afin de ne pas provoquer
trop d-coups.
On a alors les types de contraintes suivants :
1. Contraintes potentielles :
Contrainte dantriorit : la tche i ne peut commencer que quand j
est acheve) ;
Localisation temporelle : la tche i ne peut commencer avant une date
d ou doit tre termine avant la date d .
2. Contraintes cumulatives (sur les moyens) : respect les moyens disponibles ;
3. Contraintes disjonctives : les tches i et j ne peuvent tre ralises simultanment (pour des raisons de scurit, par exemple).
Le but est donc de dterminer un ordre et un calendrier dexcution des
tches, qui minimise la dure totale de ralisation du projet.
31

CHAPITRE 4. ORDONNANCEMENT

32

4.2 La mthode PERT


Un graphe PERT est un graphe o les sommets sont des vnements, i.e. le
dmarrage ou la ralisation dun ensemble de tches. Les arcs sont des tches
auxquelles on associe une dure.

i
j

l
E

m
n

FIGURE 4.1 Reprsentation dun vnement en PERT


Dans lexemple de la figure 4.1, on dit que lvnement E est ralis lorsque
les tches incidentes intrieurement E (ici i, j et k) sont termines. De la
mme faon, les tches incidentes extrieurement (ici l, m et n) ne peuvent
commencer que si E est ralis.
On utilise des tches fictives (de dure nulle) afin de reprsenter des contraintes.

4.2.1

Exemple de diagramme
Tche
a
b
c
d
e
f
g
h
i
j
k
l

Dure
1
2
1
1
2
1
2
2
1
2
1
2

Dpendances
(aucune)
a
b
c
a
e
f
f
g
h, i
d, j
k

La traduction de ce tableau donne alors le graphe en figure 4.2.

4.2. LA MTHODE PERT

33
h
2

Dbut

a
1
1

e
2
2

f
g
j
i
l
k
4
7
9
5
6
2
2
2
1
1
1

c
8
1

Fin

d
1

FIGURE 4.2 Exemple de diagramme PERT

4.2.2

Exemple avec des tches fictives


Tche
a
b
c
d
e
f
g

Dpendances
(aucune)
(aucune)
a
b
d
c, d
e, f

On obtient alors le graphe en figure 4.3.


1

a
Dbut

dure 0

b
2

Fin

FIGURE 4.3 Exemple de diagramme PERT avec des tches virtuelles

4.2.3

Dfinitions

Dfinition 7. Soit i un vnement. On appelle la date au plus tt (note t i ) la


date la plus proche possible de ralisation de lvnement i. Autrement dit :
t i = max
(t j + d ji )

t j (i)

CHAPITRE 4. ORDONNANCEMENT

34

o d ji est la dure de ralisation des tches entre j et i.


On peut galement dire que t i est la valeur du chemin de valeur maximale
du dbut lvnement i.

0
Dbut

1
a
1
1

h
2

4
7
9
10
f
g
j
i
l
k
4
7
9
5
6
2
2
2
1
1
1
6
b
2
4
3
d
c
1
3
8
1
e
2

3
2

12
Fin

FIGURE 4.4 Dates au plus tt

Exemple 7. Les dates au plus tt de chaque vnement de la figure 4.4 sont


notes en vert.
Dfinition 8. Un chemin critique est un chemin de valeur maximal du dbut
la fin.
Dfinition 9. On appelle tche critique une tche qui appartient au chemin
critique.
Exemple 8. Sur la figure 4.2, les tches critiques sont a, e, f , g, i, j, k, l.

0
Dbut

1
a
1
1

h
2

4
7
9
10
f
g
j
i
l
k
4
7
9
5
6
2
2
2
1
1
1
6
b
2
7
8
d
c
1
3
8
1
e
2

3
2

12
Fin

FIGURE 4.5 Dates au plus tard


Dfinition 10. Soit i un vnement. On appelle date au plus tard, note t i ,
la date la plus tardive de ralisation de lvnement i sans modification de la
date au plus tt de lvnement Fin.

4.2. LA MTHODE PERT

35

Autrement dit :
t i = t Fin val. du chemin de val. max de i Fin
ou encore
t i = min
(t j di j )
+
j (i)

Exemple 9. Les dates au plus tard de la figure 4.5 sont reprsentes en violet.

4.2.4

Marges relatives aux tches

Dfinition 11. La marge libre est le retard maximal qui peut tre pris dans la
ralisation de la tche, sans modification de la date au plus tt de lvnement
terminal. Autrement dit :
mi j = t j t i di j
Dfinition 12. La marge totale est le retard maximal sur la tche qui ne modifie pas la date au plus tard de lvnement terminal. Autrement dit :
Mi j = t j t i di j

4.2.5

Exemple dordonnancement datelier

On souhaite usiner des pices de huit types diffrents. On dispose de deux


machines, A et B. On donne les dures dusinage ai et bi de chaque pice par
les deux machines.
Chaque pice est usine dans lordre et en deux tapes, dabord par la
machine A, puis par la machine B.
Pices
P1
P2
P3
P4
P5
P6
P7
P8

ai
5
6
9
7
8
6
4
5

bi
7
4
8
5
10
6
3
6

Dterminons lordre optimal dusinage des pices.

CHAPITRE 4. ORDONNANCEMENT

36

On peut dj dterminer les bornes infrieures et suprieures de dure


totale :
binf = 53

bsup = 60

On applique alors lalgorithme de Johnson.


Algorithme 5 Algorithme de Johnson
L = 0, K = 0
tant que il existe une pice faire
choisir la pice Pi t.q. min(ai , bi ) min(a j , b j ).
j6=i

si ai < bi alors
K = K +1
S(K) = i
sinon
L = L+1
T (L) = i
fin si
supprimer la pice i
fin tant que
renvoyer ordre optimal S(1), S(2), . . . , S(K), T (L), . . . , T (1)
lissue de lexcution de lalgorithme, on obtient :
S = (1, 8, 5)

T = (7, 2, 4, 6, 3)

Il faut donc fabriquer les pices dans lordre : 1, 8, 5, 3, 6, 4, 2, 7. Cet


ordonnancement donne un temps total dusinage de 54.

FIGURE 4.6 Ordonnancement optimal

Chapitre 5
Mthodes dnumration implicite
Aussi appeles :
procdures arborescentes
procdures par sparation et valuation
procdures branch and bound

5.1 Ide sur un exemple


Exemple 10. Soit G = (X , E) un graphe. On veut dterminer dans G un sousgraphe complet (ou clique) de cardinal maximal.
Proprit 5. Soit un graphe avec n sommets et m artes. On note (G) le cardinal maximal dune clique. On peut montrer facilement que
(G) <

1
2

3+


9 + 8(m n)

Exemple 11. Dans le graphe de la figure 5.1, m = 12, n = 7 et donc (G) 5.


Formalisation Soit S un ensemble fini, et f : S R. On souhaite dterminer
s S tel que f (s ) = min f (s).
sS

Dfinitions
Dfinition 13 (valuation). tant donn S S, on dit quon sait valuer S si
on connat un rel g(S ) tel que s S , g(S ) f (s).
Dfinition 14. Si g(S ) = min f (s), il sagit dune valuation exacte.
sS

37

38

CHAPITRE 5. MTHODES DNUMRATION IMPLICITE

v2
v1

v3
v4

v7

v5
v6

FIGURE 5.1 Exemple de graphe


Dfinition 15. On dit que g1 (S ) est une meilleure valuation que g2 (S ) si
g1 (S ) > g2 (S ).
Dfinition 16 (Abandon). On dit que S S est abandonn dans les cas suivants :
S = ;
on connat une solution s S au moins aussi bonne que toute solution
de S . Par exemple, lorsque f (s) g(S ).
on a une valuation exacte.
Proprit 6. Soit F = {S1 , S2 , . . . , S p } une famille de sous-ensemble de S dont
lunion est gale S. Si F est spare en Si1 , Si2 , . . . , Sik , la famille F telle que
F = {S1 , . . . , Si1 , Si1 , Si2 , . . . , Sik , Si+1 , . . . , S p }
est encore une famille de sous-ensembles de S dont lunion vaut S si
k
[

Si = Si

j=1

Proprit 7. Si tous les sous-ensembles de F ont une valuation exacte, et si


S F est dvaluation minimale, alors la solution optimale de S est la solution
optimale du problme.

5.2 Schma gnral


On note s i la meilleure solution connue, et v sa valeur. Le schma gnral
est donn dans lalgorithme 6.

5.2. SCHMA GNRAL

39

Algorithme 6 Schma gnral dvaluation


s indtermin, v = +, F = {S}.
tant que F 6= ; faire
{Choix}
choisir S F non encore valu
si un tel S nexiste pas alors
choisir un S F dj valu
fin si
si S na pas t valu alors
{valuation}
Associer S son valuation g(S )
si g(S ) v alors
F = F S
sinon si lvaluation est exacte alors
s est la solution opt. de S
v = g(S )
F = F (S {E F, g(E) v})
fin si
sinon
{Sparation}
sparer S en (Si )i1,k
Sk
F = (F S ) i=1 Si
fin si
fin tant que
Il reste encore spcifier les procdures de choix, dvaluation et de sparation.

40

CHAPITRE 5. MTHODES DNUMRATION IMPLICITE

5.3 Application au problme du voyageur de commerce


Il sagit de trouver le circuit hamiltonien de valeur minimale. Ce problme
est difficile et est souvent utilis comme test dalgorithme de rsolution de
problmes combinatoires. En effet, dans un graphe n sommets, il y a (n 1)!
circuits hamiltoniens.
On se donne un graphe complet orient G = (X , U). Pour tout arc (i, j) U,
on associe la valeur t i j 0.
Dans cet exemple, prenons n = 5. Les cots pour aller de la ville i la ville
j sont donnes par la matrice :

+ 2
1
3
4

5
7
1 + 6

3 + 8
2
4

7
4 + 1
5
2
3
5
2 +
chaque ligne, on soustrait les lments de la ligne par la plus petite valeur
de la ligne. On obtient alors :

+ 1
0
2
3

4
6
0 + 5

1 + 6
0
2

6
3 + 0
4
0
1
3
0 +
On fait la mme chose sur chaque colonne :

+ 0
0
2
3

4
6
0 + 5

0 + 6
0
2

5
3 + 0
4
0
0
3
0 +
Proprit 8. La valeur de tout chemin hamiltonien est suprieure ou gale la
somme des lments soustraits.
Dmonstration. On pose x i j telle que :
(
1 ssi (i, j) chemin hamiltonien
xi j =
0 sinon

5.3. APPLICATION AU PROBLME DU VOYAGEUR

41

Alors, cette borne infrieure scrit :


XX
min
ti j xi j
i

Or
i,

j6=i

x i j = 1 et j,

j6=i

xi j = 1

i6= j

t i0j

On pose
= t i j i j , o i est la quantit soustraite la ligne i, et j
la quantit soustraite sur la colonne j. Formellement, on a :
i = min t i j

j = min(t i j i )

Par ailleurs, on constate que t i0j 0.


La valeur dun circuit vaut alors :
XX
(t i0j + i + j )x i j
i

j6=i

XX
|

t i0j x i j +

j6=i

{z
0

X
i

X
j6=i

xi j +

| {z }

xi j

i6= j

| {z }
1

Ainsi, on peut crire que la valeur de tout chemin hamiltonien est suprieur
ou gal
X
X
i +
j
Dans notre exemple, cette borne infrieure vaut 8.

5.3.1

Calcul du regret

Le regret dun arc (i, j) est la somme de la plus petite valeur de la ligne i et
la plus petite valeur de la colonne j.
La sparation se fait sur larc de valeur 0 et de regret maximal. On calcule
donc tous les regrets sur tous les arcs de valeur 0, et on constate que celui de
regret maximal est larc (B, A), qui vaut 4.
On supprime ensuite la ligne B et la colonne A de la matrice. On interdit
galement de prendre larc (A, B). On continue les calculs avec la matrice

+ 0
2
3

0
0 + 6

3 + 0
5
0
3
0 +

CHAPITRE 5. MTHODES DNUMRATION IMPLICITE

42

Il se peut quon ait ensuite besoin de refaire les oprations de soustractions,


auquel cas la borne infrieure V augmente dautant que ce qui a t retranch.
On obtient alors la sparation de la figure 5.2.

(B, A)

V 8 non (B, A)

V 8+0=8

V 8 + 4 = 12

non (A, C)

(A, C)

(D, E)

V 8+0=8
(C, E)
(D, B)
(E, D)

V = 13

non (D, E)

V 8 + 5 = 13
V 12 + 0 = 12

V 12 + 3 = 15

non (C, E)

V 14
FIGURE 5.2 Sparation

On choisit dinclure larc (B, A). Alors, en rptant le mme procd, on fait
ensuite la sparation sur larc (A, C), puis sur (C, E), et ainsi de suite.
On trouve finalement un circuit optimal de valeur 12.

Chapitre 6
Programmation linaire
On cherche optimiser une fonction f linaire sous des contraintes linaires.
La forme gnrale dun programme linaire est la suivante :
min

n
X

cj x j

j=1

sous les contraintes :

n
X

ai j x j bi , i M

j=1
n
X

ai j x j = bi , i M

j=1

un ensemble dindices, x j R+ pour j M et j M


.
avec M et M

6.1 Problmes de production


On a un centre de production disposant de ressources numrotes de 1 m,
et produisant n types de produits. On note :
ai j la quantit de la ressource j requise pour produire une unit du produit i ;
x imin (resp. x imax ) la quantit minimale (resp. maximale) de produit i
produire ;
b j la quantit de ressource j disponible ;
mi le bnfice ralis en produisant une unit de produit i ;
x i la quantit produite de i.
43

CHAPITRE 6. PROGRAMMATION LINAIRE

44

Le problme se formalise alors de la faon suivante :


max

n
X

mi x i

i=1

s.c.
xi
xi
Pn
a x
i=1 i j i
xi

x imax i 1, n
x imin i 1, n
bj
j 1, m
0
i 1, n

Ce nest pas un programme linaire. Mais on peut rcrire ce problme


pour le ramener un tel problme.
On applique alors lalgorithme du simplexe.

6.1.1

Optimisation fractionnaire

On considre le problme suivant :


max r(x) =
s.c.

Pn

ai j x j
xj
b0 , b j , a j
c0
j=1

>

b0 +
c0 +

Pn
j=1

bj x j

j=1

cj x j

Pn

di i 1, m
0 j 1, n
0
0

En posant
yj =

c0 +

xj
Pn
j=1

t=

cj x j

c0 +

1
Pn
j=1

le problme se rcrit de la manire suivante :


max b0 t +

n
X

bj yj

j=1

s.c.

Pn
a y
Pn j=1 i j j
c0 t + j=1 c j + y j
yj
t

di t i 1, m
1
0
j 1, n
0

cj x j

6.1. PROBLMES DE PRODUCTION

6.1.2

45

Interprtation gomtrique dun programme linaire

On considre le problme suivant :


max x 1 + 3x 2
s.c.
x1 + x2
x1
x2
x1, x2

5
4
3
0

x2
5
4
(2, 3)
3
x 1 + 3x 2 = 11

2
1
0

x1
4
5
x 1 + 3x 2 = 0

FIGURE 6.1 Interprtation gomtrique dun programme linaire


Le point optimal est (2, 3) ; la valeur obtenue est 11.

6.1.3

Forme gnrale dun programme linaire

Le problme peut se prsenter sous deux formes diffrentes :


Forme standard
min cx
Ax = b
x0

Forme canonique
min cx
Ax b
x0

CHAPITRE 6. PROGRAMMATION LINAIRE

46

Afin de passer de la forme gnrale la forme canonique, il faut remplacer


la condition
n
X
ai j x j = b j
j=1

par les deux conditions

n
X

ai j x j bi

j=1

n
X

ai j x j bi
j=1

Afin de passer de la forme gnrale la forme standard, il faut ajouter une


variable dcart si 0. Ainsi, on transforme la condition
n
X

ai j x j bi

j=1

en

n
X

ai j x j + si = bi , si 0

j=1

6.1.4

Base et solution de base

On suppose que rg(A) = m.


On appelle matrice de base la sous-matrice carre (m m) de A rgulire.
Ainsi :

A = B N (par blocs)
et


x=

xB
xN


(par blocs)

Les colonnes de B reprsentent les variables de base, et celles de N reprsentent


les variables hors base.
Do :
Ax = b
B

Bx + N xN = b
B 1 BxB + B 1 N xN = B 1 b

6.1. PROBLMES DE PRODUCTION

47

et donc
xB + B 1 N xN = B 1 b

(6.1)

La solution de base relativement B est la solution telle que xN = 0 et


x = B 1 b.
B

Exemple 12. Considrons le problme suivant :


min 3x 1 + x 2 + 4x 3 + 2x 4 2x 5
s.c.

x 1 + 2x 4 + 3x 5
2x 2 + 4x 4
2x 1 + x 2 + 2x 3 + 2x 5
x1, x2, . . . , x5

=
=
=

2
6
9
0

Ici, la matrice A vaut :

1 0 0 2 3

A = 0 2 0 4 0
2 1 2 0 2

En utilisant les colonnes 1, 2, et 3 de A (car A est de rang 3 et ces colonnes


sont linairement indpendantes), on a :

1 0 0
4
0
0
2
1

1
2 0
B = 0 2 0
b = 6
B = 0
4 4 1 2
2 1 2
9
La solution de base ralisable est
x1 = 2

x2 = 3

x3 = 1

x4 = 0

x5 = 0

de valeur 13.
Lensemble X = {x : Ax b, x 0} est un polytope convexe.
Dfinition 17. On appelle point extrme tout point x X qui ne peut tre
exprim comme combinaison convexe dautres points y X ( y 6= x).
Thorme 9. Lensemble des points extrmes de X correspond lensemble des
solutions de base ralisables.
Corollaire 10. X admet un nombre fini de points extrmes. Le nombre de solutions de base est infrieur ou gal Cnm .

CHAPITRE 6. PROGRAMMATION LINAIRE

48

Corollaire 11. Tout point dun polytope convexe X peut sexprimer comme une
combinaison convexe des points extrmes de X .
Thorme 12 (Thorme central de la programmation linaire). Loptimum
de z fonction linaire sur le polytope convexe X est atteint en au moins un point
extrme.
Sil est atteint en plusieurs points extrmes, alors il est atteint en tout point
combinaison convexe de ces points extrmes.
Dmonstration. Soient y 1 , y 2 , . . . , y K les points extrmes de X .
Soit z = min z( y k ). Montrons que z est le minimum de z sur X .
k1,K

Soit x X . Alors
x=

K
X

k 0,

k yk

k = 1

k=1

Par linarit de z, on obtient


z(x) =

K
X

k z( y k )

k=1

K
X

k z

k=1

Donc z est la valeur de la solution optimale.

6.2 Algorithme du simplexe


Lalgorithme fait une exploration dirige des points extrmes.

6.2.1

Caractrisation des solutions de base ralisables optimales

On rappelle le problme dcompos en variables de base et hors base :


xB + B 1 N xN = B 1 b
Dfinition 18. Une solution de base est dgnre si certaines variables de
base sont nulles.

6.2. ALGORITHME DU SIMPLEXE

49

x2
5
4
3
2
1
0

x1

FIGURE 6.2 Exploration dirige dun polytope

Thorme 13 (Condition ncessaire et suffisante doptimalit). La base B non


dgnre est optimale ssi

j N , j = cj

ci ai j 0

iB

Dmonstration. Condition suffisante


Soit i B. On a
x1 +

ai j x j = b i

jN

do
x i = b i

X
jN

ai j x j

CHAPITRE 6. PROGRAMMATION LINAIRE

50

Soit x une solution admissible. On a alors


n
X
z(x) =
cj x j
j=1

ci x i +

iB

jN

b i

ci

iB

X
iB

= z +

cj x j
!
+

ai j x j

jN

ci b i +
X

cj x j

jN

cj

xj

ci ai j

iB

jN

j x j

jN

o
z =

ci b i

j = cj

iB

ci ai j

iB

Si pour tout j N , les j sont positifs ou nuls, alors toutes les solutions
admissibles donnent z une valeur suprieure ou gale z.
Condition ncessaire
Supposons s < 0 pour un s N . Soit i B. Alors :
X
x i = b i
ai j x j
jN

= b i

z=

ai j x j ais x s

jN
j6=s

ci b i +

iB

j x j + s x s

jN
j6=s

Sans toucher aux autres variables hors base, on peut augmenter x s dune
valeur telle que :
= min

iB
a is >0

b r
a rs

b i
ais

6.2. ALGORITHME DU SIMPLEXE

51

La nouvelle solution de base est alors telle que :


x s =
x j = 0 j N , j 6= s
xr = 0
x i = b i ais i B, i 6= r
Ainsi :
z =

ci b i + s

iB

Exemple 13.
min Z(x) = 2x 1 3x 2 + 5x 3
s.c.
x 1 2x 2 + x 3 x 4 = 4
x 2 + 3x 3 + x 5 = 6
2x 1 + x 3 + 2x 4 + x 6 = 7
x1, . . . , x6 0
Ici, B = {1, 3, 6} et N = {2, 4, 5}. Autrement dit :

1 1

B = 0 3
2 1

1 7
1
B N= 3
3 13

3
1
0
1

3 0
B 1 = 0
3 6 1 3

2

1
B b = 2
1

0
1

3 1

0
1
12 1

La solution de base est alors :


x1 = 2

x3 = 2

x6 = 1

x2 = 0

x4 = 0

x5 = 0

z = 14
et
2 = 0

4 = 0

5 = 1

CHAPITRE 6. PROGRAMMATION LINAIRE

52

Cest une solution dgnre. En appliquant le thorme prcdent :


z = 14 + 2x 4 x 5
7
1
x1 = 2 + x2 + x4 + x5
3
3
1
1
x2 = 2 x2 x5
3
3
1
13
x 2 4x 4 x 5
x6 = 1
3
3
On trouve ici = 3. Une nouvelle solution de base est donc :
B = {1, 3, 5}

N = {2, 4, 6}

do
x1 = 3

x2 = 0

x3 = 1

x4 = 0

x5 = 3

x6 = 0

z = 11

On recalcule les i et on constate quils sont tous positifs ; ceci est notre
critre darrt.

6.2.2

Algorithme du simplexe pour la minimisation

Lalgorithme 7 dtaille lalgorithme du simplexe dans le cas dun problme


de minimalisation.

6.2.3

Mthode des tableaux

Soit le problme :
max 4x 1 + 12x 2 + 3x 3
s.c.

x1
x2
x3

3x 1 + 6x 2 + 2x 3
x1, x2, x3

1000
500
1500
6750
0

Mettons-le dabord sous forme standard. On a alors le problme quivalent :


max 4x 1 + 12x 2 + 3x 3

6.2. ALGORITHME DU SIMPLEXE

53

Algorithme 7 Algorithme du simplexe pour la minimisation


dterminer une solution de base ralisable
calculer B 1 N = (ai j ) avec i B, j P
N
calculer les cots rduits j = c j iB ci ai j ( j N )
si j N , j 0 alors
la solution considre est optimale ; fin
sinon
J ensemble des indices de N t.q. j < 0
si pour un indice j J, i B, ai j < 0 alors
optimum = ; fin
sinon
choisir s t.q. s = min jJ j (critre dentre)
dterminer r B tel que

b r
a rs

b i

a
a is >0 is

= min iB

fin si
fin si
considrer la nouvelle base dduite de B en remplaant la colonne r par la
colonne s.
reprendre partir des calculs de B 1 N
s.c.

x1 + x4
x2 + x5
x3 + x6

3x 1 + 6x 2 + 2x 3 + x 7
x1, . . . , x7

1000
500
1500
6750
0

En posant le problme sous la forme Ax = b, la matrice A vaut donc :

1 0 0 1 0 0 0
1000

0 1 0 0 1 0 0
500
A=
b=

0 0 1 0 0 1 0
1500
3 6 2 0 0 0 1
6750
Une solution de base ralisable est :
x1 = 0

x 4 = 1000

x2 = 0

x 5 = 500

x3 = 0

x 6 = 1500

z = 0

x 7 = 6750

On trouve 1 = 4, 2 = 12, 3 = 3, et 4 = = 7 = 0.

CHAPITRE 6. PROGRAMMATION LINAIRE

54

En appliquant lalgorithme du simplexe, on trouve s = 2 et r = 2.


On a alors :

0
4
1 0 0 1 0 0 0
1000

12
2
0 1 0 0 1 0 0
500
ci = i B = A =
b=

0
6
0 0 1 0 0 1 0
1500
0
7
3 0 2 0 6 0 1
3750
et 1 = 4, 2 = 0, 3 = 3, 4 = 0, 5 = 12, 6 = 7 = 0. Ce qui donne :
x1 = 0

x 4 = 1000

x3 = 0

x 2 = 500

x5 = 0

x 6 = 1500

z = 6000

x 7 = 3750

Et une dernire itration en utilisant la ligne 1 comme pivot :



1000
1 0 0 1
0 0 0
4
1



1 0 0
500
0 1 0 0
12
2
ci = i B = A =
b=

0 1 0
1500
0 0 1 0
0
6
0 0 2 3 6 0 1
750
7
0
et 3 = 3, 4 = 4, 5 = 12, 1 = 2 = 6 = 7 = 0.
Il faut ensuite encore quelques autres itrations. La solution optimale quon
trouve ainsi est :
x 1 = 250

x 4 = 750

x 2 = 500

x5 = 0

x 3 = 1500

x6 = 0

z = 11500

x7 = 0

Cet algorithme nest pas fait pour tre fait la main, cependant.

6.3 Initialisation de lalgorithme du simplexe


Pour linstant, on partait dune base vidente pour appliquer lalgorithme
du simplexe. Nous allons maintenant voir comment on peut trouver une base
initiale (et de prfrence dj optimale).
On rappelle le problme Ax = b dcompos en variables de base et hors
base :
xB + B 1 N xN = B 1 b
On souhaite trouver une base ralisable initiale et lcriture canonique des
expressions :

6.3. INITIALISATION DE LALGORITHME DU SIMPLEXE

55

des variables de base en fonction des variables hors base


de la fonction conomique en fonction des variables hors base, i.e.
z = z +

j x j

jN

Si le problme est pos sous la forme Ax b, on a vu quil y avait une base


initiale compose des variables dcart. En effet, chaque ligne i du problme
scrit
n
X
ai j x j + ei = bi
j=1

Cependant, tous les problmes ne se posent pas toujours comme cela. Supposons que le problme soit dj sous la forme standard, i.e. :

max cx
(P) Ax = b

x0

6.3.1

Problme auxiliaire : Mthode des 2 phases

Le problme auxiliaire PA scrit sous la forme :

m
X

(PA)

n
X

min =

vi

i=1

ai j x j + vi = bi

i 1, m

xj 0
v1 0

j 1, n
i 1, m

j=1

Les vi sont appeles variables artificielles.


Proprit 14. Soit (
x , v) une solution admissible de (PA). x est une solution
admissible de (P) ssi v = 0.
Proprit 15. Soit (x , v ) une solution optimale de (PA). Le problme (P) admet une solution ralisable ssi v = 0.
Le but est de rsoudre le programme linaire (PA) par lalgorithme du
simplexe, et en utilisant la base ralisable initiale canonique telle que :
les variables de base sont les (vi )i1,m = (bi ),
les variables hors base sont les (x j ) j1,n = 0.

CHAPITRE 6. PROGRAMMATION LINAIRE

56

Thorme 16. Si (P) admet une solution ralisable, alors (PA) admet une base
optimale qui est une base ralisable de (P). On note la valeur optimale de
(PA).
Dmonstration. Considrons une base optimale J de (PA).
1. Si > 0, alors (P) na pas de solution.
2. Si = 0 et toutes les variables artificielles sont hors base, alors J est
une base ralisable du problme initial.
3. Si = 0 mais certaines variables artificielles (bien que nulles) sont dans
la base (dgnrescence) : une telle variable (dindice note r) scrit
vr +

a r j x j +

jN

a r i vi = b r = 0

iN

(a) Si j N , a r j = 0 : on obtient
vr +

a r i vi = 0

iN

La ligne r est redondante ; on peut donc la supprimer.


(b) Si j N , a r j 6= 0 : soit s N tel que a rs 6= 0. On fait rentrer
la variable x s et sortir vr de la base. On itre jusqu ce que toutes
les variables artificielles soient hors base. Ainsi, on revient au cas
2.

6.3.2

Exemples dapplication

Exemple 14. Soit (P) le problme :

max z

x
+
2x
1
2 + x3

x 1 + x 2 + 5x 3

x 1 + 2x 2 + 6x 3 + x 4
x1, x2, x3, x4

=
=
=
=

Le problme auxiliaire scrit alors :

min

x
+
2x
+
x
1
2
3 + v1

x 1 + x 2 + 5x 3 + v2

x
1 + 2x 2 + 6x 3 + x 4
x 1 , . . . , x 4 , v1 , v2

x1 + x2 + x3 + x4
2
12
13
0

=
=
=
=

v1 + v2
2
12
13
0

6.3. INITIALISATION DE LALGORITHME DU SIMPLEXE

57

On a considr x 4 comme variable artificielle car elle napparat quune


seule fois dans une seule des quations, et x 4 doit tre positive. Les variables
de base sont donc v1 , v2 et x 4 . Ainsi, une solution de base ralisable initiale de
(PA) est :
v1 = 2

x1 = 0

v2 = 12

x2 = 0

x 4 = 13

x3 = 0

= 14

Appliquons maintenant la mthode des tableaux :


ci B
1 v1
1 v2
0 x4

x1
1
1
1

x2
2
1
2

x3
1
5
6

2 3 6

x4 v1 v2
0 1 0 2
0 0 1 12
1 0 0 13
0

En ce qui concerne la valeur des j , il faut utiliser la formule


X
ci ai j
j = cj
iB

= 14.
On a
On choisit la ligne 1 et la colonne 3 comme pivots.
ci B x1
x2 x3 x4 v1 v2
0 x3 1
2
1 0 1 0 2
1 v2 4 9 0 0 5 1 2
0 x 4 5 10 0 1 6 0 1

= 2. Comme tous les i sont positifs, nous avons l une solution optiavec
male de (PA) :
x3 = 2

x1 = 0

x4 = 1

x2 = 0

v2 = 2

v1 = 0

=2

est strictement positive, donc le problme


Cependant, la valeur optimale
initial (P) nadmet pas de solution.

CHAPITRE 6. PROGRAMMATION LINAIRE

58

Exemple 15. Modifions lgrement le problme (P) :

max z = x 1 + x 2 + x 3 + x 4

2x
2 + x3 = 2

x 1 + x 2 + 5x 3 = 12

x 1 + 2x 2 + 6x 3 + x 4 = 13
x1, x2, x3, x4 0
Le problme auxiliaire correspondant est :

min =

2x
+
x
2
3 + v1 =

x 1 + x 2 + 5x 3 + v2 =

x 1 + 2x 2 + 6x 3 + x 4 =
x 1 , . . . , x 4 , v1 , v2

v1 + v2
2
12
13
0

En appliquant la mme mthode, on obtient le tableau


ci B
1 v1
1 v2
0 x4

x1
0
1
1

x2
2
1
2

x3
1
5
6

x4 v1 v2
0 1 0 2
0 0 1 12
1 0 0 13

1 3 6

On choisit comme pivot la ligne 1, colonne 3. Au bout de trois itrations,


le tableau optimum obtenu avec lalgorithme du simplexe est :
ci B x1 x2 x3 x4 v1 v2
1
1
0 x2 0 1
0
0 1
2
2
1
1
1 0
1 v2 0 0 2 1 2
0 x1 1 0 5
1 1 0 11

1
2

1
2

On a ainsi obtenu la solution optimale suivante pour (PA) :


x 1 = 11

x3 = 0

x2 = 1

x4 = 0

v2 = 0

v1 = 0

=0

6.3. INITIALISATION DE LALGORITHME DU SIMPLEXE

59

Nous avons une solution optimale, mais nous avons encore une variable
artificielle dans notre base. Nous allons alors enlever cette variable et en ajouter une autre non artificielle, en utilisant comme pivot la ligne 2, colonne 4.
Cela donne :
ci B x1 x2 x3 x4 v1 v2
1
0 x 2 0 1 12 0
0
1
2
1 x 4 0 0 21 1 12 1 0
0 x 1 1 0 29 0 12 1 11

1
2

1
2

Ainsi, les variables de base sont x 1 , x 2 et x 4 . Nous avons dsormais une


base initiale afin dappliquer lalgorithme du simplexe sur notre problme de
maximisation (P). Le tableau sur lequel appliquer lalgorithme serait :
ci B x1 x2
1 x2 0 1
1 x4 0 0
1 x1 1 0

x3

x4
0 1
1 0
0 11

92

1
2
1
2
9
2

avec z = 12. La solution est demble optimale, 1 ce qui nest pas toujours le
cas ! Ainsi :
x 1 = 11

x3 = 0

x2 = 1

x4 = 0

z = 12

6.3.3

Mthode des pnalits

Afin de rsoudre (P), on rsout le problme auxiliaire


min

n
X

c j x j +M

j=1

| {z }

m
X

vi

i=1

fonc. co de (P)

avec M une pnalit. Lide gnrale de la rsolution reste cependant identique.


1. Pour un problme de maximisation, la condition ncessaire et suffisante doptimalit
est que les i soient ngatifs ou nuls.

60

CHAPITRE 6. PROGRAMMATION LINAIRE

Chapitre 7
Processus alatoires (ou
stochastiques)
On se donne un ensemble de variables alatoires {X (t), t T }. On dit
aussi que X (t) est la valeur du processus linstant t.
Lensemble T est lensemble des paramtres (discrets ou continus). Lensemble des valeurs du processus est appel espace des tats ; cet ensemble peut
tre discret ou continu.
Exemple 16 (File dattente). On se donne un guichet o viennent se servir
des clients. Chaque client est servi pendant un temps alatoire. On note X (t)
(t [0; +[) le nombre de clients dans le systme dattente linstant t.
Lespace des tats est N.

7.1 Processus de Markov (sans mmoire)


Dfinition 19. Un processus {X (t), t T } est un processus markovien si, pour
tout n N, pour tout t 1 < t 2 < < t n < t n+1 ,
Pr(X (t n+1 ) A|X (t 1 ), X (t 2 ), . . . , X (t n )) = Pr(X (t n+1 ) A|X (t n ))
Autrement dit : la connaissance des vnements antrieurs est inutile.
Dfinition 20 (Processus homogne). Si Pr(X (t + s) A|X (t)) ne dpend pas
de t, ce processus est dit homogne.

7.1.1

Processus de Poisson

Il sagit dun processus de Markov homogne dont lespace des tats est
discret, mais lensemble des paramtres est continu.
61

CHAPITRE 7. PROCESSUS ALATOIRES

62

On se donne un vnement e qui se produit intervalles alatoires. Le


processus est {X (t), t [0, +[}, o X (t) est le nombre dvnements qui se
sont produits entre linstant 0 et linstant t.
Postulats
Soit h un intervalle de temps.
Pr(X (t + h) X (t) = 1) = h + o(h)

>0

Pr(X (t + h) X (t) = 0) = 1 h + o(h)


On note Pm (t) = Pr(X (t) = m), i.e. la probabilit que m vnements se
produisent entre les instants 0 et t. On souhaite calculer Pm (t).
Calcul de Pm (t)
Soient m N, t R+ et d t > 0.
Pour m = 0
P0 (t + d t) = P0 (t) (1 d t + o(d t))
P0 (t + d t) P0 (t)
o(d t)

= P0 (t) +
dt
dt
do
P0 (t) = P0 (t)
En rsolvant cette quation diffrentielle, on obtient
P0 = cet

cR

Lorsque t = 0, on a P0 (0) = 1, do c = 1. Donc


P0 (t) = et
Pour m 1 Ici, on peut crire
Pm (t + d t) = Pm1 (t)d t + Pm (t) (1 d t)
car on doit considrer le cas o un vnement se produise entre t et t + d t,
et celui o aucun vnement ne se produit. On calcule de la mme faon la
drive, et on obtient :
Pm (t) = Pm1 (t) Pm (t)

7.1. PROCESSUS DE MARKOV (SANS MMOIRE)

63

Pour m = 1, on a :
P1 (t) + P1 (t) = et
La rsolution de cette quation-l donne
P1 (t) = t et
En appliquant le raisonnement analogue, on obtient de faon gnrale :

Pm (t) =

7.1.2

(t)m et
m!

(7.1)

Processus de naissance

Ceci est une premire gnralisation du processus de Poisson. Soit un processus {X (t), t [0, +[ o X (t) est leffectif dune population linstant t.
On suppose que X (0) = 0. Les postulats deviennent les suivants :
P r(X (t + h) X (t) = 1|X (t) = k) = k h + o(h)
P r(X (t + h) X (t) = 0|X (t) = k) = 1 k h + o(h)

Pendant lintervalle de temps h (quon fera tendre vers 0), il y a deux possibilits : une naissance ou zro naissance.
Pour tout (m, t) N R+ , on note Pm (t) la probabilit que leffectif de la
population soit gale m linstant t.
Calcul de Pm (t)
Soit t 0 et d t > 0. On a :

P0 (t + d t) = P0 (t)(1 0 d t)

P0 (t) = 0 P0 (t)

et
Pm (t + d t) = Pm1 (t)m1 d t + Pm (t)(1 m d t)

Pm (t) = m1 Pm1 (t) m Pm (t)

CHAPITRE 7. PROCESSUS ALATOIRES

64

Nous devrons utiliser la transforme de Laplace (cf. annexe A). On a donc,


pour m 1 :
pPm (p) = m1 Pm1 (p) m Pm (p)

Pm (p) = m1

Pm1 (p)
p + m

et pour m = 0 :
pP0 (p) p = 0 P0 (p)

P0 (p) =

p + 0

ce qui donne :
P1 (p) =
P2 (p) =

0
p + 1
1
p + 2

P0 (p)
P1 (p)

..
.
Pm (p) =

m1

Pm1 (p)
p + m
m1
Y
i
P0 (p)
=
p + i+1
i=0
=

m1
Y

i=0

p + i+1

On peut alors distinguer deux cas diffrents :


1. Tous les i sont diffrents et non nuls :
!
m
m1
X
Y
ek t
Q
Pm (t) =
i
j=0 ( j k )
i=0
k=0
j6=k

2. Tous les i sont gaux une constante :


p
Pm (p) = m
(p + )m+1
do
Pm (t) =

t et
m!

7.1. PROCESSUS DE MARKOV (SANS MMOIRE)

7.1.3

65

Processus de naissance et de mort

Ceci est une deuxime gnralisation du processus de Poisson.


Soit {X (t), t [0, +[} le processus tel que X (t) soit gale leffectif
dune population linstant t. Cette fois, on introduit la possibilit quil y ait
une mort parmi la population pendant deux instants donns. Les postulats
ainsi rcrits deviennent :
Pr(X (t + h) X (t) = 1|X (t) = k) = k h + o(h)

Naissance

Pr(X (t + h) X (t) = 1|X (t) = k) = k h + o(h)

Mort

Pr(X (t + h) X (t) = 0|X (t) = k) = 1 (k + k )h + o(h) Rien du tout


Les i (resp. i ) sont appels taux de naissance (resp. taux de mort). Tous les
i et i sont strictement positifs, sauf 0 qui est nul.
Calcul de Pm (t)
Cette fois, P0 (t) scrit
P0 (t + d t) = P0 (t)(1 0 d t) + P1 (t)1 d t

P0 (t) = 0 P0 (t) + 1 P1 (t)

et pour m 1 :
Pm (t + d t) = Pm1 (t)m1 d t + Pm (t)(1 m1 d t m1 d t)
+ Pm+1 (t)m+1 d t
do
Pm (t) = m1 Pm1 (t) (m + m )Pm (t) + m+1 Pm+1 (t)
Afin dallger les notations, on pose
n =

0 . . . n1

+
X

1 . . . n

k=1

k converge

On note galement lim Pm (t) = Pm .


t+

Il sagit en quelque sorte dun rgime permanent atteint aprs un certain


rgime transitoire ; on ne sintressera quaux calculs des probabilits en rgime permanent (i.e. des Pm ).
Rsolvons le systme suivant :
0 = 0 P0 + 1 P1
0 = m1 Pm1 (m + m )Pm + m+1 Pm+1 pour m 1

CHAPITRE 7. PROCESSUS ALATOIRES

66
Soit m 1. On a :

m Pm m+1 Pm+1 = m1 Pm1 m Pm


= 0 P0 1 P1
=0
do
Pm =

m1
m

Pm1

..
.
P1 =

0
1

P0

et donc
Pm =

0 . . . m1
1 . . . m

P0

Comme il sagit dune distribution de probabilits, on a


+
X
Pm = 1
m=0

et donc
Pm = m

1+

+
X

!1
i

i=1

Considrons le cas particulier o 0 = 1 = = et 0 = 1 = = .


Alors, on a :
 m

P0
Pm =

| {z }
m

Afin que le rgime permanent puisse stablir, il faut que


diverge.
Ainsi,
+  m
+
X
X

Pm = 1 P0
=1

m=0
m=0
!
+  m 1
X

P0 =

m=0
P0 = 1

< 1, sinon

7.1. PROCESSUS DE MARKOV (SANS MMOIRE)

67

Exemple dapplication
En utilisant le modle dmographique de croissance linaire avec immigration, on a ici :
Taux de naissance : n = n + a
Taux de mort : n = n
On note toujours X (t) leffectif de la population linstant t, et on souhaite
toujours calculer Pn (t) = Pr(X (t) = n).
P0 (t + d t) = P0 (t)(1 a d t) + P1 (t) d t
et donc
P0 (t) = aP0 (t) + P1 (t)
Pour n 1 :
Pn (t + d t) = Pn1 (t)((n 1) + a)d t + Pn (t)(1 (n + a + n)d t)
+ Pn+1 (t)(n + 1) d t
ce qui donne
Pn (t) = ((n 1) + a) Pn1 (t) (n + a + n)Pn (t) + (n + 1)Pn+1 (t)
On note M (t) lesprance mathmatique de leffectif linstant t. Ainsi :
M (t) =

+
X

M (t) =

nPn (t)

n=0

+
X

nPn (t)

n=0

On constate que M (t) = a + ( + )M (t), do lquation diffrentielle


M (t) + ( )M (t) = a
Rsolvons cette quation. Si on note i leffectif t = 0, on a :

M (t) =

at + i

i

si =


exp(( )t) +

sinon

Si > , alors lim t+ M (t) = +. Si < , alors M (t) se stabilise


a
autour de la grandeur
.

68

CHAPITRE 7. PROCESSUS ALATOIRES

7.2 Chanes de Markov


Il sagit dun processus de Markov dont lensemble des indices est discret
(contrairement aux processus de Markov), mais lespace des tats est toujours
discret.
On note une telle chane {X n ; n = 0, 1, 2, . . . }.
Proprit 17. Ltat actuel ne dpend que de ltat prcdent ; ce processus est
sans mmoire. Autrement dit : Soient n 1 et ( jk )k0,n S n n + 1 valeurs dans
lespace des tats. Alors
Pr(X n = jn |X i = ji , i 0, n 1) = Pr(X n = jn |X n1 = jn1 )
Par ailleurs, la grandeur Pr(X n = j|X n1 = i) ne dpend pas de n et est note
pi j . On appelle probabilit de transition cette grandeur.
Exemple 17 (Ruine du joueur). On se donne 2 joueurs A et B qui commencent
avec les capitaux respectifs a et b . chaque pas, on tire pile ou face. Si
pile, B donne 1 A. Si face sort, A donne 1 B. Le jeu sarrte lorsquun
des deux joueurs est ruin.
On pose s = a+ b. Afin de caractriser les tats de la chane, on considrera
le capital du joueur A. Lespace des tats est donc 0, s.
Soit (i, j) 0, s2 . Les probabilits de transition sexpriment de la faon
suivante :

p (pile) si j = i + 1, i 6= 0

q (face) si j = i 1, i 6= s
pi j =

1
si i = 0 ou i = s

0
dans les autres cas

7.2.1

Matrice associe une chane de Markov finie

Soit une chane de Markov avec r tats. La matrice (pi j )(i, j)1,r2 est une
matrice stochastique, i.e.
i 1, r,

r
X
j=1

pi j = 1

7.2. CHANES DE MARKOV

69

Dans lexemple 17, cette matrice est de la forme :

1 0 0 0 0 ... 0 0 0
q 0 p 0 0 . . . 0 0 0

0 q 0 p 0 . . . 0 0 0

0 0 q 0 p . . . 0 0 0

.. .. .. .. .. . . .. .. ..
. . . . .
. . . .

0 0 0 0 0 . . . q 0 p
0 0 0 0 0 ... 0 0 1
avec p + q = 1.
Dfinition 21. Soit P = (pi j ) une matrice carre dordre r. Cette matrice est
dite stochastique si :
(i, j) 1, r2 , pi j [0; 1] ;
Pr
p = 1.
i 1, r,
j=1 i j
On pose Q(n) une distribution de la probabilit des tats la transition n
telle que
Q(n) = (q1 (n), . . . , qi (n) . . . , q r (n))
o qi (n) est la probabilit dtre dans ltat i la transition n. Ainsi, on a :
qi (n + 1) =

r
X

qk (n)pki

k=1

Si on note P la matrice des probabilits de transition, on a :


Q(n + 1) = Q(n)P
Q(n) = Q(0)P n

7.2.2

Graphe associ une chane

Le graphe associ une chane est le graphe G = (X , U) tel que :


les sommets sont les tats de la chane ;
larc (i, j) appartient U ssi pi j > 0.
Exemple 18. Prenons la matrice P suivante :
1
1
1
0
0
3 1 3 1 3
0 2 0 2 0

P = 21 0 14 0 41

0 13 0 31 0
1 0 0 0 0

CHAPITRE 7. PROCESSUS ALATOIRES

70

4
2
5

FIGURE 7.1 Chane de Markov


Le graphe associ est celui de la figure 7.1. On constate ici que celui-ci
comporte deux composantes connexes.
Exemple 19. Dans le problme du ruine du joueur (cf. exemple 17), le graphe
associ est celui de la figure 7.2.

p
0

p
2

p
3 i 1

p
i

p
i+1

s1

s
1

FIGURE 7.2 Graphe associ lexemple 17

7.2.3

Classification des tats

Dfinition 22. Soient E1 , E2 , . . . , E r des tats. On dfinit une relation dquivalence R telle que :
(n)

(m)

Ei R E j (m, n), pi j > 0 et p ji > 0


(n)

o pi j est la probabilit de passer de i j en n transitions. Autrement dit :


Ei R E j il existe un chemin de i j et de j i
(n)

Proprit 18. Le terme pi j est le terme (i, j) de la matrice P n .

7.2. CHANES DE MARKOV

71

Dfinition 23 (tats communicants). Ei et E j sont deux tats communicants


ssi Ei R E j . On peut alors partitionner en classes dquivalences appeles classes
dtats communicants. Il sagit alors des composantes fortement connexes du
graphe associ.
Dfinition 24 (Ensemble ferm dtats). C est un ensemble dtats ferm si
Ei C, E j 6 C, pi j = 0.
Si C est un singleton, son unique lment est appel tat absorbant.
Dfinition 25. Une chane irrductible est une chane qui ne contient pas de
sous-ensembles ferm dtats.
Proprit 19. Dans une chane irrductible, tous les tats communiquent.
Dmonstration. Supposons que Ei et E j ne communiquent pas (par exemple,
on ne peut atteindre E j partir de Ei ). Soit C lensemble de tous les tats que
lon peut atteindre partir de Ei . Par dfinition, E j 6 C, donc la chane nest
pas irrductible.
Proprit 20. Une chane est irrductible ssi le graphe associ est fortement
connexe.
(n)

Dfinition 26. On note f i j la probabilit de premier passage, i.e. la probabilit


de passer en j pour la premire fois au bout de n transitions en partant de i.
On pose galement
n
X
(k)
(n)
fi j
Fi j =
k=1

la probabilit, en partant de ltat i, de passer pour la premire fois en j avant


la transition n + 1. Enfin, on pose
(n)

Fi j = lim Fi j
n+

Dfinition 27. Ei est un tat transitoire ssi Fii < 1. Ei est dit persistant si
Fii = 1.

tat priodique (ou persistant)


(n)

Pour chaque tat Ei , on calcule di = pgcd{n | pii > 0}. Il sagit, en fait, du
PGCD de la longueur des circuits passant par ltat i.
Dfinition 28. Ltat Ei est :
priodique de priode di si di > 1 ;

CHAPITRE 7. PROCESSUS ALATOIRES

72

E1

E2
E1 , E2 transitoires
E3 , E4 persistants

E4

E3

FIGURE 7.3 tats transitoires et permanents


apriodique si di = 1.
Thorme 21. Tous les tats dune classe dtats communicants ont la mme
priode.
Une condition suffisante de priodicit dune classe dtats communicants
est la prsence dune boucle sur un des tats de la classe.

7.2.4

Distribution limite dune chane de Markov finie

On rappelle quon a Q(n + 1) = Q(n)P, donc Q(n) = Q(0)P n . Comment se


comporte Q(n) lorsque n tend vers + ?
Dfinition 29. Une chane est rgulire si elle admet une distribution limite
indpendante de ltat initial.
On note Q = lim Q(n).
n+

Thorme 22 (Condition ncessaire et suffisante de rgularit). Une chane est


rgulire ssi le graphe associ possde une seule classe finale dtats communicants
non priodique.
Calcul de la distribution limite
Une ide pour calculer Q est dutiliser la formule
Q = Q(0)P o P = lim P n
n+

Une autre mthode est dutiliser le fait que si Q est la distribution limite,
alorsP
Q = Q P. Cela donne un systme dquations linaires. En outre, il faut
r
que i=1 qi = 1.

7.2. CHANES DE MARKOV

73

Exemple 20. Dans le graphe de la figure 20, il y a une classe finale non priodique, donc la chane est rgulire.
La matrice P de transition est donne par :
1 1

0 0
2
2

2
1
0 0 3 3
P = 1 1

2 2 0 0
0 0 1 0
On doit alors rsoudre le systme dquations

(q1 , . . . , q4 ) =

q1 + q2 + q3 + q4 =

q1 =
q2 =

q3 =

q4 =
1
3q1 + q1 = 1
3
3
q1 = q2 = q3 =
; q4 =
10

(q1 , . . . , q4 )P
1
1
q + 21 q3
2 1
1
q + 21 q3
2 1
2
q + q4
3 2
1
q
3 2

1
10

La probabilit de se retrouver dans ltat 1, 2 ou 3 aprs un temps infini


1
3
, et celui de se retrouver dans ltat 4 vaut 10
.
vaut 10

74

CHAPITRE 7. PROCESSUS ALATOIRES

Chapitre 8
Phnomnes dattente
On se donne un guichet (ou station) qui sert une file de clients (aussi appels units). Cette file est illimite, et on applique la discipline premier arriv,
premier servi .
Les arrives sont poissoniens, i.e. la probabilit darrive de k clients pendant une dure t vaut
et (t)k
k!
o est le taux darrive.
Les services sont exponentiels, i.e. la dure du service suit une loi de densit et , o est le taux de service.
On souhaite calculer Pn (t), la probabilit davoir n clients dans le systme
linstant t.
Soit la variable alatoire de lintervalle de temps entre deux arrives
conscutives. Alors :
F (t) = Pr( t) = 1 P0 (t)
f (t) = et
= 1 et

8.1 Systme un guichet


Soit X (t) la variable alatoire du nombre de clients dans le systme t. Il
sagit dun processus de naissance et de mort, avec un taux de naissance (i.e.
un taux darrive) de et un taux de mort (i.e. un taux de service) de .
Un rgime permanent existe si < 1 ; sinon, les clients deviendront trop
nombreux, et X (t) tendra vers +. En rgime permanent, on a vu que :
Pn = lim Pn (t) =
t+

75

0 n1
1 n

P0

CHAPITRE 8. PHNOMNES DATTENTE

76

Ici, tous les i sont gaux, ainsi que tous les i . On rappelle alors quon
trouvait

P0 = 1

et donc
Pn =

8.1.1

 n 

Nombre moyen de clients dans le systme en rgime


permanent

Calculons le nombre moyen de clients dans le systme en rgime permanent. En dautres termes : lesprance de X (t) quand t + :
=
n

+
X

nPn

n=0


+  n 
X

1
=
n

n=0

 +  n1
X

= 1
n
n=1



+  n

= 1
n=0



1
= 1



1

= 1

2

1
et donc
=
n

Exemple 21. Application numrique : = 18 clientsh1 , avec une dure

8.2. SYSTME PLUSIEURS GUICHETS IDENTIQUES

77

moyenne du service de 2 minutes (ce qui donne = 30 h1 ). On a alors :


18

=
n

= 1,5 client

12

P0 = 1

8.1.2

18
30

Nombre moyen de clients dans la file

Cette grandeur est exprime par :


=
=

+
X

(n 1)Pn

n=2
+
X

nPn

n=2

+
X

Pn

n=2

1 + P0
=n

8.2 Systme plusieurs guichets identiques


On se donne cette fois S guichets identiques avec le mme taux de service
. On prend une file illimite, commune aux S guichets, avec la mme discipline, et les mmes lois que prcdemment. On peut ainsi servir S clients
simultanment.
Il sagit toujours dun processus de naissance et de mort, avec un taux de
naissance de , mais cette fois un taux de mort diffrent :
(
S si n S
n =
n si n < S
Ainsi, en reprenant les calculs vus prcdemment :
n

Pn =

n
1 2n

P0

n!n
=
n

P0

S!S nS n
Sachant que

P+
n=0

si 1 n S
P0

si n S

Pn = 1, on a :

P0 =

 
S1
X
1 n
n=0

n!

+  n
X

n=S

1
S!S nS

!1

CHAPITRE 8. PHNOMNES DATTENTE

78
En outre :

 
 S X
1 + nS

do

S!

n=S

 S

S! 1

1
 S



S1

X
n 1



+
P0 =

n!
S! 1
n=0

< 1.
Un rgime permanent est possible condition que S
On peut alors recalculer la densit f de la variable alatoire du temps
dattente. On obtient alors la probabilit dattendre plus que pour tre servi.
Combien faut-il alors ouvrir de guichets pour que la probabilit dattendre
plus que soit infrieure une certaine valeur Pmax ?

Chapitre 9
Fiabilit des quipements
9.1 Gnralits
On se donne des quipements pour lesquels on a observ une certaine
fiabilt, et on souhaite optimiser lutilisation de ces quipements afin de minimiser les problmes dexploitation ds des pannes.
Dfinition 30. Soit T une variable alatoire. On appelle fiabilit dun quipement la grandeur
v(t) = Pr(T > t)
i.e. la probabilit que lquipement fonctionne encore correctement au bout
dun temps t.
On appelle fonction de mortalit (note i(t)) la densit de T . Ainsi :
Pr(t < T < t + d t) = i(t)d t
et

d(1 v(t)

= v (t)
dt
Le taux davarie, not (t), est donn par la formule
i(t) =

(t)d t = Pr(t < T < t + d t|T > t) =

i(t)d t
v(t)

v (t)
v(t)

La dure de vie moyenne dun quipement est donne par :


Z +
t =
t i(t)d t
0

[t v(t)]+
0

v(t)d t
0

79

CHAPITRE 9. FIABILIT DES QUIPEMENTS

80

Comme t v(t) tend vers 0 si t +, on a :


Z

t =

v(t)d t
0

9.2 Formes analytiques de la fiabilit et du taux


davarie
On souhaite obtenir des formules explicites pour v(t) et pour (t). Les
vnements de panne sont supposes alatoires et suivant une loi de Poisson.
Ainsi :
(t)k et
Pr(k vnements pendant t) =
k!
On suppose que le premier vnement survenu entrane la panne de lquipement 1 . Ainsi, la fiabilit sexprime par :
v(t) = Pr(T > t)
= Pr(0 vnement pendant t)
= et
et le taux davarie vaut :
(t) =

v (t)

v(t)

et
et

9.3 Gnralisation de la loi exponentielle : loi Erlang-k


On reprend le modle prcdent, sauf que contrairement au celui-ci, k
vnements sont ncessaires pour provoquer une panne. Ainsi :
v(t) = Pr(T > t) =
i(t) = et

(t)

k1 t
X
e (t)n

n=0
k1

n!

(k 1)!

1. Ce modle nest plus souvent utilis en pratique, mais il savre pertinent dans le cas o
le matriel nest pas sujet lusure.

9.4. MATRIEL DUSURE

81

9.4 Matriel dusure


Soit p une fonction croissante. Alors :
(t) = p(t)

v (t)
v(t)

= p(t)

do
Z

log v(t) =

p(u)du
0

et donc

v(t) = exp

p(u)du
0

Exemple 22 (Loi de Weibull). Ici, le taux davarie vaut


(t) = t 1
do
v(t) = exp((t) )
i(t) = t 1 e(t)

9.5 Fiabilit des systmes


On se donne un systme n composants, et on voudrait connatre la fiabilit du systme, connaissant la fiabilit de chaque composant.

9.5.1

Systme en srie

Le systme ne fonctionne que si tous ses composants fonctionne. La panne


de lune dentre elles entrane la panne du systme (ex. : RAID 0).
Autrement dit : de manire gnrale, le systme ne fonctionne que sil
existe une chane entre E et S.
Pour chaque composant i, on connat sa dure de vie Ti , ainsi que sa fiabilit vi (t). On souhaite calculer T et v(t), qui sont la dure de vie et la fiabilit
du systme entier.

CHAPITRE 9. FIABILIT DES QUIPEMENTS

82

v1 (t)

v2 (t)

vn (t)

FIGURE 9.1 Systme en srie


Or :
Pr(T > t) = Pr(T1 > t) Pr(T2 > t) Pr(Tn > T )
donc
v(t) =

n
Y

vi (t)

i=1

9.5.2

Systme en parallle
v1 (t)
v2 (t)
..
.

vn (t)

FIGURE 9.2 Systme en parallle


Ici, le systme contient plusieurs lments redondants : le systme ne
tombe en panne que si tous ses composants tombent en panne (ex. : RAID
1). Cela se traduit de manire identique :
Pr(T < t) =

n
Y

(1 vi (t))

i=1

do
v(t) = 1

n
Y

(1 vi (t))

i=1

Exemple 23. On peut alors imaginer des systmes en srie mis en parallle,
ou des systme en parallle mis en srie. Lesquels sont les plus fiables ?

9.6. PROBABILIT DE CONSOMMATION

83

9.6 Probabilit de consommation


On appelle consommation le nombre de remplacements dun matriel pendant un temps t. Autrement dit :
Pm (t) = Pr(effectuer m remplacements pendant t)
Z t
=

i(u) Pm1 (t u) du
0

En appliquant la transforme de Laplace (et en notant I(p) = Li(t)) :


L Pm (t) =

Pm1 (p)I(p)
p

En appliquant ainsi cette formule rcurrente, on a :


P0 (p) = V (p)
1
P1 (p) = P0 (p)I(p)
p
..
.
1
Pm (p) = Pm1 (p)I(p)
p
do
Pm (p) =

1
p

I(p)m V (p)

Il ne reste plus qu calculer V (p). Or, sachant que


Z t
v(t) = 1

i(u) du
0

on obtient alors
V (p) = 1

I(p)
p

et donc
m
p(1 V (p) V (p)
p
m
= 1 V (p) V (p)

Pm (p) =

84

CHAPITRE 9. FIABILIT DES QUIPEMENTS

Refaire la transforme inverse est fastidieux. Cependant, en appliquant le


cas particulier o v(t) = et , on a
V (p) =

p
p+

et donc

Pm (p) =

= m

m

p+
p

p
p+

(p + )m+1

La transforme inverse donne alors


Pm (t) =

et (t)m
m!

9.7 Entretien prventif


Une premire stratgie est de remplacer le matriel ds quil tombe en
panne, et seulement lorsquil tombe en panne.
Une deuxime stratgie, cependant, consiste faire de lentretien prventif,
en remplaant systmatiquement le matriel au bout dun certain temps , ou
lorsquil tombe en panne.
On note P le cot d la panne, et p le cot dun matriel neuf. chaque
panne, le cot est de P + p ; chaque remplacement prventif, cela ne cote
que p.

9.7.1

Calcul du cot moyen

Stratgie 1 Le cot moyen vaut


p+P
t
Stratgie 2 En notant t la dure de vie moyenne du composant sachant
quil est remplac tous les , on obtient :
p + P(1 v( ))
t

9.7. ENTRETIEN PRVENTIF

85

avec
Z

t =

v(t) d t
Z

t =

t i(t) d t +
Z

i(t) d t

v(t) d t
0

9.7.2

Conclusion

Lentretien prventif est intressant sil existe tel que :


p+P
p + P(1 v( ))
> R +
R +
v(t) d t
v(t) d t
0
0
Exemple 24. Dans le cas dune fiabilit exponentielle v(t) = et :
t =

t =

Alors, lentretien prventif est intressant si


p + P(1 e )

pe

p+P
1

<0

<0

ce qui est impossible. Ce rsultat est cependant attendu, car dans ce cas prcis,
il ny a pas dusure. . .

86

CHAPITRE 9. FIABILIT DES QUIPEMENTS

Annexe A
Transforme de Laplace
Soit f une fonction dfinie sur R+ . On note L f (x) ou F la transforme de
Laplace de f , qui est une fonction de C et qui sexprime par :
Z

ep x f (x)d x

L f (x): p 7 p
0

Transformes usuelles
La = a
a
Lax =
p
Leax =
L
Z

df
dx

Le ax f (x) =
L

L
0

p+a

(x) = p L f (x) p f (0)

f (u)du =

n1

e ax =

1
p

L f (x)
p

pa
p

(p + a)n
1
f1 (x) f2 (x u)du = F1 (p)F2 (p)
p
(n 1)!

87