【智能算法】雪消融优化算法(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.代码获取

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大模型微调之 在亚马逊AWS上实战LlaMA案例(四)

大模型微调之 在亚马逊AWS上实战LlaMA案例(四) 在 Amazon SageMaker JumpStart 上微调 Llama 2 以生成文本 Meta 能够使用Amazon SageMaker JumpStart微调 Llama 2 模型。 Llama 2 系列大型语言模型 (LLM) 是预先训练和微调的生成文本模型的集合&#x…

stm32 st7735驱动 详解

初始化指令 void LCD_Init(void) { #if USE_SIM_SPILCD_SIM_SPI_GPIO_Init(); #endifLCD_RES_0();//复位HAL_Delay(100);LCD_RES_1();HAL_Delay(100);LCD_BLK_1();//打开背光HAL_Delay(100);//************* Start Initial Sequence **********//LCD_SPI_Send_Cmd(0x11); //Sl…

merge函数占用内存过大

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

TinyEngine 低代码引擎区块局域网部署方案全新上线!

本文由体验技术团队 TinyEngine 项目组成员创作~ 在 TinyEngine 开源后,对私有化部署存在诉求的用户越来越多,而当前 TinyEngine 多项内容都依托在公网中,当前官网提供的区块发布方案,为公网环境下的发布,不能完全满足…

JavaEE技术之MySql高级-ShardingSphere5(SpringBoot版本:3.0.5)

文章目录 1 ShardingSphere-JDBC读写分离1.1 创建SpringBoot程序1.1.1、创建项目1.1.2、添加依赖1.1.3、创建实体类1.1.4、创建Mapper1.1.5、配置 Spring Boot1.1.6、配置shardingsphere 1.2 测试1.2.1 读写分离测试1.2.2 负载均衡测试1.2.3 事务测试常见错误 2 ShardingSphere…

EMAP的Root工程及其他工具

首先右击项目导航,新建EMAP系统配置 上方辅助工具功能: 1 2 3 4 5 6 7 8 9 10 查看重复数据模型:显示为放大镜标识,可以显示所有应用中相同…

rabbitmq集群搭建失败解决

1. 现象 1. 三台机器都已经修改hosts,各个节点ping节点名正常 2. erlang.cookie各节点值一样 执行下面步骤加入失败 rabbitmqctl stop_app # 停止rabbitmq服务 rabbitmqctl reset # 清空节点状态 rabbitmqctl join_cluster rabbitrabbitmq3 rabbitmqctl start_ap…

STM32 GPIO介绍

每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL, GPIOx_CRH),两个32位数据寄存器 (GPIOx_IDR和GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。 通过软件配置寄…

Redis-三主三从高可用集群搭建

正式搭建之前,注意事项(坑)提前放到最开始,也可以出问题回来看, (1)第二步中最好将配置文件中的logfile自定义一个目录,以便于在第五步中启动出错的时候迅速定位错误。 &#xff0…

【SpringBoot】 什么是springboot(一)?如何搭建springboot项目?

文章目录 SpringBoot第一章1、什么是springboot1、回顾ssm项目搭建流程2、springboot项目的优点2、搭建springboot项目方式1:方式2:第二章1、基本配置1、热部署2、注解3、端口配置application.properties特点application.yml特点注意4、环境配置springboot中的配置文件要求5、…

笔记:编写程序,绘制一个展示支付宝月账单报告的饼图

文章目录 前言一、饼图是什么?二、编写代码总结 前言 笔记:编写程序,绘制一个展示支付宝月账单报告的饼图 (1) 导入 matplotlib.pyplot 模块; (2) 准备饼图所需的数据; …

进程状态与优先级

Linux内核源代码: 首先我们需要明确一点,Linux操作系统和操作系统的进程状态是不同的 上图大概标识了各个状态对应在操作系统的状态 普通进程 R运行状态(running): 并不意味着进程一定在运行中,它表明进程要么是在…

【论文笔记 | 异步联邦】FedSA

FedSA:一种处理 non-IID 数据 的 过时感知 异步联邦算法 1. 论文信息 FedSA:A staleness-aware asynchronous Federated Learning algorithm with non-IID data,Future Generation Computer Systems,2021.7,ccfc 是…

「网络流 24 题」太空飞行计划 【最大权值闭合图】

「网络流 24 题」太空飞行计划 题意 有 n n n 个实验 和 m m m 个器械,每个实验都需要若干个指定的器械才能进行 实验 i i i 的盈利为 p i p_i pi​, 器械 j j j 的花销为 c j c_j cj​ 找出纯利润最大的实验计划 思路 这是非常典型的最大权值…

STM32 各外设GPIO配置

高级定时器TIM1/TIM8 通用定时器TIM2/3/4/5 USART SPI I2S I2C接口 BxCAN SDIO ADC/DAC 其它I/O功能

如何用Jmeter压测

推荐你阅读 互联网大厂万字专题总结 Redis总结 JUC总结 操作系统总结 JVM总结 Mysql总结 微服务总结 互联网大厂常考知识点 什么是系统调用 CPU底层锁指令有哪些 AQS与ReentrantLock原理 旁路策略缓存一致性 Java通配符看这一篇就够 Java自限定泛型 技术分享 如何vscode中刷力扣…

字节跳动(社招)四面算法原题

TikTok 进展 又是一期定时汇报 TikTok 进展的推文。 上周,美国总统拜登签署了价值 950 亿美元的一揽子对外援助法案。 该法案涉及强制字节跳动剥离旗下应用 TikTok 美国业务,即 针对 TikTok 非卖即禁的"强抢行为"开始进入九个月(27…

每日一题 非对称之美

题目描述 I-非对称之美_牛客小白月赛31 (nowcoder.com) 题目解析 贪心算法的应用 考虑以下情况:当字符串中的字符全部相同时,即使删除任意一个字符,也无法使其成为一个回文串。这种情况下,我们无法直接套用上述的逐步比较方法。…

树莓派4b红外检测

1.红外检测连接图 2.红外检测工作原理 红外传感器的工作原理类似于物体检测传感器。该传感器包括一个红外LED和一个红外光电二极管,因此通过将这两者结合起来,可以形成一个光耦合器。 红外LED是一种发射红外辐射的发射器。该LED看起来与标准LED相似&a…

一、手写一个uart协议——rs232

先了解一下关于uart和rs232的基础知识 文章目录 一、RS232的回环测试1.1模块整体架构1.2 rx模块设计1.2.1 波形设计1.2.2代码实现与tb1.2.4 仿真 1.3 tx模块设计1.3.1 波形设计1.3.2 代码实现与tb1.3.4 顶层设计1.3.3 仿真 本篇内容: 一、RS232的回环测试 上位机…