Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's Computers
Format: PDF / Kindle (mobi) / ePub
Every day, we use our computers to perform remarkable feats. A simple web search picks out a handful of relevant needles from the world's biggest haystack: the billions of pages on the World Wide Web. Uploading a photo to Facebook transmits millions of pieces of information over numerous error-prone network links, yet somehow a perfect copy of the photo arrives intact. Without even knowing it, we use public-key cryptography to transmit secret information like credit card numbers; and we use digital signatures to verify the identity of the websites we visit. How do our computers perform these tasks with such ease?
This is the first book to answer that question in language anyone can understand, revealing the extraordinary ideas that power our PCs, laptops, and smartphones. Using vivid examples, John MacCormick explains the fundamental "tricks" behind nine types of computer algorithms, including artificial intelligence (where we learn about the "nearest neighbor trick" and "twenty questions trick"), Google's famous PageRank algorithm (which uses the "random surfer trick"), data compression, error correction, and much more.
These revolutionary algorithms have changed our world: this book unlocks their secrets, and lays bare the incredible ideas that our computers use every day.
third entry in this column, you might think that we need to work out 63 = 6 × 6 × 6, but there is an easier way. We have already computed 62 for the clock size we’re interested in—it turned out to be 3. To get 63 , we just need to multiply the previous result by 6. This gives 3 × 6 = 18 = 7 (clock size 11). And the next entry is 7 × 6 = 42 = 9 (clock size 11), and so on down the column. OK, we are ﬁnally ready to establish a shared secret, as used by computers in real life. As usual, you and
+1 if its corresponding condition is true. For example, if it is currently cloudy, then the input labeled “cloudy?” sends out an excitatory signal of strength +1; otherwise, it sends nothing, which is equivalent to a signal of strength zero. If we ignore the inputs and outputs, this network has only two neurons, each with a diﬀerent threshold. The neuron with inputs for humidity and cloudiness ﬁres only if both of its inputs are active (i.e., its threshold is 2), whereas the other neuron ﬁres if
quality. The same image is shown compressed at three diﬀerent JPEG quality levels. At the top is the highest quality, which also requires the most storage. At the bottom is the lowest quality, which requires less than half the storage, but now there are noticeable compression artifacts—especially in the sky and along the border of the roof. is compressed separately. Note that without any compression, each square would be represented by 8 × 8 = 64 numbers. (We are assuming that the picture is
represent the square by a single number anyway, resulting in good compression for that square with only a small amount of error when it gets decompressed later. In the bottom image of the ﬁgure on the previous page, you can actually see some of the 8-by-8 blocks in the sky that have been compressed in exactly this way, resulting in small square blocks of uniform color. If the 8-by-8 square varies smoothly from one color to another (say, dark gray on the left to light gray on the right), then the
preceding chapters. No matter how many clever algorithms are invented in the future, there will always be problems whose answers are “uncomputable.” The existence of uncomputable problems is striking enough on its own, but the story of their discovery is even more remarkable. 174 What Is Computable? 175 The existence of such problems was known before the ﬁrst electronic computers were ever built! Two mathematicians, one American and one British, independently discovered uncomputable problems