Vous êtes sur la page 1sur 12

Chapitre 4 : Le modèle de transport

4.1- Présentation
De façon générale, on entendra par modèle de transport tout problème
d’optimisation du transfert des points-origine vers des points-destination. Lorsque ces
points matérialisent des lieux géographiques et lorsque l’objet du transfert est un
ensemble de marchandises, il s’agit du problème de transport au sens large. Mais il
peut s’agir, également, de personnels jouant le rôle de points-origine, que l’on désire
affecter dans les meilleures conditions à des fonctions vacantes jouant le rôle de
points-destination. Il s’agira, aussi, de déterminer un programme de production : les
capacités de production des différentes périodes concernées (ce sont les points-origine)
sont utilisées pour traiter les différentes commandes prévues (ce sont les points-
destination).
Tous ces problèmes, bien qu’appartenant à des domines de gestion très
différents, sont susceptibles d’être traités à l’aide du même modèle, le modèle de
transport, qui constitue une catégorie particulière de programme linéaire.

4.2- Formulation du problème de transport


Le problème de transport peut être formulé de la manière suivante : « des
quantités données d’un même produit sont disponibles en plusieurs points-origine ; des
quantités données de ce produit doivent être expédiées vers différents points-
destination. Le coût de transport unitaires entre chacun des points-origine et chacun
des points-destination étant connu, il s’agit de déterminer le meilleur programme de
transport, c’est-à-dire celui qui minimise le coût total d’approvisionnement. Plus
précisément, il convient de déterminer à partir de quel point-origine chaque point-
destination doit être alimenté, et ceci en quelles quantités ? »
Ce problème peut être formalisé à l’aide d’un programme linéaire et comme tout
programme linéaire, il peut être présenté sous une forme primale ou sous une forme
duale.

4.2.1- Formulation primale


La formulation primale du modèle de transport sera abordée à travers le
traitement d’un cas. Les résultats seront ensuite généralisés de façon à pouvoir mettre
en évidence les caractéristiques particulières du modèle de transport.

4.2.1. - Un exemple de modèle de transport


La société des applications électriques AES-Sonel possède en Afrique trois
unités de production où elle fabrique, entre autres, des transformateurs. Elle
commercialise ses produits à travers quatre entrepôts situés dans les principales zones
de consommation. Le tableau 1a) indique pour chaque unité U i la capacité de
production de transformateurs, et pour chaque entrepôt E j la demande de
transformateurs émanant de la zone de consommation correspondante. Le tableau 1b)

38
donne les coûts de transport unitaires (en unité monétaire : u.m.) entre chaque usine et
chaque entrepôt.

Tableau 1 : Problème de transport d’AES-Sonel


a)
Offre Demande
Unité de Capacité de Entrepôt Demande b) E1 E2 E3 E4
product. product. d’approvi-
sionnement
U1 64 50 77 14
1 000 700 U2 37 20 48 24
200 100 U3 25 14 15 48
400 300
500

Si on note xij les quantités transportées entre l’usine U i et l’entrepôt E j le coût total de
transport supporté par AES-Sonel s’écrira :
C  64 x11  50 x12  ...  14 x14  37 x21  ...  24 x24  25x31  ...  48x34
L’objectif de l’entreprise est de rendre minimum ce coût de transport tout en
tenant compte des disponibilités du produit et de sa demande. Ici, l’offre totale est
égale à la demande totale : toutes les capacités seront utilisées pour satisfaire la
demande. Par exemple, la capacité de production de l’unité de production n° 3 est de
400 : elle devra donc expédier exactement 400 transformateurs vers les entrepôts. Ceci
s’exprime à l’aide de la contrainte suivante :
x31  x32  x33  x34  400
De même, dans la mesure où AES-Sonel désire vendre le plus possible, il est
nécessaire d’expédier vers un entrepôt donné ce qu’il a demandé. Soit pour l’entrepôt
n°2 par exemple :
x12  x22  x32  100
Le problème d’AES-Sonel peut ainsi s’exprimer sous la forme d’un programme
linéaire comprenant douze variables (une par trajet possible), et sept contraintes (une
par unité de production et une par entrepôt). Il s’écrit :
Minimiser C , C  64 x11  50 x12  77 x13  14 x14  37 x21  20 x22  48 x23  24 x24 
25x31  14 x32  15x33  48x34
 x11  x12  x13  x14  1000
 x  x  x  x  200
 21 22 23 24

 x31  x32  x33  x34  400



