python - 使用 pyomo.environ 创建多元分段函数
问题描述
我正在尝试从多元非线性函数创建分段线性目标。使用 pyomo 内核库,我想出了以下工作示例:
import pyomo.environ as pyo
import pyomo.kernel as pmo
import numpy as np
from pyomo.core.kernel.piecewise_library.transforms_nd import piecewise_nd
model = pmo.block()
model.x = pmo.variable(lb=0, ub=3)
model.y = pmo.variable(lb=0, ub=3)
model.z = pmo.variable()
def f(x, y):
return x*y**2 + 20*np.sin(x*y)
var_list = [model.x, model.y]
tri = pmo.piecewise_util.generate_delaunay(var_list, num=20)
values = f(*tri.points.T)
model.pw = piecewise_nd(tri, values, input=var_list, output=model.z)
model.obj = pmo.objective(expr=model.z)
pyo.SolverFactory('glpk').solve(model, tee=True)
由于我想使用使用pyomo.environ
组件创建的 pyomo 模型,我更喜欢使用pyomo.environ.Piecewise
. 在文档中,没有给出使用多元函数的示例。
问题
是否可以仅使用来自的功能重新创建上述内容pyomo.environ
?
解决方案
推荐阅读
- javascript - 未捕获的 ReferenceError:__dirname 未使用 --prod 和 sourceMap 定义为 false
- firebase - 错误 canonicalCode: INVALID_ARGUMENT, "errorMessage": "`npm_install` 在 firebase deploy 时有 stderr 输出
- python - 使用参数中的多个动态元组调用 Python 函数 (geopy.distance.great_circle())
- linux - 将一组命令分配给使用 Zenity 创建的按钮
- windows - 适用于 Windows 的 LdapEnforceChannelBinding 配置
- scala - HList 的无形类型推断不起作用
- javascript - 在数组中搜索字符串并将它们添加到一个类
- ios - 在向上/向下按钮按下时平滑地向上和向下移动滚动视图。目标-c
- python - 我如何知道 filter() 在 Python3 中是否返回了任何内容
- xml - 有没有更简单的方法来使用 xpath 从 xml 中获取 id