Chapitre 3. Les modèles de réseau

Transcription

Chapitre 3. Les modèles de réseau
Chapitre 3. Les modèles de réseau
1. Structure d'un fichier : Un exemple
On utilisera un exemple tiré de La recherche opérationnelle, 3e édition de Nobert, Ouellet et
Parent. Le problème de transbordement retenu est décrit dans la section 7.1.1, « L’énoncé du
problème de Nitrobec ».
Le problème de Nitrobec peut être modélisé graphiquement comme un réseau où les restrictions
imposées à l'écoulement du flot sont indiquées sur les arcs. La figure 3-1 ci-dessous présente le
réseau qui se trouve à la page 320 du livre.
(350; 350)
A
(0; 170)
14
(450; 450)
F
17
T
(0; 180)
3
3
9
10
6
(0; 190)
5
(0; 200)
(495; 495)
G
8
11
U
(200; 200)
B
(0; 150)
6
2
(0; 250)
5
2
C
(395; 395)
Figure 3-1 Réseau associé au problème de Nitrobec
Résoudre le problème de Nitrobec consiste à trouver un flot passant par chacun des arcs qui
respecte les bornes inférieure et supérieure reportées sur certains arcs et qui minimise le coût total
z de transport.
Convenons qu’existe déjà un fichier EXCEL nommé Nitrobec.xls décrivant le modèle. On
indiquera en section 3.3 comment créer un tel fichier. Indiquons pour l'instant comment résoudre
le problème de Nitrobec à l’aide du solveur d'EXCEL.
Éléments de la feuille de calcul
La figure 3-2 présente les éléments de la feuille de calcul décrivant le réseau de Nitrobec. La
feuille de calcul se divise en 2 sections : la 1re décrit les arcs du réseau associé au problème tandis
que la 2e décrit les sommets du réseau.
Août 2002
Chapitre 3. Les modèles de réseau
Figure 3-2 La feuille de calcul décrivant le réseau de Nitrobec
Page 3.2
Août 2002
Chapitre 3. Les modèles de réseau
Page 3.3
♦ La ligne 1 donne le titre du problème.
♦ La ligne 4 contient la valeur courante de la fonction-objectif z.
♦ La ligne 7 donne les titres des colonnes de la première section de la feuille de calcul.
♦ Les lignes 9 à 27 décrivent les arcs du réseau associé au problème étudié : à chacun des arcs du
réseau correspond une ligne donnant le numéro de l'arc, ses sommets initial et terminal, son
coût unitaire, les bornes inférieure et supérieure reportées sur cet arc ainsi que la valeur du flot
sur cet arc lorsqu'on a résolu le modèle à l'aide du solveur. Un point dans les colonnes i ou j
indique qu’il s’agit d’un arc virtuel. Par exemple, l’arc 1 du fichier de Nitrobec est un arc
virtuel et le sommet F émet nécessairement 450 unités de flot ; de même, l’arc 19 est virtuel et
le sommet C reçoit nécessairement 395 unités de flot.
Dans le fichier Nitrobec.xls, toutes les cellules de la plage H9:I27 contiennent une borne.
Certaines semblent vides dans la figure 3-2, mais c’est que dans ces cellules le texte est affiché
dans la même couleur que la trame. Les bornes inférieures fantômes sont posées égales à
zéro : par exemple, aucune borne n’est reportée sur l’arc F → U dans la figure 3-1, mais si on
se positionne sur la cellule H12, la barre de formule indique que la valeur 0 a été entrée
comme borne inférieure. De même, les bornes supérieures fantômes sont posées égales à la
constante M spécifiée à la ligne 29 : ainsi, lorsqu’on se positionne sur la cellule I12, la barre de
formule indique que la formule =M a été entrée comme capacité « infinie », pour signifier que
le flot sur cet arc est limité supérieurement à une valeur très élevée.
♦ La ligne 36 donne les titres des colonnes de la deuxième section de la feuille de calcul.
♦ Les lignes 38 à 45 décrivent les sommets du réseau associé au réseau de Nitrobec : à chacun des
sommets du réseau correspond une ligne donnant le numéro et le nom du sommet, le flot total
émergeant du sommet ainsi que le flot total incident au sommet dans la solution calculée par le solveur.
Nous conviendrons d'entrer le sommet virtuel (noté .) en premier et de lui attribuer le numéro 0.
2. Résolution d'un fichier pré-existant
La résolution par EXCEL d'un modèle linéaire comprend deux étapes. La première consiste à créer
un fichier EXCEL qui traduise le modèle : il s’agit d’entrer toutes les données numériques
pertinentes, puis de relier ces données à l'aide de formules de calcul (qui seront décrites en
section 3.3). La 2e étape consiste à utiliser l'outil «solveur» pour obtenir une solution optimale.
Considérons à titre d’exemple le fichier Nitrobec.xls illustré à la figure 3-2. Toutes les données et
formules pertinentes ont déjà été entrées dans le fichier. La 1re des 2 étapes mentionnées ci-dessus est
donc automatiquement complétée. Pour la 2e étape, il faut lancer le solveur : cliquer sur le menu Outils,
puis sur la commande Solveur… de ce menu. La boîte « Paramètres du solveur » affichée devrait
ressembler à celle de la figure 3-3 et fournir 4 types d’informations : la cellule à optimiser, le sens de
l’optimisation, la plage des variables de décision, les contraintes associées aux arcs et aux sommets.
Août 2002
Chapitre 3. Les modèles de réseau
Page 3.4
Figure 3-3 La boîte de dialogue « Paramètres du solveur »
Les paramètres du solveur
L'adresse de la cellule contenant la valeur à optimiser doit apparaître dans la zone de texte Cellule
cible à définir. Dans le fichier Nitrobec.xls utilisé ici à titre d’exemple, nous avons choisi d’entrer
un nom1 de cellule, plutôt qu’une adresse : le nom z réfère ici à la cellule J4, qui contient la valeur
de la fonction-objectif z. Nous avons coché l'option Min, car dans un modèle de réseau il s’agit
toujours de minimiser le coût total z.
Le 3e élément d'information exigé par le solveur est la liste des cellules où seront conservées les
valeurs des variables de décision. Cette liste sera placée dans la zone Cellules variables. Cette
fois encore, nous avons choisi d’entrer un nom x, qui correspond à la plage K9:K27.
Le 4e et dernier élément d'information exigé par le solveur est une description des contraintes
technologiques du modèle linéaire associé au modèle de réseau. Il y aura toujours trois groupes
de contraintes spécifiées dans la zone de texte Contraintes : les contraintes de conservation du flot
pour tous les sommets du réseau ainsi que les contraintes de bornes supérieure et inférieure
associées aux arcs. Les adresses des noms utilisés seront précisées à la section 3.3. Noter que la
contrainte de conservation de flot associée au sommet virtuel est redondante et sert tout
simplement à indiquer que le flot total qui circule dans le réseau est conservé.
Note. Dans tous les fichiers du site qui sont associés à des problèmes de réseau, certaines des options par
défaut du solveur d’EXCEL ont été modifiées. La liste de ces changements est donnée dans la section
suivante, à la sous-section « Les options du solveur ».
1
La procédure pour attribuer un nom à une cellule ou à une plage de cellules est décrite à la section 4 du chapitre 1.
Août 2002
Chapitre 3. Les modèles de réseau
Page 3.5
Calcul d’une solution optimale
Pour résoudre le modèle linéaire associé au problème de réseau, cliquer sur le bouton Résoudre de
la boîte de dialogue « Paramètres du solveur ». Lorsque le solveur a trouvé une solution optimale,
la boîte « Résultat du solveur » apparaît telle qu’illustrée à la figure 3-4. L'option Garder la
solution du solveur étant cochée par défaut, on obtient en cliquant sur OK la feuille de calcul
présentée à la figure 3-5.
Figure 3-4 La boîte de dialogue « Résultat du solveur »
Août 2002
Chapitre 3. Les modèles de réseau
Figure 3-5 La feuille de calcul avec une solution optimale
Page 3.6
Août 2002
3.
Chapitre 3. Les modèles de réseau
Page 3.7
Saisie des données
Nous indiquons maintenant comment créer une feuille de calcul EXCEL pour les modèles de réseau.
Convenons d’utiliser à nouveau le réseau de Nitrobec décrit à la figure 3-1. Nous considérerons que
la feuille de calcul comporte deux parties : une première partie pour les arcs du réseau et une
seconde pour les sommets. Entrer les éléments de la feuille de calcul selon l'ordre suivant :
♦ les entrées de texte : les titres et les noms des diverses colonnes, les noms des sommets initial
et terminal de chaque arc et les noms des sommets;
♦ les données numériques du modèle : les coûts unitaires des arcs, ainsi que les bornes inférieure
et supérieure reportées sur les arcs;
♦ les noms des paramètres : le tableau 3-1 donne la liste des paramètres auxquels doit être
attribué un nom (la procédure pour attribuer un nom à une cellule ou à une plage de cellules
est décrite à la section 4 du chapitre 1) ;
Paramètre
Nom
Cellule ou plage
Sommets initiaux des arcs
i
C9:C27
Sommets terminaux des arcs
j
D9:D27
Coûts unitaires des arcs
coût
F9:F27
Bornes inférieures du flot sur les arcs
B.inf
H9:H27
Bornes supérieures du flot sur les arcs
B.sup
I9:I27
Valeurs du flot sur les arcs du réseau
x
K9:K27
Valeur de la fonction-objectif
z
J4
Capacité « infinie » du flot sur un arc
M
F29
Noms des sommets
Valeurs du flot total émergeant des sommets
Valeurs du flot total incident aux sommets
sommet
C38:C45
out
H38:H45
in
I38:I45
Tableau 3-1 Noms des paramètres pour un modèle de réseau
♦ les formules : avant d'activer le solveur, il faut calculer la valeur de la fonction-objectif z, ce
qu’on réalise en inscrivant la formule =SOMMEPROD(coût,x) dans la cellule J4 ; il faut
également calculer, pour chaque sommet, le flot total émergeant de ce sommet ainsi que le flot
total incident à ce sommet : à cette fin, nous inscrivons la formule =SOMME.SI(i;sommet;x)
dans chacune des cellules de la colonne out et la formule =SOMME.SI(j;sommet;x) dans
celles de la colonne in.
Finalement, on peut ajouter une bordure à une cellule ou à une plage de cellules et modifier sa
couleur pour fin de présentation.
Août 2002
Chapitre 3. Les modèles de réseau
Page 3.8
Les paramètres du solveur
Une fois la feuille de calcul complétée, sélectionner l'option Solveur… du menu Outils pour entrer
les paramètres du solveur. La boîte de dialogue affichée devrait ressembler à celle de la figure 3-6.
Figure 3-6 La boîte de dialogue « Paramètres du solveur »
Dans la boîte de dialogue « Paramètres du solveur », entrer les éléments d'information suivants:
♦ L’objectif : dans la zone de texte Cellule cible à définir:, entrer le nom z qui réfère à la cellule
où se trouve la formule de la fonction-objectif ; comme il s’agit ici de minimiser le coût total z,
cocher la case Min.
♦ La plage de variables de décision : dans la zone Cellules variables:, entrer le nom x
correspondant à l'adresse de la plage K9:K27 contenant les valeurs des variables de décision.
♦ Les contraintes technologiques du modèle linéaire associé : il faut spécifier chacune de ces
contraintes dans la zone Contraintes:.
Indiquons comment compléter la zone Contraintes:. Cliquer d’abord sur le bouton Ajouter à
droite de cette zone. La boîte de dialogue affichée devrait ressembler à celle de la figure 3-7.
Figure 3-7 La boîte de dialogue « Ajouter une contrainte »
Août 2002
Chapitre 3. Les modèles de réseau
Page 3.9
Pour les modèles linéaires associés à des problèmes de réseau, il y a 3 catégories de contraintes
technologiques à spécifier au solveur : les contraintes de conservation du flot associées aux
sommets ainsi que les contraintes de bornes inférieure et supérieure associées aux arcs.
Convenons d’entrer d'abord2 les contraintes associées aux sommets :
♦ dans la zone de texte Cellule:, entrer out, le nom de plage qui réfère au flot total émergeant
des différents sommets ;
♦ choisir ensuite le signe = des contraintes en ouvrant le menu déroulant du bouton
;
♦ dans la zone de texte Contrainte, entrer in, le nom de plage qui réfère au flot total incident aux
différents sommets.
Cliquer ensuite sur le bouton Ajouter. Pour ajouter les contraintes de bornes inférieures, on
procède de façon similaire :
♦ dans la zone de texte Cellule:, entrer x, le nom de la plage des cellules qui contiennent les
valeurs des variables de décision du modèle linéaire ;
♦ choisir ensuite le signe >= des contraintes en ouvrant le menu déroulant du bouton
;
♦ dans la zone de texte Contrainte, entrer B.inf, le nom de la plage des cellules qui contiennent
les bornes inférieures des différents arcs du réseau.
Cliquer ensuite sur le bouton Ajouter. On procédera de même pour ajouter les contraintes de
bornes supérieures associées aux arcs. Cliquer sur OK lorsque toutes les contraintes
technologiques ont été entrées. La boîte de dialogue « Paramètres du solveur » devrait ressembler
à celle de la figure 3-8.
Figure 3-8 La boîte de dialogue « Paramètres du solveur » une fois complétée
2
On peut entrer les contraintes technologiques dans n'importe quel ordre dans la zone de texte Contraintes:.
Cependant, le solveur les affichera selon l'ordre alphabétique des références ou des noms de cellules ou de plage.
Août 2002
Chapitre 3. Les modèles de réseau
Page 3.10
Les options du solveur
Certaines options doivent être spécifiées au solveur avant de résoudre le modèle. Cliquer sur le
bouton Options de la boîte de dialogue « Paramètres du solveur ». La boîte de dialogue « Options
du solveur » s'affiche à l'écran (avec les valeurs par défaut illustrées à la figure 1-12). Nous
recommandons d’apporter les modifications suivantes aux valeurs par défaut.
♦ Modèle supposé linéaire : cocher la case « Modèle supposé linéaire ».
♦ Supposé non-négatif: cocher la case « Supposé non-négatif » pour spécifier que toutes les
variables de décision sont soumises à des contraintes de non-négativité.
La boîte de dialogue « Options du solveur » alors affichée devrait être identique à celle illustrée à
la figure 3-9.
.
Figure 3-9 La boîte de dialogue « Options du solveur » dans sa version finale
Résolution du modèle
Après avoir modifié les valeurs par défaut de la boîte « Options du solveur », cliquer sur OK pour
revenir à la boîte « Paramètres du solveur », puis sur le bouton Résoudre situé dans le coin
supérieur droit de cette boîte. EXCEL tente alors de calculer une solution optimale du modèle
linéaire associé. Dans le présent exemple, il affichera la boîte « Résultats du solveur » de la
figure 3-4 ; puis, l'option Garder la solution du solveur étant cochée par défaut, cliquer sur OK
pour obtenir la feuille de calcul présentée à la figure 3-5. Il est recommandé de sauvegarder le
fichier avant de le fermer.
Août 2002
Chapitre 3. Les modèles de réseau
Page 3.11
Les ratés du solveur
Les fichiers du sous-répertoire s / 7e, sauf Nitrobec.xls, affichent une solution optimale du modèle
représenté. La présentation particulière adoptée pour Nitrobec.xls découle de son rôle d’exemple de
base dans la section 3.2 : afin d’illustrer le rôle du solveur, on fournit le fichier tel qu’il doit être avant
l’intervention du solveur (voir figure 3-2) ; l’usager, en appliquant la procédure qualifiée de 2e étape en
section 3.2 et en observant les différences entre les figures 3-2 et 3-5, peut constater concrètement l’effet
du solveur. En particulier, il voit quelles plages de cellules sont affectées.
Il est possible de vérifier l’optimalité des solutions affichées. Dans tous les cas, sauf Nitrob-M.xls et
Toques.xls, il suffit d’appliquer la procédure décrite en section 3.2 : cliquer sur le menu Outils, puis
sur la commande Solveur… de ce menu et enfin sur le bouton Résoudre de la boîte de dialogue
« Paramètres du solveur ». La boîte « Résultat du solveur » apparaît telle qu’illustrée à la figure
3-10. En cliquant sur OK, on obtient la solution initialement affichée, ce qui indique que cette
solution était bien optimale.
Figure 3-10 La boîte de dialogue « Résultat du solveur »
Le solveur d’EXCEL présente quelquefois des ratés. Les modèles associés à Nitrob-M.xls et
Toques.xls, illustrent les problèmes que rencontre parfois EXCEL. Supposons donc qu’on applique
la procédure décrite au paragraphe précédent à l’un ou l’autre de ces exemples. La boîte « Résultat
du solveur » prend alors la forme représentée à la figue 3-11.
Figure 3-11 Un message inexact d’EXCEL
Août 2002
Chapitre 3. Les modèles de réseau
Page 3.12
Ne tenons pas compte du message et cliquons sur OK, tout en conservant cochée l’option Garder
la solution du solveur. On constate alors que, contrairement à toute attente, la solution finale
calculée par le solveur est admissible… Cependant, elle n’est pas optimale. En effet, la valeur
correspondante zf de la fonction-objectif est supérieure à la valeur optimale z* :
♦ pour Nitrob-M.xls, zf = - 23 950 et z* = - 74 080 ;
♦ pour Toques.xls, zf = 9 475 et
z* = 4 135 ;
L’optimalité de la solution initiale de ces deux fichiers se vérifie cependant de façon indirecte :
♦ on supprime d’abord cette solution : sélectionner la plage x à l’aide du curseur, puis appuyer
sur la touche Suppr d’effacement ;
♦ on applique ensuite le solveur au fichier modifié.
La solution résultante coïncide avec la solution initiale. Ainsi, le solveur, lorsqu’on lui fournit a
priori une solution optimale, ne peut en détecter l’optimalité et s’engage dans des calculs qui
l’amènent à un cul-de-sac. Mais, en l’absence de toute solution, il est capable de trouver une
solution optimale. Les voies d’EXCEL sont impénétrables…

Documents pareils