Vous êtes sur la page 1sur 64

1

MATHÉMATIQUES 2
Pascal Laurent

Théorie des graphes


Boussad Mammeri

(bM) 2007 Math-2


Table des matières

I Théorie des graphes 4


1 Notions générales 5
1.1 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.1 Matrice associée . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.2 Graphes particuliers . . . . . . . . . . . . . . . . . . . . . . 7
1.1.3 Graphes associés . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.4 Cheminements . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.5 Connexité . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2 Représentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.1 Structures de données . . . . . . . . . . . . . . . . . . . . . 13
1.2.2 Fonctions de conversion . . . . . . . . . . . . . . . . . . . . 14
1.3 Noyaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.1 Stabilité interne . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.2 Noyaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4 Arbres et arborescences . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.4.1 Arbres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.4.2 Arborescences . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.5 Graphes planaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2 Flots 22
2.1 Flot dans un réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.2 Représentations . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.3 Flot maximum . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2 Algorithme de Ford-Fulkerson . . . . . . . . . . . . . . . . . . . . . 25
2.2.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3 Implémentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.3.1 Optimisation linéaire . . . . . . . . . . . . . . . . . . . . . . 29
2.3.2 Un programme classique . . . . . . . . . . . . . . . . . . . . 29
2.4 Aspects algébriques . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4.1 Flots et tensions . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4.2 Flots bornés . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3 Couplage 33
3.1 Affectation optimale . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1.2 Représentation matricielle . . . . . . . . . . . . . . . . . . . 33

2
TABLE DES MATIÈRES 3

3.2 Résolution par flot maximum . . . . . . . . . . . . . . . . . . . . . . 34


3.2.1 Graphe initial des zéros . . . . . . . . . . . . . . . . . . . . . 34
3.2.2 Adjonction d’arcs . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.3 Une chaîne améliorante est alternée . . . . . . . . . . . . . . 35
3.3 Algorithme hongrois . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3.1 Description sur un exemple . . . . . . . . . . . . . . . . . . . 35
3.3.2 Version matricielle de l’algorithme hongrois . . . . . . . . . . 37

4 Chemins extrémaux 38
4.1 Problème du plus court chemin . . . . . . . . . . . . . . . . . . . . . 38
4.1.1 Algorithme de Ford . . . . . . . . . . . . . . . . . . . . . . . 38
4.1.2 Ordonnancement . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2 Méthode matricielle . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2.1 Matrices et opérations symboliques . . . . . . . . . . . . . . 41
4.2.2 Ordonnancement par la méthode matricielle . . . . . . . . . . 42
4.2.3 Exemple de résolution matricielle . . . . . . . . . . . . . . . 43

II Exercices 44
1 Graphes 45
1.1 Représentations d’un graphe . . . . . . . . . . . . . . . . . . . . . . 45
1.2 Cheminements dans un graphe . . . . . . . . . . . . . . . . . . . . . 46
1.3 Stabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
1.4 Graphes particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

2 Flots et chemins dans un réseau 49


2.1 Flot maximum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.2 Ordonnancement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.3 Couplage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3 Programmation linéaire 53
3.1 Engrais chimiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1.1 Méthode géométrique . . . . . . . . . . . . . . . . . . . . . 53
3.1.2 Méthode des tableaux . . . . . . . . . . . . . . . . . . . . . 54
3.1.3 Perturbation des données . . . . . . . . . . . . . . . . . . . . 54
3.1.4 Autre point de vue . . . . . . . . . . . . . . . . . . . . . . . 55
3.2 Approximation du problème du profil d’une route . . . . . . . . . . . 55

4 Algorithme du simplexe 56
4.1 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.2 Inéquations linéaires . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.3 Méthode du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.4 Dualité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

(bM) 2007 Math-2


Première partie

Théorie des graphes

4
Chapitre 1

Notions générales

Définitions d’un graphe


Un graphe est un ensemble de points (appelés sommets), muni d’une relation bi-
naire dont les couples sont appelés arcs.1

Notation : G = (X, U ), avec :


X = ensemble des sommets
U = ensemble des arcs

F IG . 1.1 – Exemple de graphe [GR1]


X= 1 2 3 4 5
      
U= 1 2 ; 1 4 ; 4 2 ; 2 3 ; 3 4 ; 4 5

1.1 Terminologie
Notions immédiates :
– arête : arc non orienté (ou orienté dans les deux sens) ;
– sommets adjacents à x : successeurs Γ(x) ou prédécesseurs Γ−1 (x) ;
– sommets reliés à x : descendants ou ascendants ;
– arcs incidents à x : entrants ω − (x) ou sortants ω + (x).

1 On ne s’intéresse pas à la façon de placer les sommets sur un dessin.

5
6 CHAPITRE 1. NOTIONS GÉNÉRALES

Sommets particuliers
– racine : sommet sans prédécesseur ;
– feuille : sommet sans successeur ;
– source : racine ascendant de tout sommet ;
– puits : feuille descendant de tout sommet.

Graphes et multigraphes
Nous nous limiterons ici aux graphes simples : qui comportent un seul arc ou arête
entre deux sommets.
Un graphe non simple est un multigraphe. Exemple : les ponts de Königsberg
(Fig. 1.2).

F IG . 1.2 – Exemple de multigraphe

1.1.1 Matrice associée


La matrice associée à un graphe est définie par :

Bi,j = existence de l’arc (i,j)

Cette notion d’existence peut être notée 0/1 (ou False, True) pour un graphe simple.2
Exemple (matrice du graphe de la Fig.1.1, p. 5) :
 
0 1 0 1 0
0 0 1 0 0 
 
B= 0 0 0 1 1 

0 1 0 0 0 
0 0 0 0 0

1.1.1.1 Quelques propriétés


– Bkj = 0 ∀k signifie que le sommet j est une racine.
– B
Pik = 0 ∀k signifie que le sommet i est une feuille.
+
– B
k ik = Card(ω (i)) est le demi-degré extérieur de i (nombre d’arcs
partant de i).
2 Si Bij est d’un autre type, cela peut représenter un multigraphe ou un graphe simple valué.

Math-2 (bM) 2007


CHAPITRE 1. NOTIONS GÉNÉRALES 7

P
– Bkj = Card(ω − (j))
k est le demi-degré intérieur de j (nombre d’arcs
arrivant vers j).
– Bij + Bji = 0 signifie que i et j ne sont pas adjacents.
Curiosité : Bii = 1 signifie la présence d’une boucle (arc à origine et extrémité
confondues) au sommet i. C’est une configuration que nous avons exclue.

1.1.2 Graphes particuliers


Graphe symétrique
Définition : (x, y) ∈ U =⇒ (y, x) ∈ U
Propriété : B est symétrique : Bij = Bji
Exemple : graphe simple non orienté.

Graphe antisymétrique
Définition : (x, y) ∈ U =⇒ (y, x) ∈ /U
Propriété 3 : Bij + Bji ≤ 1
Exemple : graphe orienté simple.

Graphe complet
Définition : chaque paire de sommets est reliée par un arc
Propriété : Bij + Bij ≥ 1

Clique
Définition : une clique est un graphe symétrique complet
Propriété : Bij + Bji = 2

Tournoi
Définition : un tournoi est un graphe antisymétrique complet
Propriété : Bij + Bji = 1 (i 6= j)

1.1.3 Graphes associés


Graphe inversé G’
Définition : on inverse le sens des arcs

Propriété : Bij = Bji (c’est ici la matrice transposée)

Graphe complémentaire G∗
Définition : / U∗
(x, y) ∈ U =⇒ (x, y) ∈

Propriété : Bij + Bij = 1.

Sous-graphe
Définition : on obtient un sous-graphe en supprimant des sommets
(et les arcs incidents, comme origine ou comme extrémité)
Propriété : la matrice associée est une sous-matrice.
3 Noter que B n’est pas antisymétrique.

(bM) 2007 Math-2


8 CHAPITRE 1. NOTIONS GÉNÉRALES

Graphe partiel
Définition : on obtient un graphe partiel en supprimant des arcs
Propriété : la matrice associée (de même dimension) comporte plus de zéros.

1.1.3.1 Exemple
– (X, U ) = villes et routes de France,
– sous-graphe des villes de Bretagne,
– graphe partiel des routes nationales,
– sous-graphe partiel des routes nationales de Bretagne.

1.1.4 Cheminements
1.1.4.1 Chemins et chaînes
Chemins Un chemin est une suite d’arcs continue.4
Exemple de cheminement (passeur, loup, chèvre et chou) : Fig. 1.3, p. 8.

F IG . 1.3 – Passeur, loup, chèvre, choux

Trouver un chemin

Algo 1.1 [Trémaux] Pour trouver un chemin entre a et b : Fig. 1.4, p. 8.

F IG . 1.4 – Algorithme de Trémaux


– Depuis a, suivre un chemin (quelconque) aussi loin que possible en marquant (+)
chaque arc parcouru ;
– dans une impasse, on rétrograde en marquant une seconde fois (par -) l’arc ;
– si on arrive (par un arc une seule fois marqué) à un sommet déjà exploré, on rétro-
grade (donc en marquant -) ;
– soit x le sommet atteint en rétrogradant, alors :
1. ou bien il reste un arc non marqué ;
2. ou bien on repart par l’arc (marqué une fois) utilisé la première fois.
– On arrête lorsqu’on arrive en b ou bien lorsqu’il n’y a plus aucune possibilité.

4 en convenant de qualifier ainsi la propriété intuitive suivante : l’extrémité de tout arc est l’origine du

suivant, sauf bien entendu pour le premier et le dernier.

Math-2 (bM) 2007


CHAPITRE 1. NOTIONS GÉNÉRALES 9

Cas particuliers de l’algorithme de Trémaux :


– Si le graphe est planaire, prendre toujours à droite.
– Si le graphe est symétrique, tendre une ficelle entre a et b.

F IG . 1.5 – Chemins dans un graphe [GR2]

Traitement matriciel Pour le graphe de la Fig. 1.5, de matrice associée :


 
0 1 0 1 0
0 0 1 1 0
 
B= 0 0 0 0 1

0 0 1 0 0
0 0 0 0 0

les puissances successives de B sont :


   
0 0 1 1 0 0 0 0 1 1
0 0 0 1 1 0 0 0 0 0
B2 =  3
B4 = 0
   
0 0 0 0 0 B = 0 0 0 0 0
 

0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

On observe qu’un élément (i, j) 6= 0 indique la présence d’un chemin entre i et j :


– de longueur 1 dans B
– de longueur 2 dans B 2
– ...
Noter qu’on peut faire le produit matriciel ou bien en booléen (ce qui donne la
présence des chemins) ou bien en décimal (on obtient alors aussi leur nombre). 5

Chaînes Une chaîne est une suite d’arêtes continue.

1.1.4.2 Cheminements particuliers


Déf 1.1
– Chemin élémentaire : dont les sommets sont distincts.
– Chemin simple : dont les arcs sont distincts.

Si on remplace chemin par chaîne (chemin non orienté), on obtient toutes les no-
tions correspondantes pour un graphe symétrique.
5 Si on le fait en booléen, il peut être utile de remarquer que + est un or et que * est un and.

(bM) 2007 Math-2


