Skip to content

18.2.6 演化策略

18.2.6.1 演化原理

演化策略是模拟自然演化的随机优化过程的例子. 它们基于突变、重组和选择三个原理.

1. 突变

从亲本 xP ,通过随机变化 d 形成后裔 xO=xP+d ,其中 d 的分量是 (0,σi2) 正态分布随机变量 Z(0,σi2) ,其在每一次突变时要重新确定:

(18.87)d=(d1d2dn)=(Z(0,σ12)Z(0,σ22)Z(0,σn2))=(Z(0,1)σ1Z(0,1)σ2Z(0,1)σn).

在正态分布 d 情形下,小变化的概率很高,而大变化则很少出现. 这种变化受标准偏差 σi 控制.

2. 重组

对于有 μ 个亲本的种群,可以通过混杂随机选择的两个或更多个亲本信息获得后代. 这种重组可采取两种变化方式:

以中间形式重组 其后代作为 ϱ 个随机选择的亲本加权平均,即

(18.88)xO=i=1ϱαixPi,i=1ϱαi=1,2ϱμ.

以离散形式重组 其后代 xO 的第 i 个分量由 ϱ 个亲本中随机选择的一个亲本的第 i 个分量确定,即

(18.89)xiO=xiPj,j{1,,ϱ},i=1,,n.

3. 选择

通过突变和重组,随机形成一组后代. 在随后的选择过程中,目标函数 f(x) 被作为比较个体适应性的一种度量. 最适应的个体选择作为下一代. 在某些策略下, 仅仅子孙后代才参与选择. 有些策略也会考虑亲本参与选择 (参见 [18.9]).

18.2.6.2 演化算法

每一种演化策略都是基于如下算法:

a) 确定由 μ 个个体组成的适当的初始种群. 这些是第 1 代亲本 XP1={xP11, ,xPμ1} .

b) 在第 k 步中,通过当前一代亲本 XPk={xP1k,,xPλk} 的突变和重组产生 λ 个后代 XOk={xO1k,,xOλk} .

c) 通过选择得到最佳的 μ 个个体作为下一代亲本 XPk+1={xP1k+1,,xPμk+1} .

d) 重复步骤 b) 和 c) 直到满足停止规则. 这个规则可以是满足优化问题的最优判据, 或者是达到指定的代际数, 或者是超过给定的电脑时间, 等等.

18.2.6.3 演化策略的分类

每一个演化策略都由一列参数刻画. 最重要的参数是种群大小 μ 、后代个数 λ 、 参与重组的亲本个数 ϱ ,以及实施突变、重组和选择的规则. 为了区分各种不同类型的策略,通常使用一种特殊的记号. 对于仅使用突变产生后代的策略,使用 (μ+λ)(μ,λ) 策略记号. 策略 (μ+λ)(μ,λ) 彼此的区别在于选择的类型不同. 在策略 (μ,λ) 中,仅在子孙中选择新一代,而在策略 (μ+λ) 中,则新一代的选择也涉及母体. 至于使用重组策略,所涉及的亲本数 ϱ 会在 (μ/ϱ+λ) 策略和 (μ/ϱ,λ) 策略记号中体现.

18.2.6.4 生成随机数

为了对演化程序做数值评估, 需要均匀和正态分布的随机变量. 均匀分布的随机变量的值可以从分节第 1100 页 16.3.5.2 中给出的方法得到. 正态分布随机变量则可以根据如下方式从均匀随机变量产生:

博克斯-穆勒 (Box-Muller) 方法 如果 G1G2 是区间 [0,1] 上均匀分布的随机数,则如下两个方程给出两个统计独立正态分布的 (0,σ2) 随机数 Z1(0,σ2)Z2(0,σ2) :

Z1(0,σ2)=σ2lnG1cos(2πG2) 和 Z2(0,σ2)=σ2lnG1sin(2πG2)

(18.90)

18.2.6.5 演化策略的应用

在实际中, 优化问题通常高度复制. 在这里, 1209 页 18.2.5 中描述的常规优化过程往往并不适合. 演化策略属于非微分解法, 它是基于目标函数值的比较. 这种解法对目标函数的结构要求很简单. 目标函数并不需要可微或连续. 从而这种演化策略适于相当广泛的优化问题.

演化策略的应用并不限于无约束连续优化问题. 带约束的优化问题也可处理, 这里约束是通过在目标函数中添加惩罚项进行处理 (参见第 1221 页 18.2.8 中的罚函数法和障碍函数法). 另一种应用场合是离散演化,这里 x 的部分或全部分量可能从某个离散集中取值. 一种可能的突变机制是以等概率方式用其某个相邻值取代离散分量值.

18.2.6.6 (1+1)突变一选择策略

这种方法类似于 1209 页 18.2.5 中介绍的梯度法,差别在于方向 dk 是正态分布的随机向量. 种群由单个个体组成, 其在每一代只产生一个后代.

1. 突变方式

在第 k 代,后代从亲本加上一正态分布的随机向量得到

(18.91)xOk=xPk+αdk.

因子 α 是能反映收敛速度的参数. 我们把 α 看作突变的步长.

