遗传算法编码必须满足一定约束条件时咋交叉( 三 )


2.罚函数法
罚函数相对修复法而言,在求解时间方面优势较大。通常来说,对于引例1而言,仅需要对个体适应度值 遗传算法编码必须满足一定约束条件时咋交叉
计算过程进行修改。对于 遗传算法编码必须满足一定约束条件时咋交叉
的适应度计算方式由:
遗传算法编码必须满足一定约束条件时咋交叉

变为:
遗传算法编码必须满足一定约束条件时咋交叉

其中, 遗传算法编码必须满足一定约束条件时咋交叉
分别为式(2)(3)的惩罚系数。罚函数可采用两类惩罚方式,第一种为对超出约束的量乘以惩罚系数,如式(7)中对式(2)的惩罚方式;第二种为判断是否惩罚固定值,如式(7)中对式(3)的惩罚方式。
若个体编码为 遗传算法编码必须满足一定约束条件时咋交叉
,惩罚因子 遗传算法编码必须满足一定约束条件时咋交叉
,则其适应度为
遗传算法编码必须满足一定约束条件时咋交叉

值得注意的是:对于 遗传算法编码必须满足一定约束条件时咋交叉
个物品中选择 遗传算法编码必须满足一定约束条件时咋交叉
个物品的约束来说,罚函数所得结果为可行解的概率为:
遗传算法编码必须满足一定约束条件时咋交叉

如果问题为在 遗传算法编码必须满足一定约束条件时咋交叉
组物品,且每组物品至多选择 遗传算法编码必须满足一定约束条件时咋交叉
个约束,则可行解概率为:
遗传算法编码必须满足一定约束条件时咋交叉

显然,当 遗传算法编码必须满足一定约束条件时咋交叉
较大时,罚函数所得结果基本均为不可行解。因此,罚函数通常较多利用于解空间均为可行域时。
3.编码类型修改
一般来说,对于 遗传算法编码必须满足一定约束条件时咋交叉
个物品中选择 遗传算法编码必须满足一定约束条件时咋交叉
个物品的问题,当 遗传算法编码必须满足一定约束条件时咋交叉
较小时,通常考虑整数编码类型来进行处理。此时主要考虑交叉过后,出现同一物品被多次选择的情况,可参考TSP修复方式进行处理。
遗传算法编码必须满足一定约束条件时咋交叉
遗传算法编码必须满足一定约束条件时咋交叉
两个个体编码,从第2个物品出进行交叉后,得到新的个体 遗传算法编码必须满足一定约束条件时咋交叉
遗传算法编码必须满足一定约束条件时咋交叉
。此时 遗传算法编码必须满足一定约束条件时咋交叉
为不可行解,需要考虑修复。
通常来说,比较简单的处理方式是,直接将不可行解 遗传算法编码必须满足一定约束条件时咋交叉


推荐阅读