Need help with mathematical optimization - fmincon

2 次查看(过去 30 天)
I have developed a simulation code that predicts strength value for different designs. It takes in a variable (factors that define the design) and spits an output value. This code requires 4 constants that I need to find. I have few experimental datapoints, and I was hoping to use them to obtain these 4 constants.
I have experimental data for 7 different cases of inputs. I tried to obtain the constants by setting up an error function and running 'fmincon' on it to minimize the error. I did not get any output for 5 days, so I quit the program. I ran the same fmincon function for only one case. This took about 20 hours, but gave me an output. I do not get same constants when I run the code individually for these 7 different cases.
Now, I am looking for a more robust way to obtain these constants.
Each run for my code takes about 15 mins to give me a value
My code is complex and needs to be simplified/optimized, however I am currently focusing my efforrts on finding the best way to find these constants.
This is for a research work, so I would greatly appreciate suggestions/comments on standard ways to do this.

回答(2 个)

Alan Weiss
Alan Weiss 2020-7-2
Your problem sounds natural for the surrogateopt solver in Global Optimization Toolbox. In particular, fmincon is a gradient-based solver, and quite frequently simulations are not as smooth as this solver wants. Also, surrogateopt can use checkpointing which can help you recover from a crash or other issue with an optimization.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation

Zaikun Zhang
Zaikun Zhang 2020-7-14
Your problem is a simulation-based optimization problem.
You may try PDFO ( https://www.mathworks.com/matlabcentral/fileexchange/75195-pdfo-powell-s-derivative-free-optimization-solvers ), which contains solvers particularly designed for simulation-based optimization by late Professor M. J. D. Powell ( https://en.wikipedia.org/wiki/Michael_J._D._Powell ).
See https://www.pdfo.net for more information.

类别

Help CenterFile Exchange 中查找有关 Nonlinear Optimization 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by