[SCIP] Issue with tolerance

Gerald Gamrath gamrath at zib.de
Wed Mar 11 11:30:36 CET 2020


Dear Oliver,

it's really hard to say what is happening without more details. In 
general, the solving process in CPLEX when solving the LP within SCIP 
can be different to when running CPLEX alone, because within SCIP, CPLEX 
will restart from the basis of the last LP / LP at the parent node, 
tolerances might be different, some settings (presolving and scaling) 
might be different and so forth.


> I am using SCIPlpiIsOptimal and SCIPlpiGetInternalStatus to check the LP
> solver status when SCIP returns infeasible and I got sometimes
>
>   for SCIPlpiIsOptimal and 1566399830 for SCIPlpiGetInternalStatus. What is
> SCIPlpiGetInternalStatus?

SCIPlpiGetInternalStatus is the internal status code that the LP solver 
returned. What do you sometimes get for SCIPlpiIsoptimal? Is the LP 
really infeasible or was the cutoff bound reached, i.e., the LP was was 
above the primal bound, if you already found a solution? This is of 
course different to a stand-alone solve of the LP with CPLEX.


> I am turning off these plugin in SCIP
>
>     SCIP_CALL( SCIPsetIntParam(scip,"presolving/maxrestarts",0) );
>     SCIP_CALL( SCIPsetIntParam(scip,"propagating/rootredcost/freq",-1) );
>     SCIP_CALL( SCIPsetIntParam(scip, "propagating/maxroundsroot", 0) );
>     SCIP_CALL( SCIPsetIntParam(scip, "separating/maxroundsroot", 0) );
>     SCIP_CALL( SCIPsetIntParam(scip, "separating/maxrounds", 0) );
>     SCIP_CALL( SCIPsetIntParam(scip, "presolving/maxrounds", 0) );
> Is it enough or should I turn off something else? It would be great if you
> give me some idea how to debug this as CPLEX Studio returns an optimal
> solution so I don't really have any idea what I should check? Thank you in
> advance

That should be ok. In general, if you problem is numerically 
challenging, it may happen that you get different results with slightly 
different starting conditions or paramters. You could check the Farkas 
coefficients within PRICERFARKAS (which you will need to implement, 
anyway), which should give you a linear combination of the constraints 
that prove the infeasibility. So you might be able to verify the 
infeasibility or see whether the combination of constraints is perhaps 
slightly infeasible, so that you could claim both results within tolerances.

By the way: How did you write the problem to an LP file?

I would not turn off the primal and dual feasibility checks. They should 
make SCIP numerically more stable, because an LP solution that does not 
pass these checks is not accepted, but the LP is optimized again with 
different settings.

By the way, to get some more info of what is happening within CPLEX, you 
might want to set display/lpinfo to TRUE and send the output to the list 
if it is not too long.

Best,
Gerald


>
> Best,
>
> Oliver
>
>
>> Hi all,
>>
>> I am implementing branch and price using SCIP with Cplex as the LP solver.
>> During pricing, I saw some instances in which SCIP returns that the
>> problem is infeasible and enters Farkas. However when I exported the
>> problem to an lp file and solved it with CPLEX studio, I got a feasible
>> solution. I guessed this is because of tolerance so I was playing around
>> with it but I can't find any numbers that work for all. I have some
>> constraints with big M in model. Do you have any suggestions about what I
>> should pay attention to? I am currently using
>>     SCIP_CALL( SCIPsetRealParam(scip, "numerics/feastol", 1e-5) );
>>     SCIP_CALL( SCIPsetRealParam(scip, "numerics/lpfeastol", 1e-6) );
>>     SCIP_CALL( SCIPsetRealParam(scip, "numerics/dualfeastol", 1e-5) );
>> Also I tried to turn off lp/checkprimfeas and lp/checkdualfeas and it
>> helps in some cases but I am not sure if it would cause any other issue.
>> Would you recommend to use the feasibility check or not in this case?
>>
>> Best wishes,
>> Oliver
>>
>>
>>
>> _______________________________________________
>> Scip mailing list
>> Scip at zib.de
>> https://listserv.zib.de/mailman/listinfo/scip
>>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip


More information about the Scip mailing list