10 CHAPITRE 1. NOTIONS GÉNÉRALES

Prop 1.1 Il est clair que :

élémentaire =⇒ simple

Eulérien
– Chemin eulérien : chemin simple qui passe par tous les arcs.
– Chaîne eulérienne : chaîne simple qui passe par toutes les arêtes.

Ex 1.1 L’enveloppe postale (Fig. 1.6) peut être tracée sans lever la plume.

F IG . 1.6 – Chaîne eulérienne (4 2 3 1 2 5 3 4 5)

Prop 1.2 Si G possède une chaîne eulérienne, alors G possède deux sommets (et deux
seulement) de degré impair (l’origine et l’extrémité de la chaîne). 6

Hamiltonien
– Chemin hamiltonien : chemin élémentaire qui passe par tous les sommets.
– Chaîne hamiltonienne : chaîne élémentaire qui passe par tous les sommets.

Thm 1.1 [König] Dans un graphe complet, il y a au moins un chemin hamiltonien.

1.1.4.3 Circuits
Un circuit est un chemin simple fermé.

Tester l’absence de circuits

Algo 1.2 Pour tester l’absence de circuits :


– Marquer tout sommet sans successeur,
– marquer tout sommet dont tous les successeurs sont marqués.
– Si on parvient à marquer tous les sommets, le graphe est sans circuits.

Pour le graphe de la Fig. (1.5), on marque ainsi successivement : (5,3,4,2,1).

Matriciellement cela revient à observer que si on revient sur un sommet, l’une des
matrices B k comporte alors un terme diagonal non nul (car un graphe à n sommets
admet un chemin de plus de n arcs si et seulement si il comporte un circuit).
6 ce qui veut dire que la chaîne n’est pas fermée (ce n’est pas un cycle).

Math-2 (bM) 2007


CHAPITRE 1. NOTIONS GÉNÉRALES 11

C’est le cas pour le graphe de la Fig. 1.1, p. 5.

Circuit hamiltonien

Ex 1.2 On peut tracer un circuit hamiltonien sur le dodécaèdre : Fig. 1.7, p. 11.

F IG . 1.7 – Circuit hamiltonien

1.1.4.4 Cycles

Un cycle est une chaîne simple fermée.

Algo 1.3 La construction d’un cycle peut se faire de la manière suivante :


1. choisir x0 ,
2. puis une suite d’arcs (x0 , x1 ), (x1 , x2 ), . . . en n’empruntant un arc incident à xi
que si :
– il y reste un nombre impair de tels arcs non encore pris ;
– ou bien si tous les autres arcs sont déjà dans le cycle.

Pour rechercher un cycle eulérien vérifier si, dans la matrice associée, le nombre
de 1 de toute ligne et de toute colonne est pair.

Ex 1.3 Sur le graphe des ponts de Königsberg (Fig. 1.2, p. 6) on ne peut pas faire de
cycle eulérien.

En effet :
 
0 0 1 1
0 0 1 1
B=
1

1 0 1
1 1 1 0

(bM) 2007 Math-2


12 CHAPITRE 1. NOTIONS GÉNÉRALES

1.1.5 Connexité
Déf 1.2 Soit sur G la relation d’équivalence :
x ≈ y si x et y sont reliés par une chaîne 7
Les composantes connexes sont les classes d’équivalence du quotient de G par cette
relation.

Une composante connexe peut être considérée comme un problème indépendant.


Un point d’articulation est un sommet dont la suppression (avec les arcs incidents)
rend le graphe non connexe.

Déf 1.3 Si on remplace chaîne par chemin dans la définition précédente, on obtient les
composantes fortement connexes :
– deux sommets d’une composante connexe sont reliés par une chaîne ;
– deux sommets d’une composante fortement connexe sont reliés par un chemin.

Graphe réduit
Déf 1.4 Le graphe réduit est le graphe :
– dont les sommets sont les composantes fortement connexes (dites maximales)
qui comportent le plus de sommets,
– et les arcs les liens entre celles-ci.

Dans l’exemple Fig.1.8, si on calcule (en booléen) :


 
1 1 1 1 1
0 1 1 1 1
(I + B)4 = 
 
0 1 1 1 1
0 1 1 1 1
0 0 0 0 1

on exhibe le graphe réduit :

1 −→ 2, 3, 4 −→ 5

F IG . 1.8 – Exemple de graphe[GR2]

7 N.B. Une chaîne, que le graphe soit orienté ou non.

Math-2 (bM) 2007


CHAPITRE 1. NOTIONS GÉNÉRALES 13

1.2 Représentations
La façon dont on ordonne les sommets d’un graphe est cruciale pour la recherche
d’informations sur le graphe.

1.2.1 Structures de données


Exemple (idem [GR2] Fig. 1.5, p. 9) :

Dictionnaire Le dictionnaire décrit les successeurs de chaque sommet :


1 → [ 2, 4 ]
2 → [ 3, 4 ]
3 → [5]
4 → [3]
5 → [⊘]

Matrice associée La matrice associée décrit les liaisons entre sommets :


 
0 1 0 1 0
0 0 1 1 0
 
B= 0 0 0 0 1

0 0 1 0 0
0 0 0 0 0

Matrice d’adjacence La matrice d’adjacence décrit les arcs :


1 1
-1 1 1
M= -1 -1 1
-1 -1 1
-1

(bM) 2007 Math-2


14 CHAPITRE 1. NOTIONS GÉNÉRALES

1.2.2 Fonctions de conversion


On convient de représenter le dictionnaire par deux vecteurs (méthode classique
utilisée pour les maillages).
Pour [GR2], p. 13, on aurait ainsi : 8

D = [ 2,4, 3, 4,5, 2, 00, 00 ]


C = [ 1, 3, 4, 6, 7, 08 ]

Exemples de fonctions de conversion :

function [ B ] = d2b (D, C)


//
// conversion : Dictionnaire -> Matrice associee
n = max (D)
B = zeros (n,n)
for i = 1:n
for k = C(i) : (C(i+1) - 1)
j = D(k)
if j > 0 then B(i,j) = 1, end
end
end
endfunction // ...

function [ B ] = m2b (M)


//
// conversion : Incidence -> Matrice associee
[ n, p ] = size (M)
B = zeros (n,n)
for a = 1:p
[ gg, i ] = max (M(:,a))
[ gg, j ] = min (M(:,a))
B(i,j) = 1
end
endfunction // ...

8 Les zéros attirent simplement l’attention . . .

Math-2 (bM) 2007


CHAPITRE 1. NOTIONS GÉNÉRALES 15

1.3 Noyaux
1.3.1 Stabilité interne
Déf 1.5 Un sous-ensemble A de sommets est dit stable s’il ne contient pas d’arcs :

A ∩ Γ(A) = ⊘

On appelle nombre de stabilité, noté α(G), le nombre maximal de


sommets pouvant former un sous-ensemble stable.

Déf 1.6 Un sous-ensemble stable est dit maximal s’il n’est contenu dans aucun autre
stable.

A un stable maximal, on ne peut pas ajouter un sommet sans rompre


sa stabilité.

1.3.1.1 Exemple des huit dames

En théorie des jeux, le graphe du jeu est tel que :


– un sommet = un état du jeu,
– un arc = un coup possible (entre deux états).
Dans le problème des huit dames sur l’échiquier, ce nombre 8 est le α(G) du graphe
(symétrique) à 64 sommets où une arête existe si une dame peut se déplacer (en un
coup) entre les deux sommets de l’arête.
Ce problème admet 92 solutions (dont Gauss en avait trouvé 72).
En voici quelques-unes :
   
. . . • . . . . . • . . . . . .
. . . . . • . . . . . . • . . .
   
. . . . . . . • . . . . . . • .
   
. • . . . . . . • . . . . . . .
   
. . . . . . • . . . • . . . . .
   
• . . . . . . . . . . . . . . •
   
. . • . . . . . . . . . . • . .
. . . . • . . . . . . • . . . .

 
6 4 7 1 8 2 5 3 4 1 5 8 2 7 3 6

On peut compléter la première par rotations de π/2 et la seconde de π/4.

1.3.1.2 Coloriage d’une carte

Soit à colorier une carte de 10 pays (Fig. 1.9), dont la matrice binaire (à compléter
par symétrie) représente le graphe des incompatibilités (Bij = 1 si i et j sont limi-

(bM) 2007 Math-2


16 CHAPITRE 1. NOTIONS GÉNÉRALES

trophes) :
 
• 0 1 1 0 0 1 0 0 0 A
 • 0 1 0 1 0 1 1 0 B
 

 • 0 1 0 1 1 0 0
 CH

 • 0 1 0 1 1 0
 D
 • 1 0 0 0 1 E
B= 

 • 1 1 0 0
 F

 • 0 0 0
 I

 • 0 0
 L
 • 0 NL
• P

F IG . 1.9 – Carte de géographie

Le problème revient à trouver une partition de X en un nombre minimum (appelé


nombre chromatique) de sous-ensembles stables.

1.3.1.3 Recouvrement

Le tableau ci-dessous indique quelques sous-ensembles stables (pays en ligne, stables


en colonne) :

1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 1 0 0 0 1 1 1 1 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
1 0 1 0 0 1 0 1 0 1 0 1 0 1 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1 0 0 1 1 1 1
0 0 1 0 1 0 0 0 0 1 1 0 0 1 1
0 0 1 1 1 0 0 0 0 1 1 0 0 1 1
0 1 0 1 1 0 1 0 1 0 1 0 1 0 1
↑ ↑ ↑ ↑

On peut vérifier que quatre suffisent à recouvrir tous les pays, par exemple (4,6,13,15) :

Math-2 (bM) 2007


CHAPITRE 1. NOTIONS GÉNÉRALES 17

Couleur A = 1, 6, 9, 10
Couleur B = 2, 3, 5
Couleur C = 4, 7
Couleur D = 8

1.3.1.4 Programmation en nombres entiers


On peut aussi faire une formulation de ce problème de recouvrement sous forme
d’une optimisation linéaire en nombres entiers binaires.
On pose (tableau ci-dessus) :
Tik = 1 si i est coloré par k
et on introduit un vecteur :
ck = 1 si k est retenue
Le programme linéaire consiste à minimiser le nombre de couleurs :
X
min ck
k

sous la contrainte que chaque pays doit apparaître au moins une fois :
X
Tik ck ≥ 1 ∀i
k

1.3.2 Noyaux
1.3.2.1 Ensembles absorbants
Déf 1.7 Un sous-ensemble A de sommets (d’un graphe G) est dit absorbant si chaque
sommet extérieur à A a un successeur (au moins un) dans A :

∀x ∈
/A A ∩ Γ(x) 6= ⊘

Cela veut dire que, de n’importe quel sommet extérieur à A, on peut


entrer dans A par un seul arc (application en théorie des jeux, où un arc
représente un coup possible).

Déf 1.8 Un sous-ensemble absorbant A est dit minimal si on ne peut lui retirer un
sommet sans rompre son absorbance.

1.3.2.2 Noyaux
Déf 1.9 Un sous-ensemble A de sommets d’un graphe est un noyau s’il est à la fois
stable et absorbant.

