2
我正在使用Java中的CPLEX解決線性編程問題。我有一個二進制決策變量定義爲CPLEX java - 多維數組的等式約束
IloNumVar[] xd = new IloNumVar[Tend];
其中趨勢是時間。決策變量是受該過XD的時間之和必須等於給定整數C_D,這是實現約束:
cplex.addEq(cplex.sum(xd), C_d);
到目前爲止,一切工作。
我遇到的問題是,現在我想用一個多維數組來概括決策變量的數目:
IloNumVar[][] xd = new IloNumVar[Tend][count_d];
,但我仍然需要加以約束每一個決策變量在總和時間必須等於一個常數。我試着用這樣的:
IloNumVar[] Sum_d = new IloNumVar[Tend];
IloNumVar[] Sum_D = new IloNumVar[1];
for(int j=0;j<count_d;j++){
for (int i = 1; i<Tend; i++){
cplex.addEq(Sum_d[i],cplex.sum(Sum_d[i-1],xd[i][j]));
}
cplex.addEq(Sum_d[Tend],Sum_D);
cplex.addEq(Sum_D,C_d);
}
,但我得到了以下錯誤: 多個標記在該行
- 方法ADDEQ(IloNumExpr,雙)在類型IloCplexModeler是不適用的參數( IloNumVar,IloNumVar [])
- 方法ADDEQ(IloNumExpr,雙)在類型IloCplexModeler不適用於參數(IloNumVar [],INT)
我不太確定什麼是在問題定義中包含等價約束的正確方法。
任何建議將不勝感激。