3.0

3.0 | 2 ratings Rate this file 38 Downloads (last 30 days) File Size: 3.24 KB File ID: #22507

Calculation of Pareto points

by

 

Function is intended for detecting Pareto points.

| Watch this File

File Information
Description

A point X* is said to be Pareto optimal one if there is no X such that Fi(X)<=Fi(X*) for all i=1...n, with at least one strict inequality.
These points are also known as non-dominated, non-inferior, or efficient points.

Acknowledgements

Spot Border Detection, Path Tracing, Measuarement, Fragmentation, Path Tracing, Measurements, Fragmentation For Doubly Connected Spot, Calculation Of Distance Between Strings, and Calculation Of Pareto Points inspired this file.

This file inspired Spot Border Detection, Path Tracing, Measuarement, Fragmentation, Path Tracing, Measurements, Fragmentation For Doubly Connected Spot, Calculation Of Distance Between Strings, and Calculation Of Pareto Points.

MATLAB release MATLAB 7.5 (R2007b)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (11)
01 Apr 2014 Simon Etter  
05 Jan 2010 Anas Al Rawi

Hi Eduard,
Both works fine for me.
Many thanks,
Anas

27 Dec 2009 Eduard Polityko

Hi Anas,
Thanks for your question. You are absolutely right. You should only replace inequality sign. But for my opinion, will be better to replace F (goal function) by -F (minus F). It is a common practice for changing minimization on maximization and vice versa.
Best regards,
Eduard

23 Dec 2009 Anas Al Rawi

Hi Eduard,
Thanks a lot for sharing. I tested the code accordaing to an example in a recent published book http://www.engr.colostate.edu/~echong/book3/ & the results were identical.

In the case of maximisation, would you only swap ''<'' in line 41 with ''>'' ?
Cheers,
Anas

29 Jan 2009 Petr Pošík

Hi, Eduard,

1] Regarding the "Pareto optimal" and "non-dominated" distinction... I think I understand you. But there are two situations that should be distinguished:

a] We have very large (possibly infinite) space of candidate solutions, X, and their fitness values, F. This set X cantains the set of Pareto-optimal solutions, X*, X* \in X, which may be finite, but very often is infinite. The set X* is Pareto-optimal and of course it is also a set of non-dominated solutions.

b] On the other hand, in multiobjective optimization, you usually do not get the (whole theorethically possible) Pareto-optimal solutions; what you get is a finite set Xnd of solutions which are not dominated by any of solutions you came across during the optimization. The solutions in Xs are only approximation of the whole set X* of Pareto-optimal solutions. Sets X* and Xnd might be (and often are) different and IMHO this distinction is important.

If you consider the matrix of scores that is given to your function as the whole universe of possible solution evaluations, then you are right - the Pareto-optimal and non-dominated solutions are the same.

It is also true, that for many practical applications this distinction is quite subtle and not very important. I prefer to call the output of your function the non-dominated set.

2] Regarding the fact if two solutions which have the same fitness value can be part of the non-dominated (Pareto-optimal) set: on the page you pointed to, there is the following definition:

"A point x* is said to be (glob ally) Pareto optimal or a (globally) efficient solution or a non-dominated or a non-inferior point for (MOP) if and only if there is no x such that fi(x)<=fi(x*) for all i, with at least one strict inequality."

This definition is correct, but your interpretation is wrong. You say "The definition of Pareto points demands at least one strict inequality". But I would rather say "The definition of Pareto points demands NONEXISTENCE of other points with at least one strict inequality." Example:

Let's have a set of 2 points x1 and x2, and both points have the same evaluation, i.e. fi(x1)=fi(x2). Then the points do not dominate each other, right? Since, all their fitness scores are equal, there is no score in which the inequality is strict, right?

Consider the question if x1 is Pareto-optimal: The definition says that x1 is Pareto-optimal if there is no other point that would dominate x1. SInce there is only one other point x2 and since x2 does not dominate x1, then x1 is non-dominated and Pareto-optimal.

The similar holds for x2. So that both points are Pareto-optimal.

I hope we now understand each other.

Cheers, Petr.

27 Jan 2009 Eduard Polityko

Hi,
see http://www-new.mcs.anl.gov/otc/Guide/OptWeb/multiobj/. They say that non-dominated and Pareto are synonyms.
It was supposed (but not emphasized because of evidence), that result is Pareto set of matrix rows. And we have no points except of matrix rows and must do our choice among them only. Thus there is no distinction between non-dominated and Pareto in any case.
The definition of Pareto points demands at least one strict inequality. Therefore the only answer is that P and R are not Pareto points.
Regards, Eduard

26 Jan 2009 Petr Pošík

Eduard,

two comments:

1] Your function does not compute pareto optimal points, but non-dominated points. These two words IMHO are not synonyms. The distinction is small, but important. Pareto front is the set of "best" points which are theoretically possible. A non-dominated front is only an approximation of Pareto front, which hopefully gets closer and closer to the Pareto front.

2] You are not right if you say that "if P=R then they are not Pareto because there are no strict inequalities". If they are equal, then none of them is dominated by the other, so that both of them can be part of the non-dominated front. Of course, if one of them is in the nondominated front, then the other is as well and if one of them is NOT it the nondom. front, then the other isn't either.

Regards,

Petr

19 Jan 2009 Harry Broeders

I agree. Your function correctly calculates the Pareto optimal points. Thanks for your answer.

19 Jan 2009 Eduard Polityko

Accordingly to definition of Pareto points these points are unique. And if P has Pareto properties and R has Pareto properties and P = R then they are not Pareto because there are no strict inequalities.
But I think now that it is useful to get information about such points. And I try in the next future to add an option to the function to find points mentioned above.

17 Jan 2009 Harry Broeders

The above mentioned problem can be fixed by replacing the line:
if i~=k
by
if any(B(i,:)~=B(k,:))

17 Jan 2009 Harry Broeders

The function misses some pareto points when the input matrix has a duplicated row.

Here is a simple example demonstrating the problem when the first row is duplicated at the end.

>> B=[0 1 2; 1 2 3; 3 2 1; 4 0 2; 2 2 1; 1 1 2; 2 1 1; 0 2 2; 0 1 2];
>> [A b]=prtp(B)

A =
4 0 2
2 1 1

b =
4 7

The pareto point 0 1 2 is missing.

Contact us