Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информационная энтропия и неравномерное кодирование. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
872 Кб
Скачать

ЗАКЛЮЧЕНИЕ

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

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

Кодирование Шеннона открывает широкие возможности с педагогической точки зрения, поскольку конкретная практическая реализация основанных на нем алгоритмов сжатия данных будет иметь заметно более простой вид по сравнению с алгоритмом Хаффмана, что позволит студентам лучше понять и усвоить материал.

Алгоритмом Гильберта – Мура возможно решить две проблемы: роста сложности построения кодовых слов и декодирования таких слов, возникающие при кодировании больших последовательностей неупорядоченных по какому-либо признаку символов.

Арифметическое кодирование уже на протяжении нескольких десятилетий заслуженно остается наиболее эффективным методом кодирования в случае дробных неравномерных интервалов распределения вероятностей кодируемых символов, что делает его более гибким в сравнении с алгоритмом Хаффмана.

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

82

СПИСОК ЛИТЕРАТУРЫ

1.Shannon, C. E. A mathematical theory of communication / С. Е. Shannon // The Bell System Technical Journal. – 1948. – Vol. 27, no. 3. – Р. 379–423.

2.Феллер, В. Введение в теорию вероятностей и ее приложения :

в2 т. : пер. с англ. / В. Феллер. – Москва : Мир, 1984. – Т. 1. – 528 с.

3.Кудряшев, Б. Д. Теория информации : учеб. для вузов / Б. Д. Кудря-

шов. – Санкт-Петербург : Питер, 2009.– 314 с.– ISBN 978-5-388-00178-8.

4.Gallager, R. Variations on a theme by Huffman / R. Gallager // IEEE Transactions on Information Theory. – 1978. – Vol. 24, no. 6. – P. 668–674.

5.Manstetten, D. Tight bounds on the redundancy of Huffman codes / D. Manstetten // IEEE Transactions on Information Theory. – 1992. – Vol. 38, no. 1. – Р. 144–151.

6.Witten, I. H. Arithmetic coding for data compression / I. H. Witten, R. M. Neal, J. G. Cleary // Communications of the ACM. – 1987. – Vol. 30, no. 6. – Р. 520–540.

83

ОТВЕТЫ К ЗАДАЧАМ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ

Г Л АВ А 1

§ 1.1

Задача 1. а) I(a) 1.737 бит, I(b) 3.322бит, I(c) 0.737 бит;

б) I(a) = I(b) = I(c) = log2 3 1.585 бит.

Задача 2. N = 32 . Задача 3. H( X ) = 2 бит. Задача 4. H( X ) = 2.75 бит.

Задача 5.

H( XY ) = 2.452 бит; нет, не

являются, так как

H (X ) 1.571 бит,

H(Y ) 0.881 бит и H( XY ) H( X )H(Y ).

Задача 6. H( Xrus ) 4.463 бит; H(X[eng]) ≈ 4.174

бит.

§ 1.2

Задача 1. H( X ) = H(Y ) = log2 3 бит, H( X |Y ) = H(Y | X ) =1 бит.

Задача 2. а) H( X ) 1.157 бит; б) 1000 H(Y | X ) 472.36 бит;

в) H(Y ) 1.094 бит.

Задача 3. H(Y | X ) 0.329 бит. Задача 4. H( X ) 1.858 бит. Задача 5. H(B | A) 1.584 бит.

§ 1.3

Задача 1. p1 =(0.6,0.4) .

Задача 2.α =1/ 2, β =0.

Задача 3. p =(2 / 5,3 / 5).

Задача 4.

 

 

 

 

 

 

 

0.25

0.50

0.25

 

Π =

 

0.40

0.60

0.00

 

 

.

 

 

1.00

0.00

0.00

 

 

 

 

84

Задача 5. Марковский источник имеет два стационарных распределения:

p(1) = (0,3 / 5,0,2 / 5) и p(2) = (3 / 5,0,2 / 5,0).

