jia-kai / trafs

Trust Region Adversarial Functional Subdifferential for nonsmooth convex optimization

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TRAFS: A Nonsmooth Convex Optimization Algorithm with $\mathcal{O}\left(\frac{1}{\epsilon}\right)$ Iteration Complexity

This repository is the implementation of the TRAFS algorithm, a nonsmooth convex optimization algorithm that both provides better guarantees and converges significantly faster in numerical experiments compared to previous methods. Read our paper for more details.

Setup

The program has only been tested on Linux.

Make sure there is a recent C++ compiler, and gfortran is available. Install julia to the system. Setup a python virtual env. In the virtual env, run pip install scipy numpy attrs clarabel mosek cython julia. Then use ./setup-deps.sh to compile and install other dependencies.

Usage

Use ./run_bench.sh to reproduce all the numerical experiments reported in the paper. After the script finishes, use ./make_bench_table.py to generate the LaTex tables summarizing the results.

Use run_*.py to run individual experiment.

All the optimization algorithms are in the opt module. The benchmark problems are in the prob module. The code should be self-explanatory.

About

Trust Region Adversarial Functional Subdifferential for nonsmooth convex optimization


Languages

Language:Python 89.1%Language:Cython 8.0%Language:C++ 1.8%Language:Shell 1.1%