Bonsoir � tous,

Voil�, j'ai un m�ga probl�me � r�soudre et je ne sais vraiment pas comment l'aborder. Je vais tenter de vous expliquer clairement :

Je dois r�soudre un programme lin�aire en utilisant Cplex, mais l'interface est sous C++ Builder !!! En cherchant dans le Help de Cplex, j'ai bien trouv� quelque chose, mais quand je l'essaye dans C++ Builder, �a bloque . Bon, dans le Help, ils nous demandent de rajouter la biblioth�que OPL server, que j'ai fait sans soucis. Ils exposent le code suivant pour un exemple donn� :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 
#include <ilsolver/ilcint.h>
#ifdef ILUSESTL
#include <iostream>
#else
#include <iostream.h>
#endif
#include <ilopl/oplcomponent.h>
#include <ilopl/oplerror.h>
 
ILCSTLBEGIN
 
class MyReporter : public OPLerrorReporter {
   void notifySyntaxError(const OPLsyntaxError& err){
      cout << "OPL syntax error near line " 
           << err.getLine() << " : " 
           << err.getMessage() << endl;
   }
   void notifySemanticError(const OPLsemanticError& err){
      cout << "OPL semantic error near line " 
           << err.getLine() << " : " 
           << err.getMessage() << endl;
   }
   void notifyRuntimeError(const OPLruntimeError& err){
      cout << "OPL runtime error near line " 
           << err.getLine() << " : " 
           << err.getMessage() << endl;      
   }
   void notifyInternalError(const OPLinternalError& err){
     cout << "OPL internal error : " 
           << err.getMessage() << endl;
   }
};
int main(){
   int status = 0;
   OPLsolver solver;
   MyReporter reporter;
   solver.setErrorReporter(&reporter);
 
   try{
     solver.loadInterpretedModelFileAndDataFile
                                   ("d:\ILOG\OPLSl37\opl\scheduler\bridge.mod",
                                    "d:\ILOG\OPLSl37\opl\scheduler\bridge.dat", 1);
       if(solver.solve()){
         int obj = solver.getObjectiveValueInt();
         double time = solver.getTime();
         cout << "\nObjective: " << obj << endl;
         cout << "Time: " << time << endl << endl;
         OPLenum task = solver.getEnum("Task");
         int nbTasks = task.getCard();
         OPLarray activities = solver.getArray("a");
         OPLenumIterator ite = task.getIterator();
         for(; ite.ok() == 1; ite.next()) {
            OPLenumValue c = ite.get();
            OPLactivity act = activities.getActivity(c);
            cout << "Activity '" << c.getName() << "'";
            cout << " starts at " << act.getStart();
            cout << " with duration " << act.getDuration() << endl;
       }
      }else {
         cout << "No solution found" << endl;
       }
   }
   catch(...){
      cout << "An error occurred" << endl;
      status = -1;
   }
 
   solver.close();
   return status;
}
Il faut savoir qu'en Cplex, on a un fichier .mod pour �crire notre mod�le math�matique et un fichier .dat pour les donn�es du probl�me. Dans cet exemple on veut r�soudre "brige" � partir de C++ Builder. Ce code est en C++. J'ai fait un exemple avec juste un bouton et un m�mo pour afficher le r�sultat.

La question que je me pose est comment je dois traduire ce code afin que je puisse l'utiliser sous C++ Builder ??? Comment r�soudre le probl�me des include (car j'ai des erreurs au tout d�but, alors que j'ai rajout� la biblioth�que demand�e) ???

J'ai besoin du r�sultat que me donne Cplex pour continuer ma programmation !!!

J'esp�re que j'�tais assez claire pour que vous puissiez m'aider.

Merci.