我正在寫一個項目調度優化庫,一個特殊的作業車間調度問題。爲了保持它的簡單,到目前爲止,我的算法將只與工人是該項目的唯一資源工作,只有2個類型的約束到目前爲止:項目調度基本實例:遺傳算法的染色體
1)每個工人有什麼項目,他的約束可以工作。 只有一些員工能夠熟練地從事同一個項目(例如:W1,W3,W7員工可以在項目P2上工作; W2,W3,W5可以在項目P3上工作;等等),但同一個員工可以熟練地工作在多個項目上,並允許在不同時間在多個項目上工作(例如:W1連續5天在P1上工作,然後他切換到P2 4天,然後他回到P1等)
2)每個工人對他能有多少小時每天工作的約束 - 這應該代表工人的效率
首先,我創建了一個簡單時間表只包含4個項目和4名工人。
項目:
- P1; 起始:五月一號; 截止日期::30天; 需要工作時間:300
- P2; 起始:7月1日; 截止日期:60天; 需要工作時間:150
- P3; 起始:5月15日; 截止日期:45天; 需要工作時間:50
- P4; 起始:4月,20日; 截止日期:20天; 工時需要:150
工:
- W1; 效率:10h /天; 可用項目:P1,P2,P3,P4
- W2; 效率:5小時/天; 可用項目:P1,P3
- W3; 效率:8小時/天; 可用項目:P1,P4
- W4; 效率:6h /天; 可的項目:P2,P4
一個問題是建立這樣,在遺傳算法的一個染色體應該看起來怎麼樣,換句話說 - 如何將這些數據轉換成一個GA染色體GA會知道如何處理(計算它的數值適應度)? Java
中的一個例子是完美的。
你看到了什麼樣的選擇? – flup