- •1.1.1. Поняття множини
- •1.1.2. Елементи множини
- •1.1.3. Рівність множин
- •1.1.4. Задання та запис множин
- •1.1.5. Підмножини. Універсальна множина.
- •1.1.6. Операції над множинами та їхні властивості
- •Доведемо обернене включення:.
- •1.1.7. Потужність множин
- •Література
- •1.2.2. Декартовий (прямий) добуток множин
- •1.2.3. Бінарні відношення
- •1.2.4. Переріз відношення. Фактор-множина
- •1.2.5. Способи задання відношень
- •Література
- •Тема 1.3. Властивості відношень
- •1.3.1. Теоретико-множинні операції над відношеннями
- •1.3.2. Композиція відношень
- •1.3.3. Обернені відношення
- •1.3.4. Рефлексивні, симетричні і транзитивні відношення
- •1.3.5. Відношення еквівалентності
- •1.3.6. Відношення порядку
- •1.3.7. Відображення і функції
- •Література
- •Розділ 2. Теорія графів
- •Тема 2.1. Основні елементи теорії графів
- •2.1.1. Поняття графа
- •2.1.2. Ізоморфізм графів. Підграф. Суграф. Частковий граф
- •2.1.3. Числові характеристики графа
- •2.1.4. Маршрути незамкнені (ланцюги, шляхи) і замкнені (цикли, контури). Повнота. Зв’язність. Сильна зв’язність
- •2.1.5. Способи задання графа
- •Література
- •Тема 2.2. Операції над графами
- •2.2.1. Поняття графа
- •Тема 2.3. Дерева і цикли у графах
- •2.3.1. Компоненти зв’язності
- •Розглянемо незв’язний неорієнтований граф .
- •Отже, наведений на прикладі граф має три компоненти зв’язності.
- •2.3.2. Ранг та цикломатичне число графа
- •Якщо граф – вироджений, тобто має лише вершини, а ребра – відсутні, то і. За теоремою 2.3.2 додавання нового ребра збільшує або, або. Отже, числатаможуть лише зростати.
- •2.3.3. Дерева і ліси
- •Література
- •Тема 2.4. Розфарбування графа
- •2.4.1. Задача про чотири фарби. Правильне розфарбування графа
- •2.5.2. Визначення хроматичного числа. Хроматичний поліном
- •Література
- •Розділ 3. Загальна алгебра
- •Тема 3.1. Групи
- •3.1.1. Поняття алгебраїчної операції
- •3.1.2. Означення і приклади груп
- •Література
- •Тема 3.3. Поля
- •3.3.1. Означення поля. Приклади полів
- •3.3.2. Властивості полів
- •Література
- •Розділ 4.
- •Тема 4.1 булева алгебра
- •4.1.1 Визначення булевої функції
- •4.1.2. Формули логіки булевих функцій
- •4.1.3. Рівносильні перетворення формул
- •Основні правил булевих формул.
- •Правило рівносильних перетворень
- •4.1.4. Двоїстість. Принцип двоїстості.
- •4.1.5. Булева алгебра (алгебра логіки). Повні системи булевих функцій
- •Література
- •Тема 4.2. Нормальні форми
- •4.2.2 Розкладання булевої функції по змінним
- •Література
- •Тема 4.3. Мінімізація формул булевих функцій у класі диз'юнктивних нормальних форм
- •4.3.1. Застосування алгебри булевих функцій до релейно-контактних схем
- •Контрольні питання до теми 4
- •Література
- •Розділ 5.Комбінаторний аналіз
- •Тема 5.1. Основні поняття комбінаторного аналізу
- •5.1.1. Основні правила комбінаторики
- •Розв’язання
- •5.1.2. Розміщення. Розміщення з повтореннями
- •Розв’язання
- •Розв’язання
- •5.1.3. Перестановки. Перестановки з повтореннями
- •Розв’язання
- •Розв’язання
- •5.1.4. Комбінації. Комбінації з повтореннями
- •Розв’язання
- •Розв’язання
- •Розв’язання
- •5.1.6. Біном Ньютона. Трикутник Паскаля. Властивості біноміальних коефіцієнтів
- •Література
- •Розділ 6.Теорія інформації та кодування
- •Тема 6.1. Теоретичні положення
- •1.2. Приклади розв’язання задач
- •6.3. Задачі
- •Література
- •7. Ефективне кодування
- •7.1. Теоретичні положення
- •7.2. Приклади розв’язання задач
- •Задача 7.2.2
- •Задача 7.2.5
- •1010000011001010011001001011110.
- •0001011011011101100110101100001011011.
- •7.3. Задачі
- •Література
1010000011001010011001001011110.
Довжина двійкової послідовності дорівнює 31.
Задача 7.2.6
Розробити марковський алгоритм кодування для марковського джерела з алфавітом {A,B,C} та глибиною пам’яті h = 1. Умовні ймовірності виникнення символів задаються матрицею
-
.
Знайти відносну різницю між середньою довжиною кодової комбінації ефективного коду та ентропією джерела. Закодувати послідовність довжиною у 30 символів
АСАСВАСВАСВАВАВВАСВВАССАСВАСВА,
яку згенерувало джерело.
Розв’язання. Оскільки глибина пам’яті h = 1, кількість Q станів джерела дорівнює потужності його алфавіт, тобто Q = 3. Для кожного стану, який визначається попереднім символом на виході джерела, будуємо нерівномірний код. Застосовуючи методику Хаффмена або Шеннона-Фано, легко отримати коди, що наведені в таблицях.
Після символу А :
Таблиця 7.9
Символ, що очікується |
Умовна ймовірність |
Кодова комбінація (КК) |
Довжина КК |
А |
p(A/A) = 0,15 |
11 |
2 |
В |
p(B/A) = 0,10 |
10 |
2 |
С |
p(C/A) = 0,75 |
0 |
1 |
Після символу В :
Таблиця 7.10
Символ, що очікується |
Умовна ймовірність |
Кодова комбінація (КК) |
Довжина КК |
А |
p(A/B) = 0,85 |
1 |
1 |
В |
p(B/B) = 0,10 |
01 |
2 |
С |
p(C/B) = 0,05 |
00 |
2 |
Після символу С :
Таблиця 7.11
Символ, що очікується |
Умовна ймовірність |
Кодова комбінація (КК) |
Довжина КК |
А |
p(A/C) = 0,15 |
01 |
2 |
В |
p(B/C) = 0,70 |
1 |
1 |
С |
p(C/C) = 0,15 |
00 |
2 |
Знайдемо значення lcep / A середньої довжини кодової комбінації для коду, який застосовується після символу А :
lcep / A = lA/A p(A/A) + lB /A p(B/A) + lC /A p(C/A) =
= 2 0,15 + 2 0,10 +1 0,75 = 1,25;
тут lA/A , lB/A , lC/A – довжини кодових комбінацій для кодування відповідно символів А, В, С коду, який застосовується після символу А. Аналогічно отримаємо значення lcep / B , lcep / C середніх довжин кодових комбінацій для кодів, що застосовуються після символів В та С відповідно:
lcep / B = 1,15; lcep / C = 1,3.
Середня довжина lcep кодової комбінації при застосуванні марковського алгоритму
lcep = lcep /A р(А) + lcep /B р(B) + lcep /C р(C),
де р(А), р(В), р(С) – безумовні ймовірності появи символів А, В, С на виході джерела.
У задачі 7.2.6 розглянута методика їх отримання. Застосовуючи її, знаходимо
р(А) = 0,361; р(В) = 0,302; р(С) = 0,337.
Тоді
lcep = 1,237.
Ентропія джерела ( див. задачу 7.2.6 )
H = 1,004 біт.
Відносна різниця між lcep та Н становить
[(1,237 – 1,004) / 1,004] 100% = 23,2% .
Закодуємо послідовність символів, наведену в умовах задачі. Таблиці 7.9 – 7.11 дають змогу виконати таке кодування. Виняток становить перший символ, оскільки незрозуміло, який для нього використовувати код. Є декілька шляхів побудови такого коду. Найпростіший – застосування рівномірного коду, наприклад, такого: A – 00; B – 01; C – 10. Більш раціональний – ефективний код, побудований з урахуванням безумовних ймовірностей появи символів. Один із варіантів такого коду A – 0; B – 11; C – 10. Обираючи цей варіант для кодування першого символу та застосовуючи коди таблиць 7.9 – 7.11 для подальших символів, отримаємо