Figure 1. The flowchart of ParetoCSP algorithm. It starts by generating $$ n $$ random crystals and assigning them an age of $$ 1 $$, where $$ n $$ denotes the population size. One complete generation then goes through the following steps: calculating energy of the structures and fitness, selecting parents, performing genetic operations, and updating the age. After a certain threshold of $$ \mathcal{G} $$ generations, the lowest energy structure from the multi-dimensional Pareto front is chosen and further relaxed and symmetrized to obtain the final optimal structure. The genetic encoding is shown in the lower right corner of the flowchart. It contains lattice parameters $$ a $$, $$ b $$, $$ c $$, $$ \alpha $$, $$ \beta $$, and $$ \gamma $$, the space group $$ S $$, the wyckoff position combination $$ W_i $$, and the atomic coordinates $$ R_i $$ of atom indexed by $$ i $$.