S /C  x11  x21  x31  700
 x  x  x  100
 12 22 32

 x13  x23  x33  300



 x14  x24  x34  500
Avec xij  0 i, j

39
La seule hypothèse nécessaire pour avoir le droit d’utiliser une telle formulation
est celle qui porte sur le caractère constant des coûts de transport unitaires : ils sont
indépendants des quantités transportées.
4.2.1. - Généralisation
Dans le cas général, le problème de transport s’exprime comme la recherche de
l’approvisionnement aux moindres coûts de points-destination ( à
partir de points-origine ( .
Les données du problème sont les suivantes :
- les capacités d’approvisionnement des points-origine : ( ;
- les demandes d’approvisionnement des points-destination : ( ;
- les coûts de transport unitaires entre chaque point-origine et chaque
point-destination ;
- les quantités transportées entre chaque point-origine et chaque point-
destination
Le problème peut alors se formuler de la façon suivante :
Minimiser C , C   cij xij
i j

 n

 xij  K i i  1, 2,..., m
 j 1
S /C  m
 x D
 ij j j  1, 2,..., n
i 1

Avec xij  0 i, j

Un problème comportant points-origine et points-destination comprendra


variables et contraintes avec contraintes associées aux points-origine et
contraintes
associées aux points-destination.

La structure de ce problème est très caractéristique : elle peut être mise en


valeur à travers l’analyse de la matrice des coefficients des variables dans les
contraintes.
La matrice ne comprend que des et des : elle est donc beaucoup plus
simple que les matrices des coefficients techniques rencontrées dans les programmes
linéaires habituels. On notera, en outre, que dans chaque colonne le chiffre 1 ne figure
que deux fois ; les autres éléments sont nuls. Dans la colonne associée à la variable
par exemple, le chiffre 1 apparaît dans la ligne et dans la ligne , ce qui
ème ème
correspond à la i contrainte-origine et la j contrainte-destination.
A titre d’exemple, la matrice A du problème d’approvisionnement d’AES-Sonel
est la suivante :

40
1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 1 0 0 0 0 

0 0 0 0 0 0 0 0 1 1 1 1
 
A  1 0 0 0 1 0 0 0 1 0 0 0
0 1 0 0 0 1 0 0 0 1 0 0
 
0 0 1 0 0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1 0 0 0 1 

4.2.2- Formulation duale


La formulation duale mérite d’être étudiée car elle fournit une technique de
résolution particulièrement intéressante ; l’interprétation économique de ses résultats
est également riche d’enseignement.

4.2.2. - Ecriture du programme dual


Compte tenu des résultats obtenus au chapitre précédent, nous pouvons énoncer
les propositions suivantes :
- à chacune des contraintes primales, nous associons une variable duale : la
variable duale Vi est associée à la contrainte-origine i , et la variable duale W j à
la contrainte-destination j ;
- l’objectif du problème dual est de rendre maximum une fonction linéaire des
variables et des variables ;
- les coefficients économiques de la fonction objectif duale, en ce qui concerne
les variables et , sont respectivement les disponibilités K i et les demandes
D j du problème primal ;
- la matrice des coefficients des variables dans les contraintes duales est la
transposée de la matrice utilisée dans le problème primal. Compte tenu de la
structure spécifique de la matrice A , dans chacune des contraintes duales
n’interviendront que deux variables. De façon plus précise, dans la contrainte
associée à la variable seules les variables et apparaîtront ;
- la contrainte s’exprimera ainsi :
L’écriture duale du problème de transport se présente de la façon suivante :
m n
Maximiser R, R   KiVi   D jW j
i 1 j 1

- Avec , i  1,2,.., m et j  1,2,.., n


Ecrire le programme dual du problème de transport d’AES-Sonel

4.2.2. - Relation avec le primal et interprétation économique

- Si l’une des deux formulations primale et duale a une solution, l’autre en a un


également et la valeur de la fonction objectif est la même, à l’optimum, pour les
deux formulations :

41
m n m n
Cmin  C  R  Rmax   cij xij   KiVi   D jW j
i 1 j 1 i 1 j 1

- Si la contrainte ij duale n’est pas saturée à l’optimum, la variable xij dans la


solution optimale primale :
Vi  W j  cij  xij  0
- Il est possible d’assimiler Vi et W j à des coûts marginaux : ces variables
mesurent la variation marginale de la fonction objectif primale (c’est-à-dire du
coût de transport) associée respectivement à une variation unitaire des quantités
disponibles en i ou demandées en j :
C C
Vi  et W j 
Ki D j
Ainsi, si une unité du produit est envoyée de i en j , c’est-à-dire xij  1, il ne
reste plus que Ki  1 unités à expédier du point i et D j  1 unités à envoyer en j .
Une unité est ainsi « supprimée » en offre et en demande et elle n’a plus à être
acheminée par un autre trajet. Cette suppression entraîne une économie de coût
ou encore un coût marginal égal à Vi  W j . Cette économie doit être comparée à ce
que coûte réellement le trajet ij . Trois cas sont possibles :
- Vi  W j  cij : l’économie réalisée sur l’ensemble du système de transport est
supérieure au coût total du trajet. Il y a donc avantage à utiliser au maximum
le trajet ij ;
- Vi  W j  cij : l’économie réalisée sur l’ensemble du système de transport est
inférieure au coût total du trajet. Le trajet n’est pas intéressant xij doit rester
nul;
- Vi  W j  cij : l’économie réalisée sur l’ensemble du système de transport
équilibre le coût total du trajet. Cet équilibre est vérifié pour tous les trajets
utilisés, c’est-à-dire pour les variables xij positives. C’est à partir de ces
trajets que sont déterminées les valeurs Vi et W j correspondant à une
solution particulière.
A l’optimum, seules les deux dernières situations peuvent être rencontrées.

4.3- Résolution du modèle de transport


Il serait techniquement possible de résoudre le problème de transport en faisant
appel aux tableaux du simplexe ; mais nous avons affaire ici à un programme linéaire
comportant beaucoup de variables et de contraintes. Cependant, compte tenu de la
structure particulière du problème, il va être possible de recourir à des techniques plus
légères issues d’une adaptation de l’algorithme du simplexe. Après avoir déterminé
une solution de base, nous étudierons successivement une technique de résolution
applicable à la formulation primale basée sur l’algorithme de Stepping-Stone, puis une

42
technique utilisant simultanément les deux formulations avec l’algorithme primal-
dual.

4.3.1- Les méthodes de détermination d’une solution de base


Un programme linéaire non dégénéré a pour contraintes sous forme standard k
équations indépendantes et admet pour solution de base des combinaisons de k
variables positives. En effet, une solution de base dégénérée comporte moins de
variables positives que de contraintes indépendantes. Le système des contraintes est
indépendant si toutes les contraintes redondantes ont été éliminées.
Nous donnerons ici deux méthodes de détermination d’une solution de base à
savoir la méthode du coin nord-ouest et la méthode du coût minimum ou méthode de
Houthakker.

4.3.1. - La méthode du coin nord-ouest


Cette méthode consiste à partir d’un coin du tableau des quantités transportées, à
saturer systématiquement les contraintes. La première case du tableau, correspondant à
la variable x11 se voit affecter un nombre d’unités égal au minimum de K1 et de D1 :
x11  M in imum( K , D ) . Si par exemple , on a et la première
1 1
contrainte-destination est saturée. Il ne reste plus à envoyer que K1 - D1 à partir de la
première unité de production. On pose alors x12  M in imum( K1  D1 , D2 ) .

Si K1  D1  D2 on a x12  K1  D1 et la première contrainte-origine est saturée ; Si


K1  D1  D2 , on a x12  D2 et la seconde contrainte-destination est saturée. Le
processus continue jusqu’à ce que toutes les contraintes soient saturées.
Cette méthode garantit l’obtention d’une solution de base non dégénérée. En
revanche, elle ne garantit pas l’obtention d’une bonne solution c’est-à-dire d’une
solution qui évite beaucoup plus d’itérations à réaliser.

Pour le problème d’AES-Sonel, nous nous trouvons en face d’un système de


contraintes composé de sept équations. Sur ces sept équations, six seulement sont
indépendantes : il suffit que les six premières équations soient vérifiées pour que la
septième le soit également. Une solution de base devra donc comprendre six variables
positives et six variables nulles

Etablir le tableau 2 donne une solution de base par la technique du coin nord-
ouest.

Tableau 2 : Application de la Technique du coin nord-ouest au problème de transport


d’AES-Sonel pour la détermination d’une solution de base

43
La solution de base proposée dans ce tableau comporte six trajets utilisés, donc
autant de variables positives que de contraintes indépendantes.

4.3.1. - La technique du coût minimum ou méthode de Houthakker


Elle consiste à repérer la case du tableau des quantités correspondant au coût de
transport le plus faible et à y faire transiter le maximum d’unités possibles en saturant
soit en offre, soit en demande.
Etablir le tableau 3 donne une solution de base par la technique du coût
minimum.
:

Tableau 3 : Application de la Technique du coût minimum au problème de transport


d’AES-Sonel pour la détermination d’une solution de base

La solution de base proposée dans ce tableau comporte cinq variables positives,


donc moins de variables positives que de contraintes indépendantes. C’est donc une
solution de base dégénérée. Ce problème de dégénérescence sera abordé plus bas.
Cette méthode a l’avantage de produire une solution de base plus proche de
l’optimum.

4.3.2- Algorithme de Stepping-Stone


De la même façon que dans l’algorithme du simplexe, l’algorithme de Stepping-
Stone repose sur la détermination d’une solution de base initiale qui est ensuite
progressivement améliorée dans le cadre d’une procédure itérative par intégration de
variables hors-base et élimination corrélative de variables de base.

Dans le problème d’AES-Sonel, la solution de base proposée dans le tableau 2


comporte six trajets retenus : x11  700, x12  100, x13  200, x23  100, x24  100, x34  400.
Cette solution respecte les contraintes de disponibilité et celles de demande : on vérifie
par l’addition des cases du tableau respectivement en lignes et en colonnes.

Il faut maintenant étudier s’il n’existe pas de solutions meilleures. On peut


procéder à cette étude en modifiant légèrement la solution actuelle, en faisant passer
une unité dans un trajet actuellement non utilisé : par exemple le trajet 33. Si x33  1,
pour respecter les contraintes, il faut réduire d’une unité les quantités envoyées par les

44
trajets et et augmenter d’une unité les quantités qui transitent par le trajet 24
(voir tableau ). Cette opération est intéressante puisqu’elle réduit le coût total de
transport de (en effet, c33  c23  c24  c34  57 ).
Le fait d’envoyer une unité par le trajet 33 et de procéder aux ajustements
nécessaires pour respecter les contraintes permet une économie de coût de 57. Il est
évident que si y unités avaient été envoyées, cette économie aurait été multipliée
par y .
L’entreprise a avantage à expédier le maximum d’unités par ce trajet. Ici, on ne
peut dépasser unités ; au-delà, le trajet dont les quantités diminuent se verrait
attribuer des quantités négatives. La nouvelle solution est donnée dans le tableau 4c.
Cette solution est meilleure que la précédente puisqu’elle entraine une économie de
coût de
Cette procédure est appliquée à la nouvelle solution. Tant que pour une case
vide il existe des économies réalisables, il faut continuer les calculs. En revanche, si
aucun trajet inutilisé ne permet de réduire le coût de transport, l’optimum est atteint.

Remarque : A chaque étape de calcul, on a introduit dans la solution le trajet


permettant la plus grande économie de coût. La solution optimale est donnée par le
tableau 4g). A cette étape de calcul, aucune autre économie n’est possible.
x11  500 , x14  500 , x21  100 , x22  100 , x31  100 , x33  300 , C  Cmin  51700 .

45
Tableau 4 : Application de l’algorithme de Stepping-Stone
a) E1 E2 E3 E4 Ki b) E1 E2 E3 E4 Ki
U1 700 100 200 0 1000 U1 700 100 200 0 1000
U2 0 0 100 100 200 U2 0 0 100 100 200
U3 0 0 0 400 400 -1 +1
Dj 700 100 300 500 1600 U3 0 0 0 400 400
+1* -1
C=91 600 Dj 700 100 300 500 1600

c33  c23  c24  c34


c) E1 E2 E3 E4 Ki 57( X 100) d) E1 E2 E3 E4 Ki
U1 700 100 200 0 1000 U1 700 100 0 200 1000
-1 +1* -1 +1
U2 0 0 0 200 200
U2 0 0 0 200 200 c14 c13  c33 c34
 
