What is a good optimization algorithm for a binary constraints function?

1 次查看(过去 30 天)
I'm using fmincon at the moment but one of the equality constraints functions that I have can only output a logical array. This means that fmincon cannot know in which direction to continue its search (right?) so I often get an infeasible point as a result. My question is whether there's an interesting MATLAB algorithm that can deal with this type of nonlinear optimization. Global optimization toolbox perhaps?
To visualize, I'm looking for a solution of n points that each contain 3 variables, so the solution is n by 3 and the logical array is n x 1, indicating whether the solution is possible at all. If any of the logicals is true, the solution is useless. I have no knowledge at all of this constraints function so I cannot adjust the upper/lower bound meaningfully.
  4 个评论
Daniele Sonaglioni
Daniele Sonaglioni 2021-11-4
You can try to use Global Search with fmincon as routine and put all your constraints inside GlobalSearch. I think that this is a very good way to deal with your problem.
Alternatively, you can use the genetic algorithm which works very well.
Steven H
Steven H 2021-11-5
Thanks guys! I will try the trial license and run the suggestions.
@Walter Roberson I'm not sure whether I understood your.. retrospect? Are you saying that it's actually good for the optimization to have such a constraint function? I do actually update the boundaries before running fmincon such that the boundaries satisfy that constraint function, but apparently solutions within the boundaries can also cause trouble.

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Solver Outputs and Iterative Display 的更多信息

产品


版本

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by