This repository contains the infrastructure to run, store, and analyze the numerical experiments associated with the manuscript "A Partially Derivative-Free Proximal Method for Composite Multiobjective Optimization in the Hölder Setting" (arXiv:2508.20071).
The goal of this project is to provide a robust, reproducible, and extensible testbed for evaluating the performance of the PDFPM algorithm proposed in
arXiv:2508.20071, and for comparing it against other state-of-the-art multi-objective optimization solvers, namely:
- CondG - https://doi.org/10.1080/02331934.2023.2257709
- ProxGrad - https://doi.org/10.1007/s10589-018-0043-x
This project relies on two specialized Julia packages developed for multi-objective optimization. These packages provide the core problem definitions and solver implementations used in the experiments.
Benchmark library of vector-valued optimization problems in Julia, with analytic per-objective gradients, filtering functions, and a unified interface for testing and comparisons of multi-objective solvers.
A Julia package for solving multi-objective optimization problems with composite structure (
- /src – Source code of the module
AAS2025PDFreeMO.jlthat orchestrates experiments (configuration types, runners, and I/O helpers). - /scripts – Executable scripts that launch benchmarks and generate plots.
- Julia ≥ 1.11
git clone https://github.com/VectorOptimizationGroup/MOProblems.jl.git
git clone https://github.com/VectorOptimizationGroup/MOSolvers.jl.gitgit clone https://github.com/Souza-DR/AAS2025-PDFreeMO.git
cd AAS2025-PDFreeMOjulia --project=. -e '
using Pkg
Pkg.add(path="../MOProblems.jl")
Pkg.add(path="../MOSolvers.jl")
Pkg.instantiate()
Pkg.precompile()
'All executable scripts are located in the scripts/ directory.
Use the run_all_problems.jl script to execute the full test suite. This script runs the solvers on the configured test problems, automatically creates the data/sims directory if it does not exist, and saves the results as .jld2 files in this directory.
julia --project=. scripts/run_all_problems.jlAfter the experiments complete, use create_performance_profiles.jl to process the results and generate performance profile plots. The figures will be saved to data/plots/PP.
julia --project=. scripts/create_performance_profiles.jlThere are other utility scripts available in scripts/ for specific analyses:
-
create_delta_comparison_plots.jl: Compare performance across different$\delta$ values. -
generate_objective_space_plots.jl: Visualize the objective space for bi-objective problems. -
generate_trajectories.jl: Plot the optimization trajectories of the solvers under analysis for bi-objective problems.
If you use this repository or the associated algorithms in your research, please cite the manuscript:
arXiv:2508.20071: A Partially Derivative-Free Proximal Method for Composite Multiobjective Optimization in the Hölder Setting.