Académique Documents
Professionnel Documents
Culture Documents
Manipulation 1 :
Résolution de problèmes linéaires
avec la méthode graphique et le Solveur de MS Excel
1. But du TP
Le but de cette manipulation est d’apprendre à formuler des problèmes d’optimisation linéaires
et de les résoudre par :
- l’implémentation de la méthode graphique sur Matlab (1ère séance)
- l’utilisation du Solveur de Microsoft Excel (2éme séance).
2. Travail demandé
Utilisation du Solveur :
- On commence tout d’abord par l’intégration du modèle développé sur une feuille de
calcul Excel.
- Une fois le modèle est complètement défini et saisi, ouvrir le Solveur. La fenêtre de
paramétrage illustrée à la Figure 1 s’affiche.
Exemple 1.
Pour fabriquer deux produits P1 et P2 on doit effectuer des opérations sur trois machines M1,
M2 et M3, successivement mais dans un ordre quelconque. Les temps unitaires d’exécution
sont donnés par le tableau suivant :
M1 M2 M3
P1 11min 7 min 6 min
P2 9 min 12 min 16 min
La disponibilité pour chaque machine est :
Le produit P1 donne un profit unitaire de 900 dinars et le produit P2 un profit unitaire de 1000
dinars.
Dans ces conditions, combien doit-on fabriquer mensuellement de produits P1 etP2 pour avoir
un profit total maximum ?
Exemple 2.
Exemple 3.
La machine A est alimentée par un mélange composé de 60% d’abricots et 40% de sucre et peut
traiter au plus 15 tonnes de mélange par jour. Pour une tonne de mélange, elle produit 800kg
de gelée et 200kg de déchets.
La machine B est alimentée par un mélange composé de 80% de fraises et 20% de sucre et peut
traiter au maximum 10 tonnes de mélange par jour. Pour une tonne de mélange, elle produit
600kg de confiture, 300kg de gelée et 100kg de déchets.
Tous ces déchets doivent être éliminés à l’aide de la machine C qui peut en traiter au maximum
2tonnes par jour.
L’usine achète des abricots, des fraises et du sucre aux prix respectifs de 3000, 3500 et 1200
TND la tonne. Elle vend la tonne de gelée d’abricots à 4500 TND, celle de gelée de fraises à
5000 TND et celle de confiture de fraises à 4000 TND.
On cherche à définir un plan de production journalier maximisant le bénéfice de l’usine.
NB. Utiliser seulement 2 variables de décisions
Exemple 4.
Une entreprise sidérurgique a reçu une commande de 5 tonnes d’acier destiné à la fabrication
de carrosseries automobiles. Les teneurs de cet acier en différents éléments chimiques doivent
appartenir aux fourchettes indiquées dans le Tableau 2.
Pour fabriquer cet acier, l’entreprise dispose de sept matières premières dont les teneurs, les
quantités disponibles et les coûts d’achat sont donnés dans le Tableau 3.
On cherche à identifier les quantités optimales à mélanger des différentes ferrailles afin de
satisfaire la commande au meilleur coût.
Le problème est à résoudre avec MS Office Excel.
Exemple 5.
Un industriel a intérêt d’acheter au début de chaque mois les quantités suivantes de quatre
liquides : 8000 litres du liquide A au coût de 5.50 $ l’unité, 4250 litres de B au coût de 4.50 $
l’unité, 16000 litres de C à 7.50 $ l’unité et 2000 litres de D à 11.25 $ l’unité.
L’industriel peut revendre ces liquides directement, sans leur faire subir de transformations, et
en retirer un bénéfice de 0.50 $ par litre.
Il peut aussi s’en servir pour élaborer les mélanges E, F et G. Ces mélanges doivent présenter
les caractéristiques données au tableau suivant :
Mélange Liquide A Liquide B Liquide C Liquide D
E 30% 25% 40% 5%
F 30% 20% 20% 30%
G 20% 20% 40% 20%
Manipulation 2
I. Introduction
LINDO est un outil extrêmement souple et conviviale, permettant la résolution les modèles
d’optimisation linéaires, non-linéaire (convexe ou non convexe), en variables entières, et
quadratiques. Il permet également d’analyser les modèles en utilisant la méthode de Simplexe.
La version qu’on va utiliser, c’est la version LINDO 6.1, pouvant traiter des problèmes avec un
nombre de variables allant jusqu’à 300, un nombre de contraintes allant jusqu’à 150 et un
nombre de coefficients non nuls allant jusqu’à 2000000.
1. Syntaxe du modèle
Un modèle LINDO nécessite au moins trois choses : une fonction objectif, des variables de
décision et des contraintes. Un modèle peut aussi avoir un titre. Il suffit d’écrire « TITLE » et
donner un titre au modèle avant de commencer la modélisation.
Tout modèle doit commencer soit par « Max » pour un problème de maximisation, ou par
« Min » » pour un problème de minimisation.
La fin de la déclaration de la fonction objectif correspond au début de la déclaration des
contraintes, mentionnée par l’une des fonctions suivantes : « SUBJECT TO » ou « SUCH
THAT » ou « S.T. » ou « ST ».
La fin de la déclaration des contraintes est mentionnée par le mot « END ».
Une contrainte peut avoir un nom, qui doit se terminer par une parenthèse. Exemple :
disponibilité) x >100.
Une contrainte doit toujours s’écrire sous la forme d’une somme de variables qui est
inférieur ou supérieur à une constante.
Les contraintes de non-négativité sont automatiquement introduites.
Les contraintes et la fonction objectif peuvent être dédoublées en plusieurs lignes ou
combinées en une seule ligne.
Le nom d’une variable ne peut pas contenir plus que 8 caractères. Il doit commencer par
une lettre de A Z, et ne doit pas contenir ! ) + - = < >
LINDO ne reconnaît que les opérateurs suivants : ‘’+’’, ‘’ –‘’, ‘’<’’, ‘’>’’, ‘’=’’. Lorsque
vous introduisez les opérateurs ‘’<’’et ‘’>’’, LINDO les interprètent respectivement
comme étant ‘’≤ ’’et ‘’ ≥ ’’.
les commentaires peuvent être écrits n’importe où dans le modèle, mais ils doivent être
précédés par un point d’exclamation « ! ».
après avoir terminé la déclaration des contraintes du modèle, par « END », la déclaration
de type de variables commence :
FREE <variable> Pas de limite, variable réelle qui peut être positive ou négative.
GIN <Variable> Variable entière positive.
INT <Variable> Variable binaire (0 ou 1).
SLB <Variable> <Valeur> Variable possédant une borne inférieure, égale à <valeur>
SUB <Variable> <Valeur> Variable possédant une borne supérieure, égale à <valeur>
2. Résolution du modèle
Avant la résolution compiler le modèle pour vérifier que la syntaxe du modèle et correct. Pour
ceci, choisir la commande « Compile Model » du menu « Solve».
LINDO permet de visualiser les différentes étapes de l’algorithme simplexe. Il faut d’abord
compiler de nouveau le modèle. Ensuite, ouvrir la fenêtre de commande « Command Window».
Puis, tapez la commande « look all », puis cliquez sur ‘’entrer’’ pour rappeler la formulation du
modèle et savoir la numérotation des lignes dans LINDO. Pour chaque itération, taper la
commande « TAB » or « TABL » puis ‘’entrer’’ pour afficher le tableau. Ensuite, taper la
commande « pivot » puis ‘’entrer’’, pour que LINDO indique l’emplacement du pivot dans le
tableau. Répéter la même procédure jusqu’à atteindre la solution optimale.
3. Analyse de sensibilité
Un avertissement si la solution courante n'est pas garantie, pour être optimale ou faisable.
Noms des variables avec leurs coefficients courants de fonction objective et les
augmentations et les diminutions permises, sans provoquer une modification de la base
Les numéros des rangées du programme avec leurs valeurs courantes du côté droit et les
augmentations et les diminutions permises, sans provoquer une modification de la base.
Afin d’effectuer les changements désirés, il suffit d’utiliser la commande « Alter » ou « Alt ».
La syntaxe de la commande est la suivante :
LINDO permet aussi de supprimer une contrainte tout entière, en utilisant la commande
DELETE (« Del »). Ou bien, rajouter une contrainte au modèle, en utilisant la commande
EXTEND (« Ext »), suivi du mot End.
4. Manipulations
Exercice 1 :
Exercice 2 :
Exercice 3 :
Une société de jouets produit des trains, des camions et des voitures, en utilisant trois machines.
Les disponibilités quotidiennes des machines sont respectivement 430, 460 et 420 minutes/jour.
Les profits des produits sont : 3DT par train, 2DT par camion, et 5DT par voiture.
4) Dans quel intervalle peut varier le profit de chaque produit sans changer la base (sans
affecter l’optimalité de la solution)?
5) Dans quel intervalle peut varier la disponibilité des machines sans changer la base (sans
affecter l’optimalité de la solution) ?
Exercice 4 :
Une société S fabrique deux types de pièces P1 et P2. Le processus de fabrication pour chaque
produit nécessite le passage par trois types de machines M1, M2 et M3. L’entreprise dispose de
deux machines pour les opérations de découpe du métal (M1), une machine pour les opérations
de roulage (M2), et deux machines pour les opérations de soudage (M3). Chaque machine
fonctionne 120 heures/mois.
Les temps unitaires de fabrication par produit et par machine sont exprimés en heures, et le prix
de vente de chaque produit sont rassemblées dans le tableau suivant :
P1 P2
M1 1 1.5
M2 0.5 1
M3 2 1
Prix de vente 200 240
10) Introduire les changements suivants au problème de production et interpréter les résultats.
La société S a la possibilité d’utiliser une deuxième machine pour les opérations de
roulage (M2) de 120 heures de disponibilité supplémentaire.
L’expert a remarqué que le temps de soudage pour le produit P1 peut être minimisé de
un dixième, moyennant un bon ordonnancement des tâches dans l’atelier.
Le prix de vente du produit P2 augmente de 30D.
Le patron décide d’ajouter une machine de finition (M4) de disponibilité 120
heures/mois. Chaque produit nécessite un temps de finition égale à 0,5 heures.