QP Hessian is not positive semi-definite.

1,374 views
Skip to first unread message

roya azimi

unread,
May 23, 2012, 6:35:10 AM5/23/12
to AMPL Modeling Language
hi.
i wrote aa ampl program ,one of its cons is this:
subject to b {(i,j) in L}: sum{(h,hh) in Jij[i,j]}
(T[h,hh]*landa[h,hh])>=sum{(o,t) in D} F[o,t,i,j];
with landa and F are vars,when i get T a param ,this program work and
have correct answer but when i get T a var that can choose its values
between four integer;ampl complains and gives me this message:

CPLEX 12.2.0.0: IBM ILOG CPLEX Optimizer TeamEAT
Edition ے
QP Hessian is not positive semi-definite.
0 MIP simplex iterations
0 branch-and-bound nodes
No basis.

i should use cplex for solver,so why is it and what i should do?
i will thanks a lot if somebody help me

Paul

unread,
May 27, 2012, 5:12:03 PM5/27/12
to am...@googlegroups.com
CPLEX has limited support for quadratic constraints.  Primarily, it allows convex quadratic <= constant.  (See the CPLEX manual for details on other possibilities.)  When T is a positive variable, your constraint does not fit that form, so you cannot use CPLEX with this model (and probably should reformulate in any case -- the continuous relaxation of your feasible region is not convex).

If lambda has a priori bounds, it is possible to linearize your quadratic expression, at the cost of adding a bunch of binary variables (changing T[h,hh] to T[h,hh,k] = 1 if T[h,hh] = k and 0 if not) and a bunch of constraints.  Problem size may increase substantially, but at least you can use CPLEX with the linearized version.

Paul

roya azimi

unread,
May 29, 2012, 1:25:28 AM5/29/12
to AMPL Modeling Language
thanks so much,with linearization i can solve it!

khan

unread,
Jan 12, 2018, 5:10:32 AM1/12/18
to AMPL Modeling Language
I have the same problem with my model. How can we do linearisation? Please suggest!
Thanking you in anticipation.

khan

unread,
Jan 12, 2018, 5:20:45 AM1/12/18
to AMPL Modeling Language
Paul Please have a look and see how can I linearise this?

------MY model file-------------------
set eNB;
set SUBCAR;

param Pmax{eNB} >= 0;
param Ppwr{SUBCAR} >= 0;

#check: sum{i in eNB} Pmax[i]=sum{j in SUBCAR} Preq[j];

param intf{eNB,SUBCAR} >=0;
var Pall{eNB,SUBCAR} >=0;
var Xku{eNB,SUBCAR} binary;

#Objective isto Minimiza interference
minimize Total_Interference:
    sum{i in eNB, j in SUBCAR} (intf[i,j])^2 * (Pall[i,j])^2 *Xku[i,j];

#Maximum Power
subject to PMAX{i in eNB}: sum{j in SUBCAR} (Pall[i,j])^2 *Xku[i,j] <=  Pmax[i];

#Peak Power of UEs
subject to PPWR{j in SUBCAR}: sum {i in eNB} (Pall[i,j])^2 *Xku[i,j] <=  Ppwr[j];

subject to total: sum{i in eNB} Pmax[i]<=sum{j in SUBCAR} Ppwr[j];

--------------My data file----------------------

param: eNB: Pmax:=

eNB1 165

eNB2 205;


param: SUBCAR: Ppwr:=

1 100

2 10

3 50

4 40

5 170;


param intf: 1 2 3 4 5:=

eNB1 3 11 11 1 16

eNB2 27 9 12 9 26;

khan

unread,
Jan 17, 2018, 4:48:44 AM1/17/18
to AMPL Modeling Language
Dear Paul,

I have applied your method of linearisation in my model but so far no success. please have a look if I can do it?

------------------Model File-----------------

set eNB;
set SUBCAR;

param Pmax{eNB} >= 0;
param Ppwr{SUBCAR} >= 0;

param intf{eNB,SUBCAR}>=1;
var Pall{i in eNB,j in SUBCAR} >=1, <= Pmax[i];
var Xku{eNB,SUBCAR} binary;
var z;

#Objective isto Minimize
minimize Total_Inter:
     sum{i in eNB, j in SUBCAR} intf[i,j] * Pall[i,j] * Xku[i,j] ;


subject to PMAX{i in eNB}:  sum{j in SUBCAR} Pall[i,j] * Xku[i,j] <=  Pmax[i];

#Z Constraints
subject to z0{i in eNB, j in SUBCAR}: z <= Pmax[i]*Xku[i,j];
subject to z1{i in eNB, j in SUBCAR}: z >= 1*Xku[i,j];
subject to z2{i in eNB, j in SUBCAR}: z <= Pall[i,j] - 1*(1-Xku[i,j]);
subject to z3{i in eNB, j in SUBCAR}: z >= Pall[i,j] - Pmax[i]*(1-Xku[i,j]);


subject to PPWR{j in SUBCAR}:  sum{i in eNB} Pall[i,j]  * Xku[i,j] <=  Ppwr[j];

---------------------Data File---------------------------------
param: eNB: Pmax:=
       eNB1 200
       eNB2 170;

param: SUBCAR: Ppwr:=
        1     90
        2     10
        3     60

        4     40
        5     170;

param intf: 1 2 3 4 5:=
eNB1 3  1   11   1  16

eNB2 27  9    12   9   26;

----------------------------------------------------------------------


On Sunday, 27 May 2012 23:12:03 UTC+2, Paul wrote:
Reply all
Reply to author
Forward
0 new messages