Задача 6. В общем случае не является, так как при начальном распре-

делении p1 =(α,β,γ,1α β γ ) вектор p

имеет вид

 

3

(α +γ ),

3

(1α γ ),

2

(α

+γ ),

2

(1

 

p=

5

5

5

5

α γ ) .

 

 

 

 

 

 

 

Задача 7. а) 0.4231, 0.0279 и 0.0018; б) 0.5770, 0.0970 и 0.0163.

§ 1.4

 

 

 

Задача

1.

 

 

 

H1( X ) H( X ) 0.998 бит,

 

H2 ( X ) 0.933

бит,

 

H3( X ) 0.911 бит.

H( X | X ) 0.868бит.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задача 2. Начиная с n =130.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задача 3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H ( X ) =t2t

(1

2t )log

2

(12t ), H

2

( X ) = 21(H ( X ) +2t ).

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

§ 1.5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задача 1. а) Так как

 

X

 

n

=115 =161051 > 2l = 28 = 256, то

 

С

 

= 2l = 256 .

 

 

 

 

Поэтому

R = log

2

 

C

 

/ n =8 / 3 бит/символ.

б) В

этом

случае

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

n =113 =1331 < 2l

= 216 = 65536, следовательно

 

С

 

=

 

X

 

n =1331,

откуда

 

 

 

 

 

 

имеем R = log

2

 

C

 

/ n =11/ 3 бит/символ.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задача 2. Указание: множество X n \ T должно содержать 9 кодируемых блоков, вероятности которых равны 0.01 или 0.02.

85

Г Л АВ А 2

§ 2.1

Задача 1. Код C1 .

Задача 3. l = 2.69 бит.

Задача 4. C1 ={00,010,110,111} и C2 ={01,10,000,001,110,111}.

§ 2.3

Задача 1. Код Хаффмана:a = 11, b = 01, c = 101, d = 000, e = 001, f = 1000,

g =1001;средняядлина

 

= 2.55 бит; избыточность r 0.0218 бит.

 

l

 

Задача 2. Средние длины кодов Хаффмана:

 

 

а) для X :

 

 

 

 

 

 

=3 / 2 бит;

 

 

 

 

 

 

 

 

 

l

 

 

 

 

 

 

 

 

 

 

б) для X 2 :

 

 

 

=3 бит;

 

 

 

 

 

 

 

 

 

l

 

 

 

 

 

 

 

 

 

в) для X 3 :

 

 

 

=9 / 2 бит;

 

 

 

 

 

 

 

 

 

l

 

 

 

 

 

 

 

 

 

Во всех случаях избыточность равна нулю: r = 0 бит.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

log

 

N

 

 

 

Задача 3. l = log

 

 

 

 

 

 

 

 

 

 

2

N +2

 

2

2

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

§ 2.4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задача 1. Код Шеннона:

a = 00,

b = 01,

c =100,

d =1011,

e =1100 ,

f =11100, g =11110 .

 

Средняя

длина:

 

= 2.85

бит; избыточность:

 

l

r = 0.3218 бит.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задача 2. Код Гильберта – Мура:

a = 00001, b = 0011, c =100,

d =1100,

e =11110 . Средняя длина:

 

=3.8 бит; избыточность: r =1.6781 бит.

l

§ 2.5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задача

1.

 

Арифметический

 

код

слова

x =bfcea

равен

0101111001000100.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задача 2. cарифм(x) = 011011,

I(x) 6.7616 бит, cшенн(x) =0100010.

86

Приложение А ТАБЛИЦЫ ЧАСТОТНОСТЕЙ БУКВ РУССКОГО

И АНГЛИЙСКОГО ЯЗЫКОВ

Таблица А.1

Таблица частотностей букв русского алфавита

Ранг

Буква

Частотность, %

1

О

10.97

2

Е

8.45

3

А

8.01

4

И

7.35

5

Н

6.70

6

Т

6.26

7

С

5.47

8

Р

4.73

