GAMS教程 6:绝对值约束与MinMax目标变量


绝对值约束与MinMax目标变量

GAMS教程 6:绝对值约束与MinMax目标变量

本节我们不讲新的优化模型,相反,这节我们讲讲GAMS如何处理优化问题中两个常见的问题。

1. 绝对值约束

我们前面介绍了线性模型和时序模型,虽然时序模型并不仅限于线性模型,时序模型的约束完全可以是二次的、三次的。但是考虑到我们只讲了线性模型,所以为了方便理解时序模型,我们才使用的现行约束。

事实上,我们的优化问题中经常会出现一类约束,这类约束就是绝对值约束。我们下面就将讲解如何使用GAMS来处理绝对值约束。

A. 绝对值约束的定义

绝对值约束是指形如下面的约束

其中:

  • $f(x)$不一定是线性的。但是为了便于理解,我们还是线性为例
  • $|f(x)|$不是线性约束。

为了方便简介,后面我们设

B. GAMS中处理绝对值约束

对于绝对值,有

因此为了在GAMS中为了处理绝对值,我们可以进行如下的变换

2. MinMax目标变量

和上面的绝对值约束一样,为了便于讲解如何利用GAMS解决MinMax目标变量问题,我们下面还是以线性模型为例。

A. MinMax目标变量的含义

所谓MinMax目标变量指的是我们在很多优化问题中,遇到一类优化问题的目标变量是混合了minmax的目标变量,即

B. GAMS处理MinMax目标变量

GAMS中处理MinMax目标变量的方法和处理绝对值约束的思路其实差不多,都是进行等价变换,将其转换为额外的约束。

处理MinMax目标变量最核心的,就是下面的等价变换

因此,在处理MinMax目标变量的时候,我们可以使用上面的等价变换先把内层的变换换掉,即

即通过添加

这个约束来把内层的循环消掉

同理,如果是外层max内层max的话,那么我们进行如下的变换

即通过添加

这个约束来消除内层循环


文章作者: Jack Wang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Jack Wang !
  目录