Read Fool's Experiments Online
Authors: Edward M Lerner
Crunching intruded on his concentration, noise that somehow evoked unhappy rumbles from his gut. He looked up. Linda had retrieved the ever-present box of Cheerios from her desk, and was swigging cereal, dry, from a mug.
Food seemed a good idea. Middle-age spread like his did not simply happen; it required regular attention. Cereal, though ... He wondered if, after Ming's recent gift to Meredith, he would ever eat cold cereal again. His mind's eye was all too quick to re-create the gnawed mouse corpse oozing into a milk-filled bowl.
"Want some?"
Something nagged at AJ. He scanned the tree cemetery all around them: paper covering tables, desktops, much of the floor. Each memory dump characterized one maze runner. He had been searching for similarities, seeking the presumed evolutionary dead end that had suddenly rendered so many of them incompetent. With thousands of generations of ancestors in common, of course, they
should
be much alike. In a sea of impenetrable, colossally awful software—by human standards, anyway—how was he to know which commonalties did what?
"AJ?" Linda waggled her mug, rattling the Cheerios within. "I asked if you wanted any cereal. Munch, munch?"
What was bothering him? He shrugged, meaning "not now." The dumps all around them had segments of code circled with felt-tipped markers, a different color for each common pattern. Most annotated segments had some sort of recognizable function: The code, however arcane, did something discernible. Everything, that was, except the areas marked with green, seemingly useless bit patterns that repeated for page after page. Maybe he should have used red.
Why red? Neither aching head nor unhappy stomach had any answer to that. Jeez, he hoped Linda would finish eating soon—he did not want to be in the same room as cereal.
Damn
Ming anyway. Tiny tooth marks on protruding bones. Needlelike punctures into still-warm flesh. Rivulets of blood swirling through the milk, turning the milk redder and redder...
"Shit!" AJ threw a handful of uncapped markers to the floor in disgust. "Shit, shit,
shit
!"
Linda froze, mug suspended in midair. AJ didn't swear. She spoke around a mouthful of Cheerios. "What?"
AJ hesitated, as though articulating his suspicions would somehow make them real. "How do the critters compete?" She set down her mug. "Problem-solving ability. Those that run a maze fastest win. We breed from winners."
"Do we truly measure problem-solving ability?"
"Well, no, not directly." She stirred the dry cereal in the mug with a finger. What was he getting at? "Close enough, though. The critters have only one purpose—to solve mazes. The supervisory program measures the time they take to run them. Running time, surely, corresponds to solving time."
"Correlates, yes. That's a probabilistic statement. But corresponds? I don't know. What else might running time mean?"
She shook her head mutely, stumped.
He began gathering and capping the scattered pens. "Is it fair to say that, at some level, you imagine our critters as rats in a maze?"
The way the human mind works, always free-associating, how could one not think of rats and mazes in the same breath? "Um, yes." She blushed, as though her deepest, darkest secret had been bared. "Hardly scientific, is it?"
"Don't be embarrassed," AJ said. "I picture them that way, too. It just goes to show that analogy is the weakest form of reasoning. Does it do a critter any good to solve the maze first if it never reaches the end of the maze?"
"Well, no, of course not, but how ...?" She trailed off,
\till
unsure where he was going.
"What if something keeps the smartest runners from reaching the end of the maze?" Distaste for analogies didn't stop AJ from offering one. "What if, behind those cute little simulated rodents, there lurked a big, mean simulated cat? What does
it
do as the unsuspecting rats busily sniff around, learning the maze?"
She had a thesis to wrap up. She couldn't handle surprises. "What are you saying, AJ?"
"That it doesn't matter who could solve the maze the fastest, only who actually finishes first."
A memory dump was spread across the table in front of her, showing page after page of the functionally useless bit patterns that filled the incompetent maze runners. Suddenly those patterns
had
a function. They were the tooth marks of the simulated cat. Linda said, "So we are, indeed, implementing survival of the fittest. And some kind of congratulations is in order.
"It appears we've bred our first predator."
Glenn stared at his laptop screen, rocking slightly in his chair, the faint squeaks somehow comforting. A raft of e-mails awaited: weekly reports. You brought this on yourself, he chided himself. Tracy Metcalfe had not believed in regular formal reports. There was still pushback from some of the troops.
A few mouse clicks and the weekly reports were sorted by assignment. There were, as always, too many viruses, worms, and hack attacks out there. He sent to the end of his list the NIT-defense project reports. Wuss.
Weekly catch-up did not take long. It never did, since he instituted the one-page rule.
Fresh from West Point, as the new company logistics officer, Glenn had tried to impress his captain by enriching his initial status report with a fifteen-page encyclopedic survey of all things logistical. The report had come back to him wadded into a tight ball. The only other feedback was slashed in bold red letters across the first page: "It's not
my
job to find
your
pony." Sheepishly showing it around for explanation, he had drawn gale after gale of laughter until another lieutenant at last took pity and shared the joke. Everyone else in the company already knew what a roomful of shit implied, but did not conclusively prove, the existence of.
Since then, every status report Glenn submitted or accepted was limited to one page. With a score of them to read each week, the discipline made perfect sense to him—now.
He fell into the comforting rhythm: read, comment, file, and repeat.
Doug Carey's report was next to last. It was concise but detailed, his accomplishments and issues telegraphically short and to the point. It concluded, as it had last week, by emphatically requesting Glenn's authorization to test his proposed new NIT defense. "Good summary," Glenn e-mailed back. With a twinge of guilt, Glen filed the report on his hard drive, recommendation once again ignored. He felt as guilty as ever about manipulating Doug into joining, no matter how necessary the action.
Well, next Friday was Christmas. Given Doug's attitude toward bureaucrats, he surely wouldn't be surprised not to get a decision until the new year.
That left only Pittman's weekly e-mail. It read, in its entirety: "Indigo bad. Me hunt."
Stomach knotted, Glenn made the decision he reluctantly made
every
week—to ignore the insolence. If only the hacker weren't so
damn
good.
Linda gnawed on a pencil, lost in thought. "How can this he?" she eventually managed.
AJ, without props, had been pondering the same question.
The
maze of which they so casually spoke was entirely conceptual—in reality (or was virtuality the more appropriate term?), each entity resided in a dedicated environment. The experiments took place on a 1024-node, massively parallel supercomputer. One thousand processors were allocated one-to-the-entity and the final twenty-four nodes set aside for supervisory functions. Showing the experiments as a race of one thousand programs within a common maze was a convenient graphical affectation. "Since each critter has its own simulated maze, you mean, on its own processor, how can one critter be predator and another one prey?"
"That
is
the question."
AJ, with no immediate answer, switched to pedagogical mode. It's good practice for Linda's upcoming thesis defense, he rationalized. "What do you think?"
"This will sound crazy. Bear with me." She took a deep breath. "Maybe one of the runners decided there are two mazes. There is the overt maze we, by which I mean our supervisory program, give it to solve. In a way, isn't there a second maze? The hypercube itself?"
AJ stood to pace, hands jammed in his pant pockets. Coins and keys jingled. In a normal/3-D cube, each vertex had three neighbors. Their 1024-processor supercomputer was wired in a complicated interconnection scheme, a hypercube, which could be conceptualized as a mesh of tendimensional "cubes." That was, each processor had ten nearest neighbors. Communications between nonadjacent nodes involved processor-to-processor message passing. Their supervisory program needed visibility into all of the test entities ... which took message passing
through
the processors hosting some of the test subjects to get to the processors hosting others of the test subjects. "You're saying the paths between processors form a labyrinth, too."
Linda nodded. "It sounds wacky, but think about it. We know the critters have evolved excellent memories. It's been a long time since we could put them back into a maze they've previously seen and not have them instantly solve it. The way we copy and splice their code—necessarily at random, to avoid knowing how they work—their programming and their data storage have long been intermixed. That mingling, combined with their need to search their memories, might lead to rudimentary mechanisms to analyze their own code."
Jingle, jingle, jingle. "And in any critter that is capable of functioning, the code must include calls to its underlying hardware's operating system." The jingling grew fast and furious as AJ ruminated. "System calls
we
put into their primitive ancestors, and that have been, no doubt, blindly repeated in our replicate-and-splice process. These little guys attempt all sorts of stuff, so why not also try invoking the operating system? It wouldn't take much trial and error to find a working set of parameter values to plop into a system call. Nor would it take much mutation to morph system calls we gave the early ancestors into new system calls we don't intend for them to have—such as the system calls that invoke access to neighboring processors."
AJ and Linda exchanged looks of dismay. "Could they get out?" she asked.
AJ stroked his beard, hoping to convey a thoughtful confidence he did not entirely feel. "I don't see how they can. The maze runners are applications. No matter how much their code changes, they can't raise their own privilege level. They lack the authorization to execute the system calls that could get them out of the supercomputer, even if they should happen to evolve the right code to make the request." His beard- stroking hand found its way back into a pocket.
"Either stop that infernal jingling, AJ, or I'll be forced to break your hands." A slight smile suggested her words were only half in jest. "The whole purpose of the hypercube architecture, the reason people buy them, is to partition problems into cooperating pieces on interconnected processors. Couldn't one maze runner on its processor access another maze runner's processor? There are no privilege-level obstacles to that, are there?"
AJ removed his hands from his pockets. "Right. One of the beasties, if it evolved the system calls to read from or write to another processor within the supercomputer, could use a processing node besides the one we put it into. Tapping extra computing power that way would clearly offer an evolutionary advantage over any single-node competitors. A critter might even, as you said earlier, treat the interconnections between processors and the message-passing protocol required to access those other processors as a second sort of puzzle to be solved."
She poured herself coffee; a Cheerio straggler floated to the top. "Supposing that's all true ... why would one maze runner
attack
another?"
"You're anthropomorphizing." AJ shrugged. "You not- quite started the anthropomorphizing, with the predator comment.
"What can we say for certain? We've compared pre- and postexperiment copies of the entities. That shows us the overwriting occurs during an experiment cycle. Our supervisory program itself, we've confirmed, is unchanged. That appears to leave only one or more of the entities as the source of damage."
"Could our regular routine of mutation have caused each of the damaged entities to overwrite itself?" Linda asked. "Did we introduce a birth defect?"
"A fair question, but I don't think so," AJ said. "Sure, some entities might be clobbered that way. What we're seeing, though, is hundreds of entities destroyed in this way. It would be incredibly improbable for so many critters, from several divergent evolutionary paths, to develop self-destructive characteristics at the same time. It defies credulity that independent mutations would manifest themselves in a common bit pattern of midcycle self-overwrites."
"So your vote is on one critter getting loose in the hypercube and writing all over a bunch of others."
"Yep. Unlike a conventional predator, it doesn't need to eat—but it does need to be chosen." AJ's hands again insinuated themselves into his pockets; he retracted them as a jingle drew a crabby look. "As evolutionary tricks go, it's quite clever. Who knows when predation began? Smaller or more random overwrites to competitors, less disabling attacks, could have long been obscured by our overall mutation process."
"So what's our next step, AJ?" She stared pointedly at a wall calendar.
No thesis, no job. He considered. "We mutate the dickens out of these things, until the trait goes away."
The program that supervised the experiments retained and reinforced the electronic "genes" of the best competitors. Such memories as the patterns of mazes could persist between experiments, and had, in the earliest maze runners, been a survival characteristic. Over many generations, "natural" selection favored those storage techniques most likely to overcome the randomizing aspects of the experiment's crude reproductive process.
Saving the same knowledge in several places was the first such trick to succeed, and a major competitive advantage. Another powerful method was tacking an extra bit—what a human programmer would call a parity bit—onto all important data. This extra bit was set to a zero or a one, using the value that made the total count of ones, including the parity bit itself, odd. Any single bit randomly toggled by the experiment's supervisory program then caused the count over these same bits to add to an even number—instantly flagging the protected data region as invalid.