Vous êtes sur la page 1sur 60

Cours de Recherche Oprationnelle

Niveau : TS.
Anne : 2010.

Introduction :
La Recherche oprationnelle est une science dont les fondements de bases et les
premires applications datent de la deuxime guerre mondiale. Elle traite des
problmes rsolus mathmatiquement lpoque afin de rpondre certaines
exigences des responsables militaires. A la fin de la guerre les scientifiques se sont
retrouv avec une armada de mthodes qui permettent de rsoudre certains problmes,
cest partir de l quils ont pens dvelopper cet acquis mais cette fois ci pour
lexploiter dans la vie quotidienne,

en conomie, en industrie et la recherche

scientifique.
La recherche oprationnelle en tant que science se partage en plusieurs filires suivant
le type dapplications, ainsi elle est compose de : la Thorie des graphes,
loptimisation dans les rseaux, la programmation linaire, la programmation non
linaire, loptimisation combinatoire, La Modlisation, la simulation et laide la
dcision monocritre et multicritre.
Dans ce cours nous allons essayer de prsenter quelques domaines de la recherche
oprationnelle, nous commencerons dans un premier temps par la prsentation des
dfinitions de bases de la thorie des graphes, afin de vous familiariser avec le Jargon
de ce domaine, ensuite nous entamerons la partie optimisation dans les rseaux dans
laquelle on verra en dtail les problmes de cheminements leurs applications et leurs
rsolutions. Ensuite on passera aux principes de la programmation dynamique quon
expliquera avec les mthodes de recherche des plus courts chemins dans les graphes.
La gestion scientifique des stocks est un domaine trs apprci en recherche
oprationnelle, de la nous prsenterons les dfinitions de bases ainsi que les principes
dominants.

Nous terminons ce cours

par la prsentation de quelques mthodes de simulation

travers lesquelles on verra lapport de la recherche oprationnelle dans le domaine non


dterministe et o lalatoire intervient.

Chapitre 1 : Dfinitions de base


de la thorie des graphes.
Introduction :
La thorie des graphes permet de transcrire concrtement des faits en les modlisant
l'aide d'objets mathmatiques, afin de rsoudre des problmes tels :
- Les problmes dordonnancement, qui ont pour but la recherche dun ordre optimal
des tches pour une ralisation complexe : il sagit de trouver un ordre de ralisation
des travaux, en minimisant le temps total et le cot total ;
- Les emplois du temps et la rpartition des salles ;
- Les problmes daffectations (organiser des quipes de travail pour quelles soient le
plus efficaces possibles) ;
Les problmes de maintenance (minimiser les stocks de pices de rechange, ou les
cots dus larrt des machines) ;
- Les problmes de comptition et de concurrence ;
- Les problmes de classification de produits, ou dindividus.
Le premier problme connu dutilisation dun graphe pour rsoudre un problme est
celui des 7 ponts de Knigsberg , rsolu en 1735 par le mathmaticien suisse
Leonhard Euler :
La ville de Knigsberg (Prusse orientale) comptait 7 ponts, disposs selon la figure cicontre.

Lhistoire veut que Lonard Euler, en visite dans cette ville, ait eu rsoudre le
problme qui proccupait fortement ses habitants : Est-il possible de trouver un
chemin qui emprunte une fois et une seule chacun des sept ponts de la ville et revenir
au point de dpart? Pour cela, lide est de commencer par traduire lnonc du
problme par un schma :
Chaque lieu de la ville est repr par sa position gographique : N pour le nord de la
ville ; S pour le sud de la ville, O pour louest et I pour le. Chaque pont sera alors
reprsent par un trait reliant ces lieux entre eux.
Cette modlisation sappelle un graphe : Quest-ce quun graphe ? Cest un
ensemble de sommets et de liens entre 2 sommets que lon appelle artes.
La traduction du problme de dpart en termes de proprits du graphe est alors :
Peut-on circuler sur le graphe partir dun sommet en empruntant une fois et une
seule chaque arte ? . Mais la thorie des graphes a rellement pris son dpart
pendant la seconde guerre mondiale, plus prcisment en Angleterre en 1940, sous le
nom d Operation Research . Ltat Major alli, qui devait accrotre lefficacit de
ses oprations, en confia le travail au physicien Blackett. Il sagissait de rechercher la
meilleure rotation des quipages dans les avions1, limplantation optimale des radars,
plus tard lorganisation des convois transatlantiques

Dfinitions de base.
1) Gnralits sur les graphes
Dfinition1:
Un Graphe est un ensemble de points (appels Sommets du graphe) ventuellement
relis par un ou plusieurs segment(s) appels Artes.
Dfinition2: Un modle mathmatique est une traduction de la ralit pour pouvoir lui
appliquer les outils, les techniques et les thories mathmatiques, puis gnralement, en sens
inverse, la traduction des rsultats mathmatiques obtenus en prdictions ou oprations dans
le monde rel.
Ainsi la thorie des graphes sintresse aux modles mathmatiques dfinit par des graphes
selon la dfinition1.
3

Sommet : Un sommet est un 'noeud' du graphe. C'est l'extrmit d'une arte.


Arrte : On dsigne une arte par la pair de sommets quelle relie : {x,y} ou [x y], et on parle
de larte dextrmits x et y; les sommets x et y sont alors dit adjacents, et larte et dite
incidente aux sommets x et y.

Graphe : Un graphe G est dfinit par un couple densembles, le premier reprsente


lensemble des sommets X et le second reprsente lensemble des artes E. Et on crit alors
G=(X,E), Le cardinal de X =n et sappel lordre du graphe G.

Exemple :
On sintresse un tournoi de football. Supposant que nous voulons organiser un tournoi de
football avec 05 quipes. Nous cherchons voir quel est le nombre de matchs de football
programmer ?
Dans un premier temps en commence par la modlisation mathmatiques et la on suppose que
les sommets reprsentent les diffrentes quipes et les artes reprsentent les rencontres de
football. Donc il existe un arte relient deux sommets (x,y)X2.

X={E1, E2, E3, E4, E5}


E={(E1,E2), (E1,E3), (E1,E4), (E1,E5), (E2,E3), (E2,E4), (E2,E5), (E3,E4), (E3,E5)}

Le graphe correspondant est :


E1

E5

E2

E4

E3

G=(X,E)

Degr dun sommet : On appel degr dun sommet x, dans un graphe, G not d(x), le nombre
dartes de G ayant x comme extrmit. Ou bien on dit que cest le nombre dartes incidentes
au sommet x.
Dans le graphe prcdant tous les sommets ont le mme degr est gal 4.
Remarque : Pour un graphe G dordre n ; le degr dun sommet est un entier compris entre 0
et n-1.
Graphe rgulier : Un graphe G est dit rgulier de degr r si tous les sommets sont de degr r.
Le graphe prcdant est rgulier de degr 5.
Thorme1 : Dans un graphe quelconque on toujours la somme des degrs est gale deux
fois le nombre dartes m :

d(x)=2m xX.

Proposition1 : Dans un graphe le nombre de sommets de degr impair est toujours pair.
Proposition 2 : Soit G=(X,E) un graphe dordre n >=2. Alors au moins deux sommets
diffrents qui ont le mme degr.
Graphe complet : Un graphe G est dit complet si et seulement si tous les sommets sont relis
deux deux.
Une boucle : est une arte dont les deux extrmits concident.
Artes parallles : Soit G un graphe. On appel artes parallle des artes diffrentes de G
ayant les mmes extrmits.
Multi graphe : est un graphe admettant des artes parallles.
Graphe simple : Soit G=(X,E) un graphe. G est simple sil nadmet pas de boucles et darcs
parallles.
E1

