遗传算法具有哪些特点?它是一种优化算法,但是却比传统的优化算法更好,也可以说是基于传统的优化算法的局限性做出的一种改进的优化算法。
传统的优化方法主要有三种:
1、枚举法。
枚举法是通过枚举出可行解集合内的所有可行解,以求出精确的最优解。对于连续函数,该方法要求先对其进行离散化处理,因此存在一些局限性:1)可能因为离散处理而永远达不到最优解。2)当枚举的空间比较大时,该方法的求解效率比较低,有时甚至在目前先进的计算工具上无法求解。
2、启发式算法。
它主要是寻求一种能产生可行解的启发式规则,以找到一个最优解或者近似的最优解,优点是求解效率比较高。这种方法的局限性:对每一个需要求解的问题必须找出其特有的启发式规则,这个启发式规则一般无通用性,并不适合其他问题。
3、搜索算法。
通过搜索算法在可行解集合的一个子集内进行搜索操作,以找到问题的最优解或者近似最优解。这种方法虽然保证不了一定得到问题的最优解,但是若适当地利用一些启发知识,就可在近似解的质量和效率上达到一种较好的平衡。
随着问题种类的不同以及问题规模的扩大,要寻求一种能够以有限的代价来解决搜索和优化的通用方法,遗传算法就是一个有效的途径,它不同于传统的优化算法。因为:
1、它具有自组织性、自适应性、和自学习性(智能性)。
应用遗传算法求解问题时,在编码方案、适应度函数以及遗传算子确定后,算法将利用进化过程中活得的信息自行组织搜索。由于基于自然的选择策略,会筛选出适应度大的个体。适应度大的个体具有更适应环境的基因结构,再通过基因重组和基因突变等遗传操作,就可能产生更适应环境的后代。进化算法的这种自组织、自适应特征,使得它同时具有能够根据环境变化来自动发现环境的特性和规律的能力。自然选择消除了算法设计过程中的一个最大障碍,即需要实现描述问题的全部特点,并要说明针对问题的不同特点算法应采取的措施。因此,利用遗传算法的方法,我们可以解决哪些复杂的非结构化的问题。
2、它具有本质并行性。
遗传算法按照并行方式搜索一个种群数目的点,而不是单点。它的并行性表现在两个方面,一是遗传算法是内在并行的,即遗传算法本身非常适合大规模并行。最简单的并行方式是让几百甚至数千台计算机各自进行独立种群的演化计算,运行过程中甚至不进行任何通信,等到运算结束时才通信比较,选择最优佳的个体。这种并行处理方式对并行系统结构没有什么限制和要求,可以说,遗传算法适合在目前所有的并行机或分布式系统上进行并行处理,而且对并行效率没有太大的影响。二是遗传算法的内含并行性。由于遗传算法采用种群的方式组织搜索,因而可以同时搜索解空间内的多个区域,并相互交流信息。使用这种搜索算法,虽然每次只执行与种群规模N成比例的计算,但是实质上进行了很多次有效的搜索,可以减少计算量获得收益。
3、遗传算法不需要求导或者其他辅助知识,而只需要影响搜索方向的目标函数和相应的适应度函数。
4、遗传算法强调概率转换规则,而不是确定的转换法则。
5、遗传算法可以更加直接地进行应用。
6、遗传算法的最终选择可以由使用者来确定,它提供了足够多的选择。
热门跟贴