Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Пак Г.К. - Дискретная математика

.pdf
Скачиваний:
183
Добавлен:
01.05.2015
Размер:
1.17 Mб
Скачать

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

ТЕОРЕМА. h 4h .

Доказательство. Число укладок равно числу кодов длины 2h, поэтому

* h меньше числа кортежей длины 2h из нулей и единиц, в которых

нулей и единиц поровну, а оно меньше числа размещений с повторениями из 2 по 2h. Отсюда

h * h 22h 4h.

Упражнения

1.Построить код дерева, изображённого на рис. 5.18.

2.Перечислить все четырехреберные а) корневые деревья; б) укладки корневых деревьев.

5.13.Сильносвязные сети

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

Лемма. Пусть Г = Г(а, b)

– произвольная сеть с полюсами а и b и

пусть через вершины c и

c , c c , сети Г проходят цепи. Если вер-

шины c и c можно соединить маршрутом, то существует цепь, проходящая через c и c .

Доказательство. Составим цепь из части первой от полюса а до c маршрута c c и части второй цепи от c до b.

Пусть в сети Г(а,b) выделено подмножество рёбер, которое оп-

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

ТЕОРЕМА. Связная сеть сильносвязна не содержит отростков. Доказательство. Пусть связная сеть сильно связна и содержит отросток. Маршрут, соединяющий полюса и проходящий через ребро отростка, должен, по крайней мере, дважды пройти через граничную вершину отростка. Такой маршрут не является цепью (по определению цепь не проходит через вершины дважды).

Пусть связная сеть Г(а, b) не содержит отростков и предположим, что она не сильно связна. Тогда в ней есть рёбра, через которые

61

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

5.14. Суперпозиция сетей

Результатом подстановки вместо ребра u, сети Г1 a1,b1 другой сети Г2 a2,b2 называется сеть, полученная удалением из сети Г1 a1,b1

ребра u, и отождествлением полюсов а2, b2 сети Г2 a2 ,b2 с верши-

нами u, сети Г1. Предположим, что сети Г1 a1,b1 и Г2 a2,b2 не пере-

секаются. Сеть Г1 a1,b1 в этом случае называем внешней, а сети, которые подставляем в неё вместо рёбер, называем внутренними. Сеть Г(а,b),

полученная из сетей, изоморфных сетям Г1 a1,b1 , …, Гm am,bm , путём

применения конечного числа подстановок, называется суперпозицией этих сетей. Легковидеть, что суперпозиция– ассоциативная операция.

Сеть a b называется тривиальной. Сильносвязная сеть называется разложимой, если её можно представить в виде суперпозиции нетривиальных непересекающихся сетей. В противном случае сеть называется неразложимой. На рис. 5.20 и 5.21 представлены примеры неразложимых сетей (полюса помечены кружочками).

 

 

 

 

 

c

c

Г

s

:

p

:

 

… …

2

Г2

b

a … …

 

 

 

 

a

e2

 

 

 

 

 

 

e1

a

 

c

b

 

d Мостик

d

 

 

 

 

 

 

 

c

 

b

a

b

e2

 

 

e1

 

 

 

d

 

Рис. 5.20

Рис. 5.21

Рис. 5.22

Рис. 5.23

Рис. 5.24

Можно показать, что любая нетривиальная неразложимая сильносвязная сеть, имеющая не более шести рёбер, изоморфна одной из этих трёх сетей, т.е. не существует неразложимых сильносвязных сетей с тремя, четырьмя и шестью рёбрами. В то же время для каждого h 7существуют неразложимые сильносвязные сети h с рёбрами. Это видно на рис. 5.23 и 5.24. Множество нетривиальных неразложимых

62

сетей, отличных от Г2s и Г2р , обозначим через H и сеть, принадлежащую H, будем называть H-сетью.

Пусть Гhp – сеть, представляющая собой параллельное соедине-

ние h рёбер, Гhs – последовательное соединение h рёбер, h 2. Если сеть Г(а,b)– суперпозиция сетей с внешней сетью Гhp , то она называется p-разложимой. Если сеть – суперпозиция сетей с внешней сетью

Гhs , то она называется s-разложимой. Если сеть – суперпозиция сетей с

внешней H-сетью, то она называется H-разложимой. Подсеть называется сквозной, если её полюса – это полюса основной сети.

Упражнение

Докажите, что

1)H-сеть не имеет разделяющей вершины, т.е. вершины, через которую проходит каждая цепь;

2)сеть s-разложима имеет разделяющую вершину;

3)сеть р-разложима имеет собственную сквозную подсеть.

5.15. -сети

Суперпозиция сетей Г2p и Г2s называется -сетью. Каждой

-сети можно поставить во взаимнооднозначное соответствие укладку дерева, неконцевым вершинам которого сопоставлены символы p и s. Сопоставление производится по правилу:

Сети Гh (a,b) ставим в соответствие пучок из h рёбер, корень ко-

торого помечен символом , где s или p. Пусть Г a,b имеет в

