Читатели старшего поколения наверняка помнят телефонные модемы, проводившие информацию по шумным аналоговым телефонным линиям. Такая связь сопровождалась шипением, свистом и многими другими помехами, но при этом позволяла передавать цифровые сообщения с очень высокой точностью — в соответствии с теоремой Шеннона о зашумленном канале. Та же проблема и такое же решение существуют для цифровой памяти. Почему, по вашему мнению, программные диски, CD и DVD продолжают работать даже при появлении царапин или после падения на пол? Еще раз скажем спасибо Шеннону.
Вычислительный процесс состоит из трех элементов: коммуникации (которая, как я подчеркнул, осуществляется как внутри компьютера, так и между компьютерами), памяти и логических вентилей (производящих арифметические и логические действия). Точность логических вентилей тоже можно сделать сколь угодно высокой с помощью определения ошибок и коррекционных кодов. Благодаря теореме и теории Шеннона мы можем без помех управлять большими массивами сложных цифровых данных и алгоритмов. Важно отметить, что головной мозг тоже использует принцип Шеннона, хотя эволюция человеческого мозга произошла задолго до появления мозга самого Шеннона! Как мы видели, большинство образов или идей (идея — тоже образ) хранится в мозге в избыточном количестве. Основной смысл избыточности образов заключается в преодолении ненадежности цепей нейронов.
Второй важный принцип в основе теории информации я уже упоминал — это универсальность вычислительных методов. В 1936 г. Алан Тьюринг описал «машину Тьюринга», которая представляет собой не реальный механизм, а еще один мысленный эксперимент. Этот абстрактный компьютер состоит из бесконечно длинной ленты памяти, в ячейках которой располагаются цифры 1 или 0. Эта информация служит для машины входным сигналом, и машина за один раз прочитывает информацию в одной ячейке. Кроме того, машина снабжена таблицей правил (в частности, подчиняется принципу хранимой программы), представленных в виде пронумерованных утверждений. Каждое правило определяет одно действие, если в текущей ячейке расположена цифра 0, и другое, если в текущей ячейке цифра 1. К возможным действиям относится написание на ленте 0 или 1, перемещение ленты на одну ячейку влево или вправо или остановка. Каждое состояние определяет следующее состояние машины.
Блок-диаграмма машины Тьюринга, состоящей из считывающей и записывающей головки и внутренней программы, осуществляющей переходы между состояниями.
Входной сигнал задается информацией на ленте. Программа работает, а когда алгоритм выполнен, машина останавливается и выходные данные оказываются отпечатанными на ленте. Заметим, что, хотя теоретически лента имеет бесконечную длину, любая реальная программа, не попадающая в бесконечный цикл, использует лишь ограниченную часть ленты, так что, если мы возьмем ленту конечного размера, машина по-прежнему сможет решать некий набор задач.
Схема машины Тьюринга кажется простой — так сделал ее создатель. Он хотел, чтобы его машина была максимально простой (но не проще, если перефразировать Эйнштейна[121]). В результате работ Тьюринга и его бывшего учителя Алонзо Черча был сформулирован так называемый тезис Черча — Тьюринга: если некая функция не может быть вычислена машиной Тьюринга, она не может быть вычислена
В «строгой» формулировке тезиса Черча — Тьюринга постулируется эквивалентность между тем, что и как думает человек, и тем, что может рассчитать машина. Основная идея заключается в том, что человеческий мозг подчиняется законам природы и поэтому его способность обрабатывать информацию не может превышать аналогичную способность машины (в том числе машины Тьюринга).
Безусловно, статья Тьюринга 1936 г. заложила теоретические основы информатики, но важно отметить, что на работу Тьюринга большое влияние оказала лекция венгерско-американского математика Джона фон Неймана (1903–1957), которую он прочел в Кембридже в 1935 г. Тьюринг использовал в своей машине концепцию фон Неймана о хранимой программе[122]. Верно и то, что на фон Неймана оказала влияние статья Тьюринга, где элегантным образом изложены принципы информатики; в конце 1930-х и в начале 1940-х гг. фон Нейман рекомендовал прочесть эту статью всем своим коллегам[123].