我试图用Python中的OpenOpt包来解决一些多约束背包问题,但现在我只是试图从OpenOpt站点运行这个示例。在
我相信我已经正确地安装了所有的东西,因为我可以进入Python并导入诸如OpenOpt、FuncDesigner等单独的模块。在
当我尝试运行KSP示例时,我得到一个错误消息:KSP没有定义,但是OpenOpt模块正在导入。在
#!/usr/bin/python
from openopt import *
from numpy import sin, cos
N = 150
items = [
{
'name': 'item %d' % i, # pay attention that Python indexation starts from zero
'cost': 1.5*(cos(i)+1)**2,
'volume': 2*sin(i) + 3,
'mass': 4*cos(i)+5,
'n': 1 if i < N/3 else 2 if i < 2*N/3 else 3 # number of elements
}
for i in range(N) # i = 0, ... , N-1
]
constraints = lambda values: (
values['volume'] < 10,
values['mass'] < 100,
values['nItems'] <= 10,
values['nItems'] >= 5
# we could use lambda-func, e,g.
# values['mass'] + 4*values['volume'] < 100
)
objective = 'cost'
p = KSP(objective, items, goal = 'max', constraints = constraints)
r = p.solve('glpk', iprint = 0)
print(r.xf)
准确误差:
^{pr2}$
目前没有回答
相关问题 更多 >
编程相关推荐