Vous êtes sur la page 1sur 27

INTRODUCTION

Une brique de base dans la modélisation est le graphe . Les graphes apparais-
sent naturellement lorsqu’on est confronté à un réseau (réseau de transport,
réseau informatique, réseau d’eau ou de gaz, etc.). Comment parcourir le réseau
de manière optimale? C’est la question du voyageur de commerce par exem-
ple. Comment concevoir un réseau informatique robuste, tout en minimisant
le nombre de connexions? C’est le thème de la conception de réseau (Network
Design).

Mais les graphes apparaissent également de manière plus subtile dans certaines
modélisations de problèmes où la structure du graphe n’est pas physique. Un
exemple classique est le problème de l’affectation optimale d’employés à des
tâches. Les sommets représentent des tâches et des employés, et les arêtes les
appariements possibles entre tâches et employés. Ils apparaissent également
dans des problèmes d’ordonnancement, où les sommets représentent des tâches
et les arcs les relations de précédence.

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Chapter 1

Graphe non-orienté.

Un graphe non-orienté G = (V, E) est la donnée d’un ensemble fini V = {v1 , v2 , · · · , vn }


dont les éléments sont appelés sommets et d’une famille finie E = {e1 , e2 , · · · , em }
dont les éléments sont appelés arêtes (Edges en anglais), chacune associée à une
paire non-ordonnée de sommets représentant les extrémités de l’arête. On écrit
indiféremment e = {u, v} ou e = {v, u}

Si e = {u, v}, on dit que u et v sont voisins et qu’ils sont adjacents, ou incidents
avec à e et que e est incidente à u et à v.

Un sommet auquel aucune arête n’est incidente est dit isolé .

On parle de famille d’arêtes pour souligner le fait que les répétitions sont au-
torisées.

En cas de répétition, on parle d’arêtes parallèles.

La paire associée à une arête peut également être la répétition d’un sommet,
auquel cas on parle de boucle.

1.0.1 Représentation graphique

Les graphes tirent leur nom du fait qu’on peut les représenter par des dessins.
À chaque sommet de G, on fait correspondre un point distinct du plan et on
relie les points correspondant aux extrémités de chaque arête. Il existe donc
une infinité de représentations d’un graphe. Les arêtes ne sont pas forcément
rectilignes.

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
CHAPTER 1. GRAPHE NON-ORIENTÉ. 3

Si on peut dessiner un graphe G dans le plan sans qu’aucune arête n’en coupe
une autre (les arêtes ne sont pas forcément rectilignes), on dit que G est planaire.
Le graphe G ci-dessus est planaire.

1.0.2 Quelques types de graphes

Un graphe est simple si au plus une arête relie deux sommets et s’il n’y a pas de
boucle sur un sommet. On peut imaginer des graphes avec une arête qui relie
un sommet à lui-même (une boucle), ou plusieurs arêtes reliant les deux mêmes
sommets. On appelera ces graphes des multigraphes.

Un graphe est connexe s’il est possible, à partir de n’importe quel sommet,
de rejoindre tous les autres en suivant les arêtes. Un graphe non connexe se
décompose en composantes connexes. Sur le graphe ci-dessous, les composantes
connexes sont {1, 2, 3, 4} et {5, 6}.

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
CHAPTER 1. GRAPHE NON-ORIENTÉ. 4

Un graphe est complet si chaque sommet du graphe est relié directement à tous
les autres sommets.

Un graphe est biparti si ses sommets peuvent être divisés en deux ensembles X
et Y, de sorte que toutes les arêtes du graphe relient un sommet dans X à un
sommet dans Y (dans l’exemple ci-dessous, on a X = {1, 3, 5} et Y = {2, 4}, ou
vice versa).

Exercice 1.1. .

On a six wagons à trier. Dans la gare de triage, les wagons entrent dans l’ordre
2, 5, 3, 6, 1, 4 et doivent sortir dans l’ordre croissant. Deux wagons i et j peuvent
être mis sur la même voie si et seulement s’ils entrent dans l’ordre dans lequel
ils doivent sortir.

Dessinez un graphe illustrant la situation, en indiquant ce que représentent les


