我正在写一个项目调度优化库,一个特殊的作业车间调度问题。为了保持它的简单,到目前为止,我的算法将只与工人是该项目的唯一资源工作,只有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