设计研究生作业_基于遗传算法优化多元多目标函数的MATLAB实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南京航空航天大学
共 8 页第 1 页
学院:航空宇航学院姓名: 魏德宸
基于遗传算法优化多元多目标函数的MATLAB实现
0.引言
现实生活中的很多决策问题都要考虑同时优化若干个目标,而这些目标之间有时是彼此约束,甚至相互冲突,这样就需要从所有可能的方案中找到最合理、最可靠的解决方案。而遗传算法是模拟达尔文的遗传选择和自然淘汰的生物进化过程的一种新的迭代的全局优化搜索算法,它能够使群体进化并行搜寻多个目标,并逐渐找到问题的最优解。
1.问题描述
变量维数为5,含有2个优化目标的多目标优化问题表达式如下
对于该问题,利用权重系数变换法很容易求出最优解,本题中确定f1和f2的权重系数都为0.5。
2.遗传算法
2.1遗传算法简述
遗传算法的基本原理是通过作用于染色体上的基因寻找好的染色体来求解问题,它需要对算法所产生的每个染色体进行评价,并基于适应度值来选择染色体,使适应性好的染色体有更多的繁殖机会,在遗传算法中,通过随机方式产生若干个所求解问题的数字编码,即染色体,形成初始种群;通过适应度函数给每个个体一个数值评价,淘汰低适应度的个体,选择高适应度的个体参加遗传操作,经过遗产操作后的个体集合形成下一代新的种群,对这个新的种群进行下一轮的进化。
2.2遗传算法的过程
遗传算法的基本过程是:
1.初始化群体。
2.计算群体上每个个体的适应度值
3.由个体适应度值所决定的某个规则选择将进入下一代个体。
4.按概率Pc进行交叉操作。
5.按概率Pm进行变异操作。
6.没有满足某种停止条件,则转第2步,否则进入第7步。
7.输出种群中适应度值最优的染色体作为问题的满意解或最优界。
8.遗传算法过程图如图1:
图1 遗传算法过程图
3.遗传算法MATLAB代码实现
本题中控制参数如下:
(1)适应度函数形式FitnV=ranking(ObjV)为基于排序的适应度分配。
(2)交叉概率取为一般情况下的0.7,变异概率取其默认值.
(3)个体数目分别为2000和100以用于比较对结果的影响。
(4)最大遗传代数参考值分别为80和20.
(5)因含有5个未知数,故变量维数为5.
(6)因取值范围较小,变量的二进制数目为20.
(7)代沟设置为0.9.
3.1初始化及其他准备工作
区域描述器FieldD描述染色体的表示和解释,每个格雷码采用20位二进制。5个变量的区间和边界定义如上述所示。
3.2计算适应度值
计算适应度值是由根据程序FitnV=ranking(ObjV)来实现的,对这个等级评定算法的缺省设置时选择压差为2和使用线性评估,给最适应个体的适应度值为2,最差个体的适应度值为0,适应度值结果由向量FitnV返回。
3.3选择、交叉操作
选择层使用高级函数选择调用低级函数随机遍历抽样例程sus,SelCh中的个体使用高级函数recombine进行重组,使个体通过SelCh被选择再生产,并使用单点交叉例程xovsp,使用交叉概率Px=0.7进行执行并交叉。交叉后的子代被同一个矩阵SelCh返回。
3.4变异操作
为了产生子代,使用变异函数mut。子代再次由矩阵SelCh返回,变异概率缺省值PM=Px/Lind,并使用bs2rv,将个体的二进制编码转换为十进制编码。
3.5遗传算法性能跟踪
每次迭代后的最优解和均值存放在trace中,在后续的作图中可选择调用出来。
3.6图形绘制及函数值和自变量输出
使用plot函数绘出所建数学模型的最佳解及种群均值随迭代次数的变化曲线,并使用best 属性使lengend标注位置处于最优位置。
使用矩阵翻转命令flipud及矩阵元素查找命令输出2个优化解及5个自变量。
4实验分析
改变种群数量等参数的实验结果对比。表格横列2000-80表示参数设置为种群大小为2000,最大迭代次数80.竖列f1value、f2value和X1等分别表示函数值和自变量取值。
表1 参数改变最优化函数值及自变量取值
2000-80 2000-20 100-80 100-20 f1value 20.0914 20.3343 20.968 23.8958
f2value 4.6331 4.6205 4.8023 4.7151 X1 3.9961 3.9655 3.9958 3.474
X2 1.0132 1.0055 1.0631 1.0388
X3 2.0167 2.4596 2.0012 2.3256
X4 2.0073 5.1599 2.0079 4.5378
X5 3.0001 3.0164 3.0002 3.0079
当参数设置为种群大小为2000,最大迭代次数80时,最佳解及种群均值随迭代次数的变化曲线如图3所示。
第一目标函数第二目标函数
图2 种群大小为2000,最大迭代次数80变化曲线
线如图3所示。
第一目标函数第二目标函数
图3 种群大小为2000,最大迭代次数20变化曲线
当参数设置为种群大小为100,最大迭代次数80时,最佳解及种群均值随迭代次数的变化曲线如图3所示。
第一目标函数第二目标函数
图4 种群大小为100,最大迭代次数80变化曲线
线如图3所示。
第一目标函数第二目标函数
图5 种群大小为100,最大迭代次数20变化曲线
种群大小2000,最大迭代次数80时,各自变量取值如图6所示。可看出各变量的变化较为稳定,即可知收敛性较好,应为最优解。
图6 5维自变量变化曲线
4.2结果分析
(1)因本体优化目标并不太复杂,故交叉概率取为较一般的0.7,变异概率也采用默认值,避免太多的无谓改变。曲线在一开始的几次迭代后迅速下降,但到了一定值后,曲线则变得平缓,说明收敛速度较快,交叉和遗传概率满足优化要求。
(2)种群规模的大小和迭代次数的多少对结果的影响是较大的。主要表现在种群规模较小或迭代次数较少时,其结果较最优解偏差较大。由于计算机性能的不断提高,在速度要求不高时可选择较大种群和较多迭代次数已确保结果的最优化。
(3)由自变量变化曲线可看出,在交叉和变异概率选取适当的前提下,种群大小2000,最大迭代次数80时,各自变量变化较为稳定,说明最优解已基本收敛。