TP Solveur PDF [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Utilisation du solveur IBM-Cplex via le format LP et le langage de modélisation OPL

ECMA Semaine du 10 décembre 2012 Dans ce TP, nous présentons l'utilisation du solveur de programmes mathématiques appelé IBM-Cplex. Ce solveur est un logiciel propriétaire, qui permet de résoudre des programmes dont la fonction à optimiser est soit linéaire, soit quadratique et convexe (dans le cas d'une minimisation), et où les variables peuvent prendre soit des valeurs entières, soit des valeurs continues.

Avant de commencer :

1. Téléchargez le solveur IBM-Cplex à l'adresse suivante :

MPRO/ECMA/sources/sources_cp.exe.

http://cedric.cnam.fr/~lamberta/

2. Installez le solveur. 3. La documentation du langage de modélisation OPL se trouve à l'adresse suivante :

//cedric.cnam.fr/~lamberta/MPRO/ECMA/doc/oplTutorial.pdf.

http:

4. Les exemples en OPL se trouvent dans le répertoire

C:\Program Files (x86)\IBM\ILOG\CPLEX_Studio125\opl\examples\

5. Les exemples en format LP se trouvent dans le répertoire

C:\Program Files (x86)\IBM\ILOG\CPLEX_Studio125\cplex\examples\data\

6. Le chemin de l'exécutable Cplex est le suivant

C:\Program Files (x86)\IBM\ILOG\CPLEX_Studio125\cplex\bin\x86_win32\cplex.exe

1 Utilisation du solveur linéaire de IBM-Cplex pour exécuter des chiers au format LP

Le format de chier LP :

Le format de chier LP permet d'écrire une instance d'un problème mathématique. Ce chier peut

cplex.exe, toto.lp :

être exécuté via le terminal. Plus précisément, après avoir lancé l'exécutable saisir les commandes suivantes pour exécuter le chier nommé par exemple

il faut

CP LEX > read toto.lp CP LEX > opt

La syntaxe du format de chier LP 

En général :

Les commentaires sont précédés d'un backslash, et peuvent être placés n'im-

porte où dans le chier. Les mots clés doivent être en début de ligne.  

Début de chier : "Min"

ou

"Max",

Les variables : 0-9)

Le chier doit commencer par le mot clé

"Minimize", "Maximize",

où la casse n'a pas d'importance. Les variables sont nommées par une chaîne alphanumérique

ou un de ces symboles !

" # $ % & ( ) / , .;? @ _ { } ` ' | 

(a-z, A-Z,

n'excédant pas

16 caractères, et ne peut commencer par une période ou un chire. Les caractères ˆ, sont interdits dans les noms de variables. La lettre valides, ou par une autre lettre

E,

ou

e,

E,

ou

e,

∗, [

et

]

seule ou suivie par des symboles

est interdite car cette notation est réservée pour

l'exponentielle. Ainsi, les noms de variables suivants sont interdits :

1

e9, E-24, E8cats,

etc.



La fonction objectif : Minimize/Maximize

La dénition de la fonction objectif doit suivre les mots clés

et peut être saisie sur plusieurs lignes tant que ni une variable, ni une

constante, ni une indication de sens n'est coupée par un retour à la ligne. Par exemple, la fonction objectif

1x1 + 2x2 + 3x3

x1 + 2x2 + 3x3

peut être saisie de la façon suivante :

mais non comme ça

1x1 + 2x 2 + 3x3

La fonction objectif doit être nommée en la faisant précéder d'un nom suivi de deux points ( : ), et le nom et les deux points ( : ) doivent apparaître sur la même ligne. Le nom de la

Attention :

fonction objectif doit être déni en suivant les mêmes règles que pour les noms de variables. si la fonction objectif est quadratique, les termes quadratiques doivent être

multipliés par deux, placés entre crochets [ et ], puis divisés par deux (après le crochet refermant). Par exemple, la fonction objectif quadratique suivante

max x1 + 2x2 + x21 + 3x1 x2 s'écrira :

Maximize obj: x1 + 2x2 + [2x1*x1+6x1*x2]/2 

Les contraintes :

La section dénissant les contraintes doit commencer par le mot clé

Subject to, S.T., ou ST. où la casse n'a pas d'importance. Chaque dénition de contrainte

doit commencer sur une nouvelle ligne. Une contrainte doit être nommée en entrant un nom et deux points ( : ) avant la contrainte, et le nom et les deux points ( : ) doivent apparaître sur la même ligne. Le nom de chaque contrainte doit être déni en suivant les mêmes règles que pour les noms de variables. Si aucun nom n'est assigné aux contraintes, le solveur les nommera

R1, R2, R3,

etc. Une contrainte doit être suivie par une indication sur

son sens et un coecient, qui est son membre de droite. Ces deux éléments doivent être saisis sur la même ligne. Les sens possibles sont

time: x1 + x2 0, x4 ∈ N

peut être saisi au format LP de la façon suivante :

Maximize obj: x1 + 2 x2 + 3 x3 + x4 Subject To c1: - x1 + x2 + x3 + 10 x4