C’est une notion utilisée en théorie des jeux car le joueur qui se trouve dans un
noyau (ensemble des positions gagnantes) est obligé d’en sortir alors que son adversaire
peut toujours y rentrer.
On s’en sert usuellement aussi pour effectuer un premier choix (Cf. p.19).

Ex 1.4 Une feuille appartient à tout noyau et le prédécesseur d’une feuille à aucun.

(bM) 2007 Math-2


18 CHAPITRE 1. NOTIONS GÉNÉRALES

Thm 1.2 Un noyau est stable maximal.

En effet, comme il est absorbant, on ne peut ajouter aucun sommet sans rompre la
stabilité.

Thm 1.3 [Corollaire] 9 Si G est symétrique, un sous-ensemble stable maximal est


absorbant, donc un noyau.

En effet, maximal =⇒ tout sommet extérieur est relié : c’est la définition de l’ab-
sorbance dans le cas symétrique.

Thm 1.4 Un graphe fini orienté, sans circuits, a un noyau unique

Theorème admis (la démonstration se fait par un algorithme qui partitionne les
sommets : dans le noyau et hors de lui).

Thm 1.5 Soit F (Y, z) la fonction caractéristique de l’ensemble Y , alors :

Y est un noyau ⇐⇒ F (Y, t) = 1 − max (F (Y, z))


z∈Γ(t)

En effet :
1. Si Y est un noyau, alors :
– F (Y, t) = 1 =⇒ t ∈ Y =⇒ F (Y, z) = 0 pour z ∈ Γ(t)
– F (Y, t) = 0 =⇒ t ∈ / Y =⇒ ∃z ∈ Γ(t) i.e. F (Y, z) = 1
2. Réciproquement, si on a la relation proposée :
– t ∈ Y =⇒ F (Y, t) = 1 =⇒ F (Y, z) = 0 : aucun z dans Γ(t)
(stabilité).
– t∈/ Y =⇒ F (Y, t) = 0 =⇒ F (Y, z) = 1 : il y a un z dans Γ(t)
(absorbant).

Thm 1.6 L’intersection de deux noyaux n’est jamais un noyau.

En effet, soient A et B deux noyaux :


– si A et B sont disjoints, il n’y rien à démontrer.
– Si B inclus dans A, on peut trouver un x hors de B qui est relié à
B, donc rompt la stabilité de A.
– S’il n’y a pas inclusion (B ∩ A 6= ⊘), il existe un c dans A ∩ B relié
à un a dans A hors de B : idem.

1.3.2.3 Algorithme de construction du noyau


Dans le dictionnaire du graphe :
– Marquer toute ligne vide.
– Barrer toute ligne où apparaît l’indice d’une ligne marquée.
– Rayer l’indice des lignes barrée dans toute ligne non encore barrée.
– Itérer juqu’à marquer ou barrer toutes les lignes.
Le noyau est constitué des sommets correspondant aux lignes marquées.
9 C’est la réciproque du théorème précédent, dans le cas symétrique.

Math-2 (bM) 2007


CHAPITRE 1. NOTIONS GÉNÉRALES 19

1.3.2.4 Exemple
Soit à effectuer un premier choix parmi 6 candidats au moyen des résultats suivants,
obtenus à 4 tests :
a | 18 13 15 14
b | 17 12 14 10
c | 15 11 19 13
d | 12 10 9 2
e | 13 16 13 6
f | 10 15 10 3
On construit le graphe orienté où existe une arête (x, y) si :
– y a eu une meilleure note que x à au moins l’un des tests,
– y n’a aucune note inférieure, dans aucun des tests.

F IG . 1.10 – Noyau de sélection

Le noyau de ce graphe (ici a et e) fournit une première sélection.

1.4 Arbres et arborescences


1.4.1 Arbres
Prop 1.3 Etant données les trois propriétés (dans un graphe G à n sommets) :
1. G est connexe
2. G n’a aucun cycle
3. G possède n − 1 arcs.
deux quelconques d’entre elles impliquent la troisième.

Déf 1.10 Un graphe vérifiant les propriétés précédentes est appelé arbre.

1.4.1.1 Autres propriétés


Ex 1.5 Si on ajoute une arête à un arbre, on crée un cycle (et un seul).

Ex 1.6 Si on retire une arête à un arbre, on rompt la connexité.

Ex 1.7 Dans un arbre, il y a une chaîne (et une seule) entre deux sommets.

(bM) 2007 Math-2


20 CHAPITRE 1. NOTIONS GÉNÉRALES

1.4.1.2 Arbre minimum


Soit un ensemble de n sommets, dont on veut relier chaque paire par un chemin.
Etant donné d’autre part le coût de construction de chaque arête, on se propose de
construire le graphe de coût minimum.

Algorithme de Kruskal (pour la recherche de l’arbre minimum) :


1. Initialement : aucune arête.
2. Etape zéro : construire les 2 arêtes de coûts minimum.
3. Pour k=3 :n-1
choisir l’arête
– la moins coûteuse
– qui ne ferme aucun cycle avec les arêtes déjà retenues.

1.4.2 Arborescences
Déf 1.11 Une arborescence de racine r est un graphe sans circuit et tel que :
1. tout sommet x, autre que r, a un seul prédécesseur ;
2. la racine r n’a pas de prédécesseur ;

1.4.2.1 Propriétés
Soit G une arborescence.
1. G n’a pas de cycle.
2. Le nombre d’arêtes est : m = n − 1
3. G est un arbre, donc connexe.
4. G possède au moins une feuille.
5. Il existe une chemin unique joignant la racine à tout autre sommet.
6. Deux sommets de même niveau n’ont aucun descendant commun (cette propriété
induit la notion de branche issue d’un sommet).

1.4.2.2 Branch and bound


Un problème de prise de décisions est représenté par une arborescence :
– les feuilles sont les solutions ;
– chaque solution a un coût, que l’on sait calculer.
Bien entendu, il faut choisir la structure de cette arborescence (chaque niveau re-
présente une étape, et les choix peuvent être nombreux).
Par delà les méthodes heuristiques, il convient de savoir répondre aux questions
suivantes, dont dépend l’efficacité de la procédure de résolution :
1. comment trouver une bonne solution initiale, de démarrage ?
2. comment couper certaines branches de l’arborescence, qui n’amélioreront pas la
solution ? (bound)
3. où vaut-il mieux se brancher, en cours d’exploration ? (branch)

Math-2 (bM) 2007


CHAPITRE 1. NOTIONS GÉNÉRALES 21

1.5 Graphes planaires


Un graphe est planaire si on peut le dessiner sur une feuille sans que deux arêtes se
coupent.

Formule d’Euler
Prop 1.4 Dans un graphe planaire à S sommets, F faces et A arêtes, on a :

S+F =A+2

Application : il n’existe que cinq polyèdres réguliers de l’espace R3 .

Graphe dual
Déf 1.12 Pour obtenir le graphe dual d’un graphe planaire connexe :
– On place un sommet dans chaque face,
– et on réunit par une arête coupant une fois et une seule toute arête commune aux
deux faces.
Exemples de graphes duals (entre parenthèses S et F ) :
– le cube (6,8) et l’octaèdre (8,6) ;
– l’icosaèdre (12,20) et le dodécaèdre (20,12).

Prop 1.5 Le dual d’un graphe planaire est planaire.

Nombre chromatique
Thm 1.7 Un graphe planaire est 4-chromatique.

Théorème de Kuratowski
Thm 1.8 Un graphe est planaire si et seulement si il ne contient pas l’un des deux
graphes (complets) K5 et K33 .

Il est clair que K5 et K33 ne sont pas planaires (formule d’Euler non vérifiée). La
réciproque montre qu’ils sont, de ce point de vue, minimaux.

F IG . 1.11 – Graphes non planaires : K5 , K33

(bM) 2007 Math-2


Chapitre 2

Flots

2.1 Flot dans un réseau


2.1.1 Définitions
2.1.1.1 Réseau
On appelle réseau (network) un graphe G = (X, U ) :
– orienté, connexe, sans circuit ;
– possédant une source a et un puits b ;
– à arcs u valués par des capacités c(u) ≥ 0.
Rappel : on note ω − (S) l’ensemble des arcs incidents vers S (entrants) et ω + (S)
l’ensemble des arcs sortants. 1

2.1.1.2 Flot
Un flot est une fonction ϕ(u) à valeurs entières, définie sur U , avec les popriétés
suivantes :
1. valeurs positives : ∀u ϕ(u) ≥ 0
2
2. valeurs bornées : ∀u ϕ(u) ≤ c(u)
3. conservation (loi de Kirchhoff) :
X X
∀x 6= a, b ϕ(u) = ϕ(u)
u∈ω − (x) u∈ω + (x)

La valeur du flot est la quantité qui arrive au puits b. C’est aussi la quantité qui part
de la source a, et il est parfois commode d’introduire un arc (dit de retour) :

r = (b, a)

de sorte que : X X
ϕ(r) = ϕ(u) = ϕ(u)
u∈ω + (a) u∈ω − (b)

1 L’ensemble ω(S) = ω − (S) ∪ ω − (S) des arcs ayant une extrémité (et une seule) dans S s’appelle un

cocycle.
2 Si on a égalité, l’arc u est dit saturé.

22
CHAPITRE 2. FLOTS 23

Cette quantité étant entière, on parlera souvent d’unités de matière circulant dans
le réseau.3

2.1.2 Représentations
Soit le réseau de la Fig. 2.1.

F IG . 2.1 – Exemple de réseau [GR3]

Sa matrice d’adjacence M (sans l’arc de retour) s’écrit :

1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
-1 0 0 1 1 1 0 0 0 0 0 0 0 0 0
0 -1 0 0 0 0 1 1 1 0 0 0 0 0 0
0 0 -1 0 0 0 0 0 0 1 1 0 0 0 0
0 0 0 -1 0 0 -1 0 0 0 0 1 0 0 0
0 0 0 0 -1 0 0 -1 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 -1 -1 0 0 0 1 0
0 0 0 0 0 -1 0 0 0 0 -1 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 -1 -1 -1 -1

et le vecteur C des capacités :

45 25 20 10 15 20 20 5 15 10 10 30 10 20 30

Exemple de flot :

Φ = 20 20 20 10 10 0 20 0 0 10 10 30 10 10 10

pour lequel on peut vérifier que :


3 Cette condition de type entier est simplement numérique : il existe une quantité (atomique) minimum

pour la modification d’un flot.

(bM) 2007 Math-2


24 CHAPITRE 2. FLOTS

MΦ = (60, 0, . . . , 0, -60) c’est un flot


Φ ≤C il est compatible
k M Φ k∞ = 60 on a sa valeur

2.1.3 Flot maximum

On se propose de maximiser la valeur ϕ(r) du flot.

2.1.3.1 Coupe

Déf 2.1 Soit un ensemble B de sommets contenant b.


– Une coupe est un ensemble K d’arcs ayant leur extrémité dans B (et pas leur
origine).
– La capacité d’une coupe est la somme des capacités de ses arcs :

X
C(K) = c(u)
u∈K

Propriété d’une coupe Il résulte de la définition que tout ce qui arrive en b doit
traverser la coupe. Donc :

Prop 2.1

ϕ(r) ≤ C(K) ∀K

La valeur d’un flot ne peut dépasser la capacité d’une coupe.

