aai-institute / aai-institute/pyDVL

Make solver options in LeastCoreValuation discoverable

Open
#583 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.