Thanks again for the amazing RBDO module.
I am a little bit confused about finding the number of function evaluations (g-calls) in a surrogate-assisted RBDO problem. In other words, if we have a model named “myRBDO_Krg”:
Can we use “myRBDO_Krg.Results.output.funccount” to find g-calls?
What is the difference between the given number thanks to “Model evaluations” using “uq_print” and the "myRBDO_Krg.Results.output.funccount "?
Last but not least, I really appreciate Dr. @moustapha’s sustainable support and other RSUQ members.
According to UQLib manual, given that I used the CCMAES optimization algorithm, “output.funccount” is “Total number of objective function evaluations.”, while “myRBDO.Results.ModelEvaluations” describes “Number of evaluation of the computational model or its surrogate.” based on the RBDO manual. I would like to know the exact difference and which one should represent g-calls in accordance with the paper entitled “Quantile-based optimization under uncertainties using adaptive Kriging surrogate models” by Moustapha et al.
Sorry for my late reply. Yes indeed you are right. The number of calls to the original limit-state is not directly accessible after an analysis. The information provided is the number of calls to the limit-state function (whether it is an approximation if a surrogate is used or the original one) by the optimizer.
To know the number of calls to the original model in an active learning strategy, you must check the size of the experimental design of the used surrogate. In you case, this information can be found in myRBDO_Krg.Results.ActiveMetamodel.ExpDesign .
Thanks for the feedback, we will make this information available directly as output of the analysis in uq_print for future release.
Thanks for the clarification. This is such a true honor for me to have your guidance.
In fact, we should add “the number of DoEs in the construction of surrogate modeling” (the summation of both initial and added DoEs) and output.funccount (from the optimization algorithm) to find the total number of function evaluations in a surrogate-assisted RBDO problem. Am I right?
As always, I am most grateful for your help and other RSUQ members.
No you only need to look at the final size of the ED in the surrogate model to see how often the original limit-state has been called. If you are using a surrogate-based approach, the optimization algorithm only calls the surrogate model. The corresponding number of calls is given in output.funccount.