Vous êtes sur la page 1sur 139

1

Département de Génie Électrique


5GE

Recherche Opérationnelle

Problèmes, Modèles & Applications

Édition 2013 Bernard.Roux@insa-lyon.fr


2
Introduction

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

INSA Lyon - Département de Génie Électrique


Institut Camille Jordan

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 1 / 46

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 2 / 46

Notre exemple

L’atelier de production

Atelier de production chimique


Deux productions possibles : A et B
Toute la production peut être écoulée

Quatre ressources limitées : R (3), S (4), T (9) et U (12)


R S T U
Une matrice de consommation : A 1 1 2 1
B 1 0 1 3

Un profit global à optimiser : A : 3k€/unité ; B : 2k€/unité

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 3 / 46


Notre exemple

Modélisation

Choix = Deux variables positives :


quantité de A produite : x1 > 0
quantité de B produite : x2 > 0

Objectif = Une fonction économique


z = 3x1 + 2x2 (Max)
Contraintes = des inégalités
8
>x1 x2 6 3
>
> (R)
>
<x 6 4
1 (S)
>2x1 + x2 6 9
> (T )
>
>
:x + 3x 6 12 (U)
1 2

Programme linéaire = fonctions linéaires


Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 4 / 46

Dictionnaires De l’écriture d’un système . . .

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

Donc : contraintes = 4 égalités pour 6 variables positives


8
>
>
> 0 6 xi
>
>
>
> x1 x2 + x3 = 3
>
>
<x + x = 4
1 4
>2x1 + x2 + x5 = 9
>
>
>
>
> x1 + 3x2 + x6 = 12
>
>
>
:3x + 2x = z
1 2 (max)
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 6 / 46

Dictionnaires . . . à celle d’une solution

Variables de base

On peut écrire le système sous forme de matrice :

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)

Cette matrice contient les colonnes d’une matrice identité : les


variables correspondantes forment une base.
Base = {x3 , x4 , x5 , x6 }
Rque : z assimilable à une variable de base

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 8 / 46


Dictionnaires . . . à celle d’une solution

Du dictionnaire . . .

Si les variables hors-base sont fixées, le système a une unique


solution

Exemple : (x1 , x2 ) = (0, 2)


x3 x4 x5 x6 z x1 = 0 x2 = 2
1 =3 1 1 =5
1 =4 1 0 =4
1 =9 2 1 =7
1 = 12 1 3 =6
1 =0 3 2 =4

Si les variables sont positives, la solution est dite réalisable.

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 9 / 46

Dictionnaires . . . à celle d’une solution

. . . à une solution

Cas particulier : on choisit les variables hors-base nulles

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

La solution est donnée par le second membre et la base ordonnée

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 10 / 46

Dictionnaires . . . à celle d’une solution

Forme matricielle (1)

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 11 / 46


Dictionnaires . . . à celle d’une solution

Forme matricielle (2)

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 12 / 46

Dictionnaires . . . à celle d’une solution

Exercice

Formes canoniques et standard (simples) ?


8
8 >
>
>0 6 a, b
>
>0 6 xi >
>
>
>
>
>
>
>26d 65
<x1 + x2 = 4
> >
<a 6 b + d
x2 > x3 + 3
>
>
>
>
>
>a + 3b 6 5
>
>x1 6 x3 + 1 >
>
>
: >
>
>b c 6a d
z = x1 + 3x2 (max) >
:w = a + b + c + d (min)
c est dite une variable libre

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 13 / 46

Algorithme du simplexe Pivot de Gauss

Questions

Dictionnaire = une écriture équivalente au système de départ


Comment changer d’écriture (= changer de base) ?

Comment garder une base réalisable ?


Quel effet sur z ?

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 15 / 46


Algorithme du simplexe Pivot de Gauss

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)

Nouvelle base = {x2 , x4 , x5 , x6 } ?

x1 x2 x3 x4 x5 x6 z Tableau final
? 1 ? =?
? ? 1 =?
? ? 1 =?
? ? 1 =?
? ? 1 =?

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 16 / 46

Algorithme du simplexe Pivot de Gauss

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

Algorithme du simplexe Pivot de Gauss

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

Le pivot p ne peut être nul !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 19 / 46

Algorithme du simplexe Algorithme du simplexe

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 21 / 46

Algorithme du simplexe Algorithme du simplexe

Rester réalisable ?

Base réalisable second membre b > 0

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 22 / 46


Algorithme du simplexe Algorithme du simplexe

Exemple

Si nouvelle base = {x2 , x4 , x5 , x6 } ?


x1 x2 x3 x4 x5 x6 z Tableau initial
1 1 1 =3 p<0
1 0 1 =4 p=0
bp
2 1 1 =9 p =9
bp
1 (3) 1 = 12 p =4
3 2 1 =0

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 23 / 46

Algorithme du simplexe Algorithme du simplexe

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

En cas de possibilités multiples ?


Règle classique : c minimal
ou Règle de l’indice minimum (Bland)

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 24 / 46

Algorithme du simplexe Retour sur l’exemple

É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

Variable rentrante = x1 / variable sortante = x3


x1 x2 x3 x4 x5 x6 z Tableau 1
1 1 1 =3 E1 (0)
1 1 1 = 1 E2 (0) E1 (0)
3 2 1 = 3 E3 (0) 2E1 (0)
4 1 1 = 9 E4 (0) E1 (0)
5 3 1 = 9 Ez (0) + 3E1 (0)

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 26 / 46


Algorithme du simplexe Retour sur l’exemple

É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

Algorithme du simplexe Retour sur l’exemple

É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)

0 dans ligne/colonne du pivot = colonne/ligne inchangée !


Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 28 / 46

Algorithme du simplexe Retour sur l’exemple

É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

c > 0= solution optimale !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 29 / 46


Algorithme du simplexe Convergence de l’algorithme

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

Ce système est valide pour toute solution x du système


donc : x 1.4x5 + 0.2x6 + z = 15
donc : x5 = x6 = 0 z = 15 = zmax

Unicité ?
La solution est unique lorsque les coef. des variables hors-bases sont
strictement positifs.

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 31 / 46

Algorithme du simplexe Convergence de l’algorithme

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 32 / 46

Algorithme du simplexe Convergence de l’algorithme

Convergence ?

L’algorithme peut-il cycler ?


sauf dégénérescence, z augmente
peut-on avoir un cycle de solutions dégénérées ?

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 !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 33 / 46


Problèmes Pas de pivot possible

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 !

Posons les autres variables


8 hors-base comme nulles :
>
> x1 = 3 + x2
>
>
<x = 1
4
>x5 = 2 + 3x2
>
>
>
:z = 7 + x
2

Le problème est non borné


Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 35 / 46

Problèmes Pas de solution réalisable

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

L’ensemble des solutions peut être vide

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 37 / 46

Problèmes Pas de solution réalisable

Simplexe à 2 phases

Si on ajoute une variable, le système a forcément des solutions !


y x1 x2 x3 x4 x5 x6 z
0 4 5 1 = 10
0 3 2 1 =3
1 1 1 1 = 8 <0
1 2 0 1 = 5 <0
0 2 1 1 =0

x1 = x2 = 0 et y = 8 par exemple !
non équivalent au système de départ
mais équivalent si y = 0

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 38 / 46


Problèmes Pas de solution réalisable

Phase 1 : initial

Objectif : rendre réalisable, puis minimiser y (= maximiser y)


y x1 x2 x3 x4 x5 x6 z z = y
0 4 5 1 = 10
0 3 2 1 =3
1 1 1 1 = 8 <0
1 2 0 1 = 5 <0
0 2 1 1 =0
1 0 0 1 =0

Rendre réalisable : y rentre dans la base et x5 sort !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 39 / 46

Problèmes Pas de solution réalisable

Phase 1 : premier pivotage

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

Problèmes Pas de solution réalisable

Phase 1 : autres pivotages

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 solution est réalisable


Mais y est dans la base
On optimise z . . .

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 41 / 46


Problèmes Pas de solution réalisable

Calculs Matlab (1)


Matrice initiale
2 3
0 4 5 1 0 0 0 0 0 10
6 0 3 2 0 1 0 0 0 0 3 7
6 7
6 1 1 1 0 0 1 0 0 0 8 7
m=6
6
7
7
6 1 2 0 0 0 0 1 0 0 5 7
4 0 2 1 0 0 0 0 1 0 0 5
1 0 0 0 0 0 0 0 1 0
On passe au réalisable
2 3
0 4 5 1 0 0 0 0 0 10
6 0 3 2 0 1 0 0 0 0 3 7
6 7
6 1 1 1 0 0 1 0 0 0 8 7
m2 = 66 0
7
7
6 1 1 0 0 1 1 0 0 3 7
4 0 2 1 0 0 0 0 1 0 0 5
0 1 1 0 0 1 0 0 1 8
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 42 / 46

Problèmes Pas de solution réalisable

Calculs Matlab (2)


Algorithme classique : optimisation z
2 3
0 0 7/3 1 4/3 0 0 0 0 14
6 0 1 2/3 0 1/3 0 0 0 0 1 7
6 7
6 1 0 5/3 0 1/3 1 0 0 0 7 7
m3 = 6
6 0 0
7
7
6 1/3 0 1/3 1 1 0 0 4 7
4 0 0 7/3 0 2/3 0 0 1 0 2 5
0 0 5/3 0 1/3 1 0 0 1 7
Fin de la phase 1 : y sort de la base
2 21 3
7/5 0 0 1 9/5 7/5 0 0 0 5
6 19 7
6 2/5 1 0 0 1/5 2/5 0 0 0 5 7
6 21 7
3/5 0 1 0 1/5 3/5 0 0 0
m4 = 6
6
5
13
7
7
6 1/5 0 0 0 2/5 4/5 1 0 0 5 7
4 59 5
7/5 0 0 0 1/5 7/5 0 1 0 5
1 0 0 0 0 0 0 0 1 0
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 43 / 46

Problèmes Pas de solution réalisable

À 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 !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 44 / 46


Problèmes Pas de solution réalisable

Calculs Matlab (3)

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 45 / 46

Bibliographie

Bibliographie

George Dantzig memorial site :


http://www2.informs.org/History/dantzig/index.htm

C. Chvátal
Linear Programming
Freeman, 1983.

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Programmation linéaire 46 / 46


Dualité

Bernard Roux

INSA Lyon - Département de Génie Électrique


Institut Camille Jordan

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 1 / 32

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 2 / 32

Notre exemple

Retour à l’atelier de production

Atelier de production chimique


Deux productions possibles : A et B
Toute la production peut être écoulée
Quatre ressources limitées : R (3), S (4), T (9) et U (12)

On peut acheter ou vendre des ressources

À quels prix ?

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 3 / 32


Notre exemple

Modélisation

Anciennes variables (positives) :


quantités de A et de B produites : x1 > 0, x2 > 0
stocks de R, S, T et U : x3 , x4 , x5 , x6 > 0

Prix = Quatre variables positives :


prix pour une unité supplémentaire
notation : y3 , y4 , y5 , y6 > 0 (de R à U)

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 4 / 32

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

y1 + y2 + 2y3 + y4 > 3 (A)


y1 + y3 + 3y4 > 2 (B)

Prix au plus juste = minimiser la vente du stock entier


w = 3y1 + 4y2 + 9y3 + 12y4 (Min)
Coût marginaux = prix d’indifférence avec la production
optimale
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 5 / 32

Dualité Du primal au dual

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 ! !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 7 / 32


Dualité Du primal au dual

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 8 / 32

Dualité Correspondance des variables

Avec toutes les variables


Primal avec variables
8 d’écart
>0 6 xi
>
>
>
>
> x1 x2 + x3 = 3 (y3 )
>
>
>
<x + x = 4
1 4 (y4 )
>2x1 + x2 + x5 = 9
> (y5 )
>
>
>
> x1 + 3x2 + x6 = 12 (y6 )
>
>
>
:3x + 2x = z
1 2 (max)
Correspondance variables : xi ! yi

Dual avec variables


8 d’écart
>0 6 yj
>
>
>
<y + y + 2y + y y = 3 (x1 )
3 4 5 6 1
>
> y 3 + y 5 + 3y 6 y 2 = 2 (x2 )
>
>
:3y + 4y + 9y + 12y = w (min)
3 4 5 6
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 10 / 32

Dualité Un lemme fondamental

En un seul tableau

On peut écrire les deux systèmes 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

Tableau des coefficients de xi .yj :


(y5 ) : 2x1 + 1x2 + x5 = 9 2x1 y5 + 1x2 y5 + x5 y5 = 9y5

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 12 / 32


Dualité Un lemme fondamental

Calcul de w z

Donc w = 3y3 + 4y4 + 9y5 + 12y6 correspond aux 4 dernières lignes . . .

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 13 / 32

Dualité Un lemme fondamental

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

. . . et z = 3x1 + 2x2 aux deux premières colonnes !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 14 / 32

Dualité Un lemme fondamental

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 15 / 32


Dualité Théorèmes de dualité

Applications aux solutions réalisables

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.

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 17 / 32

Dualité Théorèmes de dualité

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 ?

Il ne pourrait exister une solution (xi ) réalisable de valeur z > z car


alors z > w !

Cas idéal
Si deux solutions duales réalisables réalisent w = z, alors :

1 elles sont optimales


2 et de plus i xi yi = 0 ! !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 18 / 32

Dualité Théorèmes de dualité

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 !)

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 19 / 32


Dualité Théorèmes de dualité

Après pivotage (1)

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 !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 20 / 32

Dualité Théorèmes de dualité

Après pivotage (2)

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

Le pivotage du primal correspond à un pivotage du dual !


