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, x=5, z=-13)
when started from the default (all-zero) initial point.
However, the KKT condition
  kt2..   4*lb('2') - 2*lb('2') - 3*lb('3')  =e= 0;
is incorrect.  It does not match equations c1-c3.  Instead, it should be
  kt2..   4*lb('1') - 2*lb('2') - 3*lb('3')  =e= 0;
With this change, the model gives the solution (y1=4, y2=6, x=6, z=-6)
when started from the default (all-zero) initial point.  To get the
solution with z=-13 it is enough to set initial values for x, y1, y2,
as we verify 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, x=5, z=-13)
when started from the default (all-zero) initial point.
However, the KKT condition
  kt2..   4*lb('2') - 2*lb('2') - 3*lb('3')  =e= 0;
is incorrect.  It does not match equations c1-c3.  Instead, it should be
  kt2..   4*lb('1') - 2*lb('2') - 3*lb('3')  =e= 0;
With this change, the model gives the solution (y1=4, y2=6, x=6, z=-6)
when started from the default (all-zero) initial point.  To get the
solution with z=-13 it is enough to set initial values for x, y1, y2,
as we verify 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 /    5 /
       y1_l /    4 /
       y2_l /    2 /
        z_l /  -13 /
        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 y2 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)
       or (abs( z.l -  z_l) > tol) ) 'Deviation from expected solution';