gpt4 book ai didi

python - 尝试定义一个 6 维变量,但我得到了太多值来解包错误

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:56 25 4
gpt4 key购买 nike

我正在尝试在 python 中使用 gurobi 库(gurobi 是一个优化库)我收到此错误 ---- 值错误:要解压的值太多

我正在尝试在 python 中定义一个 6 维变量。我将每个维度定义为一个列表维度包括游戏、类次、时间、坑、顺序 1​​ 和顺序 2由于这 6 个维度中只有某些组合有效,因此我将组合定义为元组列表以指定存在哪些组合。然后我想用有效的组合定义变量。 gurobipy 库附带了一些对象,例如 tuplelist 和 addVar
python代码是:

from gurobipy import*
m=Model('mymodel')

combo, oi =multidict( {'(1,1,bj,1,1,1)': 100,
'(1,1,bj,1,1,2)':200,
'(1,1,bj,1,1,3)':200,
'(1,1,bj,1,2,1)':50,
'(1,1,bj,1,2,2)':70,
'(1,1,bj,1,2,3)':70,
'(1,1,cr,1,1,1)':400,
'(1,1,cr,1,1,2)':450})

combo =tuplelist(['(1,1,bj,1,1,1)',
'(1,1,bj,1,1,2)',
'(1,1,bj,1,1,3)',
'(1,1,bj,1,2,1)',
'(1,1,bj,1,2,2)',
'(1,1,bj,1,2,3)',
'(1,1,cr,1,1,1)',
'(1,1,cr,1,1,2)'])

x={}
for s,t,i,p,n,m in combo:
x[s,t,i,p,n,m] = m.addVar(vtype=GRB.BINARY, obj=oi[s,t,i,p,n,m],name=s+","+t+","+i+","+p+","+n+","+m)

最佳答案

您的“组合”变量是一个字符串,您无法将其解压缩为多个变量。您的代码也,如果您的代码确实运行,则“m”变量用于存储您的模型,将在 for 循环中被覆盖。

from gurobipy import *
model=Model('mymodel')

combos, oi =multidict( {
(1,1,'bj',1,1,1):100,
(1,1,'bj',1,1,2):200,
(1,1,'bj',1,1,3):200,
(1,1,'bj',1,2,1):50,
(1,1,'bj',1,2,2):70,
(1,1,'bj',1,2,3):70,
(1,1,'cr',1,1,1):400,
(1,1,'cr',1,1,2):450})

x={}
for combo in combos:
x[combo] = model.addVar(vtype=GRB.BINARY,
obj=oi[combo],
name=".".join(map(str, combo)))

关于python - 尝试定义一个 6 维变量,但我得到了太多值来解包错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23576422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com