Algorithm Library
Linnaeus includes an algorithm library to serve as a reference. Users can check the potential relations between the input algorithm and reference algorithms in the library. The algorithms can be accessed through name abbreviations. Currently, the algorithm library includes:
- Gradient descent method, accessed by
Gr - Nesterov's accelerated gradient method, accessed by
Ng - Heavy-ball method, accessed by
Hb - Triple momentum algorithm, accessed by
Tm - Proximal point method, accessed by
Pp - Proximal point method with relaxation, accessed by
Pp_r - Proximal gradient method, accessed by
Pg - Douglas-Rachford splitting, accessed by
Dr - Permutation of Douglas-Rachford splitting, accessed by
Dr_p - Peaceman-Rachford splitting method, accessed by
Pr - Alternating direction method of multipliers (ADMM), accessed by
Admm - Chambolle-Pock method, accessed by
Cp - Davis-Yin splitting method, accessed by
Dy - Extragradient method, accessed by
Eg - Extragradient method by Korpelevich and Antipin, accessed by
Eg_ka - Extragradient method by Tseng, accessed by
Eg_t - Reflected gradient method by Malitsky, accessed by
Rg
The whole library is accessed by algo_library.library.
The following code checks equivalence between Gradient descent method and Triple momentum method in the library.
import linnaeus as lin
lin.is_equivalent(lin.Gr, lin.Tm)
The results are the same as the previous example.
Further, the next example checks equivalence of Gradient descent method among all the algorithms in the library.
lin.is_equivalent(lin.Gr, lin.algo_library.library)