Nonlinear Constraints with gamultiobj
4 views (last 30 days)
Show older comments
This Questionn has already been asked 1.5 years ago, there was no accepted answer. I hope there is a solution to this problem by now.
I am trying to find a global minimum for x values with the function gamultiobj. However i need to apply the constraint x(i+1) <= cos(asin(x(i)/b), b = const. Is it by now possible to apply such a nonlinear constraint to my problem? Is there a workaround?
Thanks for any help!
0 Comments
Accepted Answer
Matt J
on 9 May 2014
Edited: Matt J
on 10 May 2014
Assuming all x(i)>=0, the constraints can be transformed to linear ones. Since cos(asin(z))=sqrt(1-z^2), the constraint
x(i+1) <= cos(asin(x(i)/b))
is equivalent to
x(i+1)^2+ x(i)^2/b^2<=1
If you make the change of variables y(i)=x(i)^2, and rewrite the problem in terms of the variables y(i), all the constraints become linear.
0 Comments
More Answers (2)
Rahul Mishra
on 13 Mar 2015
gamultiobj of Global optimization toolbox now supports nonlinear constraints as well . [2014B onwards].
0 Comments
Bruno Pop-Stefanov
on 9 May 2014
gamultiobj does not allow nonlinear constraints. Depending on your problem you might want to consider other solvers.
For example, ga does accept nonlinear constraints (defined by a function). If you can use a non-genetic algorithm, then consider the MultiStart and GlobalSearch classes. For example, fmincon can be specified as a solver with nonlinear constraints.
See Also
Categories
Find more on Multiobjective Optimization in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!