[Scip] Unexpected use of function scip_execps
Horváth Markó
horvathmarko89 at gmail.com
Thu Apr 2 12:54:46 CEST 2015
Dear All,
I'm using scip 3.1.1 with soplex 2.0.1. (on 1 thread) through C++. I'm
deailing with a branch-and-price procedure for a MILP. The problem
contains continuous and binary variables where the binary variables have
lazy upper bound (the minimization problem has a set partition structure
so an LP solution should respect these bounds).
I have made a pricer and a branching rule, of course, and I'm expecting
SCIP to call my function scip_execlp. And SCIP does it usually, but
sometimes calls the function scip_execps, and I can't find its reason.
Okay, it's clear from the documentation that SCIP calls scip_execps if
'an integral solution violates one or more constraints and this
infeasibility could not be resolved...', but what does it mean? Hasn't
SCIP solved the LP in the focused node? I have made an event handler to
check the solving steps and I've got the following output:
/...//
//[nodefocused] node 11 has been focused and is now the focus node//
//[firstlpsolved] initial LP of node 11 was solved//
//[lpsolved] LP of node 11 was completely solved with cut & price//
//[nodebranched] the focus node 11 has been solved by branching//
//.../
so it means for me that the LP has been solved. But the branching
procedure used the function scip_execps instead of scip_execlp, and I
still don't see the reason. Can you explain it me?
On the other hand, I wanted to check if a solution violates some
constraints (something like SCIPchecksol). I can get the variables of a
constraint, but I haven't found any procedure to get the coefficient of
a variable in a given constraint. Is there an easy way to get it?
Best Regards,
Markó Horváth
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20150402/b87137e1/attachment.html>
More information about the Scip
mailing list