Vous êtes sur la page 1sur 75

Cours de Théorie des Graphes et Combinatoire/ISTAG

ANNÉE ACADÉMIQUE 2021-2022

COURS DE THÉORIE DES GRAPHES ET COMBINATOIRE

Licence Professionnelle en Informatique de Gestion

Par

Pr TEKAM OUMBE Honoré


Maître de Conférences
Chef du Département d’Économie De Développement
Université de Dschang-Cameroun
Enseignant associé à L’ISTAG

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 1


Cours de Théorie des Graphes et Combinatoire/ISTAG

INTRODUCTION ET PLAN DU COURS

INTRODUCTION

Le concept de graphe, largement utilisé en mathématique, est très utile en pour résoudre les
problèmes de recherche opérationnelle.
Ici, le graphe n’est pas la « représentation graphique » ou la « courbe représentative » lorsqu’il s’agit
de l’étude des fonctions élémentaires d’une variable numérique, mais les graphes, en particulier les
graphes arborescents et les graphes orientés, sont très fréquemment utilisés dans les sciences de
l’information et l’informatique. Les organigrammes par exemple sont des graphes orientés.
On distingue donc, dans la théorie des graphes qui nous concerne, entre « graphes orientés » et «
graphes non orientés » et l’on adopte généralement le mot « graphe » pour désigner l’une ou l’autre
variété des graphes.
De nombreux problème de gestion sont susceptibles d’être formalisés et résolus à travers
l’approche par la théorie des graphes. Il s’agit principalement des problèmes de transport, d’affectation,
de détermination des trajets, de prévision de parts de marché. Après avoir examiné les éléments des
graphes non orientés et orientés, nous présenterons deux applications classiques de la théorie des
graphes : à savoir les problèmes de flot et les problèmes d’ordonnancement.

PLAN DU COURS

Chapitre 1 : Éléments d’un graphe non orienté

1 .1- Définition et représentation d’un graphe non orienté sous forme d’une figure
1.2- Graphe non orienté sous forme d’une matrice
1.3- Degré d’un sommet
1.3.1- Définitions
1.3.2- Propriétés
1.4- Connectivité
1.4.1- Présentation
1.4.2- Définitions
1.5- Types particuliers de graphe non orientés : graphe complet, graphe régulier, graphe
bipartites, graphe planaire,…
1.6- Graphes valués
1.7- Arbres
1.7.1- Présentation
1.7.2- Arbres partiels
1.8- Arborescences
1.8.1- Présentation
1.8.2- Arborescences ordonnées

Chapitre 2 : Éléments d’un graphe orienté

2.1- Présentation
2.2- Graphe orienté sous forme d’une figure
2.3- Graphe orienté sous forme d’une matrice d’adjacence
2.4- Graphe orienté sous forme d’une matrice d’incidence
2.5- Vocabulaire, terminologies et notion de degré dans un graphe orienté
2.5.1- Vocabulaire

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 2


Cours de Théorie des Graphes et Combinatoire/ISTAG

2.5.2- Sous-graphes et graphes partiels


2.5.3- Terminologies
2.5.4- Notion de degré dans un graphe orienté
2.6- Graphes orientés valués
2.7- Graphes orientés et matrices
2.8- Graphes orientés connexes
2.9- Machines à états finis
2.10- Chaînes, bandes d’entrée et de sortie
2.11- Automates finis
2.11.1- Définitions
2.11.2- Exemple d’application
2.11.4- L’automate considéré une machine à états finis

Chapitre 3 : Flots dans un réseau de transport et problème


d’affectation

3.1- Introduction
3.1.1- Présentation
3.1.2- Projet de réseau routier
3.2- Flot sur un graphe
3.2.1- Définition d’un flot
3.2.2- Exemple de flot
3.3- Problème de flot maximal
3.3.1- Définition
3.3.2- Principe de l’algorithme de Ford et Fulkerson
3.3.3- Algorithme de Ford et Fulkerson
3.3.4- La notion de coupe
3.3.5- Exemple d’application de l’algorithme de Ford et Fulkerson
3.3.6- Exemple d’application de l’algorithme de Ford et Fulkerson dans un réseau de
transport
3.4- Problème d’affectation

Chapitre 4 : Graphes et problème d’ordonnancement

4.1- Présentation
4.2- Les avantages temporels tirés d’un graphe d’ordonnancement de projet
4.3- Chemin extrêmal dans un graphe orienté
4.3.1- Algorithme de recherche de niveau
4.3.2- Recherche du chemin extrêmal (algorithme)
4.4- Application à un problème de transport
4.5- Ordonnancement MPM
4.5.1- Principe de la méthode
4.5.2- Construction d’un graphe MPM
4.5.3- Date au plus tôt, dates au plus tard et chemin critique
4.5.4- Calcul des marges
4.5.5- Optimisation d’un projet à partir des coûts
4.5.6- Un exemple de projet

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 3


Cours de Théorie des Graphes et Combinatoire/ISTAG

4.6- Ordonnancement PERT


4.6.1- Notion de base
4.6.2- Un exemple de projet et construction du réseau PERT
4.6.3- Résolution du réseau PERT

Éléments de bibliographie

1- Précis de recherche opérationnelle –Méthodes et exercices d’application-, Robert Faure,


Bernard Lemaire, Christophe Picouleau, éd. Dunod, Paris, 2014.
2- Algorithme des graphes, cours de Licence en informatique, Université de Bordeaux I, année
2004-2005.
3- Initiation à la théorie des graphes, Christian Roux, éd. Ellipses, Paris cedex, 2009.
4- Techniques quantitatives de gestion, J. P. Védrine, éd. Vuibert, Paris, 1991.
5- Graphes, chaînes de Markov et quelques application économiques, Germain Kreweras, éd.
Dalloz, Paris.
6- Mathématiques pour informaticien (cours et problèmes), Seymour Lipschutz, Série
Schaum, Londres-New york – Paris …, 1971

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 4


Cours de Théorie des Graphes et Combinatoire/ISTAG

Chapitre 1 : Éléments d’un graphe non orienté

1.1- Définition et représentation d’un graphe non orienté sous forme d’une figure

Un graphe non orienté 𝐺 est un couple de deux ensembles 𝑋 et 𝐸 tels que 𝐸 soit une partie de
l’ensemble des parties avec répétition 𝐷(𝑋) de deux éléments de 𝑋 (𝐸 ⊂ 𝐷(𝑋)). Les éléments de 𝑋
sont appelés sommets du graphe 𝐺 et ceux de 𝐸 arêtes de 𝐺. On écrit 𝐺 = (𝑋, 𝐸) (voir exemple de
la figure 1). Il en résulte de cette définition qu’un même graphe 𝐺 = (𝑋, 𝐸) peut être donné sous
deux formes : il peut être représenté sous forme d’une figure ou sous forme d’une matrice.
Les nombres d’éléments de 𝑋 et de 𝐸 seront notés respectivement : |𝑋| = 𝑛 et |𝐸| = 𝑚

Figure 1 : Exemple de graphe non orienté 𝐺 = (𝑋, 𝐸)

𝑒1 2 𝑒2
𝑒7 𝑒3
𝑒5
6 1 4 5

𝑒6 3 𝑒4

.𝑋 = {1, 2, 3, 4, 5, 6} et 𝐸 = {𝑒1 , 𝑒2 , 𝑒3 , 𝑒4 , 𝑒5 , 𝑒6 , 𝑒7 }

Remarque : un graphe non orienté est simple s’il n’a ni boucle, ni arêtes multiples. Le graphe de la
figure 1 est un graphe simple. Celui de la figure 2 est un multigraphe.

Figure 2 : Exemple de multigraphe non orienté 𝐺 = (𝑋, 𝐸)

𝑒1 2 𝑒2
𝑒9 𝑒3
1 𝑒5 𝑒6 4 5
6

𝑒7 3 𝑒4

𝑒8

1.2- Graphe non orienté sous forme d’une matrice

On définit pour les graphes non orientés, 𝐴(𝐺), la matrice d’adjacence et 𝐵(𝐺), la matrice d’incidence
avec :
- 𝐴(𝐺) = (𝑎𝑖𝑗 )1≤𝑖≤𝑛 ,1≤𝑗≤𝑛 où 𝑎𝑖𝑗 est le nombre d’arêtes entre 𝑖 et 𝑗 ;
- 𝐵(𝐺) = (𝑏𝑖𝑗 )1≤𝑖≤𝑛 ,1≤𝑗≤𝑚 où 𝑏𝑖𝑗 est le nombre de fois que 𝑖 est incident à 𝑒𝑗 , donc ici, les
boucles apparaissent.
Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 5
Cours de Théorie des Graphes et Combinatoire/ISTAG

- Pour ce qui concerne le graphe de la figure 1, les matrices d’adjacence et d’incidence sont
respectivement :

0 1 1 0 0 1 1 0 0 0 0 1 1
1 0 1 1 0 0 1 1 0 0 1 0 0
0 1 0 1 1
𝐴(𝐺) = 1 1 0 0 ; 𝐵(𝐺) = 0 0 1 0
0 1 1 0 1 0 0 1 1 1 0 0 0
0 0 0 1 0 0 0 0 1 1 0 0 0
[1 0 0 0 0 0] [0 0 0 0 0 0 1]

- Pour ce qui concerne le graphe de la figure 2, les matrices d’adjacence et d’incidence sont
respectivement :

0 1 1 0 0 1 1 0 0 0 0 0 0 1 1
1 0 2 1 0 0 1 1 0 0 1 1 0 0 0
0 1 0 1 1 1
𝐴(𝐺) = 1 2 0 0 ; 𝐵(𝐺) = 0 0 1 0 0
0 1 1 0 1 0 0 1 1 1 0 0 0 0 0
0 0 0 1 1 0 0 0 1 0 0 0 0 2 0
[1 0 0 0 0 0] [0 0 0 0 0 0 0 0 1]

1.3- Degré d’un sommet dans un graphe non orienté

1.3.1- Définitions

Définition 1- Deux sommets d’un graphe non orienté 𝐺 = (𝑋, 𝐸) sont dit adjacent si {𝑥, 𝑦} ∈ 𝐸

Définition 2 - Deux arêtes sont dites adjacentes si elles ont une extrémité commune

Définition 3 – Le voisinage d’un sommet 𝑥 est l’ensemble Г(𝑥) des sommets 𝑦 tels que 𝑥 est incident
à l’arête {𝑥, 𝑦} :
Г(𝑥) = {𝑦 ∈ 𝑋 / {𝑥, 𝑦} ∈ 𝐸 }

Définition 4 – Le degré d’un sommet 𝑥, noté 𝑑(𝑥), est le nombre d’arêtes incidentes à 𝑥 (on
remarquera q’une boucle est répétée deux fois):
𝑑(𝑥) = |Г(𝑥)|

1.3.2- Propriétés

Soient 𝐺 = (𝑋, 𝐸) un graphe non orienté


1
Propriété 1- 𝑚 ≤ 𝑛(𝑛 − 1) où 𝑛 = |𝑋| et 𝑚 = |𝐸|
2

Propriété 2- ∑𝑥∈𝑋 𝑑(𝑥) = 2𝑚 : la somme des degrés de tous les sommets d’un graphe non orienté
est égale au double du nombre de ses arêtes.

Propriété 3- il y a un nombre pair de sommets de degré impair.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 6


Cours de Théorie des Graphes et Combinatoire/ISTAG

Par exemple : pour ce qui concerne la figure 2, on a :


𝑛 = |𝑋| = 6 et 𝑚 = |𝐸| = 9 et
𝑑(1) = 3, 𝑑(2) = 4, 𝑑(3) = 4, 𝑑(4) = 3, 𝑑(5) = 3, 𝑑(6) = 1.
- La propriété 1 est bien vérifiée car :
1 1
𝑚 = 9 < 2 𝑛(𝑛 − 1) = 2 6(6 − 1) = 15
- La deuxième propriété est vérifiée car :
∑𝑥∈𝑋 𝑑(𝑥) = 𝑑(1) + 𝑑(2) + 𝑑(3) + 𝑑(4) + 𝑑(5) + 𝑑(6)
= 3+4+4+3+3+1
= 18 = 2 × 9 = 2𝑚
- La troisième propriété est vérifiée car les sommets de degré impair sont : 1, 4, 5, 6. Ils sont
en nombre pair.

1.4- Connectivité

1.4.1- Présentation

Si 𝑣 est l’extrêmité d’une arête 𝑒, nous dirons que 𝑒 est incident à 𝑣.


Dans un multigraphe, une chaîne est une séquence alternée de sommets et d’arête de la forme :
𝑣0 , 𝑒1 , 𝑣1 , 𝑒2 , 𝑣2 , … , 𝑒𝑝−1 , 𝑣𝑝−1 , 𝑒𝑝 , 𝑣𝑝 où
chaque arête 𝑒𝑖 est incident sur 𝑣𝑖−1 et 𝑣𝑖 . Le nombre 𝑝 d’arêtes constitue la longueur de la chaîne.
Quand il n’y a pas d’ambigüité, nous représentons une chaîne par la suite de ses arêtes (𝑒1 , 𝑒2 , … , 𝑒𝑝 )
ou celle de ses sommets (𝑣0 , 𝑣1 , … , 𝑣𝑝 ). Une chaîne dont l’extrêmité initiale est aussi l’extrêmité
finale (𝑣𝑝 = 𝑣0 ) est une chaîne fermée, sinon nous dirons que la chaîne joint 𝑣0 et 𝑣𝑝 ou connecte 𝑣0
et 𝑣𝑛 .
Une chaîne pour laquelle tous les sommets sont différents est dit chaîne élémentaire. Un cycle
est un chaîne fermé tel que tous ses sommets sont différents à l’exception de 𝑣0 = 𝑣𝑛 . Un cycle de
longueur 𝑘 est appelé 𝑘 − 𝑐𝑦𝑐𝑙𝑒. Dans un graphe non orienté, tout cycle peut avoir des longueurs trois
ou plus.

Exemple : dans la figue 3,


- la séquence (𝑃4 , 𝑃1 , 𝑃2 , 𝑃5 , 𝑃1 , 𝑃2 , 𝑃3 , 𝑃6 ) est une chaîne de 𝑃4 à 𝑃6 . Ce n’est pas une
chaîne élémentaire car les sommets 𝑃1 et 𝑃2 ont été utilisés deux fois ;
- la séquence (𝑃4 , 𝑃1 , 𝑃5 , 𝑃2 , 𝑃6 ) n’est pas une chaîne parce qu’il n’y existe pas d’arête
{𝑃2 , 𝑃6 } ;
- la séquence (𝑃4 , 𝑃1 , 𝑃5 , 𝑃3 , 𝑃6 ) est une chaîne élémentaire de 𝑃4 à 𝑃6 ;
- la plus courte chaîne de 𝑃4 à 𝑃6 est (𝑃4 , 𝑃5 , 𝑃6 ) ;
- la séquence (𝑃4 , 𝑃1 , 𝑃2 , 𝑃5 , 𝑃4 ) est un cycle.

Figure 3 : mise en évidence des chaînes et des cycles

𝑃1 𝑃2 𝑃3

𝑃4 𝑃5 𝑃6

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 7


Cours de Théorie des Graphes et Combinatoire/ISTAG

Théorème : il n’y a de chaîne entre deux sommets distincts que si et seulement s’il en existe une chaîne
élémentaire.

1.4.2- Définitions

Définition 1 : Un graphe est dit connexe si pour toute paire de sommets de ce graphe il existe toujours
une chaîne élémentaire qui les lie.

Définition 2 : Une chaîne eulérienne est une chaîne qui passe une et une seule fois par tous les sommets
d’un graphe.

Définition 3 : Un cycle qui englobe tous les sommets d’un graphe, chacun n’étant pris qu’une seule
fois, est un cycle eulérien.

1.5- types particuliers de graphes non orientés.

Soit 𝐺 = ( 𝑋, 𝐸) un graphe non orienté.


- Le graphe 𝐺 est dit complet si chacun de ses sommets est relié à chacun des autres. Le graphe
complet à 𝑛 sommets est noté 𝐾𝑛 .
- Le graphe 𝐾1 , constitué d’un sommet isolé, est un graphe trivial.
- Un graphe ou un multigraphe est dit régulier de degré 𝑘 ou 𝑘 − 𝑟é𝑔𝑢𝑙𝑖𝑒𝑟 si chacun de ses
sommets est de degré 𝑘.

Figure 4 : Graphes complets et graphes réguliers :


- Graphes complets à 𝑛 sommets avec 𝑛 = 1, 2 , 3, 4, 5.

𝐾1 𝐾2 𝐾3 𝐾4 𝐾5

- Graphes 𝑘 −réguliers

Graphe Graphe
0-régulier 1-régulier Ces trois Graphes sont 2-régulier Graphe 3-régulier

N.B. Un graphe complet est un graphe régulier, mais un graphe régulier n’est pas nécessairement un
graphe complet.

- Un Graphe non orienté G est dit bipartite si l’ensemble 𝑋 de ses sommets peut être partagé en
deux sous-ensembles 𝑀 et 𝑁 tels que chaque arc de 𝐺 relie un sommet de 𝑀 et un sommet de
𝑁. Par graphe complet bipartite nous entendons que chaque sommet de 𝑀 est relié à chaque

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 8


Cours de Théorie des Graphes et Combinatoire/ISTAG

sommet de 𝑁 ; ce graphe, noté 𝐾𝑚,𝑛 , où 𝑚 est le nombre de sommet de 𝑀, et 𝑛 le nombre de


sommets de 𝑁 (pour normaliser, nous supposerons que 𝑚 ≤ 𝑛 ), est représenté par la figure 5
dans les cas 𝐾2,3 , 𝐾3,3 et 𝐾2,4 . Il est clair 𝐾𝑚,𝑛 que comporte 𝑚 × 𝑛 arcs.

Figure 5 : Graphes complet bipartite dans les cas 𝐾2,3 , 𝐾3,3 et 𝐾2,4

N M N M N
M

𝐾2,3 𝐾3,3 𝐾2,4


- Graphe planaires
Un graphe ou un multigraphe qui peuvent être tracés dans le plan de manière à ce que ses arcs
ne se croisent pas est dite graphe planaire. Bien que le graphe complet à 4 sommets, 𝐾4 , soit
généralement représenté avec des arcs qui se coupent (𝑐𝑓. 𝑓𝑖𝑔𝑢𝑟𝑒 6𝑎), il peut être également
tracé de manière à ce que ses arcs ne se coupent pas (𝑐𝑓. 𝑓𝑖𝑔𝑢𝑟𝑒 6𝑏). Dans ce cas, 𝐾4 est un
graphe planaire.

Figure 6 : Exemple de graphe planaire

(a) (𝑏)
Une représentation particulière d’un multigraphe planaire fini est dite carte. Nous disons qu’une
carte est 𝑐𝑜𝑛𝑛𝑒𝑥𝑒 𝑠i le multigraphe donné est connexe. Une carte donnée divise le plan en diverses
régions. Par exemple, la carte de la figure 7 divise le plan en 5 régions. Notons que si 4 d’entre elles
sont bornées, la cinquième ne l’est pas. Dans ces conditions, il n’y a aucune perte de généralité si nous
supposons que notre carte est une partie d’un rectangle assez grand, plutôt qu’elle n’est constituée de
tout le plan.

Figure 7 : Exemple de graphe de carte

𝐶 𝑟5
𝑟4
𝐴
𝑟2 𝑟3 𝐹 𝐸
𝐵
𝑟1
𝐷

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 9


Cours de Théorie des Graphes et Combinatoire/ISTAG

Euler a donné une expression qui relie le nombre de sommets |𝑋|, le nombre d’arêtes (arcs) |𝐸| et le
nombre de régions |𝑅| d’une carte connexe quelconque.

Théorème d’Euler : |𝑋| − |𝐸| + |𝑅| = 2

Pour ce qui concerne la figure 10, on a : |𝑋| = 6, |𝐸| = 9, |𝑅| = 5 d’où


|𝑋| − |𝐸| + |𝑅| = 6 − 9 + 5 = 2

La formule d’Euler est valide pour des cartes non connexes dans la mesure où la constante 2 est
remplacée par 𝑣 + 1, où 𝑣 est le nombre de composants connexes de la carte.

1.6- Graphes valués

Un graphe 𝐺 est un graphe valué si ses sommets et/ou ses arêtes (arcs) sont affectées de données de
quelque sorte. En particulier, si chaque arête 𝑒 de 𝐺 est affectée d’un nombre non négatif 𝜑(𝑒). 𝜑(𝑒)
est appelé longgueur ou poids de 𝑒. La figure 8 représente un graphe valué où le poids de chaque arête
est indiqué de manière évidente. Il est souvent important de déterminer le chemin de poids minimum
entre deux sommets donnés d’un graphe valué. Le chemin minimum entre 𝑥0 et 𝑥7 de la figure 8 est
donné par la séquence (𝑥0 , 𝑥1 , 𝑥2 , 𝑥5 , 𝑥3 , 𝑥6 , 𝑥7 ) qui a pour poids 14.
(le lecteur pourra chercher un autre chemin de poids minimum entre 𝑥0 et 𝑥7 ).

Figure 8 : Exemple de graphe de carte

𝑥3
𝑥1 3 𝑥2 6
3 4
2 2
7
𝑥0 1 𝑥7
4 2 3 2
6 4