96( X 200)
U3 0 0 300 100 400
U3 0 0 100 300 400 +1* -1
+1 -1 Dj 700 100 300 500 1600
Dj 700 100 300 500 1600
C = 85 900
c31  c11  c14C
 c=
3466 700
73( X 100)
f) E1 E2 E3 E4 Ki
e) E1 E2 E3 E4 Ki c33  c23  c24  c34
U1 600 0 0 400 1000
U1 600 100 0 300 1000 57( X 100) -1 +1
-1 +1 c22 c12  c14 c24
U2 0 100 0 100 200
U2 0 0 0 200 200 
40( X 100)
 +1* -1
+1* -1 U3 100 0 300 0 400
U3 100 0 300 0 400
Dj 700 100 300 500 1600

Dj 700 100 300 500 1600


C = 59 400 C = 55 400
c21  c11  c14  c24
g) E1 E2 E3 E4 Ki 37( X 100)
U1 500 0 0 500 1000 c33  c23  c24  c34

57( X 100)
U2 100 100 0 0 200

U3 100 0 300 0 400

Dj 700 100 300 500 1600


C = 51 700

4.3.3- Algorithme primal- dual


Les calculs nécessités par l’application de l’algorithme précédent sont très
simples, mais ils peuvent être très nombreux quand on a affaire à des problèmes de
grande dimension. L’algorithme primal-dual permet de repérer plus facilement le trajet
le plus intéressant à introduire à chaque étape de calcul. Il fournit également un test
d’optimalité.

