投币或线性规划:clpplusminusonemmatrix表示

Coin-or Linear Programming: ClpPlusMinusOneMatrix representation

本文关键字:clpplusminusonemmatrix 表示 线性规划      更新时间:2023-10-16

我使用投币或线性编程库。我想构造一个ClpPlusMinusOneMatrix。它的构造函数是:

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

不清楚startPositivestartNegative是什么。如果这和另一类描述的概念是一样的,那么矩阵如何微分+1和-1的值呢?

例如,如果我要实现1x4矩阵:[1 -1 1 -1]。Clp如何知道最后两个元素的值?

#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);
}

谢谢

如果您浏览这里的源代码,您可以推断出startPositvestartNegative是什么。首先,必须构造矩阵,使得一行中所有+1元素必须位于所有-1值之前,如果行是主要的,或者列是主要的。那么startPositive[i]就是行i中第一个+1的元素索引,或者列i中第一个+1的元素索引。

相关文章:
  • 没有找到相关文章