Игра разума. Как Клод Шеннон изобрел информационный век - Сони Джимми
Шрифт:
Интервал:
Закладка:
И этого было бы вполне достаточно. Но был сделан еще один шаг, который кому-то мог показаться чудом или чем-то непостижимым. Ниже границ предела скорости канала, какой бы ни был замысел, мы можем сделать сообщения настолько точными, насколько пожелаем, идеально свободными от шума. Это было самое далеко идущее открытие Шеннона: то, что Фано называл «неизвестным, немыслимым», пока Шеннон не решил эту проблему.
До Шеннона сформировалось укоренившееся убеждение в том, что шум – это естественная помеха. Способы сглаживания шума принципиально не менялись с тех пор, как Уайлдмен Уайтхаус сжег огромный морской кабель. Передача информации, подсказывал здравый смысл, напоминала передачу электроэнергии. Лучшим решением тогда был затратный и ненадежный способ действовать грубой силой, а именно «перекрикивать» помехи, подавая более громкий сигнал.
Способ Шеннона достичь идеальной точности передачи был чем-то радикально новым[8]. По мнению профессора инженерного дела, Джеймса Мэсси, именно этот потенциал, помимо всего прочего, делал теорию Шеннона «коперниковской»: в том смысле, что переворачивал очевидное с ног на голову, кардинально и самым продуктивным образом меняя наше понимание мира. Точно так же, как Солнце «очевидно» вращалось вокруг Земли, лучшим решением проблемы с шумом «очевидно» было иметь дело с физическими каналами связи, с их мощью и силой сигнала. Шеннон предлагал настораживающую смену акцентов: игнорировать физический канал, мы можем преодолеть шум, управляя нашими сообщениями. Решение проблемы шума заключается не в том, насколько громко мы говорим, а в том, как мы говорим то, что мы говорим.
Как неуверенные операторы трансатлантической телеграфной связи пытались справиться с нарушением сигнала? Они просто повторяли друг другу: «Повторите, пожалуйста», «посылайте медленнее», «правильно, правильно». На самом деле Шеннон показал, что замученные телеграфисты в Ирландии и Ньюфаундленде ухватили суть, они фактически решили проблему, даже не подозревая об этом. Если бы они смогли прочитать статью Шеннона, то, вероятно, сказали бы: «Пожалуйста, добавьте избыточности».
В определенном смысле это было достаточно очевидно: сказать одну и ту же вещь дважды в шумной комнате – это, в некотором роде, добавление избыточности, если мы подразумеваем, что одна и та же ошибка вряд ли повторится в одном и том же месте два раза подряд. Для Шеннона все было гораздо глубже. Наша лингвистическая предсказуемость, наша врожденная неспособность максимизировать информацию – это фактически наша лучшая защита от ошибок. Несколькими страницами ранее вы прочитали о том, что структура нашего языка лишает нас полной свободы выбирать «следующую букву и следующий ананас». Как только вы дошли до слова «ананас» – на самом деле, как только вы дошли до буквы «а», – вы уже понимали, что что-то пошло не так. Вы обнаружили (и, вероятно, исправили) ошибку. Вы сделали это потому, что у вас есть внутреннее понимание структуры языка. И это внутреннее знание подсказало вам, что вероятность того, что слово «ананас» имеет смысл в этом предложении и абзаце, крайне низка. Избыточность нашего языка корректирует ошибки за нас. С другой стороны, представьте, насколько сложнее было бы найти ошибку в языке «XFOML», в котором каждая буква одинаково вероятна[9].
Для Шеннона ключ опять же заключался в коде. Он продемонстрировал, что мы должны уметь писать коды, в которых избыточность действует как щит, коды, в которых ни один бит не является неустранимым, и любой бит может без всякого вреда для сообщения быть поглощен шумом. Мы снова хотим отправить сообщение, составленное из букв от А до D, но в этот раз нам важнее не сжимать сообщение, а чтобы оно надежно прошло по шумному каналу связи. И снова мы начнем с самого простого кода:
А = 00
В = 01
С= 10
D = 11
Одна из самых худших вещей, которые может сделать шум в момент помех, включения посторонних звуков или физического повреждения канала связи – это исказить биты. Там, где отправитель произносит «1», получатель слышит «0», или наоборот. Так что если бы мы использовали этот код, то ошибка для одного-единственного бита могла бы быть фатальной. Если бы всего один из битов, представляющих букву С, поменял бы свое свойство, буква С потерялась бы в канале связи: она возникла бы в виде буквы В или D, запутав получателя. Достаточно всего лишь двух таких замен, чтобы превратить «DAD» в «САВ».
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})Но мы можем решить эту проблему – точно так же, как человеческие языки интуитивно, автоматически решают подобную проблему, – добавив биты. Мы можем использовать вот такой код:
А = 00000
В = 00111
С = 11100
D = 11011
Теперь любая буква могла бы выдержать повреждение любого бита и все равно оставаться именно этой буквой и никакой другой. При наличии двух ошибок ситуация становится более запутанной: 00011 может быть либо буквой В с одним замененным битом, либо А с двумя замененными битами. Но чтобы превратить одну букву в другую, требуются три полноценные ошибки. Наш новый код противостоит шуму так, как не противостоял ему наш первый код, и делает это более эффективно, чем простое повторение слова. Нам не нужно было менять ни единой вещи в том, что касается средства связи: никаких перекрикиваний в переполненной комнате, никакого монтажа индукционных катушек. Нужно лишь посылать правильные сигналы.
Пока мы соблюдаем скоростной предел канала связи, у нас нет ограничений в точности передачи нашего сообщения, нет ограничений в количестве шума, сквозь который мы можем пробиться. Да, преодоление большего числа ошибок или добавление большего числа символов потребует более сложных
Шеннон был прав: решение есть всегда.
И это решение – цифровое.
кодов. Так же как и сочетание преимуществ кодов, которые сжимают сообщение, и кодов, которые защищают от ошибок. Для этого нам потребуется максимально эффективно сократить сообщения в битах, а потом добавить избыточности, которая обеспечит его точность. Шифрование и дешифровка все равно взыщут свою цену за счет потраченных усилий и времени. Но Шеннон был прав: решение есть всегда. И это решение – цифровое. На этом Шеннон завершил свое исследование, начавшееся с магистерской работы и переключателей одиннадцатью годами ранее. 1 и 0 закрепляли целостность его логики. Знаки 1 и 0 символизировали фундаментальную природу информации, равный выбор из двух вариантов. И теперь было очевидно, что любое сообщение можно отправить безукоризненно – мы можем общаться с помощью любого вида связи, любой сложности и на любом расстоянии – при условии, что наши сообщения переводятся в 1 и 0. Логика преобразуется в цифру. Информация переводится в цифру.
А потому каждое сообщение родственно всем другим сообщениям. «До того момента все считали, что связь задействовали, чтобы найти способы передачи письменного языка, устной речи, изображений, видео и всего разнообразия других видов сообщений – и что все они требовали разных способов передачи, – говорил коллега Шеннона Роберт Галлагер. – Клод сказал: “Нет, вы можете перевести все это в двоичные символы. А потом вы можете найти способы передачи этих двоичных символов”. Вы можете закодировать любое сообщение в виде потока битов, и вам совсем необязательно знать, куда оно отправится. Вы можете передать любой поток битов эффективно и надежно, не интересуясь, откуда он пришел. Как сказал специалист в области теории информации, Дэйв Форни, «биты – это универсальный интерфейс».
Со временем его мысли, представленные на семидесяти семи страницах в «Техническом журнале “Лабораторий Белла”, дадут толчок рождению цифрового мира. Появятся спутники, общающиеся с землей посредством бинарного кода, диски, проигрывающие музыку, несмотря на пятна и царапины (потому что хранилище – это просто другой канал, а царапина – это просто другой шум).