IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Cplex sous C++ Builder


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Inscrit en
    Mars 2007
    Messages
    148
    D�tails du profil
    Informations personnelles :
    �ge : 40

    Informations forums :
    Inscription : Mars 2007
    Messages : 148
    Par d�faut Cplex sous C++ Builder
    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.

  2. #2
    Membre �prouv� Avatar de uriotcea
    Homme Profil pro
    Ing�nieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par d�faut
    Tu pourais indiquer tes messages d'erreurs, ca pourait aider.

  3. #3
    Membre confirm�
    Inscrit en
    Mars 2007
    Messages
    148
    D�tails du profil
    Informations personnelles :
    �ge : 40

    Informations forums :
    Inscription : Mars 2007
    Messages : 148
    Par d�faut
    Salut,

    Voici les messages d'erreurs que j'ai :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    [C++ Erreur] Unit1.cpp(5): E2209 Impossible d'ouvrir le fichier include 'ilsolver/ilcint.h'
    [C++ Erreur] Unit1.cpp(11): E2209 Impossible d'ouvrir le fichier include 'ilopl/oplcomponent.h'
    [C++ Erreur] Unit1.cpp(12): E2209 Impossible d'ouvrir le fichier include 'ilopl/oplerror.h'
    Je reconnais que je ne sais pas trop utiliser les include, mais j'ai repris l'exemple qui existe dans le Help !!! Par cons�quent, il doit �tre juste.

    J'esp�re que cela vous permet de mieux voir ou se situe l'erreur.

    Merci.

  4. #4
    Membre �prouv� Avatar de uriotcea
    Homme Profil pro
    Ing�nieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par d�faut
    C'est plutot trivial comme erreur,
    Il ne trouve pas les fichiers d'include que tu as precifi�s.
    Tu as 2 choix:
    - Tu mets le nom sans chemin et dans les options de ton projet tu sp�cifie les chemins ou il faut aller chercher les includes
    - Tu mets le chemin complet de tes *.h

  5. #5
    Membre confirm�
    Inscrit en
    Mars 2007
    Messages
    148
    D�tails du profil
    Informations personnelles :
    �ge : 40

    Informations forums :
    Inscription : Mars 2007
    Messages : 148
    Par d�faut
    Bonsoir ou plut�t bonjour,

    J'ai essay� ce que vous m'aviez propos�, et effectivement c'est �a la solution, mais j'ai un autre probl�me maintenant, je ne retrouve pas tous les include demand�s !!! Par exemple :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    [C++ Erreur] oplcomponent.h(16): E2209 Impossible d'ouvrir le fichier include 'ilsolver/ilcint.h'
    [C++ Erreur] oplcomponent.h(19): E2209 Impossible d'ouvrir le fichier include 'ilplan/linear.h'
    Je ne retrouve m�me pas les fichiers ilsolver et ilplan !!! Comment faire dans ce cas ???

    Merci de me r�pondre.

  6. #6
    Membre �prouv� Avatar de uriotcea
    Homme Profil pro
    Ing�nieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par d�faut
    ilsorver et ilplan ne sont pas des fichiers mais des chemin relatif.
    Ceux-ci signifie que tes includes contiennent des chemins relatifs et donc qu'il fallait choisir la solution N�1
    Est-ce bien ce que tu as fait?

Discussions similaires

  1. [PowerBuilder] Client Telnet sous Power builder 10
    Par ppronzola dans le forum Powerbuilder
    R�ponses: 1
    Dernier message: 30/01/2006, 14h22
  2. application style xp sous c++ builder
    Par sofiane44 dans le forum C++Builder
    R�ponses: 1
    Dernier message: 08/01/2006, 15h17
  3. Debug de dll sous C++ Builder
    Par N�grier dans le forum C++Builder
    R�ponses: 5
    Dernier message: 26/09/2005, 19h12
  4. Comment on connecte un modem sous C++ Builder?
    Par Snipeyes dans le forum C++Builder
    R�ponses: 2
    Dernier message: 28/01/2005, 20h21
  5. DLL sous C++ builder 6
    Par ovdz dans le forum C++Builder
    R�ponses: 3
    Dernier message: 05/08/2003, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo