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

Question on the implementation #8

Closed
pbeste18 opened this issue Oct 16, 2021 · 1 comment
Closed

Question on the implementation #8

pbeste18 opened this issue Oct 16, 2021 · 1 comment

Comments

@pbeste18
Copy link

Hi-
I noticed that the implementation of ADMM isn't exactly the same as what's in the paper. It seems you are using something along the lines of OSQP with a slight modification. Is there a reason you chose to do it this way (as opposed to making the objective fully linearly separable...) ? I tried implementing the procedure and have not been able to get it to work. I love the paper and believe it will be incredibly useful for my problem. Thank you in advance.

@moehle
Copy link

moehle commented Dec 11, 2021

Hi! Thanks for the question, and sorry for the delayed response.

You're exactly right: We follow something a little closer to OSQP in terms of problem formulation that what we have in our own paper. The motivation is subtle, and pretty minor. It's so that the resulting KKT matrix (in equation (13) in our paper, (24) in the OSQP paper) is quasi-definite. This guarantees that the LDL factorization exists, regardless of how we permute the rows and columns of the KKT matrix.

It's actually pretty similar to adding regularization to the bottom right of the KKT matrix, and doing iterative refinement. The clever trick here is that the iterative refinement is essentially embedded in the ADMM iterations, so there aren't two iteration loops (ADMM and iterative refinement).

I'd love to hear more about your application! Feel free to message me.

@moehle moehle closed this as completed Dec 11, 2021
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