[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