I have a production planning / scheduling problem, which I believe is a kind of job shop scheduling problem. But I would like to get some input on what kind of job shop scheduling problem it is and how it can be solved.
I have materials which needs to be produced in a given week, each with a given quantity. These would be the jobs. So I want to create a production plan for the entire week.
To produce each material, I need a specific tool. All materials needs a specific tool. For some of the tools I have multiple of the same kind and for others I only have one. So I might have 100 different materials, but only have 20 tools. So a lot of materials needs the same tool and for some there a multiple and for others there are only one.
In order to produce a material I need the tool associated with the material to be placed into a machine. Each tools can only be placed into a subset of the machines. So e.g. tool A can be placed into machine 1, 2 and 3, while tool B can only be placed into machine 3, 4 and 5. I have more tools than machines.
So #materials > #tools > #machines.
Each material and its given quantity have a production time associated with it.
If I want to change the tools which are placed in a machine, there is a changeover time. However, if I after producing a material on a machine continue to produce another material which requi res the same tool then there is no changeover time. The changeover is dependent on what tool you are changing from and which tool you are changing to. Further, the changeover time from A -> B is not the same as the changeover time from B -> A.
Furthermore, after producing a given quantity on a machine, it needs to be cleaned which requires some cleaning time.
In this problem I want to minimize the make-span and of course come up with a feasible plan.
Want kind of job shop scheduling problem is this, and what would be the best way to solve it?
the lorax
, would you say please, is there any specific route for each material? or after finishing the process on the part in each machine it would be as end item? Also, to enforce the tools-machine constraint, you should define either a specific set/parameter or binary variables to do that. $\endgroup$