It allowed those components that were useful to be duplicated, redone, and rearranged to form higher-order tools. Where the components remained relatively stable, but were remixed, redone, reordered, and otherwise reused - with only slight modification to lock them into their new tool.
We see this with the results of evolutionary modifications to DNA. One of the proteins responsible for multi-cellularity is itself a mashup of 4 or 5 proteins found in single-celled organisms, but where those smaller proteins are repeated, smashed together, and otherwise remixed to form a protein with a new function that was synergistic with the original components. And that synergy allowed for the higher-order complexity associated with multi-cellularity [1]. And once that took off and proteins started to get large, the proteins would themselves be split up into pathways - and then those pathways would get duplicated. Etc. And this is just one mechanism real life has used evolution to scan that underlying space more rapidly than random walks.
This is actually what we do at Serotiny [2] - we don't design novel proteins by sequence (in the 20^300 landscape) but rather by functional domain (in the 20000^5 landscape). And I think there are mechanisms to incorporate that kind of scaling layer into a good genetic algorithm that allow you to traverse short paths by going upwards into the different space, and then coming back down when you need granularity,
And so, I think when going back to the algorithms, if you want to make them pragmatic rather than theoretical, many scales should be addressed simultaneously.
> “DNA is extremely important, but it makes no sense if [it is] not in a cell, in an organism, in an ecosystem.” Other interactions are at play, and this application of algorithmic information cannot capture the extent of that complexity.
Yep.