遗传算法
在自然界中进化
遗传算法是计算机科学从自然中学到的东西。为了转移话题,让我们先来看看进化论是如何运作的查尔斯·达尔文在他的物种的起源.
- 特征:生活生物由他们在遗传物质中编码的数据组成(见奎因并传给下一代。这就是为什么两代人是相似的。
- 基因突变:遗传物质的复制不准确,并且具有产生略微不同代码的概率,而不是在遗传物质中编码的内容。
- 最适合的生存:突变体变体通常不太可能存活。然而,决定他们是否存活的是突变使它们更适合的方式。
- 自然选择:遗传性状是否存活,不仅取决于它的含量,也是非确定性因素。
有一个额外的一步,实际上有助于对性繁殖中的突变有助于:
- 交叉:双亲之间的遗传物质重组产生新的遗传物质
考虑一组十二个红甲虫。他们活着,让我们假设,在一些带有绿叶的灌木丛中。他们的人口将通过性繁殖来增长,因此,可以产生变化。让我们想象乌鸦吃这些甲虫。乌鸦吃的甲虫越多,甲虫越少。现在,让我们考虑在这种甲虫人口中发展的一些不同情况。
在第一种情况下,在繁殖过程中出现了颜色变化,因此有一只甲虫的颜色是绿色而不是红色。此外,这种甲虫还能将颜色传给后代,所以它的后代甲虫都是绿色的。乌鸦看不见灌木丛中绿叶上的绿色甲虫,因此不能吃它们。然后会发生什么呢?绿甲虫的后代不会被吃掉,而红甲虫的后代会继续被吃掉。结果,在甲虫种群中,绿色甲虫比红色甲虫越来越多。
在第二种情况下,再次出现颜色变化,但现在它会导致甲虫以蓝色而不是红色。这种甲虫还可以将颜色传递到其后代,因此所有后代甲虫都是蓝色的。乌鸦可以看到灌木丛的绿色叶子中的蓝色甲虫以及它们可以看到红色的叶子,因此可以吃它们。最初会发生什么?在人口中,随着它的扩大,有一些蓝甲虫,但大多数是红色的。但此时,大象来了,并盖上甲虫生活的灌木丛。这杀死了大部分甲虫。偶然,幸存下来的少数甲虫大多是蓝色的。甲虫人口慢慢扩张,但现在,人口中的甲虫大多是蓝色的。
显而易见的是,在这两个情况下,由于罕见的变化开始是人口的共同特征。换句话说,继承性状的频率在几代内变化。由于基因控制特征,我们可以说,在人口中某些基因的频率发生了改变。这是进化观念的本质。
但在这两种情况下也有一些有趣的差异。在第一种情况下,这种变异变得普遍,因为它提供了生存优势。换句话说,它是自然选择的。我们可以看到自然选择是由乌鸦发挥的。乌鸦数量越多,红色甲虫被吃掉的数量就越多,绿色甲虫在种群中的比例就越高。因此,自然选择正在引导甲虫种群的进化。这使得甲虫种群能够更好地适应环境。
在第二种情况下,颜色的变化并没有带来生存优势。相反,这只是一种颜色的甲虫偶然存活的问题,改变了结果种群的共同特征。如果甲虫的数量非常大,大象就不会对甲虫的数量造成如此大的破坏。因此,小群体中的事故可以改变群体中某些基因的频率,即使它们没有给生存带来优势。这就是基因漂变的概念,它在没有任何适应性的情况下提供了多样性。
现在考虑第三种情况。在这种情况下,随着甲虫数量开始增加,灌木丛开始遭受植物疾病的折磨。为甲虫准备的叶子的数量减少了。结果,甲虫营养不良。与树叶充足时相比,成年甲虫的平均重量减少了,但没有发生基因变化。经过几年和几代甲虫这样的稀缺性,植物病害被消灭了。有很多叶子的食物。在这个时候,我们预计甲虫的重量是多少?
遗传代表
致遗传算法的第一步是能够遗传地代表候选解决方案。
每个候选解决方案都可以被称为个人.每个个体用a表示染色体,那是一个集合基因.基因是代表解的特性的变量。它们可以被认为是决策变量。
没有固定的方法可以做到这一点。这是算法效率所依赖的因素之一。
非常受欢迎的遗传表示是线性阵列。
在里面背包问题,每一个比特都可以指示我们是否应该拿走相应的宝藏。
适应度函数
适应度函数是个体素质的标志。它通常与生存的可能性和被选择有性生殖的机会呈正相关。
适应度函数通常由启发式模型来建模,该启发式模型给出所建议的解与最优解的距离。或者在最优解没有明显区别的情况下,它只是显示了哪个更好。
再一次,没有固定的方法选择此项。此外,这是算法的一个非常重要的参数。
在背包问题中,提出比背包容量重的数量重的人收到了0的适应性。
否则,健身是它需要的宝藏的价值。
遗传运营商
突变
通常,大多数人都应该在没有变化的情况下向下一代进行。然而,随机选择的部分在每一代中都有很小的概率来改变。
经历突变的基因的概率可能取决于它所属的整个个体的适应性。此外,根据基因是否具有区分特征,分布可能是均匀的或不均匀的。
用线性位数组编码的染色体发生突变的一种可能方法是每次翻转一个随机位。
在这种情况下,解需要找到一个特定的排列这个问题选择两个基因并交换位置可能有意义。
交叉
交叉是一种从多个父母生产儿童解决方案的技术。它涉及重组两个父母之间的遗传数据。
以下是一些方法:
一个点交叉 双点交叉 剪切和拼接 均匀的交叉
初始化
大多数遗传算法通常用随机产生的人口,即一群个体。如果启发式是可用的,它可以用来在最优解可能存在的区域附近生成一个种群。
种群规模通常很大,由数千只个体组成。然而,它实际上取决于问题的搜索空间。
循环
关键是要继续进化的过程使用上面提到的再现技术发生在发电。该算法可以设计为终止其中一个或多个发生时:
- 找到了可透明的最佳解决方案
- 找到了非常高质量的解决方案
- 个人的健身不再改善
- 固定数量的世代已经达到