2

Coin-or Linear Programmingライブラリを使用しています。ClpPlusMinusOneMatrixを構築したい。そのコンストラクタは次のとおりです。

ClpPlusMinusOneMatrix (int numberRows, 
                       int numberColumns, 
                       bool columnOrdered, 
                       const int *indices, 
                       const CoinBigIndex *startPositive, 
                       const CoinBigIndex *startNegative);

startPositiveとが何であるかは正確には明らかではありませんstartNegativeここで別のクラスについて説明したのと同じ概念である場合、マトリックスはどのように +1 値と -1 値を区別するのでしょうか?

たとえば、1x4 マトリックスを実装したい場合: [1 -1 1 -1]. Clp は最後の 2 つの要素の値をどのように知るのでしょうか?

#include <coin/ClpPlusMinusOneMatrix.hpp>

int main()
{
        int indices [4] {0, 1, 2, 3}; 
        CoinBigIndex startPositive [2] {0, 4}; 
        CoinBigIndex startNegative [2] {1, 4}; 
        ClpPlusMinusOneMatrix(1, 4, false, indices, startPositive, startNegative);
}

ありがとう

4

1 に答える 1

0

ここでソースコードを参照するstartPositveと、何が何であるかを推測できますstartNegative。まず、行列は、すべての +1 要素が行のすべての -1 値の前にある必要があるように構成する必要があります。thenstartPositive[i]は、行優先の場合は行の最初の +1 の要素インデックス、列優先のi場合は列の要素インデックスですi

于 2016-08-22T02:58:51.387 に答える