Skip to content

feat(problems): gradients for batch 10b's functions, and gradients and constraint values through Shifted and Rotated #416

Description

@tachsin

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions