# ex004-GOAL.mod # Original AMPL coding by Sven Leyffer, Argonne National Laboratory # # MPEC formulation of multi-objective ex004 problem. # Aim is to find a good description of the Pareto set. # # Formulation GOAL (from GOAL programming) # # A simple multi-objective optimization problem due to # SLC Oliveira & PAV Ferreira, Bi-objective optimization # with multiple decision-makers: a convex approach to attain # majority solutions, JORS, 51, 333-340, 2000. # ... sets & parameters set I := 1..2; # ... dimension of the problem set J := 1..2; # ... number of objectives param nK # ... number of efficient points integer, >= 0, default 10; set K := 1..nK; # ... index to efficient points set KxK within K cross K; # ... pairs for cross distances # pay-off matrix # f1 f2 # 2 8.38906 # 5 2 param lz := 2; # ... objective bounds on f2 from pay-off matrix param uz := 5; # ... variables var x{I,K}; # ... original problem variables var y{1..2,K}; # ... multipliers var z{K} >= lz, <= uz; # ... multi-objective GOALS var u{K}; # ... multi-objective multipliers var eta; var f{j in J,k in K} # ... original problem objectives = if (j == 1) then x[1,k] + 2 else exp( x[2,k] ) + 1; maximize min_dist: eta; subject to # ... definition of eta (all cross distances in objective space) ubd_eta { (k1,k2) in KxK}: eta <= sum{j in J} (f[j,k1] - f[j,k2])^2; # ... feasibility & multipliers c1{k in K}: 6 <= 2*x[1,k] + 3*x[2,k] complements y[1,k] >= 0; c2{k in K}: 12 >= 2*x[1,k] + 3*x[2,k] complements y[2,k] >= 0; # ... first order conditions KKT1{k in K}: 0 <= u[k] - y[1,k]*2 + y[2,k]*2 complements x[1,k] >= 0; KKT2{k in K}: exp( x[2,k] ) - y[1,k]*3 + y[2,k]*3 complements 0 <= x[2,k] <= 2; GOAL {k in K}: 0 <= u[k] complements f[1,k] <= z[k]; # ... data statement & start points data; let nK := 10; # ... definition of cross distance indices let KxK := { }; for {k1 in {1..nK}}{ let {k2 in {1..nK}: k1 <> k2} KxK := KxK union { (k1,k2) }; }; #display KxK; # ... distribute the payoff levels let {k in K} z[k] := lz + (k-1)/nK*(uz-lz) + Uniform01(); display z; display uz, lz; # ... NCP model problem NCP: x, y, u, # variables c1, c2, KKT1, KKT2, GOAL; # constraints # ... MPCC model problem MPCC: min_dist, # objective x, y, f, eta, u, z, # variables c1, c2, KKT1, KKT2, # constraints ubd_eta;