1.这篇文章的目的
本文对遗传算法进行了简要的描述,让以前没有接触过遗传算法的人有一个大概的了解,了解遗传算法的工作原理。
2.生物的遗传和进化
(1)基因组:生物体细胞的基因组包含了复制生物体所需的全部信息,这组染色体称为生物体的基因组。
(2)交叉:当两个生命体配对复制时,它们的染色体相互混合,产生一个由两个基因组成的全新基因组。这个过程叫做杂交。这意味着后代中的大部分可能会遗传上一代的好基因,也可能会遗传他们的坏基因。在前一种情况下,后代可能变得比他们的父母更好,而在后一种情况下,后代可能变得比他们的父母更差。
(3)突变:当一个基因遗传给后代时,有小概率会出现错误,从而使基因发生微小变化。生物的进化是利用无数微小的变异发展起来的,前提是这些变异有利于生物的生存。
(4)适应度得分:后代越能适应环境,就越有可能继续复制基因并遗传给下一个后代。这将显示出一种趋势,即每一代人总是比上一代人更好。
3.计算机中的遗传算法
遗传算法在计算机中的工作过程本质上是模拟生物的进化过程。
(1)首先,应确定一种编码方法,使问题的任何潜在可行解都可以表示为数字染色体。
(2)然后创建一个由随机染色体组成的初始种群(每条染色体代表一个不同的候选解),用一段时间来培养适应性最强的个体,让它们进化。
(3)在此期间,染色体的某些位置应加入少量变异。
(4)经过许多代后,遗传算法会收敛到一个解,但遗传算法可以我不能保证解决方案。如果有解决办法,那就赢了不能保证最优解。但是,只要采用的方法正确,通常可以为遗传算法编译出运行良好的程序。
(5)遗传算法的最大优点是你不不需要知道如何解决一个问题,而只需要知道用什么方式编码可行解,以便遗传算法机制使用。
4.遗传算法中其他名词的解释
(1)杂交率:杂交率用于确定两条染色体局部交换产生两个新后代的概率。
(2)突变率:突变率是对染色体进行位突变操作的概率。
(3)旅行推销员问题:给定几个城市,旅行推销员必须决定最短的路线,这样他可以访问每个城市一次,然后返回他的出发点。
5.遗传算法的实现。
通常,代表可行解的染色体以某种方式编码。在操作开始时,首先创建一个发色团群体。创建初始群体后,开始以下一系列工作:
不断循环,直到找到解决方案。
1.检查每个染色体,看看它解决问题的能力如何,并相应地给它分配一个适应性分数。
2.从当前组中选出两名成员。被选中的概率与染色体的适应性成正比,适应度得分越高,被选中的概率越大。常用的方法是轮盘赌轮盘选择。
3.根据预设的交叉率,从每个选择的染色体的随机确定的点进行杂交。
4.根据预定的突变率,通过循环选择的染色体的位,相应的位被翻转成行。
5.重复步骤2、3和4,直到创建一个新组。结束循环
从算法的步骤1到步骤5的循环称为生成。这里的整个循环称为一个纪元。
标签:染色体遗传算法问题