首先,我觉得学习一个算法必须要了解其理论依据,而后研究其代码,再研究其以往的案例,这样才会对一个算法有个全面的了解。当然学习领悟一个算法并不是一天两天的事,所以路漫漫兮~~~
遗传算法
第一步:简单介绍一下遗传算法的起源。
这个遗传算法官方上说是有Holland教授和他的学生创造出来的(是第一个全面具体以论文形式介绍遗传算的),遗传算法(Genetic Algorithm,简称GA),起源于对生物系统所进行的计算机模拟研究,是一种借鉴生物界自然选择和自然遗传机制的随机搜索方法。
遗传算法是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,借鉴了伟大的达尔文先生的进化论和孟德尔的遗传学说。以“适者生存”为原则,以N代遗传而产生一个近似最优的方案。
遗传算法是一种概率搜索算法,其仿照生物进化原则来寻求问题的最优解,并具有全局优化性能。其操作简单,可以在较短的时间内达到预期的收敛效果,遗传算法主要以选择,交叉,变异等操作实现。
第二步:遗传算法主要思想
Holland及其学生Bagley把遗传算法看作一个生态系统,遗传算法内部均可相互竞争、互相交配、一代一代地繁衍,朝向最优解的方向不断演化。
根据生物学中复制、杂交、繁殖、变异、竞争、以及选择等进化现象。Holland和J.D.Bagloy将其融入算法之中。遗传算法中每一个生物体对应一个个体。生物学中存在着适者生存的特性,在遗传算法中用适应函数来进行选择,而适应函数可以计算出个体对环境的适应程度。个体组成群体,对所有个体进行选择、交叉、变异等操作,生成新的群体,称为新一代。
算法首先