𝑥4 𝑥5 𝑥6

1.7- Arbres

1.7.1- Présentation

Un graphe 𝐺 est dit acyclique s’il ne comporte aucun cycle. Un arbre est un graphe acyclique connexe.
Une forêt est un graphe sans cycle ; il en résulte que les composants connexes d’une forêt sont des
arbres. La figure 9(a) représente tous les arbres possibles à 6 sommets et la figure 9(b) 6 des arbres à
7 sommets.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 10


Cours de Théorie des Graphes et Combinatoire/ISTAG

Figure 9 : Exemple de représentation des arbres


9(a) : Tous les arbres à 6 sommets

9(b) : 6 des arbres à 7 sommets

1.7.2- Théorèmes

Il existe plusieurs manières équivalentes de définir un arbre comme l’indiquent les théorèmes suivants :

Théorème 1 : Soit 𝐺 un graphe à plus d’un sommet. Les propositions suivantes sont équivalentes :
(𝑖) 𝐺 est un arbre.
(𝑖𝑖) Chaque paire de sommets sont reliés par un seul et unuque chemin.
(𝑖𝑖𝑖) 𝐺 est connexe, mais si l’on suprime une arête quelconque, le graphe résultant n’est pas
connexe.
(𝑖𝑣) 𝐺 ne possède pas de cycle, mais si l’on ajoute une arête à ce graphe, le graphe résultant
possède un cycle unique.

Dans les cas où les graphes que nous considérons sont finis, nous pouvons ajouter d’autres
manières de définir un arbre :

Théorème 2 : Soit 𝐺 un graphe fini à 𝑛 sommets (𝑛 > 1). Les propositions suivantes sont
équivalentes :
(𝑖) 𝐺 est un arbre.
(𝑖𝑖) 𝐺 ne possède pas de cycle et possède 𝑛 − 1 arêtes.
(𝑖𝑖𝑖) 𝐺 est connexe et présente 𝑛 − 1 arêtes

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 11


Cours de Théorie des Graphes et Combinatoire/ISTAG

En particulier, le théorème 2 nous indique qu’un arbre fini a un sommet de plus que d’arêtes.
(Cela est valable aussi pour le graphe trivial, 𝑛 = 1).

Les arbres possèdent quelques propriétés générales telles que :


(1) Un arbre est un graphe bipartite.
(2) Un arbre est un graphe planaire.
(3) Un arbre fini non trivial possède au moins deux extrémités (sommets de degré 1).
(4) Un arbre non trivial est tel que chaque sommet est un point de coupure ou une extrémité.

1.7.3- Arbres partiels

Un sous-graphe 𝐺 ′ d’un graphe 𝐺 est un arbre partiel de 𝐺 si 𝐺 ′ est un arbre et si 𝐺 ′ comporte tout
sommet de 𝐺. La figure 10 représente un graphe 𝐺 et les arbres partiels 𝐺1′ , 𝐺2′ et 𝐺3′ de 𝐺. Si 𝐺 est
un graphe dont les arêtes sont pondérées, un arbre partiel minimum de 𝐺 est un arbre partiel de 𝐺 tel
que la somme des poids de ses arêtes est minimum relativement à tous les arbres partiels de 𝐺.

Figure 10 : représentation d’un graphe 𝐺 et les arbres partiels 𝐺1′ , 𝐺2′ et 𝐺3′ de 𝐺

(G)

(𝐺1′) (𝐺2′ ) (𝐺3′ )

Algorithmes de recherche de l’arbre partiel minimum d’un graphe connexe valué fini 𝐺 de 𝑛 sommets.
Algorithme 1 :
(𝑖) Ordonner les arêtes de 𝐺 selon les poids décroissants,
(𝑖𝑖) En procédent de manière séquentielle, supprimer chaque arête qui ne rende pas le graphe
non connexe jusqu’à ce qu’il en reste 𝑛 − 1. Ces arêtes formeront un arbre partiel minimum de 𝐺.

Cet algorithme est subordonné à l’information relative au fait que G est ou n’est pas connexe, ce qui,
en général, n’est pas facilement programmable.

Algorithme 2 :
(𝑖) Ordonner les arêtes de 𝐺 selon les poids croissants,
(𝑖𝑖) En commençant uniquement avec des sommets de 𝐺, additionner arête après arête là où
chaque arête a un poids minimum et ne forme pas un cycle.
(𝑖𝑖𝑖) Après l’addition de 𝑛 − 1 arêtes, nous obtenons un arbre partiel minimum.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 12


Cours de Théorie des Graphes et Combinatoire/ISTAG

Figure 11 : représentation d’un graphe connexe valué 𝐺 et un arbre partiel minimum 𝑀

3
4 3
5 2
4 4 2 3
3
4
3
2 4
(G) 2

2
4 3
5
2 2
3 2
(𝑀) 4

Il faut insister sur le fait que, puisque certaines arêtes peuvent avoir le même poids, il est possible
d’obtenir différents arbres partiels minimum.

1.8- Arborescences

1.8.1- Présentation

Une 𝑎𝑟𝑏𝑜𝑟𝑒𝑠𝑐𝑒𝑛𝑐𝑒 𝑅 est un arbre possédant un sommet particulier 𝑥0 , dit racine de l’arbre. La
longueur du chemin unique qui va de la racine 𝑥0 à un autre sommet queconque 𝑥𝑖 est appelé niveau
ou profondeur de 𝑥𝑖 . Les exttrêmités de 𝑅 (à l’exception de 𝑥0 si c’est une extrêmité) sont appelées
feuilles de l’arborescence. La figure 12 représente une arborescence où la racine 𝑥0 est placée en haut
du schéma. L’arborecsence comporte 5 feuilles : 𝑥4 , 𝑥6 , 𝑥8 , 𝑥9 et 𝑥10 . Le niveau de 𝑥2 est 1, celui
de 𝑥5 est 2 et celui de 𝑥10 est 3. Tout arbre peut devenir une arborescence, simplement en choisissant
n’importe lequel de ses sommets comme racine.
Le fait qu’il y ait un chemin unique de la racine à n’importe quel sommet de 𝑅 induit une
orientation des arêtes de 𝑅. Un chemin continuement orienté allant d’un sommet à une feuille est une
branche de R. Nous dirons qu’un sommet 𝑥𝑖 précède un autre sommet 𝑥𝑗 , ou que 𝑥𝑗 suit 𝑥𝑖 (𝑥𝑖 et
𝑥𝑗 sont, respectivement appelés un précédent et un suivant) si le chemin de la racine à 𝑥𝑗 inclut 𝑥𝑖 . En
particulier, nous disons que 𝑥𝑗 suit immédiatement 𝑥𝑖 si 𝑥𝑗 suit 𝑥𝑖 et lui est adjacent.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 13


Cours de Théorie des Graphes et Combinatoire/ISTAG

Figure 12 : représentation d’une arborescence

𝑥0
0
𝑥2 𝑥3
𝑥1 1

𝑥5 𝑥6 𝑥7
𝑥4 2

3
𝑥8 𝑥9 𝑥10

Sur la figure 12, le sommet 𝑥10 suit le sommet 𝑥3 , mais il suit immédiatement 𝑥7 . Notons que
chaque sommet autre que la racine 𝑥0 suit immédiatement un sommet unique mais peut être
immédiatement suivi par plus d’un sommet ; par exemple les sommets 𝑥9 et 𝑥10 suivent
immédiatement 𝑥7 .

1.8.2- Arborescences ordonnées

Une 𝑎𝑟𝑏𝑜𝑟𝑒𝑠𝑐𝑒𝑛𝑐𝑒 𝑅 où les arêtes issues de chaque sommet sont linéairement ordonnées est appelée
arborescence ordonnée. Soient 𝑒 et 𝑒 ′ des arêtes de 𝑅 issues d’un sommet 𝑥 en direction des sommets
𝑦 et 𝑧, respectivement. Si 𝑒 précède 𝑒 ′ dans l’ordre de 𝑅, nous représenterons 𝑒 à gauche de 𝑒 ′ (cf.
figure 13). Nous affectons alors le même ordre aux sommets 𝑦 et 𝑧 ; c’est-à-dire que 𝑦 précèdera 𝑧 .
(Notons que cet ordre sur les sommets 𝑦 et 𝑧 de 𝑅 n’a aucun rapport avec l’ordre nous avons décrit
précédemment sur les branches.)

Figure 13 : représentation d’une arborescence ordonnée

𝑒 𝑒′

𝑦 𝑧

Les arborescences ordonnées interviennent en de nombreuses situations de l’informatique, comme


nous allons l’illustrer à travers les deux exemples suivants :

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 14


Cours de Théorie des Graphes et Combinatoire/ISTAG

Exemple 1 : (Expression arithmétique). Toute expression arithmétique relative à des opérations


binaires, addition, soustraction, multiplication et division, par exemple, peut être représentée par une
arborescence ordonnée. Ainsi, l’expression arithmétique : (𝑎 − 𝑏)/((𝑐 × 𝑑) + 𝑒) peut être
représentéepar l’arborescence ordonnée de la figure 14. Notons que les variables 𝑎, 𝑏, 𝑐, 𝑑 et 𝑒
apparaissent comme des feuilles et les opérateurs comme des sommets. L’arborescence doit être
ordonnée ; 𝑎 − 𝑏 et 𝑏 − 𝑎 donnent la même arborescence, mais pas la même arborescence ordonnée.

Figure 14 : représentation d’une arborescence ordonnée

− +

𝑎 𝑏
𝑦 × 𝑒

𝑐 𝑑

Exemple 2 : (Structure d’enregistrement). Les informations sont souvent organisées en une


hiérarchie de champs, d’enregistrement et de fichiers de la manière suivante : un enregistrement est
une collection de données reliées, appelées champs, qui sont traitées comme une unité ; un fichier est
un ensemble d’enregistrements similaires. Par exemple, l’enregistrement personnel relatif à un
employé peut contenir les données :

Numéro de Sécurité Sociale, Identité, Adresse, Age, Salaire, Ayants-droit

et le fichier des employés de l’entreprise serait la liste des enregistrements des employés.

Bien que, généralement, un fichier soit une liste linéaire d’enregistrements, les données d’un
enregistrement constituent usuellement une arborescence. La raison en est que certaines données
forment des groupes comportant deux ou plusieurs informations. Cf. par exemple la représentation
donnée par la figure 15. Notons qu’Identité est un groupe de données, de même qu’Adresse. Il y a en
tout 10 informations élémentaires : les feuilles de l’arborescence.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 15


Cours de Théorie des Graphes et Combinatoire/ISTAG

Figure 15 : représentation d’une arborescence ordonnée

Employé

N° S. S.
𝑒 Identité Adresse Age Salaire Ayants-droit

Prénom Région
Nom 𝑦 Rue

Ville Département Code postal

L’arborescence précédente peut être également décrite en fonction du niveau des sommets.

. 00 𝐸𝑚𝑝𝑙𝑜𝑦é
. 01 𝑁𝑢𝑚é𝑟𝑜 𝑆. 𝑆.
. 01 𝐼𝑑𝑒𝑛𝑡𝑖𝑡é
. 02 𝑁𝑜𝑚
. 02 𝑃𝑟é𝑛𝑜𝑚

. 01 𝐴𝑑𝑟𝑒𝑠𝑠𝑒
. 02 𝑅𝑢𝑒
. 02 𝑅é𝑔𝑖𝑜𝑛
. 03 𝑉𝑖𝑙𝑙𝑒
. 03 𝐷é𝑝𝑎𝑟𝑡𝑒𝑚𝑒𝑛𝑡
. 03 𝐶𝑜𝑑𝑒 𝑝𝑜𝑠𝑡𝑎𝑙

. 01 𝐴𝑔𝑒
. 01 𝑆𝑎𝑙𝑎𝑖𝑟𝑒
. 01 𝐴𝑦𝑎𝑛𝑡𝑠 − 𝑑𝑟𝑜𝑖𝑡

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 16


Cours de Théorie des Graphes et Combinatoire/ISTAG

Chapitre 2 : Eléments d’un graphe orienté

2.1- Présentation

Nous avons vu dans le chapitre précédent qu’une arborescence présente un sens naturel défini
le long de chaque arête ; ces arborescences peuvent être considérées comme orientées. D’une manière
générale, un graphe orienté, également appelé digraphe, est un multigraphe dont chaque arête a un
sens. Ce sens confère à l’arête le nom d’arc.

Un graphe orienté 𝐺 est un couple de deux ensembles 𝑋 et 𝑈 tels que 𝑈 soit une partie du
produit cartésien 𝑋 × 𝑋 = 𝑋 2 (𝑈 ⊂ 𝑋 2 ). Les éléments de 𝑋 sont appelés sommets du graphe 𝐺 et
ceux de 𝑈 arcs de 𝐺. On écrit 𝐺 = (𝑋, 𝑈).

Il en résulte de cette définition qu’un même graphe 𝐺 = (𝑋, 𝑈) peut être donné sous deux formes : il
peut être représenté sous forme d’une figure ou sous forme d’une matrice.

2.2- Graphe orienté sous forme d’une figure

Un graphe orienté peut être représenté sous forme d’une figure (et c’est ce qui explique l’adoption du
mot « graphe ») dans laquelle chacun des sommets est représenté soit par un point, soit par un rond
numéroté 𝑖, (𝑖 ∈ 𝐼𝑁 ∗ ) ou marqué d’un symbole et dans laquelle chaque arc symbolisé par 𝑖𝑗 ⃗⃗ ou par
(𝑥𝑖 , 𝑥𝑗 ) appartenant à 𝑈, est représenté par une ligne qui part de 𝑖 (ou de 𝑥𝑖 ) et arrive en 𝑗 (ou en 𝑥𝑗 )
sans passer par un autre sommet, et que l’on muni d’une flèche dans le sens de « 𝑖 vers 𝑗 » (ou de
«𝑥𝑖 𝑣𝑒𝑟𝑠 𝑥𝑗 »). On appelle 𝑖 (ou 𝑥𝑖 ) et 𝑗 (ou 𝑥𝑗 ) respectivement l’origine et l’extrêmité de l’arc 𝑖𝑗 ⃗⃗
(respectivement de l’arc (𝑥𝑖 , 𝑥𝑗 )).

Figure 1 : Exemple de graphe orienté 𝐺 = (𝑋, 𝑈)

𝑎8
𝑎1 2 𝑎2

𝑎3
1 𝑎5 𝑎6 4

𝑎7 3 𝑎4

Ici , 𝑋 = {1, 2, 3, 4} et 𝑈 = {𝑎1 , 𝑎2 , 𝑎3 , 𝑎4 , 𝑎5 , 𝑎6 , 𝑎7 , 𝑎8 }

- Fonctions et notations
Notons :
𝑇 la fonction qui à un arc associe son extrêmité terminale
𝑇 : 𝑈 → 𝑋
⃗⃗ → 𝑗
𝑖𝑗

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 17


Cours de Théorie des Graphes et Combinatoire/ISTAG

𝐼 la fonction qui à un arc associe son extrémité initiale


𝐼 : 𝑈 → 𝑋
⃗⃗ → 𝑖
𝑖𝑗

⃗⃗⃗⃗ , donc 𝐼(𝑎7 ) = 3 et 𝑇(𝑎7 ) = 1


On a par exemple 𝑎7 = 31

De façon générale, si 𝑥𝑦
⃗⃗⃗⃗ ∈ 𝑈, 𝑥 est prédécesseur ou précédent de 𝑦, et 𝑦 est successeur ou
suivant de 𝑥.

- Représentation des graphes orientés


Soit 𝐺 = (𝑋, 𝑈). Nous noterons |𝑋| = 𝑛 le nombre de sommets de 𝐺 et |𝑈| = 𝑚 le nombre
d’arc de 𝐺.

2.3- Graphe orienté sous forme d’une matrice d’adjacence

La matrice d’adjacence du graphe 𝐺, notée 𝐴(𝐺), est la matrice de terme général 𝑎𝑖𝑗 ( 𝑖 variant de
1 à 𝑛 et 𝑗 variant de 1 à 𝑛) où 𝑎𝑖𝑗 représente le nombre d’arcs allant du sommet 𝑖 au sommet 𝑗. C’est
une matrice carrée d’ordre 𝑛.

Figure 2 : Exemple de graphe orienté 𝐺 = (𝑋, 𝑈) et sa matrice d’adjacence

𝑎2
1
𝑎6 0 1 1 0
𝑎1
𝑎4 𝐴(𝐺) = [1 0 0 0]
𝑎5 3 4 0 1 0 1
0 0 0 1
2 𝑎3

Si 𝐺 ne comporte pas d’arcs parallèles, les termes de 𝐴(𝐺 ) ne seront que des 0 et des 1 comme dans
le cas précédent.

2.4- Graphe orienté sous forme d’une matrice d’incidence

La matrice d’incidence du graphe 𝐺, notée 𝐵(𝐺), est la matrice de terme général 𝑏𝑖𝑗 ( 𝑖 variant de 1 à 𝑛
et 𝑗 variant de 1 à 𝑚) où :
• 𝑏𝑖𝑗 = 1 si 𝑎𝑗 a pour extrêmité initiale 𝑖 c’est-à-dire 𝐼(𝑎𝑗 ) = 𝑖 avec 𝑖 ≠ 𝑗
• 𝑏𝑖𝑗 = −1 si 𝑎𝑗 a pour extrémité terminale 𝑖 c’est-à-dire 𝑇(𝑎𝑗 ) = 𝑖 avec 𝑖 ≠ 𝑗
• 𝑏𝑖𝑗 = 0 dans les autres cas.

C’est une matrice 𝑛 × 𝑚.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 18


Cours de Théorie des Graphes et Combinatoire/ISTAG

Par exemple : la matrice d’incidence du graphe 𝐺 de la figure 1 ci-dessus est donnée


par :

