Skip to content

LBFGS Settings - #26

Merged
sChoiKr merged 6 commits into
mainfrom
lbfgs-bug-fix
Jun 19, 2026
Merged

LBFGS Settings#26
sChoiKr merged 6 commits into
mainfrom
lbfgs-bug-fix

Conversation

@PBrdng

@PBrdng PBrdng commented Jun 18, 2026

Copy link
Copy Markdown
Member

Manopt’s default WolfePowellLinesearch() uses a very strict curvature condition and no finite lower step-size threshold.
For some CPD/L-BFGS cases, this caused the solver to appear not to start because it was stuck inside a single line-search step before the progress meter could advance.

Patch Notes

  • Configured the default L-BFGS Wolfe line search explicitly instead of using raw Manopt defaults.
  • :wolfe now uses sufficient_curvature = 0.9, stop_when_stepsize_less = 1e-8, stop_decreasing_at_step = 100
  • Removed unsupported/fragile line-search exposure. :hagerzhang is only accepted if the installed Manopt version actually defines HagerZhangLinesearch.
  • Fixed some more inconsistencies in the code.
a, b, c, d = 2,2,2,2
r = 3
A = reshape(sum(kron(randn(d), randn(c), randn(b), randn(a)) for _ in 1:r), a, b, c, d);
cpd(A, r; tol = 1e-8, normalized_objective = false)
cpd(A, r; solver = :lbfgs, tol = 1e-8)

now advances normally.

@sChoiKr
sChoiKr merged commit adbc321 into main Jun 19, 2026
3 checks passed
@sChoiKr
sChoiKr deleted the lbfgs-bug-fix branch June 19, 2026 02:07
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

Successfully merging this pull request may close these issues.

2 participants