Getting With the Program
by BradfordIn the blog entry Indicators of Design TT commenter Rock stated:
Computer scientists have known for sometime, at least for 60 years, that simple systems are capable of universal computation, given only as much “programming” as is required by a statement of initial conditions, an adumbration (“netlist”) of the material properties of the computing elements, and a dynamical law over all.
I found an Uncommon Descent blog entry I had come across some time ago and subsequently forgotten. Gil Dodgen wrote Writing Computer Programs by Random Mutation and Natural Selection. There were a number of interesting comments and numbered among the commenters was at least one regular TT commenter.
A writer of scientific software wrote: "In any case, any programmer relying on Darwinian processes to write better code would experience rapid, unnatural de-selection."
Mark Frank wrote:
Natural selection requires that each step be functional but it does *not* require it to be step towards a predetermined goal. That’s the whole point.
That strikes a cord with me although Frank might not recognize the timbre of it. It seems as if predetermined goals are exactly what theorists incorporate into their thinking where life's origin is concerned. Why would sequences be selected? Because they confer enzymatic properties. But enzymes are natural team players needing more than substrates. They need systems within which their function acquires biological intelligibility.
And what do you make of this character?
What about Conway’s game of life? There is no externaly imposed “fitness function”, just a few very simple rules that govern the interaction between neighboring cells. Yet I believe it has been shown that there are configurarions that increase in complexity forever.
And this professional riposte:
The same might be said of the Mandelbrot set, or the spread of frost across a window. The complexity seems to increase without limit, but in fact it is a mirage. These are all contingent situations, the game of life proceeds from a few simple rules and the initial conditions, and the results never differ, given the same starting point. There is never an increase in useful (specified) information. The crystal gets larger, but nothing truly informative ever occurs. Novelty without function is noise. The set of truly functional novel situations is so small in comparison with the total possible number of situations that they will never occur, which is the point of the original post.
Just provoking thought TP.



















