Hi Matthew <div><br></div><div>Thanks, that works fine, though i run into <a href="https://projects.coin-or.org/Dip/ticket/64">https://projects.coin-or.org/Dip/ticket/64</a> on some of my instances, but this is alleviated by SolveMasterAsIP<span class="Apple-style-span" style="font-family: Verdana, Arial, 'Bitstream Vera Sans', Helvetica, sans-serif; font-size: 13px; background-color: rgb(255, 255, 221); "> = 0</span> and I havent experienced 65. </div>
<div><br></div><div>I have another question I hope you can help me with: </div><div><br></div><div>In the compact formulation of my problem, theres a non-linear constraints, which at great expense in binary variables can be linearized. In the pricing problem (elementary shortest path with resource constraints), which I'll implement in "DecompApp::solveRelaxed" i can handle this non-linearity efficiently without additional use use binary vars. So my questions: Do I need to describe the "Full" compact model for the setModelRelax(model, m_appParam.ModelNameRelax) subproblem or can this be a relaxed version ?</div>
<div><br></div><div>Hope that makes sense ;) </div><div><br></div><div>Brgds, </div><div><br></div><div>Christan</div><div><br></div><div><br></div><div><br><div class="gmail_quote">2011/10/7 Matthew Galati <span dir="ltr"><<a href="mailto:matthew.galati@gmail.com">matthew.galati@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">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">
<div><div></div><div class="h5">
On Fri, Oct 7, 2011 at 5:58 AM, Christian Plum <span dir="ltr"><<a href="mailto:chrplum@gmail.com" target="_blank">chrplum@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div></div><div class="h5">
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></div></div>_______________________________________________<br>
Dip mailing list<br>
<a href="mailto:Dip@list.coin-or.org" target="_blank">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>
</blockquote></div><br></div>