Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
140 views
in Technique[技术] by (71.8m points)

What kind of problem is this? Is feasible with optaplanner?

I have to solve a problem on a manufacturing environment where:

  • A number of processes with subtasks needs to be scheduled.
  • Each subtask need N resources that can be, raw material, workers or machines.
  • Some subtasks need a worker with certain skills or from a department.
  • Workers are organized in shifts, so it may happen that on a shift certain skill may not be available. *
  • A machine can fit N pieces, depending on the piece size and the capacity of the machine. *
  • A machine may accept pieces of different types. *
  • Machines can be not available on a period as maintenances can happen.
  • If the next piece going to the machine is different from the previous one, a new task for maintenance needs to be inserted. *
  • If there is no raw material of certain category it can be manufactured, so a new process to manufacture that raw material needs to be inserted before the one that needs it. *
  • The processes can have a deadline.
  • Some raw materials can be partially consumed, so for example if we have 2L of painting, a subtask require 1L of that painting.

Is this a Job Shop or any variant problem? Is it possible to do with optaplanner? Are there too many constraints for the solver?

I know that the tasks scheduling and the requirements of each subtasks can be done, my biggest concern is with the ones that I have marked with *

Thank you in advance.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

In the OptaPlanner docs, look for the Design Patterns chapter and read the section on how to design a good model and also the section on assigning to time (timeslot vs time grain vs chained).

These are 2 related video's:


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...