Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора.Дискретна..docx
Скачиваний:
31
Добавлен:
16.09.2019
Размер:
101.25 Кб
Скачать

21. Властивості однозначного алфавітного кодування. Нерівність Крафта-Макміллана.

Розглянемо схему алфавітного кодування σ і різні слова, складені з елементарних кодів. Схему σ називають роздільною, якщо з рівності

випливає, що k=l, it=jt для кожного t=1,..,k, тобто будь-яке слово, складене з елементарних кодів, єдиним способом розкладання на елементарні коди. Очевидно, що алфавітне кодування з роздільною схемою допускає однозначне декодування. Схему σ називають префіксною, якщо для будь-яких i,j (i,j=1,…,r, i<>j) елементарний код βі не є префіксом елементарного коду βj.

Т-ма. Префіксна схема є роздільною.

Т-ма. (Нерівність Макмілана). Якщо схема алфавітного кодування σ роздільна, то

, li=l(βi).

Д-ня. Позначимо L=max{l1,l2,…,lr}. Запишемо r-тий степінь лівої частини нерівності.

r.

Розкривши дужки, отримаємо суму

, де (i1,…,ir) – різні набори номерів елементарних кодів. Позначимо через v(r,m) кількість доданків вигляду 1/2m, які входять у цю суму, тут m= . Для деяких m може бути v(r,m)=0. Зведемо подібні члени й отримаємо суму

. Кожному доданку вигляду можна однозначно спів ставити код вигляду . Це слово складається з r елементарних кодів і має довжину m. Отже, v(r,m) – це к-ть деяких слів вигляду , таких, що l( )=m. Оскільки схема σ роздільна, то v(r,m)<=2m. Можемо записати

. Отже, для кожного r виконується нерівність r<=rL, звідси

22. Задача оптимального кодування. Метод Фано побудови «економних» кодів.

Нехай заданий алфавіт А={a1,..,ar} і розподіл ймовірностей Р=(р1,..,рr) появи букв у повідомленні. Тут рі ймовірність появи букви аі. Не зменшуючи загальності, можна вважати, що

р1>=p2>=…>=pr>0,

тобто можна одразу виключити букви, які не можуть з’явитись у повідомленні, і впорядкувати букви за спаданням ймовірностей їхньої появи. Крім того р1+…+рr=1.

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

Алгоритм Фано:

  1. Упорядковуємо букви алфавіту А за спаданням ймовірностей їхньої появи в повідомленні.

  2. Розбиваємо множину букв, записаних у вказаному порядку, на 2 послідовності так, щоб сумарні ймовірності кожної з них були якомога ближчі одна до одної. Кожній букві з першої частини приписуємо символ 0, другої – 1. Далі так само чинять з кожною частиною, якщо вона містить принаймні 2 букви. Процедуру продовжуємо доти, доки вся множина не буде розбита на окремі букви.

Алгоритм Фано має просту інтерпретацію за допомогою бінарного дерева. Від кореня відходять 2 ребра, одне з яких позначене символом 0, друге – 1. Ці 2 ребра відповідають розбиттю множини всіх букв на 2 майже рівно ймовірні частини, одній з яких спів ставляють символ 0, а другій – 1. Ребра, що виходять із вершин наступного рівня, відповідають розбиттю отриманих частин знову на 2 майже рівно ймовірні послідовні частини. Цей процес продовжують до моменту, коли множина букв буде розбита на окремі букви. Кожний листок дерева відповідає деякому елементарному коді. Щоб записати цей код потрібно пройти простий шлях від кореня до відповідного листка.