【Matlab】智能优化算法_广义正态分布优化算法GNDO

news2024/10/7 20:35:53

【Matlab】智能优化算法_广义正态分布优化算法GNDO

  • 1.背景介绍
  • 2.数学模型
    • 2.1 局部开采
    • 2.2 全局勘探
  • 3.文件结构
  • 4.伪代码
  • 5.参考文献

1.背景介绍

GNDO受到正态分布理论的启发。正态分布也称为高斯分布,是描述自然现象的一个非常重要的工具。正态分布可以定义如下。假设随机变量x服从位置参数μ和尺度参数δ的概率分布,其概率密度函数可以表示为:

在这里插入图片描述

x 可称为正态随机变量,该分布可称为正态分布,即 x ̃ N(μ,δ)。根据公式 (17),正态分布包括两个变量,即位置参数 μ 和比例参数 δ。位置参数μ和尺度参数δ分别表示随机变量的平均值和标准方差。图2显示了不同μ和δ条件下的正态分布,可以看出,当δ不变时,概率密度曲线将向μ增大或μ减小的方向移动;另外,根据图2(b),当μ不变时,概率密度曲线将向δ增大的方向扩展。

在这里插入图片描述

一般来说,基于种群的优化方法的搜索过程分为以下三个阶段。首先,所有初始化个体处于分散分布状态。然后,所有个体在设计的探索和利用策略的指导下开始向全局最优解的方向移动。最后,所有个体聚集在最优解周围。事实上,这个搜索过程可以用多个正态分布来描述。更具体地说,所有个体的位置可以看作是服从正态分布的随机变量。在第一阶段,平均位置和最优位置相距较远。所有个体位置的标准方差进一步变大。在第二阶段,平均位置和最佳位置之间的距离逐渐减小。所有个体位置的标准方差逐渐变小。在最后一个阶段,平均位置与最优位置之间的距离和所有个体位置的标准方差可以达到最小值。

2.数学模型

图3显示了拟议GNDO的框架。可以看出,GNDO的结构非常简单,设计的信息共享策略包括本地开发和全球探索。局部开采是基于建立的广义正态分布模型,该模型以当前平均位置和当前最优位置为指导。全球探索与三个随机选择的个体有关。对这两种学习策略的详细解释如下:

在这里插入图片描述

2.1 局部开采

局部利用是指围绕由所有个体的当前位置组成的搜索空间找到更好的解决方案的过程。基于个体在种群中的分布与正态分布之间的关系,可以通过以下公式建立用于优化的广义正态分布模型

在这里插入图片描述

其中,vit是第i个个体在时间t的导数,μi是第i个人的广义平均位置,δi是广义标准方差,η是惩罚因子。此外,μi、δi和η可以定义为

在这里插入图片描述

其中a,b,λ1和λ2是0和1之间的随机数,xtBest是当前最佳位置,M是当前总体的平均位置。此外,M可以通过

在这里插入图片描述

接下来讨论了所使用的三个参数(即μi、δi和η)在设计的局部开发策略中的作用。

在这里插入图片描述

  • 广义平均位置μi。当前最佳个体 xtBest 包含与全局最优解相关的有用信息。因此第i个个体xit会被拉向当前最佳个体xtBest的方向,xtBest有更多机会找到更好的解。需要注意的是,当xtBest陷入局部最优时,所有个体仍然向xtBest方向移动,这将导致整个群体过早收敛。为了解决这个问题,引入了当前种群的平均位置M,如式(22)所示。为了说明平均位置M的影响,图4显示了两种搜索策略。与图4(a)相比,图4(b)中的普通个体可以向最佳个体xtBest和平均位置M之间的方向移动。此外,虽然当前最佳个体xtBest的位置可能在某些世代中保持不变,但平均位置M会随着世代的变化而变化,这有助于找到更好的解。因此,将平均位置M引入到所设计的局部利用策略中,可以在一定程度上提高避免局部最优的机会。
  • 广义标准方差δi。广义标准方差δi用于提高GNDO的局部搜索能力。此外,根据公式(19-20),广义标准方差δi可视为围绕广义平均位置μi进行局部搜索的随机序列。此外,由式(20)可知,第i个个体xit的位置与平均位置M和最佳个体xtBest的位置之间的距离越大,生成的随机序列的波动性越强。也就是说,当个体xit的适应度值很差时,个体在其周围找到更好解的概率很小。因此,波动性较强的随机序列可以帮助个体找到更好的解。当个体xit的适配值较好时,个体在其周围找到更好解的概率较大。因此,弱波动的随机序列可以帮助个体获得更好的解。
  • 惩罚因子η。在GNDO算法中,惩罚因子η用于进一步提高生成的广义标准方差的随机性。图5显示了式(21)生成的随机序列。如图5所示,大多数惩罚因子位于-1和1之间。因此惩罚因子可以增加GNDO的搜索方向,从而提高GNDO的可搜索性。

