Dear Roy,<br>Sorry for the late reply.<br>Actually for doing this I don&#39;t think I would go through the difficulties of implementing a branching rule. You can put constraints to impose that on your solution right in the model. You can just add a binary variable (say beta) for each continuous variable (say y) in your problem and then add the constraint that:
<br>1e-03*beta &lt;= y&nbsp; &lt;=&nbsp; u*beta<br>(where u is the upper bound on beta).<br>Of course the model might be difficult to solve depending on the number of continuous variables you have and on their upper bounds.<br>Best regards,
<br>Pierre<br><br><div><span class="gmail_quote">On 8/28/07, <b class="gmail_sendername">Roy Chen</b> &lt;<a href="mailto:ytboy0208@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">ytboy0208@gmail.com
</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Dear Pierre<br><br>I want any variable which has a fraction part less than 1e-03 rounded down to zero in BONMIN, and these variables could be continuous variables, how can I do this in BONMIN?<br><br>Best<br><span>
<br>Roy</span><div><span><br><br>
<div><span class="gmail_quote">On 8/23/07, <b class="gmail_sendername">Pierre Bonami</b> &lt;<a href="mailto:pierre.bonami@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">pierre.bonami@gmail.com
</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Dear Roy,<br><br>There are a few possibilities for changing branching rules in Bonmin.<br><br>First, you have several options to control banching and node selection in Bonmin. The default behavior for variable selection strategy is to do strong branching on the 20 most fractional variables and to use pseudo-cost after 8 strong-branching evaluations are done (see 
<a href="http://dx.doi.org/10.1016/j.orl.2004.04.002" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://dx.doi.org/10.1016/j.orl.2004.04.002</a> for reference). The node strategy by default is best-bound.
<br><br>These can be changed by using the options:<br><h4>
number_strong_branch</h4><h4>
number_before_trust</h4><h4>
nodeselect_stra</h4>(see <a href="http://www.coin-or.org/Bonmin/options_list/index.html" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.coin-or.org/Bonmin/options_list/index.html</a> for the options values).
<br><br>You also have the option to set branching priorities through the ampl model (see here how to set branching priorities: 
<a href="http://www.coin-or.org/Bonmin/use/index.html" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.coin-or.org/Bonmin/use/index.html</a>).<br><br>At last, you can code some new branching and node selection rules. 
<br>This is a much tougher and you will have to be familiar to Bonmin and Cbc code to do that.
<br>You should first have a look at the relevant Cbc base interface classes: CbcObject, CbcBranchingObject, CbcBranchDecision, CbcCompareBase and the implementations (CbcSimpleInteger, CbcIntegerBranchingObject, CbcBranchDefaultDecision, CbcCompareDefault). 
<br>To pass those into Cbc from Bonmin, you would need to modify a little bit the code in CbcBonmin (mainly to pass in the CbcObject&#39;s I can point you to the specific line in the code). All in all, if you are not familiar with Cbc code, it is a big effort.
<br><br>I hope this helps,<br>best regards,<br>Pierre<br><br><br><br><div><div><span><span class="gmail_quote">On 8/21/07, <b class="gmail_sendername">Roy Chen</b> &lt;<a href="mailto:ytboy0208@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">


ytboy0208@gmail.com</a>&gt; wrote:
</span></span></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><span>Hi, Everyone<br><br>I am dealing with an MINLP project and I want to solve it using BONMIN. All of my integer variables are binary variables. I am just wondering what branching and node selecting rule BONMIN uses and if it&#39;s possible for me to change the node-selecting and branching code in BONMIN to accommodate to my own problems.
<br><br>Thanks for any idea!<br><span><br>Roy<br>
</span><br></span></div>_______________________________________________<br>Bonmin mailing list<br><a href="mailto:Bonmin@list.coin-or.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Bonmin@list.coin-or.org
</a><br><a href="http://list.coin-or.org/mailman/listinfo/bonmin" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://list.coin-or.org/mailman/listinfo/bonmin</a><br><br></blockquote></div><br>
</blockquote></div><br>
</span></div></blockquote></div><br>