2.1.3.2 Flot maximum, coupe minimum

Prop 2.2 Si on a trouvé une coupe K telle que :

ϕ(r) = C(K)

alors :
– le flot est maximum : on ne peut rien ajouter sur cette coupe K ;
– C(K) est minimum : ϕ(r) ne pourrait passer sur C(K ′ ) < C(K).

Math-2 (bM) 2007


CHAPITRE 2. FLOTS 25

2.2 Algorithme de Ford-Fulkerson


L’algorithme de Ford-Fulkerson construit un flot et détermine une coupe qui véri-
fient le critère d’optimalité.

2.2.1 Description
La coupe s’obtient en réalisant une partition (dynamique) des sommets en sommets
marqués et non marqués.

2.2.1.1 Obtention d’un flot complet


Le flot est construit par améliorations successives jusqu’à l’obtention d’un flot com-
plet

Déf 2.2 Un flot est dit complet si tout chemin allant de a à b comporte au moins un arc
saturé

Tant qu’il existe un chemin de a à b n’ayant aucun arc saturé, on peut améliorer le
flot sur ce chemin.
On le détermine de façon systématique en balayant les arcs depuis chaque noeud,
dans un ordre convenu (arbitraire).

2.2.1.2 Marquage des sommets


Le marquage des sommets tente de construire une chaîne allant de a à b.
Sur cette chaîne, certains arcs seront parcourus dans le bon sens (arc progressifs) et
d’autres en sens contraire (régressifs), choisis d’après la règle :
– un arc progressif v doit vérifier : ϕ(v) < c(v)
– un arc régressif w doit vérifier : ϕ(w) > 0

→ Si on arrive à marquer b, la chaîne ainsi construite est dite améliorante, car


on peut augmenter le flot :
– en ajoutant une unité sur tout arc progressif v,
– en retranchant une unité sur tout arc régressif w.
La loi de Kirchhoff reste vérifiée sur les sommets de la chaîne, sauf en
a et en b, où on a ajouté une unité. 4

→ S’il est impossible de marquer b, cette partition des sommets (en marqués et
non marqués) détermine une coupe d’arcs (d, f ) ayant, par construction, la propriété
suivante :
– si c’est d qui est marqué, alors ϕ(u) = c(u),
– si c’est f , alors ϕ(u) = 0
i.e. :
ϕ(K) = C(K)
et on conclut d’après le lemme (flot maximum – coupe minimum) : Prop. 2.2, p. 24.
4 En pratique, on accélère le processus en ajoutant non pas une unité mais la quantité maximum possible,

donnée par le graphe des écarts (valué par c − ϕ).

(bM) 2007 Math-2


26 CHAPITRE 2. FLOTS

2.2.1.3 En résumé
L’algorithme est fini Il y a un arrêt des itérations, car :
– le nombre de sommets est fini (et le graphe supposé sans circuit),
– on ne peut augmenter le flot que jusqu’à la limite des capacités.

L’arrêt définit une coupe qui est l’ensemble K des arcs ayant une seule marque :
soit à leur origine (d), soit à leur extrémité (f ).

Le flot est maximum par obtention d’une coupe minimale.

Remarque La coupe ainsi déterminée n’est pas forcément unique.5

2.2.2 Exemple
Soit à réaliser un réseau de distribution d’eau (avec des quantités mesurées en
nombres entiers) à partir de trois réservoirs (1,2,3) vers quatre villes (4,5,6,7) : [GR3],
Fig. 2.1, p. 23.
Il s’agit de maximiser la somme des quantités acheminées, sous des contraintes de
limitation :
– de stockage de chacun des réservoirs,
– de stockage en chacune des villes,
– de chaque conduite d’acheminement existante.
Le graphe est ici biparti mais l’algorithme de Ford-Fulkerson n’est pas limité à ce
type de graphe.

2.2.2.1 Obtention d’un flot complet


Flot au jugé (Fig.2.2)
qu’on améliore. . . 6 jusqu’à trouver un flot complet 7 (Fig. 2.3).

2.2.2.2 Marquage
→ Procédure de marquage de Ford-Fulkerson :
On arrive à marquer b, par la chaîne :

A −→ 3 −→ 6 ←− 2 −→ 4 −→ B

D’où l’amélioration 8 : Fig. 2.4


→ On reprend la procédure de marquage. On ne peut plus marquer b :

A −→ 1 −→ 5

L’impossibilité de marquer b détermine donc une coupe K : Fig. 2.5

5 C’est à dire qu’il ne sert à rien d’augmenter les capacités des arcs de cette coupe : l’optimum ne changera

pas s’il se produit dans d’autres.


6 En ajoutant systématiquement sur le premier arc à gauche (mais on peut trouver d’autres flots).
7 Pour obtenir un flot complet, on se restreint au graphe partiel des arcs non saturés.
8 Obtenue en ajoutant non pas une unité, mais le maximum possible sur le chemin.

Math-2 (bM) 2007


CHAPITRE 2. FLOTS 27

F IG . 2.2 – Flot initial au jugé

F IG . 2.3 – Flot complet

(bM) 2007 Math-2


28 CHAPITRE 2. FLOTS

F IG . 2.4 – Augmentation sur chaîne améliorante

F IG . 2.5 – Coupe minimale obtenue

Math-2 (bM) 2007


CHAPITRE 2. FLOTS 29

2.3 Implémentations
2.3.1 Optimisation linéaire
Formulation primale Le problème du flot maximum est un problème d’optimisation
linéaire sous contraintes linéaires et on peut se proposer de le résoudre comme tel.
Soient :

Φ = (Φ1 , Φ2 , . . . , Φm )
M(n,m) = matrice d’adjacence

alors le problème s’écrit :

max ϕ = (M Φ | e1 )
Φ ≥ 0
Φ ≤ C

Formulation duale On peut aussi résoudre le problème dual :

min θ = (Θ | C)
Θ ≥ 0
Θ ≥ M ∗ e1

2.3.2 Un programme classique


Le programme classique du flot maximum utilise la notion de graphe des écarts.
Version scilab :
function [ flot, G ] = fordFulk (G)
//
// Flot maximum : Ford - Fulkerson
// Canadian Journal of Mathematics
// Vol. 9, 1957, 210-218
//
// scilab : (bM) 2006

[ n, rien ] = size (G)

flot = 0
it = 0
while %t
it = it + 1

(bM) 2007 Math-2


30 CHAPITRE 2. FLOTS

sig = zeros (n, 1)


gam = zeros (n, 1)
del = zeros (n, 1)
del(1) = max (G)

iter = 0
while %t
iter = iter + 1
k = max (sig)

for i = 1:n
if k ~= sig(i) then continue, end

for j = 1:n
if del(j) ~= 0 then continue, end
if G(i,j) <= 0 then continue, end
del(j) = min (G(i,j), del(i))
gam (j) = i
end
end // i

num = 0
if del(n) > 0 then break, end

for i = 1:n
if del(i) <= 0 then continue, end
if sig(i) ~= 0 then continue, end
num = num + 1
sig(i) = k+1
end // i

if num == 0 then return, end


end // while (iter)

f = del(n)
flot = flot + f
j = n
while %t
i = gam(j)
G(i,j) = G(i,j) - f
G(j,i) = G(j,i) + f
j = i
if j==1 then break, end
end

end // while (it)

endfunction // ...

Math-2 (bM) 2007


CHAPITRE 2. FLOTS 31

2.4 Aspects algébriques

2.4.1 Flots et tensions


On suppose qu’il existe une fonction π (appelée potentiel) définie sur les sommets
de G, et on pose, pour tout arc u = (x, y) :

θ(u) = π(y) − π(x)

appelée fonction tension (définie sur les arcs).


On a clairement :
θ = M ∗π

Si le flot Φ dans un réseau est une tension θ, on dit qu’il dérive du potentiel π.9

Orthogonalité des flots et des tensions Des relations :

MΦ = 0
θ = M ∗π

on déduit que :
(θ | Φ) = 0

Tensions élémentaires Une tension est dite élémentaire sur un ensemble S de som-
mets si :

θ(u) = +1 si u ∈ ω + (S)
θ(u) = −1 si u ∈ ω − (S)

Une tension élémentaire dérive de la fonction caractéristique du complémentaire


de S dans X :

π(x) = 0 si x∈S
π(x) = 1 si x∈
/S

Le potentiel π est donc, dans ce cas particulier, associé à une coupe.

9 Analogie évidente en électricité où le flot est une intensité.

(bM) 2007 Math-2


32 CHAPITRE 2. FLOTS

2.4.2 Flots bornés


On dit que le flot est borné lorsque la contrainte de définition s’écrit :

0 ≤ b(u) ≤ ϕ(u) ≤ c(u)

Le problème qui se pose alors dans l’application de l’algorithme de Ford-Fulkerson


est de trouver un flot initial de démarrage (ce n’est plus zéro).

2.4.2.1 Flots et simplexe


Si le problème primal est en termes de flots, le dual est en termes de potentiel, et
on montre que la tension est élémentaire à l’optimum.
Le potentiel dont elle dérive définit alors la coupe.

2.4.2.2 Existence d’un flot


Theorème de Hoffmann Si la contrainte s’écrit :

b≤Φ≤c

alors la condition :
X X
c(u) ≥ b(u) ∀S ∈ X
u∈ω − (S) u∈ω + (S)

est nécessaire et suffisante pour l’existence d’un flot compatible.


Il est remarquable que la condition soit suffisante.
La démonstration est constructive : l’algorithme (dit de Herz) minimise
la somme des écarts du flot existant dans le mauvais sens . . . (et montre
alors qu’on peut l’annuler sous la condition ci-dessus).

Math-2 (bM) 2007


Chapitre 3

Couplage

3.1 Affectation optimale


3.1.1 Définitions
3.1.1.1 Graphe biparti

Déf 3.1 On appelle graphe biparti, noté G(X, Y, U ), un graphe dont l’ensemble des
sommets est partitionné en deux classes (X, Y ) et tel que tout arc a son origine dans
X et son extrémité dans Y .

Exemple : le graphe K3,3 est un graphe biparti complet.

Si on numérote les sommets de X d’abord (1:p), puis ceux de Y


(p+1:n), alors la matrice associée n’a déléments non nuls que dans le
coin en haut à droite ainsi défini.
La matrice d’adjacence est aussi partitionnée en ses p premières lignes
(contenant tous les 1) et les n-p suivantes (contenant tous les -1).

3.1.1.2 Couplage

Déf 3.2 Un ensemble d’arcs est appelé couplage si deux arcs ne sont jamais adjacents :
– un sommet x a un successeur au plus,
– un sommet y a un prédécesseur au plus.

Un sommet (de X ou Y ) est dit saturé s’il appartient à un arc du couplage.


Le problème usuel est la recherche d’un couplage optimum (ayant le maximum
d’arcs).

3.1.2 Représentation matricielle


Soit à réaliser l’affectation optimale de p individus Li à p postes Cj , compte tenu
d’une table de coefficients d’adéquation.
Affectation globalement optimale : on optimise la somme des coefficients.

33
34 CHAPITRE 3. COUPLAGE

Dans l’exemple numérique suivant [GR4] (représentant le coin en haut à droite de


la matrice du graphe) :
 
