Quick question about Pareto Front and gamultiobj
4 views (last 30 days)
Show older comments
Hello everyone!
I'm currently facing a problem (maybe it's not even a problem, I just want to check) when I try to use gamultiobj - my first time trying to use it
There's a problem in which I have to minimize functions k1 and k2 in two different ways:
1) the final value for functions k1 and k2 MUST be equal
2) the final value for functions k1 and k2 can be different
I've already solved the first problem using fmincon (0.5608 is the value for k1 and k2) - Thanks Alan Weiss and Walter Roberson!
Now I'm trying to use gamultiobj in order to solve the problem in which k1 and k2 can be different. I'm getting exit flag 1 (what is good) and I'm getting 70 points on the Pareto Front (this number increases if I set a higher value for the parameter 'ParetoFraction'. However, none of these points is k1 = 0.5608 and k2 = 0.5608 as in the first problem. Is this "strange"?
The constraints for problems 1 and 2 are exactly the same
In my Pareto Front, k1 values are ranging between 0.58 and 0.6 and k2 values range between 0.83 and 0.93 When k1 gets higher k2 gets lower, so I don't know how I would get any pair of k1 and k2 close to my optimal solution in Problem 1.
My knowledge in the theory here is not too strong in this subject so I was wondering if this makes sense or not, situation in which I'd have to find out where I might have committed a mistake
0 Comments
Answers (1)
arushi
on 27 Aug 2024
Hi Felipe,
When using `gamultiobj` in MATLAB to solve a multi-objective optimization problem, it's important to understand the nature of Pareto optimality and how it might differ from single-objective optimization solutions like those obtained with `fmincon`.
Understanding Pareto Optimality
1. Pareto Front: In multi-objective optimization, the Pareto front represents a set of solutions where no other solution is better in all objectives. In other words, improving one objective would worsen another. This often results in a range of solutions rather than a single optimal point.
2. Single-Objective vs. Multi-Objective Solutions:
- In your first problem, you used `fmincon` to find a single point where \( k_1 = k_2 = 0.5608 \). This solution satisfies a specific condition that both objectives are minimized equally.
- In your second problem using `gamultiobj`, you are exploring the trade-offs between the two objectives, allowing \( k_1 \) and \( k_2 \) to be different.
Why Your Specific Solution May Not Appear
- Different Objective Landscapes:The landscape of the objective functions may change when switching from a constrained single-objective to an unconstrained multi-objective scenario. The solution \( k_1 = k_2 = 0.5608 \) might not be Pareto optimal when the constraint of equality is removed.
- Constraints and Search Space: The constraints are the same, but the relaxation of the equality condition changes the feasible region. The optimizer explores a broader range of values, and the nature of the trade-offs might lead to a different set of Pareto-optimal solutions.
- Algorithm Parameters: The behavior of `gamultiobj` can be influenced by parameters such as population size, Pareto fraction, crossover fraction, and mutation rate. These can affect the exploration of the solution space and the diversity of solutions on the Pareto front.
By exploring these suggestions, you should be able to gain a better understanding of your problem and potentially identify solutions that align more closely with your expectations.
Hope this helps.
0 Comments
See Also
Categories
Find more on Multiobjective Optimization in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!