E1

E5

E5

E2

E4

E2

E4

E3

Exemple de graphe non Simple

E3

Exemple de graphe Simple

Chaine:
Une chaine est une suite fini de sommets et dartes Ch=[X0,e0,X1,e1X2,.., Xm-1,em-1,Xm].
Tel que : X0 et Xm reprsentent les extrmits de la chaine Ch, et m sa longueur l(ch)=m.
Une chaine simple est une chaine dont toutes les artes sont distinctes.
Une chaine lmentaire est une chaine dont tous les sommets sont distincts.
Exemple :
x1

e4

e1

x5

x2

e3

e2

x4

x3

G=(X,E)

C1=[x1e1x2e2x3e3x5] est une chaine de longueur 3 avec x1 et x5 comme extrmits.


Par contre : C2=[x1e1x2e2x3e3x5e4x1] est appel un cycle.
Cycle : Un cycle est une chaine ferme, dont toutes les artes sont distinctes.
Graphe connexe : Un graphe G est dit connexe, ssi, (x1,x2)X, une chaine reliant x1 x2.
Sous Graphe : Soit G = (X, E) un graphe, pour un sous-ensemble de sommets A inclus dans
X, le sous-graphe de G induit par A est le graphe G = (A, E(A)) dont l'ensemble des sommets
est A et l'ensemble des artes E(A) est form de toutes les artes de G ayant leurs deux
extrmits dans A. Autrement dit, on obtient G' en enlevant un ou plusieurs sommets au
graphe G, ainsi que toutes les artes incidentes ces sommets.
Graphe Partiel : Soit G = (X, E) un graphe. Le graphe G' = (X, E') est un graphe partiel de
G, si E' est inclus dans E. Autrement dit, on obtient G' en enlevant une ou plusieurs artes au
graphe G tout en gardant le mme ensemble de sommet X.

Remarques : Un graphe partiel d'un sous-graphe est un sous-graphe partiel de G.


Une clique : Une clique un sous-graphe complet de G.
Stable : Un stable un sous-graphe de G sans artes.

Exemples :

Graphe partiel de G

Sous-graphe de G

Sous-graphe partiel de G

X'=X
E'={e1, e4, e5}

X'={x1, x3, x4, x5}


E'={e3, e4, e5}

X'={x1, x2, x3, x4}


E'={e1, e4}

Une clique de G

Un stable de G

X'={x1,x2,x3}
E'={e1, e2, e3}

X'={x1,x4,x5}
E'={}

Le graphe G
Soit G=(X, E)
X={x1, x2, x3, x4, x5}
E={e1=(x1,x2),
e2=(x2,x3), e3=(x1,x3),
e4=(x3,x4), e5=(x3,x5)}

Graphe orient : En donnant un sens aux artes d'un graphe, on obtient un graphe orient.
Dans ce cas lensemble des sommets X reste le mme, mais lensemble des artes E sera
appel lensemble des arcs U qui est dfini par des paires ordonnes de sommets, car
lorientation des arcs est importante. Ainsi dans le cas non orient larte e1=[x1 x2] est la
mme que larte e1=[x2 x1], par contre, dans le cas orient larc u1=(x1,x2) est diffrent de
larc u2=(x2,x1).
Exemple :
x1

u5

G=(X,U) est graphe orient

u1

x5

x2

u3

x4

x3

G=(X,U)

u2

Chemin : Dans un graphe orient, un chemin d'origine x et d'extrmit y est dfini par une
suite finie d'arcs conscutifs emprunts dans le bon sens, reliant x y. La notion
correspondante dans les graphes non orients est celle de chane.
Un chemin lmentaire est un chemin ne passant pas deux fois par un mme sommet, c'est-dire dont tous les sommets sont distincts.
Un chemin simple est un chemin ne passant pas deux fois par un mme arc, c'est--dire dont
tous les arcs sont distincts.
La longueur d'un chemin est le nombre d'arcs le constituant, ou bien, dans le cas d'un graphe
pondr, la somme des poids des artes.
Circuit : Un circuit est un chemin dont les deux extrmits sont identiques. Si le chemin est
lmentaire, c'est--dire ne passe pas deux fois par un mme sommet, on parle de circuit
lmentaire. Dans un circuit lmentaire, le degr des sommets est deux. Dans les graphes
pondrs, le poids d'un circuit est la somme des poids des arcs qu'il contient. Si cette somme
est ngative, on parle de circuit absorbant.

Dfinition : Un graphe orient est dit fortement connexe ssi il ralise la relation R suivante :
pour tout couple de sommets (xi,xj)X2 , un chemin permettant de joindre xi xj et un autre
chemin permettant de joindre xj xi dans G.
Nous pouvons dmontrer facilement que la relation R est une relation dquivalence, ainsi elle
admet des classes dquivalences. Ces classes sont appeles des composantes fortement
connexes.
Remarque :
1/On ne parle pas de forte connexit dans le cas non orient.
2/ il existe des algorithmes permettant de vrifier si un graphe est fortement connexe ou pas.
3/ Un graphe G est fortement connexe sil admet une seule composante fortement connexe.
En dautres termes un graphe est fortement connexe si il admet un circuit passant par tous les
sommets de G.

Exemple :
G1 nest pas fortement connexe car il existe un chemin entre x4 et x3 par contre il nexiste pas
de chemin reliant x3 et x4.
La composante {x1, x2, x3, x5} est une composante fortement connexe.

x1

x5

x2

x4

x3

