You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(problems): gradients for batch 10b's functions, and gradients and constraint values through Shifted and Rotated #416
Batch 10b (#409) adds 17 CEC- and BBOB-style functions and the Shifted<P> and Rotated<P> wrappers. None of the new functions supplies an analytic gradient, and the wrappers don't pass the wrapped problem's extras through. Main gives gradients to the classic functions, cones included (Ackley, Schaffer F6).
To do:
Analytic gradients (FitnessFunction::provides, evaluate_with) for the new functions that are smooth or have isolated kinks: the elliptic, bent cigar, discus, rotated hyper-ellipsoid, quartic, sum of different powers, the two penalized functions, Weierstrass and the others where it's sensible. Each one checked with gradient::check.
Shifted<P> passes the gradient through unchanged. Rotated<P> uses the chain rule: ∇(f∘M)(x) = Mᵀ ∇f(Mx), shifted by the center.
Both wrappers pass constraint values through, and their Jacobian with the same chain rule. A shifted or rotated G06 currently loses its constraint values, which MMA and Bayesian optimization read.
Update AGENTS.md's and the problems module's statement of which functions supply gradients.
Batch 10b (#409) adds 17 CEC- and BBOB-style functions and the
Shifted<P>andRotated<P>wrappers. None of the new functions supplies an analytic gradient, and the wrappers don't pass the wrapped problem's extras through. Main gives gradients to the classic functions, cones included (Ackley, Schaffer F6).To do:
FitnessFunction::provides,evaluate_with) for the new functions that are smooth or have isolated kinks: the elliptic, bent cigar, discus, rotated hyper-ellipsoid, quartic, sum of different powers, the two penalized functions, Weierstrass and the others where it's sensible. Each one checked withgradient::check.Shifted<P>passes the gradient through unchanged.Rotated<P>uses the chain rule: ∇(f∘M)(x) = Mᵀ ∇f(Mx), shifted by the center.problemsmodule's statement of which functions supply gradients.