[CoinMp] Selecting LP solver methods in CoinMP

Richard Bowmaker Richard.Bowmaker at paconsulting.com
Wed Jul 8 22:54:45 EDT 2015


There are a few issues selecting the LP solver method (i.e. Primal Simplex, Dual Simplex, Barrier etc.) in CoinMP:

1) The 'Method' parameter of the CoinOptimizeProblem function doesn't do anything. It gets passed to the CbcSolveProblem function, but the code in this function does not use it. So regardless of what you enter in this parameter, you'll get the default method (Dual Simplex?)

2) CoinMP.h defines some solution method constants:

#define SOLV_METHOD_PRIMAL        0x00000001L
#define SOLV_METHOD_DUAL          0x00000002L
#define SOLV_METHOD_NETWORK       0x00000004L
#define SOLV_METHOD_BARRIER       0x00000008L

... but if you use these vales to set the COIN_INT_SOLVEMETHOD parameter, the value you pass is interpreted according to the values defined in ClpSolve.hpp:

     enum SolveType {
          useDual = 0,
          usePrimal,
          usePrimalorSprint,
          useBarrier,
          useBarrierNoCross,
          automatic,
                  tryDantzigWolfe,
                  tryBenders,
          notImplemented
     };

So, for example, to select barrier, the value you need to pass is 3, not 8 as defined in CoinMP.h

3) For reasons I have yet to understand completely, if your problem has no integer variables, neither way of selecting the solve method has any effect anyway.

These issues are in CoinMP v1.7.6, as recently retrieved from the subversion trunk.






-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/coinmp/attachments/20150709/687f4c7b/attachment.html>


More information about the CoinMp mailing list