2. 选择方式

下一代,即第 k+1 代的新亲本的选择是比较两个个体的目标函数值,即按照

下面的公式选择:

(18.92)xPk+1={xOk,f(xOk)<f(xPk),xPk, 其他. 

如果在达到指定的代际数时没有更好的后代, 则此程序终止. 如果这种突变多半会导致后代改善,则可以增加步长. 而如果突变导致后代的改善较小,则应该减少 α 值.

3. 步长控制

突变步长 α 的选择对于演化方法的收敛性具有重要影响. 为了快速收敛通常会推荐大步长, 而在邻近最优或在目标函数的快速变化或振动区域, 则要求小步长. 最优步长依赖于所研究的问题. 步长太小会导致滞止, 而步长太大则可能引起演化过程的过调.

(1) 1/5 成功法则 在上一步中成功突变数目与突变总数之比确定成功的比值 q . 如果 q>1/5 ,则步长可以增加. 而如果成功比值较小,则步长 α 应该减少:

(18.93)αk+1={cαkq<1/5,1cαk,q>1/5,c=0.8,,0.85.

(2)突变步长的确定 1/5 的法则是一种粗略的选择,因而在考虑某个具体问题时并不会总是令人满意的. 在一个扩展模型中,步长 α 和标准偏差 σi,i= 1,2,,n 总是在不断修正中. 这里 ασi 以等概率的方式乘以三个因子 c,1,1/c 中的某一个, c=1.1,,1.5 . 进一步的信息见 [18.9].

18.2.6.7 种群策略

上一节介绍的 (1+1) 策略仅仅以十分简单的方式反映自然演化的原理. 在推广到种群模型时, 可能要考虑演化过程的进一步性质. 演化过程中的大量个体确保解空间的不同区域都会搜索到.

1. (μ+λ) 演化策略

(μ+λ) 策略是 (1+1) 策略的推广. 从当前一代的 μ 个亲本 XPk={xP1k, , xPμk} ,以等概率随机选择一组 λ 个母体. 允许重复选择,甚至在 μ<λ 的情形下, 这种重复选择也是必须的. 通过突变产生 λ 个后代 XOk={xO1k,,xOλk} . 从候选组 XOkXPk 中选择最佳的 μ 个个体进入下一代.

由于亲本也参与到选择,故种群从一代到下一代的质量不可能更差. (λ+μ) 策略的特点是它能保持已经找出的局部最优, 这是因为远离最优点要求发生的大的突变, 但出现这种情形的概率是非常小的. 这意味着, 个体可能有无限寿命. 通过对亲本的目标函数值加上惩罚项使其一代代增加, 从而可以避免这种情形出现. 用这种方法可以模拟个体变老.

2. (μ,λ) 演化策略

(μ+λ) 策略相反,其选择方式是在 λ 个后裔中挑选 μ 个个体作为下一代, 即在这一策略中,亲本不再活下来. 因此必须有 λ>μ . 后代的目标函数值可能大于亲本的目标函数值. 这一程序可以从局部最优点开始.

选择压力 参与选择的个体与种群大小之比定义为选择压力 S :

(18.94)S={λ+μμ, 对于 (λ+μ) 策略,λμ, 对于 (λ,μ) 策略,1S<.

如果选择压力接近于 1,则这种选择方式几乎没有影响. 大量的后代,即 λμ 会导致很大的选择压力, 因为当前个体集合中只有少数几个会存活到下一代.

3. 带重组的 (μ/ϱ+λ)(μ/ϱ,λ) 演化策略

借助于重组概念, 建立了种群个体之间的某些关系, 从而后代中混合了几个亲本的信息. 为了产生后代,从一组亲本 XPk 中以等概率方式选择 ϱ 个亲本. 假定 λ 个后代中的每个成员,都是从 ϱ 个亲本中独立选择的. 后代是所选亲本的离散或中间重组. 用这种方法产生的后代再经突变, 并进入选择过程.

在前面描述的 (μ+λ)(μ,λ) 策略中,每一个体都是一系列突变应用于第 1 代亲本中一个成员的结果. 因此, 仅通过多代的突变就可能是一种比较一般的演化步骤. 但采用重组方式则可能会出现多种更一般的演化方式, 尤其是当亲本彼此相隔遥远, 其后代就会具有新的特性.

4. 带更多个种群的演化策略

上述的演化原理形式上可以扩展到多种群情形. 这就是说, 现在不再是种群个体间的竞争, 而是种群之间的竞争. 因此, 这种演化过程包含两个层级, 并用扩展的记号表示为: [μ2/ϱ2+λ2(μ1/ϱ1+λ1)] . 从一组 μ2 个种群亲本,通过 ϱ2 个种群的重组,产生一组 λ2 个种群后代,这里的重组对于每个种群后代而言都是随机选取的. 在这 λ2 个种群后代中,使用 (μ1/ϱ1+λ1)(μ1/ϱ1,λ1) 策略进行优化. 在达到给定代际数之后, 基于适当准则选择出最佳种群. 种群中最佳个体的目标函数值或种群的均值可以作为种群比较的判据.

version 1.24.0