Résumé de Recherche Opérationnelle
Résumé de Recherche Opérationnelle
Opérationnelle
EBENGO BONSONGI Alain
+243824179316
alainebengo67@[Link]
1
TABLE DES MATIERES
BIBLIOGRAPHIE ................................................................................................ 57
2
CHAPITRE 1 : PROGRAMMATION LINÉAIRE
La programmation linéaire est une technique mathématique qui consiste à optimiser (maximiser ou
minimiser) une fonction (appelée fonction-objectif ou encore fonction économique) soumise à des
contraintes d'égalités ou d'inégalités.
Les contraintes sont très variées; elles peuvent être imposées par :
Généralement ces contraintes s'énoncent dans les termes suivants: "pas plus que", "pas moins que", "au
moins", "au plus", etc. et s'expriment mathématiquement par un système d'inéquations.
1ère contrainte : Pour le moment, l’entreprise dispose de 4600 unités de matière première (il s’agit de la
contrainte de la matière première, laquelle est de type ≤ puisque ne disposant que d’une quantité de
4600, pas plus) ;
2ème contrainte : L’entreprise dispose de 4600 unités de matière première et de 5000 heures de travail
(contrainte en termes d’heures de travail, l’entreprise n’en disposant que de 5000, il s’agit encore ici
d’une contrainte de type ≤) ;
3ème contrainte : Pour satisfaire les demandes des clients, l’entreprise doit produire 950 unités de produit,
dans n’importe quelle combinaison (de ces 4600 unités de MP que nous disposons, nous devons produire
950 unités avec n’importe quel produit, cela veut dire qu’avec X₁ nous produirons autant, avec X₂ autant,
etc. mais la production totale doit être égale à 950, il s’agit donc d’une contrainte de type =) ;
4ème contrainte : Pourvu que l’entreprise produise au moins 450 unités de produit de type 4 (il s’agit d’une
contrainte de type ≥ puisque la quantité minimale à produire est de 450).
3
Modélisons le problème :
Ne connaissant pas les quantités des produits P₁, P₂, P₃ et P₄, nous écrivons ce qui suit :
X₁ P₁
X₂ P₂
X₃ P₃
X₄ P₄
Max 𝜋 = 4x₁+6x₂+7x₃+8x₄
SC 2x₁+3x₂+4x₃+7x₄ ≤ 4600
3x₁+4x₂+5x₃+6x₄ ≤ 5000
x₁+x₂+x₃+x₄ = 950
x₄ ≥ 450
xi ≥ 0 (i = 1….4)
Variables x₁ x₂ x₃ x₄ w₁
d’écart des Ressources
y₁ 2 3 4 7 0 4600
contraintes respectives
de type ≤. y₂ 3 4 5 6 0 5000 de chaque
z₁ 1 1 1 1 0 950 variable de
z₂ 0 0 0 1 -1 450 base.
FOA -1 -1 -1 -2 1
FO -4 -6 -7 -8 0 0
Bien avant de procéder à la première transformation du tableau, nous disons que la solution sera dite
optimale si tous les éléments de la fonction-objectif (FO) sont positifs. Notons que les variables se trouvant
dans la base sont y₁,y₂,z₁ et z₂ et celles se trouvant hors base sont x₁,x₂,x₃, x₄ et w₁.
4
Identifions la colonne pivot et la ligne pivot :
Nous pouvons identifier la colonne pivot à partir de la fonction-objectif artificielle (FOA) ou de la fonction-
objectif (FO) en considérant l’élément négatif le plus petit. Ici nous choisissons la colonne pivot à partir
de la FOA. L’élément négatif le plus petit de la FOA correspond à -2.
x₁ x₂ x₃ x₄ w₁
y₁ 2 3 4 7 0 4600
y₂ 3 4 5 6 0 5000
z₁ 1 1 1 1 0 950
z₂ 0 0 0 1 -1 450
FOA -1 -1 -1 -2 1
FO -4 -6 -7 -8 0 0
Pour trouver la ligne pivot, nous nous servons de la colonne pivot. Nous divisons tout d’abord chaque
ressource par l’élément de la colonne pivot se trouvant sur sa ligne. Par exemple pour la ressource 4600,
nous la divisons par l’élément de la colonne pivot se trouvant sur sa ligne, il s’agit de 7 dans notre exemple
4600
(voir tableau précédent). Nous aurons donc qui nous donne 657,14 et pour les autres éléments nous
7
5000 950 450
aurons : 6 = 833,33, 1 = 950 et 1
= 450. Le plus petit de tous ces rapports correspondra à la ligne
pivot. Et le plus petit rapport dans notre exemple correspond à 450 (450/1=450), provenant de la 4ème
ligne.
1 est appelé élément pivot puisqu’il se trouve dans
l’intersection de la ligne pivot et de la colonne pivot.
Nous aurons ce résultat :
x₁ x₂ x₃ x₄ w₁
y₁ 2 3 4 7 0 4600
y₂ 3 4 5 6 0 5000
z₁ 1 1 1 1 0 950
z₂ 0 0 0 1 -1 450
FOA -1 -1 -1 -2 1
FO -4 -6 -7 -8 0 0
La première transformation du tableau consiste à identifier la variable entrante dans la base et la variable
sortante de celle-ci. Z₂ de la ligne pivot sort de la base et x₄ de la colonne pivot y entre. Les deux variables
échangent leurs places. Les transformations pour trouver le 2ème tableau vont également concerner les
éléments de la ligne pivot, la colonne pivot et les ressources.
Prendre chaque élément de la ligne pivot et le diviser par l’élément pivot, excepté l’élément pivot. Nous
aurons ainsi :
0 0 0 −1
= 0, = 0, = 0, = -1
1 1 1 1
5
Transformation de la colonne pivot :
Prendre chaque élément de la colonne pivot et le diviser par l’élément pivot, excepté l’élément pivot. Et
multiplié la réponse trouvée par -1. Nous aurons :
7
= 7, multiplié par -1 nous donne -7
1
6
= 6, multiplié par -1 nous donne -6
1
−2
= -2, multiplié par -1 nous donne 2
1
E à T : Elément à transformer.
Le nouveau tableau dans lequel nous avons déjà identifié la ligne et la colonne pivot est le
suivant :
x₁ x₂ x₃ z₂ w₁
y₁ 2 3 4 -7 7 1450
y₂ 3 4 5 -6 6 2300
z₁ 1 1 1 -1 1 500
x₄ 0 0 0 1 -1 450
FOA -1 -1 -1 2 -1
FO -4 -6 -7 8 -8 3600
Partant du 3ème tableau, les éléments se trouvant en bas de la ligne pivot du tableau précédent ont été
transformés avec la formule suivante :
6
NB : Soulignons que x₄ et z₂ ont échangé de place (variable entrante et variable sortante) et que la
ligne de 500 a été choisie comme pivot puisque celle de 450 a déjà été utilisée.
Cette-fois, les transformations concerneront tous les éléments pour trouver le nouveau tableau.
Les éléments se trouvant en haut de la ligne pivot sont transformés avec la formule suivante :
deviendra 1 dans le tableau suivant). Appliquez la même formule avec tous les éléments se trouvant en
haut de la ligne pivot. Étant donné que toutes les formules pour transformer les éléments du tableau ont
été énumérées, nous obtenons ce nouveau tableau :
z₁ x₂ x₃ z₂ w₁
y₁ -2 1 2 -5 5 450
y₂ -3 1 2 -3 3 800
x₁ -1 1 1 -1 1 500
x₄ 0 0 0 1 -1 450
FOA 1 0 0 1 0
FO 4 -2 -3 4 -4 5600
Interprétation du tableau : L’entreprise COTECA doit produire 500 unités de produit de type 1 et 450
unités de produit de type 4 pour maximiser son chiffre d’affaires à 5600$. Il lui restera 450 unités de
matière première (ȳ₁ = 450) et elle aura économisé 800 heures de travail (ȳ₂ = 800).
Les éléments du tableau ont été trouvés de la manière suivante, partant du tableau qui vient avant lui :
1×2
4-( 1
) =2
1×2
7-( 1
) =5
1(−4)
-6-( 1
) = -6+4
= -2
1(−4)
-7-( 1
) = -7+4 ce qui donne -3.
7
−1(−4)
8-( 1
) =4
1(−4)
-8-( ) = -8+4
1
= -4
1(−1)
-1-( 1
) = -1-(-1)
Etant donné que nous n’avons plus de valeurs négatives sur la FOA, on supprime les colonnes des
variables artificielles (z₁ et z₂) et la FOA.
z₁ x₂ x₃ z₂ w₁
y₁ -2 1 2 -5 5 450
y₂ -3 1 2 -3 3 800
x₁ -1 1 1 -1 1 500
x₄ 0 0 0 1 -1 450
FOA 1 0 0 1 0
FO 4 -2 -3 4 -4 5600
Après avoir supprimé ces éléments, nous aurons ce résultat, dans lequel ont été identifiées la ligne
pivot et la colonne pivot :
x₂ x₃ w₁
y₁ 1 2 5 450
y₂ 1 2 3 800
x₁ 1 1 1 500
x₄ 0 0 -1 450
FO -2 -3 -4 5600
Au niveau de la colonne pivot, nous devrions choisir 4 puisqu’il est l’élément négatif le plus petit,
nous avons choisi -2 dans le but de raccourcir les calculs. La solution n’est toujours pas optimale
étant donné que l’on retrouve des éléments négatifs sur la fonction-objectif (FO). Procédons à une
nouvelle transformation du tableau.
8
y₂ x₂ w₁
x₂ 1 2 5 450
y₂ -1 0 -2 350
x₁ -1 -1 -4 50
x₄ 0 0 -1 450
FO 2 1 6 6500
Interprétation du tableau : L’entreprise COTECA doit produire 50 unités de produit de type 1, 450 unités
de produit de type 2 et 450 unités de produit de type 4, ceci pour maximiser son chiffre d’affaires à 6500$.
Elle économisera 350 heures de travail.
Les calculs suivants ont été effectués pour avoir les éléments du tableau :
Les éléments du tableau ont été trouvés de la manière suivante, partant du tableau qui vient avant lui :
Les ressources :
450(1)
800-( 1
) = 350
450(1)
500-( ) = 50
1
450(0)
450-( 1 ) = 450
2(1)
2-( 1
) = 2-2
=0
5(1)
3-( ) = 3-5
1
= -2
2(1)
1-( 1 ) = -1
5(1)
1-( 1 ) = 1-5
= -4
5(0)
-1-( 1 ) = -1
2(0)
0-( 1 ) = 0
2(−2)
-3-( 1 ) = -3-(-4)
=1
5(−2)
-4-( 1 ) = -4-(-10)
=6
9
1.2 Algorithme dual de simplexe
Soit le problème P suivant :
P : min 𝜋 = 2x1+3x2
S/C
2x1+x2 ≥ 4
-x1+x2 ≥ 2
x1, x2 ≥ 0
Résoudre ce problème à l’aide de l’algorithme dual du simplexe.
Notons qu’en plus de changer de signe, les contraintes de type ≥ deviennent ≤.
Nous aurons donc :
P : min 𝜋 = 2x1+3x2
S/C
-2x1-x2 ≤ -4
Nous avons ajouté 2
x1-x2 ≤ -2
variables d’écart (une pour
x1, x2 ≥ 0 chaque contrainte). Ces 2
Construisons le tableau : variables d’écart forment
notre matrice unité.
x₁ x₂ y₁ y₂ 1
-2 -1 1 0 -4
1 -1 0 1 -2
2 3 0 0 0
Coefficients de la fonction-
S’il existe au moins une
objectif (FO), provenant de
ressource < 0, la
P : min 𝜋 = 2x1+3x2.
solution n’est pas
Transformons le tableau : optimale.
2 3
Colonne pivot : elle correspond au plus petit rapport entre |−2|
et |−1|. Le plus petit rapport est donc le
2
premier c’est-à-dire |−2| = 1.
Ligne pivot : correspond à la plus petite ressource (-4 avec notre exemple).
Diviser tous les éléments de la ligne pivot (y compris la ressource) par l’élément pivot, excepté l’élément
pivot lui-même. Ce qui nous donnera les résultats suivants :
−1 1 0 −4
= 0,5, =-0,5, = 0, = 2.
−2 −2 −2 −2
10
Chaque élément de la colonne pivot devient 0 et l’élément pivot devient 1 dans le nouveau tableau.
Les éléments en bas de la ligne pivot sont trouvés avec la formule suivante :
E à T : Elément à transformer.
é𝑙é𝑚𝑒𝑛𝑡 𝑑𝑒 𝑙𝑎 𝑙𝑖𝑔𝑛𝑒 𝑝𝑖𝑣𝑜𝑡 𝑎𝑢−𝑑𝑒𝑠𝑠𝑢𝑠 𝑑𝑒 E à T × élément de la colonne pivot sur la ligne de E à T
E à T-( )
é𝑙é𝑚𝑒𝑛𝑡 𝑝𝑖𝑣𝑜𝑡
Nous aurons les résultats suivant en appliquant la formule :
−1×1
-1-( −2
) = -1-0,5
= -1,5
1×1
0-( −2 ) = 0-(-0,5)
= 0+0,5 = 0,5
0×1
1-( −2 ) = 1
−1×2
3-( −2
) = 3-1
=2
1×2
0-( ) = 0-(-1)
−2
= 0+1= 1
0×2
0-( ) = 0
−2
−4×2
0-( −2
) = -4
Le nouveau tableau dans lequel sont identifiées la colonne pivot et la ligne pivot est le suivant :
x₁ x₂ y₁ y₂ 1
1 1⁄ −1⁄ 0 2
2 2
0 −3⁄ 1⁄ 1 -4
2 2
0 2 1 0 -4
Etant donné qu’une ressource est < 0, nous transformons à nouveau le tableau.
0 0,5 1 −4
Ligne pivot : = 0, =-0,33, =-0,66, = 2,66.
−1,5 −1,5 −1,5 −1,5
11
Les éléments en haut de la ligne pivot sont trouvés avec la formule suivante :
0,5×0,5
− 0,5 − ( −1,5
) = −1⁄3
1×0,5
0− ( ) = 1⁄3
−1,5
0,5×2
1− ( −1,5 ) = 5⁄3
1×2
0− (−1,5) = 4⁄3
Les ressources :
−4×0,5
2− ( −1,5
) = 2⁄3
−4×2
−4−( ) = −28⁄3
−1,5
x₁ x₂ y₁ y₂ 1
1 0 −1⁄ 1⁄ 2⁄
3 3 3
0 1 −1⁄ −2⁄ 8⁄
3 3 3
0 0 5⁄ 4⁄ −28⁄
3 3 3
Notons que l’algorithme dual de simplexe est une méthode utilisée en programmation
linéaire pour résoudre des problèmes d’optimisation. Contrairement à l’algorithme primal
de simplexe, qui déplace les variables de base vers l’optimalité, l’algorithme dual de
simplexe travaille avec les variables duales pour améliorer la solution. Sa particularité
réside dans le fait qu’il utilise des informations de dualité pour effectuer des pivots dans
le tableau de programmation linéaire. Cela permet de détecter et de traiter les
incohérences dans les contraintes du problème, ce qui peut accélérer la convergence vers
une solution optimale.
12
CHAPITRE 2 : PROBLÈME DE TRANSPORT
2.1 La règle du Coin Nord-Ouest
Le problème de transport en R.O sont des
2 5 7 problèmes mathématiques qui cherchent à
C=(
3 6 1
) optimiser le transport de marchandises (ou de
9 6 4 personnes) entre des lieux donnés, en
50 50 50 utilisant le moins de ressources possibles. Ses
problèmes se posent souvent dans les
Z = (zi) = (10;4;6;5) situations où il y a des contraintes de
capacités (par exemple, un camion ne peut
W = (wj) = (5;12;8)
transporter qu’un certain nombre de
Où : marchandises), des coûts variables (par
exemple, le coût de transport peut dépendre
C = Matrice de coût de la distance parcourue ou du mode de
Z = La quantité offerte transport utilisé), et des objectifs différents
(par exemple, minimiser les coûts ou
W = La demande
maximiser le profit).
Résolution : Le but de R.O est de trouver les solutions
5 12 8 efficaces. Les solutions obtenues permettent
10 d’optimiser les itinéraires de transport, de
4 réduire les coûts, d’améliorer la productivité
( ) et de maximiser les profits.
6
5
Etape 1 :
Nous avons 10 et la quantité
demandée est de 5, nous donnons
5 12 8 5, il nous restera 5 et la demande
10 sera éliminée.
4
( )
6
5
0
5 12 8
5 10 5
4
( )
6
5
13
Etape 2 :
Nous avons 5 et la demande est de 12,
étant donné que la demande est
supérieure à l’offre (12>5), nous donnons
0
tout ce que nous avons. L’offre devient
5 12 8
donc 0 et la demande diminue de 7.
5 10 5
4
( )
6
5
Etape 3 :
Nous avons 0 et la demande est de
8, nous mettons simplement 0
puisque l’offre est nulle.
0 7
5 12 8
0 5 10 5 5
4
( )
6
5
14
Etape 5 :
Nous avons 4 et la demande est de 7,
la demande est donc supérieure à
l’offre, nous donnons tout, c’est-à-
0 7
dire 4. La demande reste donc 3.
5 12 8
0 5 10 5 5 0
4 0
( )
6
5
3
0 7
5 12 8
0 5 10 5 5 0
0 4 0 4
( )
6
5
NB : Si l’offre est égale à 0 et que la demande est supérieure à O, nous mettrons 0. Nous
ferons de même dans le sens inverse.
Si vous avez continué avec cette logique, vous aurez ce résultat à la fin :
0
3 0
0 7 5
5 12 8
0 510 5 5 0
04 0 4 0
( ) Ce résultat forme la matrice de transport, nommée X.
03 6 0 3 3
0 5 0 0 5
5 5 0
0 4 0
X=( ) est un plan de transport admissible.
0 3 3
0 0 5
Pour trouver le coût de transport, nous multiplions la matrice de coût par la matrice
de transport c’est-à-dire C×X.
15
2 5 7 5 5 0
3 6 1 0 4 0
( ) ( )
9 6 4 0 3 3
50 50 50 0 0 5
= 2×5+5×5+7×0+3×0+6×4+1×0+9×0+6×3+4×3+50×0+50×0+50×5
= 339 FC
IMPORTANT : L’offre peut être des chaises et la demande des chaises bien évidement.
L’offre peut aussi s’agir des tables, des télévisions, des ordinateurs, etc. Cela dépendra
de ce que vous produisez. Et le coût pour transporter ces tables (par exemple) vers la
demande est de 339FC. Il est possible de transporter ces marchandises vers la demande
à un coût inférieur à 339FC, c’est ainsi nous disons que la solution n’est pas optimale
mais plutôt admissible.
2.2 Méthode du minimum de la ligne
Principe : Saturer la 1ère ligne et choisir le 1er élément minimal et aller faire le calcul dans la
matrice de transport, suivant son emplacement. Choisir le 2ème élément minimal et faire de
même jusqu’à la fin de la ligne.
Travaillons avec le même exercice, celui que l’on a utilisé dans la méthode du Coin Nord-Ouest.
16
Nous aurons ce résultat :
0 7
5 12 8
0 5 10 5 5
4
( )
6
5
Etape 3 :
Pour le dernier élément minimal de la 1ère ligne c’est-à-dire 7 (voir matrice de coût), au
niveau du calcul dans la matrice de transport, nous savons qu’entre 0 et 8, le minimum
est 0. Nous avons donc placé 0.
Entre 4 et 8 le minimum est
4.
Emplacement de 1 suivant
0 7 la matrice de coût. 1 est le premier
5 12 8 élément minimal à la
0 5 10 5 5 0 2 5 7 2ème ligne.
4 3 6 1
( ) C=( )
6 9 6 4
5 50 50 50
Etape 4 :
Si vous suivez cette logique et que vous terminez avec la 3ème ligne, vous aurez ce résultat :
5 0 Emplacement de 50 suivant
0 7 4 la matrice de coût.
5 12 8
0 5 10 5 5 0 2 5 7
0 4 0 0 4 3 6 1
( ) C=( )
02 6 0 2 4 9 6 4
5 50 50 50
A la 4ème ligne, il y a 3 éléments minimaux identiques, vous
remarquerez que nous avons choisi celui du milieu comme le
1er élément minimal, puisqu’il permet le plus grand transport.
Autrement dit, dans le calcul au niveau de la matrice de 17
transport, celui du milieu donne un nombre supérieur aux
autres (entre 5 et 0, la valeur la plus élevée est 5).
Nous aurons ce résultat :
0
5 0
0 7 4
5 12 8
0 510 5 5 0 2 5 7
04 0 0 4 3 6 1 Nous nous arrêtons étant
( ) C=( ) donné que tous les
02 6 0 2 4 9 6 4
05 0 5 0 50 50 50 éléments ont été utilisés.
C. 5 est le B. Emplacement de 2
minimum. suivant la matrice de coût.
5 12 8
A. Nous avons choisi le 1er
10 2 5 7
élément minimal de la 1ère
4 3 6 1
( ) C= ( ) colonne et nous allons
6 9 6 4
5 50 50 50 effectuer les calculs au
niveau de la matrice de
Nous aurons ce résultat : coût.
0
5 12 8
5 10 5
4
( )
6
5
Le Emplacement de 3 suivant
Etape 2 : minimum la matrice de coût.
est O. 3 est le 2ème élément
0
5 12 8 minimal de la 1ère
colonne.
5 10 5 2 5 7
4 3 6 1
( ) C =( )
6 9 6 4
5 50 50 50
18
Nous aurons ce résultat :
0
5 12 8
5 10 5
4 0
( )
6
5
Le minimum
Etape 3 :
est 0. Emplacement de 9
suivant la matrice de coût. 9 est le 3ème élément
0
5 12 8 minimal de la 1ère colonne.
5 10 5 2 5 7
4 0
6
( ) c = (
3
9
6
6
1
4
)
5 50 50 50
0
5 12 8
5 10 5
4 0
( )
6 0
5 0
Min est 5. Emplacement
Etape 4 :
de 5 suivant la 5 est le 1er élément
0
matrice de coût. minimal de la 2ème
5 12 8 colonne.
5 10 5 2 5 7
4 0 3 6 1
( ) C=( )
6 0 9 6 4
5 0 50 50 50
0 7
5 12 8
0 5 10 5 5
4 0
( )
6 0
5 0
19
Etape 5 :
Emplacement de 6
Le minimum suivant la matrice
est 6. 0 7 de coût.
A la 2ème colonne il y a 2 éléments
5 12 8
minimaux identiques c’est-à-dire 6
0 5 10 5 5 2 5 7 et 6. Vous remarquerez que nous
4 0 3 6 1 avons choisi le second comme 2ème
( ) C=( )
6 0 9 6 4 élément minimal, puisqu’il permet
5 0 50 50 50 le plus grand transport. C’est-à-dire
dans le calcul au niveau de la
matrice de transport, le second
donne un nombre supérieur au 1er.
Nous aurons ce résultat :
1
0 7
5 12 8
0 5 10 5 5
4 0
( )
0 6 0 6
5 0
Si vous suivez cette logique jusqu’à épuiser tous les éléments, vous aurez ce résultat :
0
1 0
0 7 5
5 12 8
0 510 5 5 0 2 5 7
03 4 0 1 3 3 6 1
( ) C=( )
06 0 6 0 9 6 4
05 0 0 5 50 50 50
20
Nous aurons ce résultat :
4
5 12 8
10
0 4 ( 4)
6
5
Etape 2 : Emplacement de 2
suivant la matrice
Le de coût. 2 est le 2ème élément
minimum 4 minimal de toute la matrice.
est 5. 5 12 8
10 2 5 7
0 4 ( 4) C= (
3 6 1
)
6 9 6 4
5 50 50 50
Nous aurons ce résultat :
0 4
5 12 8
5 10 5
0 4 4)
(
6
5
Etape 3 :
Emplacement de 3
Le suivant la matrice
minimum 0 4 de coût. 3 est le 3ème élément
est O. 5 12 8 minimal de toute la matrice.
5 10 5 2 5 7
0 4 4) 3 6 1
( C= ( )
6 9 6 4
5 50 50 50
Nous aurons ce résultat :
0 4
5 12 8
5 10 5
0 4 0 4)
(
6
5
21
Après avoir fini avec 4 et 5, nous aurons ce résultat :
0
0 7 4
5 12 8
0 5 10 5 5 2 5 7
0 4 0 4) 3 6 1
( C= ( )
2 6 4 9 6 4
5 50 50 50
Etape 4 :
Emplacement de 6 Nous devons trouver le 6ème
Le 0
minimum suivant la matrice de élément minimal de la
0 7 4
est 2. 5 12 8 coût. matrice et nous remarquons
qu’il y a 2 éléments minimaux
0 5 10 5 5 2 5 7 identiques c’est-à-dire 6 et 6.
0 4 0 4) 3 6 1
( C= ( ) Nous choisissons le second
2 6 4 9 6 4
5 50 50 50 puisqu’il offre le plus grand
transport. Cela veut dire
Nous aurons ce résultat : qu’au niveau de la matrice de
5 0 transport il permet d’avoir un
0 7 4 nombre supérieur par rapport
5 12 8 à l’autre.
0 5 10 5 5
0 4 0 4)
(
02 6 2 4
5
Nous aurons ce résultat final :
0
5 0
0 7 4
5 12 8
0 510 5 5 0 2 5 7
04 0 0 4 3 6 1
( ) C=( )
02 6 0 2 4 9 6 4
05 0 5 0 50 50 50
22
Vous pourriez procéder ainsi pour interpréter les solutions trouvées avec les autres
méthodes. Il est nécessaire de souligner que le coût de transport le plus faible trouver
avec toutes les méthodes (hormis la méthode de tremplin) sera celui qui s’approche le
plus de la solution optimale.
B. Emplacement de 2
C. Le suivant la matrice de coût.
minimum est A. 2 est le 1er élément minimal à la
5 12 8
5. fois sur sa ligne et sa colonne. Nous
10 2 5 7 choisissons selon l’ordre
4 3 6 1 décroissant (du plus grand au plus
( ) C= ( )
6 9 6 4 petit) avec cette catégorie.
5 50 50 50
Nous aurons ce résultat :
0
5 12 8
5 10 5
4
( )
6
5
Etape 2 : Emplacement de 1
suivant la matrice
0 de coût.
Le min 5 12 8 1 est le 2ème élément à la
est 4. fois minimal sur sa ligne
5 10 5 2 5 7
4 3 6 1 et sa colonne.
( ) C= ( )
6 9 6 4
5 50 50 50
Nous aurons ce résultat :
0 4
5 12 8
5 10 5
0 4 4)
(
6
5
23
Nous allons à présent travailler avec les éléments qui sont le minimaux soit sur leur
ligne, soit sur leur colonne.
Etape 3 : Emplacement de 4
0 4 suivant la matrice de coût.
Le 4 est le premier élément choisi dans
5 12 8 la catégorie de ceux qui sont
minimu
m est 5 10 5 2 5 7 minimaux soit sur leur ligne, soit
4. 0 4 4) 3 6 1 sur leur colonne. Nous les
( C= ( ) choisissons suivant un ordre
6 9 6 4
5 50 50 50 croissant (plus petit au plus grand).
0
0 4
5 12 8
5 10 5
0 4 4)
(
2 6 4
5
Si vous finissez les calculs avec les éléments qui sont minimaux soit sur leur ligne, soit
sur leur colonne et que vous respectez l’ordre croissant, vous aurez ce résultat :
2 0
0 7 4
5 12 8
0 510 5 5 2 5 7
04 4) 3 6 1
( C= ( )
26 4 9 6 4
05 0 5 0 50 50 50
Les éléments de la 4ème ligne sont tous minimaux sur leurs lignes et non sur leurs
colonnes. Pour choisir le 1er élément, le 2ème et le 3ème, nous allons considérer celui qui
permet le plus grand transport.
Les éléments qui restent ne sont ni les minimaux sur leurs lignes, ni sur leurs colonnes
(3, 6, 6, 7 et 9). Procédez aux calculs selon l’ordre croissant et en respectant le principe
de l’élément qui permet le plus grand transport. Vous aurez à la fin ce résultat :
24
0
2 0
0 7 4
5 12 8
0 510 5 5 0 2 5 7
04 0 0 4 3 6 1
( ) C=( )
02 6 0 2 4 9 6 4
05 0 5 0 50 50 50
5 12 8
10 2 5 7
4 3 6 1
( ) C =( )
6 9 6 4
5 50 50 50
Si nous appliquons le principe ci-haut énoncé, nous aurons ce résultat sur la matrice
de coût :
2 5 7 3
3 6 1 2
C =( )
9 6 4 2
50 50 50 0
1 1 3
25
3ème colonne 1-4 = -3, en valeur absolue nous donne 3.
Nous prenons la plus grande de toutes les valeurs trouvées au niveau des lignes (entre
3, 2, 2 et 0, la plus grande valeur est 3). Et puis nous sélectionnons le coût le plus faible
sur la ligne de 3, ce coût correspond à 2.
Emplacement de
Le 2 suivant la 2 est le coût le plus
minimum 5 12 8
matrice de coût. faible sur la ligne de 3.
est 5. 10 2 5 7
4 3 6 1
( ) C =( )
6 9 6 4
5 50 50 50
0
5 12 8
5 10 5 2 5 7 3
4 3 6 1 2
( ) C =( )
6 9 6 4 2
5 50 50 50 0
1 1 3
5 7 2
6 1 5
C =( )
6 4 2
50 50 0
1 3
La plus grande de toutes les valeurs trouvées au niveau des lignes correspond à 5, et le
coût le plus faible sur la ligne de 5 est 1.
26
Emplacement de 1
Le suivant la matrice
minimum 0
de coût. 1 est le coût le plus
faible sur la ligne de 5.
est 4. 5 12 8
5 10 5 5 7 2
4 6 1 5
( ) C =( )
6 6 4 2
5 50 50 0
1 3
0 4
5 12 8
5 10 5
0 4 4)
(
6
5
La ligne de 1 supprimée, nous restons avec la matrice suivante :
5 7 2
C =(6 4 )2
50 50 0
1 3
Nous avons 2 valeurs (les plus grandes) trouvées au niveau des lignes, il s’agit de 2 et 2. Nous
choisissons celle dont la valeur la plus petite sur la ligne est inférieure à celle de l’autre (4 est
inférieur à 5).
Emplacement de
4 suivant la
matrice de coût. 4 est le coût le plus
Le faible sur la ligne de 2.
0 4
minimum
5 12 8
est 4.
5 10 5
5 7 2
0 4 4)
( C=(6 4 )2
6
50 50 0
5
1 3
27
Le résultat impliquera la suppression de la colonne de 4.
0
0 4
5 12 8
5 10 5
5 7 2
0 4 4)
( C =(6 4 )2
2 6 4
50 50 0
5
1 3
0
5 0
0 7 4
5 12 8
0 510 5 5 0
04 0 0 4
( ) C = (5)5
02 6 0 2 4
05 0 5 0
28
coûteux. L'idée est de trouver un équilibre entre les itinéraires populaires et les
itinéraires moins utilisés pour obtenir la solution la plus économique.
2 5 7
3 6 1
C=( )
9 6 4
50 50 50
1ère étape :
Calculons les r. Etant donné que nous avons 4 lignes sur la matrice, nous aurons r4.
Pour trouver r1, nous regardons le nombre d’éléments composant la 1ère ligne, il y a donc
3 éléments qui composent la 1ère ligne (2, 5 et 7). 2+5+7 = 14.
1 1
Nous aurons r1 = 3 (2+5+7) = 3 (14)
1 1
Notons que 3
vient de 𝑛
.
Pour aboutir à un plan de transport faisable, nous devons trouver la matrice c,̃ et pour ce
faire, nous aurons besoin de la somme d’éléments composant la 1ère colonne, la 2ème
colonne et la 3ème colonne de la matrice de coût.
De la formule
1
× 64 Somme des éléments de la 1ère colonne (2+3+9+50).
4
Si vous faites de même avec les colonnes restantes, vous aurez ceci :
29
1 1
r₁ = 3 (2 + 5 + 7) = 3 (14)
2 5 7 1 1
3 6 1 r₂ = 3 (3 + 6 + 1) = 3 (10)
C=( ) 1 1
9 6 4 r₃ = 3 (9 + 6 + 4) = 3 (19)
50 50 50 1 1
r₄ = 3 (50 + 50 + 50) = 3 (150)
1 1 1
× 64 × 67 × 62
4 4 4
Formons à présent la matrice c.̃ Nous allons trouver les éléments qui composent la 1ère
ligne de ladite matrice.
2, 5 et 7 sont les éléments de la 1ère ligne de la matrice de coût, procédons à leur
transformation.
14
Pour 2 = ( 3 + 16) − 2
1 67
Sa colonne correspondante 4 × 64 = = 16,75.
14 4
Pour 5 = ( 3 + 16,75) − 5
30
60,5−21
= 3
39,5
= ce qui donne 13,16.
3
𝟐 𝟑 𝟓 𝟖
𝟏 𝟕 𝟗 𝟔
( )
𝟗 𝟔 𝟖 𝟔
𝟐 𝟒 𝟕 𝟒
Appliquons la technique de Flood, laquelle consiste à choisir en premier lieu le minimum
de chaque ligne et à le soustraire de toute la ligne. Puis choisir le minimum de chaque
colonne et le soustraire de toute la colonne.
𝟐 𝟑 𝟓 𝟖 𝟐
𝟏 𝟕 𝟗 𝟔 𝟏
( )
𝟗 𝟔 𝟖 𝟔 𝟔
𝟐 𝟒 𝟕 𝟒 𝟐
Nous aurons ce résultat :
𝟎 𝟏 𝟑 𝟔
𝟎 𝟔 𝟖 𝟓
( )
𝟑 𝟎 𝟐 𝟎
𝟎 𝟐 𝟓 𝟐
31
Faisons l’opération avec les colonnes.
𝟎 𝟏 𝟑 𝟔
𝟎 𝟔 𝟖 𝟓
( )
𝟑 𝟎 𝟐 𝟎
𝟎 𝟐 𝟓 𝟐
0 0 2 0
Le Flood garantit une solution optimale en examinant toutes les options, bien que cela
puisse être couteux en termes de temps de calcul pour les problèmes de grande taille.
Ce qui nous donne ce résultat :
𝟎 𝟏 𝟏 𝟔
𝟎 𝟔 𝟔 𝟓
( )
𝟑 𝟎 𝟎 𝟎
𝟎 𝟐 𝟑 𝟐
Nous allons appliquer la méthode hongroise (ainsi dénommée en souvenir d'un théorème
assez célèbre du mathématicien hongrois, KÖNIG) pour résoudre notre problème
d’affectation.
Etape 2 :
Pour chaque ligne, nous allons déterminer le nombre de zéros. Nous procédons comme
suit :
𝟎 𝟏 𝟏 𝟔 𝟏
𝟎 𝟔 𝟔 𝟓 𝟏
( )
𝟑 𝟎 𝟎 𝟎 𝟑
𝟎 𝟐 𝟑 𝟐 𝟏
Choisir la ligne qui a le moins de zéros, s’il en existe plusieurs (1ère ligne, 2ème ligne et
4ème ligne dans notre exemple), choisir la 1ère et son zéro se trouvant le plus à gauche (0),
barrez les zéros se trouvant sur la ligne et la colonne de celui-ci (0).
𝟎 𝟏 𝟏 𝟔 𝟏
𝟎 𝟔 𝟔 𝟓 𝟏
( )
𝟑 𝟎 𝟎 𝟎 𝟑
𝟎 𝟐 𝟑 𝟐 𝟏
Nous refaisons l’opération. Après la ligne 1, c’est maintenant la ligne 3 qui comporte le
moins de zéros.
𝟎 𝟏 𝟏 𝟔 𝟏
𝟎 𝟔 𝟔 𝟓 𝟏
( )
𝟑 𝟎 𝟎 𝟎 𝟑
𝟎 𝟐 𝟑 𝟐 𝟏
32
Si avec toutes les lignes, les zéros ont été encadrés (ici nous colorons ces-derniers en vert),
alors la solution serait optimale. Ici la solution n’est pas encore optimale.
Etape 3 : Marquer toutes les lignes sans zéro encadré (sans zéro coloré).
𝟎 𝟏 𝟏 𝟔
𝟎 𝟔 𝟔 𝟓
( )
𝟑 𝟎 𝟎 𝟎
𝟎 𝟐 𝟑 𝟐
Marquer toute colonne ayant un zéro barré sur une ligne marquée.
𝟎 𝟏 𝟏 𝟔
𝟎 𝟔 𝟔 𝟓
( )
𝟑 𝟎 𝟎 𝟎
𝟎 𝟐 𝟑 𝟐
Marquer toute ligne ayant un zéro encadré (zéro coloré) dans une colonne marquée.
𝟎 𝟏 𝟏 𝟔
𝟎 𝟔 𝟔 𝟓
( )
𝟑 𝟎 𝟎 𝟎
𝟎 𝟐 𝟑 𝟐
Etape 4 : Mettre un trait sur les lignes non marquées et sur les colonnes marquées.
𝟎 𝟏 𝟏 𝟔
𝟎 𝟔 𝟔 𝟓
( )
𝟑 𝟎 𝟎 𝟎
𝟎 𝟐 𝟑 𝟐
Etape 5 : Rechercher le plus petit élément des cases traversées par aucun trait et
soustraire cet élément de ces cases. Ici cet élément est 1. Et après, additionner cet
élément à toute case traversée par 2 traits. La case traversée par 2 traits est 3.
𝟎 𝟎 𝟎 𝟓
𝟎 𝟓 𝟓 𝟒
( )
𝟒 𝟎 𝟎 𝟎
𝟎 𝟏 𝟐 𝟏
Refaire l’étape 2.
33
𝟎 𝟎 𝟎 𝟓 𝟑
𝟎 𝟓 𝟓 𝟒 𝟏
( )
𝟒 𝟎 𝟎 𝟎 𝟑
𝟎 𝟏 𝟐 𝟏 𝟏
𝟎 𝟎 𝟎 𝟓 𝟑
𝟎 𝟓 𝟓 𝟒 𝟏
( )
𝟒 𝟎 𝟎 𝟎 𝟑
𝟎 𝟏 𝟐 𝟏 𝟏
Etape 5 :
𝟏 𝟎 𝟎 𝟓
𝟎 𝟒 𝟒 𝟑
( )
𝟓 𝟎 𝟎 𝟎
𝟎 𝟎 𝟏 𝟎
𝟏 𝟎 𝟎 𝟓 𝟐
𝟎 𝟒 𝟒 𝟑 𝟏
( )
𝟓 𝟎 𝟎 𝟎 𝟑
𝟎 𝟎 𝟏 𝟎 𝟑
𝑾₁ 𝑾₂ 𝑾₃ 𝑾₄
𝒁₁ 𝟏 𝟎 𝟎 𝟓
𝒁₂ 𝟎 𝟒 𝟒 𝟑
( )
𝒁₃ 𝟓 𝟎 𝟎 𝟎
𝒁₄ 𝟎 𝟎 𝟏 𝟎
La solution est optimale puisqu’avec toutes les lignes, les zéros ont été encadrés (ici nous
colorons ces-derniers en vert comme nous l’avons dit). Le coût d’affectation correspond à
3+1+8+4 ce qui donne 16.
Z1 avec W2
Z2 avec W1
Z3 avec W3
Z4 avec W4
34
Nous prenons la solution trouvée à partir de la règle du Coin Nord-Ouest et la matrice de
coût y relative.
Une illustration de la non optimalité de
la solution qui a été trouvée est que dans
5 5 0 2 5 7 la matrice de coût, 1 qui correspond au
0 4 0 3 6 1 coût le plus faible n’a pas été transporté
X=( ) C =( )
0 3 3 9 6 4 dans la matrice de transport.
0 0 5 50 50 50
Nous nommons les éléments de la matrice de coût comme suit :
v₁ v₂ v₃ v/u
u₁
u₂
u₃
u₄
1
Nous nous limitons à v₃ étant donné que la matrice X a 3 colonnes. Nous nous limitons à u₄ étant
donné que la matrice X a 4 lignes.
35
Posons V₁ = 0
Pour c4̃ 1 on a : u₄+v₁-c41
Et calculons premièrement les éléments supérieurs à zéro dans la matrice X.
= 49+0-50
Pour C₁₁ on a : u₁+v₁ = C₁₁ = -1
u₁+0 = 2 (2 est la valeur de C₁₁ partant de la matrice de coût)
u₁ = 2 Pour c4̃ 2 on a : u₄+v₂-c₄₂
= 49+3-50
Pour C₁₂ on a : u₁+v₂ = c₁₂ =2
2+v₂ = 5
v₂ = 5-3 Pour c3̃ 1 on a : u₃+v₁-c₃₁
v₂ = 3 = 3+0-9
= -6
Pour C₂₂ on a : u₂+v₂ = c₂₂ Nous pouvons donc insérer les résultats obtenus dans la matrice C* en
u₂+3 = 6 notant que les éléments supérieurs à zéro que l’on vient de calculer seront
u₂ = 6-3 remplacés par des zéros dans la partie colorée en vert du tableau.
u₂ = 3
0 3 1 v/u
Pour C43 on a : u₄+v₃ = c43 0 0 -4 2
u₄+1 = 50 0 0 3 3
u₄ = 50-1 -6 0 0 3
u₄ = 49 -1 2 0 49
Pour C32 on a : u₃+v₂ = c₃₂ Le résultat est dit optimal lorsque tous les éléments qui sont colorés en
u₃+3 = 6 vert dans la matrice C* sont ≤ 0.
u₃ = 6-3
u₃ = 3 Etant donné que le résultat ne pas optimal, nous déterminons une
nouvelle solution. Nous allons étiqueter la matrice de transport (nommée
Pour C33 on a : u₃+v₃ = c₃₃ X), à partir de la matrice C*.
3+v₃ = 4
v₃ = 4-3 Principe pour étiqueter : Partant de la matrice C*, voir la place du plus
v₃ = 1 grand positif (3 dans notre exemple) et étiqueter l’élément se trouvant sur
son emplacement dans la matrice X du signe « + », ce qui nous donnera 0+.
Sur la matrice X, voir sur la ligne de 0+ un élément différent de 0 sur la
Calculons les éléments égaux à zéro dans la matrice X, donc les éléments restants.
colonne duquel se trouve au moins un élément positif et l’étiqueter du
signe « - », ce qui donnera 4-, sur la colonne de 4-, voir un élément différent
Pour Ĉ13 on a : u₁+v₃-c₁₃
de 0 et l’étiqueter du signe « + », ce qui donnera 3+, sur la ligne de 3+, voir
= 2+1-7 (7 est la valeur de c₁₃ partant de la matrice de coût)
un élément différent de 0 et l’étiqueter du signe « - », ce qui donnera 3-.
= -4
Pour Ĉ21 on a : u₂+v₁-c₂₁
Le résultat sera le suivant :
= 3+0-3
=0 5 5 0
Pour c2̃ 3 on a : u₂+v₃-c₂₃ 0 4⁻ 0⁺
X(1) =( )
= 3+1-1 0 3⁺ 3⁻
=3 0 0 5
36
Trouvons la matrice X(2) et sa matrice C* afin de voir si la solution est optimale. Pour C₂₂ on a : u₂+v₂ = c₂₂
u₂+3 = 6
Pour construire la matrice X(2), nous observons la matrice X(1) et choisissons u₂ = 6-3
parmi les éléments étiquetés par le signe -, celui ayant une valeur absolue u₂ = 3
minimale. Nous additionnons ou soustrayons cet élément selon qu’il s’agit des
signes, avec tous les éléments étiquetés. En termes simples, pour 4-, étant donné Pour C23 on a : u2+v₃ = c23
qu’il a le signe « - », nous aurons 4-3 (3 étant l’élément à valeur absolue minimale 3+v₃ = 1
de tous les éléments étiquetés du signe -), ce qui nous donnera 1. Pour 0+, étant v₃ = 1-3
donné qu’il a le signe « + », nous aurons 0+3, ce qui nous donnera 3. Appliquez la
v₃ = -2
même logique avec 3+ et 3- .
Pour C32 on a : u3+v2 = c32
Nous aurons le résultat suivant :
u3+3 = 6
u3 = 6-3
5 5 0
0 1 3 u3 = 3
X(2) =( )
0 6 0
0 0 5 Pour C43 on a : u4+v₃ = c43
u4-2 = 50
Construisons la matrice C* de la matrice X(2) pour voir si la solution est optimale. u4 = 50+2
Au cas où la solution ne sera pas optimale, nous allons de nouveau étiqueter la u4 = 52
matrice X(2) et poursuivre les calculs.
Calculons les éléments égaux à zéro dans la matrice X(2), donc les éléments
Pour construire la matrice C* de la matrice X(2),
nous faisons comme au début, restants.
c’est-à-dire nous partons de la matrice X , nous identifions les éléments
(2)
37
Nous pouvons donc insérer les résultats obtenus dans la matrice C*.
0 3 -2 v/u
0 0 -7 2
0 0 0 3
-6 0 -3 3
2 5 0 52
Etant donné que la solution ne pas optimale, nous déterminons une nouvelle solution.
Nous allons étiqueter la matrice X(2), à partir de la matrice C* de cette-dernière.
Partant de la matrice C* de la matrice X(2), voir la place du plus grand positif (5 dans
notre exemple) et étiqueter l’élément se trouvant sur son emplacement dans la matrice
X(2) du signe « + », ce qui nous donnera 0+, voir sur la ligne de 0+ un élément différent de
0 dans la colonne duquel se trouve au moins un élément positif et l’étiqueter du signe « -
», ce qui donnera 5-, sur la colonne de 5-, voir un élément différent de 0 et l’étiqueter du
signe « + », ce qui donnera 3+, sur la ligne de 3+, voir un élément différent de 0 et l’étiqueter
du signe « - », ce qui donnera 1-.
5 5 0
0 1⁻ 3⁺
X(2) =( )
0 6 0
0 0⁺ 5⁻
0 3 1 v/u
5 5 0 0 0 -4 2
0 0 4
X(4) =( ) -3 -3 0 0
0 2 4
-6 0 0 3
0 5 0
-3 0 -2 47
ASTUCE : Dans les calculs des éléments supérieurs à zéro (test d’optimalité de la solution
courante), si vous ne parvenez pas à trouver la valeur d’une inconnue d’un élément donné,
poursuivez les calculs avec les autres éléments et certainement, cette inconnue sera
trouvée.
38
CHAPITRE 3 : THÉORIE DE GRAPHES
3.1 La détermination des composants fortement connexes d’un graphe
Exemple :
Soit le graphe suivant :
n2
n1 n5
n4
n3
Une composante fortement connexe d’un graphe orienté est un sous graphe induit maximal
en nombre de sommets qui soit fortement connexe.
Partant de notre graphe, nous pouvons identifier une composante fortement connexe. Nous
avons ici identifié le graphe n2, n3 et n4. Cela veut dire que nous pouvons faire un contour à
partir de ces 3 sommets.
n2
n1 n5
n4
n3
39
𝑛₁ 𝑛₂ 𝑛₃ 𝑛₄ 𝑛₅ 4 arcs partent de n1, 1 arc vers n2, 1 arc
𝑛₁ 0 1 1 1 1 vers n3, 1 arc vers n4 et 1 arc vers n5.
𝑛₂ 0 0 1 0 1
A (G) = 𝑛₃ 0
*
0 0 1 1
𝑛₄ 0 1 0 0 1
𝑛₅ (0 0 0 0 0)
La matrice A(O) correspond à l’addition de la matrice A*(G) avec la matrice unité2. Nous
aurons donc :
0 1 1 1 1 1 0 0 0 0
0 0 1 0 1 0 1 0 0 0
A(O) = A (G) + I =
*
0 0 0 1 1 + 0 0 1 0 0
0 1 0 0 1 0 0 0 1 0
(0 0 0 0 0) (0 0 0 0 1)
1 1 1 1 1
0 1 1 0 1
A(O) = 0 0 1 1 1
0 1 0 1 1
(0 0 0 0 1)
Etant donné que nous avons 5 sommets, nous ferons successivement 5 itérations partant de
la matrice A(O). Le but ici est de trouver la matrice à (G'), laquelle correspond à la solution.
Principe d’itération : Encerclez la 1ère ligne et la 1ère colonne de la matrice à la première
itération, encerclez la 2ème ligne et la 2ème colonne de la matrice à la deuxième itération, etc.
Nous transformerons uniquement les éléments non encerclés correspondants à 0 et ayant des
éléments encerclés sur leurs lignes correspondants à 1 et sur leurs colonnes correspondants
à 1.
2
La matrice unité est, en algèbre linéaire, une matrice carrée avec des 1 sur la diagonale
et des 0 partout ailleurs.
40
Nous aurons donc :
1 1 1 1 1
0 1 1 0 1
A(2) = 0 0 1 1 1 Dans cette matrice, c’est 0 qui changera.
0 1 1 1 1
(0 0 0 0 1)
1 1 1 1 1
0 1 1 1 1
A(3) = 0 0 1 1 1 Dans cette matrice, c’est bien 0 qui deviendra 1.
0 1 1 1 1
(0 0 0 0 1)
1 1 1 1 1
0 1 1 1 1
A(4) = 0 1 1 1 1
0 1 1 1 1
(0 0 0 0 1)
41
Ce bloc dans lequel
1 est repris 3 fois ne
sera constitué que
d’un seul 1 dans la
matrice à (G').
Partant donc de notre graphe, il est possible d’atteindre, à partir de n₁, le bloc n₂, n₃ et n₄.
On peut également atteindre n₅.
1 1 1
à (G') = (0 1 1)
0 0 1
A*(G') = Ã (G') - I
42
CHAPITRE 4 : PROBLÈME DU VOYAGEUR DE COMMERCE
La méthode du voyageur de commerce (TSP - Traveling Salesman Problem en anglais) est
un problème d'optimisation combinatoire qui cherche à trouver le chemin le plus court
pour visiter un ensemble de villes données une seule fois et revenir à la ville de départ. Ce
problème est un NP (Non-deterministic Polynomial Time) difficile, ce qui signifie qu'il
n'existe pas d'algorithme efficace pour résoudre de manière exacte les instances de grande
taille en un temps raisonnable.
Dans un contexte africain, nous pouvons illustrer la méthode du voyageur de commerce en
considérant un vendeur qui souhaite visiter plusieurs grandes villes d'Afrique de l'Ouest
pour présenter ses produits. Supposons que les villes à visiter soient Dakar (Sénégal),
Abidjan (Côte d'Ivoire), Accra (Ghana) et Lagos (Nigeria). Le vendeur cherche à trouver le
chemin le plus court pour visiter ces villes une seule fois et revenir à Dakar.
1 2 3 4 5
C̄ = 1 ∞ 3 9 8 2
2 2 ∞ 9 4 5
3 1 7 ∞ 9 5
4 3 5 6 ∞ 4
5 1 6 8 4 ∞
1 2 3 4 5
C̄ = 1 ∞ 3 9 8 2 2
2 2 ∞ 9 4 5 2
3 1 7 ∞ 9 5 1
4 3 5 6 ∞ 4 3
5 1 6 8 4 ∞ 1
1 2 3 4 5
1 ∞ 1 7 6 0
2-2 = 0
C̄ = 2 0 ∞ 7 2 3
3 0 6 ∞ 8 4 5-2 = 3
4 0 2 3 ∞ 1
5 0 5 7 3 ∞
43
1 2 3 4 5
1 ∞ 1 7 6 0
2 0 ∞ 7 2 3
3 0 6 ∞ 8 4
4 0 2 3 ∞ 1
5 0 5 7 3 ∞
0 1 3 2 0
1 2 3 4 5
1 ∞ 0 4 4 0
C= 2 0 ∞ 4 0 3
3 0 5 ∞ 6 4
4 0 1 0 ∞ 1
5 0 4 4 1 ∞
0-0 = 0 5-1 = 4
Dans la matrice précédente, identifions l’élément ayant le plus grand super indice c’est-à-dire
l’élément ayant le plus grand exposant4. Il s’agit de l’élément se trouvant sur la 3ème ligne et
la 1ère colonne (3,1). Cela signifie que nous avons intérêt à employer l’arc (3,1) qui, a priori, est
à recommander, étant donné le coût le plus petit sur sa ligne.
Crs = C31 r = 3, s = 1
3
Constance de réduction car la résolution commence en réduisant, comme pour les
problèmes d’affectation, la matrice de coût donnée.
4 Si une matrice a 2 éléments ayant le même super indice, considérez le premier.
44
Etape 4 : Inclusion de (3,1), Il s’agit de calculer le coût d’éviction associé au fait d’emprunter
(3,1).
Si nous éliminons la ligne et la colonne du plus grand super indice (pour l’empêcher d’effectuer
le chemin retour sur le même chemin) nous aurons :
Q : ∪ {𝑟} = {3}
Cet élément correspondait à 4
2 3 4 5
dans la matrice précédente, il
C̄1= 1 0 ∞ 4 0 devient ∞ puisque se trouvant
2 ∞ 4 0 3 au croisement de 3 et 1.
4 1 0 ∞ 1
5 4 4 1 ∞
2 3 4 5
C̄ = 1 0 ∞ 4 0
2 ∞ 4 0 3
4 1 0 ∞ 1
5 3 3 0 ∞
Etape 5 : Exclusion de (3,1) dans le parcours. Calculer le coût d’éviction associé au fait de
ne pas emprunter (3,1). Nous reproduisons la matrice juste avant l’inclusion de (3,1) et de
cette matrice, nous plaçons ∞ sur l’emplacement ayant le plus grand super indice5. Et puis
refaire les étapes 1 et 2 c’est-à-dire trouver le minimum de chaque ligne puis soustraire la
ligne par son minimum, de même pour la colonne.
1 2 3 4 5 1 2 3 4 5
1 ∞ 0 4 4 0 0 1 ∞ 0 4 4 0
2 0 ∞ 4 0 3 0 2 0 ∞ 4 0 3
3 ∞ 5 ∞ 6 4 4 3 ∞ 1 ∞ 2 0
4 0 1 0 ∞ 1 0 4 0 1 0 ∞ 1
5 0 4 4 1 ∞ 0 5 0 4 4 1 ∞
5
Nous plaçons infini sur le super indice puisque cela nous indique que si l’on ne prend
pas ce chemin dans le parcours, cela nous coutera cher.
45
1 2 3 4 5
1 ∞ 0 4 4 0 1 2 3 4 5
2 0 ∞ 4 0 3 1 ∞ 0 4 4 0
3 ∞ 1 ∞ 2 0 2 0 ∞ 4 0 3
4 0 1 0 ∞ 1 3 ∞ 1 ∞ 2 0
5 0 4 4 1 ∞ 4 0 1 0 ∞ 1
0 0 0 0 0 5 0 4 4 1 ∞
Ȓ = R+r₂ = 15+4 = 19
Nous allons choisir l’option qui donne un R minimum. Généralement c’est l’option qui
inclut le chemin dans le parcours qui est choisie.
Etape 6 : A partir de la matrice choisie c’est-à-dire (3,1) inclus, nous faisons l’étape 3
(mettre des exposants sur les 0 et choisir celui qui a l’exposant maximum). En reprenant
la matrice de coût résultant de l’inclusion, l’algorithme peut ainsi déterminer la meilleure
solution pour les sous-problèmes6 plus grands et plus complexes, en utilisant les résultats
précédemment calculés pour les sous-problèmes plus petits. Cette méthode permet ainsi
d’optimiser la complexité de l’algorithme et obtenir une solution optimale pour le PVC en
un temps raisonnable.
6
Avec LITTLE, pour résoudre le PVC, un sous-problème est une instance plus petite du
PVC qui résout de manière itérative à partir de la résolution du problème de base. Plus
précisément, chaque sous-ensemble du PVC correspond à un sous-problème des éléments
du PVC original et une capacité de sac à dos donnée.
46
Etape 4 : Inclusion de (4,3)
Nous éliminons la ligne et la colonne du plus grand super indice ou de l’exposant maximum
et nous faisons ensuite les étapes 2 et 3 c’est-à-dire trouver le minimum de chaque ligne
puis soustraire la ligne par son minimum, de même pour la colonne.
Nous aurons ce résultat après calcul :
2 4 5
1 0 4 0
2 ∞ 0 3
5 3 0 ∞
r₁ = 0 ; Ȓ = R+r₁ = 16+0 = 16
Etape 6 : Exclusion de (4,3)
Nous reproduisons la matrice juste avant l’inclusion de (4,3) et de cette matrice nous
plaçons ∞ sur l’emplacement ayant le plus grand super indice. Et puis refaire les étapes 1
et 2 c’est-à-dire trouver le minimum de chaque ligne puis soustraire la ligne par son
minimum, de même pour la colonne.
2 3 4 5 2 3 4 5
1 0 ∞ 4 0 0 1 0 ∞ 4 0
2 ∞ 4 0 3 0 2 ∞ 4 0 3
4 1 ∞ ∞ 1 1 4 0 ∞ ∞ 0
5 3 3 0 ∞ 0 5 3 3 0 ∞
2 3 4 5
1 0 ∞ 4 0 2 3 4 5
2 ∞ 4 0 3 1 0 ∞ 4 0
4 0 ∞ ∞ 0 2 ∞ 1 0 3
5 3 3 0 ∞ 4 0 ∞ ∞ 0
0 3 0 0 5 3 0 0 ∞
r₂ = 4 ; Ȓ = R+r₂ = 16+4 = 20
Lorsque LITTLE calcule le coût d’exclusion pour un élément de la matrice de coûts, il doit
tenir compte à la fois du coût d’inclusion de l’élément précédent et de la constance de
réduction. Pour cela, il utilise le coût d’inclusion du sous-problème précédent (qui a été
calculé lors du traitement de l’élément précédent) ; auquel il ajoute la constance de
réduction.
L’ajout de la constance de réduction au coût d’inclusion du sous-problème précédent est
effectué pour tenir compte de réduction du coût de l’inclusion. Lorsque l’on passe d’un sous-
problème à un autre, on doit prendre en compte la solution trouvée pour le sous-problème
47
précédent, car cette solution a une influence sur le coût du sous problème actuel. La
constance de réduction est ajoutée pour refléter la réduction du coût de l’inclusion, qui est
liée à la résolution trouvée pour le sous-problème7 précédent. Ainsi, en ajoutant cette
constance au coût d’inclusion du sous-problème précédent, on tient compte de cette
réduction du coût et on peut obtenir le coût optimal pour le sous-problème actuel.
4.3 4.3
R=20 R=16
Etape 6 : A partir de la matrice choisie c’est-à-dire (4,3) inclus, nous faisons l’étape 3 (mettre
des exposants sur les 0 et choisir celui qui a l’exposant maximum).
Crs = C12
Etape 4 : Inclusion de (1,2)
Nous éliminons la ligne et la colonne de l’exposant maximum et faisons les étapes 1 et 2.
4 5
2 0 0
5 0 ∞
r₁ = 3 ; Ȓ = R+r₁ = 16+3 = 19
7
Un sous-problème est une instance plus petite du PVC qui résout de manière itérative à
partir de la résolution du problème de base. Plus précisément, chaque sous-ensemble du
PVC correspond à un sous-problème des éléments du PVC original et une capacité de sac
à dos donnée.
48
Etape 5 : Exclusion de (4,3)
Nous reproduisons la matrice juste avant l’inclusion de (1,2) et de cette matrice nous
plaçons ∞ sur l’emplacement ayant le plus grand super indice. Et puis refaire les étapes 1
et 2 c’est-à-dire trouver le minimum de chaque ligne puis soustraire la ligne par son
minimum, de même pour la colonne. Nous aurons ce résultat :
2 4 5
1 ∞ 4 0
2 ∞ 0 3
5 0 0 ∞
r₂ = 3 ; Ȓ = R+r₂ = 16+3 = 19
Etape 6 : A partir de la matrice choisie c’est-à-dire (1,2) inclus, nous faisons l’étape 3 (mettre des
exposants sur les 0 et choisir celui qui a l’exposant maximum).
4 5
2 0 0
5 0 ∞
Nous voyons que nous pouvons affecter les arcs (2,4), (2,5) et (5,4 ) sans frais supplémentaires.
4.3 4.3
R=20 R=16
Notons que l’arborescence de la solution est une structure de données qui présente le flux optimal
à travers le réseau, en indiquant les chemins qui doivent être suivis pour chaque unité de flux
entre chaque paire de source et de destinations.
49
CHAPITRE 5 : PROBLÈME D’ORDONNANCEMENT
Le problème d’ordonnancement en R.O consiste à planifier et organiser la réalisation de
plusieurs tâches, en déterminant l’ordre dans lequel elles doivent être effectuées, ainsi que
les ressources nécessaires et le temps de réalisation. L’objectif est de minimiser le temps
total de réalisation ou le coût total, tout en respectant les contraintes liées aux ressources
disponibles et au délai à respecter.
Par exemple, dans une entreprise de construction, le problème d’ordonnancement pourrait
consister à planifier l’ordre de réalisation des différentes étapes de construction d’un
bâtiment. Chaque étape nécessite des ressources et du temps, et certaines étapes peuvent
être dépendantes les unes des autres. Le but serait de planifier l’ordre optimal des étapes
de construction pour minimiser le temps total de construction.
Mélanger la peinture D 6 A H
Disposer le tapis E 9 A I
50
n2
A (3)
Durée de
la tâche
n1
B (2)
n3
N1 est le nœud source et la construction du graphe prendra fin au nœud terminal nn.
2ème étape : Analyser les tâches suivantes des tâches initiales (A et B dans notre exemple).
Quelles sont les activités suivantes de A ? Il s’agit bien de C,D et E dans notre exercice.
Nous les écrivons provisoirement juste après A. Nous aurons :
C (1)
D (6)
n2
A (3)
E (9)
n1
B (2)
n3
51
étant donné qu’elles ont deux éléments suivants en commun (F et G) et après leur liaison,
nous sortirons immédiatement ces deux éléments communs. Nous aurons :
D (6)
n2
A (3) E (9)
n1 C (1)
F (4)
B (2)
n3
G (3)
n2 E (9)
A (3) D (6)
H (2) I (8)
n1 C (1) n4 n5 n6
F (4)
B (2)
G (3)
n3
52
Nous venons d’achever la construction du graphe. Essayons à présent de déterminer le
chemin critique :
A gauche sera placé la date au plus tôt de la tâche,
celle-ci indique le début le plus précoce d’une
activité. A droite sera placé la date au plus tard de
| tâche, elle indique la fin la plus tardive d’une
activité.
n2 E (9)
A (3) D (6)
| | | |
H (2) I (8)
n1 C (1) n4 n5 n6
F (4)
B (2)
G (3)
n3
3| Le nœud n2 ne
O+3 = 3 reçoit qu’un seul
arc ou flèche.
n2
A (3)
0|
n1
O dans le nœud initial puisque la date au plus tôt des tâches initiales est toujours égale
à 0 étant donné que les activités initiales représentent les premières étapes du projet
qui ne dépendront d’aucune autre activité pour démarrer. Par conséquent, leur date au
53
plus tôt est fixée à O, car elles peuvent être entamées dès le début du projet, sans aucun
délai d’attente.
2ème scenario : le nœud reçoit 2 arcs ou plus. Considérer l’arc qui donne la valeur la plus
élevée.
3+1 = 4
3|
n2
A (3)
0|
Etant donné que le
n1 C (1) nœud n3 reçoit 2 arcs,
nous considérons celui
B (2) qui donne la valeur la
plus élevée (entre 2 et 4
O+2 = 2 la valeur la plus élevée
n3 est 4). C’est pourquoi
nous avons placé 4 à la
date au plus tôt de n3.
4|
Si vous appliquez ce principe dans tout le graphe, dans le sens aller bien-sûr, vous
aurez ces dates au plus tôt :
3|
O
n2 E (9)
A (3) D (6)
0| 9| 12| 20|20
H (2) I (8)
n1 C (1) n4 n5 n6
F (4)
B (2)
G (3)
n3
4| 54
NB : La date au plus tôt du nœud terminal n6 sera recopiée à la date au plus tard du
même nœud pour garantir que le projet se termine à la date la plus tôt possible sans
retard et que la durée totale du projet est correctement calculée.
Déterminons les dates au plus tard (sens retour). Considérons toujours 2 scénarios.
1er scénario : Il y a qu’un seul arc qui part du nœud.
I (8)
n5 n6
2ème scénario : Il y a un ou plusieurs arcs qui partent du nœud. Considérer l’arc qui
donne la valeur la plus petite.
10-4 = 6
G (3)
n3
4|6
En continuant avec cette logique, nous aurons ce résultat final avec le chemin critique
déterminé (le chemin critique comprend les activités les plus importantes et si l’une
d’entre elles est retardée, cela retardera tout le projet, en identifiant donc le chemin
critique on sait quelles activités sont les plus importantes et nécessitent une attention
particulière pour éviter les retards, pour identifier une tâche critique, il faudrait voir si
ses dates au plus tôt et au plus tard sont égales).
55
3|3
O
n2 E (9)
A (3) D (6)
0|0 9|10 12|12 20|20
H (2) I (8)
n1 C (1) n4 n5 n6
F (4)
B (2)
G (3)
n3
4|6
56
BIBLIOGRAPHIE
KUTANGILA MAYOYA S.D., Cours de RO, FASE, Université Protestante au Congo, 2021
57