Национальный исследовательский университет "Высшая Школа Экономики"
Опубликован: 19.11.2012 | Доступ: свободный | Студентов: 12624 / 7806 | Длительность: 29:54:00
Специальности: Менеджер, Преподаватель
Лекция 6:

Информационные технологии

< Лекция 5 || Лекция 6: 123456 || Лекция 7 >

Модели источников сообщений. Конечный вероятностный источник сообщений

Большинство информационных процессов связано не с отдельными сообщениями, а с последовательностями (потоками) сообщений. Например, при чтении человек анализирует последовательность букв, образующих слова и текст в целом; данные, поступающие от измерительных устройств или передающиеся по каналам связи, представляют собой последовательности сообщений. Для описания (моделирования) подобных ситуаций удобно ввести формальное понятие конечного (комбинаторного) источника сообщений.

Конечным (комбинаторным) источником называется произвольное множество S. Элементы множества S обычно называются сообщениями. Источник может породить любое из этих сообщений.

В некоторых случаях бывает известно, что в последовательностях сообщений одни сообщения встречаются чаще, чем другие. Например, в текстах на русском языке буквы "о", "е" встречаются более чем в 10 раз чаще букв "щ", "э", "ф" [30]. В других естественных языках наблюдается аналогичная ситуация. Использование дополнительной информации о частотах появления сообщений вероятностного источника может повысить эффективность обработки данных.

Формализацией понятия частоты появления того или иного события в математике является его вероятность. Вероятность события A обозначают обычно символом P(A). Вероятность некоторого события (сообщения) можно представлять себе как долю тех случаев, в которых оно появляется, от общего числа появившихся событий (сообщений).

Так, если заданы четыре сообщения A_1, A_2, A_3, A_4 с вероятностями P(A_1)=1/2, P(A_2)=3/8, P(A_3) = P(A_4)=1/16, то это означает, что среди, например, 10000 переданных сообщений около 5000 раз появляется сообщение A_1, около 3750 - сообщение A_2 и примерно по 625 раз - каждое из сообщений A_3 и A_4.

Распределение вероятностей появления отдельных сообщений в последовательности является важной ее характеристикой и существенно влияет на дальнейшие процессы обработки сообщений. Для дальнейшего удобно ввести формальное понятие конечного вероятностного источника сообщений.

Вероятностным источником S назовем произвольное множество (сообщений) с вероятностями (частотами) появления каждого из них. Удобно представлять вероятностный источник в виде таблицы.

Вероятностный источник сообщений S

Сообщение A_1 A_2 \dots A_n
Вероятность появления сообщения p_1 p_2 \dots p_n

С позиций теории вероятностей вероятностный источник представляет собой дискретное распределение.

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

Для практики желательно уметь оценивать степень неопределенности различных вероятностных источников. Рассмотрим источник с n равновероятными сообщениями. Понятно, что степень неопределенности такого источника зависит от n. При n=1 неопределенность отсутствует, т. к. может появиться только одно единственное сообщение. При больших n неопределенность больше (трудно предсказать появление какого-то определенного сообщения из n возможных). Из рассмотренного примера следует, что функция, описывающая неопределенность источника, должна принимать нулевое значение в случае отсутствия неопределенности (при n=1), а при увеличении n она должна возрастать. Можно показать [31], что, наложив ряд простых и естественных требований на функцию, которая должна характеризовать неопределенность вероятностного источника, можно определить вид такой функции.

Неопределенность вероятностного источника S с множеством сообщений \{m_1,_2,\dots, m_n\}, вероятности появления которых равны p_1,p_2,\dots,p_n соответственно, принято описывать функцией (величиной)

H(S)=\sum_{i=1}^{n}p_i*\log_2\frac{1}{p_i} ( 6.1)

Величина H(S) называется энтропией источника сообщений S. К. Шеннон предложил использовать энтропию для описания источников информации [30].

Неопределенность источника можно трактовать как его информативность. Действительно, если неопределенность источника мала или даже равна 0, то очередное сообщение не несет новой информации, т. к. легко может быть предсказано заранее. И наоборот, очередное сообщение неопределенного источника плохо предсказуемо, скорей всего оно будет новым, отличным от любого ожидаемого сообщения.

Входящее в выражение (6.1) для энтропии выражение \log_21/p_i можно рассматривать как информативность (неопределенность) i-го сообщения источника, поскольку оно вполне соответствует интуитивному представлению о неопределенности. Энтропию можно рассматривать как среднюю информативность всего источника S.

От вероятностного источника зависит выбор оптимального в среднем способа кодирования сообщений.

Кодирование сообщений источника и текстов. Равномерное кодирование. Дерево кода

Чаще всего информация представляется в виде языковых сообщений (цепочек знаков или слов), причем в процессе ее обработки форма представления может меняться. Например, сообщение, предназначенное для передачи по телеграфу, первоначально может быть представлено в виде рукописного текста. Телеграфист переводит это сообщение в последовательность длинных, коротких импульсов и пауз, передающихся по телеграфному каналу. А на приемном конце такая последовательность может быть преобразована в печатный текст. Рассмотренные преобразования представляют собой пример кодирования сообщений. Еще одним примером кодирования является тайнопись, когда исходное сообщение преобразуется в другую форму, скрывающую содержание исходного сообщения.

Различные задачи кодирования можно формализовать следующим образом. Пусть A и B алфавиты, S \subset A^* некоторое множество слов в алфавите A. Тогда функция

c:S \to B^*

