Sun, 18 Nov 2007
Fibonacci Binary Genes
« Cigars and Antigravity | Main | Darwin at Architecture » Posted by at 6:49 PM in Code
In this episode of the podcast I talk about a nice approach to a genetic code for the system, not based on bytes but right down to the bits. It's all about ones and zeros in computers, so this is the level of our genetic instructions.
We can always draw a binary tree where each node has two subnodes, except for the leaves of the tree. Then every bit we read from the gene can make us step left or right as we ascend the tree to reach a leaf. When we reach a leaf, we shout the word that's "written on it". Problem with this approach is that one bit flip changes the meaning of everything that follows.
Instead we go for a delimiter approach where 00 becomes a delimiter. Then you can look at a string of bits as a string of words separated by pairs of zeroes. So this string of bits 001010010101010011100110101101 becomes 00 101 00 1010101 00 111 00 110101101. remove the delimiters and you get the words: { "","101","1010101","111","110101101" }.
The number of possible words of length N is the the (N+1)th Fibonacci number. The Fib sequence is 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,... where each number is the sum of the two that preceded it.
Not only that, but the frequencies of the different words are very divergent. Long words are rare, of course.
Somehow these words have to come to "mean something" to the elements of the tensegrity which are growing during the embryology phase. Perhaps some infrequent words would mean "replicate" and some frequent words would mean "grow" or "connect". Play with the binary code and the delimiters and let me know what you think.
Technorati Tags: evolution tensegrity binary genes fibonacci