Authors: R. J. Pineiro
Act too soon and risk losing. Wait too long and risk losing.
In addition, his team was growing impatient after almost thirty-six hours of surveillance. Based on the sporadic complaints he'd heard on the operational frequency, the former Spetsnaz officer knew they would not stand this much longer and feared that one of them might open fire to force the rest of the team to commit itself.
But his instinct told him to waitâthe same instinct that had kept him alive during contracts in Bogota, London, Rome, Istanbul, Zurich, and so many other places. Strokk listened to this inner voice and abided by it, for it represented the combined knowledge of his operative years, the sum of his professional wisdom. And that wisdom told him that in spite of the heat, in spite of his men complaining, in spite of the relentless insects making a banquet of his body, the international contractor should remain put. Strokk also instructed his team to do likewise, indirectly warning everyone that he would personally shoot the first man who dared challenge his command.
The Americans had finished making the wireless connections and were now dialing into Washington.
4
Susan Garnett watched the percent meter on her screen increase as her powerful ThinkPad downloaded a 250-megabyte 3-D map of the American continent, figuring that it would be a reasonable place to start. She'd had a discussion with Cameron on the probable location of the area outlined by the binary topography and decided that they should first search the entire region once occupied by the Maya, including the western section of El Salvador, all of Guatemala and Belize, and southern Mexico, plus the Yucatán Peninsula.
She now viewed both North and South America, from the Northwest Territories of Canada to Cape Horn, at the southern tip of Chile. Using the pointer, she outlined an area covering the Classic Mayan kingdom, not only zooming in, but also selecting that area as the first search region of a custom program that she had hammered out in the past thirty minutes, while establishing contact with Washington and downloading the large file. The program would take the suspect binary code and attempt to overlap it on the selected portion of the 3-D map to find a match. To accomplish this, Susan had to define certain parameters.
The first was the relative scales of the binary map and the 3-D map. She assigned the value of one to the scale used by the 3-D map. She eyeballed the relative size of her binary map and opted for an initial scaling value of 0.001, thus making the 3-D map one thousand times larger than the binary map, to make certain that she started with something that was on the small side of the scale and work her way up to the matching scale.
Her second parameter was the relative orientation of the digital map with respect to magnetic north. As a starting point, she made the top of the binary file zero degrees, or magnetic north, just like the 3-D map.
Her third parameter was the resolution of the search. What would qualify as a match, considering the possibility of noise injected in the conversion of the electromagnetic field to binary code during last night's event, even after filtering some of the noise out? Susan chose the value of fifty percent match to generate a flag. She could adjust that parameter later on, based on the number of matches that occurred during the initial search. She didn't want the resolution to be so loose that it generated too many “false” matches. On the other hand, she didn't want it so tight that she would not generate any matches.
Finally, she had to define what constituted one full search. She encoded this in the program, making the first “stepped” comparison of the binary map against the 3-D map at the initial settings of relative scale, orientation, and resolution. After one complete pass, the program would adjust the scale of the binary map in increments of 0.001, all the way up to 1. Then the program would reset the orientation of the binary map relative to the 3-D map by one degree, slightly shifting its definition of magnetic north. Then the relative scale would be reset back to 0.001 and start over.
She reviewed this simple but critical portion of the program.
10 ORIENT = 0; MATCH = 0
11 SCALE = 0.001
12 CALL COMPARE
13 IF MATCH = 1 THEN GOTO 21
14 SCALE = SCALE + 0.001
15 IF SCALE > 1 GOTO 17
16 GOTO 12
17 ORIENT = ORIENT + 1
18 IF ORIENT > 360 GOTO 20
19 GOTO 11
20 DISPLAY NO MATCH; GOTO 22
21 CALL ADD NEW MATCH; GOTO 14
22 END
“All right,” she said to herself. “If a match is found, it will be logged in and the search will continue through the nested loops of
ORIENT
and
SCALE
until they perform a full scan of all parameter combinations.”
“How long will it take to go through one full iteration of orientations and scales?” Cameron asked, once again sitting by her side. Lobo and another SEAL knelt behind them, listening with interest. It was just past ten in the morning and the sun had burned off most of the fog rising above the cenote. According to the sensors connected to her system, temperatures had already climbed to the mid-eighties and the humidity was just below eighty percent. They were all sweating. Susan had promptly put on the vest that Cameron had loaned her yesterday.
“The actual time to compare the information in the digital map with its equivalent frame in the 3-D map is about seventy microseconds of compute time. At the initial scale settings of 0.001, the binary map will have to be stepped around ten thousand times to cover the selected area in the 3-D map. That means that a single pass at one orientation and one scaling factor will take ⦠let's see.” She jotted some numbers on her engineering notebook.
ONE COMPARE STEP = SEVENTY MICROSECONDS OR 0.00007 SECONDS
ONE SINGLE PASS = 10,000 COMPARE STEPS
TOTAL COMPUTE TIME = 0.00007 SECONDS X 10,000 = 0.7 SECONDS
“So, less than a second,” she said. “Now, keep in mind that's just with one set of orientation and scale settings. There are one thousand scaling factors, from 0.001 to 1, and 360 orientations per scaling factor.” Again, she jotted down the numbers.
LENGTH OF SINGLE PASS: 0.7 SECONDS
NUMBER OF SCALE SETTINGS: 1000
NUMBER OF ORIENTATIONS: 360
TOTAL COMPUTE TIME: 0.7 SECONDS X 1000 X 360 = 252,000 SECONDS
Cameron made a face. “That's⦔
“Around seventy hours of uninterrupted computing time. But it won't be nearly as long because as the scaling factor increases, there will be fewer comparison steps between the binary map and the 3-D map because the size of the binary map will increase in relation to the 3-D map.”
“So, what's your estimate?”
“Around fifteen hours, which is still a long time. That's why Reid's also going to be doing it at the FBI using our HP workstations, which should finish in minutes instead of hours. However, Reid's task will be a little longer because in addition to searching in this area, he's also running the routine across the entire continent. That should take him most of the day. And at a fifty percent match we're bound to generate more than just one match, which means we'll have to run the compare again on all of the highlighted matches using a finer resolution. I'm estimating that the elimination phase will take just as long as the initial phase because the higher resolution across fewer sites requires just as much computing time as a lower resolution search across the entire region.”
“When do we start?”
“Right now. I'm going to do a few test runs to adjust the resolution setting before I E-mail the program to Reid to run on the HPs.” She then launched her routine. A window popped up on her screen, giving her the basic statistics of the search, currently set to the default starting values.
CURRENT ORIENTATION: 0
CURRENT SCALE: 0.001
CURRENT MATCHES: 0
RESOLUTION: 50%
ELAPSED TIME: 0 HRS 0 MIN 0 SECONDS
% COMPLETE: 0.00
PRESS S TO START
PRESS H TO HALT
PRESS R TO RESTART
PRESS F TO FINISH
Susan pressed s and the hard drive began to whirl. Within seconds, the screen changed to:
CURRENT ORIENTATION: 0
CURRENT SCALE: 0.007
CURRENT MATCHES: 120
RESOLUTION: 50%
ELAPSED TIME: 0 HRS 0 MIN 5 SECONDS
% COMPLETE: 0.00
PRESS S TO START
PRESS H TO HALT
PRESS R TO RESTART
PRESS F TO FINISH
Frowning, Susan pressed
H.
The system halted its search.
“Why did you stop it?” Cameron asked.
“Look at the number of matches,” she replied. “The resolution is too vague.”
She pulled up the source code for the program, changed the matching resolution to sixty percent, and kicked it off again. This time the number of matches dropped to forty after ten seconds.
“Let's try again.” She halted it once more and changed the resolution to seventy percent. This time there were only eight matches after fifteen seconds. One final adjustment and the number further dropped to five after thirty seconds. Susan let that run continue while she performed a small calculation, projecting about three thousand matches for the entire search, a manageable number for a follow-up finer resolution search. She E-mailed the revised program and instructions to Reid, requesting that he run it first on the selected area in Mesoamerica before the rest of the continent, and to be sure to send the results back to her immediately for her and Cameron's review.
She glanced at her screen one more time:
CURRENT ORIENTATION: 0
CURRENT SCALE: 0.265
CURRENT MATCHES: 31
RESOLUTION: 75%
ELAPSED TIME: 0 HRS 3 MIN 6 SECONDS
% COMPLETE: 1.03%
PRESS S TO START
PRESS H TO HALT
PRESS R TO RESTART
PRESS F TO FINISH
She did a quick calculation and decided that her projection of three thousand matches was right on target with thirty-one matches at just over one percent complete. Now she just had to wait. With a little luck, Reid would finish this initial search in fifteen minutes or less, sending her the results. But she decided to keep her system running as a backup. Worst case, she would halt her search after reviewing Reid's results and kick off the finer resolution search.
Standing and stretching, she turned to Lobo and Cameron. “What about getting a lady something to eat? I'm starving.”
The SEAL commander brought her one of their MREs.
5
Ishiguro Nakamura's legs burned from the stress as Luis continued to hack his way through the jungle under the direction of Jackie, who followed the Guatemalan from a respectable distance to keep out of the way of the swinging machete and the flying debris it created. Behind Jackie staggered Kuoshi with the help of Porfirio. Ishiguro went last, hauling twice his normal load because of Kuoshi's wound.
Ishiguro's shoulders throbbed. Beads of perspiration stung his eyes. Ticks and other bugs continued to attack his legs, despite the bug repellant he had brought with him. Jackie and Kuoshi had the same problem. Luis and Porfirio, however, appeared immune.
They had been marching since first light, trekking almost two miles since, and getting awfully close to their destination, according to Jackie's GPS receiver.
This had better be worth it,
he thought, continuing down the trail, too tired to admire the local flora. The towering trees indeed concealed an entire ecosystem conditioned to living with little sunlight. Lush ferns grew out of fallen logs. Colorful orchids and other flowers decorated the trees, amid curtains of hanging vines and moss. But to the Stanford Ph.D. they represented just more jungle. His initial admiration for the virgin rain forest had rapidly degraded to his current state of exhaustion and annoyance. All that seemed to matter was his next step, and the one after that, slowly advancing past ravines, through mangroves, across streams, closing the gap to the coordinates that had resulted from a satellite triangulation that at the moment seemed like a long time ago.
The astrophysicist inhaled deeply, the warm air stinging his lungs. It even hurt to breathe, but he endured it, checking his watch once more, calculating that they had less than thirty minutes before they reached their target.
6
“That was fast,” Cameron observed the moment Susan displayed Reid's E-mail.
CURRENT ORIENTATION: 360
CURRENT SCALE: 1
CURRENT MATCHES: 2978
RESOLUTION: 75%
ELAPSED TIME: 0 HRS 14 MIN 6 SECONDS
% COMPLETE: 100%
PRESS S TO START
PRESS H TO HALT
PRESS R TO RESTART
PRESS F TO FINISH
“That's what happens when you have a couple of dozen Hewlett-Packard workstations working in parallel,” Susan said, munching on her half-eaten MRE. “Fifteen hours becomes fourteen minutes.” She stopped her own comparison and kicked off a new one on the matched sites but with a resolution of ninety percent, and asked Reid to do the same. She went back to her meal after receiving an acknowledgement from her superior.
She had projected three thousand matches, and the actual number had been close, giving her a warm feeling about their prospects of zeroing in on the location.