Hi Christian,<div><br></div><div>The best way to handle master-only columns is explicitly. Unfortunately, I never got around to finish coding that up in the framework. It is on my longer-term ToDo List. </div><div><br></div>
<div>Currently, the way it works in DIP is by using dummy blocks for each master-only column. These are constructed relatively efficiently, so it is not as bad as it sounds. Although it does add a convexity constraint for each block - which can bog down the master problem if there are many master-only columns.</div>
<div><br></div><div>The MILPBlock application will create, identify and manage these for you. If you are building your own application, you have to let the framework know which columns are master-only by creating blocks (just like constraint blocks) and then flagging them as master only. I don&#39;t think I have a simple example of this written up. But, you can see how to do it in the MILPBlock application. See MILPBlock_DecompApp.cpp createModelMasterOnlys( ).</div>
<div><br></div><div><div><br></div><div> for(vit = masterOnlyCols.begin(); vit != masterOnlyCols.end(); vit++){</div><div>      i = *vit;</div><div><br></div><div>      DecompConstraintSet * model = new DecompConstraintSet();</div>
<div>      model-&gt;m_masterOnly      = true;</div><div>      model-&gt;m_masterOnlyIndex = i;</div><div>      model-&gt;m_masterOnlyLB    = colLB[i];</div><div>      model-&gt;m_masterOnlyUB    = colUB[i];</div><div>      //0=cont, 1=integer</div>
<div>      model-&gt;m_masterOnlyIsInt =</div><div>         (integerVars &amp;&amp; integerVars[i]) ? true : false;</div><div>//...</div><div>     setModelRelax(model,</div><div><div>                    &quot;master_only&quot; + UtilIntToStr(i), nBlocks);</div>
<div>     nBlocks++;</div></div><div>//...</div><div><br></div><div><br></div><div>Let me know if you have any questions.</div><div><br></div><div>Thanks,</div><div>Matt</div><div><br></div><div><br></div><br><div class="gmail_quote">
On Fri, Oct 7, 2011 at 5:58 AM, Christian Plum <span dir="ltr">&lt;<a href="mailto:chrplum@gmail.com">chrplum@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi, <div><br></div><div>Im working on price and cut model containing Master-only Columns, which are not appearing in any block. This is briefly mentioned in DecompAlgo.cpp Ln 134:</div><div><br></div><div><div>   //---</div>

<div>   //--- sanity check that the union of active columns in blocks</div><div>   //---   should cover all columns in core - if not, these are &#39;master-only&#39;</div><div>   //---   columns which can be dealt with using either LD or the using the </div>

<div>   //---   ideas of Rob Pratt discussion (9/27/09), or defined explicitly </div><div>   //---   by user</div><div>   //---</div></div><div><br></div><div>Could this refer to creating a dummy block for these columns ? Or how is this best handled ?</div>

<div><br></div><div>Brgds, Christian</div><div><br></div><div><br></div>
<br>_______________________________________________<br>
Dip mailing list<br>
<a href="mailto:Dip@list.coin-or.org">Dip@list.coin-or.org</a><br>
<a href="http://list.coin-or.org/mailman/listinfo/dip" target="_blank">http://list.coin-or.org/mailman/listinfo/dip</a><br></blockquote></div><br></div>