2014-12-08 1 views
1

자바에서 Cplex를 사용하여 목적 함수를 모델링하려고합니다. 내 목적 함수는 확률과 비용 식의 곱, 즉 Obj = sum (Pr (i) * Cost (i))입니다. Java에서 목적 함수 cplex

나는 다음과 같은 모델 :

IloLinearNumExpr objective = cplex.linearNumExpr(); 


for (int i=0; i<M; i++){ 

       objective.addTerm(Pc[i],SupplierCost[i]); 

    } 

하지만 "유형 IloLinearNumExpr의 방법 addTerm (더블, IloNumVar)는 인수 (더블, IloLinearNumExpr) 적용 할 수 없습니다"라는 오류 메시지가 있습니다.

무엇이 잘못 되었나요?

감사합니다.

+0

SupplierCost 정의를 붙여 넣을 수 있습니까? – jjlema

답변

0

IloLinearNumExpr.addTerm은 double 및 IloNumVar에만 적용됩니다. 오류 메시지에서 SupplierCost[i]은 IloNumVar가 아닌 IloNumExpr입니다. IloCplex.prod 메서드를 사용하여 새 IloNumExpr을 만들고 IloNumExpr.add 메서드를 사용하여 결과 IloNumExpr을 목표에 추가하여 Pc [i] * Supplier [i]를 객관적으로 추가 할 수 있습니다.

IloLinearNumExpr objective = cplex.linearNumExpr(); 
for (int i=0; i<M; i++){ 
    objective.add(cplex.prod(Pc[i],SupplierCost[i])); 
}