遗传算法具有十分顽强的鲁棒性[56,53],这是因为比起普通的优化搜索方法,它采用了许多独特的方法和技术,归纳起来,主要有以下几个方面。
遗传算法的处理对象不是参数本身,而是对参数集进行了编码的个体。此编码操作,使得遗传算法可直接对结构对象进行操作。所谓结构对象泛指集合、序列、矩阵、树、图、链和表等各种一维或二维甚至三维结构形式的对象。这一特点,使得遗传算法具有广泛的应用领域。比如:
①通过对连接矩阵的操作,遗传算法可用来对神经网络或自动机的结构或参数加以优化;②通过对集合的操作,遗传算法可实现对规则集合或知识库的精炼而达到高质量的机器学习目的;③通过对树结构的操作用遗传算法可得到用于分类的最佳决策树;④通过对任务序列的操作,遗传算法可用于任务规划,而通过对操作序列的处理遗传算法可自动构造顺序控制系统。
如前所述许多传统搜索方法都是单点搜索算法,即通过一些变动规则,问题的解从搜索空间中的当前解(点)移到另一解(点)。这种点对点的搜索方法,对于多峰分布的搜索空间常常会陷于局部的某个单峰的优解。相反,遗传算法是采用同时处理群体中多个个体的方法,即同时对搜索空间中的多个解进行评估,更形象地说,遗传算法是并行地爬多个峰。这一特点使遗传算法具有较好的全局搜索性能,减少了陷于局部优解的风险,同时这使遗传算法本身也十分易于并行化。
在标准的遗传算法中,基本上不用搜索空间的知识或其他辅助信息,无需导数或其他辅助信息,而仅用适应度函数值来评估个体,并在此基础上进行遗传操作。需要着重提出的是,遗传算法的适应度函数不仅不受连续可微的约束,而且其定义域可以任意设定。对适应度函数的惟一要求是,对于输入可计算出加以比较的正的输出。遗传算法的这一特点使它的应用范围大大扩展。
图7-1 基本遗传算法的框图
遗传算法不是采用确定性规则,而是采用概率的变迁规则来指导它的搜索方向。在以后的章节中我们将会看到,遗传算法采用概率仅仅是作为一种工具来引导其搜索过程朝着搜索空间的更优化的解区域移动。因此虽然看起来它是一种盲目搜索方法,但实际上有明确的搜索方向。
遗传算法利用简单的编码技术和繁殖机制来表现复杂的现象,从而解决非常困难的问题。特别是由于它不受搜索空间的限制性假设的约束,不必要求诸如连续性、导数存在和单峰等假设,它能从离散的、多极值的、含有噪音的高维问题中以很大的概率找到全局最优解;其次,由于它固有的并行性,遗传算法非常适用于大规模并行计算。遗传算法目前已经在优化、机器学习和并行处理等领域得到了越来越广泛的应用。