<div dir="ltr">Hi Gerald,<div><br></div><div>Thanks for the extra info. It's clearer now how it works.</div><div><br></div><div>Best regards,</div><div><br></div><div>Ramon.</div></div><div class="gmail_extra"><br><br>
<div class="gmail_quote">On 3 June 2014 10:42, Gerald Gamrath <span dir="ltr"><<a href="mailto:gamrath@zib.de" target="_blank">gamrath@zib.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Dear Ramón,<br>
<br>
also, the relative tolerance used for the feasibility check of a<br>
constraints works as follows. For ax <= b, you check that b - ax is<br>
smaller or equal to feastol * max(1,|b|). This means that the tolerance<br>
is always relative to the maximum of b and one, i.e., if |b| is smaller<br>
than 1 and b - ax <= feastol, the constraint is fulfilled.<br>
<br>
Therefore, I would recommend to rather scale your constraint such that<br>
it gets a larger right-hand side instead of changing the feasibility<br>
tolerance.<br>
<br>
Best,<br>
Gerald<br>
<div class="HOEnZb"><div class="h5"><br>
On 29.05.2014 20:57, Stefan Vigerske wrote:<br>
> Hi,<br>
><br>
> setting the feastol that small is not supported.<br>
> There is another tolerance (numerics/epsilon) that is (silently)<br>
> assumed to be smaller than feastol, and by default 1e-9. Numbers<br>
> smaller than epsilon are treated as 0.<br>
> Further, a feastol of 1e-10 while still having values like 1e4 in your<br>
> problem might give issues when having to use double precision.<br>
> The limited precision of the floating point numbers is also the reason<br>
> why -0.166666666666667 ends up as -0.16666666666666699048.<br>
><br>
> Bottomline: Don't set feastol too small.<br>
><br>
> Stefan<br>
><br>
> On 05/27/2014 10:32 PM, Ramón Casero Cañas wrote:<br>
>> Dear all,<br>
>><br>
>> Sorry to bother you again, but a couple results more that I don't<br>
>> understand.<br>
>><br>
>> With the attached model, in scip-3.1.0.linux.x86_64.gnu.opt.spx with<br>
>> parameters<br>
>><br>
>> set limits time 300<br>
>> set limits solutions 1<br>
>> set numerics feastol 1.0037e-10<br>
>><br>
>> I get a solution within 2.4 sec, but with the message<br>
>><br>
>>    2.4s|     1 |     0 | 32458 |     - |2458k|   0 |   0 | 139 | 205<br>
>> | 139<br>
>> |1703 |1669 |   0 |   0 |-2.225883e+04 |-2.049845e+04 |   8.59%<br>
>>    2.4s|     1 |     1 | 32458 |     - |2458k|   0 |   0 | 139 | 205<br>
>> | 139<br>
>> |1703 |1669 |   0 |   0 |-2.225883e+04 |-2.049845e+04 |   8.59%<br>
>><br>
>> SCIP Status        : solving was interrupted [solution limit reached]<br>
>> Solving Time (sec) : 2.41<br>
>> Solving Nodes      : 1<br>
>> Primal Bound       : -2.04984451262525e+04 (1 solutions)<br>
>> Dual Bound         : -2.22588342256900e+04<br>
>> Gap                : 8.59 %<br>
>>    [linear] <c83>:  +0.0781485688398752<x91>[C]<br>
>> +0.0698489436914697<y91>[C]<br>
>> +0.0680134372629892<z91>[C] >= 2.50934406412487e-10;<br>
>> violation: left hand side is violated by 2.50934366513847e-10<br>
>> best solution is not feasible in original problem<br>
>><br>
>><br>
>> This is not the same case as with the feasibility tolerance from<br>
>> yesterday,<br>
>> is it? If I write the solution to a file, it comes out as a perfectly<br>
>> valid<br>
>> solution.<br>
>><br>
>><br>
>> ************************<br>
>><br>
>> The second issue is that if I look at a constraint, e.g. c89, in the PIP<br>
>> file that I'm providing,<br>
>><br>
>> c89: -0.166666666666667 x88 y91 z41 + 0.166666666666667 x91 y88 z41 +<br>
>> 0.166666666666667 x88 y41 z91 + -0.166666666666667 x41 y88 z91 +<br>
>> -0.166666666666667 x91 y41 z88 + 0.166666666666667 x41 y91 z88 >=<br>
>> 2.50934406412487e-10<br>
>><br>
>> and after reading it in SCIP, using display problem, I see<br>
>><br>
>>    [nonlinear] <c89>: ( -0.16666666666666699048 * <x88> * <y91> * <z41><br>
>> +0.16666666666666699048 * <x91> * <y88> * <z41><br>
>> +0.16666666666666699048 *<br>
>> <x88> * <y41> * <z91> -0.16666666666666699048 * <x41> * <y88> * <z91><br>
>> -0.16666666666666699048 * <x91> * <y41> * <z88><br>
>> +0.16666666666666699048 *<br>
>> <x41> * <y91> * <z88>) >= 2.50934406412487e-10;<br>
>><br>
>><br>
>> I thought that if I provide the scalar<br>
>><br>
>> -0.166666666666667<br>
>><br>
>> and the internal representation has more precision, I'd get<br>
>><br>
>> -0.16666666666666700000<br>
>><br>
>> instead of<br>
>><br>
>> -0.16666666666666699048<br>
>><br>
>> Is this also to be expected?<br>
>><br>
>> Best regards,<br>
>><br>
>> Ramon.<br>
>><br>
>><br>
>><br>
>> _______________________________________________<br>
>> Scip mailing list<br>
>> <a href="mailto:Scip@zib.de">Scip@zib.de</a><br>
>> <a href="http://listserv.zib.de/mailman/listinfo/scip" target="_blank">http://listserv.zib.de/mailman/listinfo/scip</a><br>
>><br>
><br>
> _______________________________________________<br>
> Scip mailing list<br>
> <a href="mailto:Scip@zib.de">Scip@zib.de</a><br>
> <a href="http://listserv.zib.de/mailman/listinfo/scip" target="_blank">http://listserv.zib.de/mailman/listinfo/scip</a><br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Dr. Ramón Casero Cañas<br><br>Institute of Biomedical Engineering<br>Department of Engineering Science, University of Oxford<br>Old Road Campus Research Building, Headington <br>
Oxford <br>OX3 7DQ<br>UK<br><br>tlf         +44 (0) 1865 617716<br>twitter   @Ramon_Casero<br>web      <a href="http://www.cs.ox.ac.uk/people/Ramon.CaseroCanas/" target="_blank">http://www.cs.ox.ac.uk/people/Ramon.CaseroCanas/</a><br>
</div>
</div>