programmation linéaire

download report

Transcript programmation linéaire

-5Optimisation linéaire et
non-linéaire
2013-02-18
1
Sujets abordés
 Introduction à la programmation
(optimisation) linéaire
 Concept, formulation
 Illustration à l’aide d’Excel
 Introduction à l’optimisation non-linéaire
 Concept, formulation
 Illustration à l’aide d’Excel
2
Introduction
Qu’est-ce que la programmation linéaire?
« La programmation linéaire est une méthode
mathématique qui s'inscrit dans une recherche
d'optimisation »
 Il y a une fonction objective et des contraintes
 Nous tenterons de minimiser ou maximiser la fonction objective tout
en respectant les contraintes
 Les équations sont de premier degré
 Les variables sont élevées à la puissance 1
 Il s’agit donc de droites et non de courbe (d’où le terme linéaire)
3
Introduction
Pourquoi étudier la programmation linéaire?
 Populaire en administration, surtout en gestion des
opérations
 Optimisation des flux de transport
 Planification de la production
 En finance, la programmation linéaire peut :
 Optimiser la prise de décisions (où, quand, combien ?)
 Décisions d’investissement
 Décisions d’emprunt
 Décisions de placement
 Optimiser l’encaisse (gestion de la liquidité)
4
Introduction
*** Il existe de nombreux cours de 45 heures consacrés à ce
sujet (ex : IFT-2106 et MQT-60801)
Ce qui est à l’étude dans le cadre de GSF-2107:
 Écriture d’un problème de programmation linéaire
 Bien définir la fonction objective
 Bien définir les contraintes
 Résoudre un problème simple d’optimisation
 Méthode du simplexe avec le solveur d’Excel
5
Définir les équations

Il faut écrire l’objectif et les contraintes sous la forme
d’équations mathématiques
1.
2.
3.

C’est une étape cruciale qui nécessite de bien
analyser le problème auquel nous sommes
confrontés



Définir les variables de décisions (X1, X2, … Xn)
Définir la fonction objective à l’aide des variables de décision
Définir les contraintes représentant les restrictions
Les contraintes sont parfois explicites
Nous devons le plus souvent les déduire
Il y a généralement de nombreuses contraintes

Des actions peuvent être pris à chaque période et il est
nécessaire de fixer des contraintes pour chaque période
6
Définir les équations
 La forme usuelle des équations est la suivante :
Objectif :
Max/Min: c1 X1  c2 X 2  ... cn X n
a 21 X1  a 22 X 2  ...  a 2n X n  b2
Contraintes :
a 31 X1  a 32 X 2  ... a 3n X n  b3
•
•
•
a m1 X1  a m2 X 2  ... a mn X n  bm
X1 , X 2 ,..., X n  0
Contraintes pour chaque
période (périodes 1 à m)
a11 X1  a12 X 2  ... a1n X n  b1
Contrainte de non négativité
7
Exemple
Exemple
Le gestionnaire d’une entreprise de fabrication de meubles
de mélamine doit planifier la production du prochain mois. Il
doit choisir le nombre optimal de bureaux de travail, de
tables d’ordinateur et de classeurs à fabriquer.
- Le budget prévu pour la production est 100 000 $
- Les employés peuvent travailler un maximum de 1500 heures
- L’entrepôt peut contenir un maximum de 150 m3
8
Définir les équations
Exemple (suite)
Objectif :
Max : W  400$X1  700$ X 2  350$ X 3
300$ X1  500$ X 2  250$ X 3  100000$
Contraintes :
20hrsX1  32hrsX 2  16hrsX3  1500hrs
3m3 X1  3m3 X 2  2m3 X 3  150m3
X1 , X 2 , X 3  0
Puisqu’il est impossible de fabriquer un
nombre négatif de meubles…
9
Méthode du simplexe
Comment résoudre un problème de ce type?
 Il est difficile de représenter graphiquement un
problème comprenant plus de 2 variables
 Intuitivement, plus on ajoute de variables, plus il y aura de
« sommets » représentant une solution potentielle
 Nous utiliserons la méthode du simplexe pour résoudre
ces problèmes
 Élaborée en 1947 par G. Dantzing
 Permet de se déplacer rapidement entre plusieurs points
candidats (optimum locaux) jusqu’à trouver une solution
10
Méthode du simplexe
Les étapes du simplexe:
1.
2.
3.
4.
Définir les variables
Définir la fonction objective
Définir les contraintes d’égalités et inégalités
Transformer les contraintes d’inégalités en contraintes
d’égalités à l’aide de variables molles (slack variables)
5. Construction du tableau du simplexe
6. Itérations:
1. Détermination d’un point pivot sur le tableau
2. Opérations de lignes et de colonnes
11
Le solveur d’Excel
 L’outil Solveur d’Excel permet de résoudre des problèmes
d’optimisation variés
 Permet de déterminer si nous voulons maximiser ou
minimiser une fonction objective
 Permet d’ajouter des contraintes
 Procède par itérations pour sélectionner la solution
optimale
 Un des algorithmes de calcul que l’on peut sélectionner
est basé sur des équations linéaires (méthode du
Simplexe)
 Reprenons l’exemple précédent sur Excel…
 Une solution X1 = 0 X2 = 37,5 X3 = 18,75
12
Le solveur d’Excel
 Les dangers :
 L’algorithme n’identifie pas les extremum locaux
 Nous ne savons pas si la réponse est le point optimal
global
 Il existe des logiciels plus performants qu’Excel pour
faire de l’optimisation
 La capacité de calcul d’Excel est rapidement excédée
lorsqu’on ajoute quelques variables et contraintes
(dimension du problème élevée)
13
Programmation non-linéaire
 Lorsque la fonction objectif et les contraintes ne dépendent
pas linéairement des variables, il n’est pas possible
d’utiliser la méthode du simplexe
 C’est souvent le cas dans les problèmes en finance de
marché
 Le risque (variance) implique des équations de 2ème degré
 Le but de l’optimisation sera de déterminer l’allocation des
ressources entre les titres afin de minimiser les risques pour
un niveau de rendement donné
 Problème : Comment isoler w ?

2
ptf
 w'  w
Vecteur des pondérations
Matrice de variance - covariance
14
Optimisation non-linéaire
 En présence de contraintes en équation, nous pouvons
utiliser le multiplicateur de Lagrange pour résoudre ce
problème
 C’est ce que nous avons vu la semaine dernière
 Il ne faut pas oublier d’ajouter les contraintes implicites…
 n

w

1
 i 
 i 1

 Dans le cadre du cours, ne verrons pas de méthodes de
résolution de problèmes non-linéaires avec contraintes en
inéquation
 Nous utiliserons le Solveur d’Excel
15
Programmation non-linéaire
Exemple sur Excel
 Optimiser l’allocation des ressources d’un portefeuille de
titres boursiers canadiens entre les 10 grands secteurs de
l’économie
Objectif :
Minimiser le risque pour un rendement
journalier de de 0,02 %
Contraintes : - Interdiction de faire des ventes à découvert
- Limite sectorielle : secteur S&P/TSX + 10 %
Variables :
10 au total représentant la pondération à
investir dans chaque secteur économique
16