Download - Slides ceplex
IBM ILOG-CPLEXConcert Technology for C++ users
with Microsoft Visual Studio 2010
Med,bouhamed@live,fr
Plan
1. Fonctionnement de C++ CPLEX 12.5
2. Installation de Microsoft Visual Studio 2010
& CPLEX 12.5
3. Création d’un projet C++ sous Microsoft
Visual Studio 2010
4. Paramétrage de CPLEX 12.5 sous Microsoft
Visual Studio 2010
5. Lecture de l’instance d’un problème
6. Variables et structures propres au modèle
7. Construction du modèle
8. Résolution du modèle avec CPLEX 12.5
9. Récupération de la solution
2
1. Fonctionnement de C++ CPLEX 12.5
InstancesLire instance
du problème
Modèle
(fichier .lp)Structures de
données
Données du problème
Variables de décision
Fichier
résultat
Construction
du modèle LP
CPLEX
Résolution
avec CPLEXRécupération
de la solution
2. Installation de M.V.S. 2010 & CPLEX 12.5
Installation de Microsoft Visual 2010
(1) Double cliquer
sur autorun.exe
(2) Appuyer sur
installer
4
2. Installation de M.V.S. 2010 & CPLEX 12.5
Installation de CPLEX 12.5
(3) Installer ce fichier si votre
système Windows est 32 bits
(3) Installer ce fichier si votre
système Windows est 64 bits
5
3. Création d’un projet C++ sous M.V.S. 2010
(1) Lancer M.V.S. 2010 ensuite aller au menu
Fichier Nouveau Projet
6
Création d’un projet
3. Création d’un projet C++ sous M.V.S. 2010
(2) Dans la fenêtre « Nouveau Projet » sélectionner
« Visual C++ » ensuite « Application Console Win32 »
(4) Préciser le
répertoire de
sauvegarde de
votre projet
ensuite appuyer
sur « OK »
(3) Préciser le
nom de votre
projet
2
1
3
4
7
Création d’un projet
3. Création d’un projet C++ sous M.V.S. 2010
(5) Dans la fenêtre «Assistant
Application Win32» appuyer
sur le bouton « Suivant »
(6) Ensuite, dans la nouvelle
fenêtre, cocher «Projet Vide»
puis appuyer sur le bouton
«Terminer»
8
1
2
Création d’un projet
3. Création d’un projet C++ sous M.V.S. 2010
(7) Afin de créer un fichier
source (exemple
"main.cpp« ), cliquer par le
bouton droit sur votre projet,
ensuite « Ajouter », ensuite
« Nouvel élément »
2
1
3
9
Création d’un fichier
code source C++
3. Création d’un projet C++ sous M.V.S. 2010
(8) Sélectionner « Fichier
C++ »
(9) Préciser le nom de
votre fichier source
ensuite appuyer sur
« Ajouter »2
1
3
10
Création d’un fichier
code source C++
3. Création d’un projet C++ sous M.V.S. 2010
(10) Cliquer sue Win32 en
suite «Gestionnaire de
Configuration»
Effectuer les étapes 10, 11 et 12
uniquement si votre Windows est en 64bits
(il faut transformer votre projet en 64 bits)
11
3. Création d’un projet C++ sous M.V.S. 2010
(11) Dans la fenêtre
« Gestionnaire de
configuration » cliquer sur
« Win32 » ensuite
«Nouveau »
(12) Dans la fenêtre
« Nouvelle plateforme de
projet » cliquer sur
« Itanium» ensuite «X64»
puis appuyer sur « OK »
2
1
3
12
Effectuer les étapes 10, 11 et 12
uniquement si votre Windows est
en 64bits (il faut transformer votre
projet en 64 bits)
3. Création d’un projet C++ sous M.V.S. 2010
Fichier code source C++
Edition du code source C++
Enfin vous aurez votre projet crée pour
éditer votre code source
X64 si votre Windows est en
64 bits
13
4. Paramétrage de CPLEX 12.5 sous M.V.S. 2010
Pour accéder au paramétrage
CPLEX avec le projet C++
crée, cliquer par le bouton
droit sur le nom du projet
ensuite « Propriétés »
2
1
4. Paramétrage de CPLEX 12.5 sous M.V.S. 2010
(1) Dans la page de
propriétés du projet,
cliquer sur « C/C++ »,
ensuite « Général ».
2
1
(2) Dans « Autres répertoires
Include », appuyer sur
« Modifier »
3
Désignation des chemins « Include »
4. Paramétrage de CPLEX 12.5 sous M.V.S. 2010
1
(3) Dans la fenêtre « Autres répertoires Include », Appuyer
sur l’icône et donner les deux chemins include de
cplex et de concert.
Vous devez avoir les deux chemins désignés dans la zone
de texte correspondante. Ensuite Apuyer sur « OK »
Désignation des chemins « Include »
2
4. Paramétrage de CPLEX 12.5 sous M.V.S. 2010
(4) Dans la page de
propriétés du projet, cliquer
sur « C/C++ », ensuite
« Préprocesseur ».
1
2
(5) Dans « Définition de
préprocesseur », appuyer sur
« Modifier »
Préprocesseur
4. Paramétrage de CPLEX 12.5 sous M.V.S. 2010
(6) Dans la fenêtre
« Définition de
préprocesseur », ajouter
dans la zone de texte les
deux lignes encadrées en
rouge. Ensuite cliquer sur
« OK ».
Préprocesseur
1
2
4. Paramétrage de CPLEX 12.5 sous M.V.S. 2010
(7) Dans la page de
propriétés du projet, cliquer
sur «Editeur de liens»,
ensuite « Général ».
2
1
(8) Dans « Répertoires des bibliothèques
supplémentaires », appuyer sur « Modifier »
3
Désignation des chemins « Include »
4. Paramétrage de CPLEX 12.5 sous M.V.S. 2010
1
(9) Dans la fenêtre « Répertoires de bibliothèques
supplémentaires », Appuyer sur l’icône et donner les
deux chemins lib de cplex et de concert.
Vous devez avoir les deux chemins désignés dans la zone
de texte correspondante. Ensuite appuyer sur « OK »
Désignation des chemins « Include »
2
4. Paramétrage de CPLEX 12.5 sous M.V.S. 2010
(10) Dans la page de
propriétés du projet, cliquer
sur « Editeur de liens »,
ensuite « Entrée ».
1
2
(11) Dans « Dépendances
supplémentaires», appuyer
sur « Modifier »
Entrées librairies (lib)
4. Paramétrage de CPLEX 12.5 sous M.V.S. 2010
(12) Dans la fenêtre
« Dépendances
supplémentaires», ajouter
dans la zone de texte les
trois lignes encadrées en
rouge. Ensuite cliquer sur
« OK ».
Entrées librairies (lib)
1
2
5. Lecture de l’instance du problème
Knapsack Problem with Setup KSPD
on
née
sV
aria
ble
s d
e
décis
ion
5. Lecture de l’instance du problème
Instance du KPS
test3x10-SC(0).txt
test3x10-SC(1).txt
..
..
..test3x10-SC(n).txt
5. Lecture de l’instance du problème
Structures de données pour les données du KPS
6. Variables et structures propres au modèle
Tableaux des variables de décision
IloNumVarArray : tableau des variables de décision à un seul indice
Déclaration : IloNumVarArray NOMVAR(ENV, N, BINF, BSUP, TYPE);
• NOMVAR: Nom du tableau des variables de décision
• ENV: Environnement CPLEX ouvert
• N: Taille du tableau (nombre des variable
• BINF: Borne inferieure des valeurs des variables
• BSUP: Borne supérieure des valeurs des variables
• TYPE: Type des variable des décision (Réels, Entières, Booléennes)
Déclaration : IloNumVarArray Y(env, N, 0, 1, IloNumVar::Int);
6. Variables et structures propres au modèle
Ouverture de l’environnement CPLEX
Obligatoire pour utiliser les
fonctionnalités CPLEX!
6. Variables et structures propres au modèle
Tableaux des variables de décision
typedef IloArray<IloNumVarArray> IloNumVarArray2;
IloNumVarArray2 : tableau des variables de décision à deux indices
Exemple :
Remarque : On peut définir des variables à 3, 4, 5, … indices. Il suffit de
procéder avec la même manière qu’à deux indices.
6. Variables et structures propres au modèle
Tableaux des solutions
IloNumArray : tableau où récupérer les valeurs des variables de décision à un seul
indice
Déclaration : IloNumArray NOMVAL(ENV, N);
• NOMVAL: Nom du tableau des valeurs des variables de décision
• ENV: Environnement CPLEX ouvert
• N: Taille du tableau (nombre des variable
Déclaration : IloNumArray VALX(env, N);
6. Variables et structures propres au modèle
Tableaux des solutions
typedef IloArray<IloNumArray2> IloNumArray3;
IloNumVarArray3: tableau de valeurs des variables de décision à trois indices
Remarque : On peut définir des types de tableaux de valeurs à 3, 4, 5, …
dimensions. Il suffit de procéder avec la même manière qu’à trois indices.
La dimension 2 est prédéfinie pour les tableau à valeurs.
6. Variables et structures propres au modèle
Personnalisation des noms des variables
7. Création du modèle
Déclaration du modèle
Obligatoire pour construire le modèle
7. Création du modèle
Principe: Pareil pour la fonction objectif et les
contraintes (sauf pour (3))
(1) Déclaration d’une expressionIloExpr NOM(env);
(2) Construction de l’expression Concaténation des multiplications des données par les
variables de décision: NOM+=X[i]*a[i]
(3) Ajout de l’expression au modèlePour le FO: model.add(IloMaximize(env, NOM));
Pour les conbtraintes: model.add(NOM <= CTE);
(4) Ecriture du fichier ".lp"IloCplex cplex (model);
cplex.exportModel("ksp.lp");