1

if ステートメントが必要な GAMS コードがあります。私はドルの状態について読んだことがあり、それが私を助けることができると思いました. GAMSユーザーガイドを読むと、次のように書かれています:

ドル条件

このセクションでは、GAMS の最も強力な機能の 1 つであるドル演算子について説明します。ドル演算子は論理条件で動作します。$(条件) という用語は、条件が論理条件である場合、「条件が有効であるように」と読むことができます。

重要: ドル論理条件に変数を含めることはできません。ただし、変数属性 (.l や .m など) は使用できます。

ドル演算子は、条件付き割り当て、式、および方程式をモデル化するために使用されます。次のサブセクションでは、その使用法を明確にする例を示します。次のセクションでは、ドル条件を使用して条件付き代入、式、方程式をそれぞれモデル化するトピックを個別に扱います。

私は自分のコードでそれを試しましたが、それでも常に同じエラーが見つかりました:

*** C:\route\Filename.gms のエラー 53

内因性の $ 操作は許可されていません

これは私の実際のコードです:

ACUMULADO_FIN_GRUPOS(k,l,t)..

GA(k,l,t)$(GA(k,l,t) GE GT(k,l)) =E= 0 ;

(変数の値が別の変数以上の場合、変数の値を0に変更したい)。私も .l 属性を試しました:

ACUMULADO_FIN_GRUPOS(k,l,t)..

GA(k,l,t)$(GA(k,l,t).l GE GT(k,l).l) =E= 0 ;

しかし、次のエラーが表示されます(.l定義のみ)

*** C:\route\Filename.gms のエラー 8

')' 期待される

お願いします、誰か助けてくれませんか?

前もって感謝します!!

4

1 に答える 1

0

以前のコードが正しくないことがわかりました。正しい方法は次のとおりです。

ACUMULADO_FIN_GRUPOS(k,l,t)..

GA(k,l,t)$(GA.l(k,l,t) GE GT.l(k,l)) =E= 0 ;

前の.l定義を設定します。

于 2016-06-17T11:13:01.453 に答える