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


,计算方式如下:
遗传算法编码必须满足一定约束条件时咋交叉

其次,对物品按照价值密度从高到低进行排序,所得序号向量记为 遗传算法编码必须满足一定约束条件时咋交叉
。其中,对 遗传算法编码必须满足一定约束条件时咋交叉
,且 遗传算法编码必须满足一定约束条件时咋交叉
,必有:
遗传算法编码必须满足一定约束条件时咋交叉

如本例所示, 遗传算法编码必须满足一定约束条件时咋交叉
遗传算法编码必须满足一定约束条件时咋交叉
,因此必然有 遗传算法编码必须满足一定约束条件时咋交叉

然后,按照约束条件,逐一对个体编码进行修复。伪代码为
遗传算法编码必须满足一定约束条件时咋交叉

步2-4对个体编码 遗传算法编码必须满足一定约束条件时咋交叉
,当个体编码质量 遗传算法编码必须满足一定约束条件时咋交叉
时(即不满足公式(2)时),按照价值密度从低到高去除已选择物品。步5-7对个体编码 遗传算法编码必须满足一定约束条件时咋交叉
,当个体编码非零个数遗传算法编码必须满足一定约束条件时咋交叉
时 (即不满足公式(3)时),修复编码。
在本例中,遗传算法编码必须满足一定约束条件时咋交叉
,当 遗传算法编码必须满足一定约束条件时咋交叉
时,遗传算法编码必须满足一定约束条件时咋交叉
,进入步2-7。又 遗传算法编码必须满足一定约束条件时咋交叉
,因此,经过第一轮个体编码修复后的个体变为遗传算法编码必须满足一定约束条件时咋交叉
。进入第二轮修复,此时遗传算法编码必须满足一定约束条件时咋交叉
遗传算法编码必须满足一定约束条件时咋交叉
,满足式(2)约束,遗传算法编码必须满足一定约束条件时咋交叉
,满足式(3)约束,因此,遗传算法编码必须满足一定约束条件时咋交叉
经过修复过后的值变化为遗传算法编码必须满足一定约束条件时咋交叉

最后,修复法按照物品价值密度从高到低利用剩余背包容量装入物品。伪代码为:
遗传算法编码必须满足一定约束条件时咋交叉

遗传算法编码必须满足一定约束条件时咋交叉
经过Repair-1修复后,满足式(2),(3)的约束,不再过多讨论。
值得注意的是:对于 遗传算法编码必须满足一定约束条件时咋交叉
个物品中选择 遗传算法编码必须满足一定约束条件时咋交叉
个物品的约束来说,按照价值密度进行贪心修复往往效果并不算理想。此时需要考虑问题的Pareto Frontier,混合其他策略进行贪心。具体可参考文献。


推荐阅读