Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  CPLEX 12.6 not detecting SOCP model

    Posted 10/02/14 05:37 PM

    Originally posted by: AkshaySGupte


    Hi,

     
    I have constraints of the following form: (x,y,z are variables)
     
    sum{i in N: a[i] > 0} a[i]*x[i]^2 - sum{i in N: a[i] < 0} a[i]*x[i]^2 + sum{k in K} y[k]^2  <= z^2
     
    and Cplex 12.6 is throwing its standard error "CPLEX 12.6.0.1: QP Hessian is not positive semi-definite." meant for nonconvex QCPs. However since the above inequality is SOCP representable, I don't understand why I am getting this error.
     
    Is there any setting that I missed? I thought Cplex used to detect SOCP constraints automatically.
     
    - Akshay. 

    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: CPLEX 12.6 not detecting SOCP model

    Posted 10/03/14 12:18 PM

    Originally posted by: AkshaySGupte


    In above, my x,y,z variables are in fact linear expressions in terms of the original variables. It seems that CPLEX does not like a conic constraint in the translated variable space, i.e. I actually have to substitute out linear expressions with new variables and formulate it as 

     
    sum{i in N: a[i] > 0} a[i]*x[i]^2 - sum{i in N: a[i] < 0} a[i]*x[i]^2 + sum{k in K} y[k]^2  <= z^2
     
    and write separate linear equality constraints to define x,y,z in terms of the original variables. 
     
    It seems strange to me that the CPLEX parser does not perform this variable substitution and instead throws a "Hessian not PSD" error. I checked with versions 12.2, 12.5, 12.6 and they all exhibit the same issue.

     

    Is this an interface issue? I am modeling my formulations in AMPL. I haven't tried with Concert Technology.


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: CPLEX 12.6 not detecting SOCP model

    Posted 11/01/14 11:31 AM

    Originally posted by: AkshaySGupte


    I had this answered on the AMPL forum. It is an interface issue. AMPL  parser simplifies the square term due to which the model sent to Cplex is no longer recognizable as a SOCP. This can be avoided in AMPL by adding auxiliary variables as mentioned above. 

     

    I suppose this wont happen if working with the Callable, Concert etc. APIs. 


    #CPLEXOptimizers
    #DecisionOptimization