7 3 5 7 10
 6 ∞ ∞ 8 7 
 
A= 6 5 1
 5 ∞  
 11 4 ∞ 11 15 
∞ 4 5 2 10
on convient que Aij = 0 est l’optimum (∞ représentant l’impossibilité d’affectation).

Remarque On ne change pas la solution de ce problème en retranchant de chaque


colonne son plus petit élément et en opérant de même sur les lignes :
 
1 0 4 5 3
 0 ∞ ∞ 6 0 

 
A =  0 2 0 3 ∞ 

 4 0 ∞ 8 7 
∞ 1 4 0 3

3.2 Résolution par flot maximum


3.2.1 Graphe initial des zéros
On considère d’abord le graphe partiel des zéros de la matrice, avec des arcs sup-
posés booléens (affectés ou non affectés).
En y ajoutant une entrée (conduisant aux sommets de X) et une sortie (d’où pro-
viennent les sommets de Y ), on obtient une réseau auquel on peut appliquer l’algo-
rithme de Ford-Fulkerson.

Si le flot maximum sur ce graphe partiel correspond à un couplage qui sature tous
les X ou tous les Y , alors c’est l’optimum.
Sinon, on ajoute des arcs à ce graphe partiel.

3.2.2 Adjonction d’arcs


On augmente le graphe partiel en y ajoutant les arcs correspondant aux éléments de
A′ les plus petits restants. 1
Sur ce graphe augmenté, on entame une procédure de marquage qui peut améliorer
la couplage.
On réitère cette opération (d’adjonction d’arc) jusqu’au couplage optimum ou à
l’épuisement des arcs.
1 C’est à dire qu’on accepte un optimum correspondant à des termes de A′ autres que les zéros.

Math-2 (bM) 2007


CHAPITRE 3. COUPLAGE 35

3.2.3 Une chaîne améliorante est alternée


Déf 3.3 Une chaîne dans G est dite alternée si elle est composée d’arcs alternativement
saturés et non saturés.

Théorème

Un couplage est maximum si et seulement si


aucune chaîne alternée ne relie deux sommets insaturés.

Il est facile de voir que la condition est nécessaire, car on peut améliorer le couplage
sur une chaîne alternée :

on y permute les arcs saturés et les non saturés,

Exemple (non significatif pour la matrice ci-dessus) :

3.3 Algorithme hongrois


L’algorithme de König (algorithme hongrois) résout le problème du couplage opti-
mum.

3.3.1 Description sur un exemple


Sur le graphe [GR4] des zéros de la matrice :
 
1 0 4 5 3
0 ∞ ∞ 6 0
 
 0 2 0 3 ∞
 
4 0 ∞ 8 7
∞ 1 4 0 3

on sature d’abord les arcs :

(L1 , C2 ), (L2 , C1 ), L3 , C3 ), (L5 , C4 )

et le flot est alors complet car on ne peut marquer la sortie :

E → L4 → C2 ← L1

(bM) 2007 Math-2


36 CHAPITRE 3. COUPLAGE

L’algorithme hongrois améliore le processus en observant que l’ensemble des ran-


gées de A′ correspondant aux Li marqués et aux Cj non marqués représente les arcs
possibles à ajouter.
Le meilleur arc correspond ainsi au plus petit élément de la sous-matrice :
 
1 . 4 5 3
 . . . . . 
 
 . . . . . 
 
 4 . ∞ 8 7 
. . . . .

c’est à dire (L1 , C1 ). 2


Dans ce nouveau graphe : on constate alors que la chaîne :

(L4 , C2 , L1 , C1 , L2 , C5 )
est alternée (entre deux sommets insaturés). La permutation des arcs saturés et non
saturés donne donc un arc de plus.
Le couplage obtenu :

(L1 , C1 ); (L2 , C5 ); (L3 , C3 ); (L4 , C2 ); (L5 , C4 )

est alors maximum (sans être unique).


Sa valeur (calculée dans la matrice initiale) est :

7 + 7 + 1 + 4 + 2 = 21

2 Alors que la version de principe aurait ajouté les deux arcs (1, 1) et (5, 2).

Math-2 (bM) 2007


CHAPITRE 3. COUPLAGE 37

3.3.2 Version matricielle de l’algorithme hongrois


3.3.2.1 Couplage (partiel) initial
– Choisir une ligne contenant le moins de zéros.
– Encadrer 0 le premier zéro et barrer ⊘ tous les autres sur sa ligne et sa colonne.
– Continuer jusqu’à avoir traité tous les zéros.
 
. 0 . . .
0 . . . ⊘
 
 
⊘ . 0 . .
 
 . ⊘ . . .
. . . 0 .

3.3.2.2 Sous-matrice d’adjonction d’un arc


– Marquer les lignes ne contenant pas de zéro encadré 0
– Marquer les colonnes ayant un zéro barré ⊘ dans une ligne marquée.
– Marquer les lignes ayant un zéro encadré 0 dans une colonne marquée.
– Barrer les lignes non marquées et les colonnes marquées.


1 0 4 5 3
→ 0 ∞ ∞ 6 0
→ 0 2 0 3 ∞
4 0 ∞ 8 7
→ ∞ 1 4 0 3

3.3.2.3 Amélioration
– Prendre le plus petit des éléments de la matrice restante (en enlevant les rangées
barrées).
– Soustraire ce nombre des colonnes non barrées et l’ajouter aux lignes barrées.
  
1 0 4 5 3 0 0 3 4 2
 0 ∞ ∞ 6 0  0 ∞ ∞ 6 0 
  
 0 2 0 3 ∞  0 3 0 3 ∞
  
 4 0 ∞ 8 7  3 0 ∞ 7 6 
∞ 1 4 0 3 ∞ 2 4 0 3

3.3.2.4 Itération
On reprend le marquage jusqu’à trouver p zéros encadrés 0 .

(bM) 2007 Math-2


Chapitre 4

Chemins extrémaux

On considère un graphe G = (X, U ), à arcs valués, sans circuits.


La valeur vij d’un arc est appelée sa longueur.

4.1 Problème du plus court chemin


On se place dans le cas particulier d’un réseau (entrée a, sortie b), représentant les
étapes d’un projet, l’existence d’un arc (i, j) signifiant que :
– l’étape j est postérieure à i ;
– une durée minimum vij est nécessaire entre les deux.

Déf 4.1 Problème du plus court chemin : trouver un chemin de a à b, de longueur


maximale. 1

4.1.1 Algorithme de Ford


L’algorithme ci-dessous 2 résout le problème par une procédure de marquage des
sommets.

Algo 4.1 Algorithme du plus court chemin :


– marquer l’entrée par ta = 0
– marquer chaque sommet j dont tous les prédécesseurs P (j) sont marqués :

tj = max (ti + vij )


i∈P (j)

– La marque tb de la sortie est la longueur du chemin extrémal. 3

Ex 4.1 Ecrire l’algorithme de Ford.

On peut utiliser la matrice associée (vij ) : Fig. 4.1, p. 39.


On notera l’importance de la numérotation des sommets (test j<i) : il
faut la faire grosso-modo dans l’ordre d’éloignement de l’entrée.
1 C’est bien max pour un plus court chemin, car toutes les étapes doivent être validées.
2 de Ford, mais on dit aussi : de Moore-Dijkstra, de Dantzig, . . .
3 Si on n’arrive pas à marquer la sortie, c’est que le graphe comporte un circuit.

38
CHAPITRE 4. CHEMINS EXTRÉMAUX 39

F IG . 4.1 – Algorithme de Ford


for i = 1:n
for j = 2:n
if v(i,j) == 0 then continue, end

tt = t(i) + v(i,j)
if t(j) < tt then
t(j) = tt
if j < i then i = j, j = 2, end // !
end
end
end

4.1.1.1 Chemin critique

Déf 4.2 Soit un chemin de a à i, de longueur maximale : sa longueur di est appelée


date au plus tôt (du sommet i).

En inversant le sens des arcs du graphe, on obtient les (compléments à la durée


totale des) dates au plus tard fi (de chaque sommet).

Déf 4.3 On appelle chemin critique un chemin de a à b, jalonné par des sommets i tels
que :

di = fi
vij = dj − di

On le construit en remontant les arcs depuis b.


Il n’est pas forcément unique.

4.1.2 Ordonnancement

Le problème de l’ordonnancement consiste à déterminer le calendrier d’exécution


de tâches soumises à des contraintes de coordination (succession et durée).
On détermine alors le chemin de longueur maximale allant du début à la fin du
projet.
La méthode PERT4 est un autre nom (utilisé en gestion de projets) de l’algorithme
du plus court chemin.

4 Program Evaluation Research Task ou Review Technique

(bM) 2007 Math-2


40 CHAPITRE 4. CHEMINS EXTRÉMAUX

4.1.2.1 Exemple

Soit le réseau d’ordonnancement [GR5] dont le dictionnaire (avec les valuations


entre parenthèses) s’écrit :

0 −→ 1 (2), 3 (6), 4 (4), 2 (4)


1 −→ 3 (3), 4 (5)
2 −→ 6 (7)
3 −→ 5 (6)
4 −→ 2 (2), 5 (4), 6 (3)
5 −→ 7 (2)
6 −→ 7 (3)
7 −→ 8 (4)

4.1.2.2 Résolution graphique

Dates au plus tôt et au plus tard :

0: (0,0)
1: (2,2)
2: (9,9)
3: (6,11)
4: (7,7)
5: (12,17)
6: (16,16)
7: (19,19)
8: (23,23)

Chemin critique :

0 −→ 1 −→ 4 −→ 2 −→ 6 −→ 7 −→ 8

Math-2 (bM) 2007


CHAPITRE 4. CHEMINS EXTRÉMAUX 41

4.2 Méthode matricielle


4.2.1 Matrices et opérations symboliques
4.2.1.1 Définitions
Déf 4.4 Matrice symbolique M du graphe valué : 5

 vij si (xi , xj ) ∈ U
Mij = 0 si i = j
−∞ si (xi , xj ) ∈ /U

Déf 4.5 Opérations symboliques associées à M :


a [+] b = max(a, b)
a [*] b = a+b

remplaçant 6 l’addition et la multiplication.

Prop 4.1 Les opérations symboliques vérifient les propriétés usuelles :


1. distributivité
2. matrice nulle :  
−∞ −∞ −∞
 −∞ −∞ −∞ 
−∞ −∞ −∞
3. matrice identité :  
0 −∞ −∞
 −∞ 0 −∞ 
−∞ −∞ 0

4.2.1.2 Propriétés
Posons :
M (p) = M [p]

Ex 4.2 Montrer que :


[M (2)]ij est la longueur maximale des chemins de deux arcs entre i et j.

C’est une conséquence immédiate de la formule :

C = A[∗]B ⇒ Cij = max(Aik + Bkj )

Prop 4.2 La matrice M (p) est la matrice des chemins maximaux de p arcs.

Le nombre n de sommets étant fini et le graphe supposé sans circuits, il est clair
que les puissances successives de M finissent par se stabiliser.
On a donc les cas particuliers :
– M (1) = M , matrice initiale ;
5 Dans le cas d’une longueur maximale pour fixer les idées. Pour une longueur minimale, on remplace

