[Dip] Master-only columns
Christian Plum
chrplum at gmail.com
Tue Oct 18 05:17:04 EDT 2011
Hi Matthew
Thanks, that works fine, though i run into
https://projects.coin-or.org/Dip/ticket/64 on some of my instances, but this
is alleviated by SolveMasterAsIP = 0 and I havent experienced 65.
I have another question I hope you can help me with:
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 ?
Hope that makes sense ;)
Brgds,
Christan
2011/10/7 Matthew Galati <matthew.galati at gmail.com>
> Hi Christian,
>
> 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.
>
> 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.
>
> 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( ).
>
>
> for(vit = masterOnlyCols.begin(); vit != masterOnlyCols.end(); vit++){
> i = *vit;
>
> DecompConstraintSet * model = new DecompConstraintSet();
> model->m_masterOnly = true;
> model->m_masterOnlyIndex = i;
> model->m_masterOnlyLB = colLB[i];
> model->m_masterOnlyUB = colUB[i];
> //0=cont, 1=integer
> model->m_masterOnlyIsInt =
> (integerVars && integerVars[i]) ? true : false;
> //...
> setModelRelax(model,
> "master_only" + UtilIntToStr(i), nBlocks);
> nBlocks++;
> //...
>
>
> Let me know if you have any questions.
>
> Thanks,
> Matt
>
>
>
> On Fri, Oct 7, 2011 at 5:58 AM, Christian Plum <chrplum at gmail.com> wrote:
>
>> Hi,
>>
>> 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:
>>
>> //---
>> //--- sanity check that the union of active columns in blocks
>> //--- should cover all columns in core - if not, these are
>> 'master-only'
>> //--- columns which can be dealt with using either LD or the using
>> the
>> //--- ideas of Rob Pratt discussion (9/27/09), or defined explicitly
>> //--- by user
>> //---
>>
>> Could this refer to creating a dummy block for these columns ? Or how is
>> this best handled ?
>>
>> Brgds, Christian
>>
>>
>>
>> _______________________________________________
>> Dip mailing list
>> Dip at list.coin-or.org
>> http://list.coin-or.org/mailman/listinfo/dip
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/dip/attachments/20111018/16cfc297/attachment.html>
More information about the Dip
mailing list