качестве внешней сети Гh (a,b) . Такая сеть кодируется пучком из h рё-

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

с внешней сетью Гh ). Пример:

а1

а2

 

 

 

 

 

 

 

 

а3

 

 

 

 

 

 

а4

 

s

s

 

p

D1

Dt

а5

 

 

 

p

 

s

s

 

а

 

 

b

 

 

 

 

 

 

p

p

 

а6

 

 

 

 

 

 

 

 

 

 

 

 

а7

 

s

 

 

 

 

а8

 

 

 

s

 

 

 

 

 

 

p

 

 

 

а9

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 5.25

Рис. 5.26

Рис. 5.27

Лемма. Сеть с h рёбрами кодируется деревом с числом рёбер 2h 2. Доказательство. Индукция по h. Для h = 2 очевидно. Предположим, что для сетей с числом рёбер меньше h, утверждение верно.

Пусть сеть Г a,b имеет h рёбер и кодируется деревом m исхо-

дящими из корня рёбрами, из которых t не концевые (рис. 5.27), m 2. Деревья D1, ,Dt соответствуют нетривильным внутренним сетям.

Пусть i число рёбер в Di , hi – число рёбер в соответствующей внут-

ренней сети Г a,b .

t

t

t

t

i

m, h hi m t , i

2hi 2 i m 2 hi 1 m

i 1

i 1

i 1

i 1

7

2t m 2 h m t 2t m 2h m 2h 2,

 

2 hi

таккак m 2. ■

i 1

ТЕОРЕМА. Число всех различных попарно неизоморфных сетей с h рёбрами h 42h.

Доказательство. Число таких сетей равно числу кодовых деревьев. В каждой укладке дерева символы p и s расставляются двумя способами

(при чередовании их по ярусам). Отсюда h 2 42h 2 42h .■

63

64

ГЛАВА 6. ТЕОРИЯ КОДИРОВАНИЯ

Кодирование позволяет изучение одних объектов сводить к изучению других. В связи с изучением управляющих систем появилась необходимость систематических исследований в области теории кодирования. Основной круг задач этой теории может быть прослежен на примере из области связи.

Ис-

 

Сооб-

 

Код

 

 

Канал

 

Код

 

Декоди-

точник

 

щение

 

сооб-

 

 

связи

 

сооб-

 

рование

сооб-

 

 

 

щения

 

 

 

 

щения

 

 

 

 

 

 

 

 

 

на

 

 

щения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выходе

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Источник помех

 

 

Сообщение

 

 

 

 

 

 

 

 

 

на выходе

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выбор кодов связан с различными обстоятельствами:

с удобством передачи кодов (например, двоичный код технически легче использовать);

с обеспечением удобства восприятия (например, машинные коды удобны для работы процессора);

с обеспечением максимальной пропускной способности канала;

с обеспечением помехоустойчивости;

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

6.1. Алфавитное кодирование

Пусть даны алфавиты = a1,...,ar , b1,...,bq .Обозначим

через S( ) и S( ) множества всех непустых слов в этих алфавитах. Соответствие между буквами алфавита и некоторыми словами в алфавите :

: а1 B1

а2 B2

… …

аr Br

называют схемой. Тогда каждому слову A ai1 ...ain ставится в соответ-

ствие слово B Bi1 ...Bin код слова A . Слова B1,...,Br называются эле-

ментарными кодами. В случае, если из текста ясно, о какой схеме идёт речь, то мы будем говорить: Код C B1,...,Br . Если соответствие между словами A и их кодами взаимнооднозначное, то возможно деко65

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

однозначным, однозначно декодируемым или разделимым. Возникает вопрос: возможно ли по схеме узнать, обладает ли она свойством взаимной однозначности?

Пусть слово В имеет B B B . Тогда слово B

называется нача-

лом или префиксом слова В, а слово B концом

или суффиксом

слова В. При этом пустое слово Λ и само слово В считаются началами. Все начала и концы слова В, отличные от В и Λ, называются, собственными. Схема обладает свойствам префикса (задаёт префиксный код), если никакой элементарный код не является префиксом другого элементарного кода.

ТЕОРЕМА 1. Если схема обладает свойством префикса, то алфавитное кодирование взаимнооднозначное.

Доказательство. По условию i j Bi Bj. Предположим, что неко-

торое слово В допускает две расшифровки, т.е.

 

 

 

B Bi

...Bi

,

 

 

B Bj ...Bj .

 

 

 

 

 

1

 

s

 

 

 

 

1

t

 

 

Следовательно,

 

 

 

 

 

 

 

 

 

 

 

 

 

Bi1

Bj1 ,...,

Bin 1 Bjn 1

,

Bin Bjn

одно из

слов

Bi

или Bj

(то,

которое короче)

является

префиксом

другого.

 

n

n

 

 

 

 

 

 

 

 

 

 

 

Противоречие. ■

 

~

 

 

 

 

~

 

 

 

 

 

 

 

 

схему вида

a1

 

 

 

 

 

 

Обозначим через

B1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а

~