x 3 0 0 1 3 9
Et = et donc w z = 0
y 0 5 3 0 0 0

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 21 / 32

Dualité Théorèmes de dualité

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 22 / 32


Dualité Théorèmes de dualité

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 23 / 32

Analyse de sensibilité Coût marginaux

Notion de coût marginal

Tableau final du primal :


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

Nous obtenons donc les coûts marginaux de chaque ressource


R : y3 = 0 ; S : y4 = 0 ; T : y5 = 1.4 ; U : y6 = 0.2
Que signifie ces coûts ?
y3 = 0 : la contrainte R ne joue pas (distance = stock restant = 3)
donc toute modification entre 3 et + ne joue pas sur zmax

y5 = 1.4 : influence sur zmax d’une variation unitaire sur T


Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 25 / 32

Analyse de sensibilité Post-optimisation

Validité du coût marginal

Domaine de validité
Le coût marginal reste valide tant que la base reste optimale !

Inventaire du stock : + sur T

Changement sur le primal (étape 0) :


système modifié : variables x
2x1 + x2 + x5 = 9 ! 2x1 + x2 + x5 = 9 +
x5 remplace x5

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 27 / 32


Analyse de sensibilité Post-optimisation

Validité (2)

Changement (tableau final) :

. . . 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

La solution reste optimale tant qu’elle reste réalisable !


Ici tant que 1 0.6 > 0 < 5/3 et que 3 + 0.6 > 0 > 5

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 28 / 32

Analyse de sensibilité Post-optimisation

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 29 / 32

Analyse de sensibilité Post-optimisation

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

Il faut revenir au réalisable !


idem que simplexe à deux phases
ici, on pivote sur 0.6 dans la ligne 4

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 30 / 32


Analyse de sensibilité Post-optimisation

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 (INSA Lyon, ICJ) Recherche Opérationnelle Dualité 31 / 32


Le problème
du plus court chemin

Bernard Roux

INSA Lyon - Département de Génie Électrique


Institut Camille Jordan

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

Service de livraison et installation


Un seul matériel par installateur
Optimiser le temps et/ou le coût de transport

Point de départ : l’usine A


A B ··· N
A 0 12 · · ·
Un réseau de transport : B 0
.. .. ..
. . .
N 0

Un algorithme pour calculer le chemin le plus court en fonction d’une


destination Z ?

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 3 / 39
Notre exemple

Modélisation

Modélisation du réseau de transport :


des points : un ensemble X de sommets
des liaisons : un ensemble d’arcs U X ⇥ X
des longueurs : l(u) pour tout u U
Contextes d’utilisation
réseaux géographiques
ordonnancement de chantiers
états d’un système
...
Des modèles amènent à considérer des longueurs négatives !

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

Ce que l’ordinateur ne visualise pas :

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

Ce que l’ordinateur peut stocker :


une matrice (déconseillée)
une liste (listes de successeurs, arcs, . . . )
d’autres formats (tas, . . . )

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 6 / 39
Le principe de Bellman De l’existence d’une solution

Existence d’une solution ?

Existe t’il un chemin de A à B ?


pas toujours : pb des états accessibles en automatique
un graphe G est fortement connexe lorsque :
pour tout couple (x, y ) de sommets, il existe un chemin de x à y

Existe t’il un chemin de longueur minimale ?


si le graphe est infini, la réponse peut être non !
1

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 De l’existence d’une solution

Cas des graphes finis

Si le graphe est sans circuits négatifs :


un chemin est élémentaire s’il ne passe pas deux fois par le même
sommet
on peut se restreindre aux chemins élémentaires
les chemins élémentaires sont en nombre fini !

Alors l’existence d’un chemin implique celle d’un chemin de longeur


minimale

D’où deux algorithmes :


1 longueurs > 0 : algorithme de Dijkstra

2 sinon algorithme de Ford-Bellman :

existence d’un circuit négatif


ou détermination d’un chemin optimal
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 9 / 39

Le principe de Bellman Principe de Bellman

Le principe de Bellman

Une politique optimale est


composée de sous-politiques
optimales

Principe de décomposition

applicable aux plus courts chemins !

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 L’algorithme

Cas des longueurs positives

Algorithme de Dijkstra

Si les longueurs sont positives ou nulles, alors :


1 la marque m(A) = 0 est définitive !
2 si X marque Y , alors m(X ) 6 m(Y )

Donc : E.W. Dijkstra


(1930-2002)
la plus petite des marques provisoires est prix Turing en 1972
qu’il accueille par un
définitive ! discours resté célèbre
«The humble
programmer»

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 14 / 39

Algorithme de Dijkstra L’algorithme

É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

1 Liste des successeurs de A : s(A) = {(B, 12), (D, 6), (E , 2)}


2 Marquage provisoire :

P = {(E , 2, A), (D, 6, A), (B, 12, A)}


3 Marquage définitif :
D = D + {(E , 2, A)}

A0 6 / D

12 2

B E2

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 16 / 39

Algorithme de Dijkstra L’algorithme

Étape 2

1 Liste des successeurs de E : s(E ) = {(B, 5), (H, 4), (K , 14)}


2 Marquage provisoire : P = {(D, 6, A), (H, 6, E ), (B, 7, E ), (K , 16, E ))}
La marque de B décroît : mE (B) = m(E ) + 5 = 7 < 12 = mA (B)
3 Marquage définitif : D = D + {(D, 6, A)}

A0 6 / D6

B o 5 E2 4 / H

14
'
K

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 17 / 39

Algorithme de Dijkstra L’algorithme

Étape 3

1 Liste des successeurs de D : s(D) = {(G , 4), (H, 3)}


2 Marquage provisoire :
P = {(H, 6, E ), (B, 7, E ), (G , 10, D), (K , 16, E ))}
3 Marquage définitif : D = D + {(H, 6, E )}

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

Arrêt = liste provisoire vide


Arborescence des plus courts chemins de racine A

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

Algorithme de Dijkstra Compléments

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

Que dire de l’arborescence des plus courts chemins à partir de E ?

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 21 / 39

Algorithme de Dijkstra Compléments

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

S’il y a des longeurs négatives ?


Si certaines longueurs sont négatives, alors :
1 des circuits négatifs peuvent exister
2 les marques peuvent baisser le long d’un chemin
3 aucune marque n’est a priori définitive !

Mais si le problème a une solution :


soit (X ) longueur minimale de A à X
alors vérifie : u = (X , Y ) , (Y ) 6 (X ) + l(u)
(x)
A / X
l(u)
(y )

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Plus court chemin 24 / 39

Algorithme de Ford-Bellman L’algorithme

Algorithme de Ford-Bellman

S’il n’y a pas de circuits négatifs


1 Marque à l’étape n : mn (X )
2 On doit avoir (X ) 6 m0 (X )
3 On pose (A) = m0 (A) = 0

À chaque étape, u = (X , Y )

mn+1 (Y ) = min(mn (Y ), mn (X ) + l(u))

Donc si C chemin de n arcs de A à X

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

Algorithme de Ford-Bellman L’algorithme

Le réseau

Ce que l’ordinateur ne visualise pas :

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

Algorithme de Ford-Bellman L’algorithme

Étape 1

1 Liste des successeurs de A : s(A) = {(B, 12), (D, 6), (E , 2)}

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

Algorithme de Ford-Bellman L’algorithme

Étape 2

1 Liste des successeurs de B : s(B) = {(C , 3), (F , 15)}


2 Liste des successeurs de D : s(D) = {(G , 4), (H, 3)}
3 Liste des successeurs de E : s(E ) = {(B, 5), (H, 4), (K , 14)}

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

Algorithme de Ford-Bellman L’algorithme

É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

Algorithme de Ford-Bellman L’algorithme

Étape 5

s(L) = {(M, 5)} ; 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 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 ?

Que se passerait-il dans ce cas ?

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

Algorithme de Ford-Bellman Convergence ?

Nombre maximal d’étapes ?

Soit un graphe de n sommets

Un chemin élémentaire comporte au plus (n 1) arcs, donc :


soit x mn 1 (x) = (x)
soit y mn (y ) < mn 1 (y )
Le cas le pire :
ln

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

Algorithme de Ford-Bellman Comparaison des algorithmes

Vitesse de convergence

Si G est un graphe de n sommets et m arcs (m 6 n2 ).


Dijkstra
exactement n étapes
chaque arc est examiné une seule fois
complexité O(n2 ), voire O(m + n log(n))

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

INSA Lyon - Département de Génie Électrique


Institut Camille Jordan

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 1 / 40

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é

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 2 / 40

Notre exemple La situation étudiée

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

Comment satisfaire au mieux la demande ?


Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 4 / 40
Notre exemple Modélisation

Modélisation du problème

Assimilable à un réseau d’eau


une source S et un puits P
des capacités c(u) sur les arcs (= débit max.)
au plus un arc entre deux sommets
tout est instantané
⇣✏⌦↵ 8 ⌃ ⇠⌫
⌘✓◆ 28 ⌃ ⇣✏ ⌦↵
A D⌃ F ⇧
!! ⌃⌃⌃ ⇧⇧
22 ! ! ⌃⌃ ⇧⇧30
!! 12 ⌃⌃ 4 ⇧⇧
! 17 5 ⌃⇥ ⇧⇧
!! 5 20 ⇥
16 ⌃ ⇣✏
⇣✏
⌦↵
S⇧ ⌃ ⇣✏⌦↵
B ⌃ ⇠⌫
⌘✓◆
G ⌦↵
P
⇧⇧ ⌫ ⌫⌫ !
⇧⇧ ⌫⌫ !
23⌫⌫⌫ !!
⇧ 3 ⌫ 8 !!
36 ⇧⇧⇧
⌫ ⌫⌫⌫⌫ 9 !! 15
⇥ ⌫⌫ !
⇣✏⌦↵
C ⌃ ⇣✏
⌦↵
E ⌃⇠⌘✓◆
⌫H
12 13

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 6 / 40

Notre exemple Modélisation

Modélisation d’une solution

Solution = flot : arc u = (x, y ) ! f (u)


une loi de conservation aux sommets intermédiaires x
f ((a, x)) = f ((x, b))
a b

Le flot est compatible lorsque : u, 0 6 f (u) 6 c(u)


8/8 8/28
⇣✏⌦↵
A ⌃ ⇠⌫
⌘✓◆ D ⌃ ⇣✏⌦↵
F ⇧
⇡⇡ ⌦ ⇧⇧
! ⇡
20/22 !!! ⇡ ⇡⇡ ⇧⇧8/30
!! 12/12 ⇡⇡⇡ 0/4 ⇧⇧
! ⇡ 0/17 0/5 ⇧⇧
!! 4/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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 7 / 40

Notre exemple Modélisation

Valeur du flot

Étendre la loi de conservation à tous les sommets ?


introduction d’un arc de retour ur = (p, s)
valeur du flot : v (f ) = f (ur )
8/8 8/28
⇣✏⌦↵
A ⌃ ⇠⌫
⌘✓◆D ⌃ ⇣✏ ⌦↵
F ⇧
⇡⇡ ⌦ ⇧⇧
!! ⇡
20/22 !! ⇡ ⇡⇡ ⇧⇧8/30
!! 12/12 ⇡⇡⇡ 0/4 ⇧⇧
! ⇡⇡ 0/17 0/5 ⇧⇧
!! 4/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 ⇡ ⇢

⇣ ⌘ 36 ◆

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 8 / 40


Première tentative Linéarité des flots

Additionner des flots ?

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

La propriété est évidente

Attention
Mais elle est fausse pour les flots compatibles !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 10 / 40

Première tentative Linéarité des flots

Ajouter un flot au flot existant f0 ?

Enlevons les arcs saturés (i.e. f (u) = c(u)) !


8/28
⇣✏⌦↵
A ⇠⌫
⌘✓◆D ⌃ ⇣✏⌦↵
F ⇧
⇡⇡ ⌦ ⇧⇧
! ⇡
20/22 !!! ⇡ ⇡⇡ ⇧⇧8/30
!! ⇡ ⇡⇡ 0/4 ⇧⇧
! ⇡ 0/17 0/5 ⇧⇧
!! 4/5 ⇡ ⇡⇡⇡ 16/20 ⇧ ⇥
⇣✏
⌦↵
S⇧ ⇣✏⌦↵
B ⇠⌫
⌘✓◆ ⇣✏⌦↵
⇡⇡⌦ G P
⌃ ⌃
⇣ ⇧⇧   !
⇧⇧ 0/23  ⇡ ⇡⇡ !!
⇧⇧ 0/3  ⇡⇡⇡ 0/8 !!!
12/36 ⇧⇧   ⇡⇡⇡ 0/9 ! 12/15
⇥ 
 ⇡⇡⇡ !!
⇣✏⌦↵
C ⇣✏
⌦↵
E ⌃ ⇠
⌘✓◆⌫
H
12/13

36

Augmenter le flot
f > 0 tel que f + f0 soit un flot C chemin non saturé de S à P

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 11 / 40

Première tentative Flots complets

Chemin augmentant ?

Recherche d’un chemin augmentant ?


un algorithme d’exploration (Dijkstra)
des marques : m(x) quantité de flot acheminable en x

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 13 / 40


Première tentative Flots complets

Exemple

graphe d’écart (capacités résiduelles)


⇣✏⌦↵ ⇠⌫
⌘✓◆ 20 ⌃ ⇣✏ ⌦↵
A ⇡⌦ D F ⇧
!! ⇡⇡⇡ ⇧⇧
2 !! ⇡⇡⇡ ⇧⇧22
!! ⇡⇡ 4 ⇧⇧
!! ⇡⇡⇡ 17 5 ⇧⇧
! 1 ⇡⇡ 4 ⇧ ⇥
⇣✏
⌦↵
S⇧ ⌃ ⇣✏⌦↵
B ⌃ ⇠⌫
⌘✓◆ G ⇣✏⌦↵
P
 ⌦
