Vous êtes sur la page 1sur 47

Institut de Mathématiques et de Sciences Physiques,

(IMSP) Porto-Novo, Bénin


INTRODUCTION À LA THÉORIE DES

GRAPHES

Dr Jean KOUDI
Chapitre Premier

Introduction et motivation

La théorie des graphes est aujourd’hui une discipline à part entière des mathé-
matiques disposant des moyens et les méthodes les plus puissantes pour une
modélisation facile des problèmes concrets de la vie.

L’histoire de la théorie des graphes débute peut-être avec les travaux d’Euler au
XV III e siècle et trouve son origine dans l’étude de certains problèmes, tels que
celui des ponts de Königsberg (voir plus loin)

Les graphes apparaissent naturellement lorsqu’on est confronté à un réseau (ré-


seau de transport, réseau informatique, réseau d’eau ou de gaz, circuits élec-
triques etc.). Comment parcourir le réseau de manière optimale ? C’est la ques-
tion du voyageur de commerce par exemple. Comment concevoir un réseau infor-
matique 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 dans certaines modélisations de pro-


blèmes où la structure du graphe n’est pas nécessairement 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 pro-
blèmes d’ordonnancement, où les sommets représentent des tâches et les arcs les
relations de succession.

La théorie des graphes s’est alors développée dans diverses disciplines telles que
la chimie, la biologie, les sciences sociales.

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

Quelques applications

Les applications de la théorie des graphes sont nombreuses en informatique et


dans la vie de tous les jours :
— Trouver les itinéraires les plus courts dans les systèmes de navigation au-
tomobile
— Les moteurs de recherche utilisent des algorithmes de classement basés sur
la théorie des graphes
— Optimisation des horaires pour les écoles ou les universités
— Analyse des réseaux sociaux
— Optimiser l’utilisation des systèmes ferroviaires
— Trouver le réseau électrique le plus économique pour relier des villes ou
des bâtiments.
— Trouver le réseau routier le plus court pour relier des points d’intérêt.
— Trouver le réseau de communication le plus efficace pour transmettre des
données entre des ordinateurs ou des satellites.
— Trouver le réseau de distribution le plus optimal pour acheminer des mar-
chandises ou des services.
— etc.
Il existe deux familles de graphes, les graphes non-orientés et les graphes orientés.

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

Graphe non-orienté.

2.1 Définition.

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
indiffé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
à e et que e est incidente à u et à v.

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

Un sommet auquel aucune arête n’est incidente est dit isolé. Un sommet incident
à une seule arête est dit pendant et l’arête est une arête pendante.

Si plusieurs arêtes sont incidentes à la fois à deux sommets, on dit qu’elles sont
des arêtes parallèles ou arêtes multiples. On parle aussi de famille d’arêtes.

Si graphe non orienté contient au moins une boucle ou d’arêtes parallèles, on dit
qu’il est un multigraphe.

Un graphe ne comportant pas d’arêtes parallèles ni de boucles est un graphe


simple.

On appelle ordre d’un graphe le nombre de sommets n de ce graphe.

Un graphe est généralement défini par une relation binaire.

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Définition. 4

2.1.1 Exemples de graphes.

Représentation sagittale des graphes G1 et G2.

u1
1 2
u6 u8
f a e
u5 3
b u2
u7 u3

4
c
u4
d 5

’Graphe G1’ ’Graphe G2’

