2013-07-26 2 views
1

Java에서 Cplex를 사용하고 있으며 두 행렬 (동일한 색인을 가진 요소의 곱)에서 요소의 합을 최소화하려고합니다.Cplex Java 다차원 결정 변수

X는 [N]는 [N] decisionvariables 포함 [0, 1]

비용 [N] [N] J

에 I로부터 방법에 대한 비용을 포함 난의 합을 최소화하고자 모든 i..n에 대해 x [i] [j] * j [i] [j]; j..n.

나는 이런 식으로 변수를 만들어 :

[...] 
static double lb = 0.0; 
static double ub = 1.0; 
static double cost[][] = new double[n][n]; 

IloNumVar[][] x = new IloNumVar[n][n]; 
     for(int i=0; i<n; i++){ 
      for(int j=0; j<n; j++){ 
       x[i][j] = cplex.numVar(lb, ub); 
       } 
     } 

내 문제는 내가 최소화 파트를 생성하는 방법을 모른다는 것이다.

내 문제 (Cplex c++ multidimensional decision variable)와 매우 비슷한 것으로 보이는 것이 있지만 C++에 익숙하지 않아서 해결 방법이 없습니다.

답변

2

이 그것을 수행해야합니다

IloLinearNumExpr obj = cplex.linearNumExpr(); 

for (int i = 0; i < n; i++) { 
    for (int j = 0; j < n; j++) { 
    obj.addTerm(cost[i][j], x[i][j]); 
    } 
} 

cplex.addMinimize (obj) 등;