Embed in anneal#
Hopping chains in anneal relax thousands of times from perturbations of
an already-relaxed structure. They do not own a second L-BFGS: they hold
an rgmin::Lbfgs through anneal_core::methods::warm_lbfgs::WarmLbfgs.
Checkout layout#
Rust/
eindir/
rgmin/
anneal/
landfold/
anneal and landfold path-depend on the two siblings so there is one
eindir-core and one rgmin in the graph.
Call site#
The public hopping API is unchanged:
use anneal_core::methods::warm_lbfgs::WarmLbfgs;
use ndarray::Array1;
let mut opt = WarmLbfgs::default();
let x0 = Array1::from(vec![1.0, 1.0, 1.0, 1.0]);
let (f, x, evals) = opt.minimize(x0.view(), 200, |v| Some(fg(v)));
WarmLbfgs::forget drops the pair history when the chain jumps to a
structurally different basin. minimize_watched still sits at the top of
each accepted iterate so a screening predictor can stop the relaxation.
Why this crate, not a copy#
A second two-loop in anneal drifted from the Nocedal-Wright 7.20 scale once already. The production method, the line search, and the pair history belong in one place.