Le graphe G1 = (V, E) avec V = {a, b, c, d, e, f } et E = {{a, c}, {a, d}, {a, e}, {b, c}, {c, d}, {d, e}, {e, c}
G1 contient 6 sommets et 7 arêtes donc l’ordre de G1 est 6. Le sommet b de G1
est un sommet pendant et le sommet f est un sommet isolé.

Dans le graphe G2 , les arêtes u2 et u3 sont des arêtes parallèles. On a u1 = {2, 4}


et u4 = {2,4}.

Le graphe G1 est un graphe simple et G2 est multigraphe.

5 4
6
4 1 3

1 3
2 2

Graphe simple. Multigraphe

2.1.2 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

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Définition. 5

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.

Un cycle est une chaîne qui commence par un sommet et se termine par ce même
sommet. On dira que la chaîne relie le premier sommet de la suite à lui même.

La longueur d’une chaîne est le nombre d’arêtes de la chaîne.

Le graphe G3 ci-dessous contient entre autres les chaînes C1 = (v1 , e1 , v2 , e2 , v3 , e5 , v5 )


et C2 = (v4 , e4 , v3 , e2 , v2 , e1 , v1 ).

v1
e1
v2 e3
e2 v5
e5

v3 e4
v4

Graphe G3

La longueur de C1 est 3 et celle de C2 est aussi 3.

On ne change pas une chaîne en inversant l’ordre des éléments dans la


suite correspondante. Ainsi, les chaînes (v1 , e3 , v3 , e4 , v4 ) et (v4 , e4 , v3 , e3 , v1 )
sont identiques.

On dit qu’une chaîne est simple si elle utilise une et une seule fois chacune
de ses arêtes. De manière analogue, un cycle simple est un cycle utilisant
une et une seule fois chacune de ses arêtes. Dans le graphe G2, la chaîne
(1, u1 , 2, u8 , 3, u7 , 4) est une chaîne simple. Le cycle (1, u1 , 2, u2 , 4, u5 , 1)
est un cycle simple.

Une chaîne élémentaire est une chaîne qui utilise une et une seule fois chacun
de ses sommets. Pareil pour un cycle élémentaire. Dans le graphe G2, la
chaîne (1, u1 , 2, u8 , 3, u7 , 4) est une chaîne élémentaire. Le cycle (1, u1 , 2,
u2 , 4, u5 , 1) est un cycle élémentaire.

Dans le graphe G2, la chaîne (1, u1 , 2, u8 , 3, u7 , 4, u2 , 2, u3 , 4,) est une chaîne


simple mais n’est pas élémentaire.

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Sous-graphe et graphe partiel. 6

2.2 Sous-graphe et graphe partiel.

2.2.1 Sous-graphe.

Un sous-graphe ( subgraph) G0 = (V 0 , E 0 ) de G = (V, E) est un graphe tel que


V 0 ⊂ V et E 0 ⊂ E.

Un sous-graphe induit ( induced subgraph) G” = (V ”, E) de G = (V, E) est un


graphe tel que V ” ⊂ V et E” est l’ensemble des arêtes de E incidentes à deux
sommets de V ”. On notera ce sous-graphe G[V ”].

Une clique (clique) d’un graphe G = (V, E) est un sous-graphe induit complet.

Un stable ( stable or independent set) d’un graphe G = (V, E) est un sous-graphe


induit sans arête.

2.2.2 Graphe partiel.

Un graphe partiel de G = (V, E) est un graphe G0 = (V, E 0 ) dont l’ensemble de ses


arêtes E 0 est une partie de E et ayant les mêmes sommets que G.

Un graphe partiel est parfois appelé sous-graphe couvrant, car ce sous-graphe


“couvre” tous les sommets du graphe initial, mais n’en possède pas toutes les
arêtes.

2.2.3 Couplages

Un couplage ( matching) d’un graphe G = (V, E) est un sous-graphe composé


d’arêtes deux à deux non adjacentes

Un couplage parfait ( perfect matching) d’un graphe G = (V, E) est un graphe


partiel composé d’arêtes deux à deux non adjacentes.

Un couplage est dit maximal s’il contient un nombre maximal d’arêtes deux à
deux non adjacentes.

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Degré dans un graphe 7

2.2.4 Modélisation

Exercice 2.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.

Exercice 2.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 .

Représenter cette situation par un graphe.

2.3 Degré dans un graphe

2.3.1 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.

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 :

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Degré dans un graphe 8

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

Théorème 2.3. (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.

X
Si G = (V, E), on a : d(v) = 2|E|
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 .

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


degré impair.

Exercice 2.5. 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.

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Quelques types de graphes 9

2.4 Quelques types de graphes

2.4.1 Graphe planaire

Si on peut dessiner un graphe G dans le plan sans qu’aucune arête n’en coupe
une autre, on dit que G est planaire. Le graphe G ci-dessous est planaire.

2.4.2 Graphes connexes.

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. Une composante connexe est un sous graphe
induit maximal et connexe.

5
6
4

1 3
2

Graphe non connexe

Les composantes connexes du graphe ci-dessus, sont {1, 2, 3, 4} et {5, 6}.

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Quelques types de graphes 10

5
6
4

1 3
2

Graphe connexe

Théorème 2.6. 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 de G. Prononcer «nu de G».

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


sans cycle.

2.4.3 Arbre et forêt

Un arbre est un graphe connexe sans cycle ni boucle.

Une forêt est un graphe sans cycle ni boucle. Chaque composante connexe d’une
forêt est un arbre.

6 5 7 6 5 7

3 9 3
8 8

1 2 4 1 2 4

Arbre. Forêt.

Proposition 2.7. Si G = (V, E) est un arbre d’ordre n alors |E| = n − 1.

Proposition 2.8. Soit G = (V, E) une forêt d’ordre n et possédant p composantes connexes.
alors |E| = n − p.

Définition 2.9. (Arbre couvrant.) Un arbre couvrant d’un graphe G = (V, E) est un graphe
partiel de G et qui est un arbre.

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Quelques types de graphes 11

Un arbre couvrant de G contient tous les sommets de G, il est sans cycle et


comporte n − 1 arêtes de G.

6 5 7 6 5 7

3 3
8 8

1 2 4 1 2 4

Graphe connexe G. Arbre couvrant de G.

2.4.4 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.

NB : On convient que tout graphe constitué que des sommets isolés est eulérien.

Théorème 2.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 2.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.

Conséquence 2.12. Soit G = (V, E) un multigraphe non connexe contenant une seule
composante connexe non réduit à un sommet isolé. Si tout sommet de G est de degré pair
alors G est eulérien.

Preuve 2.13. (Exercice à faire.)

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Quelques types de graphes 12

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

Exercice 2.15. 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.

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 2.16. .
Est-il possible de tracer une courbe, sans lever le crayon, qui coupe chacun des 16 segments
de la figure suivante exactement une fois ?

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Quelques types de graphes 13

2.4.5 Graphes hamiltoniens

Un graphe hamiltonien (resp. semi-hamiltonien) est un graphe sur lequel on


peut trouver un cycle (resp. une chaine) passant par tous les sommets une et
une seule fois. Ce problème est donc celui d’un enfant qui souhaiterait visiter de
manière unique toutes les salles d’un musée.

Le problème de savoir si un graphe est (semi-)hamiltonien est NP-complet, de


même que trouver un cycle ou une chaine s’il y en a.

Il existe cependant des conditions suffisantes pour lesquelles on peut affirmer


qu’un graphe est hamiltonien.

Théorème : Un graphe complet est hamiltonien. C’est une conséquence du


théorème de Dirac.

Théorème de Dirac : Un graphe simple à n sommets (n ≥ 3) dont chaque


n
sommet est au moins de degré 2
est hamiltonien.

Théorème de Ore : Un graphe simple à n sommets (n ≥ 3) tel que la somme


des degrés de toute paire de sommets non adjacents vaut au moins n est
hamiltonien.

Théorème de Pósa : Un graphe simple à n sommets (n ≥ 3) est hamiltonien


si :
n−1
— pour tout entier k tel que 1 ≤ k < 2
le nombre de sommets de degré
inférieur ou égal à k est inférieur à k ;
n−1
— le nombre de sommets de degré inférieur ou égal à 2
est inférieur ou
n−1
égal à 2
.

Fermeture d’un graphe : La fermeture d’un graphe est le graphe construit à


partir de celui en rajoutant des arêtes entre chaque sommets a et b tel que
deg(a) + deg(b) > n tant qu’il en existe.

Théorème de Bondy et Chvátal Un graphe est hamiltonien si et seulement si


sa fermeture est hamiltonienne.
Ce théorème n’est utile que si l’on peut utiliser l’un des théorèmes précé-
dents sur la fermeture.

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Autres méthodes de représentation d’un graphe non orienté 14

2.5 Autres méthodes de représentation d’un graphe


non orienté

Il existe plusieurs moyens de représenter des graphes. Parmi ceux-ci, nous avons
la matrice d’adjacence, la matrice d’incidence et des listes d’adjacences.

2.5.1 Matrice d’adjacences

La matrice d’adjacences d’un multigraphe G = (V, E) est matrice de type (n × n)


dont la composante à la position à l’intersection de la ligne i et de la colonne j
est le nombre d’arêtes incidentes à la fois à i et à j.

Dans le cas d’un graphe simple, la composante à la position à l’intersection de


la ligne i et de la colonne j est « 1 » si les sommets vi et vj sont adjacents et « 0
» sinon.

Dans une matrice d’adjacences, les lignes et les colonnes représentent les som-
mets du graphe.

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’adja-
cences unique pour chaque graphe. Celle-ci n’est la matrice d’adjacences
d’aucun autre graphe.

Proposition 2.17. (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 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Graphe valué 15

2.5.2 Matrice d’incidences

Soit G = (V, E) un multigraphe où V = {v1 ; · · · ; vn } et E = {e1 ; · · · ; em }. La matrice


d’incidence I(G) = (aij ) de G est la matrice de type n × m indiquant l’incidence
entre un sommet et une arête. I(G) = (aij ) est définie par :


1 si vi est incident à l’arête ej






aij = 2 si vi est incident à l’arête ej et ej est une boucle





 0 si vi n’est pas incident à l’arête ej

Exercice 2.18. Déterminer la matrice d’incidence du graphe.

6 e7
5
e3
4 e6
e2

e5 e4 3
e1
1

2.6 Graphe valué

Etant donné un graphe G = (V, E), on associe à chaque arête e un nombre p(e) ∈ R
appelé poids de l’arête. On dit que G est valué ou pondéré par les valeurs p(e).

Si e = {i, j}, on utilisera également la notation pij pour désigner le poids de l’arête
e.

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

6 6
5
5
4 3 10

-1 3
2
−4
1

Graphe valué.

La valeur d’une chaîne dans un graphe valué est égale à la somme des valeurs
des arêtes de la chaîne.

2.6.1 Arbre couvrant à coût minimal.

Définition 2.19. Un arbre couvrant à coût minimal est un arbre couvrant dont la valeur
est minimale.

La détermination d’arbre couvrant à coût minimal a ses utilités notamment dans


les réseaux.

2.7 Applications

2.7.1 Arbre couvrant à coût minimum

On considère un graphe G(V, E) connexe et valué (ou pondéré) par une fonction
w définie de E vers R qui à chaque arête e de E associe associe son poids w(e).

La question de trouver un arbre couvrant de poids minimum a été l’un des


premiers problèmes posés.

Formellement, un arbre couvrant de poids minimum (minimum spanning tree)


d’un graphe pondéré G = (V, E) est un arbre couvrant dont la somme des pondé-
rations de ses arêtes est minimum. De nombreux chercheurs se sont intéressés à
cette question, et tous ont cherché un algorithme efficace pour le résoudre.

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

Joseph Kruskal et Robert C. Prim ont chacun trouvé un algorithme en temps


polynomial.

Nous allons présenté dans ce cours l’algorithme de Kruskal.

Algorithme de Kruskal.

L’algorithme de Kruskal utilise une des définitions d’un arbre, le fait qu’il pos-
sède n − 1 arêtes et soit sans cycle. L’idée est de considérer les arêtes par poids
croissant (ordre indifférent en cas d’égalité). L’arête est ajoutée dans l’arbre si
elle ne crée pas de cycle. Lorsque n − 1 arêtes ont été ajoutées, l’algorithme s’ar-
rête et l’arbre couvrant obtenu est de poids minimum. Sa complexité temporelle
est en O(mlog(m)) lorsqu’on utilise les bonnes structures de données.

ALGORITHME DE KRUSKAL

Renuméroter les arêtes de telle façon que w(ei ) ≤ w(ej ) pour i < j

T = {}, P = 0 et i = 1

Tant que |T | < n − 1, faire :

SI (T {ei } contient un cycle C) alors :


S

Afficher (ei engendre un cycle C)

SINON

Afficher(ei n’engendre pas un cycle C) ;

(i) T = T {ei }
S

(ii) P = P + w(ei ).

i=i+1

RETOURNER T et P ;

Exercice 2.20. Déterminer pour le graphe suivant, un arbre couvrant à coût minimal.

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

f
6 e
9
12
10 c
7
4
2
a
1 3
5
b
8
11
13

Algorithme de Prim.

L’algorithme de Prim utilise lui une autre définition d’un arbre, le fait qu’il pos-
sède n − 1 arêtes et qu’il soit connexe. L’idée est de construire progressivement
l’arbre à partir d’un sommet. Le sommet de départ, disons a, doit être connecté
aux autres sommets. Le sommet a est placé dans un ensemble W . On regarde le
cocycle S défini par W et on choisit l’arête de plus petit poids (aléatoirement en
cas d’égalité) que l’on met dans T , l’arbre en construction. Le nouveau sommet
incident à cette arête est ajouté à W et l’algorithme continue ainsi. Il s’arrête
après n − 1 itérations, donnant l’arbre couvrant de poids minimum T . Sa com-
plexité temporelle dépend de la structure de données utilisée pour mémoriser
l’arbre en construction. Elle peut être en O(mn) si l’on utilise des tableaux ou
des listes, O(mlog(n)) avec un tas min binaire ou O(m + nlog(n)) avec un tas de
Fibonacci. La complexité en O(mn) est la plus facile à comprendre. La boucle
principale construit l’arbre (O(n)), et dans cette boucle, on construit l’ensemble S
des arêtes du cocycle et on sélectionne celle de poids faible (O(m)). La complexité
est donc bien en O(mn).

ALGORITHME DE PRIM.

Entrée : Un graphe G(V, E), et une fonction de valuation ω définie de E vers R ;

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Coloration dans un graphe. 19

Sortie : l’ensemble T des arêtes de l’arbre couvrant de poids minimum et son


poids P .

Instructions :

T = φ, p = 0, W = {a} ;

TANT QUE |T | < n − 1 FAIRE :

S = ω(W ) ;

Choisir dans S l’arête e = {u, v} de plus petit poids ;

W = W ∪ {v}, P = P + w(e), T = T ∪ {{u, v}} ;

Afficher (S − {e}) ;

RETOURNER T et P .

2.8 Coloration dans un graphe.

2.8.1 Coloration des sommets

Si nous reprenons l’énigme sur les produits dangereux, nous pouvons constater
que le problème peut être formulé comme ceci : “Trouver le nombre minimum de
couleurs qui pemet de donner une couleur à chaque sommet du graphe, de façon
à ce que deux sommets adjacents soient de couleurs différentes”. Une couleur
représentera alors un stable, et donc un chargement possible pour un camion.
De nombreux autres problèmes peuvent se modéliser ainsi, et il est donc intéres-
sant de voir si des algorithmes efficaces permettent de trouver cette coloration
minimum. On parlera dans la suite de coloration de graphe (graph coloring)

Définition et quelques remarques

Pour tout graphe simple G, nous pouvons définir son nombre chromatique. Si le
graphe a des arêtes multiples, on peut ne garder qu’une seule arête sans changer
le problème. En revanche, l’existence d’une boucle pose problème car le sommet
est voisin (neighbour) (adjacent) de lui même, et la coloration de ce sommet
n’est donc pas possible.

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Coloration dans un graphe. 20

Définition 2.21. Définition 23 : Le nombre chromatique (chromatic number) d’un graphe


G, noté χ(G), est le nombre de couleurs minimum pour colorier les sommets du graphe sans
que deux sommets adjacents ne soient de la même couleur.

En reprenant toujours l’énigme précédente, nous pouvons constater que χ(G)


est toujours supérieur à la cardinalité de la clique maximum. En effet, si le
graphe contient un sous-graphe induit Kk , k couleurs sont déjà nécessaires pour
colorier les sommets de la clique. Donc le nombre total de couleurs nécessaires
ne peut être inférieur à k. La cardinalité de la clique maximum est donc une
borne inférieure (lower bound) de χ(G). Soit

k ≤ χ(G) (2.1)

2.8.2 Recherche d’une coloration minimale

On est maintenant face à un problème d’optimisation dans les graphes, la re-


cherche d’une coloration minimum. L’objectif est de trouver des algorithmes
efficaces (en temps polynomial) pour résoudre ce problème. La mauvaise nou-
velle est que pour des graphes généraux, il n’existe pas d’algorithme en temps
polynomial (en n et m) pour le résoudre, et il n’en existera pas si (P , N P ).
Heureusement, le problème est facile à résoudre pour des graphes particuliers.
Prenons l’exemple des graphes d’intervalles. Une façon simple de résoudre le
problème est de trier les intervalles par ordre croissant de leur borne inférieure
(arbitrairement en cas d’égalité) et de les rémunérer de 1 à n. On prend une
liste de n couleurs numérotées de 1 à n. Pour chaque sommet de 1 à n, on af-
fecte la couleur disponible de plus petit indice. Cet algorithme glouton (greedy
algorithm) fournit une coloration optimale, et le plus grand indice des couleurs
utilisées donne χ(G), le nombre chromatique du graphe.

Le problème de coloration le plus célèbre est sans doute celui posé par Francis
Guthrie. Cherchant à colorier la carte des comtés d’Angleterre, il constate que
quatre couleurs suffisaient. Il a alors conjecturé que pour toutes subdivisions de
cartes géographiques, il était possible de les colorier avec quatre couleurs sans

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Coloration dans un graphe. 21

que deux subdivisions voisines n’aient la même couleur. Autrement formulée, la


conjecture dit que le nombre chromatique de tout graphe planaire est d’au plus
4. Cette conjecture n’a été prouvée qu’en 1976 avec l’utilisation d’un ordinateur
pour énumérer un certain nombre de configurations. Aujourd’hui, il n’existe
encore aucune preuve mathématique n’ayant recours à des calculs informatiques
pour prouver ce théorème.

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

Graphe orienté

Définition 3.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 3.2.

Définition 3.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 3.4. (Ensemble de successeurs d’un sommet)


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

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Coloration dans un graphe. 23

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

Définition 3.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).

3.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 3.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

3.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 boo-


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

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Coloration dans un graphe. 24

n tel que


 1 si (xi , xj ) ∈ E
aij =  (3.1)
 0 si (xi , xj ) < E

Exemple 3.7. Déterminer 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 3.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. d+ (xi ) = d− (xi ) = |E|
X X X
aij =
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 (3.2)





 0 dans les autres cas

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

Définition 3.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 3.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 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Coloration dans un graphe. 25

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 ?

3.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 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
Coloration dans un graphe. 26

A
15

B E
D

H C

Définition 3.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 3.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.

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

3.1 Recherche du plus court chemin

3.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 particu-
lier 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 (3.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.

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

Présentation de l’algorithme

— Initialisations
— λ(j) = cij et P(j) = NUL pour 1 ≤ j ≤ n
— pour 2 ≤ j ≤ n fair :
Si cij < ∞ p(j) = 1
— 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 3.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 = (N U L; 1; N U L; N U L; 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

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

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

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

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) = min{15; λ(4) + δ(4; 2)} = min{15; 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

Exercice 3.15. Déterminer dans le graphe suivant, les plus courts chemins allant de a au
autres sommets.

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

2
e
2
1
3 c
1 b 1
3 1
a 4 d
2
5

Remarque 3.16. 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.

3.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 3.17. Considérons le graphe suivant défini par son dictionnaire des précédents :

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

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

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

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

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

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

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

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

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.

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

(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.

(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) + λ(j)} 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

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

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 la réprésentation sagittale de G.

4. Proposer un chemin optimal au voyageur.

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

3.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).

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

3.2.1 Le diagramme de Gantt.

Ce type de diagramme a été mis au point par un américain Henry Gantt.

On représente au sein d’un tableau, en ligne les différentes tâches et en colonne


les unités de temps( exprimées en mois, semaines, jours, heures...)

La durée d’exécution d’une tâche est matérialisée par un trait au sein du dia-
gramme.

Les différentes étapes de réalisation d’un diagramme de Gantt son les suivantes :

ETAPE I : On détermine les différentes tâches (ou opérations) à réaliser et leur durée.

ETAPE II : on définit les relations d’antériorité entre tâches.

ETAPE II : on représente d’abord les tâches n’ ayant aucune antériorité, puis les tâches
dont les tâches antérieures ont déjà été représentées, et ainsi de suite · · ·

ETAPE II : on représente par un trait parallèle en pointillé à la tâche planifiée la


progression réelle du travail.

Exemple 3.18. On considère ce projet

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

son diagramme de Gantt est le suivant :

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

Remarque 3.19. i) Chaque colonne représente une unité de temps.

ii) Les durées d’exécution prévues des tâches sont représentées par un trait épais. (4
unités de temps pour C).

iii) Les contraintes de succession se lisent immédiatement.