G1=(X,U
Graphe rduit :
G : graphe orient admettant p composantes fortementconnexes : C1, C2, , Cp
On dfinit le graphe rduit de G (not GR) par :
GR=(XR,UR) avec : XR={C1,C2,,Cp} et (Ci ,Cj) UR si Il existe au moins un arc dans G
ayant son extrmit initiale dans la composante fortement connexe Ci et son extrmit
terminale dans la composante fortement connexe Cj.

Reprsentation des graphes sur machines


Soit G = (X,U) un graphe orient ayant n sommets. On dfini la matrice M associe, dont les
lignes et les colonnes reprsentent les sommets de G, par :
M = mij i,j = 1,, n tel que : mij = Nombre darcs reliant xi xj. Cette matrice est appele
Matrice dadjacence sommet-sommet.

Exemple : La matrice dadjacence de lexemple suivant est:

X1
X2
M= X
3
X4
X5

X1

X2

X3 X4 X5
0

x1

x5

x2

x4

x3

Exemple de graphe non Simple

Remarque : Une boucle est toujours comptabilise deus fois.

Dictionnaire des successeurs: Dans cette reprsentation, on dfinit le graphe par le dtail des
successeurs de chaque sommet.
Dictionnaire des prdcesseurs: Dans cette reprsentation, on dfinit le graphe par le dtail
des prdcesseurs de chaque sommet.

10

Cheminement dans les graphes


Graphe pondr : On appelle graphe pondr un graphe tel que, chaque arte e est associ
un poids Pe. Les applications des graphes pondrs sont nombreuses : cartes routires avec
des indications de dure, de tarif ou de distance porte sur des routes entre deux lieux, par
exemple.
Rseau : On appel rseau un graphe pondr ayant un seul sommet S avec d-g(S)=0 appel
source et un seul sommet P avec d+g(P)=0 appel puit.
Remarque : Dans le cas ou on a un graphe pondr avec plusieurs sommets xi ayant dg-(xi)=0
et plusieurs sommets yi ayant d+g(yi)=0, alors il suffit dajouter deux sommets fictifs S et P
tels que : S sera reli tous les sommets xi et tous les sommets yi seront relis P. les
pondrations des arcs fictifs ajouts seront gales 0 o linfini ( ) suivant le sens des
pondrations du graphe initial.

Chemin: Un chemin Ch est une suite darcs adjacents parcouru dans le mme sens. La
longueur de ce chemin l(Ch) peut tre dfinit de deux manires diffrentes:
1/ La longueur en termes darcs, et la on donne le nombre darcs constituants ce
chemin. l(Ch)=nombre darcs de ch.
2/ La longueur en termes de pondrations, et la on donne la somme des pondrations
des arcs constituants ce chemin.l(Ch)=

Circuit : Un circuit est un chemin simple dont les deux extrmits concident. Ainsi on dfini
la longueur dun circuit de la mme manire, par la longueur en terme darcs et la longueur en
termes de pondrations.
Circuit absorbant : Un circuit C est dit absorbant ssi,

Plus court chemin : On appel plus court chemin dans un rseau R, le chemin reliant S P
dans R, ayant la somme des pondrations minimales de tous les chemins reliant S P dans R.

Le Problme du plus court chemin : Le problme du plus court chemin est un problme
ancien, prsent dans de nombreux domaines (trafics autoroutiers, ferroviaires, maritimes,
investissement et gestion des stocks, optimisation dun rseau, intelligence artificielle, etc).

11

Le problme est simple : Comment, en partant dun point, arriver un autre point en faisant le
moins de chemin possible ?
Pour vous aider, prenons un exemple : Une voiture partant de Paris souhaite se rendre
Toulouse. Mais lautoroute entre Paris et Toulouse est bouche. Le conducteur aimerait savoir
si, en passant par Bordeaux, il mettra plus ou moins de temps que pour aller Toulouse par
lautoroute. Sachant que le conducteur mettra 7 heures en passant par lautoroute, et quil
mettra 5 heures pour aller Bordeaux, et 3 heures pour relier Bordeaux Toulouse. Le graphe
ci-dessous rsume le problme.

Chaque arc possde une pondration reprsentant le temps ncessaire de dplacement dun
sommet vers un autre. On dit que ce graphe est un graphe orient , car les arcs ont un sens.
Pour dterminer le plus court chemin entre Paris et Toulouse, il suffit dadditionner les
longueurs darcs des diffrents passages pour aller de Paris Toulouse, et de les comparer.
Ici, on a l (P => T) = 7 et l (P => B) + l (B => T) = 5 + 3 = 8
On peut donc voir que lautomobiliste ferait mieux de passer par lautoroute Paris-Toulouse,
plutt que de faire un dtour par Bordeaux, o il perdrait une heure !

Existence un plus court chemin : Soit R=(X,U,d) un rseau, on dit que R admet un plus court
chemin, si et seulement si, R nadmet pas de circuit absorbant.

Exemple :

12

Dans le graphe ci-dessous, le plus court chemin nexiste pas, car ce graphe admet un circuit
absorbant (3,4,5,6,3). La somme des pondrations de ce circuit est gale (-3), chaque fois
quand fait un passage sur ce circuit absorbant la valeur du plus court chemin diminue jusqua
-.
1

4
6

-8

-2
5

Proprits des plus courts chemins


Proprit1 : Tout sous-chemin dun plus court chemin est un plus court chemin.
Proprit2 : Sil existe un plus court chemin entre deux sommets x et y, alors il existe un
plus court chemin lmentaire entre x et y.

Il existe plusieurs algorithmes de recherche de plus cours chemin, on peut citer titre
dexemple : lalgorithme de Bellmann, lalgorithme de Disjktra, lalgorithme de BellmannFordetc.
Algorithmes de recherche de plus court chemin :
1/ Algorithme de Bellman :
Lalgorithme de Bellman sapplique sur les

graphes (rseaux) sans circuit, avec des

pondrations quelconques. Ainsi nous devons assurer linexistence de circuit dans le graphe
en question, pour cela nous dcrivons dans ce qui suit un algorithme simple permettant de
vrifier si un graphe G est sans circuit ou non. Lalgorithme sappel algorithme de mise
niveau.
1.1.

Algorithme de mise niveau :


Le principe de cette algorithme est simple, il sagit de classer les sommets du graphe G
par niveau ou par rang, si on arrive le faire alors le graphe est sans circuit, sinon on sera
bloquer au niveau du circuit. Lalgorithme commence par chercher tous les sommets x de
G ayant les dg-(x)=0 (cd, les sommets sans successeurs) et les mettres dans le mme
niveau k, ensuite il faut supprimer tous les arcs sortants des sommets x du niveau k; et
refaire la mme chose cd, chercher les nouveaux sommets ayant les dg-(x)=0, cette foisci on va les mettre au niveau k+1 et ainsi de suite, si on arrive class tous les sommets

13

de G donc le graphe est sans circuit, par contre, si on bloque quelque part dans G, cela
veut dire que le graphe contient un circuit.
Algorithme mise niveau
1- Soit un graphe quelconque G=(X,U), et k=1. V=X.
2- Choisir tous les sommets x nayant aucun prdcesseurs (c d dg-(x)=0).
Si ses sommets existent alors les mettre
dans le niveau k, N(k)=N(k){x} et V=V{x}.
Si non Si V= alors le graphe est sans circuit
Si non le graphe contient un circuit.
3- Supprimer tous les arcs sortants de tous les sommets du niveau k. Mettre k=k+1 et
aller (2).
1

Exemple1:
Soit le graphe suivant, contient il un circuit ?

Appliquons lalgorithme, nous remarquons que les deux sommets 1 et 8 nont pas de
prdcesseurs, car dg-(1)=0 et dg-(8)=0. Ainsi : N(1)={1,8}.
On va supprimer tous les arcs sortant de 1 et 8, ont aura ainsi le graphe suivant :

A cette tape nous constatons quil nya que les sommets 4,5 et 6 ayants dg-(4)=0, dg(5)=0 et dg-(6)=0. Ainsi on aura : N(2)={4,5,6}, de la mme manire on va supprimer les
arcs sortant de 4,5 et 6, on aura le graphe suivant :
1

14

A cette tape cest le sommet 2 qui na pas de prdcesseurs, donc : N(3)={2}. De la


mme manire on aura le graphe suivant :

De la mme manire on aura N(4)=3 et N(5)=7. Puis que nous avons russi classer tous
les sommets de G, alors G nadmet pas de circuit. Et le graphe mis niveau aura lallure
suivante:

4
6
1
2

8
5

Niveau 1

Niveau 2

Niveau 3

Niveau 4

Exemple2 :
Soit le graphe suivant, admet il un circuit ?
1

15

Niveau 5

Appliquons lalgorithme : V=X={1,2,3,4,5,6,7,8}


Dans ce graphe nous remarquons que : dg-(1)=0 et dg-(8)=0 ce qui veut dire que, le
niveau 1 est gale : N(1)={1,8}, do le nouveau V=V-{1,8}={2,3,4,5,6,7}. Ensuite
daprs lalgorithme de mis niveau, en supprimant les arcs sortant de N(1), on aura le
graphe suivant:
1

Et le V={2,3,4,5,6,7} et non vide et il nexiste aucun sommet x avec les dg-(x)=0, donc ce
graphe contient un circuit.

1.2 Algorithme de Bellman :


L'algorithme de Bellman est un algorithme de programmation dynamique qui permet de
trouver des plus courts chemins, dans un graphe G orient pondr (accepte mme les valeurs
ngatives) sans circuit, depuis un sommet source donn. Contrairement l'algorithme de
Dijkstra, qui ne peut tre utilis dans un graphe avec circuit et tous les arcs ont des poids
positifs ou nuls.
Dfinition : On appel (x), le plus court chemin du sommet S source du graphe G, jusqu x.
Le principe de cet algorithme est simple, premirement on initialise (S) 0, et les autres
sommets de G +, ie. (x)= + xX. Ensuite on prend les sommets dans lordre
topologique, cet ordre peut tre dduit partir de lalgorithme de mise niveau prsent
ci-dessus. Ce choix nous permettra de ne choisir que les sommets x ayant yi comme
prdcesseurs tel que (yi)+, ie. Que les plus cours chemins jusqu yi sont dj calculs.
Soit x un sommet pour lequel on va calculer (x), et soit Y={ yi,

i=1..p}

lensemble des

prdcesseurs direct de x. Une seule condition doit tre respecte cest que (yi) sont dj
calcul i, i=1..p. De la nous calculons (x) par la formule suivante :
(x)=min((yi)+d(yi,x))
Tel que : d(yi,x) reprsente la pondration de larc (yi,x).

16

i, i=1..p

Algorithme
Soit R un rseau ayant une source S et un puit P.
1. Initialiser (S)=0 et (x)= + xX. T=.
2. Choisir les sommets x ayant seulement S pour
prdcesseurs, et calculer (x)= (S)+d(S,x). T=T{x}.
3. Tantque (XT)
Faire
Choisir un sommet Z de X ayant pour Wi prdcesseurs,
tel que (Wi) sont dj calcul.
(Z)=min((Wi)+d(Wi,Z) pour tous Wi prdcesseurs de Z.
T=T{Z}.
Fait.
Fin de lalgorithme

Exemple :
On considre le graphe orient G = (X, U) ci-dessous pondr par des longueurs
darcs. On cherche dterminer les plus courts chemins de a tout autre sommet.

17

On peut appliquer lalgorithme de Bellman parce que le graphe est sans circuit, ce quon peut
vrifier en effectuant la numrotation topologique (la mise niveau du graphe) qui a t fait
ci-dessous. Les numros topologiques sont encadrs.
Aprs avoir pos distance(a) = 0, on calcule les distances par numros topologiques croissants
en appliquant la formule :
distance(x) = MIN prdcesseurs de x (distance(y)+ longueur(y,x)) .
Les distances sont indiques en gras ct des sommets et les plus courts chemins sont
indiqus par les arcs en gras.

2. Algorithme de Dijsktra :
Lalgorithme de Dijkstra est un autre algorithme de recherche de distance et de plus court
chemin. Il est plus efficace que Bellman, mais ne fonctionne que dans le cas o toutes les
pondrations des arcs sont positives.
Principe :
On construit petit petit, partir de {S}, un ensemble M de sommets marqus. Pour tout
sommet marqu x, lestimation d(x) est gale la distance d(S,x).
A chaque tape, on slectionne un sommet non marqu y dont la distance estim d(y) est la
plus petite parmi tous les sommets non marqu. On marque alors y (on rajoute y M), puis on
met jour partir de y les distances estimes des successeurs non marqus de y.
18

On recommence, jusqu puisement des sommets non marqus. Lalgorithme de Dijkstra


permet de trouver une chane de longueur minimale entre deux sommets dun graphe pondr
orient ou non.

Algorithme de Disjktra :
Initialisation de l'algorithme :
tape 1 : On affecte le poids 0 au sommet origine (S) et on attribue provisoirement un poids
aux autres sommets. Rpter les oprations suivantes tant que le sommet de sortie (P) n'est
pas affect d'un poids dfinitif.
tape 2 : Parmi les sommets dont le poids n'est pas dfinitivement fix, choisir le sommet x
de poids p minimal. Marquer dfinitivement ce sommet x affect du poids p(x).
tape 3 : Pour tous les sommets y qui ne sont pas dfinitivement marqus, adjacents au
dernier sommet fix x :
3.1 Calculer la somme som du poids de x et du poids de l'arte reliant x y.
3.2 Si la somme som est infrieure au poids provisoirement affect au sommet y,
affecter provisoirement y le nouveau poids som et indiquer entre parenthses le
sommet x pour se souvenir de sa provenance.
Quand le sommet P est dfinitivement marqu, le plus court chemin de S P s'obtient en
crivant de gauche droite le parcours en partant de la fin P.

Exemple :
Dans le graphe orient, pondr G = (X, U) ci-dessous par des longueurs darcs, utiliser
lalgorithme de Dijkstra pour dterminer une arborescence de plus cours chemins depuis le
sommet a jusqu tous les autres sommets.
On pourra utiliser un tableau pour indiquer les valeurs initiales des champs d (ou distance) et
pre (ou antrieur) puis, pour chaque tape, les actualisations de ces valeurs effectues par
lalgorithme; on indiquera aussi les pivots successifs.
Par manque de temps, on peut aussi indiquer la succession des pivots et ajouter, ct de
chaque sommet, les valeurs successives obtenues pour les champs d (ou dist) et pre (ou
ant); le graphe de cet exercice est un peu gros pour permettre cela. On surlignera les arcs
dune arborescence de plus courts chemins.

19

On applique lalgorithme de Dijkstra en initialisant puis en actualisant chaque tape les


valeurs de d (ou distance) et pre (ou antrieur) dcrites dans lalgorithme. Une arborescence
de plus courts chemins partir de a est indique ci-dessous.

20

21

3. Algorithme de Ford-Bellamn
L'algorithme de Bellman-Ford (Bell-End-Ford) (Richard Bellman, Samuel End et Lester
Ford) est un algorithme de programmation dynamique qui permet de trouver des plus courts
chemins, depuis un sommet source donn, dans un graphe orient pondr. Contrairement
l'algorithme de Dijkstra, qui ne peut tre utilis que lorsque tous les arcs ont des poids positifs
ou nuls, l'algorithme de Bellman-Ford autorise la prsence de certains arcs de poids ngatif et
permet de dtecter l'existence d'un circuit absorbant, sil nen existe pas, lalgorithme donne
les plus courts chemins ainsi que leurs poids.
Les notations sont les suivantes : (v) contient le prdcesseur de v sur le chemin (NIL sil
ny en a pas), (u,v) est le poids du plus court chemin de u vers v ( sil nexiste pas), d[v]
est une variable qui est une borne suprieure du poids du plus court chemin de s vers v.

Algorthme Ford-Bellman
Step1: pour tout sommet xX faire
Step 2: d[x]= et [x]=NIL.
Step 3: d[S]=0
Step 4: pour i=1 |X|-1 faire
Step 5: pour tout arc (x,y)U faire
Step 6: si d[y]>d[x]+ w(x,y) alors
Step 7: d[y]=d[x] + w(x,y) ; [y]=x.
Step 8: pour tout arc (x,y)U faire // dtection des circuits ngatifs
Step 9: si d[y] > d[x] + w(x,y) alors retourner Faux
Step 10: retourner Vrai
Fin algorithme

22

Programmation dynamique
La programmation dynamique est une mthode doptimisation des systmes ou de leur
reprsentation mathmatique, dans laquelle on opre par phases ou squences. Le point de
dpart de cette mthode est le thorme dit Thorme doptimalit. Ce thorme, mis en
valeur, il ya quelques annes, par le mathmaticien amricain R. Bellman, est simple quil
parat presque trivial lorsquon la bien compris. Son importance et lefficacit des mthodes
doptimisation squentielles auxquelles il a donnes naissance saccentuent au fur et mesure
que lon saperoit que la vraie nature de nombreux problmes est squentielles c d, autorise
la dcomposition en phases, chacune ne dpendant que de ses voisine les plus proches et
souvent, dans le cas favorable, seulement de lantrieure ou la postrieure.
Sagissant de recherche oprationnelle, donc dune politique conomique optimale, Bellman
exprime, en bref, ceci : Toute politique optimale ne peut tre forme que de sous politiques
optimales.
La programmation est un outil gnral de rsolution de problmes. Toutefois, il ny pas de
rgle pour affirmer que la programmation dynamique peut ou ne peut tre utilise pour
rsoudre tel ou tel problme.
Le gros du travail, si on veut utiliser cette mthode, rside tout dabord dans lobtention de
lexpression rcursive de la solution en fonction de celle des sous-problmes (de taille plus
petite). Notons que dans les problmes doptimisation, cette manire dobtenir la solution
optimale partir des solutions optimales des sous problmes sappelle le principe doptimalit
de Bellman. Il est important de souligner que ce principe, bien que naturel, nest pas toujours
applicable.

Une fois cette expression obtenue, on analyse ce qui se passe dans une implantation rcursive
nave : si on se rend compte que la solution de mmes problmes est calcule plusieurs fois,
on est alors dans le cadre de la programmation dynamique. Le dcoupage du problme devrait
naturellement conduire la dfinition de la table (qui peut tre de dimension 1,2,3, ).
Remarquez quune case de la table correspond un sous-problme. Par ailleurs, le nombre de
sous-problmes peut tre trs grand. La complexit obtenue, de lalgorithme de
programmation dynamique, nest pas forcment polynomial.
Si on est dans le cadre de la mthode de la programmation dynamique, les tapes suivies
peuvent tre rsumes comme suit :
23

a. obtention de lquation rcursive liant la solution dun problme celle de


sous problmes.
b. initialisation de la table: cette tape est donne par les conditions initiales de
lquation obtenue ltape 1.
c. remplissage de la table: cette tape consiste rsoudre les sous-problmes de
tailles de plus en plus grandes, en se servant bien entendu de lquation obtenue
ltape 1.
d. lecture de la solution: ltape 3 ne conduit qu la valeur (optimale) du
problme de dpart. Elle ne donne pas directement la solution conduisant cette
valeur. En gnrale, pour avoir cette solution, on fait un travail inverse en lisant
dans la table en partant de la solution finale et en faisant le chemin inverse des
calculs effectus en ltape 3.

Expliquons ce principe par exemple, et commenons par la dtection dun plus court chemin
dans un graphe. Soit un graphe G = (X,U ) ayant X comme ensemble de sommets et U comme
ensemble d'arcs.
Le poids de larc a est un entier naturel not l(a). La longueur d'un chemin est gale la
somme des longueurs des arcs qui le composent. Le problme consiste dterminer pour
chaque couple (x,y) de sommets, le plus court chemin, s'il existe, qui joint x y.
Nous commenons par donner un algorithme qui dtermine les longueurs des plus courts
chemins notes (x,y). Par convention, on note (x,y)= s'il n'existe pas de chemin entre x et
y. (en fait il suffit dans la suite de remplacer par un nombre suffisamment grand par
exemple la somme des longueurs de tous les arcs du graphe).
La construction effective des chemins sera examine ensuite. On suppose qu'entre deux
sommets il y a au plus un arc. En effet, s'il en existe plusieurs, il suffit de ne retenir que le
plus court.
Les algorithmes de recherche de chemins les plus courts reposent sur l'observation trs simple
(mais combien importante) suivante: Si f est un chemin de longueur minimale joignant x y
et qui passe par z, alors il se dcompose en deux chemins de longueur minimale l'un qui joint
x z et l'autre qui joint z y .

24

Dans la suite, on suppose les sommets numrots x1, x2,..., xn et, pour tout k > 0, on considre
la proprit Pk suivante pour un chemin f ; Pk( f ) : Tous les sommets de f, autres que son
origine et son extrmit, ont un indice strictement infrieur k.
On peut remarquer dune part qu'un chemin vrifie P1 si, et seulement si, il se compose d'un
unique arc. Dautre part la condition Pn+1 est satisfaite par tous les chemins du graphe. Notons
par k(x,y) la longueur du plus court chemin vrifiant la proprit Pk et qui a pour origine x et
pour extrmit y. Cette valeur est si aucun tel chemin n'existe. Ainsi 1(x,y)= s'il n'y a pas
d'arc a entre x et y qui vaut l(a). D'autre part n-1=.
Le lemme suivant permet de calculer les k+1 connaissant les k(x,y). On en dduira un
algorithme itratif.
Lemme : Les relations suivantes sont satisfaites par les k :

k+1(x,y)=MIN(k(x,y), k(x,y)+ (xk,y))


Exemple1 : Un algorithme de programmation dynamique : Floyd-Warshall : un algorithme de
programmation dynamique, rsout les sous-problmes d'un problme une fois et une seule, et
stocke les rsultats dans un tableau.
Soit L la matrice associe un graphe G, on a donc L[i,j] reprsentant le cot de larc entre i
et j. Si i=j on prendra L[i,j] = 0 et sil ny a pas darc entre les sommet i et j alors L[i,j] = .
Le principe de lalgorithme et de construire une matrice D (initialise L) et qui contiendra
aprs chaque itration k, les plus courts chemins entre chaque paire de sommets (i,j), ne
passant que par les sommets appartenant lensemble {1,2,3,..k}.
Aprs litration n, D contiendra les plus courts chemins entre chaque paire de sommets.
A ltape k on calcule les nouvelle valeurs de D pour chaque paire de sommet de la faon
suivante :

Dk[i,j] = min ( Dk-1[i,j] , Dk-1[i,k] + Dk-1[k,j] )

PROCEDURE Floyd ( L , var D )

D := L;

Pour k := 1 , n

Pour i := 1 , n
Pour j := 1 , n

D[i,j] := min ( D[i,j] , D[i,k] + D[k,j] )


Fpour
25

Fpour
Fpour

Exemple2 : Calcul de la suite de Fibonacci.


Fib[0] =0
Fib[1]=0
fib[i] = fib[i-1] + fib[i-2];
Exemple3 : Calcul de Cnp
Formules :

Cnp = Cn-1p-1 + Cn-1p


C00 = Cn0 = Cnn = 1

On peut donner un algorithme rcursif.

Exemple4 : Le Problme du sac dos


Le fameux problme dit du sac dos peut se rsoudre de plusieurs manires, parmi lesquelles,
la Programmation Dynamique apporte une solution lgante et efficace.
On dispose de N types dobjets numrots, en une quantit infinie pour chaque type.
Un objet de type k a une valeur entire positive ck et occupe un volume ak (entier positif non
nul). Le problme sexprime alors ainsi :
Trouver le sous-ensemble dobjets de valeur maximale, dont le poids ne dpasse pas la
capacit b du sac :
Max z = Somme(ck*uk , k=1 N)
avec Somme(ak*uk, k = 1 N) b
et uk entier positif, pour tout k de 1 N.
Pour pouvoir rsoudre le problme laide de la Programmation Dynamique, posons :
uk : le nombre dobjets de type k inclure
xk : le volume disponible ltape k
xk+1 = fk(xk,uk) = xk ak*uk, k =1 N
Profit ltape k : gk(xk,uk) = ck*uk, k=1 N
Maximiser : Somme(ck*uk, k = 1 N)
Nous allons essayer de rsoudre le problme global du sac dos en procdant par tapes, en
partant de la dernire dcision prendre et en remontant dans le temps.
1. A ltat final, pas de profit.
26

2. A la dernire tape : remplir au mieux un sac de capacit xN avec des objets de type N.
3. Calculons lutilit maximale JN(xN) = max{cN*uN} avec xN aN*uN 0 et uN entier positif.
4. On en dduit une dcision optimale uN* = [xN /aN].
5. A ltape k < N, calculer pour tout xk = 1 b :
6. Jk(xk) = max{ck*uk + Jk+1(xk+1)}, avec les contraintes : xk+1 = xk ak*uk 0 et uk entier
positif.
A ltape k=1, on connat x1 (gal b) donc nul besoin de rsoudre le problme pour tout
x1 possible. Lorsque lalgorithme est arriv son terme, la quantit J1(b) calcule donne le
profit maximal (solution du problme) et on peut lire la suite de dcisions prendre en
parcourant les tables optimales (les fonctions Jk) calcules chaque tape.
Illustration 1: On dbute nos exemples par celui du calcul des nombres de Fibonacci. Le
problme est de calculer le n premiers nombres de Fibonacci donns par la formule suivante :

F(0)=1; F(1)= 1;
F(n)= F(n-1)+ F(n-2)

Lalgorithme implantant cette formule est alors comme suit :

Nous avons vu que la complexit de cet algorithme est en exponentielle. La raison de cette
inefficacit est due la multiplicit de calcul dun mme nombre, comme le montre la figure
ci-dessous sur n =4.

27

La clef une solution plus efficace est dviter la multiplicit de rsolution du mme sousproblme. On amliore de loin la complexit temporelle si, une fois calcul, on sauvegarde un
rsultat, par exemple dans une table. Et au besoin, on le prend de cette table. Cette remarque
nous amne la solution suivante :

Cette approche de rsolution est connue sous le nom de fonctions mmoire, qui est trs lie
la programmation dynamique. En supprimant la rcursivit, nous crivons cet algorithme
dans une forme typique de la programmation dynamique.

Illustration 2 : Avanons un peu plus dans ce concept en prenant un autre exemple qui est
celui du calcul du coefficient binomial.

28

Si on implante directement cette expression sous cette forme, on obtient la fonction suivante :

Voyons voir lexcution de cette fonction sur un exemple de donnes: n = 5 et k = 2.


Remarquez le nombre de fois, par exemple que, le terme

est calcul.

Pour viter de calculer plusieurs fois un nombre, lide est de crer un tableau o on calcule
tous les nombres de petites tailles, ensuite, de tailles de plus en plus grandes avant darriver au
nombre dsir. Pour ce faire, on procde comme suit :

Pour calculer donc B(n,k), on procde comme suit:


29

On remplit le tableau B ligne par ligne comme suit :

Remarque : Il est intressant de constater que seule la moiti de la matrice B est utilise pour
calculer B[n,k]. Autrement dit, un tableau une dimension suffirait pour faire ces calculs.

30


:


.
:
.

.


.
.
.
.
.

.
.
31


)( :
.
.
.
.


.
.
.
.



.

. .
:
( :
.

32

( : .
( : .
( : .

.
.

. Simulation

.

ENSEMBLE DES ACTIVITES ENGENDREES PAR LES STOCKS


2.1) PAPIERS
Le stockage et dstockage gnrent toute une "paperasserie" peu conforme au
! ZERO PAPIER
double bon de commande
avis d'expdition
bordereau de livraison
fiche rception
fiche de stock
bon de commande interne
bon de sortie etc.









2.2) INVENTAIRE
La lgislation prvoit un inventaire par an obligatoire pour dresser le bilan; ce qui
pose deux questions:
quantit
valeur

o
o

* Valorisation des stocks:


Il existe plusieurs mthodes "lgales" on peut citer:
cot moyen pondr sur les entres du mois
gestion FIFO
gestion LIFO
cot standard
33






2.3) GESTION DES STOCKS


La gestion des stocks se fera diffremment selon le poids de larticle grer par
rapport la valeur du stock, il est intressant de dcomposer les stocks en familles, avec par
exemple la mthode ABC (ou mthode des 80/20), selon les cas des critres diffrents
peuvent tre visualiss:

Valeur des stocks


Volume des stocks
Poids
Dlai dapprovisionnement
Dure de vie du produit (obsolescence)

Cet outil est un des outils de base en qualit, en maintenance, elle permet de
manire simple de mettre en vidence les liens de cause effet. On s'apperoit souvent en
gestion des stocks, que moins de 20% des rfrences en stock reprsentent elles seules
l'essentiel de la valeur de ce stock, c'est la classe A qui ncessite une gestion particulirement
efficace.

3) PRINCIPES GENERAUX DE GESTION DES STOCKS


Remarque importante:
34

Dans les mthodes que nous allons tudier, nous supposerons rsolus les problmes
relatifs aux caractristiques physiques des stocks (volume, place...).
3.1) LES PRINCIPAUX SYSTEMES
Les commandes peuvent tre passes selon quatre possibilits:
3.1.1) En quantits fixes intervalles fixes
Concerne la classe C uniquement : commandes en rafales mensuelles, bisannuelles ou
annuelles. La gestion informatique ou trop rigide de la quincaillerie amne gnralement
au rsultat inverse de celui recherch, savoir, perte de productivit, dmotivation des
techniciens de maintenance...
La technique du double bac convient particulirement bien ce type d'article.
3.1.2) En quantits variables priodes fixes
Concerne les classes B,A
Les priodes T sont constantes.
d: dlai d'approvisionnement
P1, P2, P3: points de commande

