aai-institute / aai-institute/pyDVL
Make solver options in LeastCoreValuation discoverable
- Dominant language
- Python
- Stars
- 146
- Forks
- 10
- PR merge metrics
- No merged PRs in 30d
Description
## 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:
- [supported solvers](https://www.cvxpy.org/tutorial/solvers/index.html#choosing-a-solver)
- [supported options for each solver](https://www.cvxpy.org/tutorial/solvers/index.html#setting-solver-options)
## 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.
Contributor guide
Assessment
This issue has not been assessed yet.