WCA水循环优化算法(MATLAB源码)
优化算法之水循环优化算法:水循环优化算 法 是 由 HadiEskandar等 人 于2012年提出,其理论受启发于大自然,是根据观察 大 自 然 水 循环过程中水由江、河、湖泊流向海洋的过程而提出的。自然界的水在太阳能和大气运动的驱动下,不 断 地 从 水面、陆面和植物的 茎 叶 面,通过蒸发或散发,以 水 汽 的 形式进入大气圈。水汽在大气圈中凝结成水滴,在 地 球 引力的作用下,以降水的形式降落到地面。到 达 地 球 表 面的降水,一部分通过地面渗入地下,一部分则 形 成 地 面 径流然后主要在重力作用下流入江、河、湖泊,再汇入海洋。水循环算法就是根据这一大自然现象即水循环中降水由溪流、河流流向大海的特点提出的。与 其 它 智 能 算法相似,该算法先以降雨层初始化形成一个初始粒子群即降水,选择最佳粒子位置(最 好 降 雨 层)作 为 大 海,然 后,选择一些较好的降雨层做为河流,其余的 降 雨 层 被 认为是流入河流或海洋的溪流。通 过 计 算 降 雨 层 的 适 应值,并将其进行对比,选取最优解(即大海)。
部分代码:
%% WCA算法
%清空窗口
clc
clear all
close all
%% 初始化参数
objective_function=@(x)fitness(x);% 加载适应度
LB=-150; % 变量下限
UB=150; % 变量上限
nvars=10; % 变量个数
Npop=50; % 种群
Nsr=4; % 河流海洋数量
dmax=1e-16; % 条件常数
max_it=100; % 迭代次数
tic %计数
N_stream=Npop-Nsr;
ind.position=[];
ind.cost=[];
pop=repmat(ind,Npop,1);
%% 初始化
for i=1:Npop
pop(i).position=LB+(UB-LB).*rand(1,nvars)
绘图:
更多代码请私聊
页:
[1]