【智能算法】水循环算法(WCA)原理及实现
在水循环中,那些流速过慢或无法到达大海的溪流和河流,最终通过蒸发回归到大气中,这一过程有助于形成新的降水。WCA模拟了大自然水循环过程,将最优解的寻找过程与自然界水循环过程相结合,以适应度函数为导向,进行溪流、河流的汇合,以蒸发降雨作用为辅助跳出局部最优解。2012年,H Eskandar等人受到自然水循环过程启发,提出了水循环算法(Water Cycle Algorithm, WCA)。

1.背景
2012年,H Eskandar等人受到自然水循环过程启发,提出了水循环算法(Water Cycle Algorithm, WCA)。


2.算法原理
2.1算法思想
WCA模拟了大自然水循环过程,将最优解的寻找过程与自然界水循环过程相结合,以适应度函数为导向,进行溪流、河流的汇合,以蒸发降雨作用为辅助跳出局部最优解。

2.2算法过程
海洋、河流和溪流数量设置为:
N s r = Number of Rivers + 1 ⏟ S e a N R a i n d r o p s = N p o p − N s r (1) \begin{aligned}N_{\mathrm{sr}}&=\text{Number of Rivers}+\underbrace{1}_{\mathrm{Sea}}\\N_{\mathrm{Raindrops}}&=N_{\mathrm{pop}}-N_{\mathrm{sr}}\end{aligned}\tag{1} NsrNRaindrops=Number of Rivers+Sea
1=Npop−Nsr(1)
位置更新
每轮迭代中,溪流、大海都要根据引导关系进行自我的位置更新:
X S t r e a n N e w = X S t r e a n + r a n d × C × ( X R i v e r − X S t r e a n ) X S t r e a m N e w = X S t r e a m + r a n d × C × ( X S e a − X S t r e a m ) X R i v e r N e w = X R i v e r + r a n d × C × ( X S e a − X R i v e r ) (2) \begin{gathered} X_{Strean}^{New}=X_{Strean}+rand\times C\times(X_{River}-X_{Strean}) \\ X_{Stream}^{New}=X_{Stream}+rand\times C\times (X_{Sea}-X_{Stream}) \\ X_{River}^{New}=X_{River}+rand\times C\times (X_{Sea}-X_{River}) \end{gathered}\tag{2} XStreanNew=XStrean+rand×C×(XRiver−XStrean)XStreamNew=XStream+rand×C×(XSea−XStream)XRiverNew=XRiver+rand×C×(XSea−XRiver)(2)
蒸发降雨
在水循环中,那些流速过慢或无法到达大海的溪流和河流,最终通过蒸发回归到大气中,这一过程有助于形成新的降水。因此,检查河流和溪流是否靠近海洋是重要的,因为距离较远的水体更有可能发生蒸发:
∣ X S e a i − X R i v e r i ∣ < d m a x (3) \left|X_{\mathrm{Sea}}^i-X_{\mathrm{River}}^i\right|<d_{\mathrm{max}}\tag{3}
XSeai−XRiveri
<dmax(3)
其中,dmax自适应调整:
d max i + 1 = d max i − d max i max iteration (4) d_{\max}^{i+1}=d_{\max}^{i}-\frac{d_{\max}^{i}}{\max\text{ iteration}}\tag{4} dmaxi+1=dmaxi−max iterationdmaxi(4)
蒸发降雨对河流和海洋的影响很小,降雨过程后溪流的位置更新:
X s t r e a m n e w = X s e a + μ × r a n d n ( 1 , N v a r ) (5) X_{{\mathrm{stream}}}^{{\mathrm{new}}}=X_{{\mathrm{sea}}}+\sqrt{\mu}\times\mathrm{randn}(1,N_{{\mathrm{var}}})\tag{5} Xstreamnew=Xsea+μ×randn(1,Nvar)(5)
流程图

3.结果展示
使用测试框架,测试WCA性能 一键run.m
CEC2017-F15


4.参考文献
[1] Eskandar H, Sadollah A, Bahreininejad A, et al. Water cycle algorithm–A novel metaheuristic optimization method for solving constrained engineering optimization problems[J]. Computers & Structures, 2012, 110: 151-166.
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)