lindgl04.gms : Test non-convex quadartic program with Lindo(Global)

Description

```In this test we check that the Lindo returns the correct solution, especially
correct marginals, for a non-convex QCP.
```

Small Model of Type : GAMS

Category : GAMS Test library

Main file : lindgl04.gms

``````\$title 'Test non-convex quadartic program with Lindo(Global)' (LINDGL04,SEQ=695)

\$ontext
In this test we check that the Lindo returns the correct solution, especially
correct marginals, for a non-convex QCP.
\$offtext

Sets
i    /i1*i5/
alias(i,j);

Parameters
c(i)  /i1    42
i2    44
i3    45
i4    47
i5    47.5/
a(i) / i1  20
i2  12
i3  11
i4   7
i5   4 /
Q(i,j)
;

Q(i,i) = -50;

Variables
x(i)
f;

x.lo(i) = 0;
x.up(i) = 1;

Equations
Obj    objective function
Con    constraint function;

Obj ..
f =e= sum(i, c(i)*x(i)) + sum((i,j), x(i)*Q(i,j)*x(j));

Con ..
sum(i, a(i)*x(i)) =l= 40;

Model
problem /Obj, Con/;

option optcr=0;
option qcp=LindoGlobal;
solve problem using qcp minimizing f;

abort\$(problem.ModelStat <> %ModelStat.Optimal%) 'Expecting optimal solution';
abort\$(con.slack = 0) 'Expecting con to be non-binding';

Set MaringalError(i);
MaringalError(i) = abs(c(i)+2*Q(i,i)*x.l(i)-x.m(i)) > 1e-8;

abort\$card(MaringalError) 'Wrong Solution for x', MaringalError;
``````
GAMS Development Corp.
GAMS Software GmbH

General Information and Sales
U.S. (+1) 202 342-0180
Europe: (+49) 221 949-9170