Nonlinear constraint not satisfied for paretosearch

1 view (last 30 days)
Hi community,
I am using paretosearch for a 2-objective optimization problem to maximize them. Based on hardcoded values, I know objective #2 can be at least c. So I want to make it a constraint that in the constraint function, I specify objective #2 has to be greater than c, which I know it can be achieved. But after I run the algorithm and get the pareto front, there are points on the pareto front whose objective #2 is lower than the constrainted value, why this is the case?
As shown in the attached picture, I already set a constraint that objective #2 has to be greater than . But the pareto front still has the points that are lower than . Why this is the case? Can I not set the constraint this way?
I am setting this constraint in the mindset that I want the solver to explore more in this direction.
Thank you!
Xiaowei
  1 Comment
Torsten
Torsten on 19 Jul 2024
Edited: Torsten on 19 Jul 2024
We don't know your code - so we cannot comment on your questions.
Maybe you have to set a smaller value for the ConstraintTolerance.

Sign in to comment.

Answers (1)

Umang Pandey
Umang Pandey on 19 Aug 2024
Hi Xiaowei,
When using optimization algorithms like paretosearch for multi-objective problems, setting constraints is a common way to guide the search process. However, there are a few reasons why you might still see points on the Pareto front that don't satisfy your constraint:
  1. Constraint Handling: Ensure that the constraint is correctly implemented in your optimization setup. Double-check the constraint function to ensure it is correctly formulated and applied. Sometimes, constraints might not be correctly interpreted by the solver due to coding errors or misconfigurations.
  2. Solver Limitations: Depending on the solver's implementation, it might not strictly enforce constraints during the search process, especially if it's designed to explore a broader solution space. Some solvers might include infeasible solutions in intermediate steps to ensure convergence or diversity.
  3. Post-Processing: Ensure that the Pareto front you are analyzing is filtered according to your constraints. Sometimes, solvers output all evaluated solutions, and it's up to the user to filter out the infeasible ones.
  4. Constraint Tolerance: Check if the solver uses a tolerance level for constraint satisfaction. If the tolerance is too high, solutions close to the boundary might be accepted as feasible.
  5. Algorithm Parameters: Review the parameters and settings of the paretosearch algorithm. Some settings might influence how constraints are handled, such as penalty parameters or constraint relaxation settings.
To address this issue, you can:
  • Double-check your constraint function and ensure it's correctly implemented.
  • Filter the solutions post-optimization to only include those that satisfy your constraints.
  • Adjust solver parameters related to constraint handling and tolerance.
  • Consult the documentation of the specific solver to understand how it handles constraints.
Refer to the documentation for more information and examples:
Best,
Umang

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!