AVANTAGE: inventaire tous les Ti seulement


35

INCONVENIENT: ne tient pas compte de la pente des demandes: risques de ruptures


et de STOCK MORT.

Cette mthode fut de loin la plus utilise avant lavnement des systmes
informatiques de gestion, cette mthode permet dviter linventaire permanent, mais elle
montre videmment rapidement ses limites en cas de forte fluctuation de
consommation.
3.1.3) Quantits fixes intervalles variables.
Concerne galement les classes B,A, mais ce modle ncessite un support
de la part dun outil informatique.

AVANTAGE: Inventaire permanent (moins de risque de ruptures et de stock mort)


INCONVENIENT: Inventaire permanent (implique stock thorique = stock physique
(magasins ferms clef))
3.3.4) Quantits variables priodes variables

Concerne essentiellement la classe A. Rsulte de l'utilisation d'un systme de GPAO type


M.R.P.

." "" "

36

:

,
.


,
.


, ,
,

. :

.
- : :
.
, ,
, .
-1 : :
:N
:P
:CL
:Cs
Q / 2
:Cp .
:T .
-2 : :
37

* :Q
:TL
:Ts .
-3 :
, :
= + + .
T = P . N + (TL + Ts) + Tp :
:

Cp = 0 === Tp = 0

MIN T (Q) = T(Q) = TL + Ts :


