I have recently been in a discussion online with a friendly, intelligent guy who just so happens not to accept the theory of evolution and instead believes that intelligent design is the best explanation for the diversity of life on the planet. One of the main points of contention between us is the idea of Specified Complexity, or more specifically whether specified complexity could have evolved naturally. He says no, I say yes.
Now, if you have never heard the term specified complexity before let me take a moment to describe what it is. The term, as it is being used here, was coined by American mathematician, philosopher and theologian, William Dembski. Dembski is a proponent of intelligent design and one of the senior fellows at the Discovery Institute’s Center for Science and Culture. Now its been argued that the way in which Dembski sometimes uses the term is somewhat circular, but here is how he defines the concept in his book Intelligent Design:
Life is both complex and specified. The basic intuition here is straightforward. A single letter of the alphabet is specified without being complex. A long sequence of random letters is complex without being specified. A Shakespearean sonnet is both complex and specified.
So in other words, if the information is specific rather than random, and complex rather than simple, then it can be said to have specified complexity. Or, to put it yet another way, the guy I have been talking to online defined specified complexity as a “precise arrangement of characters that are set in a very certain manner out of all possible different but equal improbable combinations.” Right, that’s enough definitions, let’s move on. Now Dembski argues that specified complexity is a big problem for the theory of evolution.
How does the scientific community explain specified complexity? Usually via an evolutionary algorithm. … But what is the relevant evolutionary algorithm that drives chemical evolution? No convincing answer has been given to date.
This is essentially the same question my online debater asked me, and my answer was the same one that the scientific community gave Dembski. Random mutation and natural selection. But, my online sparing partner immediately retorted, the odds of something with specified complexity evolving by chance are astronomical, there is no way that it could be caused by a random process. Well yes, I agreed with him, the odds are astronomical, and if chance and random mutations were the only things at work here then I would agree with you, but they are not. Natural selection is not a random process and the results it produces are not random either.
Imagine you go to the shops and buy some M&Ms. You pick the bag at random from the shelf and when you get home you pour them into a bowl. The M&Ms in the bowl are a random mix of different colours. But now you select out all the red ones. Is the outcome, a handful of red M&Ms, random? No, it is a specific non-random outcome, even though you started with a random arrangement of M&Ms. Selection is not random.
In order to try and demonstrate that random mutations and natural selection can produce something that is both specific and complex, I pointed him to Richard Dawkins’ Weasel Program. This program, originally introduced in Dawkin’s book The Blind Watchmaker, uses the twin processes of random mutations and selection to produce that complex and specified Shakespearean sonnet mentioned by Dembski…or at least a single line from Hamlet anyway, namely “Methinks it is like a weasel“.
The program works like this. First a random string of characters is generated.
WDLTMNLT DTJBKWIRZREZLMQCO P
This is then copied 100 times, with each letter in each copy having a 5% chance of randomly mutating into a different letter. So you might get something like this:
WDLTMNLT DTJBSWIRZREZLMQCO P
From these 100 strings of letters and spaces the one that matches the target phrase the best is selected. This is then itself copied 100 times and the whole process starts again. Using this process it is possible, in surprisingly few generations, to go from completely random text to a line from Shakespeare.
Generation 01: WDLTMNLT DTJBKWIRZREZLMQCO P
Generation 02: WDLTMNLT DTJBSWIRZREZLMQCO P
Generation 10: MDLDMNLS ITJISWHRZREZ MECS P
Generation 20: MELDINLS IT ISWPRKE Z WECSEL
Generation 30: METHINGS IT ISWLIKE B WECSEL
Generation 40: METHINKS IT IS LIKE I WEASEL
Generation 43: METHINKS IT IS LIKE A WEASEL
All of which is a really long winded way of saying that, at the weekend, I decided to write my own version of Dawkins’ weasel program that I have, for reasons best left unexplained, decided to call “Methinks it is like a Badger?”
Now my version has a number of differences to the original, aside from the choice of mammal. Firstly, you can pick your own phrase to match against, and the choice of possible characters is not limited to just 26 capital letters, but instead makes use of 90 different characters, including both upper and lower case letter, numbers and punctuation marks. Secondly, rather than 100 letter strings per generation my program only has 30, due to processing limits of the program I wrote it in more than anything else. Thirdly, each string of letters can only have a maximum of a single mutation per generation, rather than a 5% mutation rate for each character. Fourthly, the top six matches are copied over to the next generation, meaning that if only three of the strings match in any way then three non-matching strings make it to the next generation as well. And lastly, my strings don’t start off looking like this:
WDLTMNLT DTJBKWIRZREZLMQCO P
But like this:
And all 30 are completely different. In short, I wanted to make the odds of getting the target phrase by pure chance as long as possible. And how long are those odds I hear you ask? Well if we take a string length of 29 characters, the length of the default phrase “Methinks it is like a Badger?“, then, with 90 different possibilities for each character, that means there are 4.71 x 1056 possible character combinations. Or in other words that’s this many combinations of letters and symbols:
That’s a lot of combinations. And if the odds of getting one character correct by chance are 1 in 90, or around 0.01, then what are odds of getting all 29 characters correct by chance? Well that would be 2 x 10-57, or, brace for it:
Now that’s a very small number. Let’s put those numbers in perspective shall we. The estimated number of stars in the universe is 1029, or:
That’s a big number, but no where near the size of 4.71 x 1056. And the odds of winning the UK lottery are 1 in 13,983,816 (seriously why would anyone play??). The odds of winning it five times are 1.87 x 10-36. That’s:
Small, but not 2 x 10-57 small. Anyway, enough of putting big numbers of the screen just because I think they look cool. The point is that with just random mutations and chance alone there is pretty much no way that you will ever get the required phrase. And yet if you throw selection into the mix then, with my program, it takes around 900 generations to reach the required target. This is the power of selection, and shows how random mutations AND non-random selection can produce specified complexity.
Anyway, here’s my program, enjoy.