Vous êtes sur la page 1sur 6

Cycle ICM: 1A Ple informatique Cours applications informatiques Auteur: Bertrand Jullien 22/12/04

Utilisation du solveur dExcel


Le but de ce TP est de familiariser les lves avec la fonction Solveur dExcel, dans le cadre de la mise en uvre de mthodes doptimisation dont les principes ont t exposs dans le cours de recherche oprationnelle. Avant daborder le premier exercice, il convient de lire attentivement le paragraphe Mthodologie qui indique la conduite tenir pour rsoudre les problmes proposs. Tous font appel la programmation linaire, en nombre rels pour les deux premiers, en nombre entiers pour le dernier.

Mthodologie
Avant de se lancer dans lutilisation du solveur, il est plus que vivement conseill de modliser le problme sous forme mathmatique: 1. Dfinir les variables X1, X2, X3, , Xn dterminer 2. Exprimer les contraintes linaires que ces variables doivent respecter, de la forme: 3.

a x
i i i

i i

b c =d

a x a x
i

i i

Dfinir la fonction conomique, galement linaire, optimiser: Max (ou Min)

fx
i i

Une fois cette modlisation acheve, il suffira de la transposer dans lenvironnement Excel. Quelques principes simples doivent tre observs: 1. La premire tape consiste prparer la feuille Excel. Outre les donnes qui doivent y figurer (coefficients et seconds membres des contraintes, coefficients de la fonction conomique), il convient dajouter: Une cellule pour la valeur de chacune des variables Xi dterminer Une cellule pour la valeur du premier membre de chacune des contraintes Une cellule pour la valeur de la fonction conomique La mise en page de la feuille est importante, et on recommande dutiliser celles des feuilles tlcharger qui contiennent les donnes des exercices rsoudre. En effet, elle est de nature considrablement simplifier lcriture des modles. Une fonction intgre Excel est souvent utilise pour calculer le premier membre des contraintes: il sagit de SOMMEPROD() qui permet

de faire un produit scalaire vectoriel ou matriciel. Voici un exemple dune telle mise en page. Il pourra tre utile, avant de passer la phase suivante, de tester lexactitude des formules en donnant des valeurs quelconques aux cellules dterminer.

Fabrication d'alliage
Quantit Ferraille Ferraille Ferraille Ferraille Ferraille Ferraille Ferraille 1 2 3 4 5 6 7 Teneur Min Teneur Max Teneur Poids dsir Poids C 2,5 3 0 0 0 0 0 2 3 Cu 0 0 0,3 90 96 0,4 0,6 0,4 0,6 5000 Mn 1,3 0,8 0 0 4 1,2 0 1,2 1,65 Cot Stock 4000 3000 6000 5000 2000 3000 2500 Cot 0,20 0,25 0,15 0,22 0,26 0,20 0,17

Cellules des variables dterminer Cellules premiers membres des contraintes

Cellule fonction conomique

2.

Une fois la feuille mise en forme, il faut fournir les donns du problme qui viennent dtre modlises au solveur. Pour cela, on le lance (Menu Outils / Solveur) et on spcifie successivement: Dans la cellule cible dfinir, ladresse de celle qui contient la valeur de la fonction conomique; ne pas oublier de cocher la case qui correspond au sens de loptimisation souhaite. Dans les cellules variables, la plage des adresses de celles qui ont t affectes aux variables Enfin dans la fentre qui leur est rserve, on peut ajouter successivement toutes les contraintes du problme en slectionnant le bouton correspondant. Noter que ces

contraintes peuvent tre exprimes sous la forme de plages de cellules; cela permet par exemple dindiquer, en une seule contrainte, que les cellules dune plage contenant les valeurs de premiers membres (dont les adresses doivent figurer dans Cellule) doivent tre respectivement infrieures ou gales aux cellules dune plage de cellules contenant les bornes du second ( Contrainte ). Do limportance de la mise en page signale prcdemment.

3.

Dernire tape avant le lancement du solveur, son paramtrage. Le bouton Options permet daccder une fentre dans laquelle on slectionne: Modle suppos linaire, pour choisir un algorithme efficace dans la rsolution de tels problmes, et Suppos non ngatif pour imposer la non ngativit aux variables dterminer. Une fois revenu la fentre principale, le bouton Rsoudre permet dobtenir la solution du problme.

Fabrication d'alliages
Une entreprise sidrurgique a reu commande de cinq tonnes d'acier destin la fabrication de carrosseries automobiles. Les teneurs de cet acier en diffrents lments chimiques doivent se trouver dans les fourchettes suivantes :

Elment chimique Carbone (C) Cuivre (Cu) Manganse (Mn)

Teneur Teneur minimale maximale 2% 0,4% 1,2% 3% 0,6% 1,65%

Pour fabriquer cet acier, l'entreprise dispose de sept matires premires dont les teneurs, les quantits disponibles et les cours d'achat sont donns dans le tableau suivant :

