There are 5 jobs (say J1
, J2
, J3
, J4
and J5
) and 4 machines (say M1
, M2
, M3
and M4
). Each job requires machines in the order shown below:
Job Set:
J1: M1(8); M2(16); M4(12)
J2: M1(20); M3(10); M2(18)
J3: M3(12); M4(8); M1(15)
J4: M4(14); M2(18)
J5: M3(10); M1(15)
For Example: J1
requires 8 units of time on M1
; 16 units of time on M2
and 12 units of time on M4
.
All jobs can be run parallelly but the order of execution on machines must be followed.
For Example: J1
can run on M2
only after it has completed 8 units of M1
(see J1
in the above Job Set) and so on for all the jobs.
Goal: Reduce idle time for each machine (and hence total idle time) i.e, Maximum Machine Utilization
How can we go about solving this problem? I would like to know if there is any algorithm that I can follow to get started with this problem. Thank you for any help you can provide to solve this problem. And if it is possible, I prefer using java for my algorithm