Skip to content

Don't add extra slacks (artificial variables) for ranged rows #98

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

Draft
wants to merge 2 commits into
base: branch-25.05
Choose a base branch
from

Conversation

chris-maes
Copy link
Contributor

When we have a ranged row of the form

l_i <= a_i^T x <= u_i

we convert it to an equality constraint for dual simplex by adding a slack s_i

a_i^T x - s_i = 0, l_i <= s_i <= u_i

We were also adding an additional slack variable for every equality constraint to ensure A was full row rank and we had a slack basis. For ranged rows this was leading to

a_i^T x - s_i + s_k = 0, l_i <= s_i <= u_i, 0 <= s_k <= 0.

This PR makes it so we no longer add s_k to rows that came from ranged rows.

Copy link

copy-pr-bot bot commented Jun 12, 2025

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@chris-maes chris-maes added non-breaking Introduces a non-breaking change improvement Improves an existing functionality labels Jun 12, 2025
@anandhkb anandhkb added this to the 25.08 milestone Jul 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
improvement Improves an existing functionality non-breaking Introduces a non-breaking change
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants