Skip to content

Feat: CH examines entity difficulty #1307

@rsynek

Description

@rsynek

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions