whatta said:
So you only need some physical noise generator attached to COM port, and voila - you now can write a program with unpredictable outcomes. Yay, I guess AI problem has just been solved!
So what is "we"? What is entity breaking the rules? A spirit? A soul?
A random noise generator attached to the COM port, PCI bus, or other input is a random input, but does not produce unpredictable outcomes. The reason being is that given input X, the program will execute instruction Y. While it may not be possible to determine ahead of time what X will be, it is possible to determine ahead of time the complete X to Y mapping, and therefore completely determine what the computer will do under all possible inputs.
Now, if instead of the noise generator being attached to some input, it was attached to an instruction generator so that at random times, random instructions were created, then I would start to agree with you that we would have an indeterministic system. But, I would argue that this was neither intelligence nor free will, but this is will take more thought on my part.
As an aside, a person did that very experiment. An FPGA is an electronic device that is kind of a cross between hardware and software. It is a hardware device, but it is possible to write software to configure that hardware. (For example an FPGA can have 100,000 hardware "gates". These gates can be wired up in a huge number of ways. In some respects these gates can be considered brain cells, but that is another story.)
Anyway, this person hooked up a random number generator to program the FPGA. He then had a set of inputs and desired outputs (the function the FPGA was to perform). After the random generator was run, the program was checked to ensure it functioned correctly. Any results that were not correct were reprogramed. The system had a means to "learn what was correct and what was incorrect and adjust accordingly.
The result was the ultimate program was about 20% smaller than what would have been done by hand. The program also ran faster than expected. However, no two devices produced the exact same program, and the program ended up using features of a particular device. For example, when integrated circuits are made, each transistor may be slightly bigger or smaller than average. This results is slight differences in speed - only a nanosecond or less - between one device and the next. When you program the FPGA, you do not know the exact differences between speeds, so you always program to the specification (which is the slowest the transistor will work). However, the random programmer does not care about the specification, it cares about the device itself.
Therefore, there is a level of indeterminacy in this system. It does not quite reach the level of free will, but it is an step in that direction.
- Sid1138