You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET中通过Sonnet调用CBC求解器限制迭代次数?

在.NET的Sonnet中给CBC求解器设置迭代次数限制

Sonnet本身没有专门的options属性,但可以通过向底层CBC求解器传递原生命令行参数的方式实现迭代次数限制,具体操作如下:

  1. 利用Solver.AddArgument()方法添加CBC的maxIt参数,该参数用于指定分支定界的最大迭代次数;
  2. 参数格式为maxIt=数值,例如maxIt=100表示限制最多执行100次迭代。

修改后的完整代码示例:

Sonnet.Model model = new Sonnet.Model("GoogleExample");

Variable x = new Variable(VariableType.Integer);
Variable y = new Variable(VariableType.Integer);

model.Add(x + 7 * y <= 17.5);
model.Add(0 <= x <= 3.5);
model.Add(0 <= y);
model.Objective = new Expression(x + 10 * y);

Solver solver = new Solver(model);
// 添加迭代次数限制,此处设置为100次
solver.AddArgument("maxIt=100");

solver.Maximise();

补充说明

  • CBC支持大量原生命令行参数,除了maxIt,你还可以用同样方式设置其他求解器参数(比如sec=10表示限制求解最多运行10秒);
  • 若想查看CBC所有支持的参数,可直接运行CBC可执行文件并添加--help参数,或参考COIN-OR CBC的官方参数说明。

内容的提问来源于stack exchange,提问作者Sascha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 02:07:09