我是遗传算法的新手
有很多资源教授如何实现遗传算法
和许多例子如使用二进制数或数组作为基因序列,进行选择和交叉以获得下一代而不显示对下一代中哪个解决方案无效的任何限制(只有一个适应性函数可以告诉我是不是很好的解决方案)
在作业调度问题中,如果有一些限制,例如“job2无法在作业1完成之前分配”,如何确保初始随机解的交叉或变异后的结果不符合上述限制?
例如,
M1 [| ----- job1 ----- | | ---- job3 ---- |]
M2 [| ---- job4 ---- | | ------- ------ JOB2 |]
M3 [| --job5-- || ----- job6 ----- | ]
这里job2是在job1之后分配的。
如果我想生成下一代,我如何保证job1将在job1之后分配?。
答案 0 :(得分:1)
我会重视健身功能的限制。错误订单的错误适应值会限制。