How to find the number of function evaluations (g-calls) in the RBDO module

Dear UQLab,

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”:

  1. Can we use “myRBDO_Krg.Results.output.funccount” to find g-calls?
  2. 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.

Kind regards,
Ali

Dear RSUQ,

Just a complimentary note:

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.

Bests,
Ali

Dear @ali

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.

Cheers,
Moustapha

1 Like

Dear Dr @moustapha,

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.

Best regards,
Ali

Dear @ali

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.

Best,
Moustapha

1 Like

Dear Dr. @moustapha,

Thanks again for the fruitful discussion.

Bests,
Ali