Semidefinite proramming

“The most generalised version of convex programming”.



Handy tool for some problems:

  • GENO (Soeren Laue, Mitterreiter, and Giesen 2019; Sören Laue, Blacher, and Giesen 2022)

    GENO provides optimization solvers for everyone. You can enter your optimization problem in an easy-to-read modeling language in the code editor below. Python code is then generated automatically that can solve this class of optimization problems on the CPU or on the GPU. The automatically generated solvers are often as fast as handwritten, specialized solvers…

    The GENO solver combines an Augmented Lagrangian approach with a limited memory quasi-Newton method (L-BFGS-B) that can handle also bound constraints on the variables. Quasi-Newton methods are very efficient for problems involving thousands of optimization variables. The GENO solver is then instantiated by the automatically generated methods for computing function values and gradients that are provided by this website to solve the specified class of optimization problems. This approach is very well suited for optimization problems originating from classical machine learning problems.


Freund, Robert. 2004. Introduction to Semidefinite Programming,” 51.
Laue, Soeren, Matthias Mitterreiter, and Joachim Giesen. 2019. GENO – GENeric Optimization for Classical Machine Learning.” In Advances in Neural Information Processing Systems. Vol. 32. Curran Associates, Inc.
Laue, Sören, Mark Blacher, and Joachim Giesen. 2022. Optimization for Classical Machine Learning Problems on the GPU.” In Proceedings of the AAAI Conference on Artificial Intelligence, 36:7300–7308.
Vandenberghe, Lieven, and Stephen P. Boyd. 1996. Semidefinite Programming.” SIAM Review 38 (1): 49–95.

No comments yet. Why not leave one?

GitHub-flavored Markdown & a sane subset of HTML is supported.