is an example of a linear optimization problem. Now finding a solution to this particular problem is easy. However, in general such optimization problems may be very large. Here enters the MOSEK Optimization Suite which is a software package for solving large optimization problems with many constraints and variables. In addition to optimization algorithms the MOSEK Optimization Suite provides interfaces to mainstream programming languages such as C, Java, MATLAB, .NET, Python and R.
The purpose of this manual is to provide an overview of the capabilities of the MOSEK Optimization Suite.
1.1 Problem types¶
Table 1.1 summarizes the types of optimization problem that are solvable by the MOSEK Optimization Suite.
|Problem type||Available algorithms||Mixed-Integer||Multi-threaded|
|Linear Optimization (LO)||Primal and Dual Simplex||Yes||No|
|Convex Quadratically Constrained (QCQO)||Interior-point||Yes||Yes|
|Conic Quadratic (Second-Order Cone) Optimization (CQO, SOCO)||Interior-point||Yes||Yes|
|Semidefinite Optimization (SDO)||Interior-point||No||Yes|
|General and Separable Convex Optimization (SCO)||Interior-point||No||Yes|
The MOSEK Optimization Suite includes
- the low-level optimizer API for C, Java, .NET and Python.
- the object-oriented Fusion API for C++, Java, MATLAB, .NET and Python.
- an optimization toolbox for MATLAB.
- an Rmosek package for R.
- an interface to AMPL.
- a command line tool.
- optimizer server for remote optimization.
Fig. 1.1 illustrates the relationship between the parts.
In addition MOSEK Optimization Suite provides
- sensitivity analysis for linear problems.
- infeasibility diagnostic tools.
- problem analyses for diagnosing numerical issues in input data.
- reading and writing optimization problems and solutions from/to files.
Most large optimization problems are very sparse i.e. most of the input data consists of zeros. Therefore, the APIs and optimization algorithms in MOSEK Optimization Suite is designed to exploit sparsity to reduce both storage and time.
Table 1.2 illustrates the problem types which can be solved via different interfaces.
|Problem type||Command line||C API||Python, Java, .NET API||Fusion||Matlab Toolbox||RMosek|
|Quadratic (QCQO)||Yes||Yes||Yes||No (1)||Yes||Yes|
|Conic Quadratic (CQO, SOCO)||Yes||Yes||Yes||Yes||Yes||Yes|
|Separable Convex (SCOPT)||No||Yes||Yes||No||Yes||Yes|
- \((1)\) Quadratic problems can (and should) be recast into Conic Quadratic form and passed to Fusion.