<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi Ambros,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I see. <font size="2"><span style="font-size:11pt">Achterberg's thesis</span></font> does helps me know deeper about scip.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
My current task is to introduce some locally valid cuts to split a search space. <br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
For instance, I need to split the root node into multiple nodes where the union of them is the original search space. And I need to solve the whole subtree rooted at a node once  at a time in a certain order.<br>
<sub></sub></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
It likes doing local branching. I read the implementation of local branching in the given examples, which is done by copy the problem to subscip and solve it.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
However in my case, it adds too much additional cost since I need to solve lots of such subscip.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I am currently implementing my own node selector for doing this but it is complicated.
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Is there a feasible approch for doing local branching within the scip?</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Thanks,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
yunzhuang<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<sub></sub><br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Ambros Gleixner <gleixner@zib.de><br>
<b>Sent:</b> Wednesday, April 29, 2020 1:01 AM<br>
<b>To:</b> Yunzhuang Shen <s3640365@student.rmit.edu.au>; scip@zib.de <scip@zib.de><br>
<b>Subject:</b> Re: [SCIP] lp error when adding locally constraint</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Hi Yunzhuang,<br>
<br>
<br>
Am 23.04.20 um 16:36 schrieb Yunzhuang Shen:<br>
> Hi Ambros,<br>
> <br>
> Thanks for your quick response.<br>
> <br>
> After I compiled SCIP and SOPLEX to under debug mode, I cannot reproduce <br>
> the error because the problem did not pass an assertion in the SCIP. The <br>
> backtrace is the following: ><br>
> CO: /home/joey/Downloads/scip-6.0.1/src/scip/tree.c:2403: <br>
> SCIPnodeSetEstimate: Assertion `SCIPsetIsRelGE(set, newestimate, <br>
> node->lowerbound)' failed.<br>
> ==15345==<br>
> ==15345== Process terminating with default action of signal 6 (SIGABRT)<br>
> ==15345==    at 0x69BAE97: raise (raise.c:51)<br>
> ==15345==    by 0x69BC800: abort (abort.c:79)<br>
> ==15345==    by 0x69AC399: __assert_fail_base (assert.c:92)<br>
> ==15345==    by 0x69AC411: __assert_fail (assert.c:101)<br>
> ==15345==    by 0x587623D: SCIPnodeSetEstimate (tree.c:2403)<br>
> ==15345==    by 0x5870E9C: SCIPnodeCreateChild (tree.c:1016)<br>
> ==15345==    by 0x1984F9: <br>
> COML::Branching::split_space_ml_symetric(Scip*, bool) <br>
> (branching_policy.cpp:499)<br>
> ==15345==    by 0x19665B: COML::Branching::scip_execlp(Scip*, <br>
> SCIP_Branchrule*, unsigned int, SCIP_Result*) (branching_policy.cpp:233)<br>
> ==15345==    by 0x199E5F: branchExeclpDynamicBranching <br>
> (branching_policy.cpp:804)<br>
> ==15345==    by 0x54FE318: SCIPbranchruleExecLPSol (branch.c:1589)<br>
> ==15345==    by 0x5500D06: SCIPbranchExecLP (branch.c:2538)<br>
> ==15345==    by 0x578FD2C: SCIPbranchLP (scip_branch.c:1183)<br>
> <br>
> I think I did not pass the correct estimate value when I create the <br>
> child node.<br>
<br>
Good.  The assert tells you that the estimate you give should be at <br>
least as large as the lower bound of the current node, on which you <br>
created the branching.  You can query the lower bound with <br>
SCIPnodeGetLowerbound.<br>
<br>
<br>
> One other thing I need to ask is that the meaning of several <br>
> boolean parameters when create a local constraint. Specifically, do I <br>
> need to change them to other values when I create locally valid <br>
> constraint? (my observation from binpack and tsp example is that some of <br>
> the boolean paramters are different comparing to creating the global <br>
> constraint). My application senario is as the following: right after the <br>
> root node is solved, I create two chlid nodes splited by local <br>
> constraints.<br>
<br>
The local flag of SCIPcreateCons (or more specialized ones like <br>
SCIPcreateConsLinear) must be changed.  The other flags are independent, <br>
the usual values should be fine.<br>
<br>
<br>
> Then I want to put an order on solving those two nodes.<br>
<br>
This could mean many things.  Maybe the parameter <br>
"nodeselection/childsel" helps you, see also Chapter 6 of Tobias <br>
Achterberg's thesis<br>
<br>
<a href="https://aus01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fnbn-resolving.de%2Furn%3Anbn%3Ade%3A0297-zib-11129&amp;data=02%7C01%7C%7Ce6bf1ce4b93a42a0553f08d7eb852096%7Cd1323671cdbe4417b4d4bdb24b51316b%7C0%7C0%7C637236829377421172&amp;sdata=Gfy88YOosDIvTxCBvQMGJWCkkyG6UM668YZqV33Sw0o%3D&amp;reserved=0">https://aus01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fnbn-resolving.de%2Furn%3Anbn%3Ade%3A0297-zib-11129&amp;data=02%7C01%7C%7Ce6bf1ce4b93a42a0553f08d7eb852096%7Cd1323671cdbe4417b4d4bdb24b51316b%7C0%7C0%7C637236829377421172&amp;sdata=Gfy88YOosDIvTxCBvQMGJWCkkyG6UM668YZqV33Sw0o%3D&amp;reserved=0</a><br>
<br>
If you want to fully force your own node processing order in SCIP, then <br>
it might be necessary to implement your own node selector, see<br>
<br>
<a href="https://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fscip.zib.de%2Fdoc-7.0.0%2Fhtml%2FNODESEL.php&amp;data=02%7C01%7C%7Ce6bf1ce4b93a42a0553f08d7eb852096%7Cd1323671cdbe4417b4d4bdb24b51316b%7C0%7C0%7C637236829377421172&amp;sdata=PZNO4XzG%2BClVerOD127N2ExoIGbn9L3QY9df%2FZt%2Blus%3D&amp;reserved=0">https://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fscip.zib.de%2Fdoc-7.0.0%2Fhtml%2FNODESEL.php&amp;data=02%7C01%7C%7Ce6bf1ce4b93a42a0553f08d7eb852096%7Cd1323671cdbe4417b4d4bdb24b51316b%7C0%7C0%7C637236829377421172&amp;sdata=PZNO4XzG%2BClVerOD127N2ExoIGbn9L3QY9df%2FZt%2Blus%3D&amp;reserved=0</a><br>
<br>
Best,<br>
Ambros<br>
<br>
<br>
> <br>
> Thank you,<br>
> yunzhuang<br>
> ------------------------------------------------------------------------<br>
> *From:* Scip <scip-bounces@zib.de> on behalf of Ambros Gleixner <br>
> <gleixner@zib.de><br>
> *Sent:* Thursday, April 23, 2020 11:30 PM<br>
> *To:* scip@zib.de <scip@zib.de><br>
> *Subject:* Re: [SCIP] lp error when adding locally constraint<br>
> Dear Yunzhuang,<br>
> <br>
> We would need more details in order to help you with this issue.<br>
> Ideally, you<br>
> <br>
> - compile both SoPlex and SCIP in debug mode and provide us with a<br>
> backtrace, and<br>
> <br>
> - run your code through valgrind to check whether there is any memory<br>
> corruption.<br>
> <br>
> I assume you are developing under linux.  It is much easier for us to<br>
> support debugging on linux than on other operating systems.<br>
> <br>
> Best,<br>
> Ambros<br>
> <br>
> <br>
> <br>
> <br>
> Am 23.04.20 um 10:51 schrieb Yunzhuang Shen:<br>
>> Hi there,<br>
>> <br>
>> I am using scip-6.0.1 for my research work. After creating local <br>
>> constraints by setting paramter <local> to true and adding them to <br>
>> nodes, the SCIP terminates after processing a number of nodes. The error <br>
>> is "corrupted size vs. prev_size" and is in inside the soplex solver. My <br>
>> workaround is setting the parameter initial to false so that the <br>
>> constraint is not added to lp. It works but I don't know whether that <br>
>> local constraint is still effective (prune all nodes that is invalid <br>
>> under this local constraint by propagation or other checks). I need to <br>
>> make sure the local contraint is fully effective over the tree whose <br>
>> root is added that local constraint.<br>
>> <br>
>> Thanks,<br>
>> yunzhuang<br>
>> <br>
>> _______________________________________________<br>
>> Scip mailing list<br>
>> Scip@zib.de<br>
>> <a href="https://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flistserv.zib.de%2Fmailman%2Flistinfo%2Fscip&amp;data=02%7C01%7C%7Ce6bf1ce4b93a42a0553f08d7eb852096%7Cd1323671cdbe4417b4d4bdb24b51316b%7C0%7C0%7C637236829377421172&amp;sdata=I%2FGbdFyYS1lydZNnLngJCLoyS3FI5uN8eiCXOM%2F%2BdZ0%3D&amp;reserved=0">
https://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flistserv.zib.de%2Fmailman%2Flistinfo%2Fscip&amp;data=02%7C01%7C%7Ce6bf1ce4b93a42a0553f08d7eb852096%7Cd1323671cdbe4417b4d4bdb24b51316b%7C0%7C0%7C637236829377421172&amp;sdata=I%2FGbdFyYS1lydZNnLngJCLoyS3FI5uN8eiCXOM%2F%2BdZ0%3D&amp;reserved=0</a><br>
>> <br>
> <br>
> -- <br>
> Ambros Gleixner, Research Group Mathematical Optimization Methods at<br>
> Zuse Institute Berlin, <br>
> <a href="https://aus01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.zib.de%2Fgleixner&amp;data=02%7C01%7C%7Ce6bf1ce4b93a42a0553f08d7eb852096%7Cd1323671cdbe4417b4d4bdb24b51316b%7C0%7C0%7C637236829377431168&amp;sdata=Ukf37Mpd6sm7cjNJdDFbRdtm%2FordHsfYmvn381e1tJk%3D&amp;reserved=0">
https://aus01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.zib.de%2Fgleixner&amp;data=02%7C01%7C%7Ce6bf1ce4b93a42a0553f08d7eb852096%7Cd1323671cdbe4417b4d4bdb24b51316b%7C0%7C0%7C637236829377431168&amp;sdata=Ukf37Mpd6sm7cjNJdDFbRdtm%2FordHsfYmvn381e1tJk%3D&amp;reserved=0</a><br>
> _______________________________________________<br>
> Scip mailing list<br>
> Scip@zib.de<br>
> <a href="https://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flistserv.zib.de%2Fmailman%2Flistinfo%2Fscip&amp;data=02%7C01%7C%7Ce6bf1ce4b93a42a0553f08d7eb852096%7Cd1323671cdbe4417b4d4bdb24b51316b%7C0%7C0%7C637236829377431168&amp;sdata=r7QVmBjPR0Pu9UVE1u0BdGBAbmXSWqu5ms%2FGxnAdG8U%3D&amp;reserved=0">
https://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flistserv.zib.de%2Fmailman%2Flistinfo%2Fscip&amp;data=02%7C01%7C%7Ce6bf1ce4b93a42a0553f08d7eb852096%7Cd1323671cdbe4417b4d4bdb24b51316b%7C0%7C0%7C637236829377431168&amp;sdata=r7QVmBjPR0Pu9UVE1u0BdGBAbmXSWqu5ms%2FGxnAdG8U%3D&amp;reserved=0</a><br>
> <br>
<br>
-- <br>
Ambros Gleixner, Research Group Mathematical Optimization Methods at <br>
Zuse Institute Berlin, <a href="https://aus01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.zib.de%2Fgleixner&amp;data=02%7C01%7C%7Ce6bf1ce4b93a42a0553f08d7eb852096%7Cd1323671cdbe4417b4d4bdb24b51316b%7C0%7C0%7C637236829377431168&amp;sdata=Ukf37Mpd6sm7cjNJdDFbRdtm%2FordHsfYmvn381e1tJk%3D&amp;reserved=0">
https://aus01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.zib.de%2Fgleixner&amp;data=02%7C01%7C%7Ce6bf1ce4b93a42a0553f08d7eb852096%7Cd1323671cdbe4417b4d4bdb24b51316b%7C0%7C0%7C637236829377431168&amp;sdata=Ukf37Mpd6sm7cjNJdDFbRdtm%2FordHsfYmvn381e1tJk%3D&amp;reserved=0</a><br>
<br>
</div>
</span></font></div>
</body>
</html>