没有合适的资源?快使用搜索试试~ 我知道了~
1、 根据 MOF 阵列大小和候选 MOF 列表,使用 random.sample 函数随机生成初始种 2、 重复生成直至个体数量与种群大小相等 1、 修复种群
资源详情
资源评论
资源推荐
复现“用于 MOF 阵列优化的遗传算法库”开发文档
一、复现文献:
Gustafson J A, Wilmer C E. Intelligent Selection of Metal-Organic Framework Arrays for
Methane Sensing via Genetic Algorithms[J]. ACS SENSORS, 2019, 4(6): 1586-1593
语言:Python
版本:3.8.0
二、对文献中所使用遗传算法的分析
2.1. 遗传算法运算关键参数和运算流程
2.1.1. 关键参数设置
种群大小 = 20
MOF 阵列大小 = 5
候选 MOF 列表 = range(1 : 51)
在竞争中胜出的顶部染色体个数 = 20 × 20% = 4(在文献作者源码中是 2)
在竞争中胜出的幸运染色体个数 = 20 × 20% = 4(在文献作者源码中是 2)
单独 MOF 对应值:随机生成的大小为“MOF 阵列大小”的 list 型数据(原因参见 2.2.3.)
2.1.2. 运算流程设计
第一步:创建初始种群;
第二步:修复初始种群中重复的染色体和染色体上重复的基因;
第三步:开始遗传运算的循环。
循环第一步:计算种群中每个染色体的适值;
循环第二步:按照适值大小将适值和种群列表对应排序;
循环第三步:保存当前种群和适值至文件“generations.csv” ,保存每一代最大适值
和平均适值至文件'Fitness_in_generations.csv';
循环第四步:选择父代;
循环第五步:产生子代:选择使用“交叉”+”变异”或单独“变异”策略;
循环第六步:修复种群中重复的染色体和染色体上重复的基因;
2.2. 遗传算法各部分的具体实现方法
2.2.1. 创建初始种群的实现方法
输入变量:种群大小、MOF 阵列大小、候选 MOF 列表;
返回值:初始种群列表。
运算流程:
1、 根据 MOF 阵列大小和候选 MOF 列表,使用 random.sample 函数随机生成初始种
群的个体,并将每个个体内的基因从小到大排列;
2、 重复生成直至个体数量与种群大小相等。
2.2.2. 修复种群中重复的染色体和染色体上重复的基因
输入变量:种群大小、种群列表、候选 MOF 列表;
返回值:种群列表。
运算流程:
1、 修复种群列表中每个染色体的重复基因;
2、 删除种群列表中重复的染色体,使用遍历比较的方法;
3、 使用 random.sample 函数随机生成的个体,将种群列表补充到要求的种群大小;
芊暖
- 粉丝: 22
- 资源: 340
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0