Académique Documents
Professionnel Documents
Culture Documents
i
ii
TABLE DES MATIÈRES
1 Programmation Linéaire 1
1.1 Programmation linéaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 Programme linéaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Formulation d’un Programme Linéaire (Modélisation) . . . . . . . . . . . . . 3
1.2.1 Forme canonique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.2 Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.3 Correspondance Primal/ . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.4 Généralisation de la Forme canonique . . . . . . . . . . . . . . . . . . 11
1.3 Exemple de résolution graphique . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4 Représentation graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4.1 Résolution graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5 Théorème des écarts complémentaires . . . . . . . . . . . . . . . . . . . . . . 16
1.5.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.6 La méthode de simplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.6.1 Variable qui rentre dans la base . . . . . . . . . . . . . . . . . . . . . 18
1.6.2 Variable qui sort de la base . . . . . . . . . . . . . . . . . . . . . . . 18
1.6.3 Variable pivot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.7 Algorithme dual de simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.8 Complexité Algorithmique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.8.1 Notion de Complexité . . . . . . . . . . . . . . . . . . . . . . . . . . 20
iii
TABLE DES MATIÈRES
iv
TABLE DES MATIÈRES
v
CHAPITRE 1
PROGRAMMATION LINÉAIRE
1.1.1 Présentation
1
Programmation Linéaire. E.N.I
logiciel.
La première révolution industrielle avait remplacé la force musculaire de l’homme par celle
des machines. La seconde voyait la machine se commander elle-même. Les ordinateurs se sont
introduits dans les entreprises et les pouvoirs publics firent surgir des problèmes de grande
envergure auxquels les directions n’étaient pas préparées. L’une des caractéristiques essentielles
du raisonnement logique est le recours à la méthode scientifique. Le chercheur construit une
représentation qu’il appelle un "modèle mathématique". Il peut manipuler les modèles et les
étudier plus facilement que le système réel. Les modèles sont parfois très difficiles à construire
et peuvent prendre la forme d’expressions mathématiques fortes compliquées. Lorsqu’ils
mettent leur modèle en formule, les chercheurs doivent énoncer formellement quelles sont les
variables, l’objectif, les paramètres. L’importance de l’optimisation et la nécessité d’un outil
simple pour modéliser des problèmes de décision que soit économique, militaire ou autres
on fait de la Programmation Linéaire (PL) l’un des champs de recherche les plus actifs au
milieu du siècle précédent. La PL est une technique mathématique permettant de déterminer
la meilleure solution d’un problème dont les données et les inconnues satisfont à une série
d’équations et d’inéquations linéaires. Les premiers travaux (1947) sont celle de George B.
Dantzig et ses associés du département des forces de l’air des Etats Unis d’Amérique. La
PL a été formulée par Dantzig en 1947 et connaît un développement rapide par suite de son
application directe à la gestion scientifique des entreprises. Le facteur expliquant l’essor de
la PL est la construction d’ordinateurs puissants qui ont permis de traiter les problèmes
concrets de taille très grande. On l’applique surtout en gestion et en économie appliquée.
On peut citer les domaines d’application de la PL qui sont : les transports, les banques, les
industries lourdes et légères, l’agriculture, les chaînes commerciales, la sidérurgie, et même le
domaine des applications militaires. Les méthodes de résolution sont la méthode du simplexe,
méthode e du simplexe, méthodes des potentiels, méthode lexicographique et des méthodes
récentes appelées méthodes des points intérieurs. Le but de cette partie du recueil n’est pas
de donner les méthodes de résolution de la PL mais de la présenter à l’aide des exemples
concrets et faciles.
Problème concret
Modélisation
Interprétation
des résultats
Prise de
décision
herche opérationnelle (RO) est utilisée dans les domaines ou la prise de décision fait
à la résolution
1.2 desFormulation
problèmes d’optimisation telle que les
d’un Programme problèmes
Linéaire de :
(Modélisa-
tion)
• Dimensionnement, localisation
1. Les conditions de formulation d’un PL
• Gestion de La
ressources
programmation linéaire comme étant un modèle admet des hypothèses ou des
conditions (la proportionnalité, la non négativité, l’additivité et la linéarité de la fonction
• Rentabilisation des investissements
3 Dr. Adama A. Koné
• Détection de dysfonctionnements : diagnostics, réparation, maintenance.
• Partage des ressources
Programmation Linéaire. E.N.I
objectif) que le décideur doit valider avant de pouvoir les utiliser pour modéliser son
problème. Ces hypothèses sont :
(b) Le critère de sélection de la meilleure décision est décrit par une fonction linéaire
de ces variables, c’est à dire, que la fonction ne peut pas contenir par exemple un
produit croisé de deux de ces variables. La fonction qui représente le critère de
sélection est dite Fonction Objectif (FO) (ou fonction économique) ;
(c) Les restrictions relatives aux variables de décision (exemple : limitations des
ressources) peuvent être exprimées par un ensemble d’équations linéaires. Ces
équations forment l’ensemble des contraintes ;
(d) Les paramètres du problème en dehors des variables de décisions ont une valeur
connue avec certitude.
(a) Identifier les variables du problème à valeur non connues (variable de décision) et
les représenter sous forme symbolique (par exemple. x1 , y) ;
(b) Identifier les restrictions (les contraintes) du problème et les exprimer par un
système d’équations linéaires ;
3. Présentation Théorique :
Un programme linéaire consiste à trouver le maximum ou le minimum d’une forme
linéaire dite FO en satisfaisant certaines équations et inégalités dites contraintes. En
langage mathématique, on décrira de tels modèles de la manière suivante :
Soient n variables de décision x1 , x2 , . . . , xn , l’hypothèse que les variables de décision
sont positives implique que : x1 ⩾ 0, x2 ⩾ 0, . . . , xn ⩾ 0.
La FO est une forme linéaire en fonction des variables de décision de type
z = c1 x 1 + c2 x 2 + c3 x 3 + · · · + cn x n .
a11 x1 +a12 x2 +a13 x3 + · · · + a1n xn ⩾ b1
+ · · · + a2n xn ⩾ b2
a21 x1 +a22 x2 +a23 x3
.
. .. .. ..
. . . .
am1 x1 +am2 x2 +am3 x3 + · · · + amn xn ⩾ bm ,
Un agriculteur veut allouer 150 hectares de surface irrigable entre culture de tomates
et celles de piments. Il dispose de 480 heures de main d’œuvre et de 440 m3 d’eau. Un
hectare de tomates demande 1 heure de main d’œuvre, 4 m3 d’eau et donne un bénéfice
net de 100000 F CFA. Un hectare de piments demande 4 heures de main d’œuvre, 2 m3
d’eau et donne un bénéfice net de 200000 F CFA. Le bureau du périmètre irrigué veut
protéger le prix des tomates et ne lui permet pas de cultiver plus de 90 hectares de
tomates. Quelle est la meilleure allocation de ses ressources ?
Un spécialiste en médecine a fabriqué un médicament (des pilules) pour guérir les sujets
atteints d’un rhume. Ces pilules sont fabriquées selon deux formats :
• Petite taille : elle contient 2 grains d’aspirine, 5 grains de bicarbonate et 1 grain
de codéine.
• Grande taille : elle contient 1 grain d’aspirine, 8 grains de bicarbonate et 6 grains
de codéine.
Pour guérir la maladie, le sujet a besoin de 12 grains d’aspirine, 74 grains de bicarbonate
et 24 grains de codéine. Déterminer le nombre de pilules minimales à prescrire au sujet
pour qu’il soit guérit.
Pour fabriquer deux produits P1 et P2 on doit effectuer des opérations sur trois machines
M1 , M2 et M3 , successivement mais dans un ordre quelconque. Les temps unitaires
d’exécution sont donnés par le tableau suivant :
M1 M2 M3
P1 11 mn 7 mn 6 mn
P2 9 mn 12 mn 16 mn
On supposera que les machines n’ont pas de temps d’inactivité. La disponibilité pour
chaque machine est : 165 heures (9900 minutes) pour la machine M1 ; 140 heures (8400
minutes) pour la machine M2 ; 160 heures (9600 minutes) pour la machine M3 . Le
produit P1 donne un profit unitaire de 900 F CFA et le produit P2 un profit unitaire de
1000 F CFA. Dans ces conditions, combien doit-on fabriquer mensuellement de produits
P1 et P2 pour avoir un profit total maximum ?
On se propose de réaliser une alimentation économique pour des bestiaux, qui contient
obligatoirement 4 sortes de composants nutritifs, A, B, C et D. L’industrie alimentaire
produit précisément deux aliments M et N qui contiennent ces composants :
Un industriel veut produire un alliage Z à 30% de plomb, 30% de zinc et 40% d’étain.
Supposons qu’il puisse se procurer sur le marché des alliages A, B, C, D, E, F, G, H, I
dont les compositions et les prix respectifs sont donnés dans le tableau suivant :
Une entreprise désire effectuer une campagne publicitaire dans la télévision, la radio et
les journaux pour un produit lancé récemment sur le marché. Le but de la campagne
est d’attirer le maximum possible de clients. Les résultats d’une étude de marché sont
donnés par le tableau suivant :
Télévision Télévision
Locale Par satellite Radio Journaux
Coût d’une publicité (u.m=104 F CFA) 40 75 30 15
Nbre de client potentiel par publicité 400 900 500 200
Nbre de client potentiel femme par publicité 300 400 200 100
Pour la campagne, on prévoit de ne pas payer plus que 8.000.000 F CFA pour toute la
campagne et on demande que ces objectifs soient atteints :
• Le nombre des publicités dans la radio ou dans les journaux est pour chacun entre
5 et 10.
Pour résoudre un programme linéaire de manière automatique, il faut qu’il ait une certaine
forme que l’on appelle "canonique ". Dans ce cours, on a choisi la forme canonique suivante :
un programme linéaire n’a que des contraintes d’infériorité et l’on tente de maximiser la
fonction objectif. De plus toutes les variables sont positives.
1.2.2 Transformations
Tout programme linéaire quelconque peut être ramené à une forme canonique. Voici
quelques exemples de transformations possibles.
Si une variable x3 est négative, on la remplace par une variable positive x′3 = −x3 . Par
exemple :
max : Z = 3x1 − 2x2 + 8x3
max : Z = 3x1 − 2x2 − 8x′3
s/c : s/c :
2x2 − 4x′3 ⩽
5x1 − 2x2 + 4x3 ⩽ 8
5x1 − 8
=⇒
x1 + 3x2 + 8x3 ⩽ 25
x1 + 3x2 − 8x′3 ⩽ 25
6x2 + 3x′3 ⩽
9x1 + 6x2 − 3x3 ⩽ 17 9x1 + 17
x′3
x1 , x2 ⩾ 0; x3 ⩽ 0 x1 , x2 , ⩾ 0
Si une variable x n’a pas de contrainte de signe (libre ), on la remplace par deux variables
positives x′ et x′′ telles que x = x′ − x′′ . Par exemple :
max : Z = 3x1 − 2x2 + 8x3
max : Z = 3x1 − 2x2 + 8x′3 − 8x′′3
s/c : s/c :
+ 4x′3 − 4x′′3 ⩽
5x1 − 2x2 + 4x3 ⩽ 8
5x1 − 2x2 8
=⇒
x1 + 3x2 + 8x3 ⩽ 25
x1 + 3x2 + 8x′3 − 8x′′3 ⩽ 25
6x2 − 3x′3 + 3x′′3 ⩽
9x1 + 6x2 − 3x3 ⩽ 17 9x1 + 17
x′3 , x′′3
x1 , x2 ⩾ 0 x1 , x2 , ⩾ 0
max : Z = 3x1 − 2x2 + 8x3
max : Z = 3x1 − 2x2 + 8x3
s/c : s/c :
5x1 − 2x2 + 4x3 ⩽ 8
5x1 − 2x2 + 4x3 ⩽ 8
=⇒
x1 + 3x2 + 8x3 ⩽ 25
x1 + 3x2 + 8x3 ⩽ 25
9x1 + 6x2 − 3x3 ⩾ 17 −9x1 − 6x2 + 3x3 ⩽ −17
x1 , x2 , x3 ⩾ 0 x1 , x2 , x3 ⩾ 0
max : Z = 3x1 − 2x2 + 8x3
max : Z = 3x1 − 2x2 + 8x3
s/c :
s/c :
5x1 − 2x2 + 4x3 ⩽ 8
5x1 − 2x2 + 4x3 ⩽ 8
=⇒ x1 + 3x2 + 8x3 ⩽ 25
x1 + 3x2 + 8x3 ⩽ 25
9x1 + 6x2 − 3x3 ⩽ 17
9x1 + 6x2 − 3x3 = 17
9x1 + 6x2 − 3x3 ⩾ 17
x1 , x2 , x3 ⩾ 0
0
x1 , x2 , x3 ⩾
max : Z = 3x1 − 2x2 + 8x3
s/c :
5x1 − 2x2 + 4x3 ⩽ 8
=⇒ x1 + 3x2 + 8x3 ⩽ 25
9x1 + 6x2 − 3x3 ⩽ 17
−9x1 − 6x2 + 3x3 ⩽ −17
0
x1 , x2 , x3 ⩾
m
CT
X
max : Z(X) = ·X = ci x i
i=1
(P) = s/c :
AX ⩽ b
A ∈ Mn,m (R), X ∈ Rm m b ∈ Rn
+, C ∈ R ,
m
bT
X
min : W (Y ) = ·Y = bi yi
i=1
(D) = s/c :
AT Y ⩾ C
AT ∈ Mm,n (R), Y ∈ Rn+ , b ∈ Rn , C ∈ Rm
Énoncé
Une entreprise fabrique 2 produit x et y. Pour sa conception, chaque produit fini nécessite
3 produits intermédiaires A, B et C. Pour fabriquer un produit x, on a besoin de 2 produits
2x + y ⩽ 120
x + 3y ⩽ 150
x, y ⩾ 0
Enfin, on tente de maximiser le profit qui est le total des bénéfices sur la vente des produits
x plus celui des produits y.
max : z = 3x + 4y
Les solutions admissibles sont représentées par la zone grisée (a,b,c,d,e). Ce sont les
solutions qui satisfont les contraintes. Considérons maintenant la fonction z = 3x + 4y. Pour
z = 120, on a une droite D1, 3x + 4y = 120, qui représente les solutions pour lesquelles le
profit vaut 120. Si z = 180, on a une autre droite D2, 3x + 4y = 180, qui représente les
solutions pour lesquelles le profit vaut 180. On remarque que D2 est parallèle à D1 et on
s’aperçoit facilement qu’en déplaçant la droite vers le haut on augmente le profit z. Donc
pour résoudre graphiquement le problème, on va faire "glisser" la droite vers le haut jusqu’à
Les solutions ce qu’elle ait un minimum
admissibles de points communs
sont représentées paraveclalazone
surfacegrisée
grisée. Le
(a,point
b, ,restant
c, d,icie).
est Ce sont les
d. Il représente la solution pour laquelle le profit est maximum. En effet, si on prend un profit
solutions qui plussatisfont les contraintes.
important, représenté par exempleConsidérons maintenant
par D4, on s’aperçoit la solutions
que toutes les fonction = 300000x +
sontz en
dehors de la surface grisée. Donc la solution du problème est de produire 45 produits X et 30
400000y. Pour z = 120, on a une droite D1 , 3x + 4y = 120, qui représente les solutions pour
produits Y pour obtenir le profit maximum de z = 3x + 4y = 255 francs.
lesquelles le profit vaut 120. Si z = 180, on a une autre droite D2 , 3x + 4y = 180, qui représente
les solutions pour lesquelles le profit vaut 180. On remarque que D2 est parallèle à D1 et on
s’apperçoit facilement qu’en déplaçant la droite vers le haut on augmente le profit z. Donc
pour résoudre graphiquement le problème, on va faire "glisser" la droite vers le haut jusqu’à
ce qu’elle ait un minimum de point communs avec la surface grisée. Le point restant ici est d.
Il représente la solution pour laquelle le profit est maximum. En effet, si on prend un profit
plus important, représenté par exemple par D4 , on s’apperçoit que toutes les solutions sont
en dehors de la surface grisée. Donc la solution du problème est de produire 45 produits x et
30 produits y pour obtenir le profit maximum de z = 300000x + 400000y = 25500000 francs.
LA METHODE DU SIMPLEX
1.4.1 Résolution graphique
Globalement, la méthode du Simplex va se déplacer le long de la forme (a,b,c,d,e), de
Si la ou les solutions
sommet en sommetoptimales existent,
jusqu’à trouver ellespoint.
le meilleur peuvent être parmi
Pour essayer lescomprendre
de mieux points extrêmes du
comment
polèydre formé par fonctionne cette méthode,
les contraintes. considérons
Cette situationle problème de production
est illustrée par leprécédent.
tableauDans
ci-dessous
un premier temps, les contraintes sont ramenées à des égalités en introduisant de nouvelles
variables de la manière suivante.
u = 180
x=0
v = 120
y=0
w = 150
15 Dr. Adama A. Koné
En regardant z = 3x + 4y, on s’aperçoit que la moindre augmentation de x ou de y augmente
Programmation Linéaire. E.N.I
Recommandation
La solution recherchée est alors représentée par d le point courant. On aboutit bien à la
même conclusion que par la représentation graphique. Il faut produire 45 produits x et 30
produits y pour obtenir un profit maximum de 25500000 francs.
1.5.1 Principe
m
CT · X
X
max : Z(X) = = ci x i
i=1
(P) = s/c :
AX ⩽ b
A ∈ Mn,m (R), X ∈ Rm m b ∈ Rn
+, C ∈ R ,
m
bT · Y
X
min : W (Y ) = = bi y i
i=1
(D) = s/c :
AT Y ⩾ C
AT ∈ Mm,n (R), Y ∈ Rn+ , b ∈ Rn , C ∈ Rm
La solution du dual (D) peut être obtenue à partir de la solution optimale du primal (P ) à
l’aide de la propriété ci-après :
Propriété 1.5.1. Soit X ∗ une solution réalisable de (P ) c’est-à-dire X ∗ vérifie les contraintes
de (P ) et Y ∗ une solution réalisable de (D) c’est-à-dire Y ∗ vérifie les contraintes de (D).
X ∗ et Y ∗ sont solutions optimales de (P ) et (D) respectivement si et seulement si
Autrement dit
∀i ∈ {1, . . . , n}, yi∗ (eP )∗i = 0 et ∀j ∈ {1, . . . , m}, x∗j (eD )∗j = 0
Base x y e1 e2 e3 b
e1 2 3 1 0 0 180
e2 2 1 0 1 0 120
e3 1 3 0 0 1 150
−Z ′ 3 4 0 0 0 0
Dans la colonne b, on cherche le min abiri pour les air strictement positifs. La variable de la
colonne Base correspondante à la ligne i obtenue est la variable qui sort de la base. On peut
la notée xs
Base x y e1 e2 e3 b
e1 2 3 1 0 0 180
e2 2 1 0 1 0 120
e3 1 3 0 0 1 150
−Z ′ 3 4 0 0 0 0
Exemple 1.6.1.
Base x y e1 e2 e3 b
e1 1 0 1 0 −1 30
5
e2 3 0 0 1 − 31 70
1 1
y 3 1 0 0 3 50
−Z ′ 5
3 0 0 0 − 34 −200
Base x y e1 e2 e3 b
x 1 0 1 0 −1 30
e2 0 0 − 53 1 4
3 20
y 0 1 − 13 0 2
3 40
−Z ′ 0 0 − 53 0 1
3 −250
Base x y e1 e2 e3 b
x 1 0 − 14 3
4 0 45
e3 0 0 − 54 3
4 1 15
1
y 0 1 2 − 12 0 30
−Z ′ 0 0 − 54 − 14 0 −255
Recommandation
On constate que tous les cj ⩽ 0 alors ce dernier tableau est optimal et la solution recherchée
est peut interprétée de la façon suivante : Il faut produire 45 produits x et 30 produits y
pour obtenir un profit maximum de 25500000 francs.
Etape(0) : Mettre le PL sous forme standard et trouver une solution de base optimale
non réalisable de départ et poser k = 1 ;
Etape(1) : Si ∀i ∈ JB , bki ⩾ 0 alors : xk est la solution optimale et aller à (7), sinon aller à
(2) ;
Etape(2) : Sélectionner la variable sortante xs tel que bks = min{bki , bi < 0, i ∈ JB } ;
Etape(3) : Si ∀j ∈ JN , on a aksj ⩾ 0 alors ce modèle est non réalisable et aller à (7) ;
ckr ck
Etape(4) : Sélectionner la variable entrante xr tel que aksr
= min{ akj , aksj < 0, j ∈ JN } ;
sj
Etape(5) : Utiliser la formule de changement de base pour passer à une nouvelle base ;
Etape(6) : Poser k = k + 1 ;
Etape(7) : Fin ;
xs désigne la variable sortante ;
xr désigne la variable rentrante ;
bki : est la iiem composante du vecteur b à l’itération k ;
bks : est la valeur minimale des {bki < 0} et l’indice s correspond à l’indice de la variable
sortante ;
aks,j : est la composante de la matrice A correspondant à la variable sortante à l’itération k ;
ckr : est le coût de la variable rentrante à l’itération k.
La complexité algorithmique est une notion qui concerne l’évaluation des performances
des algorithmes réalisant les mêmes procédés ou les mêmes fonctionnalités et permettant de
comparer et de déterminer si un algorithme "a" est meilleur qu’un algorithme "b" et s’il est
optimal ou s’il ne doit pas être utilisé. Le but principal pour tout algorithme d’optimisation
globalement convergent est de trouver une valeur très proche de la solution optimale au bout
d’un certain nombre fini d’itérations. Mais ce nombre peut être extrêmement grand. Dans ce
contexte, l’étude de la complexité algorithmique prend en considération le nombre d’opérations,
plus précisément le temps d’exécution nécessaire sur ordinateur et l’encombrement mémoire,
en fonction de la taille du problème à traiter à savoir le nombre de variables et le nombre de
contraintes du problème.
Début
S := 0 ; I : =1 ; N :=10 {”1”}
while I <= N do {”2”}
S = S +K[I] {”3”}
I= I+1 {”4”}
end do ; End
Le temps d’exécution nécessaire pour cet algorithme t(n), composé de plusieurs temps de
chaque instruction. Nous supposons que :
• t1 est le temps d’exécution entre le début et la lecture des différentes variables d’initia-
tion {”1”}
n × tb avec tb = t2 + t3 + t4
t(n) = t1 + n × tb
Évaluation temporelle
L’évaluation temporelle d’un algorithme peut avoir plusieurs possibilités parmi elles
lorsqu’il s’agit d’une :
• Somme des temps exp : l’exécution de trois actions l’une après l’autre ou chaque
action demande un temps de traitement relatif,
Action 1 : Traitement 1 (t1 )
Action 2 : Traitement 2 (t2 ) temps d’exécution : t(n) = t1 + t2 + t3
Action 3 : Traitement 3 (t3 )
• Maximum de temps exp : c’est dans le cas d’une boucle avec la condition si
si ≪ condition est vérifiée ≫ alors on effectue
Action 1 : avec un temps de Traitement 1 (t1 )
sinon
temps d’exécution : t(n) = M ax(t1 , t2 )
Action 2 : avec un temps de Traitement 2 (t2 )
2.1 Introduction
23
Programmation Linéaire. Programmation en nombre entier E.N.I
32
M ax Z = 2x1 + 25 x2
sc
(P LE) 100x1 + 62x2 ⩽ 500
6x1 − 4x2 ⩾ −8
x1 , x 2 ∈ N
• Solution optimale du Programme Linéaire (PL) est :
SP LN E = (5 , 0) et Z P LN E =5
Ainsi la solution optimale réelle ZP L représente une borne inférieure dans le cas Min et une
borne supérieure dans le cas Max.
Rémarque 2.1.2. Pour la maximisation, on arrondit souvent les valeurs des variables à
l’entier inférieur, sinon la solution devient non réalisable. Pour la minimisation, l’arrondi se
fait à l’entier supérieur. On peut parfois emmené aussi à combiner les deux types d’arrondi
pour obtenir une solution réalisable au PLNE.
Le principe de cette méthode est d’attribuer des valeurs binaires (0 et 1) pour chaque
variable du système puis de déterminer toutes les combinaison possibles. Pour chaque
combinaison, nous calculons la valeur du critère à optimiser puis nous choisissons la meilleure
valeur qui donne la solution optimale.
M ax Z = 9x1 + 5x2 + 6x3 + 4x4
sc
6x1 + 3x2 + 5x3 + 2x4 ⩽ 10
(P LE) x1 + x2 ⩽ 1
x1 ⩽ x3
x1 ⩽ x4
x1 , x 2 , x 3 , x 4 ∈ N
pour x1=0, la solution optimale est de (x1, x2, x3, x4)=(0, 1, 0, 1) et M=9;
• pour x1 = 1, la solution optimale est de (x1 , x2 , x3 , x4 ) = (1, 0.8, 0, 0.8) et Z = 16.2,
pour x1=1, la solution optimale est de (x1,x2, x3, x4)=(1, 0.8, 0, 0.8 ) et M=16.2,
Nous remarquons bien que x2 et x4 sont fractionnaires. Donc nous reprenons le même
principe pour x2 et nous appliquons le même procédé.
Nous
• xremarquons
1 = 1 et x2 =bien que x2 du
0, Solution et x4 sont fractionnaires.
problème : (x1 , x2 , x3 , x4Donc
) = (1,nous reprenons
0, 0.8 le 13.8
, 0) et Z = même
principe
• x1 =pour
1 et x2
x2 et
= nous appliquons
1, Solution le même: procédé.
du problème (x1 , x2 , x3 , x4 ) = (1, 1, 0, 0.5) et Z = 16
Après cette itération nous brancherons à nouveau, sur la variable suivante x3 pour les
x1=1 et x2=0, Solution du problème : (x1, x2, x3, x4)= (1, 0,0.8 ,0) et M=13.8
deux valeurs possibles : 0 et 1
• x1x1=1
= 1, xet2 =
x2=1,
1, x3Solution du problème
= 0 Solution : (x1,: (xx2,1, x3,
du problème x2 , x4)=
x3 , x(1, 1, (1,
4) = 0, 0.5)
1, 0,et0.5)
M=16et Z = 16
Dans un premier temps, nous résoudrons le problème par une méthode de résolution par
exemple, la méthode du simplexe. Si les solutions des variables sont entières. On s’arrête, on
a trouvé l’optimum. Dans l’exemple précédant les résultats obtenus sont donnés comme suit :
165 15 9
Z= = 41.25 ; x1 = = 3.75 et x2 = = 2.25 (2.1.2)
4 4 4
On remarque bien que les résultats sont fractionnaires. Donc il faudra trouver une solution
entière et la valeur z obtenue est une borne supérieure pour la solution optimale de la
programmation linéaire en variable entière appliquée à cet exemple.
Démarche de résolution
Pour construire la première branche, on prend arbitrairement une variable qui est frac-
tionnaire dans la solution optimale 2.1.2.
Dans cet exemple, les deux variables du système sont fractionnaires. Donc, on choisit une
variable et une seule variable à la fois parmi toutes les variables fractionnaires. Le choix de
telle variable n’influence pas sur la solution final. Par ailleurs, le nombre de branches et le
nombre de sommets pour l’arbre définitif varie différemment pour chaque variable choisie.
1. Séparation 1
Dans cet exemple nous avons opté pour la variable x1 . À partir de cette variable, nous
démarrons la conception de notre arbre par la création de deux branches à partir de la
racine. Ensuite, nous définirons le sommet de chaque branche. Pour la création d’un
sommet, nous analysons, d’abord, la valeur de la variable x1 , afin d’en déduire l’entier
15
supérieur et l’entier inférieur. Dans notre exemple x1 = 4 = 3.75 avec (3 ⩽ 3.75 ⩽ 4).
Ce qui revient à séparer le problème en deux sous problèmes qui correspondent à la
création des deux premiers sommets ou :
▶ Le premier sommet est composé du problème initial plus la contrainte d’intériorité.
Dans ce cas, x1 ⩾ 4 (sous-problème 2)
M ax Z = 8x1 + 5x2
sc
x1
+ x2 ⩽ 6
(P LE) (2.1.3)
9x1 + 5x2 ⩽ 45
x1 ⩾ 4
x1 , x 2 ∈ N
b) Évaluation 1
Programmation Linéaire. Programmation en nombre entier E.N.I
Une fois la détermination des sommets dans une phase, on passe à la résolution des sou
problèmes résultant ou le choix du sous problème parmi les non-résolus est arbitraire. O
2. Évaluation
applique ensuite
Une foisune méthode de
la détermination des résolution,
sommets dans par exemple
une phase, la méthode
on passe du des
à la résolution simplexe.
sous-
problèmes résultant ou le choix du sous problème parmi les non-résolus est arbitraire.
Pour notre exemple, nous avons choisi le sous-problème 2 ou la solution (PL) est :
On applique ensuite une méthode de résolution, par exemple la méthode du simplexe.
Pour notre exemple, nous avonszchoisi
= 41,le sous-problème 2 ou la solution (PL) est :
x1 = 4, 9 3.
Z = 41, x1 = 4 et x2 = (2.1.5)
x2 = 9/5 . 4
À ce stade, la première branche d’arbre des solutions est donnée par la figure ci-dessous :
À ce stade, la première branche d'arbre des solutions est donnée par la figure 3.2.
Problème 1
Z=41.25
X1=3.75
X2= 2.25
x1 4 x1 3
Sous Sous
Problème 2 Problème 3
Z = 41
X1 = 4
X2= 1.8
Figure. 3.22.2
Figure –Première séparation /évaluation
– Première séparation-évaluation
3. Séparation 2
À partir du sous-problème 2 on crée deux nouvelles branches, sachant que la valeur de
x2 est égale à : 1.8 (x2 = 1.8). Donc, l’entier inférieur est de 1 et l’entier supérieur
est de 2. A ce moment, on sépare le sous-problème 2 pour x2 ⩽ 1 et pour x2 ⩽ 2. On
obtient à nouveau deux sommets (sous-problème 4 et sous problème 5) avec :
Sous-problème 4
M ax Z = 8x1 + 5x2
sc
x1 + x2 ⩽ 6
Avec 9x1 + 5x2 ⩽ 45 (2.1.6)
x1 ⩽ 3
x2 ⩽ 1
x1 , x 2 ∈ N
Sous-problème 5
M ax Z = 8x1 + 5x2
sc
x1 + x2 ⩽ 6
Avec 9x1 + 5x2 ⩽ 45 (2.1.7)
x ⩽ 3
1
x2 ⩾ 2
x1 , x 2 ∈ N
4. Évaluation 2
En résolvant le sous-problème 4 on constate qu’il n’est pas réalisable.
Pour le sous-problème 5, on trouve la solution optimale comme suit :
365
z= 9 = 40.555
x1 = 40
9 = 4.444
(2.1.8)
x2 = 1
Problème 1
Z=41.25
X1=3.75
X2= 2.25
x1 4 x1 3
SP2 SP3
Z = 41
X1 = 4
X2= 1.8
x2 1 x2 2
SP4 SP5
Non Z = 40.5
réalisable X1 = 4.4
X2= 1
x1 4
SP6
Z = 37
X1 = 4
X2= 1
Figure.2.3
Figure 3.4–: Sous problème
Sous problème 6 de la6troisième
de la troisième
séparation /séparation
évaluation /évaluation
puisque la valeur du z pour le sous-problème 7 est plus grande que la valeur du z pour
le sous-problème 6. Ce qui implique que la solution 6 n’est donc pas optimale.
Problème 1
Z=41.25
X1=3.75
X2= 2.25
x1 4 x1 3
SP2 SP3
Z = 41
X1 = 4
X2= 1.8
x2 1 x2 2
SP4 SP5
Non Z = 40.5
réalisable X1 = 4.4
X2= 1
x1 5 x1 4
SP7
SP6
Z = 37
Z = 40
X1 = 4
X1 = 5
X2= 1
X2= 0
Une fois que tous les sommets dans une branche ont été traités, on passe à l'exploration
de la deuxième tige du premier branchement. Cela dit, il n'existe pas de bonne méthode
pour l'exploration des sommets. On peut la faire selon plusieurs stratégies, soit en
profondeur ou en largeur ou tout simplement le meilleur d’abord. Le plus important est
de traiter tous les cas possibles sur cette arborescence.
Figure 2.4 – Sous problème 7 de la troisième séparation /évaluation
Pour notre exemple, il nous reste à vérifier la piste du sous-problème 3 ou la solution
obtenue est donnée par :
z = 39
x1 = 3 3.15
x2 = 3
5. Évaluation 4
Une fois que tous les sommets dans une branche ont été traités, on passe à l’exploration
de la deuxième tige du premier branchement. Cela dit, il n’existe pas de bonne méthode 49
pour l’exploration des sommets. On peut la faire selon plusieurs stratégies, soit en
profondeur ou en largeur ou tout simplement le meilleur d’abord. Le plus important
est de traiter tous les cas possibles sur cette arborescence. Pour notre exemple, il nous
z = 39
x1 = 3
x2 = 3
Problème 1
Z=41.25
X1=3.75
X2= 2.25
x1 4 x1 3
SP2 SP3
Z = 41 Z = 39
X1 = 4 X1 = 3
X2= 1.8 X2= 3
x2 1 x2 2
SP4
SP5
Non
Z = 40.5
réalisable
X1 = 4.4
X2= 1
x1 5 x1 4
SP7
SP6
Z = 37
Z = 40
X1 = 4
X1 = 5
X2= 1
X2= 0
avec x1 + x2 6
9x1 + 5x2 45
Figure 2.5 – Arborescence
x1 globale
, x2 duIN
problème 2.1.1
35
Théorie des graphes
Définition 3.2.1. Un graphe est un dessin géométrique définit par la donnée d’un ensemble
de points (appelés sommets ou nœuds ). Chaque arête a pour extrémité deux points,
éventuellement confondus.
Les graphes peuvent servir à représenter un grand nombre de situations courantes comme :
Exemple 3.2.2. La figure suivante représente un plan de circulation à sens unique d’une
ville où chaque localité est représentée par un point appelé sommet et chaque route par un arc
orienté indiquant le sens de la circulation.
Ainsi les notions qu’on peut définir sur un graphe, vont servir à résoudre certains problèmes
liés à différents domaines
Si on définit une relation sur un ensemble où la notion d’ordre n’est pas important, on
représente ainsi la relation entre deux sommets par un arc non orienté appelé arête. On
obtient alors un graphe non orienté, noté G = (X, E). Une illustration parfaite est le graphe
ci-dessous :
Rémarque 3.2.3. ▶ Une arête dont les extrémités sont confondues est une boucle.
Notation :
Soit G = (x, U ) un graphe orienté :
Exercice 3.2.4. Déterminer l’ensemble des prédécesseurs, successeurs et voisins de tous les
sommets de ce graphe ci-dessous :
▶ Le sommet A est l’extrémité initiale de 3 arcs, on dit alors que le demi-degré extérieur
de A est 3 on le note d+
G (A) = 3.
d+
G (A) = {u ∈ U, I(u) = x}
▶ De même le sommet A est l’extrémité terminale d’un seul arc. On dit dans ce cas que
le demi-degré intérieur de A est 1 on le note d−
G (A) = 1.
d−
G (A) = {u ∈ U, T (u) = x}
−
dG (A) = d+
G (A) + dG (A)
Rémarque 3.2.5. Si un sommet possède une ou plusieurs boucles, chacune apporte une
contribution de 2 dans le calcul du degré de ce sommet.
Propriété 3.2.6.
1. Dans un graphe orienté G = (X, U ), la somme des demi-degrés intérieurs des sommets
de G est égale a la somme des demi-degrés extérieurs des sommets de G.
d+ d−
X X
Autrement dit : G= G
x∈X x∈X
2. Dans tout graphe, la somme des degrés est un nombre pair.
3. La somme des degrés d’un graphe non orienté est égale à deux fois le nombres d’arêtes.
Exemple 3.2.7. Le tableau suivant détermine les demi-degrés extérieurs et intérieurs des
sommets du graphe de l’exercice 3.2.4.
A B C D E Total
d+ (x) 3 2 3 1 0 9
d− (x) 1 2 1 1 4 9
d(x) 4 4 4 2 4 18
Table 3.1 –
d+ d−
X X
On voit bien que : G (x) = G (x) est vérifiée et
X x∈X x∈X
dG (x) est un nombre pair.
x∈X
Rémarque 3.2.8.
c) Soient UA l’ensemble des routes reliant les villes de la région de Ségou (nationales et
départementales) et W l’ensemble des routes départementales maliennes. On définit
ainsi le graphe GA W = (A , W ∩ UA ), dit sous-graphe partiel de G représentant
l’ensemble des routes départementales de la région de Ségou.
On appelle graphe complet un graphe dont tous les sommets sont adjacents.
Exemple 3.4.1.
Exemple 3.4.2.
Quatre 4 composantes électroniques doivent être alimenter par sept 7 sources. Chaque source
peut alimenter plusieurs composantes comme l’indique le tableau suivant :
Sachant que chaque source peut participer à l’alimentation périodique d’une composante,
proposer un plan optimal d’alimentation pour le bon fonctionnement de ces composantes.
Solution 3.4.3.
On associe à cette situation le graphe non orienté G = (X, A) tel que :
▶ X : l’ensemble des sommets représentant les composantes électroniques
X = {Ci , /i = 1, . . . , 4}
▶ A l’ensemble des arêtes : deux sommets sont reliés par une arête si ils sont alimentées
par la même source.
Figure 3.10 – Les composantes C1 , C2 et C3 ne peuvent pas être alimenter en même temps
Le graphe complémentaire (G) du graphe G détermine les composantes qui peuvent être
alimenter en même temps.
Figure 3.11 – La composante C1 peut être alimenter en même temps que la composante C4 , mais ne
peut pas être alimenter avec la composante C3
Définition 3.4.4.
• Une face d’un graphe planaire est par définition une région du plan limité par des arêtes
de telle sorte que deux points arbitraires, dans cette région, reliées par une arête ne
rencontrent ni sommet ni arête.
• La frontière d’une face est l’ensemble des arêtes qui l’entourent.
• Une face infinie est une face illimitée, elle n’admet pas de contour et elle unique. Les
autres faces sont finies.
• Deux faces sont dites adjacentes si leurs frontières ont une arête commune.
Rémarque 3.4.5.
Les graphes planaires vérifient la formule |X| + F = |A| + 2 tel que : F est le nombre de faces
(ou régions), |X| est le nombre de sommets et |A| est le nombre d’arêtes.
Exemple 3.4.6.
Exemple 3.4.7.
Rémarque 3.4.8.
Exemple 3.4.9. Dans un atelier comportant quatre ouvriers où chacun peut effectuer de 1 à
3 tâches, représenter les possibilités d’affectation des ouvriers aux différentes taches par un
graphe biparti G.
On commence par établir une liste ordonnée des sommets (ordonner les sommets suivant
l’ordre décroissant de leur degré)
Tant qu’il reste des sommets à colorier, exécuter les actions suivantes :
2. Chercher dans la liste des sommets, le premier sommet non coloré et le colorer avec la
couleur d’usage ;
3. Examiner tour à tour, dans l’ordre de la liste, tous les sommets non coloriés et ; colorier
chaque sommet non adjacent à un sommet déjà coloré avec la couleur d’usage.
Rémarque 3.5.1.
On appelle nombre chromatique d’un graphe G, le nombre minimum pour lequel le graphe
G est K-coloriable. On le note par δ(G). Si δ(G) = 2, le graphe est biparti.
Exercices
Exercice 3.5.2. Dans une partie d’échec, le joueur a effectué les déplacements suivants pour
son cavalier : b1 − a3 − b5 − c3 − a4 − c3 − d5
Représenter les déplacements du cavalier par un graphe orienté.
Exercice 3.5.3.
Les liaisons internes décrites dans le tableau ci-dessous sont assurées par les différentes
compagnies aériennes au Mali le 31 décembre 2018.
• Indication :
Le mot ≪ OK ≫ signifie qu’il y’ a un vol entre les deux villes.
• Notation
Pour le besoin de la représentation du graphe, donner le chiffre 1 à Bamako, 2 à Kayes,
3 à Mopti, 4 à Gao, 5 à Toumbouctou, 6 à Menaka,
Exercice 3.5.4.
Le tableau ci-dessous représente un réseau de distribution d’électricité de 5 centrales hybrides
entre 6 grands quartiers du district de Bamako.
Centrales C1 C2 C3 C4 C5
Quartiers Q1 , Q2 Q3 , Q4 , Q2 Q5 , Q4 , Q6 Q1 , Q3 Q6 , Q5
Sachant qu’un centrale ne peut alimenter qu’un seul quartier par heure,
▶ 1 signifie que les deux sommets sont reliés par un arc orienté.
▶ 0 signifie que les deux sommets ne sont pas reliés par un arc.
Exemple 3.6.1.
x1 x2 x3 x4
x1 0 1 0 0
x2 1 0 1 1
x3 1 0 0 0
x4 0 0 1 0
u = (x1 , x2 ) est un arc du graphe G ; c’est-à-dire x1 est une extrémité initiale de l’arc u et x2
son extrémité terminale, dont l’élément a12 (l’élément de la 1ère ligne et de la 2ième colonne)
de la matrice d’adjacence du graphe G sera égale à 1. Par contre il n’existe pas d’arc ayant
x1 comme extrémité initiale et x3 comme extrémité terminale ainsi l’élément a13 , élément de
la l’élément de la 1ère ligne et de la 3ième colonne de la matrice sera égal à 0.
Notation
Les éléments de la matrice d’adjacence sont définis par :
1 s’il existe un arc orienté de la forme (xi , xj ); c’est-à-dire
xi est son extrémité initiale et xj , son extrémité terminale.
aij =
0 sinon
Exemple 3.6.2.
x1 x2 x3 x4
x1 0 1 0 0
x2 1 0 1 2
x3 1 0 0 0
x4 0 0 1 0
À parti du graphe on 2 arcs de la forme (xi , xj ) ; c’est à dire ayant x2 comme extrémité
initiale et x4 comme extrémité terminale, alors l’élément a24 sera égal à 2.
Notation
Les éléments de la matrice associée d’un graphe G sont définis par :
aij = k ; si on a k arcs orientés de la forme (xi , xj ).
La matrice d’incidence aux arcs d’un graphe G = (X, U ) est à n ligne et m colonnes,
ses éléments prennent les valeurs 1, 0 ou −1. Chaque ligne de la matrice est associée à un
sommet et chaque colonne à un arc, ainsi chaque élément de la matrice indique la relation
entre un sommet et un arc comme suit :
Exemple 3.6.4.
u1 u2 u3 u4 u5 u6 u6
x1 +1 −1 −1 0 0 0 0
x2 −1 +1 0 +1 +1 +1 0
x3 0 0 +1 −1 0 0 −1
x4 0 0 0 0 −1 −1 +1
Rémarque 3.6.5. Cette matrice ne convient pas pour les graphes avec boucles.
Notation
Les éléments de la matrice d’incidence aux arcs d’un graphe sont définis comme suit :
+1 si xi est l’extrémité initiale de l’arc ui
aij = −1 si xi est l’extrémité terminale de l’arc ui
0 dans les autres cas
• Le nombre de valeurs égales à (+1) d’une ligne donne le degré extérieur (d+
G (x)) du
sommet x correspondant
• Le nombre de valeurs égales à (−1) d’une ligne donne le degré intérieur (d−
G (x)) du
sommet x correspondant
Dans la représentation sagittale, on examine tous les arcs de G puis on détermine pour
chaque arc son extrémité initiale et son extrémité terminale comme suit :
u1 u2 · · um
I(ui ) I(u1 ) I(u2 ) · · I(um )
T (ui ) T (u1 ) T (u2 ) · · T (um )
Les cheminements dans la théorie des graphes sont de quatre types : la chaîne, le cycle, le
chemin et le circuit.
On définira ces notions dans le graphe G.
3.9.1 La chaîne
Soit G = (X, U ) un graphe,
Une chaîne joignant deux sommets xi et xj dans un graphe G est une suite de sommets
reliés par arêtes tels que, deux sommets successifs ont une arête commune.
Exemple 3.9.1.
Dans le graphe G = (x, U ) de la section 3.12.1, la suite de sommets suivante (s1 , s2 , s3 , s4 )
est une chaîne joignant s1 à s4 . C’est une chaîne simple.
Par contre la chaîne forme par (s1 , s5 , s2 , s1 , s5 ) n’est pas simple car l’arc (s1 , s5 ) est
parcouru deux fois.
Une chaîne est dite simple si on passe une seule fois par ses arcs (arête)
3.9.2 Le chemin
Soit G = (X, U ) un graphe
Un chemin du sommet x0 à xk dans un graphe G, est une suite de sommets reliés
successivement par des arcs orientés dans le même sens à partir du sommet x0 jusqu’au
sommet xk et noté par (x0 , x1 , . . . , xk ).
Autrement dit, deux sommets successifs d’un chemin sont respectivement extrémité initiale
et terminale du même arc, exceptés le premier sommet x0 et le dernier sommet xk .
Rémarque 3.9.3. Dans un chemin (chaîne) simple tous (tes) les arcs (arêtes) sont différents
(tes)
3.9.3 Le cycle
Un cycle est une chaîne simple dont les deux extrémités coïncident (x0 coincide avec xk ),
on le note par (x0 , x1 , x2 , . . . , xk = x0 ).
3.9.4 Le circuit
Un circuit est un chemin dont les deux extrémités sont confondues ; on le note par
(x0 , x1 , x2 , . . . , xk = x0 ).
On donne le graphe orienté suivant :
Exemple 3.9.6.
Soit le graphe G = (X, U ) ci-dessus, la suite de sommets suivants (S1 , S2 , S3 , S4 , S5 , S1 )
est un circuit.
Rémarque 3.9.7. Une chaîne (un cycle-un chemin-un circuit) est dite élémentaire si on
passe une seule fois par ses sommets (tous les sommets sont différents).
• par contre (S4 , S3 , S4 , S5 , S3 ) ce chemin n’est pas élémentaire car on passe deux fois
par le sommet S4 ;
▶ Un chemin eulérien est un chemin simple qui passe une et une seule fois par chaque
arc du graphe.
▶ Un chemin hamiltonien est un chemin qui passe une et une seule fois par chaque
sommet du graphe.
Rémarque 3.9.9. La notion de chaîne et de cycle ne respect pas l’orientation des arcs, par
contre celle de chemin et circuit la respect.
3.10 Connexité
On définit la notion de forte connexité dans un graphe par la relation entre deux sommets
de la manière suivante :
Deux sommets x et y ont une relation de connexité ⇔ s’il existe un chemin entre x à y ;
ou de y à x.
On appelle composante fortement connexe un ensemble de sommets qui ont deux à deux
la relation de forte connexité ; de plus, tout sommet en dehors de la composante n’a pas de
relation de forte connexité avec aucun élément de la composante.
Soit G un graphe orienté, un moyen de vérifier si ce graphe est fortement connexe est
d’appliquer l’algorithme de marquage suivant, qui permet de déterminer toutes ses compo-
santes fortement connexes.
Le principe
L’idée de cet algorithme est de parcourir le graphe à partir d’un sommet x dans le sens
direct (en suivant les flèches des arcs) et de créer l’ensemble des sommets parcourus. La même
procédure est effectuée dans le sens opposé (en suivant les flèches en sens inverse) pour créer
un deuxième ensemble de sommets parcourus. Le premier ensemble regroupe les sommets
accessibles à partir de sommet x, le deuxième regroupe les sommets qui peuvent atteindre x.
L’intersection de ces deux ensembles donne les sommets qui à la fois peuvent atteindre x et
sont accessibles à partir de x. Cette intersection forme la composante fortement connexe qui
contient le sommet x.
Énoncé
Données : un graphe orienté G = (X, U )
Résultat : le nombre k de composantes fortement connexe de (G) ainsi que la liste {C1 , C2 , . . . , Ck }
de ces composantes fortement connexes.
(0) Initiation : k = 0; W = X
(1)
(1.1) Choisir un sommet de W et le marquer d’un signe (+) et (−).
(1.2) Marquer tous les successeurs directs et indirects de x avec (+)
(1.3) Marquer tous les prédécesseurs directs et indirects de x avec (−)
(1.4) Poser k = k + 1 et Ck l’ensemble des sommets marqués avec (+) et (−)
(1.5) Retirer de W les sommets de Ck et effacer toutes marques ; W = W − Ck
(1.6) On teste si W = ∅
Si oui, terminer aller à (2).
Sinon, aller à (1)
(2) Le nombre de composante fortement connexes de (G) est k. Chaque ensemble
Ci , i = 1, . . . , k, correspond aux sommets d’une composante fortement connexe de (G).
Application
Soit le graphe G = (x, U ) suivant :
de forte connexité, donc il existe plus d’une composante fortement connexe, on conclut que le
graphe G n’est pas fortement connexe.
On applique l’algorithme de marquage précédent pour déterminer les composantes forte-
ment connexes
• Initialisation :
k = 0. W = {S1 , S2 , S3 , S4 , S5 , S6 }
• Itération 1 :
• Itération 2 :
On marque le sommet S5 d’un signe (+) et (−), on constate qu’il n’y a pas d’autres
sommets à marquer.
Alors C2 = {S5 } l’ensemble des sommets marqués à la fois par (+) et (−).
On retire de W , les sommets de C2 , on obtient : W = ∅, terminer.
Le nombre de composante fortement connexes de (G) est 2, elles sont C1 = {S1 , S2 , S3 , S4 , S6 }
et C2 = {S5 }.
Au graphe (G), on fait correspondre un graphe réduit noté (Gr ) représenté comme suit :
Exemple
• Le niveau Nul, noté N0 détermine les sommets du graphe n’ayant pas de prédécesseurs
(Γ−
G (s) = ∅).
• Le premier niveau noté N1 définit les sommets du graphe dont tous les prédécesseurs
appartiennent à N0 .
Dans le graphe G le sommet s2 admet un prédécesseur le sommet s1 qui appartient au
niveau N0 d’où N1 = {s2 }
• Le deuxième niveau noté N2 définit les sommets du graphe dont tous les prédécesseurs
appartiennent à N0 ∪ N1 .
Dans le graphe G le sommet s4 admet comme prédécesseur le sommet s2 qui appartient
à N0 ∪ N1 d’où N2 = {s4 }
• Le troisième niveau noté N3 définit les sommets du graphe dont tous les prédécesseurs
appartiennent à N0 ∪ N1 ∪ N2 .
Le sommet s3 admet comme prédécesseur le sommet s1 , s2 et s4 qui appartiennent à
N0 ∪ N1 ∪ N2 d’où N3 = {s3 }
GESTION DU PROBLÈME DE
TRANSPORT
61