【智能算法】闪电搜索算法(LSA)原理及实现

在这里插入图片描述

目录

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


1.背景

2015年,H Shareef等人闪电自然现象启发,提出了闪电搜索算法(Lightning Search Algorithm, LSA)。
在这里插入图片描述
在这里插入图片描述

2.算法原理

2.1算法思想

LSA受到闪电梯级先导传播机制的启发: 放电体参与形成二叉树结构并且在分叉点同时形成 2 个先导尖端。考虑了闪电的概率性质和曲折特征,通过相对能量来控制算法的探索和开发能力。

在这里插入图片描述

2.2算法过程

放电体建模

过渡放电体产生了梯级先导的初始种群,空间放电体试图到达最好的先导位置,先导放电体代表当前的最优位置,考虑到闪电的概率性质完成了 3 种放电体的建模。先导尖端在早期形成,经过渡向随机方向喷出放电体,因此过渡放电体 pt 可被认为是从解空间[m,n]上取得的随机数并服从均匀分布:
f ( p t ) = { 1 n − m , m ⩽ p t ⩽ n 0 , p t < m or p t > n (1) f( p^t) = \begin{cases}\frac{1}{n - m}, m\leqslant p^t\leqslant n\\{}\\0 , p^t < m\quad\text{or}\quad p^t > n\end{cases}\tag{1} f(pt)= nm1,mptn0,pt<morpt>n(1)
梯级先导尖端形成以后,先导者电离先导尖端附近部分来移动放电体。空间放电体服从指数分布:
p i _ n e w s = p i s ± e x p r a n d ( d i ) (2) p_{i\_\mathrm{new}}^s = p_i^s \pm \mathrm{exprand}( d_i)\tag{2} pi_news=pis±exprand(di)(2)
LSA 认为先导放电体是从标准正态分布中抽取的随机数:
p i − new l = p i l + normrand ( u , σ ) (3) p_{i_{-\text{new}}}^l = p_i^l + \text{normrand}( u ,\sigma)\tag{3} pinewl=pil+normrand(u,σ)(3)
u 为形状参数,σ 为控制放电体开发能力的相对能量。

分叉方式形成新通道

1.放电体通过碰撞会形成新的一个放电体p,其所处通道与原放电体相互对称,保留二者中的较优者,此时种群数量不会增加:
p ˉ = a + b − p (4) \bar{p} = a + b - p\tag{4} pˉ=a+bp(4)
2.设置一个最大通道时间 max_time,在达到max_time 时,用最优的通道代替最差的通道进行通道更新。

流程图

在这里插入图片描述

3.结果展示

在这里插入图片描述

4.参考文献

[1] Shareef H, Ibrahim A A, Mutlag A H. Lightning search algorithm[J]. Applied Soft Computing, 2015, 36: 315-333.

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

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

相关文章

c++取经之路(其七)——c++的内存管理new与delete

c的基本的内存管理一般就是用new和delete来管理 new与delete&#xff1a; 我们直接来将用法&#xff0c;我一般用new有两种用法&#xff0c;一种只申请一个这样的数据&#xff0c;另一种是申请多个这样的数据&#xff0c;比如我们要申请一个int&#xff0c;和申请十个int&…

MQTT服务器EMQX的安装和使用(Windows)

一、下载地址&#xff1a; 下载 EMQX 二、安装环境&#xff1a; Windows Server2016 16G 500G 三、启动服务&#xff1a; 下载文件解压后放入以下目录&#xff08;注意&#xff0c;目录名一定是英文&#xff0c;否则会造成启动不成功&#xff01;&#xff09;&#xff1a…

Linux实现标准输入和标准输出(STDIN_FILENO和STDOUT_FILENO)

在C语言中&#xff0c;scanf和printf函数用于标准输入和标准输出的输入输出操作。而在Linux中&#xff0c;STDIN_FILENO和STDOUT_FILENO是用于表示标准输入和标准输出的文件描述符。 STDIN_FILENO和STDOUT_FILENO是定义在头文件 <unistd.h> 中的常量&#xff0c;用于表示…

【C语言进阶】指针例题大杂烩,阁下是高手还是菜鸟?

前言 首先说明&#xff0c;本文不适合新手&#xff0c;如果你刚刚接触指针&#xff0c;可以看看前五点&#xff0c;这是我认为指针中比较重要的细节&#xff0c;例题部分酌情尝试。 如果你自认为指针学的不错&#xff0c;胸有成竹&#xff0c;请尝试最后的例题&#xff0c;如…

空间转录组SODB数据库(补充)

SODB数据库 SODB facilitates comprehensive exploration of spatial omics data | Nature Methods https://db.cngb.org/stomics/ a–f&#xff0c; SODB的整体设计。六个六边形总结了SODB的六个特点。SODB包含各种类型的空间组学数据&#xff08;a&#xff09;&#xff0c…

C++心决之类和对象详解(中篇)(封装入门二阶)

目录 1.类的6个默认成员函数 2. 构造函数 2.1 概念 2.2 特性 3.析构函数 3.1 概念 3.2 特性 4. 拷贝构造函数 4.1 概念 4.2 特征 5.赋值运算符重载 5.1 运算符重载 5.2 赋值运算符重载 5.3 前置和后置重载 7.const成员 8.取地址及const取地址操作符重载 1.类的…

Linux 目录遍历函数

目录遍历函数 DIR *opendir(const char *name); struct dirent *readdir(DIR *dirp); int closedir(DIR *dirp);// 打开一个目录 #include <sys/types.h> #include <dirent.h> DIR *opendir(const char *name);参数&#xff1a;- name: 需要打开的目录的名称返回值…

Spring AI教程(二)Chat API之基于数据库的多Key轮询

基于数据库的多Key轮询 在之前的文章中我们所使用的Key都是一个&#xff0c;但事实上&#xff0c;官方对Key会有一定的请求限制&#xff0c;在实际业务场景下&#xff0c;我们也不可能通过一个Key来保证我们的系统稳定运行&#xff0c;因为一旦超过请求限制&#xff0c;就会出现…

Laravel + ThinkPhP 海报生成

相关资料: 小程序 | EasyWeChat 二维码生成 public function test(){$config [app_id > appid,secret > secret,];$app Factory::miniProgram($config);$response $app->app_code->get(pages/index/index, [//二维码大小width > 150,//二维码颜色line_color…

React自定义Hook函数:高效组件开发的秘密武器

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

恶心透了的小日子,害人终害己,国货呼吁关注抵制日本核废水排放

​|日本排放核废水 日本政府决定将福岛第一核电站的核污染水经过处理后排放入海&#xff0c;这一决定引发了多方面的担忧和反对&#xff0c;特别是在周边国家&#xff0c;包括中国和韩国。关于日本排放核污染水这一新闻事件&#xff0c;我们必须首先认识到&#xff0c;核能利用…

ES源码五:写操作流程(从Es到底层Luence,全网最细的一篇,全是硬货)

今天是玩转es的一天 创建索引 写入文档 入口BaseRestHandler BaseRestHandler是Rest请求的入口&#xff0c;你可以理解为spring mvc里面的controller一样prepareRequest是一个抽象方法&#xff0c;实际上是由各种Rest*Action来重写的&#xff0c;比如这里我们是对索引文档的处…

【C语言】strstr函数刨析-----字符串查找

目录 一、strstr 函数介绍 ✨函数头文件&#xff1a; ✨函数原型&#xff1a; ✨函数解读 ✨功能演示 二、函数的原理以及模拟实现 ✨函数原理 ✨函数的模拟实现 三、strstr函数的注意事项 四、共勉 一、strstr 函数介绍 strstr函数是在一个字符串中查找另一个字符…

K8s: Ingress对象, 创建Ingress控制器, 创建Ingress资源并暴露服务

Ingress对象 1 &#xff09;概述 Ingress 是对集群中服务的外部访问进行管理的 API 对象&#xff0c;典型的访问方式是 HTTPIngress-nginx 本质是网关&#xff0c;当你请求 abc.com/service/a, Ingress 就把对应的地址转发给你&#xff0c;底层运行了一个 nginx但 K8s 为什么不…

GitOps 和 DevOps 有什么区别?

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab &#xff1a;https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署…

C语言:数据结构(单链表)

目录 1. 链表的概念及结构2. 实现单链表3. 链表的分类 1. 链表的概念及结构 概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表的指针链接次序实现的。 链表的结构跟火车车厢相似&#xff0c;淡季时车次的车厢会相应…

六、项目发布 -- 4. 电子书详情页API开发、电子书列表API开发

电子书详情页API的编写 同理如下app.get中路由、回调&#xff1b;回调中要连接数据库、接收前端传过来的值、到数据库中做查询&#xff0c;然后回调&#xff08;如果回调失败返回什么JSON&#xff0c;如果回调成功返回什么JSON&#xff09;&#xff1b;最后千万别忘记了关闭数…

mapbox控制3D模型旋转

贴个群号 WebGIS学习交流群461555818&#xff0c;欢迎大家 效果 原理与源码 获取角度&#xff0c;然后一直更改角度&#xff0c;角度到达180度后赋值成-180度&#xff0c;然后转到开始获取的角度的角度的时候就停止旋转 function rotateModel(layerID){let bearing map.get…

2024.4.21周报

目录 摘要 Abstract 文献阅读&#xff1a;Next Item Recommendation with Self-Attentive Metric Learning 问题及方法 论文贡献 方法论 序列感知的推荐系统 神经注意模型 模型&#xff1a;ATTREC 序列推荐 基于Self-Attention的用户短期兴趣建模 用户长期兴趣建模…

卷积神经网络CNN入门

卷积神经网络应用领域 因为卷积神经网络主要应用场景就是计算机视觉任务&#xff0c;因此有必要简单介绍一下CV领域发展情况&#xff1a; 可以发现&#xff0c;在 ImageNet 图像数据集中分析图像的错误率十年间已经被深度学习给降低到了比人类&#xff08;HuMan&#xff09;识…