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!

 채택된 답변

Matt J
Matt J 2014년 5월 9일
편집: Matt J 2014년 5월 10일

0 개 추천

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.

추가 답변 (2개)

Rahul Mishra
Rahul Mishra 2015년 3월 13일

2 개 추천

gamultiobj of Global optimization toolbox now supports nonlinear constraints as well . [2014B onwards].
Bruno Pop-Stefanov
Bruno Pop-Stefanov 2014년 5월 9일

1 개 추천

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.

댓글 수: 1

Ben
Ben 2014년 5월 9일
If it would not be necessary to use a genetic algorithm multiobjective solver, I would not try to use it ;) I am aware of other solvers like ga, fmincon or fgoalattain... Thank you for your input though!

댓글을 달려면 로그인하십시오.

카테고리

제품

질문:

Ben
2014년 5월 9일

답변:

2015년 3월 13일

Community Treasure Hunt

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

Start Hunting!

Translated by