没有合适的资源?快使用搜索试试~ 我知道了~
一种求解符号回归问题的粒子群优化算法.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 72 浏览量
2023-02-23
20:16:51
上传
评论
收藏 393KB DOCX 举报
温馨提示
试读
25页
一种求解符号回归问题的粒子群优化算法.docx
资源推荐
资源详情
资源评论
在科学研究和工业生产中, 有许多复杂的系统或非线性现象, 为了明确系统因果关系
或系统内部变量之间的相互关系, 需要对系统建立模型.建模方法的研究一直是学术界和工
程界共同关注的焦点
[1-2]
.纯机理建模能够反映系统对象的本质特性, 具有可靠性高、解释性
强的特点, 但是这种方法的建模过程耗时、繁琐, 而且建立复杂系统模型时一般也是经过简
化而得到的模型.数据驱动建模的方法可以在机理尚不清楚的情况下利用输入、输出信息建
立数学模型.回归分析和人工神经网络都属于数据驱动建模, 但一般的回归分析法, 需要假
设一个待定参数的模型结构, 对参数进行优化, 这种方法只能优化模型的参数而不能优化模
型的结构.人工神经网络法通过输入、输出数据的训练来调整网络的连接权值, 从而构建虚
拟的模型, 但是人工神经网络法属于黑箱建模法, 不能给出数学表达式, 这使得对模型的理
解和解释变得困难
[3]
. 1992 年美国学者 Koza 提出的遗传程序设计(Genetic programming,
GP)
[4]
为符号回归方法研究做出了开拓性贡献, 符号回归既能优化结构和参数, 又能给出明
确的数学表达形式. 2001 年, Ferreira 在 GP 的基础上提出了基因表达式编程(Gene expression
programming, GEP)
[5]
, 进一步推动了符号回归方法的研究, 目前 GEP 仍然受到人们的关注
并得到广泛应用
[6-7]
. GP 和 GEP 为符号回归提供了解决问题的方法基础, 但它们都是基于优
胜劣汰的竞争机制.竞争机制在一定程度上会使种群多样性减小, 影响符号回归算法的性能.
本文根据群体智能算法的学习机制, 在粒子群优化算法基本原理的基础上, 针对符号回归的
特点, 提出了一种基于粒子群算法的符号回归方法.
1. 相关工作
符号回归在科学研究和解决实际工程问题等领域有着重要作用
[8-10]
. GP 采用了一种称
为语法树(Syntax tree)的动态树形结构表示群体中的每一个个体, 这种树状结构, 随着遗传
操作的迭代, 个体语法树很容易出现代码膨胀问题
[11]
.针对这个问题, 文献[12]在多项式形式
的函数建模问题中提出了通过构建模块保护和扩展机制的解决方案.文献[13]提出了基于线
性遗传规划(Linear genetic programming, LGP)的方法, 采用线性结构来表示个体, 并利用一
定的代码膨胀控制技术增加种群中编码长度较小的个体的数量, 通过实验验证了算法的有
效性. GEP
[5]
采用固定长度的线性字符串表示种群中的个体, 有效解决了代码膨胀问题.文献
[14]提出了应用堆栈技术进行解码的 GEP (Stack-based method, S_GEP), 提高了解码效率.文
献[15]提出了一种自学习型的 GEP (Self-learning gene expression programming, SL-GEP), 设
计了嵌有子功能的染色体, 子功能可以自学习和自演化, 也可以成为另一个子功能的输入参
数, 并针对染色体的进化提出了基于差分进化的搜索机制.
上述研究的寻优机制都是以优胜劣汰的竞争为主的, 竞争机制容易使种群的多样性减
小, 而且搜索性能也容易受到遗传操作技术的影响.为了提高搜索到全局最优解的可能性,
种群规模一般取的比较大, 这也相应增加了算法的计算量和计算时间.
目前, 群智能算法在解决符号回归问题中表现出了令人振奋的能力, 并逐渐引起重视
[16]
.文献[17]提出了一种用于符号回归的人工蜂群规划(Artificial bee colony programming,
ABCP)算法, 由于沿用了 GP 中的语法树, 代码膨胀的问题仍然存在.文献[18]则将人工鱼群
算法(Artificial fish school algorithm, AFSA)的优化框架和 GEP 中的基因表达式编码进行了巧
妙结合, 较好地解决了符号回归问题, 但 AFSA 较多的待调参数降低了该算法在更多问题
上的实用性.文献[19]提出了一种 GP 与粒子群算法(Particle swarm optimization, PSO)的混合
算法(Hybrid genetic programming with particle swarm optimization, HGPPSO), 因其仍由 GP
发展而来, 也存在代码膨胀问题.文献[20]提出了一种通用的用于优化树型结构的 PSO (PSO-
based tree discovering algorithm, TSO), 该算法在以语法树为优化对象时具有一定的求解符号
回归问题的能力.但是, 由于其并非针对符号回归而提出, 该算法不能满足符号回归问题的
一些特殊要求, 如:模型的化简.
本文根据粒子群优化算法基本原理提出了一种求解符号回归问题的优化算法, 采用
GEP 中的基因表达式对粒子进行编码, 针对粒子编码特征设计了相应的粒子飞行方法.为了
提高粒子的寻优性能, 一是采用 rr-邻域环状粒子群拓扑结构, 增强粒子的相互协作性, 提
高粒子的搜索效率; 二是通过设计突变算子和散开算子, 使粒子具有跳出局部极值的能力并
减轻粒子快速趋同对全局寻优造成的不利影响.而且, 还对编码的有效长度进行约束以得到
简洁的函数模型结构.本文在第 2 节简要介绍了粒子群优化算法基本原理, 然后给出了详细
的符号回归粒子群优化算法.在第 3 节的数值实验中通过与 GP、GEP、ABCP、AFSA 和
TSO 等符号回归算法进行比较, 验证并分析了提出算法的有效性.最后是对本文的总结.
2. 解符号回归问题的粒子群优化算法
2.1 标准粒子群优化算法
PSO 是 Kennedy 和 Eberhart 受鸟类集群规律性飞行的启发而提出的一种群智能算法
[21]
.该算法模型以种群中个体之间的学习为核心, 在搜索空间每个粒子通过学习机制向最优
解区域飞行. PSO 具有调节参数少且收敛速度快的优点, 在很多领域得到了应用, 如:随机优
化
[22]
、覆盖阵列生成
[23]
、资源分配
[24]
、机器人路径跟踪优化
[25]
、电池储能系统
[26]
等, 是受到
普遍关注的群体智能计算方法.
在粒子群优化算法中, 群体中所有个体都被抽象为在 dd 维空间中没有重量和体积的
粒子, 并在搜索空间中以不同的速度飞行.粒子在飞行时, 通过追踪两个"极值"来不断地更
新自己的速度和位置, 一个是全局极值, 一个是个体极值, 其更新的速度和位置公式如下
[21]
:
vdi(t+1)=xdi(t+1)=ωvdi(t)+c1r1(pbestdi(t)−xdi(t))+c2r2(gbestdi(t)−xdi(t))xdi(t)+vdi(t+1)vid(t+1)=ωvid(t)+c1r1(pbestid(t)−xid(t))+c2r2(gbestid(t)−xid(t))xid(t+1)=xid(t)+vid(t+1)
(1)
其中, tt 为群体当前迭代的代数, ωω 为惯性权重, 起到对全局与局部搜索能力平衡的
作用. c1c1 和 c2c2 为加速度常数, r1r1 和 r2r2 为[0, 1]之间均匀产生的随机数.而 vdi(t)vid(t)
和 xdi(t)xid(t)分别表示当前个体粒子 ii 的速度和位置, pbestdi(t)pbestid(t)则是粒子本身所
经历的最好位置, 即个体极值; gbestdi(t)gbestid(t)则是整个群体目前的最好位置, 即群体极
值.在式(1)中, ωvdi(t)ωvid(t)表示粒子根据自身当前部分速度进行惯性运
动; c1r1(pbestdi(t)−xdi(t))c1r1(pbestid(t)−xid(t))表示当前粒子对自身最好位置的追踪, 体现
了粒子的自我学习性; c2r2(gbestdi(t)−xdi(t))c2r2(gbestid(t)−xid(t))表示当前粒子对群体最好
位置的追踪, 体现了粒子的社会学习性.
2.2 粒子编码
语法树是对函数模型的一种形式化表达, 具有直观、易解码的优点, 但也存在代码膨
胀、操作不易实现等不足. Ferreira 进一步将语法树编码为一个由运算符(如: +、−−、××、
÷÷)、函数(如: sinsin、coscos、lnln、exx)、和终止符(如:输入变量或常量)构成的线性串,
称为"基因表达式(Gene expression)".由于基因表达式结构简单, 易于实现, 语义表达灵活多
变, 并且避免了代码膨胀等问题, 已被广泛采用
[14, 18]
.因此, 本文亦采用基因表达式对粒子进
行编码.现以式(2)中的函数为例, 结合图 1 所示的语法树对基因表达式的编码规则予以说
明.将语法树上的节点以自上而下、从左到右的顺序进行罗列, 即得到基因表达式的编码区
(Coding region), 如表 1 中节点序号 0∼∼4 对应的符号; 为了确保操作基因表达式不会产生
无效语法树, Ferreira 为基因表达式设计了冗余机制, 即在编码区后追加一段非编码区(Non-
coding region).非编码区是基因表达式的重要组成部分, 其作用是使得遗传操作后的编码仍
具有合法性, 如表 1 中节点序号 5∼∼10 对应的符号.另一方面, 基因表达式又被分为首段和
尾段, 其中, 首段 Head 全部由运算符、函数和终止符等构成, 而尾段 Tail 仅包含终止符号.
显然, 基因表达式的长度 Length 为首段 Len(Head)与尾段长度 Len(Tail)之和.为了保证语法
树叶节点上只出现终止符, 基因表达式的 Len(Tail)为 Len(Head)×(n−1)×(n−1), 其中 nn 为
基因表达式编码中运算符及函数所支配操作数的最大个数.给定 Len(Head), 则 Len(Tail)可
确定, 进而得到基因表达式编码的总长度.在初始化粒子时, 粒子编码首段 Head 和尾段 Tail
遵循不同的规则, 即:首段各符号位从运算符、函数、及终止符中以等概率随机选取; 尾段
各符号位则仅允许从终止符中进行选择.
f(x)=ex+ln2f(x)=ex+ln2
(2)
图 1 语法树
Fig. 1 Syntax tree
下载: 全尺寸图片 幻灯片
表 1 粒子编码
Table 1 Particle coding
Node code
0
1
2
3
4
5
6
7
8
9
10
XX
+
exp
ln
xx
2
1
2
xx
1
xx
xx
下载: 导出 CSV
| 显示表格
2.3 粒子评价
对粒子的评价主要考虑两个方面, 一个是粒子建模的拟合精度, 另一个是粒子编码的
简洁性.对于前者, 本文采用相对适应度函数对粒子个体进行评价, 评价函数如式(3)所示.
f=1n∑ni=1|f(xi)−yi||yi|f=1n∑i=1n|f(xi)−yi||yi|
(3)
其中, ff 表示粒子的适应度值, nn 为观测数据(xixi, yiyi)的个数; xixi, yiyi 分别为模型输
入, 输出的观测数据; f(xi)f(xi)为实际得到的模型输出数据.符号回归实际上是一个误差驱动
的过程, 求解拟合误差最小的函数模型, 即:适应度值越小, 粒子越优.而对于后者, 文献[27]
将表达式的描述长度(编码的有效长度)作为表达式简洁性评价标准, 当编码的有效长度较大
时, 会使组合优化的符号较多, 得到的数学表达式精度可能更高, 但会更复杂; 反之, 会使
组合优化的符号较少, 得到的数学表达式更加简洁, 但精度可能较低.为了使模型在到达一
定精度的情况下具有较好的简洁性, 本文对编码的有效长度进行约束.当编码的实际有效长
度超过编码的约束长度时, 对适应度函数增加一个惩罚项, 即:罚因子与超过部分的乘积, 为
了使编码的有效长度向设定值"LL"靠近, 本文采用外点罚函数的方式对不满足约束的粒子
进行评价, 如式(4)所示.
剩余24页未读,继续阅读
资源评论
罗伯特之技术屋
- 粉丝: 3647
- 资源: 1万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功