[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