SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
IBM ILOG-CPLEX
Concert Technology for C++ users
with Microsoft Visual Studio 2010
Med,bouhamed@live,fr
Plan
med.bouhamed@live.fr
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
med.bouhamed@live.fr
3
Instances
Lire 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 CPLEX
Récupération
de la solution
2. Installation de M.V.S. 2010 & CPLEX 12.5
med.bouhamed@live.fr
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
med.bouhamed@live.fr
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
med.bouhamed@live.fr
(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
med.bouhamed@live.fr
(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
med.bouhamed@live.fr
(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
med.bouhamed@live.fr
(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
med.bouhamed@live.fr
(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
med.bouhamed@live.fr
(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
med.bouhamed@live.fr
(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
med.bouhamed@live.fr
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
med.bouhamed@live.fr
14
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
med.bouhamed@live.fr
15
(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
med.bouhamed@live.fr
16
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
med.bouhamed@live.fr
17
(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
med.bouhamed@live.fr
18
(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
med.bouhamed@live.fr
19
(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
med.bouhamed@live.fr
20
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
med.bouhamed@live.fr
21
(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
med.bouhamed@live.fr
22
(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
med.bouhamed@live.fr
23
Knapsack Problem with Setup KSP
5. Lecture de l’instance du problème
med.bouhamed@live.fr
24
Knapsack Problem with Setup KSP
5. Lecture de l’instance du problème
med.bouhamed@live.fr
25
Knapsack Problem with Setup KSP
Données
Variablesde
décision
5. Lecture de l’instance du problème
med.bouhamed@live.fr
26
Modèle du KPS
5. Lecture de l’instance du problème
med.bouhamed@live.fr
27
Instance du KPS
test3x10-SC(0).txt
test3x10-SC(1).txt
..
..
..
test3x10-SC(n).txt
5. Lecture de l’instance du problème
med.bouhamed@live.fr
28
Structures de données pour les données du KPS
5. Lecture de l’instance du problème
med.bouhamed@live.fr
29
Lecture d’une instance KPS
5. Lecture de l’instance du problème
med.bouhamed@live.fr
30
Lecture d’une instance KPS
5. Lecture de l’instance du problème
med.bouhamed@live.fr
31
Lecture d’une instance KPS
6. Variables et structures propres au modèle
med.bouhamed@live.fr
32
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
med.bouhamed@live.fr
33
Ouverture de l’environnement CPLEX
Obligatoire pour utiliser les
fonctionnalités CPLEX!
6. Variables et structures propres au modèle
med.bouhamed@live.fr
34
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
med.bouhamed@live.fr
35
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
med.bouhamed@live.fr
36
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
med.bouhamed@live.fr
37
Personnalisation des noms des variables
7. Création du modèle
med.bouhamed@live.fr
38
Déclaration du modèle
Obligatoire pour construire le modèle
7. Création du modèle
med.bouhamed@live.fr
39
Principe: Pareil pour la fonction objectif et les
contraintes (sauf pour (3))
(1) Déclaration d’une expression
IloExpr 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èle
Pour 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");
8. Résolution du modèle avec CPLEX 12.5
med.bouhamed@live.fr
40
9. Récupération de la solution
med.bouhamed@live.fr
41
FIN
med.bouhamed@live.fr

Contenu connexe

Tendances

U M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetU M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetAmine Chkr
 
cours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéecours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéeMissaoui Abdelbaki
 
Réseaux avec NetLogo
Réseaux avec NetLogoRéseaux avec NetLogo
Réseaux avec NetLogoAlvaro Gil
 
Chp6 - De UML vers C++
Chp6 - De UML vers C++Chp6 - De UML vers C++
Chp6 - De UML vers C++Lilia Sfaxi
 
Transformation M2M avec ATL
Transformation M2M avec ATL Transformation M2M avec ATL
Transformation M2M avec ATL Halima Bouabdelli
 
Projet1 mastermind 2010-2011
Projet1 mastermind 2010-2011Projet1 mastermind 2010-2011
Projet1 mastermind 2010-2011nadi noura
 
Lattice Boltzmann sur architecture multicoeurs vectorielle - Une approche de ...
Lattice Boltzmann sur architecture multicoeurs vectorielle - Une approche de ...Lattice Boltzmann sur architecture multicoeurs vectorielle - Une approche de ...
Lattice Boltzmann sur architecture multicoeurs vectorielle - Une approche de ...Joel Falcou
 
Introduction rapide à 'objet et à UML
Introduction rapide à 'objet et  à UML Introduction rapide à 'objet et  à UML
Introduction rapide à 'objet et à UML Mireille Blay-Fornarino
 
Transformation de carrés en cercles avec Atlas Transformation Language(ATL)
Transformation de carrés en cercles avec Atlas Transformation Language(ATL)Transformation de carrés en cercles avec Atlas Transformation Language(ATL)
Transformation de carrés en cercles avec Atlas Transformation Language(ATL)Amira Hakim
 
Partie 6: Qualité du Logiciel — Programmation orientée objet en C++
Partie 6: Qualité du Logiciel — Programmation orientée objet en C++Partie 6: Qualité du Logiciel — Programmation orientée objet en C++
Partie 6: Qualité du Logiciel — Programmation orientée objet en C++Fabio Hernandez
 
Programmation graphique avancée en java
Programmation graphique avancée en javaProgrammation graphique avancée en java
Programmation graphique avancée en javaEzéquiel Tsagué
 

Tendances (19)

Fascicule tp programmation c
Fascicule tp programmation cFascicule tp programmation c
Fascicule tp programmation c
 
U M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetU M L Analyse Et Conception Objet
U M L Analyse Et Conception Objet
 
cours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéecours algorithme et structure de données 1er année
cours algorithme et structure de données 1er année
 
Réseaux avec NetLogo
Réseaux avec NetLogoRéseaux avec NetLogo
Réseaux avec NetLogo
 
Chp6 - De UML vers C++
Chp6 - De UML vers C++Chp6 - De UML vers C++
Chp6 - De UML vers C++
 
Transformation M2M avec ATL
Transformation M2M avec ATL Transformation M2M avec ATL
Transformation M2M avec ATL
 
Projet1 mastermind 2010-2011
Projet1 mastermind 2010-2011Projet1 mastermind 2010-2011
Projet1 mastermind 2010-2011
 
Cours de c
Cours de cCours de c
Cours de c
 
Tp1 - Eclipse
Tp1 - EclipseTp1 - Eclipse
Tp1 - Eclipse
 
Asd
AsdAsd
Asd
 
Algorithme
AlgorithmeAlgorithme
Algorithme
 
Lattice Boltzmann sur architecture multicoeurs vectorielle - Une approche de ...
Lattice Boltzmann sur architecture multicoeurs vectorielle - Une approche de ...Lattice Boltzmann sur architecture multicoeurs vectorielle - Une approche de ...
Lattice Boltzmann sur architecture multicoeurs vectorielle - Une approche de ...
 
Introduction rapide à 'objet et à UML
Introduction rapide à 'objet et  à UML Introduction rapide à 'objet et  à UML
Introduction rapide à 'objet et à UML
 
Tp3 - UML
Tp3 - UMLTp3 - UML
Tp3 - UML
 
Transformation de carrés en cercles avec Atlas Transformation Language(ATL)
Transformation de carrés en cercles avec Atlas Transformation Language(ATL)Transformation de carrés en cercles avec Atlas Transformation Language(ATL)
Transformation de carrés en cercles avec Atlas Transformation Language(ATL)
 
Partie 6: Qualité du Logiciel — Programmation orientée objet en C++
Partie 6: Qualité du Logiciel — Programmation orientée objet en C++Partie 6: Qualité du Logiciel — Programmation orientée objet en C++
Partie 6: Qualité du Logiciel — Programmation orientée objet en C++
 
040401+seminar+gelo+diro.ppt
040401+seminar+gelo+diro.ppt040401+seminar+gelo+diro.ppt
040401+seminar+gelo+diro.ppt
 
Langage C
Langage CLangage C
Langage C
 
Programmation graphique avancée en java
Programmation graphique avancée en javaProgrammation graphique avancée en java
Programmation graphique avancée en java
 

Similaire à Slides ceplex

Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 
Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5Laurent BUNIET
 
eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpelLilia Sfaxi
 
Vbisigk
VbisigkVbisigk
VbisigkISIG
 
mis
mismis
misISIG
 
Visual studio
Visual studioVisual studio
Visual studioISIG
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la rechercheJohan Moreau
 
Crystal Report avec Microsoft Visual Studio 2010
Crystal Report avec Microsoft Visual Studio 2010Crystal Report avec Microsoft Visual Studio 2010
Crystal Report avec Microsoft Visual Studio 2010Wiki Info Systeme
 
Examen de passage TDI - Synthèse V1 - 2015
Examen de passage TDI - Synthèse V1 - 2015Examen de passage TDI - Synthèse V1 - 2015
Examen de passage TDI - Synthèse V1 - 2015exelibnet
 
Développement de plug in sous eclipse
Développement de plug in sous eclipseDéveloppement de plug in sous eclipse
Développement de plug in sous eclipseISIG
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 
TP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / TunisieTP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / TunisieMariem ZAOUALI
 
Mat lab1
Mat lab1Mat lab1
Mat lab1fouadDD
 
Cours de C++, en français, 2002 - Cours 3.1
Cours de C++, en français, 2002 - Cours 3.1Cours de C++, en français, 2002 - Cours 3.1
Cours de C++, en français, 2002 - Cours 3.1Laurent BUNIET
 
Initiation au langage MySQL
Initiation au langage MySQLInitiation au langage MySQL
Initiation au langage MySQLmohamednacim
 
Cours de C++, en français, 2002 - Cours 2.3
Cours de C++, en français, 2002 - Cours 2.3Cours de C++, en français, 2002 - Cours 2.3
Cours de C++, en français, 2002 - Cours 2.3Laurent BUNIET
 
Cours de C++, en français, 2002 - Cours 2.5
Cours de C++, en français, 2002 - Cours 2.5Cours de C++, en français, 2002 - Cours 2.5
Cours de C++, en français, 2002 - Cours 2.5Laurent BUNIET
 

Similaire à Slides ceplex (20)

Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 
Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5Cours de C++, en français, 2002 - Cours 3.5
Cours de C++, en français, 2002 - Cours 3.5
 
eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpel
 
Vbisigk
VbisigkVbisigk
Vbisigk
 
mis
mismis
mis
 
Visual studio
Visual studioVisual studio
Visual studio
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la recherche
 
Crystal Report avec Microsoft Visual Studio 2010
Crystal Report avec Microsoft Visual Studio 2010Crystal Report avec Microsoft Visual Studio 2010
Crystal Report avec Microsoft Visual Studio 2010
 
Examen de passage TDI - Synthèse V1 - 2015
Examen de passage TDI - Synthèse V1 - 2015Examen de passage TDI - Synthèse V1 - 2015
Examen de passage TDI - Synthèse V1 - 2015
 
Développement de plug in sous eclipse
Développement de plug in sous eclipseDéveloppement de plug in sous eclipse
Développement de plug in sous eclipse
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 
TP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / TunisieTP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / Tunisie
 
Cours de Matlab
Cours de MatlabCours de Matlab
Cours de Matlab
 
Mat lab1
Mat lab1Mat lab1
Mat lab1
 
Cours de C++, en français, 2002 - Cours 3.1
Cours de C++, en français, 2002 - Cours 3.1Cours de C++, en français, 2002 - Cours 3.1
Cours de C++, en français, 2002 - Cours 3.1
 
Initiation au langage MySQL
Initiation au langage MySQLInitiation au langage MySQL
Initiation au langage MySQL
 
Cours de C++, en français, 2002 - Cours 2.3
Cours de C++, en français, 2002 - Cours 2.3Cours de C++, en français, 2002 - Cours 2.3
Cours de C++, en français, 2002 - Cours 2.3
 
Cours de C++, en français, 2002 - Cours 2.5
Cours de C++, en français, 2002 - Cours 2.5Cours de C++, en français, 2002 - Cours 2.5
Cours de C++, en français, 2002 - Cours 2.5
 
Doo
DooDoo
Doo
 

Plus de TECOS

Bouhamed vuejs-meetup-tecos
Bouhamed vuejs-meetup-tecosBouhamed vuejs-meetup-tecos
Bouhamed vuejs-meetup-tecosTECOS
 
D3 js-last
D3 js-lastD3 js-last
D3 js-lastTECOS
 
Summer internship
Summer internshipSummer internship
Summer internshipTECOS
 
Mohamed bouhamed - ccna2
Mohamed bouhamed  - ccna2Mohamed bouhamed  - ccna2
Mohamed bouhamed - ccna2TECOS
 
Mohamed bouhamed - ccna1
Mohamed bouhamed  -  ccna1Mohamed bouhamed  -  ccna1
Mohamed bouhamed - ccna1TECOS
 
Mobile certified
Mobile certifiedMobile certified
Mobile certifiedTECOS
 
Analytics certified
Analytics certifiedAnalytics certified
Analytics certifiedTECOS
 
Ad words certified
Ad words certifiedAd words certified
Ad words certifiedTECOS
 
Télémétrie d’openstack
Télémétrie d’openstackTélémétrie d’openstack
Télémétrie d’openstackTECOS
 
cloudu certification
cloudu certificationcloudu certification
cloudu certificationTECOS
 
Internship report
Internship reportInternship report
Internship reportTECOS
 
Gsm presntation
Gsm presntationGsm presntation
Gsm presntationTECOS
 
Td gsm iit
Td gsm iitTd gsm iit
Td gsm iitTECOS
 
Complément réseaux informatiques
Complément réseaux informatiquesComplément réseaux informatiques
Complément réseaux informatiquesTECOS
 
Cours réseauxs gsm
Cours réseauxs gsmCours réseauxs gsm
Cours réseauxs gsmTECOS
 
Cours sécurité 2_asr
Cours sécurité 2_asrCours sécurité 2_asr
Cours sécurité 2_asrTECOS
 
chapitre 1
chapitre 1chapitre 1
chapitre 1TECOS
 
Serveur web iit_asr_p2i
Serveur web iit_asr_p2iServeur web iit_asr_p2i
Serveur web iit_asr_p2iTECOS
 
Examen
Examen Examen
Examen TECOS
 

Plus de TECOS (20)

Bouhamed vuejs-meetup-tecos
Bouhamed vuejs-meetup-tecosBouhamed vuejs-meetup-tecos
Bouhamed vuejs-meetup-tecos
 
D3 js-last
D3 js-lastD3 js-last
D3 js-last
 
Mta
MtaMta
Mta
 
Summer internship
Summer internshipSummer internship
Summer internship
 
Mohamed bouhamed - ccna2
Mohamed bouhamed  - ccna2Mohamed bouhamed  - ccna2
Mohamed bouhamed - ccna2
 
Mohamed bouhamed - ccna1
Mohamed bouhamed  -  ccna1Mohamed bouhamed  -  ccna1
Mohamed bouhamed - ccna1
 
Mobile certified
Mobile certifiedMobile certified
Mobile certified
 
Analytics certified
Analytics certifiedAnalytics certified
Analytics certified
 
Ad words certified
Ad words certifiedAd words certified
Ad words certified
 
Télémétrie d’openstack
Télémétrie d’openstackTélémétrie d’openstack
Télémétrie d’openstack
 
cloudu certification
cloudu certificationcloudu certification
cloudu certification
 
Internship report
Internship reportInternship report
Internship report
 
Gsm presntation
Gsm presntationGsm presntation
Gsm presntation
 
Td gsm iit
Td gsm iitTd gsm iit
Td gsm iit
 
Complément réseaux informatiques
Complément réseaux informatiquesComplément réseaux informatiques
Complément réseaux informatiques
 
Cours réseauxs gsm
Cours réseauxs gsmCours réseauxs gsm
Cours réseauxs gsm
 
Cours sécurité 2_asr
Cours sécurité 2_asrCours sécurité 2_asr
Cours sécurité 2_asr
 
chapitre 1
chapitre 1chapitre 1
chapitre 1
 
Serveur web iit_asr_p2i
Serveur web iit_asr_p2iServeur web iit_asr_p2i
Serveur web iit_asr_p2i
 
Examen
Examen Examen
Examen
 

Slides ceplex

  • 1. IBM ILOG-CPLEX Concert Technology for C++ users with Microsoft Visual Studio 2010 Med,bouhamed@live,fr
  • 2. Plan med.bouhamed@live.fr 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
  • 3. 1. Fonctionnement de C++  CPLEX 12.5 med.bouhamed@live.fr 3 Instances Lire 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 CPLEX Récupération de la solution
  • 4. 2. Installation de M.V.S. 2010 & CPLEX 12.5 med.bouhamed@live.fr Installation de Microsoft Visual 2010 (1) Double cliquer sur autorun.exe (2) Appuyer sur installer 4
  • 5. 2. Installation de M.V.S. 2010 & CPLEX 12.5 med.bouhamed@live.fr 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
  • 6. 3. Création d’un projet C++ sous M.V.S. 2010 med.bouhamed@live.fr (1) Lancer M.V.S. 2010 ensuite aller au menu Fichier  Nouveau  Projet 6 Création d’un projet
  • 7. 3. Création d’un projet C++ sous M.V.S. 2010 med.bouhamed@live.fr (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
  • 8. 3. Création d’un projet C++ sous M.V.S. 2010 med.bouhamed@live.fr (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
  • 9. 3. Création d’un projet C++ sous M.V.S. 2010 med.bouhamed@live.fr (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++
  • 10. 3. Création d’un projet C++ sous M.V.S. 2010 med.bouhamed@live.fr (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++
  • 11. 3. Création d’un projet C++ sous M.V.S. 2010 med.bouhamed@live.fr (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
  • 12. 3. Création d’un projet C++ sous M.V.S. 2010 med.bouhamed@live.fr (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)
  • 13. 3. Création d’un projet C++ sous M.V.S. 2010 med.bouhamed@live.fr 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
  • 14. 4. Paramétrage de CPLEX 12.5 sous M.V.S. 2010 med.bouhamed@live.fr 14 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
  • 15. 4. Paramétrage de CPLEX 12.5 sous M.V.S. 2010 med.bouhamed@live.fr 15 (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 »
  • 16. 4. Paramétrage de CPLEX 12.5 sous M.V.S. 2010 med.bouhamed@live.fr 16 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
  • 17. 4. Paramétrage de CPLEX 12.5 sous M.V.S. 2010 med.bouhamed@live.fr 17 (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
  • 18. 4. Paramétrage de CPLEX 12.5 sous M.V.S. 2010 med.bouhamed@live.fr 18 (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
  • 19. 4. Paramétrage de CPLEX 12.5 sous M.V.S. 2010 med.bouhamed@live.fr 19 (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 »
  • 20. 4. Paramétrage de CPLEX 12.5 sous M.V.S. 2010 med.bouhamed@live.fr 20 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
  • 21. 4. Paramétrage de CPLEX 12.5 sous M.V.S. 2010 med.bouhamed@live.fr 21 (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)
  • 22. 4. Paramétrage de CPLEX 12.5 sous M.V.S. 2010 med.bouhamed@live.fr 22 (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
  • 23. 5. Lecture de l’instance du problème med.bouhamed@live.fr 23 Knapsack Problem with Setup KSP
  • 24. 5. Lecture de l’instance du problème med.bouhamed@live.fr 24 Knapsack Problem with Setup KSP
  • 25. 5. Lecture de l’instance du problème med.bouhamed@live.fr 25 Knapsack Problem with Setup KSP Données Variablesde décision
  • 26. 5. Lecture de l’instance du problème med.bouhamed@live.fr 26 Modèle du KPS
  • 27. 5. Lecture de l’instance du problème med.bouhamed@live.fr 27 Instance du KPS test3x10-SC(0).txt test3x10-SC(1).txt .. .. .. test3x10-SC(n).txt
  • 28. 5. Lecture de l’instance du problème med.bouhamed@live.fr 28 Structures de données pour les données du KPS
  • 29. 5. Lecture de l’instance du problème med.bouhamed@live.fr 29 Lecture d’une instance KPS
  • 30. 5. Lecture de l’instance du problème med.bouhamed@live.fr 30 Lecture d’une instance KPS
  • 31. 5. Lecture de l’instance du problème med.bouhamed@live.fr 31 Lecture d’une instance KPS
  • 32. 6. Variables et structures propres au modèle med.bouhamed@live.fr 32 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);
  • 33. 6. Variables et structures propres au modèle med.bouhamed@live.fr 33 Ouverture de l’environnement CPLEX Obligatoire pour utiliser les fonctionnalités CPLEX!
  • 34. 6. Variables et structures propres au modèle med.bouhamed@live.fr 34 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.
  • 35. 6. Variables et structures propres au modèle med.bouhamed@live.fr 35 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);
  • 36. 6. Variables et structures propres au modèle med.bouhamed@live.fr 36 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.
  • 37. 6. Variables et structures propres au modèle med.bouhamed@live.fr 37 Personnalisation des noms des variables
  • 38. 7. Création du modèle med.bouhamed@live.fr 38 Déclaration du modèle Obligatoire pour construire le modèle
  • 39. 7. Création du modèle med.bouhamed@live.fr 39 Principe: Pareil pour la fonction objectif et les contraintes (sauf pour (3)) (1) Déclaration d’une expression IloExpr 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èle Pour 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");
  • 40. 8. Résolution du modèle avec CPLEX 12.5 med.bouhamed@live.fr 40
  • 41. 9. Récupération de la solution med.bouhamed@live.fr 41