Cs Q / 2 :
Ts = Q . P . Cs
=
= / n = N / Q :
:
:

TL = (N / Q ) . CL
)(Q) = (N / Q) . CL + Q . P . Cs ===- MIN T (Q

Q:
T (Q) / d (Q) = (- NCL / Q2 ) + PCs
:
T (Q) / d (Q) = ( - NCL / Q) +1/2 PCs
:
NCL / Q = PCs ==== NCL = Q PCs
)Q* = Q = 2 NCL / PCs (1

==== Q = 2 NCL / PCs

,
:
:

*n * = N / Q
t* = Q* / N

38



.
- )( :
.
:
,
* Q:
Cp + Cs / Cp

Q* = 2 N .CL / TCs

:
:Cp
:T
:Cs .
S*s = (Cp / Cs + Cp) . Q* :
,

.
- :

,

,
,
.
(F E ) Q / F :
:
:Q / F
:N
:F
39

:E
:F E .
1 :)Q = 2 N . CL / P. Cs ( 1 E / F
-2 :
) Q = 2N . CL / ( 1 E / F



.
* Q Q* = Nr Sd :
:
:Nr
:Sd .
:
:Cm
:P ) (
:D .
Nr = ( P + d) x Cs
Nr :
Nr = ( P + d ) . Cm + Cs



,
,

40

,

,

.

,

.

:
, ,
,
: .

:
,
, ) ( , :

.
" "
M ,C ,d
.
d
, M = Cm . d :
:Cm
:d
:M .

.Ss
:
41

SA :
: :
* + Q = .
,Sa
M = C m . d + Ss :
:
Q


M
Sa
C

Ss

d
: :
d
d
d.


, :

.

.


 
42


,
.
.
= + :
M = C + Ss
M = C d +
:C
:A
:
: .

4) MODELE DE WILSON
4.1) PRINCIPE
HYPOTHESES:
)La demande est constante (linaire
Les dlais d'approvisionnement sont nuls.

BUT: minimiser les cots en rpondant aux deux questions:


? QUAND
? COMBIEN

o
o

Le cot total CT = Prix d'achat + cot de lancement + cot de stockage


43

Posons u : prix unitaire ()


D : demande pendant une priode choisie (1 an)
a : cot de passation d'une commande ()
r : taux de possession (/.an)
Q : la quantit commande
On peut crire CT = u*D + a*D/Q + u*r*(stock moyen)

partir des hypothses de Wilson on peut dduire que le stock moyen = Q/2 :
Soit CT = u*D + a*D/Q + u*r*Q/2
On cherche dterminer la quantit de rapprovisionnement (Q) qui minimise le cot total :
On va donc dterminer quand CT = f(Q) passe par un minimum, on va driver cette fonction
et touver la valeur de Q qui annule cette drive.
dCT(Q)/dQ=0-aD/Q+u*r/2
la drive sannule pour ur/2=aD/Q
do Q=2aD/ur et enfin

appele quantit conomique de rapprovisionnement.


Exemple:
Une entreprise fournisseur de pices pour le tlphone fabrique des relais lectriques dont un
lment x est sous-trait 0,015 l'unit.

Elle utilise 1000 x par jour, 250 jours par an.


Les approvisionnements se font par le camion de l'entreprise (15 par voyage)
44

Le taux de possession est de 20% l'an.

Calculer la quantit conomique de rapprovisionnement.


Reprsenter graphiquement la courbe d'volution du stock.

4.2) POINT DE COMMANDE ET STOCK DE SECURITE


