Slides ceplex

788 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
788
Sur SlideShare
0
Issues des intégrations
0
Intégrations
8
Actions
Partages
0
Téléchargements
29
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Slides ceplex

  1. 1. IBM ILOG-CPLEX Concert Technology for C++ users with Microsoft Visual Studio 2010 Med,bouhamed@live,fr
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 23. 5. Lecture de l’instance du problème med.bouhamed@live.fr 23 Knapsack Problem with Setup KSP
  24. 24. 5. Lecture de l’instance du problème med.bouhamed@live.fr 24 Knapsack Problem with Setup KSP
  25. 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. 26. 5. Lecture de l’instance du problème med.bouhamed@live.fr 26 Modèle du KPS
  27. 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. 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. 29. 5. Lecture de l’instance du problème med.bouhamed@live.fr 29 Lecture d’une instance KPS
  30. 30. 5. Lecture de l’instance du problème med.bouhamed@live.fr 30 Lecture d’une instance KPS
  31. 31. 5. Lecture de l’instance du problème med.bouhamed@live.fr 31 Lecture d’une instance KPS
  32. 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. 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. 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. 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. 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. 37. 6. Variables et structures propres au modèle med.bouhamed@live.fr 37 Personnalisation des noms des variables
  38. 38. 7. Création du modèle med.bouhamed@live.fr 38 Déclaration du modèle Obligatoire pour construire le modèle
  39. 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. 40. 8. Résolution du modèle avec CPLEX 12.5 med.bouhamed@live.fr 40
  41. 41. 9. Récupération de la solution med.bouhamed@live.fr 41
  42. 42. FIN med.bouhamed@live.fr

×