"01 - Code of the Lifemaker" - читать интересную книгу автора (Hogan James P)

to journey at intervals back to the places whence they had come, to return,
as it were, to their "spawning grounds." But this method of reproduction
had its problems and posed new challenges to the evolutionary process.

The main problem was that an individual could deliver only half its genome
to the factory, after which the Supervisor would have to store the
information away until another robot of the same type as the first happened
to show up with a matching half; only then could the Supervisor pass a
complete copy to its Scheduler. If, as frequently happened, the Supervisor
found itself saturated by a peak workload during the intervening period, it
was quite likely to delete the half-subfile and allocate the memory space
to other, more urgent things—bad news for the Fred that the data had come
from, who would thus have enacted the whole reproductive ritual for
nothing. The successful response to this problem came with the appearance
of a new mode of genetic recombination, which, quite coincidentally, also
provided the solution to an "information crisis" that had begun to restrict
the pool of genetic variation available for competitive selection to draw
on for further improvement.

Some mutant forms of robot knew they were supposed to output their
half-subfiles somewhere, but weren't all that sure, or perhaps weren't too
particular, about what they were supposed to output it into. Anything with
the right electrical connections and compatible internal software was good
enough, which usually meant other robots of the same basic type. And since
a robot that had completed its assigned tasks was in a receptive state to
external reprograming, i.e., ready for fresh input that would normally come
from the factory system, an aspiring donor had little trouble in finding a
cooperative acceptor, provided the approach was made at the right time. So
to begin with, the roles adopted were largely a matter of circumstance and
accidental temperament.

Although the robots' local memories were becoming larger than those
contained in their earlier ancestors, the operating programs were growing
in size and complexity too, with the result that an acceptor still didn't
possess enough free space to hold an entire "How to Make a Fred" subfile.
The donor's half, therefore, could be accommodated only by overwriting some
of the code already residing in the acceptor. How this was accomplished
depended on the responses of the programs carried inside the various robot
types.

In some cases the incoming code from the donor was allowed to overwrite
entire program modules inside the acceptor, with the total loss to the
acceptor of the functions which those modules controlled. This was usually
fatal, and no descendants came into being to repeat such mistakes. The
successful alternative was to create space by trimming nonessential code
from many modules, which tended to leave the acceptor robot with some
degradation in performance—usually manifesting itself as a reduction in
agility, dexterity, and defensive abilities— but at least still
functioning. The sacrifice was only temporary since the acceptor robot
would be reprogramed with replacement modules when it delivered its genetic