Hi everyone!
I’m going to do an optimization study using Wallacei X.
After trying several optimization tools, I found Wallacei is extremely powerful, especially for interpretation of results!
As a beginner, I would like to ask you about the input settings.
In Wallacei Control Panel, we have a random seed which internally defines a set of initial Genes.
Are there any ways to set the Gene values themselves, instead of seeds?
Hello, I am not sure what do you mean by random seed defining a set of initial Genes! if you are referring to the random seed in the control panel in the first tab, it is not doing what you think of, please watch the video below to better understand what that number is and why it is extremely important for us as designers and architects https://youtu.be/Nc-146IQ72w?si=CQzXAs_U9KxE1ZG-
Hello Milad, thank you very much for the quick and detailed response!!
I’ve checked the YouTube video you provided and understood the role of random seed.
The intent of my question was that if I could set the Genes themselves in order to determine a set of Genes of first generation.
Let’s say we have a optimization problem whose conditions are:
Number of genes: 3 (inputs; 0 <= x1, x2, x3 <= 9)
Number of fitness objectives: 2 (performance, cost)
Generation size: 10
Generation count: 20
We already know genes (x1, x2, x3) = (2, 8, 4) and (5, 7, 8) are the good ones, since they yield relatively higher performance and lower cost (These two genes were obtained manually)
In this case, I was curious that if we can contain two combinations, (x1, x2, x3) = (2, 8, 4) and (5, 7, 8), into the first generation in WallaceiX (the rest 8 genes are to be determined by random seed).
Does this make sense?
Key Point 1: The random seed displayed in the UI is not what you need to focus on. It serves a different purpose, as explained in the video.
Key Point 2: Every evolutionary simulation begins by randomly generating Generation 0. These processes are stochastic in nature. This ensures a broad coverage of the design space, allowing the algorithm to explore and optimize effectively through evolutionary operators such as crossover and mutation.
Now, if you want to constrain certain genes to specific values, you need to set those limitations beforehand in Grasshopper. You can do this by:
Adjusting the range of sliders
Restricting values to only odd or even numbers
Using expressions to filter out undesired values
This way, you guide the evolutionary process toward designs that align with your criteria from the very beginning.
Milad, thank you very much for the detailed explanation and key points! I truly appreciate your time and effort.
I’m sorry for responding to you late.
I’ve now had a better understanding that filtering out undesired values by expressions can guide the evolutionary process.
However, I’m still a bit unclear about the suggestions of adjusting the range of sliders or restricting values to certain numbers.
My concern is that narrowing the design space (e.g. limitations of range of number sliders, gene pools, etc.) is contrary to the philosophy of WallaceiX, which emphasizes exploring a broad design space (described in your key points above).
To clarify my original question: I was less focused on the limitation of the design space and more curious about the definition of the first generation itself (without relying on the internal random seed value).
In my earlier example, I wanted to include two specific gene combinations in Generation 0, while allowing the rest eight genes to be generated randomly.
Is this approach feasible in WallaceiX?
I apologize for so many follow-up questions, but I’d like to ensure that I fully understand the points.
Thank you again for your patience!!
If you want to focus on only two specific gene values in Generation 0, you need to define them explicitly using a set of expressions or other mathematical methods within GH. But what happens after Generation 0? Do these two values remain fixed, or do they vary within a defined domain? If they belong to a domain, will that domain be fully explored after Generation 0? So many questions arise!
One key thing to remember: as a designer, if you want to set a variable as a constant, you absolutely can. You don’t have to allow Wallacei to explore every variable—control is in your hands. Not every single number slider needs to be a gene.
Thank you for responding to my last question and making the point clear!
I was assuming at first that, through the process of NSGA algorithm, the two specific genes (originally set in Generation 0) will vary within a defined domain.
However, as you have pointed out, it should be questionable to what extent the domains are explored. I now have a better understanding that controlling the behavior of variables based on the two specific genes could be a challenging tasks.
After the discussions, I’m thinking it would be a good option for me that, at this point, I set specific variables outside the function of WallaceiX, which will be also integrated into fitness value evaluation (e.g. confirming whether the pareto front gained by NSGA is more feasible compared to my initial design, etc.).
I will explore further the optimization method, which suits more for myself.