在这里插入图片描述

2.2 全局勘探

全局探索就是在全球范围内搜索语音空间,寻找有前景的区域。从图3中可以看出,GNDO中的全局探索是基于三个随机选择的个体,可以表示为:

在这里插入图片描述

其中λ3和λ4是服从标准正态分布的两个随机数,β称为调整参数是0和1之间的随机数,v1和v2是两个跟踪向量。此外,v1和v2 c可以通过以下公式计算:

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

式(24)和式(25)中,式(23)右边的第二项可称为局部学习项,表示解 p1 与解 i 共享信息;式(23)右边的第三项可称为全局信息共享项,表示个体 i 获得了解 p1 的信息。(23)式右边第二项可称为局部学习项,表示解p1与解i共享信息;(23)式右边第三项可称为全局信息共享项,表示个体i从个体p2和p3获得信息。调整参数β用于平衡两种信息共享策略。此外,λ3和λ4为标准正态分布的随机数,可以使GNDO在进行全局搜索的过程中有更大的搜索空间。式(23)中的绝对符号是为了与式(24)和式(25)中的筛选机制保持一致。

3.文件结构

在这里插入图片描述

EO.m							% 平衡优化器算法
Get_Functions_details.m			% 基准的全部信息和实现
initialization.m				% 初始化
main.m							% 主函数

4.伪代码

在这里插入图片描述

5.参考文献

[1]Zhang Y,Jin Z,Mirjalili S. Generalized normal distribution optimization and its applications in parameter extraction of photovoltaic models[J]. Energy Conversion and Management,2020,224.

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

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

相关文章

NLP Transformer的Decoder的输入输出都是什么?能解释一下每个部分都是什么?

要弄清楚Decoder的输入输出,关键在于图示三个箭头的位置: 以翻译为例: 输入:我爱中国输出: I Love China 因为输入(“我爱中国”)在Encoder中进行了编码,这里我们具体讨论Decoder的…

【工具推荐】企业微信、企业飞书接口调用工具

github地址: GitHub - fasnow/idebug: 企业微信、企业飞书接口调用工具。 简介 企业微信、企业飞书接口调用工具。 使用方法 wechat模块 使用use wechat 选择模块。 首先设置corpid和corpsecret,如有需要可以设置代理,之后再执行run命令。 导出通信…

飞行动力学 - 第6节-part3-风对航程的影响 之 基础点摘要

飞行动力学 - 第6节-part3-风对航程的影响 之 基础点摘要 1. 风对航程的影响2. 典型飞机航程3. 世界上最长航线4. 参考资料 1. 风对航程的影响 可以认为风移动的距离相当于飞机在静止空间移动的距离加上风移动的距离。 在物理上可以简单的理解为两个矢量叠加和。 回顾喷气式&…

WebGPU实战3D电商

在过去的几年里,我们一直在为 WebGPU 编写新版本的 Babylon.js 引擎。 随着下一代 Web 3D 即将在Chrome 102~103版本上公开WebGPU 1.0 ,人们的兴奋情绪与日俱增。 在这篇博文中,我将快速概述这个新的 Babylon.js WebGPU 引擎,并将…

100种思维模型之安全边际思维模型-92

安全边际, 简而言之即距离某一件糟糕的事件发生,还有多大的空间,安全边际越高,我们就越安全! 安全边际思维模型一个 让生活变得更从容 的 思维模型。 01、何谓安全边际思维模型 一、安全边际思维 安全边际 源于…

千云探探监测到7月4日法国Facebook社交网络异常

针对法国近期出现的骚乱游行,法国司法部长莫雷蒂7月1日时候表示,法国检察官要求互联网运营商提供在社交平台Snapchat上号召骚乱年轻人的IP地址。 法国总统马克龙7月4日表示:“如果事态失控,我们可能需要监管或关闭它们&#xff0…

