Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

Options

- RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Posted 07-18-2009 05:15 PM
(1646 views)

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

;

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

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

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..

Thanks..

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

constraint is cost <= 0.50

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

constraint is cost less than or equal 0.50

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

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..

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Co-ask. If anybody can give a hint. The SAS manual is confusing.

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

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.

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

con costcon: sum{j in POINTS} cost

solve;

print {j in POINTS: x

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.

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

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.

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.

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Hi,

Have you thought about using PROC GENETIC?

Regards,

Murphy

Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.

**If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website. **

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.