[ANN] Nonconvex 2.1 - more algorithms, documentation and autodiff features

I have been slowly adding features and documentation to Nonconvex.jl and the JuliaNonconvex organization at large and it’s time to make a new announcement. Here are some updates with the new version.

Happy optimization!


Every time I look at the package and the documentation I see cool new features and learn something new. Thanks so much for your hard work in putting all of this together. I’ve been a raw Ipopt.jl user for a very long time, but this package is seriously tempting me. I love how light the dependency tree is, and it sure would cut down on boilerplate.


Great news, thanks!
Are there any updates on integrating the frule conversion utility you developed into ForwardDiff? I thought this would be a very welcome feature but the relevant issue seems to be sleeping

Would it help to create an optimization algorithm flow chart:

No update. I think my workaround is not the most efficient implementation. It could use less copying by re-interpreting and using views of the array of duals. Also the feature is probably not under high enough demand to convince the ForwardDiff maintainers to add it but I hope people prove me wrong.

1 Like

This can get too complicated too quickly. Each algorithm or family of algorithms has its pros and cons. Even in nonlinear programming only, some algorithms support nonlinear inequality constraints only (no equality constraints), some support only linear equality or manifold constraints, some support linear equality constraints and nonlinear inequality constraints, some support both nonlinear inequality and equality constraints, some support only convex constraints (with a nonlinear objective), etc.