−∞ par +∞ et max par min.


6 avantageusement, car plus rapides.

(bM) 2007 Math-2


42 CHAPITRE 4. CHEMINS EXTRÉMAUX

– M (n − 1) = R, appelée matrice de résolution.

Ex 4.3 On peut calculer R en O(log n) produits matriciels symboliques.

Car il suffit en pratique de calculer M [2] , M [4] , M [8] , . . ., jusqu’à la


stabilisation.

4.2.2 Ordonnancement par la méthode matricielle


Soit R la matrice de résolution. On observe que :
– la ligne R(1,:) donne les dates au plus tôt ;
– l’élément R(1,n) est la longueur totale cherchée ;
– la colonne R(:,n) permet de calculer les dates au plus tard.

4.2.2.1 Calcul des marques


Si on veut éviter le calcul de R, on peut itérer un produit matrice-vecteur pour
obtenir les dates.

Ex 4.4 La suite de vecteurs (ligne) :

V0 = M(1, :)
Vk+1 = Vk [∗] M

converge vers les dates au plus tôt.

Ex 4.5 La suite de vecteurs (colonne) :

Z0 = M( :,n)
Zk+1 = M [∗] Zk

converge vers le complément (à R(1,n)) des dates au plus tard.

Math-2 (bM) 2007


CHAPITRE 4. CHEMINS EXTRÉMAUX 43

4.2.3 Exemple de résolution matricielle


On reprend le réseau d’ordonnancement [GR5] de la page 40.
Matrice symbolique (le - est un −∞) :
 
0 2 4 6 4 − − − −
− 0 − 3 5 − − − −
 
− − 0 − − − 7 − −
 
− − − 0 − 6 − − −
 
M =  − − 2 − 0 4 3 − −
− − − − − 0 − 2 −
 
− − − − − − 0 3 −
 
− − − − − − − 0 4
− − − − − − − − 0

Dates au plus tôt :



0 2 9 6 7 12 16 19 23

Dates au plus tard :



0 2 9 11 7 17 16 19 23

Matrice de résolution :
 
0 2 9 6 7 12 16 19 23
− 0 7 3 5 9 14 17 21
 
− − 0 − − − 7 10 14
 
− − − 0 − 6 − 8 12
 
R= − − 2 − 0 4 9 12 16

− − − − − 0 − 2 6
 
− − − − − − 0 3 7
 
− − − − − − − 0 4
− − − − − − − − 0

On observe que la présence (dans M , et donc dans R) d’éléments au dessous de


la diagonale est une indication de (mauvaise) qualité de la numérotation (on a signalé
ci-dessus que cela activait un test de rebouclage dans l’algorithme de Ford).

(bM) 2007 Math-2


Deuxième partie

Exercices

44
Séance 1

Graphes

Objectifs

Quelques résultats d’illustration de la théorie des graphes.

F IG . 1.1 – Exemple de graphe

1.1 Représentations d’un graphe


Déf 1.1 Dictionnaire du graphe :

1 : 2, 4
2 : 3
3 : 4, 5
4 : 2
5 : ⊘

Déf 1.2 Matrice associée :


 
0 1 0 1 0
0 0 1 0 0
 
0
B= 0 0 1 1

0 1 0 0 0
0 0 0 0 0

45
46 SÉANCE 1. GRAPHES

Déf 1.3 Matrice d’adjacence :


 
1 1 0 0 0 0
−1 0 1 0 0 −1
 
0
M = 0 −1 1 1 0
 0 −1 0 −1 0 1
0 0 0 0 −1 0

Ex 1.1 Ecrire le principe d’algorithmes de conversion entre les différentes représenta-


tions.
Commenter rapidement : l’encombrement (de la représentation choisie) et la com-
plexité (de la fonction de conversion).

1.2 Cheminements dans un graphe


Ex 1.2 On se pose le problème de l’existence de chemins entre deux sommets donnés
d’un graphe.
Calculer B 2 , B 3 , . . . et expliquer le résultat.

Ex 1.3 Pour vérifier l’absence de circuit dans un graphe, on applique l’algorithme sui-
vant :

1. marquer tout sommet qui n’a pas de successeur ;


2. marquer tout sommet dont tous les successeurs sont marqués.

Quels en sont les terminaisons possibles ?

Ex 1.4 Quelle est la structure de données la plus adaptée ?


En particulier, si on représente le graphe par sa matrice associée, quel est le critère
d’absence de circuit ?

Circuits hamiltoniens
Ex 1.5 On considère le graphe (X, U ) formé par les n2 cases d’un échiquier avec des
arêtes qui relient deux cases quand un cavalier peut aller directement de l’une à l’autre.
Montrer que si n est impair un cavalier ne peut pas passer par toutes les cases et
revenir à son point de départ.

→ Cette propriété équivaut à dire que :


Un graphe 2-coloriable n’admet pas de cycle de longueur impaire.

Ex 1.6 Montrer que le graphe associé au dodécaèdre est hamiltonien.

Math-2 (bM) 2007


SÉANCE 1. GRAPHES 47

F IG . 1.2 – Dodécaèdre

1.3 Stabilité
Stabilité interne
Déf 1.4 Un sous-ensemble A de sommets est dit stable s’il ne contient pas d’arcs.

Déf 1.5 Le nombre chromatique est le nombre minimum de sous-ensembles stables


réalisant une partition de X.

1.3.0.1 Exemple

Soit à colorier une carte de 8 pays, dont la matrice binaire représente le graphe de
contiguïté : Aij = 1 si i et j sont limitrophes.
 
• 1 1 0 0 0 0 0

 • 1 1 0 0 0 0

 • 0 1 0 0 0
 • 0 0 1 0
A= 

 • 0 0 1

 • 0 0
 • 0

Ex 1.7 Décrire un algorithme (raisonnable) de construction de sous-sensembles stables,


donc de coloration.

Ex 1.8 On supose avoir déterminé, de façon systématique, les sous-sensembles stables


suivants :

(bM) 2007 Math-2


48 SÉANCE 1. GRAPHES

1 4 5
1 4 8
1 5 7
1 7 8
2 5 7 6
2 6 7 8
3 4 6 8
3 6 7 8
4 5 6
Comment peut-on conclure ?

1.4 Graphes particuliers


Aborescences
Ne pas confondre arbre (graphe non orienté, connexe, sans cycle) et arborescence,
qui est un graphe orienté possédant une (racine).
A toute expression formée par composition de fonctions, on peut associer une ar-
borescence de la manière suivante :
– on écrit l’expression en notation polonaise inverse,
– les feuilles sont les constantes ou les variables,
– les noeuds sont les symboles de fonction,
– les arcs relient deux fonctions qui sont composées.

Ex 1.9 Quelle est l’arborescence associée à :


Z a+1 p
sin (x + y) + (2 x2 + 1 + y) dx
a−1

Ex 1.10 Comment est parcourue l’arborescence lors de l’évaluation ?

Graphes planaires
Thm 1.1 Si un graphe connexe est planaire et si S est le nombre de sommet, A le
nombre d’arête et F le nombre de face on a (relation d’Euler) :

S+F −A=2

Rappel : K5 est le graphe complet à 5 noeuds, i.e. c’est la réunion du pentagone


et du pentagone étoilé. K3,3 est le graphe à (3 + 3) noeuds dont les arêtes relient trois
maisons à trois puits.

Ex 1.11 Vérifier que les graphes K5 et K3,3 ne peuvent pas être planaires.

Math-2 (bM) 2007


Séance 2

Flots et chemins dans un réseau

Objectifs

Théorie des Graphes.


Flot maximum dans un réseau.
Problème du chemin optimal.

Rappelons qu’on note ω − (x) l’ensemble des arcs incidents vers x (sommet ou
ensemble de sommets) et ω + (x) l’ensemble des arcs sortant de x.

2.1 Flot maximum


Déf 2.1 On appelle réseau un graphe G = (X, U ) :
– orienté, connexe, sans boucle ;
– possédant une source a et un puits b ;
– à arcs u valués par des capacités c(u) ≥ 0.

Déf 2.2 Un flot est une fonction ϕ(u) à valeurs entières, définie sur U , telle que :
1. ∀u ϕ(u) ≥ 0
2. ∀u ϕ(u) ≤ c(u)
P P
3. ∀x 6= a, b u∈ω − (x) ϕ(u) = u∈ω + (x) ϕ(u) (loi de Kirchhoff)

La valeur du flot est la quantité qui arrive au puits b (c’est donc aussi égal à ce qui
part de la source a).
X X
ϕ(b) = ϕ(u) = ϕ(u)
u∈ω + (a) u∈ω − (b)

→ On se propose de maximiser la valeur du flot.

Déf 2.3 Une coupe est un ensemble E d’arcs qui rencontre tout chemin allant de la
source a vers le puits b.

49
50 SÉANCE 2. FLOTS ET CHEMINS DANS UN RÉSEAU

La capacité d’une coupe est la somme des capacités de ses arcs :


X
C(E) = c(ω − (E)) = c(u)
u∈ω − (E)

Prop 2.1 La valeur d’un flot ne peut dépasser la capacité d’une coupe.
Thm 2.1 Le flot est maximum s’il est égal à la capacité miminale d’une coupe.
Déf 2.4 Un flot est dit complet si chaque chemin allant de a à b comporte au moins un
arc saturé.
Algo 2.1 L’algorithme de Ford-Fulkerson est une procédure de marquage dynamique
des sommets d’une chaîne allant de a à b.
Déf 2.5 Une chaîne allant de a à b est dite améliorante si ses arcs progressifs sont non
saturés et ses arcs régressifs non vides.

Exercice
Soit à réaliser un réseau de distribution d’eau (avec des quantités mesurées en
nombres entiers), à partir de trois réservoirs (1,2,3), vers trois villes (4,5,6).
Il s’agit de maximiser la somme des quantités acheminées, compte tenu des limi-
tations de capacité : de stockage de chacun des réservoirs (arcs partant de l’entrée a),
de stockage en chacune des villes (arcs incidents sur la sortie b), de chaque conduite
d’acheminement existante.

F IG . 2.1 –

Ex 2.1 Vérifier (avec un tracé du graphe ou sur une matrice) qu’un premier flot au jugé
est compatible avec les contraintes.
Ex 2.2 Améliorer le flot jusqu’à le rendre complet (ϕ = 10).
Ex 2.3 Entamer une procédure de marquage et vérifier qu’on peut atteindre la sortie b.
Ex 2.4 Faire l’amélioration de l’algorithme de Ford-Fulkerson (alors ϕ = 11) et ca-
ractériser la coupe qui en résulte.

Math-2 (bM) 2007


SÉANCE 2. FLOTS ET CHEMINS DANS UN RÉSEAU 51

Convergence
Ex 2.5 Montrer que (sous d’éventuelles conditions que l’on précisera) l’algorithme
comporte un nombre fini d’étapes.
Ex 2.6 Montrer que l’arrêt définit une coupe.
Ex 2.7 Montrer qu’alors le flot est maximum.

2.2 Ordonnancement
Déf 2.6 On considère un réseau (dit graphe d’ordonnancement) G = (X, U ) à arcs
valués (par une durée vij appelée ici. . . longueur).