sommets et les arêtes de votre graphe. Quel sera le nombre minimal de voies
nécessaires au tri?

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
CHAPTER 1. GRAPHE NON-ORIENTÉ. 5

Exercice 1.2. .

Trois professeurs P1 , P2 , P3 devront donner lundi prochain un certain nombre


d’heures de cours à trois classes C1 , C2 , C3 :

P1 doit donner 2 heures de cours à C1 et 1 heure à C2 ;

P2 doit donner 1 heure de cours à C1 , 1 heure à C2 et 1 heure à C3 ;

P3 doit donner 1 heure de cours à C1 , 1 heure à C2 et 2 heures à C3 .

1. Comment représenter cette situation par un graphe?

2. Quel type de graphe obtenez-vous ? Combien faudra-t-il de plages horaires


au minimum?

3. Aidez-vous du graphe pour proposer un horaire du lundi pour ces pro-


fesseurs.

Exercice 1.3. .

Un tournoi d’échecs oppose 6 personnes. Chaque joueur doit affronter tous les
autres.

1. Construisez un graphe représentant toutes les parties possibles.

2. Quel type de graphe obtenez-vous ?

3. Si chaque joueur ne joue qu’un match par jour, combien de jours faudra-t-il
pour terminer le tournoi?

4. Aidez-vous du graphe pour proposer un calendrier des matches.

1.0.3 Degré dans un graphe

Degré d’un sommet

On appelle degré du sommet v, et on note d(v), le nombre d’arêtes incidentes à


ce sommet.

Attention! Une boucle sur un sommet compte double.

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
CHAPTER 1. GRAPHE NON-ORIENTÉ. 6

Dans un graphe simple, on peut aussi définir le degré d’un sommet comme étant
le nombre de ses voisins (la taille de son voisinage). Dans le multigraphe ci-
contre, on a les degrés :

d(v1 ) = 2, d(v2 ) = 2, d(v3 ) = 4, d(v4 ) = 1, d(v5 ) =?

Théorème 1.4. (Lemme des poignées de mains)


La somme des degrés des sommets d’un graphe est égale à deux fois le nombre
d’arêtes.
Si G = (V, E), on a: d(v) = 2|E|
X

v∈V

Degré d’un graphe

Le degré d’un graphe est le degré maximum de tous ses sommets. Dans l’exemple
ci- dessous, le degré du graphe est 4, à cause du sommet v3 .

Un graphe dont tous les sommets ont le même degré est dit régulier. Si le degré
commun est k, alors on dit que le graphe est k-régulier.

Exercice 1.5. Montrez qu’un graphe simple a un nombre pair de sommets de


degré impair.

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
CHAPTER 1. GRAPHE NON-ORIENTÉ. 7

Exercice 1.6. Montrez que dans une assemblée de n personnes, il y a toujours


au moins 2 personnes qui ont le même nombre d’amis présents.

Exercice 1.7. Est-il possible de relier 15 ordinateurs de sorte que chaque appareil
soit relié avec exactement trois autres?

Exercice 1.8. On s’intéresse aux graphes 3-réguliers.


Construisez de tels graphes ayant 4, 5, 6, puis 7 sommets. Qu’en déduisez-vous?
Prouvez-le!

1.0.4 Chaînes et cycles

Une chaîne dans G, est une suite ayant pour éléments alternativement des som-
mets et des arêtes, commençant et se terminant par un sommet, et telle que
chaque arête est encadrée par ses extrémités.

On dira que la chaîne relie le premier sommet de la suite au dernier sommet. En


plus, on dira que la chaîne a pour longueur le nombre d’arêtes de la chaîne.
Le graphe ci-dessous contient entre autres les chaînes (v1 , e1 , v2 , e2 , v3 , e5 , v5 ) et
(v4 , e4 , v3 , e2 , v2 , e1 , v1 ).

On ne change pas une chaîne en inversant l’ordre des éléments dans la suite cor-
respondante. Ainsi, les chaînes (v1 , e3 , v3 , e4 , v4 ) et (v4 , e4 , v3 , e3 , v1 ) sont identiques.

Théorème 1.9. Pour un graphe G ayant m arêtes, n sommets et p composantes


