Operations Research topics: SAS/OR,
SAS Optimization, and SAS Simulation Studio

Multi-objective optimization

Reply
Occasional Contributor
Posts: 19

Multi-objective optimization

Hi,I have the following data
data one;
input x1 x2 f2 f1 cost;
cards;
1.50 1.90 0.36400 0.00 0.952
1.49 1.82 0.45645 0.10 0.876
1.04 1.56 0.56312 0.20 0.787
0.71 1.40 0.67880 0.30 0.699
0.43 1.27 0.77890 0.40 0.610
0.17 1.17 0.87000 0.50 0.517
-0.09 1.09 0.90520 0.60 0.420
-0.37 1.01 0.95640 0.70 0.321
-0.70 0.92 0.98660 0.80 0.219
;
Occasional Contributor
Posts: 19

Re: Multi-objective optimization

I would to find optimal point by solving Multi-objective problem, I want to maximize f2, and minimize f1 with constraint cost <= 0.50. So out of this table need the program or PROC output x1 and x2 that produced the maximum f2, and the minimum f1. ANY help
Thanks..
Occasional Contributor
Posts: 19

Re: Multi-objective optimization

constraint is cost <= 0.50
Occasional Contributor
Posts: 19

Re: Multi-objective optimization

constraint is cost less than or equal 0.50
Occasional Contributor
Posts: 19

Re: Multi-objective optimization

So out of this table need the program or PROC output x1 and x2 that produced the maximum f2, and the minimum f1. ANY help. Thanks..
N/A
Posts: 1

Re: Multi-objective optimization

Co-ask. If anybody can give a hint. The SAS manual is confusing.
SAS Employee
Posts: 32

Re: Multi-objective optimization

Hi,

The problem is that with mathematical programming you can usually only optimize towards one objective. So if you want to search for a set of points in your problem so that the sum over the cost of the points is less than 0.5 you can write a model with PROC OPTMODEL that looks like this:

proc optmodel;
set POINTS;

num f1{POINTS};
num f2{POINTS};
num cost{POINTS};
num x1{POINTS};
num x2{POINTS};

read data one into POINTS=[_N_] f1 f2 cost x1 x2;

var x{POINTS} binary;

max maxf2 = sum{j in POINTS} f2 * x;

con costcon: sum{j in POINTS} cost * x
solve;

print {j in POINTS: x > 0.5} x1 {j in POINTS: x > 0.5} x2;
quit;

To also optimize for f1 on top of that you need a multi objective technique like goal programming.

But I am not sure that this is really what you want to do. If it is just about finding one point out of a list like the one above it could be as simple as running through the list and choosing the point that satisfies the contraints and has the best combined objective for f1 and f2. But for that you would need to know the exact relation between you two objective. A possible combined objective would be max f2 + (1 - f1).

If you do not have a discrete set of points and algebraic definitions of the functions f1 and f2 you might yet need another type of procedure.

I hope that helped a bit.
Philipp

P.S.: Replace equal with = in the code to make it work.
SAS Employee
Posts: 1

Re: Multi-objective optimization

Hi,
If you are looking for Multi-objective optimization you can use "Reference Point Method". Description of this method you can find at:

http://php.portals.mbs.ac.uk/Portals/49/docs/jyang/Minimax-reference-point.pdf
or
http://www.ia.pw.edu.pl/~wogrycza/publikacje/artykuly/woflins.pdf

I hope it will help you.
Contributor
Posts: 24

Re: Multi-objective optimization

Hi,

Have you thought about using PROC GENETIC?

Regards,

Murphy

Ask a Question
Discussion stats
  • 8 replies
  • 681 views
  • 0 likes
  • 5 in conversation