- •Тема 1. Інформація та інформаційні процеси.
- •1. Повідомлення та інформація.
- •2. Моделі інформаційних систем
- •3. Математичні моделі каналу зв’язку
- •4. Предмет теорії інформації та кодування
- •Тема 2. Вимірювання інформації.
- •1. Основні підходи до вимірювання інформації, їх особливості.
- •2. Технічний (об’ємний) спосіб оцінювання інформації та його застосування в комп’ютерних системах.
- •3. Інформаційний обсяг повідомлення
- •4. Поняття про алгоритмічний підхід до вимірювання інформації.
- •Тема 3. Поняття ентропії інформації. Умовна та безумовна ентропії.
- •1. Кількісна міра інформації.
- •2. Ентропія та її властивості.
- •3. Безумовна ентропія
- •4. Умовна ентропія
- •5. Ентропія об’єднання двох джерел.
- •Тема 4. Методи визначення ентропії.
- •1. Ентропія по Хартлі.
- •2. Ентропія по Шеннону.
- •3. Ентропія по Колмогорову та ентропія 3
- •4. Ентропія по Шульцу та Мідлтону
- •5. Ентропія по Николайчуку. Інші методи визначення ентропії.
- •Тема 5. Характеристика дискретних джерел інформації. Теорема Шеннона.
- •1. Продуктивність дискретного джерела та швидкість передачі інформації
- •2. Інформаційні втрати при передачі інформації по дискретному каналу зв'язку
- •3. Пропускна здатність дискретного каналу. Основна теорема про кодування дискретного джерела.
- •Тема 6. Характеристики неперервних джерел інформації.
- •1. Інформаційні втрати при кодуванні неперервних джерел.
- •2. Продуктивність неперервного джерела та швидкість передачі інформації
- •3. Пропускна здатність неперервного каналу
- •Тема 7. Поняття про коди та кодування.
- •1. Поняття про коди та кодування. Потужність та довжина коду.
- •2. Рівномірні коди. Основна теорема про рівномірні коди.
- •3. Нерівномірні коди
- •4. Основні напрями кодування
- •Тема 8. Основи економного кодування.
- •1. Передавання інформації каналами зв’язку
- •2. Теоретичні основи побудови економних кодів. Перша теорема Шенона
- •3. Алгоритм Шенона—Фано для побудови економного коду
- •Алгоритм кодування за методом Шенона—Фано
- •4. Алгоритм Хаффмена для побудови оптимального коду
- •Алгоритм Хаффмена
- •5. Оптимальні нерівномірні коди і проблеми стискування інформації
- •Тема 9. Нерівномірні двійкові первинні коди.
- •1. Класифікація первинних кодів
- •2. Код Морзе
- •3. Число-імпульсні коди
- •Тема 10. Рівномірні двійкові первинні коди.
- •1. Числові двійкові коди
- •2. Двійково-десяткові коди
- •3. Двійково-десяткові коди з самодоповненням
- •4. Двійково-шістнадцятковий код
- •5. Рефлексні коди
- •Тема 11. Двійкові коди з виявленням помилок.
- •1. Коди з перевіркою на парність та непарність
- •2. Код із простим повторенням
- •3. Інверсний код
- •4. Кореляційний код
- •5. Код зі сталою вагою
- •6. Код із кількістю одиниць в комбінації, кратною трьом
- •Тема 12. Недвійкові коди з виявленням помилок.
- •1. Код з перевіркою за модулем q
- •2. Код із повторенням
- •3. Незвідні змінно-позиційні коди
- •4. Штрихові коди
- •Тема 16. Кодування в системі залишкових класів.
- •1. Побудова кодів у системі залишкових класів, породжених базисом Крестенсона
- •2. Переваги та недоліки кодування у системі залишкових класів
- •3. Ефективність математичних операцій у системі залишкових класів
- •4. Надлишковість та здатність виявляти та виправляти помилки
- •Тема 17. Коди Галуа.
- •1. Методика формування кодів Галуа, їх переваги
- •2. Надлишковість та здатність виявляти та виправляти помилки
3. Алгоритм Шенона—Фано для побудови економного коду
На основі першої теореми Шенона (основної теореми про кодування) логічно виникає питання про побудову такого нерівномірного коду, в якому елементам повідомлення, що трапляються часто, присвоюються більш короткі кодові слова (кодові комбінації), а тим, що трапляються рідше – довші.
Першим, хто це зробив, виходячи з досвіду, був Морзе. Розповідають, що, створюючи свій код, Морзе ходив у найближчу типографію і підраховував число літер у набраних касах. Буквам і знакам, яких у цих касах було заготовлено більше, він зіставляв більш короткі кодові слова (адже ці букви трапляються частіше). Наприклад, в українському варіанті азбуки Морзе буква «Е» передається однією крапкою, а буква «Ш» — чотирма тире.
Ідею Морзе використали сучасні творці нерівномірних кодів, зокрема Шенон, Фано та Хаффмен. Методи побудови нерівномірних кодів уперше запропонували незалежно один від одного Роберт Фано та Клод Шенон.
Код Шенона—Фано є префіксним кодом. Алгоритм побудови цього коду забезпечує пошук вектора Крафта, який наближається до оптимального (але в загальному випадку не є ним ). Основний принцип, який покладено в основу кодування за методом Шенона—Фано, полягає в тому, що при виборі кожного символу кодового повідомлення необхідно прагнути до того, щоб кількість інформації, яка міститься в ньому, була найбільшою. Це означає, щоб незалежно від значень усіх попередніх символів, цей символ приймав обидва можливі для нього значення („0” та „1”) за можливості з однаковою ймовірністю.
Алгоритм кодування за методом Шенона—Фано
Алфавіт джерела повідомлення (букви) упорядковують у послідовності спадання їх ймовірності.
Одержаний список ділять на дві послідовні частини так, щоб суми ймовірностей букв мало відрізнялися одна від одної. Буквам з першої частини приписується символ 0, а буквам другої частини — символ 1. Аналогічна ситуація з кожною з одержаних частин, якщо вони містять принаймні дві букви.
Поділ таким чином триває доти, доки весь список не буде поділено на частини, що містять по одній букві.
Після закінчення такого поділу кожній букві (елементу повідомлення) ставиться у відповідність послідовність символів (нулів та одиниць), приписаних у результаті цього процесу для кожної букви.
Одержані двійкові послідовності приймають за шукані кодові слова (кодові комбінації)
Приклад. Абстрактний алфавіт з ймовірностями появи його букв у тексті, подано матрицею:
Побудувати відповідний йому код Шенона —Фано.
Процес побудови коду подано у таблиці 6.
Т
Згідно з даними таблиці одержуємо:
а1
(111)
а2 (01)
а3 (00)
а4 (110)
а5 (10)
аблиця 6
а3 – 0.25 а2 – 0.24 |
0 |
0 |
|
1 |
|
||
а5 – 0.23 а4 – 0.15 а1 – 0.13 |
1 |
0 |
|
1 |
0 |
||
1 |
Процес побудови цього коду можна подати в вигляді кодового дерева
У даному випадку:
1) ентропія джерела
2)
надлишковість джерела
3) середнє число символів в коді
Середнє число символів у коді називають ще коефіцієнтом економічності, або коефіцієнтом ефективності коду.
4) надлишковість коду
Отже, для коду Шенона—Фано середня кількість двійкових символів, що припадає на символ джерела, наближається до ентропії джерела, але не дорівнює їй.
Цей підтверджений прикладом результат є наслідком теореми кодування без перешкод (шуму) для джерела (першоа теорема Шенона).
Обчислимо за співвідношенням (3.7) значення вектора Крафта
Отже, даний конкретний код є оптимальним.
Зауважимо, що розглянутий метод Шенона—Фано не завжди приводить до побудови однозначного коду. Хоча у верхній підгрупі середня ймовірність символа більша (і тому кодові слова повинні бути коротшими), можливі ситуації, за яких програма зробить довшими коди деяких символів з верхніх підгруп, а не коди символів з нижніх підгруп. Так, поділяючи множину символів на підгрупи, можна зробити більшою по ймовірності як верхню, так і нижню підгрупи.
