Monday, March 9, 2020

Parametrized Fusion - benchmarks

We present some indicative benchmarks of the new Parametrized Fusion, to be released in MOSEK 9.2. We compare a few typical optimization models being reoptimized in two scenarios:

  • the model is constructed from scratch with new data for each optimization, MOSEK version 9.1 (green bars)
  • the parametrized model is constructed once and parameters are set before every optimization, MOSEK version 9.2 (blue bars)
The red bar in all cases represents the amount of time spent in the optimizer.

1. Markowitz portfolio optimization

Here we consider a simple model
$$\begin{array}{ll}\mbox{maximize} & \mu^T x \\ \mbox{subject to} & e^Tx=1,\\                                & \gamma \geq \|Fx\|_2, \\                              & x\geq 0, \end{array}$$

where
  • $x\in\mathbb{R}^{2000}$,
  • $F\in \mathbb{R}^{200\times 2000}$ is a dense matrix,
  • $\gamma$ is the only parameter changed between optimizations,
  • we resolve the model for 200 values of $\gamma$.
Note that by parametrizing we avoid inputting the same big matrix $F$ over and over again.

2. Various models

Next we run a few models implemented in Python only.
  • MPC - Model Predictive Control similar as in this demo with 15 states, 8 inputs, horizon length $T=80$, parametrized by the initial state, 100 resolves,
  • Polytopes - a geometric polytope containment problem, the parameter is a $3\times 3$ matrix $P$ which enters in many constraints of the form $Px=y$, 1000 resolves.
  • Elastic - a linear regression model with main term $\|Ax-b\|_2$, where $A\in\mathbb{R}^{3000\times 100}$ is dense, parametrized by $b\in\mathbb{R}^{3000}$, 60 resolves.
  • Option - a big option pricing model with complicated structure and multiple parameters, 10 resolves.

Tuesday, March 3, 2020

CVX 2.2 supports exponential cone in MOSEK

New features in CVX!

The last release 2.2 of CVX comes with support for the exponential cone in MOSEK. It means that problems involving log, exp, rel_entr, log_det, kl_div and other variants of logarithms and exponentials will be passed directly to a single MOSEK solve without employing a successive approximation method.

CVX 2.2 also comes bundled with the very recent MOSEK 9.1.9.

For an example of a log_det problem with MOSEK output in CVX 2.2 see:

http://web.cvxr.com/cvx/examples/log_exp/html/sparse_covariance_est.html

(Note, though, that the CVX warning about using the successive approximation method is still displayed, but if your log output consists of a single Mosek solve like above then it can be ignored.)

Friday, February 28, 2020

Price list change from June 1st, 2020

Our price list will change from June 1st, 2020. Prices change for the first time since June 2015 and increase on average by 5.4%.

New prices can be found at https://www.mosek.com/sales/prices-from-june-1st-2020/.

(This move was postponed until October 2021 due to COVID-19).


Friday, February 21, 2020

MOSEK 9.2 Beta - Parametrized Fusion

We are releasing a beta version of MOSEK 9.2. It is a direct continuation of version 9.1 and fully compatible with its predecessor.

The new feature introduced in version 9.2 is parametrization of Fusion models, that is the ability to build a Fusion model containing parameters and reoptimize it multiple times for varying input data without rebuilding the model from scratch.  This is particularly useful for optimizing many instances of a problem with identical structure, where some of the input data change.

For more information, with links to examples in C++, Python, Java and C#, see our website:


In near future we will publish more examples of parametrized models as well as related benchmarks.

Wednesday, January 29, 2020

MIP 2020

MOSEK is proud to be one of the sponsors of MIP2020 - Mixed Integer Programming Workshop 2020 feat. DANniversary, taking place May 18–21, 2020 at DIMACS, Rutgers University.

See https://sites.google.com/view/mipworkshop2020 for more details.

Tuesday, December 17, 2019

Office hours during end of year 2019

Our sales and support will be closed

24,25,26 December

as well as

31 December, 1 January.

The whole MOSEK team wishes everyone Happy Holiday and a good start into the New Year 2020.

Tuesday, December 3, 2019

macOS 10.15 (Catalina) MOSEK installation

MacOS 10.15 (Catalina) introduced stricter checks for unverified applications downloaded from the Internet. When you try to run MOSEK you may experience security exceptions such as:

"mosekopt.mexmaci64" cannot be opened because the developer cannot be verified. macOS cannot verify that this app is free from malware.

or:

"mosek" cannot be opened because the developer cannot be verified. macOS cannot verify that this app is free from malware.

or:

‘.../mosekopt.mexmaci64’:  dlopen(.../mosekopt.mexmaci64,6): no suitable image found. Did find:  mosekopt.mexmaci64:  code signature in (.../mosekopt.mexmaci64)  not valid for use in process using Library Validation:  library load disallowed by system policy.
or other errors of this kind.


Solution 1


Do not download the MOSEK package through a browser, use a command-line download tool such as curl instead:

curl https://download.mosek.com/stable/9.1.9/mosektoolsosx64x86.tar.bz2 -o mosektoolsosx64x86.tar.bz2

(replace 9.1.9 with the version you want to download). Continue with normal installation.


Solution 2


After you download the distribution remove the quarantine attribute from the downloaded file:

xattr -d com.apple.quarantine mosektoolsosx64x86.tar.bz2

Administrator permissions may be necessary. Continue with normal installation.

If you already unpacked the distribution remove the attribute recursively from the whole folder with MOSEK installation

xattr -dr com.apple.quarantine mosek

assuming you are in the folder which contains the unpacked mosek folder. Administrator permissions may be necessary.