0 1 0 1 −1 0
0 0 −1 −1 1 0]
𝐵(𝐺) = [
1 −1 1 0 0 0
−1 0 0 0 0 0

2.5- Vocabulaire, terminologies et notion degré dans un graphe orienté

Considérons le multigraphe orienté de la figure 3.

Figure 3 : Représentation d’un multigraphe orienté 𝐺 = (𝑋, 𝑈)

𝑎1
A D

𝑎1 𝑎4
𝑎3
𝑎6

𝑎5
B C
𝑎7

2.5.1- Vocabulaire

La définition d’un graphe orienté à l’aide d’une figure qui représente ses sommets et ses arcs
fournit un vocabulaire assez naturel dont il est utile de retenir les éléments suivants :
On appelle boucle tout arc dont l’origine et l’extrémité coïncident (la figure 3 a une boucle) ;
Lorsque (𝑥, 𝑦) est un arc, on dit que 𝑥 est un antécédent de 𝑦 et que 𝑦 est un conséquent
de 𝑥 ; on dit que 𝑥 et 𝑦 sont adjacents ; un sommet 𝑥 d’un graphe 𝐺 est adjacent à lui-même ou non
suivant que la boucle (𝑥, 𝑥) existe ou non dans 𝐺.
Nous appellerons sommet inaccessible tout sommet qui n’est extrêmité d’aucun arc. Un tel
sommet est appelé source. (la figure 3 n’a pas de sources).
Un cul-de-sac est un sommet qui n’est origine d’aucun arc. Un tel sommet est appelé puits. (la
figure 3 a un puits qui est le sommet 𝐶 ).
Chemins et circuits : étant donné un graphe 𝐺 = (𝑋, 𝑈), on appelle chemin toute suite finie
d’arcs telle que chaque arc de cette suite (à partir du second) ait pour origine l’extrémité de celui qui
précède. Si 𝑥 est l’origine du premier arc et 𝑧 l’extrêmité du dernier, on dit qu’il s’agit d’un chemin
de 𝑥 à 𝑧. Si 𝑧 coïncide avec 𝑥, un chemin de 𝑥 à 𝑥 est appelé circuit. Le même circuit peut être
considéré comme un chemin de 𝑦 à 𝑦, 𝑦 étant origine ou extrêmité de n’importe lequel des arcs
dont il se compose. En particulier, toute boucle est un circuit.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 19


Cours de Théorie des Graphes et Combinatoire/ISTAG

On appelle longueur d’un chemin ou d’un circuit le nombre d’arcs dont il se compose.
On considèrera parfois des chemins de longueur nulle ou « chemins vides » ; un tel chemin pourra être
considéré comme allant d’un sommet quelconque à lui-même. Par contre, la longueur d’un circuit sera
toujours un entier strictement positif.

Dans les définitions ci-dessus, rien n’interdit qu’un même arc n’y figure plus d’une fois dans
un même chemin ou circuit. Si aucun arc n’y figure plus d’une fois, on dit qu’il s’agit d’un chemin
ou d’un circuit simple.
Dans un chemin ou un circuit, même simple, il peut arriver qu’un sommet apparaisse comme
origine (ou comme extrêmité) de plusieurs arcs distincts; si cela n’arrive jamais, on dit que le chemin
ou le circuit est non seulement simple, mais élémentaire. Un chemin élémentaire ne peut, en
particulier, comporter aucune boucle, sauf s’il s’agit d’un « circuit élémentaire » qui se réduit à cette
boucle seule.

Un graphe sans circuit est un graphe dont aucun chemin n’est un circuit.
Dans un graphe sans circuit, il ne peut y avoir aucune boucle. En outre, un graphe sans circuit
est nécessairement antisymétrique : cela signifie qu’il ne peut,
pour deux sommets distincts 𝑥 et 𝑦 quelconques comporter à la fois l’arc (𝑥, 𝑦) et l’arc (𝑦, 𝑥).

Théorème : Dans tout graphe fini et non vide sans circuit, il y a nécessairement au moins un cul-de-
sac et un sommet inaccessible.

2.5.2- Sous-graphes et graphes partiel

Etant donné un graphe orienté 𝐺 = (𝑋, 𝑈), on peut sur toute partie 𝑋 ′ de 𝑋 construire un
graphe 𝐺 ′ = (𝑋 ′ , 𝑈 ′ ) dont l’ensemble d’arcs 𝑈 ′ est formé de ceux des arcs de 𝐺 qui ont leur origine
et leur extrêmité dans 𝑋 ′ ; 𝐺 ′ s’appelle le sous-graphe de 𝐺 construit sur 𝑋 ′ . Par exemple si, à partir
du graphe de la figure 3, on note 𝑋 ′ = {𝐵, 𝐶, 𝐷}, on obtient le graphe de la figure 3a :

Figure 3a : Représentation du sous-graphe 𝐺 ′ = (𝑋 ′ , 𝑈 ′ ) du graphe 𝐺 = (𝑋, 𝑈)

𝑎4
𝑎6

𝑎5
B C
𝑎7

La notion de sous-graphe est différente de celle de graphe partiel d’un graphe orienté 𝐺 = (𝑋, 𝑈). On
appelle graphe partiel de 𝐺 un graphe 𝐺 ∗ = (𝑋, 𝑈 ∗ ) construit sur le même ensemble de sommets 𝑋
que 𝐺, mais pour lequel 𝑈 ∗ ⊂ 𝑈. Un exemple de graphe partiel de la figure 3 est donné par la figure
3b :

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 20


Cours de Théorie des Graphes et Combinatoire/ISTAG

Figure 3b : Représentation du partiel 𝐺 ∗ = (𝑋, 𝑈 ∗ ) du graphe 𝐺 = (𝑋, 𝑈)

𝑎1
A D

𝑎4
𝑎6

B C
𝑎7

2.5.3- Terminologies

Les différentes notions de chemin, chemin élémentaire et circuits, sont valables aussi bien dans le cas
de graphes orientés que dans le cas de graphes non orientés, à part que la terminologie n’est pas
exactement la même, à cela près que le sens du chemin doit être en accord avec le sens des arcs dans
les graphes orientés. Plus précisément, un chemin (orienté) 𝑊 dans un graphe orienté 𝐺 est une
séquence alternée de sommets et d’arcs : 𝑊 = 𝑣0 , 𝑎1 , 𝑣1 , 𝑎2 , 𝑣2 , … , 𝑎𝑛−1 , 𝑣𝑛−1 , 𝑎𝑛 , 𝑣𝑛 telle que
chaque arc 𝑎𝑖 commence à 𝑣𝑖−1 et se termine à 𝑣𝑖 . Un semi-chemin est la même chose qu’un chemin,
à cela près que l’arc peut aussi bien commencer en 𝑣𝑖−1 ou en 𝑣𝑖 ; en d’autres termes, un semi-chemin
est la même chose qu’un chemin sur le graphe 𝐺 non orienté. Le tableau suivant donne les
terminologies utilisées dans les deux cas :

Graphe orienté Graphe non orienté


arc arête
chemin chaîne
circuit cycle
boucle boucle
chemin élémentaire chaîne élémentaire
chemin hamiltonien chaîne eulérienne
circuit hamiltonien cycle eulérien

Ainsi, un chemin hamiltonien est un chemin qui passe une et une seule fois par tous les sommets
d’un graphe orienté. De même, un circuit qui englobe tous les sommets d’un graphe orienté, chacun
n’étant pris qu’une seule fois, est un circuit hamiltonien.

2.5.4.- Degré d’un sommet

Le degré externe et le degré interne d’un sommet 𝑥 sont respectivement égaux aux nombre d’arcs
commençant et se terminant en 𝑥. Dans la mesure où chaque arc commence et se termine en un
sommet, nous constations que la somme des degrés internes des sommets est égale à la somme des
degrés externes des sommets, et égale au nombre d’arcs.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 21


Cours de Théorie des Graphes et Combinatoire/ISTAG

2.5.4.1- Définitions

Définition 1- Deux sommets d’un graphe orienté 𝐺 = (𝑋, 𝑈) sont dit adjacent si l’arc (𝑥, 𝑦) ∈ 𝑈 ou
l’arc (𝑦, 𝑥) ∈ 𝑈

Définition 2 - Deux arcs sont dits adjacents s’ils ont une extrêmité commune

Définition 3 – Le voisinage d’un sommet 𝑥 est l’ensemble Г(𝑥) des sommets 𝑦 tels que 𝑥 est
incident à l’arc (𝑥, 𝑦) ou à l’arc (𝑦, 𝑥) :
Г(𝑥) = {𝑦 ∈ 𝑋/ (𝑥, 𝑦) ∈ 𝑈 𝑜𝑢 (𝑦, 𝑥) ∈ 𝑈}
- Le voisinage interne d’un sommet 𝑥 est l’ensemble Г− (𝑥) des sommets 𝑦 tels
l’arc (𝑦, 𝑥) ∈ 𝑈 : c’est l’ensemble des sommets origines des arcs incidents à 𝑥 vers l’intérieur,
c’est-à-dire des arcs qui ont pour extrémité 𝑥.
Г− (𝑥) = {𝑦 ∈ 𝑋/ (𝑦, 𝑥) ∈ 𝑈}
- Le voisinage externe d’un sommet 𝑥 est l’ensemble Г+ (𝑥) des sommets 𝑦 tels
l’arc (𝑥, 𝑦) ∈ 𝑈 : c’est l’ensemble des sommets extrêmités des arcs incidents à 𝑥 vers
l’extérieur, c’est-à-dire des arcs qui ont pour origine 𝑥.
Г+ (𝑥) = {𝑦 ∈ 𝑋/ (𝑥, 𝑦) ∈ 𝑈}

Définition 4 – Le degré d’un sommet 𝑥, noté 𝑑(𝑥), est le nombre d’arcs incidents à 𝑥 (on remarquera
qu’une boucle est répétée deux fois):
𝑑(𝑥) = |Г(𝑥)|

- Le degré interne d’un sommet 𝑥, noté 𝑑 − (𝑥), est le nombre d’arcs incidents à 𝑥 vers
l’intérieur :
𝑑− (𝑥) = |Г− (𝑥)|
- Le degré externe d’un sommet 𝑥, noté 𝑑 + (𝑥), est le nombre d’arcs incidents à 𝑥 vers
l’extérieur :
𝑑+ (𝑥) = |Г+ (𝑥)|

Exemple : Examinons l’exemple de la figure 3 : (Travail à faire par l’étudiant)

2.5.4.2- Propriétés

Soient 𝐺 = (𝑋, 𝑈) un graphe orienté.

Nous notons : 𝑛 = |𝑋| et 𝑚 = |𝑈|

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 22


Cours de Théorie des Graphes et Combinatoire/ISTAG

Propriété 1- La somme des degrés de tous les sommets d’un graphe orienté est égale au double du
nombre de ses arcs : ∑𝑥∈𝑋 𝑑(𝑥) = 2𝑚

Propriété 2 : La somme des degrés internes des sommets est égale à la somme des degrés externes
des sommets, et égale au nombre d’arcs : ∑𝑥∈𝑋 𝑑 − (𝑥) = ∑𝑥∈𝑋 𝑑 + (𝑥) = 𝑚

Propriété 3- il y a un nombre pair de sommets de degré impair.

Par exemple : vérifier ces propriétés pour ce qui concerne la figure 3 : (Travail à faire par l’étudiant)

2.6.- Graphes orientés valués

Si les arcs et/ou les sommets d’un graphe orienté sont valués, nous avons un graphe orienté
valué. Ce type de graphe est souvent utilisé à la représentation de situations dynamiques. Par exemple,
les organigrammes sont des graphes orientés où les sommets (encore appelés cartouches) sont valués,
ainsi que les arcs issus d’un symbole de décision.

Exemple : 3 garçons, 𝐴, 𝐵 et 𝐶, se jettent un ballon de manière telle que 𝐴 fait une passe à 𝐵
régulièrement, mais que 𝐵 et 𝐶 peuvent aussi bien faire une passe à 𝐴 que de se passer le ballon entre
eux. La figure 4 illustre cette situation dynamique où les arcs sont valués avec leurs probabilités
respectives : 𝐴 passe le ballon à 𝐵 avec la probabilité 1, 𝐵 envoie la passe à 𝐴 et à 𝐶 avec la probabilité
1/2 pour chaque cas, et 𝐶 envoie le ballon à 𝐴 et à 𝐵 avec la probabilité 1/2 pour chaque cas.

Figure 4 : Représentation d’un graphe orienté valué

A
1
1
1 2
2 1
2

B
1 C
2

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 23


Cours de Théorie des Graphes et Combinatoire/ISTAG

2.7.- Graphes orientés et matrices

Nous avons vu plus haut qu’un graphe orienté peut être représenté sous forme d’une matrice
d’incidence ou sous forme d’une matrice d’adjacence. La matrice d’adjacence permet de trouver le
nombre de chemins ou de circuits de longueur 𝑝 (𝑝 ≥ 1) allant d’un sommet 𝑥𝑖 à un sommet 𝑥𝑗 .

Rappelons que la matrice d’adjacence d’un graphe 𝐺, notée 𝑀 = 𝐴(𝐺), est la matrice carrée
d’ordre 𝑛 de terme général 𝑎𝑖𝑗 où 𝑎𝑖𝑗 représente le nombre d’arcs allant du sommet 𝑖 au sommet 𝑗 ; 𝑛
étant le nombre de sommets du graphe 𝐺.

Pour identifier le nombre de chemins ou de circuits de longueur 𝑝 (𝑝 ≥ 1) allant d’un sommet


𝑥𝑖 à un sommet 𝑥𝑗 il suffit de calculer la puissane 𝑝𝑖è𝑚𝑒 de 𝑀 et de lire dans cette dernière matrice la
valeur qui se trouve à la croisé de la rangé 𝑥𝑖 et de la colonne 𝑥𝑗 .
Les graphes orientés comportant des sources et des puits sont courants. En effet, si un graphe
orienté 𝐺 ne contient pas de circuits, 𝐺 comporte au moins une source et au moins un puits.

Exemple : Considérons le graphe de la figure 5 :

Figure 5 : Graphe orienté et matrice d’adjacence

x2

u1 u4
u2
x1 x3
u3

a-) Dans ce graphe, il n’y a pas de source. Il y a un puits qui est x3


b-) La matrice d’adjacence de ce graphe est :
0 1 1 
M = 1 0 1 
0 0 0 
c-) Il n’existe pas dans ce graphe un circuit hamiltonien c’est-à-dire un circuit qui passe une
fois et une seule par chacun des sommets à cause de la présence du puits x3
d-) Il existe dans ce graphe des chemins de longueur 4 puisque
1 0 1 
M = 0 1 1  n’est pas une matrice nulle.
4

0 0 0 
Le nombre de ces chemins est : 1+1+1+1=4

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 24


Cours de Théorie des Graphes et Combinatoire/ISTAG

e-) Il n’ y a pas de chemin de longueur 4 de 𝑥1 à 𝑥2 , ni de 𝑥2 à 𝑥1 .

2.8.- Graphes orientés connexes

Sur un graphe orienté 𝐺, il existe trois types de connexions.


- Nous dirons que 𝐺 est faiblement connexe ou faible s’il existe un semi-chemin entre deux
sommets 𝑥 et 𝑦 quelconque de 𝐺;
- que 𝐺 est unilatéralement connexe ou unilatéral si, pour toute paire de sommets 𝑥 et 𝑦, il existe
dans 𝐺 un chemin élémentaire de 𝑥 à 𝑦 ou de 𝑦 à 𝑥.
- Enfin, nous dirons que 𝐺 est fortement connexe ou fort si, pour toute paire de sommets 𝑥 et 𝑦,
il existe dans 𝐺 un chemin élémentaire de 𝑥 à 𝑦 et de 𝑦 à 𝑦.

Notons que la connexion forte implique la connexion unilatérale et que connexion unilatérale
implique la connexion faible. Nous dirons que 𝐺 est strictement unilatéral s’il est unilatéral mais pas
fort, et que 𝐺 est strictement faible s’il est faible mais pas unilatéral. Par exemple, la figure 6 représente
un graphe (𝑎) strictement faible, (𝑏) strictement unilatéral et (𝑐) fort.

Figure 6 : Exemple de graphe planaire

(a) (𝑏) (𝑐)

En fonction de chemins contenant tous les sommets d’un graphe orienté, la connectivité peut être
définie à travers le théorème suivant :

Théorème : Soit 𝐺 un graphe orienté fini :


- (𝑎) 𝐺 est faible si et seulement si 𝐺 possède un semi-chemin partiel.
- (𝑏) 𝐺 est unilatéral si et seulement si 𝐺 possède un chemin partiel.
- (𝑐) 𝐺 est fort si et seulement si 𝐺 possède un circuit partiel.

2.9.- Machines à états finis

Nous pouvons considérer un ordinateur comme une machine se trouvant dans un certain « état
interne » à tout moment. L’ordinateur lit un symbole d’entrée, puis imprime un symbole de sortie et
change son état. Le symbole de sortie ne dépend que du symbole d’entrée et de l’état interne de la
machine, et cet état interne ne dépend que de l’état précédent de la machine et du symbole d’entrée
précédent. Les nombres d’états, de symboles d’entrée et de sortie sont supposés finis. Ces idées sont
résumées dans la définition suivante :

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 25


Cours de Théorie des Graphes et Combinatoire/ISTAG

Une 𝑚𝑎𝑐ℎ𝑖𝑛𝑒 à é𝑡𝑎𝑡 𝑓𝑖𝑛𝑖𝑠 (𝑜𝑢 𝑚𝑎𝑐ℎ𝑖𝑛𝑒 𝑠é𝑞𝑢𝑒𝑛𝑡𝑖𝑒𝑙𝑙𝑒 𝑡𝑜𝑡𝑎𝑙𝑒) 𝑀 est constituée de cinq
éléments :

(1) Un ensemble fini 𝐴 de 𝑠𝑦𝑚𝑏𝑜𝑙𝑒𝑠 𝑑’𝑒𝑛𝑡𝑟é𝑒.


(2) Un ensemble fini 𝑆 𝑑’é𝑡𝑎𝑡𝑠 𝑖𝑛𝑡𝑒𝑟𝑛𝑒𝑠.
(3) Un ensemble fini 𝑍 de 𝑠𝑦𝑚𝑏𝑜𝑙𝑒𝑠 𝑑𝑒 𝑠𝑜𝑟𝑡𝑖𝑒.
(4) Une fonction 𝑑’é𝑡𝑎𝑡 𝑠𝑢𝑖𝑣𝑎𝑛𝑡 𝑓 de 𝑆 × 𝐴 dans 𝑆.
(5) Une fonction 𝑑𝑒 𝑠𝑜𝑟𝑡𝑖𝑒 𝑔 de 𝑆 × 𝐴 dans 𝑍.

La machine 𝑀 est notée 𝑀 = 〈𝐴, 𝑆, 𝑍, 𝑓, 𝑔〉 quand nous souhaitons désigner ses cinq parties. Parfois
un é𝑡𝑎𝑡 𝑖𝑛𝑖𝑡𝑖𝑎𝑙 𝑞0 dans 𝑆 est donné et, dans ce cas, la machine est représentée par le sextuplet 𝑀 =
〈𝐴, 𝑆, 𝑍, 𝑞0 , 𝑓, 𝑔, 〉.

Exemple : L’énoncé suivant définit une machine à états finis avec deux symboles d’entrée, trois états
internes, et trois symboles de sortie :
(1) 𝐴 = {𝑎, 𝑏}
(2) 𝑆 = {𝑞0 , 𝑞1 , 𝑞2 }
(3) 𝑍 = {𝑥, 𝑦, 𝑧}
(4) La fonction 𝑑’é𝑡𝑎𝑡 𝑠𝑢𝑖𝑣𝑎𝑛𝑡 𝑓 : 𝑆 × 𝐴 → 𝑆 est définie par :
𝑓(𝑞0 , 𝑎) = 𝑞1 𝑓(𝑞1 , 𝑎) = 𝑞2 𝑓(𝑞2 , 𝑎) = 𝑞0
𝑓(𝑞0 , 𝑏) = 𝑞2 𝑓(𝑞1 , 𝑏) = 𝑞1 𝑓(𝑞2 , 𝑏) = 𝑞1
(5) La fonction 𝑑𝑒 𝑠𝑜𝑟𝑡𝑖𝑒 𝑔 : 𝑆 × 𝐴 → 𝑍 est définie par :
𝑔(𝑞0 , 𝑎) = 𝑥 𝑔(𝑞1 , 𝑎) = 𝑥 𝑔(𝑞2 , 𝑎) = 𝑧
𝑔(𝑞0 , 𝑏) = 𝑦 𝑔(𝑞1 , 𝑏) = 𝑧 𝑔(𝑞2 , 𝑏) = 𝑦

Il est traditionnel de désigner les états de la machine par 𝑞, 𝑞0 indiquant l’état initial.

Il y a deux manières de représenter une machine à états finis sous forme compacte :
(𝒊) Par un diagramme d’état 𝑫 : Le diagramme d’état 𝐷 d’une machine à états finis,
𝑀 = 〈𝐴, 𝑆, 𝑍, 𝑓, 𝑔〉 , est un graphe orienté valué 𝐷. Les sommets de 𝐷 sont les états 𝑆 de 𝑀 et,
si 𝑓(𝑞𝑖 , 𝑎𝑗 ) = 𝑞𝑘 et 𝑔(𝑞𝑖 , 𝑎𝑗 ) = 𝑧𝑟 alors
il existe un arc de 𝑞𝑖 à 𝑞𝑘 repéré par la paire {𝑞𝑖 , 𝑧𝑟 }. Généralement, nous mettons le symbole 𝑎𝑗 à
la base de la flèche représentant l’arc (au voisinage de 𝑞𝑖 ) et le symbole de sortie 𝑧𝑟 au voisinage du
milieu de la flèche. Dans le cas où un état initial 𝑞0 est donné, nous repérons le sommet 𝑞0 en traçant
une flèche supplémentaire vers 𝑞0 . Par exemple, la figure 7 représente le diagramme d’état de la
machine de l’exemple précédent où l’état initial et 𝑞0 .

Figure 7 : Diagramme d’état de l’exemple précédent


𝑥
𝑎
𝑏 𝑧
𝑞0 𝑞1
𝑏
𝑦 𝑎
𝑦

𝑧 𝑏
𝑥
𝑞2
𝑎
Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 26
Cours de Théorie des Graphes et Combinatoire/ISTAG

(𝒊𝒊) Par la table d’états : Alternativement, la machine peut être représentée par une table d’états où,
pour chaque combinaison d’état et d’entrée, l’état suivant et la sortie sont donnes. La table suivante
représente la table d’états de la machine de l’exemple précédent.

𝑎 𝑏
𝑞0 𝑞1 , 𝑥 𝑞2 , 𝑦
𝑞1 𝑞2 , 𝑥 𝑞1 , 𝑧
𝑞2 𝑞0 , 𝑧 𝑞1 , 𝑦

2.10- Chaînes, bandes d’entrée et de sortie

Dans le paragraphe précédent, nous n’avons pas introduit les propriétés dynamiques d’une machine.
Soit une machine 𝑀 possédant une chaîne de symboles d’entrée :
𝑈 = 𝑎1 𝑎2 … 𝑎𝑛
Nous visualisons ces symboles sur une bande d’entrée ; la machine 𝑀 𝑙𝑖𝑡 ces symboles d’entrée, un
par un et, simultanément, passe par une chaîne d’états :
𝑉 = 𝑠0 𝑠1 𝑠2 … 𝑠𝑛
où 𝑠0 est l’état initial, tout en imprimant une chaîne de symboles de sortie :
𝑊 = 𝑧1 𝑧2 … 𝑧𝑛 sur une bande de sortie. Formellement, l’état initial 𝑠0 et la chaîne
d’entrée 𝑈 déterminent les chaînes 𝑉 et 𝑊 par :
𝑠𝑖 = 𝑓(𝑠𝑖−1 , 𝑎𝑖 ) et 𝑧𝑖 = 𝑔(𝑠𝑖−1 , 𝑎𝑖 ) où 𝑖 = 1, 2, . . ., 𝑛.

Exemple : Soient 𝒒𝟎 l’état initial de l’exemple et 𝒂𝒃𝒂𝒂𝒃, la chaîne d’entrée. Nous déterminons la
chaîne des états et la chaîne des symboles de sortie d’après le diagramme d’états commençant au
sommet 𝑞0 en suivant les flèches repérées par les symboles d’entrée :

. 𝑎, 𝑥 𝑏, 𝑧 𝑎, 𝑥 𝑎, 𝑧 𝑏, 𝑦
𝑞0 𝑞1 𝑞1 𝑞2 𝑞0 𝑞2

ce qui donne les chaînes suivants d’états et de symboles de sortie :


