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

Single-parameter linear constraints #452

Open
AdrianSosic opened this issue Dec 11, 2024 · 3 comments
Open

Single-parameter linear constraints #452

AdrianSosic opened this issue Dec 11, 2024 · 3 comments
Assignees
Labels
enhancement Expand / change existing functionality

Comments

@AdrianSosic
Copy link
Collaborator

We might consider forbidding the creation of single-parameter linear constraints since the same logic can be activated by placing appropriate parameter bounds. Going via constraints could have negative effects for the optimizer?

@AdrianSosic AdrianSosic self-assigned this Dec 11, 2024
@Scienfitz Scienfitz added the enhancement Expand / change existing functionality label Dec 11, 2024
@AVHopp
Copy link
Collaborator

AVHopp commented Dec 11, 2024

I'm against this since interpoint constraints make the most sense with a single parameter: "For my batch, I can in total only use 100ml of this substance". If we keep the design of interpoint constraints as they currently are (that is, by having a field is_interpoint), then we should at least allow single-point interpoint constraints.
If we want to re-design interpoint, we can still do that (currently waiting for #448 as I still need to test the interplay between interpoint and cardinality constraints)

@Scienfitz
Copy link
Collaborator

Sounds reasonable for normal use cases of parameters/cosntraints being fully controlled by suers.

But how about other situations like ones that can happen eg in cardinality context: In situations like described in #448 it might happen that a single parameter constraint is created by the parameter dropping and not the user. The solution to adjust bounds would require a subtantially more complicated logic than just using the single param constraint I guess?

@AdrianSosic
Copy link
Collaborator Author

@AVHopp: yes, interpoint excluded from what I said 👍🏼

@Scienfitz: Agree. Whatever we do, the outcome should be "we are certain that the optimizer is not constrained in unnecessary ways". And there are three ways to achieve this – which is the right one remains to be figured out:

  • Perhaps no adjustment is needed at all, if things are already properly passed down to the numerical routines even in the current state.
  • If not, we might still keep the single-parameter constraint interface for convenience but make sure that we pass it on in the right way to the consuming internal code
  • Or, the approach you mentioned, where single-parameter constraints really need to be turned into adjusted parameters on the fly.

Let's see what we figure out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Expand / change existing functionality
Projects
None yet
Development

No branches or pull requests

3 participants