10
Concert Technology + CPLEX Céline Gicquel Réunion du 10 juin 2009

Concert Technology + CPLEX

Embed Size (px)

DESCRIPTION

Concert Technology + CPLEX. Céline Gicquel Réunion du 10 juin 2009. Modeleurs/solveurs au laboratoire. Concert Technogogy. Installation : Installation Visual Studio 2005 Installation CPLEX (répertoire C:\ILOG) Vérification licence. Concert Technogogy. Mise en œuvre : - PowerPoint PPT Presentation

Citation preview

Page 1: Concert Technology  + CPLEX

Concert Technology + CPLEX

Céline Gicquel

Réunion du 10 juin 2009

Page 2: Concert Technology  + CPLEX

Modeleurs/solveurs au laboratoire

Modeleurs Solveur Remarques

Excel Faible performance

Xpress-IVEVersion étudiante

gratuite de Xpress-MP

AMPL

ILOG CPLEX

Version 11.1

OPL

Concert TechnologyBesoin de Visual

Studio 2005

COIN-OR : projets FLOPC++ ou

GAMSlinkCOIN-OR : projet CBC

Logiciel libre

Besoin de Cygwin + Visual Studio 2005

Page 3: Concert Technology  + CPLEX

Concert Technogogy

Installation :

1. Installation Visual Studio 2005

2. Installation CPLEX (répertoire C:\ILOG)

3. Vérification licence

Page 4: Concert Technology  + CPLEX

Concert Technogogy

Mise en œuvre :

1. Création d’un projet Visual Studio 2005

2. Création d’un fichier source .cpp

3. Modification des propriétés du projet pour le relier aux bibliothèques CPLEX

Page 5: Concert Technology  + CPLEX

Concert Technogogy

Mise en œuvre :

1. Création d’un projet Visual Studio 2005

2. Création d’un fichier source .cpp

3. Modification des propriétés du projet pour le relier aux bibliothèques CPLEX

Page 6: Concert Technology  + CPLEX

Concert TechnogogyPrototype de code source

#include <ilcplex/ilocplex.h>

void main(){

IloEnv env;     

IloModel model(env);    

IloNumVarArray x(env, 3);    

model.add(IloMaximize(env, x[0] + 2*x[1] + 3*x[2]));  

model.add( - x[0] +    x[1] + x[2] <= 20);     

model.add(   x[0] - 3 * x[1] + x[2] <= 30);

IloCplex cplex(model);

cplex.solve();

cout <<   "Z = "  <<cplex.getObjValue() << endl;

cout <<   " x0 = "  <<cplex.getValue(x[0]) << endl;

}

// Librairies CPLEX

// Environnement

// Modèle

// Variables

// Fonction objectif

// Contraintes

// Résolution

// Affichage résultats

Page 7: Concert Technology  + CPLEX

Concert TechnogogyUtilisation d’expressions:

N

iii BxA

0

IloNumVarArray x (env, N+1) ;

IloExpr Exemple(env);

for (i=0; i<N+1; i++) {

Exemple += A[i]*x[i];

}

model.add(Exemple<=B);

Pour écrire la contrainte

Tableau de variables à plusieurs dimensionsIloNumVarArray2 x (env, N+1) ;

for (i= 0; i <N+1; i++) { x[i]=IloNumVarArray(env,T+1);

}

Pour définir des variables

itx

Page 8: Concert Technology  + CPLEX

ILOG CPLEX Solver

Résolution de programmes linéaires Algorithmes :

Dual simplex, primal simplex

Network optimizer

… « Warm start », utilisation d’une base avancée

Problèmes numériques

Paramètres avec des ordres de grandeurs très différents

Page 9: Concert Technology  + CPLEX

ILOG CPLEX Solver

Résolution de programmes linéaires mixtes Déclaration des variables en ILOBOOL ou ILOINT Algorithme : Branch & Bound Paramètrage :

Stratégie d’exploration de l’arbre de recherche Génération automatique de coupes génériques Possibilité de fournir une solution réalisable connue Possibilité de définir une priorité pour le branchement sur les

variables entières Possibilité de définir des coupes « utilisateur »

Page 10: Concert Technology  + CPLEX

ILOG CPLEX Solver

Résolution de programmes quadratiques Fonction objectif quadratique Contraintes quadratiques Propriétés de convexité nécessaires