python - 使用 Pulp 进行线性编程:LpAffineExpression 出错
问题描述
我目前正在使用纸浆包进行线性规划。我试图设置随决策变量而变化的因变量但失败了......我所做的是:
opt = LpProblem(name="OPT")
# Data
df={"A":[5,4,3,4,6]}
a=df["A"]
# Set decision variable
var=LpVariable.dicts("Var", df.index, lowBound=-3.3, upBound=3.3, cat="Continuous")
# Set dependent variable
k={}
for i in df.index:
k[i]=math.tanh(-var[i])
# Set constraints
opt += a[i]-var[i] >= 0
# Define the objective function
opt += lpSum ((a[i]-var[i])*k[i]) for i in df.index)
opt_model.solve()
我得到“TypeError:必须是实数,而不是 LpAffineExpression”。我想知道如何在 tanh 函数中设置决策变量。
解决方案
这里有两个相关的错误。
math.tanh
不知道决策变量。它只能以数字作为参数。即使它被允许,这仍然是没有意义的,因为这会使问题成为非线性的。PuLP 仅适用于线性模型。
推荐阅读
- python - autoreload 模块不是 IPython 扩展
- jquery - 如何在jQuery中设置下一个元素值
- javascript - 如何从输出到 PHP 中获取隐藏的数组值
- sql - Oracle:如何使用多个选择子查询优化 SQL
- multithreading - odi 中的并行处理
- asp.net-core - 通过注释“LogLevel”属性显示日志信息
- java - ImageView 显示在模拟器上,但不在设备上。设备上的图像不可见
- google-analytics - 如何从邮政编码或坐标中获取 Google Analytics Measurement Protocol 的 geoID?
- google-bigquery - 为什么计划查询的查询正在运行,但不是 Bigquery 中的计划查询?
- c# - 中继器不适用于导出到 excel