《多目标进化优化》笔记

目前在做多目标优化这块的研究,找了一本郑金华的《多目标进化优化》恶补下基础知识,有需要的可以下载电子版,一起优化优化。在此笔记来督促自己的科研进度,有个输出的过程,也方便和各位同方向的同学们一起交流探讨!

多目标优化的基础知识:《高等代数》、《矩阵分析》和《凸优化》等基础数学的内容。

主要分为多目标进化优化基础、多目标帕累托最优解集构造方法、多目标进化群体的分布性、多目标进化算法的收敛性、多目标进化算法和基于动态环境的MOEA等内容。

1.多目标进化优化基础

1.1进化算法

进化算法包括三类:遗传算法(GA)、进化规划(EP)和进化策略(ES),基本思想都是来自达尔文的自然选择进化的机理,特点是群体搜索策略和群体个体之间的信息交换,适用于处理较难的非线性问题。

遗传算法的基本流程

《多目标进化优化》笔记_第1张图片

 评价:遗传算法由于其工作原理不受搜索空间的限制性约束,能从离散的、多极值的、含噪音的高维空间问题中以很大的概率找到全局最优解,并且由于并行性,适合大规模的并行计算

设计或应用时的注意点:

        1.个体适应度的计算方法,由适应度函数决定

        2.交叉概率一般比较大,如0.9;变异概率一般都很小,可能是0.005这种数量级。

        3.产生新一代群体时,必须采用最优个体保留机制,即将上一代最优个体直接复制到下一代新群体中。(不这么做会导致算法不收敛)

        4.遗传算法的终止条件最简单有俩种:一种是完成预定的进化代数,二是种群中的最优个体在连续若干代没有改进或平均适应度在若干代基本没有改进

 编码:问题空间向编码空间的映射称为编码,反之称为译码。

编码的三个原则:完备性、健全性和非冗余性,可理解为染色体和解一一对应。(问题空间中的点理解为可行解,算法编码空间中的点理解为染色体位串)

适用度评价

遗传算法中,为体现适者生存的原则,必须要对个体位串(算法编码空间中的点)的适应性进行评价,使用适应度来表现,适应度越高,生存能力越强。

用表示位串空间,适应度函数表示为,可看出是一个实值的函数。即适应度是一个非负的实数。

给定一个优化问题     可行解,有正有负,要保证优化问题的适应度函数是非负的,且目标函数的优化方向是使得适应度函数越来越大的方向。设计一个转换函数,确定一个优化问题的适应度函数:

举例:对于最小化问题,min, 转换函数设计为:

其中,可以看作是一个自定的输入值,也可看成是理论上的最大值,或者是当前所有代/最近k代的最大值,在后一种情况中,随着代数变化。

        对于最大化问题,max,设计为

 同样的,的取值参照的设计取输入值或者是最小值。

遗传操作

遗传操作的操作算子有三个:选择(selection,或复制reproduction)、交叉(crossover或重组recombination)和变异(mutation)。依次执行,产生新一代群体来实现进化,因此算子的设计是遗传策略的主要组成部分,也是调整和控制进化过程的工具。

1)选择算子:选择算子从当前进化群体中选择适应度高的个体,放入交配池(mating pool),使得后续交叉算子从交配池中随机的选取个体进行交叉操作。

常用的选择算子主要有:适应值比例选择、排序选择、联赛选择等

2)交叉算子:是模仿自然界有性繁殖的基因重组过程,将原有的优良基因传给下一代个体,生成包含更复杂基因结构的新个体。有以下几个步骤:

                一、从交配池中随机取出要交配的一对个体

                二、根据位串长度L,对要交配的一对个体,随机选取[1,L-1]中一个或多个整数k作为交叉位置

                三、根据交叉概率  ,实行交叉操作(即配对个体在交叉位置相互交换各自的部分内容,形成新的一对个体)

交叉算子通常由一点交叉、两点交叉、多点交叉、一致交叉等形式

3)变异算子:当交叉操作产生的后代个体的适应度不再比其前代更好,但又为达到全局最优解的时候,就会发生非成熟收敛或早熟收敛,这个时候引入变异算子可以产生很好的效果:一方面丢失的信息可以恢复,保持群体中个体的多样性,防止发生非成熟收敛,另一方面,当种种群规模较大时,适度的变异能提高算法的局部搜索效率。

变异操作模拟染色体基因突变。在群体进化的过程中,交叉操作是最主要的基因重组和群体更迭的手段,变异操作是起着重要的辅助作用

1.2多目标优化问题

给定有关多目标优化问题的一般描述:

决策向量X = () ,它满足下列约束:

                     

                    

假设有r个优化目标,且这r个优化目标是相互冲突的,优化目标可表示为

                

寻求,使得在满足约束的同时达到最优。

在多目标优化中,存在下列三种情况:

一、最小化所有的子目标函数

二、最大化所有的子目标函数

三、最小化部分子目标函数,而最大化其他子目标函数

这本书都是求总目标的最小化,即min

1.3多目标进化个体之间关系

个体的支配关系:是多目标个体之间的一种重要的关系。设 和 是进化群体中的任意两个不同的个体,我们称支配(dominate) ,必须满足两个条件:

一.对所有的子目标,不比 差,即f_{k}(p)\leqslant f_{k}(q)   (k = 1,2,...,r)

二.至少存在一个子目标,使得 比好,即\exists l \in {1,2,\cdots ,r},使得f_{l}(p)\leqslant f_{l}(q)

此时,就称为非支配(non-dominated),为被支配的(dominated)。表示为p\succ q

上述的支配关系的定义是针对决策空间的,同样的,目标空间也有支配关系

目标空间中的支配关系:设     U=(u_{1},u_{2},\cdots ,u_{r})  和  V=(v_{1},v_{2},\cdots ,v_{r})是目标空间的两个向量,当且仅当u_{k}\leqslant v_{k} (k = 1,2,\cdots ,r),且\exists l\in \left \{ {1,2,\cdots ,r} \right \},使得u_{l}<v_{l}

