外部函数的实例 LSP建模语言
在本例中,我们将反余弦函数(也称为arccosine)应用于我们的模型,并试图基于这个新的运算符最小化一个简单的表达式。
LSP建模语言:
在LSP中,虚拟机为您完成了大部分工作。实际上,任何函数都可以通过特殊的方法intexteralfunction或doubleExternalFunction转换为新的操作符(取决于函数的返回类型)。
此外,O_Call表达式中提供的参数只是作为LSP函数的参数公开。因此,在下面的示例中,参数x + y的值被简单地传递给了lsAcos函数。
你可以通过处理函数表达式的字段上下文来获取函数的上下文,如下代码:
use math;
function model() {
x <- float(-0.5, 0.5);
y <- float(-0.5, 0.5);
func <- doubleExternalFunction(lsAcos);
func.context.lowerBound = 0.0;
func.context.upperBound = math.pi;
func.context.nanable = true;
minimize call(func, x + y);
constraint x + 3*y >= 0.75;
}
function lsAcos(val) {
// math.acos is a function provided in the math module.
return math.acos(val);
}
下一章:外部函数的示例:PYTHON代码 。Local Solver超大规模数学求解器: 无锡迅合信息科技有限公司LocalSolver中国独家代理商 2020-2023。