How Can I improve the result of Surrogateopt Optimization?

6 ビュー (過去 30 日間)
Mehmet Türker TAKCI
Mehmet Türker TAKCI 2022 年 2 月 13 日
編集済み: Mehmet Türker TAKCI 2022 年 3 月 2 日
Hi all, I have a mixed integer nonlinear problem with a lot of constraints and used surrogateopt to find the minimum cost function. It gives a result but It doesn't acceptable one. I changed some default parameters like MaxFunctionEvaluations, MinSampleDistance or MinSurrogatePoints. At the same time, I have added InitialPoints but the result didn't change. I solved the same problem with fmincon without using integer constraints and found a good solution. I modified this result as initialpoints for the surrogate optimization but It still gives the same bad result. It didn't consider the initial points. When I call the function with intialpoints, It gives a better result. For example;
opts = optimoptions('surrogateopt','PlotFcn','surrogateoptplot','InitialPoints',Xint,'MaxFunctionEvaluations',6000);
rng default
[x1,fval,exitflag,output] = surrogateopt(f,LB,UB,intcon,A,b,Aeq,beq,opts);
fval= 1000 $
fval_new=f(Xint) = 800$
So, why can't the surrogate find a good result at least as good as the intial points I gave? How can I improve my result?

回答 (2 件)

Alan Weiss
Alan Weiss 2022 年 2 月 14 日
Is your initial point Xint feasible? In other words, does it satisfy
  • Xint >= lb
  • Xint <= ub
  • Aeq*Xint' = beq
  • A*Xint' <= b
  • f.Ineq(Xint) <= 0
If Xint satisfies all of those constraints then I would be surprised that surrogateopt returns a worse solution thant Xint.
Alan Weiss
MATLAB mathematical toolbox documentation
  3 件のコメント
Alan Weiss
Alan Weiss 2022 年 2 月 16 日
I would appreciate seeing your code. I cannot understand how surrogateopt would return a worse solution than a feasible initial point.
Alan Weiss
MATLAB mathematical toolbox documentation
Mehmet Türker TAKCI
Mehmet Türker TAKCI 2022 年 2 月 18 日
Hi Alan, did you have a chance to examine the code?

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


Mehmet Türker TAKCI
Mehmet Türker TAKCI 2022 年 2 月 16 日
編集済み: Mehmet Türker TAKCI 2022 年 3 月 2 日
The mathematical equations are :
  2 件のコメント
Alan Weiss
Alan Weiss 2022 年 2 月 18 日
I believe that the issue arises because your initial point Xint is not feasible, as you will see if you execute
max(abs(AeqXint - beq))
You get a value of 0.0027, which is large enough for the solver to deem the point infeasible. To examine the issue further, execute
[rr ss] = max(abs(AeqXint - beq)) % ss is the index where it occurs
AeqXint(ss)
beq(ss)
Alan Weiss
MATLAB mathematical toolbox documentation
Mehmet Türker TAKCI
Mehmet Türker TAKCI 2022 年 2 月 19 日
Hi Alan, thanks for your help.

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

カテゴリ

Help Center および File ExchangeSurrogate Optimization についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by