idea 添加类库

打开项目中的独立环境文件夹,右键打开终端输入安装类库的命令: pip install requests pip3 install BeautifulSoup4 检查这里是否把类库加进来了,加进来就完成!

第十二章 kafka

Producer:Producer即生产者,消息的产生者,是消息的入口。 kafka cluster: Broker:Broker是kafka实例,每个服务器上有一个或多个kafka的实例,我们姑且认为每个broker对应一台服务器。每个kafka集群内的broker都有一个不重复的编号,如图中的broker-0、broker-1等…… 主…

Windows如何恢复已删除的Word文档?

案例:可以恢复已删除的Word文档吗? “大家好,我遇到了一个问题,需要大家的帮助。昨天我编辑了一个Word文档并保存到了桌面上,但当我今天再次打开电脑时,它就不见了!昨天工作完成后&#xff…

mysql数据库以及管理流程

目录 1.基本概念 2.DBMS工作模式 3.关系型数据库和非关系型数据库 4.数据库管理 sql语句 5.一些命令 6.增删改查命令 DDL DML 7.案例 创建表 删除 DML管理表中内容 增加内容 改内容 删内容 DCL具体应用 1.基本概念 1.数据 描述事物的符号记录(数字 文字 图像等) …

【报错记录】解决CentOS免密失败的问题,以及解决免密问题的排查流程

前言 本文相当于对之前的文章进行的补充【原创】三台CentOS7非root用户间实现相互间的免密登录_DCTANT的博客-CSDN博客 现场遇到一台旧服务器与其他服务器免密失败的问题,明明.ssh目录中authorized_keys中的公钥设置都是正确的,但是别的服务器连它都得…

基础篇--STM32原理图设计

学会查看数据手册 芯片数据手册获取方式 ST官网:https://www.st.comST中文社区网:https://www.stmcu.org.cn/ 数据手册内容概要 芯片的基本参数(STM32F103ZET6为例) 主频/FLASH/SRAM : 72MHz/512KB/64KB工作电压/…

vue3 + axios 实现带进度条的下载对话框

文章目录 问题实现采用axios实现下载请求写一个进度下载对话框调用对话框 参考链接 问题 上传下载是前端经常面临的两大需求,当文件比较大时,下载进度显示能提升用户体验。本文结合vue3介绍下载对话框的实现。当点击页面中下载按钮后,会呈现…

在日常学习生活中,究竟该如何保持稳定的情绪呢?

方向一:分享工作中让你有强烈情绪波动的事情 编程仅仅是工程的过程实践化,投入进去确实会出现精神集中,出现问题排查过程会绞尽脑汁,甚至抓耳挠腮,当发现问题无法解决时不如放下来想一想,是不是知识点掌握不…

按日,周,年统计,无的数据补充0

需求:按日-周-年统计。统计涉及到3张表数据。 写sql。先把3张表数据摘取出来,只需对3张表的时间做分组统计即可。 按日统计 select DAY(dateff) as time,IFNULL(count(id),0)as num from(select create_time as dateff,id as id from cz_taxi_orders…

go语言开发 三种容器类型:数组、切片、map

目录 go语言中的三种容器类型:数组,切片,map go 与 python的容器类型对比 python go: 数组: 数组的定义:(定义数组的格式、二维数组、初始化、任意长度初始化、取值) 数组的…

swager异常_Failed to load API definition.

现象 Fetch error Internal Server Error /swagger/base/swagger.json 排查 按照以往的经历基本都是因为Conroller中的类中有非对外调用的函数,但是用了public修饰函数,会导致这个问题。这个问题通常通过查看git/svn中最近的提交记录,找出…

hadoop -Unable to start failover controller. Parent znode does not exist

Unable to start failover controller. Parent znode does not exist 问题描述 今天使用星环的TDH集群时,HDFS服务宕掉,在后台查看namenode 始终起不来 kubectl get pod -o wide | grep hdfs 如上图,k8s pod 起来又crash 掉,然后…

10 thymeleaf模版引擎使用

10.1 原理 首先&#xff0c;在idea搜索thymeleafProperties这个配置类。 通过源代码可以发现&#xff0c;使用的文件后缀是html&#xff0c;文件应该放在templates路径下&#xff1a; 10.1 依赖 直接加入启动器的thymeleaf依赖。 <dependency><groupId>org.sprin…