python - 在 python 中使用多个变量设置目标
问题描述
我正在尝试用来gurobi
解决分配优化问题。
我有一个4x4数组来存储成本,我试图将它与存储为4x4数组的决策变量相乘。
我尝试了以下方法:
model.setObjective(quicksum(cost[i,j] * x[i][j] for i in range(3) for j in range(3)), GRB.MINIMIZE)
它返回关键错误:0
还,
model.setObjective(quicksum(cost[i,j] * x[i,j] for i in range(3) for j in range(3)), GRB.MINIMIZE)
它返回不在模型中的变量
这是我的成本数组:
cost = np.array([[48.3, 5000, 66.0, 55.4],
[50.2, 53.2, 58.9, 56.2],
[47.5, 49.8, 5000, 53.0],
[48.1, 51.8, 64.4, 54.7]])
我像这样设置我的变量:
x = model.addVars(4, 4, vtype=GRB.BINARY)
理想情况下,我希望代码返回我应该使用哪些变量来分配适当的二进制变量。即 x[0,0] = 1;x[2,3] = 0
解决方案
model
如果模型包含在名为的变量中并且您将变量添加x
到同一模型中,则以下(您的第二次尝试)适用于最新的 Gurobi 版本:
model.setObjective(quicksum(cost[i,j] * x[i,j] for i in range(4) for j in range(4)), GRB.MINIMIZE)
但是如果你想总结所有这些,你应该使用range(4)
而不是。range(3)
也许您有多个模型并试图将目标添加到错误的模型中?
推荐阅读
- ios - 如何从侧面菜单视图控制器移回标签栏视图控制器?
- angular - 如何正确处理和控制 Angular 和 Web API 中的错误 - 2
- c - 在链表交换期间未传递指针
- image-processing - libvips 旋转在设备上没有剩余空间
- javascript - Javascript 分面搜索
- reactjs - React:从父组件通过 NavLink 访问 props 数据
- php - 将数据库中的数据与 php 变量进行比较
- testing - TestNG 6.10+ 优先级比保留顺序更重要
- javascript - 如何从 PouchDB 函数中获取变量到 JS 变量
- ios - 在 iOS 设备关闭时获取通知?