⇣ ⇧⇧
 ⇡⇡⇡⇡ !!
⇧⇧ 23 ⇡⇡ !!
⇧ 3  ⇡⇡ 8 !!
24 ⇧⇧⇧  ⇡⇡⇡⇡ 9 !! 3
⇥   ⇡ !
⇣✏⌦↵  ⇣✏
⌦↵ ⇡ ⌃⇠⌘✓◆ ⌫H
C E 1

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 14 / 40

Première tentative Flots complets

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

Première tentative Flots complets

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 !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 16 / 40


Première tentative Flots complets

Flot complet

Un flot est complet si tous les chemins de S à P sont saturés


Un flot complet est-il maximal ?

La réponse est NON !


⇣✏
⌦↵
A
!! ⇧⇧⇧
1/1 !! ⇧⇧0/1
!! ⇧⇧
! ⇧⇧
!! ⇥
⇣✏
⌦↵
S⇧ 1/1 ⇣✏⌦↵
P
✏ ⇧⇧ !!
⇧⇧ !
⇧⇧ !!
0/1 ⇧⇧ !!! 1/1
⇥ !
⇣✏
⌦↵
B
1/2

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 17 / 40

Algorithme de Ford-Fulkerson Idée de base

Améliorer un flot complet ?

Quelle différence entre le flot maximal et le flot précédent ?

⇣✏⌦↵
A
! ⇧⇧⇧
0 ! ⇧⇧1
! ⇧⇧
! ⇧⇧
! ⇥
⇣✏
⌦↵
S⇧ 1 ⇣✏⌦↵
P
✏ ⇧⇧ !
⇧⇧ !
⇧ !
1 ⇧⇧⇧ ! 0
⇥ !
⇣✏⌦↵
B
1

un flot basé sur une chaîne !


arc pris à rebours = flot négatif !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 19 / 40

Algorithme de Ford-Fulkerson L’algorithme de Ford-Fulkerson

L’algorithme de Ford-Fulkerson

Algorithme de Ford-Fulkerson (1956)

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)

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 21 / 40


Algorithme de Ford-Fulkerson L’algorithme de Ford-Fulkerson

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 22 / 40

Algorithme de Ford-Fulkerson L’algorithme de Ford-Fulkerson

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 23 / 40

Algorithme de Ford-Fulkerson L’algorithme de Ford-Fulkerson

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 24 / 40


Algorithme de Ford-Fulkerson L’algorithme de Ford-Fulkerson

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 25 / 40

Algorithme de Ford-Fulkerson L’algorithme de Ford-Fulkerson

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 26 / 40

Algorithme de Ford-Fulkerson L’algorithme de Ford-Fulkerson

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

Échec : fin de l’algorithme

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 27 / 40


Théorème de Ford-Fulkerson Coupes

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

Tous les arcs sont saturés (bien sûr !) et f (u) = v (f )

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 29 / 40

Théorème de Ford-Fulkerson Coupes

Dans l’autre sens ?

arcs : non marqués vers marqués

⇠⌫
⌘✓◆
⇣✏
⌦↵2
A ⇠⌫
⌘✓◆
D ⇣✏
⌦↵
F

0/5
0/20 ⇧
⇠⌫
⌘✓◆
⇣✏
⌦↵
S ⇣✏
⌦↵ ⌃ ⇠⌫
⌘✓◆⇣✏
⌦↵ ⇣✏
⌦↵
B ⌦ G3 P
0/3 0/8
0/9
⇠⌫
⌘✓◆
⇣✏
⌦↵4
C ⇣✏
⌦↵
E ⇠⌫
⌘✓◆
H

Tous les arcs sont vides (bien sûr !) soit f (u) = 0

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 30 / 40

Théorème de Ford-Fulkerson Coupes

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 31 / 40


Théorème de Ford-Fulkerson Coupes

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 32 / 40

Théorème de Ford-Fulkerson Théorème de Ford-Fulkerson

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.

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 34 / 40

Théorème de Ford-Fulkerson Théorème de Ford-Fulkerson

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

1 Comme c( ) = 87, f compatible, v (f ) 6 87


2 Comme v (f ) = 57, séparant s de p, 57 6 c( )

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 35 / 40


Théorème de Ford-Fulkerson Théorème de Ford-Fulkerson

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

2 L’ensemble des sommets marqués à la dernière étape (échec du


marquage de p) définit une coupe
3 Comme le dernier marquage a échoué, f ( ) = c( ) et f ( ) = 0
4 Donc v (f ) = c( ).

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 36 / 40

Théorème de Ford-Fulkerson Théorème de Ford-Fulkerson

L’algorithme converge ?

1 L’algorithme de Ford-Fulkerson converge sur un flot f ?

Pas si évident !

1 Si les capacités sont entières,


les marques le sont aussi
le flot augmente au moins de 1 à chaque étape
donc l’algorithme s’arrête
2 Si les capacités sont réelles, l’algorithme peut diverger
( n vn < vn+1 < vmax ) !
sauf si on explore le graphe en largeur =
variante d’Edmonds & Karp (1972)
(recherche de chaîne améliorante avec un nombre minimal d’arcs)

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 37 / 40

Théorème de Ford-Fulkerson Complexité

Compléments

1 Complexité (n sommets et m arcs)


1 Ford-Fulkerson (capacités entières) : O(m.vmax )
2 Edmonds & Karp (1972) : O(n.m2 )
3 Dinic (1970) : O(n2 .m) (donc plus rapide !)
2 Problèmes liés
1 Arcs avec capacités minimales : existence d’un flot compatible ?
2 Multi-flots (capacité commune à plusieurs ressources)
3 Flot maximal de coût minimal
4 Flots avec multiplicateurs (perte/gain le long des arcs)

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Flot maximal 39 / 40


Problèmes d’affectation

Bernard Roux

INSA Lyon - Département de Génie Électrique


Institut Camille Jordan

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 1 / 43

Plan

1 Notre exemple
Deux problèmes pour une même situation

2 Le problème des mariages


Couplage maximum dans un graphe biparti
Algorithme des chaînes alternées

3 Affectation minimale
Premières idées
Algorithme Hongrois
Complexité

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 2 / 43

Notre exemple Deux problèmes pour une même situation

Répartition de projets

Six projets à répartir entre six étudiants


Chaque projet nécessite une formation complémentaire
On a estimé le coût en heures de cette formation

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 4 / 43


Notre exemple Deux problèmes pour une même situation

Problème 1

On aimerait qu’aucun étudiant n’ait besoin de 20h ou plus de


formation
D’où un graphe de compatibilité

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

Maximiser le nombre de couples ?


Couplage = ens. d’arcs sans extrémités communes
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 5 / 43

Notre exemple Deux problèmes pour une même situation

Problème 2

Si la matrice est carrée (n ⇥ n)


Trouver un couplage de taille n (une affectation) de coût minimal

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

La première diagonale est une affectation de coût :


35 + 25 + 13 + 6 + 25 + 14 = 118.

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 6 / 43

Le problème des mariages Couplage maximum dans un graphe biparti

Le problème des mariages

Assimilable à un problème de flot maximum


capacités = 1
flot 0 ( x y ) ou 1 ( x y )

S ⇧⌥⇧⌥⌥⌥⌥⌥
⇧⇧ ⌥⌥⌥⌥⌥
⇧⇧ ⌥⌥⌥⌥
⇧⇧ ⌥⌥⌥⌥
⇧ ⌥⌥⌥⌥
⇣ ⇧ ⌥⌥
⇣✏
⌦↵
1 ⌃⌃⌃ ⇣✏ ⌦↵
2 ⇣✏ ⌦↵
3⌅ ⇣✏ ⌦↵
4⌅
⌥⇣✏
⌦↵
5 ⇣✏
⌦↵
6
⌃⌃⌃ ⌅⌅ ⌅⌅
⌃⌃⌃ ⌅⌅ ⌅⌅
⌃⌃⌃ ⌅⌅ ⌅⌅
⌃ ⌅⌅ ⌅⌅
⌅ ⌘ ✏ ⌃⌃⌃⌃ ⌅ ✏ ⌅ ⌘ ✏ ⌅ ⌘ ⌃ ⇣✏
⇣✏
⌦↵
A
↵ ⇣✏
⌦↵
B ⇣✏ ⌦↵
C ⇠⌫
⌘✓◆ D ⇣✏
⌦↵
E ⌦↵
F
⌦⌦
⌦⌦

⌦⌦
⇧⌥ ⇣⌦⌦
P

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 8 / 43


Le problème des mariages Algorithme des chaînes alternées

Marquage 1

⇣✏
⌦↵
1 ⌃⌃⌃ ⇣✏ ⌦↵
2 ⇣✏⌦↵
3⌅ ⇣✏⌦↵
4⌅ ⇣✏
⌦↵
5 ⇣✏
⌦↵
6
⌃⌃⌃ ⌅⌅ ⌅⌅
⌃⌃⌃ ⌅⌅ ⌅⌅
⌃⌃⌃ ⌅⌅ ⌅⌅
⌃ ⌅⌅ ⌅⌅
⌅ ⌘ ✏ ⌃⌃⌃⌃ ⌅ ⌅ ⌘ ⌅ ⌘
⇣✏
⌦↵ ↵
A ⇣✏
⌦↵ B ⇣✏⌦↵ ✏ C ⌘✓◆✏
⇠⌫ D ⇣✏
⌦↵ E
⌃ ⇣✏
F ⌦↵

S ⇣✏
⌦↵
2 ⇣✏
⌦↵
C ⌦ ⇣✏
⌦↵
1 ⇣✏
⌦↵
B P


⇣✏ ⌦↵
5 ⇠⌫
⌘✓◆
D ⌦ ⇣✏
⌦↵
3

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 10 / 43

Le problème des mariages Algorithme des chaînes alternées

Modification du flot

S ⇧⌥⇧⌥⌥⌥⌥⌥
⇧⇧ ⌥
⌥⌥⌥⌥
+1 ⇧⇧ ⌥⌥⌥⌥
⇧⇧ ⌥⌥⌥⌥
⇧ ⌥⌥⌥⌥
⇣ ⇧ ⌥⌥
⇣✏1 ⌃⌃⌃ ⇣✏
⌦↵ ⌦↵
2 ⇣✏ ⌦↵
3⌅ ⇣✏ ⌦↵
4⌅
⌥⇣✏
⌦↵
5 ⇣✏
⌦↵
6
⌃⌃⌃ ⌅⌅ ⌅⌅
⌃ ⌅⌅ ⌅⌅
+1 1⌃⌃ +1 ⌅⌅ ⌅⌅
⌃⌃ ⌅⌅ ⌅⌅
⌅ ⌘ ✏ ⌃⌃⌃⌃ ⌅ ✏ ⌅ ⌘ ✏ ⌅ ⌘ ⌃ ⇣✏
⇣✏
⌦↵
A
↵ ⇣✏
⌦↵
B ⇣✏ ⌦↵
C ⇠⌫
⌘✓◆ D ⇣✏
⌦↵
E ⌦↵
F
⌦⌦
⌦⌦
+1 ⌦
⌦⌦
⇧⌥ ⇣⌦⌦
P

Sous cette forme; l’algorithme est connu sous le nom d’algorithme


des chaînes alternées.

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 11 / 43

Le problème des mariages Algorithme des chaînes alternées

Marquage 2

⇣✏
⌦↵
1 ⇣✏
⌦↵
2⌅ ⇣✏
⌦↵
3⌅ ⇣✏
⌦↵
4⌅ ⇣✏
⌦↵
5 ⇣✏
⌦↵
6
⇤⇤ ⌅⌅ ⌅⌅ ⌅⌅
⇤⇤ ⌅ ⌅ ⌅
⇤⇤ ⌅⌅ ⌅⌅ ⌅⌅
⇤⇤ ⌅⌅ ⌅⌅ ⌅⌅
⇤⌅ ⌘ ⌅⌅ ⌅⌅ ⌘ ⌅⌅ ⌘
⇣✏
⌦↵ ↵ ⇣✏
⌦↵ ✏ ⌃ ⇣✏
⌦↵ ✏ ⇠⌫
⌘✓◆ ✏ ⇣✏
⌦↵ ⌃ ⇣✏
⌦↵
A B C D E F

S ⇣✏
⌦↵
5 ⇣✏
⌦↵
C ⌦ ⇣✏
⌦↵
2
⇤⇤
⇤⇤
⇤⇤
⇤⇤
⇤⌅
⇠⌫
⌘✓◆
D ⌦ ⇣✏
⌦↵
3 ⇣✏
⌦↵
B ⌦ ⇣✏
⌦↵
1

Échec : l’affectation est maximale !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 12 / 43


Le problème des mariages Algorithme des chaînes alternées

Coupe ?

Arcs de la coupe ?
⇣✏
⌦↵
⌥⌃⇧
⇥⇤⌅
S ⌅⌥⌥⌥⌥⌥
⌅⌅ ⌥⌥⌥⌥
⌅⌅ ⌥⌥⌥⌥
⌅⌅ ⌥⌥⌥⌥
⌅⌅ ⌥⌥⌥⌥
⌘ ⌅ ⌥⌥⌥⌥
⇣✏
⌦↵
⌥⌃⇧
⇥⇤⌅
1
✏ ⇣✏
⌦↵
⌥⌃⇧
⇥⇤⌅
2 ⇣✏
⌦↵
⌥⌃⇧
⇥⇤⌅
3 ⇣✏ ⌦↵
4 ⇣✏
⌃ ⌦↵
⌥⌃⇧
⇥⇤⌅ 5 ⇣✏
⌦↵ 6

