象群游牧算法-Matlab
1. 适应度函数:
function z=chaffer(x)%chaffer函数x=(0...0) f(x)=0 x[-10,10]%%没测
n=10;
s1=0;
for i=1:n
s1=s1+x(i)^2;
end
z=((sin(sqrt(s1)))^2-0.5)/(1+0.001*s1)+0.5;
end
2. EHO主函数
% ----------------------------------------------------------
% Title: Elephant Herbing Optimization Algorithm
% Institution: XI'AN POLYTECHNIC UNIVERSITY
% Author: Liwenchao
% Time: 2020-11-8
% ----------------------------------------------------------
clc
clear
% ----------------------------
% Definition of Problems
% ---------------------------- CostFunction = @(x) chaffer(x); % cost function
dim_Var = 10; % variables of dimensions
VarMin = -32.768; % lower boundary
VarMax = 32.768; % upper boundary % -------------------------------------------------------------------------
% Setting Parameters of Elephant Herbing Optimization Algorithm
% ------------------------------------------------------------------------- alpha = 0.75; % alpha is a scale factor that determines the influence of matriarch on elephant
beta = 0.01; % beta is a scale factor that determines the influence of the center of clan on elephant
epoches = 1000; % the maximum number of epoches
num_clan = 5; % the number of clans
num_pop = 10; % the number of elephants in each clans
num_male = 1; % leave family group % -----------------------------------
% Initialization of Population
% ----------------------------------- init_pop = VarMin + rand(num_clan*num_pop, dim_Var) .* (VarMax - VarMin);
pop_fitness = zeros(num_pop, 1);
fit_clan = zeros(num_pop, 1);
pop_best_fitness = zeros(epoches, 1); for n=1: num_clan*num_pop
pop_fitness(n) = CostFunction(init_pop(n, :));
end
[pop_fbest, pop_best_loc] = min(pop_fitness);
best_pop = init_pop(pop_best_loc, :); %------------------------------------------
% EHO generation starts ......
%------------------------------------------
for iter=1:epoches
for j=1: num_clan
clan = init_pop((j-1)*num_pop +1: j * num_pop, :);
for k=1: num_pop
fit_clan(k,:) = CostFunction(clan(k, :));
end
% best fitness value and its location
[fbest, best_loc] = min(fit_clan);
clan_best = clan(best_loc, :);
% worst fitness value and its location
[fworst, worst_loc] = max(fit_clan);
clan_worst = clan(worst_loc, :);
for k=1:num_pop
if any((k~=best_loc)&(k~=worst_loc))
% update elephant position in clan except best and worst elephant
clan(k, :) = clan(k, :) + alpha*(clan_best - clan(k, :))*rand;
elseif k==best_loc
% update leader or matriarch
clan_center = sum(clan) / num_pop;
clan(k, :) = beta*clan_center;
elseif k==worst_loc
% update worst elephant or male
clan(k, :) = VarMin + rand* (VarMax - VarMin + 1);
end
init_pop((j-1)*num_pop +1: j * num_pop, :) = clan;
end
end
% ----------------------------------------------------------------
% evaluation population by the newly updated positions
% ----------------------------------------------------------------
for n=1: num_clan*num_pop
pop_fitness(n) = CostFunction(init_pop(n, :));
end
[new_pop_fbest, new_pop_best_loc] = min(pop_fitness);
if new_pop_fbest<pop_fbest
pop_fbest = new_pop_fbest;
pop_best_loc = new_pop_best_loc;
init_pop(pop_best_loc, :) = init_pop(new_pop_best_loc, :);
end
pop_best_fitness(iter, :) = pop_fbest;
disp(['Iteration ' num2str(iter) ': Best Cost = ' num2str(pop_fbest)]);
disp(init_pop(pop_best_loc, :));
end
3. 可视化
% -------------------------------------
% visualization
% -------------------------------------
figure;
%plot(pop_best_fitness)
semilogy(pop_best_fitness);
xlabel('iteration');
ylabel('fitness');
legend('chaffer');
title('Elephant Herbing Optimization')
4. 结果显示

