- •Розділ 7 Основи теорії кодування План викладення матеріалу
- •7.1. Алфавітне й рівномірне кодування
- •7.2. Достатні умови однозначності декодування. Властивості роздільних кодів
- •7.3. Оптимальне кодування
- •7.4. Коди, стійкі до перешкод. Коди Хемінга
- •8.2. Алгебри булевих функцій
- •8.3. Спеціальні форми зображення булевих функцій в алгебрах Буля і Жегалкіна
- •8.3.1. Диз'юнктивні нормальні форми
- •8.3.2. Кон'юнктивні нормальні форми
- •8.3.3. Поліном Жегалкіна
- •8.4. Повнота і замкненість
- •8.4.1. Функціонально повні системи
- •8.4.2. Замкнені класи
- •8.4.4. Послаблена функціональна повнота
- •8.4.5. Передповні класи
- •8.5. Мінімізація булевих функцій
- •8.5.1. Основні результати
- •8.5.2. Методи побудови скороченої днф
- •8.5.3. Побудова тупикових днф
- •8.5.4. Властивості скороченої днф
- •8.5.5.Метод карт Карно побудови мінімальних днф
- •8.6. Реалізація булевих функцій схемами з функціональних елементів
- •Комп'ютерні проекти
- •Література
- •9.2. Формальні породжувальні граматики
- •9.3. Типи граматик (ієрархія Хомські)
- •9.4. Дерева виведення
- •9.5. Форми Бекуса-Наура
- •9.6. Скінченні автомати з виходом
- •9.7. Скінченні автомати без виходу
- •9.8. Подання мов
- •Комп'ютерні проекти
- •Література
- •Розділ 10
- •План викладення матеріалу
- •10.1. Основні вимоги до алгоритмів
- •10.2. Машини Тьюрінга
- •10.3. Обчислення числових функцій на машинах Тьюрінга
7.2. Достатні умови однозначності декодування. Властивості роздільних кодів
Розглянемо схему алфавітного кодування σ і різні слова, складені з елементарних кодів. Схему σ називають роздільною, якщо з рівності
випливає, що k=lта it=jtдля кожного t=1,…,k,тобто будь-яке слово, складене з елементарних кодів, єдиним способом розкладається на елементарні коди. Очевидно, що алфавітне кодування з роздільною схемою допускає однозначне декодування.
Схему σ називають пефіксною, якщо для будь яких i та j (I, j=1,…,r,i≠j) елементарний код iне є префіксом елементарного коду j.
Теорема 7.1.Префіксна схема є роздільною.
Доведення. Від протилежного. Оскільки схема σ є префіксною, то всі елементарні коди в σ попарно різні, тобто i ≠ j , якщо i≠j. Нехай кодування зі схемою σ не є роздільним. Тоді існує слово ∈B*, яке допускає два розклади на елементарні коди
= i1… ik , = j1… jl.
Нехай , але .Утакому разі одне із слів i1 , j1 є префіксаміншого, а цесуперечить тому,що схема префіксна. ▲
Властивість префікеності є достатньою, але не є необхідною умовою роздільності схеми.
Приклад 7.1. Нехай А={а,b}, B= {0,1}, схема σ: а→0, b→01. Ця схема не префіксна, але роздільна. Справді, перед кожним входженням 1 у слові 2, безпосередньо є 0. Це дає змогу виділити всі пари (01). Частина слова, що залишиться, складатиметься із символів 0. ▲
Нехай - слово з В*. Позначимо через ͠βслово, яке одержують оберненням слова , тобто .Позначимо ͠σ схему вигляду
α1→ ͠β1
α2→
…
αr→ ͠βr.
Приклад 7.2. Візьмемо схему σ із прикладу 7.1. Тоді ͠σ виглядатиме так: а→0, b→10. Тут схема ͠σ є префіксною і за теоремою 7.1 - роздільною. ▲
Зауваження. Схеми σ та ͠σ обидві або є роздільними, або ні. ▲
Це зауваження дає змогу посилити теорему 7.1.
Теорема 7.2. Якщо або схема σ, або схема ͠σ є префіксною, то обидві схеми σ та ͠σ є роздільними. ▲
Можна навести приклад роздільної схеми σ такої, що ні σ, ні ͠σ не є префіксними. Отже, теорема 7.2 також дає достатню, але не необхідну умову роздільності схеми.
Для того, щоб схема алфавітного кодування була роздільною, необхідно, щоб довжини елементарних кодів задовольняли нерівність Макміллана (В. McMillan).
Теорема 7.3 (нерівність Макміллана). Якщо схема алфавітного кодування σ роздільна, то
Доведення. Позначимо L=mах{l1, l2,..., lr}. Запишемо n-й степінь лівої частини нерівності
Розкривши дужки, отримаємо суму
де (i1,..., іn)- різні набори номерів елементарних кодів. Позначимо як v(n, m) кількість доданків вигляду 1/2m, які входять у цю суму; тут . Для деяких m може бути v(n, m)=0. Зведемо подібні члени й отримаємо суму
Кожному доданку вигляду можна однозначно зіставити код (слово в алфавіті В) вигляду . Це слово складається з n елементарних кодів і має довжинуm. Отже, v(n,m) - це кількість деяких слів вигляду таких, що . Оскільки схема σ роздільна, то v(n,m) ≤2т. Справді, якщо припустити v(n, m)>2m, то за принципом коробок Діріхле існує два однакових слова ,які допускають різний розклад. Можемо записати
Отже, для кожного n виконується нерівність
тобто звідки
▲
Зауваження. У теоремі 7.3 розглянуто нерівність Макміллана для двійкового кодування. Для загального випадку q-кового кодування вона виглядає так:
▲
Розглянемо ще один важливий факт.
Теорема 7.4. Якщо числа l1,…,lnзадовольняють нерівність
то існує префіксна схема алфавітного кодування σ:
α1→β1
…
αr→βr
де l1=l(β1),…, lr=l(βr)
Доведення. Без зменшення загальності можна вважати, що l1≤l2≤…≤lr. Розіб'ємо множину чисел {l1,...,lr} на класи еквівалентності так:li та lj належать одному класу тоді й лише тоді, коли li=lj. Нехай μ (1≤μ≤r) - кількість класів, а λ1,…, λμ таv1,...,vμ позначають, відповідно, представників та потужності класів. Можна також уважати, що λ1< λ 2<…< λμ .
Тоді нерівність Макміллана можна переписати у вигляді
Ця нерівність породжує серію допоміжних нерівностей:
1, звідки ;
……………………………………………………………
Розглянемо слова довжини λ1, у двійковому алфавіті В. Оскільки , то можемо вибрати з них v1різних слів β1,..., βv1 довжини λ1. Виключимо з подальшого розгляду всі слова з В*, які починаються зі слів β1,..., βv1. Далі розглянемо множину слів в алфавіті В, які мають довжину λ2 і не починаються зі слів β1,..., βv1. Таких слів, очевидно, є . Оскільки , то із цієї множини можна вибрати v2різних слів. Позначимо їх через . Виключимо слова з В*, які починаються з , з подальшого розгляду. Продовжимо цей процес, використовуючи поступово допоміжні нерівності. У результаті побудуємо слова , де
Якщо взяти ці слова як елементарні коди, то отримаємо деяку схему алфавітного кодування σ. Ця схема, очевидно, є префіксною. Крім того, l(β1)=l1,…,l(βr)=lr. ▲
Наслідок 1. Нерівність Макміллана є необхідною й достатньою умовою існування алфавітного кодування із префіксною схемою й довжинами елементарних кодів, що дорівнюють l1,..., lr. ▲
Наслідок 2. Якщо існує роздільна схема алфавітного кодування із заданими довжинами елементарних кодів, то існує також і префікс на схема з тими самими довжинами елементарних кодів.
Для доведення потрібно спочатку застосувати теорему 7.3, а потім - теорему 7.4. ▲