46
Cette nouvelle procédure est basée sur l’utilisation des contraintes duales. Pour
les trajets actuellement utilisés, la relation suivante doit être respectée : Vi  W j  cij .
Les valeurs Vi et W j sont donc évaluées à partir des trajets utilisés, puis
appliqués aux trajets non encore utilisés. A une étape donnée du calcul, il faut
introduire le trajet pour lequel Vi  W j  cij est le plus grand possible. Si à une étape du
processus tous les Vi  W j  cij sont négatifs ou nuls, la solution optimale est obtenue.
Si nous repartons de la première solution de base reproduite au tableau 4a, les
valeurs Vi et W j sont déterminées à l’aide du système d’équations suivantes :
V1  W1  64 V1  W3  77 V2  W4  24

V1  W2  50 V2  W3  48 V3  W4  48
Ce système comprend sept variables et six équations. Nous affectons une valeur
arbitraire à l’une des variables, par exemple V1  0 . Les autres variables peuvent alors
être déterminées : W1  64, W2  50, W3  77, V2  29, W4  53, V3  5 .
L’application de ces valeurs aux trajets inutilisés donne les résultats lus dans le
tableau 5.

Tableau 5 : Application de l’algorithme primal-dual à la solution du tableau 4a

Trajet inutilisé
14 = 0 + 53 – 14 = 39
V2  W1  c21 = - 29 + 64 – 37 = -2
21
V2  W2  c22 = - 29 + 50 – 20 = 1
22
V3  W1  c31 = - 5 + 64 – 25 = 34
31
V3  W2  c32 = - 5 + 50 – 14 = 31
32
V3  W3  c33 = - 5 + 77 – 15 = 57
33

