Notes sur la programmation linéaire - 1° partie, Notes de Applications informatiques
Francine88
Francine8813 January 2014

Notes sur la programmation linéaire - 1° partie, Notes de Applications informatiques

PDF (92.8 KB)
9 pages
287Numéro de visites
Description
Notes d’informatique sur l la programmation linéaire - 1° partie. Les principaux thèmes abordés sont les suivants: L'objectif de la programmation linéaire (P.L.), La recherche opérationnelle, exemple, le "système canoniq...
20points
Points de téléchargement necessaire pour télécharger
ce document
Télécharger le document
Aperçu3 pages / 9
Ceci c'est un aperçu avant impression
Chercher dans l'extrait du document
Ceci c'est un aperçu avant impression
Chercher dans l'extrait du document
Aperçu avant impression terminé
Chercher dans l'extrait du document
Ceci c'est un aperçu avant impression
Chercher dans l'extrait du document
Ceci c'est un aperçu avant impression
Chercher dans l'extrait du document
Aperçu avant impression terminé
Chercher dans l'extrait du document

L'objectif de la programmation linéaire (P.L.) est de trouver la valeur optimale d'une fonction

linéaire sous un système d'équations d'inégalités de contraintes linéaires. La fonction à

optimiser est baptisée "fonction économique" (utilisée en économie dans le cadre

d'optimisations) et on la résout en utilisant une méthode dite "méthode simplexe" (voir plus

loin) dont la représentation graphique consiste en un "polygone des contraintes".

Remarques:

R1. La programmation linéaire est beaucoup utilisée (pour ne citer que les cas les plus connus)

dans la logistique, la finance d'entreprise ou encore aussi en théorie de la décision lorsque nous

devons résoudre un jeu à stratégie mixte (voir le chapitre de Théorie de la décision et des jeux

pour un exemple pratique). C'est pour cette raison que MS Excel intègre un outil appelé le

"solveur" dans lequel il existe une option appelée "modèle supposé linéaire" qui alors impose

l'utilisation du modèle du simplexe que nous allons voir ci-après (dans MS Excel 2010, celle-ci

est nommée "Simplex PL").

R2. Dans le cadre de résolution de problèmes où interviennent des produits de deux variables

nous parlons alors logiquement "programmation quadratique". C'est typiquement le cas en

