f(x,y,z) = x*y*z
いくつかの制約x<=20 + y
とy < z+2
Pulp を使用して、次の単純な関数を最小化したいと思います。これを行う方法を知っている人はいますか?
しようとしたとき、私はいつも得ていました
TypeError: Non-constant expressions cannot be multiplied
どんな助けでも大歓迎です。以下のコードを見つけてください
from pulp import *
#pulp.pulpTestAll()
prob = LpProblem("Profit", LpMinimize)
# Variables
x = LpVariable.dicts("x",[0,1,2],0 ,100)
def fun(x):
return x[0]*x[1]*x[2]
# Objective
opt=fun(x)
prob += opt
# Constraints
prob += x[0] <= 20
prob += x[1] <= x[2]+2
#print prob
print prob
status=prob.solve()
print "Status: %s" %LpStatus[status]
#Solution
for v in prob.variables():
print v.name, "=", v.varValue
print "Optimum =", value(prob.objective)