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

CPLEX中M0作为决策变量的定义与约束正确性咨询

CPLEX MIP模型中M0作为决策变量的定义与约束问题

我在CPLEX构建的MIP 1模型中,将M0作为参数使用,代码定义为:

Total_P = 8
M0 = np.array([[0,1,0,1,0,0,0,2]]).reshape(Total_P,1)

后续开发调整目标与约束的MIP 2模型时,需将M0设为决策变量并应用于约束中,我编写的相关代码如下:

Total_P = 8
M0 = np.empty((Total_P,1), dtype = object)
for l in range(0,Total_P):
    M0[l][0]= mdl.integer_var(name='M0'+ str(',') + str(l+1))


for l in range(0,Total_P):
    if M0[l][0] is not None:
        mdl.add_constraint((M0[1][0] + M0[5][0]) == 1)
        mdl.add_constraint((M0[3][0] + M0[6][0]) == 1)
        mdl.add_constraint((M0[0][0] + M0[2][0] + M0[4][0] + M0[7][0]) == 2)

运行后:

  • MIP 1的结果为obj_lambda=213
  • MIP 2的结果为obj_lambda=205.0,且M0取值为[[0,1,1,0,0,0,1,1]]

但我的预期是:MIP 2的M0应与MIP 1中的参数一致(即[[0,1,0,1,0,0,0,2]]),同时obj_lambda=213。我已附上MIP 1和MIP 2的完整代码,想咨询:我对M0作为决策变量的定义及约束添加是否正确?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 19:35:25