September 21st, 2008 at 12:56 am
That was the main point of my essay, that combinatorics produce such huge numbers so quickly and totally swamp islands of function. My 66-character program, assuming only the 26 lower-case letters, produces 2.4 x 10^93 possible outcomes, or the number of subatomic particles in 10 trillion universes.
In fact, the C programming language is case sensitive and uses all 92 characters on a standard keyboard, which produces 4 x 10^129 possible combinations in a 66-character program, or the number of subatomic particles in 10,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 universes.
Evolutionary biologists put blind faith in chance and necessity and arbitrarily invoke "deep time" to make the impossible imaginarily possible. The problem is that deep time is not actually all that deep. There are only about 10^17 seconds in five billion years.
Hard numbers put things in perspective. The probabilities are not a close call; they are catastrophically lopsided.
Comment by GilDodgen — September 21, 2008 @ 12:56 am
September 21st, 2008 at 6:32 am
Hmmm, I seem to recall Gil Dodgen once claimed:
Yes, and if you really want to simulate an earthquake with computer programs you have to shake the computer.
Has it occurred to anyone that computers (as we know them) are perhaps a lousy metaphor for life?
Comment by Raevmo — September 21, 2008 @ 6:32 am
September 21st, 2008 at 8:46 am
I suppose then if we were to take random sequences of nucleotides or amino acids, there is no reasonable chance that they would be capable of biological function. Is that correct?
Comment by Zachriel — September 21, 2008 @ 8:46 am
September 21st, 2008 at 10:31 am
Think of the human voice, then think about the Nyquist Theorm and subsequent analog to digital conversion. If you can get a fairly accurate digital representation of analog signal then you could get an analog earthquake into digital representation and eliminate most if not all the noise depending on your resolution. Anything natural would be considered analog while anything in digital form is symbolic, DNA is as discrete as binary code and isn't continuous like analog. Its all logic based anyhow, algorithms are algorithms and computers are flexible enough unlike a simple calculator ie.computer science 101 here. given they have an architecture and platform allowing you to program any algorithms you like. Software, ie.complex algorithms, be it even evolutionary algorithms are feeding off absolutely designed systems, btw.
Comment by computerist — September 21, 2008 @ 10:31 am
September 21st, 2008 at 10:51 am
computerist:
It gets ever harder to avoid design inferences. Just chemistry? Yeah, that plus digitally encoded, logic based genomes. Looks like McKay's software fed off designed systems.
Comment by Bradford — September 21, 2008 @ 10:51 am
September 21st, 2008 at 11:50 am
Bradford:
I get it now. It seems ages ago since I was banned from UD for failing the sycophant test.
About the Game of Life: I believe that is capable of universal computation.
Back to the presence. Gil's analogy between C programs and DNA fails for a very simple reason: the ratio of functional to nonfunctional mutations is astronomically (many many orders of magnitude) much higher for DNA than for C programs. If you think about it, that makes a lot of sense given that the C programming language was designed and DNA wasn't. You wouldn't want a C program with a small syntax error to compile to executable code that performs some unintended function.
Comment by Raevmo — September 21, 2008 @ 11:50 am
September 21st, 2008 at 12:06 pm
Just a quick correction, a syntax error would generate syntax errors and would not compile. Semantic errors on the other hand would compile but you would get unexpected results unoticed by the compiler. If you were allowed to run a program with a bunch syntax errors then your likely to overwrite existing memory that is allocated for different processes, the results as you would imagine would be disastrous.
Comment by computerist — September 21, 2008 @ 12:06 pm
September 21st, 2008 at 12:15 pm
Raevmo:
The DNA mutation rate would be much greater had it not been designed with effective error correction mechanisms staving off genomic meltdown.
Comment by Bradford — September 21, 2008 @ 12:15 pm
September 21st, 2008 at 12:36 pm
"Hello World" in machine language (8086) can be as small as 26 eight-bit bytes, including the 11 bytes for the message. For the non-message part of the program, and making the big assumption that it is the only conceivable functional program of that size, we have 1 in 64^(26-11) or one in a couple thousand moles.
Messages can be as short as a single word, which can be as short as a single letter or two. So all we really need is the basic 11-byte machine code. We can show that the message itself can evolve to longer lengths, given suitable selection criteria.
Comment by Zachriel — September 21, 2008 @ 12:36 pm
September 21st, 2008 at 12:42 pm
Zachriel:
Can you show how messages originate and evolve without a designer first establishing the convention by which functional symbolism is enabled?
Comment by Bradford — September 21, 2008 @ 12:42 pm
September 21st, 2008 at 12:42 pm
computerist:
That's why I said you "wouldn't want a C program with a small syntax error to compile." I write evolutionary simulations quite a lot (usually in C++), so give me a little credit here.
Bradford:
But you agree with me that the analogy between a C program and DNA has some major problems, as I indicated above?
No surprise that you assert that DNA error correction mechanisms have been designed. But let me ask you this. It seems that the genetic code is close to optimal by several criteria, such as minimizing the impact of mutations on the functionality of proteins (and perhaps even to minimize transcript length in case of frame shifts). It seems to me this probably evolved before very sophisticated error correction mechanisms evolved. If the designer had put in place some excellent error correction early on, there would have been no advantage to a code which limits the effects of mutations. Make sense?
Comment by Raevmo — September 21, 2008 @ 12:42 pm
September 21st, 2008 at 1:00 pm
That wasn't the test proposed.
Comment by Zachriel — September 21, 2008 @ 1:00 pm
September 21st, 2008 at 2:46 pm
It's an imperfect analogy.
Here is a quote from Mike relevant to an optimal code:
Funneling outcomes and the stop codon effect are basic strategies that should be in effect, from a design perspective, even with excellent error correction. They seem to me to be complementary aspects of the same strategy- ensuring genomic integrity while allowing for genomic changes.
Comment by Bradford — September 21, 2008 @ 2:46 pm
September 21st, 2008 at 3:01 pm
Hi Bradford,
In the opening post you wrote…
…after introducing the Mandelbrot Set to the discussion.
Thank you for the plug and the opportunity to discuss one of my favorite subjects, the Mandelbrot Set, and its implication to the ID debate.
First, being a programmer, allow me to inject my spin on things. Looking at things starting with human readable "C programming language" is a strawman and silly. While C is more cryptic than most, its purpose is to be readable by humans, not machines. For example, the COBOL language was an attempt to be readable by non-programming executives. ADA was a DOD inspired language that was so tightly structured that a successful compilation meant a large bulk of logic errors were eliminated.
I suggest machine language would be the appropriate level for comparison to DNA.
Historically machine language have had OPCODES. The simpler machines (RISC) had 8 bit opcodes. The Genome machine language has 3 bit opcodes.
It would be quite possible to create a 4 bit OPCODE machine language to be closer to the DNA situation. The problem with doing this would be hardware and/or acceptance by the target audience.
Putting together a 4 bit CPU chip is well within the state-of-the-art but still expensive. Manufacturing billions of them would be very expensive and unneccessary. It would be unneccessary because everything could be simulated in a larger computer. There would be no reason to actually build hardware.
However, this gets back to the situation of where things like Conway's Game of Life are repeatable. You see, even most ID proponents cling to the notion of true randomness. Or more appropriately, non-deterministic behavior. Game of Life and crystal growth are generally repeatable and deterministic.
But what about the Mandelbrot Set?
Here is a link to a You Tube zoom (6 minutes) of a Mandelbrot Set goes to 10^-125
http://video.google.com/videoplay?docid=87164000416711705&ei=soDWSIj1CZmSrAL84Y2hBg&q=Mandelbrot&vt=lf
All of this complex chaos comes from the equation Z -> Z^2 + C
Where "Z" is an iteration variable and "C" is a complex number. The colors indicate how quickly the iterations diverges to infinity where black indicate areas that does not diverge.
As strange as it may sound, the Mandelbrot Set is a one dimensional set of numbers. Granted the numbers are complex (with real and imaginary components) but in fields like physics and electrical engineering complex numbers have long been accepted as corresponding to a physical quantity.
In this way, in three dimensional phenomenon (e.g. electrical field) is described by three complex numbers.
So imagine our universe as a kind of Mandelbrot Set in three complex dimensions instead of just one. Now, add to that the idea that an underlying algorithm that is non-deterministic. This would make for a system that would appear very chaotic, yet designed.
Note, the three dimensions in the algorithm would be interrelated thus cubing (X^3) the chaos content. Adding the fourth dimension, time, raises the chaos content to the fourth power (X^4).
In Mankowskian (Space-time) geometry, time is the fourth complex dimension with the difference of time being orthogonal to space in complex orientations (i.e. time is imaginary when space is not and vice versa). This results in the Mankowskian equation (note, in this configuration time is defaulted to real and x,y,z have the square-root of -1 factor)…
s^2 = t^2 – x^2 – y^2 – z^2
Where "s" is equivalent to clock time and t,x,y,z are the four space-time dimensions. This equation explains how the Twin Paradox isn't really a paradox at all, but just a geometry problem. From this Mankowskian equation one can derive the curved Swartzchild equation and its infamous Swartzchild radius. In short, this equation is the basis for understanding General Relativity.
With this insight, now imagine a four dimensional space-time Mandelbrot Set. If you think about it, space-time must be static because time is internal to the space-time, not something outside of it. By definition a non-static (dynamic) system changes over time.
To conscious beings trapped inside the universe, it would look dynamic, chaotic, yet somehow designed with the past being strangely linked to the future.
In such a universe, concepts like "randomness" start to lose their meaning.
Comment by Thought Provoker — September 21, 2008 @ 3:01 pm
September 21st, 2008 at 3:10 pm
I messed on the Mandelbrot link. Here is the one I meant to include…
http://www.youtube.com/watch?v=G0nmVUU_7IQ
Comment by Thought Provoker — September 21, 2008 @ 3:10 pm
September 21st, 2008 at 5:27 pm
You're welcome. I read the comment with interest. TP concluding:
I know that critics and anti-theists can think that the universe described fits in nicely with their worldview but oddly enough I feel the same way when I read this. I realize that this is one of the advantages of your "quantum quackery" and that you have alluded to this before. It also reminds me that what we do not know exceeds that which we know.
Comment by Bradford — September 21, 2008 @ 5:27 pm
September 21st, 2008 at 10:56 pm
[...] at Telic Thoughts Bradford resurrected a discussion based on my UD essay, Writing Computer Programs by Random Mutation and Natural Selection. In [...]
Pingback by Mathematics and Darwinism — Plus a Math Problem to Solve | Uncommon Descent — September 21, 2008 @ 10:56 pm
September 22nd, 2008 at 8:33 am
Your claim is of the form that a functional program cannot be randomly generated. Based on your reasoning, I suppose that if we were to take random sequences of nucleotides or amino acids, there is no reasonable chance that they would be capable of biological function. Is that correct?
Comment by Zachriel — September 22, 2008 @ 8:33 am
September 22nd, 2008 at 8:49 am
As regards "Hello World" in 26-bytes, it has not escaped notice that the program immediately suggests a possible copying mechanism for the genetic material.
Comment by Zachriel — September 22, 2008 @ 8:49 am
September 23rd, 2008 at 10:18 pm
Ahem. What you should have said was "the C programming language was designed and I think DNA wasn't."
You really must be more careful.
Comment by kornbelt888 — September 23, 2008 @ 10:18 pm
September 24th, 2008 at 3:54 am
Last I checked, Dariwians know for a fact it wasn't designed. It makes you wonder how they stumbled onto a place such as Telic Thoughts in the first place.
Comment by computerist — September 24, 2008 @ 3:54 am
September 24th, 2008 at 10:10 pm
When someone can demonstrate a digital coding and replication system with error correction emerging, robust enough to survive and evolve from such a "simple system", wake me up.
Comment by kornbelt888 — September 24, 2008 @ 10:10 pm
September 28th, 2008 at 9:23 am
Well, we know that GilDodgen saw this thread, but he appears to have returned to the safety of the cloister known as Uncommon Descent.
Comment by Zachriel — September 28, 2008 @ 9:23 am
December 13th, 2008 at 10:46 am
* Correction: The base of the exponent should be 256, not 64. The program is 11 bytes long, so it should be 256^11. If we include the end-string character as part of the program, then we have 256^12 equivalent to the molecules in a couple of tons of water, still somewhat less than 10,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 universes.
Comment by Zachriel — December 13, 2008 @ 10:46 am