随机蛙跳算法和NSGA2算法

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

《智能算法及应用技术》

结课综述

Name: Moonlightran

Email: randolphingwp@

目录

1. 随机蛙跳(SFLA)算法 (1)

1.1 SFLA理论基础 (1)

1.2 SFLA 的基本原理 (3)

1.3 SFLA 的基本概念 (4)

1.4 SFLA 的参数设置 (4)

1.5 SFLA 的运算流程 (5)

1.6 SFLA函数优化中实例 (10)

1.7 粒子群算法(PSO)函数优化 (14)

2. 多目标优化算法(NSGA—II) (19)

2.1多目标优化问题描述 (19)

2.2 基本概念 (19)

2.3 非支配排序算法(NSGA) (20)

2.4 带精英策略的非支配排序遗传算法(NSGA—II) (22)

2.5 NSGA-II函数优化实例 (27)

单目标和多目标优化算法介绍

——随机蛙跳算法和带精英策略的非支配排序算法

通常的优化问题可以分为单目标优化问题和多目标优化问题。针对这两类问题,分别介绍随机蛙跳算法(SFLA)和带精英策略的非支配排序算法(NSGA—II),并且给出这两类算法在函数优化中的应用实例。

1.随机蛙跳(SFLA)算法

随机蛙跳算法是由Kevin Lanes和Mustafa Eusuff于2003 年共同提出,该算法结合了基于遗传特性的模因算法和基于行为的粒子群算法的优点,适合解决各类组合优化问题。混合蛙跳算法具有设置参数少、简单易于理解、鲁棒性强等特点,已在语音情感识别、作业车间调度、复杂函数优化问题求解等领域得到成功应用。

1.1 SFLA理论基础

SFLA 是一种群体仿生类启发式进化计算方法,该算法将模因算法和粒子群优化算法的思想相结合,并经过适度扩展,因而兼具二者的优点。作为SFLA 的理论基础,模因算法和粒子群优化算法有必要进行简要介绍。

1.1.1模因算法

Moscato受Dawkin提出的meme概念的启示,于1989年首次提出了模因算法。该算法源于文化进化理论中的隐喻思想,结合了全体成员参与搜索的思想和有选择性的特定个体搜索的机制,可以通过启发式搜索解决优化问题。模因算法在原理上与遗传算法很相似,不同的是该算法在原始遗传算法步骤中的交叉和变异步骤之后增加了一个小范围的局部进化过程,故模因算法也曾被叫做增加了局部搜索功能的遗传算法。给出模因算法的运算流程如图1.1所示。

图1.1模因算法流程

1.1.2粒子群算法

Kennedy和Eberhart受鸟群的群体飞行特性启发于1995年提出粒子群优化

算法,该算法是一种基于群体智能的自适应优化计算方法。假设有一群鸟,其中的所有个体均被称作一个“粒子”,这样的“粒子”被赋予速度和位置两种属性,在可行域中按照一定的规则飞行,目标是经过一定的进化次数找出待解问题的最佳参考方案。进化过程中,所有个体不断追随两个关键的极值以调整自己的位置和速度。其中一个极值是该粒子本身搜索到的最佳位置best P ,即粒子自身的最优值;另外一个是粒子群中的所有成员中当前最优个体所在的位置best G ,即全局最优解。

粒子群优化算法中个体的速度、位置更新公式如下:

)()()()(2111k i k best k i k ibest k i k k i X G rand c X P rand c V V -+-+=-+ω(1.1)

11+++=k i k i k i V X X (1.2)

其中,k i V 为第k 次迭代中第i 个粒子的速度。

k i X 为第 k 次迭代中第i 个粒子的位置。

k ibest P 为第 k 次迭代中第i 个粒子的自身最优位置。

k best

G 为第 k 轮进化中的全局最优位置。 Rand ()为位于范围[0,1]之间的随机数。

ω为粒子的惯性因子,1c 为粒子的认知因子,控制k i P 移动的幅度。

2c 为粒子的社会因子,控制k G 移动的幅度。

粒子群优化算法的运算流程为:

Step1:初始化粒子的速度和位置。

Step2:计算所有粒子的适应值。

Step3:比较各个粒子的当前适应值与其历史最优位置best P 的适应值,如果前者优,则置此粒子当前最佳位置为best P 。

Step4:比较各个粒子的当前适应值与其全局最优位置best G 的适应值,若前者优,则置此粒子当前全局最佳位置为best G 。

Step5:采用式(1.1)和式(2.1)更新种群中个体的速度和位置。

Step6:判断:若满足停止准则,则算法终止,否则转Step2。

上述两种算法核心思想的有机结合,即形成了所研究的混合蛙跳算法。

1.2 SFLA 的基本原理

SFLA 是基于群体智能的仿生类优化算法,种群(解集)由一些具有相同结构的青蛙(解)组成。SFLA模仿了青蛙群体的集体觅食活动。

为了寻找当前有限的食物源,在空间受限的一块区域内,一群青蛙首先按一定规则找准各自的初始位置。位置确定后,每只青蛙开始利用各自携带的个性化信息在自己所在位置附近寻找食物更丰富的位置,并通过跳跃更新自己的位置。寻找的规则是,蛙群通过充分发挥自身的自组织性,分别由个数基本相同的青蛙组团搜索,形成局部范围内的小团体,即为子种群。子种群内部,由局部精英个体带领其它个体进行搜索。每个子群搜索结束之后,所有个体重新组织起来,混合后重新按照规则分组,再执行组内搜索。组团搜索和群体混合迭代执行,直至找到最丰富的食物源。

对于SFLA,每只青蛙被看作一个候选解,确定初始位置即为青蛙种群的初始化过程。组团搜索对应于种群的划分并执行局部搜索,此过程是SFLA 最核心的步骤,本质上青蛙个体的位置更新发生于此阶段。子群的混合形成算法的混合运算,即全局信息交换。全局信息交换与局部深度搜索相互作用,为SFLA跳出局部极值提供了保证。

1.3 SFLA 的基本概念

1.青蛙:承载思想与信息的个体,构成种群的元素。

2.种群:由一定数量的青蛙组成的集合。

3.子种群:种群的子集。由所有青蛙构成的群体根据相应规则被划分为多个并行、独立的子集,这些子集被称为子种群,即局部小团体。

4.适应度:用来评价青蛙个体好坏的度量标准。

5.局部搜索:子种群内部个体的更新操作。按照一定的更新机制,子群内部的青蛙个体执行跳跃操作,从而消息得以在小团体内部传播和扩散。

6.混合运算:将各个子种群合并为一个种群的操作。将各个局部小团体进行合并,形成一个统一的群体,便于个体间的信息交流,为下一轮进化提供条件。

7.控制参数:SFLA 执行需要的控制参数,主要有:所有青蛙个体总数(种群规模),最大混合迭代次数,局部小团体(子种群)的个数,子种群内部进化代数,各局部团体中青蛙的个数,青蛙个体的维数,青蛙最大跳动步长等。

8.执行终止条件:

(1)在若干连续进化代数内,全局最优解没有得到刷新;

(2)算法执行到初始设定的最大混合迭代次数。

满足二者之一,算法即被强制终止。

1.4 SFLA 的参数设置

相关文档
最新文档