Showing posts with label virtual machine. Show all posts
Showing posts with label virtual machine. Show all posts

Thursday, April 30, 2020

What is artificial life?

Thomas S. Ray

As I said in an earlier post, artificial life is a branch of computer engineering that builds programs that emulate the behavior of living beings: artificial living beings, or colonies of living beings, such as anthills or hives. Since I have worked in this field, I’ll tell here a little about artificial life.
In 1991, Thomas S. Ray built a program he called Tierra, where a series of artificial organisms evolved and competed for the available resources in the computer. These resources were essentially the computer memory, which was limited, and execution time. The objective of each individual was to copy itself into a piece of available memory. When copied, however, errors (mutations) could be introduced, so that the organisms in question were able to evolve.
The execution took place in a virtual machine equipped with a simple machine language, with 32 different instructions. The individuals were programs made of instructions written in the machine language. Some basic instructions were relatively complex, such as asking the operating system to allocate a certain space. Although very simple, the original program was able to copy itself (with mutations) in the allocated space. The execution of individuals is carried out in parallel, i.e. all are executed together, at the same time.