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

如何通过Python接口读取Minizinc模型dzn文件中定义的参数数据

MiniZinc Python接口读取模型参数的实现方法

默认情况下,MiniZinc Python接口返回的Solution对象仅包含决策变量的取值,模型中定义的固定参数不会默认加入返回结果中,因此直接调用result.solution.参数名会触发AttributeError。你可以通过以下三种方法读取参数:

  • 方法1:直接从Instance实例读取参数
    加载完模型和数据文件之后,参数已经被解析赋值到Instance对象中,不需要等待求解完成就可以直接读取,示例代码:

    # 实例化完成后直接读取参数
    flour_value = instance["flour"]
    print(flour_value)
    

    该方案是读取固定参数最高效的方案,不需要修改模型或求解配置。

  • 方法2:开启求解时输出所有变量
    在调用solve()方法时添加output_all_variables=True参数,会让求解结果返回所有模型内的变量、参数和中间计算值,之后就可以从Solution对象直接读取参数:

    result = instance.solve(output_all_variables=True)
    # 求解完成后即可读取参数
    flour_value = result.solution.flour
    print(flour_value)
    

    该方法适合需要同时获取决策变量结果和对应参数的场景。

  • 方法3:在MiniZinc模型中显式声明输出参数
    在你的.mzn模型文件末尾添加输出语句,明确指定要输出flour参数:

    output [
      "b = \(b)\n",
      "flour = \(flour)\n"
    ];
    

    修改后运行原有代码,即可从Solution对象中读取到flour取值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:54:05