4.2.1) Consommation rgulire et dlai de livraison fixe.

il suffit de passer la commande l'instant ti-d


(avec d dlai de livraison).
Application l'exemple prcdent:
On suppose un dlai de livraison de 10 jours; On dfinit alors un stock minimum sm (ou stock
de rupture ou encore de couverture) gal la consommation pendant d jours.
Rsultat : sm = 1000*10 = 10000
Graphiquement:

4.2.2) CAS REEL

En ralit il faudra un stock de scurit (stock dormant) pour pallier aux


alas de consommation et de dlai d'approvisionnement.

45

Trois cas peuvent se prsenter:


* Le dlai de livraison est constant mais la consommation est suprieure la
consommation moyenne, seul un stock de scurit peut viter la rupture de stock
* La consommation est normale, mais le dlai de livraison est plus grand que prvu, le
stock de scurit est indispensable.
* La combinaison des deux paramtres ci-dessus ncessite bien sr galement un stock de
scurit
Il faut raisonner en fonction de l'intervalle de protection, en dfinissant un stock de scurit
gal u*

46

1er cas: Le dlai de livraison est constant mais la consommation est suprieure la
consommation moyenne.
A partir d'un historique sur plusieurs priodes T, si la loi de distribution des sorties est une loi
normale, alors on peut calculer la consommation moyenne sur cette priode xm et l'cart type
x.
Il faut alors ramener cet cart type la priode lie au dlai d'approvisionnement d, d'aprs la
rgle de proportionnalit des variances on peut crire
x,d = Racine(d) *
x
Attention T et d doivent tre exprims dans la mme unit !
On obtient alors :

