> Defining Selection For the Genetic Algorithm — Feasibility. Picture by author.
· 然后,将评估功能应用于每个人(即每个员工计划)并选择最佳人选。 所选个人的数量在代码中保持可变。
> Defining Selection For the Genetic Algorithm — Cost. Picture by author.
第6步-如何为遗传算法定义迭代和停止?
该代码的最后一部分是将所有先前的构建块添加到要迭代的整体代码中。
> Defining Iteration For the Genetic Algorithm. Picture by author.
优化参数调整
为了使遗传算法完美地工作,选择正确的参数很重要:generation_size,n_mutations和n_best在此很重要。
调整这三个将允许找到两者的最佳组合:
· 收敛到一个解决方案(而不是在没有改善的情况下随机转身)
· 避免陷入局部最优
如果在调整之后您的算法仍然陷于困境,那么另一个改进的方向将是适应交配和变异函数,然后看看会发生什么。
由于本文的目标是从头开始建立一个简单而实用的遗传算法,因此我将不涉及如何找到最佳参数的细节:这将需要另一篇文章。
感谢您的阅读。 不要犹豫,继续关注更多!
(本文翻译自Joos Korstanje的文章《A Simple Genetic Algorithm from Scratch in Python》,参考:https://towardsdatascience.com/a-simple-genetic-algorithm-from-scratch-in-python-4e8c66ac3121)