Download - Concert Technology + CPLEX
Concert Technology + CPLEX
Céline Gicquel
Réunion du 10 juin 2009
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
Concert Technogogy
Installation :
1. Installation Visual Studio 2005
2. Installation CPLEX (répertoire C:\ILOG)
3. Vérification licence
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
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
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
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
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
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 »
ILOG CPLEX Solver
Résolution de programmes quadratiques Fonction objectif quadratique Contraintes quadratiques Propriétés de convexité nécessaires