一种离散二进制粒子群算法与模糊控制耦合的混合运行优化控制方法与流程

文档序号:17162825发布日期:2019-03-20 01:00阅读:508来源:国知局
一种离散二进制粒子群算法与模糊控制耦合的混合运行优化控制方法与流程

本发明提供一种离散二进制粒子群算法与模糊控制耦合的混合运行优化控制方法,属于求解最优问题的算法领域。



背景技术:

我们每个人都会在我们的生活或者工作中遇到各种各样的最优化问题,比如每个企业和个人都要考虑的一个问题“在一定成本下,如何使利润最大化”等。最优化方法是一种数学方法,它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科的总称。随着学习的深入,人们越来越发现最优化方法的重要性,学习和工作中遇到的大多问题都可以建模成一种最优化模型进行求解,比如我们现在学习的机器学习算法,大部分的机器学习算法的本质都是建立优化模型,通过最优化方法对目标函数(或损失函数)进行优化,从而训练出最好的模型。

粒子群算法主要用于优化连续实值问题,然而在实际问题中,比如在家庭能源网络中的电动汽车调度时,我们只能控制其在通或断的状态,也就是如同二进制变量只能取“0”(关断)或“1”(开通)的状态。为了使粒子群算法能解决离散组合优化问题,j.kenney和r.c.eberhart在1997年设计一个粒子群算法的离散二进制版本,用来优化离散二进制空间的问题,扩展了粒子群算法的应用。相比于传统粒子群算法,离散二进制粒子群算法的最大特点为每次迭代没有传统的位置更新公式。而且传统粒子群算法无法推广到带约束条件的优化问题。惩罚函数目前处理带约束优化问题最为广泛的方法之一,其具体做法是根据约束条件的特点,将惩罚函数加到目标函数中去,将约束优化问题转化为无约束条件优化问题。

而由于用离散二进制粒子群算法嵌入简易且拓展性强,仅需调整粒子的行为行动就能解决复杂的问题,所以最优化算法采用离散二进制粒子群算法,并引入罚函数来实现约束条件。模糊控制利用模糊数学的理论来进行控制,能够对较为复杂或难以精准描述的系统进行强而有力的实时控制,不依赖被控对象的精准数学模型,因此耦合中控制方法选用模糊控制。模糊控制不需要对控制对象的行为有精准的描述,因此适用于不确定较高的系统控制中。相较于传统最优化算法对外呈现的抗干扰性差,当与模糊控制混合运行时,对外特性会变的更好。



技术实现要素:

本发明提供一种离散二进制粒子群算法与模糊控制耦合的混合运行优化控制方法,目的是求解带约束条件的离散最优问题。

为达到此目的,本发明采用如下技术方案。

在离散二进制粒子群算法流程中加入模糊控制,粒子群算法的目标不变,两种算法输入与输出的之间存在着耦合关系,使每个步长中两种算法都是兼容的,具体计算流程如图1。由于目标函数是对优化过的值再度优化,为了避免迭代过程中粒子陷入极值,我们采用混合型粒子群算法的思路,在混合运行中加入遗传算法。传统基于遗传算法的粒子群算法,在每次迭代中需要在粒子更新后计算第一次适应度,然后在采用遗传算法对按适应度优劣进行筛选,再第二次计算适应度。但是由于每次迭代中计算适应度部分最为耗时,我们采取如图2方法简化流程,让每次迭代只计算一次种群的适应度,并且仍然保持采用两种算法进行优化。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍。

图1为混合运行流程图;

图2为粒子更新流程图;

具体实施方式

为使本发明的目的、技术方案更加清楚,下面将对本发明做进一步详细描述。

粒子群算法中,每个粒子初始时都在给定空间内随机搜索,所有的粒子都有一个由被优化函数决定的适应值,每个粒子还有一个速度决定他们飞翔的方向和距离。然在每一次迭代中,粒子通过跟踪两个″极值″来更新自己。第一个就是粒子本身所找到的最优解,这个解叫做个体极值。另一个极值是整个种群目前找到的最优解,这个极值是全局极值。另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。

相比于传统粒子群算法,离散二进制粒子群算法的最大特点为每次迭代没有传统的位置更新公式,而取而代之的是用下式作为速度更新公式:

其中,为t时间第k个粒子的速度与位置,将带入概率函数(通常是sigmoid函数,由式子(2)表示)后为该点位置取1的概率;ω为惯性因子,c1、c2为学习因子,r()为在[0,1]区间内的均匀随机数;为在t-1时间的全局最优解;为在t-1时间第k个粒子的个体最优解。

由于没有原始粒子群算法的粒子位置更新公式.式(1)所表示速度的值是二进制位取1的概率,速度的值被映射到区间[0,1]内,映射的方法一般采用sigmoid函数:

其中vi,k为第k粒子中某一个变量的速率,这里s(vi,k)表示位置取1的概率。

在离散二进制粒子群算法中,粒子不通过传统速度更新公式而通过式(3)改变它的位值:

其中,rand()为[0,1]内的随机数。

同时,为了避免s(vi,k)太靠近1或0的极值导致过早收敛,将会有一个参数vmax来限制vi,k的取值,最终限制xi,k取1或0的概率。

