2. Introduction


This manual describe the features of the MOSEK optimization toolbox for MATLAB. The toolbox makes it possible to call the highly efficient MOSEK optimization engine from the MATLAB environment.

2.1. What is optimization

Many decision problems facing individuals and companies can be cast as an optimization problem i.e. making an optimal decision given some constraints specifying the possible decisions. As an example consider the problem of determining an optimal production plan. This can be formulated as maximizing a profit function given a set of constraints specifying the possible production plans.

2.2. Why you need the MOSEK optimization toolbox

Before solving an optimization problem data is gathered and prepared. Subsequently an optimization problem is formulated based on this data and the problem communicated to the optimization software. Finally, when the results has been obtained, results are analyzed and interpreted. A popular software tool for these tasks is MATLAB. The MOSEK optimization toolbox provides an industrial strength solver capable of solving huge problems that other less specialized MATLAB packages can't solve.

2.2.1. Features of the MOSEK optimization toolbox

Below is a partial list of features in the MOSEK optimization toolbox.

  • Solve linear optimization problems.

    • Using either an interior-point or a simplex optimizer.
  • Solve convex quadratic optimization problems.
  • Handle convex quadratic constraints.
  • Solve conic quadratic optimization problems.
  • Solve mixed integer linear optimization problems
  • Solve linear least squares problems.

    • The problem can have arbitrary linear side constraints.
  • Solve linear [[MathCmd 1]] and [[MathCmd 2]] norm minimization problems.
  • Solve linearly constrained entropy optimization problems.
  • Solve geometric programming problems (posynomial case).
  • Solve separable convex optimization problems.
  • Read and write industry standard MPS files.

The items in bold above is new possibilities in version of the MOSEK optimization toolbox for MATLAB.

2.3. Comparison with the MATLAB optimization toolbox

MathWorks the maker of MATLAB also sells an optimization toolbox so an obvious question is how these two products compares on the following issues:

Problem types:

In general the MOSEK optimization toolbox can only solve convex optimization problems whereas the MATLAB toolbox also handles nonconvex problems.

On the other hand the MOSEK optimization can solve mixed integer linear optimization problems which is not possible using the MATLAB optimization toolbox.

Algorithms:

The emphasize of the MOSEK optimization toolbox is on large-scale and sparse problems. Therefore, MOSEK only offers large-scale algorithms. However, these algorithms also perform very well for small and medium sized problems.

The main computational engine within the MOSEK optimization toolbox is a primal-dual type interior-point algorithm which has been demonstrated to be very well-suited for solution of large-scale problems. Particularly when the algorithm is implemented using state-of-the-art (sparse) linear algebra as is the case for the MOSEK optimization toolbox. Readers interested in the details are referred to [25].

However, it should be mentioned a primal simplex optimizer is available for linear problems.

Compability:

The MOSEK optimization toolbox for MATLAB includes the following functions

  • linprog
  • lsqlin
  • lsqnonneg
  • optimget
  • optimset
  • quadprog

which are also available in the MATLAB optimization toolbox. Moreover, these functions are compatible with the MATLAB function of the same name in the sense they accept the same arguments and return identical information.

The only differences between the functionality of the MOSEK and MATLAB version of these functions are that the MOSEK version does not use all the MATLAB options, does not use an optional starting point, and the MOSEK version of quadprog is only intended for convex problems. On the other hand then the large-scale version of the MATLAB optimization toolbox does not accept arbitrary bounds and linear side constraints for quadratic problems whereas MOSEK does.

In general for problems that both the MATLAB optimization toolbox and MOSEK optimization toolbox solves, then MOSEK delivers the best reliability and performance but of course MOSEK cannot solve many problems the MATLAB optimization toolbox deals with.

Mon Sep 14 15:56:06 2009