决策空间的支配关系与目标空间中的支配关系是一致的,因为决策空间中的支配关系实质上就是由目标空间中的支配关系决定的。此外支配关系按照程度还分为弱非支配和强非支配。

1.4基于帕累托的多目标最优解集

1.4.1帕累托最优解

多目标优化中的最优解通常称为帕累托最优解。

给定一个多目标优化问题f(X),它的最优解X^{*}定义为

                        f(X^{*})= \begin{matrix} opt\\ X\in \Omega \end{matrix}f(X)

其中          f:\Omega \rightarrow \mathbb{R}^{r}

式中,\Omega为满足约束条件的解的集合,也就是可行解,  \Omega =\left \{ X\in \mathbb{R}^{n}|g_{i}(X)\geqslant 0,h_{j}(X)=0 (i = 1,2,\cdots ,k;j=1,2,\cdots ,l) \right \}

\Omega称为决策变量空间(决策空间),向量函数 f(X)\Omega\subseteq R^{n}映射到目标函数空间\Pi \subseteq \mathbb{R}^{r}

给定一个多目标优化问题min f(x),称X^{*}\in \Omega是最优解,若\forall X\in \Omega,满足下述条件:

                \begin{matrix} \wedge \\ i\in I\end{matrix}(f_{i}(X)=f_{i}(X^{*}))

或者至少存在一个j\in II=\left \{ 1,2,\cdots ,r \right \},使得f_{j}(X)> f_{j}(X^{*})

式中,\Omega =\left \{ X\in \mathbb{R}^{n}|g_{i}(X)\geqslant 0,h_{j}(X)=0 (i = 1,2,\cdots ,k;j=1,2,\cdots ,l) \right \}

给定一个多目标优化问题min f(x),设X_{1},X_{2}\in \Omega,如果f(X_{1})\leqslant f(X_{2}),则称X_{1}X_{2}优越,

f(X_{1})< f(X_{2}),则称X_{1}X_{2}优越

定义X^{*} \in \Omega是最优解:若比X^{*}更优越X\in \Omega不存在,则称X^{*}为弱帕累托最优解;若X^{*}比任何X\in \Omega都优越,则称X^{*}为完全帕累托最优解,若比X^{*}优越的X\in \Omega不存在,则称X^{*}为强帕累托最优解。

 由上述定义可以看出,满足帕累托最优解的条件往往不止一个,而是一个最优解集,表示为\left \{ X^{*} \right \}

给定一个多目标优化问题min f(x),它的最优解集定义为

P^{*}=\left \{ X^{*} \right \}=\left \{ X\in \Omega | \nexists X^{'}\in \Omega ,f_{j}(X^{'}) \leqslant f_{j}(X) (j =1,2,\cdots ,r)\right \}

多目标进化算法的优化过程是针对每一代进化算法,寻找出其当前最优个体(即当前最优解),称一个进化群体的当前最优解为非支配解;所有的非支配解的集合称为当前进化群体的非支配集(NDset),并使非支配集不断逼近真正的最优解集,最终到达最优,即NDset^{*}\subseteqq \left \{ X^{*} \right \}NDset^{*}为算法运行结束时候所求的非支配集

1.4.2帕累托最优边界

帕累托最优解在目标函数中的表现形式叫做帕累托最优边界,PF^{*}

 在目标空间中,最优解是目标函数的切点,它总是落在搜索区域的边界线(面)上。可理解为任一点若找到一个解使得其在某指标上更好,必须在另外的某指标上变得更差(非损人不能利己)的那些点连成的线。

多目标遗传算法在优化过程中,初始时随即产生一个进化群体Po_{po},然后按照某种策略构造Po_{po}

的非支配解集 NDset_{0},此时NDset_{0}可能距离\left \{ X^{*} \right \}比较远。按照某种方法或策略产生一些个体,这些个体可以是随机新产生的,也可是NDset_{0}中个体所支配的,连同NDset_{0}中的个体一起构成新的进化群体Po_{p1},对Po_{p1}执行进化操作后,构造新的非支配解集NDset_{1}NDset_{1}NDset_{0}更接近\left \{ X^{*} \right \},重复下去,必能找出无限逼近于最优解集的解集。

1.5基于帕累托的多目标进化算法的一般框架

多目标进化算法的基础是进化算法MOEA

《多目标进化优化》笔记_第2张图片

其中,保留上一代非支配集,并让其参与新一代的多目标进化操作是非常重要的,类似于进化算法必须保留上一代的最有个体一样,从而使得新一代的非支配解集不比上一代差,这是算法收敛的必要条件 ,这样一代一代进化下去,必能找到满意的解集(不一定是最优解集)。

多目标帕累托最优解集构造方法

在多目标进化算法中,基于帕累托最优化的方法,通过构造进化群体的非支配集,并使非支配集不断逼近真正的帕累托最优边界实现。一个进化群体的非支配集实际上也是当前进化群体的最优个体集合。算法收敛之前,这样的非支配集是局部最优解集,一个MOEA的收敛过程,就是在每一代进化构造当前进化群体的非支配集,并通过保留最优个体机制(当前非支配个体),使得每一代所构造的非支配集一步一步逼近真正的帕累托最优面。

所以构造非支配集的效率直接影响算法的运行流程。

这一部分从胡构造非支配集的一般方法入手,接着依次讨论庄家法、擂台法、递归方法和快排来构造最优解集。

构造帕累托最优的简单方法:

1.Deb

