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)