Всяка сграда, подложена на еволюция, предполага и съответен алгоритъм, чрез който да бъдат генерирани бъдещите й конфигурации и състояния. Един такъв алгоритъм, способен да решава оптимизационни проблеми и да генерира изненадващи решения се казва генетичен алгоритъм (GA). Той представлява население от определен брой поколения, съдържащи съответен брой решения, като всяко следващо поколение се ражда при кръстосването на гените на избрани родители от предното поколение. Организмите от първото поколение обикновено се генерират чрез произволни стийности, до работещо решение се стига при изпълнението на самия генетичен алгоритъм.
  Основните части на един класически генетичен алгоритъм са:
  1. Функция за генериране на организмите от първото поколение.
  2. Функция, оценяваща решенията.
  3. Функция за избор на родителите на организмите от следващото поколение.
  4. Функция за рекомбинация (crossover), извършваща смесването на генетичния материал.
  5. Функция за мутация.