I have a conundrum which can be summarized by the attached picture and described situation below:
I have a certain amount of tasks to be planned (planning entity is the invidual task itself), with each of those tasks having different duration times and properties (labeled A,B,C). I would like to ensure that tasks of same property are planned together an that only one unique employee works on tasks of a certain property type. Therefore I created a custom move to change/swap blocks of tasks with the same property together. (a sort of subchain custom move)
After construction heuristics is finished, I get a solution similar to the image below. In which tasks of property A were planned last and assigned to two different employees, because neither employee had enough availability to complete all of the tasks of type A (availability hard constraint). The only way that I can find the solution that I want is for tasks with property A to be moved to employee A: such that employee A works only on type A tasks, employee B only on type B, and employee C only on type C.
However, I am not able to figure out a series of moves (or perhaps a rule) which would allow me to do that. It seems some kind of CompositeMove on custom moves would be necessary here, but I am not sure how to do this. Does anyone have any ideas on this topic or how to approach this issue?