适应度函数
适应度函数(FitnessFunction)的选取是直接影响到遗传算法的收敛速度以及能否找到最优解,因为遗传算法在进化搜索中基本不利用外部信息,仅以适应度函数为依据,利用种群每个个体的适应度来进行搜索.因为适应度函数的复杂度是遗传算法复杂度的主要组成部分,所以适应度函数的设计应尽可能简单,使计算的时间复杂度最小.
1、特点
遗传算法评价一个解的好坏不是取决于它的解的结构,而是取决于该解的适应度值,这正体现了遗传算法“优胜劣汰”的特点.遗传算法不需要适应度函数满足连续可微等条件,唯一要求是针对输入可计算出能加以比较的非负结果.这一特点使得遗传算法具有广泛的适用性.在实际问题中,适应度函数与问题的目标函数是不完全一致的,如有的问题的目标是要求得最小值(费用问题),而有的问题的目标是要求得最大值(利润函数).因此在不少场合,将目标函数映射成求最大值形式而且函数值非负的适应度函数是必要的.
2、作用
在遗传算法中,适应度是描述个体性能的主要指标.根据适应度的大小,对个体进行优胜劣汰.适应度是驱动遗传算法的动力.从生物学角度讲,适应度相当于“生存竞争、适者生存”的生物生存能力,在遗传过程中具有重要意义.将优化问题的目标函数与个体的适应度建立映射关系,即可在群体进化过程中实现对优化问题目标函数的寻优.适应度函数也称评价函数,是根据目标函数确定的用于区分群体中个体好坏的标准,总是非负的,任何情况下都希望它的值越大越好.在选择操作中,会出现2个成为遗传算法欺骗的问题:
1)在遗传算法初期,通常会产生一些超常个体,按照比例选择法,这些超常个体会因竞争力突出,而控制选择过程,影响到算法的全局优化性能;
2)遗传算法后期,当算法趋于收敛时,由于种群中个体适应度差异较小,继续优化的潜能降低,可能获得某个局部最优解.因此,如果适应度函数选择不当就会产生以上的欺骗问题.可见适应度函数的选择对于遗传算法的意义重大.
推荐阅读