0

我的 GAMS 模型 (NLP) 中的求解摘要返回以下内容:

**** SOLVER STATUS     1 Normal Completion         
**** MODEL STATUS      19 Infeasible - No Solution
**** OBJECTIVE VALUE               NA

我的一个变量的界限是:

y.lo = 0, y.up = 0.15

如果我将界限更改为:

y.lo = 0, y.up = 0.12

然后模型收敛并给出以下结果:

**** SOLVER STATUS     1 Normal Completion         
**** MODEL STATUS      2 Locally Optimal           
**** OBJECTIVE VALUE         66013164.0000

事实证明,最终的变量级别是

y.l = 0.12

即使解决方案(0.12)在搜索空间内,GAMS 怎么能确定模型在第一种情况下不可行(上限 = 0.15)?(顺便说一句,我正在使用 ANTIGONE 求解器)

此外,是否有任何有条不紊的方法来确定哪些约束/变量界限导致模型不可行?

为了找到这个(看似不合逻辑的)错误,我不得不花费数小时猜测和检查模型中的任意细节,没有押韵或理由。必须有更好的方法,对吧?

4

1 回答 1

0

该问题不是 GAMS 错误,而是您正在使用的求解器。你试过 CONOPT 吗?

您可以在 lst 文件中看到不可行的约束。一些方程应该有 (***INFES) 标记

此外,为了解决您的问题,我会尝试为 NLP 求解器提供一个初始解决方案,该解决方案在某种程度上足够接近最优解决方案,或者至少是可行的。

我还会尝试检查您正在使用的求解器的选项,以便以可行的起点开始求解过程。

非凸优化并不容易。

我希望这有帮助。

于 2017-05-25T11:31:55.297 回答