2016-08-16 3 views
2

저는 Coin-or Linear Programming 라이브러리를 사용하고 있습니다. ClpPlusMinusOneMatrix을 만들고 싶습니다. 그것의 생성자는 다음과 같습니다코인 또는 선형 프로그래밍 : ClpPlusMinusOneMatrix 표현

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

startPositivestartNegative이 무엇인지 정확히 분명하지 않다. 다른 클래스 here에 대해 설명한 것과 같은 개념이라면 행렬이 +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); 
} 

감사

+0

이 예제는'[[1 -1] [1 -1]]'을 제공합니까? – Holt

+0

나는이 대답이 무엇인지에 관해 모른다. 그것은 부분적으로 질문이다. 나는 1x4 행렬 [1, -1, 1 -1]을 어떻게 만들지를 묻습니다. –

+0

선형 프로그래밍은 [tag : linear-algebra]와 아무 관련이 없습니다. – EJP

답변

0

소스 코드 here를 검색 할 경우, startPositvestartNegative이 무엇인지 추론 할 수있다. 첫째, 매트릭스는 모든 +1 엘리먼트가 행 메이저, 또는 칼럼 일 경우 행의 모든 ​​-1 값 앞에 오도록 구성되어야합니다. 그런 다음 startPositive[i]은 행 i의 첫 번째 +1 요소 색인이거나, 행 길이가 큰 경우 i 인 경우 열입니다.