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

Make solver options in LeastCoreValuation discoverable #583

Open
janosg opened this issue May 24, 2024 · 1 comment
Open

Make solver options in LeastCoreValuation discoverable #583

janosg opened this issue May 24, 2024 · 1 comment

Comments

@janosg
Copy link
Collaborator

janosg commented May 24, 2024

Current Situation

LeastCoreValuation and its subclasses accept an argument solver_options: dict[str, Any] which contains the name of a cvxpy supported solver and further configuration of the solver. To show which solvers and options are supported, we link to the cvxpy documentation:

Problems.

  • There is no autocomplete support for solvers or solver options
  • The name of the same options differs across solvers (e.g. sometimes the maximum number of iteration is called max_iter and sometimes max_iters)

Potential solution 1

We could write a simple abstraction around cvxpy solvers. We can harmonize options for the trivial cases (e.g. max_iter/max_iters) but don't have to go too far for very solver specific options. There are currently 16 relevant solvers in cvxpy.

However, there are drawbacks to this approach:

  1. Whenever cvxpy changes, we would have to update the wrappers
  2. It seems like such a project should not be part of a data valuation library

Potential solution 2

We could contact the authors of CVXPY and see if they are open to a PR that makes solvers and their supported options more discoverable. While more work initially, the maintenance will become much simpler.

@janosg janosg mentioned this issue May 24, 2024
4 tasks
@mdbenito
Copy link
Collaborator

I don't think we should wrap cvxpy. At most hint at some good defaults. But I would rank this as low prio

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

No branches or pull requests

2 participants