####################################################################### # ex-001-NCPt.mod: NCP(t) formulation of a small EPEC with two leaders # # leader i's problem is: # # minimize (x_i+1)^2 # subject to s = x_1 + x_2 + y # 0 <= s _|_ y >= 0 ####################################################################### option presolve 0; option solver mpec; param t >= 0, default 1; set I := 1..2; # ... leader variables var x{I}; # ... follower variables var s; var y; # ... multipliers var lambda{I}; var sigma{I}; var nu{I}; var xi{I}; # ... dummy objective minimize dummy: 0; subject to # ... first order conditions KKTx{i in I}: 2*(x[i]+1) + lambda[i] = 0; KKTy{i in I}: lambda[i] - nu[i] + xi[i]*s = 0; KKTs{i in I}: - lambda[i] - sigma[i] + xi[i]*y = 0; slack{i in I}: s = x[1] + x[2] + y complements lambda[i]; bnds{i in I}: 0 <= s complements sigma[i] >= 0; bndy{i in I}: 0 <= y complements nu[i] >= 0; compl{i in I}: t >= s*y complements xi[i] >= 0; solve; display y*s; for {jj in 1..8}{ let t := 10**(-jj); solve; display y*s; }; # for