Surrogate Assisted RBDO

Good Morning,

First, I want to thank the team for this amazing software uqlab. Thanks to @moustapha for the input on the RBDO module. I had gone through the examples and have a few questions that I wish to find out

  1. For the bracket problem I noticed that the Length (L)is seen as an environmental variable- I thought the designer might have a control over this variable. Appreciate any explanation on the dividing line between design and environmental variable in RBDO.
  2. Dependency: is there anyway copulas (vines) can be implemented in RBDO problem especially between environmental variables - appreciate how this can be implemented ?
  3. Is there a rule of thumb or approach for determination of bounds of the design space as well as starting point
  4. Can adaptive PCK using Subset simulation be implemented in uqlab for surrogate assisted RBDO - in the examples for two-level, I did not see where I can change the reliability method?
  5. In Example 3, QMC was used in the surrogate assisted approach, does this mean other double loop, single and SORA can be equally applied?

Once again, thanks to you all for bringing this software to us.


Dear @aokoro ,

Apologies for coming back to you so late. Here are a few responses to your questions.

  1. This is a design choice. In this example we simply assumed that the length is not controlled by the designer and further assumed it is uncertain (say, due to manufacturing tolerances). There is no rule. Some design variables may be set as environmental ones and vice-versa according to how the problem is defined. The only exception are those parameters that the designer cannot control at all (say wind loads). Such parameters can obviously not be set as design variables.

  2. Yes you can define dependency between environental variables using copula. As a matter of fact, in the RBDO module, the environmental variables are defined independently of the RBDO problem. This means whatever option available in the INPUT module can be used to define the environmental variables. I recommend you have a look in the INPUT module manual or the Vine copula example for more details on how to define dependency in UQLab. Please pay attention to how setting dependencies will affect the RBDO solution. I suspect nothing changes with direct double-loop and simulation methods. This may not be the case for methods such as SORA and SLA where the variables will need to be decorrelated before pursuing the analysis. This is (normally) done internally without your intervention, however it may induce some numerical instabilities.

  3. The bounds of the design space are part of the definition of the problem. There is no rule. For the starting point, we use the center of the space when no other information is available.

  4. Please check Table 6 of the RBDO user manual for how to change the reliability estimation algorithm

  5. SORA is an approximation method which relies on inverse FORM, so it may not work in certain conditions, for instance when the limit-state is highly non-linear or in the presence of multiple failure modes. Without any prior knowledge on your problem you can’t tell whether it will work or not.

I hope I answered your questions.


Thank you so much @moustapha for the detailed explanation - I truly appreciate this.