# MOLPg-SUM1e.mod # Original AMPL coding by Sven Leyffer, Argonne National Laboratory # # MPEC formulation of multi-objective MOLPg problem. # Aim is to find a good description of the Pareto set. # # Formulation SUM (find convex sum representation) # one weght == 1 # # A generic MOLP (matrices are upper case; note transpose!) # # minimize C^T x # subj. to A^T x <= b # # for data files, see ... # # filename reference # ------------------------------------------------------------ # MOLPg-001.dat [Steu:86] p. 411, Exercise 13-4C # MOLPg-002.dat [Steu:86] p. 415, Exercise 13-14C # MOLPg-003.dat [Steu:86] p. 416, Exercise 13-15C # ... there are many more MOLPs in there! # ------------------------------------------------------------ # References: # ~~~~~~~~~~ # [Steu:86] R.E. Steuer, Multiple Criteria Optimization: # Theory, Computation and Applications, John # Wiley, 1986, New York. # ------------------------------------------------------------ # ... problem dimensions & index sets param n >= 2, integer; # ... number of variables param m >= 2, integer; # ... number of constraints param p >= 2, integer; # ... number of objectives set N := 1..n; set M := 1..m; set P := 1..p; set P0 := 2..p; # ... problem data param C{P,N}; # ... objective gradients param A{M,N}; # ... constraint Jacobian param b{M}; # ... upper bounds on A^T x # ... multi-obnjective stuff param nK integer, >= 0, default 10; # ... number of efficient points set K := 1..nK; # ... index to efficient points set KxK within K cross K; # ... pairs for cross distances # ... variables var x{N,K}; # ... variables var y{M,K}; # ... multiliers var w{P0,K} >= 0; # ... multi-objective weights var eta; # ... objective functions var f{j in P,k in K} = - sum{i in N} C[j,i]*x[i,k]; 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 P} (f[j,k1] - f[j,k2])^2; # ... linear constraints & complementary slackness lin{j in M, k in K}: sum{i in N} A[j,i]*x[i,k] <= b[j] complements y[j,k] >= 0; # ... KKT conditions KKT{i in N, k in K}: 0 <= - C[1,i] - sum{j in P0} C[j,i]*w[j,k] + sum{j in M} A[j,i]*y[j,k] complements x[i,k] >= 0; ############################################################################ # ... choose one of following data sets #data MOLPg-001.dat; #data MOLPg-002.dat; data MOLPg-003.dat; 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; # ... generate distribution of weights let {j in P0, k in K} w[j,k] := 100*Uniform01(); display w; # ... NCP model problem NCP: x, y, f, # variables lin, KKT; # constraints # ... MPCC model problem MPCC: min_dist, # objective x, y, f, eta, w, # variables lin, KKT, ubd_eta; # constraints