# ex005-SUM1.mod # Original AMPL coding by Sven Leyffer, Argonne National Laboratory # # MPEC formulation of multi-objective ex005 problem. # Aim is to find a good description of the Pareto set. # # Formulation SUM (find convex sum representation) # with one weight == 1 # # A simple multi-objective optimization problem (p. 281): # C.-L. Hwang & A. S. Md. Masud, Multiple Objective # Decision Making - Methods and Applications, No. 164 in # Lecture Notes in Economics and Mathematical Systems, # Springer, 1979. # ... 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} := 1; # ... original problem variables var w{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 - x[2,k]^2 else x[1,k] / x[2,k]; maximize min_dist: eta; subject to # ... order constraints: avoid coalescing weights order {k in K diff {nK}}: w[k] <= w[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; # ... first order conditions KKT1{k in K}: 2*w[k]*x[1,k] + x[2,k] complements -1 <= x[1,k] <= 2; KKT2{k in K}: -2*w[k]*x[2,k] - x[1,k]/(x[2,k]^2) complements 1 <= 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[k] := 2*k; display w; # ... NCP model problem NCP: x, # variables KKT1, KKT2; # constraints # ... MPCC model problem MPCC: min_dist, # objective x, f, eta, w, # variables KKT1, KKT2, # constraints ubd_eta, order;