python - 在 gurobi 中创建具有多个索引的二进制变量
问题描述
我对 Python 和 Gurobi 很陌生。我想为几个“维度”添加一个二进制变量:
A = [1,2,3,4]
B = [1,2,3,4]
C = [1,2,3,4,5]
D = [1,2,3]
我需要带有索引 A、B、C、D 的二进制变量 x。
我不确定如何使用该命令:
m.addVars()
解决方案
这是从给定索引列表创建变量的方式:
import gurobipy as gp
A = [1,2,3,4]
model = gp.Model()
variables = model.addVars(A, name='A', vtype='B')
调用后model.update()
,您会看到这些变量名称/类型:
{1: <gurobi.Var A[1]>,
2: <gurobi.Var A[2]>,
3: <gurobi.Var A[3]>,
4: <gurobi.Var A[4]>}
这也在文档中进行了说明。您只需对其他列表B
、C
和重复此过程D
。
编辑
将所有索引组合成一个变量结构的另一种方法如下:
A = [1,2,3,4]
B = [1,2]
C = [1,2,3]
model = gp.Model()
variables = model.addVars(A, B, C, vtype='B')
您可以像这样访问这些变量:
variables[1,2,1]
推荐阅读
- c++ - 与 MATLAB 相比,OpenCV 从视频文件中提取的帧更少
- javascript - 无法重新创建用于导入 WFS 多边形的测试项目
- javascript - React CSS 模块中的级联样式
- java - 从目录中获取文件列表以显示在 JComboBox 中
- python - 为什么我的 Spyder 项目不再工作?使用scrapy爬取
- kubernetes - 我如何获得 traefik 控制器配置和一些关于入口路径的问题
- python - 如何在 requirements.txt 中构建具有特定版本依赖项的 Docker 映像?
- qemu - 如何设置 QEMU 会话的窗口标题?
- filter - 如何使用 infura 从以太坊区块中获取所有日志
- php - 获取PDF中的一行?