𝑞0 𝑞1 𝑞1 𝑞2 𝑞0 𝑞2 et 𝑥𝑧𝑥𝑧𝑦

TPE : L’étudiant prendra également l’exemple d’une chaîne de son choix

2.11.- Automates finis

2.11.1-Définition

Un automate fini est semblable à une machine à états fini à l’exception du fait que l’automate
possède des états d’acceptation et de rejet et non des états de sortie. Plus précisément,
𝑢𝑛 𝑎𝑢𝑡𝑜𝑚𝑎𝑡𝑒 𝑓𝑖𝑛𝑖 𝑀 est constitué de cinq éléments :
(1) Un ensemble fini 𝐴 de 𝑠𝑦𝑚𝑏𝑜𝑙𝑒𝑠 𝑑’𝑒𝑛𝑡𝑟é𝑒.
(2) Un ensemble fini 𝑆 𝑑’é𝑡𝑎𝑡𝑠 𝑖𝑛𝑡𝑒𝑟𝑛𝑒𝑠.
(3) Un sous-ensemble 𝑇 de 𝑆 (dont les éléments sont appelés états d’acceptation)

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 27


Cours de Théorie des Graphes et Combinatoire/ISTAG

(4) Un état initial 𝑞0 dans 𝑆.


(5) Une fonction 𝑑’é𝑡𝑎𝑡 𝑠𝑢𝑖𝑣𝑎𝑛𝑡 𝑓 de 𝑆 × 𝐴 dans 𝑆.

L’automate 𝑀 est notée 𝑀 = 〈𝐴, 𝑆, 𝑇, 𝑞0 , 𝑓〉 quand nous souhaitons désigner ses cinq parties.

2.11.2- Exemple d’application

Les propositions suivantes définissent un automate à 2 symboles d’entrée et 3 états :

(1) 𝐴 = {𝑎, 𝑏} , symboles d’entrée


(2) 𝑆 = {𝑞0 , 𝑞1 , 𝑞2 } , états
(3) 𝑇 = {𝑞0 , 𝑞1 , } , états d’acceptation
(4) 𝑞0 état initial
(5) La fonction 𝑑’é𝑡𝑎𝑡 𝑠𝑢𝑖𝑣𝑎𝑛𝑡 𝑓 : 𝑆 × 𝐴 → 𝑆 définie par la table ci-contre:

𝑎 𝑏
𝑞0 𝑞0 𝑞1
𝑞1 𝑞0 𝑞2
𝑞2 𝑞2 𝑞2

Nous pouvons décrire un automate fini 𝑀 de manière abrégée par son diagramme d’états,
comme nous l’avons fait pour des machines à états finis, à cela près que nous utiliserons une paire de
cercle concentriques pour les états d’acceptation et que les arcs ne seront valués que par le symbole
d’entrée. Plus précisément, le diagramme d’états 𝐷 de 𝑀 est un graphe orienté valué où les sommets
sont les états de 𝑆 ; les états d’acceptation sont notés par une paire de cercles concentriques et, si
𝑓(𝑞𝑖 , 𝑎𝑗 ) = 𝑞𝑘 , il existe un arc de 𝑞𝑖 à 𝑞𝑘 valué par 𝑎𝑗 . De plus, l’état initial 𝑞0 est indiqué par une
flèche dirigé vers 𝑞0 . Par exemple, le diagrame d’état de l’automate de l’exemple précédent est
représenté par la figure 8.

Figure 7 : Diagramme d’états de l’exemple précédent

𝑎 𝑎
𝑏

𝑞0 𝑏
𝑞1 𝑞2
𝑏
𝑎

Etant donnée une chaîne finie 𝑊 = 𝑎1 𝑎2 … 𝑎𝑛 de symboles d’entrée d’un automate 𝑀, nous
obtenons une séquence 𝑞 = 𝑠0 𝑠1 𝑠2 … 𝑠𝑛 , d’états où 𝑠0 est l’état initial et 𝑠𝑖 = 𝑓(𝑠𝑖−1 , 𝑎𝑖 ), 𝑖 > 0.
Nous disons que 𝑀 reconnaît ou accepte la chaîne 𝑊 si l’état final 𝑠𝑛 est un état d’acceptation, c’est-
à-dire si 𝑠𝑛 ∈ 𝑇. Soit alors 𝐿(𝑀) l’ensemble de toutes les chaînes reconnues par 𝑀. Par exemple, nous
pouvons montrer que l’automate 𝑀 de l’exemple précédent reconnaîtra les chaînes qui ne comportent
pas deux 𝑏 successifs.
En effet, nous savons que 𝑠𝑛 = 𝑓(𝑠𝑛−1 , 𝑎𝑖 ), donc :

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 28


Cours de Théorie des Graphes et Combinatoire/ISTAG

(𝑖) Si 𝑠𝑛 = 𝑞0 alors 𝑠𝑛−1 = 𝑞0 , 𝑞1 et on a : 𝑞0 = 𝑓(𝑞0 , 𝑎) et 𝑞0 = 𝑓(𝑞1 , 𝑎) donc 𝑞 ∈ 𝐿(𝑀)


et 𝑊 se termine par 𝑎𝑎 ou par 𝑏𝑎
(𝑖𝑖) Si 𝑠𝑛 = 𝑞1 alors 𝑠𝑛−1 = 𝑞0 et on a : 𝑞1 = 𝑓(𝑞0 , 𝑏) donc 𝑞 ∈ 𝐿(𝑀) et 𝑊 se termine
par 𝑎𝑏
(𝑖𝑖𝑖) Si 𝑠𝑛 = 𝑞2 alors 𝑠𝑛−1 = 𝑞1 , 𝑞2 et on a : 𝑞2 = 𝑓(𝑞1 , 𝑏), 𝑞2 = 𝑓(𝑞2 , 𝑏) et 𝑞2 = 𝑓(𝑞2 , 𝑎)
donc 𝑞 ∉ 𝐿(𝑀) et 𝑊 se termine par 𝑏𝑏 ou par 𝑎𝑏.

En conclusion, l’automate 𝑀 de l’exemple précédent reconnaîtra les chaînes qui ne comportent


pas deux 𝑏 successifs.

2.11.3-L’automate considéré comme une machine à états finis

Nous pouvons considérer également un automate fini M comme une machine à états finis à deux
symboles de sortie, disons 𝑂𝑈𝐼 et 𝑁𝑂𝑁, où la sortie est 𝑂𝑈𝐼 si 𝑀 passe en un état d’acceptation, et la
sortie est 𝑁𝑂𝑁 si 𝑀 se met en un état de rejet. En d’autres termes, nous transformons 𝑀 en une machine
à états finis en définissant une fonction de sortie 𝑔 de 𝑆 × 𝐴 dans 𝑍 = {𝑂𝑈𝐼, 𝑁𝑂𝑁} de la manière
suivante :
𝑂𝑈𝐼 𝑠𝑖 𝑓(𝑞𝑖 , 𝑎𝑗 ) ∈ 𝑇 (𝑎𝑐𝑐𝑒𝑝𝑡𝑒)
𝑔(𝑞𝑖 , 𝑎𝑗 ) = {
𝑁𝑂𝑁 𝑠𝑖 𝑓(𝑞𝑖 , 𝑎𝑗 ) ∉ T (n′ acceptepas)

Réciproquement, une machine à états finis à deux symboles de sortie peut être considérée, de manière
analogue, comme un automate.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 29


Cours de Théorie des Graphes et Combinatoire/ISTAG

Chapitre 3 : Flots dans un réseau de transport et problème d’affectation

3.1- Introduction

3.1.1-Présentation

De nombreux problèmes de gestion présentent une analogie avec l’écoulement d’un flot dans
des canalisations. C’est le cas notamment de certains problèmes de transport où l’on cherche à
acheminer d’un lieu vers un autre, des flux de marchandises donnés, ou encore le cas de projet de
réseau routier où l’on cherche à trouver le débit horaire maximal de véhicules susceptible de s’écouler
entre deux villes alors que des voies de communication ont des capacités limitées.

On appelle réseau de transport tout graphe 𝐺 = (𝑋, 𝑈) dans lequel à chaque arc 𝑢 = 𝑥𝑦 =
(𝑥, 𝑦) est associé un nombre positif 𝑘(𝑢) = 𝑘(𝑥, 𝑦) que nous appellerons capacité de cet arc (il pourra
être commode de se représenter 𝑘(𝑥, 𝑦) comme une fonction non négative définie sur l’ensemble de
tous les couples (𝑥, 𝑦) sommets de 𝐺, et de convenir que 𝑘(𝑥, 𝑦) = 0 chaque fois qu’il n’y a pas
dans 𝐺 d’arc d’origine 𝑥 et d’extrémité 𝑦; il revient au même de supposer que 𝐺 est un graphe complet
dont certains arcs sont de capacité nulle).
Un réseau de transport est donc un graphe sans boucles, où à chaque arc 𝑢 est associé un
nombre 𝑘(𝑢) ≥ 0, appelé capacité de de l’arc 𝑢 et où :

- il existe un sommet 𝑥0 et un seul tel que Г− (𝑥0 ) ≠ ∅; ce sommet 𝑥0 est appelé l’entrée du
réseau ;
- il existe un sommet 𝑧 et un seul tel que Г+ (𝑧) ≠ ∅; ce sommet 𝑧 est appelé sortie du réseau ;

3.1.2- Projet de réseau routier

Soit le projet de réseau routier suivant ;


- 𝐺(𝑋, 𝑈) graphe du projet (figure 1)
- Les valeurs des arcs représentent un nombre maximal de véhicules à l’heure (capacité)

Figure 1 : Un exemple de graphe d’un projet de réseau routier

7
A B
8 10
5
6
10 2 4
M C D N
8 1 6
3
4
E F
Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 30
Cours de Théorie des Graphes et Combinatoire/ISTAG

Le problème est de trouver le débit horaire total maximal de véhicules susceptibles de s’écouler
entre les villes 𝑀 et 𝑁 , le nombre de véhicules entrant dans une ville devant être égal au nombre de
véhicules qui en sortent.
Par exemple pour la ville 𝐷, il y a 6 + 2 = 8 entrants et 4 + 3 = 7 sortants.
Bien que la capacité d’entrée soit 8, on ne peut en faire rentrer que 7.

3.2- Flot sur un graphe

3.2.1-Définition d’un flot

Soit 𝐺 = (𝑋, 𝑈) un graphe orienté. Un flot est une application 𝜑 de l’ensemble 𝑈 des arcs vers
l’ensemble 𝐼𝑅 telle que pour tout sommet 𝑥 ∈ 𝑋, on ait :

∑𝑢/𝐼(𝑢)=𝑥
⏟ 𝜑(𝑢) = ∑𝑢/𝑇(𝑢)=𝑥
⏟ 𝜑(𝑢) (loi de Kirchhoff ou loi des noeuds)
+
𝑢∈𝑈𝑥 𝑢∈𝑈−
𝑥

Les graphes de la figure 2 fournissent des exemples de flots à la lumière de la définition.

Figure 2 : Exemple de graphes vérifiant la loi de Kirchhoff

a
a) 𝑦 c) 1
b) 1
b 0 d
1
2 1 2 2 d j 1
b
3 i 1
5 a 0 h 1 1 c 0
t -2 1
0 1
𝑥 3 𝑧 -2 0 g
c -2 e
-2 f 1 e

Remarque :
- Si on prend un circuit dans un graphe et que l’on ajoute à toutes les valeurs d’arc la même
quantité, le graphe vérifie toujours la loi de Kirchhoff. Par exemple dans le graphe de la figure
2c), si nous ajoutons la quantité 2 au circuit (𝑎, 𝑏, 𝑐, 𝑑, 𝑎), le graphe obtenu respecte toujours
la loi de Kirchhoff.
- On peut également remarquer que si l’on n’a pas un circuit mais un cycle, on peut conserver
de même la loi de Kirchhoff. On choisit un sens de rotation dans un cycle et lorsqu’on est sur
un arc « dans le sens de la rotation », on ajoute la valeur et lorsqu’on est sur un arc qui est
« contre sens », on retranche la valeur. C’est ainsi dans le graphe de la figure 2b) et le cycle
(𝑦, 𝑧, 𝑡, 𝑦) de la figure 2a), si nous choisissons le sens de rotation d’une montre, et que nous
ajoutons la quantité 2 aux valeurs des arcs dans le sens de la rotation et soustrayons cette valeur
aux valeurs des arcs de sens inverse, la loi de Kirchhoff est toujours vérifiée.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 31


Cours de Théorie des Graphes et Combinatoire/ISTAG

Le contenu de cette remarque s’observe dans la figure 3 qui présente les graphes de la figure 2 avec
les valeurs des arcs modifiées dans le sens de la remarque.

Figure 3 : Graphes de la figure 2 modifiés dans le sens de la remarque précédente

a
a) 𝑦 c) 1
b) 3
b 2 d
3
0 3 4 4 d j 1
b
3 i 1
5 a 0 h 1 1 c 2
t -4 1
0 1
𝑥 5 𝑧 -4 0 g
c -4 e
-2 f 1 e

3.2.2- Exemple de flot.

Le graphique de la figure 4 donne un exemple de flot. Le vecteur 𝜑 initial représente la valeur pour les
arcs tels qu’ils sont notés sur le schéma.

Figure 4 : Exemple de flot

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

𝑢6 -2

1
2
3
On a donc le vecteur 𝜑 =
5
3
[−2]
On prend la matrice d’incidence 𝐴 du graphe et on la multiplie avec le vecteur 𝜑. Si le vecteur colonne
résultat est nul, alors le graphe est un flot.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 32


Cours de Théorie des Graphes et Combinatoire/ISTAG

