问题描述
在我的数学模型中,我有两个目标函数,根据其重要性,我想为其分配权重并将它们加在一起作为一个目标函数。 这是我的两个目标加上重量:
IloExpr objExpression(env);
for (cc = 0; cc < NumberOfCourses; cc++)
for (ww = 0; ww < AvailableWeeks; ww++) {
objExpression += Weight * Diff[cc][ww]; // objective a
}
for (cc = 0; cc < NumberOfCourses; cc++) {
objExpression += (1 - Weight) * (M[cc] * Students[cc]); // objective b
}
IloObjective theObjective(env,objExpression,IloObjective::Minimize);
mod.add(theObjective);
objExpression.end();
我将参数和变量设置如下:
const int NumberOfCourses = 15;
const int AvailableWeeks = 8;
const float Weight = 0.5;
double Students[NumberOfCourses];
IloNumVarArray2 Diff(env,NumberOfCourses);
for (cc = 0; cc < NumberOfCourses; cc++)
Diff[cc] = IloNumVarArray(env,AvailableWeeks,0.0,8);
IloNumVarArray M(env,NumberOfCourses);
当我运行代码时,它冻结并将断点设置在第二个目标行。 另外,如果我想有两个单独的目标并分别获得两个目标的输出,该怎么办?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)