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:

    1. If the three criteria are verified, then the value of the weight inherited to Wallacei is set to the structure’s weight.
    2. If one of the three criteria was not verified, the value of the weight inherited to Wallacei is set to 100 000 (i.e a very large number). In the post-processing, the  Fitness Values can be sorted to eliminate the individuals that correspond to the 100 000 value.

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.

Best regards,

Mohamad Tuffaha

Views: 89

Replies to This Discussion

Hi Mohamad,


The project you are working on is indeed an interesting one as well as your questions: below find my answers

  1. Yes, for sure, you can use Wallacei for a single objective optimization as well. However, I encourage you to read more about the differences between multi-objective and single objective optimization. Some suggested readings are as follows:
  2. You have implemented an interesting method for validation of results; indeed, this is what I used to do back in the days before Wallacei. You can actually still use the same method and It works. As you said you can eliminate the results with the value of 100 in Fitness Values at the end.

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).



Hello Milad, 

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.

Thanks again. 

Best regards, 

Mohamad Tuffaha






  • Add Photos
  • View All

© 2020   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service