- Xint >= lb
- Xint <= ub
- Aeq*Xint' = beq
- A*Xint' <= b
- f.Ineq(Xint) <= 0
How Can I improve the result of Surrogateopt Optimization?
조회 수: 7 (최근 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!