Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  CPLEX concert technolgy versus command line

    Posted 08/11/10 12:19 PM

    Originally posted by: ThomasGh


    Dear all,

    We are using the concert technology API for optimizing some MIQP problems.
    For some input we have CPLEX Error 1256 Singular basis.

    Reading the primal.sav file and exactly the same parameters in the CPLEX Interactive Console we do find an optimal solution.

    The version of CPLEX used is 11.1.

    Does anyone have an idea how this can happen?

    Many thanks,
    Thomas
    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: CPLEX concert technolgy versus command line

    Posted 08/16/10 12:27 PM

    Originally posted by: SystemAdmin


    What happens if you do importModel() and then solve() immediately in Concert? Does this minimal program exhibit the same strange behavior:
    IloEnv env;
    IloModel model(env);
    IloCplex cplex(model);
    cplex.importModel(model, "savfile.sav");
    cplex.solve();
    

    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: CPLEX concert technolgy versus command line

    Posted 08/19/10 11:54 AM

    Originally posted by: ThomasGh


    Dear Daniel,

    Thanks for your answers.
    When in concert we read the same parameters("primal.prm"), import the model("primal.sav") and solve just as written below:

    IloCplex cplex = new IloCplex();

    cplex.readParam(args[1]);
    cplex.importModel(args[0]);
    cplex.solve();

    we do have an optimal solution, just as in the CPLEX interactive console (CPLEX 11.1 32bits).

    This is indeed a strange behaviour, because in our application the same model is solved with the same parameters and returns a CPLEX Error 1256 singular basis. (the export model is done just before calling the solve)

    Many thanks for your help.

    Thomas
    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: CPLEX concert technolgy versus command line

    Posted 08/20/10 04:12 AM

    Originally posted by: SystemAdmin


    So the question is what is the difference between the model in memory and the model exported to the .sav file. Is your parameter file exported at the same place as the model?
    Would it be an option to switch to CPLEX 12.2 (which is free for academics) and see if the issue still persists?
    #CPLEXOptimizers
    #DecisionOptimization


  • 5.  Re: CPLEX concert technolgy versus command line

    Posted 08/20/10 04:45 AM

    Originally posted by: ThomasGh


    Dear Daniel,

    How can we verify the difference between the model in memory and the model exported in the .sav file, if there is any?
    Do you have any idea how to check that?
    Our parameter file is an input configuration file, so there is no export of this file.
    Unfortunately we are not acadamics and so it would be difficult at to moment to switch to CPLEX 12.2.

    Thanks in advance,
    Thomas
    #CPLEXOptimizers
    #DecisionOptimization


  • 6.  Re: CPLEX concert technolgy versus command line

    Posted 08/23/10 02:05 AM

    Originally posted by: SystemAdmin


    I don't know of any way to do this :-(
    Do you happen to use callbacks in your Concert application?
    Did you export parameters right before the offending solve() in Concert to make sure that only the intended parameters are set?
    Did you compare the CPLEX output of the Concert application and the interactive? Do they give any clue? Can you post the log files or send them to daniel(dot)junglas(at)de(dot)ibm(dot)com. Maybe we can figure out what is going on from the log files.
    #CPLEXOptimizers
    #DecisionOptimization


  • 7.  Re: CPLEX concert technolgy versus command line

    Posted 08/23/10 10:53 AM

    Originally posted by: SystemAdmin


    > ThomasGh wrote:
    >
    > How can we verify the difference between the model in memory and the model exported in the .sav file, if there is any?

    It would be a bit tedious, but you could read the .sav file back in as a new model, run an iterator over the new model to extract all coefficients, and calculate their absolute difference with the original coefficients (either stored somewhere, reconstructed, or obtained by iterating over the original model). That would give you a measure of rounding/truncation errors. I don't know if an iterator can be relied on to tell you whether the order in which CPLEX sees constraints/variables was preserved.

    /Paul

    Mathematicians are like Frenchmen: whenever you say something to them, they translate it into their own language, and at once it is something entirely different. (Goethe)
    #CPLEXOptimizers
    #DecisionOptimization