[Coin-discuss] How to cut off "optimal" solution in CBC

Lou Hafer lou at cs.sfu.ca
Wed Aug 24 13:08:37 EDT 2005


	I lean toward Tobias' and Francois' line of thought.  When I read Jim
Hurd's email, my first thought was ``Yeah, that's how it's supposed to work.''
Record the solution and then change the goal posts so as not to discover
equivalent solutions.  Deciding to reject a newly discovered best solution
should be an independent decision, not necessarily associated with a cut
generator.  Maximum flexibility would give three options:

  * discard incumbent in favour of newly discovered solution (the current
    action)
  * retain incumbent, discard newly discovered solution
  * discard both (utility unclear, but easy given previous two)

	My suggestion would be a checkFeasible() associated with a CbcEvalSoln
class created for this purpose.  (Akin to current architecture for branching,
node selection.)  Implement checkFeasible as a virtual function with a default
that recommends keeping the newly discovered solution (i.e., no change in
behaviour).  User could derive a more intelligent function if desired.  A
checkFeasible could be associated with a cut generator, but this should not be
the only option.

						Lou 

	




More information about the Coin-discuss mailing list