View
238
Download
2
Category
Preview:
Citation preview
1
MATHÉMATIQUES 2Pascal Laurent
Théorie des graphesBoussad Mammeri
(bM) 2007 Math-2
Table des matières
I Théorie des graphes 4
1 Notions générales 51.1 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.1 Matrice associée . . . . . . . . . . . . . . . . . . . . . . . . 61.1.2 Graphes particuliers . . . . . . . . . . . . . . . . . . . . . . 71.1.3 Graphes associés . . . . . . . . . . . . . . . . . . . . . . . . 71.1.4 Cheminements . . . . . . . . . . . . . . . . . . . . . . . . . 81.1.5 Connexité . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2 Représentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.2.1 Structures de données . . . . . . . . . . . . . . . . . . . . . 131.2.2 Fonctions de conversion . . . . . . . . . . . . . . . . . . . . 14
1.3 Noyaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.3.1 Stabilité interne . . . . . . . . . . . . . . . . . . . . . . . . . 151.3.2 Noyaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4 Arbres et arborescences . . . . . . . . . . . . . . . . . . . . . . . . . 191.4.1 Arbres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.4.2 Arborescences . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.5 Graphes planaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2 Flots 222.1 Flot dans un réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.1.2 Représentations . . . . . . . . . . . . . . . . . . . . . . . . . 232.1.3 Flot maximum . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2 Algorithme de Ford-Fulkerson . . . . . . . . . . . . . . . . . . . . . 252.2.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.2.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3 Implémentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.3.1 Optimisation linéaire . . . . . . . . . . . . . . . . . . . . . . 292.3.2 Un programme classique . . . . . . . . . . . . . . . . . . . . 29
2.4 Aspects algébriques . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.4.1 Flots et tensions . . . . . . . . . . . . . . . . . . . . . . . . 312.4.2 Flots bornés . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3 Couplage 333.1 Affectation optimale . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.1.2 Représentation matricielle . . . . . . . . . . . . . . . . . . . 33
2
TABLE DES MATIÈRES 3
3.2 Résolution par flot maximum . . . . . . . . . . . . . . . . . . . . . . 343.2.1 Graphe initial des zéros . . . . . . . . . . . . . . . . . . . . . 343.2.2 Adjonction d’arcs . . . . . . . . . . . . . . . . . . . . . . . . 343.2.3 Une chaîne améliorante est alternée . . . . . . . . . . . . . . 35
3.3 Algorithme hongrois . . . . . . . . . . . . . . . . . . . . . . . . . . 353.3.1 Description sur un exemple . . . . . . . . . . . . . . . . . . . 353.3.2 Version matricielle de l’algorithme hongrois . . . . . .. . . . 37
4 Chemins extrémaux 384.1 Problème du plus court chemin . . . . . . . . . . . . . . . . . . . . . 38
4.1.1 Algorithme de Ford . . . . . . . . . . . . . . . . . . . . . . . 384.1.2 Ordonnancement . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2 Méthode matricielle . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.2.1 Matrices et opérations symboliques . . . . . . . . . . . . . . 414.2.2 Ordonnancement par la méthode matricielle . . . . . . . . .. 424.2.3 Exemple de résolution matricielle . . . . . . . . . . . . . . . 43
II Exercices 44
1 Graphes 451.1 Représentations d’un graphe . . . . . . . . . . . . . . . . . . . . . . 451.2 Cheminements dans un graphe . . . . . . . . . . . . . . . . . . . . . 461.3 Stabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471.4 Graphes particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2 Flots et chemins dans un réseau 492.1 Flot maximum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.2 Ordonnancement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512.3 Couplage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3 Programmation linéaire 533.1 Engrais chimiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1.1 Méthode géométrique . . . . . . . . . . . . . . . . . . . . . 533.1.2 Méthode des tableaux . . . . . . . . . . . . . . . . . . . . . 543.1.3 Perturbation des données . . . . . . . . . . . . . . . . . . . . 543.1.4 Autre point de vue . . . . . . . . . . . . . . . . . . . . . . . 55
3.2 Approximation du problème du profil d’une route . . . . . . . .. . . 55
4 Algorithme du simplexe 564.1 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564.2 Inéquations linéaires . . . . . . . . . . . . . . . . . . . . . . . . . . 574.3 Méthode du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . 584.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 sommetsU = ensemble des arcs
FIG. 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 multigraphesNous 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).
FIG. 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 (ouFalse, True) pour un graphe simple.2
Exemple (matrice du graphe de la Fig.1.1, p. 5) :
B =
0 1 0 1 00 0 1 0 00 0 0 1 10 1 0 0 00 0 0 0 0
1.1.1.1 Quelques propriétés
– Bkj = 0 ∀k signifie que le sommetj est une racine.– Bik = 0 ∀k signifie que le sommeti est une feuille.–
∑
k Bik = Card(ω+(i)) est le demi-degré extérieur dei (nombre d’arcspartant dei).
2 Si Bij est d’un autre type, cela peut représenter un multigraphe ouun graphe simple valué.
Math-2 (bM) 2007
CHAPITRE 1. NOTIONS GÉNÉRALES 7
–∑
k Bkj = Card(ω−(j)) est le demi-degré intérieur dej (nombre d’arcsarrivant versj).
– Bij + Bji = 0 signifie quei et j ne sont pas adjacents.
Curiosité :Bii = 1 signifie la présence d’uneboucle(arc à origine et extrémitéconfondues) au sommeti. C’est une configuration que nous avons exclue.
1.1.2 Graphes particuliers
Graphe symétrique
Définition : (x, y) ∈ U =⇒ (y, x) ∈ UPropriété : B est symétrique :Bij = Bji
Exemple : graphe simple non orienté.
Graphe antisymétrique
Définition : (x, y) ∈ U =⇒ (y, x) /∈ UPropriété3 : Bij + Bji ≤ 1Exemple : graphe orienté simple.
Graphe complet
Définition : chaque paire de sommets est reliée par un arcPropriété : Bij + Bij ≥ 1
Clique
Définition : une clique est un graphe symétrique completPropriété : Bij + Bji = 2
TournoiDéfinition : un tournoi est un graphe antisymétrique completPropriété : Bij + Bji = 1 (i 6= j)
1.1.3 Graphes associés
Graphe inversé G’
Définition : on inverse le sens des arcsPropriété : B′
ij = Bji (c’est ici la matrice transposée)
Graphe complémentaireG∗
Définition : (x, y) ∈ U =⇒ (x, y) /∈ U∗
Propriété : Bij + B∗
ij = 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 queB n’estpasantisymétrique.
(bM) 2007 Math-2
8 CHAPITRE 1. NOTIONS GÉNÉRALES
Graphe partiel
Définition : on obtient un graphe partiel en supprimant des arcsProprié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’arcscontinue.4
Exemple de cheminement (passeur, loup, chèvre et chou) : Fig. 1.3, p. 8.
FIG. 1.3 – Passeur, loup, chèvre, choux
Trouver un chemin
Algo 1.1 [Trémaux] Pour trouver un chemin entrea etb : Fig. 1.4, p. 8.
FIG. 1.4 – Algorithme de Trémaux– Depuisa, 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-) ;– soitx 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 enb 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 dusuivant, 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 entrea et b.
FIG. 1.5 – Chemins dans un graphe [GR2]
Traitement matriciel Pour le graphe de la Fig. 1.5, de matrice associée :
B =
0 1 0 1 00 0 1 1 00 0 0 0 10 0 1 0 00 0 0 0 0
les puissances successives deB sont :
B2 =
0 0 1 1 00 0 0 1 10 0 0 0 00 0 0 0 00 0 0 0 0
B3 =
0 0 0 1 10 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0
B4 = 0
On observe qu’un élément(i, j) 6= 0 indique la présence d’un chemin entrei et j :– de longueur 1 dansB– de longueur 2 dansB2
– . . .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êtescontinue.
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 unor et que* est unand.
(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.
FIG. 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, alorsG possède deux sommets (et deuxseulement) de degré impair (l’origine et l’extrémité de la chaîne).6
Hamiltonien– Chemin hamiltonien : chemin élémentaire qui passe par tousles 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 uncheminsimple 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 sanscircuits.
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’unedesmatricesBk comporte alors un terme diagonal non nul (car un graphe àn sommetsadmet un chemin de plus den 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 uncycle).
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.
FIG. 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. choisirx0,
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 nombrede1 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 decycle eulérien.
En effet :
B =
0 0 1 10 0 1 11 1 0 11 1 1 0
(bM) 2007 Math-2
12 CHAPITRE 1. NOTIONS GÉNÉRALES
1.1.5 Connexité
Déf 1.2 Soit surG la relation d’équivalence :
x ≈ y si x ety sont reliés par une chaîne7
Les composantes connexes sont les classes d’équivalence duquotient deG par cetterelation.
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 remplacechaîneparchemindans la définition précédente, on obtient lescomposantesfortement 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éduitest 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) :
(I + B)4 =
1 1 1 1 10 1 1 1 10 1 1 1 10 1 1 1 10 0 0 0 1
on exhibe le graphe réduit :
1 −→ 2, 3, 4 −→ 5
FIG. 1.8 – Exemple de graphe[GR2]
7 N.B. Unechaî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 crucialepour la recherched’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 :
B =
0 1 0 1 00 0 1 1 00 0 0 0 10 0 1 0 00 0 0 0 0
Matrice d’adjacence La matrice d’adjacence décrit les arcs :
M =
1 1-1 1 1
-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 classiqueutilisé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:nfor k = C(i) : (C(i+1) - 1)
j = D(k)if j > 0 then B(i,j) = 1, endend
endendfunction // ...
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) = 1end
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-ensembleA de sommets est dit stable s’il ne contient pas d’arcs :
A ∩ Γ(A) = ⊘
On appelle nombre de stabilité, notéα(G), le nombre maximal desommets pouvant former un sous-ensemble stable.
Déf 1.6 Un sous-ensemble stable est dit maximal s’il n’est contenu dans aucun autrestable.
A un stable maximal, on ne peut pas ajouter un sommet sans rompresa 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 peutse déplacer (en uncoup) 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éterpar 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) :
B =
• 0 1 1 0 0 1 0 0 0• 0 1 0 1 0 1 1 0• 0 1 0 1 1 0 0• 0 1 0 1 1 0• 1 0 0 0 1• 1 1 0 0• 0 0 0• 0 0• 0•
A
B
CH
D
E
F
I
L
NL
P
FIG. 1.9 – Carte de géographie
Le problème revient à trouver une partition deX 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, stablesen colonne) :
1 1 1 1 1 0 0 0 0 0 0 0 0 0 01 1 0 0 0 1 1 1 1 0 0 0 0 0 00 0 0 0 0 1 1 0 0 1 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 1 1 0 01 0 1 0 0 1 0 1 0 1 0 1 0 1 00 0 0 1 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1 1 0 0 1 1 1 10 0 1 0 1 0 0 0 0 1 1 0 0 1 10 0 1 1 1 0 0 0 0 1 1 0 0 1 10 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, 10Couleur B = 2, 3, 5Couleur C = 4, 7Couleur D = 8
1.3.1.4 Programmation en nombres entiers
On peut aussi faire une formulation de ce problème de recouvrement sous formed’une optimisation linéaire en nombres entiers binaires.
On pose (tableau ci-dessus) :
Tik = 1 si i est coloré park
et on introduit un vecteur :
ck = 1 si k est retenue
Le programme linéaire consiste à minimiser le nombre de couleurs :
min∑
k
ck
sous la contrainte que chaque pays doit apparaître au moins une fois :∑
k
Tikck ≥ 1 ∀i
1.3.2 Noyaux
1.3.2.1 Ensembles absorbants
Déf 1.7 Un sous-ensembleA de sommets (d’un grapheG) est dit absorbant si chaquesommet extérieur àA a un successeur (au moins un) dansA :
∀x /∈ A A ∩ Γ(x) 6= ⊘
Cela veut dire que, de n’importe quel sommet extérieur àA, on peutentrer dansA par un seul arc (application en théorie des jeux, où un arcreprésente un coup possible).
Déf 1.8 Un sous-ensemble absorbantA est dit minimal si on ne peut lui retirer unsommet sans rompre son absorbance.
1.3.2.2 Noyaux
Déf 1.9 Un sous-ensembleA de sommets d’un graphe est un noyau s’il est à la foisstable et absorbant.
C’est une notion utilisée en théorie des jeux car le joueur qui se trouve dans unnoyau (ensemble des positions gagnantes) est obligé d’en sortir alors que son adversairepeut 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’unefeuille à aucun.
(bM) 2007 Math-2
18 CHAPITRE 1. NOTIONS GÉNÉRALES
Thm 1.2 Un noyau est stablemaximal.
En effet, comme il est absorbant, on ne peut ajouter aucun sommet sans rompre lastabilité.
Thm 1.3 [Corollaire] 9 Si G est symétrique, un sous-ensemble stable maximal estabsorbant, 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 lessommets : dans le noyau et hors de lui).
Thm 1.5 SoitF (Y, z) la fonction caractéristique de l’ensembleY , alors :
Y est un noyau⇐⇒ F (Y, t) = 1− maxz∈Γ(t)
(F (Y, z))
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 : aucunz 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, soientA etB deux noyaux :– siA etB sont disjoints, il n’y rien à démontrer.– Si B inclus dansA, on peut trouver unx hors deB qui est relié à
B, donc rompt la stabilité deA.– S’il n’y a pas inclusion (B∩A 6= ⊘), il existe unc dansA∩B relié
à una dansA hors deB : 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 lignesmarqué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 14b | 17 12 14 10c | 15 11 19 13d | 12 10 9 2e | 13 16 13 6f | 10 15 10 3
On construit le graphe orienté où existe une arête(x, y) si :– y a eu une meilleure note quex à au moins l’un des tests,– y n’a aucune note inférieure, dans aucun des tests.
FIG. 1.10 – Noyau de sélection
Le noyau de ce graphe (icia 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 grapheG àn sommets) :
1. G est connexe
2. G n’a aucun cycle
3. G possèden− 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 den 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. Pourk=3 :n-1choisir 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 raciner est un graphesans circuitet tel que :
1. tout sommetx, autre quer , a un seul prédécesseur ;
2. la raciner n’a pas de prédécesseur ;
1.4.2.1 Propriétés
SoitG 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 autresommet.
6. Deux sommets de même niveau n’ont aucun descendant commun(cette propriétéinduit la notion debrancheissue 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 questionssuivantes, dont dépend l’efficacité de la procédure de résolution :
1. comment trouver unebonnesolution initiale, de démarrage ?
2. comment couper certaines branches de l’arborescence, qui n’amélioreront pas lasolution ? (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 secoupent.
Formule d’Euler
Prop 1.4 Dans un graphe planaire àS sommets,F faces etA arêtes, on a :
S + F = A + 2
Application : il n’existe quecinqpolyèdres réguliers de l’espaceR3.
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 toutearête commune aux
deux faces.
Exemples de graphes duals (entre parenthèsesS etF ) :– 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 est4-chromatique.
Théorème de Kuratowski
Thm 1.8 Un graphe est planaire siet seulement siil ne contient pas l’un des deuxgraphes (complets)K5 etK33.
Il est clair queK5 et K33 ne sont pas planaires (formule d’Euler non vérifiée). Laréciproque montre qu’ils sont, de ce point de vue, minimaux.
FIG. 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 grapheG = (X, U) :– orienté, connexe, sans circuit ;– possédant une sourcea et un puitsb ;– à arcsu valués par des capacitésc(u) ≥ 0.
Rappel : on noteω−(S) l’ensemble des arcs incidents versS (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 surU , avec les popriétéssuivantes :
1. valeurs positives :∀u ϕ(u) ≥ 0
2. valeurs bornées2 : ∀u ϕ(u) ≤ c(u)
3. conservation (loi de Kirchhoff) :
∀x 6= a, b∑
u∈ω−(x)
ϕ(u) =∑
u∈ω+(x)
ϕ(u)
La valeur du flot est la quantité qui arrive au puitsb. C’est aussi la quantité qui partde la sourcea, et il est parfois commode d’introduire un arc (dit de retour) :
r = (b, a)
de sorte que :ϕ(r) =
∑
u∈ω+(a)
ϕ(u) =∑
u∈ω−(b)
ϕ(u)
1 L’ensembleω(S) = ω−(S) ∪ ω−(S) des arcs ayant une extrémité (et une seule) dansS s’appelle uncocycle.
2 Si on a égalité, l’arcu est dit saturé.
22
CHAPITRE 2. FLOTS 23
Cette quantité étant entière, on parlera souvent d’unitésde matière circulant dansle réseau.3
2.1.2 Représentations
Soit le réseau de la Fig. 2.1.
FIG. 2.1 – Exemple de réseau [GR3]
Sa matrice d’adjacenceM (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 00 -1 0 0 0 0 1 1 1 0 0 0 0 0 00 0 -1 0 0 0 0 0 0 1 1 0 0 0 00 0 0 -1 0 0 -1 0 0 0 0 1 0 0 00 0 0 0 -1 0 0 -1 0 0 0 0 1 0 00 0 0 0 0 0 0 0 -1 -1 0 0 0 1 00 0 0 0 0 -1 0 0 0 0 -1 0 0 0 10 0 0 0 0 0 0 0 0 0 0 -1 -1 -1 -1
et le vecteurC 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 : ilexiste une quantité (atomique) minimumpour 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‖MΦ ‖∞ = 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 ensembleB de sommets contenantb.
– Unecoupeest un ensembleK d’arcs ayant leur extrémité dansB (et pas leurorigine).
– La capacitéd’une coupe est la somme des capacités de ses arcs :
C(K) =∑
u∈K
c(u)
Propriété d’une coupe Il résulte de la définition que tout ce qui arrive enb doittraverser 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 coupeK telle que :
ϕ(r) = C(K)
alors :
– le flot est maximum : on ne peut rien ajouter surcettecoupeK ;– C(K) est minimum :ϕ(r) ne pourrait passer surC(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 sommetsmarqué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 ditcompletsi tout chemin allant dea àb comporte au moins un arcsaturé
Tant qu’il existe un chemin dea à b n’ayant aucun arc saturé, on peut améliorer leflot 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 unechaîneallant dea à b.Sur cette chaîne, certains arcs seront parcourus dans le bonsens (arc progressifs) et
d’autres en sens contraire (régressifs), choisis d’après la règle :– un arc progressifv doit vérifier :ϕ(v) < c(v)– un arc régressifw doit vérifier :ϕ(w) > 0
→ Si on arrive à marquer b, la chaîne ainsi construite est diteaméliorante, caron peut augmenter le flot :
– en ajoutant une unité sur tout arc progressifv,– en retranchant une unité sur tout arc régressifw.
La loi de Kirchhoff reste vérifiée sur les sommets de la chaîne, sauf ena et enb, où on a ajouté une unité.4
→ S’il est impossible de marquerb, cette partition des sommets (en marqués etnon marqués) détermine une coupe d’arcs(d, f) ayant, par construction, la propriétésuivante :
– si c’estd qui est marqué, alorsϕ(u) = c(u),– si c’estf , 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 pasuneunité mais la quantité maximum possible,donnée par legraphe des écarts(valué parc − ϕ).
(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’ensembleK 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 ennombres 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 delimitation :
– 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é à cetype 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 complet7 (Fig. 2.3).
2.2.2.2 Marquage
→ Procédure de marquage de Ford-Fulkerson :On arrive à marquerb, par la chaîne :
A −→ 3 −→ 6←− 2 −→ 4 −→ B
D’où l’amélioration8 : Fig. 2.4
→ On reprend la procédure de marquage. On ne peut plus marquerb :
A −→ 1 −→ 5
L’impossibilité de marquerb détermine donc une coupeK : Fig. 2.5
5C’est à dire qu’il ne sert à rien d’augmenter les capacités des arcs decettecoupe : l’optimum ne changerapas 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 pasuneunité, mais le maximum possible sur le chemin.
Math-2 (bM) 2007
CHAPITRE 2. FLOTS 27
FIG. 2.2 – Flot initial au jugé
FIG. 2.3 – Flot complet
(bM) 2007 Math-2
28 CHAPITRE 2. FLOTS
FIG. 2.4 – Augmentation sur chaîne améliorante
FIG. 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’optimisationliné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 = 0it = 0while %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 = 0while %t
iter = iter + 1k = max (sig)
for i = 1:nif k ~= sig(i) then continue, end
for j = 1:nif del(j) ~= 0 then continue, endif G(i,j) <= 0 then continue, enddel(j) = min (G(i,j), del(i))gam (j) = iend
end // i
num = 0if del(n) > 0 then break, end
for i = 1:nif del(i) <= 0 then continue, endif sig(i) ~= 0 then continue, endnum = num + 1sig(i) = k+1end // i
if num == 0 then return, endend // while (iter)
f = del(n)flot = flot + fj = nwhile %t
i = gam(j)G(i,j) = G(i,j) - fG(j,i) = G(j,i) + fj = iif j==1 then break, endend
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éepotentiel) définie sur les sommetsdeG, et on pose, pour tout arcu = (x, y) :
θ(u) = π(y)− π(x)
appelée fonctiontension(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 ensembleS 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émentairedeS dansX :
π(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éfinitions’écrit :
0 ≤ b(u) ≤ ϕ(u) ≤ c(u)
Le problème qui se pose alors dans l’application de l’algorithme de Ford-Fulkersonest 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, eton 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 :∑
u∈ω−(S)
c(u) ≥∑
u∈ω+(S)
b(u) ∀S ∈ X
estnécessaire et suffisantepour l’existence d’un flot compatible.
Il est remarquable que la condition soit suffisante.
La démonstration est constructive : l’algorithme (dit de Herz) minimisela somme des écarts du flot existantdans le mauvais sens. . . (et montrealors 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 appellegraphe biparti, notéG(X, Y, U), un graphe dont l’ensemble dessommets est partitionné en deux classes(X, Y ) et tel que tout arc a son origine dansX et son extrémité dansY .
Exemple : le grapheK3,3 est un graphe biparti complet.
Si on numérote les sommets deX d’abord(1:p), puis ceux deY(p+1:n), alors la matrice associée n’a déléments non nuls que dans lecoin en haut à droite ainsi défini.
La matrice d’adjacence est aussi partitionnée en sesp premières lignes(contenant tous les 1) et lesn-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 sommetx a un successeur au plus,– un sommety a un prédécesseur au plus.
Un sommet (deX ouY ) est dit saturé s’il appartient à un arc du couplage.Le problème usuel est la recherche d’uncouplage optimum(ayant le maximum
d’arcs).
3.1.2 Représentation matricielle
Soit à réaliser l’affectation optimale dep individusLi à p postesCj , compte tenud’une table de coefficients d’adéquation.
Affectationglobalementoptimale : 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 dela matrice du graphe) :
A =
7 3 5 7 106 ∞ ∞ 8 76 5 1 5 ∞
11 4 ∞ 11 15∞ 4 5 2 10
on convient queAij = 0 est l’optimum (∞ représentant l’impossibilité d’affectation).
Remarque On ne change pas la solution de ce problème en retranchant de chaquecolonne son plus petit élément et en opérant de même sur les lignes :
A′ =
1 0 4 5 30 ∞ ∞ 6 00 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 deX) et une sortie (d’où pro-viennent les sommets deY ), 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 touslesX ou tous lesY , 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 deA′ les plus petits restants.1
Sur ce graphe augmenté, on entame une procédure de marquage qui peut améliorerla 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 deA′ 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 dansG est dite alternée si elle est composée d’arcs alternativementsaturés et non saturés.
Théorème
Un couplage est maximum si et seulement siaucune 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 couplagesur 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 30 ∞ ∞ 6 00 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 deA′ correspondant auxLi marqués et auxCj non marqués représente les arcspossibles à 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 nonsaturé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.– Encadrer0 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.– Barrerles lignesnon 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éesbarrées).
– Soustraire ce nombre des colonnes nonbarrées et l’ajouter aux lignes barrées.
1 0 4 5 30 ∞ ∞ 6 00 2 0 3 ∞4 0 ∞ 8 7∞ 1 4 0 3
0 0 3 4 20 ∞ ∞ 6 00 3 0 3 ∞3 0 ∞ 7 6∞ 2 4 0 3
3.3.2.4 Itération
On reprend le marquage jusqu’à trouverp zéros encadrés0 .
(bM) 2007 Math-2
Chapitre 4
Chemins extrémaux
On considère un grapheG = (X, U), à arcs valués, sans circuits.La valeurvij 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éea, sortieb), représentant lesétapes d’un projet, l’existence d’un arc(i, j) signifiant que :
– l’étapej est postérieure ài ;– une durée minimumvij est nécessaire entre les deux.
Déf 4.1 Problème du plus court chemin : trouver un chemin dea à b, de longueurmaximale.1
4.1.1 Algorithme de Ford
L’algorithme ci-dessous2 résout le problème par une procédure de marquage dessommets.
Algo 4.1 Algorithme du plus court chemin :– marquer l’entrée parta = 0– marquer chaque sommetj donttousles prédécesseursP (j) sont marqués :
tj = maxi∈P (j)
(ti + vij)
– La marquetb 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 (testj<i) : il
faut la faire grosso-modo dans l’ordre d’éloignement de l’entrée.
1 C’est bienmax pour un pluscourt 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
FIG. 4.1 – Algorithme de Ford
for i = 1:nfor j = 2:n
if v(i,j) == 0 then continue, end
tt = t(i) + v(i,j)if t(j) < tt then
t(j) = ttif j < i then i = j, j = 2, end // !end
endend
4.1.1.1 Chemin critique
Déf 4.2 Soit un chemin dea à i, de longueur maximale : sa longueurdi est appeléedate au plus tôt (du sommeti).
En inversant le sens des arcs du graphe, on obtient les (compléments à la duréetotale des) dates au plus tardfi (de chaque sommet).
Déf 4.3 On appelle chemin critique un chemin dea àb, jalonné par des sommetsi telsque :
di = fi
vij = dj − di
On le construit en remontant les arcs depuisb.
Il n’est pas forcément unique.
4.1.2 Ordonnancement
Le problème de l’ordonnancement consiste à déterminer le calendrier d’exécutionde tâches soumises à des contraintes de coordination (succession et durée).
On détermine alors le chemin de longueurmaximaleallant du début à la fin duprojet.
La méthode PERT4 est un autre nom (utilisé en gestion de projets) de l’algorithmedu plus court chemin.
4 Program Evaluation Research Taskou 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 valuationsentre 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 symboliqueM du graphe valué :5
Mij =
vij si (xi, xj) ∈ U0 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çant6 l’addition et la multiplication.
Prop 4.1 Les opérations symboliques vérifient les propriétés usuelles :
1. distributivité
2. matricenulle :
−∞ −∞ −∞−∞ −∞ −∞−∞ −∞ −∞
3. matriceidentité:
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 dedeuxarcs entrei et j.
C’est une conséquence immédiate de la formule :
C = A[∗]B ⇒ Cij = max(Aik + Bkj)
Prop 4.2 La matriceM(p) est la matrice des chemins maximaux dep arcs.
Le nombren de sommets étant fini et le graphe supposé sans circuits, il est clairque les puissances successives deM 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. Pourune longueur minimale, on remplace−∞ par+∞ etmax parmin.
6 avantageusement, car plus rapides.
(bM) 2007 Math-2
42 CHAPITRE 4. CHEMINS EXTRÉMAUX
– M(n− 1) = R, appeléematrice de résolution.
Ex 4.3 On peut calculerR enO(log n) produits matriciels symboliques.
Car il suffit en pratique de calculerM [2], M [4], M [8], . . ., jusqu’à lastabilisation.
4.2.2 Ordonnancement par la méthode matricielle
SoitR la matrice de résolution. On observe que :– la ligneR(1,:) donne les dates au plus tôt ;– l’élémentR(1,n) est la longueur totale cherchée ;– la colonneR(:,n) permet de calculer les dates au plus tard.
4.2.2.1 Calcul des marques
Si on veut éviter le calcul deR, on peut itérer un produit matrice-vecteur pourobtenir 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−∞) :
M =
0 2 4 6 4 − − − −− 0 − 3 5 − − − −− − 0 − − − 7 − −− − − 0 − 6 − − −− − 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 :
R =
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− − 2 − 0 4 9 12 16− − − − − 0 − 2 6− − − − − − 0 3 7− − − − − − − 0 4− − − − − − − − 0
On observe que la présence (dansM , et donc dansR) d’éléments au dessous dela 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.
FIG. 1.1 – Exemple de graphe
1.1 Représentations d’un graphe
Déf 1.1 Dictionnaire du graphe :
1 : 2, 42 : 33 : 4, 54 : 25 : ⊘
Déf 1.2 Matrice associée :
B =
0 1 0 1 00 0 1 0 00 0 0 1 10 1 0 0 00 0 0 0 0
45
46 SÉANCE 1. GRAPHES
Déf 1.3 Matrice d’adjacence :
M =
1 1 0 0 0 0−1 0 1 0 0 −10 0 −1 1 1 00 −1 0 −1 0 10 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 decheminsentre deux sommets donnésd’un graphe.
CalculerB2, B3, . . . et expliquer le résultat.
Ex 1.3 Pour vérifier l’absence decircuit 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èred’absence de circuit ?
Circuits hamiltoniens
Ex 1.5 On considère le graphe(X, U) formé par lesn2 cases d’un échiquier avec desarêtes qui relient deux cases quand un cavalier peut aller directement de l’une à l’autre.
Montrer que sin est impair un cavalier ne peut pas passer par toutes les casesetrevenir à 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
FIG. 1.2 – Dodécaèdre
1.3 Stabilité
Stabilité interne
Déf 1.4 Un sous-ensembleA de sommets est ditstables’il ne contient pas d’arcs.
Déf 1.5 Le nombre chromatiqueest le nombre minimum de sous-ensembles stablesréalisant une partition deX .
1.3.0.1 Exemple
Soit à colorier une carte de 8 pays, dont la matrice binaire représente le graphe decontiguïté :Aij = 1 si i et j sont limitrophes.
A =
• 1 1 0 0 0 0 0• 1 1 0 0 0 0• 0 1 0 0 0• 0 0 1 0• 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 stablessuivants :
(bM) 2007 Math-2
48 SÉANCE 1. GRAPHES
1 4 51 4 81 5 71 7 82 5 7 62 6 7 83 4 6 83 6 7 84 5 6
Comment peut-on conclure ?
1.4 Graphes particuliers
Aborescences
Ne pas confondrearbre (graphe non orienté, connexe, sans cycle) etarborescence,qui est un graphe orienté possédant une (racine).
A toute expression formée par composition de fonctions, on peut associer unear-borescencede 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 à :
sin (x + y) +
∫ a+1
a−1
(2√
x2 + 1 + y) dx
Ex 1.10 Comment est parcourue l’arborescence lors de l’évaluation?
Graphes planaires
Thm 1.1 Si un graphe connexe est planaire et siS est le nombre de sommet,A lenombre d’arête etF 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 pentagoneet du pentagone étoilé.K3,3 est le graphe à(3 + 3) noeuds dont les arêtes relient troismaisons à trois puits.
Ex 1.11 Vérifier que les graphesK5 etK3,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 versx (sommet ouensemble de sommets) etω+(x) l’ensemble des arcs sortant dex.
2.1 Flot maximum
Déf 2.1 On appelleréseauun grapheG = (X, U) :– orienté, connexe, sans boucle ;– possédant une sourcea et un puitsb ;– à arcsu valués par des capacitésc(u) ≥ 0.
Déf 2.2 Un flot est une fonctionϕ(u) à valeurs entières, définie surU , telle que :
1. ∀u ϕ(u) ≥ 0
2. ∀u ϕ(u) ≤ c(u)
3. ∀x 6= a, b∑
u∈ω−(x) ϕ(u) =∑
u∈ω+(x) ϕ(u) (loi de Kirchhoff)
La valeurdu flot est la quantité qui arrive au puitsb (c’est donc aussi égal à ce quipart de la sourcea).
ϕ(b) =∑
u∈ω+(a)
ϕ(u) =∑
u∈ω−(b)
ϕ(u)
→ On se propose de maximiser la valeur du flot.
Déf 2.3 Une coupeest un ensembleE d’arcs qui rencontre tout chemin allant de lasourcea vers le puitsb.
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 :
C(E) = c(ω−(E)) =∑
u∈ω−(E)
c(u)
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 ditcompletsi chaque chemin allant dea àb comporte au moins unarc saturé.
Algo 2.1 L’algorithme de Ford-Fulkerson est une procédure de marquage dynamiquedes sommets d’une chaîne allant dea à b.
Déf 2.5 Une chaîne allant dea à b est dite améliorante si ses arcs progressifs sont nonsaturé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 ennombres 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éea),de stockage en chacune des villes (arcs incidents sur la sortie b), de chaque conduited’acheminement existante.
FIG. 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’onpeutatteindre la sortieb.
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’algorithmecomporte 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) à arcsvalués (par une duréevij appelée ici. . . longueur).
→ Le problème est de trouver le chemin de longueur extrémale allant du sommetd’entréea à la sortieb.
Algo 2.2 Algorithme de Ford : marquageti 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’écrit1 :
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 datesau 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]
1Les 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 appellegraphe biparti, notéG(X, Y, U), un graphe dont l’ensemble dessommets est partitionné en deux classes(X, Y ) et tel que tout arc a son origine dansX et son extrémité dansY .
Déf 2.10 Un ensemble d’arcs est appelécouplagesi deux arcs ne sont jamais adja-cents.
On convient de nommerarcs épaisles arcs du couplage etarcs finsles autres.
→ Le problème usuel est la recherche d’un couplage maximum (ayant le maximumd’arcs).
Exercice
Soit à réaliser l’affectation optimale dep individusXi à p postesYj , compte tenud’une table de coefficients d’adéquation.
Dans l’exemple numérique suivant :
C =
7 3 5 7 106 ∞ ∞ 8 76 5 1 5 ∞
11 4 ∞ 11 15∞ 4 5 2 10
on convient queCij = 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 :
C′ =
1 0 4 5 30 ∞ ∞ 6 00 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 deFord-Fulkerson.
Déf 2.11 Une chaîne dansG est ditealternéesi 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 reliedeux 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élangede plusieurs composants.
1. Le produitA, vendu 3 euros, est composé de :– 1 kg de nitrates– 2 kg de sel de potassium
2. Le produitB, 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 aumoyen de 5composantes(x1, x2, y1, y2, y3).
Caractériser les sommetsO, M, T, P, N (en tournant dans le sens trigonométrique)de ce domaine polygonal.
Ex 3.4 Si on chemine le long deON , montrer qu’on parvient à :
Φ(0, 4, 4, 0, 7) = 20 + 3x1 − 5y2
Ex 3.5 Qu’obtient-on par un calcul analogue le long deOM ?
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 51.0 1.0 1.0 0.0 0.0 8.0 30.0 1.0 0.0 1.0 0.0 4.0 42.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 51.0 0.0 1.0 -1.0 0.0 4.0 30.0 1.0 0.0 1.0 0.0 4.0 22.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 50.0 0.0 1.0 0.5 -0.5 0.5 30.0 1.0 0.0 1.0 0.0 4.0 21.0 0.0 0.0 -1.5 0.5 3.5 10.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 descheminements 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 nouvellesolution ?
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 chaquecomposant pour acheterla totalité du stock. On veut déterminer les prix pour que cette vente en vrac rapporteau 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 fonctiong et les scalairesh, α sont des données.– La fonctionφ sera choisie plus loin.– Expression à minimiser :
J(u) =
n∑
1
Ji(u)
Ji(u) =
∫ xi
xi−1
φ(
u(x)− g(x))
dx
– Méthode d’approximation :
Ji(u) ≈h
2
(
φ(
u(xi−1)− g(xi−1))
+ φ(
u(xi)− g(xi))
)
– Expression numérique à minimiser :
I(U) = h
(
1
2φ(u0 − g0) + φ(u1 − g1) + · · ·+ φ(un−2 − gn−2) +
1
2φ(un−1 − gn−1)
)
– 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 équivalentau problème :
minui,zi
1
2z0 + z1 + · · ·+ zn−2 +
1
2zn−1
|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 prenantn = 4pour 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 à êtredémontrés.
4.1 Exemple
Un manufacturier fabrique deux types de produits à partir detrois composants :
– un produitA (5 plaques, 2 rondelles, 1 tube) rapportant 8 euros.– un produitB (3 plaques, 3 rondelles, 3 tubes) rapportant 6 euros.
Sachant qu’il dispose en tout de 30 plaques, 24 rondelles, 18tubes, calculer les quan-titésx1 (de produitsA) et x2 (de produitsB) à fabriquer pour maximiser son bénéficeΦ.
Ex 4.1 Rappeler brièvement la méthode de résolution vue à la séancepré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
FIG. 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 standarddu système des contraintes :
C11 C12 · · · C1n
C21 C22 · · · C2n
......
.. ....
Cp1 Cp2 · · · Cpn
x1
x2
...
xn
=
d1
d2
...dp
Aspects algébriques
Déf 4.2 Partition deC enmatrice de baseB et hors-baseH .
Déf 4.3 Forme canoniquedu système des contraintes :B−1Cx = B−1d.
On s’arrange pour que les colonnes de base soient regroupéesà droite :C = [H B].
1 m m+1 m+p=nx(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 à uneautre.
Notation des composantes du changement de base :
r = indice (1 ≤ r ≤ m) de la composante qui entres = indice (m + 1 ≤ m + s ≤ m + p) de celle qui sort
L’entier s est donc l’indice, dansB regroupée à droite, de la colonne sortante.
Déf 4.5 Une solution est ditede basesi 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 ditedégéné-rée.
Déf 4.6 Une solution du système des contraintes est diteréalisablesi :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 vecteuru tel que :
C∗u ≥ 0
(d|u) < 0
Cela veut dire :– ou biend appartient au cône défini par les colonnes deC,– ou bien il possède une composante (u) non nulle dans une direction orthogonale,
i.e. il existe un hyperplan séparateur entred et ce cône (le vecteuru, orthogonalà cet hyperplan bien choisi, fait un angle aigu avec le cône etobtus avecd).
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 constitueun 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 queC contient une matrice de base, normalisée àI, dans sesp colonnesde droite (Déf.4.3).
Déf 4.7 Le tableau du simplexeest constitué des coefficients des relations :
Cx = d
(a|x) = Φ
i.e. on ajoute (au système des contraintes) une ligne (numérotéep + 1) faisantintervenir 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 dex : ce vecteurne doit contenir aucune composante négative, dans le cas d’un max comme dans celuid’un min.
En conséquence :– on change le signe des coefficients deΦ lorsque c’estmax.– la valeur deΦ apparaît avec le signe moins lorsque c’estmin.
Ex 4.3 Le changement de base (Déf.4.4) signifie le passage deB à B′ par remplace-ment d’une colonne deB (en numéros dansB) par une colonnev deH (en numéror).
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).
FIG. 4.2 – Méthode de Gauss-Jordan
function [ C ] = chngBas (C, p, m)//
m1 = m+1 // +1 pour le second membrep1 = p+1 // +1 pour la fonction objectif
piv = C(s,r)C(s,1:m1) = C(s,1:m1) / piv
for i = 1:p1if i == s then continue, endt = C(i,r)for j = 1:m1
if j == r then continue, endC(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 = argminC(p+ 1, 1 : m) sur les composantesCp+1,j < 0
et écrire la fonction correspondante.
Ex 4.5 Montrer que le critère de sortie de la base est nécessairement :
s = argmind(1 : p)
C(1 : p, r)sur les composantesCir > 0
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 nonborné.
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-matriceI (celase 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 variablesartificielles.
Ex 4.10 Ecrire la forme canonique (standard) pour la méthode des deux phases, etré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 vecteurindex(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
FIG. 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
FIG. 4.4 – Vecteurindex
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èmeprimal (P) :
maxΦ = (a|x)
Cx ≤ d
x ≥ 0
on lui associe le problèmedual (D) :
minπ = (u|d)
C∗u ≥ a
u ≥ 0
Primal (P) Dual (D)Cx ≤ d C∗u ≥ ax ≥ 0 u ≥ 0maxΦ = (a|x) min π = (u|d)
Ex 4.14 Ecrire le dual pour l’exemple d’introduction et préciser sasignification.
Ex 4.15 Résoudre le problème dual.
On trouve, en résolvant par tableaux, que l’optimum correspond à :
−π
(
3
2, 0,
1
2, 0, 0
)
+ 3u2 + 3v1 + 5v2 = −54
φ(3, 5, 0, 3, 0) + 32y1 + 1
2y3 = 54
3v1 + 5v2 + 3u2 − π(
32 , 0, 1
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 Soientx etu deux solutions réalisables, respectivement de (P) et (D). Montrerque :
Φ(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éalisablesx etu 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 contraintex2 ≥ 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 (115 , 3
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. Lechangement 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 hasardqu’une seule itération
ait suffi).
Math-2 (bM) 2007
Recommended