The MOSEK Optimization Suite 9.3.6 is a powerful software package capable of solving large-scale optimization problems of the following kind:
conic quadratic (also known as second-order cone),
involving the exponential cone,
involving the power cone,
convex quadratic and quadratically constrained,
In order to obtain an overview of features in the MOSEK Optimization Suite consult the product introduction guide.
The most widespread class of optimization problems is linear optimization problems, where all relations are linear. The tremendous success of both applications and theory of linear optimization can be ascribed to the following factors:
The required data are simple, i.e. just matrices and vectors.
Convexity is guaranteed since the problem is convex by construction.
Linear functions are trivially differentiable.
There exist very efficient algorithms and software for solving linear problems.
Duality properties for linear optimization are nice and simple.
Even if the linear optimization model is only an approximation to the true problem at hand, the advantages of linear optimization may outweigh the disadvantages. In some cases, however, the problem formulation is inherently nonlinear and a linear approximation is either intractable or inadequate. Conic optimization has proved to be a very expressive and powerful way to introduce nonlinearities, while preserving all the nice properties of linear optimization listed above.
The fundamental expression in linear optimization is a linear expression of the form
In conic optimization this is replaced with a wider class of constraints
where \(\K\) is a convex cone. For example in 3 dimensions \(\K\) may correspond to an ice cream cone. The conic optimizer in MOSEK supports a number of different types of cones \(\K\), which allows a surprisingly large number of nonlinear relations to be modeled, as described in the MOSEK Modeling Cookbook, while preserving the nice algorithmic and theoretical properties of linear optimization.
1.1 Why the Optimization Server?¶
The MOSEK OptServer is a simple solver service. It receives optimization tasks, solves them, and returns solution and log information. A typical application would be offloading heavy computations from client computers, when the problem is set up, to a remote powerful machine, and returning solutions back.
The OptServer can be used in a few ways:
Users of the Optimizer and Fusion API can use the OptServer directly from the API by providing the server, port number and credentials (if appropriate). This way then can switch between running the same optimization locally and remotely with no change to the rest of their MOSEK code except for the
Similarly to the above, but in asynchronous mode, where the local call does not wait for the remote optimization to terminate. Instead the user should periodically poll the server for a solution.
Optimization models in standard file formats (MPS, LP, CBF, OPF, MOSEK task) can also be sent to the server using a REST API over HTTP or HTTPS and the server returns a file with the solution.
The documentation of the relevant Optimizer API contains examples of calling the remote server using the first two API-based methods.