Во время роста дерева в проекте от кончика сначало отрастает побег влево, потом вверх, потом вправо и вниз(если геном предполагает рост в этом направлении).
В следующем проходе, соответственно, сначала будет расти побег, который с левой стороны, затем верхний, правый и нижний.
И здесь может возникнуть конфликт. Например, на рисунке, сначала левый росток дал новый побег, а для верхнего, который хотел в эту же клетку дать новый побег, уже нет места.
Если бы в коде в начале шёл побег вверх, потом влево, то дерево уже бы росло по другому.
Переписал код роста, что бы последовательность побегов была случайной и попробовал на сохранёных геномах.
В большинстве случаев конфликта не возникает, но иногда вид дерева становится немного случайным.
Так дерево выглядит с заданной последовательностью
А так с новым кодом.
И ещё один пример.
С заданной последовательностью
и варианты со случайной последовательностью
Не знаю, хорошо это или плохо.
Возникает некоторое разнообразие вариантов роста при одном и том же геноме.
С другой стороны, сложнее анализировать эволюцию.
Деревья также растут немного по разному в зависимости от препятствий по бокам и наличия веток сверху, перекрывающих свет.