I am trying to use PCE model as a surrogate model for my optimization problem, I tried to find the coefficients of polynomial, but the 1st coefficient is the mean value, and I am not that much familiar with PCE. Is there anyone who used PCE as a surrogate model for any optimization problem?
Can anyone please provide me the track to build PCE surrogate model??
PCE is nothing but a response surface made of special polynomials. So you can use it for optimization once it is build!
- First you have to define the ranges of the parameters you want to optimize, defining an INPUT object with uniform distributions over each range.
- Then you define a MODEL object which is your objective function.
- Then you can use the default options of the PCE module to get a new function (a MODEL in UQLab jargon) that you can evaluate at no cost (typically 10^6 runs in a second). You can then use your favourite optimization algorithm with the PCE model.
I suggest you follow the first example of the PCE user manual, see Chapter 2 “Usage”. An important choice is the number of points in the experimental design (that is, the points in your design space where the true objective function will be evaluated) used to build the PCE. Typically, one choose 10 times the number of parameters of your problem.
Hope this will be useful!
1st thing is to build PCE surrogate model with experimental data, which is done by doing these steps,
MetaOpts.Type = ‘Metamodel’;
MetaOpts.MetaType = ‘PCE’;
MetaOpts.ExpDesign.X = X;
MetaOpts.ExpDesign.Y = Y;
myPCE = uq_createModel(MetaOpts);
here I have PCE model, now I can predict the output for any input by,
YPCE = uq_evalModel(x_new)
the question is to call this function in my objective function file to get output for input at each population element in optimization.
I tried to call it by function, but it is not working for my case.
Can you please guide me to solve this issue.