Ss = u*x,d
Avec u choisi selon le taux de service souhait et le cot de pnurie.
2me cas: La consommation est normale, mais le dlai de livraison est plus grand que prvu.
Soit pj l'cart type en jours sur le dlai d'approvisionnement, il faut ramener l'cart
type en "pices", il suffit pour cela de multiplier pj par la consommation journalire pour
obtenir pp = pj * conso journalire.
On obtient alors :

Ss = u*pp
Si les deux paramtres varient, la loi d'additiv des variances nous donne :
=Racine( x,d2+
pp2 )

Avec Ss = u*

Voir exemple dapplication en 6

47

Techniques Simulation :

) (systmes
. ) (systme


) (modle
.

) (
.
.
.

.
) (Systme
.
) .(environnement Simulation
.

.

48



.

.
.
.
.

.
:
. 10
.
.

.

.
.

- .

49


.
.

.

.

.

.
. ) (

.

.
.

:
:ProModel
.

50

:ARENA
.


.


.
.

.
.
.
.
.. :

.

.

.

.

51

.

.
.
.



)
(.


 .

.

.

.
 .
52



.

.

) (modele



.



.

. " " )(Que faire si


.
.


.

53


.
. .

)(Statique

)(Dynamique

) (Stockastique ) (Dterministe )(continue


).(discret

:1
) (statique )(dynamique
) (Monte Carlo


. :
.1 .
.2 .
.3 .
.4 .
54

.5 ) (

.
) (stochastique )(dterministe


.


.
) (continue ).(discret
: )

:
.
Dfinitions de base:
A fin de simplifier la description des systmes, on dfinit :
Client : lobjet lmentaire se dplaant dans le systme. Il peut sagir de pices, de
personnes physiques, de paquets dinformations...
Serveur : une unit de traitement o des clients subissent une opration de traitement. Il sagit
dune machine, dun bureau, dun cabinet de consultation, dun ordinateur
Ressource : un composant consommable ou non, ncessaire au droulement correct du
service : fort, papier, palette, mmoire disponible

55

Unit de stockage : une unit dans laquelle des clients sont stocks et sont extraits
conformment une politique de gestion. Dans le cas du bureau de poste, lunit de stockage
est une file dont la politique de gestion est premier arriv, premier servi. Dans un stock de
pices usiner on peut, au contraire utiliser une pile, base sur la politique dernier arriv,
premier servi.
Station : lensemble constitu dun ou plusieurs serveurs de une ou plusieurs units de
stockage et dont le fonctionnement est autonome sans ncessairement tre indpendant des
autres units. Par exemple, lensemble caissire-caisse-tapis roulant peut tre une station de
lensemble de traitement qui permet aux clients dun supermarch de rgler leurs achats.
Unit de transport : elle permet le transport dun lieu lautre. En fait, les units de transport
relient une station une autre, ou un serveur une unit de stockage, ou inversement. Une
unit de transport peut tre un tapis roulant, ou bien un robot prenant des pices dans un stock
et les dposants sur une machine commande numrique.


