<br><font size=2 face="sans-serif">One reason for going to Cbc version
1.00 was to imply a more measured set of changes. &nbsp;One exception I
made was that of adding new branching classes etc.</font>
<br>
<br><font size=2 face="sans-serif">I wanted to see if I could implement
a Constraint Programming idea such as &quot;All Different&quot; into Cbc;
also I had been asked to make sure N-way branching worked. &nbsp;Finally
Irv Lustig had asked - &quot;What can you do with Cbc that you can't do
with Cplex?&quot;. &nbsp;On the way back from INFORMS I was sitting next
to a person solving Su Doku puzzles and I thought - can you write a Su
Doku solver with Cplex?</font>
<br>
<br><font size=2 face="sans-serif">If you live in the UK you must know
what a Su Doku puzzle is, for some others - for a 9 x 9 Su Doku puzzle
you fill it in using numbers 1 to 9 and each row and column must be all
different as must the obvious 3x3 squares.</font>
<br>
<br><font size=2 face="sans-serif">I have implemented CbcBranchAllDifferent
which stops two general integer variables being the same by imposing two
branches x &lt;= y-1 and x &gt;= y+1. &nbsp;Obviously users can modify
this to obtain their own cut branch rules. &nbsp;I have also put in a CglAllDifferent
cut generator which fixes variables based on the above logic. &nbsp;I may
improve the speed of this later.</font>
<br>
<br><font size=2 face="sans-serif">I found that this was not sufficient
to do well at the Independent super Su Doku puzzles (16x16) for which there
is a prize. &nbsp;This is because general integer variables at a bound
are not enough for the logical fixing. &nbsp;So I have implemented N way
branching so that we can fix the general integer variables more easily.
&nbsp;And while I was at it I added a trivial CglStored cut class where
the user can put any cuts and then have them added in if they are violated
and the obvious AllDifferent row cuts could go there. &nbsp;To see more
look at the sudoku.cpp example in Cbc/Samples. &nbsp;There is also a simple
nway.cpp example.</font>
<br>
<br><font size=2 face="sans-serif">John Forrest</font>
<br>
<br><font size=2 face="sans-serif">PS I am sure it is cheating to use this
to win prizes!</font>