Online Book Reader

Home Category

Complexity_ A Guided Tour - Melanie Mitchell [55]

By Root 583 0
sometimes vitriolic, debate.

The idea of creating artificial life is also very old, going back at least two millennia to legends of the Golem and of Ovid’s Pygmalion, continuing in the nineteenth-century story of Frankenstein’s monster, all the way to the present era of movies such as Blade Runner and The Matrix, and computer games such as “Sim Life.”

These works of fiction both presage and celebrate a new, technological version of the “What is life?” question: Is it possible for computers or robots to be considered “alive”? This question links the previously separate topics of computation and of life and evolution.

You can ask ten biologists what are the ten key requisites for life and you’ll get a different list each time. Most are likely to include autonomy, metabolism, self-reproduction, survival instinct, and evolution and adaptation. As a start, can we understand these processes mechanistically and capture them in computers?

Many people have argued a vehement “no” for the following reasons:

Autonomy: A computer can’t do anything on its own; it can do only what humans program it to do.

Metabolism: Computers can’t create or gather their own energy from their environment like living organisms do; they have to be fed energy (e.g., electricity) by humans.

Self-reproduction: A computer can’t reproduce itself; to do so it would have to contain a description of itself, and that description would have to contain a description of itself, and so on ad infinitum.

Survival instinct: Computers don’t care whether they survive or not and they don’t care how successful they are. (For example, in a lecture I attended by a prominent psychologist, the speaker, discussing the success of computer chess programs, asserted that “Deep Blue may have beat Kasparov, but it didn’t get any joy out of it.”)

Evolution and adaptation: A computer can’t evolve or adapt on its own; it is restricted to change only in ways specified ahead of time by its programmer.

Although these arguments are still believed by many people, all of them have been claimed to be disproven in one way or another in the field of artificial life, whose purview is the simulation and “creation” of life on computers. In this chapter and the next I focus on those issues most closely related to Darwinism—self-reproduction and evolution.

Self-Reproduction in Computers

The self-reproduction argument is the most mathematical one: it states that self-reproduction in a computer would lead to an infinite regress.

Let’s investigate this issue via the simplest version of the computer self-reproduction problem: write a computer program that prints out an exact copy of itself and nothing else.

I’ve written the following programs in a simple computer language that even nonprogrammers should be able to understand. (It’s actually a pseudo language, with a few commands that most real languages wouldn’t have, but still plausible and thrown in to make things simpler.)

Here’s a first attempt. I start out with the name of the program:

program copy

Now I need to add an instruction to print out the name of the program:

program copy print("program copy")

The print command simply prints on the computer screen the characters between the first and last quotation marks, followed by a carriage return. Now I need to add an instruction to print out that second line:

program copy print("program copy") print(" print("program copy")")

Note that, since I want the program to print out an exact copy of itself, the second print command has to include the four spaces of indentation I put before the first print command, plus the two quotation marks, which are now themselves being quoted (the print command prints anything, including quotation marks, between the outermost quotation marks). Now I need another line to print out that third line:

program copy print("program copy") print(" print("program copy")") print(" print(" print("program copy")")")

and so forth. By now you can probably see how this strategy, in which each command prints an exact copy of the command preceding

Return Main Page Previous Page Next Page

®Online Book Reader