⌅ ⌘✏ ⌅
⌃ ⇣✏ ✏ ⌅ ⌘✏ ⌅ ⌘ ⌃ ⇣✏
⇣✏
⌦↵
A
↵ ⇣✏
⌦↵
⌥⌃⇧
⇥⇤⌅
B⇧ ⌦↵
⌥⌃⇧
⇥⇤⌅
C ⇠⌫
⌘✓◆
⇣✏
⌦↵
D ⇣✏
⌦↵
E F ⌦↵
⇧⇧ ⌦⌦
⇧⇧ ⌦
⇧⇧ ⌦⌦
⇧⇧ ⌦⌦
⇧⌥ ⇣⌦⌦
P

Ces arcs désignent en fait des sommets : {4, 6, B, C , D} !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 13 / 43

Le problème des mariages Algorithme des chaînes alternées

Ensemble transversal

Sous forme de matrice :

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)

Un ensemble T de sommets est dit transversal lorsque tout arc a au


moins une extrémité dans T .
Un ensemble S de sommets est dit stable (ou indépendant) lorsque
tout arc a au plus une extrémité dans S.
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 14 / 43

Le problème des mariages Algorithme des chaînes alternées

Ford-Fulkerson !

Un graphe G = (X , E ) est dit biparti s’il existe une partition (X1 , X2 )


de l’ensemble des sommets telle que E X1 ⇥ X2 .

Théorème de König (1931), de Egerváry (1931)


Dans un graphe biparti, la taille maximale d’un couplage est égale à la
taille minimale d’un ensemble transversal.

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.

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 15 / 43


Affectation minimale Premières idées

Un cas idéal

Pour certaines matrices, la solution est évidente :

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 !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 17 / 43

Affectation minimale Premières idées

Changer les coûts ?

Essayons des transformations simples

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 !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 18 / 43

Affectation minimale Premières idées

Dans l’autre sens ?

La suite de transformations peut être moins évidente !

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)

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 19 / 43


Affectation minimale Algorithme Hongrois

L’algorithme hongrois

Algorithme de Kuhn (1955)

1 Construction d’une suite de matrices


équivalentes
positives ou nulles
au moins un zéro par ligne et par colonne
2 Coût décroissant des affectations
donc convergence vers une matrice
admettant une affectation de coût nul ! H.W. Kuhn (1925-. . . )
collègue et ami de J.
Nash (théorie des jeux)

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 21 / 43

Affectation minimale Algorithme Hongrois

Étape 0

Créer un zéro par colonne . . .

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 22 / 43

Affectation minimale Algorithme Hongrois

É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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 23 / 43


Affectation minimale Algorithme Hongrois

É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

Les zéros de cette matrice définissent un graphe biparti !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 24 / 43

Affectation minimale Algorithme Hongrois

Théorème de Ford-Fulkerson

Taille maximale d’un couplage ?


Un couplage de même taille qu’un transversal est maximal !

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

Couplage : {6A, 4B, 3C } - Transversal (ou support) : {4, 6, C }

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 25 / 43

Affectation minimale Algorithme Hongrois

Créer un zéro ?

Minimum en dehors du transversal : 2


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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 26 / 43


Affectation minimale Algorithme Hongrois

Créer un zéro ?

Astuce : retirer 2 sur des lignes et l’ajouter sur des colonnes


A B C D E F
1 11 6 0 6 9 17 2
2 10 9 0 6 10 9 2
3 12 6 (0) 7 13 10 2
4 4 (0) 14 0 2 5
5 11 9 0 [2] 9 11 2
6 (0) 1 0 0 0 0
2 -6

Le couplage est donc préservé !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 27 / 43

Affectation minimale Algorithme Hongrois

É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

{4, 6, C } n’est plus un transversal !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 28 / 43

Affectation minimale Algorithme Hongrois

Théorème de Ford-Fulkerson

Taille maximale d’un couplage ?


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

Couplage : {6A, 4B, 3C , 5D} - Transversal : {4, 6, C , D}

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 29 / 43


Affectation minimale Algorithme Hongrois

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 30 / 43

Affectation minimale Algorithme Hongrois

É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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 31 / 43

Affectation minimale Algorithme Hongrois

Algorithme de Ford-Fulkerson

Algorithme des chaînes alternées : marquage


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

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 33 / 43

Affectation minimale Algorithme Hongrois

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 34 / 43

Affectation minimale Algorithme Hongrois

É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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 35 / 43


Affectation minimale Algorithme Hongrois

Nouveau flot

Nouveau couplage et nouveau transversal


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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 36 / 43

Affectation minimale Algorithme Hongrois

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 37 / 43

Affectation minimale Algorithme Hongrois

É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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 38 / 43


Affectation minimale Algorithme Hongrois

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 39 / 43

Affectation minimale Algorithme Hongrois

Affectation minimale

Affectation de coût minimal : 19 + 35 + 13 + 7 + 19 + 15 = 108

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

Au cours de l’algorithme : 51 38 6 8 4 1 = 108 !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 40 / 43

Affectation minimale Complexité

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 (INSA Lyon, ICJ) Recherche Opérationnelle Affectations 42 / 43


Tournées optimales

Bernard Roux

INSA Lyon - Département de Génie Électrique


Institut Camille Jordan

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 1 / 46

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 2 / 46

Notre exemple Un problème « difficile »

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 4 / 46


Notre exemple Un problème « difficile »

Problème «difficile» ?

Ce problème est un archétype d’un problème dit «NP-difficile».


Pourquoi ?

1 Méthode 1 : la force brute :


1 nombre de tournées : 5! = 120
2 temps de calcul d’une tournée : 5 additions
3 donc aucun problème
2 Mais si n + 1 villes avec n grand ?
n
1 nombre de tournées : n! ' 2 n ne
2 temps de calcul d’une tournée : n additions
3 donc méthode 1 vite inabordable (25! ' 1.5 ⇥ 1025 )
3 Méthode 2 ?

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 5 / 46

Notre exemple Complexité

Problèmes P

Présentation très simplifiée de la théorie de la complexité :

Que serait un problème «facile» ?


1 il existe un algorithme qui calcule la solution optimale
2 le temps de calcul est borné polynomialement
3 cette borne réfère à une notion de taille des données traitées (=
instance)

Exemple : affectation de coût minimal


1 algorithme hongrois
2 le temps de calcul : O n3
3 taille de l’instance : n nombre de lignes de la matrice carrée

Dans ce cas, le problème est dit de la classe P (P = Polynomial)

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 7 / 46

Notre exemple Complexité

Problèmes NP

Aujourd’hui, on ne connaît pas d’algorithme polynomial pour le


voyageur de commerce

Mais la vérification d’une solution est facile !


Il ne reste plus qu’à trouver une solution optimale (parmi (n 1)!)
le problème est dit de la classe NP (N = Non déterministe)

Ce que l’on suppose (conjecture fondamentale)


Il existe des problèmes NP qui ne sont pas P !

Ce que l’on sait


Si le voyageur de commerce est P, alors la conjecture est fausse !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 8 / 46


Méthodes arborescentes Quel objectif ?

Résumé de la situation

Supposons désormais la conjecture fondamentale vraie

Je veux une solution optimale pour n grand :


aucun algorithme ne me garantit un temps polynomial
mais mon instance est particulière
un algorithme bien adapté peut être assez (voire très) rapide
Je veux une solution rapidement pour n grand :
l’optimalité ne peut être garantie
heuristique : calcul d’une solution sans garantie d’optimalité
une heuristique bien adaptée peut être assez (voire très) performante

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 10 / 46

Méthodes arborescentes Un problème d’affectation

Retour sur le voyageur de commerce

Qu’est-ce qu’une tournée ?

A / B / C
O


F o E o D

Une tournée est une affectation :

A B C D E F

A B C D E F

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 12 / 46

Méthodes arborescentes Un problème d’affectation

Affectation contrainte

Mais toute affectation n’est pas une tournée

A / B
O ?C

 ✏
F E o D

Donc il faut optimiser le coût d’une affectation parmi les affectations


satisfaisant une contrainte.
En particulier si une affectation optimale est une tournée, c’est une
tournée optimale !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 13 / 46


Méthodes arborescentes Un problème d’affectation

Algorithme hongrois

Commençons comme pour l’algorithme hongrois :

Créons un zéro par ligne et par colonne :

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 14 / 46

Méthodes arborescentes Un problème d’affectation

É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

Une affectation optimale (AE, BF, CB, DC, EA, FB)


Mais qui n’est pas une tournée !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 15 / 46

Méthodes arborescentes Diviser . . .

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

1 Une tournée utilisant A ! B coûte au moins 1120 + 442 !


2 Une tournée n’utilisant pas A ! B coûte au moins :
1120 + 0 (AE ) + 0 (CB ou FB)

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 17 / 46


Méthodes arborescentes Diviser . . .

¬AB !

On peut donc séparer l’ensemble des tournées en deux :

>1120
/ AB>1562


¬AB>1120

Le paquet le plus intéressant contient (n 1) fois plus de tournées !


Peu d’intérêt !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 18 / 46

Méthodes arborescentes Diviser . . .

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

1 Une tournée utilisant A ! E coûte au moins 1120 !


2 Une tournée n’utilisant pas A ! E coûte au moins :
1120 + 55 (AF ) + 321 (FE )

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 19 / 46

Méthodes arborescentes Diviser . . .

AE !

On peut donc séparer l’ensemble des tournées en deux :

>1120
/ AE>1120


¬AE>1496

Si la tournée optimale coûte moins de 1496, elle passe par AE


Il resterait alors à examiner (n 2)! tournées sur (n 1)!

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 20 / 46


Méthodes arborescentes Branch and bound !

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

Méthodes arborescentes Branch and bound !

Choisissons EA !

On peut donc séparer l’ensemble des tournées en deux :

>1120
/ EA>1120


¬EA>1496

On va explorer la branche EA !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 23 / 46

Méthodes arborescentes Branch and bound !

Étape 1

Si une tournée comprend E ! A :


la ligne E et la colonne A sont inutiles !
la contrainte tournée se traduit par l’impossibilité de A ! E

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

Mais il n’y a plus forcément un zéro par ligne et par colonne !


Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 24 / 46
Méthodes arborescentes Branch and bound !

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

On retrouve ici la symétrie de notre matrice initiale !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 25 / 46

Méthodes arborescentes Branch and bound !

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

Pénalité maximale (387) pour (E )A ! F !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 26 / 46

Méthodes arborescentes Branch and bound !

Nouvelle séparation

On peut donc séparer l’ensemble des tournées en deux :

>1120
/ EA>1496 / EAF >1496

✏ ✏
¬EA>1496 ¬AF >1883

On va explorer la branche EAF !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 27 / 46


Méthodes arborescentes Branch and bound !

Étape 2

Si une tournée comprend (E !)A ! F :


la ligne A et la colonne F sont inutiles !
la contrainte tournée se traduit par l’impossibilité de F ! E (A)
D’où la matrice :

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

Mais il n’y a plus forcément un zéro par ligne et par colonne !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 28 / 46

Méthodes arborescentes Branch and bound !

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

Pénalité maximale (189) pour EAF ! B

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 29 / 46

Méthodes arborescentes Branch and bound !

Nouvelle séparation

On peut donc séparer l’ensemble des tournées en deux :

>1120
/ EA>1496 / EAF >1878 / EAFB >1878

✏ ✏ ✏
¬EA>1496 ¬AF >1883 ¬FB >2008

On va explorer la branche EAFB !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 30 / 46


Méthodes arborescentes Branch and bound !

Étape 3

D’où la matrice :

C D E (AFB)
(EAF )B 130 164
C 0 85
D 0 0
Coût : + 1878

Solution évidente : BCDE !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 31 / 46

Méthodes arborescentes Branch and bound !

Conclusion provisoire

>1120
/ EA>1496 / EAF >1878 / EAFBCD =2008

✏ ✏ ✏
¬EA>1496 ¬AF >1883 ¬FB >2008

1 Seules les branches dont l’évaluation est inférieure à 2008 restent à


explorer
2 Intérêt d’avoir au plus tôt un majorant de la solution optimale !
3 Symétrie des données au moins 2 optimums symétriques !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 32 / 46

Méthodes arborescentes Branch and bound !

Sommet le plus intéressant . . .

La branche la plus prometteuse est ¬EA !


EA devient impossible

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 33 / 46


Méthodes arborescentes Branch and bound !

. . . ou sommet le plus proche ?

La première branche rejetée est ¬AF !


AF devient impossible

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 34 / 46

Méthodes arborescentes Branch and bound !

Étape 4

Choix du sommet le plus proche


Calcul des pénalités :

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 !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 35 / 46

Méthodes arborescentes Branch and bound !

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

Méthodes arborescentes Branch and bound !

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

¬EA>1496 / AE >1496 / FAE >1878 / FAEDCB =2008

✏ ✏
¬AE >1496 ¬FA>1883 / EF >1883 / EFBCDA=1997

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 38 / 46

Méthodes arborescentes Branch and bound !

Solutions restantes

Celles qui ne passent ni par AE , ni par EA :

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 39 / 46


Méthodes arborescentes Branch and bound !

É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

Pas d’affectation de coût nul, ni donc de coût inférieur à 25 !


Les deux affectations de coût 1997 sont optimales.

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 40 / 46

Remarques importantes Gestion du branch and bound

Caractéristiques générales

Si n grand, le temps de clacul est souvent important

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

Trouver le bon compromis !

Un paramètre important : stratégie d’exploration de l’arborescence !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 42 / 46

Remarques importantes Gestion du branch and bound

Retour sur notre exemple

Nous pouvions améliorer beaucoup notre méthode :


Sous-utilisation de caractéristiques de nos données :
1 la symétrie
2 l’inégalité triangulaire

Comment les utiliser ?


1 Symétrie :
1 transformations gardant la symétrique des matrices
2 séparation par arête (pas par arc)
2 Symétrie + inégalité triangulaire :
1 propriétés particulières (voir bibliographie) pour améliorer l’évaluation

L’apport d’expertise (spécialiser l’algorithme aux données) est un


facteur-clé

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 43 / 46


Remarques importantes Heuristiques et métaheuristiques

Heuristiques

Une heuristique ne garantit pas l’optimalité


Construction rapide d’une solution
On espère l’optimalité, ou une bonne qualité (si n trop grand)

Métaheuristique = méthode générale multi-contexte :


méthode taboue
recuit simulé
algorithmes génétiques
...
Couplage possible avec méthode arborescente (élimination de
branches)

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Tournées optimales 45 / 46


Chaînes de Markov discrètes

Bernard Roux

INSA Lyon - Département de Génie Électrique


Institut Camille Jordan

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

Notre exemple Agence d’études

Agence d’études

Agence dédiée à un produit spécifique


Un technicien
Une demande = un jour de travail
Délai maximum : 3 jours ouvrés après le jour de réception (sinon
sous-traitance)
Demande aléatoire journalière D des clients :
d 0 1 2 3
Pr(D = d ) 4/20 12/20 3/20 1/20

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)

