Vous êtes sur la page 1sur 64

1

MATHÉMATIQUES 2

Pascal Laurent

Théorie des graphes

Boussad Mammeri

Table des matières

I Théorie des graphes

 

4

1 Notions générales

 

5

1.1

Terminologie

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

5

1.1.1 Matrice associée

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

1.1.2 Graphes particuliers

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

7

1.1.3 Graphes associés

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

7

1.1.4 Cheminements

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

8

1.1.5 Connexité

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

12

1.2

Représentations

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

13

1.2.1

Structures de données

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

13

1.3

1.2.2

Noyaux

Fonctions de conversion .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

14

15

1.3.1

Stabilité interne .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

15

1.3.2

Noyaux

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

17

1.4

Arbres et arborescences .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

19

1.4.1 Arbres .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

19

1.4.2 Arborescences

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

20

1.5

Graphes planaires .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

21

2 Flots

22

2.1

Flot dans un réseau

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

22

2.1.1 Définitions

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

22

2.1.2 Représentations .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

23

2.1.3 Flot maximum

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

24

2.2

Algorithme de Ford-Fulkerson

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

25

2.2.1 Description

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

25

2.2.2 Exemple

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

26

2.3

Implémentations

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

29

2.3.1 Optimisation linéaire

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

29

2.3.2 Un programme classique

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

29

2.4

Aspects algébriques

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

31

2.4.1

Flots et tensions

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

31

2.4.2

Flots bornés .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

32

3 Couplage

 

33

3.1

Affectation optimale

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

33

3.1.1 Définitions

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

33

3.1.2 Représentation matricielle

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

33

2

TABLE DES MATIÈRES

3

 

3.2 Résolution par flot maximum

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

34

3.2.1 Graphe initial des zéros

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

34

3.2.2 Adjonction d’arcs .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

34

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

.

.

.

.

.

.

.

.

.

.

.

.

.

.

35

3.3 Algorithme hongrois

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

35

3.3.1 Description sur un exemple

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

35

3.3.2 Version matricielle de l’algorithme hongrois

 

.

.

.

.

37

4

Chemins extrémaux

 

38

4.1 Problème du plus court chemin

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

38

4.1.1 Algorithme de Ford

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

38

4.1.2 Ordonnancement

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

39

4.2 Méthode matricielle .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

41

4.2.1 Matrices et opérations symboliques

.

.

.

.

.

.

.

.

.

.

.

.

.

.

41

4.2.2 Ordonnancement par la méthode matricielle .

.

.

.

.

.

.

.

.

.

42

4.2.3 Exemple de résolution matricielle

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

43

II

Exercices

44

1 Graphes

 

45

 

1.1 Représentations d’un graphe

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

45

1.2 Cheminements dans un graphe

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

46

1.3 Stabilité

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

47

1.4 Graphes particuliers .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

48

2 Flots et chemins dans un réseau

 

49

 

2.1 Flot maximum

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

49

2.2 Ordonnancement

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

51

2.3 Couplage

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

52

3 Programmation linéaire

 

53

 

3.1 Engrais chimiques

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

53

3.1.1 Méthode géométrique

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

53

3.1.2 Méthode des tableaux

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

54

3.1.3 Perturbation des données .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

54

3.1.4 Autre point de vue

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

55

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

.

.

.

.

.

.

.

.

.

.

.

55

4 Algorithme du simplexe

 

56

 

4.1 Exemple .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

56

4.2 Inéquations linéaires

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

57

4.3 Méthode du simplexe

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

58

4.4 Dualité .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

63

Première partie

Théorie des graphes

4

Chapitre 1

Notions générales

Définitions d’un graphe

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

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

X

=

ensemble des sommets

U

=

ensemble des arcs

FIG. 1.1 – Exemple de graphe

[GR1]

U = 1

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

1.1

Terminologie

Notions immédiates :

– arête : arc non orienté (ou orienté dans les deux sens) ;

