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

【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.hqwc.cn/news/19076.html

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

相关文章

文件操作--按格式读写文件

C语言允许按指定格式读写文件。函数fscanf()用于按指定格式从文件读数据。其函数原型为: int fscanf (FILE *fp, const char *format ,...); 其中,第一个参数为文件指针,第2个参数为格式控制参数&#x…

矩形面积 (力扣)数学推理 JAVA

给你 二维 平面上两个 由直线构成且边与坐标轴平行/垂直 的矩形,请你计算并返回两个矩形覆盖的总面积。 每个矩形由其 左下 顶点和 右上 顶点坐标表示: 第一个矩形由其左下顶点 (ax1, ay1) 和右上顶点 (ax2, ay2) 定义。 第二个矩形由其左下顶点 (bx1, b…

AutoDL使用教程

AutoDl是一个租用GPU显卡的平台,我们可以在上面租用显卡。我训练模型的时候租用了一块V100。 下面介绍一下使用AutoDL 来租用GPU显卡,并将自己的代码上传,运行代码。 目录: 创建实例配置环境 pytorch环境上传文件运行代码 一、…

怎么制作查询成绩的网页?这个不用代码的方法你用过没?

作为一名老师,与家长沟通交流是日常工作中重要的一部分。特别是每次考完试后,家长都急切地想了解孩子的成绩,以便能及时了解孩子的学习情况并给予适当的支持和指导。然而,为了保护学生的隐私,大部分学校不公开张榜学生…

IP网络基础

文章目录 数据通信基础数据流方向(工作模式)网络和Internet简介网络:互联网:总结: 协议和标准标准化组织标准化组织——IETF标准的种类 IP网络基本架构 lP网络在现代社会中有着越来越重要的地位。本课程将介绍数据通信…

Sentry 监控 Docker 方式部署

一、简介 根据主篇 Sentry 监控部署与使用 流程,使用 Docker 方式 方式进行部署。 docker 方式 部署操作比较简单,也是 Sentry 官方 比较推崇的方式,直接按 Sentry On-Premise 提供的方式按部就班部署就好了。或者可直接参考 Docker 部署 Se…

系列五、RocketMQ集群搭建

一、概览 二、集群特点 2.1、NameServer NameServer是一个几乎无状态节点,可集群部署,节点之间无任何信息同步。 2.2、Broker Broker部署相对复杂,Broker分为Master与Slave,一个Master可以对应多个Slave,但是一个Sla…

【vs2022】cmake工程修改绝对路径为工程路径

以libuv为例,只需要修改一个工程文件即可 只需要修改 uv_a.vcxproj 修改内容 工程路径在src/ 同级别的out32/下 $(ProjectDir)… 即可回到 src/路径下。

在Linux中部署Ansible

Ansible是自动化运维工具,基于模块化工作,本身没有批量部署的能力。 Ansible只是提供一种框架,Ansible运行的模块才有批量部署的能力。 Ansible使用SSH协议对设备进行管理,只需在主控端部署Ansible环境,被控端无需做…

Oracle-RAC集群安装root.sh报错问题

问题背景: 在redhat 7.8上安装Oracle11G RAC集群,在节点一执行root.sh脚本时发生错误Disk Group OCRDG creation failed with the following message:ORA-15018: diskgroup cannot be created 问题分析: 从报错信息来看错误是在执行创建OCRDG磁盘组时失败&#xff0…

MySQL数据库,创建表及其插入数据和查询数据

首先,由上图创建表 mysql> create table worker(-> dept_id int(11) not null,-> emp_id int (11) not null,-> work_time date not null,-> salary float(8,2) not null,-> poli_face varchar(10) not null default 群众,-> name varchar(20…

机器学习多步时间序列预测解决方案

近年来,随着机器学习与深度学习的发展机器学习平台的成熟,数据科学家们不再需要关心底层的基础设施及构建复杂的训练与推理环境,从而可以把主要的时间与精力放在数据与算法本身。在机器学习变得更容易的今天,越来越多的传统行业已…