1
1 1 −1 0 0 0 2 0
0 0 1 −1 0 −1] 3
𝐴𝜑 = [ = [0]
0 −1 0 1 −1 0 5 0
−1 0 0 0 1 1 3 0
[−2]

3.3- Problème de flot maximal

3.3.1- Définition

Soit 𝑅 = (𝑋, 𝑈 ′ , 𝑘) le graphe issu de 𝐺 = (𝑋, 𝑈) contenant deux sommets 𝑥0 (source) et 𝑧 (puits)
et tel que 𝑘 ∶ 𝑈 ′ → 𝐼𝑅+ ∪ {+∞}. On note 𝑈 ′ = 𝑈 ∪ {𝑧𝑥
⃗⃗⃗⃗⃗⃗0 }, 𝑢𝑟 l’arc de retour de 𝑧 à 𝑥0 et 𝑘(𝑢𝑟 ) =
+∞. Le nombre d’arc est noté 𝑚. Plus précisément, 𝜑(𝑢𝑟 ) = ∑𝑢/𝑇(𝑢)=𝑧⏟ 𝜑(𝑢).
𝑢∈𝑈−
𝑧

Le problème de flot maximal consiste à trouver un vecteur 𝜑 ∈ 𝐼𝑅𝑚 avec 𝜑 ∶


𝑈 → 𝐼𝑅+ tel que :
- 𝜑 est un flot (loi des nœuds respectée) ;
- 0 ≤ 𝜑(𝑢) ≤ 𝑘(𝑢) ;
- 𝜑(𝑢𝑟 ) est maximal pour les deux conditions précédentes.

3.3.2- Principe de l’algorithme de Ford et Fulkerson

3.3.2.1- Idée

On appelle flot réalisable (ou compatible) un flot tel que : 0 ≤ 𝜑(𝑢) ≤ 𝑘(𝑢)
On part d’un flot réalisable et on cherche un chemin 𝐶 de 𝑥0 à 𝑧. Ce chemin n’a pas d’arc saturé (on
rappelle qu’un arc est saturé si 𝜑(𝑢) = 𝑘(𝑢) .

Soient 𝛿 = min[𝑘(𝑢) − 𝜑(𝑢)] et Г le circuit 𝐶 + 𝑢𝑟


𝑢∈𝐶

En faisant 𝜑′(𝑢) = 𝜑(𝑢) + 𝛿 sur le circuit, on a :

➢ 𝜑′(𝑢) = 𝜑(𝑢) + 𝛿 si 𝑢 ∈ Г
➢ 𝜑′(𝑢) = 𝜑(𝑢) si 𝑢 ∉ Г

On obtient un flot 𝜑′(𝑢𝑟 ) = 𝜑(𝑢𝑟 ) + 𝛿.


Le but est de parcourir le graphe en faisant un marquage sur les arcs.

3.3.2.2- Marquage direct

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 33


Cours de Théorie des Graphes et Combinatoire/ISTAG

Pour le marquage direct, on part de 𝑥0 et on suppose qu’on marque un sommet 𝑥 ∈ 𝑋 (on lui ajoute
𝛿(𝑥)). S’il existe un arc 𝑥𝑦 = 𝑢 et 𝑦 non marqué et 𝜑(𝑢) < 𝑘(𝑢) alors on marque 𝑦 et 𝛿(𝑦) =
𝑚𝑖𝑛[ 𝛿(𝑥), 𝑘(𝑢) − 𝜑(𝑢)].

On note de plus 𝐴(𝑦) ← 𝑢 (on mémorise l’arc qui mène à 𝑦)

3.3.2.3- Marquage indirect

Pour le marquage indirect, on suppose que 𝑥 est marqué et que l’on a 𝛿(𝑥). s’il existe un arc 𝑦𝑥 = 𝑢
avec 𝑦 non marqué et 𝜑(𝑢) > 0 alors, 𝛿(𝑦) = 𝑚𝑖𝑛[ 𝛿(𝑥), 𝜑(𝑢)] , 𝐴(𝑦) ← 𝑢 (on mémorise l’arc
qui mène à 𝑥) et 𝑦 devient marqué.

3.3.2.4- Résumé

En résumé, dans le graphe 𝐺′ = 𝐺 ∪ {𝑢𝑟 }, le graphe « réseau » et son arc retour entre le puits 𝑧 et la
source 𝑥0 , nous allons confondre le circuit (ou le cycle) Г au sens de rotation (ou de déplacement).
Ainsi, Г + est le sens de rotation dans le sens des aiguilles d’une montre et Г – le sens contraire.

Figure 5 : Graphe « réseau » et son arc retour

𝑥0 𝑧
Г

𝑢𝑟 (arc retour)

Dans ce cas, on note sur les arcs le flot 𝜑′ tel que :


𝜑(𝑢) + 𝛿 si 𝑢 ∈ Г +
𝜑 ′ (𝑢) = {𝜑(𝑢) − 𝛿 si 𝑢 ∈ Г −
𝜑(𝑢) si 𝑢 ∉ Г

3.3.3- Algorithme de Ford et Fulkerson

3.3.3.1- Algorithme de marquage

0: Marquage (𝐺, 𝜑, 𝑘) // G : graphe, 𝜑 : flot, 𝑘 : capacité


1: 𝛿 ← 𝛿(𝑥0 ) ← 𝑘(𝑢𝑟 ) − 𝜑(𝑢𝑟 ) ; 𝑌 ← {𝑥0 } // 𝑌 : ensemble des sommets déjà
Marqués.
2: Tant que 𝑧 (puits) n’est pas dans 𝑌 et et 𝛿 > 0 faire
3: s’il existe 𝑢 = 𝑥𝑦, 𝑥 ∈ 𝑌 𝑒𝑡 𝑦 ∉ 𝑌 𝑒𝑡 𝜑(𝑢) < 𝑘(𝑢) alors
4: 𝑌 ← 𝑌 ∪ {𝑦}
5: 𝐴(𝑦) ← 𝑢 // Arborescence

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 34


Cours de Théorie des Graphes et Combinatoire/ISTAG

6: 𝛿(𝑦) ← 𝑚𝑖𝑛[ 𝛿(𝑥), 𝑘(𝑢) − 𝜑(𝑢)]


7: sinon s’il existe 𝑢 = 𝑦𝑥, 𝑥 ∈ 𝑌 𝑒𝑡 𝑦 ∉ 𝑌 𝑒𝑡 𝜑(𝑢) > 0 alors
8: 𝑌 ← 𝑌 ∪ {𝑦}
9: 𝐴(𝑦) ← 𝑢
10 : 𝛿(𝑦) ← 𝑚𝑖𝑛[ 𝛿(𝑥), 𝜑(𝑢)]
11 : sinon 𝛿 ← 0
12 : si 𝑧 ∈ 𝑌 alors 𝛿 ← 𝛿(𝑧)

3.3.3.2- Algorithme de changement de flot

Selon que le sens de l’arc en partant de 𝑧 (puits), on ajoute ou retranche 𝛿 (le delta trouvé par le calcul
précédent), on a :

0: changement flot (𝐺, 𝜑, 𝑘, 𝛿)


1: 𝑥 ← 𝑧 ; 𝜑(𝑢𝑟 ) ← 𝜑(𝑢𝑟 ) + 𝛿
2: Tant que 𝑥 ≠ 𝑥0 (source) faire
3: 𝐴(𝑥) ← 𝑢
4: si 𝑥 = 𝑇(𝑢) alors 𝜑(𝑢) ← 𝜑(𝑢) + 𝛿
5: sinon 𝜑(𝑢) ← 𝜑(𝑢) − 𝛿

3.3.3.2- Algorithme de flot maximal

Cet algorithme utilise les deux algorithmes précédents. Il consiste, tant que c’est possible (en
fonction des capacités des arcs) en une itération de marquage et de changement de flot. L’arrêt
s’effectue si 𝛿 = 0.

Pour tout 𝑢 ∈ 𝑈, faire 𝜑(𝑢) ← 0


Itérer [
Marquage
Arrêt si 𝛿 = 0
Changement de flot
]

3.3.4- La notion de coupe

3.3.4.1- Définition d’un cocycle

Nous rappelons qu’un flot, dans un graphe orienté 𝐺 = (𝑋, 𝑈), est une application 𝜑 de l’ensemble
𝑈 des arcs vers l’ensemble 𝐼𝑅 des nombres réels telle que pour tout sommet 𝑥 ∈ 𝑋, on ait :
∑𝑥∈𝑇(𝑢) 𝜑(𝑢) = ∑𝑥∈𝐼(𝑢) 𝜑(𝑢)

Figure 6 : Exemple de cocycle

𝑌 𝑋−𝑌
Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 35
Cours de Théorie des Graphes et Combinatoire/ISTAG

Soit Y une partie de X. On appelle cocycle Ω(𝒀), l’ensemble des arcs ayant exactement une
extrémité (qu’elle soit initiale ou terminale) dans 𝑌.
Par exemple : les arcs représentés dans le graphe ci-dessous sont dans le cocycle Ω(𝒀).

On note :
➢ 𝛺 + (𝑌) = {𝑢 ∈ 𝑈 / 𝐼(𝑢) ∈ 𝑌 ʌ 𝑇(𝑢) ∉ 𝑌}
➢ 𝛺 − (𝑌) = {𝑢 ∈ 𝑈 / 𝑇(𝑢) ∈ 𝑌 ʌ 𝐼(𝑢) ∉ 𝑌}

De plus, pour 𝑌 = {𝑥}, on a en trait pleins sur le graphique ci-dessous 𝛺 − (𝑌) et en trait pointillés
𝛺 + (𝑌)

Figure 7 : Exemple de cocycle dans le cas où 𝑌 = {𝑥}

𝑌
𝑋−𝑌

Théorème : une application 𝜑 ∶ 𝑈 → 𝐼𝑅 est un flot si et seulement si pour tout cocycle, on a :


∑𝑢∈𝛺+ (𝑌) 𝜑(𝑢) = ∑𝑢∈𝛺− (𝑌) 𝜑(𝑢)

On peut remarquer en effet que si Y, un ensemble de sommets est un flot, par contraction, on
a toujours un flot (voir figure 8).

Figure 8 : Contraction d’un flot

𝑌 𝑌
Contraction

3.3.4.2- Coupe minimale

Soit un réseau 𝑅 = (𝑋, 𝑈, 𝑘) et 𝑢𝑟 l’arc de retour de 𝑧 vers 𝑥0 (voir figure 9)

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 36


Cours de Théorie des Graphes et Combinatoire/ISTAG

Figure 9 : Notion de coupe

𝑌 𝑋−𝑌

𝑥0 𝑧

Si on peut trouver 𝑌 tel que 𝑌 ⊆ 𝑋 avec 𝑥0 ∈ 𝑌 et 𝑧 ∉ 𝑌, Cest une « coupe qui sépare
𝑧 de 𝑥0 ». Ainsi, on obtient :
C = {𝑢 ∈ 𝑈 / 𝐼(𝑢) ∈ 𝑌 ʌ 𝑇(𝑢) ∉ 𝑌} = 𝛺 + (𝑌)
La capacité de la coupe C séparant 𝑧 de 𝑥0 est :
𝑘(𝐶) = ∑𝑢∈𝐶 𝑘(𝑢)

Théorème : Pour tout flot réalisable 𝜑 sur 𝑅 = (𝑋, 𝑈, 𝑘) avec (𝑘(𝑢𝑟 ) = ∞) et toute coupe C
séparant 𝑧 de 𝑥0 , on a 𝜑(𝑢𝑟 ) ≤ 𝑘(𝐶)

Preuve : Soit C une coupe qui sépare 𝑧 de 𝑥0 . On a C = 𝛺 + (𝑌).


𝜑 est un flot réalisable ⇒ 𝜑(𝑢) ≥ 0 et 𝜑(𝑢) ≤ 𝑘(𝑢) ∀𝑢.
Donc, 𝜑 est un flot ⇒ ∑𝑢∈𝛺+ (𝑌) 𝜑(𝑢) = ∑𝑢∈𝛺− (𝑌) 𝜑(𝑢)

Donc
𝑢 ∈ 𝛺 − (𝑌) ⇒ 𝜑(𝑢) ≤ ∑𝑢∈𝛺−(𝑌) 𝜑(𝑢) = ∑𝑢∈𝛺+(𝑌) 𝜑(𝑢) ≤ ∑𝑢∈𝛺+ (𝑌) 𝑘(𝑢) = 𝑘(𝐶)

Corollaire : Si on termine l’algorithme de Ford et Fulkerson avec un flot 𝜑 réalisable sans qu’on ait
pu marquer 𝑧, 𝜑 est une solution optimale du problème du flot maximal de 𝑥0 à 𝑧.

Preuve : On fait tourner l’algorithme de Ford et Fulkerson. Il se termine sans avoir 𝑧. On a donc Y
l’ensemble des sommets marqués. Si 𝑢 ∈ 𝛺 + (𝑌), on a 𝜑(𝑢) = 𝑘(𝑢). Si 𝑢 ∈ 𝛺 − (𝑌), , on a 𝜑(𝑢) =
0. On prend comme coupe C = 𝛺 + (𝑌) la coupe qui sépare 𝑧 de 𝑥0 . Comme 𝑢𝑟 est dans 𝛺 − (𝑌) et que
𝜑 est un flot réalisable, on obtient :

𝜑(𝑢𝑟 ) = ∑𝑢∈𝛺−(𝑌) 𝜑(𝑢) = ∑𝑢∈𝛺+(𝑌) 𝜑(𝑢) = ∑𝑢∈𝛺+(𝑌) 𝑘(𝑢) = 𝑘(𝐶) qui est donc solution
optimale.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 37


Cours de Théorie des Graphes et Combinatoire/ISTAG

3.3.4.3- Théorème de la coupe minimale

Le débit maximal d’un flot réalisable sur 𝑅 = (𝑋, 𝑈, 𝑘) est égal à la capacité minimale d’une coupe
séparant 𝑧 de 𝑥0 .

3.3.5- Exemple d’application de l’algorithme de Ford et Fulkerson

Soit le réseau suivant où les valeurs sur les arcs 𝑢 de 𝑈 sont les capacités 𝑘(𝑢) :

Figure 10 : Données de capacité sur un réseau

2
b e
2
2 2
1
1 1
𝑥0 d 𝑧
3 1 1
1
2
c f

Prenons un flot au jugé nul à tous les arcs au départ.

➢ Première itération

1°- 𝑌 = {𝑥0 } et 𝛿(𝑥0 ) = ∞

2°- On choisit l’arc 𝑢 = 𝑥0 𝑏, 𝑌 = {𝑥0 , 𝑏} et


𝛿(𝑏) = 𝑚𝑖𝑛[𝛿(𝑥0 ), 𝑘(𝑢) − 𝜑(𝑢)] = 𝑚𝑖𝑛[∞, 2 − 0] = 𝑚𝑖𝑛[∞, 2] = 2
On note de plus l’arborescence 𝐴(𝑏) = 𝑥0 𝑏 (i.e. on est arrivé à 𝑏 par l’arc 𝑥0 𝑏)

3°- On choisit ensuite de marquer le sommet 𝑒.


On a donc 𝑌 = {𝑥0 , 𝑏, 𝑒}, 𝐴(𝑒) = 𝑏𝑒 et 𝛿(𝑒) = 𝑚𝑖𝑛[𝛿(𝑏), 𝑘(𝑏𝑒) − 𝜑(𝑏𝑒)] = 2

4°- On choisit enfin de marquer le sommet 𝑧.


On a alors 𝑌 = {𝑥0 , 𝑏, 𝑒, 𝑧}, 𝐴(𝑧) = 𝑒𝑧 et 𝛿(𝑧) = 𝑚𝑖𝑛[𝛿(𝑒), 𝑘(𝑒𝑧) − 𝜑(𝑒𝑧)] = 2

A la fin de la première itération, on obtient 𝛿 = 𝛿(𝑧) = 2. On effectue donc le premier changement


de flot. En partant de 𝑧 et en remontant dans l’arborescence créée, on ajoute 𝛿 au flot initial. (nous
rappelons qu’à l’initialisation, nous avons mis les flots de tous les arc à 0). On obtient le flot de la
figure 11 où les arcs en gras sont des arcs saturés.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 38


Cours de Théorie des Graphes et Combinatoire/ISTAG

Figure 11 : Flot obtenu après la première itération

2
b e
2
2 0
0
0 0
𝑥0 d 𝑧
0 0 0
0
0
c f
2

➢ Deuxième itération

On recommence le marquage :

1°- 𝑌 = {𝑥0 } et 𝛿(𝑥0 ) = ∞

2°- De là, on ne peut plus marquer 𝑏 puisque l’arc 𝑥0 𝑏 est saturé (𝜑(𝑥0 𝑏) = 𝑘(𝑥0 𝑏)). On marque
alors 𝑐. On obtient l’arc 𝑢 = 𝑥0 𝑐, 𝑌 = {𝑥0 , 𝑐} et
𝛿(𝑐) = 𝑚𝑖𝑛[𝛿(𝑥0 ), 𝑘(𝑢) − 𝜑(𝑢)] = 𝑚𝑖𝑛[∞, 3 − 0] = 𝑚𝑖𝑛[∞, 3] = 3
On note de plus l’arborescence 𝐴(𝑐) = 𝑥0 𝑐 (i.e. on est arrivé à 𝑐 par l’arc 𝑥0 𝑐)

3°- On peut choisir ensuite de marquer le sommet 𝑓.


On a donc 𝑌 = {𝑥0 , 𝑐, 𝑓}, 𝐴(𝑓) = 𝑐𝑓 et 𝛿(𝑓) = 𝑚𝑖𝑛[𝛿(𝑐), 𝑘(𝑐𝑓) − 𝜑(𝑐𝑓)]
= 𝑚𝑖𝑛[3, 2 − 0] = 2
4°- Enfin on peut marquer 𝑧.
On a alors 𝑌 = {𝑥0 , 𝑐, 𝑓, 𝑧}, 𝐴(𝑧) = 𝑓𝑧 et 𝛿(𝑧) = 𝑚𝑖𝑛[𝛿(𝑓), 𝑘(𝑓𝑧) − 𝜑(𝑓𝑧)]
= 𝑚𝑖𝑛[2, 1 − 0] = 1

A la fin de la deuxième itération, on obtient 𝛿 = 𝛿(𝑧) = 1. On effectue donc le deuxième changement


de flot. En partant de 𝑧 et en remontant dans l’arborescence créée, on ajoute 𝛿 au flot obtenu à l’issue
de la première itération. On obtient le flot de la figure 12.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 39


Cours de Théorie des Graphes et Combinatoire/ISTAG

Figure 12 : Flot obtenu après la deuxième itération

2
b e
2
2 0
0
0 0
𝑥0 d 𝑧
1 0 0
1
1
c f

2+1=3

➢ Troisième itération

1°- 𝑌 = {𝑥0 } et 𝛿(𝑥0 ) = ∞

2°- On peut encore accéder à 𝑐. On passe par l’arc 𝑢 = 𝑥0 𝑐, 𝑌 = {𝑥0 , 𝑐} et


𝛿(𝑐) = 𝑚𝑖𝑛[𝛿(𝑥0 ), 𝑘(𝑢) − 𝜑(𝑢)] = 𝑚𝑖𝑛[∞, 3 − 1] = 𝑚𝑖𝑛[∞, 2] = 2
On note de plus l’arborescence 𝐴(𝑐) = 𝑥0 𝑐

3°- On va ensuite vers 𝑑 car c’est celui dont le flot est le plus faible
(𝜑(𝑐𝑑) = 0 < 𝜑(𝑐𝑓) = 1)
On a donc 𝑌 = {𝑥0 , 𝑐, 𝑑}, 𝐴(𝑑) = 𝑐𝑑 et 𝛿(𝑑) = 𝑚𝑖𝑛[𝛿(𝑐), 𝑘(𝑐𝑑) − 𝜑(𝑐𝑑)]
= 𝑚𝑖𝑛[2, 1 − 0] = 1

4°- Par 𝑑, on peut décider d’aller à 𝑏 et alors on a : 𝑌 = {𝑥0 , 𝑐, 𝑑, 𝑏}, 𝐴(𝑏) = 𝑑𝑏 et


𝛿(𝑏) = 𝑚𝑖𝑛[𝛿(𝑑), 𝑘(𝑑𝑏) − 𝜑(𝑑𝑏)]
= 𝑚𝑖𝑛[1, 2 − 0] = 1

5°- Par 𝑑, on peut aussi accéder à 𝑒 et alors on a : 𝑌 = {𝑥0 , 𝑐, 𝑑, 𝑏, 𝑒}, 𝐴(𝑒) = 𝑑𝑒 et


𝛿(𝑒) = 𝑚𝑖𝑛[𝛿(𝑑), 𝑘(𝑑𝑒) − 𝜑(𝑑𝑒)]
= 𝑚𝑖𝑛[1, 1 − 0] = 1

6°- Par 𝑑, on peut enfin accéder à 𝑓 et alors on a : 𝑌 = {𝑥0 , 𝑐, 𝑑, 𝑏, 𝑒, 𝑓}, 𝐴(𝑓) = 𝑑𝑓


et 𝛿(𝑓) = 𝑚𝑖𝑛[𝛿(𝑑), 𝑘(𝑑𝑓) − 𝜑(𝑑𝑓)] = 𝑚𝑖𝑛[1, 1 − 0] = 1
Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 40
Cours de Théorie des Graphes et Combinatoire/ISTAG

Mais, ensuite, on est bloqué. On ne peut plus accéder à 𝑧 car tous les flots sont maximum. L’ensemble
des sommets marqués par cette dernière itération permet d’obtenir 𝑌(encerclé sur la figure 13 en
couleur). 𝐶 = 𝛺 + (𝑌) et 𝑘(𝐶) = 2 + 1 = 3 = 𝜑(𝑢𝑟 ). On a donc obtenu le résultat optimal (le flot
obtenu à la deuxième itération est un flot maximal). 𝐶 est la coupe minimale (voir figure 13).

Figure 13 : Flot maximal et coupe minimale

2
𝑌 b e
2
2 0
0
0 0
𝑥0 d 𝑧
1 0 0
1
1
c f

2+1 =3

3.3.6- Exemple d’application de l’algorithme de Ford et Fulkerson dans un


réseau de transport

Trouver le débit horaire total maximal de véhicules susceptibles de s’écouler entre les villes 𝑀 et 𝑁
de la figure 1. Les valeurs sur les arcs sont les capacités de ces arcs.

Comme précédemment, prenons un flot au jugé nul à tous les arcs au départ (mais, on peut tout
aussi bien faire circuler n’importe quel flot au jugé, en veillant tout simplement à ce qu’il soit
compatible avec les contraintes, qui sont ici les contraintes de capacité et de flux positifs, et qu’il vérifie
les équations de nœud – cf. exercice 8.1).

➢ Première itération

1°- 𝑌 = {𝑀} et 𝛿(𝑀) = ∞

2°- On choisit l’arc 𝑢 = 𝑀𝐴, 𝑌 = {𝑀, 𝐴} et


𝛿(𝐴) = 𝑚𝑖𝑛[𝛿(𝑀), 𝑘(𝑢) − 𝜑(𝑢)] = 𝑚𝑖𝑛[∞, 5 − 0] = 𝑚𝑖𝑛[∞, 5] = 5
On note de plus l’arborescence 𝐴(𝐴) = 𝑀𝐴 (i.e. on est arrivé à 𝐴 par l’arc 𝑀𝐴)

3°- On choisit ensuite de marquer le sommet 𝐵.


On a donc 𝑌 = {𝑀, 𝐴, 𝐵}, 𝐴(𝐵) = 𝐴𝐵 et 𝛿(𝐵) = 𝑚𝑖𝑛[𝛿(𝐴), 𝑘(𝐴𝐵) − 𝜑(𝐴𝐵)]

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 41


Cours de Théorie des Graphes et Combinatoire/ISTAG

= 𝑚𝑖𝑛[5, 7 − 0)] = 5

4°- On choisit enfin de marquer le sommet 𝑁.


On a alors 𝑌 = {𝑀, 𝐴, 𝐵, 𝑁}, 𝐴(𝑁) = 𝐵𝑁 et
𝛿(𝑁) = 𝑚𝑖𝑛[𝛿(𝐵), 𝑘(𝐵𝑁) − 𝜑(𝐵𝑁)] = 𝑚𝑖𝑛[5, 10 − 0] = 5

A la fin de la première itération, on obtient 𝛿 = 𝛿(𝑁) = 5. On effectue donc le premier changement


de flot. En partant de 𝑁 et en remontant dans l’arborescence créée, on ajoute 𝛿 au flot initial. On
obtient le flot de la figure 14 où les arcs en gras sont des arcs saturés.

Figure 14 : Flot du réseau routier après la première itération

5
A B
0 5
5
0
0 C 0 0
𝑀 D 𝑁
0 0 0
0
0
E F

➢ Deuxième itération

1°- 𝑌 = {𝑀} et 𝛿(𝑀) = ∞

2°- On choisit l’arc 𝑢 = 𝑀𝐸, 𝑌 = {𝑀, 𝐸} et


𝛿(𝐸) = 𝑚𝑖𝑛[𝛿(𝑀), 𝑘(𝑢) − 𝜑(𝑢)] = 𝑚𝑖𝑛[∞, 8 − 0] = 𝑚𝑖𝑛[∞, 8] = 8
On note de plus l’arborescence 𝐴(𝐸) = 𝑀𝐸

3°- On choisit ensuite de marquer le sommet 𝐹.


On a donc 𝑌 = {𝑀, 𝐸, 𝐹}, 𝐴(𝐹) = 𝐸𝐹 et 𝛿(𝐹) = 𝑚𝑖𝑛[𝛿(𝐸), 𝑘(𝐸𝐹) − 𝜑(𝐸𝐹)]
= 𝑚𝑖𝑛[8, 4 − 0)] = 4

4°- On choisit enfin de marquer le sommet 𝑁.


On a alors 𝑌 = {𝑀, 𝐸, 𝐹, 𝑁}, 𝐴(𝑁) = 𝐹𝑁 et
𝛿(𝑁) = 𝑚𝑖𝑛[𝛿(𝐹), 𝑘(𝐹𝑁) − 𝜑(𝐹𝑁)] = 𝑚𝑖𝑛[4, 6 − 0] = 4

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 42


Cours de Théorie des Graphes et Combinatoire/ISTAG

A la fin de la deuxième itération, on obtient 𝛿 = 𝛿(𝑁) = 4. On effectue donc le deuxième


changement de flot. En partant de 𝑁 et en remontant dans l’arborescence créée, on ajoute 𝛿 au flot de
la première itération. On obtient le flot de la figure 15.

Figure 15 : Flot du réseau routier après la deuxième itération

5
A B
0 5
5
0
0 0 0
𝑀 C D 𝑁
4 0 4
0
4
E F

5+4 = 9

➢ Troisième itération

1°- 𝑌 = {𝑀} et 𝛿(𝑀) = ∞

2°- On choisit l’arc 𝑢 = 𝑀𝐶, 𝑌 = {𝑀, 𝐶} et


𝛿(𝐶) = 𝑚𝑖𝑛[𝛿(𝑀), 𝑘(𝑢) − 𝜑(𝑢)] = 𝑚𝑖𝑛[∞, 10 − 0] = 𝑚𝑖𝑛[∞, 10] = 10
On note de plus l’arborescence 𝐴(𝐶) = 𝑀𝐶

3°- On choisit ensuite de marquer le sommet 𝐷.


On a donc 𝑌 = {𝑀, 𝐶, 𝐷}, 𝐴(𝐷) = 𝐶𝐷 et 𝛿(𝐷) = 𝑚𝑖𝑛[𝛿(𝐶), 𝑘(𝐶𝐷) − 𝜑(𝐶𝐷)]
= 𝑚𝑖𝑛[10, 2 − 0)] = 2

4°- De 𝐷 on peut marquer 𝑁.


On a alors 𝑌 = {𝑀, 𝐶, 𝐷, 𝑁}, 𝐴(𝑁) = 𝐷𝑁 et
𝛿(𝑁) = 𝑚𝑖𝑛[𝛿(𝐷), 𝑘(𝐶𝑁) − 𝜑(𝐷𝑁)] = 𝑚𝑖𝑛[2, 4 − 0] = 2

A la fin de la troisième itération, on obtient 𝛿 = 𝛿(𝑁) = 2. On effectue donc le troisième changement


de flot. En partant de 𝑁 et en remontant dans l’arborescence créée, on ajoute 𝛿 au flot de la deuxième
itération. On obtient le flot de la figure 16.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 43


Cours de Théorie des Graphes et Combinatoire/ISTAG

Figure 16 : Flot du réseau routier après la troisième itération

5
A B
0 5
5
0
2 C 2 2
𝑀 D 𝑁
4 0 4
0
4
E F

5+4+2 = 11

➢ Quatrième itération

1°- 𝑌 = {𝑀} et 𝛿(𝑀) = ∞


