The contributors are happy to announce, that Optim.jl version 0.5 has now 
been released.

Notice that this version is breaking in a few different ways, so please 
update your code as necessary, and don't hesitate to ask over at 
https://github.com/JuliaOpt/Optim.jl/issues or join Kristoffer Carlsson and 
I at https://gitter.im/JuliaOpt/Optim.jl ! If you have a package that 
depends on Optim, we've changed your required version at METADATA, so 
please remove the upper bound when your code has been fixed to accommodate 
the changes in Optim v0.5. 

*Major changes*
All the old functions such as bfgs(), newton(), neldermead(), and so on are 
now fully deprecated in favor of the new optimize(f, ..., BFGS()), 
optimize(f, ..., Newton()), etc signatures. This means that we now use 
dispatch to chose solver. This was possible in v0.4.5 as well, but the tag 
removes the deprecated functions. 

It is also important to note that keywords have changes names to match the 
api for retrieving results (x_tol, f_tol, g_tol, etc in stead of xtol, 
ftol, grtol, etc). For several reasons it is difficult to deprecate keyword 
args, so be aware of this change.

A new implementation of preconditioners for conjugate gradient, gradient 
descent, and lbfgs has been developed (thanks @cortner). See the README for 
further details. It leverages dispatch of A_ldiv_B! to ease the use of 
preconditioners for illconditioned problems.

Nelder Mead now uses the keyword g_tol for the main convergence tolerance. 
This might seem peculiar, as there is no gradient used in the solver, but 
the stopping rule is based on the variance in function values at the 
current vertices, and the tolerance f_tol has been restored to 1e-32 for 
all solvers.


*Minor changes*Improved trace in Nelder Mead.
f_tol is again 1e-32 by default
Fixed bug in Brent's method for univariate optimization (thanks @anriseth)
Fixed deprecation warnings on v0.5 (thanks @KristofferC)


*Future*Going forward, we're going to keep a proper NEWS.md file, so 
changes will be easier to locate. A proper documentation is underway, 
performance benchmarking, solver improvements, and much more. So stay tuned!

This tag has breaking changes, and we cannot promise that this is the last 
time. A pretty important planned breaking change, is to change the order of 
the arguments in the g! and h! functions, such that they will take the 
preallocated array first, instead of last: g!(stor, x) instead of g!(x, 
stor) and similar for h!. This is more in line with most of Julia code.


*Gitter*As mentioned above, we've started a chat over at Gitter. Please 
join us with usage questions, for development discussions, or to tell us 
how you're using Optim! It's very valuable to know how, where, and when 
Optim is being used out in the wild.




Again, please report issues at the issue tracker, and ask questions on the 
julia-opt mailing list or over at Gitter.

Reply via email to