I have tried to solve an optimization problem (an MINLP) to minimize the number of items which need to be stored. The objective function is as follows:

$$\min \quad z = \sum_{i=1}^{n} \, \color{blue} {R_{i}}/x_{i}$$

Where, $\color{blue} {R_{i}}, i \in \left\{1,\cdots,n\right\}$, given constant and $x_{i}$ are integer variables. I have used three different formulations to compare which one may solve the problem faster. First, the above formulation was solved by an MINLP solver. Second, defining the new auxiliary variables and substituting diviation. Third, reformulating the objective function into the rotated second-order cone constraints. What I am interested in is:

In the first case, some of the solvers like Baron or Lindo could solve the problem faster than the second on. In the second case, a solver like SCIP could deal with the problem faster than the first one!. (substituting diviation with product). In the third case, the RSOC model was solved by CPLEX or Xpress efficiently.

It should be noted that In all of the cases the model solved optimality and the results are the same. When I tried to solve the RSOC model by Mosek, as it has some features to encounter with that efficiently, it returned: The quadratic constraint matrix is not NSD that I think it is related to the RSOC constraints.

I was wondering if, is it possible I am doing something wrong as per, other solvers returned the optimal solution?

  • $\begingroup$ I have no idea what "Second, defining the new auxiliary variables and substituting diviation" is. if $x_i$ are constrained to be integer, then new variables defined as their reciprocals will be the reciprocals of integers. As for the SOCP, I presume the $x_i$ are constrained to be POSITIVE integers. if you want anyone to help diagnose your Mosek difficulties, you should show conplete reproducible code. $\endgroup$ – Mark L. Stone Feb 14 at 21:21
  • $\begingroup$ @MarkL.Stone, thanks for your comments. The second model is actually modified to compare with the first one: $z = \sum_{i=1}^{n} \, y_i$ and added $x_i*y_i = R_i$ as a constraint. About the $x_i$, you are right. they are positive integers. please, see this link for a simple workable model that is written in GAMS. $\endgroup$ – A.Omidi Feb 15 at 10:45
  • 1
    $\begingroup$ You have not implemented that correctly in GAMS. As I wrote, I am not a GAMS person, so I leave the correct way to enter it in GAMS to someone else. Conic modeling, such as rotated Second Order Cone is a "kludge" add-on to the original GAMS, so not as "pretty as conic convex optimization tools. $\endgroup$ – Mark L. Stone Feb 15 at 12:17
  • 1
    $\begingroup$ In CVX code, which can use Mosek as solver, is very simple. Place the $R_i$ in an n by 1 vector. Then code is cvx_begin, variable x(n) integer, minimize(sum(R'*inv_pos(x))), cvx_end $\endgroup$ – Mark L. Stone Feb 15 at 12:22
  • 1
    $\begingroup$ MOSEK can handle Mixed-Inetger as part of (rotated) second order cone constraint problems. The CVX code I provided in my previous comment does impose integer constraint.Any additional linear inequality or equality constraints, as well as second order cone constraints, are also fine. I leave it to you how to do that in GAMS. $\endgroup$ – Mark L. Stone Feb 24 at 11:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.