BookmarkSubscribeRSS Feed
1234567
Calcite | Level 5
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
;
8 REPLIES 8
1234567
Calcite | Level 5
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..
1234567
Calcite | Level 5
constraint is cost <= 0.50
1234567
Calcite | Level 5
constraint is cost less than or equal 0.50
1234567
Calcite | Level 5
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..
sdbison
Calcite | Level 5
Co-ask. If anybody can give a hint. The SAS manual is confusing.
Philipp_SAS
SAS Employee
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.
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.
goladin
Calcite | Level 5

Hi,

Have you thought about using PROC GENETIC?

Regards,

Murphy

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

Multiple Linear Regression in SAS

Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 8 replies
  • 2437 views
  • 0 likes
  • 5 in conversation