LocalSolver快速入门指南(连载三十二) -- 外部函数实例 C#

外部函数的实例

外部函数C#示例代码

c#中,外部函数的签名必须符合委托LSIntExternalFunctionLSDoubleExternalFunction,它们接受LSExternalContext实例并返回一个整数或浮点值。

然后,您可以在LSOperator.call表达式中使用您的函数。创建LSOperator.Call调用表达式时,可以使用通用方法LSModel.CreateExpression或使用快捷方式LSModel .Call。外部函数的参数值将通过LSExternalArgumentValues方法公开。

可以通过LSExpression.GetExternalContext方法访问函数的LSExternalContex内容:

using System.Math;
using localsolver;
...
double Acos(LSExternalArgumentValues argumentValues)
{
    return Math.Acos(argumentValues.GetDoubleValue(0));
}
 
void TestExternalFunction()
{
    LocalSolver ls = new LocalSolver();
    LSModel m = ls.GetModel();
    LSExpression func = m.CreateDoubleExternalFunction(Acos);
    func.GetExternalContext().SetLowerBound(0.0);
    func.GetExternalContext().SetUpperBound(Math.PI);
    LSExpression x = m.Float(-0.5, 0.5);
    LSExpression y = m.Float(-0.5, 0.5);
    m.Minimize(m.Call(func, x + y));
    m.Constraint(x + 3*y >= 0.75);
    ...
}

Local Solver在在大规模MIP和非线性优化问题上突出的求解能力对客户供应链业务和研究有很大价值,典型问题有cvrptw车辆调度问题,生产计划与排程问题,MPS问题,生产线平衡问题,背包问题,装箱问题,柔性jobshop问题等。更多信息请关注local solver中国区独家代理商无锡迅合信息科技有限公司数学工程师(2020-2022)。

下一篇:Local Solver外部函数实例-JAVA代码。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值