Via Input Output
-----
We live in a world where digital technology is so advanced that even what used to be science fiction
looks quaint. (Really, Kirk, can you download Klingon soap operas on
that communicator?) Yet underlying it all is a mathematical theory that
dates back to 1948.
That year, Claude Shannon published the foundational information theory paper, A Mathematical Theory of Communication (PDF). Shannon’s work underlies communications channels as diverse as proprietary wireless networks and leads on printed circuits.
Yet in Shannon’s time, as we all know, there were no personal
computers, and the only guy communicating without a desk telephone was
Dick Tracy. In our current era, the number of transistors on chips has
gotten so dense that the potential limits of Moore’s Law are routinely
discussed. Multi-core processors,
once beyond the dreams of even supercomputers, are now standard on
consumer laptops. Is it any wonder then, that even Shannon’s foresighted
genius may have reached its limits?
It’s a question being pondered by academic computer scientists like Caltech’s Leonard Schulman and Amit Sahai
of UCLA. They and their colleagues are trying to update Shannon’s work
by re-designing the fundamentals of channel communications.
From the Internet to a child’s game of telephone, the challenge in
communications is to relay a message accurately, without losing any of
it to noise. Prior to Shannon, the answer was a cumbersome redundancy.
Imagine a communications channel as a conveyer belt, with every message
as a pile of loose diamonds: If you send hundreds of piles down the
belt, some individual diamonds might fall off, but at least you get most
of the diamonds through quickly. If you wrap every single diamond in
bubble wrap, you won’t lose any individual diamonds, but now you can’t
send as many in the same amount of time.
Shannon’s conceptual breakthrough was to realize you could wrap the
entire pile in bubble wrap and save the correction for the very end. “It
was a complete revolution,” says Schulman, “You could get better and
better reliability without actually slowing down the communications.”
In its simplest form, Shannon’s idea of global error correction is
what we know as a “parity check” or “check sum,” in which a section of
end digits should be an accurate summation of all the preceding digits.
(In a more technical scheme: The message is a string n-bits long. It is
mapped to another, longer string of code words. If you know what the
Hamming distance—the difference in their relative positions—should be,
you can determine reliability.)
That
work holds up today. The problem comes with how the information is
sent. “In classical Shannon communications theory, there’s a transmitter
and a receiver, but there’s little or no interaction,” says Schulman.
Despite Shannon’s background as a scientist at Bell Labs, his scheme
employs a one-way communication method that’s more UPS than AT&T:
The transmitter sends a big package of information, but the receiver can
only respond, “Got” or “Not Got/Re-send.”
Starting back as far as the late 1970s, researchers in the emerging field of communication complexity
were beginning to ask themselves: Could you do what Shannon did, if
your communication were more of a dialogue than a monologue?
What was a theoretical question then is becoming a real-world problem
today. With faster chips and multi-core processes, communications
channels are becoming two-way, with small messages going back and forth.
Yet error correction still assumes big messages going in one direction.
“How on earth are you going to bubble wrap all these things together,
if what you say depends on what I said to you?” says Schulman.
The answer is to develop an “interactive” form of error correction.
In essence, a message sent using classic Shannon error correction is
like a list of commands, “Go Left, Go Right, Go Left again, Go Right…”
Like a suffering dinner date, the receiver only gets a chance to reply
at the end of the string.
By contrast, an interactive code sounds like a dialog between sender and receiver:
“Going left.”
“Going left too.”
“Going right.”
“Going left instead.”
“Gzzing zzzztt.”
“Huh?”
“Going left too.”
The underlying mathematics for making this conversation highly
redundant and reliable is a “tree code.” To the lay person, tree codes
resemble a branching graph. To a computer scientist they are “a set of
structured binary strings, in which the metric space looks like a tree,”
says Schulman, who wrote the original paper laying out their design in
1993.

“Consider a graph that describes every possible sequence of words you
could say in your lifetime. For every word you say, there’s thousands
of possibilities for the next word,” explains Amit Sahai, “A tree code
describes a way of labeling this graph, where each label is an
instruction. The ways to label the graph are infinite, but remarkably
Leonard showed there is actually one out there that’s useful.”
Tree codes can branch to infinity, a dendritic structure which allows
for error correction at multiple points. It also permits tree codes to
remember entire sequences; how the next reply is encoded depends on the
entire history of the conversation. As a result, a tree code can perform
mid-course corrections. It’s as if you think you’re on your way to
London, but increasingly everyone around you is speaking French, and
then you realize, “Oops, I got on at the wrong Chunnel station.”
The result is that instructions are not only conveyed faster; they’re
acted on faster as well, with real-time error correction. There’s no
waiting to discover too late that an entire string requires re-sending.
In that sense, tree codes could help support the parallel processing
needs of multi-core machines. They could also help in the increasingly
noisy environments of densely packed chips. “We already have chip-level
error correction, using parity checks,” says Schulman. But once again,
there’s the problem of one-way transmission, in which an error is only
discovered at the end. By contrast, a tree code, “gives you a check sum
at every stage of a long interaction,” says Schulman.
Unfortunately, those very intricacies are why interactive
communications aren’t coming to a computer near you anytime soon.
Currently, tree codes are in the proof of concept phase. “We can start
from that math and show they exist, without being able to say: here is
one,” says Schulman. One of the primary research challenges is to make
the error correction as robust as possible.
One potential alternative that may work much sooner was just
published by Sahai and his colleagues. They modified Schulman’s work to
create a code that, while not quite the full theoretical ideal of a tree
code, may actually perform nearly up to that ideal in real-world
applications. “It’s not perfect, but for most purposes, if the
technology got to where you needed to use it, you could go ahead with
that,” says Schulman, “It’s a really nice piece of progress.”
Sahai, Schulman, and other researchers are still working to create
perfect tree codes. “As a mathematician, there’s something that gnaws at
us,” says Sahai, “We do want to find the real truth—what is actually
needed for this to work.” They look to Shannon as their inspiration.
“Where we are now is exactly analogous to what Shannon did in that first
paper,” Schulman says, “He proved that good error correcting codes
could exist, but it wasn’t until the late 1960s that people figured out
how to use algebraic methods to do them, and then the field took off
dramatically.”