TG Corrigee 2023-2024
TG Corrigee 2023-2024
TG Corrigee 2023-2024
ISP-UVIRA
L'objectif de ce cours est de donner les bases de la théorie des graphes : la méthodologie, les
problèmes et les modèles typiques, les principales techniques de résolution. Les étudiants
comprendront l’intérêt des graphes et découvrir leurs différents types.
Aussi, ce cours est de présenter à l’étudiant d’une part une de modélisation de solution sous
forme de graphe, d’autre part, ce cours contiendra un ensemble de techniques permettant à
l’étudiant de résoudre ses problèmes à travers des algorithmes comme : la recherche de
chemin minimal, le flot maximal, le chemin critique, les problèmes de transport,
d’affectation, les problèmes de voyageur, etc. Un étudiant maîtrisant les exercices de ce
cours sera capable de proposer une modélisation d'une grande part des problèmes des théories
des graphes rencontrés dans l'industrie, dans la vie sociale, dans l’entreprise, de proposer des
approches de résolution et d'en discuter les qualités respectives.
Chapitre 0 : INTRODUCTION
GRAPHIQUE
Chapitre 7 : APPLICATIONS
pour chaque notion développée afin de bien illuminer la matière. Dans les séances
d’exercices, les étudiants sont en face à des exercices qu’ils doivent résoudre.
La langue d’enseignement est le Français.
VIII) Mode d’évaluation
Les évaluations se feront en premier lieu par des travaux dirigés, des interrogations et
des travaux pratiques. L’ étudiant brillant aura droit à 2 points de plus pour chaque
intervention pertinente. La présence au cours est obligatoire et chaque présence vaut
un (1) point afin de constituer les travaux journaliers qui prendront 30 points et un
examen à notes fermées qui prendra à son tours 30 points.
IX) Prérequis
Etant une discipline de la Recherche Opérationnelle, le cours de la Théorie des
Graphes (TG) exige les prérequis en Initiation à la Recherche Opérationnelle, en
Mathématiques(calculs matriciels, notions des vecteurs), en Statistiques, en théorie des
ensembles et calcul des probabilités,….
X) Références bibliographiques
1) Didier Muller, Introduction à la théorie des graphes, Cahier N°6 du Cahier de la
CRM, 2012
2) Alain Bretto et ali, Elements de théories des graphies, 2 ème Edition revue et
augmentée, Lavoisier, Paris, 2018
3) Claude Berge, Graphes et hypergraphes, Bordas 1973, (300 pages).
4) Nguyen Huy Xuong, Mathématiques discrètes et informatique, Masson, 1997 Aimé
5) Sache, La théorie des graphes, Que-Sais-Je ?, 1974 ; réédition prévue en 2004 chez
6) Kaufmann, Des points des flèches, la théorie des graphes, Dunod, Sciencespoche,
épuisé.
7) Joel M. NZINSALO, Notes du Recherche Opérationnelle, Universite d’Abomey
Calavi, Benin
8) Luc Brun, Mathématiques pour l’informatique : éléménts de théorie des graphes,
Ensi-Caen.
9) Prof. OUSMANE THIARE, Théorie des graphes, SAT, 16 avril 2020
10) Israël DISASHI KABADI, Notes du Cours de la Théorie des Graphes, UPN, Inédit,
L1Math, 2022-2023
Chapitre 0. INTRODUCTION
Introduire une nouvelle matière n’est pas toujours chose plaisante car il s’agit souvent d’une
accumulation de dénitrions ! Et c’est hélas la situation rencontrée ici. Nous allons donc
agrémenter cette présentation, autant que faire se peut, d’exemples mettant en lumière
l’intérêt pratique de la théorie des graphes. Comme l’indique le titre de ce chapitre, nous nous
intéressons aux graphes et comme le lecteur va très vite s’en apercevoir, il en existe de
plusieurs types : simple, multi-graphe, digraphe, hypergraphe,...
La théorie des graphes constitue un très outil puissant pour schématiser les modèles des liens
et relations entre les objets. L’étude des graphes a commencé depuis le 18ème siècle par un
problème de curiosité mathématique lorsque Euler (1703-1783) a posé le célèbre problème
du pont de Königsberg (Kaliningrad).
Ces deux dernières décennies la théorie des graphes a suscité un intérêt exponentiel
essentiellement grâce à son rôle comme des modèles d’optimisation et de calculs explicites
nécessitant la conception et l’analyse de plusieurs algorithmes.
L’élaboration de ce cours est le fruit de la lecture de nombreux volumes (livres et cours)
récents traitant la théorie des graphes et les mathématiques discrètes. Ainsi on a eu la
conviction que la meilleure façon pour bien assimiler cette théorie est de commencer par les
graphes simples car à tout graphe orienté est associe un graphe non orienté en omettant les
orientations et par conséquence tout concept non orienté s’applique a` tout type de graphe et
on peut faire le passage entre les deux types. Ainsi, la maitrise des graphes simples facilitent
considérablement l’assimilation des graphes orientés et par suite le reste des chapitres.
La théorie des graphes est devenue un fondement théorique et pratique incontournable dans le
processus de modélisation de certains problèmes dans plusieurs domaines. L’apport des
graphes dans la résolution des problèmes réside dans la simplicité graphique, la similitude
avec des aspects distribués et les notions de parcours et de recherches de chemins. Une brique
de base dans la modélisation est le graphe. Les graphes apparaissent naturellement lorsqu'on
est confronté à un réseau (réseau de transport, réseau informatique, réseau d'eau ou de gaz,
etc.). Comment parcourir le réseau de manière optimale? C'est la question du voyageur de
commerce par exemple. Comment concevoir un réseau informatique robuste, tout en
minimisant le nombre de connexions?
0.1.Définition de la théorie des graphes
La Théorie des Graphes (TG) est la discipline mathématique et informatique qui étudie
les graphes, lesquels sont des modèles abstraits de dessins de réseaux reliant des objets.
Ces modèles sont constitués par la donnée de sommets (aussi appelés nœuds ou points, en
référence aux polyèdres), et d’arrêtes (aussi appelées liens ou lignes) entre sommets ; ces
Cours destiné aux étudiants de L1 Informatique de Gestion à l’ISP-Uvira.
Théorie des Graphes (2023-2024) Par Chef de Travaux AMANI MAISHA Page 5
arrêtes sont parfois non-symétriques( les graphes sont alors dit orientés) et sont
appelées des flèches ou d’arcs. La théorie des graphes est une discipline largement adressée
tant par la recherche que dans la formation en logistique et informatique.
0.2.Historique de la théorie des Graphes
L'histoire de la théorie des graphes débute avec les travaux d'Euler sur le problème devenu
célèbre des ponts de Königsberg (Sachs, 1988). Euler cherchait à déterminer s'il existait un
chemin empruntant les sept ponts Königsberg une seule fois. Pour résoudre son problème,
Euler n'a pas réellement tracé un graphe, mais il a théorisé le problème de la même façon en
nommant par une lettre les différentes terres séparées par les rivières et représenté les ponts
par des séquences de lettres (AB relie ainsi la terre A à la terre B).
0.3.Objectif de la théorie des graphes
L'objectif de la théorie des graphes est de résoudre des problèmes en simplifiant leur
représentation à une série de sommets et d’arêtes reliant ces sommets. La résolution du
problème peut alors être traitée de façon logique en opérant des algorithmes particuliers
cherchant à optimiser le graphe, ou à déterminer le plus court chemin, ou juste à caractériser
la structure du graphe. Un des problèmes les plus connus adressé par la théorie des graphes est
le problème du voyageur de commerce qui cherche à visiter un certain nombre de villes par le
chemin le plus court.
0.4. Domaines d’Application
En outre de son rôle éminent (remarquable) dans l’informatique, les mathématiques
appliquées (analyse numérique matricielle), la biologie, la physique (circuits électriques), la
chimie..., la théorie des graphes est devenue l’un des instruments les plus efficaces pour
résoudre de nombreux problèmes discrets que pose de nombreuses théories très utiles telles
que la recherche opérationnelle et l’économie. Autrement dit elle contribue à résoudre de
nombreux problèmes concrets de la vie courante.
Un graphe permet généralement de représenter la structure, les connexions d’un ensemble
complexe en exprimant les relations entre ses éléments: réseau de communication, réseaux
routiers, interaction de diverses espèces animales, circuits électriques,... Les graphes
constituent donc, une méthode de pensée qui permet de modéliser une grande variété de
problèmes en se ramenant à l’étude de sommets et d’arcs. Les derniers travaux en théorie des
graphes sont souvent effectués par des informaticiens, du fait de l’importance qu’y revêt
l’aspect algorithmique.
- etc.
1.1 Définition
1.1.1. Graphe
Soit G, une relation sur un ensemble X ; on pourra représenter le fait que deux éléments a, b
de X sont en relation par un arc de a vers b : a → b. Si a, b et b, a sont en relation, on aura
une ligne non orientée (appelée arête) a — b. Une relation sera donc représentée par un
ensemble d’arcs (ou d’arêtes) pouvant se succéder.
ordonnée (x1,...,xn) de sommets reliés par des arcs. La longueur du chemin est le nombre
d'arcs qu'il contient. Un circuit est un chemin (x1,...,xn) tel que x1 = xn.
La relation D définie sur X = {1, 2, 3, 6, 12} telle que: ∀x, y ∈ X, D(x, y) ssi x divise y peut
être représentée par :
1.2.10. Digraphe
Un Digraphe ou « graphe orienté » est un graphe dont les arrêtes sont orientées et dont le
couple est défini comme suit ! (Départ, Arrivée). Par conséquence, le couple (x, y) est
différent du couple (y, x) puisque leur orientation est différente.
1.2.11. Graphe non orienté
En théorie des graphes, un graphe non orienté G=(V,E) est un couple formé de V un
ensemble de sommets et E un ensemble d'arêtes, chaque arête étant une paire de sommets.
Cette définition ne s'applique qu'aux graphes simples et n'est pas valable pour
les multigraphes.
Autrement dit, on appelle degré du somme v, et on note par d(v), le nombre d’arrêtes
incidentes à ce sommet.
NB : Il existe :
- Chaîne simple est une chaîne qui n’utilise pas deux fois la même arête.
- Chaîne eulérienne est une chaîne simple passant par toutes les arêtes d’un graphe.
- Chaîne hamiltonienne est une chaîne simple passant par tous les sommets d’un
graphe une et une seule fois.
1.4.2. Cycle
Un cycle est une chaîne simple se fermant sur elle-même. C’est donc une chaîne qui revient à
son point de départ. Dans le cas des graphes non orientés, un circuit est un cycle et un chemin
est une chaîne.
NB : Dans un graphe non orienté, un cycle est une suite d'arêtes consécutives distinctes
(chaine simple) dont les deux sommets extrémités sont identiques. Dans les graphes orientés,
la notion équivalente est celle de circuit, même si on parle parfois aussi de cycle (par exemple
dans l'expression graphe acyclique orienté).
NB : Il existe généralement :
- Un cycle hamiltonien est un cycle simple passant par tous les sommets d’un graphe
une et une seule fois.
- Un cycle élémentaire est un cycle ne passant pas deux fois par le même sommet,
sauf que le sommet final coïncide toujours avec le sommet de départ.
- Cycle eulérien : cycle simple passant par toutes les arêtes d’un graphe une et une
seule fois.
1.4.3. Une boucle
Une boucle est une ligne orientée qui revient à son sommet de départ.
Arborescence Arbre
1.4.8. Digraphe
Un Digraphe ou « graphe orienté » est un graphe dont les arrêtes sont orientées et dont le
couple est défini comme suit ! (Départ, Arrivée). Par conséquence, le couple (x, y) est
différent du couple (y, x) puisque leur orientation est différente.
1.4.9. Graphe non orienté
En théorie des graphes, un graphe non orienté G=(V,E) est un couple formé de V un
ensemble de sommets et E un ensemble d'arêtes, chaque arête étant une paire de sommets.
Cette définition ne s'applique qu'aux graphes simples et n'est pas valable pour
les multigraphes.
Autrement dit, on appelle degré du somme v, et on note par d(v), le nombre d’arrêtes
incidentes à ce sommet.
NB : Il existe :
- Chaîne simple est une chaîne qui n’utilise pas deux fois la même arête.
- Chaîne eulérienne est une chaîne simple passant par toutes les arêtes d’un graphe.
- Chaîne hamiltonienne est une chaîne simple passant par tous les sommets d’un graphe
une et une seule fois.
1.6.2. Cycle
Un cycle est une chaîne simple se fermant sur elle-même. C’est donc une chaîne qui revient à
son point de départ. Dans le cas des graphes non orientés, un circuit est un cycle et un chemin
est une chaîne.
NB : Dans un graphe non orienté, un cycle est une suite d'arêtes consécutives distinctes
(chaine simple) dont les deux sommets extrémités sont identiques. Dans les graphes orientés,
la notion équivalente est celle de circuit, même si on parle parfois aussi de cycle (par exemple
dans l'expression graphe acyclique orienté).
NB : Il existe généralement :
- Un cycle hamiltonien est un cycle simple passant par tous les sommets d’un graphe une
et une seule fois.
- Un cycle élémentaire est un cycle ne passant pas deux fois par le même sommet, sauf que
le sommet final coïncide toujours avec le sommet de départ.
- Cycle eulérien : cycle simple passant par toutes les arêtes d’un graphe une et une seule
fois.
1.6.3. Une boucle
Une boucle est une ligne orientée qui revient à son sommet de départ.
Un arbre est un graphe non orienté d’un seul tenant et sans cycle tel que pour aller d’un
sommet à un autre sommet du graphe, il existe toujours une chaîne.
Arborescence Arbre
Un graphe hamiltonien ne doit pas être confondu avec un graphe eulérien, où l'on passe par
toutes les arêtes une fois et une seule : dans un cycle hamiltonien, on peut très bien négliger
de passer par certaines arêtes. Un graphe peut être eulérien, hamiltonien, les deux à la fois, ou
aucun des deux : le graphe papillon est un exemple de graphe eulérien mais pas hamiltonien.
Il est légitime de s’intéresser à la manière de représenter les graphes au sein d’un ordinateur,
puisque l’essor de la théorie des graphes est dû essentiellement à l’avènement de puissants
calculateurs. Plusieurs modes de représentation peuvent être envisagés selon la nature des
traitements que l’on souhaite appliquer au graphe considéré.
On peut représenter un graphe de diverses façons, entre autres par :
- une représentation sagittale (par flèche) ;
- une énumération de tous les sommets et arcs qui le composent ;
- des dictionnaires ou tableaux à simple entrée ;
- des matrices appropriées : matrice d’adjacence, matrice d’incidence sommets – arcs,
matrice aux arcs ;
- une grille.
Gr1
2.3. Représentation d’un graphe sous forme de méthode énumérative des sommets et
arcs
Grap. A
Les termes non nuls de la diagonale principale représentent des boucles. La matrice
d’adjacence d’un graphe non orienté est une matrice symétrique.
Si dans la matrice d’adjacence ci-dessus on remplace les « 1 » par les arcs concernés, on
obtient une matrice dite « matrice aux arcs ».
sommets du graphe et p est le nombre de liens (arêtes ou arcs). Cette matrice est définie de
deux façons différentes selon que le graphe est orienté ou non orienté. Si le graphe est orienté,
la matrice est appelée « matrice d'incidence sommets-arcs1 » ; le coefficient de la matrice
d'incidence en ligne i et en colonne j vaut:
On remarque que chaque colonne a une somme égale à 2, puisque chaque arête a deux
extrémités.
La matrice d’incidence sommets-arcs A d’un graphe G = (X, U) est une matrice à m lignes et
n colonnes telle que si u(i, j) est un arc de U, la colonne u vaut 0 partout sauf en :
Ici, les lignes représentent les sommets et les colonnes les arcs. Pour le graphe 1.24 ci-
dessous, la matrice d’incidence sommets-arcs est :
Remarques :
• Chaque colonne comporte exactement 1 terme égal à 1 (dans la ligne du sommet initial
de l’arc) et un terme égal à –1 (dans la ligne du sommet terminal) ; les autres termes de la
colonne étant tous nuls ;
• La somme de chaque colonne est égale à 0 (un arc a une origine et une destination) ;
• La matrice est totalement uni modulaire i.e., toutes les sous-matrices carrées extraites
de la matrice ont pour déterminant +1, –1 ou 0.
2.4. Chemins dans un Graphes
2. 4.1. Définition et 1er exemple
Il s’agit de chercher le ou les chemins de longueur extrémale (minimum ou maximum) partant
du sommet n°1 et aboutissant à un sommet donné. Un chemin est une séquence finie et
alternée de sommets et d’arcs, débutant et finissant par des sommets, telle que chaque arc est
sortant d’un sommet et incident au sommet suivant dans la séquence.
Soit G = (X, U) un graphe orienté donné que nous supposons sans circuit. Les arcs du
graphe sont de plus valués. Un chemin µ permettant d’aller d’un sommet x du graphe à un
autre sommet xh est optimal si la somme des valeurs l(xi, xj) valuant chaque arc xixj = µh est
soit minimale, soit maximale. Dans le premier cas, l’optimum est un minimum, dans le
second, un maximum, la valeur extrémale étant :
Dans ce cours, il a été plus commode d’utiliser l’algorithme de Bellman -Ford qui procède
par des marquages progressifs des sommets du graphe, de la manière suivante :
Exemple
Soit un réseau de villes A, B, C…G et des routes les reliant entre elles. Un voyageur veut
se rendre de la ville A vers la ville G. Trouver le chemin qu’il peut parcourir afin de
minimiser la distance.
- Chaîne simple est une chaîne qui n’utilise pas deux fois la même arête.
- Chaîne eulérienne est une chaîne simple passant par toutes les arêtes d’un
graphe.
- Chaîne hamiltonienne est une chaîne simple passant par tous les sommets d’un
graphe une et une seule fois.
c) Cycle :Un cycle est une chaîne simple se fermant sur elle-même. C’est donc une
chaîne qui revient à son point de départ. Dans le cas des graphes non orientés, un
circuit est un cycle et un chemin est une chaîne.
- Un cycle hamiltonien est un cycle simple passant par tous les sommets d’un graphe
une et une seule fois.
- Un cycle élémentaire est un cycle ne passant pas deux fois par le même sommet, sauf
que le sommet final coïncide toujours avec le sommet de départ.
- Cycle eulérien : cycle simple passant par toutes les arêtes d’un graphe une et une
seule fois.
d) Arborescence et arbre
Une arborescence est un graphe orienté d’un seul tenant et sans circuit tel que, pour tout
couple de sommets de ce graphe, il existe toujours un autre sommet, origine d’un chemin
conduisant aux premiers sommets. L’origine de l’arborescence est appelée «centre» ou
«racine». Un arbre est un graphe non orienté d’un seul tenant et sans cycle tel que pour aller
d’un sommet à un autre sommet du graphe, il existe toujours une chaîne.
Le problème est de trouver le ou les chemins allant d’un sommet S 0 appelé « source » ou
« entrée » à un autre sommet S0 appelé « destination » ou « sortie » tel que la valeur totale
partant de F et en regardant quel est le sommet précédent qui a permis d'obtenir m(F), et ainsi
de suite jusqu'à revenir en D.
Pour un chemin de valeur minimale, il suffit de remplacer "max" par "min" dans l'algorithme.
D’où l’algorithme devient alors :
m(D) = 0
m(x) = min [m(y) + V(y,x)] , le min étant pris sur tous les précédentsy de x
Exemple :
Trouver les chemins des valeurs maximales et minimales des graphes ci-après :
à acheminer, d’un lieu vers un autre, des flux de marchandises donnés, alors que les voies de
communications ont des capacités limitées. Soulignons que les problèmes de transport ne sont
pas les seuls à recevoir une solution par les méthodes qui seront exposées dans ce chapitre.
Ainsi en est-il des problèmes de « transfèrement », par exemple les problèmes d’affectation
abordés au chapitre 5. En outre, un problème de flot se transforme très rapidement en un
problème de coût minimal.
La formulation du problème de flot maximal demande tout d’abord de définir les deux notions
suivantes : réseau de transport et flot sur un graphe.
On appelle réseau un graphe fortement connexe, sans boucle et ayant plus d’un sommet. On
appelle nœud d’un réseau un sommet qui a plus de deux arcs incidents. Les autres sommets
sont appelés anti-nœuds. On appelle boucle tout chemin pour lequel seuls les premiers et
derniers sommets des nœuds.
On appelle « réseau de transport » un graphe fini G sans boucles, où à chaque arc (i,j) est
associé un nombre C(i, j) 0, appelé « capacité de l’arc ij » et où :
Il existe un sommet x0 et un seul tel que -1 x0 : ce sommet x0 est appelé l’entrée du
réseau;
La principale question qui se pose pour un réseau de transport donné est de déterminer un flot
de valeur maximale ainsi que les flots le long de chaque arc. Il arrive fréquemment également
que l’on doit considérer des réseaux avec des capacités localisées non seulement sur les arêtes
mais également sur les sommets.
C’est notamment le cas pour les réseaux téléphoniques dans lesquels la limite de capacité est
autant due aux lignes qu’aux centraux. On peut ramener facilement ce problème au précédent
: il suffit de dédoubler chaque sommet en une entrée et une sortie liées par un arc ayant pour
capacité celle qu’on attribuait précédemment au sommet. On peut, de plus, se donner un coût
de transport d’une unité de flot sur chaque arc et chercher le flot maximal de coût minimal.
Un flot du réseau est une quantité (i, j) associée à chaque arc (i, j) du réseau tel que :
(4.1)
(4.2)
(4.3)
La relation (4.2) établit que pour tout sommet x, la somme algébrique des flux entrant dans x
est égale à la somme algébrique des flux sortants. Cette égalité est dite équation de nœud par
analogie aux modèles physiques et aux lois de Kirchhoff1 en électricité.
Soit x0 l’afflux au point x0 ou la « valeur du flot x0 ». Le problème devient alors de chercher
un flot maximal dans un réseau, c’est-à-dire de trouver dans le réseau de transport G un flot
x0 satisfaisant aux contraintes 0 (i, j) C(i, j) et rendant maximal l’afflux au sommet x0.
Ceci correspond au problème de programmation suivant :
(4.4)
(4.5)
Nous définissons dans un premier temps les concepts « saturé » et « complet », puis
développons les différentes étapes de l’algorithme.
A partir des résultats précédents, on peut s’intéresser maintenant à une méthode constructive
de recherche d’un flot maximal.
Un chemin est dit saturé si au moins un des arcs qui le composent est saturé.
Un flot est dit complet s’il n’y a plus sur le graphe de chemin de x0 à xn non saturé.
1
Il s’agit en particulier de la première loi de Kirchoff
Cours destiné aux étudiants de L1 Informatique de Gestion à l’ISP-Uvira.
Théorie des Graphes (2023-2024) Par Chef de Travaux AMANI MAISHA Page 31
Dans l’étape initiale, il s’agira éventuellement d’un flot nul. Les étapes de cet algorithme sont
les suivantes :
Rappelons qu’un flot est dit complet si et seulement si tous les chemins du graphe sont
saturés. Les chemins non saturés, s’il en existe, peuvent être saturés en ajoutant au flot de
chacun de ses arcs la quantité d avec :
En d’autres termes, il y a une chaîne de x0 à xn, si on peut aller de x0 à xn en suivant les arcs
dans les sens des flèches ou en sens inverse.
si, parmi tous les arcs parcourus dans le sens des flèches, il y en a au moins un pour lequel
(xi,xi+1) = C(xi, xi+1) (4.10)
ou si, parmi tous les arcs parcourus en sens inverse des flèches, il y en a au moins un pour
lequel (xi+1, xi) = 0 (4.11)
On obtient un flot maximal lorsque toutes les chaînes sont saturées. Lorsqu’une chaîne n’est
pas saturée, on peut toujours l’améliorer en augmentant de d le flot sur les arcs de A + et en le
diminuant de d sur les arcs de A- avec :
- A+ = l’ensemble des arcs parcourus dans le sens des flèches sur la chaîne non
saturée trouvée ;
- A- = l’ensemble des arcs parcourus dans le sens inverse des flèches sur la même
chaîne.
Une application intéressante de la théorie des graphes est la représentation et la résolution des
problèmes de « circulation ». Considérons par exemple le schéma ci-dessous qui représente
l’ensemble des liaisons routières permettant de nous rendre de la localité E vers la localité S.
Notons que chacune de ces liaisons est à sens unique.
- aux intersections de routes (tous les autres sommets qui seront appelés « nœuds de transit ».
Les arcs correspondent aux liaisons routières et sont orientés dans le même sens.
Le problème à résoudre est de déterminer le flux maximum de voitures qui peuvent se rendre
de E à S. Par flux, il faut entendre un certain nombre de véhicules par heure. On raisonnera
Cours destiné aux étudiants de L1 Informatique de Gestion à l’ISP-Uvira.
Théorie des Graphes (2023-2024) Par Chef de Travaux AMANI MAISHA Page 33
par la suite en régime stationnaire (débit constant), en supposant qu’il ne se forme de file
d’attente en aucun point du réseau. Associons à chaque arc (i, j) un nombre C(i, j) qui est la
capacité de l’arc joignant le sommet i au sommet j. Ce nombre est le nombre maximum de
véhicules que chaque route peut faire passer chaque heure, celui-ci est fonction de la largeur
de la route, de la vitesse maximale autorisée, du caractère plus ou moins accidenté, etc.
Associons également à chaque arc (i, j) un nombre (i, j) appelé flot sur l’arc (i, j). C’est la
circulation réelle sur chaque route. Les capacités sont données par les nombres encerclés du
graphe 3.2 (en milliers de véhicules par heure). Les nombres non encadrés portés sur les arcs
se rapportent au flot sur chaque arc. Nous faisons l’hypothèse que le flux de véhicules (flot)
est constant le long de chaque arc (aucun ne s’arrête en route) et à chaque nœud de transit, il
arrive autant de véhicules qu’il en repart (principe de la conservation du flot). Sur le graphe,
les nombres non encadrés sur les arcs respectent ces conditions.
Un flux de 6.000 véhicules par heure entre E et S est donc compatible avec la capacité des
routes (6 = 2 + 3 + 1 flux partant de E = 4 + 2 = flux arrivant en S). Le flot sur chaque arc
doit respecter la contrainte de capacité (4.4).
Pour trouver un flot complet sur le graphe ci-haut, on cherche un chemin non saturé de E à S.
Reprenons le graphe ci-haut où l’on reporte le flot de départ en marquant les arcs saturés. On
a:
Le chemin (E, 4, S) est non saturé. Pour le saturer, on ajoute au flot de chacun de ses arcs la
quantité Min [C(i, j) – (i, j)]. Sur le graphe, c’est l’arc (E, 4) sur le chemin non saturé qui
nous donne la capacité résiduelle minimum qui est égale à C(E, 4) – (E, 4) = 2 – 1 = 1. En
l’ajoutant au flot de chaque arc du chemin non saturé (E, 4, S), on obtient le nouveau flot du
graphe qui donne aussi les arcs saturés.
Ce flot est complet car il n’existe aucun chemin non saturé de E à S. Mais ce flot n’est pas
nécessairement maximum. En effet, sur le graphe du graphe ci-haut, la chaîne (E, 2, 1, 3, 4,
S) n’est pas saturée. Sur cette chaîne non saturée, la capacité résiduelle minimale sur les arcs
de A+ est 4 – 3 = 1. Le flot minimal sur les arcs de A- est 1. On modifie donc le flot selon les
règles énoncées plus haut (augmenter de d = min [d1, d2] le flot sur les arcs de A+ et le
diminuer de d sur les arcs de A- ). On obtient alors le graphe ci-après :
Sur cette dernière figure, il existe encore une chaîne non saturée de E à S. C’est la chaîne (E,
1, 3, 4, S). La valeur de d sur cette chaîne est égale à 2. On obtient ainsi le flot du graphe ci-
après :
Puisque toutes les chaînes de ce graphe sont maintenant saturées, le flot ainsi obtenu est
maximal, avec (S) = 10.
Origine
Aketi 150 100 50 - 200
Bumba 150 150 50 50 350
Kikwit 100 100 200 400
Manterne 200 100 200
Demande 300 400 200 200
On demande de définir les quantités à transporter de chaque origine vers chaque destination
de façon à satisfaire au maximum la demande des usines de traitement.
Solution
On construit un graphe dont les sommets correspondent aux centres d’origine et aux usines de
traitement, les arcs représentant les différentes possibilités de transport avec les capacités
disponibles. Les sommets correspondant aux centres origine sont reliés au sommet d’entrée E
par un arc dont la capacité est égale au stock disponible. Les sommets correspondant aux
usines de traitement sont reliés au sommet de sortie S par un arc dont la capacité est égale à la
demande. Il conviendra de rendre maximale la valeur de (S) indiquant la demande satisfaite.
Première étape : Détermination d’un flot au jugé.
Il est proposé ci-après un flot qu’il faudra par la suite optimiser. Les valeurs en gras sont les
flots.
On vérifie si le flot du graphe, égal à 900 tonnes, est complet. Rappelons qu’un flot est dit
complet si tous les chemins du graphe de E a S sont saturés, c’est-à-dire ont un arc au moins
pour lequel la capacité, C(i, j), est égale au flot (i, j). On constate que les chemins E, K, U, S
et E, M, U, S ne sont pas saturés. Donc le flot du graphe n’est pas complet. Considérons le
premier chemin non saturé E, K, U, S. La capacité résiduelle minimale est 200 – 150 = 50. En
augmentant le flot de cette quantité sur chacun des arcs du chemin, le flot passe à 950. Ce flot
est maintenant complet car l’arc (U, S) est devenu saturé (le deuxième chemin empruntant le
même arc l’est devenu aussi).
Bien que complet, le flot obtenu n’est pas maximal car la chaîne E, M, T, A, L, S est non
saturé. On calcule alors d = min {d1, d2} par la formule (4.12) ; ce d étant égal à 50, on ajoute
cette quantité au flot des arcs parcourus dans le bon sens et on la retranche au flot des arcs
parcourus en sens inverse. D’où le graphe sur lequel toutes les chaînes de E à S sont à présent
saturées. Ce flot est alors égal à 1000 tonnes.
4.2.Objectif
L’objectif visé est de permettre au projet d’atteindre ses objectifs de délai, de coûts et de
performances. Pour définir un problème d’ordonnancement, il faut :
- décomposer le projet en tâches élémentaires ;
- préciser les contraintes qui s’opposent à ce que les tâches soient exécutées
arbitrairement.
Une telle méthode doit donc permettre :
- d’analyser le projet en profondeur, c’est-à-dire le décomposer en tâches ;
- de mettre sur pied un plan d’action contribuant à réaliser ledit projet tout en
respectant les contraintes, c’est-à-dire de déterminer le meilleur temps nécessaire à la
réalisation de l’ensemble de l’ouvrage entrepris ;
- et enfin, de contrôler le bon déroulement du projet, c’est-à-dire de localiser les tâches
ou les étapes-critiques ou celles qui ne peuvent être ni retardées, ni ralenties, sans que
la fin des travaux soit décalée du temps correspondant.
4.3.Les Méthodes d’ordonnancement
Les techniques modernes d’ordonnancement de projet remontent à la fin des années 50. Il
s’agit d’un ensemble de méthodes qui permettent au responsable du projet de prendre des
décisions nécessaires dans de meilleures conditions possibles. Parmi les méthodes
d’ordonnancement existantes, on distingue :
- Les méthodes de type diagramme de GANTT (ou diagramme à barres) ; -
- Aux USA,
la méthode CPM (Critical Path Method) développée en 1956-57 par la société
du Pont et Remington Rand Univac, dans le cadre de la gestion de projets de
construction et de maintenance ;
Exemple : Les opérations mises en jeu dans la construction d'un ensemble hydro-
électrique sont lessuivantes :
Deux méthodes sont classiquement utilisées : la Méthode des Potentiels Metra (MPM),
et la méthode PERT (Programm Evaluation and Research Task). Toutes les deux
utilisent des graphes pour résoudre le problème.
4.4.1. Par la Méthode Française : Méthode des Potentiels Metra (MPM)
a) Notions
Cette méthode, appelée aussi méthode des potentiels-tâches, fait appel à une représentation
diamétralement opposée à celle de PERT. En effet, les tâches sont maintenant identifiées par
les sommets (non plus par des arcs), les arcs correspondant pour leur part aux conditions
d’antériorité entre les tâches. De plus, les arcs sont valués chacun par un nombre donnant la
durée minimale devant s’écouler entre le début de la tâche représentée par l’extrémité initiale
et celui de la tâche placée à l’extrémité terminale. La formalisation du projet est également
plus souple : si de nouvelles tâches ou de nouvelles contraintes doivent être introduites, il est
très facile de les ajouter. Dans la méthode PERT, cela nécessiterait la construction d’une
partie du graphe.
b) Construction du graphe
1) un sommet correspond à une tâche
2) un arc définit une relation d'antériorité
3) la valeur de l'arc définit le temps minimum séparant deux tâches successives.
4) Chaque sommet de la représentation graphique est figuré par un rectangle :
Tx T*x
X
où :
x = nom de la tâche,
Tx = date de début au plus tôt de la tâche
T*x = date de début au plus tard de la tâche.
5) Un sommet terminal permettant de dater la fin des travaux est rajouté au graphe.
6) La représentation graphique est ordonnée par niveaux des sommets, c.à.d. des
tâches.
Exemple:
Ta = Tc = Td = 0Tb = Ta + 4 = 4
Tg = Ta + 4 = 4
Tf = Max (Tb + 6 ; Tc + 4) = Max (10 ; 4) = 10
Te = Max (Tb + 6 ; Tc + 4 ; Td + 12 ) = Max
(10 ; 4 ; 12) = 12Th = Max (Te + 10 ; Tg + 7)
= Max (22 ; 11) = 22
Ti = Max (Tf + 24 ; Th + 10) =
Max (34 ; 32) = 34Tz = Ti + 3 =
37
Ces résultats peuvent être reportés sur le graphe
C'est le retard maximum que l'on peut prendre dans la mise en route d'une tâche
sans remettre encause les dates au plus tard des tâches suivantes (donc sans
retarder la fin des travaux).
mt(x) = T*x - Tx
Exemple :
mt(a) = T*a - Ta = 0 - 0 = 0
mt(b) = T*b - Tb = 4 - 4 = 0
mt(c) = T*c - Tc = 6 - 0 = 6
mt(d) = T*d - Td = 2 - 0 = 2
mt(e) = T*e - Te = 14 - 12 = 2
mt(f) = T*f - Tf = 10 - 10 = 0
mt(g) = T*g - Tg = 17 - 4 = 13
mt(h) = T*h - Th = 24 - 22 = 2
mt(i) = T*i - Ti = 34 - 34 = 0
Marges libres
C'est le retard maximum que l'on peut prendre dans la mise en route d'une tâche
sans remettre encause les dates au plus tôt des tâches suivantes (donc sans retarder
la fin des travaux).
mL(x) = min [Ty - Tx - V(x,y)] , le min étant pris sur les suivants y de x.
Exemple :
mL(a) = Min [Tb - Ta - V(a,b) ; Tg - Ta -
V(a,b)] = Min (0 ; 0) = 0
mL(b) = Min [Tf - Tb - V(b,f) ; Te - Tb -
V(b,e)] = Min (0 ; 2) = 0
mL(c) = Min [Tf - Tc - V(c,f) ; Te - Tc -
V(c,e)] = Min (6 ; 8) = 6
mL(d) = Te - Td - V(d,e) = 0
mL(e) = Th - Te - V(e,h) = 0
mL(f) = Ti - Tf - V(f,i) = 0
mL(g) = Th - Tg - V(g,h) = 11
mL(h) = Ti - Th - V(h,i) = 2
mL(i) = Tz - Ti - V(i,z) = 0
a) Signification
La méthode P E R T « Program Evaluation and Review Technic » a été mise au point aux U S
A en 1958 pour la surveillance des délais de réalisation des fusées Polaris. Cette fabrication
nécessitait l’intervention de 250 fournisseurs et 9000 sous-traitants. En français, cela signifie
Technique d’évaluation et de mise à jour de programmes. Elle très utilisée dans les domaines
technique, administratif et commercial.
b) Définition
Le PERT (Programm of Evaluation and Review Technic) est, comme la MPM, une
technique d'ordonnancement basée sur la théorie des graphes, visant à optimiser la
planification des tâches d'un projet. Le P.E.R.T. est une méthode consistant à mettre en ordre
sous forme de réseaux plusieurs tâches qui grâce à leur dépendance et à leur chronologie
concourent toutes à l’obtention d’un produit fini. Cette technique aurait été conçue sous
l'appellation initiale de méthode CPM (Critical Method Path) par la marine américaine, en
1958, pour coordonner les tâches des milliers d'entreprises impliquées dans son projet
"Polaris" (programme de développement de missiles à ogive nucléaire). Compte tenu de son
efficacité (elle aurait permis de réduire de 14 à 7 ans la durée globale de réalisation du projet
Polaris) elle s'est rapidement imposée dans les organisations, gouvernementales ou non, ayant
à gérer des projets importants (programme Apollo de la NASA, construction d'autoroute,
etc.) au détriment du diagramme de Gantt. L'utilisation du PERT permet, notamment, de
déterminer la durée minimum nécessaire pour mener à bien un projet et les dates auxquelles
peuvent ou doivent débuter les différentes tâches nécessaires à sa réalisation pour que cette
durée minimum soit respectée.
c) Objectifs
•Ordonner dans le temps un nombre élevé d’opérations
• Réaliser l’ensemble des opérations dans le temps le plus bref
• Contrôler l’avancement des travaux.
d) Symboles
Le PERT permet de représenter l'ensemble des tâches sur un graphe orienté, à partir duquel il
sera possible d'identifier leurs dates au plus tôt et au plus tard et de calculer leurs marges. Un
graphe orienté est un réseau composé d'une entrée et d'une sortie, ainsi que de points (appelés
"sommets") reliés entre eux par des flèches (appelées "arcs").
Les principales conventions d'un réseau PERT sont les suivantes :
- chaque tâche est symbolisée par un arc, auquel est associé une valeur numérique
correspondant à sa durée.
- les sommets auxquels aboutissent les arcs correspondent donc à des étapes, qui
marquent l'aboutissement d'une ou plusieurs tâches.
- chaque étape est identifiée par un numéro d'ordre et renseignée sur la date à
laquelle elle peut être atteinte au plus tôt ("date au plus tôt") et au plus tard
("date au plus tard") pour respecter le délai optimal de réalisation du projet.
- le graphe possède une entrée (sommet sans antécédent) et une sortie (sommet
sans descendant) qui correspondent respectivement aux étapes "Début des
Cours destiné aux étudiants de L1 Informatique de Gestion à l’ISP-Uvira.
Théorie des Graphes (2023-2024) Par Chef de Travaux AMANI MAISHA Page 46
NB :
La représentation graphique est ordonnée par niveaux des sommets, c.à.d. des étapes.
Marge totale tâche "ij" = Date au plus tard "étape j" - Date au plus tôt "étape
i" - Durée tâche "ij"
Sauf cas particulier, un retard correspondant à la marge totale d'une tâche se traduit par une
modification des dates au plus tôt des tâches qui lui succèdent et entraîne, généralement,
l'apparition d'un second chemin critique. Il n'est donc pas possible de cumuler des retards
correspondant à leur marge totale sur plusieurs tâches successives, sans remettre en cause la
durée optimale prévue pour le projet.
La marge libre d'une tâche indique le retard que l'on peut admettre dans sa réalisation (sous
réserve qu'elle ait commencé à sa date au plus tôt) sans modifier les dates au plus tôt des
tâches suivantes etsans allonger la durée optimale du projet.
Elle se calcule en retirant la durée de la tâche en question à l'écart qu'il peut y avoir entre ses
dates au plus tôt de début et de fin :
Marge libre tâche "ij" = Date au plus tôt "étape j" - Date au plus tôt "étape i" -
Durée tâche "ij"
Un retard correspondant à la marge libre d'une tâche reste sans conséquence sur les marges
des tâches qui lui succèdent. Il est donc possible de cumuler des retards, s'inscrivant dans leur
marge libre, pour plusieurs tâches successives, sans remettre en cause la durée optimale
prévue pour le projet.
La marge certaine d'une tâche indique le retard que l'on peut admettre dans sa réalisation
(quelle que soit sa date de début) sans allonger la durée optimale du projet.
Elle se calcule en retirant la durée de la tâche en question à l'écart qu'il peut y avoir entre sa
date au plus tard de début et sa date au plus tôt de fin :
Marge certaine tâche "ij" = Max [ 0 , (Date au plus tôt "étape j" - Date au
plus tard "étape i" - Durée tâche "ij") ]
D'après cette formule, la marge certaine est considérée comme nulle lorsque son calcul
donne un nombre négatif.
5.1. Généralités
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, alors que les voies de
communications ont des capacités limitées. Soulignons que les problèmes de transport ne
sont pas les seuls à recevoir une solution par les méthodes qui seront exposées dans ce
chapitre. Ainsi en est-il des problèmes de « transfèrement », par exemple les problèmes
d’affectation. En outre, un problème de flot se transforme très rapidement en un problème de
coût minimal.
Solution
Constatons d’abord que, si nous ajoutons au graphe représentant les canalisations avec leur
débit, une entrée (source) O et une sortie (puits) P, toutes deux fictives, on obtient un réseau
de transport. On value les arcs (𝑂, 𝐴), (𝑂, 𝐵) et (𝑂, 𝐶) leur attribuant comme capacités les
disponibilités respectives en A, B et C. De même, on value les arcs (𝐷, 𝑃), (𝐸, 𝑃) et (𝐹, 𝑃) et
(𝐺, 𝑃) par les besoins respectifs en D, E, F et G.
Le problème se ramène alors à passer un flot de valeur maximale de O vers P(ou si l’on veut,
sur un arc imaginaire, dit de « retour », qui reviendrait de P vers O. Voici un flot Φ sur ce
réseau de transport :
bien disponible dans chaque usine sont respectivement O1, O2, ..., Om (offres). Ce bien est
demandé sur n marchés M1, M2, ..., Mn; les quantités sur chaque marché sont respectivement
d1, d2, ..., dn (demandes). La présentation des données se fait d'habitude sous forme du
tableau ci-après:
Si l'on appelle cij, le coût du transport d'une unité du bien de l'origine i à la destination j et xij,
la quantité transportée du centre i vers le centre j, le problème linéaire de transport consiste
alors à trouver un schéma de transport tel que :
La demande de chaque marché soit satisfaite;
L'offre de chaque usine ne soit pas dépassée;
Le coût total du transport soit minimum.
5.3.3. Méthode de résolution: recherche d’une solution de base réalisable
a) Solution de base
On appelle solution de base d'un programme de transport, une solution admissible
comportant M= (m+n-1) xij>0, c’est-à-dire qu’une solution de base comporte (m.n – M)
zéros. Le graphe d’une solution de base est un graphe connexe sans cycle, c’est-à-dire un
arbre comportant N=m+n sommets soit M=N-1 arcs. (Un graphe est connexe s’il existe au
moins une chaîne entre toute paire de sommets. Une chaine qui se ferme sur elle-même est un
cycle.).
Exemple Initialement
Soit la matrice du transport ci-après :
Coûts / Besoins / Stocks
Sources/Destinataires 1 2 3 4 5 Stocks
1 10 6 3 5 25 49
2 5 2 6 12 5 30
Demandes 15 20 5 25 14
Transports
Sources/Destinataires 1 2 3 4 5
1
2
Étape 1 :
Transports
Sources/Destinataires 1 2 3 4 5
1 15
2 0
Etape 2
Transports
Sources/Destinataires 1 2 3 4 5
1 15 20
2 0 0
Étape 3
Transports
Sources/Destinataires 1 2 3 4 5
1 15 20 5
2 0 0 0
Étape 4
Transports
Sources/Destinataires 1 2 3 4 5
1 15 20 5 9
2 0 0 0 16
Etape 5
Transports
Sources/Destinataires 1 2 3 4 5
1 15 20 5 9 0
2 0 0 0 16 14
Coût de la solution
La solution trouvée avec cette méthode n'est pas optimale en termes de coût. On trouve ici :
15*10 + 20*6 + 5*3 + 9*5 + 0*25 + 0*5 + 0*2 + 0*6 + 16*12 + 14*5 = 592.
Exemple2 :
Soit, la société Alpha possédant quatre dépôts A1, A2, A3 et A4 dans lesquels existent des
quantités respectives de 896, 782, 943, 928 unités d’une matière première, et cinq usines D1,
D2, D3 , D4 et D5 demandant respectivement 800, 439, 50, 790 et 1470 unités de celles-ci.
Les coûts de transport, C ij, sont donnés par le tableau ci-dessous. Comment organiser le
transport au moindre coût total?
Première étape :
A1-D1 est le coin Nord-Ouest, on lui affecte min (800;896) soit 800 unités demandées par
D1et fournies en A1.
On sature ainsi la demande D1 dont la colonne disparaît et on obtient le tableau 2 pour lequel
le coin N-O est A1-D2.
Deuxième étape : A1-D2 est le coin N-O, on lui affecte 96 unités demandées par D2 et
fournies en A1.
On sature ainsi l’offre en A1, qui disparaît. On obtient le tableau 3 pour lequel le coin N-O est
A2-D2.
Troisième étape :
A2-D2 est le coin N-O, on lui affecte 343 unités demandées par D2 et offert par
A2.
On satisfait ainsi la demande D2, qui disparaît. On obtient le tableau 4 pour lequel le coin N-
O est A2-D3.
Quatrième étape : A2-D3 est le coin N-O, on lui affecte 50 unités fournies par A2 et
demandée en D3.
On sature la demande D3, qui disparaît. On obtient le tableau 5 pour lequel le coin N-O est
A2-D4.
Cinquième étape : A2-D4 est le coin N-O, on lui affecte 389 unités fournies par A2 et
demandée par D4.
On sature l’offre A2, qui disparaît. On obtient le tableau 5 pour lequel le coin N-O est A3-D4.
Sixième étape : A3-D4 est le coin N-O, on lui affecte 401 unités fournies par A3 et demandée
par D4.
On sature la demande D4, qui disparaît. On obtient le tableau 5 pour lequel le coin N-O est
A3-D5.
Dernière étape : Il ne reste qu'une colonne D5 on affecte aux liaisons existantes le transport
de façon évidente.
Nous avons ainsi obtenu une solution de base réalisable puisque la condition d’avoir (n -1)(m
-1) variables nulles dans la solution est satisfaite (12 cases vides dans le dernier tableau).
Cours destiné aux étudiants de L1 Informatique de Gestion à l’ISP-Uvira.
Théorie des Graphes (2023-2024) Par Chef de Travaux AMANI MAISHA Page 60
Le coût de cette solution est : 800* 21+ 96*11+ 343* 52 + 50* 43 + 389* 29 + 401* 80 +
542*93 + 928*54 = 181 721 UM
ligne ou de cette colonne, car un regret important correspond à une pénalisation importante si
on n’utilise pas la route de coût minimum.
La méthode de Balas-Hammer fournit, en général, une solution très proche de l’optimum; le
nombre de changements de base nécessaires pour arriver à une solution optimale est peu élevé
(il arrive même assez fréquemment que la solution donnée par cette règle soit optimale).
2) Principe :
D’abord, on calcule pour chaque rangée, ligne ou colonne, la différence entre le coût le plus
petit avec celui qui lui est immédiatement supérieur. Ensuite on affecte à la relation de coût
le plus petit correspondant à la rangée présentant la différence maximale la quantité la plus
élevée possible. Ce qui sature une ligne ou une colonne. Et on reprendre le processus jusqu'à
ce que toutes les rangées soient saturées.
3) L’algorithme de Balas -Hammer:
∆l représente la différence entre le coût minimum et celui immédiatement
supérieur sur une ligne. ∆c représente la différence entre le coût minimum et celui
immédiatement supérieur sur une colonne.
Le regret le plus important est celui de la colonne 5 : 20. Dans cette rangée, on repère le
coût minimal : C(2,5) = 5.
Remplissage de la matrice des transports
Transports
Sources/Destinataires 1 2 3 4 5
1 0
2 14
Réitération du principe
ETC...
Résultat : On en arrive à établir le tableau des transports :
Transports
Sources/Destinataires 1 2 3 4 5
1 0 19 5 25 0
2 15 1 0 0 14
5) Le coût total se calcule par un produit scalaire entre les matrices des coûts et
destransports.
6) Ici, le coût optimal est donc : 0*10 + 19*6 + 5*3 + 25*5 + 0*25 + 15*5 + 1*2 + 0*6
+ 0*12 + 14*5 = 401
Exemple 2 : Reprenons l’exemple précédant, et cherchons une solution de base par
l’algorithme de Balas-Hammer.
Première étape :
Deuxième étape :
Troisième étape :
Quatrième étape :
Cinquième étape :
Sixième étape :
Septième étape :
Dernière étape :
Il nous reste qu’une source non épuisée A3, on l’affecte à D5 qui demande exactement 85
unités. Enfin, la solution de base est :
Destination
Origine 1 2 3 4 5 6 Quantités disponibles L
1 12 27 61 49 83 35 18 15
2 23 39 78 28 65 42 32 5
6
3 67 56 92 24 53 54 14 29
4 71 43 91 67 40 49 9 3
Quantités demandées 9 11 28 6 14 5 73
C 11 12 17 4 13 7
Nous voyons que la plus grande pénalité unitaire est 29. Commençons par approvisionner
l'origine 3 au moyen de 6 unités de la destination 4. Nous indiquons 6 au-dessus de C34 et nous
barrons la colonne 4 qui a reçu son dû. La disparition de cette colonne modifie le disponible en
3 (qui devient 8) et provoque éventuellement des modifications des pénalités.
En poursuivant ainsi, on obtient une première solution complète. Les tableaux suivants
reflètent l'ensemble des travaux réalisés sur le tableau initial.
2e pas
Destination
Origine 1 2 3 5 6 Quantités disponibles L
1 12 27 61 18 83 35 18 15
2 23 39 78 65 42 32 16
3 67 56 92 53 54 8 1
4 71 43 91 40 49 9 3
Quantités demandées 9 11 28 14 5 67
C 11 12 17 13 7 C(1,3) = 18
3e pas
Destination
Origine 1 2 3 5 6 Quantités disponibles L
2 23 9 39 78 65 42 32 16
3 67 56 92 53 54 8 1
4 71 43 91 40 49 9 3
Quantités demandées 9 11 10 14 5 49
C 44 4 13 13 7 C(2, 1) = 9
4è pas
Destination
Origine 2 3 5 6 Quantités disponibles L
2 39 78 65 42 23 3
3 56 92 53 54 8 1
4 43 91 40 9 49 9 3
Quantités demandées 11 10 14 5 40
C 4 13 13 7 C(4, 5) = 9
5e pas
Destination
Origine 2 3 5 6 Quantités disponibles L
11
2 39 78 65 42 23 3
3 56 92 53 54 8 1
Quantités demandées 11 10 5 5 31
C 17 14 12 12 C(2, 2) = 11
6e pas
Destination
Origine 3 5 6 Quantités disponibles L
2 78 65 42 5 12 23
3 92 53 54 8 1
Quantités demandées 10 5 5 20
C 14 12 12 C(2,6) = 5
7e pas
Destination
Origine 3 5 Quantités disponibles L
2 78 65 7 13
3 92 53 5 8 39
Quantités demandées 10 5 15
C 14 12 C(3,5) = 5
8e pas
Destination
Origine 3 Quantités disponibles
2 78 7
3 92 3
Quantités demandées 10 10
C 14 C(2, 3) = 7
Destination
Origine M1 M2 M3 M4 M5 M6 Quantités disponibles
P1 18 18
P2 9 11 7 5 32
P3 3 6 5 14
P4 9 9
Quantités demandées 9 11 28 6 14 5 73
Localiser la case dont le coût est le plus bas et y placer le maximum d’unités possibles.
Si deux cases ont le même coût, on remplit d’abord celle qui peut absorber le plus
d’unités, ensuite on remplit les autres cases quand c’est possible.
Affecter le maximum d’unités possibles à la case suivante ayant le coût le plus bas ;
Répéter a. et b. jusqu’à satisfaction de l’offre et de la demande.
Première étape :
Réduction des lignes : on crée une nouvelle matrice des coûts en choisissant le
coût minimal sur chaque ligne et en le soustrayant de chaque coût sur la ligne.
Dans ce cas, le nombre minimal de lignes est de 3 qui est inférieur au nombre de ligne ou
colonne (4), alors on passe à l’étape 4.
Quatrième étape :
Premièrement, il faut trouver la cellule de valeur minimum non couverte par une ligne, puis,
soustraire cette valeur de toutes les cellules non couvertes. Ensuite, ajouter cette valeur aux
cellules situées à l’intersection de deux lignes. Et enfin, retourner à l’étape 3.
La valeur minimum des cellules non couvertes est 20. On soustrait 20 des cellules non
couvertes et on l’ajoute aux cellules qui se trouvent à l’intersection des lignes, ceci nous
donne le tableau suivant :
b) Cas de Maximisation
Exemple
Le Chef de Section des SCAI doit affecter 5 enseignants aux cours suivants : Info et
Bureautique, Algo1, RO, Gestion des Stocks et Théorie des Graphes. Le Chef de Section
souhaite affecter ces enseignants en optimisant leurs aptitudes à enseigner les cours souhaités.
Ces aptitudes sont mesurées par les cotes obtenues dans ces différentes branches à l’ISP-
Uvira. Elles sont données dans le tableau ci-dessous.
Info et B. Algo1 RO GeStoc Théorie Min Info et B. Algo1 RO GeStock Théorie des Min
k des G G
E1 -15 -09 -07 -08 -02 -15 E1 3 9 11 10 16 3
E2 -03 -17 -04 -10 -09 -17 E2 15 1 14 8 9 1
E3 -06 -06 -08 -07 -16 -16 E3 12 12 10 11 2 2
E4 -11 -02 -16 -16 -11 -16 E4 7 16 2 2 7 2
E5 -18 -15 -03 -12 -09 -18 E5 0 3 15 6 9 0
Dans ce cas ci-haut s, le nombre minimal de lignes est de 4 qui est inférieur au
nombre de ligne ou colonne (5), alors on passe à l’étape suivante.
- Premièrement, il faut trouver la cellule de valeur minimum non couverte par une ligne,
puis, soustraire cette valeur de toutes les cellules non couvertes. Ensuite, ajouter cette
valeur aux cellules situées à l’intersection de deux lignes. Et enfin, retourner à l’étape
précédente.
- La valeur minimum des cellules non couvertes est 3. On soustrait 3 des cellules non
couvertes et on l’ajoute aux cellules qui se trouvent à l’intersection des lignes, ceci nous
donne le tableau suivant :
6 8 7 13
3 15 6 9
Exemple : Trouver une affectation au moindre coût des ouvriers aux tâches, la matrice
des coûts étant :
Cij T1 T2 T3 T4 T5 T6
1 30 25 41 14 28 24
2 7 28 18 3 32 27
3 20 13 21 32 6 0
4 21 16 25 13 18 18
Etape 1
Cij T1 T2 T3 T4 T5 T6 Ci
1 30 25 41 14 28 24 14
2 7 28 18 3 32 27 3
3 20 13 21 32 6 0 0
4 21 16 25 13 18 18 13
30
Etape 2
Cij T1 T2 T3 T4 T5 T6Ci
(on
réduit
de :)
1 16 11 27 0 14 10 14
2 4 25 15 0 29 24 3
3 20 13 21 32 6 0 0
4 8 3 12 0 5 5 13
Somme 30
On affecte 1 T4 par la couverture des 0
La matrice devient :
Cours destiné aux étudiants de L1 Informatique de Gestion à l’ISP-Uvira.
Théorie des Graphes (2023-2024) Par Chef de Travaux AMANI MAISHA Page 77
Cij T1 T2 T3 T5 T6 Ci (on
réduit de :)
2 4 25 15 29 24 4
3 20 13 21 6 0 0
4 8 3 12 5 5 3
Somme 7
Etape 3
Cij T1 T2 T3 T5 T6 Ci (on
réduit de :)
2 0 21 11 25 20 4
3 20 13 21 6 0 0
4 5 0 9 2 2 3
Somme 7
2 T1
Cij T2 T3 T5 Ci (on réduit de :)
4 0 9 2 0
3 T6
Cij T2 T3 T5 Ci (on réduit de :)
4 0 9 2 0
4 T2
Solution d’affectation
1 T4 = 14
2 T1 = 7
3 T6 = 0
4 T2 = 16
Total coût = 37
Exemple illustratif
Soit le problème ci-après :
Cij V1 V2 V3 V4 V5 V6
V1 8 12 14 14 26
V2 13 56 35 54 20
V3 23 23 33 21 26
V4 2 7 37 15 22
V5 25 30 1 16 7
V6 20 24 10 37 21
Etape 2 :
Cij V1 V2 V3 V4 V5 V6 Ci
V1 0 4 6 6 18 0
V2 0 43 22 41 7 0
V3 2 2 12 0 5 0
V4 0 5 35 13 20 0
V5 24 29 0 15 6 0
V6 10 14 0 27 11 0
Réduit 0 0 0 6 0 5 11
de :
Cij V1 V2 V3 V4 V5 V6 Ci
V1 0 4 0 6 13 0
V2 0 43 16 41 2 0
V3 2 2 6 0 0 0
V4 0 5 35 13 15 0
V5 24 29 0 9 1 0
V6 10 14 0 21 11 0
Pour éviter le cyclage, passer par C36 = , il faut aller de la ville 6 vers ville 3 (V6
V3).
Cij V1 V2 V4 V5 V6 Ci
V1 0 0 6 13 0
V2 0 16 41 2 0
V3 2 2 6 0 0 0
V4 0 5 13 15 0
V5 24 29 9 1 1
1
Réitère l’algorithme et on a :
Cij V1 V2 V4 V5 V6 Ci
V1 0 0 6 13 0
V2 0 16 41 2 0
V3 2 2 6 0 0 0
V4 0 5 13 15 0
V5 23 28 8 0 1
V2 V1
Cij V2 V4 V5 V6 Ci
V1 0 0 6 13 0
V3 2 6 0 0 0
V4 5 13 15 5
V5 28 8 0 0
Cij V2 V4 V5 V6 Ci
V1 0 0 6 13 0
V3 2 6 0 0 0
V4 0 8 10 5
V5 28 8 0 0
V1 V4
Cij V2 V5 V6 Ci
V3 2 0 0 0
V4 0 8 10 0
V5 28 0 0
V5 V6
Cij V2 V5 Ci
V3 2 0 0
V4 0 8 0
NB : En fin de trouver un circuit hamiltonien et éviter le cyclage dans ce problème
du voyageur du commerce, on doit partir de la V3 vers la ville V2 (V3 V2 ) et de
Solution
V6 V3 = 10
V5 V6 =7
V3 V2=23
V4 V5=15
V1 V4 =14
V2 V1 =13
Le coût total minimal est de 82.
V6 V3
V5 V2
V4 V1
Il arrive souvent, dans des problèmes économiques ou autres, que le nombre de solutions soit
fini : nous pouvons, dans ce cas, dénombrer toutes les solutions et adopter celle qui optimise
un certain critère. Cependant, lorsque ces solutions sont très nombreuses, leur dénombrement
explicite peut s'avérer trop fastidieux. Par exemple, si x est un vecteur à 100 composantes,
chaque composante pouvant prendre la valeur 0 ou 1, le nombre de solutions est 2100, ce qui
est énorme. Le présent paragraphe est consacré aux procédures de séparation et d'évaluation
qui permettent de trouver la solution optimale en évitant le dénombrement explicite de toutes
les solutions. Ces méthodes peuvent être avantageusement employées dans des problèmes
d'affectation, du voyageur de commerce, de recherche de plus courts chemins dans un graphe,
de résolution de programmes linéaires en variables (0,1).
6.6.1. Exemple
Soit à trouver le plus petit nombre pair appartenant à l'ensemble S des nombres suivants : {14,
9, 12, 6, 16, 11, 10, 3}.
La procédure de séparation et d'évaluation est décrite par une arborescence dont la racine
contient toutes les solutions possibles (admissibles ou non) du problème. La première étape
consiste à séparer cet ensemble de solutions en plusieurs parties; nous séparons ensuite une de
ces parties, puis une de ces dernières, ...
Nous supposons pouvoir déterminer le plus petit nombre de tout ensemble de solutions : ce
plus petit nombre est la valeur de la fonction d'évaluation au sommet considéré (remarquons
que la fonction économique du problème est ici f(x) = x, où xS A , A étant l'ensemble de
nombres pairs). Nous séparons le sommet sans descendant de valeur minimum, à moins qu'il
ne contienne qu'un seul nombre, auquel cas nous testons la parité du nombre trouvé. Si ce
nombre n'est pas pair, nous travaillons avec les autres sommets sans descendant.
Le premier nombre pair trouvé est la solution optimale : en effet la meilleure solution de
chaque sommet de l'arborescence est nécessairement moins bonne que la solution trouvée en
vertu de la définition de la fonction d'évaluation et du choix du sommet que nous séparons.
La fonction d’évaluation
S0=3
S1 S2
14, 9,
6 16,
12, 10 10, 3B2=3
B1 =9
S3 6, 16 S4
10, 3
B3=6 B8=16
S7 S8 S5 S6
6 16 3
B7=6 B8=16 B5=10 10B6=10
A la première étape, nous séparons S0 en S1 et S2. Comme B2 < B1, nous séparons ensuite
S2 en S3 et S4. Comme B4 = min {B1, B3, B4}, nous séparons S4 en S5 et S6. Nous avons
B6 < B3 < B1 < B5; S6 ne peut plus être séparé et le nombre qu'il contient n'est pas pair; nous
séparons alors S3 en S7 et S8. Comme B7 = min {B1, B7, B8, B5} et comme le nombre
contenu dans S7 est pair, nous avons la solution optimale.
Remarques :
- La séparation d'un sommet ne définit pas nécessairement une partition des solutions
contenues dans ce sommet ; les descendants d'un sommet peuvent avoir des intersections
non vides. Par contre, leur réunion doit être égale au sommet considéré.
la première solution admissible trouvée est la solution optimale. Par contre, elle exige la
mise en mémoire de nombreux résultats ; à chaque étape, il faut connaître l'ensemble des
sommets sans descendant et leur valeur. C'est la raison pour laquelle cette méthode est
très peu employée. La procédure de séparation et d'évaluation séquentielle (P.S.E.S.)
parcourt un chemin plus long pour parvenir à la solution optimale, mais ne conserve en
mémoire qu'un ensemble très réduit de résultats. Dans une P.S.E.S., nous appliquons le
principe de séparation de manière systématique dans une direction, par exemple vers la
droite, jusqu'à ce qu'un sous-ensemble sondable soit rencontré. Si celui-ci admet une
solution admissible, elle est considérée provisoirement comme solution optimale. Nous
remontons alors d'un échelon dans l'arborescence, nous effectuons un déplacement vers
la gauche et explorons systématiquement à droite jusqu'à ce qu'un nouvel ensemble
sondable soit rencontré. Nous conservons uniquement en mémoire la meilleure solution
trouvée et la valeur de la fonction économique pour cette solution.
Chapitre 7 :APPLICATIONS
1) Soit le graphe représenté par la matrice d’incidence ci-dessous où les temps
opérations sont exprimés en semaines :
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12
X1 0 8 16 0 9 13 0 0 0 0 0 0
X2 0 0 12 14 0 0 12 0 0 0 0 0
X3 0 0 0 7 0 0 0 8 0 8 0 0
X4 0 0 0 0 0 0 0 10 0 0 0 0
X5 0 0 0 0 0 7 9 0 0 0 0 0
X6 0 0 0 0 0 0 10 0 14 13 0 0
X7 0 0 0 0 0 0 0 9 0 0 0 0
X8 0 0 0 0 0 0 0 0 0 0 10 0
X9 0 0 0 0 0 0 0 0 9 0 16 8
X10 0 0 0 0 0 0 0 0 0 0 9 10
X11 0 0 0 0 0 0 0 0 0 0 0 7
X12 0 0 0 0 0 0 0 0 0 0 0 0
TD :
a) Construire le réseau PERT et mettre en ´évidence le(s) chemin(s) critique(s).
b) D´déterminer les marges totales et libres de chacune des tâches composant le projet.
c) D´déterminer la date prévisible d’achèvement de l’atelier.
Cours destiné aux étudiants de L1 Informatique de Gestion à l’ISP-Uvira.
Théorie des Graphes (2023-2024) Par Chef de Travaux AMANI MAISHA Page 87
3) Affecter tous les ouvriers A,B, C, D, E, F, G et H aux tâches T1, T2, T3 et T4 au coût
minimum et calculer le coût :
T1 T2 T3 T4
A 80 25 33 46
B 65 35 32 51
C 70 30 48 62
D 49 51 60 45
E 58 85 51 39
F 96 78 85 72
G 58 46 57 60
H 66 29 66 48
4) Le problème du voyageur de commerce est représenté par la matrice ci-après :
V1 V2 V3 V4 V5 V6 V7
V1 10 8 13 32 0 33
V2 0 30 61 37 42 10
V3 26 28 75 90 33 0
V4 10 30 1 30 43 0
V5 27 31 0 12 10 1
V6 52 24 28 0 9 29
V7 46 22 21 0 9 31
Déterminer le voyage le moins couteux.
5) Le service de marketing de la Société des Huileries de RDC a projeté entretenir les
différents appareils utilisés dans la production d’huile de coton. Cet entretien consiste
à exécuter un certain nombre d’activités qu’il faut planifier. A cet effet, le tableau
suivant a été dressé :
En utilisant la méthode MPM, déterminez la durée totale du projet, ainsi que, pour chaque
tâche, la date de début au plus tôt, la date de début au plus tard, la marge libre, la marge
totale. Quelles sont les tâches critiques pour la réalisation du projet ? La tâche D est retardée
de 3 jours. Cela implique-t-il un retard sur le délai d’exécution du programme ?
9) Lors d’un stage, votre responsable en entreprise vous demande d’exécuter un travail.
Après avoir recensé les différentes tâches que vous aurez à réaliser, vous estimez
leur duréed’exécution et disposez du tableau suivant :
A H 4
B A,G,J 8
C E 14
D - 12
E - 8
F E 6
G D,K,J 6
H - 8
I J,K 10
J H 6
K E,D,F 8
Il examine votre planning et estime que la durée de certaines tâches peut être réduite
(vos estimations étaient trop larges et on vous aidera dans la réalisation de certaines
opérations).
Voici les réductions possibles :
Tâches A B C D E F G H I J K
Réduction 0 2 0 0 4 0 2 0 1 2 0
Quelles sont les tâches que vous réduirez pour que le projet ne dure que 30 jours ?
Dressez la liste des tâches critiques. (On s’attachera à réduire les tâches critiques en
commençant par les tâches finales.
10) La rénovation du séjour d’un appartement se décompose en plusieurs tâches décrites dans
le tableau ci-dessous. Ce denier donne également les précédences à respecter lors de la
planification des travaux ainsi qu’une estimation de la durée de chacune des tâches.
Taches Libellé Précédences Durée Précédences Durée
(durée) (durée)
L’entreprise désire démarrer le plus vite possible ses nouveaux chantiers. A quel chantier
doit-elle affecter ses grues disponibles ?
12) Trois centrales électriques avec une capacité respectivement de 25, 40 et 30 millions de
kWh fournissent l’électricité de trois villes. La demande maximale de chacune des trois
villes est respectivement estimée `a 30, 35 et 25 millions de kWh. Le prix du million de
kWh dans les trois villes est donné dans la table ci-dessous.
Ville V1 V2 V3
Usine
14) Une fabrique M a 6 machines et 6 tâches à compléter. Chaque machine doit lui voir
assigner une tâche. Le temps de mise en œuvre est donné par la table suivante :
T1 T2 T3 T4 T5 T6
Machine 1 14 5 8 7 15 7
Machine 2 2 12 6 5 4 2
Machine 3 7 8 3 9 3 1
Machine 4 2 7 6 10 5 8
Machine 5 5 6 3 11 13 9
Machine 6 10 12 9 6 9 14
16) Trouvez une affectation au moindre coût des ouvriers aux tâches, la matrice des
coûts étant :
Cij T1 T2 T3 T4 T5 T6
1 20 26 41 14 28 24
2 8 24 4 3 5 22
3 25 2 5 1 6 3
4 4 5 25 14 18 17
5 25 4 17 14 11 9
17) Trouvez une affectation au moindre coût des ouvriers aux tâches, la matrice des coûts
Cours destiné aux étudiants de L1 Informatique de Gestion à l’ISP-Uvira.
Théorie des Graphes (2023-2024) Par Chef de Travaux AMANI MAISHA Page 93
étant :
A B C D F
E1 15 09 07 08 04
E2 07 17 04 10 09
E3 06 06 08 07 16
E4 11 06 16 16 11
E5 18 15 09 12 09
E6 16 13 09 08 17
E7 15 07 11 16 10