Ampl vs gams MINLP组合优化语法

时间:2017-02-08 22:43:03

标签: python mathematical-optimization ampl gams-math

我正在寻找一个MINLP优化器来解决投资组合优化问题,该问题最小化x'.S.x,其中x是向量S是给定矩阵。存在x个元素依赖于ex的整数约束; x [i] = g [i] .K [i]其中g [i]是整数,K [i]是给定矢量,因此我们需要在最小化目标的同时找到g [i] s。

我正在考虑使用AMPLgams。主程序是在python中。我不确定这些是否是最好的MINLP,但无论如何,两个网站上似乎都有一些例子。就最小化目标的矩阵乘法而言,我不清楚是否有一种简单的方法在AMPL中编写它,我是否需要将其作为代数扩展来编写?你能用AMPL语言提供x'.S.x操作的例子吗?

就gams而言,我认为该软件包仅对有限使用多个变量是免费的。因此我正在考虑AMPL,但是对于较小的问题,如果我不能找出用于矩阵向量乘法的AMPL表示法,那么gams可能是解决方案

1 个答案:

答案 0 :(得分:0)

AMPL语法非常简单:

sum{i in I, j in I} x[i]*S[i,j]*x[j]

请注意,许多投资组合模型不需要完整的MINLP求解器,但可以使用Cplex和Gurobi等系统中的二次(和SOCP)功能来解决。你的问题有点难以解析(至少对我来说),但我相信你的模型属于这一类。