Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  cplexqp does not return correct solution

    Posted 09/28/18 01:57 PM

    Originally posted by: Moslem Zamani


    Consider the following bilinear quadratic program,
      min x1x7+x2x8-x1+x5-x6
       s.t.  x1+x2=1,
            -x3+x5-x6+x7=0,
          -x4+x5-x6+x8=0,
          x1, x2, x3, x4, x5, x6>=0,
         x7, x8>=1.
    Its optimal value is -1, consider (1,0,0,0,0,1,1,1). When I model this problem via cplexqp (opt.optimalitytarget=3) on MATLAB, surprisingly, it announces  the problem is unbounded. Of course, the problem is bounded, because objective function can be written as follows (consider multiplication of second and third constraint by x1 and x2, respectively)
    x1x7+x2x8-x1+x5-x6=-x1+x1x3+x2x4.
     I used global solver cplexqp many times and always provided the best solution compared to the other solvers. I wonder why it cannot handle this problem. My CPLEX version is 12.8.


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: cplexqp does not return correct solution

    Posted 09/29/18 03:50 PM

    Consider this solution:

    x1 = 1
    x2 = 0
    x3 = k+1
    x4 = k+1
    x5 = 0
    x6 = k
    x7 = 1
    x8 = 1

    For k>= 0. As far as I can tell, this is feasible and has objective value -k. Since k can be arbitrarily large, the model indeed looks unbounded.


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: cplexqp does not return correct solution

    Posted 09/30/18 01:36 PM

    Originally posted by: Moslem Zamani


    Thanks for your response. However, your given point is not feasible. (-2k=0!!!)


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: cplexqp does not return correct solution

    Posted 10/04/18 01:49 AM

    Yes, sorry, my fault. I mixed up the sign for x6 in the constraints.


    #CPLEXOptimizers
    #DecisionOptimization


  • 5.  Re: cplexqp does not return correct solution

    Posted 10/10/18 01:58 AM

    There seem to be indeed some problems with this model in CPLEX. We are looking into this.


    #CPLEXOptimizers
    #DecisionOptimization


  • 6.  Re: cplexqp does not return correct solution

    Posted 10/03/18 09:59 AM

    Originally posted by: JohanLöfberg


    Moslem is correct. The globally optimal solution has objective -1 (validated with global solvers in YALMIP), and the proposed unbounded solution above is not feasible.

     

     

     

     

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 7.  Re: cplexqp does not return correct solution

    Posted 10/31/18 08:20 AM

    Originally posted by: PierreBonami


    Hi sorry for the long time to answer,

     

    I ran the model in matlab and the status I get is:
    statusstring: 'constructed relaxation is unbounded'

    which is legitimate in that case.

     

    Most global solver don't have this status. For an indefinite quadratic optimization problem, it may happen that the convex relaxation we construct is unbounded. From that point, one can try to solve the model anyway as is. It may succeed (like in this case aparently with YALMIP) but it may also leads to something that looks a lot like an infinite loop (it is relatively easy to construct examples).

     

    The simplest workaround is to put some reasonnable large bounds (here on the variables x7 and x8).

     

    I have put bounds of 1e4, the solve with CPLEX unfortunately still has difficulties to converge. There are also some issues in reporting: in the log CPLEX reports solution of cost slightly lower than -1 but those are round off errors.

     

    We will try to fix all these in the future.


    #CPLEXOptimizers
    #DecisionOptimization


  • 8.  Re: cplexqp does not return correct solution

    Posted 10/31/18 07:40 PM

    Originally posted by: Mark L. Stone


    Will explicit finite lower and upper bounds on all variables always prevent this bug from manifesting itself, because all convex relaxations will be bounded? Or is this true only if the bounds aren't large enough in magnitude  to cause numerical havoc?


    #CPLEXOptimizers
    #DecisionOptimization


  • 9.  Re: cplexqp does not return correct solution

    Posted 11/02/18 07:21 AM

    Originally posted by: PierreBonami


    Yes putting explicit bounds (unless they are > 1e20) will prevent having this solution status (it is not a bug)


    #CPLEXOptimizers
    #DecisionOptimization


  • 10.  Re: cplexqp does not return correct solution

    Posted 11/03/18 09:20 AM

    Originally posted by: Moslem Zamani


    Hi,
    Thanks for your response. In fact, the given optimization problem obtained by setting the parameters of following bilinear problem

                                       min w' b+v'Dx

                                        s.t.  Ax=b,

                                               w' A+v'D>=c'

                                                         x>=0, v>=e,

    where x, v, w are decision variables and e is vector of ones. In this model, the set {x: Ax=b, x>=0} is bounded. It is easily seen that the above problem is bounded. However, I put some bounds for v and w. In most cases, CPLEX's performance was not satisfactory (replacing the objective function by w' Ax+v'Dx made no defference).                                          


    #CPLEXOptimizers
    #DecisionOptimization