Académique Documents
Professionnel Documents
Culture Documents
MATHÉMATIQUES 2
Pascal Laurent
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
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
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
4
Chapitre 1
Notions générales
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).
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).
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
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.
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)
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.
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.
Trouver un chemin
4 en convenant de qualifier ainsi la propriété intuitive suivante : l’extrémité de tout arc est l’origine du
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.
é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.
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.
1.1.4.3 Circuits
Un circuit est un chemin simple fermé.
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).
Circuit hamiltonien
Ex 1.2 On peut tracer un circuit hamiltonien sur le dodécaèdre : Fig. 1.7, p. 11.
1.1.4.4 Cycles
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
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.
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.
1 −→ 2, 3, 4 −→ 5
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.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) = ⊘
Déf 1.6 Un sous-ensemble stable est dit maximal s’il n’est contenu dans aucun autre
stable.
6 4 7 1 8 2 5 3 4 1 5 8 2 7 3 6
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-
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
1.3.1.3 Recouvrement
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) :
Couleur A = 1, 6, 9, 10
Couleur B = 2, 3, 5
Couleur C = 4, 7
Couleur D = 8
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= ⊘
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.
En effet, comme il est absorbant, on ne peut ajouter aucun sommet sans rompre la
stabilité.
En effet, maximal =⇒ tout sommet extérieur est relié : c’est la définition de l’ab-
sorbance dans le cas symétrique.
Theorème admis (la démonstration se fait par un algorithme qui partitionne les
sommets : dans le noyau et hors de lui).
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).
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.
Déf 1.10 Un graphe vérifiant les propriétés précédentes est appelé arbre.
Ex 1.7 Dans un arbre, il y a une chaîne (et une seule) entre deux sommets.
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).
Formule d’Euler
Prop 1.4 Dans un graphe planaire à S sommets, F faces et A arêtes, on a :
S+F =A+2
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).
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.
Flots
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.
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
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
2.1.3.1 Coupe
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
ϕ(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).
2.2.1 Description
La coupe s’obtient en réalisant une partition (dynamique) des sommets en sommets
marqués et non marqués.
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).
→ 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,
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 ).
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.2 Marquage
→ Procédure de marquage de Ford-Fulkerson :
On arrive à marquer b, par la chaîne :
A −→ 3 −→ 6 ←− 2 −→ 4 −→ B
A −→ 1 −→ 5
5 C’est à dire qu’il ne sert à rien d’augmenter les capacités des arcs de cette coupe : l’optimum ne changera
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
max ϕ = (M Φ | e1 )
Φ ≥ 0
Φ ≤ C
min θ = (Θ | C)
Θ ≥ 0
Θ ≥ M ∗ e1
flot = 0
it = 0
while %t
it = it + 1
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
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
endfunction // ...
Si le flot Φ dans un réseau est une tension θ, on dit qu’il dérive du potentiel π.9
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)
π(x) = 0 si x∈S
π(x) = 1 si x∈
/S
b≤Φ≤c
alors la condition :
X X
c(u) ≥ b(u) ∀S ∈ X
u∈ω − (S) u∈ω + (S)
Couplage
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 .
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.
33
34 CHAPITRE 3. COUPLAGE
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.
Théorème
Il est facile de voir que la condition est nécessaire, car on peut améliorer le couplage
sur une chaîne alternée :
E → L4 → C2 ← L1
(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 :
7 + 7 + 1 + 4 + 2 = 21
2 Alors que la version de principe aurait ajouté les deux arcs (1, 1) et (5, 2).
↓
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 .
Chemins extrémaux
38
CHAPITRE 4. CHEMINS EXTRÉMAUX 39
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
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
4.1.2 Ordonnancement
4.1.2.1 Exemple
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
4.2.1.2 Propriétés
Posons :
M (p) = M [p]
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
V0 = M(1, :)
Vk+1 = Vk [∗] M
Z0 = M( :,n)
Zk+1 = M [∗] Zk
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
Exercices
44
Séance 1
Graphes
Objectifs
1 : 2, 4
2 : 3
3 : 4, 5
4 : 2
5 : ⊘
45
46 SÉANCE 1. GRAPHES
Ex 1.3 Pour vérifier l’absence de circuit dans un graphe, on applique l’algorithme sui-
vant :
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.
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.
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
•
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 ?
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
Ex 1.11 Vérifier que les graphes K5 et K3,3 ne peuvent pas être planaires.
Objectifs
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.
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)
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
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.
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).
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]
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
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.
Programmation linéaire
Objectifs
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
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 ?
– 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 :
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
Algorithme du simplexe
Objectifs
4.1 Exemple
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
Φ.
56
SÉANCE 4. ALGORITHME DU SIMPLEXE 57
| 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 |
Aspects algébriques
Déf 4.2 Partition de C en matrice de base B et hors-base H.
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
Déf 4.5 Une solution est dite de base si les composantes hors-base sont nulles : x(1 :m)
= 0.
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.
C ∗u ≥ 0
(d|u) < 0
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.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.
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 Φ.
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(s,r) = 1 / piv
Ex 4.7 Expliquer en quoi le critère de sortie de base est un critère d’optimum non
borné.
Φ = 11x1 + 6x2
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.
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).
| 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 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
4.4 Dualité
Déf 4.11 Problème dual.
Etant donné le problème primal (P) :
max{Φ = (a|x)}
Cx ≤ d
x ≥ 0
3
φ(3, 5, 0, 3, 0) + 2 y1 + 12 y3 = 54
3 1
3v1 + 5v2 + 3u2 − π 2 , 0, 2 , 0, 0 = -54
| 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 |