• Aucun résultat trouvé

Mod´elisation Programmation lin´eaire

N/A
N/A
Protected

Academic year: 2022

Partager "Mod´elisation Programmation lin´eaire"

Copied!
21
0
0

Texte intégral

(1)

Mod´elisation

Programmation lin´eaire

Recherche Op´erationnelle et Optimisation Master 1 informatique

S´ebastien Verel verel@lisic.univ-littoral.fr

http://www-lisic.univ-littoral.fr/~verel

Universit´e du Littoral Cˆote d’Opale Laboratoire LISIC Equipe CAMOME

(2)

Mod´elisation AMPL Param`etres

Plan

(3)

Mod´elisation AMPL Param`etres

Bibliographie

Fran¸cois Lemaire, universit´e Lille 1.

http://portail.fil.univ-lille1.fr/portail/index.

php?dipl=L&sem=S5&ue=ARO&label=Documents Denis Lugiez, Universit´e de Provence, Aix-Marseille I.

http://pageperso.lif.univ-mrs.fr/~denis.lugiez/

Enseignement/Master1/RO/ro.html

(4)

Mod´elisation AMPL Param`etres

Un probl` eme industriel

Aci´erie

Aci´erie produit bandes et rouleaux m´etalliques pendant 40 heures par semaine au total

Vitesses de production : 200 bandes par heure et 140 rouleaux par heure.

bandes vendues 25 euros l’unit´e et rouleaux 30 euros l’unit´e March´e limit´e : impossible de vendre de 6000 bandes et 4000 rouleaux

Comment maximiser le profit de l’aci´erie ?

(5)

Mod´elisation AMPL Param`etres

Vers la R´ esolution

Mod´elisation d’un probl`eme de programmation lin´eaire

Ecriture dans le langage math´ematique, ”Mise en in´equations et

´equations”

Variables Param`etres Contraintes Objectif(s)

(6)

Mod´elisation AMPL Param`etres

Exemple de mod´ elisation

d’un probl`eme de programmation lin´eaire

Variables

x1 le nombre de bandes `a produire x2 le nombre de rouleaux `a produire













25x1+ 30x2 = z [max] x1 ≥ 0 x2 ≥ 0 x1 ≤ 6000 x2 ≤ 4000 1/200x1+ 1/140x2 ≤ 40

(7)

Mod´elisation AMPL Param`etres

Exemple de mod´ elisation

d’un probl`eme de programmation lin´eaire

Variables

x1 le nombre de bandes `a produire x2 le nombre de rouleaux `a produire













25x1+ 30x2 = z [max]

x1 ≥ 0 x2 ≥ 0 x1 ≤ 6000 x2 ≤ 4000 1/200x1+ 1/140x2 ≤ 40

(8)

Mod´elisation AMPL Param`etres

Exemple de mod´ elisation

d’un probl`eme de programmation lin´eaire

Variables

x1 le nombre de bandes `a produire x2 le nombre de rouleaux `a produire













25x1+ 30x2 = z [max] x1 ≥ 0 x2 ≥ 0 x1 ≤ 6000 x2 ≤ 4000 1/200x1+ 1/140x2 ≤ 40

(9)

Mod´elisation AMPL Param`etres

R´ esolution graphique

Chaque in´equation (lin´eaire) : demi-plan des solutions r´ealisables Objectif :

Droite parall`ele `a ”25x1+ 30x2” dont l’abscisse `a l’origine est la plus grande (max)

Plus grande valeur du produit scalaire (projection) 25

30

. x1

x2

= 25x1+ 30x2













25x1+ 30x2 = z [max] x1 ≥ 0 x2 ≥ 0 x1 ≤ 6000 x2 ≤ 4000 1/200x1+ 1/140x2 ≤ 40

(10)

Mod´elisation AMPL Param`etres

AMPL

http://www.ampl.com/

Logiciel con¸cu et r´ealis´e par Fourer, Gay et Kernigham Fonctionnnement :

Interface pour ”programmer” le mod`ele

Calculs d´el´egu´es `a un solveur (minos, cplex,etc.)

Installer en suivant les instructions :

http://portail.fil.univ-lille1.fr/portail/index.php?

dipl=L&sem=S5&ue=ARO&label=Documents

(11)

Mod´elisation AMPL Param`etres

Resolution AMPL

var x1 >= 0;

var x2 >= 0;

maximize z : 25*x1 + 30*x2;

subject to bandes : x1 <= 6000;

subject to rouleaux : x2 <= 4000;

subject to production : (1/200)*x1 + (1/140)*x2 <= 40;

solve;

MINOS 5.5: optimal solution found. 2 iterations, objective 192000 display z, x1, x2;

z = 192000 x1 = 6000 x2 = 1400

(12)

Mod´elisation AMPL Param`etres

Resolution AMPL

var x1 >= 0;

var x2 >= 0;

maximize z : 25*x1 + 30*x2;