connexes, on définit: ν(G) = m − n + p ν(G) est appelé le nombre cyclomatique.
Prononcer «nu de G».

On a ν(G) ≥ 0 pour tout graphe G. De plus, ν(G) = 0 si et seulement si G est


sans cycle.

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
CHAPTER 1. GRAPHE NON-ORIENTÉ. 8

1.0.5 Graphes eulériens

On appelle cycle eulérien d’un graphe G un cycle passant une et une seule fois
par chacune des arêtes de G. Un graphe est dit eulérien s’il possède un cycle
eulérien. On appelle chaîne eulérienne d’un graphe G une chaîne passant une
et une seule fois par chacune des arêtes de G. Un graphe ne possédant que
des chaînes eulériennes est semi-eulérien. Plus simplement, on peut dire qu’un
graphe est eulérien (ou semi-eulérien) s’il est possible de dessiner le graphe sans
lever le crayon et sans passer deux fois sur la même arête.

Théorème 1.10. (Graphe eulérien)


Un multigraphe G = (V, E) connexe est eulérien si et seulement si tout sommet
de G est de degré pair.

Théorème 1.11. (Graphe semi-eulérien)


Un multigraphe G = (V, E) connexe est semi-eulérien si et seulement si G possède
0 ou 2 sommets de degrés impairs.

Exercice 1.12. .
Les graphes suivants sont-ils eulériens (ou semi-eulériens)?

Exercice 1.13. Cet exercice est un des problèmes fondateurs de la théorie des
graphes, proposé par le mathématicien suisse Leonhard Euler en 1736. En 1652,
la ville de Königsberg (aujourd’hui Kaliningrad) possède sept ponts enjambant
la Pregel, qui coule de part et d’autre de l’île de Kneiphof.

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
CHAPTER 1. GRAPHE NON-ORIENTÉ. 9

Au cours d’une promenade, est-il possible de passer sur tous les ponts de la ville
une et une seule fois et revenir au point de départ?

Exercice 1.14. .
Est-il possible de tracer une courbe, sans lever le crayon, qui coupe chacun des
16 segments de la figure suivante exactement une fois?

1.0.6 Matrice d’adjacences

On peut représenter un graphe simple par une matrice d’adjacences. Une ma-
trice (n × m) est un tableau de n lignes et m colonnes. (i, j) désigne l’intersection
de la ligne i et de la colonne j. Dans une matrice d’adjacences, les lignes et les
colonnes représentent les sommets du graphe. Un « 1 » à la position (i, j) signifie
que le sommet i est adjacent au sommet j.

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
CHAPTER 1. GRAPHE NON-ORIENTÉ. 10

Cette matrice a plusieurs caractéristiques:

1. Elle est carrée : il y a autant de lignes que de colonnes.

2. Il n’y a que des zéros sur la diagonale allant du coin supérieur gauche au
coin inférieur droit. Un « 1 » sur la diagonale indiquerait une boucle.

3. Elle est symétrique : mij = mji . On peut dire que la diagonale est un axe
de symétrie.

4. Une fois que l’on fixe l’ordre des sommets, il existe une matrice d’adjacences
unique pour chaque graphe. Celle-ci n’est la matrice d’adjacences d’aucun
autre graphe.

Définition 1.15. (Matrice d’adjacence d’un multigraphe)


La matrice d’adjacence d’un multigraphe G = (V, E) où V = {v1 , · · · , vn } est définie
par M = (mij )1≤i,j≤n avec mij le nombre d’arêtes incidentes à i et j.

Proposition 1.16. (Nombre de chaînes de longueur k)


Soit M = (mij )1≤i,j≤n la matrice d’adjacence d’un graphe G = (V, E) où V =
(k) (k)
{v1 , · · · , vn } et k un entier naturel non nul tel que M k = (mij )1≤i,j≤n . Alors mij
est le nombre de chaînes de longueur k allant du sommet vi au sommet vj .

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Chapter 2

Graphe orienté

Définition 2.1. (Graphe orienté)


Un graphe G = (X, U ) est déterminé par la donnée : d’un ensemble U dont les éléments
u ∈ U sont des couples ordonnés de sommets appelés des arcs. Si u = (i, j) est un arc de
G, i est l’extrémité initiale et j l’extrémité terminale de u. On notera m = |U | le nombre
d’arcs.

