A-A+

优化设计之遗传算法程序实现

2020年08月30日 CAE 阅读 294 views 次

在文章《优化设计之遗传算法》中介绍了遗传算法的基本概念和程序编制流程,本文将通过一个具体的程序算例来详细介绍遗传算法的程序编写方法和计算流程。

通过上文可以知道,通过遗传算法进行优化设计共分为五个主要的步骤:产生初始种群、进行个体评价、选择染色体、交叉染色体、变异染色体。下面介绍具体的实现方法,程序使用Python语言编写。

示例:使用遗传算法求解如下所示函数的全局最大值。

1、产生初始种群

本例采用二进制编码方法,由于变量的取值范围为0到7,因此每个变量采用一个3位二进制编码,一个染色体为6位二进制,示例染色体:011101.种群的个体数设置为4个,采用随机数的方法产生初始种群。

2、个体评价和选择

使用优化目标函数进行个体评价,并计算个体的适应度系数。对个体的适应度系数累加生成个体的适应度区间。使用随机数对个体进行选择,生成0到1之间的随机数,随机数位于哪个个体的适应度区间就选择哪个个体,适应度越大的个体被选中的概率越大。

3、染色体交叉

由于染色体的选择是随机的,直接按选出的顺序对1、2号染色体,3、4号染色体进行配对。使用随机数决定染色体交叉的位置,对染色体进行交叉变换。

4、染色体变异

同样使用随机数决定染色体变异的位置,由于采用的是二进制的编码方法,直接将变异的位取反即可(0变成1,1变成0)。

以上步骤全部执行完成后,就完成了一次迭代过程。执行指定的迭代次数后,输出适应度最高的个体及其对应的目标函数值即为最终的优化结果。下图所示为一次完整的迭代过程:

完整的程序代码如下所示:

此文章为微信公众号原创文章,查看全部文章内容请关注微信公众号“数字化设计CAX联盟”,回复数字:7720查看。
个人公众号“数字化设计CAX联盟”,欢迎关注,共同交流
为您推荐:

给我留言

© 坐倚北风 版权所有 严禁镜像复制 苏ICP备15034888号. 基于 Ality 主题定制 AliCMS
联系邮箱:leanwind@163.con,微信公众号:数字化设计CAX联盟

用户登录

分享到: