Copula for environmental variables RBDO

Good day all,

Thank you so much for the amazing software. Please I have a question regarding using vine copula for input environmental variables for an RBDO analysis. I am trying to investigate the effect of dependency in the overall optimization case using a Two-level approach. However, I don’t see any change in the final cost function or optimal design parameters with the introduction of copulas. I have changed parameters, tried SORA and SLA and the concern seems to be the same - nothing changes. I am wondering if I probably did not set-up the problem well using copulas in my problem. I truly appreciate any input on this problem. I have attached my problem here
RBDOAcademic.m (3.0 KB)
RBDOAcademicConstraint.m (444 Bytes)

Hi All,

Any input from the team , forum members and @moustapha will be highly appreciated for my earlier concern on this subject. Files also attached

Thanks A.O

Dear @aokoro ,

Thanks for your feedbaack. I went into your files and I discovered some bugs within the RBDO module that I have fixed.

I will answer your questions in many points, first regarding what is and is not possible with UQLab and then w.r.t. the codes you sent.

  1. As of now, you can run RBDO while considering dependencies in the input only when using a two-level approach with Monte Carlo simulation in the inner loop (this includes QMC as well).
  2. I realized that in a double-loop with other reliability methods, there was a bug which caused to ignore the defined copulas in building the joint probability distribution combining both the design and environmental variables. I have just fixed it. It will be available in the next release. In the meantime, you can replace the following file in your UQLab distribution with this one in attachement. UQLABROOTPATH\modules\uq_analysis\builtin\uq_rbdo\Methods\uq_runReliability.m (If you are curious, the change is confined to lines 37 - 45): uq_runReliability.m (6.2 KB).
  3. As of now, you cannot use SLA and SORA when you have dependencies as we are implementing the original algorithms where the variables were assumed independent. So I woulld suggest sticking to two-level approaches if you want to account for dependencies within the environmental variables.

Now regarding, the examples you sent me, there are many issues:

  1. I would suggest while you are still trying to understand the impact of dependencies on this analytical example to not use PCE since your model is fast-to-run. Adding PCE in the equation only adds more sources of errors in your results. I would do this study with the original analytical model. You can start using surrogate models later, only when this study has validated the interest/possibility of properly accounting for dependencies.
  2. The random variables associated to the design vsariables seems a it odd to me. Did you really intend to define a variables in the order of 200-500 with a standard deviation of 0.5 ? (That’s a cofficient of variation of 4e-4 to 1e-3). It is actually fine but seems a bit low to me. Just double-check your distirbution.
  3. Somehow when I run the analysis, I find no feasible solution (Always do a uq_print of your analysis to see whether it actually converged or not). Please double check your problem set-up.

I hope this helps and thank you for bringing this bug to my attention.


Thank you so much @moustapha for the explanation. I am grateful.