[Dip-tickets] [Dip] #58: No heuristics used if no cuts generated

Dip coin-trac at coin-or.org
Tue Nov 16 23:20:23 EST 2010


#58: No heuristics used if no cuts generated
-------------------+--------------------------------------------------------
Reporter:  IainNZ  |       Type:  defect
  Status:  new     |   Priority:  minor 
 Version:  trunk   |   Keywords:        
-------------------+--------------------------------------------------------
 In DecompAlgo.cpp, there is the code:

 {{{
 if(nChanges && m_status != STAT_INFEASIBLE){
 ...
 m_app->APPheuristics(m_xhat, getOrigObjective(), m_xhatIPFeas);
 ...
 }
 }}}


 The != operator has precedence over the logical AND
 (http://www.cppreference.com/wiki/operator_precedence) so this condition
 will only be true if (m_status != 1) (i.e. is feasible) and if nchanges is
 non-zero.

 nChanges is defined up above as:

 {{{
 int nChanges = m_nodeStats.cutsThisCall + m_nodeStats.varsThisCall;
 }}}


 So if no new columns are generated and no cuts are generated, nChanges
 will be 0, and the condition will evaluate as false -> no heuristics are
 called.

 If this understanding of the code is correct, then there is an issue.
 Heuristics should run regardless of whether there are cuts(?)

-- 
Ticket URL: <https://projects.coin-or.org/Dip/ticket/58>
Dip <https://projects.coin-or.org/Dip>
An extensible software framework for implementing decompositon-based bounding algorithms for use in solving large-scale discrete optimization problems.



More information about the Dip-tickets mailing list