简单分布估计算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简单的分布估计算法解决连续函数的

最优化问题

1问题描述及求解过程

1.1问题描述

5

11min cos[(1)]n i j i j j x j ==++∑∏其中-10≤ x i ≤ 10, i =1, 2, … , n .

当n =1、2、3和4时分别有3、18、81和324 个不同的全局最优解。

1.2问题分析

该问题是一个多峰的连续函数,函数的形式为

)(xi f ∏

因此,每一维之间没有相互关系,又因为变量无关的概率模型的学习及采样的过程会比较简单,所以我们采用概率无关的的分布估计算法,函数是连续的,所以我们采用连续域的变量无关的分布估计算法来解决这个问题,求多极值考虑到了两种思路,一种是建立多峰的概率模型,另外一种是建立单峰的概率模型,使之迅速收敛到一个极值,然后再重新初始化模型。由于单峰模型比较简单,所以采用单峰模型。

1.3求解算法策略

分布估计算法遗传算法和统计学习相结合,该算法通过统计学习的方法来更新一个概率模型,并且用这个概率模型来估计解空间有优秀个体的分布情况。通过不断地学习,使得这个概率模型越来越能反映解空间中的优秀个体的分布情况。

分布估计算法的步骤大致可以分为以下两步:

1:构建描述解空间的概率模型.通过对种群的评估,得到优秀的个体集合,然后采用统计学习等手段构造一个描述当前解集的概率模型.

2 :由概率模型随机采样产生新的种群。

要设计一个分布估计算法,首先要考虑到以下三个关键问题

(1):概率模型的选择--对于一个多峰的函数,当然多峰的概率模型有更强的描述能力,但是,多峰的概率模型学习起来比较困难,因此,我们采用一个单峰的概率模型,并使用这个概率模型描述一个局部极值点,当求得一个极值点的时候,重新初始化概率模型,寻找其他的极值点。

单峰的概率模型设计方法

认为每一维都服从一个正态分布即 ),(~i i i C U N x

(2):采样以及择优方法--单峰的概率模型很容易陷入到局部最优,因此我们需要不断地重新开始以找到更多的局部最优,在这种情况下,单峰的概率模型收敛越快越好,在这里采用的方法是不断地根据该类模型进行采样,知道采到lambda 个个体的适应度要好于当前最好的适应度为止,若连续采样很多次仍没有改进,则需要检测该点是不是极值点,检测的方法是将每一维的d 设置成一个较小的值,采样多次,若仍没有改进,则认为该点是极值点。

每一维的采样的方法 i i i U C N x +=*)1,0(

其中N (0,1)是一个服从均值为0,方差为0.5的正态分布。

(3):概率模型更新方法---根据每次得到的有改进的lambda 个个体,取其

中适应度最高的一个个体,假设其坐标为Xl=)...........

2,1(xn x x ,并假设在此之前的到的最好的个体的坐标为 XC=)''.......

2,'1(xn x x 令D=XC-X1=)'..,.........

'22,'11(xn xn x x x x --- 对D 中的每个元素取绝对值

C=|)'|...............

|'22||,'11(|xn xn x x x x --- 则Xl 和C 分别为新一代的均值和概率模型,即更新后的概率模型为

)

,(~|'|Ci Ui N xi xi xi di xi

Ui -==

4:求全局最优值------设置一个极值点队列,该队列按照极值点对应的y 值,从小到大排列,若找到一个极值点,则判断该点是否好于队列中最差的极值点,如果是,则插入该队列,当迭代次数达到一个阈值的时候,队列中是到现在为止取得的最好的点,可以近似地认为队列中最好的点,就是全局最优解,迭代次数越高,得到全局最优的概率就越大。

1.4流程图

2 示例分析

求单个极值点示例

对于问题函数一维的情况,得到图像如下:

假设初试化的U为-5.00

则初始化的分布为)5.0,

N

1-

X

00

.5

(

~

如图所设

假设经过多次采样之后,得到了三个比-5.0有所改进的点,者三个点的横坐标及函数值分别为-5.40(-3.487),-4.90(-2.686)-5.10(1.81)根据上述方法,我们选择-5.40 更新该类模型,从而得到U=-5.40,d=0.40 更新之后的概率模型为)

1-

N

~

x,概率模型对应的图如下,

.0,

40

40

.5

(

在经过多次采样,得到3个比-5.40有改进的点,分别是,-5.45 (-3.74),-5.49(-3.69),-5,42(-3.62),从而根据-5.45 来更新概率模型,得到

.5(

1N

x

~

)

05

.0,

45

如下图所示

通过两次学习过程可以看出,在理想状况下,该算法可以使概率模型更好地模拟优秀个体的分布情况,实验证明,这种分布估计算法也可以收敛到局部机制,但是仍然存在着很多问题,例如很有可能存在如下情况,对于同一个函数,同一个维度,同一种初始情况,由于正态分布是无界的,所以进场会出现这样一种亲光,即采样到其他极值点附近的区域,例如上述示例在第二次学习过程中,猜到了一个-7.50,这个点的适应度很好,而且是完全有可能采到的,这个时候概率模型的更新就会成为这样一种情况

1

x

~

N

)1.2,

(

50

.7

如下图:

由此看来,这次的学习会对收敛产生反作用,虽然中心的值更优了,但是d 却变得很大,对收敛到某个极值的过程产生了干扰。

避免这种方法可以采用有界的概率模型,例如只能在中心的左右某个区间内取值,但是这样就会影响到收敛的速度,因为这样的话每次中心移动的位置有上界,对于这个函数来说,这样的问题不但,但是我们优势后很难确定函数的形状,

相关文档
最新文档