<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hi once again Matheus,</p>
<p>you can see the priorities in each of the 'branch_*.c' files. I
quickly grepped them all for you:</p>
<p>./scip/branch_inference.c:47:#define BRANCHRULE_PRIORITY
1000<br>
./scip/branch_nodereopt.c:34:#define BRANCHRULE_PRIORITY
-9000000<br>
./scip/branch_random.c:43:#define BRANCHRULE_PRIORITY -100000<br>
./scip/branch_vanillafullstrong.c:48:#define
BRANCHRULE_PRIORITY -2000<br>
./scip/branch_cloud.c:59:#define BRANCHRULE_PRIORITY 0<br>
./scip/branch_xyz.c:31:#define BRANCHRULE_PRIORITY 0<br>
./scip/branch_multaggr.c:61:#define BRANCHRULE_PRIORITY 0<br>
./scip/branch_allfullstrong.c:62:#define BRANCHRULE_PRIORITY
-1000<br>
./scip/branch_leastinf.c:37:#define BRANCHRULE_PRIORITY 50<br>
./scip/branch_mostinf.c:37:#define BRANCHRULE_PRIORITY 100<br>
./scip/branch_pscost.c:46:#define BRANCHRULE_PRIORITY 2000<br>
./scip/branch_fullstrong.c:48:#define BRANCHRULE_PRIORITY 0<br>
./scip/branch_relpscost.c:60:#define BRANCHRULE_PRIORITY
10000<br>
./scip/branch_lookahead.c:78:#define BRANCHRULE_PRIORITY 0<br>
./scip/branch_distribution.c:83:#define BRANCHRULE_PRIORITY
0<br>
</p>
<p>So you can see that reliability pseudocost branching
(branch_relpscost.c) has the highest priority of 10000.</p>
<p>To also answer the previous question: You can get local variable
bounds by calling "SCIPvarGetLbLocal" and "SCIPvarGetUbLocal",
respectively. There is also a page in the documentation that might
help you in finding C-API methods easier on your own:
<a class="moz-txt-link-freetext" href="https://scip.zib.de/doc-7.0.0/html/DOC.php">https://scip.zib.de/doc-7.0.0/html/DOC.php</a></p>
<p>Best,<br>
Leon<br>
</p>
<div class="moz-cite-prefix">On 27.05.20 23:48, Matheus Ota wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAL0UnZ139YybMA6weSWzcdnpk_YwtKtY-snyx4sPpriut=aErQ@mail.gmail.com">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<div dir="ltr">
<div>Hi,</div>
<div><br>
</div>
<div>I think I implemented correctly a branching rule that
inherits from ObjBranchRule, but I don't know what value I
should assign for the priority. I tried 1000 and it was not
being called, I tried 100000 and it was called ok. Just to be
sure, where can I find the priority values of the other
branching rules used by SCIP?</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Matheus<br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Em ter., 26 de mai. de 2020 às
12:24, Matheus Ota <<a href="mailto:matheusota@gmail.com"
moz-do-not-send="true">matheusota@gmail.com</a>>
escreveu:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div>Hi Leon,</div>
<div><br>
</div>
<div>Thanks for your detailed answer! Yes, I want to query
if the lower bound of the variable equals the upper bound,
and what is this value.</div>
<div><br>
</div>
<div>Thanks again,</div>
<div>Matheus<br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Em ter., 26 de mai. de
2020 às 04:57, Leon Eifler <<a
href="mailto:eifler@zib.de" target="_blank"
moz-do-not-send="true">eifler@zib.de</a>> escreveu:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">Hello Matheus,<br>
<br>
everything you want to achieve can be implemented in a
branching rule. I <br>
don't think there is a benefit of doing this in a
constraint handler. In <br>
your branching rule you can create to child nodes and add
all bound <br>
changes that you want to do for S and T to those child
nodes.<br>
<br>
> Also, in order to select the sets S and T I also need
to know all the <br>
> variables already fixed to 0 and to 1. Is there any
way of doing this? <br>
> Should I store all the variables fixed in each
branching in a data <br>
> structure? Or there is an easier way of just checking
if the variable <br>
> is already fixed or not?<br>
<br>
You can get all fractional variables by calling
SCIPgetLPBranchCands (or <br>
do you think of fixed as in local lower bound equals local
upper bound?)<br>
<br>
> Also, my idea for branching is not enough to separate
all fractional <br>
> solutions. So when it is not possible to use my
branching, I want SCIP <br>
> to use the branching it normally uses (I guess it is
strong <br>
> branching). Could anyone that knows about this give
me some help here?<br>
<br>
You do not have to do anything here. If you give your
branching rule a <br>
high priority it will get called first. Just ensure that
your branching <br>
rule sets the result pointer to SCIP_DIDNOTFIND or
SCIP_DIDNOTRUN <br>
(whichever makes more sense) if it does not find a
branching. Then the <br>
branching rule with the next hightest priority will get
called.<br>
<br>
Best,<br>
Leon<br>
<br>
<br>
_______________________________________________<br>
Scip mailing list<br>
<a href="mailto:Scip@zib.de" target="_blank"
moz-do-not-send="true">Scip@zib.de</a><br>
<a href="https://listserv.zib.de/mailman/listinfo/scip"
rel="noreferrer" target="_blank" moz-do-not-send="true">https://listserv.zib.de/mailman/listinfo/scip</a><br>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
</body>
</html>