1 Instants d’observation : les soirs des jours ouvrés


2 Qu’observe t’on ?
État du système = nombre X de demandes en stock
Remarque : la sous-traitance est perdue !

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

Notre exemple Modélisation

Exemple de scénario

Un début de trajectoire possible du système :

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

Notre exemple Modélisation

Modélisation (2)

Ce processus est une chaîne (ens. discret d’états) de Markov


La chaîne est homogène dans le temps :
Pr(X (n + 1) = j/X (n) = i) = pi,j indépendant de n !

sous forme de graphe sous forme de matrice

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)

Notre processus est entièrement déterminé par :


la distribution initiale : ~v (0) = (1, 0; 0; 0)
la matrice de transition :
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

0 0 0.2 0.8

La matrice M est stochastique :


matrice carrée
chaque ligne est une distribution de probabilité.

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 9 / 42

Notre exemple Propriétés de Markov

Systèmes markoviens

Propriété (faible) de Markov


Un système satisfait la propriété de Markov
lorsque son futur ne dépend de son passé que par
l’intermédiaire de son état présent.

Seul le résultat de l’historique compte !


L’état présent doit être exactement connu ! A.A. Markov
(1856-1922)

Propriété (faible) de Markov


Un processus discret est markovien lorsque :

Pr(X (n + k) = j/X (0) = i0 , · · · , X (n) = i) = Pr(X (n + k) = j/X (n) = i)

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 11 / 42

Notre exemple Propriétés de Markov

Temps d’arrêt

La propriété de Markov suppose de connaître :


la date du présent : n
l’état du système : X (n).
Peut-on remplacer n par une date aléatoire 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.

1 Exemple : la première arrivée dans un état x


T =n X (n) = x et i < n , X (i) = x
2 Contre-exemple : la dernière sortie d’un état (sauf exceptions)
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 12 / 42
Notre exemple Propriétés de Markov

Propriétés de Markov

Une chaîne de Markov homogène dans le temps C est déterminée par :


une distribution initiale : ~v (0) = (1, 0; 0; 0)
une matrice stochastique M.
Le processus associé est markovien. (au sens faible)

Propriété forte de Markov


Le processus associé à C satisfait :
Si T est un temps d’arrêt de C ,
Si on sait que les évènements T < et XT = i sont réalisés
Alors le processus (X (n + T )) est une chaîne de Markov homogène de
matrice M et d’état initial i.

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 13 / 42

Régimes transitoire et permanent Calcul du régime transitoire ~v (t)

Calcul de ~v (1)

~v (0) = (1, 0, 0, 0)

1⇥ 0.2 0.6 0.15 0.05


0⇥ 0.2 0.6 0.15 0.05
~v (1) =
0⇥ 0 0.2 0.6 0.2
0⇥ 0 0 0.2 0.8
= (0.2, 0.6, 0.15, 0.05)

~v (1) = première ligne de M


si l’état initial est 0.

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 15 / 42

Régimes transitoire et permanent Calcul du régime transitoire ~v (t)

Calcul de ~v (2)

0.2⇥ 0.2 0.6 0.15 0.05


0.6⇥ 0.2 0.6 0.15 0.05
~v (2) =
0.15⇥ 0 0.2 0.6 0.2
0 1 2 3
0.05⇥ 0 0 0.2 0.8
= (0.16, 0.51, 0.22, 0.11)

~v (2) =~v (1).M =~v (0).M 2


= première ligne de M 2
si l’état initial est 0.

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 :

~v (n) =~v (n 1).M si n > 0


=~v (0).M n si n > 0

Il suffit de calculer les puissances de M

Remarque : M n est la matrice de transition


si le système est observé tous les n jours ouvrés

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 17 / 42

Régimes transitoire et permanent Calcul du régime transitoire ~v (t)

Calcul de M n

0.16 0.51 0.22 0.11


0.16 0.51 0.22 0.11
M2 =
0.04 0.24 0.43 0.29
0 0.04 0.28 0.68

Les états 0 et 1 ont le même futur.

0.116 0.399 0.273 0.212


4 2 0.116 0.399 0.273 0.212
M = M2 '
0.062 0.258 0.328 0.353
0.018 0.115 0.320 0.548

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 18 / 42

Régimes transitoire et permanent Calcul du régime transitoire ~v (t)

Convergence

0.080 0.300 0.298 0.322


8 0.080 0.300 0.298 0.322
M ' ...
0.064 0.256 0.307 0.377
0.045 0.198 0.316 0.441

0.062 0.246 0.308 0.384


0.062 0.246 0.308 0.384
M 32 '
0.062 0.246 0.308 0.384
0.062 0.246 0.308 0.384

1 La suite M n admet une limite M


2 M est composée d’une unique distribution ,
dite régime permanent de C .
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 19 / 42
Régimes transitoire et permanent Régime stationnaire

Régime stationnaire

1 Définition :
Une distribution de probabilité µ vérifiant µ = µ.M
est dite un régime stationnaire de C .

2 Par passage à la limite dans l’équation ~v (n) =~v (n 1).M si n > 0,


alors = .M : le régime permanent est stationnaire

s’il n’existe qu’un régime stationnaire, il est égal à !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 21 / 42

Calculs du régime permanent Résolution du système

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

Donc la somme des équations donne : 0. (i) = 0


Toute équation est redondante avec les autres.

Il manque une équation : (i) = 1 !


D’où un système de la forme .L = (0, · · · , 0, 1)
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 23 / 42

Calculs du régime permanent Résolution du système

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

Méthode des coupes

Intérêt : utiliser la géométrie du


graphe

Principe :
partitionner les états en deux 0 1 2 3
équilibre des transferts en
régime stationnaire
Exemple :
Coupe = {0, 1} {2, 3}

0.2( (0) + (1)) = 0.2 (2)


(0) + (1) = (2)
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 26 / 42

Calculs du régime permanent Méthode des coupes

Application

Coupe = {0} {1, 2, 3}


0.8 (0) = 0.2 (1) (1) = 4 (0)
Coupe = {0, 1} {2, 3}
0.2( (0) + (1)) = 0.2 (2) (2) = 5 (0)
Coupe = {0, 1, 2} {3}
0.05( (0) + (1)) + 0.2 (2) = 0.2 (3) (3) = 6.25 (0)
Vecteur distribution :

(0) + (1) + (2) + (3) = 1 16.25 (0) = 1

d’où = (4/65, 16/65, 20/65, 25/65)

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 27 / 42

Calculs du régime permanent Performances du système

Interprétation des résultats

1 Relions nos questions aux états ou transitions de C


Questions Modèle
activité états 1, 2 et 3
sous-traitance arcs (2,3) et (3,3)
délai moyen ??
2 Commençons par les évidences
61
Taux d’activité : A = 1 (0) = 65 ' 93.8% (car 1 seul technicien)

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 :

P = 1 ⇥ 0.05 (2) + (1 ⇥ 0.15 + 2 ⇥ 0.05) (3)= 1+6.25


65 = 29
260

Mais il y a beaucoup plus simple !


perte = demande - activité

D = 1 ⇥ 0.6 + 2 ⇥ 0.15 + 3 ⇥ 0.05 = 1.05 demande/jour


A ' 0.938 demande/jour et donc P ' 0.112 demande/jour
Soit environ 0.112/1.05 ' 10.7% des demandes perdues.

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 30 / 42

Calculs du régime permanent Performances du système

Délai moyen

Délai = nombre de jours entiers entre remise et livraison


Calcul ici pour les demandes traitées
Le délai est relié à l’état :
N = (1) + 2 (2) + 3 (3) = 131/65 demande-jour de délai par jour
61
Ce délai est réparti entre A = 65 clients
N 131
Donc W = A
= 61 ' 2.148 jours en moyenne par demande

Remarque
Ce calcul sera généralisé plus tard par la loi de Little.

Question : attente moyenne = Wq (= délai - 1 jour incontournable) ?

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 31 / 42

Compléments Durée du régime transitoire

Valeurs et vecteurs propres

Considérons l’endomorphisme défini sur C4 par :

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

Alors un vecteur propre u de est un vecteur qui vérifie (u) = u .u

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

v fournit ici une base (v1 , v2 , v3 , v4 ) de vecteurs propres


Calcul de :
est associé à la valeur propre 1 (régime stationnaire !)
Commande Matlab : sol=v( :,2)’/sum(v( :,2))
= 0.0615 0.2462 0.3077 0.3846
Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 34 / 42

Compléments Durée du régime transitoire

Vitesse de convergence

Un vecteur distribution de probabilité s’écrit :

µ = a.v1 + b. + c.v3 + d .v4

Alors :
(µ) ' b. + 0.7732c.v3 + 0.4268d .v4
n
(µ) ' b. + 0.7732n c.v3 + 0.4268n d .v4

Et donc : lim( n (µ)) = b. et b = 1 !


La suite converge comme une suite géométrique de raison v3
application : ici en 9 jours l’écart à baisse d’un facteur 10

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 35 / 42

Compléments Existence du régime permanent

Questions

Le cas étudié ici est idéal.


Existe t’il toujours
un unique régime permanent indépendant de l’état initial ?

La réponse est non !

Pas de régime permanent Dépendance à l’état initial


Périodicité
0 1
0 1
3 2
3 2

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 37 / 42
Compléments Existence du régime permanent

Typologie des classes

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.

Classes transitoires et finales


Soit C une chaîne de Markov, et G le graphe induit
une classe sans arc de sortie est dite finale ou fermée
sinon elle est dite transitoire

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 38 / 42

Compléments Existence du régime permanent

Indépendance de l’état initial ?

1 NON s’il y a plus d’une classe finale !


Ici 1 classe transitoire et 2 classes finales

0 1

3 2

2 OUI si le graphe est fini et comporte une seule classe finale


(résultat admis ici)

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Chaînes de Markov (1) 39 / 42

Compléments Existence du régime permanent

Existence d’un régime permanent ?

1 Ce graphe ne comporte qu’une classe :

Circuit 0 ! 1 ! 2 ! 3 ! 0 Mais M 2 n’est pas connexe !

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.

Cas des graphes finis


Soit C une chaîne finie admettant une seule classe finale F .
Si F est apériodique, alors :
1 C admet un unique régime permanent indépendant de l’état initial ;
2 pour tout état i, (i) > 0 i F;
3 Si ri désigne le temps moyen de retour d’un état i de F , alors

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

INSA Lyon - Département de Génie Électrique


Institut Camille Jordan

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

2 Étude d’une CdMC


Temps de séjour dans un état
Modélisation
Régime permanent

3 Autres modèles & calculs


Autres lois
Calcul standard de
Calcul de par la matrice des sauts

Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 2 / 35

Du discret au continu Propos

Propos

Chaînes de Markov discrètes :


observation échantillonnée d’un système
propriété de Markov
L’observation en continu est-elle possible ?

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

Guichet dédié à un service spécifique


Un technicien
Une demande = durée aléatoire de travail d’espérance 1h
Comportement des clients :
connaît l’espérance E (T ) du délai T de livraison
dépose une demande si E (T ) 6 3 heures
Demande aléatoire horaire D des clients :
taux d’arrivée : 1 demande toutes les 50’
donc E (D) = 6/5 demandes/heure

Questions : % de perte ? taux d’activité ? délai moyen ?

Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 5 / 35

Du discret au continu Du continu au discret

Chaîne continue

1 Observation en continu : état X (t) pour tout t > 0


2 Propriétés de Markov (forte et faible)
3 Homogénéité : Pr (X (t + ) = j/X (t) = i) = pi,j ( )

L’ensemble des états est discret donc X (t) discontinu


Mais continuité à droite : X (t) = i = > 0, X (t + ) = i

Cette hypothèse résoud un problème théorique :


les axiomes des probabilités portent sur des ens. finis ou dénombrables
or un processus continu à droite est déterminé par les probabilités
Pr(X (t0 ) = i0 , · · · , X (tk ) = ik )

Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 7 / 35

Du discret au continu Du continu au discret

Exemple de scénario

Un début de trajectoire possible du système :

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

Chaîne des sauts

Passer au discret ? observer aux changements d’états !

Exercice : justifiez la chaîne des sauts


2 3
0 1 0 0
6 5/11 0 6/11 0 7
S =64 0 5/11 0
7
6/11 5
0 0 1 0
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 9 / 35