Exemple 2.2.

Définition 2.3. (Boucle)


Un arc u = (i, i) dont les extrémités coïncident est appelé une boucle.

u8 par exemple dans le graphe précédent.

Définition 2.4. (Ensemble de successeurs d’un sommet)

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
CHAPTER 2. GRAPHE ORIENTÉ 12

j est un successeur( ou suivant) de i s’il existe un arc de la forme (i, j). L’ensemble des
successeurs d’un sommet i ∈ X est noté Suv(i).

Les successeurs de 3 dans le graphe précédent sont 4 et 5

Définition 2.5. (Ensemble de prédécesseurs d’un sommet)


j est un prédecesseur de i s’il existe un arc de la forme (j, i). L’ensemble des prédecesseurs
d’un sommet i ∈ X est noté Pred(i).

2.0.1 Dictionnaires des précédents et des suivants:

Un graphe orienté peut-être défini par la donnée de la liste des prédécesseurs


de chaque sommet (appelé dictionnaire des précédents). De manière analogue
on peut aussi définir un digraphe par la liste des suivants de chaque sommet
(dictionnaire des suivants)

Exemple 2.6.
Réaliser le graphe dont le dictionnaire Réaliser le graphe dont le dictionnaire
des précédents est le suivant: des suivants est le suivant:
Sommets Précédents
A -
Sommets suivants
B -
A E
C -
B B, C
D A
C D, E, F
E B
D C, F
F B
E -
G B
F C, D
H C, F
I D, E

2.0.2 Représentation matricielle

Matrice d’adjacence ou matrice booléenne

Soit G = (V, E) un digraphe simple où V = {x1 ; · · · ; xn }. On appelle matrice


booléenne ou matrice d’adjacence du graphe G, la matrice carrée M = (aij )

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
CHAPTER 2. GRAPHE ORIENTÉ 13

d’ordre n tel que




 1 si (xi , xj ) ∈ E
aij = (2.1)
0 si (xi , xj ) < E

Exemple 2.7. Détermine la matrice booléenne des deux graphes précédents


n
1. Le nombre de suivants d+ (xi ) d’un sommet xi est d+ (xi ) =
X
Proposition 2.8. aij
j=1

n
2. Le nombre de précédents d− (xi ) d’un sommet xi est d− (xi ) =
X
aji
j=1

n n n
3. aij = d+ (xi ) = d− (xi ) = |E|
X X X

ji i=1 i=1

4. La trace de M tr(M ) est égale au nombre de boucle du graphe.

5. Soit k un entier naturel. La matrice M k = (aij (k)) donne le nombre de chemin de


longueur k allant du sommet xi au sommet xj

Matrice d’incidence

La matrice d’incidence d’un digraphe G = (V, E) où E = {x1 ; · · · ; xn }, E =


{e1 , · · · , em } est une matrice n × m définie par I = (bij ) avec


1 si xi est l’extrémité initiale deej






bij = −1 si xi est l’extrémité finale deej et ej n’est pas boucle (2.2)



0 dans les autres cas


Exemple 2.9. Déterminer la matrice d’incidence des deux graphes précédents

Définition 2.10. (Graphe biparti)


Un graphe G = (X, U ) est biparti s’il est possible de partitionner X en deux sous-ensembles
S1 et S2 tels que chaque arête ait exactement une extrémité dans S1 et une extrémité dans
S2 .

Exemple 2.11. Un ingénieur informaticien doit exécuter cinq tâches avec cinq machines
différentes. Les diverses machines sont plus ou moins adaptées pour exécuter telle ou telle
tâches. Le tableau suivant présente les possibilités.

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
CHAPTER 2. GRAPHE ORIENTÉ 14

Machines Tâches possibles


M1 T2
M2 T1 , T3
M3 T1 , T2
M4 T2
M5 T1 , T2 , T3

Représenter la structure du problème par un graphe. Quel est le type de ce graphe?

2.0.3 Chemins et circuits

Un chemin conduisant du sommet a au sommet b est une suite ayant pour


