protecting the return on the investment.
With defects and deficiencies of every description appearing somewhere or other,
it was inevitable that some of the organisms would exhibit partial or total
communications breakdowns. Factory Seventy-three, built without radio
facilities, was started up by programs carried overland from Sixty-six. None of
its robots ever used anything but backup mode, and the factories that it spawned
continued the tradition. But this very fact meant that their operating ranges
were extended dramatically.
So the “defect” turned out to be not so much of a defect after all. Foraging
parties were able to roam farther afield, greatly enlarging their catchment
areas, and they frequently picked up as prizes one or more of the territories
previously protected by geographical remoteness. Furthermore, selective
pressures steadily improved the autonomy of the robots that operated in this
fashion. The autodirected types, relying on their comparatively small, local
processors, tended to apply simple solutions to the problems they encountered,
but their close-coupled mode of interaction with their environment meant that
the solutions were applied quickly: They evolved efficient “reflexes.” The
teledirected types, by contrast, tied to the larger but remote central
computers, were inclined to attempt more comprehensive and sophisticated
solutions, but —as often as not—too late to do any good. Autodirection thus
conferred a behavioral superiority and gradually asserted itself as the norm,
while teledirection declined and survived only in a few isolated areas.
The periodic instinct to communicate genetic half-subfiles back to their
factories had long become a universal trait among the robots— there could be
descendants only of ancestors who left descendants—and they responded to the
decline of radio as a means of communication by evolving a compulsion 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