另外,传统粒子群算法无法推广到带约束条件的优化问题。。如果约束处理的不好,其优化的结果往往会出现不能够收敛和结果是空集的状况。惩罚函数目前处理这种约束优化问题最为广泛的方法之一,其具体做法是根据约束条件的特点,将惩罚函数加到目标函数中去,将约束优化问题转化为无约束条件优化问题。在粒子群算法的应用中,惩罚函数需要加在每次迭代中适应度计算函数中,因此对于每个粒子,其适应度可体现为

其中λ为式(3)计算的运行成本,rj为惩罚因子,gj(x)为惩罚函数。

传统的障碍对数函数在处理ax≤b的问题时采用的障碍函数为

但是由于正无穷的取值对迭代中可行域外的粒子没有引导作用,直接应用会导致收敛速度大幅降低。以将寻优区间限制在[m,n]的区间内为例,本文采用的惩罚函数为:

式(6)中r1与r3为引导粒子进入可行域的引导因子,过小可能导致收敛过慢,过大会导致收敛过早而陷入局部极值。r2则为惩罚函数中的奖励因子,当r2越大,对可行域外的粒子吸引力越大,但对已经在可行域内的粒子会越趋向于可行域中心,当r2为0时,粒子将在可行域内公平的搜索极值,r2的具体取值应根据实际的目标函数而定。

模糊控制不需要对控制对象的行为有精准的描述,因此适用于不确定较高的系统控制中。相较于传统最优化算法对外呈现的抗干扰性差,当与模糊控制混合运行时,对外特性会变的更好。由于两种算法的输入和输出之间存在着耦合关系,所以简单的在一个算法的输出结果上套用另一个算法优化的串联运行会导致输出结果不准确。最好的解决方法是将模糊控制代入粒子群算法的每次循环中,这样每个步长中两种算法都是兼容的。

图1为带约束条件的二进制粒子群算法与模糊算法混合运行的流程图。在加入模糊控制后,算法的目标不变,需要对两种算法的输出目标同时进行优化,相当于采用分层序列法,在每次迭代中更新粒子群算法的非劣解后再求解模糊控制的优化解。对于离散二进制粒子群算法来说,其对粒子位置的记忆性较差,仅当成为全局最优值或个体最优值后才会对下一代产生影响。对于超出约束条件的粒子,本方法采取将其位置全部取反并将粒子速度按下式进行重置:

其中,vti,k为粒子的速度,rand为(0,1)内的随机数,vmin为粒子速度的最小限值。

由于目标函数是对优化过的值再度优化,为了避免迭代过程中粒子陷入极值,我们采用混合型粒子群算法的思路,在混合运行中加入遗传算法。传统基于遗传算法的粒子群算法,在每次迭代中需要在式(1)更新后计算第一次适应度,然后在采用遗传算法对按适应度优劣进行筛选,再第二次计算适应度。但是由于每次迭代中计算适应度部分最为耗时,我们采取如图2方法简化流程,让每次迭代只计算一次种群的适应度,并且仍然保持采用两种算法进行优化。

在每次迭代时,随机选取一定个数(m)的粒子放入一个池中,将一个随机的且与函数适应度无关的概率赋予选取的粒子,称其为杂交概率,根据杂交概率对选中适应度最优的几个粒子个体进行杂交操作运算,产生相同数量的粒子代替剩下适应度较差的粒子,本文采用交叉算子对粒子进行遗传更新,具体公式如下

其中vk1、vk2分别是要进行杂交操作的两个粒子的速度,使用杂交后新的速度代替适应度较差粒子的信息,这样就完成了粒子的速度和位移的杂交过程。

在每代进化中,都有设定一个变异概率p与使得粒子发生变异,在本文以二进制量为主的优化环境下,我们采用二进制变异,每个在遗传算法优化池内粒子的每一维都有概率置反,其概率为

其中,i为当前迭代次数,n为最大迭代次数,k为当前粒子序数,m为总粒子数。经过变异操作可以防止算法陷入早熟收敛。

对于未进入遗传算法优化池内的粒子,我们采用非线性的惯性权值递减的函数

其中,ωmax为ω的最大值,ωmin为ω的最小值。

同时,由于传统粒子群的拓扑为全互联型,为了防止早熟收敛,每次更新粒子之前都需要对种群密度进行一次判断,对种群密度判断为对整体适应度的方差进行判断,种群过于密集时,采用下式更新粒子速度:

其速度更新方向为远离当前总群,往背离全局最优与个体最优的区域进发。

采取这种粒子更新方式能够在一次循环中且仅计算一次适应度的情况下对粒子进行优化,且从整体上来看,所有粒子都能被pso和ga进行优化,不但能够加快算法的收敛速度,同时对于一部分取出放入遗传算法优化池中的粒子来说,他们不会受到全局最优与个体最优的影响,增大了各个粒子之间的平均路径长度,有效防止了早熟收敛。

模糊控制因为除模糊化和解模糊化外的核心逻辑引擎在计算时实际上是利用查表法给出相应的控制信号,所以模糊控制占用的计算资源较少。在处理时可以将剩余的计算资源用于需要多次迭代的混合运行迭代中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1