Эдуардо Арройо - Том 42. Путешествие от частицы до Вселенной. Математика газовой динамики
Но мы можем использовать и степени числа два. Возьмем, например, число 10:
10 = 1·8 + 0·4 + 1·2 + 0·1 = 1·23 + 0·22 + 1·21 + 0·20.
Его запись в двоичной системе выглядит так:
1010.
Значит, для передачи числа 10 требуется четыре бита информации. В десятичной форме мы могли бы выразить 10 как:
10,000000000…
И для его передачи нам потребовалось бы бесконечное число символов. Двоичное выражение десяти также можно было бы представить в виде:
1010,000000000000000…
И снова нам потребовалось бы бесконечное количество битов для передачи его в таком виде. Однако, поскольку ноль после запятой повторяется бесконечно, он не несет никакой информации, и его энтропия Шеннона равна нулю. Итак, энтропия Шеннона числа 10 — четыре бита.
Теперь обратим внимание на хорошо всем нам известное число — π. Это иррациональное число, то есть его десятичное выражение представляет собой бесконечный ряд цифр, следующих друг за другом без какой-либо регулярности. Невозможно сказать, какой будет следующая цифра числа π на основе предыдущих, даже если их тысячи миллионов. Какова же энтропия Шеннона этого числа?
Десятичное представление К выглядит следующим образом:
3,14159265358979323846264338327950288419716939937510582097494459230781…
Как видите, перед нами бесконечное число случайных и равновероятных знаков: следующей цифрой с одинаковой вероятностью могут быть как ноль, так и, например, три. В двоичном выражении число π выглядит как:
11,0010010000111111011010101000100010000101101000110000100011010011…
И снова мы сталкиваемся с бесконечным рядом непредсказуемых нулей и единиц. В соответствии с определением энтропии Шеннона, число π содержит бесконечное количество информации, поскольку каждый его знак соответствует одному биту, и таких знаков бесконечное количество.
Многие математики предполагают, что, поскольку число знаков К бесконечно и они следуют в случайном порядке, должна существовать такая последовательность внутри числа π, которая соответствовала бы полному содержанию «Одиссеи» в двоичном коде. Или должна быть последовательность, соответствующая двоичному представлению всех фотографий, которые читатель когда-либо сделал в своей жизни. Но подобные предположения пока остаются недоказанными.
Применение энтропии Шеннона
Теория информации Шеннона имеет принципиальное значение для разработки эффективных систем коммуникации, в которых нужно не только передать сообщение с минимальными затратами энергии, но и учитывать ошибки при передаче и предусмотреть возможность их исправления. В нашу эпоху телекоммуникаций энтропия Шеннона стала чрезвычайно важным компонентом технологий.
Другая область применения теории информации — лингвистика, где энтропия Шеннона используется для анализа избыточности языковых средств. Один из самых удивительных результатов формулируется следующим образом: из каждого текста можно исключить половину букв, и информация при этом сохранится. Как видите, язык — крайне избыточный инструмент для передачи сообщений. Также было открыто, что обычно самые короткие слова в языке встречаются чаще всего — в соответствии с законом минимального усилия, в котором можно увидеть параллель с принципом наименьшего действия в физике.
Поскольку любой физический или биологический процесс влечет за собой обмен и обработку информации, теория информации может применяться в изучении живых систем, например для определения плотности информации, содержащейся в молекуле ДНК. С этой точки зрения может быть проанализирован и человеческий мозг, поскольку этот орган в основном занимается обработкой информации. Последние оценки говорят о нашей способности обрабатывать примерно 50 битов в секунду. Подтверждает это и скорость нашего чтения: обычный человек читает около страницы в минуту. Если предположить, что на странице примерно триста слов, это составит около пяти слов в секунду, а если принять, что в слове 10 битов, окажется, что человек обрабатывает 50 битов в секунду.
Однако наши органы могут получить гораздо большее количество информации о внешнем мире. Так, глаза посылают в наш мозг около 10 млн битов в секунду. Но сырая информация, которую мы получаем, перед передачей в наши центры аналитической обработки должна быть очень сильно сжата.
Алгоритмическая теория информации
Мы видели, что, согласно теории Шеннона, количество информации, содержащееся в числе π у бесконечно. Но существует и другой способ восприятия данных: например, мы можем предположить, что вся информация, необходимая для вычисления знаков π, содержится в математической формуле, описывающей это число, и, следовательно, нам не нужно бесконечное количество информации.
Этот альтернативный взгляд привел к появлению алгоритмической теории информации. Эта математическая теория, которая дополняет теорию Шеннона, была разработана сначала русским математиком Андреем Колмогоровым (1903–1987), а затем — аргентинско-американским математиком Грегори Хайтином (1947). Она основывается на понятии алгоритма — набора простых инструкций для компьютера. Ниже приведен пример алгоритма на вымышленном языке программирования, с помощью которого можно определить, является число символов во фразе четным или нечетным.
1. Посчитай число символов во фразе и сохрани результат в х.
2. Вычисли остаток деления х на два и сохрани результат в r.
3. Если r равен нулю, напиши на экране: «Число символов четное».
4. Если r не равен нулю, напиши на экране: «Число символов нечетное».
* * *
ГРЕГОРИ ХАЙТИН
Грегори Хайтин, родившийся в 1947 году, — аргентинско-американский программист и математик. Еще будучи подростком, он вывел алгоритмическую теорию информации и свою собственную версию теоремы Гёделя о неполноте, где показал, что количество недоказуемых теорем в математике намного больше, чем было принято считать. Сейчас Хайтин занимается метабиологией — математическим подходом к биологии, который изучает случайное развитие компьютерных программ для понимания биологической эволюции и возникновение творчества в строгой математической форме.
* * *
Согласно алгоритмической теории информации, информация, содержащаяся в цепочке символов, задана длиной самой короткой программы, которая ее порождает. Возьмем цепочку:
Существует программа, порождающая ее с помощью очень короткого кода.
1. Напиши единицу.
2. Вернись к началу программы.
В этой цепочке содержится очень мало информации.
Важно, что количество информации зависит от используемого языка программирования. Так, программа на языке Java и программа на языке С имеют разное количество строк, даже если обе делают одно и то же. Чтобы преодолеть эту проблему, воспользуемся понятием универсального языка программирования: язык программирования универсален, если его можно использовать для написания любой программы, которую можно написать на любом другом языке. Все существующие сегодня языки программирования универсальны, в том смысле что можно создать программу на языке Java, которая понимала бы программы, написанные на С, и наоборот. Хотя содержание информации в этих программах будет разным, эти отличия относительно небольшие и зависеть они будут не от количества строк кода, а от разницы между двумя языками программирования. А эта разница всегда постоянна.
Применим алгоритмическое определение информации к вычислению знаков числа π. Вспомним, что, согласно Шеннону, количество информации, содержащейся в числе π, бесконечно. Однако существует простая формула, которая позволяет довольно точно вычислить знаки этого числа. Выглядит она следующим образом:
На основании этой формулы можно создать очень короткую программу. И это означает, что в соответствии с алгоритмической теорией π не содержит бесконечного количества информации.
Как видите, в этом конкретном случае алгоритмический подход несколько отличается от предложенного Шенноном, но в большинстве других случаев они согласуются. Например, для передачи случайной последовательности нулей и единиц самой короткой программе необходимо столько же бит, сколько цифр содержится в цепочке.
Число омега
Возникает вопрос: существует ли число, содержащее бесконечное количество информации по определению Колмогорова и Хайтина (подобное π в определении Шеннона)? Да, такое число существует, и это одно из самых удивительных чисел в истории математики — число омега, известное также как постоянная Хайтина. Ее свойство заключается в том, что эта постоянная не может порождаться кодом, содержащим меньше битов, чем она сама. Это означает, что все биты числа омега полностью случайны.