• Les tâches B et C succèdent à la tâche A.

• D succède à B.

iv) Le déroulement d’exécution des tâches figure en pointillé, au fur et à mesure des
contrôles. On est à la fin de la 6 ème unité de temps, B est en avance d’une unité et
C’est en retard d’une unité.

v) On peut alors déterminer le chemin critique : qui est formé d’une succession de tâches,
sur le chemin le plus long en terme de durées. Il est appelé chemin critique car tout
retard pris sur l’une des tâches de ce chemin, entraîne du retard dans l’achèvement
du projet. ( Chemin critique : A, B, D, E)

Les avantages de la méthode :

i) Permet de déterminer la date de réalisation d’un projet.

ii) Permet d’identifier les marges existantes sur certaines tâches ( avec une
date de début au plus tôt et une date au plus tard).

iii) La date au plus tard de début d’une tâche, la date à ne pas dépasser sans
retarder l’ensemble du projet.

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

Inconvénient : Elle ne représente pas parfaitement l’enchaînement des tâches.


Elle est généralement utilisée en complément du réseau PERT ou MPM. On
trace le plus souvent le GANTT au plus tôt ou « jalonnement au plus tôt » et
éventuellement au plus tard «jalonnement au plus tard»

Tâches A B C D E F G H I J K L M
Exemple 3.20. Précédents - - A - B E C,D - H - I,J F,G K,L
Durées 1 2 1 3 2 5 2 5 2 1 4 5 4

3.2.2 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 2022-2023


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

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 :

TX = 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) = TX∗ − TX .

On dit que X est une tâche critique si la marge totale de X est égale à 0. On a :
Mt (X) = Ml (X).

Un chemin allant de Début à la Fin dont toutes ses tâches sont critiques est un
chemin critique.

• 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 3.21. .
Le projet d’installation d’un reseau de communication locale dans un service comporte plu-
sieurs 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 2022-2023


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

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 3.22. .
On considère le projet suivant :

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

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

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 2022-2023


et ses applications jeankoudi@imsp-uac.org/jeankoudi1@gmail.com
2. LA METHODE PERT
2.1. Principe de la méthode : Réduire la durée totale d'un projet par une analyse détaillée
des tâches ou activités élémentaires et de leur enchaînement. On étudie les délais sans
prendre en compte les charges.

2.2. Notions de base :

La méthodes s'appuie en grande partie sur une représentation graphique qui permet de
bâtir un « réseau PERT ».

Un réseau PERT est constitué par des tâches et des étapes

Étape : commencement ou fin d'une tâche. Une étape n'a pas de durée. On symbolise une
étape (ou « noeud ») sur le réseau par un cercle.

Tâche : déroulement dans le temps d'une opération. Contrairement à l'étape, la tâche est
pénalisante car elle demande toujours une certaine durée, des moyens (ou ressources) et
coûte de l'argent. Elle est symbolisée par un vecteur (ou arc orienté, ou liaison orientée) sur
lequel seront indiqués l'action à effectuer et le temps estimé de réalisation de cette tâche.
A (12)
Exemple de réseau :

A (12) B (6)
1 2 3

Remarques : - La longueur des arcs n'est pas proportionnelle au temps d'exécution.


- Pour alléger la représentation, on ne note pas le nom complet de la
tâche, mais une lettre ou code la représentant.

2.3. Représentation graphique des étapes et des tâches dans un réseau.

Tâches successives :

Exemple :
A (12) B (6) C (3)
1 2 3 4

B ne peut commencer que si A est terminée (A précède B , ou A est antériorité de B) .


C ne peut commencer que si A et B sont terminées ( A et B précèdent C, ou A et B
sont antériorité de C, ou A et B enclenchent C).

Remarque : en fait B terminée suffit, sinon il y a redondance. La contrainte


d'antériorité qui lie A à C n'a pas besoin d'être représentée.

MAINTENANCE / PLANIFICATION et ORDONNANCEMENT 3 / 17


Tâches simultanées : Elles peuvent commencer en même temps en partant d'une
même étape.
Exemple :

D (4)
3 5
B (6)
A (12)
1 2
C (3)
4

D ne peut commencer que si B est terminée.

Si l'on souhaite que D ne commence que si B et C sont terminées :

D (4)
3 4
B (6)
A (12)
1 2 X (0)
C (3)
3'

Du fait de la règle de construction qui interdit de faire se dérouler les deux


