Académique Documents
Professionnel Documents
Culture Documents
Recherche Opérationnelle
O
ptimiser : tel est l’objectif toujours poursuivi dans les situations qui motivent chacun des thèmes de ce
cours de Recherche Opérationnelle.
Plus court, plus vite, moins vide, moins coûteux : la chanson nous semble aujourd’hui n’être plus que le
refrain triste et souvent inhumain des gestionnaires. La question fût pourtant vitale lors de la seconde guerre
mondiale et le nom de ce domaine des mathématiques fait écho au théâtre des opérations. Le développement
de cette science d’abord militaire doit beaucoup à l’armée américaine qui participa à la création de la RAND
Corporation. Le lecteur curieux pourra d’ailleurs trouver sur le site web de cette entreprise toujours active bien
des noms et des éléments d’une histoire partagée entre les mathématiques, les sciences militaires, l’économie,
les télécommunications, la sociologie.
Dès l’origine donc, cette science fût marquée par deux caractéristiques fortes :
– elle s’incarne dans des situations concrètes, immédiates, qui lui confère un statut direct et évident de
science pour l’ingénieur, sans l’intermédiaire d’une autre discipline ;
– elle ne prend sa pleine dimension que dans son interaction avec le monde de l’informatique et des télé-
communications.
L’objectif de ce cours est donc de donner à voir la possibilité d’une décision optimisée et aussi d’en faire sentir
les difficultés et les limites. Il s’agit donc d’un enseignement de techniques certes, de modèles sûrement mais
surtout de modélisation. Car abstraire d’un fouillis de données concrètes un chemin, un processus, un ordre,
un système n’a rien d’évident pour nos étudiants. Cette compétence a pourtant toute sa place dans la panoplie
d’un ingénieur. Aussi avons-nous donné la part belle aux questions issues des stages et projets que nos étudiants
ont rencontré.
Pour tenir donc dans un format très réduit (20 heures de cours et autant de TD), il fallait faire des choix.
Ils furent naturellement cruels et hélas arbitraires.
La programmation linéaire bien sûr avec une ouverture vers le cas des variables discrètes, de l’algorithmie
sur les graphes évidemment, des processus stochastiques pour donner sa part à l’aléatoire. Exit la théorie des
jeux, l’optimisation multi-critères, . . . et tant d’objets de regrets pour l’auteur voire de reproches du lecteur.
Ce cours ne constitue donc qu’une bien modeste fenêtre sur un vaste domaine, et ce document n’a ni la portée,
ni l’envergure des livres de référence cités dans la bibliographie. Son format n’est optimisé que pour faciliter
la prise de notes des étudiants, le temps si précieux du face-à-face et les maigres ressources d’un établissement
supérieur français.
Puisse t’il cependant vous être utile et vous inciter à aller voir plus loin, au delà de la simple initiation auquel
ce cours peut prétendre.
Je ne peux terminer cette introduction sans remercier deux personnes qui m’ont aidé dans l’élaboration
de cette matière par leurs critiques et suggestions. Que Marie-Pierre Noutary et François Hincker touvent ici
l’expression de ma gratitude pour leur aide et surtout le témoignage du plaisir de les avoir cotoyé et d’avoir pu
travailler en si agréable compagnie.
Bernard Roux
3
4
Première partie
Cours
5
Programmation linéaire
Bernard Roux
Plan
1 Notre exemple
2 Dictionnaires
De l’écriture d’un système . . .
. . . à celle d’une solution
3 Algorithme du simplexe
Pivot de Gauss
Algorithme du simplexe
Retour sur l’exemple
Convergence de l’algorithme
4 Problèmes
Pas de pivot possible
Pas de solution réalisable
Notre exemple
L’atelier de production
Modélisation
Variables d’écart
Remarque évidente :
fi (~x) 6 bi 0 6 bi fi (~x) = x
Intérêts :
inégalité → égalité
on associe une variable à chaque contrainte
Variables de base
x1 x2 x3 x4 x5 x6 z Tableau 0
1 1 1 =3 E1 (0)
1 0 1 =4 E2 (0)
2 1 1 =9 E3 (0)
1 3 1 = 12 E4 (0)
3 2 1 =0 Ez (0)
Du dictionnaire . . .
. . . à une solution
x3 x4 x5 x6 z x1 = 0 x2 = 0
1 =3 1 1 =3
1 =4 1 0 =4
1 =9 2 1 =9
1 = 12 1 3 = 12
1 =0 3 2 =0
Forme
8 canonique :
>
< 0 6 x
A.x 6 b
>
:
c.x = z (Max)
1 1 3
x1 1 0 4
x= , A= , b= ,c= 3 2
x2 2 1 9
1 3 12
Forme
8 standard :
>
< 0 6 x
A.x = b A contient une sous-matrice identité
>
:
c.x = z (Max) A et c déterminent une base
x1
x2 1 1 1 0 0 0 3
x3 1 0 0 1 0 0 4
x= , A= , b= ,
x4 2 1 0 0 1 0 9
x5 1 3 0 0 0 1 12
x6
c= 3 2 0 0 0 0
Exercice
Questions
Exemple
x1 x2 x3 x4 x5 x6 z Tableau initial
1 1 1 =3 E1 (0)
1 0 1 =4 E2 (0)
2 1 1 =9 E3 (0)
1 3 1 = 12 E4 (0)
3 2 1 =0 Ez (0)
x1 x2 x3 x4 x5 x6 z Tableau final
? 1 ? =?
? ? 1 =?
? ? 1 =?
? ? 1 =?
? ? 1 =?
Ligne du pivot
On veut créer un 1 à l’emplacement du pivot (ici p = 1)
x1 x2 x3 x4 x5 x6 z Tableau initial
1 1 1 =3 Ep
1 0 1 =4
2 1 1 =9
1 3 1 = 12
3 2 1 =0
On divise la ligne du pivot par le pivot
x1 x2 x3 x4 x5 x6 z Tableau final
1 1 1 = 3 Ep/p
? ? 1 =?
? ? 1 =?
? ? 1 =?
? ? 1 =?
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 17 / 46
Colonne du pivot
Les autres termes de la colonne doivent être égaux à 0
x1 x2 x3 x4 x5 x6 z Tableau initial
1 1 1 =3 Ep
1 0 1 =4 E2
2 1 1 =9 E3
1 3 1 = 12 E4
3 2 1 =0 Ez
On ajoute ri .Ep aux autres lignes
x1 x2 x3 x4 x5 x6 z Tableau final
1 1 1 = 3 Ep/p
1 0 0 1 =4 E2 + 0.Ep
3 0 1 1 = 12 E2 + 1.Ep
4 0 3 1 = 21 E2 + 3.Ep
5 0 2 1 = 6 E2 2.Ep
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 18 / 46
Algorithme du simplexe Pivot de Gauss
Pivot de Gauss
2 3
p ··· l Ep
Matrice initiale T = 4 ... . . . ... 5
6 7
c ··· a Ei
2 l 3 Ep
1 ··· p p
Matrice finale T = 4 ... . . . ..
6 7 ..
. 5 .
0 · · · a c.lp Ei c
p .Ep
Algorithme du simplexe
Principe de l’algorithme
1 partir d’une base réalisable
2 pivoter pour augmenter z en restant
réalisable
3 terminer sur une base optimale
Questions ?
comment pivoter ?
base optimale = solution optimale ?
Historique
G.B. Dantzig
1947 : «simplex method» sur des (1914-2005) le «Père
problèmes de l’US Air Force de la programmation
1975 : prix Nobel d’économie à linéaire»
Kantorovich & Koopmans sur l’allocation
optimale de ressources
Rester réalisable ?
Pivotage : 2 3
2 3 bp
p · · · bp Ep 1 ··· p
6 . . 7
T = 4 ... . . . ... 5 ..
6 7
!T =6 . ..
4 . . 7
5
ck · · · bk Ei 0 · · · bk
ck .bp
p
bp
p > 0 p > 0 ou bp = 0 :
le pivot p est choisi positif pour rester réalisable !
ck .bp bp bk
0 6 bk p p 6 ck ou ck 6 0 :
bp
dans la colonne, parmi les p > 0 choisir un rapport p minimal
Exemple
x1 x2 x3 x4 x5 x6 z Après pivotage
4/3 1 1/3 = 10/3 E1 + E4/3
1 1 0 =4 E2
5/3 1 1/3 =5 E3 E4/3
1/3 1 1/3 =4 E4/3
7/3 2/3 1 =8 Ez + 2E4/3
Augmenter z ?
cz .bp
Augmenter z p <0 cz < 0
Règles de pivotage
1 Choix de la variable rentrante (colonne) : c < 0
bp
2 Choix de la variable sortante (ligne) : p > 0 et p minimal
Étape 1
x1 x2 x3 x4 x5 x6 z Ratio
(1) 1 1 =3 3
1 0 1 =4 4
2 1 1 =9 4.5
1 3 1 = 12 12
3 2 1 =0
Étape 2
x1 x2 x3 x4 x5 x6 z Ratio
1 1 1 =3
(1) 1 1 =1 1
3 2 1 =3 1
4 1 1 =9 2.25
5 3 1 =9
Variable rentrante = x2 / variable sortante = x4 ou x5
x1 x2 x3 x4 x5 x6 z Tableau 2
1 0 1 =4 E1 (1) + E2 (1)
1 1 1 =1 E2 (1)
1 3 1 =0 E3 (1) 3E2 (1)
3 4 1 =5 E4 (1) 4E2 (1)
2 5 1 = 14 Ez (1) + 5E2 (1)
Dégénéresence : au moins une variable de base est nulle
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 27 / 46
Étape 3
x1 x2 x3 x4 x5 x6 z Ratio
1 0 1 =4
1 1 1 =1
(1) 3 1 =0 0
3 4 1 =5 >0
2 5 1 = 14
x1 x2 x3 x4 x5 x6 z Tableau 3
1 1 0 =4 E1 (2)
1 2 1 = 1 E2 (2) + E3 (2)
1 3 1 =0 E3 (2)
5 3 1 = 5 E4 (2) 3E3 (2)
1 2 1 = 14 Ez (2) + 2E3 (2)
Étape 4
x1 x2 x3 x4 x5 x6 z Ratio
1 1 0 =4 4
1 2 1 =1
1 3 1 =0
(5) 3 1 =5 1
1 2 1 = 14
x1 x2 x3 x4 x5 x6 z Tableau final
1 0.6 0.2 =3 = x1
1 0.2 0.4 =3 = x2
1 0.8 0.6 =3 = x3
1 0.6 0.2 =1 = x4
1.4 0.2 1 = 15 =z
Solution optimale ?
x1 x2 x3 x4 x5 x6 z Tableau final
1 0.6 0.2 =3 = x1
1 0.2 0.4 =3 = x2
1 0.8 0.6 =3 = x3
1 0.6 0.2 =1 = x4
1.4 0.2 1 = 15 =z
Unicité ?
La solution est unique lorsque les coef. des variables hors-bases sont
strictement positifs.
Optimisation convexe
Contrainte = demi-espace
Face : xi = 0
x > 0 : Polytope convexe
Donc :
1 Base : intersection
de n contraintes
2 Dégénéresence :
plus de n contraintes
3 Base ou face optimale
Convergence ?
Bland (1977)
Oui théoriquement
Non en utilisant la règle de l’indice minimum
Nombre d’étapes ?
exponentiel sur certains cas théoriques
très rapide dans la pratique : rarement plus de 3 étapes par
contrainte !
Pas de pivot ?
x1 x2 x3 x4 x5 z Ratio
1 1 1 =3
0 1 1 =1
3 2 1 =2
1 3 1 =7
Si la variable rentrante est x2 : pas de pivot possible !
Base irréalisable ?
x1 x2 x3 x4 x5 x6 z
4 5 1 = 10
3 2 1 =3
1 1 1 = 8 <0
2 0 1 = 5 <0
2 1 1 =0
Simplexe à 2 phases
x1 = x2 = 0 et y = 8 par exemple !
non équivalent au système de départ
mais équivalent si y = 0
Phase 1 : initial
y x1 x2 x3 x4 x5 x6 z z
0 4 5 1 = 10
0 3 2 1 =3
( 1) 1 1 1 = 8
1 2 0 1 = 5
0 2 1 1 =0
1 0 0 1 =0
y x1 x2 x3 x4 x5 x6 z z
4 5 1 0 = 10
3 2 1 0 =3
1 1 1 1 =8
2 0 1 1 =3
2 1 0 1 =0
1 1 1 1 = 8
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 40 / 46
y x1 x 2 x 3 x 4 x5 x6 z z
4 (5) 1 0 = 10
3 2 1 0 =3
1 1 1 1 =8
2 0 1 1 =3
2 1 0 1 =0
1 1 1 1 = 8
À la fin de la phase 1
1 Soit ymin = 0
le système initial est réalisable
tableau de départ de la deuxième phase :
2 21 3
0 0 1 9/5 7/5 0 0 5
6 19 7
6 1 0 0 1/5 2/5 0 0 5 7
21
m4 = 6
6 0 1 0 1/5 3/5 0 0 5
7
7
4 13 5
0 0 0 2/5 4/5 1 0 5
59
0 0 0 1/5 7/5 0 1 5
2 Soit ymin > 0
le système initial est sans solution réalisable !
Phase 2 : optimisation z
2 3
0 0 5/7 97 1 0 0 3
6 1 0 2/7 5/7 0 0 0 5 7
6 7
m5 = 66 0 1 3/7 4/7 0 0 0 6 7
7
4 0 0 4/7 10
7 0 1 0 5 5
0 0 1 2 0 0 1 16
Solution optimale
xopt = (5, 6, 0, 0, 3, 5) et zmax = 16
Bibliographie
Bibliographie
C. Chvátal
Linear Programming
Freeman, 1983.
Bernard Roux
Plan
1 Notre exemple
2 Dualité
Du primal au dual
Correspondance des variables
Un lemme fondamental
Théorèmes de dualité
3 Analyse de sensibilité
Coût marginaux
Post-optimisation
Notre exemple
À quels prix ?
Modélisation
Notre exemple
Justes prix ?
Rappels :
R S T U
consommation : A 1 1 2 1
B 1 0 1 3
profit : A : 3k€/unité ; B : 2k€/unité
Contraintes : la vente rapporte au moins autant que la production
Primal et Dual
Primal Dual
8 8
>0 6 xi
>
> >0 6 yj
>
>
>
> >
<y + y + 2y + y > 3
>x1 x2 6 3
> 3 4 5 6
>
>
<x 6 4 > y3 + y5 + 3y6 > 2
1 >
>
>
:3y + 4y + 9y + 12y = w
>
>
>2x 1 + x2 6 9 3 4 5 6 (min)
>
>
>x1 + 3x2 6 12
>
>
>
:3x + 2x = z (max)
1 2
Remarque
Dual du dual = primal ! !
Du primal au dual
8
>
>
> 0 6 xi 8
>
> >0 6 yj
>
>
>
>x1 x2 6 3 (y1 ) >
>
> <1y + 1y + 2y + 1y > 3 (x1 )
<x + 0x 6 4 (y2 ) 1 2 3 4
1 2
>2x1 + x2 6 9
>
>
> 1y1 + 0y2 + 1y3 + 3y4 > 2 (x2 )
>
> (y3 ) >
> :3y + 4y + 9y + 12y = w (min)
>
> x1 + 3x2 6 12 (y4 ) 1 2 3 4
>
>
>
:3x + 2x = z
1 2 (max)
Correspondances
1 Les variables d’un pb correspondent aux contraintes de l’autre pb
2 Transposition des coefficients
Correspondance fonction économique-second membre
3 Renversement de l’ordre
En un seul tableau
x1 x2 x3 x4 x5 x6 w=
y1 1
y2 1
y3 1 1 1 = 3
y4 1 0 1 = 4
y5 2 1 1 = 9
y6 1 3 1 = 12
= =
z= 3 2
Calcul de w z
x1 x2 x3 x4 x5 x6 w=
y1 1
y2 1
y3 1 1 1 = 3
y4 1 0 1 = 4
y5 2 1 1 = 9
y6 1 3 1 = 12
= =
z= 3 2
Calcul de w z (2)
x1 x2 x3 x4 x5 x6 w=
y1 1
y2 1
y3 1 1 1 = 3
y4 1 0 1 = 4
y5 2 1 1 = 9
y6 1 3 1 = 12
= =
z= 3 2
Calcul de w z (3)
x1 x2 x3 x4 x5 x6 w=
y1 1
y2 1
y3 1 1=0 1+1 = 0 1 = 3
y4 1 1=0 0 0=0 1 = 4
y5 2 2=0 1 1=0 1 = 9
y6 1 1=0 3 3=0 1 = 12
= =
z= 3 2
Lemme fondamental
w z= xi yi
Lemme fondamental
w z= xi yi
Conséquence immédiate
Si (xi ) et (yj ) sont des solutions réalisables des systèmes, alors :
xi yi > 0 = z 6w
Conséquence de la conséquence
Si un problème est non borné, l’autre est irréalisable.
Un cas idéal
Si w z = 0?
Qu’impliquerait la réalisation simultané des deux conditions suivantes :
1 w z =0
2 (xi ) et (yj ) réalisables ?
Cas idéal
Si deux solutions duales réalisables réalisent w = z, alors :
Retour au tableau
x1 x2 x3 x4 x5 x6 w=
y1 1
y2 1
y3 1 1 1 = 3
y4 1 0 1 = 4
y5 2 1 1 = 9
y6 1 3 1 = 12
= =
z= 3 2
x 0 0 3 4 9 12
Ici = et donc w z =0
y 3 2 0 0 0 0
Mais y 0 ! ! (et solution du système !)
x1 x2 x3 x4 x5 x6 w=
y1 1
y2 1
y3 (1) 1 1 = 3
y4 1 0 1 = 4
y5 2 1 1 = 9
y6 1 3 1 = 12
= =
z= 3 2
En x : x1 rentre et x3 sort !
Pour garder w z = 0, y3 rentre et y1 sort !
x1 x2 x3 x4 x5 x6 w 9=
y3 1
y2 1
y1 1 1 1 = 3
y4 1 1 1 = 1
y5 3 2 1 = 3
y6 4 1 1 = 9
= = =
z 9= 5 3
A l’optimum
x1 x2 x3 x4 x5 x6 z Tableau final
1 0.6 0.2 =3 = x1
1 0.2 0.4 =3 = x2
1 0.8 0.6 =3 = x3
1 0.6 0.2 =1 = x4
1.4 0.2 1 = 15 =z
c > 0= y >0!
x 3 3 3 1 0 0
Et = > 0 avec w z =0
y 0 0 0 0 1.4 0.2
En résumé
Théorème de dualité
Si un des problème admet une solution optimale, alors :
1 l’algorithme converge
2 la fonction économique donne une solution du dual
3 cette solution est positive (donc réalisable)
4 et w z = 0 !
Donc le dual admet la même valeur optimale
et la base optimale du primal correspond à la hors-base du dual
Domaine de validité
Le coût marginal reste valide tant que la base reste optimale !
Validité (2)
. . . x5 x6 z x5 x6 z
0.6 0.2 =3 0.6 0.2 = 3 + 0.6
0.2 0.4 =3 0.2 0.4 = 3 0.2
0.8 0.6 =3 0.8 0.6 = 3 0.8
1 0.6 0.2 =1 0.6 0.2 = 1 0.6
1.4 0.2 1 = 15 1.4 0.2 1 = 15 + 1.4
Exemple
Si = 2, alors
x1 x2 x3 x4 x5 x6 z Tableau final
1 0.6 0.2 = 1.8 = x1
1 0.2 0.4 = 3.4 = x2
1 0.8 0.6 = 4.6 = x3
1 0.6 0.2 = 2.2 = x4
1.4 0.2 1 = 12.2 =z
Et au delà ?
Si = +2, alors
x1 x2 x3 x4 x5 x6 z Problème sur x4
1 0.6 0.2 = 4.2 = x1
1 0.2 0.4 = 2.6 = x2
1 0.8 0.6 = 1.4 = x3
1 0.6 0.2 = 0.2 = x4
1.4 0.2 1 = 17.8 =z
Exemple
x1 x2 x3 x4 x5 x6 z Problème sur x4
1 0.6 0.2 = 4.2 = x1
1 0.2 0.4 = 2.6 = x2
1 0.8 0.6 = 1.4 = x3
1 0.6 0.2 = 0.2 = x4
1.4 0.2 1 = 17.8 =z
x1 x2 x3 x4 x5 x6 z Tableau final
1 1 0 0 =4 = x1
1 0.333 0 0.333 = 2.667 = x2
1 1.333 0 0.333 = 1.633 = x3
1.667 1 0.333 = 0.333 = x4
2.333 0 0.667 1 = 17.333 =z
Bernard Roux
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 1 / 39
Plan
1 Notre exemple
2 Le principe de Bellman
De l’existence d’une solution
Principe de Bellman
3 Algorithme de Dijkstra
L’algorithme
Compléments
4 Algorithme de Ford-Bellman
Un problème de potentiels
L’algorithme
Convergence ?
Comparaison des algorithmes
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 2 / 39
Notre exemple
Le service livraison
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 3 / 39
Notre exemple
Modélisation
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 4 / 39
Notre exemple
Graphes orientés
Définitions
Le couple G = (X , U) est appelé un graphe orienté (simple)
Si u = (x, y ) est un arc de G :
x est l’extrémité initiale de u et un prédécesseur de y
y est l’extrémité finale de u et un successeur de x
Un chemin est une suite finie d’arcs (ui )16i6n telle que :
si i = n et ui = (xi , yi ), alors yi = xi+1
si yn = x1 , le chemin est un circuit
un circuit réduit à un arc est une boucle.
Concepts non orientés : arête, chaîne, cycle
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 5 / 39
Notre exemple
Le réseau
A 6 / D 4 / G 7 / I 6 / L
12 2 3 11 5 6 5
✏ ✏ ✏
B o 5 E 4 / H
? 3 / J 8 / M
5
3 2 15 4 14 9 3 2
✏
C 7 / F 3 /' K 9 /' N
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 6 / 39
Le principe de Bellman De l’existence d’une solution
1
idem si des longueurs sont négatives : A / B
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 8 / 39
Le principe de Bellman
Principe de décomposition
lX rX R. Bellman (1920-1984)
A /X /B
inventeur de la
programmation
dynamique
(lX + rX ) min. lX et rX min.
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 11 / 39
Le principe de Bellman Principe de Bellman
Application du principe
Idée
prolonger d’un arc un chemin minimal
lB r
A / B / X
Conséquences :
1 on connaît seulement le point de départ A
2 on marque X si on découvre un chemin de A à X
3 la marque de X ne peut que décroître (on veut minimiser !)
4 si la marque est définitive, le chemin doit être minimal !
Questions :
1 comment intiialiser l’algorithme ?
2 comment une marque devient-elle définitive ?
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 12 / 39
Algorithme de Dijkstra
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 14 / 39
Étape 0
Deux listes :
marques définitives : D = {(A, 0, )}
marques provisoires : P = Ø
Notation :
(A, 0, ) : (marqué, marque, marqueur) !
A0
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 15 / 39
Algorithme de Dijkstra L’algorithme
Étape 1
A0 6 / D
12 2
✏
B E2
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 16 / 39
Étape 2
A0 6 / D6
B o 5 E2 4 / H
14
'
K
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 17 / 39
Étape 3
A0 6 / D6 4 / G
B o 5 E2 4 / H6
14
(
K
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 18 / 39
Algorithme de Dijkstra L’algorithme
Fin de l’algorithme
A0 / D6 / G10 / I17
= L15
6 4 7
2 6
!
B7 o 5 E2 4 / H6 3 / J9 8 / M17
3 14 9
( (
C10 7 / F17 K16 N15
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 19 / 39
Question
A0 / D6 / G10 / I17
= L15
6 4 7
2 6
!
B7 o 5 E2 4 / H6 3 / J9 8 / M17
3 14 9
( (
C10 7 / F17 K16 N15
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 21 / 39
Définitions
Connexité
Soit G un graphe non orienté
La relation x y (il existe une chaîne reliant x et y ) est une relation
d’équivalence
Ses classes sont les composantes connexes du graphe
S’il n’y a qu’une composante, le graphe est dit connexe.
Arbres
Un graphe non orienté G connexe et sans cycle est dit un arbre
Un graphe orienté G est une arborescence de racine a lorsque pour
tout y , il existe un unique chemin de a à y
Pour tout sommet a d’un arbre A , il existe une unique orientation qui
transforme A en une arborescence de racine a.
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 22 / 39
Algorithme de Ford-Bellman Un problème de potentiels
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 24 / 39
Algorithme de Ford-Bellman
À chaque étape, u = (X , Y )
mn (X ) 6 l(C )
L.R. Ford (1886-1967)
n!
Et mn (X ) / (X )
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 26 / 39
Le réseau
A 6 / D 4 / G 7 / I 6 / L
12 2 3 11 5 6 5
✏ ✏ ✏
B o 5 E 4 / H
? 3 / J 8 / M
5
3 2 15 4 14 9 3 2
✏
C 7 / F 3 /' K 9 /' N
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 27 / 39
Algorithme de Ford-Bellman L’algorithme
Étape 0
Version accélérée :
A B C D E F G H I J K L M N
m 0
marqueur
mn+1 < mn 1
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 28 / 39
Étape 1
A B C D E F G H I J K L M N
m 0 12 6 2
marqueur A A A
mn+1 < mn 1 1 1
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 29 / 39
Étape 2
A B C D E F G H I J K L M N
m 0 12 6 2
B 15 3
D 10 3
E 7 16
m 0 7 15 6 2 3 10 3 16
marqueur E B A A B D D E
mn+1 < mn 1 1 1 1 1 1
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 30 / 39
Algorithme de Ford-Bellman L’algorithme
Étape 3
s(B) = {(C , 3), (F , 15)} ; s(C ) = {(B, 2), (F , 7), (G , 5)} ;
s(F ) = {(H, 4), (K , 3)} ; s(G ) = {(I , 7), (J, 11)} ; s(H) = {(J, 3), (N, 9)} ;
s(K ) = {(M, 3), (N, 9)}
A B C D E F G H I J K L M N
m 0 7 15 6 2 3 10 3 16
B 10 8
C
F 4 5
G 17 21
H 1 5
K 2 4
m 0 7 10 6 2 8 10 4 17 1 5 2 4
marqueur E B A A B D F G H F K K
mn+1 < mn 1 1 1 1 1 1 1 1
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 31 / 39
Étape 4
s(C ) = {(B, 2), (F , 7), (G , 5)} ; s(F ) = {(H, 4), (K , 3)} ;
s(H) = {(J, 3), (N, 9)} ;s(I ) = {(J, 5), (L, 6)} ;s(J) = {(L, 6), (M, 8)} ;
s(K ) = {(M, 3), (N, 9)} ; s(M) = {(N, 2)} ; S(N) = Ø
A B C D E F G H I J K L M N
m 0 7 10 6 2 8 10 4 17 1 5 2 4
C
F
H
I 23
J 5
K
M 0
m 0 7 10 6 2 8 10 4 17 1 5 5 2 0
marqueur E B A A B D F G H F J K M
mn+1 < mn 1 1
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 32 / 39
Étape 5
A B C D E F G H I J K L M N
m 0 7 10 6 2 8 10 4 17 1 5 5 2 0
L
N
m 0 7 10 6 2 8 10 4 17 1 5 5 2 0
marqueur E B A A B D F G H F J K M
mn+1 < mn
L’algorithme a convergé !
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 33 / 39
Algorithme de Ford-Bellman Convergence ?
Fin de l’algorithme ?
A 6 / D 4 / G 7 / I 6 / L
12 2 3 11 5 6 5
✏ ✏ ✏
B o 5 E 4 / H
? 3 / J 8 / M
3 2 5
15 4 14 9 3 2
✏
C 7 / F 3 /' K 9 /' N
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 35 / 39
A
l1
/ 2 l2
/ · · · ln 1
/ n
Convergence
L’algorithme converge si et seulement si aucune marque ne change à une
étape k 6 n.
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 36 / 39
Vitesse de convergence
Ford-Bellman
au plus n étapes
chaque arc peut être examiné à chaque étape
complexité O(nm), soit O(n3 ) si le graphe est dense
si peu d’arcs négatifs, initialiser les marques par Dijkstra.
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 38 / 39
Le problème
du flot maximal
Bernard Roux
Plan
1 Notre exemple
La situation étudiée
Modélisation
2 Première tentative
Linéarité des flots
Flots complets
3 Algorithme de Ford-Fulkerson
Idée de base
L’algorithme de Ford-Fulkerson
4 Théorème de Ford-Fulkerson
Coupes
Théorème de Ford-Fulkerson
Complexité
Un réseau de transport
Une usine S
Trois demandes en F, G et H (en conteneurs)
Des disponibilités d’un réseau de transport
⇣✏⌦↵ 8 ⌃ ⇠⌫
⌘✓◆ 28 ⌃ ⇣✏ ⌦↵
A D⌃ F 30
!! ⌃⌃⌃
22 ! ! ⌃⌃
! 12 4
!!! 17 5 ⌃⌃⌃
! 5 20 ⇥
⇣✏
⌦↵
S⇧ ⌃ ⇣✏⌦↵
B ⌃⇠⌫
⌘✓◆G 16
⇧⇧ ⌫⌫ ⌫⌫
⇧⇧ 23⌫⌫⌫ ⌫
⇧ 3 ⌫ 8
36 ⇧⇧⇧
⌫ ⌫⌫⌫⌫ 9
⇥ ⌫
⇣✏⌦↵
C
⌫ ⌃ ⇣✏
⌦↵
E ⌃⇠⌘✓◆
⌫H 15
12 13
Modélisation du problème
Valeur du flot
Linéarité
Soient f et g deux flots sur le graphe G = (X , U)
alors : ( , µ) f + µg est un flot.
L’ensemble des flots constitue donc un espace vectoriel
Attention
Mais elle est fausse pour les flots compatibles !
36
Augmenter le flot
f > 0 tel que f + f0 soit un flot C chemin non saturé de S à P
Chemin augmentant ?
Exemple
Marquage
⇠⌫
⌘✓◆ ⇠⌫
⌘✓◆ 20 ⌃ ⇠⌫ ⌘✓◆
↵ A2 ⇠⇠⌦
D1 F1 ⌥
⇤ ⌥⌥
⇠⇠
2 ⇠⇠⇠ ⇤ ⌥⌥22
⇠⇠17 4 ⌥⌥
⇠⇠ 5 ⇤ ⌥⌥
1 ⇠⇠⇠ 4 ⇧ ⇤
⇠⌫
⌘✓◆
S ⌃ ⇠⌫
⌘✓◆
B1 ⌃ ⇠⌫
⌘✓◆
G 1
⇠⌫
⌘✓◆
P1
⌦
✓ ⇤ ⇡ ⇡ ⇤
⇤ 23 ⇡ ⇤
⇤3 8
⇡
24 ⇡ 9 ⇤ 3
⌅ ⇡
⇡⇢ ⌧ ⇣✏
⌦↵ ⇡ ⇠⌫
⌘✓◆
C24 E ✓ ✓ ✓ ✓ ✓ ✓
1
⌃ H
Marquage
Tout type d’exploration admis (ici en largeur)
Les marques n’augmentent pas le long d’un chemin de l’arborescence
Un sommet déjà marqué n’est plus marqué !
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 15 / 40
Flot augmentant
8/8 8+1/28
⇣✏⌦↵
A ⌃ ⇠⌫
⌘✓◆ ⌃ ⇣✏ ⌦↵
⇡⇡ ⌦ D F ⇧
⇧⇧
!! ⇡
20/22 !! ⇡⇡ ⇡ ⇧⇧8+1/30
! 12/12 ⇡⇡ 0/4 ⇧⇧
!!! ⇡⇡⇡⇡0+1/17 0/5 ⇧⇧
!4+1/5 ⇡ ⇡ 16/20 ⇧ 16/16 ⇥
⇣✏
⌦↵
S⇧ ⌃ ⇣✏⌦↵
B ⌃⇠⌫⌘✓◆ G ⌃ ⇣✏
⌦↵
P
⌦
⇣ ⇧⇧
⌅⇧⇧ 0/23 ⇡⇡⇡
⇡⇡⇡ !!!⇥
⇧⇧⇧ 0/3 ⇡ !!
0/8 !!
12/36 ⇧⇧ ⇡⇡⇡⇡⇡0/9 !! 12/15
⌦⇥ ⇡⇡ !
⇣✏⌦↵ ⌃ ⇣✏⌦↵ ⌃⇠⌘✓◆⌫H ⌧
C↵ 12/12
E 12/13 ⇡ ⇢
✏
⇣ ⌘ 36+1 ◆
✓
Remarque
À chaque étape, on sature au moins un arc !
Donc le processus finit !
Flot complet
⇣✏⌦↵
A
! ⇧⇧⇧
0 ! ⇧⇧1
! ⇧⇧
! ⇧⇧
! ⇥
⇣✏
⌦↵
S⇧ 1 ⇣✏⌦↵
P
✏ ⇧⇧ !
⇧⇧ !
⇧ !
1 ⇧⇧⇧ ! 0
⇥ !
⇣✏⌦↵
B
1
L’algorithme de Ford-Fulkerson
1 Procédure de marquage
recherche de chaîne non saturée de S à P
si échec, arrêt de l’algorithme
2 Si P est marqué, modification du flot
D.R. Fulkerson
(1924-1976)
Flot de départ
8/8 9/28
⇣✏⌦↵
A ⌃ ⇠⌫
⌘✓◆ ⌃ ⇣✏⌦↵
! ⇡⇡⇡⌦ D F ⇧
⇧⇧
20/22 !!! ⇡ ⇡⇡ ⇧⇧9/30
!! 12/12 ⇡ ⇡⇡ 0/4 ⇧⇧
! ⇡ 1/17 0/5 ⇧⇧
!! 5/5 ⇡ ⇡⇡⇡ 16/20 ⇧ 16/16 ⇥
⇣✏
⌦↵
S⇧ ⌃ ⇣✏⌦↵
B G
⌃ ⇠⌫
⌘✓◆ ⌃ ⇣✏
⌦↵
P
⇣ ⇧⇧ ⇡⇡⇡⌦ !!
⇧⇧ 0/23 ⇡ ⇡ !
⇧⇧ 0/3 ⇡⇡ 0/8 !!!
12/36 ⇧⇧ ⇡⇡⇡⇡0/9 ! 12/15
⇥
⇡⇡⇡ !!
⇣✏⌦↵
C ⌃ ⇣✏
⌦↵
E ⌃ ⇠
⌘✓◆⌫
H
12/12 12/13
37
Marquage (1)
8/8 9/28
⇠⌫
⌘✓◆ ⌃ ⇡⇢ D16 ⌧ ⌃ ⇠⌫ ⌘✓◆
↵ A2 ⇠⇠ ⌦ F4
20/22 ⇠ ⇠⇠ 9/30
12/12 ⇠⇠⇠
⇠ 0/4
⇠ 1/17
⇠ 0/5
5/5 ⇠⇠⇠ 16/20 ⇧ 16/16 ⌅
⇠⌫
⌘✓◆
S ⌃ ⇡⇢ B16 ⌧ ⌃ ⌥ ⇡⇢ G23 ⌧ ⌃ ⇠⌫
⌘✓◆
⇥ ⌦ ↵ P4
0/23
0/3 0/8
12/36 0/9 12/15
⌅
⇡⇢
C24 ⌧ ⌃ ⇣✏
⌦↵
E ✓ ✓ ✓ ✓ ✓ ✓ ✓ ⌃ ⇠⌫
⌘✓◆
H
12/12 12/13
37
Augmentation (1)
8/8 9/28
⇣✏⌦↵
A ⌃ ⇠⌫
⌘✓◆ D ⌃ ⇣✏⌦↵
F ⇧
⇡⇡ ⌦ ⇧⇧
! ⇡
20/22 !!! ⇡ ⇡⇡ ⇧⇧9+4/30
!! 12/12 ⇡ ⇡⇡ 0+4/4 ⇧⇧
! ⇡ 1/17 0/5 ⇧⇧
!! 5/5 ⇡ ⇡⇡⇡ 16/20 ⇧ 16/16 ⇥
⇣✏
⌦↵
S⇧ ⌃ ⇣✏⌦↵
B G
⌃ ⇠⌫
⌘✓◆ ⌃ ⇣✏
⌦↵
P
⇣ ⇧⇧ ⇡⇡⇡⌦ !!
⇧⇧ 0+4/23 ⇡⇡ !
⇧⇧ 0/3 ⇡⇡⇡ 0/8 !!!
12+4/36 ⇧⇧ ⇡⇡⇡ 0/9 ! 12/15
⇥
⇡⇡ ⇡ !!
⇣✏⌦↵
C ⌃ ⇣✏
⌦↵
E ⌃ ⇠
⌘✓◆⌫
H
12/12 12/13
37+4
Marquage (2)
8/8 9/28
⇠⌫
⌘✓◆ ⌃ ⇡⇢ D16 ⌧ ⌃ ⇡⇢ F16 ⌧
↵ A2 ⇠⇠ ⌦
20/22
⇠ 13/30
12/12 ⇠⇠⇠
⇠⇠⇠ 4/4
⇠⇠ 1/17 0/5
5/5 ⇠⇠⇠ 16/20 ⌅
⇡⇢ ⌧ 16/16 ⌃ ⇡⇢
⇧
⇠⌫
⌘✓◆
S ⌃ ⇡⇢ B16 ⌧ P ⌧
⌃ ⌥ ⌦ G19 ↵ 16
✓
4/23
0/3 0/8
16/36 0/9 12/15
⌅
⇡⇢ C20 ⌧ ⌃ ⇣✏
⌦↵
E ✓ ✓ ✓ ✓ ✓ ✓ ✓ ⌃ ⇠⌫
⌘✓◆
H
12/12 12/13
41
Modification (2)
8/8 9+16/28
⇣✏⌦↵
A ⌃ ⇠⌫
⌘✓◆ D ⌃ ⇣✏⌦↵
F ⇧
⇡⇡ ⌦ ⇧⇧
!! ⇡
20/22 !! ⇡ ⇡⇡ ⇧⇧13+16/30
!! 12/12 ⇡⇡⇡ 4/4 ⇧⇧
! ⇡⇡ 1+16/17 0/5 ⇧⇧
!! 5/5 ⇡ ⇡⇡ 16 16/20 ⇧ 16/16 ⇥
⇣✏
⌦↵
S⇧ ⌃ ⇣✏⌦↵
B G
⌃ ⇠⌫
⌘✓◆ ⌃ ⇣✏
⌦↵
P
⇣ ⇧⇧ ⇡⇡⇡⌦ !!
⇧⇧ 4+16/23 ⇡⇡ ⇡ !
⇧⇧ 0/3
⇡⇡ 0/8 !!!
16+16/36 ⇧⇧ ⇡⇡⇡ 0/9 ! 12/15
⇥ ⇡⇡ ⇡ !!
⇣✏⌦↵
C ⌃ ⇣✏
⌦↵
E ⌃ ⇠
⌘✓◆⌫
H
12/12 12/13
41+16
Marquage (3)
8/8
⇠⌫
⌘✓◆
A2 ⌘✓◆ ✓ ✓ 25/28
⌃ ⇠⌫ ✓ ✓ ✓ ✓⌃ ⇣✏
⌦↵
⇡⌦ D F ⇧
20/22
⇡ ⇧ 29/30
⇡ ⇧
12/12 ⇡ 4/4 ⇧
⇡
⇡ 17/17 0/5 ⇧
5/5 ⇡ 0/20 ⇧ 16/16 ⇥
⇠⌫
⌘✓◆
S ⌥ ⌃ ⇣✏⌦↵
B ⌃ ⇠⌫⌘✓◆
G ⌃ ⇣✏
⌦↵
P
⌘ ⌥⌥ ⌦ 3 !
⌥⌥ 20/23 !
⌥⌥ 0/3 0/8 !
32/36 ⌥⌥ 0/9 ! 12/15
⇤ !
⇠⌫
⌘✓◆
C4 ⌃ ⇣✏
⌦↵
E ✓ ✓ ✓ ✓ ✓ ✓ ⌃ ⇠⌫
⌘✓◆
H
12/12 12/13
57
Flot maximal ?
À la fin de l’algorithme, deux types de sommets (marqués ou pas)
arcs : marqués vers non marqués
8/8
⇠⌫
⌘✓◆
⇣✏
⌦↵2
A ⌃ ⇠⌫
⌘✓◆
D ⇣✏
⌦↵
F
12/12 4/4
5/5
⇠⌫
⌘✓◆
⇣✏
⌦↵
S ⌃ ⇣✏
⌦↵
B ⇠⌫⌦↵3 16/16 ⌃ ⇣✏
⌘✓◆
⇣✏
G ⌦↵
P
⇠⌫
⌘✓◆
⇣✏
⌦↵4
C ⌃ ⇣✏
⌦↵
E ⇠⌫
⌘✓◆
H
12/12
⇠⌫
⌘✓◆
⇣✏
⌦↵2
A ⇠⌫
⌘✓◆
D ⇣✏
⌦↵
F
0/5
0/20 ⇧
⇠⌫
⌘✓◆
⇣✏
⌦↵
S ⇣✏
⌦↵ ⌃ ⇠⌫
⌘✓◆⇣✏
⌦↵ ⇣✏
⌦↵
B ⌦ G3 P
0/3 0/8
0/9
⇠⌫
⌘✓◆
⇣✏
⌦↵4
C ⇣✏
⌦↵
E ⇠⌫
⌘✓◆
H
Coupes
Definition
Soient X1 un ensemble de sommets, et X2 son complémentaire.
1 L’ensemble d’arcs défini par = {u | u X1 ⇥ X2 } est une coupe.
2 La capacité d’une coupe est égale à c( ) = u c(u)
3 Elle sépare un sommet a d’un sommet b lorsque a X1 et b X2 .
⇣✏
⌦↵
⌥⌃⇧
⇥⇤⌅
A ⇠⌫
⌘✓◆
⇣✏
⌦↵
D⌃ ⇣✏⌦↵
⌥⌃⇧
⇥⇤⌅
F ⇧
⌃⌃ ⇧⇧
⌃⌃ ⇧⇧30
12 ⌃ ⇧⇧
5 ⌃⌃⌃ ⇧⇧
5 ⌃ ⇣✏ ⇥ ⇥
⇣✏
⌦↵
⌥⌃⇧
⇥⇤⌅
S ⌦↵
B ⇠⌫
⌘✓◆
G ⇣✏⌦↵
P
⌫⌫ ⌫
⌫ ⌫
23⌫⌫⌫
⌫⌫
⌫⌫⌫⌫⌫
⇣✏
⌦↵
⌥⌃⇧
⇥⇤⌅
C
⌫ ⌃ ⇣✏
⌦↵
E ⇠⌫
⌘✓◆
H
12
Coupe complémentaire
Definition
Si = {u | u X1 ⇥ X2 } est une coupe,
alors = {u | u X2 ⇥ X1 } est la coupe inverse de .
⇣✏
⌦↵
⌥⌃⇧
⇥⇤⌅
A ⇠⌫
⌘✓◆
⇣✏
⌦↵
D⌃ ⇣✏⌦↵
⌥⌃⇧
⇥⇤⌅
F ⇧
⌃⌃ ⇤ ⇧⇧
⌃⌃ ⇤ 4 ⇧⇧30
⌃⌃ ⇧
12 ⇧⇧
17 5 ⌃⌃ ⇤ ⇧⇥
5 ⌃ ⇣✏ ⇥
⇣✏
⌦↵
⌥⌃⇧
⇥⇤⌅
S ⌦↵
B ⇠⌫
⌘✓◆
G ⇣✏
⌦↵
P
⌫⌫ ⌫⌫
23⌫⌫⌫ ⌫
⌫
⌫⌫⌫⌫⌫
⌫
⇣✏
⌦↵
⌥⌃⇧
⇥⇤⌅
C
⌫ ⌃ ⇣✏
⌦↵
E ⇠⌫
⌘✓◆
H
12
Une évidence
Lemme
f flot compatible, coupe séparant s de p : v (f ) = f ( ) f( )
Preuve
Si est engendrée par X1 , on somme les équations de conservation des
sommets de X1 .
Corollaire
f flot compatible, coupe séparant s de p :
1 v (f ) 6 c( )
2 L’égalité implique la maximalité du flot et la minimalité de la coupe.
Illustration
⇣✏
⌦↵
⌥⌃⇧
⇥⇤⌅
A ⇠⌫
⌘✓◆
⇣✏
⌦↵
D⌃ ⇣✏⌦↵
⌥⌃⇧
⇥⇤⌅
F ⇧
⌃⌃ ⇤ ⇧⇧
12/12
⌃⌃
⌃ ⇤ 4/4 ⇧⇧⇧29/30
17/17 0/5 ⌃⌃ ⇤
⌃ ⇧⇧
⇥ ⇧⇥
5/5
⇣✏
⌦↵
⌥⌃⇧
⇥⇤⌅
S ⌃ ⇣✏
⌦↵
B ⇠⌫
⌘✓◆
G ⇣✏
⌦↵
P
⌫⌫ ⌫
20/23 ⌫⌫ ⌫⌫
⌫⌫⌫
⌫⌫⌫⌫⌫
⇣✏
⌦↵
⌥⌃⇧
⇥⇤⌅
C
⌫ ⌃ ⇣✏
⌦↵
E ⇠⌫
⌘✓◆
H
12/12
v (f ) = f ( ) f ( ) = 78 21 = 57
Th. de Ford-Fulkerson
Théorème
La valeur maximale vmax d’un flot compatible est égale à la capacité
minimale cmin d’une coupe séparant s de p.
Preuve
1 L’algorithme de Ford-Fulkerson converge sur un flot f
L’algorithme converge ?
Pas si évident !
Compléments
Bernard Roux
Plan
1 Notre exemple
Deux problèmes pour une même situation
3 Affectation minimale
Premières idées
Algorithme Hongrois
Complexité
Répartition de projets
A B C D E F
1 35 19 16 21 23 40
2 37 25 19 24 27 35
3 33 16 13 19 24 30
4 19 4 21 6 7 19
5 37 24 18 19 25 36
6 15 5 7 6 5 14
Problème 1
A B C D E F
1 1 1
2 1
3 1 1 1
4 1 1 1 1 1
5 1 1
6 1 1 1 1 1 1
Problème 2
A B C D E F
1 35 19 16 21 23 40
2 37 25 19 24 27 35
3 33 16 13 19 24 30
4 19 4 21 6 7 19
5 37 24 18 19 25 36
6 15 5 7 6 5 14
S ⇧⌥⇧⌥⌥⌥⌥⌥
⇧⇧ ⌥⌥⌥⌥⌥
⇧⇧ ⌥⌥⌥⌥
⇧⇧ ⌥⌥⌥⌥
⇧ ⌥⌥⌥⌥
⇣ ⇧ ⌥⌥
⇣✏
⌦↵
1 ⌃⌃⌃ ⇣✏ ⌦↵
2 ⇣✏ ⌦↵
3⌅ ⇣✏ ⌦↵
4⌅
⌥⇣✏
⌦↵
5 ⇣✏
⌦↵
6
⌃⌃⌃ ⌅⌅ ⌅⌅
⌃⌃⌃ ⌅⌅ ⌅⌅
⌃⌃⌃ ⌅⌅ ⌅⌅
⌃ ⌅⌅ ⌅⌅
⌅ ⌘ ✏ ⌃⌃⌃⌃ ⌅ ✏ ⌅ ⌘ ✏ ⌅ ⌘ ⌃ ⇣✏
⇣✏
⌦↵
A
↵ ⇣✏
⌦↵
B ⇣✏ ⌦↵
C ⇠⌫
⌘✓◆ D ⇣✏
⌦↵
E ⌦↵
F
⌦⌦
⌦⌦
⌦
⌦⌦
⇧⌥ ⇣⌦⌦
P
Marquage 1
⇣✏
⌦↵
1 ⌃⌃⌃ ⇣✏ ⌦↵
2 ⇣✏⌦↵
3⌅ ⇣✏⌦↵
4⌅ ⇣✏
⌦↵
5 ⇣✏
⌦↵
6
⌃⌃⌃ ⌅⌅ ⌅⌅
⌃⌃⌃ ⌅⌅ ⌅⌅
⌃⌃⌃ ⌅⌅ ⌅⌅
⌃ ⌅⌅ ⌅⌅
⌅ ⌘ ✏ ⌃⌃⌃⌃ ⌅ ⌅ ⌘ ⌅ ⌘
⇣✏
⌦↵ ↵
A ⇣✏
⌦↵ B ⇣✏⌦↵ ✏ C ⌘✓◆✏
⇠⌫ D ⇣✏
⌦↵ E
⌃ ⇣✏
F ⌦↵
S ⇣✏
⌦↵
2 ⇣✏
⌦↵
C ⌦ ⇣✏
⌦↵
1 ⇣✏
⌦↵
B P
⇥
⇣✏ ⌦↵
5 ⇠⌫
⌘✓◆
D ⌦ ⇣✏
⌦↵
3
Modification du flot
S ⇧⌥⇧⌥⌥⌥⌥⌥
⇧⇧ ⌥
⌥⌥⌥⌥
+1 ⇧⇧ ⌥⌥⌥⌥
⇧⇧ ⌥⌥⌥⌥
⇧ ⌥⌥⌥⌥
⇣ ⇧ ⌥⌥
⇣✏1 ⌃⌃⌃ ⇣✏
⌦↵ ⌦↵
2 ⇣✏ ⌦↵
3⌅ ⇣✏ ⌦↵
4⌅
⌥⇣✏
⌦↵
5 ⇣✏
⌦↵
6
⌃⌃⌃ ⌅⌅ ⌅⌅
⌃ ⌅⌅ ⌅⌅
+1 1⌃⌃ +1 ⌅⌅ ⌅⌅
⌃⌃ ⌅⌅ ⌅⌅
⌅ ⌘ ✏ ⌃⌃⌃⌃ ⌅ ✏ ⌅ ⌘ ✏ ⌅ ⌘ ⌃ ⇣✏
⇣✏
⌦↵
A
↵ ⇣✏
⌦↵
B ⇣✏ ⌦↵
C ⇠⌫
⌘✓◆ D ⇣✏
⌦↵
E ⌦↵
F
⌦⌦
⌦⌦
+1 ⌦
⌦⌦
⇧⌥ ⇣⌦⌦
P
Marquage 2
⇣✏
⌦↵
1 ⇣✏
⌦↵
2⌅ ⇣✏
⌦↵
3⌅ ⇣✏
⌦↵
4⌅ ⇣✏
⌦↵
5 ⇣✏
⌦↵
6
⇤⇤ ⌅⌅ ⌅⌅ ⌅⌅
⇤⇤ ⌅ ⌅ ⌅
⇤⇤ ⌅⌅ ⌅⌅ ⌅⌅
⇤⇤ ⌅⌅ ⌅⌅ ⌅⌅
⇤⌅ ⌘ ⌅⌅ ⌅⌅ ⌘ ⌅⌅ ⌘
⇣✏
⌦↵ ↵ ⇣✏
⌦↵ ✏ ⌃ ⇣✏
⌦↵ ✏ ⇠⌫
⌘✓◆ ✏ ⇣✏
⌦↵ ⌃ ⇣✏
⌦↵
A B C D E F
S ⇣✏
⌦↵
5 ⇣✏
⌦↵
C ⌦ ⇣✏
⌦↵
2
⇤⇤
⇤⇤
⇤⇤
⇤⇤
⇤⌅
⇠⌫
⌘✓◆
D ⌦ ⇣✏
⌦↵
3 ⇣✏
⌦↵
B ⌦ ⇣✏
⌦↵
1
Coupe ?
Arcs de la coupe ?
⇣✏
⌦↵
⌥⌃⇧
⇥⇤⌅
S ⌅⌥⌥⌥⌥⌥
⌅⌅ ⌥⌥⌥⌥
⌅⌅ ⌥⌥⌥⌥
⌅⌅ ⌥⌥⌥⌥
⌅⌅ ⌥⌥⌥⌥
⌘ ⌅ ⌥⌥⌥⌥
⇣✏
⌦↵
⌥⌃⇧
⇥⇤⌅
1
✏ ⇣✏
⌦↵
⌥⌃⇧
⇥⇤⌅
2 ⇣✏
⌦↵
⌥⌃⇧
⇥⇤⌅
3 ⇣✏ ⌦↵
4 ⇣✏
⌃ ⌦↵
⌥⌃⇧
⇥⇤⌅ 5 ⇣✏
⌦↵ 6
⌅ ⌘✏ ⌅
⌃ ⇣✏ ✏ ⌅ ⌘✏ ⌅ ⌘ ⌃ ⇣✏
⇣✏
⌦↵
A
↵ ⇣✏
⌦↵
⌥⌃⇧
⇥⇤⌅
B⇧ ⌦↵
⌥⌃⇧
⇥⇤⌅
C ⇠⌫
⌘✓◆
⇣✏
⌦↵
D ⇣✏
⌦↵
E F ⌦↵
⇧⇧ ⌦⌦
⇧⇧ ⌦
⇧⇧ ⌦⌦
⇧⇧ ⌦⌦
⇧⌥ ⇣⌦⌦
P
Ensemble transversal
A B C D E F
1 (1) 1
2 (1)
3 1 1 (1)
4 1 1 1 (1) 1
5 1 1
6 1 1 1 1 1 (1)
Ford-Fulkerson !
Remarque
Chaque arc d’un couplage maximum a donc exactement une extrémité dans
tout ensemble transversal minimal.
La preuve repose sur le fait que pour tout arc (x1 , x2 ), si x1 est marqué
(par S ou x2 ), alors x2 doit l’être aussi.
Un cas idéal
A B C
1 (0) 1 3
2 4 0 (0)
3 2 (0) 7
Remarques
Dans une matrice M > 0, toute affectation de coût nul est minimale !
La recherche d’une telle affectation revient au problème précédent !
A B C A B C
1 (0) 1 3 1 (10) 11 13
!
2 4 0 (0) 2 4 0 (0)
3 2 (0) 7 3 2 (0) 7
Important !
Tous les coûts sont décalés de 10 !
Cela ne marche qu’avec une matrice carrée !
A B C
A B C
1 30 6 20 10
1 (0) 1 3
2 29 0 12 5 !
2 4 0 (0)
3 32 5 24 10
3 2 (0) 7
20 +5 7
Définition
Deux matrices carrées sont équivalentes lorsqu’il est possible d’obtenir
l’une de l’autre par une telle suite de transformations (ajout d’une
constante à une ligne ou colonne)
L’algorithme hongrois
Étape 0
A B C D E F
1 35 19 16 21 23 40
2 37 25 19 24 27 35
3 33 16 13 19 24 30
4 19 4 21 6 7 19
5 37 24 18 19 25 36
6 15 5 7 6 5 14
15 4 7 6 5 14 Total : 51
Étape 0
. . . et par ligne
A B C D E F
1 20 15 9 15 18 26 9
2 22 21 12 18 22 21 12
3 18 12 6 13 19 16 6
4 4 0 14 0 2 5
5 22 20 11 13 20 22 11
6 0 1 0 0 0 0
38
Étape 0
Première matrice
A B C D E F
1 11 6 0 6 9 17
2 10 9 0 6 10 9
3 12 6 0 7 13 10
4 4 0 14 0 2 5
5 11 9 0 2 9 11
6 0 1 0 0 0 0
Théorème de Ford-Fulkerson
A B C D E F
1 11 6 0 6 9 17
2 10 9 0 6 10 9
3 12 6 (0) 7 13 10
4 4 (0) 14 0 2 5
5 11 9 0 2 9 11
6 (0) 1 0 0 0 0
Créer un zéro ?
Créer un zéro ?
Étape 1
Deuxième matrice
A B C D E F
1 9 4 0 4 7 15
2 8 7 0 4 8 7
3 10 4 (0) 5 11 8
4 4 (0) 16 0 2 5
5 9 7 0 [0] 7 9
6 (0) 1 2 0 0 0
Théorème de Ford-Fulkerson
Créer un zéro ?
Minimum : 4
A B C D E F
1 9 [4] 0 4 7 15 4
2 8 7 0 4 8 7 4
3 10 [4] (0) 5 11 8 4
4 4 (0) 16 0 2 5
5 9 7 0 (0) 7 9 4
6 (0) 1 2 0 0 0
+4 +4 -8
Étape 2
Troisième matrice
A B C D E F
1 5 0 0 4 3 11
2 4 3 0 4 4 3
3 6 0 (0) 5 7 4
4 4 (0) 20 4 2 5
5 5 3 0 (0) 3 5
6 (0) 1 6 4 0 0
Algorithme de Ford-Fulkerson
S⇥ 1⇥ B⌦ 4
⇥ ⇥⇥ ⇥⇥
⇥⇥ ⇥⇥
⇥⇤ ⇥⇥
⌅
2 C⌦ 3
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 32 / 43
Affectation minimale Algorithme Hongrois
Étape 3
Même couplage
Nouveau transversal : {5, 6, B, C }
A B C D E F
1 5 0 0 4 3 11
2 4 3 0 4 4 3
3 6 0 (0) 5 7 4
4 4 (0) 20 4 2 5
5 5 3 0 (0) 3 5
6 (0) 1 6 4 0 0
Créer un zéro ?
Minimum : 2
A B C D E F
1 5 0 0 4 3 11 2
2 4 3 0 4 4 3 2
3 6 0 (0) 5 7 4 2
4 4 (0) 20 4 [2] 5 2
5 5 3 0 (0) 3 5
6 (0) 1 6 4 0 0
+2 +2 -4
Étape 4
Quatrième matrice
A B C D E F
1 3 0 0 2 1 9
2 2 3 0 2 2 1
3 4 0 (0) 3 5 2
4 2 (0) 20 2 0 3
5 5 5 2 (0) 3 5
6 (0) 3 8 4 0 0
Nouveau flot
Créer un zéro ?
Minimum : 1
A B C D E F
1 3 (0) 0 2 1 9 1
2 2 3 0 2 2 [1] 1
3 4 0 (0) 3 5 2 1
4 2 0 20 2 (0) 3 1
5 5 5 2 (0) 3 5 1
6 (0) 3 8 4 0 0
+1 +1 +1 +1 -1
Étape 5
Cinquième matrice
A B C D E F
1 2 (0) 0 2 1 8
2 1 3 0 2 2 0
3 3 0 (0) 3 5 1
4 1 0 20 2 (0) 2
5 4 5 2 (0) 3 4
6 (0) 4 9 5 1 0
Fin de l’algorithme
Un couplage de taille n = 6 :
A B C D E F
1 2 (0) 0 2 1 8
2 1 3 0 2 2 (0)
3 3 0 (0) 3 5 1
4 1 0 20 2 (0) 2
5 4 5 2 (0) 3 4
6 (0) 4 9 5 1 0
Affectation minimale
A B C D E F
1 35 (19) 16 21 23 40
2 37 25 19 24 27 (35)
3 33 16 (13) 19 24 30
4 19 4 21 6 (7) 19
5 37 24 18 (19) 25 36
6 (15) 5 7 6 5 14
Compléments
1 Algorithme hongrois
convergence : si k < n est la taille d’un transversal T et m le minimum
en dehors de T , alors on diminue le coût d’une affectation de
(n k) ⇥ m
complexité : Munkres (1957) : O(n3 )
2 Problèmes dans un graphe quelconque
Couplage maximum : algorithme des chaînes augmentantes
Le problème du stable maximum est lui NP-dur.
Bernard Roux
Plan
1 Notre exemple
Un problème « difficile »
Complexité
2 Méthodes arborescentes
Quel objectif ?
Un problème d’affectation
Diviser . . .
Branch and bound !
3 Remarques importantes
Gestion du branch and bound
Heuristiques et métaheuristiques
Le voyageur de commerce
Six villes à visiter une et une seule fois dans une tournée
Point de départ = point d’arrivée (donc inutile !)
Minimiser la distance totale
A B C D E F
A 785 732 647 72 389
B 785 343 377 838 397
C 732 343 91 801 398
D 647 377 91 716 334
E 72 838 801 716 447
F 389 397 398 334 447
Problème «difficile» ?
Problèmes P
Problèmes NP
Résumé de la situation
A / B / C
O
✏
F o E o D
A B C D E F
A B C D E F
Affectation contrainte
A / B
O ?C
✏
F E o D
Algorithme hongrois
A B C D E F
A 785 732 647 72 389
B 785 343 377 838 397 63
C 732 343 91 801 398
D 647 377 91 716 334
E 72 838 801 716 447
F 389 397 398 334 447 54
72 343 91 91 72 334 Total : 1120
Étape 0
A B C D E F
A 442 641 556 0 55
B 650 189 223 703 0
C 660 0 0 729 64
D 575 34 0 644 0
E 0 495 710 625 113
F 263 0 253 189 321
Coût : + 1120
A!B ?
A B C D E F
A 442 641 556 0 55
B 650 189 223 703 0
C 660 0 0 729 64
D 575 34 0 644 0
E 0 495 710 625 113
F 263 0 253 189 321
Coût : + 1120
¬AB !
>1120
/ AB>1562
✏
¬AB>1120
A!E ?
A B C D E F
A 442 641 556 0 55
B 650 189 223 703 0
C 660 0 0 729 64
D 575 34 0 644 0
E 0 495 710 625 113
F 263 0 253 189 321
Coût : + 1120
AE !
>1120
/ AE>1120
✏
¬AE>1496
Comment séparer ?
Morale précédente :
1 mieux vaut choisir un zéro
2 à tant faire on choisit le plus grand écart
D’où un calcul simple de pénalité
A B C D E F
A 55 + 321
B 189 + 0
C 0+0 0 + 189
D 0 + 189 0+0
E 113 + 263
F 189 + 0
Le plus intéressant AE ou EA !
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 22 / 46
Choisissons EA !
>1120
/ EA>1120
✏
¬EA>1496
On va explorer la branche EA !
Étape 1
d’où la matrice :
B C D E (A) F
(E )A 442 641 556 55
B 189 223 703 0
C 0 0 729 64
D 34 0 644 0
F 0 253 189 321
Coût : + 1120
Suite de l’algorithme
Nouvelle matrice :
B C D E (A) F
(E )A 387 586 501 0 55
B 189 223 382 0
C 0 0 408 64
D 34 0 323 0
F 0 253 189 0
321 Coût : + 1120 + 55 + 321
Pénalités
B C D E (A) F
(E )A 387 586 501 0 387
B 189 223 382 0 189
C 0 0 408 64 0
D 34 0 323 0 0
F 0 253 189 0 0
0 189 189 323 0 Coût : + 1496
Nouvelle séparation
>1120
/ EA>1496 / EAF >1496
✏ ✏
¬EA>1496 ¬AF >1883
Étape 2
B C D E (AF )
B 189 223 382
C 0 0 408
D 34 0 323
(EA)F 0 253 189
Coût : + 1496
Suite de l’algorithme
Nouvelle matrice :
B C D E (AF )
B 130 164 0 59
C 0 0 85
D 34 0 0
(EA)F 0 253 189
323 Coût : + 1496 + 323 + 59
Nouvelle séparation
>1120
/ EA>1496 / EAF >1878 / EAFB >1878
✏ ✏ ✏
¬EA>1496 ¬AF >1883 ¬FB >2008
Étape 3
D’où la matrice :
C D E (AFB)
(EAF )B 130 164
C 0 85
D 0 0
Coût : + 1878
Conclusion provisoire
>1120
/ EA>1496 / EAF >1878 / EAFBCD =2008
✏ ✏ ✏
¬EA>1496 ¬AF >1883 ¬FB >2008
D’où la matrice :
A B C D E F
A 442 641 556 0 55
B 650 189 223 703 0
C 660 0 0 729 64
D 575 34 0 644 0
E 495 710 625 113 113
F 263 0 253 189 321
263 Coût : + 1120
D’où la matrice :
B C D E (A) F
(E )A 387 586 501 387
B 189 223 382 0
C 0 0 408 64
D 34 0 323 0
F 0 253 189 0
Coût : + 1496
Étape 4
B C D E (A) F
(E )A 0 199 114 114
B 189 223 382 0 189
C 0 0 408 64 0
D 34 0 323 0 0
F 0 253 189 0 0
0 189 114 323 0 Coût : + 1883
Pénalité max. : FE !
La branche correspondante est définitivement rejetée !
Nouvelle séparation
Branches à examiner :
>1120
/ EA>1496 / EAF >1878 / EAFBCD =2008
✏ ✏
¬EA>1496 ¬AF >1883 / FE >1883
Matrice :
B C D F (EA)
(FE )A 0 199 114 114
B 189 223 0 189
C 0 0 64 0
D 34 0 0 0
0 189 114 0 Coût : + 1883
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 36 / 46
Méthodes arborescentes Branch and bound !
Étape 5
Pénalité max. : BF
>1120
/ EA>1496 / EAF >1878 / EAFBCD =2008
✏ ✏
¬EA>1496 ¬AF >1883 / FE >1883 / BF >1883
B(FEA) C D
(BFE )A 199 114 114
C 0 0 0
D 34 0 0
0 189 114 Coût : + 1883
Tournée : (BFEA)DCB
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 37 / 46
Conclusion provisoire
Amélioration de 11
>1120
/ EA>1496 / EAF >1878 / EAFBCD =2008
✏ ✏
¬EA>1496 ¬AF >1883 / FE >1883 / BFEADC =1997
Et par symétrie
✏ ✏
¬AE >1496 ¬FA>1883 / EF >1883 / EFBCDA=1997
Solutions restantes
A B C D E F
A 442 641 556 55 55
B 650 189 223 703 0
C 660 0 0 729 64
D 575 34 0 644 0
E 495 710 625 113 113
F 263 0 253 189 321
263 321 Coût : + 1120
Étape 6
Nouvelle matrice :
A B C D E F
A 387 586 501 0
B 387 189 223 384 0
C 397 0 0 408 64
D 312 34 0 323 0
E 382 597 512 0
F 0 0 253 189 0
Coût : + 1972
Caractéristiques générales
Codage compliqué
Gestion de la mémoire de l’arborescence idem
Méthodes lourdes !
Gestion du temps :
évaluations trop sommaires = bcp de branches
évaluations trop fines = évaluations longues à calculer
Heuristiques
Bernard Roux
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 1 / 42
Plan
1 Notre exemple
Agence d’études
Modélisation
Propriétés de Markov
2 Régimes transitoire et permanent
Calcul du régime transitoire ~v (t)
Régime stationnaire
3 Calculs du régime permanent
Résolution du système
Méthode des coupes
Performances du système
4 Compléments
Durée du régime transitoire
Existence du régime permanent
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 2 / 42
Agence d’études
Questions :
% de sous-traitance ?
taux d’activité ?
délai moyen ?
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 4 / 42
Notre exemple Modélisation
Modélisation (1)
Processus aléatoire
= suite de variables aléatoires indexée par le temps : X (t)
Ici le temps prend ses valeurs dans un ensemble discret : t N
Distribution de X (t) ?
Un vecteur : ~v (t) = (p0 (t), p1 (t), p2 (t), p3 (t))
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 6 / 42
Exemple de scénario
Jour 0 1 2 3 4 5 6 7 8 9 10
Demande : D(t) - 2 3 1 3 0 0 1 0 2 1
Activité : A(t) - - 1 1 1 1 1 1 1 0 1
Sous-traités : S(t) - - 1 0 2 0 0 0 0 0 0
Stock : X (t) 0 2 3 3 3 2 1 1 0 2 2
Questions :
calcul de ~v (t) ?
limite éventuelle quand t ! ?
espérances des différentes variables aléatoires ?
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 7 / 42
Modélisation (2)
0 1 2 3
0.2 0.6 0.15 0.05
6 0.2 0.6 0.15 0.05 7
M =6
4 0 0.2 0.6 0.2 5
7
3 2
0 0 0.2 0.8
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 8 / 42
Notre exemple Modélisation
Modélisation (3)
0 0 0.2 0.8
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 9 / 42
Systèmes markoviens
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 11 / 42
Temps d’arrêt
Définition
Une date aléatoire T est un temps d’arrêt du processus lorsque :
la donnée de {X (i)/0 6 i 6 n} détermine si T = n.
Propriétés de Markov
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 13 / 42
Calcul de ~v (1)
~v (0) = (1, 0, 0, 0)
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 15 / 42
Calcul de ~v (2)
0.51=0.12+0.36+0.03
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 16 / 42
Régimes transitoire et permanent Calcul du régime transitoire ~v (t)
Régime transitoire
Donc :
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 17 / 42
Calcul de M n
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 18 / 42
Convergence
Régime stationnaire
1 Définition :
Une distribution de probabilité µ vérifiant µ = µ.M
est dite un régime stationnaire de C .
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 21 / 42
Résolution
1 L’ensemble des vecteurs µ vérifiant µ = µ.M forme un espace
vectoriel.
Soit I la matrice identité n ⇥ n (n : nombre d’états)
µ.I = µ.M µ.(I M) = 0
2 3
0.8 0.6 0.15 0.05
6 0.2 0.4 0.15 0.05 7
Mais (I M) = 4 6 7 non inversible !
0 0.2 0.4 0.2 5
0 0 0.2 0.2
2 Chaque équation correspond à une colonne de (I M) :
somme d’une ligne = 0
Application
1 Le système :
2 3
0.8 0.6 0.15 1
6 0.2 0.4 0.15 1 7
.L = . 6
4 0
7 = (0, 0, 0, 1)
0.2 0.4 1 5
0 0 0.2 1
2 Résolution
2 25 35 5 55 3
13 13 13 13
1
6 12 48 5 55 7 = (0, 0, 0, 1).L 1
L =6
4
13
4
13
16 20
13 13
40
7=
5 4 16 20 25
13 13 13 13 = 65 , 65 , 65 , 65
4 16 4 5
65 65 13 13
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 24 / 42
Calculs du régime permanent Méthode des coupes
Principe :
partitionner les états en deux 0 1 2 3
équilibre des transferts en
régime stationnaire
Exemple :
Coupe = {0, 1} {2, 3}
Application
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 27 / 42
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 29 / 42
Calculs du régime permanent Performances du système
Sous-traitance
Demandes perdues ?
1 perte si état 2 & 3 demandes
1 perte si état 3 & 2 demandes
2 pertes si état 3 & 3 demandes
Donc nombre moyen de pertes par jour :
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 30 / 42
Délai moyen
Remarque
Ce calcul sera généralisé plus tard par la loi de Little.
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 31 / 42
u(0)
u(1)
u= ! (u) = tM.u ou
u(2)
u(3)
v = (v (0), v (1), v (2), v (3)) ! (v ) = v .M
Rappels
u est la valeur propre associée à u.
{v / (v ) = uv } forme un sous-espace vectoriel
s’il existe une base de vecteurs propres, alors tM est diagonalisable.
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 33 / 42
Compléments Durée du régime transitoire
Application
Commande Matlab : [v,l]=eig(M’)
2 3
0.0000 0 0 0
6 0 1.0000 0 0 7
l '6
4
7
5
0 0 0.7732 0
0 0 0 0.4268
2 3
0.7071 0.1111 0.2198 0.2154
6 0.7071 0.4443 0.6301 0.2442 7
v '4 6 7
0 0.5553 0.1139 0.8576 5
0 0.6942 0.7360 0.3980
Vitesse de convergence
Alors :
(µ) ' b. + 0.7732c.v3 + 0.4268d .v4
n
(µ) ' b. + 0.7732n c.v3 + 0.4268n d .v4
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 35 / 42
Questions
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 37 / 42
Compléments Existence du régime permanent
Forte connexité
Soit G un graphe orienté
La relation x y (il existe un circuit incluant x et y ) est une relation
d’équivalence
Ses classes sont les composantes fortement connexes du graphe
S’il n’y a qu’une composante, le graphe est dit fortement connexe.
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 38 / 42
0 1
3 2
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 39 / 42
0 1 0 1
3 2 2 3
Période
La période d’un état i est le plus grand commun diviseur des longueurs
de circuits passant par i.
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 40 / 42
Compléments Existence du régime permanent
Résultats (admis)
Lemme
Tous les états d’une classe finale ont la même période. Si cette période est
égale à 1, la classe est dite apériodique ou ergodique.
ri = 1/ (i) <+
.
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 41 / 42
Bibliographie
Bibliographie
J.R. Norris
Markov Chains
Cambridge Univ. Press, 1997.
A. Ruegg
Processus stochastiques
PPR, 1989.
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 42 / 42
Chaînes de Markov continues
Bernard Roux
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 1 / 35
Plan
1 Du discret au continu
Propos
Du continu au discret !
Retour au continu
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 2 / 35
Propos
Cadre de ce cours :
nombre fini d’états
homogénéité dans le temps
hypothèses induites par la propriété de Markov ?
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 4 / 35
Du discret au continu Propos
Notre exemple
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 5 / 35
Chaîne continue
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 7 / 35
Exemple de scénario
Questions :
calcul de ~v (t) ?
régime permanent ?
espérances des différentes variables aléatoires ?
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 8 / 35
Du discret au continu Du continu au discret
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 10 / 35
Passage au continu
Remarques :
1 i =j = qi ,j > 0
qi ,i = j =i qi ,j 6 0 (somme ligne = 0)
2
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 12 / 35
Du discret au continu Retour au continu
Exponentielle de matrice
Définition
An
Pour toute matrice carrée A, la série n! converge.
Sa somme est notée exp(A).
Propriétés :
1 exp(A). exp(B) = exp(A + B)
2 Si f (t) = exp(tA), alors f (t) = A. exp(tA) = exp(tA).A
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 13 / 35
Calcul de exp(A)
2 3 2 3
a1 0 · · · 0 e a1 0 ··· 0
6 0 a2 · · · 0 7 6 0 e a2 ··· 0 7
6 7 6 7
A=6 .. .. . . . 7 exp(A) = 6 .. .. .. .. 7
4 . . . .. 5 4 . . . . 5
0 0 · · · an 0 0 ··· e an
1 1 1
A = L.D.L n, An = L.D n .L exp(A) = L.exp(D).L
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 14 / 35
Théorème
En dimension finie, il y a équivalence entre
1 Q est une Q-matrice
2 Pour tout t, A(t) = exp(tQ) est stochastique
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 15 / 35
Étude d’une CdMC Temps de séjour dans un état
Temps de séjour
i
Cela revient à étudier la chaîne continue suivante : i / ¬i
1 p(t) p(t) 0 1 i i
M(t) = , M( ) = ,Q=
0 1 0 1 0 0
it 1 it
it it e e
et donc M(t) = exp =
0 0 0 1
Temps de séjour
Ti suit une loi exponentielle et le taux de sortie est égal à i = 1/E (Ti )
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 17 / 35
1 Définition et moments :
T suit une loi exponentielle E ( ) lorsque Pr(T > t) = e t
E (T ) = (T ) = 1 > 0
2 Stabilité :
Si (T1 , . . . , Tn ) ! E ( 1 , . . . , n ) est un vecteur à composantes
indépendantes,
Alors Y = min(T1 , . . . , Tn ) ! E ( 1 + . . . + n )
De plus Pr(Y = Ti ) = 1 +...i + n
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 18 / 35
Rappels (suite)
Processus de Poisson
Pour un processus X (t) d’arrivée d’évènements, il y a équivalence entre :
1 Les temps inter-arrivées Ti suivent des lois exponentielles E ( )
indépendantes
2 Pour tout instant t, le nombre d’arrivées X (t) survenues à cet instant
suit une loi de Poisson P( t)
3 Si k arrivées ont eu lieu dans l’intervalle [0, t],
les instants d’arrivées Y1 < . . . < Yk forment un k-échantillon ordonné
de la loi uniforme sur [0, t]
Un tel processus est dit un processus de Poisson de taux .
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 19 / 35
Étude d’une CdMC Modélisation
a
Cela revient à étudier la chaîne continue suivante : 0 / 1
Loi du minimum
À chaque transition (i, j) est associée une loi exponentielle Ti,j
Le taux de sortie est égal à i = i,j
2 a b 3 2 3
0 a+b a+b a b a b
Soit M( ) = 4 0 1 0 5 , Q =4 0 0 0 5
0 0 1 0 0 0
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 21 / 35
Modélisation
Retour à l’exemple
1 Unité u = 5h, taux d’arrivée a = 6u 1, taux de service b = 5u 1
2 Chaîne continue :
a a a
0 1 2 3
b b b
2 3
a a 0 0
6 b a b a 0 7
Q =6
4 0
7
b a b a 5
0 0 b b
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 22 / 35
1 Régime transitoire
Il faudrait calculer M(t) = exp(tQ) !
Néanmoins, les zéros de M(t) pour t > 0 ne dépendent que du graphe !
Ici, un seule composante fortement connexe, donc : M(t) > 0 t >0
2 Régime permanent
Dans le cas fini et homogène, il est identique à celui de la chaîne
discrète de matrice M(t) (s’il existe)
Ici, un seule composante fortement connexe
Apériodicité (boucles sur chaque sommet de M(t))
Donc un unique régime permanent indépendant de ~v (0)
sera cherché parmi les régimes stationnaires
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 24 / 35
Étude d’une CdMC Régime permanent
1 Principe :
Partition des états en deux : X = X1 X2
Soient n1!2 (t) et n2!1 (t) les nombres de passage de la frontière à
l’instant t
alors |n1!2 (t) n2!1 (t)| 6 1
les fréquences de passage sont donc égales à la limite
2 Application :
a a a
0 1 2 3
b b b
a
Coupe = {0} {1, 2, 3} : a (0) = b (1) (1) = b (0)
a 2
Coupe = {0, 1} {2, 3} : a (1) = b (2) (2) = b (0)
a 3
Coupe = {0, 1, 2} {3}: a (2) = b (3) (3) = b (0)
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 25 / 35
Performances
1 4 a 6
(0) + (1) + (2) + (3) = 1 1 (0) = 1 avec = b = 5
Lois de service ?
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 28 / 35
Autres modèles & calculs Autres lois
Exemple simple
Modèle :
a a a
0 / 1 / 2 / 3
2c 2c 2c
c c c
✏ ✏ ✏
a a
1 / 2 / 3
1 10h
unité : u = 3 : a = 4u, c = 5u
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 29 / 35
Système standard
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 31 / 35
Résultats
1 Résolution :
1
= (0, 0, 0, 0, 0, 0, 1). (Q )
3125 3500 4320 3456 1250 1900 2488
= 20039 20039 20039 20039 20039 20039 20039
2 Interprétation :
perte : (3) + (3 ) ' 29, 7% de clients perdus (au lieu de 32, 2%)
activité : 1 (0) ' 84, 6% (au lieu de 81, 4%)
délai : Ne ' 01..846
75
' 2, 07h (au lieu de 2, 12h ! )
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 32 / 35
Autres modèles & calculs Calcul de par la matrice des sauts
(i).Ti
(i) =
(j).Tj
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 34 / 35
Bibliographie
Bibliographie
J.R. Norris
Markov Chains
Cambridge Univ. Press, 1997.
A. Ruegg
Processus stochastiques
PPR, 1989.
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 35 / 35
Files d’attente
Bernard Roux
Plan
1 Notre exemple
L’atelier de réparation
2 File M/M/1
Modélisation
Étude du régime permanent
La loi de Little
Résultats
L’atelier de réparation
Impressions et données
Modélisation
Représentation :
/ / / /
0 o 1 o 2 o 3 o ···
µ µ µ µ
File M/M/1
Vocabulaire :
Un serveur : le magasinier
Des clients : les techniciens
Temps d’attente : temps avant l’accès au serveur
File M/M/1
M : loi exponentielle pour les temps d’arrivée
M : idem pour le temps de service
1 = 1 serveur
Caractérisation de la M/M/1 :
infinie d’un coté
Taux constants dans chaque sens
/ / / /
0 o 1 o 2 o 3 o ···
µ µ µ µ
Notation de Kendall
Notation A/B/C/K/N/S
A : loi d’arrivée des clients
B : loi de service
C : nombre de serveurs
K : capacité de la file
N : taille de la population
S : discipline de service
Conventions :
M = loi exponentielle (Markov) D. Kendall (1918-2007)
D = loi constante (Déterministe)
G = loi quelconque (Générale)
K, N omis si infinis
S omis si FIFO
0 / 1 / 2 / 3 / ···
Attention !
La limite d’une suite de distributions de probabilités n’est pas forcément
une distribution de probabilités !
Convergence de la M/M/1
/ / / /
0 o 1 o 2 o 3 o ···
µ µ µ µ
/
··· i o i +1 ···
µ
(i) = µ (i + 1) (i + 1) = (i)
µ
Résolution
On pose = µ
est le nombre moyen d’arrivées pendant la durée moyenne d’un
service
la suite ( (i))i N est une suite géométrique de raison
la série converge vers 1 (0) <1
kd
1
W (d ) = W (i, d )
kd i=1
. . . et liées
Fait
Pour tout d > 0,
d kd
1 d .N(d ) = 0 N(t).dt = i=1 W (i, d ) = kd .W (d )
kd
2 N(d ) = d W (d )
Preuve
Le client i compte pour 1 dans N(t) pendant une durée W (i, d ) !
Chaque client apporte donc la même contribution à l’intégrale et à la
somme !
La loi de Little
Si quand d !
1 N(d ) ! N
2 W (d ) ! W
Alors kdd ! e taux d’entrée dans le
système et on obtient
La loi de Little
N= eW
J.D.C. Little (1928-. . . )
La formule est aussi valable pour l’attente !
Nq = eW q
Résultats (1)
N= i. (i) = i i 1
i=1 i.(1 ) = (1 ) i=1 i.
i 1 i 1 1
Rappel : si f ( ) = i=0 = , alors f ( ) = i=1 i. =
1 (1 )2
Résultats M/M/1
N 1
N= = ;W= =
1 µ µ
Résultats (2)
0,6
Donc N = 1 0,6 = 1, 5 : peu de techniciens dans la file !
N
et W = = 1, 5 ⇥ 5 = 7, 5
Résultats M/M/1
1 1 1 µ+ µ
Wq = W µ = µ µ = µ(µ ) = µ
Nq = W q = N
Résultats (3)
Modélisation
Représentation :
/ / / /
0 o 1 o 2 o 3 o ···
µ 2µ 2µ 2µ
Remarque
Sans état 0, on retrouve une M/M/1 (décalée d’un rang) !
Régime permanent
Résultats M/M/2
1
D’où (0) = 1+
Pour i > 0, (i) = 2 i (0)
Résultats
N 4µ
W= =
4µ 2 2
2⇥0,3 60
Donc N = 1,3⇥0,7 = 91 ' 0, 66
Et N q = N ' 0, 06
Gain : 84% de temps d’un technicien et d’une machine !
Population limitée
1 Modélisation
un taux individuel de demande = 1/60
taux d’arrivée = somme des taux individuels
2 Représentation
n (n 1) 2
/ / / /
0 o 1 o ··· o n 1 o n
µ µ µ µ
Standard téléphonique
n (n 1) 2
/ / / /
0 o 1 o ··· o n 1 o n
µ µ µ µ
/ / / /
0 o 1 o ··· o n 1 o n
µ 2µ (n 1)µ nµ
M/M/n/n
1 On pose = µ
2 Convergence assurée par la perte de clients !
Taux de perte des clients
p = (n)
3 Régime permanent
Pour i > 0, (i) = i (i 1)
i
Donc pour tout i, (i) = i! (0)
Formule d’Erlang
i
i!
(i) = 2 n
1+ + 2! +...+ n!
Résultats
1 e Agner K. Erlang
Wq = 0 ; W = ;N = = (1 (n))
µ µ (1878-1929)
Libre service
File M/M/
i
(i) = e
i!
Résolution
1 Données
1 seul magasinier, n = 13, cas M/M/1/n/n
n (n 1) 2
/ / / /
0 o 1 o ··· o n 1 o n
µ µ µ µ
1
Si unité = heure : = 1h et µ = 20h 1
/ / / /
0 o 1 o ··· o n 1 o n
µ 2µ (n 1)µ nµ
i
µ
Donc on pose = = 20 et (n i) = 2
i!
n
1+ + 2! +...+ n!
Application numérique
1 Comparaison
(0) (1) (2) (3) (4) (5) (6)
Cas réel 0,410 0,267 0,160 0,088 0,044 0,020 0,008
M/M/1 0,400 0,240 0,144 0,086 0,052 0,031 0,019
2 Résultats
n N = (1 (0)) = N = 13 20 ⇥ 0, 590 = 1, 20
Rappel résultat M/M/1 : 1, 5 !
Perte quasi-nulle
Donc N q = N (1 (0)) = 1, 20 0, 59 = 0, 61
La nécessité d’un deuxième magasinier est moins évidente !
Bibliographie
Bibliographie
J.R. Norris
Markov Chains
Cambridge Univ. Press, 1997.
F. Baccelli & P. Brémaud
Elements of Queueing Theory
Springer-Verlag, 1994.
A. Ruegg
Processus stochastiques
PPR, 1989.
Exercices
103
Chapitre 1
Algorithme du simplexe
Exercice 1 : Pollutions
Une unité chimique doit respecter des normes maximales de rejet de polluants. Pour une période donnée,
ces normes sont données par le tableau suivant :
Polluant X Y Z W
Norme (g) 45 70 40 70
L’unité chimique peut choisir librement entre 4 productions dont les rejets sont exprimées ci-dessous en
mg/kg :
105
106 CHAPITRE 1. ALGORITHME DU SIMPLEXE
Exercice 5 : Cycles
On considère le programme linéaire suivant :
8
>
> 0 6 xi
>
>
>
>
>
> 0.5x1 5.5x2 2.5x3 + 9x4 6 0
>
<
0.5x1 1.5x2 0.5x3 + x4 6 0
>
>
>
>
>
> x1 6 1
>
>
>
:z = x + 3x
1 2 (max)
Dans cet exemple dû à Chvátal [3] (et inspiré par Marshall & Suurballe), appliquez les règles usuelles de
pivotage jusqu’à la sixième étape. Que constatez-vous ? Résolvez le problème.
Chapitre 2
Dualité
Une société doit répartir trois productions sur trois usines (A, B & C). Une même production peut être divisée
entre les différentes usines et le temps de traitement est alors proportionnel à la fraction de la production affectée
dans une usine. On désire bien sûr minimiser la durée nécessaire pour réaliser les trois productions.
Les temps de traitement de l’intégralité de chacune des productions dans chacune des usines sont donnés
dans le tableau ci-dessous :
A B C
P1 60 55 50
P2 70 50 40
P3 100 80 80
Ainsi si P1 est répartie à égalité entre A et C, et si C doit traiter l’intégralité de P2, alors :
1. Modélisez le problème. Ce problème peut-il se mettre sous forme d’un programme linéaire P en introdui-
sant de nouvelles variables ?
2. Donnez le dual P 0 du problème précédent et donnez les deux premières étapes au moins.
3. Montrez sur le problème initial qu’il est possible de terminer en 60 jours. Donnez la solution correspondante
de P .
On considère le système suivant (déjà étudié page 105). Résolvez-le par passage au dual.
8
>
> 0 6 xi
>
>
>
>
<2x x2 + x3 > 3
1
>
> x1 + 2x2 x3 > 2
>
>
>
>
:w = 3x + 2x + x (min)
1 2 3
107
108 CHAPITRE 2. DUALITÉ
Exercice 8 : Vérification
Un étudiant devait résoudre le programme linéaire suivant :
8
>
> 0 6 xi
>
>
>
>
>
> 3.5x2 + 0.5x4 6 1.5x1 + 0.5x3
>
>
>
>
>
>x1 6 1.4x2 + 0.2x3 + 4.8
>
<
4.9x2 + 0.7x3 6 3.5x1 + 0.5x4 + 8.2
>
>
>
>
>0.5 (x1 + x4 ) 6 0.1x2 + 0.3x3 + 0.2
>
>
>
>
>
>
> 0.2x3 6 0.6x2 + 2.2
>
>
>
:z = 1.5x + 7.5x
4 1 1.9x3 7.3x2 (max)
x1 x2 x3 x4 x5 x6 x7 x8 x9 z
0 1 0 0 1 2 0 1 3 0 16
0 0 0 1 0 1 0 2 2 0 0
0 0 0 0 0 3 1 1 1 0 25
1 2 0 0 0 1 0 0 1 0 7
0 3 1 0 0 0 0 0 5 0 11
0 2 0 0 0 6 0 3 1 1 31.6
Prouvez que ce tableau ne peut être le tableau optimal.
En fait, une erreur de signe s’est glissée dans la dernière ligne du tableau. Retrouvez-la. Qu’en déduisez-vous
pour la résolution du programme linéaire ?
1. Modélisez ce problème sous forme d’un programme linéaire P à variables booléennes (yi ).
2. Résolvez le problème P en variables réelles par passage au dual P 0 .
3. Comme la solution du problème n’est pas booléenne, on décide de rajouter des contraintes supplémentaires
jusqu’à obtention d’une solution optimale parmi les solutions à valeurs booléennes. La méthode consiste à choisir
une des variables yj ayant la plus forte influence sur le coût d’implantation et de résoudre deux nouveaux
problèmes en ajoutant au problème initial :
– soit la contrainte yj 6 0
– soit la contrainte yj > 1.
Le choix se porte donc ici en premier sur y3 .
L’ajout de la contrainte y3 6 0 se traduit par des modifications de P 0 , des tableaux initial et final de
l’algorithme. Quelles sont ces modifications ? Donnez la solution opitmale du problème modifié.
Répondez aux mêmes questions pour la contrainte y3 > 1 et déduisez-en le choix optimal de localisation.
Chapitre 3
109
110 CHAPITRE 3. PLUS COURT CHEMIN
A B C D E F
A 1.060 0.910 1.112 1.205 0.892
B 0.943 0.860 1.050 1.130 0.840
C 1.098 1.162 1.219 1.321 0.978
D 0.899 0.952 0.820 1.080 0.800
E 0.829 0.884 0.757 0.925 0.740
F 1.121 1.190 1.022 1.250 1.351
Le logiciel recherche des « séquences de conversion » de taux maximal entre deux devises.
Par exemple, une demande de conversion de A en C peut être soit :
1. directe : taux AC = 0.91 ;
2. indirecte par B : taux ABC = 1.06 ⇥ 0.86 ' 0.9116.
La deuxième séquence représente ici une plus-value de 0.18% par rapport à la première. Le logiciel recherche
aussi en permanence des « circuits positifs », autrement dit des séquences de taux supérieur à 1 dont les deux
extrémités coïncident. Pour contrer la spéculation, une taxe inspirée des travaux de Tobin d’un montant de
1% est désormais prélevée sur chaque transaction. Elle entraine donc une baisse des taux de conversion pour
privilégier l’investissement sur la spéculation. Par exemple :
1. directe : taux AC = 0.91 ⇥ 0.99 ' 0.9009 ;
2. indirecte par B : taux ABC = 1.06 ⇥ 0.86 ⇥ 0.992 ' 0.8935.
1. Déterminez la meilleure séquence de conversion de A à F avec la taxe.
2. Répondez à la question précédente sans la taxe.
Flot maximum
/ B
? AO
(12,12)
D (2,30) / E
En donnant toutes les étapes de l’algorithme de Ford-Fulkerson, déterminez le flot maximal et la coupe
minimale.
Exercice 15 : Conteneurs
Une entreprise doit acheminer par bateaux l’ensemble de sa production de trois usines A, B et C (500
conteneurs chacune) vers quatre unités de transformation R, S, T et U pouvant traiter 400 conteneurs chacune.
Les capacités (en nombre de conteneurs) des liaisons maritimes disponibles sont indiquées ci-dessous :
R S T U
A 300 250 - 200
B 140 200 150 -
C - - 270 260
Jour 1 2 3 4 5 6 7 8 9 10
X A F G
Y D B I
Z C libre H E
Les dossiers constituent des tâches morcelables (dont le traitement peut être interrompu, puis repris) dont
les caractéristiques sont indiquées ci-dessous :
111
112 CHAPITRE 4. FLOT MAXIMUM
Dossier A B C D E F G H I
Durée 4 4 4 3 2 3 3 2 3
Disponible le 1 3 1 1 8 4 7 7 7
Échéance 4 7 5 4 10 8 10 9 10
1. Modélisez ce planning comme un flôt sur un graphe dont les dossiers et les journées seront des sommets.
Précisez les autres sommets, les arcs et les capacités.
2. Un nouveau dossier J de durée deux jours et ne pouvant être disponible que le jour 9 vient d’arriver. À
l’aide de l’algorithme approprié, insérez-la au mieux dans le planning. Identifiez la coupe minimale.
A100 66 / D 42 / G 77 / I 60 / L120
K =
22 34 11 50 60
! ✏
B200 55 / E 40 / H 30 / J 80 / M150
? =
55
155 44 40 90 33
! (
C100 75 / F 33 /' K 47 / N100
Les débits possibles ou les demandes de débit sont mentionnées en indice auprès des 3 sources et des 3 lieux
de consommation.
1. Déterminez un flot maximal et une coupe minimale.
2. À l’occasion d’autres travaux, on se propose d’augmenter le débit maximal admissible d’une des cinq
canalisations liées à H. Laquelle choisir ? Quelle augmentation du flot maximal peut-on en espérer et quelle est
la taille minimale de la canalisation pour l’obtenir ?
A 0/1/9 / D 1/1/9 / F
O A ?
2/2/15 2/1/4 3/0/5 0/6/12
& 6 / S
B f 4/0/2 P 5/7/18
O
5/0/8
3/0/2 3/2/6 4/8/8 3/3/9
✏ ◆
/ E o '
C g 1/0/8 5/10/8 G
3/0/8
Le flot actuel d’une valeur de 6 entre S et P n’est pas compatible car les contraintes de capacités ne sont
pas respectées sur les arcs {(A, P ), (C, E), (D, S), (E, B), (G, C), (G, E), (S, G)}.
1. En considérant P comme une source et A comme un puits, modifiez le flot de manière à respecter les
contraintes le long de l’arc (A, P ).
2. En réitérant le procédé, répondez à la question suivante : « Ce réseau admet-il un flot compatible ? »
3. Si oui, déterminez un flot compatible de valeur maximale.
Chapitre 5
Affectations
Exercice 19 : De 5 à 6
Six techniciens ont l’usage privé de leur voiture de service. Chacun d’eux doit pouvoir effectuer si besoin
deux interventions dans la journée, payées au forfait. Le temps de transport entre deux interventions dans la
même journée est rémunéré en fonction du kilométrage. Mais ayant l’usage de leur voiture de service, le temps
de trajet entre le domicile et une intervention n’est pas pris en charge.
Pour la journée du lundi, cinq demandes d’intervention ont été enregistrées pour le matin et six pour l’après-
midi.
Le tableau des distances entre ces interventions est donné ci-dessous :
F G H I J K
A 25 25 25 20 10 45
B 45 20 30 40 45 80
C 60 35 40 30 35 60
D 65 45 40 25 30 30
E 50 15 30 35 45 70
1. Déterminez une répartition entre les techniciens minimisant le temps global de transport payé.
2. L’entreprise pense revenir sur la mise à disposition des véhicules. Dans ce cas, il faudrait payer aussi le
temps de transport entre le dépôt des véhicules et les lieux d’intervention (toujours en fonction du kilométrage).
Déterminez alors une répartition minimisant le temps global de transport payé.
Les distances entre le dépôt et les lieux d’intervention sont données ci-dessous :
A B C D E F G H I J K
Distance 40 25 35 40 50 40 25 20 25 30 55
113
114 CHAPITRE 5. AFFECTATIONS
1. On désire d’abord calculer une affectation minimisant le score global (qui est clairement un score d’insa-
tisfaction 1 ! ).
Quel algorithme utiliser ? Mettez-le en oeuvre pour déterminer une affectation optimale.
Cette affectation est-elle unique ? Comment les déterminer toutes ? Cette procédure semble t’elle praticable
pour un grand nombre d’étudiants (et donc de places d’options) ?
2. L’inconvénient d’une affectation optimale au sens précédent est que l’optimum peut être atteint en sa-
crifiant quelques personnes affectées dans des scores élevés. Pour éviter ce phénomène, on désire préalablement
déterminer la valeur minimale k pour laquelle on peut garantir que chaque étudiant soit affecté dans une option
à laquelle il n’a pas attribué plus de k points. Expliquez pourquoi il est ici évident que k > 3.
Déterminez k.
Déterminez une affectation optimale en restreignant les choix possibles à ceux de k points ou moins. Est-elle
optimale au sens général ?
3. Pour éviter la méthode de la question précédente, on cherche à calculez une solution optimale mais qui
de plus soit le plus homogène possible dans les scores des étudiants. Comment procéder ? 2
1. Le bon fonctionnement de ce type d’algorithme suppose la sincérité des choix exprimés. L’expérience montre qu’il est fort
tentant pour un étudiant d’utiliser sa connaissance des voeux des autres et du fonctionnement de l’algorithme pour modifier
l’expression de ses voeux personnels (donc de mentir) dans l’espoir de « guider l’algorithme » dans la direction souhaitée. La
conséquence inéluctable est que la fonctionnelle optimisée n’est plus la satisfaction globale et que donc cette dernière se dégrade !
La morale est générale : sauf exception, l’intérêt de chacun et l’intérêt de tous sont des notions contradictoires !
2. On ne demande pas de déterminer cette affectation
Chapitre 6
Méthodes arborescentes
A B C D E F
A 16 10 12 20 21
B 15 19 19 28
C 24 22 16 20 26
D 15 15 4 17 23
E 12 13 12 11 22
F 18 17 12 13 16
1. Résolvez le problème de voyageur de commerce correspondant par une méthode branch and bound
2. On autorise une tournée à passer éventuellement plus d’une fois par le même point (au moins une fois
mais pas exactement une fois en chaque point). Comment adapter les données pour se ramener au problème
classique ?
Exercice 24 : Flow-shop
Un atelier chimique comporte cinq postes notés M1 à M4 .
115
116 CHAPITRE 6. MÉTHODES ARBORESCENTES
Des pièces rentrent dans cet atelier et passent successivement sur tous les postes de M1 à M4 .
Les temps de traitement sont les suivants :
M1 M2 M3 M4
A 3 5 8 2
B 5 4 4 1
C 2 9 3 7
D 1 7 7 7
E 6 3 2 9
Les contraintes liées au convoyage et au traitement sont les suivantes :
1. une pièce rentrée dans l’atelier doit subir sa séquence sans interruption
2. une pièce ne peut pas dépasser une autre.
1. Si B rentre avant C, calculez le délai minimum d(B, C) entre leurs deux dates d’entrée dans l’atelier.
Calculez d(C, B).
2. Si la séquence est ABCDE, exprimez avec l’aide de la fonction d et d’un autre paramètre la durée
d’occupation de l’atelier.
3. On désire trouver un ordonnancement des tâches (et donc un ordre d’entrée) tel que la durée totale
de traitement soit minimale (durée d’occupation de l’atelier). Ramenez ce problème à un problème de chemin
hamiltonien de longueur minimale.
4. Résolvez le problème précédent.
Chapitre 7
Exercice 25 : Distributeurs
Un technicien installe et répare des distributeurs sur les 3 sites d’une entreprise. Le contrat de maintenance
prévoit que les demandes d’intervention sont gérées de la manière suivante :
– la maintenance a lieu le soir après le service
– un seul site est concerné chaque soir.
La probabilité de panne d’un distributeur est supposé égale à 1/5. On admettra que le jour de la panne, un
distributeur a fonctionné en moyenne 50% du temps.
1. On suppose ici qu’il n’y a qu’un seul distributeur par site. Calculez alors le taux d’activité du technicien,
le nombre moyen de distributeurs en panne au début et à la fin d’une journée. Déduisez-en un taux moyen de
couverture des besoins par les distributeurs et le délai moyen de réparation d’un distributeur.
Exercice 26 : Grille
Un pion de déplace aléatoirement sur une grille 4 ⇥ 4 de manière équiprobable jusqu’à sa sortie de la grille.
o • /
Si le pion est posé initialement sur une des cases du centre, on désire calculer le nombre moyen de coups du
trajet et la probabilité de sortir par une case d’angle. Vous répondrez à cette question en calculant le régime
permanent d’une chaîne de Markov appropriée.
Exercice 27 : Markovien ?
On considère la chaîne de Markov donnée par la matrice ci-dessous :
2 3
0.6 0 0.4 0
6 7
6 0.2 0.4 0.4 0 7
M =6
6 0.1
7
4 0.2 0.3 0.4 7
5
0.2 0.1 0 0.7
1. Est-il possible de fusionner les états 1 & 2 ? Si oui, donnez la matrice obtenue. Répondez à la même
question pour les états 3 & 4 ?
117
118 CHAPITRE 7. CHAÎNES DE MARKOV DISCRÈTES
2. Est-il possible de fusionner simultanément les états 1 & 2 d’une part, et les états 3 & 4 d’autre part ?
Si f est une coloration de l’ensemble X des états d’une chaîne de Markov discrète sur un ensemble C, quelle
propriété doit être satisfaite pour que l’on puisse fusionner les états par couleur ?
1. La demande est-elle équilibrée ? Dans le cas où un matin, les véhicules sont répartis à égalité entre A et
B, quelles sont les probabilités des différentes répartitions à la fin de la jounrée ? Répondez à la même question
dans le cas d’une répartition 4-0 ou 3-1 ?
2. Supposons ici que la société renonce au transfert de véhicules. Modélisez le système par une chaîne de
Markov discrète. Déterminez le régime permanent. Déduisez-en :
– le nombre moyen de véhicules présents en A et en B un soir donné
– le pourcentage de clients perdus par manque de véhicules dans chacun des deux sens
– le pourcentage global de clients perdus.
3. Répondez aux mêmes questions si on décide de transférer deux véhicules lorsqu’un soir, tous les véhicules
sont dans un même centre. Si une location rapporte un bénéfice de 60€, quel doit être le coût d’un tel transfert
pour être rentable ? Répondez à la même question, si on assimile la perte d’un client à un coût de 10€.
4. Le coût d’un transfert est de 150€, indépendamment du nombre de véhicules transportés. Existe-t’il une
politique de transfert rentable ?
Exercice 29 : Périodes
2 3
0.4 0.3 0.2 0.1 0 0 0
6 7
6 1 0 0 0 0 0 0 7
6 7
6 0 0 1 0 0 0 0 7
6 7
6 7
M =6 0 0 0 0 0.5 0 0.5 7
6 7
6 0 0 0 0.2 0 0.8 0 7
6 7
6 7
4 0 0 0 0 0 0 1 5
0 0 0 0.4 0 0.6 0
La chaîne de Markov de matrice M admet-elle un régime permanent indépendant de l’état initial ?
Si non, que pouvez-vous affirmer sur le vecteur régime transitoire ~v (n) pour n grand ? Quel sens donner à
« n grand » si on considère une erreur de 0.01 négligeable pour une probabilité ?
Chapitre 8
Exercice 30 : Course
1. Deux pions se déplacent dans le sens horaire sur un circuit de 8 cases aux tops d’une horloge.
La probabilité qu’un pion tente d’accéder à la case suivante est notée p. Cette tentative est couronnée de
succès si la case est libre et échoue sinon. Plus précisément, lorsque les deux pions occupent deux cases contigues,
seul le pion placé devant peut se déplacer.
p
• /
•
p
✏
Modélisez le système sous forme d’une chaîne de Markov discrète. Dans le cas où p = 1/2, déduisez-en le
nombre moyen de coups nécessaire pour faire un tour.
2. On considère la même situation, mais le pion accède à la case libre suivante au bout d’une durée aléatoire
de loi exponentielle d’espérance 1/ .
• /
Modélisez le système sous forme d’une chaîne de Markov continue. Dans le cas où = 1, déduisez-en le
nombre moyen de coups nécessaire pour faire un tour.
3. Donnez la chaîne des sauts de la chaîne précédente.
119
120 CHAPITRE 8. CHAÎNES DE MARKOV CONTINUES
2. Quels seraient les gains d’une politique consistant à traiter en priorité les clients de même type que celui
en train d’être servi.
3. On suppose ici que 2 = 3 A =6 B. Modélisez le système. Comment pourrait-on calculer le pourcentage
de clients perdus de chaque type et le temps moyen d’attente d’un client de chaque type ?
A= 1000 / A1000
:
$ !
• B : 2000 =•
! $
A1000 / A1000
Files d’attente
Exercice 33 : Taxis
Une station de taxis est implantée à la sortie d’un centre commercial.
Les taxis y arrivent suivant un processus de Poisson de taux = 12h 1
. Ils ne repartent que lorsqu’ils ont
chargé un client.
Les clients désireux de prendre un taxi arrivent à la station suivant un processus de Poisson de taux =
20h 1
. Mais ils renoncent à attendre s’ils observent trop de clients en attente, et dans ce cas marchent jusqu’à
une station de bus voisine. Pour simplifier, on suppose le comportement des clients uniforme et qu’un client
observant trois clients déjà en attente renonce.
1. Modélisez le système. Cette file d’attente est-elle d’un type connu ? Qui attend qui et quel est le serveur
de ce système ?
2. Déterminez le nombre moyen de taxis en attente de clients, et le temps moyen de cette attente.
3. Déterminez le nombre moyen de clients en attente de taxis, et le temps moyen de cette attente.
Exercice 34 : Bibliothèque
Une bibliothèque, en cours de rénovation, désire offrir une nouvelle salle de consultation informatique équipée
de n postes.
L’expérience montre qu’en moyenne 15 étudiants par heure utilisent une telle salle et que la durée moyenne
d’utilisation d’un poste est de 30’. Pour simplifier l’étude, on suppose toutes les durées de lois exponentielles.
On suppose qu’un étudiant trouvant la salle saturée est définitivement perdu. L’étude doit déterminer la valeur
de n, afin que le pourcentage d’étudiants perdus soit strictement inférieur à 10%.
1. On suppose n infini. Déterminez k tel que la probabilité qu’au moins k postes soient occupés soit inférieure
à 10%.
2. Peut-on prendre n = k ?
Exercice 35 : Guichets
Une banque reçoit en moyenne 12 clients par heure. La durée moyenne d’une transaction est de 4 minutes. Les
clients attendent devant un panneau électronique qui leur indique si un guichet se libère et quel est ce guichet.
Un préposé et une cadre intermédiaire sont en charge de l’accueil des clients aux guichets. Pour simplifier l’étude,
on suppose toutes les durées de lois exponentielles.
1. Le préposé seul s’occupe des clients. Un client renonce définitivement à entrer s’il trouve à son arrivée
au moins 3 clients en attente d’un préposé. Quels sont le pourcentage de clients perdus, le nombre moyen de
clients présents dans la banque et le temps moyen d’attente d’un client avant d’accéder à un guichet ?
2. La cadre décide d’aider le préposé en ouvrant un deuxième guichet lorsqu’une cinquième personne se
présente (et accepte d’attendre). Elle ferme son guichet lorsqu’ayant terminé de servir un client, elle observe au
plus deux clients dans la banque. Répondez aux mêmes questions que précédemment.
121
122 CHAPITRE 9. FILES D’ATTENTE
(a) si une seule station émet, le message est transmis correctement. Dans ce seul cas, le satellite envoie
un accusé de réception et la station ayant émis efface le message transmis de sa liste d’envoi et passe
en mode 1.
123
124 CHAPITRE 10. ÉTUDES DE CAS ET ANNALES
(b) si plusieurs stations émettent, le satellite informe que le message n’a pas été transmis et les stations
ayant émis passent en mode 2.
1. Traitez le cas de 3 stations. Comparez le débit global du système dans les cas p1 = 0.1, p2 = 0.3 et
p1 = 0.3, p2 = 0.1.
2. Par simulation machine ou par calcul, donnez des valeurs « optimales » de (p1 , p2 ) à 0.01 près dans les
cas de 3 et 5 stations (supposées avec des files infinies de messages à transmettre).
– Seuls les calculatrices, tables de probabilité, documents et notes personnelles de cours sont au-
torisés. Téléphones portables et tous moyens de communication sont interdits.
– Une attention toute particulière sera portée sur la rédaction des copies.
1.1 Somme
Calculez à l’aide d’un algorithme que vous préciserez un chemin de longueur minimale de A à F.
1.2 Produit
Répondez à la même question si la longueur d’un chemin est définie comme le produit des longueurs
des arcs composant le chemin.
2 Convoyeur
NB : Les questions 2.2, 2.3 et 2.4 sont indépendantes.
1
(2 pièces déjà présentes) aux instants top + 10”, top + 30”, top + 50”. Si la zone d’attente est
pleine, une éventuelle pièce défectueuse ne peut entrer sur le poste, elle est évacuée par le convoyeur
et le défaut ne sera pas corrigé.
Dans cette question, on suppose que la machine peut commencer le traitement d’une pièce défec-
tueuse seulement aux tops d’horloge (et celui-ci se finit peu avant le top suivant).
À titre d’exemple, voici un cas d’arrivée de 4 pièces défectueuses à la suite :
– au top : poste vide
– top + 10 : arrivée pièce n°1 : elle est stockée dans la zone d’attente, la machine est inactive
– top + 30 : arrivée pièce n°2 : elle est stockée dans la zone d’attente (qui est désormais pleine)
– top + 50 : arrivée pièce n°3 : elle est refusée par le poste car la zone d’attente est saturée
– top suivant (+60) : la machine démarre (1 pièce) et 1 pièce reste dans la zone d’attente
– top + 70 : arrivée pièce n°4 : 2 pièces dans la zone d’attente + 1 pièce en traitement.
A/ Modélisez le fonctionnement du poste de correction par une chaîne de Markov en observant ce
poste peu après chaque top d’horloge et en prenant comme état le nombre de pièces présentes dans
le poste de correction. Déterminez à 10 3 près la matrice de transition M 0 associée. Expliquez en
comparant M et M 0 pourquoi le régime permanent est proche de celui trouvé à la question 2.1.
B/ Déterminez les performances du système (dans l’ordre qui vous conviendra) :
– taux d’activité de la machine
– pourcentages de défauts corrigés rapportés au nombre total de pièces et aux seules pièces défec-
tueuses
– pourcentage de défauts non corrigés
– nombre moyen de pièces dans le poste
– nombre moyen de pièces dans la zone d’attente
2
Génie Électrique
5GE - février 2010
– Seuls les calculatrices, tables de probabilité, documents et notes personnelles de cours sont au-
torisés. Téléphones portables et tous moyens de communication sont interdits.
– Une attention toute particulière sera portée sur la rédaction des copies.
1 Paires
1.1 Résolution
On considère une chaîne de Markov continue dont la matrice associée est la suivante :
2 3
2 2 0 0 0 0
6 0 8 2 6 0 0 7
6 7
6 0 0 6 0 6 0 7
M =6 6 3
7 (1)
6 0 0 5 2 0 77
4 0 3 0 0 6 3 5
0 0 0 6 0 6
1. Tracez le graphe. Justifiez l’existence d’un régime permanent indépendant de l’état initial.
2. Déterminez ce régime permanent (on notera les états de 0 à 5).
3. Si les états 2, 4 et 5 sont des états de perte de clients, déduisez-en le pourcentage de clients
perdus.
1
2 Mélange
2.1 Programme linéaire
Résolvez le programme linéaire suivant :
8
>
>
> 0 6 xi
>
>
< x0 + 2x1 + x2 6 5
>
x0 + x1 + 4x2 x3 6 2 (2)
>
>
>
>
> x0 + x2 x3 6 1
>
: x + 0, 5x + 0, 9x
0 1 2 0, 2x3 = z (Max)
2.2 Pivotages
On considère le tableau suivant dans l’algorithme du simplexe.
0 0 1 1 1 1 0 0 0 = 1
1 0 2 1 0 0 1 0 0 = 0.5
1 0 1 4 1 0 0 1 0 = 0.9 (3)
0 0 0 1 1 0 0 0 1 = 0.2
1000 1 5 2 1 0 0 0 0 = 0 (max)
La solution correspondante à ce tableau est non réalisable car il existe des seconds membres négatifs.
Montrez qu’en pivotant sur un terme 1 de la première colonne, la nouvelle solution est réalisable.
Effectuez ce pivotage, puis le pivotage suivant de l’algorithme du simplexe (en appliquant la règle
de Bland).
Expliquez le lien avec le problème P .
2.3 Modélisation
Une entreprise d’aliments pour bétail doit mettre au point un nouveau produit a partir de 3 com-
posés de base (notés A, B et C) et d’un excipient E. On note a, b, c et e les proportions respectives
de chacun de ces ingrédients du mélange.
Les valeurs nutritionnelles de ces composés sont caractérisés selon trois facteurs notés UNT, PB
et S. Elles sont donnés dans le tableau ci-dessous avec les coûts de ces composés pour 1 tonne de
produit :
Composé UNT PB S Coût
A 2 1 0 500€
B 1 4 1 200€
C 0 1 1 100€
E 0 0 0 0
On désire que le mélange soit tel que les teneurs en UNT et en PB soient respectivement supérieures
ou égales à 0,5 et 0,9 et que la teneur en S soit inférieure ou égale à 0,2 (tout cela par tonne de
produit). On souhaite bien sûr que le coût final du mélange soit minimal.
Modélisez ce problème à l’aide des inconnues a, b, c et e par un programme linéaire dont vous
expliquerez pourquoi il est équivalent à P .
Déduisez de la question 2.1 une solution optimale de ce problème.
2
Génie Électrique
5GE - novembre 2010
– Seuls les calculatrices, tables de probabilité, documents et notes personnelles de cours sont au-
torisés. Téléphones portables et tous moyens de communication sont interdits.
– Une attention toute particulière sera portée sur la rédaction des copies.
1 Réseau de relais
On considère une source émettrice S qui envoie des messages vers un récepteur final R via un réseau
de relais intermédiaires notés A à J.
Seuls peuvent communiquer des relais suffisamment proches et non séparés par des obstacles. Par
contre, la communication peut s’établir dans les deux sens. Le graphe de communication est donné
par la liste suivante qui indique pour chaque capteur, les capteurs qui lui sont connectés avec la
distance entre parenthèses :
– S : A (3) B (3) C (4) E (5)
– A : B (2) C (2) D (5) S (3)
– B : A (2) F (4) S (3)
– C : A (2) E (1) G (4) S (4)
– D : A (5) F (2) G (2) I (3) R (4)
– E : C (1) H (3) S (5)
– F : B (4) D (2) I (2)
– G : C (4) D (2) H (1) J (1) R (4)
– H : E (3) G (1) J (2)
– I : D (3) F (2) R (3)
– J : G(1) H (2) R (2)
1.1 Distances
Calculez à l’aide d’un algorithme que vous préciserez un chemin de longueur minimale de S à R.
1.2 Probabilités
La probabilité p qu’un message soit bien reçu ne dépend que de la distance d entre les deux relais
concernés. Cette fonction est donnée par :
p(1) = 0, 99 ; p(2) = 0, 95 ; p(3) = 0, 90 ; p(4) = 0, 80 ; p(5) = 0, 6.
Ainsi, la probabilité associée au chemin S-A-B-F-I-R est égale à 0, 8 ⇥ 0, 92 ⇥ 0, 952 0, 585.
Déterminez le chemin qui maximise la probabilité de réception à l’aide d’un algorithme approprié
dont vous détaillerez avec soin les calculs.
2 Stratégie d’entretien
2.1 Étude d’une chaîne de Markov discrète
2 3
0, 76 0, 12 0, 12 0
6 0 0, 5 0, 5 0 7
On considère une chaîne de Markov donnée par la matrice M = 6
4 0
7.
0 0 1 5
0, 88 0, 06 0, 06 0
Déterminez le régime permanent par la méthode des coupes. Justifiez l’existence de ce régime
permanent.
1
2.2 Politique passive : attendre la panne
Une machine outil est inspectée tous les vendredis soir par un agent de maintenance. Après cette
inspection, elle est qualifiée dans un des états d’usure suivants :
1. Etat quasi-neuf (au plus une semaine de fonctionnement)
2. Usure faible
3. Usure importante
4. À remplacer immédiatement (non réparable et panne imminente)
Un relevé statistique permet de déterminer les probabilités d’évolution d’une machine d’une se-
maine sur l’autre :
État 2 3 4
1 88% 6% 6%
2 76% 12% 12%
3 - 50% 50%
Expliquez avec soin la modélisation du système. Déduisez-en si C est le coût d’une machine, le
coût moyen par semaine de renouvellement de la machine.
2
Génie Électrique
5GE - février 2011
– Seuls les calculatrices, tables de probabilité, documents et notes personnelles de cours sont au-
torisés. Téléphones portables et tous moyens de communication sont interdits.
– Une attention toute particulière sera portée sur la rédaction des copies.
1 Trajet optimal
1.1 Programme primal
On considère le programme linéaire suivant où les variables d’écart sont notées ej :
8
>
> 0 6 xi 0 6 ej
>
>
>
> x1 x2 + e1 = 2 x2 x3 + e2 = 3
>
>
<x x4 + e3 = 2 x2 + e4 = 8
3
>
> x 1 x4 + e5 = 3 x2 x4 + e6 = 5
>
>
>
> x3 + e7 = 7 x4 + e8 = 4
>
>
:
x1 = z (Max)
Donnez le tableau initial et effectuez les deux premiers pivotages de l’algorithme du simplexe.
On pourra n’indiquer que les valeurs non nulles des tableaux.
1.4 Modélisation
On désire modéliser le problème précédent de plus court chemin par un programme linéaire. On
note pour cela xi la longueur minimale pour aller de Si à S5 .
Expliquez la correspondance entre les équation du programme primal et les éléments du graphe G.
Justifiez la modélisation du problème de plus court chemin par le programme primal.
Explicitez la signification de la solution optimale du dual et celles des différentes contraintes.
1
2 Stations de vélos
Dans tout ce problème, l’unité de temps est la minute. Les taux d’arrivée et de service sont donc
donnés avec l’unité inverse.
/ / / /
0 o 1 o ··· o n 1 o n
µ µ µ µ
&$
/
0 o 1 o ··· o n 1 o n
µ µ µ µ
2
Génie Électrique
5GE - novembre 2012
– Seuls les calculatrices, tables de probabilité, documents et notes personnelles de cours sont au-
torisés. Téléphones portables et tous moyens de communication sont interdits.
– Une attention toute particulière sera portée sur la rédaction des copies.
1 : Sécurité n 1
4/8 5/5
B /F /J
Ce circuit est alimenté par deux centrales A et B et dessert deux lieux d’importantes consomma-
tions X et Y . Le graphe ci-dessus illustre une répartition d’un courant où sur chaque tronçon du
réseau est indiquée au numérateur la puissance délivrée et au dénominateur la puissance maximale
admissible. L’objet de ce problème est d’examiner la puissance garantie en cas de dégradation
du réseau. Les parties sont cependant en grande partie indépendantes et peuvent (sauf indication
contraire) être traitées séparement.
Partie I : Puissance maximale
1. Le flot f0 donné ci-dessus est-il maximal ? Répondez à cette question en utilisant l’algorithme
de Ford-Fulkerson. Déduisez-en un flot maximal fmax , une coupe de capacité minimale du réseau
et la puissance maximale Pn acheminable sur ce réseau.
Partie II : Définition de la sécurité n 1
1. Le réseau est soumis à une contrainte de sécurité d’approvisionnement dite sécurité n 1. Cette
contrainte consiste à définir la puissance maximale acheminable si un arc quelconque du réseau est
défaillant. Cette puissance maximale est notée Pn 1. Expliquez brièvement comment la réponse à
la question précédente montre que Pn 1 6 15.
2. Expliquez de même pourquoi cette seule donnée ne permet pas d’affirmer que Pn 1 = 15.
3. On décide donc de calculer exactement l’impact de la suppression d’un arc sur la puissance ache-
minable. On choisit de restreindre ce calcul aux seuls arcs {AC, BD, DE, EH, LX, M Y }. Expliquez
ce choix.
1
Partie III : Effet de la suppression d’un arc : exemple de l’arc EH
1. Pour étudiez l’effet de la suppression de l’arc EH, on cherche à transformer le flot fmax en un
flot f de même valeur mais tel que f (EH) soit minimal. Déterminez alors la quantité maximale
de flot pouvant être déviée en utilisant l’algorithme de Ford-Fulkerson . Vous détaillerez les étapes
de l’algorithme.
Indication : Pour trouver les voies alternatives à EH pour acheminer du flot de E à H, on décide
donc de considérer E comme une source et H comme un puits.
2. Qu’en déduisez-vous sur Pn 1 ?
2 : Programmation linéaire
Une autre manière de mener le calcul précédent serait de résoudre le problème de flot par la
programmation linéaire (en prenant comme variables les flots circulant sur les arcs) et de rajouter
une contrainte du type x = 0. Cette partie étudie le rajout d’une telle contrainte sur un problème
plus simple et indépendant du problème précédent.
1. On considère le tableau suivant obtenu par l’algorithme du simplexe :
a b c d e f z
0 0 0 1 1 1 0 =3
1 1 0 0 1 1 0 =2
0 2 1 0 4 1 0 =5
0 2 0 0 1 0 1 = 10
2
Génie Électrique
5GE - Janvier 2013
– Seuls les calculatrices, tables de probabilité, documents et notes personnelles de cours sont au-
torisés. Téléphones portables et tous moyens de communication sont interdits.
– Une attention toute particulière sera portée sur la rédaction des copies.
1 : Transport à la demande
a a a a
89:;
?>=<
0 d - 89:;
?>=<
1 - 89:;
?>=<
2 - 89:;
?>=<
3 - 89:;
?>=<
4
d d
b b b
1
Déterminez le régime permanent dans le cas où a = 2b = 4h . En interprétant cette chaîne de
Markov continue comme une file d’attente, donnez le pourcentage de clients perdus, le nombre
moyen de clients présents et le temps moyen de présence d’un client.
2. La modalité de transport en commun étudiée consisterait à utiliser un véhicule communal pour
transporter deux clients. Le fonctionnement se déroulerait ainsi :
– les clients potentiels appellent un standard, leur demande est soit enregistrée soit refusée
– la demande est refusée s’il y a déjà deux clients en attente du retour du véhicule
– le transport est déclenché dès qu’il y a deux clients enregistrés : le véhicule part alors pour
prendre et acheminer les deux clients
– pendant ce temps, le standard continue d’enregistrer les demandes (dans la limite de deux
demandes)
– une fois revenu, le véhicule repart s’il y a deux clients et attend sinon
– les demandes refusées sont orientées sur un service de taxi avec une prise en charge du prix par
la collectivité locale.
1
On suppose que les demandes arrivent selon un processus de Poisson avec un taux = 4h . La
durée du trajet suit une loi exponentielle d’espérance 0, 5h.
Modélisez le système, déterminez le régime permanent et déterminez pour 100 heures de fonc-
tionnement du service (en régime permanent) le nombre moyen de demandes perdues, le temps
moyen d’utilisation du véhicule communal, le temps moyen s’écoulant entre l’enregistrement d’une
demande et le départ du véhicule.
3. Une autre modalité de fonctionnement consiste à déclencher le transport dès la première de-
mande enregistrée. Le transport peut alors se faire soit avec un seul client, soit avec deux. Les
durées moyennes correspondantes du transport seraient alors respectivement égales à 1/3h et 1/2h.
Modélisez le système, représentez la chaîne de Markov, la matrice associée et calculez le régime
permanent. Comparez les performances du système avec celles de la question précédente.
1
2 : Transport à la demande (autre cas)
Cet exercice aborde le même contexte que l’exercice précédent, mais dans le cas où les durées d’un
transport sont constants et égaux soit à 20’ (1 client) soit à 30’ (2 clients).
1. On considère la chaîne de Markov discrète donnée par la matrice suivante :
2 3
0, 25 0, 35 0, 40
6 7
M = 4 0, 25 0, 35 0, 40 5
0, 15 0, 25 0, 60
3 : Dualité
En respectant la numérotation des variables induite par l’énoncé, donnez le dual D de ce programme
linéaire.
2. Résolvez le dual D par l’algorithme du simplexe.
3. Donnez la correspondance entre variables des deux problèmes et déduisez-en la solution optimale
de P.
2
Bibliographie
137
138 BIBLIOGRAPHIE
Table des matières
I Cours 5
1. Programmation linéaire 7
2. Dualité 20
4. Flot maximal 39
5. Affectations optimales 49
6. Tournées optimales 61
9. Files d’attente 94
II Exercices 103
2 Dualité 107
5 Affectations 113
Bibliographie 137
139