gpt4 book ai didi

python - 如何在 Gurobi Python 中将决策变量与矩阵相乘

转载 作者:行者123 更新时间:2023-11-28 19:10:57 25 4
gpt4 key购买 nike

我是 Gurobi 的新手,我正在尝试按如下方式实现分配问题:

      # Create decision variables for the allocation
x = {}
for s in arr1:
for t in arr2:
x[s,t] = m.addVar(vtype=GRB.BINARY, name="allocation")

x[s,t] == x[s,t] * mymat[s]
m.modelSense = GRB.MAXIMIZE
m.update()

我想知道是否可以编写如上的线性表达式,以便我可以最大限度地分配具有相似偏好的人员执行相同的任务。

但是,运行如上编写的模型在使用 x[s,t].x 检索结果时会产生错误。错误是

GurobiError: Unable to retrieve attribute 'X'

数据从单独的文件传入模型,代码如下:

    data=c.execute('select id,pref from data')
result = c.fetchall()
pref_data=dict(result)

mymat=defaultdict(int)
a=1
for i in range(1,10):
row = []
for x in range(0,i):
row.append(0)
for j in range(i+1, 10):
if pref_data[i]==pref_data[j]:
row.append(1)
else:
row.append(0)
mymat[a]=row
a+=1

最佳答案

你的模型是不可行的,除非 mymat[a] = 1,对于所有 a。如果不是这种情况,Gurobi 会告诉您该实例不可行(您可以使用 status = Model.optimize() 检查)并且没有可从您的变量中检索的值。

关于python - 如何在 Gurobi Python 中将决策变量与矩阵相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40286429/

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