где

 

 

 

 

 

 

 

 

 

r

 

B ,

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

слово

~

 

получено из слова

B bi1...bim .Тогда

~

обладают

B bim ...bi1

и

свойством префикса и поэтому алфавитное кодирование взаимнооднозначное.

6.2. Алгоритм Маркова Ал.А. распознавания однозначности

декодирования

 

 

Bi рассмотрим все нетривиаль-

Для каждого элементарного кода

ные представления вида B B ...B ,

( 1 )

i

i

i

 

 

1

 

 

в которых и отличны от элементарных кодов. Обозначим через S

множество, содержащее Λ и все , встречающиеся в таких разложени-

ях элементарных кодов как в качестве префиксов, так и собственных суффиксов. Сопоставим каждому слову из S точку на плоскости. Вершины и соединяем направленным отрезком от к для каждо-

66

го разложения (1) и приписываем этой дуге слово Bi1 ...Bi . Полученный граф обозначим через Г .

ТЕОРЕМА. (Ал. А. Марков). Алфавитное кодирование со схемой не обладает свойством взаимной однозначности в графе Г существует ориентированный цикл, проходящий через вершину Λ.

Слово B , допускающее не менее двух расшифровок, называется

неприводимым, если каждое слово B , получающееся из B путём выбрасывания непустого подслова, допускает не более одной расшифровки. Пусть алфавитное кодирование не обладает свойством взаимной однозначности. Тогда найдётся неприводимое слово В вида

B B

0

B

1 ...B p

B0 ...

B

0

 

1

... B

1

 

p

B p ...B p ,

B

...

 

i

 

i

 

i

i

i

0

i

 

i

 

 

 

i

i

 

 

 

 

 

1

 

1

1

 

1

p

где Bi0 Bi0 ... Bi0

 

 

 

 

 

 

 

 

Bip

p

Bip ... Bip .

,

Bi1 Bi1...

Bi1 ,...,

 

 

 

 

 

ω0

 

 

1

 

1

 

 

 

 

 

1

p

Отсюда в графе Г возникает ориентированный цикл, проходящий через вершину Λ.

b2 b2 Λ

 

B 1

...B 1

В1

i1

i

В2

 

 

 

Bi10 ...Bi0

Λ

Bi ...B p ...

1p i1

p

Λ В1

В1 В3 Λ

b2 b2 b2

Λ

Рис. 6.1 Рис. 6.2

 

 

 

Пусть

Г

содержит ориентированный цикл,

прохо-

дящий через вершину Λ (рис. 6.1).

 

 

 

 

 

 

 

 

 

 

 

 

Тогда слово

 

Bi0 ...Bi0

 

 

 

 

 

 

...

p

Bip

 

 

p

имеет две расшиф-

 

0

Bi1...Bi1

 

...Bi p

 

 

 

 

 

 

1

 

 

 

1

 

 

1

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ровки:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B B

 

 

 

 

 

I B

 

...B

 

II

 

 

 

 

 

 

 

 

IIIB3

...B3

 

 

...,

0

 

... B0

 

1

1

B2

... B

2

 

IV

 

i

 

 

 

i

0

 

i

 

i

 

 

i

 

 

 

i

 

2

i

i

3

 

 

1

 

 

 

 

1

 

 

1

 

1

 

 

 

1

 

 

 

 

 

 

...B0

 

 

 

 

 

 

 

 

 

 

 

 

...B

 

 

III

 

 

 

 

 

B B

0

I B1 ... B

1

IIB

2

2

 

...■

 

 

 

 

 

 

i

 

i

 

 

i

 

 

 

i

 

 

i

 

 

i

 

 

 

 

 

 

 

 

 

 

i

0

 

1

 

 

 

1

 

1

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

67

Пример: : a1 b1

 

 

 

a

2

b b

 

 

 

2

1

 

 

a3

b1b2b2

 

 

a4 b2b1b2b2

a

 

b b b b

5

2

2

2

2

S Λ,b1,b2 ,b2b2,b2b2b2,b1b2b2

S1 Λ,b1,b2 ,b2b1,b1b2,b1b2b2,b2b1b2 ,b2b1b2b2 ,b2b2 ,b2b2b2,b2b2b2b2 , S2 b1,b2,b2b2,b1b2b2 ,b2b2b2 .

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

6.3. Неравенство Макмиллана

a1 B1

Пусть задано алфавитное кодирование со схемой : ...

... и

ar Br

пусть i (Bi ), i 1, ,r.

ТЕОРЕМА. Если алфавитное кодирование со схемой обладает свой-

r

1

 

 

ством взаимной однозначности, то

 

 

1.

 

 

i 1

q

i

Доказательство. Все слова длины n в алфавите порождены выражением

a1 ... ar n

 

ai ...ai

,

( 1 )

 

i1,...,in

1

 

 

 

n

 

 

 

 

 

 

 

 

если рассматривать произведение ai ...ai

как запись слова в алфавите .

 

 

 

 

 

 

1

n

Для соответствующих кодов получим

 

B1 ... Br n

 

Bi

Bi

2

...Bi .

( 2 )

 

i1,...,in

1

 

 

n

 

 

 

 

 

 

 

 

В силу взаимной однозначности алфавитного кодирования, все слагаемые в сумме (2) различны. Всем слагаемым правой части

 

1

 

 

1

 

n

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( 3 )

 

1

 

 

 

 

 

 

 

i

... i

 

 

 

 

 

 

 

 

 

q

r

 

 

 

 

 

 

 

q

 

 

 

 

 

 

 

 

 

q

 

1

 

n

 

 

 

 

 

 

соответствуют слова

Bi ...Bi

. Введём

обозначения: t i

... i ,

max i

, n,t

 

 

1

 

 

n

 

 

 

 

 

 

 

1

n

– число кодовых слов

Bi

Bi

2

...Bi

, имеющих длину t.

1 i r

 

 

 

 

 

 

 

 

 

 

n,t

 

 

 

1

 

 

n

 

 

 

 

 

1

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

Тогда

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

q i1 ... in

 

 

 

qt

 

 

 

 

 

 

 

 

 

 

i1,...,in

 

 

 

t 1

 

 

 

 

 

 

 

 

 

 

 

 

68

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Из взаимной однозначности кодирования следует:

n,t qt

n

n,t

 

 

n .

qt

 

 

t 1

 

r 1 n

Отсюда n .

i 1 q i

Это неравенство справедливо для всех n и, следовательно, устремив n к бесконечности, получим утверждение теоремы. ■

Имеет место и обратное утверждение.

ТЕОРЕМА. Если числа 1,..., r удовлетворяют неравенству Макмил-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

лана, то существует алфавитное кодирование со схемой

 

: ...

 

... ,

обладающей свойством префикса, где Bi i, i

 

 

 

 

 

ar

Br

1,r.

 

 

 

 

 

 

 

 

 

r

1

 

 

 

 

 

 

 

 

 

 

 

 

 

Доказательство. Пусть

 

 

 

 

1. Можно считать, что 1

... r .

 

 

 

 

 

 

 

 

 

 

 

 

i 1 q

 

i

 

 

 

 

 

 

 

 

 

 

 

Пусть i

количествочиселвэтойпоследовательности, равных i,1 i .

 

i

 

q 1 ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тогда

1 1

2 q 2 1q 2 1 , 3

q 3 1q 3 1 2q 3 2 ,....

 

i 1

q i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рассмотрим в алфавите

 

слова длины . Так как

1

q 1 , то можно

 

 

 

слов B

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

выбрать

1

,...,B

1

длины . Слов длины

2

, не начинающихся

 

 

1

 

 

 

1

 

 

 

 

 

 

 

 

 

со слов B

...B , имеем q 2 1 ,т.е. можно выбрать такие слова B B

и

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

2

т.д., всего получим

1 ... r слов, т.е.

построена искомая схема

кодирования, если эти слова взяты в качестве кодовых. ■

 

 

 

 

Следствие. Если существует взаимнооднозначное алфавитное кодирование, то существует также алфавитное кодирование со схемой, обладающей свойством префикса, и теми же длинами элементарных кодов.

Доказательство. Пусть 1,..., r – длины элементарных кодов взаимно-

однозначного кодирования. Эти числа удовлетворяют неравенству Макмиллана, а поэтому существует схема, обладающая свойством префикса, с этими же длинами элементарных кодов. ■

6.4. Коды с минимальной избыточностью

Пусть имеется источник сообщений, который случайным образом последовательно порождает буквы алфавита a1,...,ar . Появления букв статистически независимы и подчинены распределению веро-

 

P p1,...,pr ,

 

r

 

 

 

 

 

 

 

 

ятностей

где

pi

1,

pi 0.

Рассмотрим схему алфа-

 

 

 

 

i 1

 

 

 

 

 

 

 

 

 

 

a1

B1

 

 

 

 

 

 

 

 

 

вита кодирования

: ...

... в алфавите b1,...,bq со свойством

 

 

ar

Br

 

 

 

 

 

 

 

 

 

взаимной

однозначности.

Пусть

i (Bi )

длина

слова Bi,i

 

 

1,r.

Введём стоимость кода при распределении P как математическое ожи-

 

 

 

 

 

 

 

т.е. ср

r

 

 

 

дание длины

элементарного

кода,

pi i.

Если

* inf нижняя грань

 

 

 

 

 

i 1

 

 

 

ср

по

всем

таким

схемам

, то

 

 

 

 

 

 

 

 

 

 

 

 

 

1 * [logq r]. Это следует из того, что всегда можно взять в качестве кодов слова в алфавите одинаковой длины [logq r], а для такой схемы .

ТЕОРЕМА. Величина * достигается на некоторой схеме .

Доказательство. Для схемы, близкой к * , в силунеравенства * [logq r]

имеем p l

 

[log

 

r]. Положив p

min p

, заметим, что i

i

 

[logq r]

, а

 

 

 

i