→ Le problème est de trouver le chemin de longueur extrémale allant du sommet


d’entrée a à la sortie b.
Algo 2.2 Algorithme de Ford : marquage ti des sommets.
Déf 2.7 Les arcs (i, j) pour lesquels on a : tj − ti = vij jalonnent le chemin critique.

Exercice
Soit à réaliser un projet dont les étapes (successives ou concomittantes) sont re-
présentées par un graphe d’étapes (valué par des durées) dont le dictionnaire s’écrit
1
:
0 7→ 1 (2), 3 (6), 4 (4), 2 (4)
1 7→ 3 (3), 4 (5)
2 7→ 6 (7)
3 7→ 5 (6)
4 7 → 2 (2), 5 (4), 6 (3)
5 7→ 7 (2)
6 7→ 7 (3)
7 7→ 8 (4)
Ex 2.8 Dessiner le graphe de ce projet.
Quelle est la structure de données suggérée par le dictionnaire du graphe ?
Ex 2.9 Calculer les dates au plus tôt.
Déterminer la durée optimale du projet et calculer les dates au plus tard.
Ex 2.10 Déterminer le chemin critique.

Méthode algébrique
Déf 2.8 Matrice et opérations symboliques : [+], [*], . . . .
Prop 2.2 Montrer que : M (p) = M [p]

1 Les valuations figurent entre parenthèses.

(bM) 2007 Math-2


52 SÉANCE 2. FLOTS ET CHEMINS DANS UN RÉSEAU

2.3 Couplage
Déf 2.9 On appelle graphe biparti, noté G(X, Y, U ), un graphe dont l’ensemble des
sommets est partitionné en deux classes (X, Y ) et tel que tout arc a son origine dans
X et son extrémité dans Y .

Déf 2.10 Un ensemble d’arcs est appelé couplage si deux arcs ne sont jamais adja-
cents.

On convient de nommer arcs épais les arcs du couplage et arcs fins les autres.
→ Le problème usuel est la recherche d’un couplage maximum (ayant le maximum
d’arcs).

Exercice
Soit à réaliser l’affectation optimale de p individus Xi à p postes Yj , compte tenu
d’une table de coefficients d’adéquation.
Dans l’exemple numérique suivant :
 
7 3 5 7 10
 6 ∞ ∞ 8 7 
 
C =  6 5 1 5 ∞  
 11 4 ∞ 11 15 
∞ 4 5 2 10

on convient que Cij = 0 est l’optimum (∞ représentant l’impossibilité d’affectation).


On ne change pas la solution de ce problème en retranchant de chaque colonne son
plus petit élément et en opérant de même sur les lignes.
On obtient :  
1 0 4 5 3
 0 ∞ ∞ 6 0 

 
C =  0 2 0 3 ∞ 

 4 0 ∞ 8 7 
∞ 1 4 0 3

Ex 2.11 Quel est, en termes matriciels, la nature du résultat cherché ?

Ex 2.12 Poser ce problème en termes de flot maximum et résoudre par l’algorithme de


Ford-Fulkerson.

Déf 2.11 Une chaîne dans G est dite alternée si elle est composée d’arcs alternative-
ment épais et fins.

Prop 2.3 Le couplage est maximum si et seulement si aucune chaîne alternée ne relie
deux sommets insaturés.

Math-2 (bM) 2007


Séance 3

Programmation linéaire

Objectifs

Initiation à la programmation linéaire.

3.1 Engrais chimiques


Une usine chimique produit deux sortes d’engrais minéraux complexes par mélange
de plusieurs composants.
1. Le produit A, vendu 3 euros, est composé de :
– 1 kg de nitrates
– 2 kg de sel de potassium
2. Le produit B, vendu 5 euros, est composé de :
– 1 kg de nitrates,
– 1 kg de phosphates
– 3 kg de sel de potassium.
Sachant que les quantités disponibles en stock sont :
– 8 kg de nitrates,
– 4 kg de phosphates
– 19 kg de sel de potassium.
déterminer les quantités (x1 , x2 ) de chaque produit à fabriquer pour maximiser le bé-
néfice Φ.

3.1.1 Méthode géométrique


Ex 3.1 Résoudre géométriquement ce problème.

Ex 3.2 Ecrire la formulation algébrique de ce problème.

Déf 3.1 On introduit des variables d’écart (y1 , y2 , y3 ), représentant les quantités rési-
duelles de composants : forme standard.

53
54 SÉANCE 3. PROGRAMMATION LINÉAIRE

Ex 3.3 On convient de représenter un point du domaine admissible au moyen de 5


composantes (x1 , x2 , y1 , y2 , y3 ).
Caractériser les sommets O, M, T, P, N (en tournant dans le sens trigonométrique)
de ce domaine polygonal.
Ex 3.4 Si on chemine le long de ON , montrer qu’on parvient à :
Φ(0, 4, 4, 0, 7) = 20 + 3x1 − 5y2
Ex 3.5 Qu’obtient-on par un calcul analogue le long de OM ?
Ex 3.6 Continuer les itérations jusqu’à obtenir l’optimum.

3.1.2 Méthode des tableaux


Déf 3.2 Tableau du simplexe : on ajoute au système des contraintes une ligne suppé-
mentaire représentant la fonction objectif :
– coefficients (changés de signe), à gauche ;
– valeur initiale, à droite.
Le résultat d’un certain programme se trouve ci-dessous.
1 2 3 4 5
1.0 1.0 1.0 0.0 0.0 8.0 3
0.0 1.0 0.0 1.0 0.0 4.0 4
2.0 3.0 0.0 0.0 1.0 19.0 5
-3.0 -5.0 0.0 0.0 0.0 0.0

1 4 3 4 5
1.0 0.0 1.0 -1.0 0.0 4.0 3
0.0 1.0 0.0 1.0 0.0 4.0 2
2.0 0.0 0.0 -3.0 1.0 7.0 5
-3.0 0.0 0.0 5.0 0.0 20.0

5 4 3 4 5
0.0 0.0 1.0 0.5 -0.5 0.5 3
0.0 1.0 0.0 1.0 0.0 4.0 2
1.0 0.0 0.0 -1.5 0.5 3.5 1
0.0 0.0 0.0 0.5 1.5 30.5
Ex 3.7 Vérifier que chaque tableau est relatif à une étape des itérations de l’un des
cheminements décrits précédemment (lequel ?).
Ex 3.8 Comment passe-t-on d’un tableau au suivant ?
Ex 3.9 Pourquoi le dernier tableau est-il . . . bien le dernier ?

3.1.3 Perturbation des données


Ex 3.10 On dispose désormais de 10 kg de nitrates (au lieu de 8). Quel est la nouvelle
solution ?
Ex 3.11 Même question avec 6 kg de nitrates ? et. . . c’est normal, tout ça ?

Math-2 (bM) 2007


SÉANCE 3. PROGRAMMATION LINÉAIRE 55

3.1.4 Autre point de vue


Une coopérative agricole négocie le prix unitaire de chaque composant pour acheter
la totalité du stock. On veut déterminer les prix pour que cette vente en vrac rapporte
au moins autant que la vente des mélanges.

Ex 3.12 Caractériser ce problème par rapport au précédent.

Ex 3.13 Que peut-on dire de sa résolution ?

3.2 Approximation du problème du profil d’une route


Rappels (de la séance 2 d’Optimisation) :
– La fonction g et les scalaires h, α sont des données.
– La fonction φ sera choisie plus loin.
– Expression à minimiser :
n
X
J(u) = Ji (u)
1
Z xi  
Ji (u) = φ u(x) − g(x) dx
xi−1

– Méthode d’approximation :

h  
Ji (u) ≈ φ u(xi−1 ) − g(xi−1 ) + φ u(xi ) − g(xi )
2
– Expression numérique à minimiser :
 
1 1
I(U) = h φ(u0 − g0 ) + φ(u1 − g1 ) + · · · + φ(un−2 − gn−2 ) + φ(un−1 − gn−1 )
2 2

– Contraintes à vérifier :

|ui − ui−1 | ≤ αh 1≤i≤n−1

Ex 3.14 On choisit φ(y) = |y|. Montrer que ce problème d’optimisation est équivalent
au problème :
1 1
min z0 + z1 + · · · + zn−2 + zn−1
ui ,zi 2 2
|ui − ui−1 | ≤ αh
zi ≥ h|ui − gi | 1≤i≤n−1

Ex 3.15 Poser précisément ce problème de programmation linéaire (en prenant n = 4


pour fixer les idées).

Ex 3.16 Sait-on le résoudre ? (comme précédemment).

(bM) 2007 Math-2


Séance 4

Algorithme du simplexe

Objectifs

Optimisation linéaire sous contraintes linéaires.


Aspects algébriques et géométriques.
Algorithme du simplexe.
Certains résultats (cités pour la continuité de l’exposé) n’ont pas à être
démontrés.

4.1 Exemple

Un manufacturier fabrique deux types de produits à partir de trois composants :


– un produit A (5 plaques, 2 rondelles, 1 tube) rapportant 8 euros.
– un produit B (3 plaques, 3 rondelles, 3 tubes) rapportant 6 euros.

Sachant qu’il dispose en tout de 30 plaques, 24 rondelles, 18 tubes, calculer les quan-
tités x1 (de produits A) et x2 (de produits B) à fabriquer pour maximiser son bénéfice
Φ.

Ex 4.1 Rappeler brièvement la méthode de résolution vue à la séance précédente :


– introduire les variables d’écart,
– écrire la forme canonique,
– itérer jusqu’à l’optimum : le tableau final est celui de la Fig. 4.1.

56
SÉANCE 4. ALGORITHME DU SIMPLEXE 57

F IG . 4.1 – Tableau final obtenu

| 1 0 1/4 0 -1/4 3 |
| 0 0 -1/4 1 -3/4 3 |
| 0 1 -1/12 0 5/12 5 |
| 0 0 3/2 0 1/2 54 |

4.2 Inéquations linéaires


Déf 4.1 Forme standard du système des contraintes :
 
  x1  
C11 C12 · · · C1n   x2 
 d1
C21 C22 · · · C2n    d2 
..   ..  =  .. 
    
 .. .. ..
 . . . .  . 
 .
Cp1 Cp2 · · · Cpn   dp
xn

Aspects algébriques
Déf 4.2 Partition de C en matrice de base B et hors-base H.

Déf 4.3 Forme canonique du système des contraintes : B −1 Cx = B −1 d.

On s’arrange pour que les colonnes de base soient regroupées à droite : C = [H B].

1 m m+1 m+p=n
x(1 :m) x(m+1 :m+p)
variables hors-base variables de base

Déf 4.4 Changement de base : passage de la matrice d’une forme canonique à une
autre.
Notation des composantes du changement de base :
r = indice (1 ≤ r ≤ m) de la composante qui entre
s = indice (m + 1 ≤ m + s ≤ m + p) de celle qui sort

L’entier s est donc l’indice, dans B regroupée à droite, de la colonne sortante.

Déf 4.5 Une solution est dite de base si les composantes hors-base sont nulles : x(1 :m)
= 0.

Ex 4.2 Quelle est l’expression de la solution de base d’une forme canonique ?

Si l’une des composantes de base s’annule également, la solution est dite dégéné-
rée.