subject to bandes : x1 <= 6000;

subject to rouleaux : x2 <= 4000;

subject to production : (1/200)*x1 + (1/140)*x2 <= 40;

solve;

MINOS 5.5: optimal solution found.

2 iterations, objective 192000 display z, x1, x2;

z = 192000 x1 = 6000 x2 = 1400

(13)

Mod´elisation AMPL Param`etres

Param` etres

Les param`etres sont les ”constantes” du probl`eme

Les param`etres permettent de d´efinir une classe de probl`emes Lorsque les valeurs des param`etres sont donn´es, la r´esolution num´erique peut s’effectuer.

Exemple

Le nombre d’heure ouvr´ees par semaine.

(14)

Mod´elisation AMPL Param`etres

S´ emantique et syntaxe AMPL

Param`etre num´erique

qui peut ˆetre flottant (ou entier cf. plus loin) param heures ouvrees>= 0 ;

Ensemble

Equivalent au type ´enum´er´e set PROD;

Ensemble de param`etres num´eriques param vitesse production { PROD }; Ensemble de variables

param vitesse production { PROD };

cf. tutorialhttp://www.columbia.edu/~dano/courses/4600/

lectures/6/AMPLTutorialV2.pdf

(15)

Mod´elisation AMPL Param`etres

Exemple

Le mod`ele, fichierex2.mod

# set of products set PROD;

# parameters

param heures_ouvrees >= 0;

param vitesse_production {PROD} >= 0;

param prix_vente {PROD} >= 0;

param vente_max {PROD} >= 0;

# variables

var qte_produite {p in PROD} >= 0, <= vente_max [p];

# objective maximize profit :

sum {p in PROD} qte_produite [p] * prix_vente [p];

# constraints

subject to production_limitee : sum {p in PROD}

(qte_produite [p] / vitesse_production [p]) <= heures_ouvrees;

(16)

Mod´elisation AMPL Param`etres

Exemple

Les donn´eesex2.dat

set PROD := bandes rouleaux;

param heures_ouvrees := 40;

param: vitesse_production prix_vente vente_max :=

bandes 200 25 6000 rouleaux 140 30 4000;

(17)

Mod´elisation AMPL Param`etres

Exemple

L’ex´ecutableex2.run

reset;

model ex2.mod;

data ex2.dat;

solve;

display qte_produite.lb, qte_produite, qte_produite.ub;

(18)

Mod´elisation AMPL Param`etres

Exercice

Ajouter un produit, des poutres tel que : production max de 160 par heure 29 euros par unit´e

3500 unit´es vendues au maximum

(19)

Mod´elisation AMPL Param`etres

R´ esultats et valeur minimale

Abandon du march´e des rouleaux...

Ajoutons une contrainte pour une vente minimale : param vente min PROD >= 0;

var qte produite p in PROD >= vente min [p], <= vente max [p];

(20)

Mod´elisation AMPL Param`etres

R´ esolution en nombre entier

Le nombre de poutres n’est pas un entier ! Ajouter le qualificatif int`egre aux variables :

var qte produite p in PROD integer >= vente min [p], <= vente max [p];

R´esolution avec le soldeur cplex : reset;

model ex4.mod;

data ex4.dat;

option solver cplex;

solve; display qte produite.lb, qte produite, qte produite.ub;

Au passage notez que la r´esolution en entier n’est pas le ”cut”

des nombres r´eels !...

(21)

Mod´elisation AMPL Param`etres

Exercice : Planification sur plusieurs semaines

Planifier la production sur 3 semaines set SEMS := 1 .. N;

var qte produite {SEMS, PROD } >= 0;

... qte produite[s, p] ...

Stock possible, mais limit´e.

var qte stock {1 .. N+1, PROD } >= 0;

Stock initial et final nul.

Références

Documents relatifs

[r]

boxcox (MASS) transformation de Box-Cox dans le cas d’un LNM bcPower (car) transformation de Box-Cox, Yeo-Johnson ou puissance lm (stats) ajuste un mod` ele de r´ egression lin´

L’entreprise Granulex distribue un aliment pour chat dans un contenant m´ etallique dont le poids apr` es remplissage, repr´ esent´ e par une variable al´ eatoire X, est calibr´ e `

Docking mol´ eculaire Mod´ elisation cognitive Calibration de mod` ele agronomique Apprentissage artificiel?. Tˆ ache de m´ emorisation

On est parfois amen´ e, pour des raisons de stabilit´ e num´ erique, ` a effectuer des ´ echanges de lignes mˆ eme si le test (3) est n´ egatif (c’est ` a dire que le pivot est

[r]

Estimation des param` etres et de l’´ etat cach´ e des mod` eles d’espace d’´ etats: application au mod`

Les trois fa¸ cons principales de calculer des ´ ecarts types et les intervalles de confiance pour les changements pr´ edits : par l’utilisation de la matrice variance-covariance