i

 

q

*

pi 0

i

 

 

p

 

 

 

 

 

 

 

 

 

 

*

 

значит, существует лишь конечное число вариантов значений ср, для ко-

торых * ср [logq r] min ср *.■

Коды стоимости * называются оптимальными или кодами с минимальной избыточностью.

ТЕОРЕМА. Если С B1,...,Br оптимальный двоичный код при рас-

пределении P p1,...,

pr

 

 

( 1 )

и pj q1 q2, причём

p1 ... pj 1 pj pj 1

... pr q1

q2, то код

C B1,...,Bj 1,Bj 1,...,Br ,Bj 0,Bj1

является оптимальным при распреде-

лении P p1,..., pj 1, pj 1,..., pr ,q1,q2 .

 

( 2)

Доказательство. Если ср и ср

– стоимости кодов при распределени-

ях (1), (2), то cр cр pj. Действительно,

 

 

ср pi i q1 j 1 q2 j 1 pi i

q1 q2 j

q1 q2

i j

 

i j

 

 

r

ср pj.

Pi i pj

i 1

 

69

70

Пусть C оптимальный код при распределении (2). Тогда в

нём длины слов, соответствующих вероятностям q1

и q2 , одинаковы,

так как код оптимальный. На основе C можно построить схему коди-

рования

при

распределении

(1).

Для

его

стоимости

 

 

 

 

 

оптимальный код. ■

 

ср pj

ср pj

ср

ср С

 

 

На эту теорему опирается алгоритм построения оптимального кода Хафмана.

Пример. Построить оптимальный код по алгоритму Хафмана для распределения вероятностей 0,4; 0,2; 0,2; 0,1; 0,1.

i

Pi

 

 

 

 

 

 

Bi

1

0,4

0,4

0,4

0,6

0

1

1

1

2

0,2

0,2

0,4

0,4

1

00

01

000

3

0,2

0,2

0,2

 

 

01

000

001

4

0,1

0,2

 

 

 

 

001

010

5

0,1

 

 

 

 

 

 

011

Упражнение

Построить оптимальный код для распределения вероятностей и найти его стоимость: (1) 0,3; 0,2; 0,2; 0,2; 0,1;

(2) 0,3; 0,3; 0,1; 0,1; 0,1; 0,1.

6.5. Код Хэмминга

Код Хэмминга исправляет одну ошибку, т.е. относится к классу самокорректирующихся кодов. В алфавите 0;1 записываются все сообщения в виде слов длины m. Эти сообщения кодируются двоичными наборами 1... ,где длина кода, m. Пусть m k. Предпо-

ложим, что при прохождении кодового слова через канал связи произошла одна ошибка, в таком случае код сообщения на выходе может иметь вид:

1 2 3 ...

1 2 3 ...

1 2 3 ...

 

1вариант.

... ... ...

... ......

 

1 2 3 ...

Для того, чтобы дополнительных разрядов в коде 1... хватало для

кодировки 1 варианта, необходимо,

2k 1, т.е.

2m

2

 

. Вы-

1

 

 

 

 

берём

 

как наименьшее целое число,

удовлетворяющее неравенству

2m

 

2

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

Алгоритм кодирования. Пусть V натуральное число 1 V ,

Vk ...V1 его двоичная запись. Построим последовательности:

 

 

П0

= 1,3,5,7,9,11,13,15,...

все числа с

V1 1;

 

 

П1

= 2,3,6,7,10,11,14,15,...

все числа с

V2

1;

 

 

П2

= 4,5,6,7,12,13,14,15,...

все числа с

V3 1;

 

 

П3

= 8,9,10,11,12,13,14,15,...

все числа с

V4

1;

 

 

 

… …

… … …

 

 

Пк-1 = 2k 1,2k-1

1,...

 

...

все числа с Vk

1.

 

 

Члены

i

набора ...

,у которых i {1, 2, 4, …,2k 1 }, называ-

 

 

 

 

 

1

 

 

 

 

 

ют контрольными, а остальные – информационными. Слово 1 m ко-

дируется словом 1...

так:

 

 

 

3 1, 5 2, 6

3, 7

4, 9

5, 10 6, 11 7,...

Затем определяются контрольные члены:

 

mod2 ,

1 3 5 7 9 11

13 15 17 ...

2 3 6 7 10 11 14 15 18 ... mod 2 ,

4 5 6 7 12 13 14 15 20 ... mod2 ,

8 9 10 11 12 13 14 15 24 ... mod 2 ,

... ... ... ... ... ... ...

Обнаружение ошибки в кодах Хэмминга. Пусть при передаче

кода 1... произошла ошибка в S-м члене, т.е. на выходе принято сло-

во 1... s...

 

 

 

 

 

 

 

S Sk...S1 запись S в двоичном исчис-

1... , и пусть

лении. Рассмотрим число S S

... S , где

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

1

 

 

 

mod 2 ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S1

1

3

5

7

9 11 13 15 ...

S

 

 

 

 

 

 

 

 

 

 

 

 

