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


中重复的物品,重新生成一个与个体已选择物品均不相同的物品。
通过对问题编码类型进行修改能够提高正常编码概率,但仍然不能保证所得个体编码均为正常编码。
参考文献:
杨洋,潘大志,贺毅朝.改进修复策略遗传算法求解折扣{0-1}背包问题. 计算机工程与应用, 2018, 54(21): 37-42.\t
杨洋. 改进帕累托算法求解超大规模多选择背包问题. 电子学报,2020. http://www.ejournal.org.cn/CN/abstract/abstract11659.shtml
Michalewicz Z , Schoenauer M . Evolutionary Algorithms for Constrained Parameter Optimization Problems. Evolutionary Computation, 1996, 4(1):1-32.

■网友
经过查阅资料,我想到的可以有两种方法:
1.使用整数编码,编码时用数字表示1的位置,比如3就表示1在第三个位置上,这样编码时,既可以限制1的数量,又不用担心交叉的问题。
【遗传算法编码必须满足一定约束条件时咋交叉】 2.交叉时以组为单位进行交叉,例如这一组里面要求只有一个1,那么交叉时这一组都进行交叉,交叉前两个父代的这一个组都只有一个1 ,那么交叉后也一定还是可行的。这样做的话,交叉点就不是一个任意点了,而是要从一个可行交叉点集里面选任意点,这个可行交叉点集就得自己设置了,例如所有组的组号。


推荐阅读