我想用遺傳算法解決Job Shop調度問題,代碼將用Python編寫。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]]
@ 0k我試着:1.確定/過濾包含作業1的所有行,即>>> [行[:] [:]作業中的行如果行[0] == 1] [[1 ,1,1,4],[1,2,2,3],[1,3,3,2]] – user2090593