1、修改出生率和死亡率,观察这对最终种群数量有什么影响。
运行代码:
cells = birth(initial_offspring)
history = []
for i in range(generations):
cells = run_generation(cells)
history.append(len(cells))
clear_output()
plt.plot(history)
plt.show()
time.sleep(1)
可通过 Colab 表单滑块修改驱动模拟的参数,改变出生率和死亡率,然后再次运行最后一个笔记本单元格以查看更新后的模拟结果。
2、看看你是否能找到导致种群数量增长下降的繁殖率和死亡率。
可通过修改代码中繁殖和死亡相关参数,不断尝试不同的繁殖率和死亡率组合,运行模拟程序,观察种群数量变化,直到找到能使种群数量增长下降的繁殖率和死亡率。具体可修改代码中驱动模拟的参数,如在相关代码里修改繁殖和死亡速率参数,然后重新运行模拟代码块查看结果。
3、修改死亡率和出生率参数,观察这对结果有什么影响。
- 可修改死亡率和出生率参数,通过运行代码(如在
EDL_2_2_Simulating_Life.ipynb中运行相关代码),观察人口数量的实时变化图,来查看其对最终种群数量的影响。 - 也可使用 Colab 表单滑块修改驱动模拟的参数,然后再次运行最后一个笔记本单元格以查看更新后的模拟结果。
4、在一个进化算法中,修改交叉率和变异率,重新运行进化过程,观察改变每个参数对解决方案进化速度的影响。
- 可按照要求修改交叉率和变异率,重新运行进化过程,通过观察来确定改变交叉率和变异率对解决方案进化速度的影响。
- 一般来说,较高的交叉率可能增加基因交换的可能性,加快进化速度,但可能导致过早收敛。
- 较高的变异率会使种群产生更多变化,有利于解决复杂问题,但可能阻碍个体达到最优性能。
- 较低的变异率会使种群变化较少,更具专业性。
5、更改用于进化的选择函数的类型或参数。
实验步骤
打开 Colab 中的 EDL_3_4_TSP_Operators.ipynb 并运行所有单元格。
该笔记本提供了多种选择算子供选择和测试,包括:
- 锦标赛选择(Tournament)
- 随机选择(Random)
- 最佳选择(Best)
- 最差选择(Worst)
- NSGA2 等
选择其中一个选择算子,然后从菜单中选择 “Runtime > Run After” 来应用更改并重新运行笔记本中其余的单元格。
6、查看改变算子和超参数(种群、交叉率和变异率)对谱系有什么影响。
要查看改变算子和超参数对谱系的影响,可按如下操作:
- 增加目的地数量到10。
- 将种群和代数减少到5(因生成谱系图对于大种群成本高且难读,仅对种群数少于10的情况绘制)。
- 更改选择或交叉算子,尝试每个算子以找出最适合问题的算子。
- 更改算子和超参数后,通过菜单中的“运行 > 全部运行”重新运行整个笔记本。
- 使用谱系图确认交叉操作是否产生了有生存能力、适应度高的后代:
- 好的谱系图应显示从低适应度到高适应度后代的演变。
- 更多的箭头和连接表示进化过程的进展。
- 连接少或无连接则表明交叉操作不佳。
- 还可理解不同交叉算子(部分匹配、均匀部分匹配、有序、单点/两点交叉)的特点,以及它们对进化的影响。
- 此外,可改变之前示例中的算子和超参数并重新运行,以观察对谱系的影响。
7、在使用进化算法进行图像复制的实验中,我们可以进行怎样的操作来观察进化算法复制原始图像的效果?
可以切换到不同的图像,甚至添加自己的图像,以此观察进化算法复制原始图像的效果。
8、更改遗传算子和/或交叉、选择或变异参数,然后重新运行,应该如何操作?
可按以下步骤操作:
- 打开
EDL_3_4_TSP_Operators.ipynb笔记本。 - 利用 Colab 表单修改各种选项和超参数:
- 更改选择算子(有 锦标赛 、 随机 、 最佳 、 最差 、 NSGA2 等选项)。
- 调整种群大小、代数、交叉率、变异率等参数。 - 更改后从菜单中选择 Runtime > Run After ,应用更改并重新运行笔记本中剩余的单元格。
- 也可从图 3.6 的 Colab 表单中更改选择或交叉算子,尝试每个算子,看哪个最适合问题。
- 查看更改算子和超参数对谱系的影响。
- 重新访问
EDL_3_2_QueensGambit.ipynb笔记本并更改选择或交叉算子,查看对进化的影响。
9、如何尽可能进化出最逼真的蒙娜丽莎仿制品,并将结果反馈给作者?
项目描述
可以使用 DEAP 和 遗传算法 (GA)

最低0.47元/天 解锁文章
5万+

被折叠的 条评论
为什么被折叠?



