I'm using LBFGS in combination with Fminbox but the values stored in f_trace are not the actual function values of f, most likely - as @pkofod pointed out - due to the barrier term. This is with Julia v1.0.1. and Optim v0.17.1.
MWE:
using Optim
function f(x)
return sum(x.^2)
end
function g!(storage, x)
storage[1] = 2*x[1]
storage[2] = 2*x[2]
end
x0 = [10.0, 10.0]
LB = [1.0, 2.0]
UB = [100.0, 100.0]
OptimOptions = Optim.Options(
outer_iterations = 1,
iterations = 100,
store_trace = true,
show_trace = false)
res = optimize(f, g!, LB, UB, x0, Fminbox(LBFGS()), OptimOptions);
Optim.f_trace(res)
Optim.minimum(res)
f(Optim.minimizer(res))
I'm using LBFGS in combination with Fminbox but the values stored in f_trace are not the actual function values of f, most likely - as @pkofod pointed out - due to the barrier term. This is with Julia v1.0.1. and Optim v0.17.1.
MWE: