| Did you know ... | Search Documentation: |
| Pack logtalk -- logtalk-3.102.0/docs/apis/_sources/gradient_descent_1.rst.txt |
.. index:: single: gradient_descent(Problem)
.. _gradient_descent/1:
.. rst-class:: right
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
| Imports:
| public :ref:`local_optimization_solver(Problem) <local_optimization_solver/1>`
| Uses:
| :ref:`linear_algebra <linear_algebra/0>`
| :ref:`list <list/0>`
| Remarks:
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).-gradient; for maximization it is +gradient.| Inherited public predicates: | Â :ref:`options_protocol/0::check_option/1` Â :ref:`options_protocol/0::check_options/1` Â :ref:`options_protocol/0::default_option/1` Â :ref:`options_protocol/0::default_options/1` Â :ref:`options_protocol/0::option/2` Â :ref:`options_protocol/0::option/3` Â :ref:`local_optimization_solver/1::run/2` Â :ref:`local_optimization_solver/1::run/3` Â :ref:`local_optimization_solver/1::run/4` Â :ref:`options_protocol/0::valid_option/1` Â :ref:`options_protocol/0::valid_options/1` Â
.. contents:: :local: :backlinks: top
(no local declarations; see entity ancestors if any)
(no local declarations; see entity ancestors if any)
(no local declarations; see entity ancestors if any)
(none)
.. seealso::
:ref:`local_optimization_problem_protocol <local_optimization_problem_protocol/0>`, :ref:`local_optimization_solver(Problem) <local_optimization_solver/1>`, :ref:`bfgs(Problem) <bfgs/1>`, :ref:`conjugate_gradient(Problem) <conjugate_gradient/1>`, :ref:`nelder_mead(Problem) <nelder_mead/1>`