【智能算法】雪消融优化算法(SAO)原理及实现

目录

    • 1.背景
    • 2.算法原理
      • 2.1算法思想
      • 2.2算法过程
    • 3.结果展示
    • 4.参考文献
    • 5.代码获取


1.背景

2023年,L Deng受到雪升华和融化行为启发,提出了雪消融优化算法(Snow Ablation Optimizer, SAO)。

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

2.算法原理

2.1算法思想

SAO模拟了雪的升华和融化行为,在融化过程中,雪转化为液态水,而雪可以通过升华直接转化为蒸汽。同时,融雪转化的液态水也可以通过蒸发转化为蒸汽。

在这里插入图片描述

2.2算法过程

探索阶段

当雪或由雪转化而来的液态水转化为蒸汽时,由于运动的不规则性,搜索个体呈现出高度分散的特征。因此,这一阶段利用布朗运动来模拟这种情况:
f B M ( x ; 0 , 1 ) = 1 2 π × exp ⁡ ( − x 2 2 ) (1) f_{BM}(x;0,1)=\frac1{\sqrt{2\pi}}\times\exp(-\frac{x^2}2)\tag{1} fBM(x;0,1)=2π 1×exp(2x2)(1)

在这里插入图片描述

布朗运动的一维分布以及在二维和三维搜索空间中的轨迹如图,布朗运动利用动态和均匀的步长,可以探索搜索空间中的一些潜在区域。因此,它可以很好地反映蒸汽在搜索空间中扩散的情况:
Z i ( t + 1 ) = E l i t e ( t ) + B M i ( t ) ⊗ ( θ 1 × ( G ( t ) − Z i ( t ) ) + ( 1 − θ 1 ) × ( Z ˉ ( t ) − Z i ( t ) ) ) (2) Z_i(t+1)=Elite(t)+BM_i(t)\otimes(\theta_1\times(G(t)-Z_i(t))+(1-\theta_1)\times(\bar{Z}(t)-Z_i(t)))\tag{2} Zi(t+1)=Elite(t)+BMi(t)(θ1×(G(t)Zi(t))+(1θ1)×(Zˉ(t)Zi(t)))(2)
其中,G(t)当前最优解,Elite(t)代表群体中若干精英群体中随机选出的个体:
E l i t e ( t ) ∈ [ G ( t ) , Z s e c o n d ( t ) , Z t h i r d ( t ) , Z c ( t ) ] (3) Elite(t)\in[G(t),Z_{second}(t),Z_{third}(t),Z_c(t)]\tag{3} Elite(t)[G(t),Zsecond(t),Zthird(t),Zc(t)](3)
群体质心表述为:
Z ˉ ( t ) = 1 N ∑ i = 1 N Z i ( t ) (4) \bar{Z}(t)=\frac{1}{N}\sum_{i=1}^NZ_i(t)\tag{4} Zˉ(t)=N1i=1NZi(t)(4)
其中Zsecond(𝑡)和Zthird(𝑡)分别表示当前种群中的第二优个体和第三优个体。𝑍𝑐(𝑡)表示适合度值排在前50%的个体的质心位置:
Z c ( t ) = 1 N 1 ∑ i = 1 N 1 Z i ( t ) (5) Z_{c}(t)=\frac{1}{N_{1}}\sum_{i=1}^{N_{1}}Z_{i}(t)\tag{5} Zc(t)=N11i=1N1Zi(t)(5)
式中𝑁1表示leader的数量,即𝑁1等于整个群体的一半大小。

在这里插入图片描述

开发阶段

当雪通过融化行为转化为液态水时,搜索个体被鼓励围绕当前最佳解决方案开发高质量的解决方案,而不是在解决方案空间中扩展高度分散的特征。作为最经典的融雪模型之一,利用度日法来反映融雪过程:
M = D D F × ( T − T 1 ) (6) M=DDF\times(T-T_{1})\tag{6} M=DDF×(TT1)(6)
其中,M为融雪速率,是模拟开发阶段融雪行为的关键参数。𝑇表示日平均温度。𝑇1为基温,基温通常设为0:
M = D D F × T (7) M=DDF\times T\tag{7} M=DDF×T(7)
DD表述为:
D D F = 0.35 + 0.25 × e t t max ⁡ − 1 e − 1 (8) DDF=0.35+0.25\times\frac{e^{\frac t{t_{\max}}}-1}{e-1}\tag{8} DDF=0.35+0.25×e1etmaxt1(8)

在这里插入图片描述

