[Cbc] On the Cbc follow-on example

John Forrest john.forrest at fastercoin.com
Tue Jun 9 13:40:23 EDT 2015


Fang,

The way it is meant to work is that you only have the one object - but 
it creates many branches.  It should look at current solution and create 
a branching object which fixes a list down one way and another the other 
way.

I tested on air04 and it did not branch using integers once.  It is 
useful to have the integers for heuristics etc.  Without cuts and 
heuristics it is slow.

To get maximum benefit you might want to derive a class from CbcFollowOn 
which knows more about your problem.  I think the implementation just 
finds row with most non-integral values and then finds another row to do 
the branching on.

The code has not been looked at for many years - so if you do use it 
with cuts, I may have to check that the code does not confused by the 
extra rows..

John Forrest
On 09/06/15 17:05, Fang Ma wrote:
> Hi John,
>
> Thanks for your reply. Actually what I want is to have follow-on 
> branching all over the branch-and bound tree.
>
> In that crew example, there is only 1 follow-on object created. So 
> even if we set it with high priority, we can do the branching at the 
> root node. Then we rely on integer variable branching.
>
> So if I create 200 follow on objects in that example, I think it still 
> do the follow-on branching at the root node? but with 200 candidates 
> to choose from.  Actually I have set the number of follow-on branching 
> to 200, there is memory issue there.
>
> What I want is to create multiple follow on branching among the tree 
> and try to minimize the use of single variable branching (best to 
> avoid it).
>
> Sincerely
>
> Fang
>
>
> Fang, Why do you want to remove the integer objects? Is there 
> something odd in your problem, which means variables can take 
> non-integral values? The integer variables are at lower priority so 
> will only be branched on as a last resort. John Forrest On 03/06/15 
> 05:24, Fang Ma wrote: >/Hi CoinOR Cbc community, />//>/Just a simple 
> question, I am looking at Cbc crew.cpp example, which />/revolve 
> around follow-on branching plus simple binary branching on />/integer. 
> />//>/How to deactivate the variable branching such that there is only 
> />/follow-on branching without simple variable branching ? It seems in 
> />/the Cbc source code, the simple integer object was created by 
> default. />/After finished branching on follow on objects, the crew 
> example switch />/to variable branching. />//>/Thanks />//>/Fang 
> />//>//>/-- />/Best Regards, />/Fang 
> />//>//>//>/_______________________________________________ />/Cbc 
> mailing list />/Cbc at list.coin-or.org 
> <http://list.coin-or.org/mailman/listinfo/cbc> 
> />/http://list.coin-or.org/mailman/listinfo/cbc / -------------- next 
> part -------------- An HTML attachment was scrubbed... URL: 
> <http://list.coin-or.org/pipermail/cbc/attachments/20150609/0173f271/attachment.html> 
>
> ------------------------------------------------------------------------
>
>  *
>
>
>
>
> -- 
> Best Regards,
> Fang Ma
>
>
>
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/cbc

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20150609/8a2a9978/attachment.html>


More information about the Cbc mailing list