How to generate the objconstr for multivariate surrogate optimization with nonlinear constraints?

2 vues (au cours des 30 derniers jours)
Hello,
I am trying to use the surrogate optimization function in matlab to obtain the global minima of a problem with an objective function and several nonlinear constraints. My problem has been computed using symbolic variables, but I am not able to find the correct syntax of putting these symbolic cost functinos and nonlinear constraints into "matlabFunction" to obtain the function handle to use with surrogateopt.
***** Code example ********
symbolic_objective_function %computed from several operations
symbolic_nonlinear_constraints %computed after several operations
%% Is the below line of code the correct way to compute the objconstr for use in surrogateopt?
objconstr=matlabFunction([symbolic_objective_function], [symbolic_nonlinear_constraints],'vars',{x})

Réponse acceptée

Alan Weiss
Alan Weiss le 15 Fév 2022
Try this:
obj = matlabFunction(symbolic_objective_function,'vars',{x});
constr = matlabFunction(symbolic_nonlinear_constraints,'vars',{x});
objconstr = @(x)struct('Fval',obj(x),'Ineq',constr(x));
Alan Weiss
MATLAB mathematical toolbox documentation
  4 commentaires
MohammadReza Jabbari (Jabari)
Hi Alan Weiss,
How a nonlinear equality constraint can be fed to the Matlab Sover such as Surrogate?
Alan Weiss
Alan Weiss le 3 Mar 2024
As shown in the surrogateopt reference page, the solver does not accept nonlinear equality constraints. This example shows a potential workaround by using two inequality constraints to form an approximate equality constraint. However, this technique does not always work.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation

Connectez-vous pour commenter.

Plus de réponses (0)

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by