jaxopt icon indicating copy to clipboard operation
jaxopt copied to clipboard

Access to QP solvers hyper-parameters within projections

Open Algue-Rythme opened this issue 3 years ago • 1 comments

As noticed in this discussion the default hyper-parameters for EqualityConstrainedQP might cause divergence in some circumstances for projection_affine_set It would be nice to let the user access those hyper-parameters.

Similarly, the function projection_polyhedron checks feasibility by default - this is not jittable. The user must change this attribute manually. Is there a better way ?

Algue-Rythme avatar Jun 27 '22 20:06 Algue-Rythme

Sounds good about exposing options in projection_affine_set.

An alternative way would be to use classes instead of functions. Projections with a closed form would be instances of Solver (i.e. with a run method) and projections without a closed form would be an instance of IterativeSolver (i.e. with run and update methods). Then, ProjectedGradient would accept either functions (for backward compatibility) or Solver objects. This is a bit more ambitious but potentially cleaner.

Regarding the second issue, one way would be to disable feasibility checks if we detect that we are within a jitted scope but I don't know how to do this.

mblondel avatar Jun 28 '22 09:06 mblondel