我想使用遗传算法解决作业车间调度问题,代码将用 Python 编写。
目前,我将个人作为[job, operation, machine, operation]
. 例如,这是一条染色体的示例:
jobs = [ [1,3,3,2], [3,3,1,3], [1,1,1,4], [2,2,1,4], [2,3,3,4], [3,1,3,3], [2,1,2,1], [1,2,2,3], [3,2,2,2] ]
列表必须满足每个作业的操作优先级约束,例如列表中作业 1 的正确顺序是
[1,1,1,4], [1,2,2,3], [1,3,3,2]
换句话说,我必须仅在其他作业保留在其位置时才为作业 1(索引 0、索引 2 和索引 7)进行排序。正确的结果将是:
jobs = [ [1,1,1,4], [3,3,1,3], [1,2,2,3], [2,2,1,4], [2,3,3,4], [3,1,3,3], [2,1,2,1], [1,3,3,2], [3,2,2,2] ]
到目前为止我的尝试:
确定/过滤包含作业 1 的所有行:
[row[:][:] for row in jobs if row[0]==1]
输出
[[1, 1, 1, 4], [1, 2, 2, 3], [1, 3, 3, 2]]