蛇优化算法

news/2024/10/17 17:15:34/

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 蛇优化算法
  • 算法流程图
  • 初始化
  • 进化操作
    • 搜索阶段(无食物)——全局搜索
    • 搜索阶段(有食物)——局部搜索
      • 战斗模式
      • 交配模式
  • 备注
  • 测试结果


蛇优化算法

蛇优化算法(SO)主要是来源于蛇的交配行为。通过当前环境的温度、食物判断个体的下一步行为。
(1)当前食物不足时,个体搜索食物。

(2)当食物充足(>0.25),温度低(<0.6)时,个体进行战斗模式/交配模式

(3)当食物充足(>0.25),温度高(>=0.6)时,个体靠近食物

算法流程图

在这里插入图片描述

初始化

该算法将群体分为2个数量相同的雄性和雌性群体。
eq:
Nm表示雄性个体的数目,Nf表示雌性个体的数目
在这里插入图片描述

进化操作

计算食物Q
在这里插入图片描述
计算温度
在这里插入图片描述

搜索阶段(无食物)——全局搜索

当无食物的时候**(Q<0.25),蛇随机选择**位置进行移动。

雄性个体的位置移动:
在这里插入图片描述
雌性个体的位置移动:

在这里插入图片描述
雄性、雌性发现个体的能力
在这里插入图片描述
在这里插入图片描述

搜索阶段(有食物)——局部搜索

**(1)**Q>=0.25,且Temp>0.6时
个体向食物(最好的个体)靠近。
雄性个体位置更新:
(2)Q>=0.25,Temp<0.6时,个体进入战斗或交配模式

战斗模式

雄性个体的位置更新
在这里插入图片描述
雌性个体的位置更新
在这里插入图片描述
雄性、雌性战斗力
在这里插入图片描述

在这里插入图片描述

交配模式

雄性个体的位置更新:
在这里插入图片描述
雌性个体的位置更新
在这里插入图片描述
雄性、雌性个体的交配能力
在这里插入图片描述

如果孵化出个体,替换雄和雌个体最差的个体
在这里插入图片描述

备注

在进行代码复现的时候,觉得在个体在搜索食物——全局搜索中,雌性个体的更新位置有些奇怪,
在这里插入图片描述
**雌性个体的更新位置和雄性不同,**这点不知道是什么意思。

测试结果

在代码复现解决F1~F11测试问题时,出现较多测试问题效果不佳的情况,希望大家能给点意见,比如:全局搜索时雌性个体的位置更新是如何的?

function my_fitness=my_function(X)% n = size(X,2); %计算x的维度
% f = 0;
% for i = 1:n
%     f = f+(X(i).^2).^2;
% end
% my_fitness = f;o=sum(X.^4);
my_fitness=o;%F1测试问题[-100,100] min=0
% o=sum(X.^2);
% my_fitness=o;%F2测试问题[-10,10] min=0;
% o=sum(abs(X))+prod(abs(X));
% my_fitness=o;%F3测试问题——结果极差 min=0
% dim=size(X,2);
% o=0;
% for i=1:dim
%     o=o+sum(X(1:i))^2;
% end
% my_fitness=o;%F4测试问题——结果极差[100,100] min=0
% o=max(abs(X));
% my_fitness=o;%F5测试问题[-30,30] min=0
% dim=size(X,2);
% my_fitness=sum(100*(X(2:dim)-(X(1:dim-1).^2)).^2+(X(1:dim-1)-1).^2);%F6测试问题[-100,100] min=0
% o=sum(abs((X+.5)).^2);
% my_fitness=o;%F7测试问题[-1.28,1.28]——测试结果不佳 min=0
% dim=size(X,2);
% o=sum([1:dim].*(X.^4))+rand;
% my_fitness=o;%F8测试问题(多峰)[-500,500]——测试结果不佳 min=-12569.5
% o=sum(-X.*sin(sqrt(abs(X))));
% my_fitness=o;%F9测试问题  [-5.12,5.12]——测试结果不佳  min=0
% dim=size(X,2);
% o=sum(X.^2-10*cos(2*pi.*X))+10*dim;
% my_fitness=o;%F10测试问题[-32,32]——测试结果不佳 min=0
% dim=size(X,2);
% o=-20*exp(-.2*sqrt(sum(X.^2)/dim))-exp(sum(cos(2*pi.*X))/dim)+20+exp(1);
% my_fitness=o;%F11测试问题[-600,600] min=0
% dim=size(X,2);
% o=sum(X.^2)/4000-prod(cos(X./sqrt([1:dim])))+1;
% my_fitness=o;end

