2

我有一个变量,我希望基于中间体的符号为 1 或 0。我可以使用基于符号返回 1 或 -1 的 sign2 并执行操作以将其变为 0 或 1。但是,当我探索时,我注意到 sign3 和 abs3 包含一个带有符号/绝对值的二进制变量。这些函数是否返回类似 [signum/absolute value, 0/1] 的列表?

4

1 回答 1

1

GEKKO 函数sign2sign3返回相同类型的输出,-1或者1取决于它们所应用的变量的符号。它们之间的区别在于signum(符号)操作是如何完成的。两种实现都是连续可微的,因此适用于基于梯度的优化。

sign2函数使用MPCC 公式来生成参数的符号,并且可以与任何求解器一起使用。该sign3函数使用二进制切换变量和 MINLP 求解器APOT

于 2019-04-03T21:50:58.327 回答