La perception du fonctionnement de beaucoup de systmes dpend troitement de la raison
pour laquelle on sintresse lui et, en particulier de lobjectif poursuivi en tentant danalyser
ce systme. Considrons par exemple le fonctionnement dun bureau de poste. Il est facile
didentifier les lments physiques de ce systme (figure2):
les postiers ;
les automates ;
les files dattente ;
les clients ;
et enfin le bureau de poste lui-mme.

Figure2 : Les lments dun guichet de poste


56

Chacune de ces entits juges pertinentes peut tre dcrite simplement en donnant la liste des
informations qui la concernent et sont estimes intressantes par rapport aux objectifs de
ltude.
Noublions pas quil peut apparatre ncessaire de simplifier le modle envisag pour
permettre la mise en uvre dune simulation ou dune rsolution de modle mathmatique.
Supposons que ltude vise valuer louverture dun deuxime guichet et que le taux
dutilisation du postier soit considr comme le seul lment reprsentatif, en ngligeant, par
exemple, le temps dattente des clients. Dans ce cas :
On peut ngliger les automates et les files dattente qui leur correspondent.
Pour le postier, il faut valuer le temps de traitement dun client ; en particulier, on devra
choisir entre un modle dterministe ou stochastique suivant le caractre constant ou alatoire
de cette dure. Dans ce dernier cas, il faut dterminer la loi de probabilit de ce temps de
service.
Pour les clients, on peut introduire la dure qui spare les arrives de deux clients successifs,
ce qui, dans le cas stochastique, peut ncessiter de prciser la loi de probabilit, constate ou
estime, de cette dure.
Pour le bureau de poste, on doit dterminer la longueur maximale que peut avoir la file
dattente des clients. Il est parfois ncessaire, pour simplifier, de considrer que la file
dattente peut tre de longueur infinie.
Pour estimer la dure de service au guichet, on observera le systme durant une priode
suffisamment longue et pendant des priodes de fonctionnement typique . Ainsi, on
tudiera le systme pendant une priode qui ne sera ni 11h-12h30, ni 16h-18h, priodes
traditionnellement trs charges qui ne sont pas reprsentatives dune journe de travail. Au
contraire, on pourra se restreindre ces priodes si lon projette de ne doubler leffectif de
postiers que dans les priodes charges. Il faudra aussi dterminer sil est opportun de dfinir
plusieurs classes de clients partir des dures de service constates.
En ralisant ltude, on ne prend pas en considration une multitude dlments, tels que:
Le fait que certains clients peuvent se dcourager avant datteindre le guichet et quitter la
file dattente.
Le fait que le postier peut tre, pendant de courtes priodes de temps, indisponible pour le
traitement des demandes des clients car il rpond au tlphone ou ses collgues

57

Le fait que certains clients peuvent ne pas respecter la politique de gestion de la file
dattente qui voudrait normalement que les clients soient traits selon leur ordre darrive
(clients prioritaires).
Le fait quun client dsigne indiffremment une pice dans un systme de production ou une
personne physique peut paratre tonnant ; nanmoins, si ces deux lments ont peu de points
communs dans la ralit, ils sont identiques du point de vue du modle. De mme on
considrera la guichetire comme un serveur !
La file dattente de pices devant une machine dusinage, la file des achats dune mnagre
sur le tapis de la caisse du supermarch, et une file dattente de clients devant un guichet de
poste, sont aussi, du point de vue du modle, identiques.

Figure2 : Le modle du guichet de poste


Sur les reprsentations des modles, nous ferons figurer la frontire du systme, qui dlimite
son primtre. De plus, sur la frontire du modle seront ajouts une source qui engendre les
clients en entre du modle, et un puits qui permet de comptabiliser les clients qui quittent le
systme, ainsi que toutes les informations statistiques sur ceux-ci. On appelle flux le
mouvement des clients dun lment lautre. On peut distinguer trois types de modles,
selon quils possdent ou non une entre ou une sortie. Dans le cas dun modle ne possdant
ni entre ni sortie, le modle est dit ferm. Dans le cas contraire, le modle est ouvert. Si une
partie dun flux reste indfiniment dans le modle alors quun autre type de flux traverse le
modle (de la source vers le puits), le modle est mixte.
Pour le guichet de poste, on obtient un modle comportant (figure2) :
une source et un puits qui peuvent correspondre, dans la ralit la mme porte !
une file dattente ;
un serveur.

58

Si un systme se compose dune machine commande numrique et dun stock de pices gr


selon une politique dernier arriv, premier servi, le modle comporte une source et un puits. Il
comprend aussi une file dattente de type pile ainsi quun serveur reprsentant la machine
(figure3).

Figure3 : Le modle dune machine avec un stock

Gnration des nombre alatoire


Il existe plusieurs mthodes pour gnrer des nombres alatoires. Pour toute suite de nombres
alatoires gnre chacun de ces nombre doit avoir la mme probabilit que tous les autres, et
il doit tre statistiquement indpendant des autres nombres de la suite. En dautres termes, ils
doivent tre des observations alatoires dune distribution uniforme.
1/ Mthode de VonNeumann
A partir dun nombre naturel A quelque de C chiffres, on veut obtenir une suite de Q nombres
alatoires de C chiffres. Pour cela, soit donc le nombre A de C chiffres : A=xxxxxx.
-

Elever A au carr.

Prendre la tranche du milieu de C chiffres, soit A1 ce nombre.

Elever A1 au carr.

Prendre la tranche du milieu de C chiffres, soit A2 ce nombre.

Et ainsi de suite jusqu obtenir Q nombres alatoires A1, A2,., AQ.

Exemple :
Soit A=3278, C=4.
On lve A au carr : A2=10745284, on prend le tranche du milieu: A1=7452.
On lve A au carr : A12=55532304, on prend le tranche du milieu: A2=5323.
Et ainsi de suite

59

Remarque :
-

Si on choisit mal le nombre A par exemple A=3000, tous les nombres


gnrs par la m thode de Vanneumann sont Ai=0000 i0.

Il arrive parfois quil yait Bouclage , aprs k itrations il ya une rptition


priodique.

2/ Mthode de linverse
Soit x un nombre rel tel que x]0,1[, on veut obtenir partir de x une suite de Q nombres
alatoires de lintervalle ]0,1[.
Soit donc x]0,1[ :
-

Calculer [1/x] partie entire de 1/x, soit x1 ce nombre.

Calculer [1/x1] partie entire de 1/x1, soit x2 ce nombre.

Calculer [1/x2] partie entire de 1/x2, soit x3 ce nombre.

Et ainsi de suite jusqu obtenir Q nombres alatoires, x1,x2,., xQ dans


lintervalle ]0,1[.

Dans les langages de programmation il existe des fonctions permettant deffectuer la


gnration des nombres alatoires automatiquement sans avoir recours ces mthodes
dcrites ci-dessus,

ces fonctions utilises sont elles mme bases sur ces mthodes ou

dautres existante dans la littrature.


Ainsi puisque il existe plusieurs mthodes de gnration de nombres alatoires, donc la
critique de ces mthodes nous amne dfinir quelle est le critre qui permet de reprer la
meilleure mthode. Gnralement, cette meilleure mthode est choisie par celle qui a la plus
importante priode de rptition.

60