JuliaSmoothOptimizers / JSOSolvers.jl

Other
71 stars 15 forks source link

Question: tron vs. trunk for unconstrained problems #276

Open tcovert opened 6 months ago

tcovert commented 6 months ago

Hi JSO team,

Do you have any guidance about which of these solvers is "better" for unconstrained problems, and, if so, why? I had naively assumed that a solver specifically designed for unconstrained problems (trunk) would be better, but in some applications where I have compared the two, tron appears to converge more quickly.

If it's useful, my current applications are related to maximum likelihood estimation problems, using a multinomial logit log-likelihood function. I am providing analytic gradients, and I'm using ForwardDiff to turn those gradients into a hessian-vector product for the nlp specification. In some of these applications, the objective is strictly convex, but that is not always so. It is often the nonconvex situations where tron appears to converge more quickly.

Thanks in advance for any advice you may have!

dpo commented 6 months ago

@tcovert The two solvers are slightly different, even on unconstrained problems. Both are similar trust-region methods, but they use slightly different parameters, different trust-region management, etc. That's not to say TRON will always be more efficient than TRUNK on unconstrained problems. It would be relevant to benchmark them more widely. It might also be relevant to merge them into one solver that would be at least as good as both.