各种优化算法求解函数优化问题

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

各种优化算法求解函数优化问题

1.遗传算法的简单介绍及流程

1.1遗传算法的基本原理

遗传算法 ( Genetic Algorithm ,简称 GA) 是近年来迅速发展起来的一种全新的随机搜索优化算法。与传统搜索算法不同 ,遗传算法从一组随机产生的初始解 (称为群体 )开始搜索。群体中的每个个体是问题的一个解 ,称为染色体。这些染色体在后续迭代中不断进化 , 称为遗传。遗传算法主要通过交叉、变异、选择运算实现。交叉或变异运算生成下一代染色体,称为后

代。染色体的好坏用适应度来衡量。根据适应度的大小从上一代和后代中选择一定数量的个

体 ,作为下一代群体 ,再继续进化 ,这样经过若干代之后 ,算法收敛于最好的染色体 ,它很可能就是问题的最优解或次优解。遗传算法中使用适应度这个概念来度量群体中的各个个体在优化计算中有可能达到最优解的优良程度。度量个体适应度的函数称为适应度函数。适应度函数的定义一般与具体求解问题有关。

1.2遗传算法的流程

第一步:确定决策变量及各种约束条件,即确定出个体的表现型X和问题的解空间;

第二步:确定出目标函数的类型,即求目标函数的最大值还是最小值,以及其数学描述形式或量化方法,建立其优化模型;

第三步:确定表示可行解的染色体编码方法,即确定出个体的基因型X和遗传算法的搜

索空间。

第四步:确定解码方法,即确定出个体的基因型 X和个体的表现型 X的对应关系或转换方法;

第五步:确定个体时候适应度的量化评价方法,即确定出由目标函数 f(X) 值到个体适应度F(X) 的转换规则;

第六步:设计遗传算子,即确定出选择运算、交叉运算、变异运算等遗传算子的具体操作方法;

第七步:确定出遗传算法的运行参数,即确定出遗传算法的M、 T、 Pc、 Pm等参数。1.3 遗传算法求解函数优化问题中的参数分析

目前,函数优化是遗传算法的经典应用领域,也是对遗传算法进行性能评价的常用范

例。对于函数优化中求解实数型变量的问题,一般采用动态编码和实数编码的方法来提高其搜

索效率,所以是求解各类函数优化问题比较适合的算法。

1.3.1编码方案

在用遗传算法求解函数优化问题时,把解空间中的数据点都映射到遗传中对应的基因型数据,采用二进制编码,在给定函数的变量上下界和编码精度内,求得单个变量的编码长度,然后随机生成一些固定长度为的二进制数作为作为初始种群。

1.3.2适应度函数

先用解码函数将二进制代码转换为解空间中的数据,把数据带入测试函数中,得到种群

中每个个体的适应值,然后以种群中函数值取得最大值的个体的函数值与每个个体的函数值之差,再与最大函数值的 n倍(假设种群粒子数为 n) 和种群中所有个体的函数值之和的比值,得到每个个体的适应度。如果求函数最小值问题,则适应度值越大其函数值越小。

1.3.3选择算子

遗传算法最常用的选择策略就是正比选择策略,即每个个体被选中进行遗传运算的概率为该个体的适应值和群体中所有个体适应值总和的比例。对于个体 i ,其适应度值为 F i,种群

规模为 NP,则该个体的选择概率可以表示为

P i NP F i

i NP

F i

i1

得到选择概率后,采用旋轮法来实现选择操作,令

PP0=0

i

PP i PP j

j1

共转轮 NP 次,每次转轮时,随机产生k U (0,1) ,当PP i 1 k

1.3.4交叉算子

在遗传算法中,最常用的交叉策略就是单点交叉和双切点交叉。在这个算法中,先从种群中随机选择两个要进行交叉的个体,然后随机生成一个数据点,对两个父串中对应位的数值进行交换,得到两个字串。

1.3.5变异算子

变异是在种群中按照变异概率 P m任选若干基因位改变其位值,对于 0-1编码来说,就是反转位值。在这个算法中,先在父串中随机生成一个数,如果这个数对应的位值为0,则将

它变为 1;如果这个数上的位值为 1,则将它变为 0.

1.4遗传算法求解函数优化问题流程

Step 1:初始化选择、交叉、变异概率,设置初始代数和最大迭代次数,随机生成若干个初始个体构成初始种群;

Step 2:利用解码函数将初始种群的二进制编码转化为解空间中便于计算的数据,然后用测试函数以及适应度函数求得每个个体的适应度。

Step 3 :采用轮盘赌选择种群中的个体进行遗传运算;

Step 4 :对种群中的个体进行交叉,变异运算,产生下一代新的种群。

Step 5:如果当前的迭代次数达到设置的最大迭代次数,则算法停止,进行Step 6;若未达到最大迭代次数,则转入 Step 2.

Step 6:保存种群中每一代的选择函数值最小个体作为最优个体,并保存其对应的函数值。

1.5 测试函数运行结果及算法参数对结果影响分析

1.5.1各种函数测试结果

(1)Quadric 函数状种群动态变化图 (-100,100)

第1代种群动态变化第50代种群动态变化

第 100代种群动态变化图

第 200代种群动态变化图

2) Tablet 函数测试种群变化图 (-100,100)

100代种群动态变化图

3) Rosenbrock 测试函数的种群动态变化图

第200代种群动态变化图

第1代种群动态变化图 第 50代种群动态变化

第1代种群动态变化图 第50代种群动态变化图

100 代种群动态变化图

第200代种群动态变化图

名称 最优值 最差值 目标平均值 Tablet 2.2737e-009 0.2951 0.0015 Quadric

3.7719e-005

29.7138

1.7039

(4) Griewank 函数种群动态变化图

第100代种群动态变化图

第200代种群动态变化图

第1代种群动态变化图 第50代种群动态变化图

相关文档
最新文档