Skip to content
This repository has been archived by the owner on Nov 19, 2020. It is now read-only.

Augmented Lagrangian to support linear constraints #820

Closed
CatchemAL opened this issue Aug 28, 2017 · 2 comments
Closed

Augmented Lagrangian to support linear constraints #820

CatchemAL opened this issue Aug 28, 2017 · 2 comments

Comments

@CatchemAL
Copy link
Collaborator

Feature request

Currently, the AugmentedLagrangian only supports non-linear constraints. It would be nice if it could support linear constraints as well since, AFAIK, there is no non-linear solver that supports linear constraints out the box (other than the GoldfarbIdnani QP solver). This would be much more convenient than having to express linear constraints as non-linear constraints (not to mention faster as the gradient could be cached).

I would propose that it supports IEnumerable<LinearConstraint> linearConstraints as a constructor parameter. This is consistent with the current API, which takes IEnumerable<NonlinearConstraint> constraints. It would also naturally allow the LinearConstraintCollection class to be fed in without any extra effort.

In terms of implementation, it would be quite a straightforward change as the AugmentedLagrangian is (almost) completely set up to handle the IConstraint polymorphically. Let me know your thoughts. I might be able to get round to it in the next few weeks so feel free to assign to me if you're happy for this to go ahead.

Thanks,
Alex

@cesarsouza
Copy link
Member

That's indeed a very nice feature to have! Thanks so much!

CatchemAL added a commit that referenced this issue Oct 11, 2017
 - Adding Tolerance to the interface of IConstraint
 - Add GetViolation and IsViolated as extension methods to IConstraint (removing duplicated code)

GH-820:
 - Changing all references from NonlinearConstraint to IConstraint in AugmentedLagrangian.cs.
 - Updating the documentation to give an example of using LinearConstraints in the AugmentedLagrangian
CatchemAL added a commit that referenced this issue Oct 11, 2017
 - Adding Tolerance to the interface of IConstraint
 - Add GetViolation and IsViolated as extension methods to IConstraint (removing duplicated code)

GH-820:
 - Changing all references from NonlinearConstraint to IConstraint in AugmentedLagrangian.cs.
 - Updating the documentation to give an example of using LinearConstraints in the AugmentedLagrangian
cesarsouza added a commit that referenced this issue Oct 13, 2017
GH-820: Augmented Lagrangian to support linear constraints
@cesarsouza cesarsouza added this to the 3.8 milestone Oct 22, 2017
@cesarsouza
Copy link
Member

Added in 3.8.0.

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

No branches or pull requests

2 participants