# MOLPg-SUMe.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) # # 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 >= 1, integer; # ... number of variables param m >= 1, integer; # ... number of constraints param p >= 1, integer; # ... number of objectives set N := 1..n; set M := 1..m; set P := 1..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{P,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 # ... convex combination constraint of weights conv_comb {k in K}: sum{j in P} w[j,k] = 1; # ... 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 <= - sum{j in P} 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 {k in K} w[1,k] := Uniform01()/4; let {k in K} w[2,k] := Uniform01()/3; let {k in K} w[3,k] := 1-w[1,k]-w[2,k]; let w[1,1] := 1; let w[2,1] := 0; let w[3,1] := 0; let w[1,2] := 0; let w[2,2] := 1; let w[3,2] := 0; let w[1,3] := 0; let w[2,3] := 0; let w[3,3] := 1; 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, conv_comb, ubd_eta; # constraints