Quantcast
Channel: Yet Another Math Programming Consultant
Viewing all articles
Browse latest Browse all 804

Finding equidistant Pareto optimal points

$
0
0

When tracing an efficient frontier sometimes the pictures indicate that points are not very evenly distributed:

image

In the paper http://www.sciencedirect.com/science/article/pii/S0895717710006424

image

an interesting algorithm is developed to trace the Pareto frontier with points that are nicely spread out. The idea is to find the next point by adding a distance constraint to problem. The next point should be a fixed distance from the previous point. Lets try one of the examples in the paper.

The declarations are:

image 

Note that the weight λ is now a (nonlinear) variable.

The example

image

is implemented as:

image

The first step is to evaluate the points related to λ=0 and λ=1. I.e. optimize for each objective individually.  (In my experience it is sometimes better not to have the “other” objective just float, but rather have a small weight on that objective. I.e. use λ=0.001 and λ=0.999.)

image

In line 43, the value for start we keep at zero (which is the default in GAMS). In the above loop we made sure to work on obj2 (λ=1) first and on obj1 (λ=0) second. This is to make sure the last point is a good starting point for the loop over the interior points we will do later.

Next we calculate the distance between two points γ2. We also introduce a constraint that forces the distance between a new point and the last point is γ2. I would conjecture that a normalized distance would be more appropriate of the different objectives have different units.

image

The parameter Δ is used as a simple way to predict a step.

Finally we can execute the main loop:

image

We set some bounds on the objective variables z (and λ) so we don’t make a step backwards. We estimate the new point using an extremely simple interpolation mechanism. This method is in general not providing a feasible initial solution for the next point. In the paper it is mentioned they use a smarter estimate that is always feasible. I don’t see immediately how to generate such a starting point.

For the example in question, we get the following picture:

image

Finally, we can improve on our first picture:

image


Viewing all articles
Browse latest Browse all 804

Trending Articles