融雪速率:
M = ( 0.35 + 0.25 × e t t max ⁡ − 1 e − 1 ) × T ( t ) , T ( t ) = e − t t max ⁡ (9) M=(0.35+0.25\times\frac{e^{\frac t{t_{\max}}}-1}{e-1})\times T(t),T(t)=e^{\frac{-t}{t_{\max}}}\tag{9} M=(0.35+0.25×e1etmaxt1)×T(t),T(t)=etmaxt(9)
在SAO开发阶段,位置更新:
Z i ( t + 1 ) = M × G ( t ) + B M i ( t ) ⊗ ( θ 2 × ( G ( t ) − Z i ( t ) ) + ( 1 − θ 2 ) × ( Z ˉ ( t ) − Z i ( t ) ) ) (10) Z_i(t+1)=M\times G(t)+BM_i(t)\otimes(\theta_2\times(G(t)-Z_i(t))+(1-\theta_2)\times(\bar{Z}(t)-Z_i(t)))\tag{10} Zi(t+1)=M×G(t)+BMi(t)(θ2×(G(t)Zi(t))+(1θ2)×(Zˉ(t)Zi(t)))(10)

Dual-population机制

在元启发式算法中,实现探索与开发之间的平衡极其关键。这种平衡有助于算法不仅能发现潜在的好解决方案,而且能有效地利用这些解决方案来找到更优的结果。通过将种群分为两个子种群,一种专注于探索(寻找新的可能解),另一种专注于开发(优化已知解),这种双重人口机制有效地模拟了自然选择中的变异与遗传两大关键因素。

