gams模型中的条件二元变量逻辑

时间:2015-07-08 10:36:53

标签: model binary gams-math

这是针对gams中的模型,

我有一个二进制变量(B(N))和一个实变量(u(N)),其中N是一个集合。我希望二进制变量在u为零时等于零,并且当u不为零时等于一。

如果我可以使用'if'语句,但是我不能在模型方程中使用它们,这很容易,所以需要用数学逻辑来完成......

2 个答案:

答案 0 :(得分:0)

没关系!我找到了解决方案:

B(N) =L= rel_ne(u(N),0)
B(N) =G= rel_ne(u(N),0)

这种接缝工作正常。它可能不是最优雅的解决方案,但无论如何。

如果u(N)不等于0,则rel_ne返回1,否则返回0。

答案 1 :(得分:0)

我认为模拟这种情况的另一种可能性如下:

B(N)*LB(N) =L= u(N) B(N)*UB(N) =G= u(N)

其中 UB(N) 是 u(N) 实变量的上限,LB(N) 是下限。因此,当 u(N) 为 0 时,B(N) 为 0,对于正 u(N) 值,B(N) 值为 1。

如果您没有明确的上限/下限,只需为 LB 设置 0,为 UB 设置一个大数。