如何在Gurobi python接口中创建二进制变量?

2024-09-28 03:20:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Gurobi Python接口的新手。如果有人能指导我解决这个问题,那就太好了。在

我想使用Python接口创建一个二进制决策变量。在

由$X{k,u,i,j}$表示的二进制变量指示是否处理了时隙k处用户u的设备i的任务j。1=已处理,0=未处理。在

我试过这样做,但没能得到想要的输出。在

 x = m.addVars(time_slots, users, appliances, task_appliances, vtype = GRB.BINARY, name = 'x')

Output

x[k1,u1,washingmachine, washingmachine], x[k1,u1,washingmachine, dryer]

^{pr2}$

如何创建一个二进制变量来表示x[k1,u1,washingmachine, movement], x[k1,u1,washingmachine, heating],。。对所有洗衣机任务和x[k1,u1,dryer, drying1], x[k1,u1,dryer, drying2],^{,。。所有的干衣机任务都是这样的。在


Tags: 用户time二进制k1时隙指导决策新手
1条回答
网友
1楼 · 发布于 2024-09-28 03:20:43

首先请注意,在task_设备中,洗碗机的任务加热是两次,在解决此问题之后,您可以使用列表理解来获得元组列表,然后使用m.addVars()

from gurobipy import *

# Your lists here

m = Model()
vars_tup = [(t, u, app, task) for t in time_slots for u in users for app in appliances for task in task_appliances[app]]
x = m.addVars(vars_tup, vtype=GRB.BINARY, name="x")
# Your constraints and objective function..

相关问题 更多 >

    热门问题