Joined: May 2007
|Quote (MichaelJ @ Sep. 06 2009,18:01)|
|Quote (midwifetoad @ Sep. 06 2009,09:49)|
Someone propose the following thought experiment to Gil:
|If the blind-watchmaker thesis is correct for biological evolution, all of these artificial constraints must be eliminated. Every aspect of the simulation, both hardware and software, must be subject to random errors.|
Of course, this would result in immediate disaster and the extinction of the CPU, OS, simulation program, and the programmer, who would never get funding for further realistic simulation experiments.
Create a simulation that runs on a virtual machine. I'm sure he understands the concept. The virtual machine includes the OS, hardware drivers, and programs. All of this will reside in memory, but this is the only feasible way to run his kind of simulation.
To make it possible, the virtual machine would be somewhat less complex than Windows. Perhaps a few thousand bytes. I think the early Apple and Radio Shack computers implemented Basic in under 4K. I think you could easily make a VM that requires much less. A VM would consist of an interpreter and code, and both would be subject to mutation.
Since abiogenesis is not the issue being explored, the starting VM would be a self replicator. It would divide, producing imperfect copies of itself. The division and mutation process could affect both "children."
The VMs would exist in a sea of memory, perhaps a turbulent sea that sloshes around, separating the individuals so replications don't always sit on other individuals. Although this could happen. Perhaps individuals need a virtual membrane.
My first thought is that something like this has probably already been done. I don't follow the details of the various simulation programs, but I'd be surprised if someone hasn't tried this.
My second thought is that Gill wouldn't accept this, because the "real" OS isn't affected.
It does remind me of an related project. The GAs are based around machine code. You started with a population random byte arrays and the processor attempts to read the byte string as instructions.
Usually you have a target (such as finding the square root of a number loaded into a register) but you could mix this with another game from the eighties "Core War" where each individual attempts to kill the other members of the population by moving around memory and putting stop codes in other individual's code. You would change the code by putting in random mutations.
In this scenario you don't need to code the reproduction code as the programs should develop the ability to reproduce to protect the "genome" against being killed by competitors or by random mutations
IMHO much too sophisticated and not edible to GD, a machine emulating a machine?
When I try to visualize an entirely mechanical computing machine instead of the sophistication of electronic devices with operating systems and no means of actually observing their operation, I see a machine that would eliminate all of the objections people like GilD might come up with?
A mechanical device hard-coded to run just the program it was built for. (Or a little more flexible by using a punched tape loop to store the program?)
The fundamental choice to be made, given the available information, is not whether chance provides a better explanation than design, but whether natural laws provide a better explanation than a design.