Le trajet le plus intéressant s’avère être le trajet 33, qu’il faut donc introduire
dans la solution. La nouvelle base est obtenue à l’aide des mêmes calculs que
l’algorithme de Stepping-Stone : elle correspond au tableau 4c. Une nouvelle série de
valeurs Vi et W j est alors déterminée pour ce tableau et la procédure peut reprendre.
Utilisons cette procédure pour le tableau 4g qui donne la solution optimale.
V1  W1  64 V2  W1  37 V3  W1  25

V1  W4  14 V2  W2  20 V3  W3  15
Ce système comprend également sept variables et six équations. Nous affectons
une valeur arbitraire à l’une des variables, par exemple V1  0 . Les autres variables
prennent les valeurs : W1  64, W4  14, V2  27, W2  47, V3  39, W3  54 .
L’application de ces valeurs aux trajets inutilisés donne les résultats lus dans le
tableau 6.

47
Tableau 6 : Application de l’algorithme primal-dual à la solution du tableau 4g

Trajet inutilisé Vi  W j  cij

12 V1  W2  c12 = 0 + 47 – 50 = - 3
13 V1  W3  c13 = 0 + 54 – 77 = - 23
23 V2  W3  c23 = - 27 + 54 – 48 = - 21
24 V2  W4  c24 = - 27 + 14 – 24 = - 37
32 V3  W2  c32 = - 39 + 47 – 14 = - 6
34 V3  W4  c34 = - 39 + 14 – 48 = - 73

