Need help in Optimization Problem

3 views (last 30 days)
Suraj Gurav
Suraj Gurav on 4 Dec 2018
Commented: John D'Errico on 4 Dec 2018
for my Master thesis, I have done design of experiments with 25 input parameters (4 different values per parameter) and resulting 1 output parameter (which is value of inelastic strain). so in total I have 64 such combinations of input and output parameters. I want to know how do I use the Optimization Toolbox to get the optimum value of the input and output parameters. My target is to keep the output parameter (inelastic strain value) minimum.
I am new to these MATLAB optimization tools so I read the general help document about toolbox but didn't get any clear idea.
It would be good if someone suggests a solution or procedure to be followed to solve the problem
Torsten on 4 Dec 2018
As I said: Not MATLAB is the tool where you should try to find a solution, but in the textbook from which you got the experimental design. It should tell you how to evaluate the output of the limited number of experiments to get optimal parameters.

Sign in to comment.

Answers (1)

John D'Errico
John D'Errico on 4 Dec 2018
Edited: John D'Errico on 4 Dec 2018
I'm not sure where you get the number 64 there. And indeed, the optimization toolbox will not help you, at least not directly.
You tell us you have 25 input parameters, with 4 levels for each parameter to tune. So we would see
4^25 = 2^50 = 1.12589990684262e+15
distinct combinations of parameters. 64 would never enter into the question.
Regardless, this is a nonlinear integer programming problem, but the optimization toolbox does not provide such a tool. That is, you have 25 variables, each of which can effectively take on the values 1, 2, 3 or 4. Thus effectively an integer problem. It is nonlinear because the output is related in a general black box, nonlinear way to those inputs.
Thus intlinprog from the optimization toolbox solve LINEAR integer programming problems, but not nonlinear ones. And fmincon or fminunc (etc.) can solve general problems, but are not able to handle integer constraints on the parameters. So nothing in the standard optimization toolbox can help you out.
You will need to look in the global optimization toolbox to find a solver that can handle your problem. A quick check shows that ga can minimize a nonlinear function, AND admit integer constraints on the variables. In fact, a quick check shows that ONLY ga solves that class of problem. So you must use ga. If you don't have the global optimization toolbox, then you will need to get it.
If that is completely not an option, I do recall a tool called fminconset on the file exchange that will solve this class of problem, so you could try using this:
However, I would note that it was last updated in the year 2000, so it is effectively 18 years out of date. It might not run by now. Since it uses fmincon itself, the odds are good that something has changed with fmincon since to prevent it from running properly. You never know with a tool that old.
John D'Errico
John D'Errico on 4 Dec 2018
I'm not sure where we were told your objective takes that long to run.
For such a problem however, GA will be infeasible. Once you have approximated the process by a low order polynomial, using that experimental design as chosen and then built a model of the system, then you can use an integer constrained optimizer like ga.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by