-
Notifications
You must be signed in to change notification settings - Fork 18
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
BPCG with direct solve extension #507
Conversation
@matbesancon there is a weird issue with a stack overflow though that seems to come from julia, e.g., in the example if you set |
@sebastiendesignolle might be also relevant or useful for you to test for |
seems to be resolved now. I unwrapped the loops |
Preview will be at: |
@matbesancon ready for review now. feel free to add unit tests and please check the documentation; didn't show up in the preview. |
* sparsifier active set * fix typo * added sparsifying tests * generic tolerane * remove sparsification * format * HiGHS dep
* sparsifier active set * start working on LP AS * first working quadratic * remove quadratic LP from current * cleanup * HiGHS in test deps * working reworked LP quadratic * working version generic quadratic * slow version generic quadratic * faster term manipulation * copy sufficient * remove comment * added test for quadratic * minor * simplify example * clean up code, verify error with ASQuad * Add update_weights! to fix direct solve with active_set_quadratic * remove direct solve from BPCG * rng changed --------- Co-authored-by: Sébastien Designolle <sebastien.designolle@gmail.com>
adds a new option to BPCG to directly solve local optimality system as LP if the objective function is of the form
f(x) = || x - x_0||^2
, i.e., we are solving projection problems. Important for e.g., Sébastien etc. Also, using the same methodology added a sparsify_iterate function that sparsifies the active_set and iterate by solving the representation LP and taking a basis.Update: added a generic direct_solve method for any quadratic function exploiting chain rule + affine-linearity + convex combinations to build optimality system with black-box access to gradients only. However, slower than the one specific for \ell-2projections; see plots below.
TODO:
direct_solve
andsparsify_iterate
out ofblended_pairwise.jl
into e.g.,utils.jl
Speed-ups are very substantial in some cases. See plots below (LP solver was HiGHS):
General Quadratics: