分段多维

(函数来自 pyomo.core.kernel.piecewise_library.transforms_nd)

pyomo.core.kernel.piecewise_library.transforms_nd.piecewise_nd(tri, values, input=None, output=None, bound='eq', repn='cc')[source]

模拟一个多变量分段线性函数。

此函数接受一个D维三角剖分和与该三角剖分点相关联的函数值列表,并将此输入数据转换为一组变量和约束,这些变量和约束在输入变量的D维向量和单个输出变量之间强制执行分段线性关系。在一般情况下,此转换需要使用离散决策变量。

Parameters:
  • tri (scipy.spatial.Delaunay) –

    离散变量域上的三角剖分。可以使用变量列表通过实用函数 util.generate_delaunay() 生成。必需的属性:

    • points: 一个形状为 (npoints, D) 的数组,列出离散点的 D 维坐标。

    • simplices: 一个形状为 (nsimplices, D+1) 的整数数组,指定定义每个三角剖分单纯形的点向量的 D+1 个索引。

  • (numpy.array) – 一个形状为 (npoints,) 的数组,表示在三角剖分点数组中每个坐标处的分段函数的值。

  • input – 一个长度为D的变量或表达式列表,作为分段函数的输入。

  • output – 被约束为分段线性函数输出的变量。

  • bound (str) –

    对输出表达式施加的约束类型。可以是以下之一:

    • ’lb’: y <= f(x)

    • ’eq’: y = f(x)

    • ’ub’: y >= f(x)

  • repn (str) –

    使用的分段表示类型。可以是以下之一:

    • ’cc’: 凸组合

Returns:

一个块

包含任何新变量、约束和 用于分段表示的其他组件

Return type:

TransformedPiecewiseLinearFunctionND