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

Incrementally modify problems and re-solve #252

Open
tim-shea opened this issue Aug 10, 2023 · 0 comments
Open

Incrementally modify problems and re-solve #252

tim-shea opened this issue Aug 10, 2023 · 0 comments
Labels
0-needs-review Has to be reviewed. 1-feature New feature or request

Comments

@tim-shea
Copy link
Contributor

User story

As a solution developer, I want to be able to incrementally modify my problem state and generate a new solution. I should be able to add or remove one or a set of any of the problem variable types (e.g. for a scheduling problem, the tasks, resources, or capabilities) and subsequently obtain a valid solution to the modified problem.

Conditions of satisfaction

  • Each problem type exposes a number of methods to add or remove problem-specific features.
  • Add and remove methods can accept a single item or a list of items.
  • Add and remove methods work at the same level of data specification as the problem constructor, i.e. they do not require the solution developer to obtain object references to the features which would be difficult to find.
  • Add and remove methods work at the feature level, not the node/constraint level. They do not require the solution developer to know or understand exactly how features get transformed to create nodes and constraints, and they do not expect the solution developer to correctly execute a series of operations or cleanup, e.g. removing one type of dependent feature before another, or removing all of the dependent features that were tied to a removed feature.

Not required but preferred

  • Modifying problem features is very fast, preferably much faster than solving the modified problem
  • Modifying problem features is O(1), and thus does not become a major scaling obstacle for very large problems.
  • Re-solving a problem after modifying features is fast, ideally faster than the initial solution
  • Adding and removing problem features can be performed during problem solving and modified features will be immediately incorporated into the solution
@tim-shea tim-shea added the 1-feature New feature or request label Aug 10, 2023
@github-actions github-actions bot added the 0-needs-review Has to be reviewed. label Aug 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0-needs-review Has to be reviewed. 1-feature New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant