内容发布更新时间 : 2024/12/26 2:47:12星期一 下面是文章的全部内容请认真阅读。
WORD格式可编辑
南 京 航 空 航 天 大 学 共 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步。 专业知识分享
WORD格式可编辑
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初始化及其他准备工作 专业知识分享
WORD格式可编辑
区域描述器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,将个体的二进制编码转换为十进制编码。 专业知识分享
WORD格式可编辑
3.5遗传算法性能跟踪 每次迭代后的最优解和均值存放在trace中,在后续的作图中可选择调用出来。 3.6图形绘制及函数值和自变量输出 使用plot函数绘出所建数学模型的最佳解及种群均值随迭代次数的变化曲线,并使用best属性使lengend标注位置处于最优位置。 使用矩阵翻转命令flipud及矩阵元素查找命令输出2个优化解及5个自变量。 专业知识分享
WORD格式可编辑
专业知识分享