éléments alternativement des sommets et des arcs, commençant et se terminant
par un sommet, et telle que chaque arc est encadré à gauche par son sommet
origine et à droite par son sommet destination. On ne peut donc pas prendre
les arc à rebours. Sur le digraphe ci-dessus, on peut voir par exemple le chemin
(v3 , e2 , v2 , e1 , v1 ). Par convention, tout chemin comporte au moins un arc.

On appelle distance entre deux sommets d’un digraphe la longueur du plus pe-
tit chemin les reliant. S’il n’existe pas de chemin entre les sommets x et y, on
pose d(x, y) = ∞. Par exemple, sur le digraphe ci-dessous, d(v5 , v4 ) = 2, d(v4 , v5 ) =
∞, d(v3 , v1 ) = 1,

Un circuit est un chemin dont les sommets de départ et de fin sont les mêmes.
Le digraphe ci-dessous contient un circuit: (1, 6, 4, 1)

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Recherche du plus court chemin 15

Définition 2.12. (Graphe valué)

Etant donné un graphe G = (X, U ), on associe à chaque arête u un nombre p(u) ∈ R


appelé poids de l’arête. On dit que G est valué ou pondéré par les valeurs p(u).
Si u = (i, j), on utilisera également la notation pij pour désigner le poids de l’arête
u.

10
A
15
20 E
5 20

35 15 25
S B D T
5 20
10
5
F
C

10

Dans ce graphe, la valeur de (S,A) est 20. Celle de (A,E) est 10 et ainsi de suite.

Définition 2.13. (Valeur d’un chemin ou d’un cycle)

La valeur d’un chemin ou d’un cycle dans un graphe valué est la somme des
valeurs des arc qui le constituent.

Comme exemple dans le graphe précédent, la valeur du chemin S-A-E-T est


20+10+20= 50.

2.1 Recherche du plus court chemin

2.1.1 Plus court chemin dans un graphe: Algorithme de Dijkstra

Edgser Wybe Dijkstra (1930-2002) a proposé en 1959 un algorithme qui permet


de calculer le plus court chemin entre un sommet particulier et tous les autres.
Le résultat est une arborescence, c’est-à-dire un arbre avec un sommet partic-

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Recherche du plus court chemin 16

ulier appelé racine.

Numérotons les sommets du graphe G = (V, E) de 1 à n. Supposons que


l’on s’intéresse aux chemins partant du sommet 1. On construit un vecteur
λ = λ(1); λ(2); · · · ; λ(n) ayant n composantes tel que λ(j) soit égal à la longueur du
plus court chemin allant de 1 au sommet j.

On initialise ce vecteur à c1j , c’est-à-dire à la première ligne de la matrice des


coûts du graphe, définie comme indiqué ci-dessous:


0 Si i = j






Cij = ∞ Si i , j et (i, j) < E (2.3)



δij Si i , j et (i, j) ∈ E


Où δij > 0 est le poids de l’arc (i, j).

On construit un autre vecteur p pour mémoriser le chemin pour aller du sommet


1 au sommet voulu. La valeur p(i) donne le sommet qui précède i dans le chemin.

On considère ensuite deux ensembles de sommets, S initialisé à {1} et T initialisé


à {2, 3, · · · , n}.

À chaque pas de l’algorithme, on ajoute à S un sommet jusqu’à ce que S = V


de telle sorte que le vecteur λ donne à chaque étape la longueur minimale des
chemins de 1 aux sommets de S.

Présentation de l’algorithme

• Initialisations

– λ(j) = cij et P(j) = NIL pour 1 ≤ j ≤ n

– pour 2 ≤ j ≤ n fair:
Si cij < ∞ p(j) = 1

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Recherche du plus court chemin 17

– S= 1 et T = 2; · · · ; n

• Itérations

– Tant que T n’est pas vide, faire:

∗ Choisir i dans T tel que λ(i) soit le minimum.

∗ Retirer i de T et l’ajouter à S.

∗ Pour chaque successeur j de i avec j ∈ T , faire:

· Si λ(j) > λ(i) + δ(i, j) alors


λ(j) = λ(i) + δ(i, j)
P(j) = i

Exemple 2.14. On considère graphe valué suivant:

15

