[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