– sommets adjacents à x : successeurs Γ(x) ou prédécesseurs Γ 1 (x) ;

– sommets reliés à x : descendants ou ascendants ;

– arcs incidents à x :

entrants ω (x) ou sortants ω + (x).

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

5

6

CHAPITRE 1. NOTIONS GÉNÉRALES

Sommets particuliers

– racine : sommet sans prédécesseur ;

– feuille : sommet sans successeur ;

– source : racine ascendant de tout sommet ;

– puits : feuille descendant de tout sommet.

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

FIG. 1.2 – Exemple de multigraphe

(Fig. 1.2). F IG . 1.2 – Exemple de multigraphe 1.1.1 Matrice associée La matrice associée

1.1.1 Matrice associée

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

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

Cette notion d’existence peut être notée 0/1 (ou False, True) pour un graphe simple. 2

Exemple (matrice du graphe de la Fig.1.1, p. 5) :

B =

0

0

0

0

0

1

0

0

1

0

0

1

0

0

0

1

0

1

0

0

0

0

1

0

0

1.1.1.1 Quelques propriétés

k B ik = Card(ω + (i )) est le demi-degré extérieur de i (nombre d’arcs

B

kj

= 0

k

k

signifie que le sommet j est une racine.

signifie que le sommet i est une feuille.

B ik = 0

partant de i ).

2 Si B ij est d’un autre type, cela peut représenter un multigraphe ou un graphe simple valué.

CHAPITRE 1. NOTIONS GÉNÉRALES

7

k B kj = Card(ω (j )) est le demi-degré intérieur de j (nombre d’arcs arrivant vers j ).

B ij + B ji = 0 signifie que i et j ne sont pas adjacents.

Curiosité : B ii = 1 signifie la présence d’une boucle (arc à origine et extrémité confondues) au sommet i . C’est une configuration que nous avons exclue.

1.1.2 Graphes particuliers

Graphe symétrique

Définition :

(x, y ) U =(y, x) U

Propriété :

B est symétrique : B ij = B ji

Exemple :

graphe simple non orienté.

Graphe antisymétrique

Définition :

Propriété 3 :

Exemple :

(x, y ) U =(y, x) / U B ij + B ji 1 graphe orienté simple.

Graphe complet

Définition :

Propriété :

Clique

Définition :

Propriété :

Tournoi

Définition :

Propriété :

chaque paire de sommets est reliée par un arc

B ij + B ij 1

une clique est un graphe symétrique complet

B ij + B ji

= 2

un tournoi est un graphe antisymétrique complet

B ij + B ji = 1

(i = j )

1.1.3 Graphes associés

Graphe inversé G’

Définition :

Propriété :

on inverse le sens des arcs

B

ij = B ji

(c’est ici la matrice transposée)

Graphe complémentaire G

Définition :

Propriété :

(x, y ) U =(x, y ) / U

B ij + B ij =

1 .

Sous-graphe

Définition :

Propriété :

on obtient un sous-graphe en supprimant des sommets (et les arcs incidents, comme origine ou comme extrémité) la matrice associée est une sous-matrice.

3 Noter que B n’est pas antisymétrique.

8

CHAPITRE 1. NOTIONS GÉNÉRALES

Graphe partiel

Définition :

on obtient un graphe partiel en supprimant des arcs

Propriété :

la matrice associée (de même dimension) comporte plus de zéros.

1.1.3.1 Exemple

(X, U ) = villes et routes de France,

– sous-graphe des villes de Bretagne,

– graphe partiel des routes nationales,

– sous-graphe partiel des routes nationales de Bretagne.

1.1.4

Cheminements

1.1.4.1

Chemins et chaînes

Chemins

Un chemin est une suite d’arcs continue. 4

Exemple de cheminement (passeur, loup, chèvre et chou) : Fig. 1.3, p. 8.

