updated regularization schemes by adding Tikhonov and Marquardt#52
updated regularization schemes by adding Tikhonov and Marquardt#52leedh0124 wants to merge 2 commits into
Conversation
leedh0124
commented
Jun 25, 2026
- Adds :Tikhonov and :Marquardt options to regularize_linear_solve for the interior-point solver’s linear solve step.
- Uses normal equations for the new regularization modes:
- :Tikhonov: solves with ∇F'∇F + ηI
- :Marquardt: solves with ∇F'∇F + ηD, where D is a diagonal scaling from ∇F
dfridovi
left a comment
There was a problem hiding this comment.
These changes look good to me! Please make sure to update the tests to exercise all the different regularization options. Ideally, please also run the QP benchmarks and report runtimes in the PR description - it will be useful documentation for the release notes when we make a new release. Will approve merge when this is all in.
|
No problem :) |
Updates after reviewAddressed reviewer feedback by adding test coverage for the newly introduced linear solve regularization schemes and running the QP benchmarks. Test coverageUpdated
QP Benchmark ResultsRan the QP benchmark with 100 random samples for each regularization scheme: data = SolverBenchmarks.benchmark(
SolverBenchmarks.QuadraticProgramBenchmark();
num_samples = 100,
ip_kwargs = (regularize_linear_solve = scheme, tol = 1e-6),
)
SolverBenchmarks.summary_statistics(data)
It's actually running slower than PATH. Is there something I'm missing when running the QP benchmarks? |
|
Yeah that is troubling. I am not sure when the solver slowed down. I wonder if it has to do with the default regularization level (at least for :internal and :identity). I expected it for the new ones, because you are explicitly forming the Jacobian transpose Jacobian product etc. It is worth spending some time with Claude to see if there are easy ways to optimize that. If it requires more substantial code changes though just document it here in the PR description, maybe add a warning when a user selects the new regularization modes, and we can merge. |