<div dir="ltr"><div><div><div><div><div>Dear all<br><br></div>1) There is a function in DIP called print, which prints the variables. It is implemented by starting as follows:<br><br> double lb = getLowerBound();<br> double ub = getUpperBound();<br>
(*os) << "\nVAR c: " << m_origCost<br> << " rc: " << m_redCost<br> << " eff: " << m_effCnt<br> << " block: " << m_blockId<br>
<< " colIndex: " << m_colMasterIndex;<br>.........<br></div>in the output always colIndex: always appears to be -1. I have no idea what is this and why always appears as -1. <br>VAR c: 231 rc: 0 eff: 0 block: 0 <b>colIndex: -1</b><br>
<br></div><div>why m_colMasterIndex is always -1? Is that okay? something is missing?<br></div><div><br></div>2) When one initialized CG with initial columns, then one expects that dual values in the first iteration become meaningful (i.e. the redCost become meaningful). <br>
</div>But I always get my redCost == OrgCost and the dual variable associated to the convex combination is always infinity in the first call to the solveRelaxed.<br><br></div>Moreover, it takes a lot of iterations until DIP show that it reports the initial columns as upper bound solution for the problem. Up to that point, the upper bound is always infinity.<br>
<div><br></div><div>3) in DecompAlgo.cpp (6631)<br><br> if ((!m_isColGenExact && nNewVars <= 0) || (m_param.SolveRelaxAsIp == 2)) {<br>.......<br> assert(subprobSI);<br> double rcBestCol = DecompInf;<br>
<br></div><div>a) If in at least one block I do not generate any further column, then this assert is hit and the program terminates. <br></div><div>But it seems logical to me that sometime one block does not generate any column but the other blocks keep proposing other improving solutions.<br>
<br></div><div>b) How DIP knows whether I the column generated in solveRelaxed is an optimal column or just an improving one?<br></div><div><br></div><div>Thank you<br></div><div>Shahin<br></div><div><br><br><br><br><br><br>
<br><br><br><br></div><div><br><br><br><br><br></div></div>