SciML/Optimization.jl

Mathematical Optimization in Julia. Local, global, gradient-based and derivative-free. Linear, Quadratic, Convex, Mixed-Integer, and Nonlinear Optimization in one simple, fast, and differentiable interface.

What it solves

Optimization.jl provides a unified interface for a vast array of local and global optimization packages in Julia. Instead of learning separate APIs for every individual optimization library, users can access a wide range of algorithms through a single, consistent set of commands.

How it works

The package acts as a wrapper that brings together diverse optimization tools—including machine learning optimizers, evolutionary strategies, and manifold optimization—into one system. It integrates with automatic differentiation (AD) to simplify the calculation of gradients, allowing users to define an OptimizationProblem and solve it using a chosen algorithm from various supported backends (such as Optim.jl, NLopt.jl, or SciPy via PythonCall.jl).

Who it’s for

It is designed for researchers and developers who need to perform mathematical optimization and want to avoid the overhead of switching between different solver libraries.

Highlights

  • Unified interface for both local and global optimization algorithms.
  • Integration with automatic differentiation for easier gradient-based optimization.
  • Support for a wide variety of backends, including evolutionary algorithms, augmented Lagrangian methods, and second-order stochastic optimizers.
  • Ability to leverage Python's SciPy optimization algorithms directly within Julia.

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト