<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Hi Bjarne,<br>
<br>
Am 07.04.19 um 21:16 schrieb Bjarne Grimstad:<br>
<blockquote type="cite"
cite="mid:CAK3+tafxbDn8RiYutgdENQYzM79aWF2_P=P=5B35RAq-fCTvtA@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">Hello,
<div><br>
</div>
<div>Thank you for working on the open-source solver SCIP.</div>
</div>
</blockquote>
We appreciate that.<br>
<blockquote type="cite"
cite="mid:CAK3+tafxbDn8RiYutgdENQYzM79aWF2_P=P=5B35RAq-fCTvtA@mail.gmail.com">
<div dir="ltr">
<div><br>
</div>
<div>I am developing some new cuts for polynomial constraints
that I would like to test using the SCIP solver. My needs are
as follows:</div>
<div>
<ul>
<li>For each node in the B&B tree, and for each
polynomial constraint, I would like to generate and add
cuts (to the relaxation of the polynomial).</li>
<li>Obviously, it is important that the cuts are added
before interval propagation is performed.</li>
<li>The cuts shall be discarded after the node has been
processed (i.e., they shall not be inherited by children
nodes).</li>
</ul>
</div>
<div>I would really appreciate some pointers to relevant
tutorials/docs or source files that I can modify to achieve
this.</div>
</div>
</blockquote>
I have *the* link for you<br>
<br>
<a class="moz-txt-link-freetext" href="https://scip.zib.de/doc/html/">https://scip.zib.de/doc/html/</a><br>
<br>
It has all the information you are asking for.<br>
<br>
...<br>
<br>
Now, seriously. I know that SCIP's API can be overwhelming at first,
and probably you have read the documentation up to a certain point
already, but could not find the relevant answers. Please always
indicate such effort on your side in your question. What you want to
implement is a separator. Since you are not mentioning any
programming language preferences, I conjecture you prefer C. Please
have a look at<br>
<br>
<a class="moz-txt-link-freetext" href="https://scip.zib.de/doc/html/SEPA.php">https://scip.zib.de/doc/html/SEPA.php</a><br>
<br>
which explains how to implement a user separator. <br>
<br>
There is an example <a class="moz-txt-link-freetext" href="https://scip.zib.de/doc/html/GMI_MAIN.php">https://scip.zib.de/doc/html/GMI_MAIN.php</a>
implementing a user separator, which you may use as a starting point
for your implementation. <br>
<br>
Polynomial constraints are handled <br>
<br>
<ul>
<li>by the linear constraint handler if the degree is 1
(<a class="moz-txt-link-freetext" href="https://scip.zib.de/doc/html/cons__linear_8h.php">https://scip.zib.de/doc/html/cons__linear_8h.php</a>)<br>
</li>
<li>by the quadratic constraint handler if the degree is 2
(<a class="moz-txt-link-freetext" href="https://scip.zib.de/doc/html/cons__quadratic_8h.php">https://scip.zib.de/doc/html/cons__quadratic_8h.php</a>)<br>
</li>
<li>as nonlinear constraints if the degree is higher
(<a class="moz-txt-link-freetext" href="https://scip.zib.de/doc/html/cons__nonlinear_8h.php">https://scip.zib.de/doc/html/cons__nonlinear_8h.php</a>)</li>
</ul>
<p>You can use the API of those constraint handlers from within your
user separator to derive the desired inequalities. <br>
</p>
<p>Let us know how far you can get with the provided starting
points.</p>
<p><br>
Best regards<br>
Gregor</p>
</body>
</html>