cplex

时间:2018-04-24 03:01:46

标签: optimization cplex nonlinear-optimization nonlinear-functions

是否可以在Cplex中建模非线性分段成本函数?

例如我在这里提到的数字:

enter image description here

non linear piece wise Cost function (black line)

我知道一种方法是将二次部分线性化为线性部分,但是,我想按原样使用二次部分。

您可以看到条件在决策变量本身上,成本函数可以表示如下:

如果x≲x0那么成本是二次部分;

其他费用是线性部分。

提前致谢:)

1 个答案:

答案 0 :(得分:1)

一种方法是在x:

选择最便宜的曲线
M=|f(xmax)−g(xmax)|

M是常数:两条曲线之间的最大差异(即 min cost cost ≥ f(x) or cost ≥ g(x) )。 δ是二元变量。我假设我们正在最小化成本,并且二次函数是凸的。

此构造实现

x0

解算器将始终丢弃最昂贵的功能,并保持最便宜。在你的图片中,这正是我们想要的:在x0的左边,二次函数是最便宜的,在data的右边,线性函数更便宜。这个公式将自动选择更便宜的选项。