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.

MOSEK Optimization Suite is a software package for efficient solving of a more general class of conic problems, problems which can be converted into conic form, and their mixed-integer versions. Below are the typical constraints and expressions which can be modeled using conic form:

  • Conic Quadratic Optimization: \(t\geq x^2\), sums of squares, 2-norm \(t\geq \|x\|_2\), variance, \(\|Ax-b\|_2\).

  • Power Cone Optimization: powers \(x^p\), geometric mean, products \(x^\alpha y^\beta\), \(p\)-norm.

  • Exponential Cone: \(e^x\), \(\ln{x}\), log-sum-exp, entropy \(x\ln{x}\), relative entropy, geometric programming.

  • Semidefinite Optimization: \(X\succeq 0\) is positive semidefinite.

1.1 Problem types

Table 1.1 summarizes the types of optimization problem that are solvable by the MOSEK Optimization Suite.

Table 1.1 Summary of optimization problem types that can be solved with the MOSEK Optimization Suite.

Problem type

Available algorithms

Mixed-Integer

Multi-threaded (3)

Linear Optimization (LO)

Primal and Dual Simplex

Yes

No

Interior-point

Yes

Yes

Convex Quadratic and Quadratically Constrained (QO, QCQO) (1) (2)

Interior-point

Yes

Yes

Conic Quadratic (Second-Order Cone) Optimization (CQO, SOCO)

Interior-point

Yes

Yes

Power Cone Optimization

Interior-point

Yes

Yes

Conic Exponential Optimization (CEO)

Interior-point

Yes

Yes

Semidefinite Optimization (SDO)

Interior-point

No

Yes

Remarks:

  • \((1)\) Quadratic and quadratically constrained problems cannot be expressed with the object-oriented Fusion interface which is designed to handle conic problems only. However, such problems always can (and should) be translated into Conic Quadratic form and then passed to Fusion.

  • \((2)\) The Rmosek interface for R only support quadratic objective but not quadratic constraints.

  • \((3)\) Applies to x86 platforms. On linuxaarch64 only the branch and bound MIP solver is parallelized, while the interior-point solver is single-threaded.

1.2 Capabilities

The MOSEK Optimization Suite includes (details depend on the platform, see Release notes):

  • the low-level optimizer API for C, Java, .NET and Python.

  • the object-oriented Fusion API for C++, Java, .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.

We also maintain an unofficial interface for Julia, see https://github.com/JuliaOpt/Mosek.jl.

Fig. 1.1 illustrates the relationship between the parts.

_images/mosek-distro-with-rmosek.png

Fig. 1.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.