ebook img

Maths appliquées à l'informatique PDF

37 Pages·2008·0.25 MB·French
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Maths appliquées à l'informatique

ENSEIGNEMENT DE PROMOTION SOCIALE —————————————————————— Cours de MATHS APPLIQUEES A L'INFORMATIQUE - Programmation linéaire - —————————————————————— H. Schyns Décembre 2008 Programmation linéaireSommaire Sommaire 1.INTRODUCTION 2.POSITION DU PROBLÈME 2.1.Définition 2.2.Symbolisme 3.RÉSOLUTION 3.1.Illustration 3.2.Résolution graphique 3.2.1.Identification des inégalités 3.2.2.Mise en forme graphique 3.2.3.Optimisation 3.2.4.Coût marginal 3.3.La méthode du simplex 3.3.1.Formalisation du problème 3.3.2.Initialisation 3.3.3.Optimisation 3.3.4.Premier changement de direction 3.3.5.Deuxième changement de direction 3.4.Formulation matricielle 3.5.Limitations 4.ALGORITHME 4.1.Avant-propos 4.2.Convention 4.3.Variables 4.4.Fonction de recherche de la colonne pivot 4.5.Fonction de normalisation 4.6.Fonction de recherche de la ligne pivot 4.7.Fonction de soustraction 4.8.Fonction de restauration de l'objectif 4.9.Regroupement 4.10.Affichage de la solution 4.11.Programme principal 5.EXERCICES 5.1.Exercice 1 5.2.Résolution 1 H. SchynsS.1 Programmation linéaireSommaire 5.3.Exercice 2 5.4.Exercice 3 6.SOURCES H. SchynsS.2 Programmation linéaire1 - Introduction 1. Introduction Ce document traite des méthodes d'optimisation utilisées en recherche opérationnelle et plus particulièrement de la méthode du simplex. Ce thème faisant partie du programme du cours de mathématiques appliquées à l'informatique, l'accent sera mis sur la méthodologie et sur les algorithmes de résolution. Le document commence par une définition du concept de programmation linéaire et de son domaine d'application. Il définit les notations qui seront employées par la suite. Le chapitre suivant expose les différentes méthodes de résolution : graphique, simplex algébrique et formalisme matriciel. Le même exemple est utilisé tout au long du chapitre afin de permettre les comparaisons. Le noyau de l'algorithme est présenté au point suivant. Son implémentation en langage C s'inspire largement de celui réalisé dans le cadre de la résolution de systèmes de N équations à N inconnues. Quelques exercices (inventés ou tirés de la littérature) sont proposés en fin de document. Certains sont résolus à l'aide d'un tableur. Avant d'aborder ce chapitre, nous conseillons au lecteur de bien maîtriser les thèmes suivants : -Systèmes d'inéquations du premier degré à deux inconnues -Systèmes linéaires de N équations à N inconnues H. Schyns1.1 Programmation linéaire2 - Position du problème 2. Position du problème 2.1. Définition Nous sommes tous confrontés un jour ou l'autre à cette triste réalité : Que ce soit un salaire trop faible pour payer l'alimentation du ménage et les études du gamin et les vacances d'été et le stage de ski en hiver ou simplement la quantité de farine qui reste dans l'armoire qui est insuffisante pour faire du pain et des crêpes et un gâteau Nos ressources ne sont pas suffisantes pour couvrir l'ensemble de nos besoins ou désirs. Il en va de même dans les entreprises. 2.2. Symbolisme L'exposé théorique des principes de résolution impose un peu d'ordre et de méthode. Pas de panique : les chapitres suivants illustreront cette théorie à l'aide de quelques exemples (1). La première étape de la résolution consiste à identifier les différentes ressources disponibles. Les ressources peuvent être de l'argent, des ingrédients, des capacités de machines, de la main d'œuvre,... Soit [ M ] le nombre de ressources différentes énoncées par le problème. Ces [ M ] ressources sont définies en utilisant une notation indicée : r , r , r , …, r 1 2 3 M La deuxième étape consiste à identifier les emplois des ressources disponibles. Les emplois peuvent être les études, les vacances, une recette de cuisine, la fabrication d'une pièce, la réalisation d'une tâche. Il y a toujours plusieurs emplois souhaités pour les ressources (sinon, il n'y aurait pas de problème) et ces emplois sont en compétition. Soit [ N ] le nombre d'emplois souhaités, énoncés par le problème. Ces [ N ] emplois sont notés : x , x , x , …, x 1 2 3 N Il peut y avoir plus de types de ressources disponibles [ N ] que d'emplois souhaités [ M ] ou inversement. Ce sont deux variables entières indépendantes : ‡ £ M ou = ou N Troisième étape : chaque emploi [ x ] consomme une certaine quantité - i éventuellement nulle - de chaque ressource [ r ]. Par exemple une recette du pain j consomme 500 g de farine et celle des crêpes 250 gr; la fabrication d'une pièce nécessite 3 h de travail et celle d'une autre, seulement 2 h, etc. 1Le lecteur impatient peut d'ailleurs sauter ce paragraphe et y revenir après avoir étudié les exemples. H. Schyns2.1 Programmation linéaire2 - Position du problème Les consommations unitaires sont représentées par des coefficients notés : a jk où -j désigne la j ème ressource -k désigne le k ème emploi Ainsi, pour fabriquer une pièce de [ x ], on a besoin de 1 a unités de la ressource r (500 gr de farine) 11 1 + a unités de la ressource r (10 gr de sel) 21 2 + : + a unités de la ressource r (100 gr de beurre) M1 M De manière symétrique, la ressource [ r ], est consommée à raison de 1 a unités par l'emploi x (500 gr par pain) 11 1 + a unités par l'emploi x (20 gr par crêpe) 12 2 + : + a unités par l'emploi x (10 gr par gâteau) 1N N Comme les ressources sont limitées, nous devons veiller à ce que les emplois ne consomment pas plus que ce qui est disponible. Par exemple, pour limiter la consommation de la deuxième ressource, nous écrirons : a21(cid:215) x1 +a22 (cid:215) x2 +a23 (cid:215) x3 +...+a2N (cid:215) xN £ r2 [eq. 2.1] Il existe une inéquation de ce type pour chacune des ressources. La quatrième étape consiste à établir un critère d'attribution des ressources. Classiquement, le critère consiste maximiser le bénéfice obtenu par la vente des pièces ou minimiser le temps passé à exécuter les recettes ou maximiser le plaisir procuré par les dépenses financières. Pour établir un tel critère, il faut bien entendu savoir dans quelle mesure chaque emploi contribue à la réalisation de l'objectif. Les contributions unitaires sont notées : c , c , c , …, c 1 2 3 N Ainsi, la vente des pièces produites procure une contribution unitaire au bénéfice de c pour chaque pièce de modèle x 1 1 + c pour chaque pièce de modèle x 2 2 + : + c pour chaque pièce de modèle x N N Le critère global (à maximiser ou minimiser selon les cas) est appelé fonction- objectif. Il s'écrit : f = c1(cid:215) x1+c2 (cid:215) x2 +...+cN (cid:215) xN [eq. 2.2] Comme les contributions unitaires sont fixes, on comprend que le problème consiste à trouver les valeurs des [ x ] qui vont maximiser ou minimiser la fonction. j Toutefois, comme toutes les fonctions sont linéaires, les dérivées premières ne sont d'aucune aide. H. Schyns2.2 Programmation linéaire2 - Position du problème En suivant ce qui a été dit ci-dessus le problème d'optimisation s'écrira sous la forme d'un système de [ N ] inéquations : Maximiser la fonction de N variables fmax = c (cid:215) x +c (cid:215) x +...+c (cid:215) x 1 1 2 2 N N Sous M contraintes (cid:236) a (cid:215) x +a (cid:215) x +a (cid:215) x +...+a (cid:215) x £ r 11 1 12 2 13 3 1N N 1 (cid:239) (cid:239) a (cid:215) x +a (cid:215) x +a (cid:215) x +...+a (cid:215) x £ r 21 1 22 2 23 3 2N N 2 (cid:237) (cid:239) M (cid:239)(cid:238) a (cid:215) x +a (cid:215) x +a (cid:215) x +...+a (cid:215) x £ r M1 1 M2 2 M3 3 MN N M et N variables (cid:236) x ‡ 0 1 (cid:239) (cid:239) x ‡ 0 2 (cid:237) (cid:239) M (cid:239)(cid:238) x ‡ 0 N ème [ a ] est donc le coefficient de [ x ] dans la j équation (1). jk k A chaque problème est associé un problème dual qui est généré en lisant verticalement le problème primal : Minimiser la fonction de M variables fmin =r (cid:215) y +r (cid:215) y +...+r (cid:215) y 1 1 2 2 M M Sous N contraintes (cid:236) a (cid:215) y +a (cid:215) y +a (cid:215) y +...+a (cid:215) y ‡ c 11 1 21 2 31 3 M1 M 1 (cid:239) (cid:239) a (cid:215) y +a (cid:215) y +a (cid:215) y +...+a (cid:215) y ‡ c 12 1 22 2 32 3 M2 M 2 (cid:237) (cid:239) M (cid:239)(cid:238) a (cid:215) y +a (cid:215) y +a (cid:215) y +...+a (cid:215) y ‡ c 1N 1 2N 2 3N 3 MN M N et M variables (cid:236) y ‡ 0 1 (cid:239) (cid:239) y ‡ 0 2 (cid:237) (cid:239) M (cid:239)(cid:238) y ‡ 0 M Si le problème primal recherche un maximum, alors le problème dual recherche un minimum et réciproquement. On peut démontrer que la solution du problème primal est identique à celle du problème dual. Selon les cas, il peut donc être plus intéressant (plus facile) de rechercher la solution du problème dual plutôt que celle du problème primal. Il est important de noter que nous ne pourrons satisfaire qu' un seul critère. Ceci implique donc de se mettre d'accord a priori sur la fonction objectif ! Dans le cas contraire, il faudra se préparer à de longues heures de négociation. 1Le premier indice représente la ligne, le second représente la colonne. H. Schyns2.3 Programmation linéaire3 - Résolution 3. Résolution 3.1. Illustration Un agriculteur possède des terres d'une superficie totale de 100 hectares sur lesquelles il peut y semer du blé ou du maïs. Il dispose d'un stock de 240 unités d'engrais et de 210 unités d'insecticide La culture du maïs exige 2 unités d'engrais et 1 unité d'insecticide par hectare. La culture du blé exige 3 unités d'engrais et 3 unités d'insecticide par hectare. Un hectare de blé lui rapporte un bénéfice de 4 unités monétaires tandis qu'un hectare de maïs ne lui en rapporte que 2. Quelle est le plan de culture qui lui procure un bénéfice maximum ? 3.2. Résolution graphique 3.2.1. Identification des inégalités Le premier point consiste à identifier les ressources : les terres, l'engrais, l'insecticide. Dans le cas présent, les ressources sont partagées entre deux emplois : la culture du blé ou celle du maïs. Les seuls paramètres sur lesquels l'agriculteur peut jouer sont : -le nombre d'hectares qu'il décide de consacrer au blé, soit [ B ], -le nombre d'hectares qu'il décide de consacrer au maïs, soit [ M ]. Comme il n'y a que deux emplois, tout le problème pourra être résolu par voie graphique. Ceci posé, notre agriculteur est limité par trois contraintes : -la disponibilité des terres, qui implique : M+B £ 100 [eq. 3.1] -la disponibilité de l' engrais, qui impose : 2M+3B £ 240 [eq. 3.2] -la disponibilité de l' insecticide, qui impose M+3B £ 210 [eq. 3.3] Notons que les trois inégalités de ces contraintes doivent être exprimées dans le £ même sens [ ] afin de faciliter le traitement mathématique ultérieur. Nous avons encore deux inégalités qui expriment que le cultivateur ne peut pas cultiver un nombre négatif d'hectares : M‡ 0 [eq. 3.4] B ‡ 0 H. Schyns3.1 Programmation linéaire3 - Résolution Enfin, la foction objetcif est une équation de profit [ P ] qui s'écrit maximiser P = 4B+2M [eq. 3.5] Mathématiquement, le problème s'exprime sous la forme Maximiser P = 4B+2M Sous contraintes (cid:236) M+B £ 100 (cid:239) (cid:237) 2M+3B £ 240 (cid:239) (cid:238) M+3B £ 210 et (cid:236) M‡ 0 (cid:237) (cid:238) B‡ 0 C'est ce qu'on appelle la forme normale ou normalisée du problème. Attention au sens des inégalités ! 3.2.2. Mise en forme graphique Comme le problème ne présente que deux variables [ M ] et [ B ], nous pouvons représenter les cinq contraintes dans le plan. Nous choisissons de prendre [ M ] comme ordonnée et [ B ] comme abscisse, mais nous pouvons tout aussi bien faire l'inverse. Pour tracer la droite qui représente les cas limite, nous commençons par remplacer les inéquations en équations que nous modifions pour les adapter à notre système d'axes : (cid:236) M=100- B (cid:236) M+B £ 100 (cid:236) M+B =100 (cid:239) (cid:239) (cid:239) (cid:239) 3 (cid:237) 2M+3B £ 240 (cid:240) (cid:237) 2M+3B = 240 (cid:240) (cid:237) M=120- B (cid:239) (cid:239) (cid:239) 2 (cid:238) M+3B £ 210 (cid:238) M+3B = 210 (cid:239)(cid:238) M= 210- 3B En voici la représentation graphique : fig. 3.1 Droites frontières H. Schyns3.2 Programmation linéaire3 - Résolution Les deux dernières contraintes étant représentées par les axes. Les inéquations nous imposent d'éliminer un demi-plan pour chaque droite. Pour cela, nous choisissons un point quelconque du plan et nous regardons s'il vérifie ou non chacune des inéquations. Cette étape est grandement facilitée si nous choisissons l'origine (0, 0) comme point quelconque. En effet, à l'origine signifie que M=0 et B=0 En ce point, les trois contraintes sont vérifiées (cid:236) M+B £ 100 (cid:236) 0+0 £ 100 vrai (cid:239) (cid:239) (cid:237) 2M+3B £ 240 (cid:240) (cid:237) 2(cid:215) 0+3(cid:215) 0 £ 240 vrai (cid:239) (cid:239) (cid:238) M+3B £ 210 (cid:238) 0+3(cid:215) 0 £ 210 vrai Par conséquent, le point (0, 0) est du 'bon côté" du plan pour ces trois contraintes, ce qui nous permet de rejeter (hachurer) l'autre côté du plan. D'autre part, les deux dernières contraintes nous imposent de travailler dans le premier quadrant : fig. 3.2 Domaine valide Le domaine valide a la forme du polygone délimité dans la fig. 3.2. N'importe quel point de ce domaine (côtés inclus) vérifie toutes les contraintes. Il peut arriver que le domaine valide soit vide soit parce que le problème a été mal posé, soit parce que les contraintes sont trop sévères. C'est ce qui arriverait ici si nous imposions en plus à notre agriculteur de cultiver au moins 49 ha de blé et au moins 49 ha de maïs. 3.2.3. Optimisation Il nous reste à présent à maximiser l'équation de profit : P = 4B+2M [eq. 3.6] Il est clair que si [ B ] et [ M ] sont nuls, le profit l'est également. H. Schyns3.3

Description:
degré à deux inconnues. - Systèmes linéaires de N équations à N inconnues . Toutefois, comme toutes les fonctions sont linéaires, les dérivées premières ne sont d'aucune aide. Elmer G. Wiens. Egwald Web Services Ltd.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.