Рэймонд Чандлер добрался до «the», он загнал себя в угол. Но мы все загоняем себя в угол, когда пишем, говорим или поем.
Понимая избыточность нашего языка, мы можем сознательно оперировать ею, подобно тому, как инженеры прошлых веков учились работать с паровыми двигателями.
Да, конечно, люди экспериментировали с избыточностью языка методом проб и ошибок на протяжении многих веков. Мы урезаем избыточность, когда прибегаем к стенографии, когда даем друг другу прозвища, когда придумываем особый жаргон, чтобы сжать значение фразы (вместо «левой стороны судна» короткое слово «порт»). Мы добавляем избыточности, когда говорим «буква В, как Виктор», чтобы нас услышали и поняли, вместо того чтобы кружить вокруг да около. Но именно Шеннон показал концептуальное единство, скрытое за всеми этими действиями, и не только.
У истоков зарождения информационной эпохи, когда провода и микросхемы были отброшены и когда был расчленен поток из 0 и 1, мы обнаруживаем две фундаментальные теоремы связи, предложенные Шенноном. Они представляют собой два способа, с помощью которых мы можем управлять избыточностью: уменьшая и увеличивая ее.
Для начала зададимся вопросом, с какой скоростью мы можем отправить сообщение? Шеннон показал, что это зависит от того, сколько избыточности мы можем выжать из него. Наиболее действенное сообщение фактически будет напоминать цепочку произвольного текста: каждый новый символ будет максимально информативен, а значит, максимально непредсказуем. Ни один символ не появится бесцельно. Конечно, в сообщениях, которые мы посылаем друг другу – либо с помощью телеграфной связи, либо посредством телевещания. – символы постоянно растрачиваются впустую. Поэтому скорость общения по выбранному каналу связи зависит от того, как мы кодируем сообщения, насколько компактно «упаковываем» их перед «отгрузкой».
Это было одно из преимуществ физического представления об информации – бит стал в один ряд с метрами и граммами.
Первая теорема Шеннона доказывает, что существует точка максимальной компактности для каждого исходящего сообщения. Мы достигаем пределов связи, когда каждый символ сообщает нам что-то новое. И так как теперь у нас есть четкое мерило информации – бит, – мы также знаем, как сильно можно ужать сообщение, прежде чем оно достигнет точки идеальной сингулярности. Это было одно из преимуществ физического представления об информации – бит стал в один ряд с метрами и граммами. Это было доказательством того, что эффективность нашей связи зависит не только от свойств нашего способа общения, от толщины провода или частотного диапазона радиосигнала, но от чего-то более измеряемого, что присутствует в самом сообщении.
Оставалось только проделать работу по отправке или кодированию сообщения: сконструировать надежные системы, которые бы отсекли ненужную избыточность наших сообщений в источнике отправки и воссоздали их в точке получения. Шеннон вместе с инженером МТИ Робертом Фано сделал первые важные шаги в этом направлении, а в одной из научных статей, которую он написал спустя время после того, как была опубликована его знаменитая работа, Шеннон объяснил, как будет работать код, сокращающий избыточность. Все зависит, утверждал он, от статистической природы сообщений: от вероятности, с которой белый пиксель оказывается рядом с другим белым пикселем на изображении, или от частоты появления букв, диграмм и триграмм, которые делают генерированные в произвольном порядке отрывки все более похожими на английский язык. Представьте, что в нашем языке всего четыре буквы: А, В, С и D. Представьте, что этот язык, как любой другой, со временем начинает обрастать шаблонами. Со временем половина букв оказывается буквой А, четверть букв оказывается буквой В, а буквы С и D составляют каждая по одной восьмой. Если бы мы захотели отправить сообщение на этом языке по радиоволнам в виде символов 0 и 1, какой код был бы самым лучшим?
Возможно, мы сделаем выбор в пользу очевидного решения: каждая буква получает одинаковое количество битов. Для четырехбуквенного языка нам потребуются два бита для каждой буквы:
А = 00
В = 01
С= 10
D = 11
Но мы можем поступить лучше. На самом деле, когда скорость передачи сообщения становится таким ценным ресурсом (вспомните все то, что вы не можете сделать с модемом коммутируемой линии передачи), мы вынуждены поступить лучше. И если мы будем держать в уме статистику этого конкретного языка, то это получится. Нужно всего лишь использовать минимальное количество битов для самых распространенных букв и применять лишь самые громоздкие цепочки для самых редких букв. Другими словами, менее «неожиданная» буква кодируется наименьшим количеством битов. Представьте, что Шеннон предложил нам использовать другой код:
А = О
В = 10
С = 110
D = 111[7].
Чтобы доказать, что этот код более эффективен, мы можем увеличить количество битов для каждой буквы, полагаясь на тот случай, что появится каждая буква и это даст нам среднюю величину битов для каждой буквы:
(1/2) 1 + (1/4) • 2 + (1/8) • 3 + (1/8) • 3 = 1.75.
Сообщение, отправленное с этим вторым кодом, менее избыточно: вместо того чтобы использовать 2 бита на каждую букву, мы можем выразить идентичную идею более компактно – 1,75. Оказывается, что 1,75 – особое число в этом четырехбуквенном языке – это также количество информации в битах, заключенное в любой букве. И здесь мы достигаем предела. Для данного языка невозможно создать более эффективный код. Он максимально наполнен информацией: ни один знак не потрачен впустую. Первая теорема Шеннона показывает, что более сложные источники (аудио, видео, ТВ, веб-страницы) могут быть эффективно сжаты подобным – если не более сложным – образом.
Коды данного типа – впервые использованные Шенноном и Фано, а затем усовершенствованные студентом Фано, Дэвидом Хаффманом, и десятками других ученых, – являются столь значимыми, потому что существенно расширяют диапазон ценных с точки зрения информативности сообщений. Если бы мы не смогли сжать наши сообщения, то единственный аудиофайл загружался бы у нас несколько часов, поток веб-видео был бы невозможно медленным, а многочасовые просмотры телевизора потребовали бы многочисленных полок с пленками, а не маленькой коробки с дисками. Благодаря тому, что мы можем сжать наши сообщения, видеофайлы становятся компактнее в двадцать раз. Весь этот процесс связи – быстрее, дешевле и объемнее – основан на осознании Шенноном нашей предсказуемости. Вся эта предсказуемость должна быть убрана; со времен Шеннона наши сигналы проходят в «облегченном виде».
Шеннон дал всем последующим поколениям инженеров ориентир, а также возможность понять, когда они бессмысленно теряют время.
Но при этом они подвержены риску. Каждый сигнал подвержен действию помех. Каждое сообщение может быть повреждено, прервано, искажено.