-
Notifications
You must be signed in to change notification settings - Fork 168
Description
To use the FIRST_FIT_DECREASING CH, the model developer has to implement a DifficultyComparator, providing an estimate how difficult the entity is to plan.
That is easy when there is a clear demand for resources, like in the Cloud Computing example. Sometimes, the difficulty depends on how many specific resources (values) there are in the dataset.
Example: a shift that requires a rare skill is more difficult to plan than a shift that requires a common skill.
Sometimes, dependencies between entities impact the difficulty.
In these cases, the DifficultyComparator would have to introduce the logic of a subset of hard constraints.
Proposal: utilize all the constraints to assess entity's difficulty
- before the CH phase, for each entity, try every single placement in an empty plan in an isolation (similarly to recommendations)
- sum up the score impacts per entity across all its placements
- the worse the sum is, the more difficult is the entity to plan, as there are fewer good options for its placement
Additionally, CH could replace the StrengthComparator by the same feature, in the same pass, by grouping the score impacts by values instead of by entities.