FIG. 1.3 – Passeur, loup, chèvre, choux

Fig. 1.3, p. 8. F IG . 1.3 – Passeur, loup, chèvre, choux Trouver un chemin
Fig. 1.3, p. 8. F IG . 1.3 – Passeur, loup, chèvre, choux Trouver un chemin

Trouver un chemin

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

FIG. 1.4 – Algorithme de Trémaux

– Depuis a, suivre un chemin (quelconque) aussi loin que possible en marquant (+) chaque arc parcouru ;

– dans une impasse, on rétrograde en marquant une seconde fois (par -) l’arc ;

– si on arrive (par un arc une seule fois marqué) à un sommet déjà exploré, on rétro- grade (donc en marquant -) ;

– soit x le sommet atteint en rétrogradant, alors :

1. ou bien il reste un arc non marqué ;

2. ou bien on repart par l’arc (marqué une fois) utilisé la première fois.

– On arrête lorsqu’on arrive en b ou bien lorsqu’il n’y a plus aucune possibilité.

4 en convenant de qualifier ainsi la propriété intuitive suivante : l’extrémité de tout arc est l’origine du suivant, sauf bien entendu pour le premier et le dernier.

CHAPITRE 1. NOTIONS GÉNÉRALES

9

Cas particuliers de l’algorithme de Trémaux :

– Si le graphe est planaire, prendre toujours à droite.

– Si le graphe est symétrique, tendre une ficelle entre a et b.

FIG. 1.5 – Chemins dans un graphe

entre a et b . F IG . 1.5 – Chemins dans un graphe [GR2] Traitement

[GR2]

Traitement matriciel

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

B =

0

0

0

0

0

1

0

0

0

0

0

1

0

1

0

1

1

0

0

0

0

0

1

0

0

les puissances successives de B sont :

B 2 =

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

1

1

0

0

0

0

1

0

0

0

B 3 =

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

1

0

0

0

0

B 4 = 0

On observe qu’un élément

de longueur 1 dans B

de

longueur

2

dans

B

2

(i, j )

= 0 indique la présence d’un chemin entre i et j :

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

Chaînes

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

1.1.4.2

Cheminements particuliers

Déf 1.1

– Chemin élémentaire : dont les sommets sont distincts.

– Chemin simple : dont les arcs sont distincts.

Si on remplace chemin par chaîne (chemin non orienté), on obtient toutes les no- tions correspondantes pour un graphe symétrique.

5 Si on le fait en booléen, il peut être utile de remarquer que + est un or et que * est un and.

10

CHAPITRE 1. NOTIONS GÉNÉRALES

Prop 1.1 Il est clair que :

Eulérien

élémentaire

=

simple

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

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

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

Hamiltonien

– Chemin hamiltonien : chemin élémentaire qui passe par tous les sommets.

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

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

1.1.4.3

Circuits

Un circuit est un chemin simple fermé.

Tester l’absence de circuits

Algo 1.2 Pour tester l’absence de circuits :

– Marquer tout sommet sans successeur,

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

– Si on parvient à marquer tous les sommets, le graphe est sans circuits.

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

Matriciellement cela revient à observer que si on revient sur un sommet, l’une des matrices B k comporte alors un terme diagonal non nul (car un graphe à n sommets admet un chemin de plus de n arcs si et seulement si il comporte un circuit).

6 ce qui veut dire que la chaîne n’est pas fermée (ce n’est pas un cycle).

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

: Fig. 1.7, p. 11. F IG . 1.7 – Circuit hamiltonien 1.1.4.4 Cycles Un cycle

1.1.4.4

Cycles

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

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

1. choisir x 0 ,

2. puis une suite d’arcs (x 0 , x 1 ), (x 1 , x 2 ),

en n’empruntant un arc incident à x i

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

de 1 de toute ligne et de toute colonne est pair.

vérifier si, dans la matrice associée, le nombre

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 :

B =

0

0

1