如何在 matlab 中将以下约束传递给 ga?

How to pass the following constraints to ga in matlab?

我在 Matlab 中使用遗传算法 (ga),但我在为它提供很少的约束方面遇到了问题。 到目前为止,我只通过施加边界 LB 和 UB 来使用 ga。即,

0<a_1<50, 0<a_2<50, -2<a_3<0, -50<b<0.

但是,现在我需要满足几个进一步的条件:

-54-b<a_1<-b, -2<a_3<(a_1+b)/27, sqrt(12*a_1*a_3+12*a_3*b)<a_2<-1/3*(a_1+b+27*a_3)

为了引入这些约束,我可以在 objective 函数中引入惩罚因子,但 GA 将无法找到全局最优向量。你知道是否有正确的方法来实现这样的约束?

我是 ga 的新手,任何建议都会非常有用!

您也可以创建自己的约束函数,然后将此函数提供给 ga()。查看 this 以获得更多见解。在此页面中,您将找到 Mathworks 提供的有关具有上下限和约束的约束最小化问题的简短教程。