On choisit l’arc 𝑢 = 𝑀𝐶, 𝑌 = {𝑀, 𝐶} et
𝛿(𝐶) = 𝑚𝑖𝑛[𝛿(𝑀), 𝑘(𝑢) − 𝜑(𝑢)] = 𝑚𝑖𝑛[∞, 10 − 2] = 𝑚𝑖𝑛[∞, 8] = 8
On note de plus l’arborescence 𝐴(𝐶) = 𝑀𝐶

2°- On choisit ensuite de marquer le sommet 𝐵.


On a donc 𝑌 = {𝑀, 𝐶, 𝐵}, 𝐴(𝐵) = 𝐶𝐵 et 𝛿(𝐵) = 𝑚𝑖𝑛[𝛿(𝐶), 𝑘(𝐶𝐵) − 𝜑(𝐶𝐵)]
= 𝑚𝑖𝑛[8, 8 − 0)] = 8

3°- De 𝐵 on peut marquer 𝑁.


On a alors 𝑌 = {𝑀, 𝐶, 𝐵, 𝑁}, 𝐴(𝑁) = 𝐵𝑁 et
𝛿(𝑁) = 𝑚𝑖𝑛[𝛿(𝐵), 𝑘(𝐵𝑁) − 𝜑(𝐵𝑁)] = 𝑚𝑖𝑛[8, 10 − 5] = 5

A la fin de la quatrième itération, on obtient 𝛿 = 𝛿(𝑁) = 5. On effectue donc le quatrième


changement de flot. En partant de 𝑁 et en remontant dans l’arborescence créée, on ajoute 𝛿 au flot de
la troisième itération. On obtient le flot de la figure 17.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 44


Cours de Théorie des Graphes et Combinatoire/ISTAG

Figure 17 : Flot du réseau routier après la quatrième itération

5
A B
5 10
5
0
7 C 2 2
𝑀 D 𝑁
4 0 4
0
4
E F

5+4+2+5 = 16

➢ Cinquième itération

1°- 𝑌 = {𝑀} et 𝛿(𝑀) = ∞


On peut choisir l’arc 𝑢 = 𝑀𝐶, 𝑌 = {𝑀, 𝐶} et
𝛿(𝐶) = 𝑚𝑖𝑛[𝛿(𝑀), 𝑘(𝑢) − 𝜑(𝑢)] = 𝑚𝑖𝑛[∞, 10 − 7] = 𝑚𝑖𝑛[∞, 3] = 3
On note de plus l’arborescence 𝐴(𝐶) = 𝑀𝐶

2°- On choisit ensuite de marquer le sommet 𝐵.


On a donc 𝑌 = {𝑀, 𝐶, 𝐵}, 𝐴(𝐵) = 𝐶𝐵 et 𝛿(𝐵) = 𝑚𝑖𝑛[𝛿(𝐶), 𝑘(𝐶𝐵) − 𝜑(𝐶𝐵)]
= 𝑚𝑖𝑛[3, 8 − 0)] = 3

3°- De 𝐵 on peut marquer 𝐴 par 𝛿(𝐴) = 𝑚𝑖𝑛[𝛿(𝐵), 𝜑(𝐴𝐵)] = 𝑚𝑖𝑛[3, 5] = 3


On a alors 𝑌 = {𝑀, 𝐶, 𝐵, 𝐴} et 𝐴(𝐴) = 𝐴 𝐵

4°- De 𝐴 on marque 𝐷 par


𝛿(𝐷) = 𝑚𝑖𝑛[𝛿(𝐴), 𝑘(𝐴𝐷) − 𝜑(𝐴𝐷)] = 𝑚𝑖𝑛[3, 6 − 0] = 3
On a alors 𝑌 = {𝑀, 𝐶, 𝐵, 𝐴, 𝐷} et 𝐴(𝐷) = 𝐴𝐷

5°- De 𝐷 on marque 𝐹 par


𝛿(𝐹) = 𝑚𝑖𝑛[𝛿(𝐷), 𝑘(𝐷𝐹) − 𝜑(𝐷𝐹)] = 𝑚𝑖𝑛[3, 3 − 0] = 3
On a alors 𝑌 = {𝑀, 𝐶, 𝐵, 𝐴, 𝐷, 𝐹} et 𝐴(𝐹) = 𝐷𝐹

6°- De 𝐹 on marque 𝑁 par


𝛿(𝑁) = 𝑚𝑖𝑛[𝛿(𝐹), 𝑘(𝐹𝑁) − 𝜑(𝐷𝐹)] = 𝑚𝑖𝑛[3, 6 − 4] = 2
Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 45
Cours de Théorie des Graphes et Combinatoire/ISTAG

On a alors 𝑌 = {𝑀, 𝐶, 𝐵, 𝐴, 𝐷, 𝐹, 𝑁} et 𝐴(𝑁) = 𝐹𝑁

A la fin de la cinquième itération, on obtient 𝛿 = 𝛿(𝑁) = 2. On effectue donc le cinquième


changement de flot. En partant de 𝑁 et en remontant dans l’arborescence créée, on ajoute 𝛿 au flot de
la troisième itération. On obtient le flot de la figure 18.

Figure 18 : Flot du réseau routier après la cinquième itération

3
A B
7 10
5
2
9 C 2 2
𝑀 D 𝑁
4 0 6
2
4
E F

5+4+2+5+2 = 18

➢ Sixième itération

1°- 𝑌 = {𝑀} et 𝛿(𝑀) = ∞

2°- On peut choisir l’arc 𝑢 = 𝑀𝐶, 𝑌 = {𝑀, 𝐶} et


𝛿(𝐶) = 𝑚𝑖𝑛[𝛿(𝑀), 𝑘(𝑢) − 𝜑(𝑢)] = 𝑚𝑖𝑛[∞, 10 − 9] = 𝑚𝑖𝑛[∞, 1] = 1
On note de plus l’arborescence 𝐴(𝐶) = 𝑀𝐶

3°- On choisit ensuite de marquer le sommet 𝐵.


On a donc 𝑌 = {𝑀, 𝐶, 𝐵}, 𝐴(𝐵) = 𝐶𝐵 et 𝛿(𝐵) = 𝑚𝑖𝑛[𝛿(𝐶), 𝑘(𝐶𝐵) − 𝜑(𝐶𝐵)]
= 𝑚𝑖𝑛[1, 8 − 7)] = 1

4°- De 𝐵 on peut marquer 𝐴 par 𝛿(𝐴) = 𝑚𝑖𝑛[𝛿(𝐵), 𝜑(𝐴𝐵)] = 𝑚𝑖𝑛[1, 3] = 1


On a alors 𝑌 = {𝑀, 𝐶, 𝐵, 𝐴} et 𝐴(𝐴) = 𝐴 𝐵

5°- De 𝐴 on marque 𝐷 par


𝛿(𝐷) = 𝑚𝑖𝑛[𝛿(𝐴), 𝑘(𝐴𝐷) − 𝜑(𝐴𝐷)] = 𝑚𝑖𝑛[1, 6 − 2] = 1
On a alors 𝑌 = {𝑀, 𝐶, 𝐵, 𝐴, 𝐷} et 𝐴(𝐷) = 𝐴 𝐷

6°- De 𝐷 on marque 𝑁 par


𝛿(𝑁) = 𝑚𝑖𝑛[𝛿(𝐷), 𝑘(𝐷𝑁) − 𝜑(𝐷𝑁)] = 𝑚𝑖𝑛[1, 4 − 2] = 1
On a alors 𝑌 = {𝑀, 𝐶, 𝐵, 𝐴, 𝐷, 𝑁} et 𝐴(𝑁) = 𝐷𝑁

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 46


Cours de Théorie des Graphes et Combinatoire/ISTAG

A la fin de la sixième itération, on obtient 𝛿 = 𝛿(𝑁) = 1. On effectue donc le sixième changement


de flot. En partant de 𝑁 et en remontant dans l’arborescence créée, on ajoute 𝛿 au flot de la troisième
itération. On obtient le flot de la figure 19.

Figure 19 : Flot du réseau routier après la sixième itération

2
A B
8 10
5
3
10 C 2 3
𝑀 D 𝑁
4 0 6
2
4
E F

5+4+2+5+2+1 = 19

➢ Septième itération

1°- 𝑌 = {𝑀} et 𝛿(𝑀) = ∞

2°- On peut choisir l’arc 𝑢 = 𝑀𝐸, 𝑌 = {𝑀, 𝐸} et


𝛿(𝐸) = 𝑚𝑖𝑛[𝛿(𝑀), 𝑘(𝑢) − 𝜑(𝑢)] = 𝑚𝑖𝑛[∞, 8 − 4] = 𝑚𝑖𝑛[∞, 4] = 4
On note de plus l’arborescence 𝐴(𝐸) = 𝑀𝐸

3°- De 𝐸 on ne peut pas marquer 𝐶 puisque 𝜑(𝐶𝐸) = 0.

On a fini de marquer et 𝑵 n’est pas marqué. Le flot de la figure 19 est le flot maximal. L’ensemble
des sommets marqués par cette dernière itération permet d’obtenir 𝑌 (encerclé sur la figure 20 en
couleur).
𝐶 = 𝛺 + (𝑌) = {𝑢 ∈ 𝑈 / 𝐼(𝑢) ∈ 𝑌 ʌ 𝑇(𝑢) ∉ 𝑌} = {𝑀𝐴, 𝑀𝐶, 𝐸𝐹} et
𝑘(𝐶) = 10 + 5 + 4 = 19 = 𝜑(𝑢𝑟 ) = 𝜑𝑁 = 𝜑𝑚𝑎𝑥
= ∑𝐼(𝑢)∈𝑌𝑒𝑡 𝑇(𝑢)𝑌 𝑘(𝑢) = 𝑘(𝑀𝐴) + 𝑘(𝑀𝐶) + 𝑘(𝐸𝐹)
= 5 + 10 + 4 = 19
𝐶 est la coupe minimale (voir figure 20).

En effet, 𝑌 = {𝑀, 𝐸} et 𝑋 − 𝑌 = {𝐴, 𝐶, 𝐵, 𝐷, 𝐹, 𝑁} de sorte que


𝐶 = 𝛺 + (𝑌) = {𝑢 ∈ 𝑈 / 𝐼(𝑢) ∈ 𝑌 ʌ 𝑇(𝑢) ∉ 𝑌} = {𝑀𝐴, 𝑀𝐶, 𝐸𝐹} et
𝑘(𝐶) = ∑𝑢∈𝛺+(𝑌) 𝑘(𝑢) = 𝑘(𝑀𝐴) + 𝑘(𝑀𝐶) + 𝑘(𝐸𝐹) = 5 + 10 + 4 = 19 = 𝜑𝑚𝑎𝑥

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 47


Cours de Théorie des Graphes et Combinatoire/ISTAG

Figure 20 : Flot maximal et coupe minimale du réseau routier

2
A B
8 10
5
3
10 C 2 3
𝑀 D 𝑁
4 0 6
2
Y 4
E F

5+4+2+5+2+1 = 19 = 𝜑𝑚𝑎𝑥

Le débit horaire total maximal de véhicules susceptibles de s’écouler entre les villes 𝑀 et 𝑁 est de
19.

Définition : Flot complet

Un flot dans un réseau de transport est dit complet si tout chemin allant de l’entrée à la sortie contient
au moins un arc saturé.

Nous rappelons qu’un arc 𝑢 est saturé si 𝜑(𝑢) = 𝑘(𝑢). Pour obtenir un flot complet, il suffit de
considérer le graphe restreint aux arcs non saturés. Si le flot n’est pas complet, il existe dans le graphe
restreint un chemin allant de l’entrée à la sortie.
Si nous notons Г ce chemin, on augmente de 𝑞 (où 𝑞 = min(𝑘(𝑢) − 𝜑(𝑢))) le flot de ce chemin et
𝑢∈Г
il y apparaît au moins un arc saturé. On recommence l’opération jusqu’à ce que tous les chemins
contiennent un arc saturé.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 48


Cours de Théorie des Graphes et Combinatoire/ISTAG

Remarque :
➢ Un flot complet est proche de l’optimum. En effet, lorsque le marquage commence à partir
d’un flot complet, le nombre d’itérations est réduit.
➢ Le flot maximal est un flot complet. Par exemple, on peut constater que le flot de la figure 18
est bien un flot complet.

3.4- Problème d’affectation

Le problème d’affectation correspond à un cas particulier de problème de transport dans lequel


toutes les disponibilités et toutes les demandes sont égales à 1.
Prenons l’exemple d’AES-Sonel qui doit maintenant gérer ses relations avec ses sous-traitants.
Cinq opérations de production doivent être confiées à cinq sous-traitants et un sous-traitant ne peut,
dans le laps de temps accordé, réaliser qu’une seule opération. Pour chaque opération, chaque sous-
traitant a fourni un devis dont le coût figure dans le 𝑡𝑎𝑏𝑙𝑒𝑎𝑢 1𝑎. Quelle est la meilleure affectation
possible des opérations aux sous-traitants ?

Un tel problème pourrait être traité par les techniques habituelles avec la correction du
problème de dégénérescence qui se produit inévitablement ici. Des méthodes plus rapides sont
disponibles, en particulier l’algorithme de Kuhn ou la méthode hongroise.
En effet, on dresse un tableau des coûts relatifs. On pose pour chaque ligne i , vi = min cij
j
(1)
et on fait : c
ij = cij − vi (𝑣𝑜𝑖𝑟 𝑡𝑎𝑏𝑙𝑒𝑎𝑢 1𝑏). On pose ensuite pour chaque colonne j du tableau des
cij(1) , w j = min c (1) et on fait : cij(2) = cij(1) − w j (𝑣𝑜𝑖𝑟 𝑡𝑎𝑏𝑙𝑒𝑎𝑢 1𝑐).
ij
i
Si un zéro figurait dans chaque ligne et dans chaque colonne, il est clair qu’une affectation à
coût minimum pourrait être définie en ne retenant que des contrats à coût relatif nul. Si tel n’est pas le
cas, la technique consiste à faire apparaître de nouveaux zéros jusqu’à ce qu’une affectation à coût
relatif nul puisse être établie.
Par exemple, dans le 𝑡𝑎𝑏𝑙𝑒𝑎𝑢 1𝑐, on ne trouve pas suffisamment de zéros pour procéder à une
affectation complète à coût relatif nul. Compte tenu de la disposition des zéros, seuls trois contrats
peuvent bénéficier simultanément d’un coût relatif nul. On montre que le nombre maximum de
contrats pouvant en bénéficier est donné par le nombre minimum de lignes et de colonnes
nécessaires pour rayer tous les zéros du tableau des coûts relatifs. Ces lignes apparaissent sur le
𝑡𝑎𝑏𝑙𝑒𝑎𝑢 1𝑐.
Pour pouvoir procéder à une affectation plus complète, nous posons : 1 = min min cij ( cij
(2) (2)
i j
non rayés) qui est le chiffre minimum non rayé de l’ensemble des cases non rayées du tableau des
coûts relatifs. On fait cij = cij (non
(3) (2)
rayé ) − 1 , puis on additionne 1 à l’ensemble des chiffres
se trouvant aux intersections des rangés rayées. Ceci revient à conserver identique les chiffres rayés,
sauf ceux correspondant à une intersection de deux rangés rayées. 𝐿𝑒 𝑡𝑎𝑏𝑙𝑒𝑎𝑢 1𝑑 qui en résulte permet
ainsi une affectation de quatre contrats. La même opération est reconduite avec le chiffre minimum
non rayé de ce nouveau tableau. Une affectation complète est possible : cinq lignes et colonnes sont
nécessaires pour recouvrir tous les zéros.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 49


Cours de Théorie des Graphes et Combinatoire/ISTAG

Tableau 1 : Application de l’algorithme de Kuhn (la méthode Hongroise) au


problème d’AES-Sonel

a) Sous-traitants
b) 1 2 3 4
1 2 3 4 5 5
1 12 8 6 3 9
2 6 5 14 8 7 Vi =min Cij 1 9 5 3 0
j 2 6
Opérations 3 9 3 8 2 10 ⎯⎯⎯⎯⎯⎯ → 3 1 0 9 3
4 12 15 8 9 12 Cij =Cij −Vi
(1)
4 2
5 6 8 2 14 7 5 7 1 6 0
W j 8= min Cij(1)

4 7i 0 1
d) 1 2 3 4 5 Cij 4= Cij − W j
(2) (1)

1 7 4 3 0 3 4 6 0 12
2 0 0 10 4 0 1 =minmin cij(2) C) 1 52 3 4 5
⎯⎯⎯⎯⎯⎯ i j
⎯ 1 8 5 3 0 4
3 5 0 6 0 5 Cij(3) =Cij(2) −1
4 2 6 0 1 1 2 0 0 9 3 0
5 2 5 0 12 2 3 6 1 6 0 6
4 3 7 0 1 2
5 3 6 0 12 3

e) 1 2 3 4 N.B. * 1 = min min Cij(2) ( Cij(2) non rayés)


i j
5
1 6 3 3 0 2 * C (3)
ij =C (2)
ij − 1 (pour les cases non rayées du tableau)
2 0 0 11 5 0 * Cij(3) = Cij(2) + 1 (intersection des lignes et des colonnes
3 5 0 7 1 5
rayées du tableau).
4 1 5 0 1 0
• Si à cette étape l’optimum n’est pas atteint,
5 1 4 0 12 1
recommencer le processus.

L’algorithme qui vient d’être défini garantit l’obtention de l’optimum au bout d’un certain
nombre d’itérations. La solution optimale, donnée dans le 1𝑒 , amène au graphe suivant :

Opération Sous-traitant Coût


1 1 c21 = 6
2 2 c32 = 3

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 50


Cours de Théorie des Graphes et Combinatoire/ISTAG

3 3 c53 = 2
4 4 c14 = 3
5 5 c12 = 12
26

Chapitre 4 : Graphes et problèmes d’ordonnancement


4.1- Présentation

De façon générale, en théorie des graphes et problème d’ordonnancement, nous appellerons


graphe valué, la donnée simultanée d’un graphe orienté 𝐺 = (𝑋, 𝑈) et d’une application 𝜑 de
l’ensemble 𝑈 des arcs de 𝐺 dans un ensemble numérique, qui en général est celui des nombres réels
non négatifs :

𝜑 : 𝑈 𝐼𝑅+
𝑢 𝜑(𝑢)

Dans la représentation des graphes orientés valués à l’aide d’une figure, on se contente
d’inscrire au regard de chaque arc 𝑢 du graphe la valeur 𝜑(𝑢). La signification concrète des valeurs
"𝜑(𝑢)" ainsi attribuées aux arcs sera différente suivant l’origine et la nature du problème. Selon le
cas, ce sera la durée, le coût, la capacité, …
Dans certains problèmes (problème de transport par exemple), à partir de ces valeurs, on
cherchera à déterminer, parmi tous les chemins ayant la même origine et la même extrêmité, celui dont
la valeur est optimale.
Une importante autre variété d’applications de la théorie des graphes valués est connue sous
divers noms tels que la méthode MPM (la Méthode des Potentiels Métra), la méthode PERT
(abréviation de « Program Evaluation and Review Technique » et qui signifie « Technique
d’Ordonnancement des Tâches et Contrôle des Programmes), etc.
Toutes ces méthodes ont en commun :
- De concerner la planification d’un certain nombre de tâches élémentaires qui concourent à
la réalisation d’un ensemble complexe, par exemple d’un bâtiment industriel et autre avec
le plus souvent pour objectif essentiel l’obtention d’un délai minimum de réalisation ;
- De rechercher, à titre principal, dans certains graphes, valués à l’aide de nombres non
négatifs, un ou plusieurs chemins dit « chemins critiques » dont la définition précise sera
donnée plus loin.

4.2- Les avantages temporels tirés d’un graphe d’ordonnancement de projet

- Le premier avantage est de pouvoir indiquer avant le début des travaux la durée totale de
l’ouvrage à réaliser ;
- Le second avantage est de faire apparaître sur le réseau le chemin qui, formé par la succession
de plusieurs tâches, nous donne le temps le plus long : c’est le chemin critique ;

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 51


Cours de Théorie des Graphes et Combinatoire/ISTAG

- En dehors de ce chemin critique, le troisième avantage est de pouvoir déterminer sur les autres
chemins du réseau les temps disponibles grâces auxquels on engagera des moyens au temps
opportun.

Par ailleurs, nous savons que dans tout graphe orienté fini et non vide sans circuit, il y a
nécessairement au moins un cul-de-sac et un sommet inaccessible.
En ordonnancement, seuls les graphes sans circuit sont utilisés. Ils sont alors ordonnancés en classant
les sommets par niveau.

4.3- Chemin extrêmal dans un graphe orienté

4.3.1-Algorithme de recherche de niveau

(i) Présenter le dictionnaire des précédents ;


(ii) Le niveau 0 est attribué aux sommets sans précédents ;
(iii) Barrer dans la colonne des précédents les sommets ou les tâches ayant reçu le niveau 0 ;
le niveau 1 est attribué aux nouveaux sommets (nouvelles tâches) sans précédents;
(iv) Reprendre l’étape (iii) en augmentant de 1 la valeur des niveaux jusqu’à ce que tous les
sommets ou toutes les tâches soient barrés.

4.3.2- Recherche du chemin extrêmal

4.3.2.1 : Présentation