设进化群体是P,设置一个构造集P^{'},算法开始时,将第一个个体存入P^{'}中,接着依次将 P中的个体p    \left ( p\notin P^{'} \right ) 取出,并放入P^{'}中(个体的存放是临时的,后续可能被删除),同时将 pP^{'}中的所有个体进行比较,删除所有受p支配的个体,若p受任意一个个体支配,则将p删除。

每次比较都有r个子目标,算法的时间复杂度为o(rN^{2})

2.排除法

将进化群体Pop中的每个个体X依次和非支配集NDSet(开始时为空)的个体进行比较,如果X支配Y,说明Y是被支配个体,将Y从NDSet中删除(排除),如果X不被NDSet中任何一个个体支配,则把X并入NDSet中。初始时NDSet为空,则直接把X放入。

该算法在结束之前,NDSet的个体都不一定是非支配的。这种方法只产生非支配集,设长度为\lambda,然后将随机产生(N-\lambda )个个体,一起成新群体执行遗传进化操作。最坏情况下的时间复杂度也是o(rN^{2}),当\lambda较小时,效率比较高。

排除法和Deb方法类似,当执行效率高:Deb在比较个体支配情况时,多次重复删除操作。

3.改进算法

将构造集和非支配集分开,初始时构造集NDSet1为进化群体Pop,非支配集NDSet为空,将构造集NDSet1中不同个体X依次与其他个体Y比较(包括非支配集中个体),若X支配Y,则将Y从NDSet1中删除;一轮比较后,若X不受其他任何一个个体支配,则X是非支配的,放入NDSet中。这种方法下,NDSet中的个体一定是非支配的

该算法下只产生非支配集,时间复杂度也是o(rN^{2}),该算法的效率收到非支配个体的分布的影响。

庄家法构造帕累托最优解集

庄家法是一种非回溯的方法,和前面的方法不同,每次的构造的新的非支配个体不需要与已有的非支配个体进行比较,每一轮比较过程在构造集中选出一个个体出任庄家(一般为当前构造集的第一个个体),由庄家依次和构造集中的其他个体进行比较,并将庄家所支配的个体淘汰出局;一轮比较之后,如果庄家不受其他个体的支配,则庄家为非支配个体,否则庄家在比较过程结束时也淘汰出局。重复,直至构造集为空。

定义(不相关):x和y之间不存在支配关系,则称x和y不相关或无关

定义(非支配个体):对于给定的个体x\in P,若\nexists y\in P,使y\succ x,则称x为集合P的非支配个体。由所有P的非支配个体所组成的集合称为P 的非支配集。

定义(最大非支配集)设NDSet是P的非支配集,NDSet\subsetP,\forall x\in P,若x是P的非支配个体,必有x\in NDSet,则称NDSet是P的最大非支配集。

定义(最小元素)若在P中不存在任何其他x比x^{*}更小,则称x^{*}是偏序集(P,\succ )中的最小元素。所有最小元素的集合表示为M(P,\succ )。设x\in M(P,\succ )Cluster(x)=\left \{ {y|x\succ y,y\in P} \right \}是以x为最小元的族。

设P为进化群体,Q为构造集,初始时Q=P,NDSet为非支配集,初始时为空。从Q中取出一个个体,依次与其他所有的个体比较,将被该个体支配的所有个体从Q中删除,如果该个体没有被其他任何一个个体所支配,则它是非支配的,将它并入非支配集NDSet中,否则也从Q中删除,以此下去,直到Q为空集。

擂台赛法则构造帕累托最优解

利用庄家法则构造非支配集时,虽然没有回溯,一定程度上提高了改造非支配集的速度,但每一轮比较不一定能构造出一个新的非支配个体。使用擂台赛法则,每一轮一定能产生一个新的非支配个体,具有更高的构造非支配集的效率。

设P为一进化群体,Q为构造集,初始时Q=P,NDSet为非支配构造集,初始时为空,从Q中任取一个个体x,依次与其他的个体y比较,如何x支配y,则将y从Q中删除,如果y支配x,则用y代替x(即产生新的擂主),并继续进行比较,一轮比较过后,形成族cluster,x为最小元,将x并入非支配集NDSet,以此下去,直到Q为空。

当非支配个体在进化群体中所占比例较小时,擂台赛法具有比较高的构造效率。

用递归方法构造帕累托最优解集

多目标进化群体的分布性

进化算法是模拟生物自然进化的人工方法,与大自然生态环境一样,进化的物种也需要平衡发展,

因此,需要制定合适的生存规则来维持种群的多样性和分布性。在多目标进化算发展,对于某些问题,帕累托最优解集可能很大,也可能包含无穷个解,把所有的解都列入到非支配集中有时是比较困难的,需要使非支配集的大小保持在一个合理的范围内。

主要介绍了几类常用的保持进化群体分布性的方法和技术:小生境技术、信息熵、聚集密度、网格、聚类分析和最小生成树,同时讨论非均匀问题的分布性及其保持策略。

小生境技术保持进化群体的分布性

进化算法中,为了保持进化群体的多样性,模拟自然界生物的“物以类聚”的现象,提出小生境技术。目前具有代表性的小生境技术主要有:基于预选择、基于排挤和基于共享机制的。

基于预选择机制的小生境技术:在此机制中,只有当子个体的适应度优于其父代个体时,子个体才能代替其父个体,进入下一代进化。这种相似个体的替代(父个体和子个体之间的性状遗传),能较好的保持进化群体的多样性。

基于排挤机制的小生境技术:采用群体代间的覆盖方式,依据相似性代替群体中的个体。设置一个排挤因子(CF),在进化群体中选择规模为1/CF的个体组成一个排挤子集,计算新产生的个体与排挤子集中成员之间的相似性,并用新产生的个体代替排挤子集中与其相似的个体。

基于共享机制的小生境技术:定义一个共享函数,它表示两个个体之间的相似程度,两个个体越相似,共享函数值越大。一个个体的共享度是该个体与群体中其他个体之间共享函数值的总和。设d(i,j)为个体i和j之间的距离或相似程度(基因型或表现型),S_{i}表示个体i在群体中的共享度

S_{i}=\sum_{j\in Pop}^{}sh[d(i,j)]

个体i的共享适应度fitness(i)/S_{i}。其中,Pop为进化群体,sh[i,j]为共享函数,fitness(i)为个体i的适应度

这种计算个体共享适应度的方法考虑了一个个体与群体中所有的其他个体之间的相似程度,时间开销比较大。目前用的较多的是设置一个共享半径(亦称小生境半径),只计算共享半径以内个体的相似程度。设个体i的适应度为fitness(i),个体i的小生境计数为m_{i},其中

m_{i}=\sum_{j\in Pop}^{}sh[d(i,j)]

sh[d]的定义如下:

                        sh[d] = \left\{\begin{matrix} 0,d > \sigma _{share} \\1-d/\sigma _{share}, d < \sigma _{share} \end{matrix}\right.

\sigma _{share}为小生境半径,通常根据帕累托最优解集中个体之间的最小期望间距来确定。定义fitness(i)/mi为共享适应度,此处的mi是指个体i在小生境中的聚集度。同一小生境内的个体互相降低对方的共享适应度。个体的聚集程度越高,共享适应度就被降低的越多。

多目标优化中计算个体适应度的计算方法如下:

(1)目标函数组合方法

 设优化的目标函数有r个子目标,子目标的适应度为fit_{j}(i)(j = 1,2,...,r)个体的适应度为fitness(i)定义为fitness(i) = \coprod_{j=1}^{r}(fit_{j}(i))^{2}

这种方法的特点是简单,计算复杂度低,不容易丢失边界点但不一定能将所有的非支配个体选入配对库中,也可采用各子目标适应度的线性组合,如

fitness(i) = \sum_{j =1}^{r}(fit_{j}(i))^{k},其中k\geqslant 1

但这种方法容易丢失边界点,尤其是当k=1的时候,已知更实际的做法是将非支配集着个体与支配个体区分开来,用不同的方法计算适应度。对非支配集中个体统一规定其适应度为最小值0,而对非支配个体则按上述方法计算适应度。

(2)简单支配关系法

该方法根据个体之间的支配关系确定每个个体之间的适应度,设n_{i}为支配个体i的个体数,则对任意一个个体i定义其适应度(分类序号)为fitness(i)= 1+ n_{i}

这样可能存在多个个体具有相同的适应度的情况,选择操作按适应度从小到大依次进行,对具有相同适应度的个体采用目标函数共享机制进行选择

(3)复合支配关系法

利用支配和被支配两个因素来确定个体的适应度,非支配集NDSet中个体的适应度定义如下:

fitness(i) = n_{i}/(N+1),其中N为群体Pop的大小,n_{i}为个体i在群体Pop中所支配的个体数

支配个体的适应度定义如下:

                        fitness(j) = 1 + \sum_{i\in NDSet:i\succ j}^{}fitness(i)

由此定义可知,fitness(k) \in \left\{\begin{matrix} [0,1) k nodominated\\ [1,N) k is dominated\end{matrix}\right.

规定适应度低的个体对应着高的复制概率。此外,将NDSet中个体所支配的区域(area)定义为他的小生境,具有较多邻居的个体将拥有较高的适应度,一个非支配个体越具有生命力,则它所支配的个体就越少。

用信息熵保持进化群体的分布性

信息熵的方法能从宏观上或从整体上反映进化群体是否具有良好的多样性。

定义:群体Pop = \left \{ X_{1},X_{2},\cdots ,X_{N} \right \}的规模为N,个体X_{i}由L个基因构成,X_{i} = [x_{i}^{(1)},x_{i}^{(2)},\cdots ,x_{i}^{(L)}],i\in \left \{ 1,2,\cdots ,N \right \},群体中Pop中个体均值定义为\bar{X}=\left \{ \bar{x}^{(1)},\bar{x}^{(2)},\cdots ,\bar{x}^{(L)} \right \},其中\bar{x}^{(j)}=\sum_{i=1}^{N}\left ( x_{i}^{(j)}/N \right ),则解群体的方差定义为D=[D^{(1)},D^{(2)},\cdots ,D^{(L)}],其中D^{(j)}=\sum_{i=1}^{N}(x_{i}^{(j)}-\bar{x}^{(j)})^{2}/Nj\in \left \{ 1,2,\cdots ,L \right \}

定义:若进化群体Pop的规模为N,将它划分为m个子集P_{1} ,P_{2} ,\cdots ,P_{m},且满足:\bigcup _{p\in \left \{ P_{1},\cdots ,P_{m} \right \}}P=Pop\forall i,j\in \left \{ 1,2,\cdots ,m \right \}且i不等于j,P_{i}\bigcap P_{j} = \varnothing,则定义解群体的熵为

E = -\sum_{i =1}^{m}q_{i}log(q_{i}),其中,q_{i}=\left | P_{i} \right |/N\left | P_{i} \right |P_{i}的规模大小

值得说明的是,解群体的方差在一定程度上反映了解群体的空间分布情况,当解群体中所有个体相同时,即m= 1,这时熵取最小值E=0,当m=N时,熵取最大值E = log(N),个体在解群体中发布的越均匀,个体多样性越好,则其熵就越大

对于多目标优化问题,当非支配集收敛到帕累托最优解时,方差和熵都达到较大值。最理想的情况就是非支配集直中的N个个体,并且都均匀分布在帕累托最优边界熵,此时熵达到最大值,同时也会有较大的方差,

定义:\forall X\in Pop,Pop为进化群体,\left | Pop \right |=NX=[x_{1},x_{2},\cdots ,x_{L}],设D为一个符号集,\left | D \right | = s,x_{j}\in D,在D中的取值概率分别为P=\left \{ P_{j1}, P_{j2},\cdots ,P_{js}\right \},其中j\in \left \{ 1,2,\cdots ,L \right \}

则对应于基因座j的信息熵定义为H_{j}(N) = -\sum_{k =1}^{s}P_{jk}log(P_{jk}),其中P_{jk}为D中第k个符号出现在基因座上的概率,即有P_{jk}=(基因座j上出现第k个符号的总数)/N。定义群体的平均信息熵为H = \frac{1}{L}\sum_{j=1}^{L}H_{j}(N)

在群体进化过程中,群的平均信息熵比较容易求取

用聚集密度方法保持进化群体的分布性

宏观上,进化群体的熵或群体的平均信息熵能够比较好地刻画群体中个体的多样性与分布性,但这种方法缺乏对群体内部个体之间关系的刻画,因此不便于调控群体进化过程中的多样性与分布性。刻画群体多样性的另一种方法是群体中个体的聚集密度或聚集距离,如果个体之间的聚集距离比较大,则表明个体的聚集密度比较小,这种方法的计算复杂度高于前一种方法,但是它既能从宏观上刻画群体的多样性与分布性,同时也能比好的刻画个体之间的内在关系,可以用于进化过程中对群体的调控。

这里包括三类方法,1.通过直接计算个体之间的相似度来计算一个个体的聚集密度,2.通过计算个体之间的影响因子来计算个体的聚集密度,3.通过计算个体之间的聚集距离来计算个体之间的聚集密度。

1.相似度计算聚集密度:定义:群体Pop = \left \{ X_{1}, X_{2},\cdots ,X_{N} \right \}中的个体X_{i} = [x_{i}^{(1)},x_{i}^{(2)},\cdots ,x_{i}^{(L)}]X_{j} = [x_{j}^{(1)},x_{j}^{(2)},\cdots ,x_{j}^{(L)}],定义个体X_{i}X_{j}之间的相异程度为A_{i,j}=\frac{1}{L}\sum_{k=1}^{L}C_{k}(x_{i}^{(k)}-x_{j}^{(k)}),其中i,j\in \left \{ 1,2,\cdots ,N \right \}C_{k}为对应于基因座k的常数因子,且通常由C_{k} = BC_{k+1},B是一个常量。定义个体X_{j}X_{i}之间的相似度1-A_{i,j}

定义个体p的聚集度为与个体p相似的个体在群体中所占比重,即

crowds(p) =与个体p相似度大于r的个体的总数/N,其中r为一常数,一般取值0.9到1之间

2.影响因子来计算个体的聚集密度

将目标空间中第i个解个体对另一个解个体y的影响函数定义为

                \psi (l_{i\rightarrow y}):R\rightarrow R

其中,l_{i\rightarrow y}表示个体i对个体y的欧式距离,\psi (l_{i\rightarrow y})为两个个体之间距离的减函数

当有m个目标时,其可行解区域可以表示为一个有a_{1}\times a_{2}\times \cdots \times a_{m}个网格的超网格面F^{m}。设任意一个解个体y\in F^{m},其密度定义为

D(y) = \sum_{i=1}^{N}\psi (l(i,y))=\sum_{i_{1}=1}^{a_{1}}\cdots \sum_{i_{m}=1}^{a_{m}}\psi (l(<i_{1},i_{2},\cdots ,i_{m}>,y))

3.用聚集距离来计算个体的聚集密度

《多目标进化优化》笔记_第3张图片

 如图所示,设有两个子目标f_{1}f_{2},个体i的聚集距离是图中实线矩形的长与宽之和。设P[i]_{distance}为个体i的聚集距离,P[i].m为个体i在子目标m上的函数值,则图中个体i的聚集距离为

P[i]_{distance}=(P[i+1].f_{1}-P[i-1].f_{1})+(P[i+1].f_{2}-P[i-1].f_{2})

一般情况下,当有r个子目标时个体i的聚集距离为

P[i]_{distance}=\sum_{k=1}^{r}(P[i+1].f_{k}-P[i-1].f_{k})

这种方法比较简单,但有些情况下不能较好的反映实际情况,特别是当一个个体与其邻近个体之间的距离相等时。这种情况下,需要提供这个个体与其更多邻近个体的聚集信息。可以考虑临近多个点的均值,或者在整个子集中的均值。

举例:讨论一个个体邻近的2k个点的情况

《多目标进化优化》笔记_第4张图片

时间复杂度为O(rNlogN),计算每个个体的聚集距离为O(rkN),由于k通常比N小得多,一般地取k小于等于logN

一个个体与其邻近个体的距离越大,表明它地聚集密度越小,反之亦然。可将一个个体聚集距离地倒数定义为它的聚集密度。

 用网格保持进化群体的分布性

网格方法以不同的方式被用于MOEA设计者用于保持进化群体的分布性。下面具体讨论网格方法:网格的边界、个体在网格中的定位,以及自适应网格。

网格边界

一个有r个目标的优化问题,需要设置一个具有2r个边界的网格:下界(lb_{k})和上界(ub^{k}(k =1,2,\cdots ,r)

《多目标进化优化》笔记_第5张图片

 如图是一个二目标网格,共有四个边界:(lb_{1}),(lb_{2}),(ub_{1}),(ub_{2})。通常用超立方体的两个对角标识一个网格,在二维情况表示为(lb_{1},lb_{2})(ub_{1},ub_{2}),一般情况下(如r个目标)表示为(lb_{1},lb_{2},\cdots ,lb_{r})(ub_{1},ub_{2},\cdots ,ub_{r})

一个网格可以分割为若干个小区域(hyper-cube,HC),具体的分割次数取决于进化群体的大小和带优化问题的目标数。将每个HC表示为r^{i},这里i=\left ( i_{1},i_{2},\cdots ,i_{r} \right ),且有i_{k}\in \left \{ 1,2,\cdots ,d \right \},d是一个常数,表示在每一维上的分割次数,一般为大于2的自然数,如图,d=6,这样对应每个r^{i}的边界可以表示为

        \forall k\in \left \{ 1,2,\cdots ,r \right \},rub_{k,i}=lb_{k}+i_{k}*w_{k}

        rlb_{k,i}=lb_{k}+(i_{k}-1)*w_{k}

其中,w_{k}为每一个小区域在第k维上的宽度,w_{k}=range_{k}/d,range_{k}为第k维上的域宽。

如图所示,区域A的坐标i = (4,2),它的边界分别为

上边界点:rub_{1,i}=lb_{1}+i_{1}*w_{1}=0+4*w_{1}=4*w_{1}

                rub_{2,i}=lb_{2}+i_{2}*w_{2}=0+4*w_{2}=4*w_{2}

下边界点:rlb_{1,i}=lb_{1}+(i_{1}-1)*w_{1}=0+(4-1)*w_{1}=3*w_{1}

                rlb_{2,i}=lb_{2}+(i_{2}-1)*w_{2}=0+(2-1)*w_{2}=w_{2}

若将域款设为range1 = range2 = 12,则有w1=w2=2,从而的上边界点位(8,4),下边界点为(6,2)

个体在网格中的定位

 有了网格和网格中每个小区域的标识,就可以判断一个个体是否落在某个区域中,设有个体z=(z_{1},z_{2},\cdots ,z_{r}),对区域r^{i},若\forall k\in \left \{ 1,2,\cdots ,r \right \},z_{k}\geqslant rlb_{k,i}z_{k}< rub_{k,i},且认为个体z在区域r^{i}

在上图中,区域A中有三个个体,区域B中有一个个体,区域C中有两个个体。

为了使进化群体具有良好的分布性,通常要区分极点,因为极点总是分布在端点位置上,它有利于保持进化群体的分布性和广泛性,故而在执行选择操作时,一般不能丢失极点。这里将极点z^{ext}定义为z^{ext}=\left \{ y\in ABC|\left ( \exists k\in \left \{ 1,2,\cdots ,r \right \},\nexists z \in ARC,z\neq y,z_{k}\leqslant y_{k}\right )\vee \left ( \exists k\in \left \{ 1,2,\cdots ,r \right \},\nexists z\in ARC,z\neq y,z_{k}\geqslant y_{k}\right ) \right \}

也就是说,在某个目标上其值最大或最小的个体均被认为是极点。ARC为进化群体的归档集。

为了保持进化群体的分布性,通常在网格中选取聚集密度大的个体并删除,如选去区域A中的一个或两个个体删除。有的时候,即使非支配集中个体(一般存放在ARC中)比较均匀的分布在网格中,因为归档集的大小有限制,必须选取一定数量的个体删除掉,不能删除极点个体。

自适应网格

自适应网格技术与一般的网格方法比有如下几个特点:

1.网格的边界不是固定的,可能在每一代都不同

2.在每一代进化时,根据当前代的个体分布情况自适应的调整边界。

3.如果新产生的个体落在上一代确定的边界以外,只要它是非支配的,则一定将该个个体加入归档集。在这种情况下,若归档集已满,则考虑将其他个体从归档集中删除

设第t代的边界设为:下界(lb_{k,t})和上界(ub_{k,t})\left ( k=1,2,\cdots ,r;t> 0 \right )。同时,要求边界值满足\forall t,\forall k,lb_{k,t}< min\left \{ z_{k}|z\in ABC_{t} \right \}        ub_{k,t}>max\left \{ z_{k}|z\in ABC_{t} \right \}

在此,将边界值设为

lb_{k,t}= min\left \{ z_{k}|z\in ABC_{t} \right \}-\left ( 1/2d \right )range_{k,t}

ub_{k,t}<=max\left \{ z_{k}|z\in ABC_{t} \right \}+\left ( 1/2d \right )range_{k,t}

用聚类方法保持进化群体的分布性

聚类分析也是保持多目标进化群体分布性的有效方法。所谓聚类分析,是将群体中的个体集合划分成由类似的个体组成的多个类的过程,简称为聚类。由聚类所生成的类是一组个体的集合,同一类中的个体彼此相似,而与其他类中的个体相异,多目标进化算法的聚类分析是通过计算个体或类之间的相似度(或相异度)d(i,j)实现的,这涉及个体的表示及其数据类型。为此首先讨论有关个体的表示方法及其数据类型,在此基础上讨论再编码及其相似度的计算,最后讨论有关的聚类方法。

聚类分析中的编码及其相似度计算

在遗传算法中,个体采用二进制或实数进行编码,并采用相异度矩阵来表示两个个体之间的相似性。当群体规模为N时,个体之间的相似度可以用一个NxN的矩阵表示:

《多目标进化优化》笔记_第6张图片

此处d(i,j)为个体i和j之间的相异度,通常有d(i,j)\geqslant 0,并有d(i,j) = d(j,i),d(i,i)=0。当两个个体越相似,其相异度就越接近于0。

对于不同的个体表示方法,计算个体的相异度方法也有所不同。下面讨论几种主要的编码及其相异度的计算方法。

1.实数编码及其相异度计算

设个体i和j均为p维向量,令i=(x_{i1},x_{i2},\cdots ,x_{ip}),j=(x_{j1},x_{j2},\cdots ,x_{jp}),则它们之间的距离通常有下列计算方法:

(1)欧几里得距离:

                        d(i,j)=\sqrt{\left | x_{i1}-x_{j1} \right |^{2}+\cdots +\left | x_{ip}-x_{jp} \right |^{2}}

如果给每个变量赋一个权值,则加权后的欧几里得空间为

d(i,j)=\sqrt{w_{1}\left | x_{i1}-x_{j1} \right |^{2}+\cdots +w_{p}\left | x_{ip}-x_{jp} \right |^{2}}

(2)曼哈坦距离

d(i,j)= \left | x_{i1}-x_{j1} \right |+\cdots +\left | x_{ip}-x_{jp} \right |

(3)明考斯基距离

d(i,j)=\left ( \left | x_{i1}-x_{j1}\right |^{q} +\cdots +\left | x_{ip}-x_{jp} \right |^{q}\right )^{1/q}

式中,q是一个正整数,当q=1时表示曼哈坦距离,q=2表示欧几里得距离

欧几里得距离和曼哈坦距离满足以下性质:

一)距离是一个非负的数值

二)一个个体与自身的距离是0

三)距离函数有对称性

四)个体i和个体j之间的直接距离不会大于途径其他个体k的距离

2.二进制串编码及其相似度计算

当个体采用二进制串编码时,一个个体由若干个基因位组成,每个基因位只有两个状态0和1.比较常用的是海明距离。设个体i和j均为p维向量,令i=(x_{i1},x_{i2},\cdots ,x_{ip}),j=(x_{j1},x_{j2},\cdots ,x_{jp}),则它们之间的海明距离为

d(i,j)=\sqrt{\left ( x_{i1}-x_{j1} \right )^{2}+\cdots +\left ( x_{ip}-x_{jp} \right )^{2}}

当需要考虑基因位权值时,情况就较复杂一些,设个体i和j均为p维向量,令i=(x_{1},x_{2},\cdots ,x_{p}),j=(y_{1},y_{2},\cdots ,y_{p}),其中x_{k}=(x_{k1}x_{k2}\cdots x_{kl_{k}})y_{k}=(y_{k1}y_{k2}\cdots y_{kl_{k}})此处的l_{k}为第k个变量(基因组)基因的长度

w_{k1},w_{k2},\cdots ,w_{kl_{k}}分别为变量x_{k}y_{k}个基因对应的权值,则它们之间的距离为

d(i,j)=\sum_{k=1}^{p}\sum_{j=1}^{l_{k}}w_{kj}\left | x_{kj}-y_{kj} \right |

还有一种基于统计的相似度计算方法,设s表示两个个体中基因位相同的数目,d表示两个个体中基因位不同的数目,当不考虑不同基因的权重时,个体i和j之间的距离为

d(i,j)=\sum_{k=1}^{p}w_{k}\times ds(x_{k},y_{k})

与二进制编码类似的还有格雷码,相对于二进制编码来说,格雷码有利于改善遗传算法的局部搜索能力。设二进制编码为B=b_{m}b_{m-1}\cdots b_{2}b_{1},其对应的格雷码为G=g_{m}g_{m-1}\cdots g_{2}g_{1},则二进制编码与格雷码之间的转换棵描述如下:

\left\{\begin{matrix} g_{m}=b_{m}\\ g_{i}=b_{i+1}\bigoplus b_{i},i=m-1,m-2,\cdots ,1\end{matrix}\right.

\left\{\begin{matrix} b_{m}=g_{m}\\ b_{i}=b_{i+1}\bigoplus g_{i},i=m-1,m-2,\cdots ,1\end{matrix}\right.

3.树结构编码及相似度计算

多目标进化算法的收敛性

多目标进化算法

高维多目标优化

基于动态环境的MOEA

动态多目标优化问题(DMOP)

现实世界中,许多优化问题不仅具有多属性,而且与时间相关,即随着时间的变化,优化问题本身也发生改变,这类问题被称为动态多目标优化问题。

基本概念和数学表述

DMOP是一类目标之间互相冲突,目标函数、约束函数和相关参数等可能随着时间的变化而改变的多目标优化问题

以最小化多目标优化问题为研究对象,一个具有n个决策变量,m个目标函数的DMOP可以描述为

\left\{\begin{matrix} \min_{x\in \Omega }F(x,t)=(f_{1}(x,t),\cdots ,f_{m}(x,t))^{T}\\ s.t.g_{i}(x,t)\leqslant 0 (i=1,2,\cdots ,p)\\ h_{j}(x,t)=0(j=1,2,\cdots ,q)\end{matrix}\right.

其中,t为时间变量,x=(x_{1},x_{2},\cdots ,x_{n})\in \Omega为n维决策变量,F=(f_{1},f_{2},\cdots ,f_{m})为m维目标向量,g_{i}\leqslant 0 (i=1,2,\cdots ,p)为p个不等式约束,hj为q个等式约束,

DMOP的分类

对于动态多目标优化问题,其决策空间中的帕累托最优解集(POS/PS)和目标空间中的帕累托前沿面(POF/PF)通常有4种可能随时间变化的类型。

POF POS
不变
不变 类型4 类型1
类型3 类型2

还有一种情况,当问题发生变化时,上述的几种类型可能在时间尺度内同时存在,一般研究前三种类型的问题。

动态多目标进化方法

对动态多目标进化优化的研究主要包括5个方面:保持种群多样性、基于记忆的方法、基于预测的方法、多种群策略以及将动态问题转化为静态问题。

1.保持种群多样性

针对静态算法在当前环境下收敛后,种群失去多样性的情况,研究者提出了许多保持种群多样性的策略。

Deb提出了一种随机初始化部分种群个体的方法,在一定程度上增加了种群的多样性,但却是一种盲目增加多样性的方法,当环境的变化程度加剧时,算法的性能随之递减。zheng提出引入超变异的策略,在保留一定数量精英个体的基础上,对剩下的个体用随机产生的个体替换之。Azevedo提出一种新的随机移民的方法,将基于精英个体的移民和随机移民策略相结合,比简单随机移民策略具有更好的性能。

2.基于记忆的方法

通过记忆复用以前搜索道德最优解来对新的环境变化做出快速响应,这对于周期性变化的问题能取得不错的效果。wang提出一种基于归档集的混合记忆方法,当前种群由随机产生的个体和从归档集中随机选取的个体以及归档集中的个体进行依次局部搜索后得到的新个体共同构成。尚荣华将免疫克隆算法应用于动态环境并引入记忆策略,将前一时刻的最终抗体种群作为下一时刻得到初始种群,以保证算法较好的收敛速度。koo设计一种基于中心点-方差的记忆方法,以增强算法的动态跟踪性能。

3.基于预测的方法

基于预测的方法是在每次环境变化后,通过预测机制,为种群进化提供引导方向,帮助算法对新变化做出快速响应,预测的准确性是其最主要的难点。

Hatzakis提出一种向前预测策略,提供记录目标空间相邻帕累托前沿面上边界点的历史信息,采用自回归模型预测新的最优解的位置。koo设计一种基于梯度的预测算子,通过记录前两次环境变化下搜索到的最终非支配种群中心位置和上次环境的预测梯度,预测当前环境下的种群进化梯度,然而这种梯度预测仅适用于具有相同或者相似变化程度的环境。Zhou提出一种基于种群的预测策略,不仅预测种群的中心点,同时也对其形状进行预测,随着算法的运行,积累的历史信息增加,预测的准确性将提高。

4.多种群策略

多种群策略是指在搜索空间中的几个可行区域上布置一些子种群,并且让这些子种群搜索相应子区域上变化的最优解。某种程度上说,多种群策略具有一种自适应记忆功能。Goh等提出一种基于多种群的协同进化算法,通过不同子种群之间的竞争与合作机制加速种群收敛,验证了多种群协作方法能对变化的最优解集进行快速跟踪。

5.将动态问题转化为静态问题

由于动态问题具有时间关联性,因此在时间序列上将动态问题转化成若干静态问题,然后在每个特定的时间段内进行优化,能够有效降低算法的收敛难度。wang通过固定时间参数的方法将动态问题转化成若干静态问题。Liu通过定义种群的静态序值方差和密度方差的方法将动态多目标问题转化成双目标静态优化问题。

动态多目标测试问题

在动态多目标进化算法中的研究中,通常采用FDA和DMOP两个系列的测试函数来测试算法的性能。DMOP系列测试函数是对FDA的扩展。

FPS

Hatzakis提出一种向前预测策略(FPS),FPS记录目标空间相邻历史PF上的边界点信息,通过自回归模型预测环境变化后的PS位置,FPS

PPS

周爱民等人提出一种基于种群的预测策略,在此之前,预测方法主要用于预测一些孤立的个体,而种群预测策略是在环境变化后,根据环境变化之前的一些重要额历史信息来重新初始化整个种群中的所有个体。在该策略中,一个帕累托解集主要包括两个部分:中心和副本。中心点的集合用于预测下一个中心点,而先前的副本主要是估计下一个副本,

PPS基本原理

PPS利用一些历史信息来预测和初始化一个种群,使它接近新的PS,首先把一个种群分成两部分:中心点和副本,然后分别对中心点和副本进行预测和估计得到新的种群。假设在t时刻,把PS^{t}分成中心点\bar{x}^{t}和副本\tilde{C}^{t}:

                                PS^{t} \cong \bar{x}^{t}+\tilde{C}^{t}

中心点的评估:\bar{x}^{t}=\frac{1}{\left | P^{t} \right |}\sum_{x^{t}\in P^{t}}^{}x^{t},其中,P^{t}=\left \{ x^{t} \right \},并且对于任意x^{t}\in P^{t}x^{t}可以表示如下:x^{t} = \bar{x}^{t}+\tilde{x}^{t}

副本\tilde{C}^{t}表示为\tilde{C}^{t}=\left \{ \tilde{x} ^{t}\right \}

对于中心点和副本有不同的操作策略,对于前者,以前的中心点\left \{ \bar{x}^{0},\bar{x}^{1},\cdots ,\bar{x}^{t} \right \}组成一个时间序列,这样就可以通过这些中心点序列取预测下一个中心点\bar{x}^{t+1}。对于后者

 ,可以通过前面的PS副本来预测\tilde{C}^{t+1}。这样就得到了一个接近于PS^{t+1}的初始种群

一个2目标问题在2维决策空间下的所有PS运动图解

《多目标进化优化》笔记_第7张图片

 PS中心点的预测

在时间t+1,PPS的中心点序列为\bar{x}^{t-k}(k=0,1,2,\cdots ,M-1),利用自回归模型(AR)在预测下一个中心点。下面对AR模型进行简单讨论

\bar{x}^{t}=(\bar{x}_{1}^{t},\cdots ,\bar{x}_{n}^{t})^{T},则下一个中心点\bar{x}^{t+1}可通过下式得到

\bar{x}^{t+1}=\sum_{j=0}^{p-1}\lambda _{j,i}\bar{x}_{i}^{t-j}+\varepsilon _{i}^{c},\varepsilon _{i}^{c}\sim N(0,\sigma _{i}^{c})

\lambda _{j,i}是AR模型的系数,i=1,2,...,n,j=0,1,...,p-1,p是AR模型的顺序

\psi _{i}=(\bar{x}_{i}^{t},\bar{x}_{i}^{t-1},\cdots ,\bar{x}_{i}^{t-M+p})^{T}

令:\Phi _{i}=\begin{pmatrix} \bar{x}_{i}^{t-1} & \cdots & \bar{x}_{i}^{t-p+1}\\ \bar{x}_{i}^{t-2} & \cdots &\bar{x}_{i}^{t-p} \\ \bar{x}_{i}^{t-M+p-1} & \cdots & \bar{x}_{i}^{t-M+1} \end{pmatrix}

\Lambda i =(\lambda _{0,i},\lambda _{1,i},\cdots ,\lambda _{p-1,i})^{T}

把历史中心点带入得到一个矩阵:\Psi _{i}=\Phi _{i}\Lambda _{i} (i=1,2,\cdots ,n)

AR模型的系数向量\Lambda _{i}(i=1,2,\cdots ,n)可以通过最小二乘回归法计算得到:

                \Lambda _{i}=(\Phi _{i}^{T}\Phi _{i})^{-1}\Phi _{i}^{T}\Psi _{i}

变量\sigma _{i}^{c}=\frac{1}{M-p}\sum_{k=t-M+p}^{t}[\bar{x}_{i}^{j}-\sum_{j=0}^{p-1}a_{j,i}\bar{x}_{i}^{k-j}]^{2}

PS的副本估计

PPS通过最近的两个副本\tilde{C}^{t}\tilde{C}^{t-1}来估计PS副本\tilde{C}^{t+1}。具体的,对于每个点\tilde{x}^{t}\in \tilde{C}^{t}被用来估计一个新的点:

                \tilde{x}_{i}^{t+1}=\tilde{x}_{i}^{t}+\varepsilon _{i}^{m}

其中,\varepsilon _{i}^{m}\sim N(0,\sigma _{i}^{m})(i=1,2,\cdots ,n),变量\sigma _{i}^{m}\sigma _{i}^{m}=\frac{1}{n}D(\tilde{C}^{t},\tilde{C}^{t+1})^{2}

D(A,B)度量了副本A和副本B之间的距离,定义如下:

D(A,B)=\frac{1}{\left | A \right |}\sum_{x\in A}^{}\min_{y\in B}\left \| x-y \right \|

下一时刻解的生成

x_{}^{}

你可能感兴趣的:(机器学习)