MultiObjectiveLineSearches.jl provides line searches for multiobjective
optimization. Given a point, a search direction and the objective values at
the point, a line search looks for a step size along the direction that
satisfies an acceptance condition on all objectives. The available method,
BackTracking, uses an Armijo-type sufficient decrease condition.
The package has no runtime dependencies and requires Julia 1.11 or later.
The package is not registered. Add it from its GitHub repository:
import Pkg
Pkg.add(url = "https://github.com/VectorOptimizationGroup/MultiObjectiveLineSearches.jl")See the installation guide for project environments and local checkouts.
using MultiObjectiveLineSearches
function objectives!(values, x)
values[1] = (x[1] - 1)^2
values[2] = (x[1] - 1)^2 + 1
return nothing
end
x = [0.0]; d = [3.0]; Fx = [1.0, 2.0]; slopes = [-6.0, -6.0]
search = configure_linesearch(BackTracking(), Float64)
x_trial = similar(x); F_trial = similar(Fx)
result = perform_linesearch!(search, objectives!, x, d, Fx, slopes,
x_trial, F_trial; factor = maximum(slopes))
result.success # true; x_trial and F_trial hold the accepted point and valuesThe MultiObjectiveLineSearches.jl documentation
contains the quick start, the usage guide, the mathematical formulation of
each line search with its literature sources, the API reference, and the
bibliography. Instructions for building it locally are in
docs/README.md.
Run the tests from the package directory:
julia --project -e 'using Pkg; Pkg.test()'- Backtracking for an Armijo-type sufficient decrease condition in every objective, with safeguarded quadratic interpolation.
- Typed, reusable configurations and in-place searches with caller-owned buffers.
- Structured diagnostics: step, termination reason, evaluation and reduction counts.
- Formulations related to the multiobjective literature, with executable examples.
If you use MultiObjectiveLineSearches.jl in research, please cite the software
using the metadata in CITATION.cff.
MultiObjectiveLineSearches.jl is distributed under the MIT License.