Les graphes sans circuit permettent de déterminer parmi tous les chemins du graphe ayant la
même origine et la même extrêmité, ceux dont la valeur est optimale.
Le chemin optimal est recherché dans les problèmes :
- de circulation et de transport (par exemple le chemin le plus court permettant de réduire le coût
d’un trajet,…) ;
- d’ordonnancement d’un projet (chemin le plus long pour connaître la durée de réalisation d'un
programme d’investissement).

Supposons que, dans un graphe 𝐺 valué par une fonction non négative des arcs, 𝜑(𝑢), nous
associons à tout chemin 𝐶 = 𝑢1 𝑢2 . . . 𝑢𝑛 le nombre
𝜑(𝐶) = 𝜑(𝑢1 ) + (𝑢2 ) + . . . +𝜑(𝑢𝑛 ).
Nous conviendrons d’appeler 𝜑(𝑢) la valeur de l’arc 𝑢 et 𝜑(𝐶) la valeur du chemin 𝐶. Un
problème qu’il est alors naturel de résoudre est le suivant : « parmi tous les chemins joignant un
sommet donné 𝑠 à un autre 𝑠′, trouver celui (ou ceux) dont la valeur est optimale ».

4.3.2.2 : Algorithme de recherche du chemin extrêmal (algorithme de Ford)

1- Présenter le dictionnaire des précédents ;


2- Ordonnancer le graphe par niveau ;
 ( x, y ) ;
3- Donner une valeur à chaque flèche (arc) :
4- Etablir une fonction M de l’ensemble X des sommets de G dans un ensemble
numérique, qui en général est celui des nombres réels non négatifs :

𝑀 : 𝑋 𝐼𝑅+
𝑥 𝑀(𝑥)
Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 52
Cours de Théorie des Graphes et Combinatoire/ISTAG

5- Ecrire 𝑀(𝑥) = 0 si 𝑥 est un sommet de niveau 0 et pour tout autre sommet quelconque 𝑧
d’un autre niveau, écrire :
• 𝑀(𝑧) = min −
[𝑀(𝑦) + 𝜑(𝑥, 𝑦)] pour un problème de circulation ou de
𝑦∈Г (𝑧)
transport ;
• 𝑀(𝑧) = max −
[𝑀(𝑦) + 𝜑(𝑥, 𝑦)] pour un problème d’ordonnancement de projet.
𝑦∈Г (𝑧)

6- Continuer l’étape 5 jusqu’au dernier sommet d (sommet de niveau le plus élevé) ; 𝑀(𝑑)
donne la valeur du chemin extrêmal ;

7- Le chemin extrêmal correspond au chemin dont la longueur est réalisée par la succession
des sommets ascendants qui ont permis de connaître M (d ) .

4.4- Application à un problème de transport

La société FOKOU fabrique des matériaux de construction et s’occupe également du transport


routier de ces matériaux.
Une commande doit être acheminée de la ville A à la ville K . Les différentes étapes, qui
seront représentées par des sommets, sont les villes B, C ,..., I , J .
Le tableau à double entrée ci-après donne les liaisons possibles et leurs coûts (en milliers de
francs cfa)

Tableau 1 : Problème de transport de la société FOKOU

Ville d’arrivée
A B C D E F G H I J K
Ville de départ
A 3 4 9
B 5 11 10
C 3
D 3 10 6
E 8 10
F 4 2
G 6
H 10 4
I 13 6
J 7 4 3
K

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 53


Cours de Théorie des Graphes et Combinatoire/ISTAG

TPE : Dans le tableau 2, l’étudiant établira le dictionnaire des précédents et les niveaux des villes
d’après l’algorithme de recherche de niveau

Tableau 2 : Dictionnaire des précédents et rangement des sommets par niveau

Le graphique 2 est le graphe des trajets possibles

Graphique 2 : Graphe des trajets possibles

11
4 G
B 10 6
3 J
5 7
2
A
9 E
F 3 10
4 4
3 4
8
K
10
D H 10

3
6 6
I 13 C

0 1 2 3 4 5 6 7

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 54


Cours de Théorie des Graphes et Combinatoire/ISTAG

Trajet correspondant au coût minimum :

On utilise l’algorithme Ford pour la recherche du chemin extrêmal (ici le chemin de coût minimum).
𝑀(𝐴) = 0 et pour tout autre sommet 𝑧 autre que 𝐴,
𝑀(𝑧) = min −
[𝑀(𝑦) + 𝜑(𝑥, 𝑦)] donc, on a :
𝑦∈Г (𝑧)

M ( B) = M ( A) +  ( A, B) = 0 + 3 = 3 → A
M ( D) = M ( A) +  ( A, D) = 04+ = 4 → A
M ( F ) = Min  M ( A) +  ( A, F ), M ( B ) +  ( B, F ), M ( D ) +  ( D, F ) 
= Min(0 + 9,3 + 5,4 + 3) = 7 → D
M ( I ) = M ( D) +  ( D, I ) = 4 + 6 = 10 → D
M ( J ) = Min  M ( B) +  ( B, F ), M ( F ) +  ( F , J )  = Min 3 + 10,7 + 2  = 9 → F
M (G ) = Min  M ( B) +  ( B, G ), M ( J ) +  ( J , G )  = Min 3 + 11,9 + 4  = 13 → J
M ( H ) = Min  M ( J ) +  ( J , H ), M ( F ) +  ( F , H ), M ( D) +  ( D, H ), M ( I ) +  ( I , H ) 
= Min(9 + 3,7 + 4,4 + 10,10 + 6) = 11 → F
M ( E ) = Min  M (G ) +  (G, E ), M ( J ) +  ( J , E ), M ( H ) +  ( H , E ) 
= Min(13 + 6,9 + 7,11 + 4) = 15 → H
M (C ) = Min  M ( E ) +  ( E , C ), M ( H ) +  ( H , C ), M ( I ) +  ( I , C ) 
= Min(15 + 8,11 + 10,10 + 13) = 21 → H
M ( K ) = Min  M ( E ) +  ( E , K ), M (C ) +  (C , K )  = Min 15 + 10,21 + 3 = 24 → C

Le chemin de coût minimum correspond au chemin dont la longueur est réalisée par la
succession des sommets ascendants qui ont permis de connaître M ( K ) . Il s’agit du chemin en gras
sur le graphique 2. Le coût minimum est dont
M ( K ) = 24  103 F = 24000 F

4.5- Ordonnancement M.P.M.


4.5.1- Principe de la méthode

Chaque opération est représentée par un sommet ou un rond dans lequel figure le nom de la
tâche ou son code.

𝐴 Tâche 𝐴

Les sommets sont reliés entre eux (sauf le dernier) par des arcs associés à valeur numérique
correspondant au temps minimum qui sépare le début de deux tâches.

12
𝐴 𝐵

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 55


Cours de Théorie des Graphes et Combinatoire/ISTAG

La tâche (B) ne peut démarrer que 12 unités de temps après le début de la tache (A). Lorsqu’il
n’y a pas de contrainte de date, la longueur de l’arc est égale à la durée de la tâche qui précède. La fin
du projet est matérialisée par une tâche « Fin » (dernier sommet).

4.5.2- Construction d’un graphe M.P.M.

Les tâches et les contraintes étant définies, la construction du graphe repose sur le dictionnaire
des précédents et les niveaux tels qu’ils ont été définis dans la théorie des graphes :
- établir le dictionnaire des précédents (liste des tâches immédiatement
antérieures à chaque tâche) ;
- déterminer le niveau de chaque tâche (rang de chaque tâche) ;
- construire le graphe en plaçant les sommets de gauche à droite en fonction de
leur niveau. Les sommets sont reliés entre eux en fonction des précédents.

Chaque sommet pourra éventuellement être surmonté d’un rectangle partagé


en deux, à gauche la date de début au plus tôt (1) et à droite la date au plus tard.

(1)|(2)

4.5.3- Dates au plus tôt, dates au plus tard et chemin critique

- Dates au plus tôt :


Nous noterons 𝑇𝑜 la fonction définissant les dates de début au plus tôt des différentes tâches. C’est
une fonction identique la fonction 𝑀 précédemment définie. Elle est donc définie de l’ensemble des
sommets 𝑋 vers un ensemble numérique qui, en général, est celui des nombres réls non négatifs.

𝑇𝑜 : 𝑋 𝐼𝑅+
𝑥 𝑇𝑜(𝑥)

On écrira 𝑇𝑜(𝑥) = 0 si 𝑥 est un sommet de niveau 0 et pour tout autre sommet quelconque 𝑧 d’un
autre niveau, on écrira :
𝑇𝑜(𝑧) = max −
[𝑇𝑜(𝑦) + 𝜑(𝑦, 𝑧)]
𝑦∈Г (𝑧)
La date au plus tôt de la tâche « Fin » (𝑇𝑜(𝐹𝑖𝑛)) correspond à la durée de réalisation du projet.

- Dates au plus tard

Nous noterons 𝑇𝑎 la fonction définissant les dates au plus tard des différentes tâches. C’est une
fonction définie de l’ensemble des sommets 𝑋 vers un ensemble numérique qui, en général, est celui
des nombres réls non négatifs.

𝑇𝑎 : 𝑋 𝐼𝑅+
𝑥 𝑇𝑎(𝑥)

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 56


Cours de Théorie des Graphes et Combinatoire/ISTAG

On écrira 𝑇𝑎(𝐹𝑖𝑛) = 𝑇𝑜(𝐹𝑖𝑛) et pour tout autre tâche "𝑦" autre que "𝐹𝑖𝑛", on écrira :
𝑇𝑎(𝑦) = min +
[𝑇𝑎(𝑧) + 𝜑(𝑦, 𝑧)]
𝑧∈Г (𝑦)

- Chemin critique

Le chemin critique est composé d’une succession de tâches critiques pour lesquelles tout retard
pris dans leur réalisation se traduit par un allongement de la durée du projet. Il correspond au chemin
qui garantit que toutes les tâches antérieures ont bien été réalisées. En définitive, c’est le chemin dont
la succession des tâches donne la plus longue durée d’exécution et fournit le délai d’achèvement le
plus court.

4.5.4- Calcul des marges

Marge totale :

La marge totale d’une tâche est le retard maximum acceptable sur la date de début de cette
tâche ou sur sa durée d’exécution sans que cela ne modifie le délai de réalisation du projet.
Elle est basée sur l’hypothèse que les dates au plus tard ne seront pas modifiées. La fonction de marge
totale (𝑀𝑇) est définie de l’ensemble des sommets 𝑋 vers l’ensemble des nombres réels non négatifs
de la manière suivante :
𝑀𝑇 : 𝑋 𝐼𝑅+
𝑥 𝑀𝑇(𝑥)

𝑜ù 𝑀𝑇(𝑥) = min [𝑇𝑎(𝑦) − 𝑇𝑜(𝑥) − 𝜑(𝑥, 𝑦)]


𝑦∈Г+ (𝑥)

Marge libre :
La marge libre d’une tâche exprime le retard maximum que l’on peut accepter sur la date de
début de cette tâche ou sur sa durée d’exécution sans que cela ne modifie le la date de début de la
tâche suivante.
La fonction de marge totale (𝑀𝐿) est définie de l’ensemble des sommets 𝑋 vers l’ensemble des
nombres réels non négatifs de la manière suivante :

𝑀𝐿 : 𝑋 𝐼𝑅+
𝑥 𝑀𝐿(𝑥)

𝑜ù 𝑀𝐿(𝑥) = min [𝑇𝑜(𝑦) − 𝑇𝑜(𝑥) − 𝜑(𝑥, 𝑦)]


𝑦∈Г+ (𝑥)

Règle :
o Les marges totales et les marges libres sont nulles sur le chemin critique ;
o Marge totale  Marge libre pour toute.

Intérêt :
Les marges permettent de mesurer l’élasticité d’un projet, c’est-à-dire les marges de
manœuvre dont on dispose pour traiter certaines tâches.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 57


Cours de Théorie des Graphes et Combinatoire/ISTAG

4.5.5- Optimisation du projet à partir des coûts

4.5.5.1- Principe

Lorsque l’on associe à chaque tâche un coût variable en fonction de sa durée


de réalisation, l’optimisation du projet au moindre coût consiste alors à allonger ou à réduire la durée
de certaines tâches en trouvant le meilleur compromis entre les gains et les coûts supplémentaires.
L’amélioration du projet au moindre coût peut se faire :

Sans modifier la durée initiale (en ne retenant que les tâches non critiques) ;
Par allongement de la durée de réalisation ;
En réduisant la durée initiale.

4.5.5.2- Méthode

Il faut procéder par itérations successives :


Recenser les tâches pouvant être modifiées ;
Sélectionner celles qui offrent le meilleur résultat ;
Recommencer tant que des modifications sont encore possibles.

4.5.6 - Exemple d’application

4.5.6.1- Enoncé du problème

La société SIT met en œuvre un projet industriel nécessitant la réalisation de 10 tâches. On


dispose des informations dans le tableau 3 suivant :

Tableau 3 : Projet industriel de la société SIT

TACHES TACHES DUREE REDUCTION COUT


ANTERIEURES STANDARD EN JOURS SUPPLEMENTAI-
EN JOURS RE PAR JOUR
A E-G 15
B E 14
C B-E 12 4 1800
D G 14
E - 8
F A–G-I 10 5 1000
G E 7
H E-D 9 3 500
I B–G-J 5
J(1) G 9
(1) La tâche J doit commencer 3 jours après la fin de la tâche G

4.5.6.2- Dictionnaire des précédents et rangement de tâches par niveau

En examinant le tableau des données, il ressort que les tâches 𝐵, 𝐷, 𝐺 𝑒𝑡 𝐽 n’ont qu’une tâche
antérieure. Par contre, la tâche 𝐸 n’a pas de tâche antérieure.
Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 58
Cours de Théorie des Graphes et Combinatoire/ISTAG

Les tâches 𝐴, 𝐶, 𝐹, 𝐻, 𝐼 ont plusieurs tâches antérieures. Le problème qui se pose est de
déterminer pour ces tâches, la ou les tâches immédiatement antérieures. Il suffit pour cela d’isoler les
tâches qui n’ont qu’une tâche antérieure ou qui n’en n’ont pas. Pour les tâches qui ont plusieurs
tâches antérieures, nous allons déterminer le dictionnaire des précédents à partir des ascendants
en éliminant les contradictions : en effet, deux tâches qui sont immédiatement antérieures à une
même tâche ne peuvent pas être immédiatement antérieures l’une de l’autre. comme l’indique le
tableau ci-dessous.

TPE : L’étudiant établira dans le tableau 4 le dictionnaire des précédents à partir des ascendant,
et dans le tableau 5, il présentera le dictionnaire des précédents et les niveaux des tâches d’après
l’algorithme de recherche de niveau

Tableau 4 : Dictionnaire des précédents à partir des ascendants

Ascendants
𝐺 𝑒𝑠𝑡 𝑙𝑎 𝑠𝑒𝑢𝑙𝑒 𝑡â𝑐ℎ𝑒 𝑖𝑚𝑚é𝑑𝑖𝑎𝑡𝑒𝑚𝑒𝑛𝑡 𝑎𝑛𝑡é𝑟𝑖𝑒𝑢𝑟𝑒 à 𝐴 ← 𝐴 𝐸, 𝐺
𝐺 𝐸

Exemple : En observant les ascendants de A, on remarque que E est ascendant de G. On peut le


supprimer (supprimer E) car il n’est pas immédiatement antérieur à A.

Tableau 5 : Dictionnaire des précédents et niveau de chaque tâche.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 59


Cours de Théorie des Graphes et Combinatoire/ISTAG

4.5.6.3- Graphe MPM, temps minimum de réalisation du projet SIT et chemin critique
Pour construire tout réseau, il est important de savoir par quelles tâches commence et finit le
travail.
Les tâches de début d’un réseau sont celles qui n’ont pas de tâches antérieures. Ainsi, la tâche
𝐸 n’ayant pas de tâche antérieure est la tâche de début du réseau.
Les tâches de fin sont celles qui ne sont pas antérieures à d’autres tâches. Ainsi, les tâches 𝐶,
𝐹, 𝐻 sont des tâches de fin.
On construit le graphe 𝑀𝑃𝑀 en plaçant les sommets de gauche à droite en fonction de leur
niveau. Les sommets sont reliés entre eux en fonction des précédents. Le graphe partiel commençant
par la tâche 𝐸 sera au début du réseau et les tâches 𝐶, 𝐹, 𝐻 seront reliées à la tâche "𝐹𝑖𝑛".

TPE : L’étudiant représentera dans le graphique 3 le réseau 𝑴𝑷𝑴 du projet industriel de la


société SIT.

Graphique 3 : Graphe MPM du projet industriel de la S.I.T.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 60


Cours de Théorie des Graphes et Combinatoire/ISTAG

TPE : L’étudiant appliquera ensuite l’algorithme de recherche des dates de début au


plus tôt pour découvrir les tâches et le chemin critiques.

On a : 𝑇𝑜(𝐸) = 0 puisque 𝐸 est un sommet de niveau 0 et pour tout autre sommet quelconque 𝑧
d’un autre niveau, on écrira :
𝑇𝑜(𝑧) = max −
[𝑇𝑜(𝑦) + 𝜑(𝑦, 𝑧)]
𝑦∈Г (𝑧)

4.5.6.4- La marge totale et la marge libre de chaque tâche

- La marge libre de chaque tâche


On l’obtient à partir de la formule : 𝑀𝐿(𝑥) = min [𝑇𝑜(𝑦) − 𝑇𝑜(𝑥) − 𝜑(𝑥, 𝑦)]
𝑦∈Г+ (𝑥)
On a par exemple :
𝑀𝐿(𝐵) = 𝑀𝑖𝑛[𝑇𝑜(𝐶) − 𝑇𝑜(𝐵) − 𝜑(𝐵, 𝐶), 𝑇𝑜(𝐼) − 𝑇𝑜(𝐵) − 𝜑(𝐵, 𝐼)]
= 𝑀𝑖𝑛(22 − 8 − 14, 27 − 8 − 14) = 0
𝑀𝐿(𝐴) = 𝑇𝑜(𝐹) − 𝑇𝑜(𝐴) − 𝜑(𝐴, 𝐹) = 32 − 15 − 15 = 2

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 61


Cours de Théorie des Graphes et Combinatoire/ISTAG

- La marge totale de chaque tâche


Pour ce qui concerne les marges totales, on calcule d’abord les dates au plus tard des différentes tâches
selon l’algorithme indiqué plus haut : 𝑇𝑎(𝐹𝑖𝑛) = 𝑇𝑜(𝐹𝑖𝑛) et pour toute autre tâche "𝑦" autre que
"𝐹𝑖𝑛", on a :
𝑇𝑎(𝑦) = min +
[𝑇𝑎(𝑧) + 𝜑(𝑦, 𝑧)]
𝑧∈Г (𝑦)

TPE : L’étudiant appliquera ensuite l’algorithme de recherche des dates de au plus tard
afin de calculer la marge totale de chaque tâche

On peut dès lors calculer la marge totale de chaque tâche (voir tableau 5). On l’obtient à partir
de la formule : 𝑀𝑇(𝑥) = min +
[𝑇𝑎(𝑦) − 𝑇𝑜(𝑥) − 𝜑(𝑥, 𝑦)]
𝑦∈Г (𝑥)

On a par exemple :
𝑀𝑇(𝐵) = 𝑀𝑖𝑛[𝑇𝑎(𝐶) − 𝑇𝑜(𝐵) − 𝜑(𝐵, 𝐶), 𝑇𝑎(𝐼) − 𝑇𝑜(𝐵) − 𝜑(𝐵, 𝐼)]
= 𝑀𝑖𝑛(30 − 8 − 14, 27 − 8 − 14) = 5
𝑀𝑇(𝐴) = 𝑇𝑎(𝐹) − 𝑇𝑜(𝐴) − 𝜑(𝐴, 𝐹) = 32 − 15 − 15 = 2

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 62


Cours de Théorie des Graphes et Combinatoire/ISTAG

4.5.6.5- Le programme optimal sachant que la réduction du proje permet d’économise 1200 F
par jour.

Du tableau 3 nous obtenons le tableau 6 des tâches réductibles.

Tableau 6 : Tâches réductibles du projet industriel de la société SIT

TACHES REDUCTION EN COUT SUPPLEMENTAIRE PAR JOUR


REDUCTIBLES JOURS
𝐶 4 1800
𝐹 5 1000
𝐻 3 500

L’hypothèse dit que la réduction du projet permet d’économiser 1200 F par jour.
C’est dire l’amélioration du projet au moindre coût doit se faire ici en réduisant la durée initiale. Or
en réduisant la durée initiale, on agit d’abord sur les tâches critiques réductibles.
Parmi les tâches critiques réductibles, seul F appartient au chemin critique avec un coût
supplémentaire journalier de 1000F (inférieur à 1200 F). Il faut donc jouer sr la réduction de la tâche
F . De combien de jours sans quitter le chemin critique (la réduction totale possible de cette tâche
étant de 5 jours) ?

En observant le graphique 3, on constate qu’en réduisant la tâche 𝐹 de 3 jours, le chemin


critique n’est pas modifié : le coût supplémentaire est égal à 1000 F x 3 = 3000 F. En réduisant encore
un jour supplémentaire, il apparaît deux chemins critiques 𝐸 − 𝐺 − 𝐷 − 𝐻 et 𝐸 − 𝐺 − 𝐽 − 𝐼 − 𝐹.
D’où deux combinaisons possibles, 𝐹 ou 𝐹 et 𝐻 :

𝐹 : coût supplémentaire : 1000 F par jour (à retenir) ;


𝐹 et 𝐻 : coût supplémentaire : 1000 F + 500 F = 1500 F (> 1200 F) par jour
(à rejeter)

En conclusion, la durée optimale est de 42 – 3 – 1 = 42 – 4 = 38 jours. La réduction du projet


de 4 jours provoque un gain supplémentaire de
1200 F x 4 = 4800 F pour un coût supplémentaire de 1000 F x 4 = 4000 F. Cette optimisation fait
gagner à l’entreprise 4800 F- 4000 F = 800 F supplémentaires.

4.6- Ordonnancement PERT

4.6.1- Notion de base

Un réseau PERT est constitué par deux éléments fondamentaux qui sont les étapes et les tâches

4.6.1.1- définition d’une étape

Une « étape » est le commencement ou la fin d’une tâche, ce qui revient à dire qu’une étape
n’a pas de durée.
Une étape est symbolisée par un rond ou par un rectangle ou par un carré dans lequel on inscrit
un numéro.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 63


Cours de Théorie des Graphes et Combinatoire/ISTAG

4.6.1.2- Définition d’une tâche

On appelle « tâche » le 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 et un coût financier.
Dans un réseau PERT, une tâche est symbolisée par une flèche sur laquelle seront indiqués
l’action à effectuer et le temps probable de réalisation de cette tâche.
Pour alléger le réseau PERT, on attribue à chaque action une lettre alphabétique.

4.6.1.3- Représentation graphique des étapes et des tâches dans un


réseau PERT

Les tâches, suivant leur disposition dans un réseau, peuvent être successives, simultanées ou
convergentes.
- Les tâches sont successives lorsqu’elles se déroulent les unes après les autres, séparées par
des étapes.
- Les tâches sont simultanées lorsque plusieurs d’entre elles peuvent commenter en même
temps en partant d’une même étape.
- Les tâches sont convergentes lorsque plusieurs d’entre elles aboutissent à une même étape.
Le graphique 4 est un exemple de représentation graphique des tâches et étapes dans un réseau
PERT.

Graphique 4 : un exemple de représentation graphique des tâches et des étapes

4 𝐷2
𝐽2
2 5
𝐴4 𝐸3
(a)
𝑃3
𝐾1 8
𝐵2
4 𝐹3

1 3 𝐿3 𝑀2 10
6
𝐺2
𝐶3

𝑁4 9

4 𝐻4
7

- Pour que la tâche 𝐽 par exemple, commence, il faut que les tâches 𝐴, 𝐵, 𝐷, 𝐸.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 64


Cours de Théorie des Graphes et Combinatoire/ISTAG

- Les tâches convergentes sont : 𝐷 et 𝐸 ; 𝐽, 𝐾 et 𝐿 ; 𝐺 et 𝐻 ; 𝑃 et 𝑀 ; puis 𝐵 et (𝑎).

Remarque : La tâche (a) , matérialisée en trait pointillé, est une tâche fictive qui indique une
dépendance entre les tâches 𝐴 et 𝐵. En effet, on voit par exemple que la tâche 𝐹 ne peut commencer
que si la tâche 𝐵 est terminée. Si nous avons l’intention de ne commencer 𝐹 que si 𝐴 est aussi terminée,
la tâche (𝑎) dans le sens indiqué sur le graphe s’explique.

- Les tâches simultanées sont : 𝐴, 𝐵 et 𝐶 ; 𝐸, 𝐹 et 𝐺 ; 𝐿 et 𝑁. Nous ne considérons pas que D


et (a) sont simultanées car (a) n’est qu’une contrainte de liaison qui découle de la tâche A
qui, elle, est successive par rapport à D.
- Les temps portés au dessus des étapes 2, 3 et 4 par exemple sont respectivement 4, 4(car
le trait en pointillé indiquant une contrainte de liaison, signifie que la tâche A doit être
terminée pour que les tâches E, F et G puissent commencer : A est donc la tâche la plus
pénalisante) et 3
- La durée d’une tâche fictive est égale à 0.

4.6.2- Un exemple de projet et construction du réseau PERT

Reprenons l’exemple du projet industriel de la société SIT tel que présenté au paragraphe
3.5.6.1.

4.6.2.1- Tâches immédiatement antérieures et détermination des tâches de début et de fin du


projet

Dans le paragraphe 4.5.6.2., nous avons procédé à la détermination des tâches immédiatement
antérieures à chaque tâche et ranger les tâches par niveau. Au 4.5.6.3., nous avons déterminé les tâches
de début et de fin du projet. Tout cela reste valable ici.

4.6.2.2- Construction du réseau PERT

Nous placerons l’étape 1 de laquelle partira le graphe commençant par 𝐸. Nous raccorderons
les autres graphes partiels en osevant les tâches suivantes et les niveaux de ces tâches. Nous obtenons
alors le graphique 5 qui suit : (Travail à faire par l’étudiant)

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 65


Cours de Théorie des Graphes et Combinatoire/ISTAG

Graphique 5 : Graphe PERT du projet industriel de la S.I.T.

4.6.3- Résolution du réseau PERT

4.6.3.1- Calcul des dates au plus tôt

En commençant par les tâches sans conditions d’antériorité, on calcule pour chaque tâche la
date au plus tôt, c’est-à-dire la première date où nil sera possible de débuter la tâche. Les dates au
plus tôt sont associées aux sommets représentant les débuts des tâches.

Pour la tâche 𝐸, la date au plus tôt est 0, soit 0 jour après le début du projet. Pour la tâche 𝐺
par exemple, elle ne peut commencer avant l’achèvement de la tâche 𝐸 dont la durée est de 8 jours.
Sa date au plus tôt est donc 8 jours. La tâche 𝐺 ne peut donc démarrer avant le 8ième jour. Pour obtenir
la date au plus tôt d’une tâche, il faut comparer pour chaque tâche antérieure la somme :

𝒅𝒂𝒕𝒆 𝒂𝒖 𝒑𝒍𝒖𝒔 𝒕ô𝒕 𝒅𝒆 𝒍𝒂 𝒕â𝒄𝒉𝒆 + 𝒅𝒖𝒓é𝒆 𝒅𝒆 𝒍𝒂 𝒕â𝒄𝒉𝒆

La date au plus tôt est alors la plus grande de ces sommes. On la porte au-dessus de l’étape 𝑗
où le calcul est effectué en indiquant que cette durée provient de l’étape précédente.
On a donc : 𝑡𝑗 = max t + t
iX j
i ij


où 𝑋̅𝑗 est l’ensemble des sommets-origines des arcs incidents à 𝑗 intérieurement.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 66


Cours de Théorie des Graphes et Combinatoire/ISTAG

Cette procédure s’applique à partir de l’étape 1 pour laquelle 𝑡1 = 0. On obtient le graphe


suivant où sont indiquées les dates au plus tôt.
Par exemple pour l’étape 7, on a : 𝑡7 = max t i + ti 7 
 
i 3,6

= max(𝑡3 + 𝑡37 , 𝑡6 + 𝑡67 )


= max(15 + 15 , 27 + 5))
= max(30; 32) = 32 ← (6)
Pour l’étape 8, on a : 𝑡8 = max(𝑡4 + 𝑡48 , 𝑡5 + 𝑡58 , 𝑡7 + 𝑡78 )
= max(22 + 12 , 29 + 9, 32 + 10)
= max(34; 38; 42) = 42 ← (7)

La date au plus tôt du dernier sommet est la durée minimale de réalisation du projet.
Ainsi, nous savons maintenant que la réalisation de l’ouvrage demandera 42 jours.

4.6.3.2- Détermination du chemin critique (TPE)

4.6.3.3- Calcul des dates au plus tard et détermination des marges

➢ Dates au plus tard

Comme nous l’avons déjà dit, la date au plus tard d’une tâche est la dernière date possible
pour le début de cette tâche sans que cela implique un retard pour le projet.
Ainsi, la date au plus tard du dernier sommet est égale à sa date au plus tôt.

Pour obtenir la date au plus tard d’un sommet 𝑖, il faut comparer pour chaque tâche
postérieure la différence :
𝒅𝒂𝒕𝒆 𝒂𝒖 𝒑𝒍𝒖𝒔 𝒕𝒂𝒓𝒅 𝒅𝒆 𝒍𝒂 𝒕â𝒄𝒉𝒆 − 𝒅𝒖𝒓é𝒆 𝒅𝒆 𝒍𝒂 𝒕â𝒄𝒉𝒆

La date au plus tard est la plus petite de ces différences. Donc si nous appelons 𝑡𝑖′ la date au
plus tard d’un sommet 𝑖, on a :

min t − tij 


'
𝒕′𝒊 = j
jX i

où 𝑋̇𝑖 est l’ensemble des sommets-extrémités des arcs incidents à 𝑖 vers l’extérieur.
Cette procédure est appliquée à partir de l’événement terminal (dernière étape). Dans notre
exemple, 𝒕′𝟖 = 𝒕𝟖 = 𝟒𝟐.

➢ Les intervalles de flottement 𝒇𝒊

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 67


Cours de Théorie des Graphes et Combinatoire/ISTAG

Ils correspondent au retard permis dans l’atteinte d’une étape sans que la durée totale du projet
en soit affectée. Ces intervalles de flottement de la différence entre les dates de réalisation au plus tard
et au plus tôt :
𝒇𝒊 = 𝒕′𝒊 − 𝒕𝒊

Un événement (ou une étape) sera qualifié de critique s’il ne dispose d’aucun intervalle de
flottement, c’est-à-dire si son intervalle de flottement est nul.

➢ La marge libre de l’opération 𝒊𝒋

La marge libre de l’opération 𝑖𝑗 située entre l’événement 𝑖 et lévénement 𝑗 est donnée par
la formule :
𝑴𝑳𝒊𝒋 = 𝒕𝒋 − 𝒕𝒊 − 𝒕𝒊𝒋 où 𝑡𝑖𝑗 est la valeur de l’arc 𝑖𝑗, 𝑡𝑖 et 𝑡𝑗 les dates au
plus tôt des sommets 𝑖 et 𝑗 respectivement.

➢ La marge totale de l’opération 𝒊𝒋

La marge totale de l’opération 𝑖𝑗 située entre l’événement 𝑖 et lévénement 𝑗 est donnée par
la formule :

𝑴𝑻𝒊𝒋 = 𝒕′𝒋 − 𝒕𝒊 − 𝒕𝒊𝒋 où 𝑡𝑗′ est la date au plus tôt du sommet 𝑗 .

Elle représente le retard maximum sur le début d’une opération si l’on accepte de repousser
les opérations suivantes sans toutefois allonger la durée du projet.
En définitive, le réseau PERT de notre exemple se présente comme le graphique 8.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 68


Cours de Théorie des Graphes et Combinatoire/ISTAG

Problèmes et exercices
Problème 1
Exercice 1 :
Soit 𝐺 = (𝑋, 𝑈) un graphe non orienté

𝑎 𝑏 𝑐

𝑓
𝑑 𝑒
1-) Après avoir défini ce qu’est une chaîne eulérienne, déterminer toutes les chaînes eulériennes du
sommet 𝑎 au sommet 𝑓.
2-) Après avoir défini la distance du sommet 𝑎 au sommet 𝑓, déterminer cette distance.
3-) Déterminer le diamètre du graphe 𝐺.

Exercice 2 :
1-) Soit 𝐺 = (𝑋, 𝑈) un graphe orienté
a-) Qu’est-ce qu’un sous –graphe de 𝐺 ?
b-) Qu’est-ce qu’un graphe partiel de 𝐺 ?
2-) Quelle est la différence entre un chemin simple et un chemin élémentaire ?

Exercice 3:
Soit le graphe orienté 𝐺 = (𝑋, 𝑈) de la figure suivante :

𝑣1 𝑣2

𝑣3 𝑣4

𝑣5

1-) Déterminer les degrés internes et externes de chaque sommet ; puis, vérifier les relations qui
existent entre le nombre des arcs et les degrés des sommets.
2-) Y a-t-il des sources ou des puits ?
3-) Déterminer la matrice d’adjacence 𝑀 de ce graphe ; puis 𝑀2 et en déduire le nombre de chemins
de longueur 2 ou moins de 𝑣1 à 𝑣2 .
4-) Que dire de la connexité de ce graphe ?

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 69


Cours de Théorie des Graphes et Combinatoire/ISTAG

Problème 2

Exercice 1 :
On considère le graphe suivant :
2
3
2 6
15 5
7 7
8
1 3 9
3 3 9
3
7 13
20 5 8
7
4 7

1-) Calculer la distance minimale du nœud 1 au nœud 9.


2-) Trouver l’arbre minimale de ce graphe.

Exercice 2 :
Dans un centre de loisirs, parmi les nombreuses activités proposées figurent plusieurs jeux : la belote,
les dames, les échecs et le tarot notés respectivement 𝐵, 𝐷, 𝐸 et 𝑇. Pour de raisons de disponibilité et
d’affluence, certaines contraintes sont imposées :
- après une partie de belote, on peut jouer uniquement aux dames et aux échecs ;
- après une partie de dames ou d’échecs, on peut jouer uniquement à la belote ou au tarot ;
- après une partie de tarot, on doit changer de jeux.
1-) Dessiner une représentation du graphe orienté 𝐺 correspondant.
2-) Déterminer les degrés internes et externes de chaque sommet ; puis, vérifier les relations qui
existent entre le nombre des arcs et les degrés des sommets.
3-) Déterminer les chemins élémentaires de 𝐵 à 𝐷.
4-) Déterminer la matrice d’adjacence 𝑀 du graphe 𝐺.
5-) Calculer les matrices 𝑀 et 𝑀2 , et en déduire le nombre de circuits de longueur 3. Combien
y a-t-il de chemins d’origine 𝐵 et de longueur 3 ?
6-) Que dire de la connexité de ce graphe ?
7-) Peut-on dire que le graphe 𝐺 que vous avez construit est un graphe planaire et pourquoi ? Sinon
le rendre planaire.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 70


Cours de Théorie des Graphes et Combinatoire/ISTAG

Exercice 3 :
Le diagramme d’état d’une machine à état fini est représenté par le graphe suivant :

1-) Décrire tous les éléments de cette machine.


2-) Représenter la table d’états de cette machine.
3-) Déterminer la sortie si l’entrée est la chaîne 𝑊 = 𝑎𝑏𝑎𝑎𝑏𝑏𝑎𝑏𝑏𝑎𝑎𝑏𝑎𝑎.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 71


Cours de Théorie des Graphes et Combinatoire/ISTAG

Problème 3

Exercice 1 :
1-) Définir, en une phrase, chacune des expressions suivantes en réseau PERT : 𝒂) Etape ;
𝒃) Tâche ; 𝒄) Tâches de début ; 𝒅) Tâches de fin ; 𝒆) Tâches simultanées ; 𝒇) cul-de-sac ; 𝒈)
marge totale ; 𝒉) marge libre.
2-) Définir : 𝒂) Graphe planaire; 𝒃) chemin hamiltonien

Exercice 2 :
On considère le réseau de transport suivant où les arcs sont munis de capacités ( c ( x, y ) ) et
pour lequel une application  est donnée.
(8) (4)
1E 6 4 7
(5) (5) 4
5 5
(13)
5 (10) (3) 2 (6) 4 (15)
(6) 6 (2) 10
5
2 (10)
(15) (8) (6)
e 2 5 8 s
6 6 8
15 (3) (12)
(12) 0 8 (7) 0 (10)
(3) 1
8 (2) 2 (4) (6)
4 1 10
(2) (3)
3 6 9
2 2

N.B. les valeurs entre parenthèses sont les capacités des arcs. Par exemple : c ( e,1) = 13 et  ( e,1) = 5
1-) Montrer que les valeurs  ( x , y ) figurant sur les arcs forment un flot.
2-) Quelle est la valeur de ce flot ?
3-) Ce flot est-il compatible ?
4-) Montrer que ce flot n’est pas complet. Le modifier pour le rendre complet.
5-) Quelle est la valeur de ce nouveau flot ?

Exercice 3 :
On considère la matrice d’adjacence M d’un graphe orienté telle que :
0 1 1 0 0 
1 0 1 1 0 
 
M = 0 0 0 0 1 
 
0 0 1 1 0 
0 0 1 1 0 
1-) Dessiner le graphe correspondant.
2-) Déterminer les degrés internes et externes de chaque sommet ; puis, vérifier les relations qui
Existent entre le nombre des arcs et les degrés des sommets.
3-) Y a-t-il des sources ou des puits ?

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 72


Cours de Théorie des Graphes et Combinatoire/ISTAG

Exercice 4:
1-) Proposer deux représentations possibles pouvant permettre de décrire un graphe.
2-) Considérons le graphe ci-dessous.

x2

u1 u4
u2
x1 x3
u3

a-) Dans ce graphe, y a-t-il de sources ? y a-t-il de puits ?


b-) Proposer la matrice d’adjacence de ce graphe
c-) D’après vous, existe-t-il dans ce graphe un chemin hamiltonien et pourquoi ?
d-) D’après vous, existe-t-il dans ce graphe des chemins de longueur 4 ? Si non pourquoi ? Et si oui
déterminer le nombre de ces chemins.

Exercice 5:
Supposons que l’enregistrement de paie d’un employé soit organisé comme suit : 00
Employé, 01 Numéro, 01 Identité, 02 Nom, 02 Prénom, 01 Heures, 02 Normales,
02 Supplémentaires, 01 Taux.
1-) Tracer l’arborescence ordonnée correspondant.
2-) Quelles sont les données de groupe ? 3-) Quelles sont les données élémentaires ?

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 73


Cours de Théorie des Graphes et Combinatoire/ISTAG

Problème 4 :

Exercice 1 :
Soit le projet de réseau routier suivant :
- G = (X, U) le graphe du projet
- Les valeurs sur les arcs représentent un nombre maximal de véhicules à l’heure (capacité).

7
A B
6
5 10

8
10
S 4
C D P
2
1 3 6
8
4
E F

TAF. Trouver le débit horaire total maximal de véhicules susceptible de s’écouler entre les villes 𝑆 et
𝑃.

Exercice 2 :
Une entreprise a besoin de cinq techniciens pour réaliser cinq tâches. Chaque technicien doit réaliser une
seule tâche. La matrice des coûts de réalisation des tâches par les techniciens est donnée dans le tableau
suivant.
Tâche A Tâche B Tâche C Tâche D Tâche E
er
1 technicien 17 15 9 5 12
2eme technicien 16 16 10 5 10
eme
3 technicien 12 15 14 11 5
4eme technicien 4 8 14 17 13
eme
5 technicien 13 9 8 12 17

TAF : En appliquant la méthode hongroise, trouver l’affectation qui minimise le coût total de l’entreprise.

Exercice 3 :
Le projet de rénovation du séjour d’un appartement est donné dans le tableau suivant
Tâches A B C D E F G H I
Durée en jours 1 3 1 1 1 3 2 1 2
Antériorité - A A A B, D B, C B F, G E, H
On vous demande :

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 74


Cours de Théorie des Graphes et Combinatoire/ISTAG

1. De ranger les tâches par niveau


2. Faire une représentation graphique par un graphe MPM
3. Déterminer la solution optimale ainsi que le chemin critique.

Exercice 4:
Une entreprise désire réaliser 5 opérations différentes numérotées (𝑜1 , 𝑜2 , 𝑜3 , 𝑜4 , 𝑜5 ). Elle
dispose pour le faire de 5 techniciens numérotés(𝑡1 , 𝑡2 , 𝑡3 , 𝑡4 , 𝑡5 ) . Elle vous demande de lui
proposer une répartition des contrats qui lui permettrait de minimiser son coût total sachant que les
devis proposés par les techniciens (pour les différentes opérations) sont résumés dans le tableau
suivant :
𝑇𝑒𝑐ℎ𝑛𝑖𝑐𝑖𝑒𝑛𝑠
𝑡1 𝑡2 𝑡3 𝑡4 𝑡5
𝑜1 12 9 8 3 6
𝑜2 6 7 5 8 14
𝑇â𝑐ℎ𝑒𝑠 𝑜3 9 10 3 2 8
𝑜4 12 12 15 9 8
𝑜5 [ 6 7 8 14 2]

Exercice 5 :
Le projet de rénovation du séjour d’un appartement est donné dans le tableau suivant
Tâches A B N H D E M G F K C L R J
Temps (en heures) 3 4 3 2 2 2 4 4 3 2 3 5 2 2
Tâches antérieures E K, C G R, A, M J, - C - L ,G C - G J E
E

On vous demande de :
1. définir : tâches de début et tâches de fin.
2. dire quelles sont les tâches de début et celles de fin de ce projet ?
3. définir une étape et une tâche dans un réseau PERT,
4. construire le réseau PERT
5. calculer en combien de temps minimum le projet pourra être réalisé.
6. déterminer le chemin critique, la marge libre de chacune des tâches H, M et K.

Proposé par Honoré TEKAM OUMBE-Maître de Conférences /UDs/FSEG/Dept d’EDD Page 75

Vous aimerez peut-être aussi