GAMS 转换的非线性 objective 函数看起来与定义的不同 objective

GAMS translated nonlinear objective function looks different than defined objective

我正在研究 GAMS 库中 MINLP 模型 batchdes 的 batchdes.lst 文件。 objective函数是

定义 objective 函数 obj.. cost =g= sum(j, alpha(j)*(exp(n(j) + beta(j)*v(j)))); 但是,在 .lst 文件中的方程列表中显示为---- obj =G= objective 函数定义

obj..-(25141.1498186984)*v(混合器)-(64131.2769053431)*v(反应器)-(49066.7923833869)*v(离心机)-(41901.9163644973)*n(混合器)-(106885.4615)*n508 (反应器) - (81777.9873056449)*n(离心机) + 成本 =G= 0 ; (LHS = -230565.365179047,INFES = 230565.365179047 ****)

这里应用了什么样的操作? exp() 是如何翻译的?这是 GAMS 的功能还是所选的求解器?

我对 Pyomo 实施了相同的模型并使用来自 GAMS 的相同求解器求解,但是 Obj 在 .lst 文件中看起来并不相同。

谢谢!

您在这里看到的是每个变量在其当前水平值下的偏导数。这来自 GAMS documentation:

Nonlinear equations are treated differently. If the coefficient of a variable in the equation listing is enclosed in parentheses, then the corresponding constraint is nonlinear, and the value of the coefficient depends on the activity levels of one or more of the variables. The listing is not algebraic, but shows the partial derivative of each variable evaluated at their current level values.