algorithmic modeling for Rhino
Thank you for your helpful tool.
I am currently running an evolutionary optimization for FRP form generation and had two quick questions. In my optimization, the genes are the geometric parameters to generate the structure shape. The objectives to optimize are the weight and the strain energy, both to be minimized.
1. My first question is then: I know it’s clearly stated that Wallacei is a multi-objective optimization, is it fair to assume it could also work for a single objective optimization? I am curious to compare where multi-objective and single-objective optimization.
2. My second question regards the validation of results before they are fed into the Wallacei component. I start with the single-objective optimization for the weight of the structure. Before a structure can be considered in the algorithm, it must verify (1) a maximum deflection criteria, (2) a minimum buckling criteria, and (3)a stress criterion (Tsai-Wu). If those 3 conditions are verified, than the design is deemed safe to be considered. I introduced this verification in the form of if statements:
The logic behind this strategy is that the optimization will drive away from those 100 000 value solutions with each generation. Is this assumption correct? Is there perhaps a different/more efficient way to validate the solutions?
Thank you for your input.
The project you are working on is indeed an interesting one as well as your questions: below find my answers
However, in Wallacei we have implemented something called Null Indicator. For a detailed description please watch the video below. To briefly explain, if Wallacei encounters a solution with a null objective, automatically it ignores it and regenerate another solution with valid results. Now here is the trick. You can use this method for your advantage as I do myself in my research and practice. In your conditional statement instead of having the value 100 as the wrong ones, just have no value, meaning empty, then if this being fed to Wallacei, Wallacei understands it as null/empty so it ignores it internally and goes back to GH to generate another solution in which this value is not null. This way you are certain that all generated solutions at the end are valid (because Wallacei ignores the invalid ones).
One note to consider: sometimes it takes more than one iteration to find the right answer with no null. And of course, sometimes you may be stuck in a loop. Depends on the nature of your problem.
(side note: make sure your number parameters than hold your objectives are flattened and each is holding one value).
Thanks for your quick answer. It looks very helpful indeed. I will try to look up your reading suggestions to learn more on the differences between multi-objective and single objective optimizations.
I'll also take a shot at implementing your suggested method to validate my results in order to take advantage of this new feature.