9

В

4.54

10

Л

4.40

11

К

3.49

12

М

3.21

13

Д

2.98

14

П

2.81

15

У

2.62

16

Я

2.01

17

Ы

1.90

18

Ь

1.74

19

Г

1.70

20

З

1.65

21

Б

1.59

22

Ч

1.44

23

Й

1.21

24

Х

0.97

25

Ж

0.94

26

Ш

0.73

27

Ю

0.64

28

Ц

0.48

29

Щ

0.36

30

Э

0.32

31

Ф

0.26

32

Ъ

0.04

33

Ё

0.04

87

Таблица А.2

Таблица частотностей букв английского алфавита

Ранг

Буква

Частотность, %

1

E

12.70

 

 

 

2

T

9.06

 

 

 

3

A

8.17

 

 

 

4

O

7.51

 

 

 

5

I

6.97

 

 

 

6

N

6.75

 

 

 

7

S

6.33

 

 

 

8

H

6.09

 

 

 

9

R

5.99

 

 

 

10

D

4.25

 

 

 

11

L

4.03

 

 

 

12

C

2.78

 

 

 

13

U

2.76

 

 

 

14

M

2.41

 

 

 

15

W

2.36

 

 

 

16

F

2.23

 

 

 

17

G

2.02

 

 

 

18

Y

1.97

 

 

 

19

P

1.93

 

 

 

20

B

1.49

 

 

 

21

V

0.98

 

 

 

22

K

0.77

 

 

 

23

X

0.15

 

 

 

24

J

0.15

 

 

 

25

Q

0.10

 

 

 

26

Z

0.05

 

 

 

88

Приложение Б ПРЕОБРАЗОВАНИЕ ДЕЙСТВИТЕЛЬНЫХ ЧИСЕЛ

В ДВОИЧНУЮ СИСТЕМУ СЧИСЛЕНИЯ

Перевод действительных чисел в двоичную систему счисления основывается на следующем разложении:

x = an 2n +an1 2n1 + +a1 21 +a0 20 +a1 21 +a2 22 + , (Б.1)

где n – некоторое неотрицательное целое число; an ,an1, ,a1,a0 ,a1,a2 , – числа, принимающие значения либо 0, либо 1. Можно доказать, что для всякого действительного числа x разложение (Б.1) единственно. В компактном виде это разложение можно записать как

anan1 a1a0 .a1a2 ,

где последовательность чисел слева от разделителя представляет собой двоичную запись целой части числа x , а последовательность чисел справа от разделителя – это двоичная запись дробной части числа x . Так же, как и в десятичной системе счисления, некоторые числа представляются обрывающимся двоичным рядом (Б.1), но для большинства действительных чисел разложение (Б.1) будет бесконечным. Например, число x =1/ 3 представляется бесконечным рядом

1/ 3 =0 21 +1 22 +0 23 +1 24 +0 25 +1 26 + .

Его дробная часть в двоичной записи – это бесконечная последовательность чередующихся нулей и единиц: 0.01010101 . Напротив, число x = 3 / 4 представляется конечным рядом (Б.1)

3 / 4 =1 21 +1 22 ,

а его двоичная запись имеет вид 0.11.

89

На практике перевод действительных чисел в двоичную систему счисления осуществляется в два этапа. Сначала выделяют целую часть числа и переводят её в двоичную форму. Алгоритм решения подобной задачи хорошо известен, поэтому мы его опускаем. На втором этапе в двоичную форму переводится дробная часть числа. Для этого используют следующий алгоритм:

дробная часть умножается на два;

в полученном произведении выделяется целая часть; если она больше единицы, пишем цифру 1, в обратном случае – пишем цифру 0;

алгоритм завершается, если дробная часть полученного произведения равна нулю или достигнута требуемая точность вычислений.

Как только десятичные выражения для целой и дробной частей получены, выписываем их в качестве ответа, отделяя знаком-разделителем (точкой или запятой).

90

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]