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'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->m_masterOnly = true;</div><div> model->m_masterOnlyIndex = i;</div><div> model->m_masterOnlyLB = colLB[i];</div><div> model->m_masterOnlyUB = colUB[i];</div><div> //0=cont, 1=integer</div>
<div> model->m_masterOnlyIsInt =</div><div> (integerVars && integerVars[i]) ? true : false;</div><div>//...</div><div> setModelRelax(model,</div><div><div> "master_only" + 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"><<a href="mailto:chrplum@gmail.com">chrplum@gmail.com</a>></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 'master-only'</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>