-
Notifications
You must be signed in to change notification settings - Fork 13
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 parameterized frugal resolvent splitting example #99
base: master
Are you sure you want to change the base?
Add parameterized frugal resolvent splitting example #99
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@peterbarkley Thank you for this nice PR.
I suggested a couple of minor modifications to clear things.
In addition, it would be awesome if you could add a test per algorithm in the file test_examples.
Those tests should typically compare the results provided by PEPit with some known bounds.
Since the methods you implemented here extend known algorithms, we can compare PEPit guarantees and theoretical ones for some non-trivial instances of this method.
PEPit/examples/monotone_inclusions_variational_inequalities/frugal_resolvent_splitting.py
Outdated
Show resolved
Hide resolved
PEPit/examples/monotone_inclusions_variational_inequalities/frugal_resolvent_splitting.py
Outdated
Show resolved
Hide resolved
PEPit/examples/monotone_inclusions_variational_inequalities/frugal_resolvent_splitting.py
Outdated
Show resolved
Hide resolved
PEPit/examples/monotone_inclusions_variational_inequalities/frugal_resolvent_splitting.py
Outdated
Show resolved
Hide resolved
PEPit/examples/monotone_inclusions_variational_inequalities/frugal_resolvent_splitting.py
Outdated
Show resolved
Hide resolved
PEPit/examples/monotone_inclusions_variational_inequalities/frugal_resolvent_splitting.py
Outdated
Show resolved
Hide resolved
PEPit/examples/monotone_inclusions_variational_inequalities/frugal_resolvent_splitting.py
Outdated
Show resolved
Hide resolved
PEPit/examples/monotone_inclusions_variational_inequalities/frugal_resolvent_splitting.py
Outdated
Show resolved
Hide resolved
PEPit/examples/monotone_inclusions_variational_inequalities/frugal_resolvent_splitting.py
Show resolved
Hide resolved
.../examples/monotone_inclusions_variational_inequalities/reduced_frugal_resolvent_splitting.py
Outdated
Show resolved
Hide resolved
…barkley/PEPit into frugal-resolvent-splitting
Thank you for the review and inputs! I will take a look at the test_examples and work on building out per-algorithm tests with theoretical references for a future PR. For the tests, it might make sense for me to generalize the FRS arguments a bit to allow a list of arbitrary operators in order to cover a wider range of theoretical results. |
Thank you for your contribution to PEPit! The tests must be simple sanity checks to ensure we did not miss a mistake in the implementation of the examples. That is why there should be one test per example file (i.e. 2 tests), consisting of running your example with a configuration for which we know the guarantee or an upper bound of it. For instance, setting the right matrices to encode the Douglas-Rachford splitting method would allow us to compare PEPit's output with its theoretical guarantee. |
…rs. Add FRS tests using Douglas-Rachford matrices.
Added the operator examples in the docstring and the two tests using the Douglas-Rachford matrices and the same operators and alpha/gamma settings as the existing Douglas-Rachford example. |
This adds an example which builds a parameterized frugal resolvent splitting for a monotone inclusion problem. The Malitsky-Tam
n
operator splitting, Ryu's 3 operator splitting, Douglas-Rachford, and a new block splitting algorithm can be written in this parameterized form. It also adds a PEPit use case comparing these algorithms with fixed step size and with optimized step sizes and optimized matrices built using the dual of the PEP as in Ryu, Taylor, Bergeling, et al (2020) Operator splitting performance estimation: Tight contraction factors and optimal parameter selection.