Wallacei is the result of approximately 4+ years of research in which the primary drive for its development was our struggle in conducting our research through the existing optimisation tools, and so what started as a limited toolset, has now developed into the Wallacei platform.
Wallacei offers users of evolutionary computation in design the ability to run their evolutionary simulations, conduct a thorough analysis of the outputted results, select solutions according to multiple selection methods, including K-means clustering, and extract the phenotype of any solution in the population.
Here below we highlight some of the features of the Wallacei engine:
1. Formulation of the design problem in grasshopper (before running the evolutionary simulation) is key, in our opinion it is more important than the algorithm itself. A poorly formulated design problem will most likely result in a poor simulation run, in which the outputted results are non-sensical. In this light, we have introduced several features to help the user easily, and more quickly, understand the simulation’s output, and take the necessary steps to reformulate the design problem towards ensuring a more efficient simulation run. These are highlighted below:
When running the evolutionary algorithm, the user is able to dynamically track the progress of the algorithm through comparing the first and last generations of their algorithmic run, giving the user a more complete overview of how well (or badly) the simulation is optimising towards fitter solutions. This is conducted through three distinct graphs, the parallel coordinate plot, the objective space and the standard deviation for each generation. This allows the user to get a ‘sneak peek’ into the simulation’s performance (through comparing the first and last generations, rather than only the last generations) without having to wait for the simulation to complete. This expedites the review process, especially in more complex design problems.
In many poorly formulated design problems, there is a high likelihood that the fitness objectives being calculated in the grasshopper definition to be flawed, in which rather than outputting the correct fitness value, a <null> value is outputted instead. Users are usually oblivious to this; in other optimisation engines, these <null> values are usually replaced with a ‘0’ value; this not only skews the simulation’s results, but also heavily misinforms the algorithm. And so to assist the user to better understand how well (or poorly) their design problem is formulated, we have introduced what we call the ‘null indicator’. This indicator informs the user whenever the algorithm has encountered a <null> solution in order for the user to be aware of this and revise their design problem accordingly. Additionally, we have modified the algorithm so that when it does encounter a <null> value, it disregards it and generates an alternative solution instead, thus ensuring the solutions with <null> values are not part of the population.
The size of the search space is critical when optimising, as a very large search space indicates a greater challenge for the algorithm to find local or global optimum peaks. As such, we introduced visual cues for users to quickly see how many variables they have in their design problem, how many unique slider values are within each variable, and the impact of this on the size of the search space. The aim is to highlight to the user that changing a variable from having 3 decimal places to 1 decimal place may have no effect on the design problem, but would heavily reduce the search space for the algorithm.
Once the simulation is complete, the analysis of the outputted results for all the generations in the population is vital. In our opinion, it is only through this thorough analysis can the user truly understand not only the results, but also the progression of the simulation as well as extract any emergent patterns that have occurred throughout the simulation run. Therefore, in ‘Tab 2’ of the Wallacei user interface, we have introduced multiple graphical analyses to help the user better understand their results. The aim of these analytic tools is to allow for a thorough comparative analysis between all the solutions in the simulation as well as between each solution’s fitness values. These graphs are also laid out strategically to allow for an analytic comparison between the graphs with each other, and not in isolation from one another.
We provide users with an ‘estimated simulation runtime’ as soon as they start their evolutionary simulation. This quickly indicates how long the simulation will take; this helps the user better judge how long to wait for the simulation to complete, or whether they want to go back to their design problem and make it more streamlined in order to reduce their runtime.
2. Selection is a major challenge in multi objective algorithms, especially when the user only wants one single solution as an output. In design specifically, the visual analysis of solutions is key; yes it is important to evaluate solutions based on their fitness values, but at the end of the day, it is essential for the user to see the geometry of the solutions, and analyse them with a more ‘hands on approach’. This is a difficult task when there are a lot of solutions to be analysed, as it becomes a highly tedious (and unnecessary) process. Therefore, we also introduced multiple features that allows the user to narrow down solutions from the simulation to a more manageable size that would make their visual analysis a more realistic task. In ‘Tab 3’ of the Wallacei user interface, users can compare all the solutions in the population and rank them according to multiple different methods, such as how many time a solution’s fitness value has been repeated, the average fitness rank between solutions, the pareto front, and through K- means clustering.
We introduced K-means clustering to help the user group the solutions within a specific generation into smaller ‘chunks’, the clustering is according to the fitness values of each solution, and so the aim is for the clustering algorithm to group solutions with similar fitness values to one another. In this case for example, rather than analysing 100 solutions, we can group them into 4 or 5 clusters according to their fitness values, and extract a solution (or multiple solutions) from each cluster as ‘representatives’ of that cluster, thus drastically cutting down the solutions to be visually analysed while maintaining variation between them.
3. One of the most powerful features of Wallacei X is the fact that the user can now extract any phenotype from the simulation without having to save their geometries. Users can select the solutions they wish to further analyse (through the methods above, or through any alternative methods they choose), add them to the ‘export list’ in Wallacei, and reconstruct and export only the selected solutions. Through this, it is not necessary to save the phenotypes for the entire population in order to access some of them at the end of the simulation run; no longer is it even necessary to construct the phenotype while the simulation is running, as this can now be done independent from the simulation’s run. This drastically reduces simulation runtime.
The above is a brief summary of some of the main features of the Wallacei engine. We hope it is helpful in highlighting why we believe Wallacei to be a powerful and robust tool for users of evolutionary computation in design. Our aim is to not only allow users to run their evolutionary simulations, but to also help them better understand what is happening behind the scenes, in order to drive them towards making more informed decisions throughout the evolutionary process, including both before and after running the evolutionary simulation.
For more info on how to use Wallacei, we recommend the 8-part video tutorial series on Wallacei X that goes through all of the plugin’s features, from setting up the component, to visualising the results. The tutorial series (as well as other video tutorials), can be accessed through Wallacei’s YouTube page here:
Additionally, there is also the Wallacei Primer, in which the different features of the Wallacei platform are explained in detail, and how the different components function. This, coupled with the video tutorials above, provide a comprehensive understanding for Wallacei. To access the Primer, please click the following link:
We hope you enjoy Wallacei, and find it as useful to your research as we found it to ours. For any questions about using Wallacei, please visit the wallacei forum through the link below and ask away!