1 简介

1.1  人工水母算法原理背景

水母生活在世界上不同深度和温度的水中。它们酷似钟状,一些水母的直径小于1cm,然有些水母直径则非常大。它们有各种各样的颜色、大小和形状。大多数水母偏好海洋环境。它们进食的方式有两种:1.利用触手把食物送进嘴里;2.以触手过滤水中的微小的浮游生物,经口腕沟靠纤毛作用送入口.然而,它们捕食方式也有两种:1.食用洋流带来的任何食物(被动);2.主动捕食猎物,利用触手刺中猎物,令其动弹不得(主动)。、
      水母利用触手刺中猎物,释放毒素,令其麻木。它们不会攻击人,但是触碰到它们的人可能会被蛰死。有些水母刺人很疼,但是不是致命的。表现的症状有引起疼痛、红肿、瘙痒、麻木等。然而,箱水母,又称海黄蜂,非常危险,致人死亡。这类水母多数出现在澳大利亚、菲律宾沿海水域,印度洋和太平洋中部。当它们聚集在一起形成水母潮时,才是最危险的。
      水母可以自己控制移动。它们下侧像一把伞一样合拢,利用体内喷水反射前进。尽管它们拥有这种能力,但是它们大多数漂流在水中依靠洋流和潮汐运动。当条件有利时,水母会形成群,这种被称为水母潮。水母是一种脆弱的生物,维持水母潮的关键是它们相对洋流的方向,才不至于被搁浅。
      水母潮形成的因素包括:洋流、可利用的营养物、氧气的可用性、捕食和温度等。在这些因素中,洋流是水母潮形成的主要因素。因为水母可以生活在高咸度和低氧区域,所以它们无须和其他生物竞争食物。咸水含有大量的碘,有利于水母息肉的产生。海水温度的上升,有利于水母潮的产生。因为在这种情况下,水母更容易存活。总而言之,水母潮的形成离不开生态系统和洋流地影响。
      洋流(Ocean Current),即海流,也称洋面流,是指海水沿着一定方向有规律的具有相对稳定速度的水平流动,是从一个海区水平或垂直地向另一个海区大规模的非周期性的运动,是海水的主要运动形式。洋流的尺度非常大。例如,在开阔的海洋中,洋流移动大约是次中等尺度;它们的大小可能只有几百米左右的中尺度特征,或者少数可能在几十公里左右。它们可能横穿或环绕整个海洋盆地,就像墨西哥湾流(北大西洋)、黑潮流(太平洋)和阿古拉斯洋流(印度洋)。形成洋流地主要因素是太阳辐射和海平面地风。
      水母自身的运动和洋流的运动促成了水母潮的形成,这种现象在海洋中随处可见。水母去的地方,食物数量各不相同。因此,通过食物比例的比较,确定最佳位置。

1.2 人工水母算法数学模型

1.2.1  模型假设

2020年Chou等人提出人工水母算法.该算法基于三个理想化规则:

  1. 水母要么跟随洋流,要么在群内自身移动,这两者运动由时间控制机制切换;

  2. 在海洋中,水母寻找食物。它们更多被食物数量多的位置吸引;

  3. 找到的食物数量由该位置和对应的目标函数决定。

1.2.2  洋流

1.2.3 水母种群

1.2.4  时间控制机制

1.3 初始化种群

1.4 边界处理

2 部分代码

%-----------------------------------------------------------------------------------------------------------------%
% Jellyfish Search Optimizer (JS) source codes demo version 1.0 Developed in MATLAB R2016a                     %%clear all
clc
close all
%% Select function
fnumber=1;            % Select function
[lb ub dim]=boundcondition(fnumber);
%% Set the parameters
Npop=50;              % Number of jellyfish
Max_iteration=100;   % Maximum numbef of iterations
para=[Max_iteration Npop];
%% Run JS optimizer
tic;
[u,fval,NumEval,fbestvl]=js(@fobj,fnumber,lb,ub,dim,para);
time=toc;
%% Display optimal results
display(['-------------------------------------------------------------------------']);
display([' Jellyfish Search Optimizer (JS) for mathematical benchmark problems   ']);
display(['-------------------------------------------------------------------------']);
display(['The best solution obtained by JS is : ', num2str(u)]);
display(['The best optimal value of the objective function found by JS is : ', num2str(fval)]);
%% Save optimal results
save('result.mat','time','u','fval','NumEval','fbestvl');
figure(1)
plot(fbestvl,'k','LineWidth',1.5)xlabel('迭代次数');ylabel('适应度');
img =gcf;  %获取当前画图的句柄
print(img, '-dpng', '-r600', './img.png')         %即可得到对应格式和期望dpi的图像

