How Can I improve the result of Surrogateopt Optimization?

3 views (last 30 days)
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?

Answers (2)

Alan Weiss
Alan Weiss on 14 Feb 2022
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

Sign in to comment.

Mehmet Türker TAKCI
Mehmet Türker TAKCI on 16 Feb 2022
Edited: Mehmet Türker TAKCI on 2 Mar 2022
The mathematical equations are :

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by