Rob is certainly correct in pointing out that the typical "Random" function provided by various programming languages returns a pseudo random number. These functions are typically deterministic algorithms and the sequences of numbers they generate will repeat after a finite number of iterations. When true, non-deterministic, sequences are required electronics can be used to convert thermal (Johnson) noise into sequences of numbers that are never expected to repeat.Rob wrote:QED asks the following question about a computer program that “outputs random numbers,” created in the mind of a conscious human being, and compiled on a deterministic device (i.e., computer),
Of course, anyone who has studied computer science knows that contrary to this simplistic and erroneous claim:QED wrote:First you have to understand that there are two separate algorithms involved. To make this clear let's say we want to write a computer program that we will call "A" that writes a program of its own called "B".
You want to be sure that ALL the intellect that goes into A is contained and does not enter the product B. Imagine a very simple model: we write a program that outputs random numbers....
Did any of the intellect we used to construct the program find its way into the pattern? Clearly it didn't, and this demonstrates precisely how there can be containment between the different "intellectual" entities involved in the process.
Any computer scientist is well aware of this fact, and would never make the fallacious claim that QED does above. Any computer scientist worth his paycheck is well aware of the serious consequences of using a poorly engineered random number generator when it comes to security concerns.Skiena wrote:Unfortunately, generating random numbers is a task that looks a lot easier than it really is, primarily on any deterministic device. Von Neumann [Neu63] said it best: “Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin.” All we can hope for are pseudorandom numbers, a stream of numbers that appear as if they were generated randomly.
Clearly, this example is logically flawed both in fact and truth; it is a fallacious argument because QED is attempting to base his conclusion upon the false premise that a human can write a computer program on a deterministic device (i.e., computer) and generate a truly random input rather than a pseudorandom input. This premise is false as it is impossible; therefore, the conclusion does not follow. Both program A and program B are generated within the creative mind of a human, and subject to the limitations of both the human mind and the deterministic device (i.e., machine) the program runs upon, which is also a creation of human mind. A pseudorandom-number generator is not a true random number, and cannot be made one by the simple magical fact of QED’s defining it as such. It is nothing more than a mind created deterministic algorithm that returns numbers that “look” statistically random.
There is never any so-called “containment between” program A and program B, as both are part of a whole system created by human mind.
And all of this tells us only that humans are clever enough to fool themselves that pseudorandom-number generators generate truly random numbers, and intelligent enough to create deterministic devices to run their clever programs upon.
It tells us nothing about how they got so clever (or foolish) to both design a deterministic machine (computer), write a deterministic algorithm to generate pseudorandom-numbers as input for another computer program, yet still fool themsemselves despite all this cleverness into believing these are truly random numbers, and claim the this tells them something fundamentally about the universe.
I think this whole exercise tells us more about the little "i"ntelligent designer than any big "I"ntelligent Designer.
Interestingly though, I still disagree with Rob on this question of the containment of intellect in the case of the pseudo random sequence. I have often created my own pseudo random sequences in hardware, from long shift-registers and "Exclusive OR" gates as well as doing pretty much the same in software. Now let's say I know nothing about the design of radio antennas. But I need a good design for one...
Well, given that I know I want it to radiate the maximum amount of power for a given signal going in to it, I can always Evolve one using Darwin's insights about nature. All I need to do is write the appropriate computer program "A" that causes a program "B" to evolve -- involving random mutations to its expression genes using one of my pseudo random generators. Either by simulation or by real-world measurement (robot arms twisting lengths of wire or whatever) the evolving antenna design of program "B" eventually reaches an optimal performance level and hey presto! I've got a great little aerial!
Just a minute though -- when I chose the XOR taps along my shift register, was I unwittingly transferring knowledge about what constitutes a good antenna? Maybe I didn't know that a quarter wave is a significant length, but the evolved product emerging as a result of my pseudo random generator design certainly finds this out.
I'm pretty sure then that there is total containment of intellect here -- even with psuedo random numbers. But if Rob wants to keep on nit-picking this to death, let's just say we use thermal noise instead. Now that the source of random mutation is truly random is there any other path through which the intellect of the engineer could get into the evolved product?