3 B
7 C
2 3
4
A E 5
D
10

Déterminer le plus court chemin allant de 1 à tout sommet.

1. Initialisation:

(a) S = {1}; T = {2; 3; 4; 5}

(b) λ = (0; 15; ∞; ∞; 4); P = (1; 1; N IL; N IL; 1)

2. Itération 1:

(a) min λ(i) = 4 = λ(5); Donc i∗ = 5


i∈T

(b) On a S = {1; 5} et T = {2; 3; 4}.

(c) Les successeurs de 5 dans T sont 3 et 4.

i. λ(3) = min{∞; λ(5) + δ(5; 3)} = min{∞; 4 + 7} = 11

ii. λ(4) = min{∞; λ(5) + δ(5; 4)} = min{∞; 4 + 5} = 9

(d) λ = (0; 15; 11; 9; 4); P = (1; 1; 5; 5; 1)

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Recherche du plus court chemin 18

3. Itération 2

(a) min λ(i) = 9 = λ(4); Donc i∗ = 4


i∈T

(b) On a S = 1; 5; 4 et T = 2; 3

(c) Le successeur de 4 dans T est 2.

i. λ(2) = min15; λ(4) + δ(4; 2) = min15; 9 + 3 = 12

(d) λ = (0; 12; 11; 9; 4); P = (1; 4; 5; 5; 1)

4. Itération 3

(a) min λ(i) = 11 = λ(3); Donc i∗ = 3


i∈T

(b) On a S = {1; 5; 4; 3} et T = {2}

(c) Le successeur de 3 dans T est 2.

i. λ(2) = min{12; λ(3) + δ(3; 2)} = min{12; 11 + 3} = 12. Pas de modification

(d) λ = (0; 15; 11; 9; 4); P = (1; 1; 5; 5; 1)

5. Itération 4

(a) min λ(i) = 12 = λ(2); Donc i∗ = 2


i∈T

(b) On a S = {1; 5; 4; 3; 2} et T = {}

(c) T est vide donc il n’y a pas de successeur de 2 dans T.

(d) λ = (0; 12; 11; 9; 4); P = (1; 4; 5; 5; 1)

Nous sommes à la fin de l’algorithme. On na donc l’arbre couvrant qui donne tous les plus
courts chemins allant de 1 aux autres sommets.

7 C
4
A E 5
3
D B

Remarque 2.15. L’algorithme de Dijkstra ainsi présenté permet de déterminer le plus court
chemin dans tout graphe orienté comportant un circuit ou non. Pour des graphes orientés
sans circuit nous avons l’algorithme suivant.

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Recherche du plus court chemin 19

2.1.2 Recherche du plus court chemin dans un graphe orienté sans


circuit.

Organisation d’un graphe sans circuit par niveau

Le graphe orienté G est sans circuit si et seulement si on peut attribuer un


nombre r(v), appelé le rang (ou niveau) de v, à chaque sommet v de manière que
pour tout arc (u, v) de G on ait r(u) < r(v). Organiser un graphe, c’est déterner
le niveau de chacun de ses sommets. Pour organiser un graphe orienté et sans
circuit:

• On établir le dictionnaire des précédents du graphe

• On attribuer le niveau 0 à tout sommet ne possédant pas de précédent.

• Barrer ces sommets dans la liste des précédents

• Attribuer le niveau 1 aux nouvaux sommets sans précédent puis les barrer
à leur tour de la liste des précédents.

• On répète le processus jusqu’à ce qu’il n’y ait plus de sommet sans précé-
dent.

Le processus s’arrête naturellement car le graphe est sans circuit.

Exemple 2.16. Considérons le graphe suivant défini par son dictionnaire des précédents:

Sommets Précédents
A -
B -
C B
D A, B
E C
F E
G D, E
H G, F

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Recherche du plus court chemin 20

Organisons ce graphe par niveau.

•Les sommets A et B n’ont pas de précédents, donc ils sont de niveau zéro (0). On les barre
dans la liste des précédents

Sommets Précédents Niveaux


A - 0
B - 0
C //
B
D ///
A, //
B
E C
F E
G D, E
H G, F

