Friday, November 22, 2013

Speeding up the solution of quadratic problems

Over and over again  MOSEK users asks one of the following questions:

  • How should I formulate my quadratic optimization problem so it solves faster?
  • Why does MOSEK say my problem is nonconvex and what can I do about it?
The answer to both questions is that the problem should be reformulated so quadratic terms becomes separable i.e. the Hessian of the quadratic terms should be diagonal matrices. This is always possible and will make the convexity check extremely simple and robust. Moreover, in most cases the problem will also solve faster after the reformulation.

Details about the reformulations tricks can be seen in our whitepaper.

Thursday, November 14, 2013

MOSEK version 7.0.0.92

MOSEK version 7.0.0.92 is available for download. The major bug fixes are:

  • Fixed an issue causing a crash on the MATLAB toolbox on linux64x86.
  • Improved the documentation on how to use the nonlinear optimizer in C.
  • Fixed a bug in the mixed integer optimizer that could cause a crash.
  • Improved the performance when input semidefinite optimization using the optimization toolbox for MATLAB.
  • Fixed a bug that could occur when inputting a semidefinite optimization problem.
  • Fixed some bugs in the manual.
  • Fixed several bugs in Fusion and the associated examples.

Thursday, October 24, 2013

MOSEK version 7.0.0.90

MOSEK version 7.0.0.90 is now available for download. The major bug fixes are

  • Fixed a bug on the OSX platform that caused problems when using the optimization toolbox for MATLAB. 
  • Fixed a bug in the mixed integer optimizer. 
  • Fixed a bug on the OSX platform that caused problems loading the MOSEK shared object. 
  • Fixed a bug that triggered an assert for certain semidefinite problems. 
  • Improved the documentation.

Investigating the data of a semidefinite optimization problem

In the MOSEK optimizer API it is not possible to dump a semidefinite optimization problem to a text file unfortunately. However, it is possible to dump the problem to a task file and then viewing the barA matrix using the following Python script.

import sys

import mosek

env = mosek.Env()
task = env.Task(0,0)

task.readdata(sys.argv[1])

num  = task.getnumbarablocktriplets()
subi = num*[0]
subj = num*[0]
subl = num*[0]
subk = num*[0]
valijkl = num*[0.0]
num = task.getbarablocktriplet(subi,subj,subk,subl,valijkl)
for k in range(0,num):
    print('%d %d %d %d %e\n' % (subi[k],subj[k],subk[k],subl[k],valijkl[k])),
If the above Python code is saved to a file called listbara.py and then it is possible to do
python listbara.py myfile.task
Note the function getbarablocktriplet() is available in all optimizer APIs.

Tuesday, September 17, 2013

MOSEK version 7.0.0.85

MOSEK version 7.0.0.85 is now available for download. Yhe new version includes important performance enhancements and bug fixes. The major changes are

  • Improved the dense column detection.
  • Improved the presolve to handle a numerical bad case related to doubleton equations better.
  • Fixed a bug that made Java, .NET and Python optimizer APIs which caused a crash in special cases.
  • Fixed a bug in the put solution slice functions that occurred if no solution was previously defined.
  • Employ a newer version of the Intel C compiler tool chain.
  • Special characters are now allowed in license paths on Windows.
  • Fixed a bug that made the interior-point optimizer crash in certain extremely rare cases.
  • Updated the toolbox manual.

Wednesday, September 11, 2013

2013 INFORMS Annual Conference

MOSEK will be present at the INFORMS Annual conference to be held at the Minneapolis Conference center from the October the 6th and to the October 9th.

The following MOSEK employees
  • Erling D. Andersen (CEO) 
  • Joachim Dahl (senior developer) 
  • Ulf Worsøe (senior developer) 
will be present at the conference and is available for discussion about MOSEK and optimization in general.

Several MOSEK specific events have been organized at the conference:
  • Vendor workshop: MOSEK: A Software Package for Large-Scale Linear and Conic Optimization. Saturday Oct. 5, 12-2:30. 
  • Software demonstration: Erling D. Andersen,On Using MOSEK to Solve Large-Scale Linear and Conic Optimization Problems, Sunday Oct. 6, 13.30. 
  • Talk: Erling D. Andersen, Tour de MOSEK 7: The short version, Sunday Oct., 17:00. 
  • Booth. MOSEK has booth number #3 in the exhibition hall. Make sure you stop by the booth to pick up a free copy of the MOSEK modeling manual




Friday, August 23, 2013

MOSEK version 7.0.0.81

MOSEK version 7.0.0.81 is now available for download. The major changes are:

  • Updated the toolbox manual.
  • Fixed a bug that made the mixed integer conic optimizer crash in rare cases when applied to a quadratic optimization problem.
  • Updated the portfolio optimization example in the Fusion manual.
  • Fixed a bug that cased a crash on Windows 32 bit when solving certain semidefinite optimization problems.
  • Fixed a bug that made MOSEK crash when writing problems having symmetric matrix variables to a file.
  • Fixed some issues in linprog and bintprog in the toolbox. In particular the undocumented call linprog('defaults') is supported. It is also supported for quadprog and bintprog too.
  • Fixed issue causing incorrect infeasibility violations to be reported in certain cases.
  • Fixed an installation issue on MAC OSX.
  • Updated the fusion documentation.
  • Fixed an issue in the quadratic optimizer.
  • Fixed an issue that in rare cases caused an crash in the interior-point optimizer.
  • Fixed an issue in the nonlinear optimizer that in rare cases caused a crash.
  • Improved the conic mixed integer optimizer for conic problems.
  • Fixed several issues in Fusion.
  • Fixed an issue in the linear dependency checker.
  • Fixed an issue in the conic optimizer that made it report a wrong dual solution in rare cases.

Tuesday, July 2, 2013

MOSEK version 7.0.0.75

MOSEK version 7.0.075 is now available for download. The major bug fixes are:

  • Fixed several bugs in the conic optimizer that made it terminate prematurely in some cases.
  • Fixed several bugs in Fusion. One could cause it to crash.
  • Fixed a bug in the function removevars.
  • Fixed a rarely occurring bug in the presolve.
  • Bug fixes and cosmetic changes to Fusion.
  • Fixed a bug in the conic optimizer that in rare cases generated an assert.
  • Added missing Fusion examples to the distribution.


Friday, June 7, 2013

MOSEK version 7.0.0.68

MOSEK version 7.0.0.68 is now available for download at the MOSEK website. The following issues

  • The examples for MATLAB Fusion has been added to distribution.
  • When writing LP files a lot debug output was produced.
  • Fixed a bug in the conic optimizer hurting the performance.
  • Fixed some issues in the nonlinear function interface.
  • Fixed a bug that affected the exitflag from linprog and friends in the optimization toolbox for MATLAB.
  • Fixed bug that made Fusion feed the wrong variables name into the optimizer.

have been resolved since the last release.

Wednesday, May 22, 2013

MOSEK version 7 and Rmosek

Currently, the version of the Rmosek interface on CRAN does not support MOSEK version 7. This issue may never be fixed because it seems CRAN does not like commercial software anymore and therefore  MOSEK  may be removed from CRAN.

Therefore, an updated version of Rmosek inteface is available for download here.


Thursday, May 16, 2013

MOSEK version 7 is released

The final MOSEK version 7 is now released and available from the MOSEK download page.

The highlights of MOSEK version 7 are:
  • Semidefinite optimization capabilities. (Requires a PTON license).
  • New additional parallelized mixed integer optimizer.  
  • Fusion. A tool for developing models quickly in Java, .NET, and Python.
  • Exploiting AVX instructions in the latest INTEL CPUs.
  • Automatically detect and run on multiple CPU cores.

Tuesday, May 7, 2013

MOSEK version 7.0.0.60 (RC)

The final release candidate for MOSEK version 7 is now available from the MOSEK website. The most important fix is that this version works with the latest MATLAB versions without crashing on 64 bit Linux. However, many minor bug fixes have also been included.

We expect the final version of MOSEK version 7 to be released before 14th of May.

Tuesday, April 23, 2013

Version 7 installation troubles

The installation of MOSEK version 7 has been simplified compared to previous versions. In particular on Linux and MAC OSX the setting OS variables has been eliminated. Nevertheless troubles may arise unfortunately.

A common installation problem occurs if MOSEK version 7 is installed on a system that have had version 6 installed previously because then version 7 picks up the version 6 license file unless the OS environment variable MOSEKLM_LICENSE_FILE is removed. By default MOSEK version 7  reads the license file $HOME/mosek/mosek.lic where $HOME represents the users home directory. However, the method of using the OS variable MOSEKLM_LICENSE_FILE to point to the license file still works.  If only version 7 is employed it is strongly recommend to remove the setting of the OS variable MOSEKLM_LICENSE_FILE and then use the default location the license file. Alternatively MOSEKLM_LICENSE_FILE should be updated to point to the version 7 license file which can be used by version 6 too.


MAC OSX installation troubles

It is fairly normal to experience installation troubles when installing MOSEK version 6 on MAC OSX. The reason is that MOSEK version 6 relied on the setting of some operating system (OS) variables. However, Apple has changed the OS so in newer versions the OS variables are not available to applications such as MOSEK.

The easiest and best solution to the troubles is to upgrade to MOSEK version 7 which does not require setting of any OS variables. After unpacking MOSEK then a valid license file should be placed in $HOME/mosek/mosek.lic and then  MOSEK should work.

Note MOSEK does not include any GUI so it should be use from the command line for instance.

Monday, April 22, 2013

Rmosek installation issues: A workaround


Some customers have reported problems with installing Rmosek on R 2.15.3. The installation seems to give the same error as described at:
We suggest the following workaround. First manually installing the Matrix package using the command
> install.packages("Matrix", dependencies=TRUE)
and then installing Rmosek as 
> install.packages("Rmosek", type="source", INSTALL_opts="--no-multiarch", configure.vars="PKG_MOSEKHOME=/home/joachim/rhome/mosek/6/tools/platform/linux64x86 PKG_MOSEKLIB=mosek64")
should solve the problem. The last command line should be adapted to the local platform and installation of course.

Monday, January 28, 2013

MOSEK version 7.0.0.36 (beta)

The beta version of MOSEK 7 has been updated to version 7.0.0.36. The updated version is available at +MOSEK beta 7 page.

Thursday, January 17, 2013

Academic license

As of today January the 17th 2013 MOSEK has stopped selling academic licenses. The reason is that academics can use MOSEK free of charge using the academic initiative. Therefore, over the last year the number of academic sales has been too few to justify separate academic licenses.

Tuesday, January 15, 2013

Micosoft Solver Foundation support in MOSEK

The future of Microsoft Solver Foundation is highly uncertain. See for instance the recent thread at the Solver Foundation Forum. Therefore, the upcoming MOSEK version 7 does not include support for Solver Foundation and we can only offer limited support for using Solver Foundation within MOSEK version 6.

Currently, we advice MOSEK users to employ the MOSEK optimizer API or the MOSEK Fusion API instead of Solver Foundation on the Microsoft .NET platform. If Solver Foundation becomes an actively developed product again we will of course work with the new development team to have MOSEK support.

MOSEK Support