tâches B et C simultanément, nous utilisons une tâche x (0) dite « tâche fictive » qui
sert à représenter ce type de contraintes de liaison (contraintes d'antériorité). Il s'agit
d'une tâche dont la durée et le coût sont nuls. On la représente en pointillés.

Tâches convergentes : Plusieurs tâches peuvent se terminer sur une même étape.

Exemple :

1
A (12)

C (3)
3 4
B (6)

Ici, la tâche A (12) a une durée de 12 unités de temps, B(6) a une durée de 6 unités de
temps. On constate que la tâche A dure plus longtemps que B. A est dite
« pénalisante ».
Nous pouvons calculer la durée du projet (ici : 12+3 = 15 unités de temps) en prenant
le chemin le plus long dit « chemin critique ».
Ce « chemin critique » pourra être repéré en rouge. Les tâches de ce chemin seront à
surveiller prioritairement.

MAINTENANCE / PLANIFICATION et ORDONNANCEMENT 4 / 17


2.4. Normalisation du graphe.
Si le graphe doit débuter par plusieurs tâches simultanées, il ne doit y avoir qu'une
seule étape d'entrée (ou étape de début, ou étape de départ). Les étapes seront donc
regroupées en une seule.

Exemple :

A (12)
1 4 2
A (12)

B (6) B (6) 3
2 5 1

C (3)
B (6) 6 4
3
NON OUI

Si le graphe se termine par plusieurs tâches (plusieurs étapes de sortie (ou de fin), il ne
doit y avoir qu'une seule étape de sortie.

Exemple :

T (2)
11 14 11 T (2)

U (4) U (4)
12 15 12 14

V (6)
V (6) 16
13 13
NON OUI

Problèmes de dépendances : A enclenche B, A enclenche D, C enclenche D.

Nous pouvons être tentés de dessiner le graphe suivant :

1 4
A (12)
B (6)

3
C (3)
D (4)
2 FAUX 5

MAINTENANCE / PLANIFICATION et ORDONNANCEMENT 5 / 17


Le graphe précédent est faux car cette construction signifie : A enclenche B, A
enclenche D, C enclenche B, et C enclenche D.

Pour respecter les contraintes d'antériorités du projet, on introduit une tâche fictive
comme suit :

A (12) C (3)
1 3 4

X (0)

B (6) D (4)
2 3' 5

Représentation des étapes :

Les étapes ou « noeuds » peuvent être représentés de différentes façons selon les
informations que l'on souhaite mettre en évidence. Date de fin au
plus tôt de la
4 22 tâche précédente.
Étape : 4 ou ou 4 1 Battement ou
22 23 23 marge.

Date de fin au Date de début au


plus tôt de la plus tard de la Date de début au
tâche précédente. plus tard de la
tâche suivante.
tâche suivante.

2.5. Méthodologie de construction d'un réseau PERT.

- Établir la liste des tâches (faire le partitionnement des tâches en fonction des ressources).
- Déterminer des antériorités : tâches immédiatement antérieures, et tâches antérieures.
- Déterminer les niveaux d'exécution ou rang des tâches (optionnel).
- Construire le réseau PERT.
− Calculer la durée du projet, les dates début et de fin des tâches. Déterminer le chemin
critique. Mettre en évidence les marges.

2.6. Application.

Soit les tâches suivantes qui constituent un projet : A (3), B (4), C (2), D (3), E (4).

Les antériorités sont les suivantes :


A enclenche C,
A enclenche D,
B enclenche E,
C enclenche E.

MAINTENANCE / PLANIFICATION et ORDONNANCEMENT 6 / 17


Problème d’ordonnancement 46

Remarque

Etant donnée une tâche X définie par les étapes i et j ( i est l’étape initiale et j
est son étape finale ). On désigne par Ti la date au plus tôt de i et Ti∗ la date au
plus tard de i. Alors
— La marge totale de X est Mt (X) = Tj∗ − Ti − dX
— La marge libre de X est Mt (X) = Tj − Ti − dX

La théorie des graphes Jean KOUDI ©IFRI 2022-2023


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

Vous aimerez peut-être aussi