Surrogate assisted RBDO - error

Good morning,

Thanks to the uqlab team for the amazing software. Please I am trying to model a problem using the RBDO module. This involves six environmental variables ( dependence between the first (H,T,V) and last three (He,Te,Ve) are implemented using vine copula). These environmental variables are ocean related parameters(first three normal operating and last three extreme conditions). There are also three design variables representing thickness of various riser section (t1,t2 and t3). The cost function is a minimization of the material volume of the entire riser length. The probabilistic constraint are two ( for the first three (operating) and last three variables(extreme)) where the three performance conditions for each constraint are in series (failure of one will leads to system failure for given condition). I am trying to use surrogate assisted, two-level, adaptive PCK- subset simulation (with multiple enrichment) but I get this error in my analysis . Appreciate any help on this @moustapha and others in the group. I have attached the uqlab code here RBDOLSF.m (746 Bytes)
RBDOtest.m (3.2 KB)
. Below is the error

error message:
Index in position 1 exceeds array bounds (must not exceed 6).
Error in uq_display_uq_rbdo (line 164)
constraint = results.Constraints( iterGO+1 : iterGO+iterLO,: );
Error in uq_module/Display
Error in uq_display (line 4)
% uq_createModel, uq_createInput or uq_createAnalysis commands. The
Error in RBDOtest (line 70)
uq_display(myRBDO_PCK)
error message ends

Also, I noticed that the enrichment stops at 100 added even with the addition of
RBDO_PCKOpts.Constraints.Enrichment.MaxAdded = 1000;
Comment received: Maximum number of added points reached.

Appreciate input on this please.

Hi @aokoro ,

Thanks for your request. I did have a look and there is a small bug indeed.

However, the bug is only on the display. The RBDO analysis is actually running smoothly and you do get results. There are just some issues when displaying the convergence curve, which is specific to the algorithm you are using, i.e., HGA. I will have it fix for next release, thanks for noticing this.

Nevertherless, you do get your results and they are printed when the command uq_print(myRBDO_PCK). You can also access the results in the field myRBDO_PCK.Results.

Generally speaking though, I would recommend using hybrid constrained (1+1)-CMA-ES as optimization algorithm through the command:

RBDO_PCKOpts.Optim.Method = 'HCMAES';

which is currently on line 67 of the RBDOtest.m function you have sent.

Not only you would get better results, but also the bug does not affect this algorithm, so you would be able to get the display.

Finally, regarding the maximum number of enrichment points, you are not using the propoer syntax. It should be:

RBDO_PCKOpts.Metamodel.Enrichment.MaxAdded = 500;

(Notice that I have replaced .Constraints with .Metamodel.)

I hope this helps.

Cheers,
Moustapha

1 Like