热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

惊!?人工鱼群算法与函数寻优

基于人工鱼群的函数寻优算法人工鱼群算法例题与算法思路代码实现结果与分析人工鱼群算法人工鱼群算法是指在一片水域中,鱼往往能自行或尾随其他鱼找到营养物质多的地方ÿ


基于人工鱼群的函数寻优算法

  • 人工鱼群算法
  • 例题与算法思路
  • 代码实现
  • 结果与分析


人工鱼群算法

在这里插入图片描述

人工鱼群算法是指在一片水域中,鱼往往能自行或尾随其他鱼找到营养物质多的地方,因而鱼生存数目最多的地方一般就是本水域中营养物质最多的地方,人工鱼群算法就是根据这一特点,通过构造人工鱼来模仿鱼群的觅食、聚群及追尾行为,从而实现寻优。人工鱼群

鱼类通常具有以下行为:觅食行为:这是生物一种最基本的行为,也是趋向食物的一种活动;一般认为这种行为是通过视觉或味觉感知水中的食物量或浓度来选择趋向的。聚群行为:这是鱼类常见的一种现象,大量或少量的鱼都能聚集成群,这是它们在进化过程中形成的一种生存方式,可以进行集体觅食或躲避敌害。随机行为:鱼在水中悠闲自由游动,基本上是随机的,其实它们也是为了更大范围地寻找食物和伙伴。

以上活动是鱼的几个典型的行为,这些行为在不同时刻会相互转化,而这种转换通常是鱼通过对环境的感知来自主实现的,这些行为与鱼的觅食和生存都存在着密切的关系,并且与优化问题的解决也有着密切的关系。


例题与算法思路

在这里插入图片描述
在这里插入图片描述


代码实现

详细代码和过程可以私聊笔者或评论

% 鱼群算法
clear
clc
figure(1)
hold on
% 参数设置及鱼群初始化
fishnum = 100;
maxgen = 50;
trynumber = 100;
visual = 2.5;
delta = 0.618;
step = 0.3;
lb_ub = [-10,10,2;];
x = afinit(fishnum,lb_ub);
lbub = [];
for i = 1:size(lb_ub,1)lbub = [lbub;repmat(lb_ub(i,1:2),lb_ub(i,3),1)];
end
gen = 1;
BestY = -1*ones(1,maxgen);
BestX = -1*ones(2,maxgen);
besty = -100;
y = affood(x);
while gen < maxgenfor i &#61; fishnum[xi1,yi1] &#61; afswarm(x,i,visual,step,delta,trynumber,lbub,y); % 聚群行为[xi2,yi2] &#61; affollow(x,i,visual,step,delta,trynumber,lbub,y); % 追尾行为endif yi1 > yi2x(:,i) &#61; xi1;y(1,i) &#61; yi1;elsex(:,i) &#61; xi2;y(1,i) &#61; yi2;end[ymax,index] &#61; max(y);figure(1)hold onplot(x(1,index),x(2,index),&#39;.&#39;,&#39;color&#39;,[gen/maxgen,0,0])hold onif ymax > bestybesty &#61; ymax;bestx &#61; x(:,index);BestY(gen) &#61; ymax;[BestX(:,gen)] &#61; x(:,index);elseBestY(gen) &#61; BestY(gen-1);[BestX(:,gen)] &#61; BestX(:,gen-1);endgen &#61; gen &#43; 1;
end
plot(bestx(1),bestx(2),&#39;ro&#39;,&#39;MarkerSize&#39;,100)
ylabel(&#39;y&#39;)
title(&#39;鱼群算法在迭代过程中最优坐标的移动&#39;)
figure
plot(1:maxgen,BestY)
xlabel(&#39;迭代次数&#39;)
ylabel(&#39;优化值&#39;)
title(&#39;迭代过程&#39;)
disp([&#39;最优解X&#39;,num2str(bestx&#39;,&#39;%1.5f&#39;)])
disp([&#39;最优解Y&#39;,num2str(besty,&#39;%1.5f&#39;)])
xlabel(&#39;x&#39;)

详细代码和过程可以私聊笔者或评论


结果与分析

在这里插入图片描述
在这里插入图片描述
很感谢你能看到这里&#xff0c;向你比心哦。
关于此类问题&#xff0c;如果还有问题可以参看我的其他文章,如果能帮助到大家&#xff0c;是笔者的荣幸。
多种群遗传算法的函数寻优
遗传算法与非线性规划求解
GA在一般线性或非线性规划问题中的应用
浅谈使用遗传算法工具箱的优化实例
在这里插入图片描述


推荐阅读
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 深入理解K近邻分类算法:机器学习100天系列(26)
    本文详细介绍了K近邻分类算法的理论基础,探讨其工作原理、应用场景以及潜在的局限性。作为机器学习100天系列的一部分,旨在为读者提供全面且深入的理解。 ... [详细]
  • 历经三十年的开发,Mathematica 已成为技术计算领域的标杆,为全球的技术创新者、教育工作者、学生及其他用户提供了一个领先的计算平台。最新版本 Mathematica 12.3.1 增加了多项核心语言、数学计算、可视化和图形处理的新功能。 ... [详细]
  • 计算机网络复习:第五章 网络层控制平面
    本文探讨了网络层的控制平面,包括转发和路由选择的基本原理。转发在数据平面上实现,通过配置路由器中的转发表完成;而路由选择则在控制平面上进行,涉及路由器中路由表的配置与更新。此外,文章还介绍了ICMP协议、两种控制平面的实现方法、路由选择算法及其分类等内容。 ... [详细]
  • 在进行QT交叉编译时,可能会遇到与目标架构不匹配的宏定义问题。例如,当为ARM或MIPS架构编译时,需要确保使用正确的宏(如QT_ARCH_ARM或QT_ARCH_MIPS),而不是默认的QT_ARCH_I386。本文将详细介绍如何正确配置编译环境以避免此类错误。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 本文介绍 Java 中如何使用 Year 类的 atMonth 方法将年份和月份组合成 YearMonth 对象,并提供代码示例。 ... [详细]
  • yikesnews第11期:微软Office两个0day和一个提权0day
    点击阅读原文可点击链接根据法国大选被黑客干扰,发送了带漏洞的文档Trumps_Attack_on_Syria_English.docx而此漏洞与ESET&FireEy ... [详细]
  • vivo Y5s配备了联发科Helio P65八核处理器,这款处理器采用12纳米工艺制造,具备两颗高性能Cortex-A75核心和六颗高效能Cortex-A55核心。此外,它还集成了先进的图像处理单元和语音唤醒功能,为用户提供卓越的性能体验。 ... [详细]
  • Linux环境下进程间通信:深入解析信号机制
    本文详细探讨了Linux系统中信号的生命周期,从信号生成到处理函数执行完毕的全过程,并介绍了信号编程中的注意事项和常见应用实例。通过分析信号在进程中的注册、注销及处理过程,帮助读者理解如何高效利用信号进行进程间通信。 ... [详细]
  • Logback使用小结
    1一定要使用slf4j的jar包,不要使用apachecommons的jar。否则滚动生成文件不生效,不滚动的时候却生效~~importorg.slf ... [详细]
  • 中断向量是计算机系统中用于指向中断服务程序的入口地址。每个中断向量对应一个特定的中断事件,存储在内存中的中断向量表中。该表通常包含256个条目,每个条目占用4个字节,用于存放跳转指令或直接指向中断处理程序的地址。 ... [详细]
author-avatar
dgsfdg3t4543
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有