Exercice de recherche operationnelle´ Probleme de transf...

13
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 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 dit direct : 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 ; D i la quantit´ e disponible au d´ epˆ ot i ∈{1..N } ; d j la quantit´ e demand´ ee au point de vente j ∈{1..P } ; 1

Transcript of Exercice de recherche operationnelle´ Probleme de transf...

Page 1: Exercice de recherche operationnelle´ Probleme de transf ...kiwi.emse.fr/POLE/SDA/corr-transfere.pdf · Exercice de recherche operationnelle ... Voici le tableau du simplexe correspondant

Exercice de recherche operationnelleProbleme de transferement

Marc Roelens

Corrige

1 Rappel du problemeUne matiere premiere se trouvee stockee dans 5 depots situes a Dunkerque (50 tonnes disponibles),

au Havre (70 tonnes disponibles), a Bordeaux (40 tonnes disponibles), a Sete (60 tonnes disponibles) et aMulhouse (80 tonnes disponibles).

On souhaite approvisionner a moindre cout 4 points de vente situes a Chateauroux (60 tonnes de-mandees), Bourges (80 tonnes demandees), Clermont-Ferrand (50 tonnes demandees) et Lyon (70 tonnesdemandees).

On suppose que les seuls couts a prendre en compte pour l’optimisation sont les couts de transports :ceux-ci sont proportionnels a la quantite transferee et a la distance parcourue. Voici les distances entre lesdifferentes villes :

Stock Chateauroux Bourges Clermont Lyon50 Dunkerque 567 502 696 73670 Le Havre 406 448 594 68240 Bordeaux 345 410 369 54860 Sete 568 574 380 32580 Mulhouse 688 623 519 340

Demande (t) 60 80 50 70

Determiner l’approvisionnement optimal.

2 Premieres reflexions

2.1 Un probleme de transport/flotCe probleme fait partie de la grande famille des problemes de flot optimal dans un reseau de transport.

Il presente les particularites suivantes :– le reseau de transport est dit direct : les sources du flot (les depots) sont directement connectees aux

puits du flot (les points de vente), sans passage par des points intermediaires du reseau ;– les capacites de transport des arcs connectant les sources aux puits sont infinies.

On pourrait ainsi tout a fait le traiter en modelisant le graphe de transport (graphe biparti) et en utilisant lesalgorithmes classiques de calcul de flot optimal (Ford-Fulkerson, ameliorations d’Edmonds-Karp).

2.2 Un probleme de programmation lineaireSi l’on note :– N le nombre de depots ;– P le nombre de points de vente ;– Di la quantite disponible au depot i ∈ {1..N} ;– dj la quantite demandee au point de vente j ∈ {1..P} ;

1

Page 2: Exercice de recherche operationnelle´ Probleme de transf ...kiwi.emse.fr/POLE/SDA/corr-transfere.pdf · Exercice de recherche operationnelle ... Voici le tableau du simplexe correspondant

– cij le cout de transport unitaire (par tonne) du depot i au point de vente j ;– qij la quantite transferee du depot i au point de vente j ;

Alors, trouver l’approvisionnement optimal consiste a minimiser la fonction de cout :

F ((qij)) =∑i,j

cijqij

en respectant les contraintes :

∀i ∈ {1..N}∑P

j=1 qij ≤ Di

∀j ∈ {1..P}∑N

i=1 qij ≥ dj

la premiere serie de contraintes traduisant le fait que la quantite livree a partir du depot i doit etre inferieurea la quantite disponible, la seconde serie de contraintes traduisant le fait que la quantite livree au point devente j doit etre superieure a la quantite demandee.

On se trouve donc bien dans un probleme d’optimisation d’une fonction lineaire des variables (qij) enrespectant des contraintes egalement lineaires.

2.3 Condition necessaire et suffisante d’existence d’une solutionUne condition necessaire pour l’existence d’une solution (et donc l’existence d’une solution optimale)

est le fait que la quantite globalement disponible doit etre superieure a la quantite globalement demandee :

N∑i=1

Di ≥N∑

i=1

P∑j=1

qij =P∑

j=1

N∑i=1

qij ≥P∑

j=1

dj

De plus, vu que la capacite des arcs est infinie, cette condition est aussi clairement suffisante.

Exemple : la quantite disponible est de 50 + 70 + 40 + 60 + 80 = 300 tonnes, la quantite demandee estde 60 + 80 + 50 + 70 = 260 tonnes, il existe donc une solution optimale au probleme.

2.4 Satisfaction au plus juste de la demandeSi le cout de transport unitaire est positif pour tous les arcs (ce qui est bien sur le cas dans le probleme

traite ou le cout est simplement la distance entre depot et point de vente), alors la solution optimale satisfaitexactement la demande de chaque point de vente : en effet, il couterait plus cher d’apporter de la matierepremiere en exces a un point de vente !

Ainsi, dans la seconde famille de contraintes, on peut remplacer les inegalites par des egalites, ce quirevient a dire que les variables d’ecart correspondantes sont forcement nulles (hors base optimale).

2.5 Forme particuliere de la matrice de contrainteOn ajoute traditionnellement aux variables initiales des variables d’ecart yi pour les N premieres

contraintes, qui representent donc les quantites disponibles dans chaque depot et non transferees : onprefere parfois ajouter un point de vente fictif dont la demande est precisement la difference entre offre etdemande dans le probleme initial, qui permet d’equilibrer demande et offre dans ce nouveau probleme. Lecout unitaire de transfert de n’importe quel depot vers ce point de vente fictif est une constante, en generalegale a zero. Il n’est pas necessaire d’ajouter la contrainte liee a ce point de vente fictif, car l’equationcorrespondante peut etre obtenue a partir des autres equations !

Ensuite, si l’on ordonne les variables qij par ordre lexicographique sur (i, j) puis les variables yi parordre sur i, la matrice de contraintes prend une forme tres particuliere (ci-dessous le cas d’exemple ou l’on

2

Page 3: Exercice de recherche operationnelle´ Probleme de transf ...kiwi.emse.fr/POLE/SDA/corr-transfere.pdf · Exercice de recherche operationnelle ... Voici le tableau du simplexe correspondant

a numerote les depots 1=Dunkerque, 2=Le Havre, 3=Bordeaux, 4=Sete, 5=Mulhouse, et les points de vente1=Chateauroux, 2=Bourges, 3=Clermont, 4=Lyon) :

q11 q12 q13 q14 q21 q22 q23 q24 q31 q32 q33 q34 q41 q42 q43 q44 q51 q52 q53 q54 y1 y2 y3 y4 y5

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 50y2 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 70y3 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 40y4 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 60y5 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 600 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 800 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 500 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 (N dans le cas general) premieres lignes correspondent effectivementa des colonnes unites (on a indique dans la colonne de gauche l’index de la colonne unite contenant un 1dans cette ligne).

On rappelle egalement que le probleme est un probleme de minimisation : on a laisse l’expression deF au lieu de −F pour alleger un peu le tableau. . .

3 Resolution du probleme reduit par la methode du simplexeAfin d’alleger le travail, on va reduire la taille du probleme en ne conservant dans un premier temps que

3 depots (Dunkerque, Le Havre et Bordeaux) pour deux points de vente (Chateauroux et Bourges), toutesles autres donnees (distances, demandes, stocks disponibles) restant identiques.

On constate sur ce probleme reduit que la condition d’existence d’une solution est verifiee : le stockglobal 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 reduit (avec la meme technique de numerotationdes variables) :

q11 q12 q21 q22 q31 q32 y1 y2 y3

y1 1 1 0 0 0 0 1 0 0 50y2 0 0 1 1 0 0 0 1 0 70y3 0 0 0 0 1 1 0 0 1 40

1 0 1 0 1 0 0 0 0 600 1 0 1 0 1 0 0 0 80

567 502 406 448 345 410 0 0 0 F

3.1 Calcul d’une premiere solution (amorcage)Comme cela a deja ete indique, l’algorithme du simplexe demarre par la recherche d’une solution

de base admissible initiale : une fois cette premiere solution trouvee, l’algorithme permet de savoir si lasolution est optimale ; si oui, on a termine, si non, on sait trouver une nouvelle solution de base admissiblemeilleure que la precedente.

Rappelons ce qu’est une solution de base admissible :– solution indique que les contraintes sont verifiees ;– admissible indique que les variables sont toutes positives ou nulles ;– de base indique 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 forcement 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,soit N(P + 1), soit 9 dans l’exemple reduit, 25 dans l’exemple complet) est determine par le nombre decontraintes : c’est ici N + P , soit dans notre exemple reduit 5 (9 dans l’exemple complet).

Il existe plusieurs methodes (ou heuristiques) pour trouver cette solution de base admissible initiale :

3

Page 4: Exercice de recherche operationnelle´ Probleme de transf ...kiwi.emse.fr/POLE/SDA/corr-transfere.pdf · Exercice de recherche operationnelle ... Voici le tableau du simplexe correspondant

– la methode des variables artificielles ;– la methode dite du coin nord-ouest ;– la methode dite des couts minimaux successifs (ou heuristique de Houthakker) ;– la methode dite des regrets maximaux successifs (ou heuristique de Balas-Hammer).

Il est a noter que ces methodes ne fournissent pas directement, dans le cas general, la solution optimale !

3.1.1 La methode des variables artificielles

Cette methode est tout a fait generale : elle consiste a ajouter des variables qui sont initialement dans labase, tout en leur attribuant un cout tres important (10 fois superieur a tous les autres couts, par exemple).Ainsi, lors de l’algorithme du simplexe, ces variables vont naturellement sortir de la base et n’y rentrerontplus jamais : on peut alors les eliminer des leur sortie.

