How can I change the 'MaxIterations' option in matlab 'createOpt​imProblem(​'fmincon',​..........​)'

62 visualizaciones (últimos 30 días)
I am trying to solve a problem using the follwing code:
rng default
gs = GlobalSearch;
problem = createOptimProblem('fmincon','x0',x0,...
'objective',objective,'lb',lb,'ub',ub,'nonlcon',constfunc);
[res] = run(gs,problem);
But when I run this, this massage i get in command window:
'''''''''GlobalSearch stopped with one or more of the local solver runs stopping prematurely.
9 out of 9 local solver runs exceeded the iteration limit (problem.options.MaxIterations) or
the function evaluation limit (problem.options.MaxFunctionEvaluations).
None of the 9 local solver runs converged with a positive local solver exit flag"""""
I like to change the default option ""MaxIterations"". And ''MaxFunctionEvaluations''. I tried using the follwoing way but its not working,
rng default
gs = GlobalSearch;
problem = createOptimProblem('fmincon','x0',x0,...
'objective',objective,'lb',lb,'ub',ub,'nonlcon',constfunc,'MaxFunctionEvaluations',3000);
[res] = run(gs,problem);
It gives the following error:
"""""No field MaxFunctionEvaluations exists for PROBLEM structure."""""
How can I solve this problem? Thank you for your comment in advance.

Respuesta aceptada

Matt J
Matt J el 5 de Feb. de 2020
Editada: Matt J el 5 de Feb. de 2020
You need to do this,
opts=optimoptions('fmincon', 'MaxFunctionEvaluations',3000);
problem = createOptimProblem('fmincon','x0',x0,...
'objective',objective,'lb',lb,'ub',ub,'nonlcon',constfunc,'options',opts);

Más respuestas (0)

Categorías

Más información sobre Solver Outputs and Iterative Display en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by