/.Mod Compstat-do./
Exec (move{Ш ij (Cx1, Cy1, Cz1)})/.init./
{ij (x1, y1, z1)} /.state./
{ikl (x1,y1,z1) (x2,y2,z2)} /.track./
Push {z(i)} /.store./
React «advan» /.ref state./
Я1 {(dx(i, j, k)} {(place(Cj,Hj)}
Я2 {(fx,(a,q)}
Place {z(q)} /.store./
Intent «advan» /.ref intent./
Яijk {(dx(i, j, k)} {(place(Cj,Hj)}
Яx {(fx,(a,q)}
Load {z(i)} /.store./
Exec (move{Ш ij (Cx1, Cy1, Cz1)})
Exec (pre{Ш ij (Hx1, Hy1, Hz1)})
Exec (post{Ш ij (Hx1, Hy1, Hz1)})
Push {ij (x1, y1, z1)}
{ikl (x1,y1,z1) move (x2,y2,z2)} /.track./ {0,1,0,01)
"Ricky," I said, "this code looks almost the same as the original."
"Yeah, I think so. The changes are all minor. I don't know why it's such an issue." He shrugged. "I mean, as soon as we lost control of the swarm, the precise code seemed a little beside the point to me. You couldn't change it, anyway."
"And how did you lose control? There's no evolutionary algorithm in this code here." He spread his hands. "Jack," he said, "if we knew that, we'd know everything. We wouldn't be in this mess."
"But I was asked to come here and check problems with the code my team had written, Ricky. I was told the agents were losing track of their goals…"
"I'd say breaking free of radio control is losing track of goals."
"But the code's not changed."
"Yeah well, nobody really cared about the code itself, Jack. It's the implications of the code. It's the behavior that emerges from the code. That's what we wanted you to help us with. Because I mean, it is your code, right?"
"Yeah, and it's your swarm."
"True enough, Jack."
He shrugged in his self-deprecating way, and left the room. I stared at the paper for a while, and then wondered why he'd printed it out for me. It meant I couldn't check the electronic document. Maybe Ricky was glossing over yet another problem. Maybe the code really had been changed, but he wasn't showing me. Or maybeThe hell with it, I thought. I crumpled up the sheet of paper, and tossed it in the wastebasket. However this problem got solved, it wasn't going to be with computer code. That much was clear.
Mae was in the biology lab, peering at her monitor, hand cupped under her chin. I said, "You feel okay?"
"Yes." She smiled. "How about you?"
"Just tired. And my headache's back."
"I have one, too. But I think mine's from this phage." She pointed to the monitor screen. There was a scanning electron microscope image of a virus in black and white. The phage looked like a mortar shell-bulbous pointed head, attached to a narrower tail. I said, "That's the new mutant you were talking about before?"
"Yes. I've already taken one fermentation tank offline. Production is now at only sixty percent capacity. Not that it matters, I suppose."
"And what're you doing with that offline tank?"
"I'm testing anti-viral reagents," she said. "I have a limited number of them here. We're not really set up to analyze contaminants. Protocol is just to go offline and scrub any tank that goes bad."
"Why haven't you done that?"
"I probably will, eventually. But since this is a new mutant, I thought I better try and find a counteragent. Because they'll need it for future production. I mean, the virus will be back."
"You mean it will reappear again? Re-evolve?"
"Yes. Perhaps more or less virulent, but essentially the same." I nodded. I knew about this from work with genetic algorithms-programs that were specifically designed to mimic evolution. Most people imagined evolution to be a one-time-only process, a confluence of chance events. If plants hadn't started making oxygen, animal life would never have evolved. If an asteroid hadn't wiped out the dinosaurs, mammals would never have taken over. If some fish hadn't come onto land, we'd all still be in the water. And so on. All that was true enough, but there was another side of evolution, too. Certain forms, and certain ways of life, kept appearing again and again. For example, parasitism-one animal living off another-had evolved independently many times in the course of evolution. Parasitism was a reliable way for life-forms to interact; and it kept reemerging. A similar phenomenon occurred with genetic programs. They tended to move toward certain tried-and-true solutions. The programmers talked about it in terms of peaks on a fitness landscape; they could model it as three-dimensional false-color mountain range. But the fact was that evolution had its stable side, too.
And one thing you could count on was that any big, hot broth of bacteria was likely to get contaminated by a virus, and if that virus couldn't infect the bacteria, it would mutate to a form that could. You could count on that the way you could count on finding ants in your sugar bowl if you left it out on the counter too long.
Considering that evolution has been studied for a hundred and fifty years, it was surprising how little we knew about it. The old ideas about survival of the fittest had gone out of fashion long ago. Those views were too simpleminded. Nineteenth-century thinkers saw evolution as "nature red in tooth and claw," envisioning a world where strong animals killed weaker ones. They didn't take into account that the weaker ones would inevitably get stronger, or fight back in some other way. Which of course they always do.
The new ideas emphasized interactions among continuously evolving forms. Some people talked of evolution as an arms race, by which they meant an ever-escalating interaction. A plant attacked by a pest evolves a pesticide in its leaves. The pest evolves to tolerate the pesticide, so the plant evolves a stronger pesticide. And so on.
Others talked about this pattern as coevolution, in which two or more life-forms evolved simultaneously to tolerate each other. Thus a plant attacked by ants evolves to tolerate the ants, and even begins to make special food for them on the surface of its leaves. In return the resident ants protect the plant, stinging any animal that tries to eat the leaves. Pretty soon neither the plant nor the ant species can survive without the other.
This pattern was so fundamental that many people thought it was the real core of evolution. Parasitism and symbiosis were the true basis for evolutionary change. These processes lay at the heart of all evolution, and had been present from the very beginning. Lynn Margulies was famous for demonstrating that bacteria had originally developed nuclei by swallowing other bacteria.
By the twenty-first century, it was clear that coevolution wasn't limited to paired creatures in some isolated spinning dance. There were coevolutionary patterns with three, ten, or n life-forms, where n could be any number at all. A cornfield contained many kinds of plants, was attacked by many pests, and evolved many defenses. The plants competed with weeds; the pests competed with other pests; larger animals ate both the plants and the pests. The outcome of this complex interaction was always changing, always evolving. And it was inherently unpredictable.
That was, in the end, why I was so angry with Ricky.
He should have known the dangers, when he found he couldn't control the swarms. It was insanity to sit back and allow them to evolve on their own. Ricky was bright; he knew about genetic algorithms; he knew the biological background for current trends in programming. He knew that self-organization was inevitable.
He knew that emergent forms were unpredictable.
He knew that evolution involved interaction with n forms.
He knew all that, and he did it anyway.
He did, or Julia did. …
I checked on Charley. He was still asleep in his room, sprawled out on the bed. Bobby Lembeck walked by. "How long has he been asleep?"