С. Если некоторые сообщения (или некоторые слова в языке) используются чаще других, формула становится немного сложнее. Сначала вероятность первого варианта умножается на –1, а затем полученный результат умножается на логарифм от этой вероятности. После этого такая же операция производится со вторым вариантом и так далее. Когда варианты закончатся, результаты складываются и получается информационное содержание – энтропия Шеннона.
Чтобы проиллюстрировать это, вернемся к примеру с подбрасыванием правильной монеты. Оба исхода – орел и решка – имеют одинаковую вероятность: 1 к 2, или 0,5. Логарифм по основанию 2 от 0,5 равен –1. Для варианта “орел” умножим его на 0,5 и на –1. Затем поступим так же с вариантом “решка”. Сложим результаты. Это даст нам 1 бит энтропии Шеннона – объем информации, заключенной в подбрасывании монеты.
В другой части своей статьи Шеннон обратился к иному наблюдению Хартли: о том, что значение имеет и канал связи. Если канал позволяет использовать широкий диапазон частот – например, если он “широкополосный”, – в сообщении получится уместить больше деталей, а следовательно, у вас будет больше вариантов, что позволит вам передать больший объем информации за отведенное время. На основе этого Шеннон вывел математику “пропускной способности канала”. Он показал, что можно охарактеризовать используемый для передачи информации канал, назвав максимальное число битов, которые можно гарантированно загружать в него (и считывать с него) каждую секунду. Приведу пример (хотя и упрощенный): пропускная способность С зависит от мощности сигнала S, мощности неконтролируемых проблемных помех N и диапазона частот сигнала, пропускаемых каналом, W (это называется полосой пропускания). Опишем их взаимосвязь на языке математики:
Пропускная способность канала измеряется в битах в секунду – а лучше, конечно, в миллионах бит (мегабитах) в секунду, если измерять приходится пропускную способность вашего интернет-соединения. Именно поэтому широкополосный доступ в интернет лучше старой технологии доступа через телефонный модем: он создает более широкую полосу пропускания и увеличивает W в приведенном уравнении. Когда вы находитесь далеко от источника данных, мощность сигнала S падает, что уменьшает C – иногда настолько, что данные передаются очень медленно, и возникает буферизация. Если на вашей интернет-линии много помех, N растет и уменьшает C еще сильнее. Большинство из нас каждый день сталкивается с этим, сидя в интернете с телефонов, планшетов и компьютеров. Пожалуй, пропускная способность, описанная Шенноном, касается лично нас в большей степени, чем любое из предыдущих поколений.
Четвертый важный вклад в науку Шеннон сделал, показав, как работать с ошибками, которые возникают при передаче данных. Отправляя сигнал, вы можете столкнуться с помехами – случайными внешними факторами, – которые не позволят получателю прочитать и расшифровать пришедшие к нему биты.
Эта проблема возникает не только в сфере высоких технологий: представьте, что вы общаетесь с помощью светового кода в Древнем Риме – например, двигаете зеркало, чтобы систематически отражать солнечные лучи в сторону союзной армии, стоящей на соседнем холме. Если свет упадет на чей-нибудь щит, в вашем сообщении появится ложный бит. Сегодня, когда вы передаете HTML-код веб-страницы по медному проводу, подобное может спровоцировать случайный электрический сигнал от удара молнии или случайное колебание в одном из компонентов электрической схемы. Оптоволоконный кабель, по которому телевизионный сигнал передается в форме отдельных световых импульсов, тоже может терять часть фотонов – сгустков энергии света – с важнейшими битами информации. Но переживать не стоит, ведь Шеннон о вас позаботился.
Можно подумать, что у этой проблемы есть очевидное решение, которое не требует вмешательства Шеннона: достаточно всего лишь передать сигнал дважды. Это, несомненно, неплохая идея. Если два сигнала совпадут, можно с высокой степенью уверенности сказать, что вы получили верное сообщение, поскольку маловероятно, что одинаковое случайное вмешательство (или случайная потеря) произошло дважды. Но так передача замедлится, а расход энергии возрастет. Шеннон показал, что в этом нет необходимости.
В его статье есть раздел о “кодировании каналов”, где он утверждает, что, зная, с какими помехами вам предстоит столкнуться, вы можете разработать такую систему кодирования, которая обеспечит вам математически идеальную коммуникацию. Допустим, я хочу передать четыре фрагмента информации. Чтобы различать их, я присвою им “кодовые имена”, состоящие из пар двоичных символов:
При передаче по каналу с помехами, которые будут время от времени отнимать биты, возникнет риск, что получатель увидит B там, где я имел в виду A, или D там, где я имел в виду C. Что, если передать каждый фрагмент дважды? Тогда C превратится в 1010, но при изменении одного бита из-за помехи может получиться 1011. Будет казаться, что я передал либо С, либо D, – и сделать выбор будет невозможно.
Я мог бы передавать каждый фрагмент по три раза. Теперь C будет 101010, и изменение одного бита даст 111010, 100010 или 001010. Какой бы бит ни изменился, большинством голосов (2 к 1) можно постановить, что я хотел передать 10.
Шеннон, однако, показал, что у нас есть способ получше: хотя это и не очевидно, нам достаточно передавать лишь пять битов, при условии, что мы тщательно оформим закодированные слова таким образом, чтобы сделать “расстояние” между ними максимальным. В нашем примере шифрование должно осуществляться так:
Здесь случайная замена одного бита не вызовет вопросов о том, какой именно фрагмент информации пытались передать. Попробуйте! На удивление – а это удивило всех, – Шеннон показал, что можно найти оптимальную схему кодирования для любого канала с шумами. Иными словами, всегда существует корректирующий код, позволяющий передавать данные, используя почти всю пропускную способность канала (сегодня этот закон часто называют пределом Шеннона для безошибочной передачи данных). К несчастью, аргумент Шеннона был вероятностным. Шеннон не дал никакого способа понять, какие кодовые комбинации позволяют достичь предела в различных ситуациях.
Выбор корректирующих кодов – это, пожалуй, единственное, что не освещалось в статье Шеннона, вышедшей в 1948 году. Во всех остальных отношениях теория информации была полностью оформлена. При перепечатке статьи на следующий год в нее было внесено лишь одно значимое изменение: если раньше в названии стоял неопределенный артикль, который делал математическую теорию связи одной из многих возможных, то теперь на его место встал определенный артикль, указывающий, что другой теории быть не может. Как вам такое заявление?
После публикации статьи Шеннона оставалось лишь дождаться появления аппаратного обеспечения, чтобы воплотить в жизнь описанные в ней идеи. Через несколько десятилетий, когда нужные технологии оказались достаточно развитыми, инновация Шеннона дала нам электронную почту, интернет, стриминговые аудио- и видеосервисы, хранилища данных и почти все, что мы принимаем как должное в XXI веке. Но часто мы упускаем из виду то, к каким культурным сдвигам она привела. Шеннон не просто подарил нам видео по запросу. Он подарил нам спутники, космические программы, открытие миров за пределами Земли, первые шаги человека по Луне. Но все перечисленные достижения, пожалуй, меркнут в сравнении с важнейшим следствием появления теории информации: открытием, что Земля – это хрупкая и красивая колыбель человечества, которую нужно оберегать.
Восход Земли. Билл Андерс, изображение из открытого источника, via Wikimedia Commons
В рождественский сочельник 1968 года экипаж “Аполлона-8” передал на Землю первые снимки нашей планеты в ходе прямого эфира с окололунной орбиты, во время которого астронавты по очереди читали выдержки из Книги Бытия. “Бесконечное одиночество восхищает и позволяет оценить, что мы оставили там, на Земле”, – сказал пилот командного модуля Джим Ловелл[218]. В этот момент Уильям Андерс сделал знаменитый снимок “Восход Земли”, который, как считается, дал толчок к основанию движения в защиту окружающей среды. Позже Андерс сказал: “Мы отправились исследовать Луну, но вместо этого открыли Землю”[219]. И помогла им в этом теория информации Клода Шеннона.
Вообще-то все началось со спутника. В октябре 1957 года СССР запустил первый искусственный спутник, и американцы вдруг почувствовали, что проигрывают в гонке. Год спустя в США основали агентство NASA. Его задача была проста: сделать США мировым лидером в исследовании космоса. Вскоре после этого, 25 мая 1961 года, президент Джон Кеннеди сказал Конгрессу, что “страна должна приложить все усилия, чтобы до конца десятилетия отправить человека на Луну и вернуть его живым на Землю”[220].
Инженеры NASA уже знали, что ключевую роль в этом сыграет работа Шеннона. Исследуя космос, любой корабль должен обмениваться с Землей навигационными и коммуникационными данными, а также изображениями. Чтобы транслировать сигналы из космоса на Землю, требовались громоздкие и тяжелые электрогенераторы, поэтому любая возможность снизить стартовую массу, например, применив математику теории связи, рассматривалась в первоочередном порядке.
Всего за несколько недель до выступления Кеннеди в 1961 году Лаборатория реактивного движения NASA опубликовала элементарное руководство по теории информации Шеннона, которым мог воспользоваться любой, кому нужно было наладить обмен сигналами между Землей и открытым космосом. Оно называлось “Теория кодирования и ее применение в системах связи”[221]