...

mod

2 ,

2

2

3

6

7

10

11 14

15

S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mod

2 ,

3

4

5

6

7 12 13 14 15 ...

S

 

 

 

 

 

 

 

 

 

 

 

 

 

...

mod

2

4

8

9

10 11

12

13 14

15

...

 

 

...

 

...

 

...

 

...

...

...

...

 

Тогда S S .

 

В самом деле,

если S1 0,

то S не принадлежит первой

последовательности и

для

 

i П0

имеем

i

i S1 S1 0. Если

S1 1, то S принадлежит последовательности П0 i: i

i 1

71

72

S1 1 3 5 7 9 ... 1 0 1 mod 2 S1 1. Следова-

тельно, для обнаружения и исправления ошибки достаточнопостроить S . Декодирование. Требуется по коду 1... построить слово

1... m. Для этого достаточно взять информационные члены в 1... .

Пример 1. Закодировать по Хэммингу слово (111011100).

Решение. Заполнив информационные ячейки, получим ??1?110?11100.

Ответ: (0010110111100).

Пример2. Вкодебыла допущена одна ошибка: 0010100111100. Найти её.

Решение.

S0 0 1 1 0 1 1 0 0

S1 0 1 0 0 1 1 1

S2 0 1 0 0 0 1

S3 1 1 1 1 0 0 0 Ответ:01102 6.

6.6. Самокорректирующиеся коды

Пусть В = 0; 1 . Рассматриваем единичный n-мерный куб Bn как

метрическое

 

пространство,

 

в котором

 

для точек

 

 

 

 

 

и

 

 

 

 

1

...

 

 

 

 

 

 

 

 

расстояние

 

 

 

 

определено

 

по

формуле

 

1...

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

mod2

(расстояние Хэмминга),

т.е.

,

 

 

 

 

 

 

 

 

 

i 1

 

 

i 1

 

 

 

 

 

 

 

 

 

 

 

 

 

это число координат, в которых различаются наборы и . Обозна-

чим через U p c x B : x,c p шар радиуса p с центром c. Множество С кодовых слов будем коротко называть кодом С. Код C обнаруживает p ошибок, если ни одно кодовое слово не принадлежит шару радиуса p с центром в другом кодовом слове. Код исправляет p ошибок, если любые два шара радиуса p с центрами в кодовых словах не пересекаются.

ТЕОРЕМА. Код H B исправляет p ошибок, расстояние между двумя любыми кодовыми словами 2p 1.

Доказательство. Условие , 2p 1 эквивалентно тому, что шары

U p иU p с центрами в и радиуса p, не пресекаются. Если код исправляет p ошибок, тошары непересекаются, ибодля точек пересечения неясно, в каком из слов или допущены ошибки. Если шары не пере-

секаются, то любому слову из шара U p ставится в соответствие един-

ственная точка , т.е. код исправляет любыеp ошибки. ■

Упражнения

1. Для того, чтобы код обнаружил p ошибок, необходимо и достаточно, чтобы расстояние между любыми двумя кодовыми словами было p 1. Докажите это.

2. Булева функция f x1,...,xn называется характеристической

функцией двоичного кода С, если она принимает значение 1 на С и 0 вне С. Сколько ошибок обнаруживает и исправляет код с характеристической функцией а) х1 хn; б) х1 хn х1 хn?

73

74

ГЛАВА 7. ТЕОРИЯ АЛГОРИТМОВ

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

Тьюринг Алан (1912–1954) – английский математик.

7.1. Машина Тьюринга

A p0 , p1,..., pm , внутренний алфа-

Даны:

внешний алфавит

вит B q0,q1,...,qn , где qi

внутреннее состояние, q1 начальное

состояние,

q0 конечное

состояние;

алфавит

движения

D Л, П,М .

Выражение

вида

qi pj qi

pj X ,

где

qi ,qi B, qi

q0;

pj , pj A; X D , называется командой. Програм-

мой машины Тьюринга называется совокупность команд, обладающая свойствами qi,qj ! команда с левой частью qi , pj . Всего разных

команд возможно n m 1 .

Машина Тьюринга (МТ) состоит из бесконечной в обе стороны ленты и автомата с управляющим устройством. Бесконечная лента разделена на ячейки. Автомат может находиться в одном из состояний qi . Управляющее устройство в каждый из моментов времени t обозревает одну ячейку ленты. По символу pj , прочитанному на ленте, и по внут-

реннему состоянию qi автомат вырабатывает новое состояние qi и

некоторый символ pj , который вписывается в ту же ячейку вместо

прочитанного. После этого управляющее устройство сдвигается по ленте на одну ячейку вправо или влево или останавливается. Все это дела-

ется в соответствии с командой qi

pj

qi pjx .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

pj

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 7.1

 

 

 

 

 

 

Таким образом, машина Тьюринга –

это пятерка объектов: A

внешний алфавит,

В – множество внутренних состояний, G:BхA B

функция переходов, F:BхA A – функция выходов, Н: BхA D– функ-

