遗传算法编码必须满足一定约束条件时咋交叉( 二 )
,计算方式如下:
其次,对物品按照价值密度从高到低进行排序,所得序号向量记为
。其中,对
,且
,必有:
如本例所示,
,
,因此必然有
。
然后,按照约束条件,逐一对个体编码进行修复。伪代码为
步2-4对个体编码
,当个体编码质量
时(即不满足公式(2)时),按照价值密度从低到高去除已选择物品。步5-7对个体编码
,当个体编码非零个数
时 (即不满足公式(3)时),修复编码。
在本例中,
,当
时,
,进入步2-7。又
,因此,经过第一轮个体编码修复后的个体变为
。进入第二轮修复,此时
,
,满足式(2)约束,
,满足式(3)约束,因此,
经过修复过后的值变化为
。
最后,修复法按照物品价值密度从高到低利用剩余背包容量装入物品。伪代码为:
因
经过Repair-1修复后,满足式(2),(3)的约束,不再过多讨论。
值得注意的是:对于
个物品中选择
个物品的约束来说,按照价值密度进行贪心修复往往效果并不算理想。此时需要考虑问题的Pareto Frontier,混合其他策略进行贪心。具体可参考文献。
推荐阅读
- 【编码】提醒:购买时注意外观和这俩编码 南京电动自行车超标车临牌更换只剩20天
- 为啥这个算法误差的看起来这么小
- 使用算法帮助人们筛选reader的信息是否存在可能
- 请问如果想成为算法工程师的话,大学选专业是选软件工程好还是计算机科学与技术好。
- 吕良伟|吕良伟19岁独子罕曝光,被指没遗传爸爸好基因,福相满满引热议
- 神经网络算法是否真的属于人工智能范畴
- |常州市省级非遗传承人增至59位
- 以算法为例,是否存在讲解者认为“懂得自然懂了,不懂的我说再多也白搭”的心理
- 豆瓣FM的推荐算法还有哪些可以改进的地方
- 如果已确定图像中物体的位置, 常用的目标分割和提取算法有哪些
