[Bonmin] Call For Some Ideas

Pierre Bonami pierre.bonami at gmail.com
Mon Sep 10 10:28:37 EDT 2007


Dear Roy,
Sorry for the late reply.
Actually for doing this I don'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:
1e-03*beta <= y  <=  u*beta
(where u is the upper bound on beta).
Of course the model might be difficult to solve depending on the number of
continuous variables you have and on their upper bounds.
Best regards,
Pierre

On 8/28/07, Roy Chen <ytboy0208 at gmail.com> wrote:
>
> Dear Pierre
>
> 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?
>
> Best
>
> Roy
>
> On 8/23/07, Pierre Bonami <pierre.bonami at gmail.com > wrote:
> >
> > Dear Roy,
> >
> > There are a few possibilities for changing branching rules in Bonmin.
> >
> > 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
> > http://dx.doi.org/10.1016/j.orl.2004.04.002 for reference). The node
> > strategy by default is best-bound.
> >
> > These can be changed by using the options:
> > number_strong_branch number_before_trust nodeselect_stra(see
> > http://www.coin-or.org/Bonmin/options_list/index.html for the options
> > values).
> >
> > You also have the option to set branching priorities through the ampl
> > model (see here how to set branching priorities:
> > http://www.coin-or.org/Bonmin/use/index.html).
> >
> > At last, you can code some new branching and node selection rules.
> > This is a much tougher and you will have to be familiar to Bonmin and
> > Cbc code to do that.
> > You should first have a look at the relevant Cbc base interface classes:
> > CbcObject, CbcBranchingObject, CbcBranchDecision, CbcCompareBase and the
> > implementations (CbcSimpleInteger, CbcIntegerBranchingObject,
> > CbcBranchDefaultDecision, CbcCompareDefault).
> > 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'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.
> >
> > I hope this helps,
> > best regards,
> > Pierre
> >
> >
> >
> > On 8/21/07, Roy Chen < ytboy0208 at gmail.com> wrote:
> >
> > > Hi, Everyone
> > >
> > > 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's
> > > possible for me to change the node-selecting and branching code in BONMIN to
> > > accommodate to my own problems.
> > >
> > > Thanks for any idea!
> > >
> > > Roy
> > >
> > > _______________________________________________
> > > Bonmin mailing list
> > > Bonmin at list.coin-or.org
> > > http://list.coin-or.org/mailman/listinfo/bonmin
> > >
> > >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.coin-or.org/pipermail/bonmin/attachments/20070910/a0632afd/attachment.html


More information about the Bonmin mailing list