1 Overview

The problem

\[\begin{split}\begin{array}{lccl} \minimize & 1 x_1 + 2 x_2 & & \\ \st & x_1 + x_2 & = & 1, \\ & x_1,x_2 \geq 0 & & \\ \end{array}\end{split}\]

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 summarizes the types of optimization problem that are solvable by the MOSEK Optimization Suite.

Table 1 Summary of optimization problem types that can be solved with the MOSEK Optimization Suite.
Problem type Available algorithms Mixed-Integer Multi-threaded
Linear Optimization (LO) Primal and Dual Simplex Yes No
Interior-point Yes Yes
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

1.2 Capabilities

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 illustrates the relationship between the parts.

_images/mosek-distro-with-rmosek.svg

Fig. 1 An overview of the API and interfaces available in the MOSEK Optimization Suite.

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 2 illustrates the problem types which can be solved via different interfaces.

Table 2 Summary of optimization problem types that can be expressed with various MOSEK interfaces.
Problem type Command line C API Python, Java, .NET API Fusion Matlab Toolbox RMosek
Linear (LO) Yes Yes Yes Yes Yes Yes
Quadratic (QCQO) Yes Yes Yes No (1) Yes Yes
Conic Quadratic (CQO, SOCO) Yes Yes Yes Yes Yes Yes
Semidefinite (SDO) Yes Yes Yes Yes Yes Yes
Separable Convex (SCOPT) No Yes Yes No Yes Yes
General Convex No Yes No No No No

Remarks:

  • \((1)\) Quadratic problems can (and should) be recast into Conic Quadratic form and passed to Fusion.