象群游牧算法-Matlab的更多相关文章
- 象群游牧算法--EHO
象群游牧算法的数学模型 象群的游牧行为非常复杂,但是其中一些行为可以帮助我们寻找全局最优解和局部最优解.对此,进行数学建模为: (1) 象群的每个部落都有固定数目的大象: (2) 每次迭代中,部落中都 ...
- 粒子群优化算法—Matlab
PSO算法 clc; clear ; close ; %% Problem Definition CostFunction = @(x) sphere(x); % Cost Function nVar ...
- 粒子群优化算法PSO及matlab实现
算法学习自:MATLAB与机器学习教学视频 1.粒子群优化算法概述 粒子群优化(PSO, particle swarm optimization)算法是计算智能领域,除了蚁群算法,鱼群算法之外的一种群 ...
- MATLAB粒子群优化算法(PSO)
MATLAB粒子群优化算法(PSO) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 一.介绍 粒子群优化算法(Particle Swarm Optim ...
- 粒子群优化算法对BP神经网络优化 Matlab实现
1.粒子群优化算法 粒子群算法(particle swarm optimization,PSO)由Kennedy和Eberhart在1995年提出,该算法模拟鸟集群飞行觅食的行为,鸟之间通过集体的协作 ...
- 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法
若干年前读研的时候,学院有一个教授,专门做群蚁算法的,很厉害,偶尔了解了一点点.感觉也是生物智能的一个体现,和遗传算法.神经网络有异曲同工之妙.只不过当时没有实际需求学习,所以没去研究.最近有一个这样 ...
- [Algorithm] 群体智能优化算法之粒子群优化算法
同进化算法(见博客<[Evolutionary Algorithm] 进化算法简介>,进化算法是受生物进化机制启发而产生的一系列算法)和人工神经网络算法(Neural Networks,简 ...
- 计算智能(CI)之粒子群优化算法(PSO)(一)
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! 计算智能(Computational Intelligence , ...
- 数值计算:粒子群优化算法(PSO)
PSO 最近需要用上一点最优化相关的理论,特地去查了些PSO算法相关资料,在此记录下学习笔记,附上程序代码.基础知识参考知乎大佬文章,写得很棒! 传送门 背景 起源:1995年,受到鸟群觅食行为的规律 ...
随机推荐
- Linux 软连接与硬连接 区别
先说结论 软连接相当于快捷方式,访问软连接会被替换为其指向的绝对路径,如果其指向的文件被删除,则无法访问. 硬连接相当于指针,与它指向的文件都指向相同的inode,当其指向的文件被删除,inode由于 ...
- [cf1305G]Kuroni and Antihype
对整个过程构造一张有向图,其中$(x,y)\in E$当且仅当$x$把$y$加入,且边权为$a_{x}$ 显然这是一棵外向树森林,并再做如下两个构造: 1.新建一个点$a_{0}=0$,将其向所有入度 ...
- 一个非常好用的IDEA插件,用于填充set
对于对接三方接口总有一堆字段参数,如在入参时需要赋值,将请求参数封装成一个pojo实体类,然后需要为其set,调用许多setter方法,如果一行行去编写很麻烦,...能不能节省一下我仅存的生产力呀.. ...
- 【2020五校联考NOIP #6】最佳观影
题意: 给出一个 \(k \times k\) 的网格和 \(n\) 次操作.其中 \(k\) 为奇数. 每次操作给出一个数 \(m\).每次你要找出一个三元组 \((x,l,r)\) 使得: \(r ...
- sigma网格中水平压力梯度误差及其修正
1.水平梯度误差产生 sigma坐标系下,笛卡尔坐标内水平梯度项对应形式为 \[\begin{equation} \left. \frac{\partial }{\partial x} \right| ...
- MEGAN4,MEGAN5和MEGAN6的Linux安装和使用
目录 MEGAN 4 MEGAN 5 MEGAN 6 MEGAN(Metagenome Analyzer)是宏基因组学进行物种和功能研究的常用软件,实际上现在的Diamond+MEGAN6已经是一套比 ...
- tabix 操作VCF文件
tabix 可以对NGS分析中常见格式的文件建立索引,从而加快访问速度,不仅支持VCF文件,还支持BED, GFF,SAM等格式. 下载地址: 1 https://sourceforge.net/pr ...
- mysql 索引的注意事项
mysql 无法使用索引的查询 索引是什么,为什么要用索引,索引使用的时候要注意什么,那些情况下索引无法起作用. 1,索引是什么 mysql的索引也是一张表,并且是一个有序的表,主要记录了需要索引的数 ...
- 如何优雅地将printf的打印保存在文件中?
我们都知道,一般使用printf的打印都会直接打印在终端,如果想要保存在文件里呢?我想你可能想到的是重定向.例如: $ program > result.txt 这样printf的输出就存储在r ...
- python函数初体验
函数 函数参数w 形式参数>>>>(被指定具体的值)默认参数, 实际参数是调用时候的实际指定参数 我们把函数⾥⾯的参数叫形式函数,函数实际调⽤的时候,赋予的参数叫实际函数 定义 ...