pub fn minimize<T, F>(
f: &F,
initial_point: &[T],
config: &OptimizationConfig<T>,
) -> OptimizationResult<T>
Expand description
Minimizes an objective function using gradient descent.
§Arguments
f
- The objective function to minimizeinitial_point
- The starting point for optimizationconfig
- 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);