flds911.gms : Princeton Bilevel Optimization Example 9.1.1

**Description**

Test problem 9.2.2 in Handbook of Test Problems in Local and Global Optimization Test problem 9.1.1 on http://titan.princeton.edu/TestProblems/chapter9.html References: Floudas, C A, Pardalos, P M, Adjiman, C S, Esposito, W R, Gumus, Z H, Harding, S T, Klepeis, J L, Meyer, C A, and Schweiger, C A, Handbook of Test Problems in Local and Global Optimization. Kluwer Academic Publishers, 1999 Clark, P A, and Westerberg, A W, Bilevel Programming for Steady-State Chemical Process Design-i. Fundamentals and Algorithms. Comput. Chem. Eng. 14 (1990), 87-97. NOTE: The problem 9.1.1 on the web gives the solution y1=4, y2=2, and x=5. However, the KKT condition kt2.. 4*lb('2') - 2*lb('2') - 3*lb('3') =e= 0; seems to be incorrect. It does not match equation c1-c3. It but should be kt2.. 4*lb('1') - 2*lb('2') - 3*lb('3') =e= 0; Then, the model gives the solution y1=4, y2=6, and x=6 which is verified the EMP model below. We did NOT verify this by checking the original reference! Contributor: Alex Meeraus and Jan-H. Jagla, December 2009

**Small Model of Type : ** BP

**Category :** GAMS EMP library

**Main file :** flds911.gms

```
$title Princeton Bilevel Optimization Example 9.1.1 (FLDS911,SEQ=27)
$ontext
Test problem 9.2.2 in Handbook of Test Problems in Local and Global Optimization
Test problem 9.1.1 on http://titan.princeton.edu/TestProblems/chapter9.html
References:
Floudas, C A, Pardalos, P M, Adjiman, C S, Esposito, W R, Gumus, Z H, Harding,
S T, Klepeis, J L, Meyer, C A, and Schweiger, C A, Handbook of Test Problems in
Local and Global Optimization. Kluwer Academic Publishers, 1999
Clark, P A, and Westerberg, A W, Bilevel Programming for Steady-State Chemical
Process Design-i. Fundamentals and Algorithms. Comput. Chem. Eng. 14 (1990), 87-97.
NOTE:
The problem 9.1.1 on the web gives the solution y1=4, y2=2, and x=5.
However, the KKT condition
kt2.. 4*lb('2') - 2*lb('2') - 3*lb('3') =e= 0;
seems to be incorrect. It does not match equation c1-c3. It but should be
kt2.. 4*lb('1') - 2*lb('2') - 3*lb('3') =e= 0;
Then, the model gives the solution y1=4, y2=6, and x=6 which is
verified the EMP model below.
We did NOT verify this by checking the original reference!
Contributor: Alex Meeraus and Jan-H. Jagla, December 2009
$offtext
*Solution of problem 9.1.1 on the web
scalar x_l / 6 /
y1_l / 4 /
y2_l / 6 /
tol / 1e-6 /;
variables z, y1, y2; positive variable x;
equations ob, c1, c2, c3, c4, c5;
ob.. - x - 3*y1 + 2*y2 =e= z;
c1.. - 2*x + y1 + 4*y2 =l= 16;
c2.. 8*x + 3*y1 - 2*y2 =l= 48;
c3.. - 2*x + y1 - 3*y2 =l= -12;
c4.. - y1 =l= 0;
c5.. y1 =l= 4;
model bilevel / all /;
$echo bilevel x max y1 * c1 c2 c3 c4 c5 > "%emp.info%"
*Start from reported solution
x.l = x_l ;
y1.l = y1_l;
y2.l = y2_l;
solve bilevel using EMP minimizing z;
abort$( (abs( x.l - x_l) > tol)
or (abs(y1.l - y1_l) > tol)
or (abs(y2.l - y2_l) > tol) ) 'Deviated from reported solution';
```