•Les sommets C et D n’ont pas de précédents, donc ils sont de niveau un (1). On les barre
dans la liste des précédents

Sommets Précédents Niveaux


A - 0
B - 0
C B
@ 1
D A, @
@ B 1
E C
@

F E
G D,
@ E
H G, F

•Le sommet E n’a plus de précédent, donc il est de niveau deux (2). On le barre dans la
liste des précédents

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Recherche du plus court chemin 21

Sommets Précédents Niveaux


A - 0
B - 0
C B
@ 1
D A, @
@ B 1
E C
@ 2
F E
S

G D, E
@ S

H G, F

•Les sommets F et G n’ont plus de précédents, donc ils sont de niveau trois (3). On les
barre dans la liste des précédents

Sommets Précédents Niveaux


A - 0
B - 0
C B
@ 1
D A, @
@ B 1
E C
@ 2
F E
S 3
G D, E
@ S 3
H G
@, S
@ F

•Le sommet H n’a plus de précédent, donc il est de niveau quatre (4). On le barre dans la
liste des précédents

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Recherche du plus court chemin 22

Sommets Précédents Niveaux


A - 0
B - 0
C B
@ 1
D A, @
@ B 1
E C
@ 2
F E
S 3
G D, E
@ S 3
H G
@, S
@ F 4

Le graphe peut se représenter par niveau comme suit:

A D G
H
B C E F

Algorithme de Recherche de plus court chemin.

1. Initialisation:

(a) On numérote les sommets du graphe organisé de 1 à n. Le sommet de


départ étant numéroté de 1.

(b) On initialise un vecteur coût λ = (λ(1), · · · , λ(n)) par :

i. λ(1) = 0

ii. λ(i) = +∞ ∀ i ∈ {2, · · · , n}

2. Itération
Pour améliorer le coût d’un sommet:

(a) On vérifie que tous les prédécesseurs du sommet sont marqués. Chaque
sommet est marqué par son coût minimal λ0 (i) associé et ainsi que le
précédent correspondant.

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Recherche du plus court chemin 23

(b) Si tous les précédents du sommet i sont marqués, son coût λ(i) est
amélioré par la formule
λ0 (i) = min {λ(i), δ(j, i) + λ(i)} où δ(j, i) est le coût de l’arc (j, i).
j∈P re(i)

3. On détermine l’arbre couvrant à coût minimal.

Exercice

A, B, C, D, E, F, , G, H, I, et J sont des villes d’un pays. Le tableau suivant


présente l’existence d’une voie joignant une ville X à une ville Y et le coût de
transport entre X et Y. Un voyageur quitte la ville A et doit se rendre à J.

% A B C D E F G H I J
A 7 6 9 6
B 10
C 4
D 9 5 9
E 5 10
F 4
G 9 5
H 9
I 9
J

On désigne par G le graphe représentant le réseau routier de ce pays relativement


à ces villes.

1. Etablire le dictionnaire des précédents de G

2. Ordonner les sommets de G par niveaux

3. Faire le réprésentation sagittale de G.

4. Proposer un chemin optimal au voyageur.

5. Quel est le coût total de ce chemin?

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Problème d’ordonnancement 24

2.2 Problème d’ordonnancement

La réalisation d’un projet nécessite souvent une succession de tâches auxquelles


s’attachent certaines contraintes :

De temps: délais à respecter pour l’exécution des tâches ;

D’antériorité: certaines tâches doivent s’exécuter avant d’autres;

De production: temps d’occupation du matériel ou des hommes qui l’utilisent.

Les techniques d’ordonnancement dans le cadre de la gestion d’un projet ont pour
objectif de répondre au mieux aux besoins exprimés par un client, au meilleur
coût et dans les meilleurs délais, en tenant compte des différentes contraintes.
L’ordonnancement se déroule en trois étapes:

La planification: qui vise à déterminer les différentes opérations à réaliser, les


dates correspondantes, et les moyens matériels et humains à y affecter.

L’exécution: qui consiste à la mise en œuvre des différentes opérations définies


dans la phase de planification.

Le contrôle: qui consiste à effectuer une comparaison entre planification et exé-


cution, soit au niveau des coûts, soit au niveau des dates de réalisation.

