What is a good optimization algorithm for a binary constraints function?
显示 更早的评论
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 个评论
Matt J
2021-11-4
ga and surrogateopt in the Global Optimization Toolbox support integer (and therefore also binary) constraints. However, it would probably be advisable to show us a more detailed problem description. I've never heard of a case where the output (not the inputs) of a constraint function needed to be integer-valued.
Walter Roberson
2021-11-4
In my youth, I sometimes wrote constraint functions that returned logicals, not having understood that the information returned by the constraint functions was used to locate the boundary better.
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
2021-11-5
回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Surrogate Optimization 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!