Du discret au continu Du continu au discret

Passer au discret ? (2)

Caractéristiques de la chaîne des sauts :


chaîne discrète sans boucle
modélise les changements d’états
ne modélise pas les durées entre deux changements !

Autre réponse : observer aux instants {0, t, 2t, 3t, . . .} !


matrice de transition M(t) =?
boucle sur chaque état

chaîne homogène : M(nt) = M(t)n


cas particulier : M(0) = In
mais aussi M(s + t) = M(s).M(t) = M(t).M(s)

Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 10 / 35

Du discret au continu Retour au continu

Passage au continu

Notre processus est entièrement déterminé par :


la distribution initiale : ~v (0) = (1, 0; 0; 0)
la fonction M : t ! M(t) pour t > 0

Supposons M continue et dérivable à droite en 0 :


M(t) In
donc il existe une matrice Q : limt !0+ t =Q

Remarques :
1 i =j = qi ,j > 0
qi ,i = j =i qi ,j 6 0 (somme ligne = 0)
2

Une matrice satisfaisant (1) et (2) est dite une Q-matrice

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

M(t) a les propriétés d’une exponentielle


M(s + t) = M(s).M(t) = M(t).M(s)
M(a+t) M(a)
dérivable à droite en tout a : limt !0+ t = M(a).Q = Q.M(a)

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

Du discret au continu Retour au continu

Calcul de exp(A)

1 Cas des matrices diagonales :

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

2 Cas des matrices diagonalisables :

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

Du discret au continu Retour au continu

Liens avec les Q-matrices

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

Application aux chaînes continues :


1 M (0) = Q est une Q-matrice
2 Donc pour tout t, A(t) = exp(tQ) est stochastique
3 A(t) est l’unique solution de l’équation f (t) = Q.f (t) satisfaisant
f (0) = In
4 Donc M(t) = A(t) pour tout t.

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

Quelle est la durée Ti d’un séjour dans un état i ?

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

Étude d’une CdMC Temps de séjour dans un état

Rappels sur la loi exponentielle

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

3 Loi sans mémoire :


Si T ! E ( ) alors pour tout instant i,
la durée résiduelle T = (T i/T > i) ! E ( )

Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 18 / 35

Étude d’une CdMC Temps de séjour dans un état

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

Cas de deux sorties

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

Étude d’une CdMC Modélisation

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

Étude d’une CdMC Régime permanent

Existence d’un régime permanent

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

Calcul par les coupes

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

Étude d’une CdMC Régime permanent

Performances
1 4 a 6
(0) + (1) + (2) + (3) = 1 1 (0) = 1 avec = b = 5

d’où ' (0.1863, 0.2235, 0.2683, 0.3219)

1 Taux d’activité : 1 (0) ' 81.4%


2 Perte de clients ?
1 Perte de clients état 3
2 donc % de perte : (3) ' 32.2% de clients perdus
3 taux de perte : a. (3) ' 0.386 clients/heure.
3 Délai moyen ?
Nombre moyen de demandes en cours :
N = (1) + 2 (2) + 3 (3) ' 1.726
Donc 1.726 heure d’attente par heure
Taux d’entrée des demandes : e = a(1 (3)) = b(1 (0)) ' 0.814
d’où le délai moyen : Ne ' 2.12h
Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 26 / 35

Autres modèles & calculs Autres lois

Lois de service ?

L’emploi des CdMC suppose des lois exponentielles :


1 taux d’arrivée uniforme des demandes : souvent vérifié !
2 lois exponentielles des durées de service : plus rare !
Comment faire si les lois ne sont pas exponentielles ?
1 Passer en discret : instants = départ des clients
exemple : loi constante 1h
nombre d’arrivées en 1h avec a = 6/5
k 0 1 2 3
Pr(K = k) 0.6988 0.2105 0.0634 0.0191
2 Loi approchée par une combinaison d’exponentielles (loi de Cox)

Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 28 / 35
Autres modèles & calculs Autres lois

Exemple simple

Temps de service = somme de 2 lois exponentielles d’espérance


40 = c1 puis 20 = 2c
1

État = (nombre de demandes, état de traitement en cours)

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

Autres modèles & calculs Calcul standard de

Système standard

Si ~v (t) = ~v (0).M(t) ! , alors

Équation du régime stationnaire


M (t) = M(t).Q ~v (0).M (t) = [~v (t).M(t)] .Q 0 = .Q

système (redondant) + vecteur distribution


2 3
4 4 0 0 0 0 1 0
6 0 9 4 0 5 0 1 7 1
6 7
6 0 0 9 4 0 5 1 7 2
6 7
(0, 0, 0, 0, 0, 0, 1) = . 6
6 0 0 0 5 0 0 1 7
7 3
6 10 0 0 0 14 4 1 7 1
6 7
4 0 10 0 0 0 14 1 5 2
0 0 10 0 0 0 1 3

Bernard Roux (INSA Lyon, GE) Recherche Opérationnelle Chaînes de Markov (2) 31 / 35

Autres modèles & calculs Calcul standard de

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 ! )

la moindre dispersion améliore un peu les performances.

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

Matrice des sauts


Matrice des sauts
2 3
0 1 0 0 0 0 0 0
6 0 0 4/9 0 5/9 0 0 7 1
6 7
6 0 0 0 4/9 0 5/9 0 7 2
6 7
S =6 6 0 0 0 0 4/9 0 5/9 7
7 3
6 10/14 0 0 0 0 4/14 0 7 1
6 7
4 0 10/14 0 0 0 0 4/14 5 2
0 0 1 0 0 0 0 3
Soit le régime permanent de cette chaîne discrète
Lien entre et ?
1
Soit Ti = le temps moyen d’un séjour dans l’état i, alors
i

(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

INSA Lyon - Département de Génie Électrique


Institut Camille Jordan

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 1 / 36

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

3 Autres files d’attente


File M/M/2
Formule d’Erlang
Libre service
Retour à l’atelier

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 2 / 36

Notre exemple L’atelier de réparation

L’atelier de réparation

Atelier dédié aux retours clients


Un technicien par poste
Besoin de pièces spécifiques pour chaque réparation
Un magasinier va chercher les pièces
Service dans l’ordre d’arrivée
Les techniciens attendent patiemment

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 4 / 36


Notre exemple L’atelier de réparation

Impressions et données

Magasinier souvent inemployé (' 50%)


Jamais plus de 3 techniciens en attente
Observation de l’atelier :
Temps moyen de service : 3’
Temps moyen entre deux demandes : 5’
Lois exponentielles

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 5 / 36

File M/M/1 Modélisation

Modélisation

Lois exponentielles → chaîne de Markov continue

État = nombre de techniciens devant le magasin


Un taux d’arrivée : = 1/5
Un taux de service : µ = 1/3

Représentation :
/ / / /
0 o 1 o 2 o 3 o ···
µ µ µ µ

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 7 / 36

File M/M/1 Modélisation

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 ···
µ µ µ µ

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 8 / 36


File M/M/1 Modélisation

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 9 / 36

File M/M/1 Étude du régime permanent

Existence d’un régime permanent ?

Chaîne infinie → possibilité de fuite à l’infini !


Un exemple :

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 !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 11 / 36

File M/M/1 Étude du régime permanent

Convergence de la M/M/1

/ / / /
0 o 1 o 2 o 3 o ···
µ µ µ µ

1 Si > µ : fuite à l’infini possible !


On impose donc <µ
2 Si < µ : utilisation de la coupe [0; i] [i + 1; + [

/
··· i o i +1 ···
µ

(i) = µ (i + 1) (i + 1) = (i)
µ

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 12 / 36


File M/M/1 Étude du régime permanent

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

Régime permanent M/M/1


Si < 1, (i) = i (1 )

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 13 / 36

File M/M/1 La loi de Little

Deux grandeurs importantes . . .


Soient d une durée et kd le nombre de client arrivés dans cette durée :
1 Longueur de la file ?
N(d ) nombre moyen de clients présents
Si N(t) clients présents à l’instant t,
d
1
N(d ) = N(t).dt
d
0

2 Temps moyen de présence ?


W (d ) temps moyen de présence des clients
W (i, d ) temps de présence du client i

kd
1
W (d ) = W (i, d )
kd i=1

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 15 / 36

File M/M/1 La loi de Little

. . . 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 !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 16 / 36


File M/M/1 La loi de Little

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 17 / 36

File M/M/1 Résultats

Résultats (1)

Débit : (pas de perte !)

Taux d’activité du système : a =1 (0) = 1 (1 )=


a = 0, 6 : l’offre est bien supérieure à la demande !

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 µ µ

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 19 / 36

File M/M/1 Résultats

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

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 20 / 36


File M/M/1 Résultats

Résultats (3)

Donc W q = 7, 5 3 = 4, 5 : l’attente est longue !


et N q = 1, 5 0, 6 = 0, 9 : c’est énorme !

Presque un temps plein à attendre que le magasinier soit disponible !


Le magasinier (occupé à 60%) ne suffit pas à la tâche !
Si on embauchait un deuxième magasinier ?

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 21 / 36

Autres files d’attente File M/M/2

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) !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 23 / 36

Autres files d’attente File M/M/2

Régime permanent

1 Condition d’existence : < 2µ soit = 2µ <1


2 Remarques préalables :
(1) = 2 (0)
Si i > 0, (i + 1) = (i)
3 Calcul de (0)
taux d’activité du système : a = 2µ =
(1)
Mais a =1 2 (0) = 1 (0).(1 + )

Résultats M/M/2
1
D’où (0) = 1+
Pour i > 0, (i) = 2 i (0)

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 24 / 36


Autres files d’attente File M/M/2

Résultats

Par des calculs simples :


Résultats M/M/2
2 4µ
N= ⇥ = ⇥
1+ 1 2µ + 2µ

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 !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 25 / 36

Autres files d’attente Formule d’Erlang

Population limitée

Notre atelier ne comporte que n techniciens (n = 13)

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
µ µ µ µ

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 27 / 36

Autres files d’attente Formule d’Erlang

Standard téléphonique

n (n 1) 2
/ / / /
0 o 1 o ··· o n 1 o n
µ µ µ µ

Situation symétrique d’une autre file d’attente :

/ / / /
0 o 1 o ··· o n 1 o n
µ 2µ (n 1)µ nµ

taux d’arrivée fixe


nombre de serveurs = nombre de clients
chaque client est son propre serveur
cas du standard téléphonique

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 28 / 36


Autres files d’attente Formule d’Erlang

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)

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 29 / 36

Autres files d’attente Formule d’Erlang

Formule des téléphonistes

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)

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 30 / 36

Autres files d’attente Libre service

Libre service

1 Cas limite du précédent : M/M/


capacité illimitée
chaque client est son propre service : libre service
2 Régime permanent
pas de perte : débit =
N=
i
i! = e et donc

File M/M/
i
(i) = e
i!

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 32 / 36


Autres files d’attente Retour à l’atelier

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

2 Régime permanent (cas inversé de la M/M/n/n)

/ / / /
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!

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 34 / 36

Autres files d’attente Retour à l’atelier

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 !

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 35 / 36

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.

Bernard Roux (INSA Lyon, ICJ) Recherche Opérationnelle Files d’attente 36 / 36


Deuxième partie

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 :

Produit X Y Z W Bénéfice (€/kg)


a 2 4 1 - 0,30
b 4 10 - - 0,40
c 1 - 4 5 0,50
d 2 - 5 10 0,80

Calculez la production optimale, les rejets et le bénéfice correspondants.

Exercice 2 : Une question du cours


Donnez une forme standard pour chacun des problèmes suivants
8 :
8 >
> 0 6 a, b
> >
>
> 0 6 xi
> >
>
>
> >
> 26d65
>
> >
>
>
> x1 + x2 = 4 >
>
< <b 6 a + d
x2 > x3 + 3
>
> >
> a + 3b 6 4
>
> >
>
>
> x 1 6 x 3 + 1 >
>
>
> >
> b c6a d
>
:z = x + 3x (max) >
>
1 2 >
>
:w = a + b + c + d (min)

Exercice 3 : Simplexe à deux phases


Transformez le système suivant en un système équivalent de maximisation, puis résolvez-le par le simplexe
à deux phases : 8
>
> 0 6 xi
>
>
>
>
<2x x2 + x3 > 3
1
>
> x1 + 2x2 x3 > 2
>
>
>
>
:w = 3x + 2x + x (min)
1 2 3

105
106 CHAPITRE 1. ALGORITHME DU SIMPLEXE

Exercice 4 : Modélisation d’un problème de planification


Un atelier de fabrication composé de 4 opérateurs doit assurer une commande exceptionnelle de 130 pièces
en 4 semaines. Il est décidé de procéder à l’embauche d’intérimaires pour exécuter cette commande. Les données
du problème sont les suivantes :
– un opérateur peut être soit producteur, soit formateur, soit inactif dans une semaine donnée
– un formateur forme un intérimaire en une semaine. Ils produisent ensemble alors 1 pièce.
– un producteur peut produire au maximum 5 pièces par semaine (un inactif 0 !)
– les intérimaires seront embauchés au début d’une semaine et licenciés en fin de semaine 4
– un intérimaire formé a les mêmes capacités qu’un opérateur
– une pièce rapporte 200€ (frais autres que salariaux payés) mais tous les employés coûtent 400€/semaine
– un bonus est prévu pour livraison anticipée : il s’élève, par pièce livrée, à 50€ en semaine 1, puis décroît
à 20€ en semaine 2, puis 10€ en semaine 3.
Modélisez le problème.

Pour aller plus loin . . .

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é

Exercice 6 : Répartition des tâches

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 :

– le temps de traitement de A est de : 60/2 = 30


– le temps de traitement de C est de : 50/2 + 40 = 65.

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 .

Exercice 7 : Simplexe à une phase

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)

