Error in parfinitedifferences using fmincon and parallel
Mostrar comentarios más antiguos
Hi everyone,
I have a question using fmincon with the useparallel option set to 'always' to optimize a process model (linear ineq constraints, non-linear ineq constraints, all decision variables subject to upper and lower bounds) in R2013b, where the process model can return NaN values as outputs due to convergence problems.
Now I have the problem that the optimization runs for a while (>150 evaluations of the process model) without problems (even when the process model sometimes returns NaN) and then suddenly breaks, displaying the following error code:
Error using parfinitedifferences>(parfor body) (line 158)
Matrix dimensions must agree.
Error in parfinitedifferences (line 118)
Error in computeFinDiffGradAndJac (line 45)
Error in barrier (line 573)
Error in fmincon (line 905)
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA,GRAD,HESSIAN] =
barrier(funfcn,X,A,B,Aeq,Beq,l,u,confcn,options.HessFcn, ...
Error in solve_optimization_problem (line 90)
[dec_var,obj,eflag,output]=fmincon(fun,dec_var_0,A,b,A_eq,b_eq,lb_dec_var,ub_dec_var,cfun,opts);
Caused by:
Error using -
Matrix dimensions must agree.
This only happens when using the parallel mode in fmincon
opts=optimset('Display','iter','UseParallel','always','Algorithm','interior-point','PlotFcn',@optimplotfval,'TolFun',10^-4,'MaxFunEvals',1000','FinDiffRelStep',1e-5);
[dec_var,obj,eflag,output]=fmincon(fun,dec_var_0,A,b,A_eq,b_eq,lb_dec_var,ub_dec_var,cfun,opts);
Additionally, I initialize a parallel pool with 3 workers
parpool(3)
and disable multi threads computation, befor running the program
LASTN = maxNumCompThreads(1);
Does anyone know how to fix the described problem? Thank you for your kind support!
Best regards
Carsten Asmanoglo
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Choose a Solver en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!