A growing collection of bilevel problems
nwj_2017_03 : Nonlinear-Nonlinear bilevel problem from [Nie et al., 2017]
Objective values | Solution points |
---|---|
F* = -0.437 | x* = (0.000, 0.000, -0.707, -0.707) |
f* = -1.190 | y* = (0.618, 0.000, -0.558, -0.554) |
Original source:
AMPL
formatvar x{1..4} >= -1, <= 1; # Outer variables
var y{1..4} >= -1, <= 1; # Inner variables
var l{1..10} >= 0, <= 100; # Multipliers
minimize outer_obj: x[1]^2*y[1] + x[2]*y[2] + x[3]*y[3]^2 + x[4]*y[4]^2;
subject to
# Outer constraints:
outer_con_1: x[1]^2 + x[2]^2 + x[3]^2 + x[4]^2 -1 <= 0;
outer_con_2: -x[1] + y[1]*y[2] <= 0;
outer_con_3: -x[3]^2 + y[3]*y[4] <= 0;
# Inner objective
inner_obj: y[1]^2 - y[2]*(x[1] + x[2]) - (y[3] + y[4])*(x[3] + x[4]) = 0;
# Inner constraints:
inner_con_1: y[1]^2 + y[2]^2 + y[3]^2 + y[4]^2 - 1 <= 0;
inner_con_2: -y[1] + y[2]^2 + y[3]^2 + y[4]^2 <= 0;
# KKT conditions
stationarity_1: 2*y[1] + 2*l[1]*y[1] - l[2] - l[3] + l[4] = 0;
stationarity_2: -x[1] - x[2] + 2*l[1]*y[2] + 2*l[2]*y[2] - l[5] + l[6] = 0;
stationarity_3: -x[3] - x[4] + 2*l[1]*y[3] + 2*l[2]*y[3] - l[7] + l[8] = 0;
stationarity_4: -x[3] - x[4] + 2*l[1]*y[4] + 2*l[2]*y[4] - l[9] + l[10] = 0;
complementarity_1: l[1]*(y[1]^2 + y[2]^2 + y[3]^2 + y[4]^2 - 1) = 0;
complementarity_2: l[2]*(-y[1] + y[2]^2 + y[3]^2 + y[4]^2) = 0;
complementarity_3: l[3]*(-y[1] - 1) = 0;
complementarity_4: l[4]*(y[1] - 1) = 0;
complementarity_5: l[5]*(-y[2] - 1) = 0;
complementarity_6: l[6]*(y[2] - 1) = 0;
complementarity_7: l[7]*(-y[3] - 1) = 0;
complementarity_8: l[8]*(y[3] - 1) = 0;
complementarity_9: l[9]*(-y[4] - 1) = 0;
complementarity_10: l[10]*(y[4] - 1) = 0;