用人工智能算法解非凸优化问题

如图,自己找的粒子群算法在约束条件这里卡住了。最好是用MATLAB写的。

img

等式可以在一开始的func中写好
条件可以在粒子群每一次x加上速度之后做一次惩罚。
大致的思路就是,更迭后的x带进去s.t.中检查一下是否符合要求,如果不符合要求则选取一种办法拉回到符合条件的区域,例如当前粒子再次随机生成并检查是否在条件区域内,一直随机生成直到粒子落进去,或者取消上次的速度方向上的矢量 即x=x-v,然后再赋予一个更小的速度vm,x=x+vm,并尝试再次判断是否落入条件区域,一直检查若有必要则一直缩减当前粒子的速度并回退再移动。

对于约束优化问题,我们得从约束处理上来做。
因此,需要结合你的粒子群算法和约束处理技术,而通常使用得约束处理技术采用可行性规则。
但想要使其做出得效果比较好,则需要加上约束函数m文件夹和可行性规则处理技术的代码,综合应用才可以解决。

想要了解人算法处理约束优化问题,可以看我主页的文章【matlab:差分进化算法处理约束优化问题---------------------约束进化优化的复合微分优化(CCODE)】,此文章采用的是差分进化算法来做的约束处理优化