Il a trouvé comme tableau optimal :

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 ?

Exercice 9 : Localisation d’émetteurs


Une société doit implanter un certain nombre d’émetteurs pour desservir plusieurs localités (indiquées ici
par des numéros). Seul un nombre limité d’emplacements sont disponibles. La société doit donc choisir les
emplacements retenus afin de desservir l’ensemble des localités pour un coût minimal. Les données sont résumées
dans le tableau ci-dessous :
Emplacement Coût Localités desservies
A 3 1, 2, 6
B 5 1, 3, 4
C 7 0, 2, 3, 5, 6
D 6 0, 4, 5

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

Plus court chemin

Exercice 10 : Histoire de seaux


Un ingénieur dispose de trois seaux non gradués de capacités respectives 3, 5 et 8 litres.
Le dernier est rempli à ras bord, et les deux autres sont vides. L’ingénieur désirerait séparer les 8 litres en
deux fois 4 litres. Il désire réaliser cet objectif en un nombre minimal de transvasements, un transvasement
consistant à soulever un seau pour vider toute ou partie de son contenu dans un seul autre seau. Donnez une
solution optimale par une méthode la plus générale possible. Sous quel autre nom connaissez-vous l’algorithme
utilisé ?

Exercice 11 : Renouvellement d’équipements


Un équipement doit être renouvelé très régulièrement. Les prix d’achat sont déterminés à l’avance par contrat
et dépendent assez fortement de la saison. Au bout d’un mois d’utilisation, l’équipement doit donc soit être
renouvelé, soit faire l’objet d’une maintenance lourde, dont le coût croît avec la vétusté. Dans tous les cas,
l’équipement doit être renouvelé au bout de 6 mois d’utilisation.
Un entrepeneur doit planifier sa politique d’achat pour les 18 mois à venir. Déterminez une politique d’achat
et de maintenance de coût minimal sachant que l’utilisation doit démarrer le 2 janvier. Les coûts d’achat et de
maintenance sont indiqués ci-dessous en fonction du prix de l’équipement initial (mois 1).

Mois 1à2 3à5 6 7à8 9 10 à 11 12 à 13 14 15 à 16 17 à 18


Coût d’achat 1 1.3 1.1 0.9 0.8 1.2 1.1 1.2 1.5 1.1

Vétusté 1 mois 2 mois 3 mois 4 mois 5 mois


Coût de maintenance 0.1 0.1 0.2 0.4 0.7

Exercice 12 : Chemin le plus long


On considère un graphe fini G dont tous les arcs sont munis de longueurs (positives ou non).
Le niveau d’un sommet x d’un graphe peut être défini comme le nombre maximal d’arcs d’un chemin dont
x soit l’extrémité finale. Le graphe G est dit décomposable en niveaux s’il est possible de définir le niveau de
chaque sommet x de G.
1. Décrivez un algorithme vérifiant qu’un graphe est décomposable et déterminant les niveaux de tous ses
sommets.
2. Si G est décomposable en niveaux, donnez un algorithme permettant de calculer la longueur maximale
d’un chemin d’un sommet a à tout autre sommet x.
Quel algorithme devrait-on utiliser si G n’est pas décomposable ?

109
110 CHAPITRE 3. PLUS COURT CHEMIN

3. On considère le chantier dont les tâches sont les suivantes :


Tâches A B C D E F G H I J
Durée 4 7 3 4 6 5 10 2 6 8
Après - - - A, C B B, D B F G, H I

En appliquant un des algorithmes précédents, déterminez la durée minimale du chantier.


Planifiez le chantier pour respecter cette durée minimale tout en commençant chaque tâche le plus tard
possible.

Exercice 13 : Taxe Tobin


Un logiciel de spécualtion financière est alimenté en temps réel avec les taux de change entre différentes
monnaies. À un instant donné, le tableau des taux directs possibles est le suivant :

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.

Figure 3.0.1 – James Tobin (1918-2002), prix Nobel d’économie en 1981


Chapitre 4

Flot maximum

Exercice 14 : Amélioration d’un flot


On considère le réseau et le flot décrits ci-dessous :

/ B
? AO
(12,12)

(14,25) (5,8) (3,5) (9,10)



s / p
?C
(3,3) (9,20)
?
(14,25) (9,9) (8,18) (10,10)

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

Déterminez le nombre maximal de conteneurs pouvant être acheminés à bon port.

Exercice 16 : Planning de bureau


Le planning de travail d’un bureau comportant trois employés (X, Y et Z) est actuellement le suivant :

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.

Exercice 17 : Adduction d’eau


On considère le réseau d’eau suivant dont les débits sont notés le long des canalisations :

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 ?

Exercice 18 : Compatibilité d’un flot


On considère le réseau suivant où est indiqué sur chaque arc une capacité minimale, le flot actuel et une
capacité maximale :

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

Exercice 20 : Optimal pour tous ?


Une promotion de huit étudiant(e)s doit se répartir entre quatre options A, B, C et D. Chacune de ses
options offre deux places.
Afin de ne pas perturber l’ambiance par des discussions difficiles, il est décidé de procéder à une affectation
automatique des étudiants.
Pour ce faire, les étudiants indiquent leurs préférences en attribuant librement une note comprise entre 0
pour l’option qu’ils préfèrent et pouvant aller jusqu’à 10 pour une option qu’ils veulent absolument éviter sous
la seule contrainte d’attribuer 20 points.
Les notes attribuées sont les suivantes :
Option A B C D
R 7 7 0 6
S 10 3 7 0
T 10 4 6 0
U 7 0 8 5
V 7 0 5 8
W 3 8 0 9
X 0 10 4 6
Y 10 2 8 0

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

Exercice 21 : Voyageur de commerce orienté


On considère le graphe donné par la matrice suivante :

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 22 : Localisation d’émetteurs (suite)


Voir l’énoncé page 108.
1. Proposez un calcul de pénalité et une stratégie d’exploration pour traiter le cas général correspondant à
cette situation.

Exercice 23 : Circuit versus chemin


Un chemin est dit hamiltonien dans un graphe G s’il passe une fois et une seule par tous les sommets. Il
est dit eulérien s’il passe une fois et une seule par tous les arcs.
Ces deux défintions s’appliquent aux circuits et le problème du voyageur de commerce (en anglais TSP =
Travelling Salesman Problem) consiste à trouver un circuit hamiltonien de longueur minimale.
L’existence d’un chemin hamiltonien ou eulérien n’est pas vraie pour tous les graphes et on parle ainsi d’un
graphe hamiltonien ou eulérien.
Algorithmiquement, les complexités des deux problèmes n’ont rien à voir : la recherche d’un chemin eulérien
est très rapide.
1. Comment procéder pour déterminer dans un graphe un chemin hamiltonien de longueur minimale d’un
sommet A à B lorsque l’on dispose d’un algorithme de recherche de circuit hamiltonien de longueur minimale ?
Répondez à la même question si les sommets extrèmes ne sont pas précisés.
2. Les deux problèmes sont-ils équivalents ?

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

Chaînes de Markov discrètes

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 ?

Exercice 28 : Transfert de véhicules


Une société de location de véhicules posséde deux agences A et B, et un parc de 4 véhicules dédiés aux
clients désirant aller de A en B ou de B en A. Ces trajets durent une journée (prise le matin et remise le soir) et
pour des raisons d’entretien, un véhicule n’est loué qu’une fois par jour. La demande étant parfois déséquilibrée,
une des agences peut être démunie de véhicules et la société peut recourir à des transferts de nuit par camion
de plusieurs véhicules pour pallier ou anticiper une telle situation.
Le nombre de demandes journalières est donné par le tableau suivant :

Sens 0 demande 1 demande 2 demandes


A!B 0.5 0.3 0.2
B!A 0.3 0.6 0.1

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

Chaînes de Markov continues

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.

Exercice 31 : Types de clients


Un système reçoit deux types de clients A et B. Les processus d’arrivée sont supposés poissonniens de taux
respectifs A et B.
Le système ne peut traiter qu’un client à la fois et peut accueillir deux clients en attente (les premiers
arrivés). Les clients trouvant le système saturé sont définitivement perdus. Le temps de traitement d’un client
est indépendant du type, de loi exponentielle et d’espérance 1/ . Mais le fait de changer de type de clients
entraine un surcoût en temps qui augmente le temps de traitement du second client de 20%,
1. On suppose ici que = 2 A = 2 B. Modélisez le système si on traite les cleints par ordre d’arrivée.
Déduisez-en le pourcentage de clients perdus de chaque type.

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 ?

Exercice 32 : Diagramme de fiabilité


Un montage utilise plusieurs composants électroniques dont les durées de vie suivent des lois exponentielles.
Un diagramme résume le lien entre la durée de vie du système et celles des composants :

A= 1000 / A1000
:

$ !
• B : 2000 =•

! $
A1000 / A1000

Tant qu’un chemin reste valide, le système fonctionne.


1. L’indice de chaque composant indiquant son espérance de vie en heures, calculez celle du système.
Chapitre 9

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

Exercice 36 : Station de vélos


Cet exercice, très librement inspiré du système Vélo’v, a fait l’objet de la deuxième partie de l’évaluation de
février 2011(voir page 133).

Exercice 37 : Dérivation téléphonique


Deux autocommutateurs sont reliés par n lignes téléphoniques.
Le trafic s’écoulant entre ces deux points est poissonnien de taux = 10h 1
et la durée d’une communication
est supposée suivre une loi exponentielle d’espérance 4’.
Les appels trouvant le système saturé ne sont pas renouvelés.
1. Si n = 2, modélisez cette situation et calculez le régime permanent.
Déduisez-en le pourcentage d’appels perdus et le nombre moyen de lignes occupées.
2. Comment choisir n pour que moins de 1% des appels soient perdus ?

On désire économiser des lignes en utilisant la proximité géographique de 3 autocommutateurs. Le taux


d’appels entre deux autocommutateurs quelconques est égal à .
3. Quel est le nombre de lignes si chaque couple d’autocommutateurs est relié directement par n lignes ?
4. Pour économiser, une autre structure est proposée :
– chaque couple est relié directement par une seule ligne, utilisée en priorité dès qu’elle est libre (y compris
en déviant une communication en cours)
– les 3 autocommutateurs sont reliés à une station de transit commune chacun par m lignes ;
– le trafic ne pouvant être écoulé directement est acheminé via la station de transit en utilisant donc deux
lignes.
Faites un schéma.
Modélisez le système avec m = 2. Comment calculer le taux d’appels perdus ?
5. Expliquez comment la dérivation peut permettre d’économiser des lignes à plus grande échelle.
Chapitre 10

Études de cas et annales

Exercice 38 : Roulements à bille


Un roulement à billes est constitué d’une bague extérieure (BE), d’une bague intérieure (BI) et d’un roule-
ment (BR). Les rayons de ces trois éléments sont notés E, I et R. Un atelier dispose d’un stock de bagues et
de roulements décrit dans le tableau ci-dessous :

Type Rayon Stock Type Rayon Stock Type Rayon Stock


BE 300 40 BI 260 30 BR 10 26
BE 290 60 BI 256 35 BR 12 25
BE 280 77 BI 254 51 BR 17 75
BE 274 55 BI 250 35 BR 18 50
BI 244 44 BR 20 35
BI 240 34 BR 23 25

Pour obtenir un roulement à billes, il faut assembler un élément de chaque


type en respectant la contrainte : E I 2R = 0. On désire fabriquer un
nombre maximal de roulements à billes avec le stock disponible. Détermi-
nez les différentes combinaisons d’assemblage possibles, et modélisez le pro-
blème. Déduisez-en la répartition entre ces combinaisons afin de produire
un nombre maximal de roulements à billes avec le stock disponible.
On suppose désormais que les stocks d’éléments BR sont augmentés de
sorte que la contrainte associée à ce type de pièce disparaisse. Cela change
t’il la nature du problème ? Modélisez et résolvez ce problème si les stocks
d’éléments BR sont augmentés de 200 dans tous les diamètres.

Exercice 39 : Protocole ALOHA


Des stations au sol communiquent par l’intermédiaire d’un satellite en partageant un même canal. Chaque
station ayant des messages à émettre émet suivant deux modes : 1 (émission) ou 2 (réémission). Les probabilités
d’émission dans chacun des modes sont notées p1 et p2 .
Le protocole est le suivant :
1. le temps est découpé en cycle de durée constante
2. le satellite envoie un top d’horloge en début de cycle
3. chaque station décide alors d’émettre ou de ne pas émettre de manière aléatoire

(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).

Exercice 40 : Ordonnancement de chantier


Un chantier est décomposé en tâches élémentaires dont les durées (positives) sont connues. On désire terminer
le chantier au plus tôt.
Les tâches sont soumises à des contraintes de précédence toutes du type suivant :
– pour qu’une tâcheX puisse démarrer, un certain ensemble de tâches doivent être réalisées.
Ces tâches sont appelées les prédécesseurs de X. On définit ainsi un graphe G dont les tâches sont les sommets.
Pour des raisons de commodités, on rajoute deux tâches fictives, une en début de chantier (précédant toutes les
tâches réelles), une en fin de chantier (les suivant toutes).
Le graphe obtenu est le graphe dit des Potentiels Metra (graphe MPM).
1. Quelle serait la signification d’un circuit dans le graphe MPM ? Déduisez-en l’impossibilité d’un circuit si
le problème est bien posé.
2. On admettra désormais le graphe sans circuit. Montrez que la durée minimale du chantier est égale à la
longueur maximale d’un chemin dans le graphe MPM après avoir précisé la longueur des arcs de ce graphe.
3. Certaines durées de tâches peuvent être réduites linérairement dans une certaine limite. Le surcoût de
cette réduction est proportionnel au nombre de jours gagnés. Il est indiqué par un coût unitaire exprimé en
centaines d’euros.
Un tableau résume toutes ces données :

