Model.setPWLObj ()
Model.setPWLObj ()
setPWLObj(var, x, y)为变量设置分段线性目标函数。
这个方法的参数指定了一个点列表,这些点为单个变量定义了一个分段线性目标函数。具体来说,和参数给出函数顶点的坐标。
例如,假设我们想定义函数如下所示:
更正式的说法是一套点
定义如下分段线性函数:
的条目必须以非递减顺序出现。两点可以相等坐标——这对于在目标函数中指定离散跳转非常有用。
注意分段线性目标可以改变模型的类型。具体地说,在一个连续模型中包含一个非凸分段线性目标函数将把该模型转换为一个MIP。这将显著增加求解模型的成本。
为变量设置分段线性目标将设置Obj属性把这个变量设为0。同样,设置Obj
属性将删除该变量上的分段线性目标。
每个变量都可以有自己的分段线性目标函数。它们必须单独指定,即使多个变量共享同一个函数。
参数:
var:一个Var对象,该对象给出正在设置其目标函数的变量。
x:定义分段线性函数的点的值。必须按非递减顺序排列。
y:定义分段线性函数的点的值。
使用示例:
模型。setPWLObj(var, [1,3,5], [1,2,4])