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

with_optimizer方法工作原理及未定义错误的解决办法

with_optimizer机制说明与错误解决

一、with_optimizer的工作机制

  • 这是JuMP v0.19及更早版本的专属API,核心作用是关联优化器与JuMP模型
  • 它会把优化器的构造函数(比如GLPK.Optimizer)以及可选的配置参数打包,传递给Model()函数,让JuMP明确后续求解时使用的优化器后端
  • 旧版示例写法:model = Model(with_optimizer(GLPK.Optimizer, msg_lev=GLPK.MSG_ON))

二、UndefVarError的解决方法

你遇到的错误本质是版本不兼容:新版JuMP(v1.0+)已彻底移除with_optimizer函数,无需再用这个包装函数,直接将优化器构造函数传入Model()即可。修改后的代码如下:

using Pkg

Pkg.add("Ipopt")
Pkg.add("Clp")
Pkg.add("GLPK")
using JuMP, Ipopt, Clp, GLPK
# 直接传入优化器构造函数,替代with_optimizer
model = Model(GLPK.Optimizer)
optimize!(model)

补充选项(不推荐)

如果因特殊需求必须使用with_optimizer,可以指定安装旧版JuMP:

Pkg.add(name="JuMP", version="0.19")

但旧版已停止维护,优先建议适配新版API。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 02:11:05