ция движения; G(q

, p

j

) q ,

F(q

, p

j

) p ,

H(q , p

j

) x.

 

 

i

 

 

i

i

 

 

 

 

 

 

j

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

75

Обычно в качестве алфавита A берется множество 0;1 . Машина Тьюринга с произвольным алфавитом допускает моделирование в виде машины с алфавитом 0;1 . Для ячейки, в которой записан символ

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

 

 

 

 

 

Упражнения

1.

Применить машину Тьюринга

 

а)

1

2 3

4

5

 

 

0 0П2 0П2 1М0 0П4 1Л5

 

 

1 1П4 1П2 0Л3 1П4 0М0

 

 

-Л3 1М0

-Л5

к слову 0010, 1100

б)

 

 

 

 

 

 

0

0П2 0П2 -Л5 1М0 1П5

 

 

1

1ПА 1П2 -Л4 0Л4 0П5

 

 

-М0 -Л3 –

1М0

к слову 00101, 01000,

2.

Построить МТ, которая выполняет вычитание х – 2 для х >2.

7.2. Язык конфигураций

Пусть в момент времени t самая левая непустая ячейка ленты содержит символ aj1 , а самая правая непустая ячейка содержит символ

ajs . В этом случае будем говорить, что в момент t на ленте записано слово P aj1 ajs . При S = 1, т.е. когда на ленте только один непустой

символ Р = aj . Если в момент времени t автомат находится в состоянии

 

1

 

qi

и в обозреваемой ячейке записан символ aje слова P, l 2, то слово

aj

aje 1qiaje aj

называется конфигурацией машины Тьюринга в

1

s

момент t. Конфигурация, соответствующая началу работы машины, называется начальной. Результирующая конфигурация называется заключительной. Если в некоторый момент времени конфигурация машины была K, а в следующий момент K , то конфигурация K называ-

ется непосредственно выводимой из K и обозначается это так: K╞K .

Если Ki ╞Ki 1

при 1 i m 1, то последовательность

K1, K2, , Km

конфигураций называется вычислением по Тьюрингу.

 

В этом

случае пишем

K1Km и говорим “Km выводима из

K1”. Здесь K1

начальная конфигурация. Если Km – заключительная конфигурация, то применяют запись K1├.Km (читается: Km заключительно выводима из

76

K1). Если машина T1 , начав работу на слове P1 , остановится через

определенное число шагов, то говорят, что машина Т применима к слову Р, а результат применения обозначается Т(Р) . Если машина не остановится, то говорят, что машина Т не применима к слову Р. Машины T1

и Т2 называются эквивалентными, если для любого Р слова T1 (Р) и

Т2(Р)определены или не определены одновременно, и если они определены, то T1 (Р) = Т2(Р).

7.3. Действия над машинами Тьюринга

 

 

 

 

 

 

Пусть машины T1 и Т2 имеют соответственно программы П1

и П

2

и внутренние алфавиты этих машин не пересекаются. Пусть q

 

 

 

 

, q

1

 

некоторое заключительное состояние машины T

– некоторое на-

чальное состояние машины Т

 

1

П

2

состояние q

 

2

. Заменим всюду в

1

на

 

 

 

 

 

1

 

состояние q2 и полученную программу объединим с программой П2 .

Новая программа П определяет машину Т =T1 Т2 , называемую компо-

зицией машин T1 и Т2 по паре состояний ( q1 ,q2 ). Внешний алфавит композиции является объединением внешних алфавитов машин T1 и

Т2 . Эту же операцию можно применить к нескольким заключительным состояниям машины T1 для машин Т2 , T3 . Тогда получим разветвле-

ние машин Т2 и T3 , управляемое машиной T1 .

Пусть q – некоторое заключительное состояние машины Т,

q – какое-либо состояние машины Т, не являющееся заключительным.

Заменим всюду в программе П машины Т символ q на q . Получим

программу П , определяющую итерацию машины Т по паре состояний (q , q ). Ее обозначение: T (q , q ).

При задании сложных машин Тьюринга часто применяют операторную запись алгоритма по А.А. Ляпунову, которая представляет собой строку, состоящую из символов машин, символов перехода вида

 

| q

q

 

 

 

 

 

 

 

 

 

 

 

 

и

 

, а также символов и , где – символ начала работы, –

 

 

 

 

k

k

 

 

 

 

 

 

 

 

окончания работы. Например,

|

TT

| q20

T

| q30

 

|

. Начинает работу

 

1

2

1

 

 

 

2

1

2

3

 

машина T1 . При достижении заключительного состояния T1 включа-

ется в работу машина Т2 . Если машина Т2 достигнет состояния q20 , то работа оканчивается. При достижении машиной Т2 другого заключи-

77

тельного состояния начинает работу машина T3 . При достижении ма-

шиной T3 заключительного состояния q30 начинает работу машина

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

7.4.Вычислимые функции

Вкачестве алфавита машины Тьюринга берем множество 0;1 .

Пусть ~ 1, , n , n 1 – произвольный набор целых неотрицатель-

