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

Add a structured list of solvers #380

Merged
merged 13 commits into from
Apr 16, 2024
Merged

Add a structured list of solvers #380

merged 13 commits into from
Apr 16, 2024

Conversation

kellertuer
Copy link
Member

This is a start to resolve #374.

I am still not so sure how to best to the list.

  • for now there is a rough classification based on “knowledge” required about the cost
  • each solver gets a 1-2 sentence items block for now and (maybe in a newline or even with a new subsubsection) an example call to the solver. Both the name and the function should be linked.

Further ideas welcome – for now I just build the groups and 3 examples for solvers how I would introduce them in “super-short”.

@kellertuer kellertuer added the WIP Work in Progress (for a pull request) label Apr 13, 2024
Copy link

codecov bot commented Apr 13, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 99.76%. Comparing base (462f8f0) to head (16bc3e0).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #380   +/-   ##
=======================================
  Coverage   99.76%   99.76%           
=======================================
  Files          73       73           
  Lines        7243     7243           
=======================================
  Hits         7226     7226           
  Misses         17       17           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@mateuszbaran
Copy link
Member

  • each solver gets a 1-2 sentence items block for now and (maybe in a newline or even with a new subsubsection) an example call to the solver. Both the name and the function should be linked.

I think we don't need an example call there, we can just link to an example that is available elsewhere. A couple of sentences about the solver is IMHO enough to provide an idea whether it's appropriate solver for a particular problems, and details should be elsewhere.

Co-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>
@kellertuer
Copy link
Member Author

Ok, then without the call example.

@kellertuer kellertuer marked this pull request as ready for review April 15, 2024 15:44
@kellertuer
Copy link
Member Author

I just finished the list. Currently, in every section, the algorithms are ordered alphabetically, we could order them also by “favourite ones first” in an oppinionated way.

I also kept an alphabetical table below, that now instead of name-function,state-“cost properties” has 3 columns name-function-state, where function refers to the high-level interface.

@kellertuer kellertuer added Ready-for-Review A label for pull requests that are feature-ready and removed WIP Work in Progress (for a pull request) labels Apr 15, 2024
docs/src/solvers/index.md Outdated Show resolved Hide resolved
docs/src/solvers/index.md Outdated Show resolved Hide resolved
docs/src/solvers/index.md Outdated Show resolved Hide resolved
docs/src/solvers/index.md Outdated Show resolved Hide resolved
@mateuszbaran
Copy link
Member

I just finished the list. Currently, in every section, the algorithms are ordered alphabetically, we could order them also by “favourite ones first” in an oppinionated way.

Maybe it would be sufficient to add a symbol that distinguishes algorithms known to be state-of-the-art for some problems (like quasi-Newton) and those that are here mostly for historical perspective and comparison (like gradient descent)? I don't think we can order algorithms from best to worst because that often depends on the problem being solved.

Anyway, I generally like the list and I think it's a very good addition 👍 .

kellertuer and others added 2 commits April 15, 2024 20:38
Co-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>
Co-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>
@kellertuer
Copy link
Member Author

kellertuer commented Apr 15, 2024

Maybe it would be sufficient to add a symbol that distinguishes algorithms known to be state-of-the-art for some problems (like quasi-Newton) and those that are here mostly for historical perspective and comparison (like gradient descent)? I don't think we can order algorithms from best to worst because that often depends on the problem being solved.

For DocumenterInterlinks I saw that their docs that they handed out gold and silver medals for recommended (and follow up) methods/syntax. We could do that as well and explain that somewhere in the beginning. We could add also a symbol for merely academic/teaching examples as well, but phrase that carefully, I would like to avoid saying “This alsogirthm is not recommended”. The only ones I would maybe not really recommend are some of the full-matrix-updates in QN.

@mateuszbaran
Copy link
Member

I see, maybe that's actually unnecessary.

@kellertuer
Copy link
Member Author

I think it might be nice to add, I am just not sure how to decide which ones to mark with a symbol then.

@kellertuer
Copy link
Member Author

I do like the current division into property based groups – I would like to think a bit about adding emojis to some of them to indicate certain recommendations (state-of-the-art, maybe something like fastest, or most used or so).

@kellertuer kellertuer merged commit 1856a26 into master Apr 16, 2024
15 checks passed
@kellertuer kellertuer deleted the kellertuer/solver-index branch May 4, 2024 17:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Ready-for-Review A label for pull requests that are feature-ready
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add a structured list of solvers for different problem types
2 participants