Il existe trois méthodes d’ordonnancement: le diagramme de Gantt, la méthode


MPM(Méthode des potentiels Métra), le PERT(Program Research Technic).

2.2.1 Méthode MPM

Le principe du réseau MPM consiste à associer à chaque tâche un sommet X


puis à ordonnanceer les tâches par niveau. Deux sommets X et Y définissent un
arc (X, Y) si la tâche associée à X précède celle associée à Y. Les sommets de
niveau 0 sont ceux qui n’ont pas de précédent.

Après l’ordonnancement des tâches, on réalise le graphe MPM où chaque sommet


est présenté comme suit:

Date de début au plus tôt Date de début au plus tard


X

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Problème d’ordonnancement 25

Les principaux éléments recherchés

Il s’agit de:

• Début au plus tôt d’exécution d’une tâche tX : C’est le maximum des fins au
plus tôt des tâches qui la déclenche (Il peut exceptionnellement y avoir un retard
ou chevauchement si le cahier des charges du projet le précise et que la faisabilité
est vérifiée). On a:

t∗X = max{tY + dY ; Y ∈ pred(X)}

• Début au plus tard d’une tâche t∗X : C’est la date de fin au plus tard de la tâche
moins la durée de la tâche. On a: t∗X = min{t∗Y − dX ; Y ∈ suiv(X)}

• Fin au plus tôt: C’est la date de début au plus tôt plus la durée de la tâche.

• Fin au plus tard: C’est le minimum des dates de début au plus tard des tâches
qu’elle enclenche.

• Marge totale Mt (X): C’est le retard admissible du début d’une tâche qui
n’entraîne aucun recul de la date de fin du projet, mais qui consomme les marges
libres des opérations suivantes. C’est la date de début au plus tard moins la date
de début au plus tôt. On a:

Mt (X) = t∗X − tX .

• Marge libre Ml (X): C’est le retard admissible sur une tâche qui n’entraîne pas
de modification des calendriers des tâches suivantes.

C’est la date de début au plus tôt de la tâches suivante moins la durée de la


tâche moins la date de début au plus tôt de la tâche. On a:

Ml (X) = min{tY − dX − tX ; Y ∈ suv(X)}

Exercice 2.17. .
Le projet d’installation d’un reseau de communication locale dans un service comporte plusieurs
tâches liées entre elles par des relations de succession présentées par le tableau suivant:

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Problème d’ordonnancement 26

Tâches Tâches antérieurs Durées


A - 2
B - 8
C B 2
D A, B 4
E C 3
F E 2
G D, E 3
H G, F 2

1. Représenter ce projet par un graphe MPM.

2. Déterminer les dâtes de début au plus tôt et les dâtes de début au plus tard de chaque
tâche.

3. Préciser la durée minimale d’exécution du projet.

4. Dresser un tableau récapitulatif des marges totales et libres de chaque tâche.

5. Donner les conséquences d’un retard de 4 jours sur le démarrage des tâches B et D.

Exercice 2.18. .
On considère le projet suivant:

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Problème d’ordonnancement 27

Tâches Tâches antérieurs Durées (jour)


A - 2
B - 1
C B 1
D E 4
E A, C 3
F A, B 5
G F 2
H D 3
I H 2
J G, I 3
K J 5
L K 3

1. Représenter ce projet par un graphe MPM.

2. Déterminer les dâtes de début au plus tôt et les dâtes de début au plus tard de chaque
tâche.

3. Préciser la durée minimale d’exécution du projet.

4. Si on commence les tâches A et B un 30 Juin, à quelle dâte peut-on démarrer la tâche


J dans la même année si tout se déroule normalement?

5. Dresser un tableau récapitulatif des marges totales et libres de chaque tâche.

6. Si on commence les tâches A et B un 30 Juin, avec 3 jours de retard sur E, peut-on


démarrer J le 15 juillet de la même année? Justifie ta réponse.

7. Si on commence les tâches A et B un 30 Juin, avec 3 jours de retard sur G, peut-on


démarrer J le 15 juillet de la même année? Justifie ta réponse.

La théorie des graphes Jean KOUDI ©IFRI 2020-2021


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com

Vous aimerez peut-être aussi