Nonlinear Constraints with gamultiobj

1 回表示 (過去 30 日間)
Ben
Ben 2014 年 5 月 9 日
回答済み: Rahul Mishra 2015 年 3 月 13 日
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 日
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 日
gamultiobj of Global optimization toolbox now supports nonlinear constraints as well . [2014B onwards].

Bruno Pop-Stefanov
Bruno Pop-Stefanov 2014 年 5 月 9 日
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!

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSolver Outputs and Iterative Display についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by