Currently trying to solve an optimization issue without knowing if it is already a known problem having a clear name (E.g. travelling salesman problem) or if it already recognized and treated in a common way by a package or method. Basically, I'm still struggling to formulate it properly which is unfortunately better to solve it.
Having some background in R and math, optimization problems are totally new to me, I only would appreciate some hints. I'm therefore not searching for support in coding, just inputs on where to start.
Variables consist into 2 distinct dataset.
1.1. Considering a production process, for example yogurts of flavors \alpha, \beta and \gamma
1.2. Each flavor is associated to a production process P \alpha, P \beta, P \gamma
1.3. Each process is characterized by a series of production steps, for example P \alpha 1 , P \alpha 2, P \alpha 3, etc.
1.4. Each production step is composed of a certain amount of task token (for example 30 minutes). Therefore, P \alpha 1 can, for example consists of 20 identical task token (10 hours in total are necessary to execute this step)
1.5. Production processes impose that some steps can only be performed in a certain order, i.e. step 2 can only start after all step 1 are finished
1.6. Production process also impose that some steps can only be performed within a certain time interval following the end of the previous steps: For example P \alpha 2 must be performed not before 30 minutes but before 90 minutes after the end of P \alpha 1. Let imagine step 1 consists in filling the yogurt, step 2 is placing the yogurt in cold chamber, whatever.
1.7. Last constrain is about team distribution on process steps. For example P \alpha 1 and P \alpha 2 can only be performed by team A members and can be distributed within this team, while only team B can perform P \alpha 3 to P \alpha 4 and team C can perform P \alpha 5, etc.
Data set 1 therefore consists in a pool of task token, each characterized by process flavor and process steps, which is consequently defining team in charge and time frame to perform this task.
2.1. Teams are made of humans... so their working is defined to be limited per day
2.2. For each of the team members, planning can therefore be divided in availability slot (same duration than task token), taking into account working hours, vacations, breaks etc.
Data set 2 therefore consists in a pool of availability slot, each characterized by the ID of the team member, its position on the planning (day and time), the team this operator is part of.
How to best distribute the tasks over the operators considering all the introduced constraints for task token and while keeping the possibility to introduce more than one process at a time. In other words, how to find the best match betweentask token and availability slot using the possibility that task token are coming with a time interval and that they can be distributed over several team members as long as the team in charge of this step is respected and assuring that switches from once process to other is not too important (Tiring for operators and impacting in consequence the quality).
What would be a start of an approach to solve this ? Quick calculations clearly indicates that brute force is not the solution. Definition of cost function seems to be a good approach but as I never work in optimization no idea from where to start.
Any idea ?
Thank you and best regards,