AMPL中域外的数值参数

时间:2017-02-22 13:23:17

标签: optimization modeling ampl

我几周来一直陷入这个错误。我不知道这有什么问题。 AMPL或我的模型肯定在声明和参数定义中有一些错误。

我正在使用NEOS解算器,它给了我错误:

_cmdno 23执行错误"让"命令 (文件放大,第85行,偏移1582):     无法评估pow(-82.15570137754236,-3.5):域外的数值参数 os-7.neos-server.org  / opt / ampl / ampl -R amplin中的错误(2)

第85行在我的数据文件中显示为:

let rate [kl,is]:= B * log(1 +((Pmax / NPRBs [kl,is])* h [kl,is])/ NoB);

错误发生在" let"在我输入的第85行命令。错误是模型中的某些东西将负数增加到小数负幂,这是一个没有有效结果的操作作为实数。

在我使用的模型中:让h [kl,is]:= beta *(d [kl,is] ^( - alpha));
(-alpha也可能会引发错误)

任何出路?

1 个答案:

答案 0 :(得分:0)

我已修复此错误。我正在使用AMPL中的Normal()函数生成负值,因为此错误即将发生。

我使用另一个AMPL函数max(Normal(),1)用参数1包装Normal()。这意味着当max()的左侧有负数时。它将使用此处的正值1。您可以应用所需的值。