Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AlgStr / Библиотека / ЛЕКЦИИ / POSIBNIK / СТРУКТУРИ ТА ОРГАНИЗАЦИЯ ДАНИХ В ЕОМ.doc
Скачиваний:
42
Добавлен:
23.03.2015
Размер:
222.72 Кб
Скачать

1.2. Количество информации

Оценка количества информации основана на законах теории вероятности. Сообщение имеет ценность, несет информацию только тогда, когда мы узнаем из него об исходе события, имеющего случайный характер, когда оно в какой-то мере неожиданно. Ведь сообщение об известном никакой информации не содержит. Чем больше интересующее нас событие имеет случайных исходов, тем ценнее сообщение о его результате, тем больше информации в нем содержится. Например, сообщение о распаде атомного ядра.

Говорят, что сообщение информативно, если оно увеличивает знание, т.е. уменьшает незнание или неопределенность относительно того, произошли или нет какие-то события, верны или нет какие-то факты. Поэтому хотелось бы измерять не объем сообщения, а его информативность, т.е. меру уменьшения неопределенности для потребителя информации.

Самое простое информативное сообщение – это опять таки 0 или 1, т.е. один бит. Такое сообщение передает ответы на вопросы, которые допускают двоичный ответ: “да” (1) или “нет” (0). И снова бит оказывается минимальной единицей количества информации. Но подобный ответ можно передать и в текстовом виде: yes/no, да/нет, верно/неверно, можно/нельзя и т.д. Подобные тексты имеют разную длину, но содержат одну и ту же информацию, определяемую одним битом. В общем случае получатель информации ожидает сообщение о том, что произошло одно событие из множества C = {c1, c2, …, cN}. Если множество C содержит всего два элемента (N=2), то информацию о конкретном исходе удастся передать одним битом (0 – первое событие, 1 – второе). Если же N>2, то одним битом не обойтись. Здесь приходит на помощь такая идея.

Один бит – это ответ на двоичный вопрос. Однако любую информацию можно получить, задавая двоичные вопросы. Попробуем измерять информацию, содержащуюся в сообщении, количеством двоичных вопросов, из ответов на которые, мы получимте же сведения, что и из данного сообщения.

Например, мы хотим узнать счет четвертьфинальной игры Украина – Италия на чемпионате мира в Германии 2006 года. Будем считать, что ни одна из команд не забила более трех голов. Тогда все возможные исходы этого матча можно свести в таблицу.

Таблица 1

Италия

Украина

0:0 0:1 0:2 0:3

1:0 1:1 1:2 1:3

2:0 2:1 2:2 2:3

3:0 3:1 3:2 3:3

Какое отношение имеет угадывание элементов множества к кодированию сообщений? Самое прямое. Четыре вопроса о результатах матча можно сформулировать так, что они будут пригодны для любого счета и каждому счету будет соответствоватьсвоя определенная последовательность двоичных ответов.Вопросы об исходе матча можно задавать разными способами, но разумно будет если каждый вопрос будет максимально сужает неопределенность ситуации. Поэтому вопросы будем задавать таким образом, чтобы они делили всюобласть возможных исходов примерно пополам.

Вопрос 1: Забила ли Украина более одного гола? Да – 1 / Нет – 0;

Вопрос 2: Забила ли Италия более одного гола? Да – 1 / Нет – 0;

Вопрос 3: Забила ли Украина четное число голов? Да – 1 / Нет – 0;

Вопрос 4: Забила ли Италия четное число голов? Да – 1 / Нет – 0;

Как известно результат этого матча 0:3 в пользу Италии. Поэтому ответы на эти вопросы можно представить в виде строки 0110. Это строка и будет информационным сообщением, хранящим результат матча. Если получателю сообщения известно правило кодирования (вопросы), то результат ему можно сообщить в виде строки из этих четырех двоичных цифр. Количество двоичных вопросов, которые необходимо было задать, чтобы полностью прояснить ситуацию и будет равно количеству информации в данном сообщении. Интересно заметить, что число исходов в сообщении и количество информации в сообщении об этих исходах связано соотношением 4 = log216. И это не случайно.

Правило. Если N есть степень числа 2, то достаточно задать log2N двоичных вопросов, если нет, то [log2N] + 1.

Это похоже на способ представления десятичного числа степенью двойки, только необходимо учесть, что среди чисел надо кодировать и число 0. Т.е. число 16 – это семнадцатое, а не шестнадцатое по счету.

Рассмотрим теперь случай, когда надо регулярно передавать сообщения о том, какое событие из множества C = {c1, c2, …, cN} произошло. С помощью описанного выше метода кодирования нам понадобится каждый раз log2N или [log2N] + 1 бит. Если сообщение передать 200 раз, то и битов будет затрачено в 200 раз больше. Но это количество можно уменьшить, если события имеют разную вероятность.

Пример.

Пусть дано С={С1, С2, С3, С4} и p1=1/2, p2=1/4, p3=1/8, p4=1/8. Заметим, что p1 + p2 + p3 + p4=1.

В этом случае для угадывания события вопросы лучше задавать по-другому: