# liswetm-SUM1e.mod # 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 SUM1 (find convex sum representation) # set obje weight = 1 # # A simple multi-objective optimization problem (MOOP) # constructed from models liswet1 &liswet4 # of Bob Vanderbei's cute-ampl collection. # Source: # W. Li and J. Swetits, # "A Newton method for convex regression, data smoothing and # quadratic programming with bounded constraints", # SIAM J. Optimization 3 (3) pp 466-488, 1993. # ... sets & parameters param m integer, >= 1, default 5; # ... number of c/s param k integer, >= 1, default 2; param n := m+k; # ... number of variables set K := 0..k; set M := 1..m; set N := 1..n; param B{i in K} := if (i=0) then 1 else B[i-1]*i; param C{i in K} := if (i=0) then 1 else (-1)^i*B[k]/(B[i]*B[k-i]); param T{i in N} := (i-1)/(n+k-1); # ... multi-objective stuff param nP # ... number of efficient points integer, >= 0, default 10; set P := 1..nP; # ... index to efficient points set PxP within P cross P; # ... pairs for cross distances set J := 1..2; # ... objectives # ... variables var x{N,P} := 0; var y{M,P}; var w{P} >= 0; # ... objective weights var eta; var f{j in J, p in P} # ... objective functions = if (j==1) then sum {i in N} -(sqrt(T[i])+0.1*sin(i))*x[i,p] + sum {i in N} 0.25*x[i,p]^2 else sum {i in N} -(T[i]^3+0.1*sin(i))*x[i,p] + sum {i in N} 0.5*x[i,p]^2; maximize min_dist: eta; subject to # ... order constraints: avoid coalescing weights order {p in P diff {nP}}: w[p] <= w[p+1]; # ... definition of eta (all cross distances in objective space) ubd_eta { (p1,p2) in PxP}: eta <= sum{j in J} (f[j,p1] - f[j,p2])^2; # ... feasibility c{j in M, p in P}: 0 <= y[j,p] complements sum{i in K} C[i]*x[j+k-i,p] >= 0; # ... KKT conditions KKT{i in N, p in P}: x[i,p] complements w[p]*(0.5*x[i,p]-(sqrt(T[i])+0.1*sin(i))) + (x[i,p]-(T[i]^3+0.1*sin(i))) - sum{j in max(i-k,1)..min(i,m)} y[j,p]*( C[j+k-i] ) = 0; # ... data statement & start points data; # ... definition of cross distance indices let PxP := { }; for {p1 in {2..nP}}{ let {p2 in {1..p1-1}} PxP := PxP union { (p1,p2) }; }; display PxP; # ... generate uniform distribution of weights let {p in P} w[p] := 0.35 + 0.5*(2*p-1)/2/nP; display w; # ... NCP model problem NCP: x, y, # variables c, KKT; # constraints # ... MPCC model problem MPCC: min_dist, # objective x, y, f, eta, w, # variables c, KKT, # constraints ubd_eta, order;