Matire premire Ferraille 1 Ferraille 2 Ferraille 3 Ferraille 4 Ferraille 5 Ferraille 6 Ferraille 7

Teneur Teneur Teneur Stock en C en Cu en Mn disponible (%) (%) (%) (kg) 2,5 3 0 0 0 0 0 0 0 0,3 90 96 0,4 0,6 1,3 0,8 0 0 4 1,2 0 4000 3000 6000 5000 2000 3000 2500

Cot (/kg) 0,20 0,25 0,15 0,22 0,26 0,2 0,17

Dterminer les quantits de ferrailles mlanger pour obtenir la commande souhaite par le client au meilleur cot.

Modlisez le problme sous forme mathmatique (caractrisez les variables dterminer, exprimez les contraintes qu'elles doivent vrifier et la fonction objectif qu'elles doivent optimiser) sous la forme d'un programme linaire (veillez ce que la contrainte sur les teneurs soit bien linaire) Trouvez la solution numrique de ce problme en utilisant le solveur Excel. Pour cela chargez le classeur Exercices.xls qui se trouve dans le rpertoire \\Nissel\work\enseignants\Jullien\TpSolveur et compltez la feuille de longlet Alliage.

Logistique
Il s'agit de livrer un produit trois clients europens (Client 1, 2 et 3) d'une entreprise qui dispose de deux usines de fabrication (Usine1 et 2). Le transport est assur par un systme logistique qui utilise un rseau de 5 plates-formes (PF1 PF5). Les capacits de transport sur chacun des liens du rseau sont limites aux valeurs donnes dans le graphe suivant :

Les quantits de produit disponibles en stock dans les usines sont respectivement de 35 pour Usine 1 et 25 pour Usine 2. Les demandes des trois clients sont respectivement de 15 pour Client 1 et pour Client 2 et 20 pour Client. Trouver un programme de transport qui satisfasse la demande des clients

Modlisez le problme sous forme mathmatique (caractrisez les variables dterminer, exprimez les contraintes qu'elles doivent vrifier et la fonction objectif qu'elles doivent optimiser) sous la forme d'un programme linaire. Le principe consiste ajouter deux sommets fictifs: une Source qui est connecte par un arc chacune des 2 usines auquel est affect une capacit correspondant la quantit en stock et un Puits sur lequel aboutit chacun des 3 clients par un arc dont la capacit est gale sa demande. Il sagit alors dun problme de flot maximal que lon peut modliser en indiquant que la quantit de produit qui transite sur chaque arc doit rester infrieure sa capacit, que les flux sont conservs dans tous les sommets (sauf Source et Puits), et que la somme des flux arrivant au Puits doit tre maximale. Trouvez la solution numrique de ce problme en utilisant le solveur Excel. Pour cela compltez la feuille de longlet Logistique (sans prendre en compte le tableau des cots).
On veut maintenant satisfaire la demande des clients au meilleur cot global sachant que les cots unitaires de fabrication sont de 12 dans l'Usine 1 et de 10 dans l'Usine 2 et que par ailleurs les cots unitaires de transport de sur le rseau sont donns par le graphe suivant :

Il sagit alors dun problme de flot maximal cot minimal. Pour le rsoudre, on part de lexercice prcdent en transformant sa fonction optimiser en contrainte: on veut que le flot qui arrive au Puits soit tre au moins gal celui du problme prcdent. Puis on crit une nouvelle fonction conomique optimiser qui porte sur les cots logistiques globaux (indication: la fonction SOMMEPROD stend aux matrices).

Affectation de personnel
Chacune des six machines d'un atelier doit recevoir un oprateur. Six personnes ont t prslectionnes. Chacune d'elles a subi un test de productivit sur chaque machine, mesur en pices par heure :

Productivit Machine 1 Machine 2 Machine 3 Machine 4 Machine 5 Machine 6 Oprateur 1 Oprateur 2 Oprateur 3 Oprateur 4 Oprateur 5 Oprateur 6 13 18 20 23 28 19 24 25 20 26 33 36 31 30 27 28 34 25 19 15 25 18 17 27 40 43 34 37 38 45 29 22 33 30 20 24

Comment affecter les oprateurs aux machines (un oprateur par machine et une machine par oprateur) pour que le total de leurs productivits soit la plus lev possible ?

La modlisation ne devrait plus poser de problmes La seule particularit ici est que les variables dterminer, qui correspondent au tableau daffectation, sont binaires: xij vaut 1 si loprateur i est affect la machine j et 0 sinon. On a donc un programme linaire en nombres entiers qui est matrialis dans le solveur par une nouvelle contrainte portant sur les variables dterminer (elles doivent tre bin). Trouvez la solution numrique de ce problme en utilisant le solveur Excel. Pour cela compltez la feuille de longlet Affectation.