在这里插入图片描述
SAO算法的完整位置更新:
Z i ( t + 1 ) = { E l i t e ( t ) + B M i ( t ) ⊗ ( θ 1 × ( G ( t ) − Z i ( t ) ) + ( 1 − θ 1 ) × ( Z ˉ ( t ) − Z i ( t ) ) ) , i ∈ i n d e x a M × G ( t ) + B M i ( t ) ⊗ ( θ 2 × ( G ( t ) − Z i ( t ) ) + ( 1 − θ 2 ) × ( Z ˉ ( t ) − Z i ( t ) ) ) , i ∈ i n d e x b (11) \left.Z_{i}(t+1)=\left\{\begin{array}{c}Elite(t)+BM_i(t)\otimes(\theta_1\times(G(t)-Z_i(t))\\+(1-\theta_1)\times(\bar{Z}(t)-Z_i(t))),i\in index_a\\M\times G(t)+BM_i(t)\otimes(\theta_2\times(G(t)-Z_i(t))\\+(1-\theta_2)\times(\bar{Z}(t)-Z_i(t))),i\in index_b\end{array}\right.\right.\tag{11} Zi(t+1)= Elite(t)+BMi(t)(θ1×(G(t)Zi(t))+(1θ1)×(Zˉ(t)Zi(t))),iindexaM×G(t)+BMi(t)(θ2×(G(t)Zi(t))+(1θ2)×(Zˉ(t)Zi(t))),iindexb(11)

伪代码

在这里插入图片描述

3.结果展示

使用测试框架,测试SAO性能 一键run.m

  • 【智能算法】省时方便,智能算法统计指标——一键运行~

CEC2017-F20

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

4.参考文献

[1] Deng L, Liu S. Snow ablation optimizer: A novel metaheuristic technique for numerical optimization and engineering design[J]. Expert Systems with Applications, 2023, 225: 120069.

5.代码获取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/8493.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言,实现数字谱到简谱的转换(二)

C语言,实现数字谱到简谱的转换(二) 前言:本文初编辑于2024年5月8日 CSDN:https://blog.csdn.net/rvdgdsva 博客园:https://www.cnblogs.com/hassle 前言 结合前文使用 之前的程序默认C调4/4拍&#xff…

探索DeepSeek平台:新一代MoE模型的深度体验

简介 DeepSeek是一个创新的人工智能平台,它最近推出了其最新版本的模型——DeepSeek-V2 MoE(Mixture of Experts)。这个平台不仅提供了一个交互式的聊天界面,还提供了API接口,让用户可以更深入地体验和利用这一先进的…

使用SpringBoot+Redis做一个排行榜【推荐】

SpringBoot Redis实现排行榜 一、Zset有序集合介绍 Zset是一个没有重复元素的字符串集合。不同之处是有序集合的每个成员都关联了一个评分( score) ,这个评分( score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了…

Service 和 Ingress

文章目录 Service 和 IngressServiceEndpointservice 的定义代理集群外部服务反向代理外部域名Service 常用类型 IngressIngress-nginx安装使用 Service 和 Ingress service 和 ingress 是kubernetes 中用来转发网络请求的两个服务,两个服务用处不同,se…

去哪儿前端一面

谈谈你对mvvm的理解 MVVM分为三个部分:分别是M(Model,模型层 ),V(View,视图层),VM(ViewModel,V与M连接的桥梁,也可以看作为控制器) 1、 M:模型层,主要负责业务数据相关; 2、 V:视图层,顾名思义,负视图相关,细分下来就是html+css层; 3、 VM:V与M沟通的…

数据结构学习——二叉树

1. 树概念及结构 1.1 树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 有一个特殊的结点&…

用户下单操作

一:用户下单需求分析和设计: 用户下单业务说明: 在电商系统中,用户是通过下单的方式通知商家,用户已经购买了商品,需要商家进行备货和发货。 用户下单后会产生订单相关数据,订单数据需要能够体…

如何使用多协议视频汇聚/视频安防系统EasyCVR搭建智慧园区视频管理平台?

智慧园区作为现代化城市发展的重要组成部分,不仅承载着产业升级的使命,更是智慧城市建设的重要体现。随着产业园区竞争的逐渐白热化,将项目打造成完善的智慧园区是越来越多用户关注的内容。 然而我们往往在规划前期就开始面临众多难题&#…

保护公司机密:避免员工带着数据说拜拜

公司的核心资产之一就是数据。无论是客户信息、研发代码、内部决议、财务报告、商业合同、设计图纸等都是公司的重要资产。如果这些数据在员工离职时被带走,或在员工在职期间不当行为导致数据泄露,将给公司带来重大损失。 然而,保护这些数据…

软考143-下午题-【试题二】:E-R图、关系模式

一、分值与目标 15分,目标10 二、题目形式 示例: 三、E-R图的基本图形元素 示例: 3-1、实体 1、弱实体 在现实世界中有一种特殊的联系,这种联系代表实体间的所有 (Ownership) 关系,例如:职工与家属的联系…

STC8增强型单片机开发 【第一个程序 - 点亮第一盏灯】

目录 一、创建项目 1. 创建一个新的项目 ​编辑 2. 配置开发板信息 ​编辑 3. 取消汇编配置 4. 项目结构 二、编码实现 1. 项目准备 2. 代码实现 点灯: 熄灯: 3. 编译烧录运行 配置编译输出 保存和编译代码 ​编辑 烧录 一、创建项目 1. …

【Arduino IDE 2】Windows平台安装ESP8266 NodeMCU LittleFS Uploader(文件上传插件)

在Arduino IDE 2(2.2.1或更高版本)上,如何安装基于ESP8266 NodeMCU的LittleFS文件系统上传插件,以及如何将文件上传到ESP8266 NodeMCU板文件系统。 一、LittleFS简介 LittleFS是一个为微控制器创建的轻量级文件系统,可…

实验五 Spark Structured Streaming编程实践

一、编写程序 (1). 按照tag分组统计生成的日志数。 在新开的终端内输入 vi spark_exercise_testsyslog1.py ,贴入如下代码并运行。运行之前需要关闭“tail终端”内的tail命令并重新运行tail命令,否则多次运行测试可能导致没有新数据生成。 #!/usr/bin…

onlyoffice容器打包成镜像

书接上篇,onlyoffice容器已经更改在本地docker环境中了,之后需要部署到测试环境的docker中,采用容器打包成本地镜像 1、本地docker 查看容器:docker ps 生成镜像:docker commit -p blissful_lichterman 重命名镜像&a…

【大学物理】双语合集听课笔记

7.5 angular momentu(角动量)_哔哩哔哩_bilibili 6.4Energy in Rotation Motion 有质量有速度的物体有动能,是不是很有道理 international system(from French systeme international,acronym,SI)of ineria kg*m^2 转…

pycharm中导入rospy(ModuleNotFoundError: No module named ‘rospy‘)

1. ubuntu安装对应版本ros ubuntu20.04可参考: https://wiki.ros.org/cn/noetic/Installation/Ubuntuhttps://zhuanlan.zhihu.com/p/515361781 2. 安装python3-roslib sudo apt-get install python3-roslib3.在conda环境中安装rospy pip install rospkg pip in…

【Git】Git学习-17:git rebase,且解决合并冲突

学习视频链接:【GeekHour】一小时Git教程_哔哩哔哩_bilibili​编辑https://www.bilibili.com/video/BV1HM411377j/?vd_source95dda35ac10d1ae6785cc7006f365780 理论 git rebase 目标分支:把当前分支的提交,从与目标分支的共同主祖先处断开…

js如何控制一次只加载一张图片,加载完成后再加载下一张

公众号:程序员白特,欢迎一起交流学习~ 原文:https://juejin.cn/post/7340167256267391012 今天看到一个面试题,是关于img图片加载方面的,有必要记录一下。其实关于这个问题,只要知道图片什么时候加载完成就…

分割模型Maskformer系列

maskformer:Per-Pixel Classification is Not All You Need for Semantic Segmentation 论文地址:https://arxiv.org/pdf/2107.06278 1.概述 传统的语义分割方法通常采用逐像素分类(per-pixel classification),而实…

linux安装Redis 7.2.4笔记

一.保姆级安装 1.下载Redis 7.2.4安装包 sudo wget https://download.redis.io/releases/redis-7.2.4.tar.gz2.解压,可以指定 sudo tar -zvxf redis-7.2.4.tar.gz 3.检测并安装 GCC 编译器: yum 是基于 Red Hat 的 Linux 发行版(如 CentOS、…