Le test des cases vides montre que toutes sont caractérisées par des Vi  W j  cij

négatifs : l’optimum est atteint.

4.3.4- Problèmes particuliers


Les méthodes qui viennent d’être examinées (l’algorithme de Stepping-Stone et
l’algorithme primal-dual) garantissent la détermination d’une solution optimale.
Cependant, plusieurs types de difficultés peuvent apparaître au moment de leur
application.

4.3.4. - Le cas de l’inégalité entre l’offre et la demande


La somme des capacités K i peut être différente de la somme des demandes D j .
Dans ce cas, la technique à utiliser va consister à revenir au cas d’égalité par
introduction soit d’une capacité fictive K f (cas où  Ki   D j ), soit d’une demande
i j
fictive D f (cas où  Ki   D j ).
i j
Supposons que dans le problème d’AES-Sonel, K3  500 et le reste sans
changement. Dans ce cas,  Ki  1700 > 1600   D j . Une partie de la capacité de
i j
production sera inutilisée et une demande fictive D f sera introduite dans la
formulation du problème. La capacité de cette demande fictive sera :
D f =  Ki   D j = 1700-1600 = 100
i j
Les coûts de transport unitaires entre les unités de production et l’entrepôt fictif seront
nuls puisqu’il s’agit d’une production qui n’est pas réalisée. Le nouveau système de
coût de transport dans le problème d’AES-Sonel est donné dans le tableau 7 où E f
désigne l’entrepôt fictif. Les algorithmes étudiés plus haut sont appliqués à ces
nouvelles données.

48
Tableau 7 : Cas d’inégalité entre l’offre et la demande dans le problème de transport
d’AES-Sonel

64 50 77 14 0
37 20 48 24 0
25 14 15 48 0

4.3.4. - Le problème de dégénérescence


Une solution de base dégénérée comporte moins de variables positives que de
contraintes indépendantes : c’est le cas d’AES-Sonel lorsqu’on considère une solution
de base par la technique du coût minimum.
- Une telle éventualité peut se produire quand une disponibilité est égale à une
demande.
- Une telle éventualité peut également se produire quand la somme des
disponibilités de h usines (h  m) est égale à la somme des demandes de l
entrepôts (l  n) . C’est le cas qui se produisait dans le tableau 3 avec
K1  D1  D3 et K3  D2  D3 .
Quand on se trouve en face d’une solution de base dégénérée, moins de m  n  1
variables primales sont retenues et l’algorithme primal-dual ne peut plus être utilisé.
Des risques de cyclage existent également dans l’application de l’algorithme du
simplexe.
Pour éviter ces différents problèmes, une solution consiste à ajouter à chaque
disponibilité, par exemple, une valeur   0 très faible et à l’une des demandes
pour équilibrer.
L’application de cette procédure au tableau 3 permet d’éviter l’apparition d’une
solution de base dégénérée : Corriger le problème de dégénéréscence et
déterminer la solution optimele à travers le tableau 8.

49

Vous aimerez peut-être aussi