我正在尝试通过lpDot()
生成方程式,例如
PulpVar = [x1,x2]
Constants = [5,6]
然后将点积做为:
model += lpDot(PulpVar, Constants)
据我所知,这应该生成一个等式为
x1*5+x2*6
但我得到
lpAffineExpression
作为输出,因此生成的lp文件为空 最佳答案
lpDot()–给出两个列表,形式为[a1,a2,…,an]和[x1,x2,…,
[xn]将构造一个线性表达式以用作约束或
变量ref
因此,如果您使用常量,则lpDot()将返回点积,即<class 'pulp.pulp.LpAffineExpression'>
:
import pulp
x1 = [1]
x2 = [2]
X = [x1,x2]
Constants = [5, 6]
model = pulp.lpDot(X, Constants)
print(model, type(model))
输出:
17 <class 'pulp.pulp.LpAffineExpression'>
如果对方程式
x1*5+x2*6
进行定量,则应使用LpVariable
像这样:import pulp
PulpVar1 = pulp.LpVariable('x1')
PulpVar2 = pulp.LpVariable('x2')
Constants = [13, 2]
model = pulp.lpDot([PulpVar1, PulpVar2], Constants)
print(model, type(model))
输出:
5*x1 + 6*x2 <class 'pulp.pulp.LpAffineExpression'>
关于python - PuLP :lpDot()有什么作用,如何使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57309541/