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

Debugging infeasibility #190

Open
jetuk opened this issue May 12, 2024 · 0 comments
Open

Debugging infeasibility #190

jetuk opened this issue May 12, 2024 · 0 comments
Labels
core Relates to the pywr-core crate enhancement New feature or request

Comments

@jetuk
Copy link
Member

jetuk commented May 12, 2024

There was discussion around implementation of an algorithm to aid with debugging infeasible models / time-steps. Currently when a model stops because a linear program is infeasible it is often very difficult to identify why. A proposed algorithm could do the following:

On LP infeasibility:

  • Relax (remove) node capacity constraints (minimum flows are often a problem) on at a time.
  • For each one ask the solver whether the relaxed LP would be feasible (this should be quick compared to actually solving).
  • If the relaxed problem is feasible report to the user that the nodes related to this constraint could be the problem.

Questions:

  • Would the reporting be via logging or a more structured output?
  • Would this happen any time there is an infeasibility, or should it be optional? If optional what is the default?
@jetuk jetuk added enhancement New feature or request core Relates to the pywr-core crate labels May 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core Relates to the pywr-core crate enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant