[Dip] dippy.DecompVar and dippy.Solve Options

Manser, Mark Mark.Manser at flyjazz.ca
Wed Apr 8 11:35:31 EDT 2015


Hello Dip/Dippy Community,

I am new to implementing decomposition algorithms and Dip/Dippy and am trying to figure out how the platform works.  I have a couple of general questions:

1)  On pg. 15 of http://coral.ie.lehigh.edu/~ted/files/papers/RAMP12.pdf it states "The return value of relaxed solver is a list of DecompVar objects having negative reduced cost."  This appears to be the case for the cutting_stock.py and bin_pack_decomp_func.py for example, but not the case for facility_location.py nor gap.py.  When is it necessary to return a list of dippy.DecompVar instances, and when does it suffice to return a regular sparse dictionary of variables?  Also, why isn't the reduced cost being returned in gap.py when the dippy.Solve option is:    'doPriceCut': '1'.

In cutting_stock.py, the function 'relaxed_solver' ends by returning a list containing a dippy.DecompVar instance:
    dv = dippy.DecompVar(var_values, rc - convexDual, 1)
    return [dv]

In bin_pack_decomp_func.py, the function 'solve_subproblem' ends by returning a list containing a dippy.DecompVar instance:
    dv = dippy.DecompVar(var_values, rc - convexDual, waste)
    return [dv]

In facility_location.py, the function 'solve_subproblem' ends by returning a list containing a regular dictionary:
    var_values = dict([(avars[i], 1) for i in solution])
    var_values[use_vars[loc]] = 1
    ...
    return [var_values]

In gap.py, the function 'solve_subproblem' ends by returning a list containing a regular dictionary:
    var_values = dict([(var[i], 1) for i in solution])
    ...
    return [var_values]

2)  I am confused about the effect of the following dippy.Solve options:

    'doCut',
   'generateCuts',
    'generateInitVars',
    'doPriceCut',
    'CutCGL'

For some context, in facility_location.py the following code exists:

    dippyOpts = {}
    algo = 'PriceCut'
    if len(sys.argv) > 1:
        algo = sys.argv[1]
    if algo == 'PriceCut':
        dippyOpts['doPriceCut'] = '1'
        dippyOpts['CutCGL'] = '1'
    elif algo == 'Price':
        dippyOpts['doPriceCut'] = '1'
        dippyOpts['CutCGL'] = '0'
    else:
        dippyOpts['doCut'] = '1'

Are the last 3 conditionals how one would specify 'Branch-and-price-and-cut', 'branch-and-price', and 'branch-and-cut' respectively?
Would setting just dippyOpts['doCut'] = '0' result in 'Branch-and-Bound'?

3)  I have a model built for a real-world application, but it's not behaving the way I expected it would.  There are potentially a number of things wrong and I would like to discuss it with someone knowledgeable.  If one of the devs has time for a quick review, could you reply to this message?

Also, I am unable to access the online doxygen documentation at http://www.coin-or.org/Doxygen/Dip/ as listed on the github page.  I am receiving "403 Forbidden You don't have permission to access /Doxygen/Dip/ on this server."  I am not sure if this is on my end or if it's affecting everyone.

- Mark


The information contained in this email is intended only for the individual or entity to whom it is addressed. Its contents (including any attachments) may contain confidential and/or privileged information. If you are not an intended recipient, you may not use, disclose, disseminate, copy or print its contents. If you received this email in error, please notify the sender by reply email and delete and destroy the message.

L’information contenue dans ce courriel est destinée exclusivement aux personnes ou aux entités auxquelles le courriel est adressé. Le contenu de ce courriel (y compris toute pièce jointe) peut renfermer de l’information confidentielle et / ou privilégiée. Si ce message ne vous est pas destiné, vous ne pouvez utiliser, divulguer, diffuser, copier ou imprimer son contenu. Si vous avez reçu ce courriel par erreur, veuillez aviser l’expéditeur en lui faisant parvenir une réponse. De plus, veuillez supprimer et détruire le message.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/dip/attachments/20150408/3efb2463/attachment.html>


More information about the Dip mailing list