Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow for partially feasible MinRequiredResources solutions #45

Open
JustinAimiable opened this issue Oct 24, 2023 · 0 comments
Open

Allow for partially feasible MinRequiredResources solutions #45

JustinAimiable opened this issue Oct 24, 2023 · 0 comments

Comments

@JustinAimiable
Copy link

Is your feature request related to a problem? Please describe.
This library has been extremely helpful for handling staffing problems at a high level. We have a use case where we determine what the required resources are for a period using erlang c and we feed that result into the required_resources parameter of MinRequiredResources along with shifts coverage. In some cases, we will have a resource requirement for a period without shifts coverage.

Describe the solution you'd like
For example, MinRequiredResources.solve() would take an optional argument, called something like allow_unmet_resource_requirements which changes the behavior to return the solution as normal with an extra key, unmet_resource_requirements, which could be an array of integers representing the indices of required_resources

Describe alternatives you've considered
As a workaround, we can have special handling which sets required resource value to 0 for the hours without overlapping shifts coverage, but it would be nicer to just be able to solve without having to do that and have returned some type of data around which periods were not feasible based on shifts coverage. MinAbsDifference solver will also work in these situations, but causes the results for the solvable periods to sometimes fall below min requirements even if it is feasible

Additional context
The workaround is fine for now, but if there is a general desire for such a feature, I'd be interested in offering some help :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant