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.

Monday, October 21, 2013

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.