【问题标题】:Removing specific equation from GAMS从 GAMS 中删除特定方程
【发布时间】:2025-11-25 09:15:01
【问题描述】:

我正在使用软件 GAMS,希望能对我面临的问题提供一些见解。

假设我们有以下结构(为了说明而大体简化):

Sets
      i        index
     /i1    'Index 1'
      i2    'Index 2'
      i3    'Index 3'
      i4    'Index 4'/

Variables

X(i);

Equations

EQX(i) ;

EQX(i)..  Whatever

;

从上面,我们对每个索引值 i1 到 i4 都有一个单独的方程。 有没有一种简单的方法可以在不完全重新定义新集合的情况下从这组方程中排除索引 3 (i3)?所以不是 EQX(i),而是为 EQX(i1)、EQX(i2) 和 EQX(i4) 定义方程?

非常感谢。

【问题讨论】:

    标签: gams-math


    【解决方案1】:

    如果它是您要排除的集合 i 的第三个元素,则前面的答案将执行此操作(您也可以将 $-condition 从 $(ord(i) < 3 or ord(i) > 3) 更改为 $(ord(i) <> 3) 以使其更短)。如果您担心名称 i3 与集合 i 的顺序无关,您也可以这样做以完全排除该元素:

    EQX(i)$(not sameAs(i, 'i3')).. Whatever ;
    

    【讨论】:

      【解决方案2】:
      EQX(i)$(ord(i) < 3 or ord(i) > 3)..
      

      【讨论】:

      • 欢迎来到 Stack Overflow,感谢您提供答案。您能否编辑您的答案以包括对您的代码的解释?这将有助于未来的读者更好地了解正在发生的事情,尤其是那些刚接触该语言并难以理解概念的社区成员。