The ALGLIB numerical library includes an efficient, large-scale dense and sparse SOCP solver available in C++, C#, Java and other languages. The solver implements numerous algorithmic improvements, is actively developed and has been extensively tested on various industrial optimization problems. ALGLIB is dual-licensed, with free and commercial editions.
This section focuses on the second-order cone programming capabilities of ALGLIB. However, our solver supports optimization problems beyond SOCP, including LP, QP/QCQP as well as more general conic problems.
1 SOCP solver overview
Features
Programming languages supported
2 Second-order cone programming
Standard problem formulation
Extended problem formulation
3 Conic solver API
4 Downloads section
GENIPM, ALGLIB's conic solver, is:
ALGLIB supports many programming languages, including C++, C#, Java, Python, and others:
A distinctive feature of ALGLIB is that it provides the same API in all programming languages. This is achieved through our exclusive automatic code translation and wrapper generation technology.
The standard SOCP problem formulation is minimization of a linear objective subject to box, linear and non-overlapping second-order cone constraints:
This problem statement often appears in textbooks because it is easy to analyze and because it has nice primal-dual formulation. Despite its seeming simplicity, it allows to incorporate convex quadratic objectives and convex quadratic inequality constraints by reformulating them as second-order cone constraints. Thus, SOCP includes LP and convex QP/QCQP problem classes. However, it also supports nonlinearities beyond ones provided by QP/QCQP.
The standard SOCP problem is always convex, hence it always has a global solution that can be efficiently found using interior point methods.
ALGLIB natively supports one of the most general and powerful formulations of a conic programming problem, extending the basic formulation above with quadratic terms and more flexible conic constraints:
A User Guide section about conic programming discusses general quadratic/conic formulation, including questions like various cone types support by ALGLIB and handling of non-convex problems. Here we focus on several important takeaways for a convex conically constrained case:
The QP/conic programming functionality is provided by the minqp subpackage of the Optimization package. The link above directs to the ALGLIB Reference Manual section, which includes a comprehensive description of the QP/conic solver API with detailed comments and examples.
This article is licensed for personal use only.
ALGLIB Project offers you two editions of ALGLIB:
ALGLIB Free Edition:
+delivered for free
+offers full set of numerical functionality
+extensive algorithmic optimizations
-no multithreading
-non-commercial license
ALGLIB Commercial Edition:
+flexible pricing
+offers full set of numerical functionality
+extensive algorithmic optimizations
+high performance (SMP, SIMD)
+commercial license with support plan
Links to download sections for Free and Commercial editions can be found below: