博客专栏

EEPW首页 > 博客 > 优化算法之手推遗传算法(Genetic Algorithm)的详细步骤图解

优化算法之手推遗传算法(Genetic Algorithm)的详细步骤图解

发布人:数据派THU 时间:2022-03-13 来源:工程师 发布文章
来源:DeepHub IMBA

遗传算法可以做什么?


遗传算法是元启发式算法之一。它有与达尔文理论(1859 年发表)的自然演化相似的机制。如果你问我什么是元启发式算法,我们最好谈谈启发式算法的区别。
启发式和元启发式都是优化的主要子领域,它们都是用迭代方法寻找一组解的过程。启发式算法是一种局部搜索方法,它只能处理特定的问题,不能用于广义问题。而元启发式是一个全局搜索解决方案,该方法可以用于一般性问题,但是遗传算法在许多问题中还是被视为黑盒。
那么,遗传算法能做什么呢?和其他优化算法一样,它会根据目标函数、约束条件和初始解给我们一组解。
图片


最优局部解与最优全局解

遗传算法是如何工作的?


遗传算法有5个主要任务,直到找到最终的解决方案。它们如下。

  • 初始化

  • 适应度函数计算

  • 选择

  • 交叉

  • 突变

图片


定以我们的问题


我们将使用以下等式作为遗传算法的示例。它有 5 个变量和约束,其中 X1、X2、X3、X4 和 X5 是非负整数且小于 10(0、1、2、4、5、6、7、8、9)。使用遗传算法,我们将尝试找到 X1、X2、X3、X4 和 X5 的最优解。
图片
将上面的方程转化为目标函数。遗传算法将尝试最小化以下函数以获得 X1、X2、X3、X4 和 X5 的解决方案。

图片
由于目标函数中有 5 个变量,因此染色体将由 5 个基因组成,如下所示。

图片


初始化


在初始化时,确定每一代的染色体数。在这种情况下,染色体的数量是 5。因此,每个染色体有 5 个基因,在整个种群中总共有 25 个基因。使用 0 到 9 之间的随机数生成基因。

在算法中:一条染色体由几个基因组成。一组染色体称为种群


下图是第一代的染色体。
图片


适应度函数计算


它也被称为评估。在这一步中,评估先前初始化中的染色体。对于上面示例,使用以下的计算方式。
这是第一代种群中的第一个染色体。
图片
将 X1、X2、X3、X4 和 X5 代入目标函数,得到 53。

图片
适应度函数是 1 除以误差,其中误差为 (1 + f(x))。

图片
下面公式中加 1 是为了避免零问题

图片
这些步骤也适用于其他染色体。

图片

选择


轮盘****法是遗传算法中的一种随机选择方法。这就像****场里的轮盘****。它有一个固定点,并且轮子旋转直到轮子上的一个区域到达固定点的前面。

在遗传算法的背景下,具有较高适应度值的染色体将更有可能在轮盘****中被选中。


首先,计算 5 条染色体的总适应度值。



总计 =


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。



关键词: AI

相关推荐

技术专区

关闭