ForBES (standing for Forward-Backward Envelope Solver) is a MATLAB solver for nonsmooth optimization problems.
It is generic in the sense that the user can customize the problem to solve in an easy and flexible way. It is efficient since it features very efficient algorithms, suited for large scale applications.
For full documentation refer to the ForBES webpage.
Simply clone the git repository, or click on this link to download it as a zip archive and decompress the archive. Then move with the MATLAB command line to the directory of ForBES, and execute the following command:
>> forbes_setup
This will compile all the necessary source files and install the directory into MATLAB's path.
ForBES consists mainly of one MATLAB routine, forbes
. In order to use it one
must provide a description of the problem and (optionally) a set of options:
>> out = forbes(f, g, init, aff, constr, opt);
Full documentation, explaining how to specify these arguments, can be found at the ForBES webpage.
Examples on how to use forbes
can be found in the demos folder.
Furthermore, you can access the help file of the solvers directly from MATLAB with
>> help forbes
-
L. Stella, A. Themelis, P. Patrinos, “Forward-backward quasi-Newton methods for nonsmooth optimization problems,” arXiv:1604.08096 (2016).
-
A. Themelis, L. Stella, P. Patrinos, “Forward-backward envelope for the sum of two nonconvex functions: Further properties and nonmonotone line-search algorithms,” arXiv:1606.06256 (2016).
ForBES is developed by Lorenzo Stella [lorenzo.stella-at-imtlucca.it
] and Panos Patrinos [panos.patrinos-at-esat.kuleuven.be
]
at IMT Lucca and KU Leuven.
Any feedback, bug report or suggestion for future improvements is more than welcome.
We recommend using the issue tracker to report bugs.
ForBES is free software and distributed under the GNU Lesser General Public License. You may copy, distribute and modify the software provided that modifications are described and licensed for free under LGPL.