python - Python MIP,生成器对象没有属性意义
问题描述
我正在尝试在 Python(版本 3.7.1)中使用 MIP 库。我在 Windows 10 顺便说一句。这是我的代码:
from mip import Model, xsum, minimize, BINARY, INTEGER
tau_steps = 50
p = 4
cores = 16
m = Model("TDM")
C = [[m.add_var(var_type=INTEGER, lb = -1, ub = p * 100) for j in range(tau_steps)] for i in range(cores)]
m.objective = minimize( xsum( xsum(C[i][j] for j in range(tau_steps)) != 0 ) for i in range(cores) )
我收到以下错误:
Using Python-MIP package version 1.5.3
Traceback (most recent call last):
File "test.py", line 11, in <module>
m.objective = minimize( xsum( xsum(C[i][j] for j in range(tau_steps)) != 0 ) for i in range(cores) )
File "C:\Python\Python37-32\lib\site-packages\mip\model.py", line 1863, in minimize
expr.sense = MINIMIZE
AttributeError: 'generator' object has no attribute 'sense'
我对 BINARY 变量做了类似的事情,它奏效了。不知何故,对于 INTEGER,它不起作用。我打开了库,但找不到变量类型(BINARY、INTEGER、CONTINOUS)的定义。有一些预编译的 cpp 库。也许它在那里,但这对我没有帮助。我检查了 MIP 的文档,但我也找不到任何相关的内容。请指教。
我正在尝试使用整数线性规划来查找给定任务集的时间表。C代表时间表。行号对应于使用的核心。列号对应于核心中的时隙。当未使用特定时隙时,该值等于零。目标是尽量减少使用的核心数量。如果 C 的一行中所有数字的总和等于 0,则意味着核心未使用。通过计算加起来不等于 0 的行数,我们知道使用了多少个内核。正是这个数字需要被最小化。这就是我试图在我发布的代码的最后一行中写的内容。
解决方案
推荐阅读
- python - 使用 axvline() 绘制垂直线
- livy - Livy-在驱动程序类路径中上传 JAR
- php - PHP函数和编码结果为JSON
- android - 是否可以在不使用主题的情况下以编程方式更改 TextInputLayout 颜色?
- python - Python n 维数组组合
- hibernate - 我正在尝试调用 db2 过程,但出现运行时错误 com.ibm.db2.jcc.am.SqlSyntaxErrorException
- php - Laravel 广播适用于一个用户
- python-3.x - 用 execl 重启进程
- python - 使用请求和会话正确验证 API 调用
- json - 如何验证 JSON 正文中的内容