Exercice de recherche op´erationnelle Probl`eme de transf`erement
Marc Roelens Corrig´e
1 Rappel du probl`eme
Une mati`ere premi`ere se trouv´ee stock´ee dans 5 d´epˆots situ´es `a Dunkerque (50 tonnes disponibles), au Havre (70 tonnes disponibles), `a Bordeaux (40 tonnes disponibles), `a S`ete (60 tonnes disponibles) et `a Mulhouse (80 tonnes disponibles).
On souhaite approvisionner `a moindre coˆut 4 points de vente situ´es `a Chˆateauroux (60 tonnes de- mand´ees), Bourges (80 tonnes demand´ees), Clermont-Ferrand (50 tonnes demand´ees) et Lyon (70 tonnes demand´ees).
On suppose que les seuls coˆuts `a prendre en compte pour l’optimisation sont les coˆuts de transports : ceux-ci sont proportionnels `a la quantit´e transf´er´ee et `a la distance parcourue. Voici les distances entre les diff´erentes villes :
Stock Chˆateauroux Bourges Clermont Lyon
50 Dunkerque 567 502 696 736
70 Le Havre 406 448 594 682
40 Bordeaux 345 410 369 548
60 S`ete 568 574 380 325
80 Mulhouse 688 623 519 340
Demande (t) 60 80 50 70
D´eterminer l’approvisionnement optimal.
2 Premi`eres r´eflexions
2.1 Un probl`eme de transport/flot
Ce probl`eme fait partie de la grande famille des probl`emes de flot optimal dans un r´eseau de transport.
Il pr´esente les particularit´es suivantes :
– le r´eseau de transport est ditdirect: les sources du flot (les d´epˆots) sont directement connect´ees aux puits du flot (les points de vente), sans passage par des points interm´ediaires du r´eseau ;
– les capacit´es de transport des arcs connectant les sources aux puits sont infinies.
On pourrait ainsi tout `a fait le traiter en mod´elisant le graphe de transport (graphe biparti) et en utilisant les algorithmes classiques de calcul de flot optimal (Ford-Fulkerson, am´eliorations d’Edmonds-Karp).
2.2 Un probl`eme de programmation lin´eaire
Si l’on note :
– N le nombre de d´epˆots ; – P le nombre de points de vente ;
– Dila quantit´e disponible au d´epˆoti∈ {1..N}; – djla quantit´e demand´ee au point de ventej∈ {1..P};
– cijle coˆut de transport unitaire (par tonne) du d´epˆotiau point de ventej; – qijla quantit´e transf´er´ee du d´epˆotiau point de ventej;
Alors, trouver l’approvisionnement optimal consiste `a minimiser la fonction de coˆut : F((qij)) =X
i,j
cijqij
en respectant les contraintes :
∀i∈ {1..N} PP
j=1qij≤Di
∀j∈ {1..P} PN
i=1qij≥dj
la premi`ere s´erie de contraintes traduisant le fait que la quantit´e livr´ee `a partir du d´epˆotidoit ˆetre inf´erieure
`a la quantit´e disponible, la seconde s´erie de contraintes traduisant le fait que la quantit´e livr´ee au point de ventejdoit ˆetre sup´erieure `a la quantit´e demand´ee.
On se trouve donc bien dans un probl`eme d’optimisation d’une fonction lin´eaire des variables(qij)en respectant des contraintes ´egalement lin´eaires.
2.3 Condition n´ecessaire et suffisante d’existence d’une solution
Une condition n´ecessaire pour l’existence d’une solution (et donc l’existence d’une solution optimale) est le fait que la quantit´eglobalementdisponible doit ˆetre sup´erieure `a la quantit´eglobalementdemand´ee :
N
X
i=1
Di≥
N
X
i=1 P
X
j=1
qij =
P
X
j=1 N
X
i=1
qij≥
P
X
j=1
dj
De plus, vu que la capacit´e des arcs est infinie, cette condition est aussi clairement suffisante.
Exemple : la quantit´e disponible est de50 + 70 + 40 + 60 + 80 = 300tonnes, la quantit´e demand´ee est de60 + 80 + 50 + 70 = 260tonnes, il existe donc une solution optimale au probl`eme.
2.4 Satisfaction au plus juste de la demande
Si le coˆut de transport unitaire est positif pour tous les arcs (ce qui est bien sˆur le cas dans le probl`eme trait´e o`u le coˆut est simplement la distance entre d´epˆot et point de vente), alors la solution optimale satisfait exactementla demande de chaque point de vente : en effet, il coˆuterait plus cher d’apporter de la mati`ere premi`ere en exc`es `a un point de vente !
Ainsi, dans la seconde famille de contraintes, on peut remplacer les in´egalit´es par des ´egalit´es, ce qui revient `a dire que les variables d’´ecart correspondantes sont forc´ement nulles (hors base optimale).
2.5 Forme particuli`ere de la matrice de contrainte
On ajoute traditionnellement aux variables initiales des variables d’´ecart yi pour les N premi`eres contraintes, qui repr´esentent donc les quantit´es disponibles dans chaque d´epˆot et non transf´er´ees : on pr´ef`ere parfois ajouter unpoint de vente fictif dont la demande est pr´ecis´ement la diff´erence entre offre et demande dans le probl`eme initial, qui permet d’´equilibrer demande et offre dans ce nouveau probl`eme. Le coˆut unitaire de transfert de n’importe quel d´epˆot vers ce point de vente fictif est une constante, en g´en´eral
´egale `a z´ero. Il n’est pas n´ecessaire d’ajouter la contrainte li´ee `a ce point de vente fictif, car l’´equation correspondante peut ˆetre obtenue `a partir des autres ´equations !
Ensuite, si l’on ordonne les variablesqij par ordre lexicographique sur(i, j)puis les variablesyipar ordre suri, la matrice de contraintes prend une forme tr`es particuli`ere (ci-dessous le cas d’exemple o`u l’on
a num´erot´e les d´epˆots 1=Dunkerque, 2=Le Havre, 3=Bordeaux, 4=S`ete, 5=Mulhouse, et les points de vente 1=Chˆateauroux, 2=Bourges, 3=Clermont, 4=Lyon) :
q11 q12 q13 q14 q21 q22 q23 q24 q31 q32 q33 q34 q41 q42 q43 q44 q51 q52q53q54y1y2y3y4y5
y1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 50 y2 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 70 y3 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 40 y4 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 60 y5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 80 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 60 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 80 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 50 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 70 567 502 696 736 406 448 594 682 345 410 369 548 568 574 380 325 688 623 519 340 0 0 0 0 0 F Noter au passage que cette matrice n’est pas sous la forme habituelle et ne correspond donc pas `a une solu- tion de base admissible : seules les 5 (Ndans le cas g´en´eral) premi`eres lignes correspondent effectivement
`a des colonnes unit´es (on a indiqu´e dans la colonne de gauche l’index de la colonne unit´e contenant un 1 dans cette ligne).
On rappelle ´egalement que le probl`eme est un probl`eme deminimisation: on a laiss´e l’expression de Fau lieu de−Fpour all´eger un peu le tableau. . .
3 R´esolution du probl`eme r´eduit par la m´ethode du simplexe
Afin d’all´eger le travail, on va r´eduire la taille du probl`eme en ne conservant dans un premier temps que 3 d´epˆots (Dunkerque, Le Havre et Bordeaux) pour deux points de vente (Chˆateauroux et Bourges), toutes les autres donn´ees (distances, demandes, stocks disponibles) restant identiques.
On constate sur ce probl`eme r´eduit que la condition d’existence d’une solution est v´erifi´ee : le stock global disponible est de 50+70+40=160 tonnes, alors que la demande globale est de 60+80=140 tonnes.
Voici le tableau du simplexe correspondant `a cet exemple r´eduit (avec la mˆeme technique de num´erotation des variables) :
q11 q12 q21 q22 q31 q32y1y2y3 y1 1 1 0 0 0 0 1 0 0 50 y2 0 0 1 1 0 0 0 1 0 70 y3 0 0 0 0 1 1 0 0 1 40 1 0 1 0 1 0 0 0 0 60 0 1 0 1 0 1 0 0 0 80 567 502 406 448 345 410 0 0 0 F
3.1 Calcul d’une premi`ere solution (amorc¸age)
Comme cela a d´ej`a ´et´e indiqu´e, l’algorithme du simplexe d´emarre par la recherche d’une solution de base admissible initiale : une fois cette premi`ere solution trouv´ee, l’algorithme permet de savoir si la solution est optimale ; si oui, on a termin´e, si non, on sait trouver une nouvelle solution de base admissible meilleure que la pr´ec´edente.
Rappelons ce qu’est une solution de base admissible : – solutionindique que les contraintes sont v´erifi´ees ;
– admissibleindique que les variables sont toutes positives ou nulles ; – de baseindique que le nombre de variables non nulles est minimal.
On sait que la solution optimale (si elle existe) est une solution de base admissible ou plus exactement, qu’il existe forc´ement une solution optimale qui est une solution de base admissible.
Le nombre (minimal) de variables non nulles parmi toutes les variables (y compris les variables d’´ecart, soitN(P + 1), soit 9 dans l’exemple r´eduit, 25 dans l’exemple complet) est d´etermin´e par le nombre de contraintes : c’est iciN+P, soit dans notre exemple r´eduit 5 (9 dans l’exemple complet).
Il existe plusieurs m´ethodes (ou heuristiques) pour trouver cette solution de base admissible initiale :
– la m´ethode des variables artificielles ; – la m´ethode dite ducoin nord-ouest;
– la m´ethode dite descoˆuts minimaux successifs(ou heuristique de Houthakker) ; – la m´ethode dite desregrets maximaux successifs(ou heuristique de Balas-Hammer).
Il est `a noter que ces m´ethodes ne fournissent pas directement, dans le cas g´en´eral, la solution optimale !
3.1.1 La m´ethode des variables artificielles
Cette m´ethode est tout `a fait g´en´erale : elle consiste `a ajouter des variables qui sont initialement dans la base, tout en leur attribuant un coˆut tr`es important (10 fois sup´erieur `a tous les autres coˆuts, par exemple).
Ainsi, lors de l’algorithme du simplexe, ces variables vont naturellement sortir de la base et n’y rentreront plus jamais : on peut alors les ´eliminer d`es leur sortie.
Dans le cas du probl`eme de transf`erement, on ajoutePvariables artificielles que l’on note(zj), et l’on r´ecrit les contraintes sous la forme :
∀i∈ {1..N} PP
j=1qij+yi =Di
∀j∈ {1..P} PN
i=1qij+zj =di
La base initiale est ainsi constitu´ee des variables d’´ecart(yi)et des variables artificielles(zj), ce qui fait bienN+P = 5variables de base surN P+N+P = 11variables au total, correspondant aux 5 contraintes.
Le syst`eme lin´eaire peut alors s’´ecrire :
q11 q12 q21 q22 q31 q32y1y2y3z1 z2
y1 1 1 0 0 0 0 1 0 0 0 0 50 y2 0 0 1 1 0 0 0 1 0 0 0 70 y3 0 0 0 0 1 1 0 0 1 0 0 40 z1 1 0 1 0 1 0 0 0 0 1 0 60 z2 0 1 0 1 0 1 0 0 0 0 1 80 567 502 406 448 345 410 0 0 0 M M F
Dans ce tableau, la valeurM est le coˆut associ´e aux variables artificielles. L’expression de la«fonction
´economique»(derni`ere ligne du tableau) est encore incorrecte, il faudrait lui appliquer 2 phases de pivo- tage pour ´eliminer les coefficients des variables(zj). En fait, vue la forme particuli`ere de la matrice, on obtiendrait pour la variableqij le coefficientcij−M.
Pour choisir le premier pivot, on devrait donc choisir la valeur la plus n´egative parmi ces coefficients, ce qui revient `a choisir la plus petite valeur descij, ce qui revient `a la m´ethode indiqu´ee plus loin descoˆuts minimaux successifs.
3.1.2 La m´ethode du coin nord-ouest
Cette m´ethode consiste `a«faire entrer dans la base»les variables par ordre lexicographique croissant (si c’est possible) sans faire«sortir de la base»les variables que l’on a fait entrer. Sur l’exemple, on obtient ainsi les phases suivantes :
1. on commence par la variableq11; il y a deux coefficients 1 dans la colonne correspondante, on calcule donc les ratios«valeur du second membre divis´ee par valeur du coefficient», ce qui revient `a simplement consid´erer la valeur du second membre, en l’occurrence 50 et 60 ; on retient le minimum (positif) de ces deux valeurs, qui est donc la valeur 50, correspondant `a la ligne dey1qui va sortir de la base ;
on peut retrouver la signification ´economique de ce r´esultat :q11repr´esente la quantit´e transf´er´ee du d´epˆot de Dunkerque au point de vente de Chˆateauroux ; on est limit´e par la demande `a Chˆateauroux (60 tonnes) et le stock disponible `a Dunkerque (50) : la variable prend donc la valeur 50, la demande r´esiduelle `a Chˆateauroux prend la valeur 10 et le stock r´esiduel `a Dunkerque est nul (ety1,q12sont nulles et hors base) ;
2. la variable suivante est doncq21: on est limit´e par la demande r´esiduelle `a Chˆateauroux (10 tonnes) et le stock au Havre (70 tonnes) ; la variable prend donc la valeur 10, le stock r´esiduel au Havre est de 60 tonnes, la demande r´esiduelle `a Chˆateauroux est nulle (etq31est nulle et hors base) ;
3. la variable suivante est doncq22 : on est limit´e par la demande `a Bourges (80 tonnes) et le stock r´esiduel au Havre (60 tonnes) ; la variable prend donc la valeur 60, la demande r´esiduelle `a Bourges prend la valeur 20 et le stock r´esiduel au Havre est nul (ety2est nulle et hors base) ;
4. la variable suivante est doncq32: on est limit´e par la demande r´esiduelle `a Bourges (20 tonnes) et le stock `a Bordeaux (40 tonnes) ; la variable prend donc la valeur 20, le stock r´esiduel `a Bordeaux est de 20 tonnes.
Les variables hors base sont doncq12,q31,y1ety2; les autres variables sont :
q11 = 50 q21 = 10 q22 = 60 q32 = 20 y3 = 20
Le coˆut global de cette solution est de 67490. Comme cette m´ethode ne tient absolument pas compte des coˆuts associ´es, on a toutes raisons de penser que la solution obtenue n’a que tr`es peu de chances d’ˆetre optimale.
3.1.3 Amorc¸age par m´ethode de Houthakker
Dans cette m´ethode (´egalement appel´ee m´ethode des coˆuts minimaux successifs), on cherche `a faire entrer les variables par ordre de coˆut croissant (si elles n’ont pas d´ej`a ´et´e class´ees comme ´etant hors de la base). On obtient ainsi successivement :
1. la premi`ere variable estq31(coˆut minimal de 345) : on est limit´e par la demande `a Chˆateauroux (60 tonnes) et le stock `a Bordeaux (40 tonnes) ; la variable prend donc la valeur 40, la demande r´esiduelle
`a Chˆateauroux est de 20 tonnes, le stock r´esiduel `a Bordeaux est nul (q32,y3sont nulles et hors base) ; 2. la variable suivante estq21(coˆut minimal de 406) : on est limit´e d’une part par la demande r´esiduelle
`a Chˆateauroux (20 tonnes) et d’autre part par le stock au Havre (70 tonnes) ; la variable prend donc la valeur 20, le stock r´esiduel au Havre prend la valeur 50, la demande r´esiduelle `a Chˆateauroux est nulle (etq11est nulle et hors base) ;
3. la variable suivante est doncq22(coˆut minimal de 448) : on est limit´e par la demande `a Bourges (80 tonnes) et le stock r´esiduel au Havre (50 tonnes) ; la variable prend donc la valeur 50, la demande r´esiduelle `a Bourges prend la valeur 30, le stock r´esiduel au Havre est nul (et y2 est nulle et hors base) ;
4. la variable suivante est doncq12 (coˆut minimal de 502) : on est limit´e par la demande r´esiduelle `a Bourges (30 tonnes) et le stock `a Dunkerque (50 tonnes) ; la variable prend donc la valeur 20, le stock r´esiduel `a Dunkerque prend la valeur 20, la demande r´esiduelle `a Bourges est nulle.
Les variables hors base sont doncq11,q32,y2ety3; les autres variables sont :
q12 = 30 q21 = 20 q22 = 50 q31 = 40 y1 = 20 Le coˆut global de cette solution est de 59380.
3.1.4 Amorc¸age par m´ethode de Balas-Hammer
Il semble naturel d’essayer d’approvisionner chaque point de vente `a partir du d´epˆot qui est le moins cher pour ce point de vente. Ne pas le faire va entraˆıner un surcoˆut (puisque l’on va se fournir `a un d´epˆot plus cher), et c’est ce surcoˆut que l’on nommeregret.
Dans la m´ethode de Balas-Hammer (´egalement appel´ee m´ethode des regrets maximaux successifs), on cherche `a faire entrer les variables pour ordre de regret d´ecroissant (si elles n’ont pas d´ej`a ´et´e class´ees comme ´etant hors de la base). On obtient ainsi successivement :
1. calculons le regret associ´e `a chaque point de vente :
– pour le point de vente `a Chˆateauroux, le d´epˆot le moins cher est Bordeaux `a un coˆut de 345, le suivant ´etant Le Havre `a un coˆut de 406, soit un regret de 61 ;
– pour le point de vente `a Bourges, le d´epˆot le moins cher est Bordeaux `a un coˆut de 410, le suivant
´etant Le Havre `a un coˆut de 448, soit un regret de 38 ;
le regret maximal correspond `a la variableq31(comme pour Houthakker) ; la variable prend donc la valeur 40, la demande r´esiduelle `a Chˆateauroux est de 20 tonnes, le stock r´esiduel `a Bordeaux est nul (q32,y3sont nulles et hors base) ;
2. on recalcule les regrets :
– pour le point de vente `a Chˆateauroux, le d´epˆot le moins cher est Le Havre `a un coˆut de 406, le suivant ´etant Dunkerque `a un coˆut de 567, soit un regret de 161 ;
– pour le point de vente `a Bourges, le d´epˆot le moins cher est Le Havre `a un coˆut de 448, le suivant
´etant Dunkerque `a un coˆut de 502, soit un regret de 54 ;
le regret maximal correspond `a la variableq21(comme pour Houthakker) ; la variable prend donc la valeur 20, le stock r´esiduel au Havre prend la valeur 50, la demande r´esiduelle `a Chˆateauroux est nulle (etq11est nulle et hors base) ;
3. il ne reste que le point de vente de Bourges, pour lequel le moins cher est Le Havre (50 tonnes encore disponible) suivi de Dunkerque (30 tonnes utilis´ees sur les 50 tonnes disponibles)
On retrouve donc exactement la mˆeme solution que pour Houthakker : ceci est uneco¨ıncidence!
3.2 Calcul du tableau du simplexe
On prend donc comme solution de base admissible la solution commune trouv´ee par les deux m´ethodes.
On commence par faire entrerq31dans la base, c’esty3qui en sort (troisi`eme ligne du tableau) : q11 q12 q21 q22q31q32y1y2 y3
y1 1 1 0 0 0 0 1 0 0 50 y2 0 0 1 1 0 0 0 1 0 70 q31 0 0 0 0 1 1 0 0 1 40 1 0 1 0 0 −1 0 0 −1 20 0 1 0 1 0 1 0 0 0 80
567 502 406 448 0 65 0 0−345 F−13800
C’est ensuiteq21qui entre dans la base (quatri`eme ligne du tableau) : q11 q12q21q22q31q32y1y2y3 y1 1 1 0 0 0 0 1 0 0 50 y2 −1 0 0 1 0 1 0 1 1 50 q31 0 0 0 0 1 1 0 0 1 40 q21 1 0 1 0 0 −1 0 0 −1 20 0 1 0 1 0 1 0 0 0 80
161 502 0 448 0 471 0 0 61 F−21920
C’est ensuiteq22qui entre dans la base alors quey2en sort (deuxi`eme ligne du tableau) : q11 q12q21q22q31q32y1 y2 y3
y1 1 1 0 0 0 0 1 0 0 50
q22 −1 0 0 1 0 1 0 1 1 50
q31 0 0 0 0 1 1 0 0 1 40
q21 1 0 1 0 0 −1 0 0 −1 20 1 1 0 0 0 0 0 −1 −1 30
609 502 0 0 0 23 0 −448−387 F−44320 Et pour terminer, c’estq12qui entre dans la base (cinqui`eme ligne du tableau) :
q11q12q21q22q31q32y1 y2 y3 y1 0 0 0 0 0 0 1 1 1 20 q22 −1 0 0 1 0 1 0 1 1 50 q31 0 0 0 0 1 1 0 0 1 40 q21 1 0 1 0 0 −1 0 0 −1 20 q12 1 1 0 0 0 0 0 −1−1 30
107 0 0 0 0 23 0 54 115 F−59380
On a cette fois une solution de base admissible de coˆut global 59380 (on retrouve bien la valeur pr´ec´edente).
Qui plus est, on constate que les coefficients de la fonction ´economique sont tous positifs : on est donc par- venu `a l’optimum ! Ceci, est-il encore besoin de le rappeler, est une co¨ıncidence : la m´ethode de Houthakker ou celle de Balas-Hammer ne sont cens´ees donner qu’une«bonne»solution, pas forc´ement la meilleure.
3.3 Quelques constatations
Dans toutes les manipulations de l’algorithme du simplexe que l’on a r´ealis´ees, on constate que les coefficients de la matrice ne sont que des 0, des 1 ou des -1 : ceci n’est pas un hasard mais peut ˆetre proprement d´emontr´e (on peut retrouver `a l’intuition ce r´esultat si l’on songe `a la mod´elisation par flots).
On a ´egalement une autre propri´et´e : le nombre de 1 dans chaque colonne est toujours ´egal au nombre de -1 plus une unit´e ! L`a encore, ce r´esultat n’est pas le fruit du hasard.
Enfin, consid´erons une variable hors base, q11 par exemple qui repr´esente la quantit´e transf´er´ee de Dunkerque `a Chˆateauroux. Si l’on voulait la faire entrer dans la base – lui donner une valeur +1 par exemple – il faudrait, afin de respecter la contrainte de ne pas d´epasser 50 tonnes transf´er´ees `a partir de Dunkerque, diminuer de -1 la quantit´e transf´er´ee `a Bourges (c’est le seul point de vente approvisionn´e). Comme on doit respecter la quantit´e transf´er´ee `a Bourges, il faut augmenter de +1 la quantit´e livr´ee depuis un autre d´epˆot : si l’on ne veut pas rendre non nulle une autre variable (lors d’un changement de base, une et une seule variable sort, une et une seule variable entre), on ne peut augmenter que le transfert depuis Le Havre.
Mais pour cela (respect du stock disponible au Havre), on doit diminuer la quantit´e transf´er´ee du Havre `a Chˆateauroux. . .et la boucle (ou plus exactement le cycle) est boucl´ee !
Calculons le coˆut de ce transfert (toujours pour une tonne transf´er´ee) : il faut compter en plus la distance de Dunkerque `a Chˆateauroux (567) et la distance du Havre `a Bourges (448), en moins la distance de Dunkerque `a Bourges (502) et la distance du Havre `a Chˆateauroux (406), soit un total de567 + 448− 502−406 = 107: c’est pr´ecis´ement la valeur du coefficient dans la fonction ´economique deq11.
En fait, on rappelle que le tableau final (primal) permet de donner une expression des variables dans la base et de la fonction ´economique en fonction des variables hors base, cette expression ´etant valable au voisinage de la solution de base admissible correspondante. Si l’on souhaite exprimer la variation de la solution par rapport `a la variableq11(par exemple, si une nouvelle contrainte commerciale nous imposait de livrer Chˆateauroux `a partir de Dunkerque), on peut le faire directement `a partir du tableau final :
y1 = 20
q22 = 50 +q11
q31 = 40
q21 = 20 −q11
q12 = 30 −q11
F = 59380 +107q11
On retrouve donc parfaitement les variations trouv´ees«`a la main». Ici, on est mˆeme capable de savoir quelle est la variation maximale de la variable q11 qui ne modifie pas la forme de cette expression : la premi`ere variable `a s’annuler serait alorsq21pour une valeur de 20.
Ce sont ces constatations qui vont donner l’id´ee d’un algorithme sp´ecifique pour la r´esolution de ce probl`eme : on ne calcule pas le tableau du simplexe, car on est capable d’en retrouver l’expression `a partir de la seule donn´ee de la solution de base admissible correspondante.
4 Retour au probl`eme initial
Revenons maintenant au probl`eme initial : on cherche d’abord `a d´eterminer une solution de base ad- missible.
4.1 Amorc¸age
D´etaillons les trois m´ethodes pour obtenir cette solution de base admissible initiale.
4.1.1 M´ethode du coin nord-ouest
On rappelle que l’on fait entrer les variables dans la base par ordre lexicographique sur les variables.
On obtient les ´etapes suivantes :
1. on commence par faire entrer q11 dans la base, donc faire apparaˆıtre une colonne unit´e dans la colonne index´ee parq11. On voit que l’on n’a que deux choix possibles pour le pivot (il n’y a que deux 1 dans cette colonne) : on applique la r`egle de calcul classique pour le choix du pivot, c’est-`a- dire les ratio coefficient du second membre divis´e par valeur du pivot. On trouve le minimum ´egal `a 50 sur la ligne index´ee pary1(qui va donc sortir de la base).
On pourrait retrouver ce r´esultat de la fac¸on suivante : la quantit´eq11(quantit´e transf´er´ee de Dun- kerque `a Chˆateauroux) est calcul´ee comme ´etant le minimum de deux valeurs : la quantit´e disponible
`a Dunkerque (50) et la quantit´e demand´ee `a Chˆateauroux (60). On retrouve la valeur 50 pr´ec´edente.
Une fois ceci d´etermin´e, on en d´eduit que les variablesq12,q13,q14ety1sont nulles donc hors base.
En d’autres termes, on a utilis´e toute la quantit´e disponible `a Dunkerque.
2. la variable suivante est doncq21: on est limit´e par la demande r´esiduelle `a Chˆateauroux (10 tonnes) et le stock au Havre (70 tonnes) ; la variable prend donc la valeur 10 et le stock r´esiduel au Havre est de 60 tonnes, la demande r´esiduelle `a Chˆateauroux est nulle (etq31,q41,q51sont nulles et hors base) ;
3. la variable suivante estq22: on est limit´e par la demande `a Bourges (80 tonnes) et le stock r´esiduel au Havre (60 tonnes) ; la variable prend donc la valeur 60, le stock r´esiduel au Havre est nul (etq23, q24,y2sont nulles et hors base), la demande r´esiduelle `a Bourges est de 20 tonnes ;
4. la variable suivante estq32: on est limit´e par la demande r´esiduelle `a Bourges (20 tonnes) et le stock
`a Bordeaux (40 tonnes) ; la variable prend donc la valeur 20, le stock r´esiduel `a Bordeaux est de 20 tonnes, la demande r´esiduelle `a Bourges est nulle (etq42,q52sont nulles et hors base) ;
5. la variable suivante estq33: on est limit´e par la demande `a Clermont (50 tonnes) et le stock r´esiduel
`a Bordeaux (20 tonnes) ; la variable prend donc la valeur 20, le stock r´esiduel `a Bordeaux est nul (et q34,y3sont nulles et hors base), la demande r´esiduelle `a CLermont est de 30 tonnes ;
6. la variable suivante estq43: on est limit´e par la demande r´esiduelle `a Clermont (30 tonnes) et le stock
`a S`ete (60 tonnes) ; la variable prend donc la valeur 30, le stock r´esiduel `a S`ete est de 30 tonnes, la demande r´esiduelle `a Clermont est nulle (etq53est nulle et hors base) ;
7. la variable suivante estq44 : on est limit´e par la demande `a Lyon (70 tonnes) et le stock r´esiduel `a S`ete (30 tonnes) ; la variable prend donc la valeur 30, le stock r´esiduel `a S`ete est nul (ety4est nulle et hors base), la demande r´esiduelle `a Lyon est de 40 tonnes ;
8. la variable suivante estq54: on est limit´e par la demande r´esiduelle `a Lyon (40 tonnes) et le stock `a Mulhouse (80 tonnes) ; la variable prend donc la valeur 40, le stock r´esiduel `a Mulhouse est de 40 tonnes, la demande r´esiduelle `a Lyon est nulle ;
9. enfin, la derni`ere variable esty5: le stock r´esiduel (non transf´er´e) `a Mulhouse est de 40 tonnes.
On voit que l’on a bien 9 variables non nulles :q11 = 50,q21 = 10,q22 = 60,q32 = 20,q33 = 20, q43= 30,q44= 30,q54= 40ety5= 40, pour un coˆut global de 109620.
Par contre, on n’a tenu compte `a aucun moment des coˆuts (le choix des variables non nulles d´epend de l’ordre dans lequel on classe d´epˆots et points de vente) : on peut donc l´egitimement penser que cette solution (de base admissible) n’a aucun raison particuli`ere d’ˆetre unebonnesolution, et encore moins la meilleuresolution. . .
4.1.2 La m´ethode des co ˆuts minimaux successifs
Ici, l’ordre choisi pour faire entrer les variables dans la base est l’ordre croissant des coˆuts. Voici alors la succession des op´erations :
1. la variableq44est de coˆut minimal (325), c’est donc elle que l’on choisit de faire entrer dans la base ; on est limit´e par la demande `a Lyon (70 tonnes) et le stock disponible `a S`ete (60) : la variable prend donc la valeur 60, le stock r´esiduel `a S`ete est nul (etq41,q42,q43,y4sont nulles et hors base), la demande r´esiduelle `a Lyon est de 10 ;
2. la variable suivante estq54(coˆut 340) ; on est limit´e par la demande r´esiduelle `a Lyon (10) et le stock disponible `a Mulhouse (80) ; la variable prend donc la valeur 10, le stock r´esiduel `a Mulhouse est de 70, la demande r´esiduelle `a Lyon est nulle (etq14,q24,q34sont nulles et hors base) ;
3. la variable suivante estq31(coˆut 345) ; on est limit´e par la demande `a Chˆateauroux (60) et le stock disponible `a Bordeaux (40) ; la variable prend donc la valeur 40, le stock r´esiduel `a Bordeaux est nul (etq32,q33,y3sont nulles et hors base), la demande r´esiduelle `a Chˆateauroux est de 20 ;
4. la variable suivante estq21(coˆut 406) ; on est limit´e par la demande r´esiduelle `a Chˆateauroux (20) et le stock disponible au Havre (70) ; la variable prend donc la valeur 20, le stock r´esiduel disponible au Havre est de 50, la demande r´esiduelle `a Chˆateauroux est nulle (etq11,q51sont nulles et hors base) ; 5. la variable suivante estq22(coˆut 448) ; on est limit´e par la demande `a Bourges (80) et le stock r´esiduel disponible au Havre (50) ; la variable prend donc la valeur 50, le stock r´esiduel disponible au Havre est nul (etq23,y2sont nulles et hors base), la demande r´esiduelle `a Bourges est de 30 ;
6. la variable suivante estq12(coˆut 502) ; on est limit´e par la demande r´esiduelle `a Bourges (30) et le stock disponible `a Dunkerque (50) ; la variable prend donc la valeur 30, le stock r´esiduel disponible
`a Dunkerque est de 20, la demande r´esiduelle `a Bourges est nulle (etq52est nulle et hors base) ; 7. la variable suivante estq53 (coˆut 519) ; on est limit´e par la demande `a Clermont (50) et le stock
r´esiduel disponible `a Mulhouse (70) ; la variable prend donc la valeur 50, le stock r´esiduel disponible
`a Mulhouse est de 20, la demande r´esiduelle `a Clermont est nulle (etq13est nulle et hors base) ; 8. les demandes sont maintenant toutes satisfaites, il reste comme variables non nulles (et donc dans la
base)y1= 20ety5= 20;
On trouve `a nouveau une solution de base admissible avec 9 variables non nulles :q12 = 30,y1 = 20, q21= 20,q22= 50,q31= 40,q44= 60,q53= 50,q54= 10ety5= 20pour un coˆut total de 108230.
Attention : on obtient une solution qui se trouve ˆetre meilleure que la pr´ec´edente, mais rien ne le garantit ! On utilise une strat´egie de coˆutslocauxminimaux ce qui ne conduit pas forc´ement `a la solution optimale.
4.1.3 M´ethode des regrets maximaux successifs (Balas-Hammer)
L’heuristique de Balas-Hammer consiste alors `a faire entrer dans la base la variable qui correspond au regret le plus grand. On obtient alors les ´etapes successives suivantes :
1. calculons le regret associ´e `a chaque point de vente :
– pour le point de vente `a Chˆateauroux, le d´epˆot le moins cher est Bordeaux `a un coˆut de 345, le suivant ´etant Le Havre `a un coˆut de 406, soit un regret de 61 ;
– pour le point de vente `a Bourges, le d´epˆot le moins cher est Bordeaux `a un coˆut de 410, le suivant
´etant Le Havre `a un coˆut de 448, soit un regret de 38 ;
– pour le point de vente `a Clermont, le d´epˆot le moins cher est Bordeaux `a un coˆut de 369, le suivant
´etant S`ete `a un coˆut de 380, soit un regret de 11 ;
– pour le point de vente `a Lyon, le d´epˆot le moins cher est S`ete `a un coˆut de 325, le suivant ´etant Mulhouse `a un coˆut de 340, soit un regret de 15 ;
on constate que le regret maximal correspond `a la variableq31(approvisionnement du point de vente
`a Chˆateauroux par le d´epˆot de Bordeaux), c’est donc celle-ci qui va entrer en premier dans la base ; on est limit´e par la demande `a Chˆateauroux (60) et le stock disponible `a Bordeaux (40) ; la variable prend donc la valeur 40, le stock r´esiduel `a Bordeaux est nul (etq32,q33,q34,y3sont nulles et hors base), la demande r´esiduelle `a Chˆateauroux est de 20 ;
2. on recalcule les regrets associ´es `a chaque point de vente dont la demande n’est pas encore satisfaite, sachant que le d´epˆot de Bordeaux ne peut plus rien fournir :
– pour le point de vente `a Chˆateauroux, le d´epˆot le moins cher est Le Havre `a un coˆut de 406, le suivant ´etant Dunkerque `a un coˆut de 567, soit un regret de 161 ;
– pour le point de vente `a Bourges, le d´epˆot le moins cher est Le Havre `a un coˆut de 448, le suivant
´etant Dunkerque `a un coˆut de 502, soit un regret de 54 ;
– pour le point de vente `a Clermont, le d´epˆot le moins cher est S`ete `a un coˆut de 380, le suivant ´etant Mulhouse `a un coˆut de 519, soit un regret de 139 ;
– pour le point de vente `a Lyon, le d´epˆot le moins cher est S`ete `a un coˆut de 325, le suivant ´etant Mulhouse `a un coˆut de 340, soit un regret de 15 ;
on constate que le regret maximal correspond `a la variableq21(approvisionnement du point de vente
`a Chˆateauroux par le d´epˆot du Havre), c’est donc celle-ci qui va entrer dans la base ; on est limit´e par la demande r´esiduelle `a Chˆateauroux (20) et le stock disponible au Havre (70) ; la variable prend donc la valeur 20, le stock r´esiduel au Havre est de 50, la demande r´esiduelle `a Chˆateauroux est nulle (etq11,q41,q51sont nulles et hors base) ;
3. il n’est pas n´ecessaire de recalculer les regrets (les d´epˆots disponibles sont les mˆemes), on prend le regret maximal suivant (139) correspondant `a q43 qui entre dans la base ; on est limit´e par la demande `a Clermont (50) et le stock disponible `a S`ete (60) ; la variable prend donc la valeur 50, le stock r´esiduel disponible `a S`ete est de 10, la demande r´esiduelle `a Clermont est nulle (etq13,q23,q53 sont nullest et hors base) ;
4. il n’est pas n´ecessaire de recalculer les regrets (les d´epˆots disponibles sont les mˆemes), on prend le regret maximal suivant (54) correspondant `aq22qui entre dans la base ; on est limit´e par la demande
`a Bourges (80) et le stock r´esiduel disponible au Havre (50) ; la variable prend donc la valeur 50, le stock r´esiduel disponible au Havre est nul (etq24,y2sont nulles et hors base), la demande r´esiduelle
`a Bourges est de 30 ;
5. on recalcule les regrets pour les points de vente non satisfaits, sachant que les d´epˆots de Bordeaux et du Havre ne peuvent plus rien fournir :
– pour le point de vente `a Bourges, le d´epˆot le moins cher est Dunkerque `a un coˆut de 502, le suivant
´etant S`ete `a un coˆut de 574, soit un regret de 72 ;
– pour le point de vente `a Lyon, le d´epˆot le moins cher est S`ete `a un coˆut de 325, le suivant ´etant Mulhouse `a un coˆut de 340, soit un regret de 15 ;
on constate que le regret maximal correspond `a la variableq12(approvisionnement du point de vente
`a Bourges par le d´epˆot de S`ete) qui entre dans la base ; on est limit´e par la demande r´esiduelle `a Bourges (30) et le stock disponible `a Dunkerque (50) ; la variable prend donc la valeur 30, le stock r´esiduel disponible `a Dunkerque est de 20, la demande r´esiduelle `a Bourges est nulle (etq42,q52sont nulles et hors base) ;
6. il reste `a satisfaire la demande de Lyon ; on commence par prendre 10 tonnes disponibles `a S`ete (q44
entre dans la base,y4est nulle et hors base), puis 60 tonnes `a Mulhouse (q54entre dans la base,q14 est nulle et hors base) : il reste alors 20 tonnes dans les d´epˆots de Dunkerque et Mulhouse (y1= 20 ety5= 20entrent dans la base).
On trouve `a nouveau une solution de base admissible avec 9 variables non nulles :q12 = 30,y1 = 20, q21= 20,q22= 50,q31= 40,q43= 50,q44= 10,q54= 60ety5= 20pour un coˆut total de 102030.
Attention : on obtient une solution qui se trouve ˆetre meilleure que la pr´ec´edente, mais rien ne le garantit ! On utilise une encore une strat´egielocalece qui ne conduit pas forc´ement `a la solution optimale.
4.2 Recherche de la solution optimale
Une fois une solution initiale trouv´ee, on doit reprendre l’algorithme classique du simplexe. Mais pour cela, on doit calculer le tableau du simplexe correspondant `a la solution de base admissible initiale d´etermin´ee au paragraphe pr´ec´edent (par la m´ethode des regrets par exemple).
On le fait `a partir du tableau initial en appliquant les op´erations d’entr´ee et de sortie de la base trouv´ees par l’heuristique de Balas-Hammer ; en premier,q31entre dans la base ety3en sort, ce qui donne le tableau suivant :
q11q12q13q14q21q22q23q24q31q32q33q34q41q42q43q44q51q52q53q54y1y2 y3 y4y5
y1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 50 y2 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 70 q31 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 40 y4 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 60 y5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 80 1 0 0 0 1 0 0 0 0 −1−1−1 1 0 0 0 1 0 0 0 0 0 −1 0 0 20 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 80 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 50 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 70
567 502 696 736 406 448 594 682 0 65 24 203 568 574 380 325 688 623 519 340 0 0 −3450 0 F−13800
Puis c’est au tour deq21d’entrer dans la base (le pivot se trouve sur la sixi`eme ligne du tableau) : q11q12q13q14q21q22q23q24q31q32q33q34q41q42q43q44q51q52q53q54y1y2 y3 y4y5
y1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 50 y2 −1 0 0 0 0 1 1 1 0 1 1 1 −1 0 0 0 −1 0 0 0 0 1 1 0 0 50 q31 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 40 y4 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 60 y5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 80 q21 1 0 0 0 1 0 0 0 0 −1−1−1 1 0 0 0 1 0 0 0 0 0 −1 0 0 20 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 80 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 50 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 70
161 502 696 736 0 448 594 682 0 471 430 609 162 574 380 325 282 623 519 340 0 0 61 0 0 F−21920
Puis c’est au tour deq43d’entrer dans la base (le pivot se trouve sur la huiti`eme ligne du tableau) : q11q12q13q14q21q22q23q24q31q32q33q34q41q42q43q44q51q52q53q54y1y2 y3 y4y5
y1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 50 y2 −1 0 0 0 0 1 1 1 0 1 1 1 −1 0 0 0 −1 0 0 0 0 1 1 0 0 50 q31 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 40 y4 0 0 −1 0 0 0 −1 0 0 0 −1 0 1 1 0 1 0 0 −1 0 0 0 0 1 0 10 y5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 80 q21 1 0 0 0 1 0 0 0 0 −1−1−1 1 0 0 0 1 0 0 0 0 0 −1 0 0 20 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 80 q43 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 50 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 70
161 502 316 736 0 448 214 682 0 471 50 609 162 574 0 325 282 623 139 340 0 0 61 0 0 F−40920
Puis c’est au tour deq22d’entrer dans la base tandis quey2en sort (le pivot se trouve sur la deuxi`eme
ligne du tableau) :
q11q12q13q14q21q22 q23q24q31q32 q33 q34q41q42q43q44q51q52q53q54y1 y2 y3 y4y5
y1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 50
q22 −1 0 0 0 0 1 1 1 0 1 1 1 −1 0 0 0 −1 0 0 0 0 1 1 0 0 50
q31 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 40
y4 0 0 −1 0 0 0 −1 0 0 0 −1 0 1 1 0 1 0 0 −1 0 0 0 0 1 0 10
y5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 80
q21 1 0 0 0 1 0 0 0 0 −1−1−1 1 0 0 0 1 0 0 0 0 0 −1 0 0 20 1 1 0 0 0 0 −1 −1 0 0 −1−1 1 1 0 0 1 1 0 0 0 −1 −1 0 0 30
q43 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 50
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 70
609 502 316 736 0 0 −234 234 0 23 −398 161 610 574 0 325 730 623 139 340 0 −448−387 0 0 F−63320
Puis c’est au tour deq12d’entrer dans la base (le pivot se trouve sur la septi`eme ligne) : q11q12q13q14q21q22q23q24q31q32q33q34q41q42q43q44q51q52q53q54y1 y2 y3 y4y5
y1 0 0 1 1 0 0 1 1 0 0 1 1 −1−1 0 0 −1−1 0 0 1 1 1 0 0 20 q22 −1 0 0 0 0 1 1 1 0 1 1 1 −1 0 0 0 −1 0 0 0 0 1 1 0 0 50 q31 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 40 y4 0 0 −1 0 0 0 −1 0 0 0 −1 0 1 1 0 1 0 0 −1 0 0 0 0 1 0 10 y5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 80 q21 1 0 0 0 1 0 0 0 0 −1−1−1 1 0 0 0 1 0 0 0 0 0 −1 0 0 20 q12 1 1 0 0 0 0 −1−1 0 0 −1−1 1 1 0 0 1 1 0 0 0−1−1 0 0 30 q43 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 50 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 70
107 0 316 736 0 0 268 736 0 23 104 663 108 72 0 325 228 121 139 340 0 54 115 0 0 F−78380
Puis c’est au tour deq44 d’entrer dans la base tandis quey4en sort (le pivot se trouve sur la quatri`eme ligne du tableau) :
q11q12q13q14q21q22q23q24q31q32q33q34 q41 q42 q43q44q51q52q53q54y1 y2 y3 y4 y5
y1 0 0 1 1 0 0 1 1 0 0 1 1 −1 −1 0 0 −1−1 0 0 1 1 1 0 0 20 q22 −1 0 0 0 0 1 1 1 0 1 1 1 −1 0 0 0 −1 0 0 0 0 1 1 0 0 50 q31 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 40 q44 0 0 −1 0 0 0 −1 0 0 0 −1 0 1 1 0 1 0 0 −1 0 0 0 0 1 0 10 y5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 80 q21 1 0 0 0 1 0 0 0 0 −1−1−1 1 0 0 0 1 0 0 0 0 0 −1 0 0 20 q12 1 1 0 0 0 0 −1−1 0 0 −1−1 1 1 0 0 1 1 0 0 0−1−1 0 0 30 q43 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 50 0 0 1 1 0 0 1 1 0 0 1 1 −1 −1 0 0 0 0 1 1 0 0 0 −1 0 60
107 0 641 736 0 0 593 736 0 23 429 663−217−253 0 0 228 121 464 340 0 54 115−325 0 F−81630
Il reste enfin `a faire entrerq54dans la base (le pivot se trouve sur la neuvi`eme ligne) : q11q12q13q14q21q22q23q24q31q32q33q34q41q42q43q44q51q52q53q54y1y2 y3 y4 y5
y1 0 0 1 1 0 0 1 1 0 0 1 1 −1−1 0 0 −1−1 0 0 1 1 1 0 0 20 q22 −1 0 0 0 0 1 1 1 0 1 1 1 −1 0 0 0 −1 0 0 0 0 1 1 0 0 50 q31 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 40 q44 0 0 −1 0 0 0 −1 0 0 0 −1 0 1 1 0 1 0 0 −1 0 0 0 0 1 0 10 y5 0 0 −1−1 0 0 −1−1 0 0 −1−1 1 1 0 0 1 1 0 0 0 0 0 1 1 20 q21 1 0 0 0 1 0 0 0 0 −1−1−1 1 0 0 0 1 0 0 0 0 0 −1 0 0 20 q12 1 1 0 0 0 0 −1−1 0 0 −1−1 1 1 0 0 1 1 0 0 0−1−1 0 0 30 q43 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 50 q54 0 0 1 1 0 0 1 1 0 0 1 1 −1−1 0 0 0 0 1 1 0 0 0 −1 0 60
107 0 301 396 0 0 253 396 0 23 89 323 123 87 0 0 228 121 124 0 0 54 115 15 0 F−102030
On constate les faits suivants :
– on retrouve bien sˆur les r´esultats trouv´es par Balas-Hammer (valeurs des variables, coˆut global de 102030) ;
– comme tous les coefficients de la fonction ´economique sont positifs (ne pas oublier que l’on doit minimiser cette fonction), on est parvenu `a la solution optimale !
Encore une fois, on doit insister sur le fait que c’est un«coup de chance»et que rien ne garantit dans la cas g´en´eral que la solution obtenue par Balas-Hammer est toujours la meilleure.
NB : on peut faire les mˆemes v´erifications que sur le probl`eme r´eduit – toutes les colonnes ne contiennent que des coefficients 0, 1 ou -1 ;
– le nombre de 1 dans chaque colonne est ´egal au nombre de -1 dans cette colonne plus 1 ;