называется кодированием или кодом. Кодом называется также образ отображения c, обозначаемый Im(c). Если существует обратная функция c^{-1}, то она называется декодированием. Одно и то же множество сообщений можно закодировать многими различными способами. Поэтому среди многих вариантов кодирования ищут такой, который был бы оптимальным в некотором смысле или обладал определенными полезными свойствами. Наиболее естественным требованием является возможность декодирования.

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

Кодом называется отображение

c:A \to B^* ( 6.2)

сопоставляющее каждому знаку из алфавита A некоторое слово, которое составлено из знаков, входящих в B. Слова, входящие в Im(c), называются кодовыми словами. Отображение (6.2) может задаваться любым из известных в математике способов. Для конечного множества A чаще всего используется табличный способ, задающий код (6.2) таблицей.

Кодируемая буква алфавита А Кодовое слово
a_1 c(a_1)
a_2 c(a_2)
\dots \dots
a_n c(a_N)

Такая таблица называется кодовой таблицей. В качестве примера можно привести таблицу кодирования алфавита \{0, 1, 2, 3, 4, 5, 6, 7\} из цифр восьмеричной системы счисления словами из упоминавшегося ранее бинарного алфавита В = \{0, 1\}. В данном случае отображение (6.2) имеет вид \{0,1, 2, 3, 4, 5, 6, 7\} \to B^3.

Кодируемый знак Кодовое слово
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

Еще одним примером является так называемый код ASCII, фрагмент которого показан в следующей таблице.

Знак Кодовое слово (в десятичной системе счисления) Кодовое слово (в шестнадцатеричной системе счисления)
a 97 61
b 98 62
c 99 63
d 100 64
e 101 65
f 102 66
g 103 67
h 104 68
i 105 69
j 106 6A

Кодирование слов. Отображение (6.2) позволяет перейти от кодирования отдельных знаков (букв конечного алфавита) к кодированию слов. Если \alpha = a_1, a_2, \dots, a_k - слово, состоящее из знаков (полученное конкатенацией знаков) a_1, a_2, \dots, a_k \in A, то кодом c(\alpha) слова \alpha (по определению) является конкатенация кодов c(a_i) знаков a_i, образующих слово, т. е. с(\alpha) = с(а_1)\cdot с(а_2)\cdot \dots \cdot c(a_k) \in B^*. Например, с применением таблицы ASCII кода (см. последнюю таблицу) слово head будет закодировано последовательностью 10410197100 при использовании десятичной системы счисления или последовательностью 68656164 - в шестнадцатеричной.

Условие (необходимое) однозначной декодируемости заключается в инъективности отображения (6.2). Инъективность обеспечивает однозначную декодируемость отдельных знаков из алфавита A. Однако однозначной декодируемости слов из Im(c) это условие не обеспечивает, если коды отдельных знаков, входящих в слово, следуют один за другим и не разделяются специальным символом. Подробнее проблема однозначной декодируемости будет рассмотрена позже.

В частном случае, когда знаки из A кодируются однобуквенными словами, отображение (6.2) имеет вид c:A \to B и представляет собой простую замену (подстановку) знаков. Однако чаще всего, в основном из-за использования в большинстве технических устройств обработки информации двоичного алфавита B =\{0, 1\}, каждый знак из A кодируется последовательностью знаков (словом) из B.

Недостаточность количества знаков в алфавите B является препятствием применения простой замены для кодирования (не обеспечивается инъективность и, следовательно, однозначность декодируемости при |A|>|B|). Для устранения этой проблемы используются множества новых, "составных" объектов из степеней B^2, B^3, \dots алфавита B. Множество B^k состоит из упорядоченных последовательностей элементов из B (векторов) длины k. Число элементов |B^k| множества B^k равно m^k. Например, для двоичного алфавита B =\{0, 1\} имеем |B^k|=2^k. Таким образом, взяв достаточно большую степень k, можно получить нужное количество элементов вторичного алфавита.

Если каждый знак алфавита A отображается при кодировании c:A\to B^k в слово одинаковой длины k, то говорят, что код является кодом постоянной длины. Такие коды широко распространены, поскольку для обработки сообщений используются вычислительные машины, коммуникацион-ные устройства и другое оборудование, имеющее регистры фиксированного размера.

Процедуру кодирования слова \alpha = a_{i1} a_{i2} \dots a_{ik} в алфавите A можно представить следующим образом. Имеется кодовая таблица, в левом столбце которой находятся кодируемые буквы алфавита A, а в правом столбце - соответствующие кодовые слова (кодовые слова могут иметь различную длину).

Процедура кодировании слов с использованием кодовой таблицы

Рис. 6.4. Процедура кодировании слов с использованием кодовой таблицы

Для каждого знака слова \alpha = a_{i1} a_{i2} \dots a_{ik}, начиная с первого знака, в кодовой таблице находится строка, в которой в левом поле располагается кодируемый знак (буква), и из правого поля этой строки берется соответствующее кодовое слово в алфавите B. Найденное кодовое слово приписывается слева (конкатенируется) к уже сформированной части кода слова \alpha. Кодовое слово первой буквы слова \alpha приписывается к пустому слову е. Эта процедура схематически показана на рис.6.4.

< Лекция 5 || Лекция 6: 123456 || Лекция 7 >
Фахруддин хемракулыев
Фахруддин хемракулыев
Шерхон Давлатов
Шерхон Давлатов

Почему тесты (1,2,3..) не работают. Хочу пройти тест но не получается