économétrie dans la modélisation des portefeuilles (cf. chapitre d'Econométrie). C'est pour cette

raison que MS Excel intègre un outil appelé le "solveur" dans lequel il existe une option appelée

"estimation quadratique".

R3. La programmation quadratique et linéaire sont réunies dans l'étude générale de ce que nous

appelons la "recherche opérationnelle".

La recherche opérationnelle à pour domaine l'étude de l'optimisation de processus quels qu'ils

soient. Il existe de nombreux algorithmes s'inspirant des problèmes du type exposés lors de

notre étude de la programmation linéaire. Nous nous attarderons en particulier sur l'algorithme

le plus utilisé qui est "l'algorithme du simplexe".

Lorsqu'on peut modéliser un problème sous forme d'une fonction économique à maximiser

dans le respect de certaines contraintes, alors on est typiquement dans le cadre de la

programmation linéaire.

Soit une fonction économique Z telle que:

(57.244)

où les sont des variables qui influent sur la valeur de Z, et les les poids respectifs de ces

variables modélisant l'importance relative de chacune de ces variables sur la valeur de la

fonction économique.

Les contraintes relatives aux variables s'expriment par le système linéaire suivant:

(57.245)

Sous forme générale et matricielle ce genre de problème s'écrit:

(57.246)

Voyons un exemple qui consiste à résoudre le problème simple suivant:

Une usine fabrique 2 pièces P1 et P2 usinées dans deux ateliers A1 etA2. Les temps d'usinage

sont pour P1 de 3 heures dans l'atelier A1 et de 6 heures dans l'atelier A2 et pour P2 de 4

heures dans l'atelier A1et de 3 heures dans l'atelier A2.

Le temps de disponibilité hebdomadaire de l'atelier A1 est de 160 heures et celui de l'atelier A2

de 180 heures.

La marge bénéficiaire est de 1'200.- pour une pièce P1 et 1'000.- pour une pièce P2.

Quelle production de chaque type doit-on fabriquer pour maximiser la marge hebdomadaire?

Le problème peut se formaliser de la façon suivante:

(57.247)

La fonction économique étant:

(57.248)

à maximiser.

Résolution graphique du problème (ou méthode du "polygone des contraintes"): les contraintes

économiques et de signe sont représentées graphiquement par des demi-plans. Les solutions,

si elles existent appartiennent donc à cet ensemble appelé "région des solutions admissibles" :

(57.249)

Remarque: Dans le cas général, pour ceux qui aiment le vocabulaire des mathématiciens..., la

donnée d'une contrainte linéaire correspond géométriquement à la donnée d'un demi-espace d'un

espace à n dimensions (nétant le nombre de variables). Dans les cas élémentaires, l'ensemble des

points de l'espace qui vérifient toutes les contraintes est un convexe limité par des portions

d'hyperplan (voir le cas 2 variables, facile à illustrer). Si la fonction de coût est linéaire,

l'extrémum est à un sommet (facile à voir). L'algorithme du simplex de base (voir plus loin) part

d'un sommet et va au sommet d'à côté qui maximise localement le coût. Et recommence tant que

c'est possible.

Pour trouver les coordonnées des sommets, on peut utiliser le graphique si les points sont

faciles à déterminer.

Il s'agit donc de chercher à l'intérieur de ce domaine (connexe), le couple maximisant la

fonction économique.

Or, l'équation Z est représentée par une droite de pente constante (-1.2) dont tous les

points fournissent la même valeur Z pour la fonction économique.

En particulier, la droite passe par l'origine et donne une valeur nulle à la

fonction économique. Pour augmenter la valeur de Z et donc la fonction économique, il suffit

d'éloigner de l'origine (dans le quart de plan ) la droite de pente -1.2.

Pour respecter les contraintes, cette droite sera déplacée, jusqu'à l'extrême limite où il n'y aura

plus qu'un point d'intersection (éventuellement un segment) avec la région des solutions

admissibles.

(57.250)

La solution optimale se trouve donc nécessairement sur le pourtour de la région des solutions

admissibles et les parallèles formées par la translation de la fonction économique s'appellent

les "droites isoquantes" ou "droites isocoûts"...

Voyons maintenant comment résoudre ce problème de manière analytique avant de passer à la

partie théorique.

Nous avons donc le "système canonique" :

(57.251)

avec :

(57.252)

Nous introduisons d'abord la "variable d'écart" afin de transformer les 3 inégalités par des

égalités. Le système d'équations devient alors une "forme standard" :

(57.253)

Remarque: Il y a autant de variables d'écart que d'inéquations!

La situation peut se résumer dans le tableau suivant (nous omettons la représentation de la

variable d'écart dans le tableau-matrice qui ne sert qu'à égaliser les équations) :

Contraintes

Total

3 4 160

6 3 180

Fonction

économique 1'200 1'000

Tableau: 57.8 - Représentation tabulaire du problème d'optimisation

Nous déterminons maintenant le pivot (voir plus loin la méthode du pivot), pour cela nous

choisissons la colonne où le coefficient économique est le plus grand. Ici c'est la colonne 1.

Ensuite, nous effectuons les procédures suivantes :

1. Le pivot est remplacé par son inverse

2. On divise les éléments de la ligne du pivot (pivot exclu) par le pivot

3. On divise les éléments de la colonne du pivot (pivot exclu) par le pivot mais on change leur

signe ensuite

4. Pour les autres éléments de la première ligne : élément de la ligne 1 diminué de l'élément

correspondant sur la ligne de pivot multiplié par 3/6 (rapport des valeurs dans la colonne de

pivot)

Nous obtenons dès lors :

Contraintes

Total

Fonction

économique

Tableau: 57.9 - Représentation tabulaire du problème d'optimisation avec pivot

Ce qui donne :

Contraintes

Total

0.5 2.5 70

0.166 0.5 30

Fonction -200 400

économique

Tableau: 57.10 - Représentation tabulaire du problème d'optimisation avec pivot calculé

Nous n'atteignons la solution optimale que lorsque tous les éléments de la marge sont négatifs

ou nuls. Il faut donc continuer (car il reste 400 dans la colonne ) ... ici, on atteint déjà

l'optimum au troisième tableau, mais ce n'est pas une généralité (le pivot est 2.5 cette fois). On

recommence donc les opérations :

Contraintes

Total

Fonction

économique

Tableau: 57.11 - Représentation tabulaire du problème d'optimisation avec 2ème pivot

Ce qui donne :

Contraintes

Total

-0.2 0.4 28

0.266 -0.2 16

Fonction -120 -160

économique

Tableau: 57.12 - Représentation tabulaire finale du problème d'optimisation

Le processus est terminé car tous les termes de la fonction économique sont négatifs. Le

programme optimum est donc de et pour un résultat de :

(57.254)

ALGORITHME DU SIMPLEXE

Pour mettre en oeuvre cet algorithme, nous devons poser le problème sous une forme

"standard" et introduire la notion de "programme de base" qui est l'expression algébrique

correspondant à la notion de "point extrême du polyèdre des programmes admissibles" étudiée

lors de la programmation linéaire (noté ci-après P.L.). En effet, nous verrons que la solution

d'un problème de type P.L. si elle existe, peut toujours être obtenue en un programme de base.

La méthode du simplexe va donc consister à trouver un premier programme de base puis à

construire une suite de programmes de base améliorant constamment la fonction économique

et donc conduisant à l'optimum.

Un problème de P.L. est donc mis sous sa "forme standard" s'il implique la recherche du

minimum de la fonction objectif sous des contraintes ayant la forme d'équation linéaires et de

conditions de non négativité des variables, c'est-à-dire s'il se pose sous la forme que nous

avons vu lors de notre étude de la programmation linéaire:

(57.255)

C'est-à-dire aussi, en utilisant des notations matricielles:

(57.256)

où les matrices correspondent, respectivement, aux coefficients des

niveaux d'activité dans la fonction objectif, aux coefficients techniques des activités et aux

secondes membres des contraintes.

Nous allons voir maintenant comme un problème général de P.L. peut toujours être ramené à

une forme standard. La notion de "variable d'écart" est essentielle pour effectuer cette

"réduction".

Chercher le maximum d'une fonction f(x) revient à chercher le minimum de la fonction de signe

opposé -f(x) . D'autre part une contrainte qui se présente comme une inéquation:

(57.257)

peut être remplacée par l'équation:

(57.258)

impliquant une variable supplémentaire, , appelée donc "variable d'écart", et soumise à la

contrainte de non-négativité, .

Bien évidemment, dans un cas contraire tel où le système est du type:

(57.259)

Nous écrirons:

(57.260)

impliquant donc également une variable supplémentaire et soumise à la contrainte de non-

négativité, .

Ce travail de mise en forme standard nous permet donc de retrouver un système d'équations

linéaires à résoudre (nous avons vu précédemment sur le site comme résoudre ce genre de

système avec l'algorithme du pivot).

La matrice A qui représente les composantes du système d'équations peut s'exprimer dans

différentes variantes en fonction de la base vectorielle choisie (voir le chapitre d'Analyse

vectorielle dans la section d'algèbre). Nous allons introduire la notion de "forme canonique

utilisable" associée au choix d'une base et nous montrerons que cette reformulation du système

de contraintes va nous permettre de progresser vers l'optimum.

commentaires (0)
Aucun commentaire n'a été pas fait
Écrire ton premier commentaire
Ceci c'est un aperçu avant impression
Chercher dans l'extrait du document
Docsity n'est pas optimisée pour le navigateur que vous utilisez. Passez à Google Chrome, Firefox, Internet Explorer ou Safari 9+! Téléchargez Google Chrome