Tuesday, January 24, 2023

Mosek with AmpliconArchitect

AmpliconArchitect (AA), a Python tool for genomic reconstruction used in cancer biology is in the process of updating that will make it compatible with all versions of MOSEK.

Until recently the tool was dependent on an older MOSEK API which required the use of MOSEK 8, making the installation process a bit more cumbersome, and making AA dependent on the discontinued, less accurate general convex optimizer.

With the new updates installing MOSEK for use with AA will be as simple as "pip install mosek" and one gets easy access to MOSEK upgrades the same way. AA will use MOSEK to solve its optimization tasks with the more accurate, faster conic solver.

We would like to thank Jens Luebeck for guidance and help with the installation, running and testing the new software.

For the time being you can try this new version via Jens' fork of AmpliconArchitect, where the readme file also provides all the necessary details. As always you can get a MOSEK personal academic license for academic use of AA via our website.

Thursday, December 15, 2022

Design a heart with DJC

In connection with the approaching Christmas, we are receiving many support questions about the use of mixed-integer conic optimization in the design of the traditional Danish "braided heart" Christmas tree decorations:

Let us demonstrate how this can be done with MOSEK. First, we need to define the heart. A suitable model is given by
$$x^2+(y-p|x|)^2\leq r^2,$$
where $p,r$ are parameters which can be adjusted for different shapes and sizes:
This is not a convex shape, but it can still be modelled in conic form if we employ a mixed-integer model of $|x|$. This can be done using a classical big-M approach or, in MOSEK 10, using a disjunctive constraint (DJC):
$$\begin{array}{l}(x\geq 0 \ \mathrm{AND}\ z=x)\ \mathrm{OR}\ (x\leq 0 \ \mathrm{AND}\ z=-x) \\  x^2+(y-pz)^2\leq r^2\end{array},$$
combining a DJC with a quadratic cone constraint in affine conic (ACC) form.

Having defined the domain, it is time to draw some lines with slope $\pm 45^\circ$ to determine the braided pattern. To do this, we will choose, one at a time, line segments with integer endpoints, say $x=(x_1,x_2)$, $y=(y_1,y_2)$, inside the heart. Such a line segment has the correct slope if
$$x_1-x_2=y_1-y_2\ \mathrm{OR}\ x_1+x_2=y_1+y_2,$$
which, again, is a disjunctive constraint. We will only choose sufficiently long line segments, for example by requiring
$$|x_1-y_1|\geq c$$
for some constant $c$. Here the absolute value can again be modelled in the same mixed-integer fashion as before. We set no objective, so this becomes a feasibility problem, but one could also decide, for instance, to maximize the length of the segment or optimize some other measure of beauty for the design.

Having found one segment, we will construct a new one by adding additional constraints to guarantee that the new segments do not interfere too much with the previous ones. For the sake of simplicity, we will demand that new endpoints do not belong to any line of slope $\pm 45^\circ$ containing the previous endpoints, but one could consider other elimination conditions as well. This iterative procedure is similar to solving the travelling salesman problem by cycle elimination, and it terminates once there is no more place for new segments under all the constraints. The implementation requires us to be able to write the "not equals" condition $x\neq a$, which, assuming we work with integers, can again be cast as a DJC:
$$x\leq a-1 \ \mathrm{OR}\ x\geq a+1.$$
The iterative procedure will construct more and more segments:
To obtain different designs, we can vary the parameters $p,r$. Still, there is enough freedom in the choice of segments that even just varying the random seed ("mioSeed") for the mixed-integer optimizer produces different final solutions for the same choice of $p,r$:
And on this note, we leave you with the Fusion API code below and wish you all the best. (You can also read our last Christmas special from way back in 2018).


Monday, December 12, 2022

Christmas 2022

During the Christmas period our sales and support will be closed 23-27 December 2022, inclusive. 

The MOSEK Team

Monday, October 24, 2022

MIP 2023 - 20th Anniversary

MOSEK is proud to be one of the sponsors of MIP 2023 - Mixed Integer Programming workshop. MIP 2023 marks the 20th year of the conference and, as such will be particularly special. It will be held May 22-25, 2023, at the University of Southern California, Los Angeles.

More details at https://www.mixedinteger.org/2023/

Thursday, October 20, 2022

A customer reported one order of magnitude of speed up for his problems.

A happy customer just reported back that Mosek can solve some of their mixed-integer problems one order of magnitude faster using the recently released version 10!

The origin of that speed improvement was that the customer a couple of years ago provided a set of typical problems that they solved i.e. problems they would like Mosek to perform better on. Now during the development of Mosek version 10 the mixed-integer team repeatedly looked at how the proposed changes to the mixed-integer optimizer worked for the provided benchmark problems. This has lead to numerous small improvements summing up to a large impromvement for the problems of this customer while not degrading the performance on average.

The take away message form this story is that if you provide a set of benchmark problems, then you are much more likely to observe an improvement in performance of Mosek over time for your problems.It may take some time before happens, but it is likely to happen.

A good benchmark set contain problems of diffrent difficulty and the most of the problems should represent the normal difficulty. Fell free to contact Mosek support to provide a set of benchmark problems.

Monday, September 26, 2022

2022 INFORMS Annual Meeting

MOSEK is proud to be one of the sponsors of the INFORMS Optimization Society at the 2022 INFORMS Annual Meeting, taking place on  October 16th–19th, 2022 at the JW Marriott Hotel Convention Center, Indianapolis, USA.

More details at https://meetings.informs.org/wordpress/indianapolis2022/

Wednesday, September 21, 2022

MOSEK 10 is out

You can now install and use MOSEK 10, which is the current stable release.

More information and links can be found in our September 2022 newsletter.