3 仿真结果

4 参考文献

[1]郑嘉利, 罗文聪, and 覃团发. "一种基于水母群算法的RFID天线优化部署方法.", CN111291582A. 2020.

5 MATLAB代码与数据下载地址

见博客主页

【优化求解】基于水母搜索优化器JS算法求解最优目标matlab源码相关推荐

  1. 【优化求解】基于猫群算法CSO求解最优目标matlab源码

    1 简介 猫群算法(CSO)是 2006 年由台湾学者 Chu 等人通过观察猫群在日常生活中的行为提出来的一种新型群体智能算法.猫群算法与遗传算法类似,是基于迭代的优化方法,但是没有遗传算法的交叉算子 ...

  2. 【优化求解】基于头脑风暴优化算法BSO求解最优目标matlab源码

    1 简介 受人类创造性解决问题过程--头脑风暴会议的启发, 2011年史玉回老师 在第二次群体智能国际会议(The Second International Conference on Swarm I ...

  3. 【优化求解】基于蝠鲼觅食优化算法MRFO求解最优目标matlab源码

    1 简介 蝠鲼觅食优化 (Manta ray foraging optimization,MRFO)是由 Zhao 等,在 2019 年提出的新型智能仿生群体算法. 2 部分代码 %_________ ...

  4. 【优化求解】基于引力搜索算法GSA求解最优目标matlab源码

    1 简介 2009,伊朗的Esmat Rashedi等人基于万有引力定律和粒子间相互作用提出了一种新型的优化算法--引力搜索算法(Gravitational Search Algorithm,GSA) ...

  5. 【优化求解】基于多元宇宙MVO算法求解最优目标matlab源码

    1 简介 2 部分代码 ```matlab %_____________________________________________________________________________ ...

  6. 【优化求解】基于病毒免疫算法(CHIO)求解最优目标matlab源码

    1 简介 In this paper, a new nature-inspired human-based optimization algorithm is proposed which calle ...

  7. matlab三维路径规划,【路径规划】基于A星算法的三维路径规划matlab源码

    %% 该函数用于演示基于A_Star算法的三维路径规划算法 %% 清空环境 clc clear %% 数据初始化 %下载数据 starttime=cputime; load HeightData z ...

  8. 【图像重建】基于matlab布雷格曼迭代算法集合ART算法CT图像重建【含Matlab源码 1905期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像重建]基于matlab布雷格曼迭代算法集合ART算法CT图像重建[含Matlab源码 1905期] 获取代码方式2: 通过订阅紫极神光 ...

  9. 【GA MTSP】基于matlab遗传算法求解多旅行商问题(多且同始终点)【含Matlab源码 1339期】

    一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[MTSP]基于matlab遗传算法求解多旅行商问题[ ...

最新文章

  1. python语言入门u-[学习总结] python语言学习总结 (一)
  2. Lambda表达式的语法格式
  3. linux中怎么添加附属组,Linux中如何使用附属属组创建文件
  4. .Net Core配置与自动更新
  5. 关注 Imagine Cup 2010, 参与软件设计“最具人气奖”投票
  6. BugkuCTF-MISC题random color
  7. ecshop轻松实现不同商品调用不同模板
  8. h2 mysql mode_H2 数据库快速入门
  9. EyeQ Ultra 芯片 面向自动驾驶
  10. ecshop send.php on line 71,搭建LNMP发布ecshop系统及压测启用opcache缓存与否的情况
  11. 电子书PDF网站大全
  12. mac idea svn配置
  13. ProgressBar 圆形进度条
  14. C++ RQNOJ 星门龙跃
  15. 制作思维导图的要点总结
  16. webpack基本使用
  17. 【区域赛总结】2015ACM-ICPC北京区域赛
  18. PHP 判断链表是否相交
  19. 视频聊天网站的研究、发展以及趋势(转)
  20. c语言中类似于大括号的符号,大括号符号 c语言大括号的用法

热门文章

  1. oracle存储过程ddl,Oracle 存储过程中的DDL语句
  2. Vue3管理后台项目使用高德地图选点
  3. CSS换行设置 white-space , word-break , overflow-wrap(原名word-wrap) , hyphens连字符 , text-overflow
  4. 分割字符串的方法java_java基础:字符串分割的两种方法
  5. SAP 跨公司销售业务
  6. idea系列激活服务器
  7. 查看Ubuntu版本号和内存等信息
  8. `Mask`工具使用示例
  9. [pycharm]添加环境变量
  10. 面试必备:秒杀场景九个细节