-1

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

  • Which language do you prefer?,or you just need the logics? – Poomrokc The 3years Apr 04 '14 at 09:55
  • Looking for an idea and I prefer Java. – Shaileshwar Apr 04 '14 at 09:58
  • 2
    Give us some background on where you have encountered the problem, what did you try to do to solve it and how did it fail. – amit Apr 04 '14 at 09:59
  • I believe the problem is termed "Job-Shop Scheduling" in the literature: http://en.wikipedia.org/wiki/Job_shop_scheduling – Codor Apr 04 '14 at 10:00
  • This problem seems to be NP-complete for M > 2, which means that if you want to be sure to have the optimal solution you have to use brute force i.e. try all possible permutations. – Simon Apr 04 '14 at 10:14
  • The objective can be reformulated to minimization of the makespan. Approximation algorithms might be an option. – Codor Apr 04 '14 at 10:33
  • @Codor: Can you recommend a good book on Approximation algorithms that might help me in this case. – Shaileshwar Apr 04 '14 at 13:27
  • You could try the following textbook. http://f3.tiera.ru/2/M_Mathematics/MOc_Optimization%20and%20control/Leung%20J.Y.T.%20%28ed.%29%20Handbook%20of%20scheduling.%20Algorithms,%20models,%20and%20performance%20analysis%20%28CRC,%202004%29%28ISBN%201584883979%29%281157s%29_MOc_.pdf – Codor Apr 04 '14 at 13:29
  • @Simon: Trying the brute force method to find good permutation that gives minimum idle time. When I did some paper work, I got the total idle time as 36 for the above job set with one of the permutations. – Shaileshwar Apr 04 '14 at 13:32
  • @amit: One of my friends was trying to simulate manufacturing of automobile components on different machines. We thought if we could solve it using any algorithm and match the simulation results with the results obtained after running this algorithm. We did some paper work to identify different possible permutations, but having a problem identifying data structures that can help us get going. – Shaileshwar Apr 04 '14 at 14:12

1 Answers1

1

The reduction of idle time is equivalent to minimising the total length of the schedule (which is commonly referred to as makespan). You want to minimise makespan.

Static job shop scheduling problems are more than 50 years old, so there's a whole body of research on this topic. Minimising makespan is also the favourite objective of people publishing papers on this subject, so your chances are good to find some inspiration.

The problem is kind of intractable, so you're looking at an algorithm that provides an approximation as a result. Good candidates are meta-heuristics such as Genetic Algorithms, Tabu Search (TS), Variable Neighbourhood Search to name a few. As far as I remember, TS was performing very well on compared to other algorithms on benchmark results. You should check out the work from Nowicki and Smutnicki (A fast taboo search algorithm for the job shop problem E Nowicki, C Smutnicki - Management science, 1996, and subsequent work). Their implementation of TS was able to beat benchmark results at the time.

orange
  • 7,755
  • 14
  • 75
  • 139