MATLAB Answers


Need help in Optimization Problem

Asked by Suraj Gurav on 4 Dec 2018
Latest activity Commented on by 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


Show 1 older comment
on 4 Dec 2018
You should read in your book on experimental design how to get an optimal parameter combination. I don't think that the Optimization Toolbox can help in this case.
Best wishes
Thank you @Torsten and @kevin Chng for the suggestions.
But, actually my problem is, in experimental design I have limitations on computational expenses in terms of time. so the 64 combinations contains discrete values of parameters. I am looking out for a way so that I can use the values of parameter within some range and check its effect on output parameter. Thats why I am searching solution in Matlab
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.

1 Answer

Answer by John D'Errico
on 4 Dec 2018
Edited by 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.


Thank you @John D'Errico for the suggestion. I now take a look into ga and see how I can get help out of it.
for number 64,
yes, you are right. 4^25 gives 1.12e+15 combinations by full factorial design. But considering approx time of 3-3.5 hrs for each simulation, 1.12e+15 combination will take forever. it's not feasible/sensible solution. so took help of Taguchi design and considered 21 parameters (remaining 4 parameters kept fixed at one value) and hence by Taguchi L64 design I got that 64 Design points.
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.