Dans le cas du probleme de transferement, on ajoute P variables artificielles que l’on note (zj), et l’onrecrit les contraintes sous la forme :

∀i ∈ {1..N}∑P

j=1 qij + yi = Di

∀j ∈ {1..P}∑N

i=1 qij + zj = di

La base initiale est ainsi constituee des variables d’ecart (yi) et des variables artificielles (zj), ce qui faitbien N+P = 5 variables de base sur NP +N+P = 11 variables au total, correspondant aux 5 contraintes.Le systeme lineaire peut alors s’ecrire :

q11 q12 q21 q22 q31 q32 y1 y2 y3 z1 z2

y1 1 1 0 0 0 0 1 0 0 0 0 50y2 0 0 1 1 0 0 0 1 0 0 0 70y3 0 0 0 0 1 1 0 0 1 0 0 40z1 1 0 1 0 1 0 0 0 0 1 0 60z2 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 valeur M est le cout associe aux variables artificielles. L’expression de la « fonctioneconomique » (derniere 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 particuliere de la matrice, onobtiendrait pour la variable qij le coefficient cij −M .

Pour choisir le premier pivot, on devrait donc choisir la valeur la plus negative parmi ces coefficients,ce qui revient a choisir la plus petite valeur des cij , ce qui revient a la methode indiquee plus loin des coutsminimaux successifs.

3.1.2 La methode du coin nord-ouest

Cette methode 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 obtientainsi les phases suivantes :

1. on commence par la variable q11 ; il y a deux coefficients 1 dans la colonne correspondante, oncalcule donc les ratios « valeur du second membre divisee par valeur du coefficient », ce qui revient asimplement considerer 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 de y1 qui va sortir dela base ;on peut retrouver la signification economique de ce resultat : q11 represente la quantite transferee dudepot de Dunkerque au point de vente de Chateauroux ; on est limite par la demande a Chateauroux(60 tonnes) et le stock disponible a Dunkerque (50) : la variable prend donc la valeur 50, la demanderesiduelle a Chateauroux prend la valeur 10 et le stock residuel a Dunkerque est nul (et y1, q12 sontnulles et hors base) ;

4

Page 5: Exercice de recherche operationnelle´ Probleme de transf ...kiwi.emse.fr/POLE/SDA/corr-transfere.pdf · Exercice de recherche operationnelle ... Voici le tableau du simplexe correspondant

2. la variable suivante est donc q21 : on est limite par la demande residuelle a Chateauroux (10 tonnes)et le stock au Havre (70 tonnes) ; la variable prend donc la valeur 10, le stock residuel au Havre estde 60 tonnes, la demande residuelle a Chateauroux est nulle (et q31 est nulle et hors base) ;

3. la variable suivante est donc q22 : on est limite par la demande a Bourges (80 tonnes) et le stockresiduel au Havre (60 tonnes) ; la variable prend donc la valeur 60, la demande residuelle a Bourgesprend la valeur 20 et le stock residuel au Havre est nul (et y2 est nulle et hors base) ;

4. la variable suivante est donc q32 : on est limite par la demande residuelle a Bourges (20 tonnes) et lestock a Bordeaux (40 tonnes) ; la variable prend donc la valeur 20, le stock residuel a Bordeaux estde 20 tonnes.

Les variables hors base sont donc q12, q31, y1 et y2 ; les autres variables sont :q11 = 50q21 = 10q22 = 60q32 = 20y3 = 20

Le cout global de cette solution est de 67490. Comme cette methode ne tient absolument pas compte descouts associes, on a toutes raisons de penser que la solution obtenue n’a que tres peu de chances d’etreoptimale.

3.1.3 Amorcage par methode de Houthakker

Dans cette methode (egalement appelee methode des couts minimaux successifs), on cherche a faireentrer les variables par ordre de cout croissant (si elles n’ont pas deja ete classees comme etant hors de labase). On obtient ainsi successivement :

1. la premiere variable est q31 (cout minimal de 345) : on est limite par la demande a Chateauroux (60tonnes) et le stock a Bordeaux (40 tonnes) ; la variable prend donc la valeur 40, la demande residuellea Chateauroux est de 20 tonnes, le stock residuel a Bordeaux est nul (q32, y3 sont nulles et hors base) ;

2. la variable suivante est q21 (cout minimal de 406) : on est limite d’une part par la demande residuellea Chateauroux (20 tonnes) et d’autre part par le stock au Havre (70 tonnes) ; la variable prend doncla valeur 20, le stock residuel au Havre prend la valeur 50, la demande residuelle a Chateauroux estnulle (et q11 est nulle et hors base) ;

3. la variable suivante est donc q22 (cout minimal de 448) : on est limite par la demande a Bourges (80tonnes) et le stock residuel au Havre (50 tonnes) ; la variable prend donc la valeur 50, la demanderesiduelle a Bourges prend la valeur 30, le stock residuel au Havre est nul (et y2 est nulle et horsbase) ;

4. la variable suivante est donc q12 (cout minimal de 502) : on est limite par la demande residuelle aBourges (30 tonnes) et le stock a Dunkerque (50 tonnes) ; la variable prend donc la valeur 20, le stockresiduel a Dunkerque prend la valeur 20, la demande residuelle a Bourges est nulle.

Les variables hors base sont donc q11, q32, y2 et y3 ; les autres variables sont :q12 = 30q21 = 20q22 = 50q31 = 40y1 = 20

Le cout global de cette solution est de 59380.

5

Page 6: Exercice de recherche operationnelle´ Probleme de transf ...kiwi.emse.fr/POLE/SDA/corr-transfere.pdf · Exercice de recherche operationnelle ... Voici le tableau du simplexe correspondant

3.1.4 Amorcage par methode de Balas-Hammer

Il semble naturel d’essayer d’approvisionner chaque point de vente a partir du depot qui est le moinscher pour ce point de vente. Ne pas le faire va entraıner un surcout (puisque l’on va se fournir a un depotplus cher), et c’est ce surcout que l’on nomme regret.

Dans la methode de Balas-Hammer (egalement appelee methode des regrets maximaux successifs), oncherche a faire entrer les variables pour ordre de regret decroissant (si elles n’ont pas deja ete classeescomme etant hors de la base). On obtient ainsi successivement :

1. calculons le regret associe a chaque point de vente :– pour le point de vente a Chateauroux, le depot le moins cher est Bordeaux a un cout de 345, le

suivant etant Le Havre a un cout de 406, soit un regret de 61 ;– pour le point de vente a Bourges, le depot le moins cher est Bordeaux a un cout de 410, le suivant

etant Le Havre a un cout de 448, soit un regret de 38 ;le regret maximal correspond a la variable q31 (comme pour Houthakker) ; la variable prend donc lavaleur 40, la demande residuelle a Chateauroux est de 20 tonnes, le stock residuel a Bordeaux est nul(q32, y3 sont nulles et hors base) ;

2. on recalcule les regrets :– pour le point de vente a Chateauroux, le depot le moins cher est Le Havre a un cout de 406, le

suivant etant Dunkerque a un cout de 567, soit un regret de 161 ;– pour le point de vente a Bourges, le depot le moins cher est Le Havre a un cout de 448, le suivant

etant Dunkerque a un cout de 502, soit un regret de 54 ;le regret maximal correspond a la variable q21 (comme pour Houthakker) ; la variable prend doncla valeur 20, le stock residuel au Havre prend la valeur 50, la demande residuelle a Chateauroux estnulle (et q11 est 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 encoredisponible) suivi de Dunkerque (30 tonnes utilisees sur les 50 tonnes disponibles)

On retrouve donc exactement la meme solution que pour Houthakker : ceci est une coıncidence !

3.2 Calcul du tableau du simplexeOn prend donc comme solution de base admissible la solution commune trouvee par les deux methodes.

On commence par faire entrer q31 dans la base, c’est y3 qui en sort (troisieme ligne du tableau) :

q11 q12 q21 q22 q31 q32 y1 y2 y3

y1 1 1 0 0 0 0 1 0 0 50y2 0 0 1 1 0 0 0 1 0 70

q31 0 0 0 0 1 1 0 0 1 401 0 1 0 0 −1 0 0 −1 200 1 0 1 0 1 0 0 0 80

567 502 406 448 0 65 0 0 −345 F − 13800

C’est ensuite q21 qui entre dans la base (quatrieme ligne du tableau) :

q11 q12 q21 q22 q31 q32 y1 y2 y3

y1 1 1 0 0 0 0 1 0 0 50y2 −1 0 0 1 0 1 0 1 1 50

q31 0 0 0 0 1 1 0 0 1 40q21 1 0 1 0 0 −1 0 0 −1 20

0 1 0 1 0 1 0 0 0 80161 502 0 448 0 471 0 0 61 F − 21920

6

Page 7: Exercice de recherche operationnelle´ Probleme de transf ...kiwi.emse.fr/POLE/SDA/corr-transfere.pdf · Exercice de recherche operationnelle ... Voici le tableau du simplexe correspondant

C’est ensuite q22 qui entre dans la base alors que y2 en sort (deuxieme ligne du tableau) :

q11 q12 q21 q22 q31 q32 y1 y2 y3

y1 1 1 0 0 0 0 1 0 0 50q22 −1 0 0 1 0 1 0 1 1 50q31 0 0 0 0 1 1 0 0 1 40q21 1 0 1 0 0 −1 0 0 −1 20

1 1 0 0 0 0 0 −1 −1 30609 502 0 0 0 23 0 −448−387 F − 44320

Et pour terminer, c’est q12 qui entre dans la base (cinquieme ligne du tableau) :

q11 q12 q21 q22 q31 q32 y1 y2 y3

y1 0 0 0 0 0 0 1 1 1 20q22 −1 0 0 1 0 1 0 1 1 50q31 0 0 0 0 1 1 0 0 1 40q21 1 0 1 0 0 −1 0 0 −1 20q12 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 cout global 59380 (on retrouve bien la valeur precedente).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 methode de Houthakkerou celle de Balas-Hammer ne sont censees donner qu’une « bonne » solution, pas forcement la meilleure.

3.3 Quelques constatationsDans toutes les manipulations de l’algorithme du simplexe que l’on a realisees, 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 etreproprement demontre (on peut retrouver a l’intuition ce resultat si l’on songe a la modelisation par flots).

On a egalement une autre propriete : le nombre de 1 dans chaque colonne est toujours egal au nombrede -1 plus une unite ! La encore, ce resultat n’est pas le fruit du hasard.

Enfin, considerons une variable hors base, q11 par exemple qui represente la quantite transferee deDunkerque a Chateauroux. 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 depasser 50 tonnes transferees a partir de Dunkerque,diminuer de -1 la quantite transferee a Bourges (c’est le seul point de vente approvisionne). Comme ondoit respecter la quantite transferee a Bourges, il faut augmenter de +1 la quantite livree depuis un autredepot : si l’on ne veut pas rendre non nulle une autre variable (lors d’un changement de base, une et uneseule 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 quantite transferee du Havre aChateauroux. . .et la boucle (ou plus exactement le cycle) est bouclee !

Calculons le cout de ce transfert (toujours pour une tonne transferee) : il faut compter en plus la distancede Dunkerque a Chateauroux (567) et la distance du Havre a Bourges (448), en moins la distance deDunkerque a Bourges (502) et la distance du Havre a Chateauroux (406), soit un total de 567 + 448 −502− 406 = 107 : c’est precisement la valeur du coefficient dans la fonction economique de q11.

En fait, on rappelle que le tableau final (primal) permet de donner une expression des variables dansla base et de la fonction economique en fonction des variables hors base, cette expression etant valableau voisinage de la solution de base admissible correspondante. Si l’on souhaite exprimer la variation de lasolution par rapport a la variable q11 (par exemple, si une nouvelle contrainte commerciale nous imposaitde livrer Chateauroux a partir de Dunkerque), on peut le faire directement a partir du tableau final :

y1 = 20q22 = 50 +q11

q31 = 40q21 = 20 −q11

q12 = 30 −q11

F = 59380 +107q11

7

Page 8: Exercice de recherche operationnelle´ Probleme de transf ...kiwi.emse.fr/POLE/SDA/corr-transfere.pdf · Exercice de recherche operationnelle ... Voici le tableau du simplexe correspondant

On retrouve donc parfaitement les variations trouvees « a la main ». Ici, on est meme capable de savoirquelle est la variation maximale de la variable q11 qui ne modifie pas la forme de cette expression : lapremiere variable a s’annuler serait alors q21 pour une valeur de 20.

Ce sont ces constatations qui vont donner l’idee d’un algorithme specifique pour la resolution de ceprobleme : on ne calcule pas le tableau du simplexe, car on est capable d’en retrouver l’expression a partirde la seule donnee de la solution de base admissible correspondante.

4 Retour au probleme initialRevenons maintenant au probleme initial : on cherche d’abord a determiner une solution de base ad-

missible.

4.1 AmorcageDetaillons les trois methodes pour obtenir cette solution de base admissible initiale.

4.1.1 Methode 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 unite dans lacolonne indexee par q11. On voit que l’on n’a que deux choix possibles pour le pivot (il n’y a quedeux 1 dans cette colonne) : on applique la regle de calcul classique pour le choix du pivot, c’est-a-dire les ratio coefficient du second membre divise par valeur du pivot. On trouve le minimum egal a50 sur la ligne indexee par y1 (qui va donc sortir de la base).On pourrait retrouver ce resultat de la facon suivante : la quantite q11 (quantite transferee de Dun-kerque a Chateauroux) est calculee comme etant le minimum de deux valeurs : la quantite disponiblea Dunkerque (50) et la quantite demandee a Chateauroux (60). On retrouve la valeur 50 precedente.Une fois ceci determine, on en deduit que les variables q12, q13, q14 et y1 sont nulles donc hors base.En d’autres termes, on a utilise toute la quantite disponible a Dunkerque.

2. la variable suivante est donc q21 : on est limite par la demande residuelle a Chateauroux (10 tonnes)et le stock au Havre (70 tonnes) ; la variable prend donc la valeur 10 et le stock residuel au Havreest de 60 tonnes, la demande residuelle a Chateauroux est nulle (et q31, q41, q51 sont nulles et horsbase) ;

3. la variable suivante est q22 : on est limite par la demande a Bourges (80 tonnes) et le stock residuelau Havre (60 tonnes) ; la variable prend donc la valeur 60, le stock residuel au Havre est nul (et q23,q24, y2 sont nulles et hors base), la demande residuelle a Bourges est de 20 tonnes ;

4. la variable suivante est q32 : on est limite par la demande residuelle a Bourges (20 tonnes) et le stocka Bordeaux (40 tonnes) ; la variable prend donc la valeur 20, le stock residuel a Bordeaux est de 20tonnes, la demande residuelle a Bourges est nulle (et q42, q52 sont nulles et hors base) ;

5. la variable suivante est q33 : on est limite par la demande a Clermont (50 tonnes) et le stock residuela Bordeaux (20 tonnes) ; la variable prend donc la valeur 20, le stock residuel a Bordeaux est nul (etq34, y3 sont nulles et hors base), la demande residuelle a CLermont est de 30 tonnes ;

6. la variable suivante est q43 : on est limite par la demande residuelle a Clermont (30 tonnes) et le stocka Sete (60 tonnes) ; la variable prend donc la valeur 30, le stock residuel a Sete est de 30 tonnes, lademande residuelle a Clermont est nulle (et q53 est nulle et hors base) ;

7. la variable suivante est q44 : on est limite par la demande a Lyon (70 tonnes) et le stock residuel aSete (30 tonnes) ; la variable prend donc la valeur 30, le stock residuel a Sete est nul (et y4 est nulleet hors base), la demande residuelle a Lyon est de 40 tonnes ;

8

Page 9: Exercice de recherche operationnelle´ Probleme de transf ...kiwi.emse.fr/POLE/SDA/corr-transfere.pdf · Exercice de recherche operationnelle ... Voici le tableau du simplexe correspondant

8. la variable suivante est q54 : on est limite par la demande residuelle a Lyon (40 tonnes) et le stock aMulhouse (80 tonnes) ; la variable prend donc la valeur 40, le stock residuel a Mulhouse est de 40tonnes, la demande residuelle a Lyon est nulle ;

9. enfin, la derniere variable est y5 : le stock residuel (non transfere) 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 = 40 et y5 = 40, pour un cout global de 109620.

Par contre, on n’a tenu compte a aucun moment des couts (le choix des variables non nulles dependde l’ordre dans lequel on classe depots et points de vente) : on peut donc legitimement penser que cettesolution (de base admissible) n’a aucun raison particuliere d’etre une bonne solution, et encore moins lameilleure solution. . .

4.1.2 La methode des couts minimaux successifs

Ici, l’ordre choisi pour faire entrer les variables dans la base est l’ordre croissant des couts. Voici alorsla succession des operations :

1. la variable q44 est de cout minimal (325), c’est donc elle que l’on choisit de faire entrer dans la base ;on est limite par la demande a Lyon (70 tonnes) et le stock disponible a Sete (60) : la variable prenddonc la valeur 60, le stock residuel a Sete est nul (et q41, q42, q43, y4 sont nulles et hors base), lademande residuelle a Lyon est de 10 ;

2. la variable suivante est q54 (cout 340) ; on est limite par la demande residuelle a Lyon (10) et le stockdisponible a Mulhouse (80) ; la variable prend donc la valeur 10, le stock residuel a Mulhouse est de70, la demande residuelle a Lyon est nulle (et q14, q24, q34 sont nulles et hors base) ;

3. la variable suivante est q31 (cout 345) ; on est limite par la demande a Chateauroux (60) et le stockdisponible a Bordeaux (40) ; la variable prend donc la valeur 40, le stock residuel a Bordeaux est nul(et q32, q33, y3 sont nulles et hors base), la demande residuelle a Chateauroux est de 20 ;

4. la variable suivante est q21 (cout 406) ; on est limite par la demande residuelle a Chateauroux (20) etle stock disponible au Havre (70) ; la variable prend donc la valeur 20, le stock residuel disponible auHavre est de 50, la demande residuelle a Chateauroux est nulle (et q11, q51 sont nulles et hors base) ;

5. la variable suivante est q22 (cout 448) ; on est limite par la demande a Bourges (80) et le stock residueldisponible au Havre (50) ; la variable prend donc la valeur 50, le stock residuel disponible au Havreest nul (et q23, y2 sont nulles et hors base), la demande residuelle a Bourges est de 30 ;

6. la variable suivante est q12 (cout 502) ; on est limite par la demande residuelle a Bourges (30) et lestock disponible a Dunkerque (50) ; la variable prend donc la valeur 30, le stock residuel disponiblea Dunkerque est de 20, la demande residuelle a Bourges est nulle (et q52 est nulle et hors base) ;

7. la variable suivante est q53 (cout 519) ; on est limite par la demande a Clermont (50) et le stockresiduel disponible a Mulhouse (70) ; la variable prend donc la valeur 50, le stock residuel disponiblea Mulhouse est de 20, la demande residuelle a Clermont est nulle (et q13 est nulle et hors base) ;

8. les demandes sont maintenant toutes satisfaites, il reste comme variables non nulles (et donc dans labase) y1 = 20 et y5 = 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 = 10 et y5 = 20 pour un cout total de 108230.

Attention : on obtient une solution qui se trouve etre meilleure que la precedente, mais rien ne le garantit !On utilise une strategie de couts locaux minimaux ce qui ne conduit pas forcement a la solution optimale.

4.1.3 Methode des regrets maximaux successifs (Balas-Hammer)

L’heuristique de Balas-Hammer consiste alors a faire entrer dans la base la variable qui correspond auregret le plus grand. On obtient alors les etapes successives suivantes :

1. calculons le regret associe a chaque point de vente :

9

Page 10: Exercice de recherche operationnelle´ Probleme de transf ...kiwi.emse.fr/POLE/SDA/corr-transfere.pdf · Exercice de recherche operationnelle ... Voici le tableau du simplexe correspondant

– pour le point de vente a Chateauroux, le depot le moins cher est Bordeaux a un cout de 345, lesuivant etant Le Havre a un cout de 406, soit un regret de 61 ;

– pour le point de vente a Bourges, le depot le moins cher est Bordeaux a un cout de 410, le suivantetant Le Havre a un cout de 448, soit un regret de 38 ;

– pour le point de vente a Clermont, le depot le moins cher est Bordeaux a un cout de 369, le suivantetant Sete a un cout de 380, soit un regret de 11 ;

– pour le point de vente a Lyon, le depot le moins cher est Sete a un cout de 325, le suivant etantMulhouse a un cout de 340, soit un regret de 15 ;

on constate que le regret maximal correspond a la variable q31 (approvisionnement du point de ventea Chateauroux par le depot de Bordeaux), c’est donc celle-ci qui va entrer en premier dans la base ;on est limite par la demande a Chateauroux (60) et le stock disponible a Bordeaux (40) ; la variableprend donc la valeur 40, le stock residuel a Bordeaux est nul (et q32, q33, q34, y3 sont nulles et horsbase), la demande residuelle a Chateauroux est de 20 ;

2. on recalcule les regrets associes a chaque point de vente dont la demande n’est pas encore satisfaite,sachant que le depot de Bordeaux ne peut plus rien fournir :– pour le point de vente a Chateauroux, le depot le moins cher est Le Havre a un cout de 406, le

suivant etant Dunkerque a un cout de 567, soit un regret de 161 ;– pour le point de vente a Bourges, le depot le moins cher est Le Havre a un cout de 448, le suivant

etant Dunkerque a un cout de 502, soit un regret de 54 ;– pour le point de vente a Clermont, le depot le moins cher est Sete a un cout de 380, le suivant etant

Mulhouse a un cout de 519, soit un regret de 139 ;– pour le point de vente a Lyon, le depot le moins cher est Sete a un cout de 325, le suivant etant

Mulhouse a un cout de 340, soit un regret de 15 ;on constate que le regret maximal correspond a la variable q21 (approvisionnement du point de ventea Chateauroux par le depot du Havre), c’est donc celle-ci qui va entrer dans la base ; on est limitepar la demande residuelle a Chateauroux (20) et le stock disponible au Havre (70) ; la variable prenddonc la valeur 20, le stock residuel au Havre est de 50, la demande residuelle a Chateauroux est nulle(et q11, q41, q51 sont nulles et hors base) ;

3. il n’est pas necessaire de recalculer les regrets (les depots disponibles sont les memes), on prendle regret maximal suivant (139) correspondant a q43 qui entre dans la base ; on est limite par lademande a Clermont (50) et le stock disponible a Sete (60) ; la variable prend donc la valeur 50, lestock residuel disponible a Sete est de 10, la demande residuelle a Clermont est nulle (et q13, q23, q53

sont nullest et hors base) ;4. il n’est pas necessaire de recalculer les regrets (les depots disponibles sont les memes), on prend le

regret maximal suivant (54) correspondant a q22 qui entre dans la base ; on est limite par la demandea Bourges (80) et le stock residuel disponible au Havre (50) ; la variable prend donc la valeur 50, lestock residuel disponible au Havre est nul (et q24, y2 sont nulles et hors base), la demande residuellea Bourges est de 30 ;

5. on recalcule les regrets pour les points de vente non satisfaits, sachant que les depots de Bordeaux etdu Havre ne peuvent plus rien fournir :– pour le point de vente a Bourges, le depot le moins cher est Dunkerque a un cout de 502, le suivant

etant Sete a un cout de 574, soit un regret de 72 ;– pour le point de vente a Lyon, le depot le moins cher est Sete a un cout de 325, le suivant etant

Mulhouse a un cout de 340, soit un regret de 15 ;on constate que le regret maximal correspond a la variable q12 (approvisionnement du point de ventea Bourges par le depot de Sete) qui entre dans la base ; on est limite par la demande residuelle aBourges (30) et le stock disponible a Dunkerque (50) ; la variable prend donc la valeur 30, le stockresiduel disponible a Dunkerque est de 20, la demande residuelle a Bourges est nulle (et q42, q52 sontnulles et hors base) ;

6. il reste a satisfaire la demande de Lyon ; on commence par prendre 10 tonnes disponibles a Sete (q44

entre dans la base, y4 est nulle et hors base), puis 60 tonnes a Mulhouse (q54 entre dans la base, q14

est nulle et hors base) : il reste alors 20 tonnes dans les depots de Dunkerque et Mulhouse (y1 = 20et y5 = 20 entrent dans la base).

10

Page 11: Exercice de recherche operationnelle´ Probleme de transf ...kiwi.emse.fr/POLE/SDA/corr-transfere.pdf · Exercice de recherche operationnelle ... Voici le tableau du simplexe correspondant

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 = 60 et y5 = 20 pour un cout total de 102030.

Attention : on obtient une solution qui se trouve etre meilleure que la precedente, mais rien ne le garantit !On utilise une encore une strategie locale ce qui ne conduit pas forcement a la solution optimale.

4.2 Recherche de la solution optimaleUne fois une solution initiale trouvee, 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 initialedeterminee au paragraphe precedent (par la methode des regrets par exemple).

On le fait a partir du tableau initial en appliquant les operations d’entree et de sortie de la base trouveespar l’heuristique de Balas-Hammer ; en premier, q31 entre dans la base et y3 en sort, ce qui donne le tableausuivant :

q11 q12 q13 q14 q21 q22 q23 q24 q31 q32 q33 q34 q41 q42 q43 q44 q51 q52 q53 q54 y1 y2 y3 y4 y5

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 50y2 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 40y4 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 60y5 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 200 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 800 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 500 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 −345 0 0 F−13800

Puis c’est au tour de q21 d’entrer dans la base (le pivot se trouve sur la sixieme ligne du tableau) :

q11 q12 q13 q14 q21 q22 q23 q24 q31 q32 q33 q34 q41 q42 q43 q44 q51 q52 q53 q54 y1 y2 y3 y4 y5

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 50y2 −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 40y4 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 60y5 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 200 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 800 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 500 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 de q43 d’entrer dans la base (le pivot se trouve sur la huitieme ligne du tableau) :

q11 q12 q13 q14 q21 q22 q23 q24 q31 q32 q33 q34 q41 q42 q43 q44 q51 q52 q53 q54 y1 y2 y3 y4 y5

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 50y2 −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 40y4 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 10y5 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 200 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 500 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 de q22 d’entrer dans la base tandis que y2 en sort (le pivot se trouve sur la deuxieme

11

Page 12: Exercice de recherche operationnelle´ Probleme de transf ...kiwi.emse.fr/POLE/SDA/corr-transfere.pdf · Exercice de recherche operationnelle ... Voici le tableau du simplexe correspondant

ligne du tableau) :

q11 q12 q13 q14 q21 q22 q23 q24 q31 q32 q33 q34 q41 q42 q43 q44 q51 q52 q53 q54 y1 y2 y3 y4 y5

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 50q22 −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 50q31 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 40y4 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 10y5 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 201 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 500 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 de q12 d’entrer dans la base (le pivot se trouve sur la septieme ligne) :

q11 q12 q13 q14 q21 q22 q23 q24 q31 q32 q33 q34 q41 q42 q43 q44 q51 q52 q53 q54 y1 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 20q22 −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 50q31 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 40y4 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 10y5 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 20q12 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 30q43 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 de q44 d’entrer dans la base tandis que y4 en sort (le pivot se trouve sur la quatriemeligne du tableau) :

q11 q12 q13 q14 q21 q22 q23 q24 q31 q32 q33 q34 q41 q42 q43 q44 q51 q52 q53 q54 y1 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 20q22 −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 50q31 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 40q44 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 10y5 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 20q12 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 30q43 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 entrer q54 dans la base (le pivot se trouve sur la neuvieme ligne) :

q11 q12 q13 q14 q21 q22 q23 q24 q31 q32 q33 q34 q41 q42 q43 q44 q51 q52 q53 q54 y1 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 20q22 −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 50q31 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 40q44 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 10y5 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 20q12 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 30q43 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 50q54 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 sur les resultats trouves par Balas-Hammer (valeurs des variables, cout global de

102030) ;

12

Page 13: Exercice de recherche operationnelle´ Probleme de transf ...kiwi.emse.fr/POLE/SDA/corr-transfere.pdf · Exercice de recherche operationnelle ... Voici le tableau du simplexe correspondant

– comme tous les coefficients de la fonction economique sont positifs (ne pas oublier que l’on doitminimiser 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 lacas general que la solution obtenue par Balas-Hammer est toujours la meilleure.

NB : on peut faire les memes verifications que sur le probleme reduit– 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 ;

13