object

gradient_descent(Problem)

  • Problem - Problem object implementing local_optimization_problem_protocol and defining gradient/2.

Gradient descent (steepest descent) local optimizer with optional backtracking Armijo line search. Requires the problem to define gradient/2. Supports box constraints via projection, minimization and maximization.

Availability:
logtalk_load(local_optimization(loader))
Author: Paulo Moura
Version: 1:0:0
Date: 2026-09-03
Compilation flags:
static, context_switching_calls
Remarks:
  • Line search: The line_search(armijo) option (default) uses backtracking Armijo line search. The line_search(fixed) option uses a constant step size given by step_size(S).

  • Bounds: When the problem defines position_bounds/1, the gradient step is projected onto the box (projected gradient descent).

  • Direction: For minimization the search direction is -gradient; for maximization it is +gradient.

Public predicates

(no local declarations; see entity ancestors if any)

Protected predicates

(no local declarations; see entity ancestors if any)

Private predicates

(no local declarations; see entity ancestors if any)

Operators

(none)