2014-09-30 19 views
0

我聲明變量linObjIloNumExpr,我有4環(環形元件I,J,K和L),其中每個時間我添加到這個變量其它兩個可變的總和,如:的Cplex目標函數錯誤

linObj = cplex.sum(linObj, cplex.sum(s[i][j][j][k],s[i][j][l][k]) 

當循環關閉時,我聲明linObj作爲目標函數。

現在,我有一個錯誤,稱爲ilog.cplex.MultiObjectiveException

+0

正如你可以在這裏閱讀:http://pic.dhe.ibm.com/infocenter/cosinfoc/v12r4 /index.jsp?topic=%2Filog.odms.cplex.help%2Frefjavacplex%2Fhtml%2Filog%2Fcplex%2FMultipleObjectiveException.html嘗試向模型添加多個目標會引發ilog.cplex.MultipleObjectiveException。你能否提供完整的代碼,以便我們能夠弄清楚發生了什麼? – 2014-09-30 14:29:51

回答

0

,除此之外你可能做這樣的事情您的環內:

linObj = cplex.sum(linObj, cplex.sum(s[i][j][j][k],s[i][j][l][k]); 
cplex.addMinimize(linObj); 

因此越來越多的目標。 循環後只能撥打cplex.addMinimize(linObj);,你應該只能得到一個目標。

此外,你應該考慮改變你的代碼:

IloLinearNumExpr linObj = cplex.linearNumExpr(); 
/*loops*/ 

linObj.addTerm(1, cplex.sum(s[i][j][j][k],s[i][j][l][k]); 

/*after loops*/ 
cplex.addMinimize(linObj); 

希望這有助於