用遗传算法求解有一定限制的作业调度

solve job scheduling with some restrictions by genetic algorithm

我是遗传算法新手

有很多资源教授如何实现遗传算法

还有很多例子,比如用二进制数或者数组作为基因序列,做选择和交叉得到下一代,没有任何限制下一代中哪个解是无效的(只能说一个适应度函数是是不是一个好的解决方案)

在job-scheduling问题中,如果有像"job2 cant be allocated until job1 is finished"这样的限制,如何保证初始随机解交叉或变异后的结果不服从上述限制?

例如,

M1[ |-----工作1-----| | ---- job3 ----|]
M2[ |----工作4----| |------工作2------|]
M3[ |--job5--||-----job6-----| ]

此处job2分配在job1之后

如果要生成下一代,如何保证job2在job1之后分配?

我会重视适应度函数的限制。错误顺序的不良适应值保留限制。