[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