[Scip] best solution is not feasible in original problem

Stefan Vigerske stefan at math.hu-berlin.de
Thu May 29 20:57:11 CEST 2014


Hi,

setting the feastol that small is not supported.
There is another tolerance (numerics/epsilon) that is (silently) assumed 
to be smaller than feastol, and by default 1e-9. Numbers smaller than 
epsilon are treated as 0.
Further, a feastol of 1e-10 while still having values like 1e4 in your 
problem might give issues when having to use double precision.
The limited precision of the floating point numbers is also the reason 
why -0.166666666666667 ends up as -0.16666666666666699048.

Bottomline: Don't set feastol too small.

Stefan

On 05/27/2014 10:32 PM, Ramón Casero Cañas wrote:
> Dear all,
>
> Sorry to bother you again, but a couple results more that I don't
> understand.
>
> With the attached model, in scip-3.1.0.linux.x86_64.gnu.opt.spx with
> parameters
>
> set limits time 300
> set limits solutions 1
> set numerics feastol 1.0037e-10
>
> I get a solution within 2.4 sec, but with the message
>
>    2.4s|     1 |     0 | 32458 |     - |2458k|   0 |   0 | 139 | 205 | 139
> |1703 |1669 |   0 |   0 |-2.225883e+04 |-2.049845e+04 |   8.59%
>    2.4s|     1 |     1 | 32458 |     - |2458k|   0 |   0 | 139 | 205 | 139
> |1703 |1669 |   0 |   0 |-2.225883e+04 |-2.049845e+04 |   8.59%
>
> SCIP Status        : solving was interrupted [solution limit reached]
> Solving Time (sec) : 2.41
> Solving Nodes      : 1
> Primal Bound       : -2.04984451262525e+04 (1 solutions)
> Dual Bound         : -2.22588342256900e+04
> Gap                : 8.59 %
>    [linear] <c83>:  +0.0781485688398752<x91>[C] +0.0698489436914697<y91>[C]
> +0.0680134372629892<z91>[C] >= 2.50934406412487e-10;
> violation: left hand side is violated by 2.50934366513847e-10
> best solution is not feasible in original problem
>
>
> This is not the same case as with the feasibility tolerance from yesterday,
> is it? If I write the solution to a file, it comes out as a perfectly valid
> solution.
>
>
> ************************
>
> The second issue is that if I look at a constraint, e.g. c89, in the PIP
> file that I'm providing,
>
> c89: -0.166666666666667 x88 y91 z41 + 0.166666666666667 x91 y88 z41 +
> 0.166666666666667 x88 y41 z91 + -0.166666666666667 x41 y88 z91 +
> -0.166666666666667 x91 y41 z88 + 0.166666666666667 x41 y91 z88 >=
> 2.50934406412487e-10
>
> and after reading it in SCIP, using display problem, I see
>
>    [nonlinear] <c89>: ( -0.16666666666666699048 * <x88> * <y91> * <z41>
> +0.16666666666666699048 * <x91> * <y88> * <z41> +0.16666666666666699048 *
> <x88> * <y41> * <z91> -0.16666666666666699048 * <x41> * <y88> * <z91>
> -0.16666666666666699048 * <x91> * <y41> * <z88> +0.16666666666666699048 *
> <x41> * <y91> * <z88>) >= 2.50934406412487e-10;
>
>
> I thought that if I provide the scalar
>
> -0.166666666666667
>
> and the internal representation has more precision, I'd get
>
> -0.16666666666666700000
>
> instead of
>
> -0.16666666666666699048
>
> Is this also to be expected?
>
> Best regards,
>
> Ramon.
>
>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> http://listserv.zib.de/mailman/listinfo/scip
>



More information about the Scip mailing list