- Xint >= lb
- Xint <= ub
- Aeq*Xint' = beq
- A*Xint' <= b
- f.Ineq(Xint) <= 0
How Can I improve the result of Surrogateopt Optimization?
3 ビュー (過去 30 日間)
古いコメントを表示
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?
0 件のコメント
回答 (2 件)
Alan Weiss
2022 年 2 月 14 日
Is your initial point Xint feasible? In other words, does it satisfy
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
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
2022 年 2 月 16 日
編集済み: Mehmet Türker TAKCI
2022 年 3 月 2 日
2 件のコメント
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
参考
カテゴリ
Help Center および File Exchange で Surrogate Optimization についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!