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

时间:2016-02-15 17:18:30

标签: matlab constraints genetic-algorithm

我在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)

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

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

1 个答案:

答案 0 :(得分:0)

您也可以创建自己的约束函数,然后将此函数提供给ga()。请查看this以获取进一步的见解。在这个页面中,您将找到Mathworks关于约束最小化问题的简要教程,包括上限和下限以及约束。