Déf 4.6 Une solution du système des contraintes est dite réalisable si : x(1 :n) ≥ 0.

(bM) 2007 Math-2


58 SÉANCE 4. ALGORITHME DU SIMPLEXE

Thm 4.1 [Farkas-Minkowski] On a l’alternative suivante :


– ou bien le système des contraintes (Cx = d) admet une solution réalisable,
– ou bien on peut trouver un vecteur u tel que :

C ∗u ≥ 0
(d|u) < 0

Cela veut dire :


– ou bien d appartient au cône défini par les colonnes de C,
– ou bien il possède une composante (u) non nulle dans une direction orthogonale,
i.e. il existe un hyperplan séparateur entre d et ce cône (le vecteur u, orthogonal
à cet hyperplan bien choisi, fait un angle aigu avec le cône et obtus avec d).

Thm 4.2 [fondamental] S’il existe une solution réalisable au système des contraintes,
alors il existe une solution réalisable de base.

Aspects géométriques
L’ensemble des solutions réalisables du système des contraintes standard constitue
un polyèdre convexe (polyèdre des contraintes).

Thm 4.3 [Théorème d’équivalence] Soit Ω le polyèdre des contraintes. Alors :

x solution réalisable de base ⇔ x point extrémal de Ω

Thm 4.4 Soit à maximiser Φ = (a | x) sur le polyèdre des contraintes. Alors l’opti-
mum est atteint en un (au moins un) point extrémal.

4.3 Méthode du simplexe


Description
On considère ici la forme standard (Déf.4.1) :

max{Φ = (a|x)}
Cx = d
x ≥ 0

et on suppose que C contient une matrice de base, normalisée à I, dans ses p colonnes
de droite (Déf.4.3).

Déf 4.7 Le tableau du simplexe est constitué des coefficients des relations :

Cx = d
(a|x) = Φ

i.e. on ajoute (au système des contraintes) une ligne (numérotée p + 1) faisant
intervenir la variable supplémentaire Φ.

Math-2 (bM) 2007


SÉANCE 4. ALGORITHME DU SIMPLEXE 59

Maximum ou minimum Le test d’optimum se fait sur le facteur de x : ce vecteur


ne doit contenir aucune composante négative, dans le cas d’un max comme dans celui
d’un min.
En conséquence :
– on change le signe des coefficients de Φ lorsque c’est max.
– la valeur de Φ apparaît avec le signe moins lorsque c’est min.
Ex 4.3 Le changement de base (Déf.4.4) signifie le passage de B à B ′ par remplace-
ment d’une colonne de B (en numéro s dans B) par une colonne v de H (en numéro
r).
Ecrire les formules et l’algorithme du changement de base.
Dans la méthode des Tableaux, le changement de base n’est rien d’autre qu’une
étape de l’élimination de Gauss-Jordan (Fig. 4.2).

F IG . 4.2 – Méthode de Gauss-Jordan

function [ C ] = chngBas (C, p, m)


//
m1 = m+1 // +1 pour le second membre
p1 = p+1 // +1 pour la fonction objectif

piv = C(s,r)
C(s,1:m1) = C(s,1:m1) / piv

for i = 1:p1
if i == s then continue, end
t = C(i,r)
for j = 1:m1
if j == r then continue, end
C(i,j) = C(i,j) - t * C(s,j)
end
end

C(1:p1,r) = - C(1:p1,r) / piv

C(s,r) = 1 / piv

Ex 4.4 Montrer qu’un critère raisonnable d’entrée en base est :


r = argmin C(p + 1, 1 : m) sur les composantes Cp+1,j < 0
et écrire la fonction correspondante.
Ex 4.5 Montrer que le critère de sortie de la base est nécessairement :
d(1 : p)
s = argmin sur les composantes Cir > 0
C(1 : p, r)
et écrire la fonction correspondante.

(bM) 2007 Math-2


60 SÉANCE 4. ALGORITHME DU SIMPLEXE

Ex 4.6 Expliquer en quoi le critère d’entrée en base est un critère d’optimalité.

Ex 4.7 Expliquer en quoi le critère de sortie de base est un critère d’optimum non
borné.

Déf 4.8 Cyclage.

Démarrage des itérations


Exemple
On revient au cas général où C ne contient pas forcément une sous-matrice I (cela
se produit lorsque le système de contraintes a des inégalités dans les deux sens, ou des
égalités).

Ex 4.8 Reprendre l’exemple d’introduction avec la nouvelle fonction objectif :

Φ = 11x1 + 6x2

Ex 4.9 Peut-on résoudre si on impose la contrainte supplémentaire : x2 ≥ 1 ?

Déf 4.9 Variable artificielle : x2 − y4 + z1 = 1.

Déf 4.10 Méthode des deux phases : on minimise d’abord la somme σ des variables
artificielles.

Ex 4.10 Ecrire la forme canonique (standard) pour la méthode des deux phases, et
résoudre (après avoir ajouté une ligne, p + 2, de minimisation de σ).

Exemple
Avec l’exemple ci-dessus (z1 = 1 − x2 + y4 ), résultat en Fig. 4.3.

Ex 4.11 Expliciter les cas possibles à l’optimum des variables artificielles.

Algorithme du simplexe
Ex 4.12 L’utilisation d’un vecteur index(1 :p) rend inutile le stockage des co-
lonnes de base (Fig. 4.4).

Ex 4.13 Ecrire une fonction réalisant les étapes principales de l’algorithme du sim-
plexe (en explicitant bien les cas de terminaison, normale ou anormale).

Math-2 (bM) 2007


SÉANCE 4. ALGORITHME DU SIMPLEXE 61

F IG . 4.3 – Méthode des deux phases


| 5 3 0 1 0 0 30 | y1
| 2 3 0 0 1 0 24 | y2
| 1 3 0 0 0 1 18 | y3
| 0 1 -1 0 0 0 1 | z1
| -11 -6 0 0 0 0 0 | Phi
| 0 -1 1 0 0 0 -1 | Sigma

| 5 0 3 1 0 0 27 | y1
| 2 0 3 0 1 0 21 | y2
| 1 0 3 0 0 1 15 | y3
| 0 1 -1 0 0 0 1 | x2
| -11 0 -6 0 0 0 6 | Phi
| 0 0 0 0 0 0 0 | Sigma

| 1 0 3/5 1/5 0 0 27/5 | x1


| 0 0 9/5 -2/5 1 0 51/5 | y2
| 0 0 12/5 -1/5 0 1 48/5 | y3
| 0 1 -1 0 0 0 1 | x2
| 0 0 3/5 11/5 0 0 327/5 | Phi

(bM) 2007 Math-2


62 SÉANCE 4. ALGORITHME DU SIMPLEXE

F IG . 4.4 – Vecteur index

1 2 3
+---------+--------+-------+----------+--
| 5.000 3.000 0.000 | 30.000 | 4
| 2.000 3.000 0.000 | 24.000 | 5
| 1.000 3.000 0.000 | 18.000 | 6
| 0.000 1.000 -1.000 | 1.000 | 7
| -11.000 -6.000 0.000 | 0.000 | Phi
| 0.000 -1.000 1.000 | -1.000 | Sigma

1 7 3
+---------+--------+-------+----------+--
| 5.000 -3.000 3.000 | 27.000 | 4
| 2.000 -3.000 3.000 | 21.000 | 5
| 1.000 -3.000 3.000 | 15.000 | 6
| 0.000 1.000 -1.000 | 1.000 | 2
| -11.000 6.000 -6.000 | 6.000 | Phi
| 0.000 1.000 0.000 | 0.000 | Sigma

4 3
+---------+--------+---------+--
| 0.200 0.600 | 5.400 | 1
| -0.400 1.800 | 10.200 | 5
| -0.200 2.400 | 9.600 | 6
| 0.000 -1.000 | 1.000 | 2
| 2.200 0.600 | 65.400 | Phi

Math-2 (bM) 2007


SÉANCE 4. ALGORITHME DU SIMPLEXE 63

4.4 Dualité
Déf 4.11 Problème dual.
Etant donné le problème primal (P) :
max{Φ = (a|x)}
Cx ≤ d
x ≥ 0

on lui associe le problème dual (D) :


min{π = (u|d)}
C∗u ≥ a
u ≥ 0

Primal (P) Dual (D)


Cx ≤ d C ∗u ≥ a
x ≥ 0 u ≥ 0
max Φ = (a|x) min π = (u|d)
Ex 4.14 Ecrire le dual pour l’exemple d’introduction et préciser sa signification.
Ex 4.15 Résoudre le problème dual.
On trouve, en résolvant par tableaux, que l’optimum correspond à :
 
3 1
−π , 0, , 0, 0 + 3u2 + 3v1 + 5v2 = −54
2 2

3
φ(3, 5, 0, 3, 0) + 2 y1 + 12 y3 = 54

3 1

3v1 + 5v2 + 3u2 − π 2 , 0, 2 , 0, 0 = -54

Noter le principe de complémentarité à l’optimum :


– y2 6= 0 =⇒ u2 = 0
– u1 6= 0 & u3 6= 0 =⇒ y1 = 0 = y3
Ex 4.16 Soient x et u deux solutions réalisables, respectivement de (P) et (D). Montrer
que :
Φ(x) ≤ π(u)
Ex 4.17 Si l’un des deux problèmes, (P) ou (D), admet un optimum non borné (+∞
pour Φ, −∞ pour π), alors l’autre n’admet pas de solution réalisable.
Thm 4.5 Les solutions réalisables x et u sont optimales si et seulement si :
(C ∗ u − a|x) = 0
et si et seulement si
(u|Cx − d) = 0

(bM) 2007 Math-2


64 SÉANCE 4. ALGORITHME DU SIMPLEXE

Algo 4.1 Algorithme dual.

On reprend la variante de l’exemple d’introduction correspondant à : Φ = 11x1 +


6x2 .
On trouve, à l’optimum
| 1/5 3/5 6 |
| -2/5 9/5 12 |
| -1/5 12/5 12 |

| 11/5 3/5 66 |
avec les indices (3, 2; 1, 4, 5).
Si on ajoute maintenant la contrainte x2 ≥ 1, il vient :
| 1/5 3/5 6 |
| -2/5 9/5 12 |
| -1/5 12/5 12 |
| 0 -1 -1 |

| 11/5 3/5 66 |

avec les indices (3, 2; 1, 4, 5, 6).


On est en présence d’une solution non réalisable dans le primal (c’est pour cela
qu’on avait précédemment introduit une variable artificielle).
Mais si on considère ce tableau comme celui du problème dual (le transposer par
la pensée), il fait apparaître une solution duale réalisable ( 11 3
5 , 5 ) et une possibilité
d’amélioration (par le −1 du second membre).
Noter au passage que cet algorithme dual prend les critères en ordre inverse. Le
changement de base donne alors
| 1/5 3/5 27/5 |
| -2/5 9/5 51/5 |
| -1/5 12/5 48/5 |
| 0 -1 1 |

| 11/5 3/5 327/5 |


avec les indices (3, 6; 1, 4, 5, 2).
Cette solution est optimum (mais c’est évidemment un hasard qu’une seule itération
ait suffi).

Math-2 (bM) 2007

Vous aimerez peut-être aussi