Tâches Préd. Durée Durée min. Coût unitaire


A - 30 20 11
B - 20
C - 25 20 8
D A 14
E A, B 20 12 10
F C 30 15 5
G D, E 30 16 3
H E, F 32
I F 25

Quel serait le budget nécessaire pour terminer le chantier en 70 jours ?


4. Quelle serait la durée si notre budget est de 13000€ ?
Génie Électrique
5GE - novembre 2009

Recherche Opérationnelle - Durée : 2h00

– 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 Plus court chemin


On considère le graphe donné par le tableau suivant :
B C D E F
A 1/2 3 8
B - 1 3
C 3 - 2
D 1 - 4 3
E 1 - 1/2

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.

2.1 Étude d’une chaîne de Markov discrète


2 3
0, 73 0, 24 0, 03
On considère une chaîne de Markov donnée par la matrice M = 4 0, 73 0, 24 0, 03 5.
0 0, 73 0, 27
Déterminez le régime permanent par la méthode des coupes. Justifiez l’existence de ce régime
permanent.

2.2 Toutes les minutes


Une ligne de fabrication est cadencée toutes les minutes (pour se répérer dans le temps, on consi-
dérera qu’un top est donné chaque minute).
Des pièces arrivent toutes les 20 secondes sur un convoyeur. Un poste de contrôle visuel automatisé
teste à la volée les pièces présentant un certain défaut. La probabilité de présence de ce défaut est
égale à 0, 1.
Un poste de correction du défaut est installé en dérivation du convoyeur principal. Ce poste est
constitué d’une zone d’attente pouvant accueillir 2 pièces suivie d’une machine qui traite une pièce
à la fois en une minute.
Les pièces non défectueuses passent sur le convoyeur sans être orientées vers le poste de correction.
Les pièces défectueuses sont dérivées vers le poste de correction si la zone d’attente n’est pas pleine

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.3 Toutes les 20 secondes


On suppose désormais que la machine peut commencer le traitement dès lors qu’elle est libre et
qu’une pièce arrive ou se trouve dans la zone d’attente (le traitement termine une minute après).
À 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 : la machine démarre
– top + 30 : arrivée pièce n°2 : elle est stockée dans la zone d’attente
– top + 50 : arrivée pièce n°3 : elle est stockée dans la zone d’attente (qui est désormais pleine)
– top + 70 : arrivée pièce n°4 : elle est refusée (poste plein), la machine évacue la pièce traitée
puis démarre le traitement de la pièce n°2.
On désire modéliser le système par une chaîne de Markov en observant le système toutes les 20
secondes après le top de départ. Donnez une modélisation possible sous forme d’un graphe avec les
probabilités des transitions (le régime permanent n’est pas demandé).

2.4 À la fin du traitement d’une pièce


Pour étudier le cas précédent avec une chaîne de Markov plus réduite, on décide d’observer le
système juste après le départ d’une pièce du poste de correction.
Montrez que le système peut être modélisé par une chaîne de Markov de matrice M 00 . Comparez M 0
et M 00 .
Calculez le temps moyen d’une transition en fonction de l’état initial de la transition considérée.
Déduisez-en les performances du système.

2
Génie Électrique
5GE - février 2010

Recherche Opérationnelle - Durée : 3h00

– 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 File d’attente


On considère une file d’attente M/M/1/2. Donnez l’expression du régime permanent en fonction
du taux d’arrivée des clients c et du taux de service µc . Déterminez en fonction de ces mêmes
paramètres, les données suivantes et calculez les résultats obtenus pour c = 2 et µc = 3 :
1. Pourcentage de clients perdus
2. Nombres moyens de clients présents et en attente
3. Temps moyens de présence et d’attente d’un client.

1.3 Cas réel


On considère un système où les clients (en fait des pièces à vérifier) arrivent par paires avec un
taux d’arrivée des paires = 2.h 1 . Deux postes de vérification identiques sont disponibles et la
durée moyenne de traitement d’une pièce est égale à µ1 = 200 . Les temps inter-arrivées et les durées
de traitement sont supposées indépendants et de lois exponentielles. Le système peut accepter
deux paires au maximum (soit quatre pièces en traitement ou en attente de traitement). Une paire
trouvant le système saturé est considérée comme perdue. Chaque paire de pièces est associée à une
référence différente et les pièces sont évacuées appariées comme elles sont arrivées.
Modélisez cette situation par une chaîne de markov continue et vous expliciterez le lien avec la
matrice M donnée ci-dessus.
Déduisez des résultats de la question 1.1 les données suivantes :
1. Pourcentage de pièces perdues
2. Nombre moyens de paires présentes et de pièces en traitement.
3. Temps moyen séparant l’entrée et l’évacuation d’une paire de pièce.
Expliquez en quoi la question 1.2 peut être considérée comme une modélisation simplifiée de la
situation. Que pensez-vous de cette simplification au vu des résultats obtenus ?

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)

Formulez le problème dual P du problème (1).


Déduisez de la question précédente la solution de P en indiquant la valeur de toutes les variables
(variables d’écart comprises).

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

Recherche Opérationnelle - Durée : 2h00

– 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.3 Politique active : réparer


Il est aussi possible de procéder à une réparation de la machine afin de prolonger sa durée de vie.
L’effet d’une telle réparation est de ramener la machine dans un état d’usure faible (état 2). Cette
réparation de courte durée (remplacement de pièces défaillantes) est menée dans la suite immédiate
de l’inspection.
Définisssez une politique faisant intervenir la réparation et modélisez par une chaîne de Markov.
Le coût d’une réparation est égal à : R = kC. Quel est le coût moyen par semaine de renouvellement
et de réparation de la machine ?
La réparation est-elle avantageuse si k = 0, 4 ? Quelle est la valeur limite de k pour laquelle le choix
entre politique active et politque passive est indifférent ?

2
Génie Électrique
5GE - février 2011

Recherche Opérationnelle - Durée : 3h00

– 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.2 Programme dual


Formulez le problème dual P du problème (1). Donnez la correspondance entre variables des deux
problèmes.
La solution (x1 ; x2 ; x3 ; x4 ) = (7; 8; 6; 4) semble être optimale. Si tel est le cas, déterminez les valeurs
d’un maximum de variables des problèmes primal et dual. Déduisez-en les solutions optimales des
deux problèmes.

1.3 Plus court chemin


On considère un graphe G orienté à 5 sommets dont les longeurs des arcs sont égales à :
S2 S3 S4 S5
S1 2 - 3 -
S2 - 3 5 8
S3 - - 2 7
S4 - - - 4
Déterminez par un algorithme que vous préciserez un plus court chemin de S1 à S5 .

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.

2.1 Un premier cas de file d’attente


On considère la chaîne de Markov ci-dessous :

/ / / /
0 o 1 o ··· o n 1 o n
µ µ µ µ

1. Déterminez le régime permanent. Donnez en particulier les probabilités des états 0 et n.


2. Quelle est la notation de Kendall de cette file d’attente ?
3. On considère le cas n = 10, = µ = 1/5 . Calculez le nombre moyen de clients présents, le
taux de perte et le temps moyen de présence d’un client.
4. Répondez aux mêmes questions si n = 10, 2 = µ = 1/5 .

2.2 Un cas moins standard


On considère la chaîne de Markov ci-dessous :

&$
/
0 o 1 o ··· o n 1 o n
µ µ µ µ

1. On considère le cas n = 10, = µ = 1/5 (unité de temps = minute). Déterminez le régime


permanent. Calculez le nombre moyen de clients présents, le taux d’entrée et le temps moyen
de présence d’un client.
2. On considre le cas n = 10, µ = 1. Déterminez le régime permanent ~ = ( (0); . . . ; (n)) en
fonction de et de (0). Donnez une valeur approchée de (0) si = 0, 1.

2.3 Station Einstein


On considère une station de vélos (type Velo’v) comportant 10 emplacements disponibles. Des
clients viennent emprunter un vélo avec un taux d’arrivée s et d’autres viennent déposer un vélo
avec un taux d’arrivée d . Les processus d’arrivée sont supposées markoviens.
Un client venant déposer et trouvant tous les emplacements remplis va déposer son vélo à une
autre station. Un client venant emprunter et ne trouvant pas de vélos disponibles choisit un autre
mode de transport.
Modélisez le système par une file d’attente. Déterminez le pourcentage de clients perdus pour un
dépot et pour un emprunt si s = d = 1/6’.

2.4 Station Croix-Rousse


On considère une station identique en tout point (10 emplacements, s = 1/6 ). La seule différence
est qu’au vu de sa situation géographique, aucun client ne vient déposer de vélos et donc d = 0.
Pour que la station fonctionne, un camion passe à intervalles de durée exponentielle et d’espérance
égale à une heure remettre tous les vélos manquants.
Modélisez le système et donnez le pourcentage de clients perdus. Calculez le nombre moyen de
vélos déposés à chaque passage du camion.

2
Génie Électrique
5GE - novembre 2012

Recherche Opérationnelle - Durée : 1h30

– 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

On considère le réseau électrique suivant :

4/4 2/2 2/8


C /G /K /X
O
6/10 2/6 4/6 5/5
1/2 0/3
6/9
7/12 ✏ 4/4 ✏
A E /H /' L 0/5
7/10 4/4 3/8
0/2
0/8 2/4
✏ 2/6 ' ✏
D Io M 7/10
/Y
8/12 1/2 0/5 0/4 5/5

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

Ce tableau correspond-il à une solution optimale (l’objectif étant de maximiser z) ? Déterminez


la valeur de toutes les variables de cette solution. Quelle est la valeur maximale de la fonction
économique z ?
2. On désire forcer a = 0. Pour ce faire on décide de pivoter sur un terme positif de la deuxième
ligne du tableau. Expliquez votre choix entre les deux pivots possibles. Effectuez le pivotage choisi.
Quelle nouvelle solution obtenez-vous ?
3. Pour continuer l’algorithme, on supprime la colonne de la variable a. Déterminez ainsi la solution
optimale avec la contrainte supplémentaire a = 0.

2
Génie Électrique
5GE - Janvier 2013

Recherche Opérationnelle - Durée : 3h00

– 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

Un service métropolitain réfléchit à une modalité de transports en commun à la demande afin


de répondre à des demandes particulières localisées à l’échelle d’une zone urbaine. Les différentes
questions correspondent à différents scénarii et sont dans une grande part indépendantes.
1. On considère la chaîne de Markov continue suivante :

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

Calculez son régime permanent ( 0, 1, 2 ).


1
2. Les demandes arrivant selon un processus de Poisson avec un taux = 4h , calculez les
probabilités p0 et p1 qu’il arrive exactement 0 et 1 client pendant une durée de 20’. Répondez à la
même question pour une durée de 30’ (probabilités q0 et q1 ).
k
Rappel : Si X suit une loi de Poisson P ( ), alors Pr (X = k) = k! exp ( ).
3. On décide de déclencher le transport dès l’arrivée d’un client. Ce transport dure donc exacte-
ment 20’. Si au retour un nouveau client est en attente, le véhicule repart aussitôt pour 20’. Si
deux clients attendent, le véhicule repart pour 30’. Tout demande est refusée s’il y a déjà deux
clients en attente du retour du véhicule.
Modélisez ce système par une chaîne de Markov discrète en prenant comme instants d’observation
les instants de retour du véhicule. On admet désormais que le régime permanent de ce système est
proche de ( 0, 1, 2 ). Expliquez les raisons de cette hypothèse.
Quelle est la durée moyenne t(i) séparant l’arrivée dans un état i de la prochaine transition (boucle
comprise) ? Déduisez-en les performances du système à savoir pour un client les trois probabilités
que :
1. sa demande soit refusée,
2. sa demande soit acceptée et qu’il voyage seul,
3. sa demande soit acceptée et qu’il voyage avec un autre client.

3 : Dualité

1. On considère le programme linéaire P suivant :


a + 5b + c + d > 20 (E1 )
5a + 6b + 2d > 20 (E2 )
2b + 3c + 5d > 20 (E3 )
a + 4c + 4d > 20 (E4 )
a+b+c+d =w (min)

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

[1] Ruegg A. Processus stochastiques. Presses Polytech. Romandes, 1989.


[2] Brémaud P. Baccelli F. Elements of Queueing Theory. Springer-Verlag, 1994.
[3] Chvátal C. Linear Programming. Freeman, 1983.
[4] Minoux M. Gondran M. Graphes et algorithmes. Eyrolles, 3ème edition, 1995.
[5] INFORMS. George bernard dantzig memorial site, 2005.
[6] Norris J.R. Markov Chains. Cambridge Univ. Press, 1997.

137
138 BIBLIOGRAPHIE
Table des matières

I Cours 5

1. Programmation linéaire 7

2. Dualité 20

3. Plus courts chemins 29

4. Flot maximal 39

5. Affectations optimales 49

6. Tournées optimales 61

7. Chaînes de Markov discrètes 74

8. Chaînes de Markov continues 85

9. Files d’attente 94

II Exercices 103

1 Algorithme du simplexe 105

2 Dualité 107

3 Plus court chemin 109

4 Flot maximum 111

5 Affectations 113

6 Méthodes arborescentes 115

7 Chaînes de Markov discrètes 117

8 Chaînes de Markov continues 119

9 Files d’attente 121

10 Études de cas et annales 123

Bibliographie 137

139

Vous aimerez peut-être aussi