ных чисел. Слово 1 1 101 2 10 01 n 1 называется основным машинным

кодом набора ~

в алфавите

0;1 и обозначается K(~) . В частности,

слово 1 1

является основным машинным кодом числа .

Функция

y f x1, ,xn называется частичной числовой функцией или

арифметической,

если

xi ,i

 

 

принимают значения из

1,n

N0 0,1, 2, , и в том случае, когда на наборе значений переменных

~ 1, , n функция f определена, то

f (~) N0. Частичная числовая

функция f называется вычислимой по Тьюрингу, если существует машина Тьюринга Tf , обладающая свойствами:

(1)если f (~) определено, то Tf k(~) kf (~) ;

(2)если f (~) не определено, то либо Tf k(~) не является кодом чис-

ла N0 , либо машина Tf не применима к слову K(~) . Если f вычис-

лима по Тьюрингу, то говорят, что машина Tf вычисляет функциюf.

 

 

Упражнения

 

 

 

 

 

 

 

 

1.

Написать аналитическое

выражение

 

для

функций

f x

и

f x, y , вычисляемых машиной Т:

 

 

 

 

 

 

 

 

 

 

q1

– начальное состояние,

 

 

 

 

 

q1

 

q2

 

 

 

 

 

 

0

q2

 

q0 0 Л

 

q0

– конечное состояние.

 

 

 

 

 

 

 

 

 

 

1

q1

 

q2

 

Ответ: х + 1, х + y + 2.

 

 

 

 

 

 

 

2.

Индивидуальное домашнее задание (ИДЗ): Составить МТ,

вы-

числяющие функции.

 

 

 

 

 

 

 

 

 

 

0

 

2n

nn, 00

1

 

 

 

 

 

x 1

n !

log3n

 

 

 

 

 

 

 

x + y

n

3

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

78

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

x

 

 

 

 

 

 

 

 

 

 

y n n-й разрядв 2

xy

z

 

,

 

 

 

 

0

 

 

 

 

y

0

 

 

 

 

 

 

 

 

 

 

xy

 

 

 

 

 

 

 

 

 

2sin n

 

 

 

 

 

x y

z

2x

3y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

x y

 

 

 

 

 

 

 

 

 

 

1,

n

простое,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y n

0,

n

составное.

 

 

 

 

 

 

 

 

 

 

 

 

x y, x y,

xy 0 впротивном случае.

7.5.Программа удвоения

Задача. Написать программу переработки конфигурации

q 11 1 q

11 1011 1

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

n

 

 

n

 

 

 

 

 

 

 

 

 

 

 

Решение.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПУ(6):

 

 

 

 

 

 

 

 

 

 

 

q41 q41Л

 

 

 

 

 

q10 q00M

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q4 0 q5 0Л

 

 

 

 

 

q 1 q

 

 

П

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

q5 q51П

 

 

 

 

q2

1 q21П

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q5 0 q0 0М

 

 

 

 

q2 0 q30П

 

 

 

 

 

q51 q61Л

 

 

 

 

 

q 1 q 1П

 

 

 

 

 

 

 

 

 

 

3

 

 

3

 

 

 

 

 

 

 

 

 

q61 q61Л

 

 

 

 

 

q 0 q

1П

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

4

 

 

 

 

 

 

 

 

q6 q1 П

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

у=2x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

q1

 

 

q2

q3

 

q4

 

 

q5

 

q6

q7

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

1q1R

0q3L

1q5R

0q5R

1q7L

1q7L

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1q

2

R

1q

3

L

0q

4

L

0q

L

0q

6

R

1q

L

1q L

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

3

 

1

 

7.6. Программа перестановки

 

--cлова валфавите , ,

Задача.

q1P10P2 q0P20P1,гдеP1,P2

79

Решение.

q10 q2 0П для пустого слова q2 0 q0 0П

q1 q3 0П q1 q4 0П

q3 q3 П q3 q3 П

q4 0 q4 П

q4 q4 П

q3 0 q5 0П q4 0 q6 0П

q5 q5 П

q5 q5 П

q6 q6 П

q6 q6 П q5 0 q7 0П

7.7. Программа сжатия Задача: 1 101 2 1 1 2.

Решение.

q6 0 q8 0П

q7 q7 П

q7 q7 П

q8 q8 П

q8 q8 П q7 0 q9 М q8 0 q9 М

q9 q9 Л

q9 q9 Л q9 0 q10 0Л

q10 , q10 , Л

q10 0 q110Л

q11 , q11 , Л

q110 q10Л

*

1

0

1

1

0

*

 

 

1

1

1

1

1

 

ПС q1 q2 П q2 0 q2 0П q21 q30П

q2 q20 0М еслинет1

q20 0 q20 0Л

q20 q0 0М

q31 q31П q30 q41М q3 q51М q41 q41Л q4 0 q31П

7.8. Программы для вычисления xy, x2, x xy (1) если x 0, то стираем y; конец.

(1) если y 0 , то стираем x; конец.

80