在Matlab中,我们可以为每个变量定义非线性约束。假设我们在x1
中有两个变量x2
和x[x1, x2]
。因此我们决定对此有一个约束,我们应该像c = [c1, c2]
那样定义它,其中c1
特别为x1
定义,c2
为x2
定义。这样,我认为优化模型可以理解如何控制每个变量。
现在,我想在Python和Platypus
中执行相同的操作。尽管有定义约束的选项,但我不知道如何像定义每个变量的特殊约束那样定义它。
def funtion1()=
...
return [goal1, goal2] , [c1, c2]
或
def funtion1()=
...
return [goal1, goal2] , c
我认为我应该将约束放在函数中return
的第二个参数中,但是它应该是列表还是数字?我的意思是说,在迭代中,c1
可以,但是c2
不是,它应该像c = [-1, 1]
还是c = 1
这样的列表? (将“ <=“作为约束)
能否请您向我展示一个结构合理的Platypus
优化模型,该模型具有这样的约束?