在我的问题中,我想最小化决策变量 * LARGE_CONSTANT 的平方和。平方的原因是激励求解器平均分布决策变量;如果我必须使用恐慌变量,我想在一组位置中平等地使用它们。
一些代码(诚然不足以重现),如下:
declarations
SITE: set of string
c_min_panic: array(SITE) of mpvar
c_max_panic: array(SITE) of mpvar
end-declarations
! Objectives.
Min_Panicking:= sum(s in SITE) ((c_min_panic(s) * 10000)^2)
Max_Panicking:= sum(s in SITE) ((c_max_panic(s) * 10000)^2)
但是,这会产生错误:Mosel: E-101...运算符类型不兼容(mpvar' ^
未定义整数)。
删除 ^ 使问题正常工作。
我很震惊为什么我不能解决这个问题?事实上,我在文档中看到的示例看起来像是对目标函数求平方的成功尝试。例如,FICO Xpress 用户指南的第 186 页似乎是这样做的:
! Objective: minimise the total squared distance between all points
TotDist:= sum(i,j in RN | i<j) ((x(i)-x(j))^2+(y(i)-y(j))^2
我错过了什么!!把我的头发扯下来谢谢...