<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Dear Marko and list,<br>
<br>
Am 02.04.2015 um 12:54 schrieb Horváth Markó:<br>
</div>
<blockquote cite="mid:551D1FF6.10606@gmail.com" type="cite">
<meta http-equiv="content-type" content="text/html;
charset=windows-1252">
Dear All,<br>
<br>
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).<br>
<br>
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.<br>
</blockquote>
The pseudo solution gets enforced for two main reasons: Either there
are unresolved numerical troubles in the node LP solution. The focus
node is then "un-LP-ized" by setting the tree->focusnodehaslp to
FALSE via SCIPsetFocusNodeLP().<br>
You can check whether this is the case by the public method
SCIPhasFocusNodeLP() from inside the execps-callback of your
branching rule.<br>
<br>
The second reason for using pseudo-branching is the use of custom
branching priorities for the variables. Concretely, if an unfixed
variable with an integral LP solution value (ie. a pseudo candidate)
has a higher branching priority than the prioritized fractional LP
candidate variable, pseudo-branching is executed instead. Do you use
branching priorities for your variables?<br>
<blockquote cite="mid:551D1FF6.10606@gmail.com" type="cite"> <br>
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:<br>
<i>...</i><i><br>
</i><i>[nodefocused] node 11 has been focused and is now the focus
node</i><i><br>
</i><i>[firstlpsolved] initial LP of node 11 was solved</i><i><br>
</i><i>[lpsolved] LP of node 11 was completely solved with cut
& price</i><i><br>
</i><i>[nodebranched] the focus node 11 has been solved by
branching</i><i><br>
</i><i>...</i><br>
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?<br>
<br>
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?<br>
</blockquote>
Please note that in general, there is no 1-to-1 correspondence
between a constraint and a row of the LP relaxation, just take the
integral constraints as an example. SCIP itself does not check
individual constraints, but delegates<br>
this task to the constraint handlers, which treat their constraints
individually. If you have only linear-type constraints (i.e, either
linear constraints or specializations such as knapsacks or varbound<br>
constraints), there mostly exist library methods to access the
necessary data, just take a look at the headers of<br>
cons_linear.h, cons_knapsack.h etc, to perform a customized solution
check.<br>
<br>
Kind regards,<br>
Gregor<br>
<br>
<br>
<blockquote cite="mid:551D1FF6.10606@gmail.com" type="cite"> <br>
Best Regards,<br>
Markó Horváth <br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Scip mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Scip@zib.de">Scip@zib.de</a>
<a class="moz-txt-link-freetext" href="http://listserv.zib.de/mailman/listinfo/scip">http://listserv.zib.de/mailman/listinfo/scip</a>
</pre>
</blockquote>
<br>
</body>
</html>