Can gamultiobj deal with unfeasible non linear constraints?

1 回表示 (過去 30 日間)
jacopo tacconi
jacopo tacconi 2018 年 1 月 22 日
I am running an optimization with gamultiobj with non-linear constraints applied. The optimization is related to engine performance and preliminary design. The program involves external program (for the thermodynamics of the engine) and internal matlab functions callings (for the preliminary engine component design). During the optimization, it is possible that few population elements lead to a not feasible design. In addition, the external program might not find a thermodynamic solution. These cases can affect both: the objective function and the constraints function used in gamultiobj.
If i was using fmincon, for example, in such cases I would return Nan to the system optimizer and fmincon is able to deal with this, generating new design variables. In gamultiobj, however, this is not possible. If I don't put constrains, I can return Inf for the failed objective function evaluation, forcing the GA algorithm to discard that particular point of the current population. If I add constraints, the trick with the objective function still works, however, if the constraints cannot be evaluated, I can't return Nan or Inf to the optimizer (because matlab gives me an error saying that the constraint function output must be real).
I tried to return high values instead or zeroes, because normally the algorithm evaluates constraints and objective function in series (and the objective output can be Inf), but for some reasons the code keeps evaluating the constraints with different points of the population and does not return to evaluate the objective.
Have you ever encounter this problem? Do you have any explanation or any intelligent way to set constraints values in case of unfeasible constraint definition? Thank you very much, Jacopo

回答 (0 件)

カテゴリ

Help Center および File ExchangeThermodynamics and Heat Transfer についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by