Finding an initial feasible point x0 for fmincon

18 ビュー (過去 30 日間)
Del
Del 2013 年 1 月 25 日
回答済み: John D'Errico 2022 年 8 月 23 日
How to find an initial feasible solution x0 for solving a minimization problem with non linear constraints (fmincon)?
For small problems, I can figure out an x0, but for big problems with many constraints that are not linear, I don't see how.

回答 (3 件)

Matt J
Matt J 2013 年 1 月 25 日
編集済み: Matt J 2013 年 1 月 25 日
It is not required that the initial point you choose be feasible.
It is simply helpful to the optimization that your initial guess be as close as possible to the global minimum. Making the initial guess close to your global solution is an art and not a science, and is also problem specific. We would need to see a mathematical description of the problem to advise anything.

John D'Errico
John D'Errico 2022 年 8 月 23 日
Two simple rules apply.
  1. If it was easy, then all solvers would do it for you, automatically. There would never be any issues. No complaints. No failures from this.
  2. See rule 1.
Essentially, this reduces to finding SOME solution, ANY solution to a set of equality and inequality constraints. Sometimes that really is easy. For example, if you have only linear constraints and bounds, then finding a solution is relatively trivial, at least in terms of the linear algebra.
However, if the constraints are nonlinear, then things get nasty. At least, they can do so.
In fact of course, fmincon DOES try to find an initial feasible point. Does it always succeed? Of course not.
Now, take a look on Answers. Count the number of question that were asked where people have posed a problem for the solution of some system of equations, but a solver fails to find any solution. It is actually not that uncommon. Sometimes it means the person has posed an impossible problem with no solution, yet does not realize it. Sometimes a solution may exist, but the solver could not find one. And sometimes, it is the fault of the person writing the code. They made a mistake, and formlated their problem incorrectly.
Matt J said it very well, that we cannot give you more help beyond the generic without more information.

Shashank Prasanna
Shashank Prasanna 2013 年 1 月 25 日
You can set your objective function to zero keeping constraints as it is and run the optimization to find a new feasible start point.
This is explained in this link:
  9 件のコメント
Matt J
Matt J 2022 年 8 月 23 日
編集済み: Matt J 2022 年 8 月 23 日
But even by doing this i would need to define an initial Point x0 which is "fullfilling my constraint functions".
No, as I've already said a few times, that is false. Your x0 need not fulfill the constraints. Your constraint function(s) must, however, have a defined, real, finite value at x0.
Torsten
Torsten 2022 年 8 月 23 日
And i want to generate this x0 in a matter that it would be appliable for different problems.
Then you would have solved already half of the optimization in your head. That's why it usually is not possible.

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

カテゴリ

Help Center および File ExchangeGet Started with Optimization Toolbox についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by