Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  question on precision for ILOFLOAT

    Posted 02/10/10 02:14 PM

    Originally posted by: SystemAdmin


    Dear colleagues,
    I have an issue concerning CPLEX precision in number representation (I work with Concert Library, C++). Basically, the question is: Which is the smallest positive number than can be represented with a variable of type ILOFLOAT? I mean, does CPLEX works with them as floats or as doubles? Is there something better than ILOFLOAT?

    Now, more details: I have a linear model where I work with probabilities and products of these probabilities (products of two, three,..., up to let's say 30 of them). This probabilities are of the order of 0.05. My concern comes from the fact that, after having solved the model, I get the solution with 30 decimal figures, but from the 12 on, they are zero (that is, I have variables with value 0 where I know it must 10^-12). On the other hand, when I compute products with doubles (not in a model, just C++), I have no problem in getting accurately values of the order of 10^-90.

    I do not know if I have explained myself clearly enough. Thank you for any insight in this question.

    Kind regards,
    Sergio.

    PS: Transforming the probabilities with logarithms/exponentials is something out of the question because it would break the linearity of my model.
    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: question on precision for ILOFLOAT

    Posted 02/10/10 02:56 PM

    Originally posted by: SystemAdmin


    Unfortunately, you cannot expect such a precision from an LP solver that is based on floating point arithmetic like CPLEX. You can only expect correct results up to some feasibility tolerance. In CPLEX, this is 1e-6 by default, and you can adjust the parameter down to 1e-9. But below this threshold, the results will be completely random.

    If you really need an LP solver of such a high accuracy, then you need to use an exact arithmetic code, which is currently under development in the math programming community. For LPs, there is QSOptEx (mainly developed by Daniel Espinoza). An exact mixed integer programming solver is currently developed by Kati Wolter on the basis of SCIP (but this will probably take some more time to be in a reasonably useful state).

    Could you please explain your problem and your model in a bit more detail? Maybe, there is an alternative model that does not require such a high precision in floating point calculations.
    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: question on precision for ILOFLOAT

    Posted 02/18/10 12:40 PM

    Originally posted by: SystemAdmin


    Thank you for the explanation, Tobias.

    I guess it is "EpRHS" the parameter you mean, isn't it?

    My model is already a linearization of a polynomial Location model. Therefore, the structure of my constraints allows almost no freedom for "reshaping" them.

    What makes me feel uneasy is that CPLEX gives the same value for two different solutions (two different selections of locations) with different real values. Of course, the absolute difference is small (e.g., 0.0322911 and 0.0322880), but, although I would like to minimize the presence of this nuisance, it seems that this is the farthest CPLEX can go.
    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: question on precision for ILOFLOAT

    Posted 02/19/10 05:23 AM

    Originally posted by: SystemAdmin


    Yes, I was referring to the EpRHS parameter, which defines the feasibility tolerance.
    #CPLEXOptimizers
    #DecisionOptimization