# ex004-SUM.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 SUM (find convex sum representation) # # 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 # ... variables var x{I,K}; # ... original problem variables var y{1..2,K}; # ... multipliers var w{J,K} >= 0; # ... multi-objective weights 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 # ... convex combination constraint of weights conv_comb {k in K}: sum{j in J} w[j,k] = 1; # ... order constraints: avoid coalescing weights order {k in K diff {nK}}: w[1,k] <= w[1,k+1]; # ... 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 <= w[1,k] - y[1,k]*2 + y[2,k]*2 complements x[1,k] >= 0; KKT2{k in K}: w[2,k]*exp( x[2,k] ) - y[1,k]*3 + y[2,k]*3 complements 0 <= x[2,k] <= 2; # ... data statement & start points data; # ... definition of cross distance indices let KxK := { }; for {k1 in {2..nK}}{ let {k2 in {1..k1-1}} KxK := KxK union { (k1,k2) }; }; display KxK; # ... generate uniform distribution of weights let {k in K} w[1,k] := 0.35 + 0.5*(2*k-1)/2/nK; let {k in K} w[2,k] := 1-w[1,k]; display w; # ... NCP model problem NCP: x, y, # variables c1, c2, KKT1, KKT2; # constraints # ... MPCC model problem MPCC: min_dist, # objective x, y, f, eta, w, # variables c1, c2, KKT1, KKT2, # constraints conv_comb, ubd_eta, order;