This manual describes 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.
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.
Before solving an optimization problem data is gathered and prepared. Subsequently an optimization problem is formulated based on this data and the problem is communicated to the optimization software. Finally, when the results have been obtained, they 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.
Below is a partial list of features in the MOSEK 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:
The MOSEK optimization toolbox can solve only convex optimization problems whereas the MATLAB toolbox handles nonconvex problems too.
On the other hand the MOSEK optimization toolbox can solve linear, quadratic and conic mixed-integer optimization problems which is not possible using the MATLAB optimization toolbox.
The emphasize of the MOSEK optimization toolbox is on large-scale and sparse problems. MOSEK offers only large-scale algorithms, but these algorithms perform very well for small and medium-sized problems too.
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 solving 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 further details are referred to [23].
Furthermore, a primal and a dual simplex optimizer is available for linear problems.
The MOSEK optimization toolbox for MATLAB includes the following functions
which are also available in the MATLAB optimization toolbox. Moreover, these functions are compatible with the MATLAB functions of the same name in the sense that they accept the same arguments and return the same information.
The only differences between the functionality of the MOSEK and the 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 intended for convex problems only. On the other hand 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 and the MOSEK optimization toolboxes handles, MOSEK delivers better reliability and performance.