AI人工智能 遗传算法
2020-09-24 11:16 更新
本章详细讨论 AI 的遗传算法。
什么是遗传算法?
遗传算法(GA)是基于自然选择和遗传学概念的基于搜索的算法。遗传算法是称为进化计算的更大分支的一个子集。
GAs 由 John Holland 及其在密歇根大学的学生和同事开发,最着名的是 David E.Goldberg。自那以来,它一直在尝试各种优化问题并取得了很高的成功。
在 GAs 中,我们为给定问题提供了一系列可能的解决方案。这些解决方案然后经历重组和突变(如在自然遗传学中),产生新的儿童,并且该过程在各代重复。每个个体(或候选解决方案)都被分配一个适应值(基于其目标函数值),并且适合者个体被赋予更高的配偶并产生更适合个体的机会。这符合达尔文适者生存理论。
因此,它不断发展更好的个人或解决方案,直到达到停止标准。
遗传算法在本质上具有充分的随机性,但它们比随机局部搜索(我们只是尝试随机解决方案,追踪迄今为止最好的)的性能好得多,因为它们也在利用历史信息。
如何使用遗传算法优化问题?
优化是使设计,状况,资源和系统尽可能有效。 以下框图显示了优化过程 -
GA 机制优化过程的阶段
以下是用于优化问题的 GA 机制的一系列步骤。
- 第1步 - 随机生成初始群体。
- 第2步 - 选择具有最佳适应值的初始解决方案。
- 第3步 - 使用变异和交叉算子重组选定的解决方案。
- 第4步 - 将后代插入群体。
- 第5步 - 现在,如果停止条件得到满足,则返回具有最佳适应值的解。 否则,请转到第2步。
安装必要的软件包
要在 Python 中使用遗传算法来解决这个问题,我们将使用一个称为 DEAP 的功能强大的 GA 包。 它是用于快速建立原型和测试思想的新型演化计算框架库。在命令提示符下使用以下命令来安装此软件包 -
pip install deap
如果您使用的是anaconda环境,则可以使用以下命令安装 deap -
conda install -c conda-forge deap