目录
- 1.背景
- 2.算法原理
- 2.1算法思想
- 2.2算法过程
- 3.结果展示
- 4.参考文献
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 ) (3) \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{3} XStreanNew=XStrean+rand×C×(XRiver−XStrean)XStreamNew=XStream+rand×C×(XSea−XStream)XRiverNew=XRiver+rand×C×(XSea−XRiver)(3)
蒸发降雨
在水循环中,那些流速过慢或无法到达大海的溪流和河流,最终通过蒸发回归到大气中,这一过程有助于形成新的降水。因此,检查河流和溪流是否靠近海洋是重要的,因为距离较远的水体更有可能发生蒸发:
∣ X S e a i − X R i v e r i ∣ < d m a x (4) \left|X_{\mathrm{Sea}}^i-X_{\mathrm{River}}^i\right|<d_{\mathrm{max}}\tag{4} XSeai−XRiveri <dmax(4)
其中,dmax自适应调整:
d max i + 1 = d max i − d max i max iteration (5) d_{\max}^{i+1}=d_{\max}^{i}-\frac{d_{\max}^{i}}{\max\text{ iteration}}\tag{5} dmaxi+1=dmaxi−max iterationdmaxi(5)
蒸发降雨对河流和海洋的影响很小,降雨过程后溪流的位置更新:
X s t r e a m n e w = X s e a + μ × r a n d n ( 1 , N v a r ) (6) X_{{\mathrm{stream}}}^{{\mathrm{new}}}=X_{{\mathrm{sea}}}+\sqrt{\mu}\times\mathrm{randn}(1,N_{{\mathrm{var}}})\tag{6} Xstreamnew=Xsea+μ×randn(1,Nvar)(6)
流程图
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.