RBDO: Is it possible to optimize a discrete parameter?


First of all, I would like to thank your team for developing the excellent UQLab framework.

I’m developing a model in which I intend to optimize a component whose cost function is defined by the product between its thickness and the cost of the material. So, these two parameters are the design variables of the model and need to be optimized, similar to the column compression example from the user manual for RBDO.
However, the cost of the material is defined by a weighted value and can only take on 6 different values ​​(1, 2, 4, 8, 10, 12). Consulting old topics, I discovered that UQLab doesn’t support discrete statistical distributions in its current version, and to define discrete environmental variables for the RBDO in previous projects I used a continuous uniform distribution and transformed these values ​​into posterior discrete ones creating a conditional loop.
However, since I’m working with a discrete design variable in this case, I believe this method would not be possible. Therefore, I would like to know if you have any suggestions on how I can accomplish this optimization.

Thanks for your attention,

Dear @Eduardo_Paula ,

Unfortunately UQLab does not support discrete and categorical variables yet. The workaround would be to do what you have done so far by transforming a uniform distribution into a discrete one through some rounding in pre-processing of your cost function. The procedure would be suboptimal but may work. However, you cannot use a gradient-based algorithm in this context though. I would suggest you use gentic algorithm (‘ga’) or the constrained (1+1)-CMA-Es (‘cmaes’).


Thank you for your answer and guidance.


1 Like