minimize

Function minimize 

Source
pub fn minimize<T, F>(
    f: &F,
    initial_point: &[T],
    config: &OptimizationConfig<T>,
) -> OptimizationResult<T>
where T: Float + Debug, F: ObjectiveFunction<T>,
Expand description

Minimizes an objective function using gradient descent.

§Arguments

  • f - The objective function to minimize
  • initial_point - The starting point for optimization
  • config - Configuration options for the optimization process

§Returns

Returns an OptimizationResult containing the optimal point found and optimization statistics.

§Examples

use algos::math::optimization::{ObjectiveFunction, OptimizationConfig};
use algos::math::optimization::gradient_descent::minimize;

// Define a simple quadratic function
struct Quadratic;

impl ObjectiveFunction<f64> for Quadratic {
    fn evaluate(&self, point: &[f64]) -> f64 {
        point.iter().map(|x| x * x).sum()
    }

    fn gradient(&self, point: &[f64]) -> Option<Vec<f64>> {
        Some(point.iter().map(|x| 2.0 * x).collect())
    }
}

let f = Quadratic;
let initial_point = vec![1.0, 1.0];
let config = OptimizationConfig::default();

let result = minimize(&f, &initial_point, &config);
assert!(result.converged);