Hi Pietro,<div><br></div><div>I notice that there might be a bug in the way Couenne adds new branching objects in main/BonCouenneSetup.cpp. Here, an object associated with an exprVar is added: </div><div><br></div><div>continuousSolver_ -&gt; addObjects (nobj, objects)</div>
<div><br></div><div>if 1) it is an integer variable, or 2) it has at least another variable which is dependent on it. I think the problem lies with the way the dependency determined in problem/fillDependence.cpp as it does not consider a linear variable as a dependent. For example:</div>
<div><br></div><div>w_3 = x_1 ^ 2</div><div>w_4 = w_3 + w_2</div><div><br></div><div>w_4 is clearly dependent on w_3, but the dependency graph does not include this relationship as w_4 is linear. This is seen in the code in problem/fillDependence.cpp:</div>
<div><br></div><div>for (std::vector &lt;exprVar *&gt;::iterator i = variables_.begin (); </div><div><div>       i != variables_.end (); ++i) {</div><div><br></div><div>    if (((*i) -&gt; Type () == AUX)                           // consider aux&#39;s only</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>&amp;&amp; ((*i) -&gt; Image () -&gt; Linearity () &gt; LINEAR)) {  // and nonlinear</div><div>    }</div><div><br></div><div>This affects how the number of infeasibilities are counted, as checkInfeasibilities() is only called on branching variables. This means that some solution calculated by CLP may be accepted as a solution to the primal problem, when they are actually infeasible. I am using an old modified version of Couenne, but I have checked the latest source code. I am not sure why I didn&#39;t notice this problem before.</div>
<div><br></div><div>Regards,</div><div><br></div><div>Pete</div></div>