http://www.ppmy.cn/news/431962.html

相关文章

Linux之线程安全(下)

文章目录 前言一、Linux线程互斥1.mutex的理解锁原子性互斥锁实现原子性的原理 2.mutex的封装——Mutex.hpp3.可重入和线程安全可重入线程安全线程安全不一定是可重入的&#xff0c;而可重入函数一定是线程安全的。 4.死锁概念造成死锁的四个必要条件如何避免死锁 二、Linux线程…

这些带斑点的蛇实在太漂亮了,盘点18种带斑点的蛇

大自然充满了迷人的动植物&#xff0c;色彩绚丽&#xff0c;令人惊叹&#xff0c;尤其是蛇。许多沙漠蛇有中性的沙色&#xff0c;而另一些则有明亮、大胆的图案&#xff0c;很容易激发新的时尚潮流。一些蛇有大片斑块&#xff0c;而另一些则有各种形状和大小的条纹和斑点。今天…

razer金环蛇双击问题实战解决

近日&#xff0c;用了许久的razer金环蛇出现了双击问题。windows下想选中复制&#xff0c;结果是打开。有时候dota站在泉水用鼠标点回程想飞塔下去。。。结果。。。还是回到了原地。囧rz。。。&#xff01;插上原来的老罗技MX318&#xff0c;实在很不习惯&#xff0c;新鼠标又昂…

HCCDA

判断题 1、Kubernetes的声明式API通过提交一个个命令&#xff0c;以达到期望状态 False 2、可变基础设施和不可变基础设施之间最根本的区别在于它们的核心政策&#xff0c;前者在部署后会进行更改&#xff0c;后者保持不变并….换 true 3、容器中的进程ID与容器进程在宿主…

linux驱动由浅入深系列:块设备驱动之一(高通eMMC分区实例)

linux驱动由浅入深系列:块设备驱动之一(高通eMMC分区实例) linux驱动由浅入深系列:块设备驱动之二(从用户空间的read、write到实际设备物理操作整体架构分析)linux驱动由浅入深系列:块设备驱动之三(块设备驱动结构分析,以mmc为例) 块设备驱动的模型还是基本基于字符…

高通芯片刷机我的分析理解(启动分析故障分析)

安卓手机高通芯片刷机我的分析理解高通芯片手机是市面上比较流行的手机系列&#xff0c;例如&#xff1a;小米系列大部分机型&#xff0c;三星系列部分高端机型&#xff0c;中兴努比亚系列&#xff0c;联想手机高端机型&#xff0c;一加手机全部机型&#xff0c;还有华为手机一…

高通平台如何修改特殊电压

转载&#xff1a;https://blog.csdn.net/qq_36781842/article/details/103721013 高通平台如何设置LDO电压&#xff0c;以LDO17为例&#xff0c;默认给屏供电&#xff0c;设置为2.85V现在设置为3.3V。 修改的rpm和sbl部分代码&#xff0c;修改LDO17电压为3.3V 。 (1). --- a/R…

android 输出分辨率6,Android+高通 MIPI转LVDS显示屏调试之---基于SD65DSI84

1.硬件接口 显示屏分辨率是1920RGB1080 pixels。 1.1 硬件连接示意图 1.2 硬件连接引脚CPUSN65DSI84 DSI转LVDSLM3492HCMH 背光控制IC显示屏 GPIO126_LCD_1V8_ENVCC GPIO129_LCD_5V_EN5V_BL GPIO125_LCD_COMMCOMM MPP2_LCD_BL_PWMDIM1/CLK GPIO123_LCD_DIM2DIM2 GPIO7_LCD_I2C2…