You are on page 1of 7

МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ

Національний авіаційний університет


Факультет кібербезпеки, комп’ютерної та програмної інженерії
Кафедра комп’ютерних систем та мереж

ЗВІТ
лабораторної роботи №4
з дисципліни: «Моделювання комп’ютерних систем»
На тему: «Діагностика 6-го рівня EMBBC – підфункція 6.b2 «Ефективне
кодування даних» функції 6.b «Представлення абстрактного
синтаксису»: інструментарій побудови кодів по Хаффману та Шеннону-
Фано.

Роботу виконав:
студент групи КС-431
Зайцев М.Р.
Роботу перевірив:
Печурін М.К.

Київ 2023
Мета роботи: Оволодіння основними навичками процедур
дослідження комп’ютерних систем, мереж та їх компонентів, з проблемами
аналізу складних технічних об’єктів, проблемою оцінювання якості
виконання підфункції (послуги) 6.b2 «Ефективне кодування даних» функції
6.b «Представлення абстрактного синтаксису» інструментарієм метод
економного кодування Хаффмана та Шеннона-Фано.

Хід виконання роботи


1. Визначення варіанту:
Для визначення варіанту розраховуємо значення бітів, для цього
спочатку перекладаємо прізвище англійською. Прізвище Зайцев англійською
мовою (великими літерами) записується наступним чином – ZAYTSEV, після
чого перші три букви кодуються ASCII-кодом:
BA(16)A1(16)B9(16).
Тепер на основі отриманого коду формуємо допоміжний код прізвища,
виписуючи друге, четверте та шосте число:
A, 1, 9.
Отримані числа переводимо в десяткову систему числення:
A = 10, 1 = 1, 9 = 9.
Після цього переводимо отримані числа в двійкову систему числення (4
розряди з молодшим розрядом справа):
10 = 1010, 1 = 0001, 9 = 1001.
Праві десять бітів переписаного коду утворюють код варіанту:
10{1000011001}(2).
Код варіанту породжує значення допоміжних змінних: перший зліва
двійковий розряд коду варіанту породжує значення допоміжної змінної h10,
другий – змінної h9 тощо.
H10 H9 H8 H7 H6 H5 H4 H3 H2 H1
1 0 0 0 0 1 1 0 0 1
𝑚 = 3 + ℎ1 + ℎ2 + ℎ3 + ℎ4 + ℎ5 + ℎ6 + ℎ7 + ℎ8 + ℎ9 + ℎ10 = 7;

2. Опис об’єкту дослідження:


Марка Смітанін Весоненко Калашнік Дехтяр Макарро Хулит Пеккер Локхов
компо-
нента
комп’ю-
терної
системи
Символ, C B K D M X P L
що
переда-
ється при
відмові
Кіль- 32+m 28-m 29+m 34-m 19+m 42-m 14+m 35-m
кість
символів
про
відмови,
які
переда-
вались
протя-
гом
всього
переду-
ючого
поточног
о року

Таблиця згідно варіанта:


Марка Смітанін Весоненко Калашнік Дехтяр Макарро Хулит Пеккер Локхов
компо-
нента
комп’ю-
терної
системи
Символ, C B K D M X P L
що
переда-
ється при
відмові

Кіль- 39 21 36 27 26 35 21 28
кість
символів
про
відмови,
які
переда-
вались
протя-
гом
всього
переду-
ючого
поточног
о року

Визначення ймовірності появи символу кодового слова:


𝒑𝑪 = 39/233 = 0,17;
𝒑𝑩 = 21/233 = 0,09;
𝒑𝑲 = 36/233 = 0,15;
𝒑𝑫 = 27/233 = 0,12;
𝒑𝑴 = 26/233 = 0,11;
𝒑𝑿 = 35/233 = 0,15;
𝒑𝑷 = 21/233 = 0,09;
𝒑𝑳 = 28/233 = 0,12.

3. Приклади алгоритмів кодування Шеннона-Фано та Хаффмана.


Приклад алгоритму кодування Шеннона-Фано:

Приклад алгоритму кодування Хаффмана:


4. Кодування слова за алгоритмом Шеннона-Фано:

5. Кодування слова за алгоритмом Хаффмана:

6. Результати кодування за трьома алгоритмами:


ASCII Шеннона-Фано Хаффмана
C 0100 0011 011 0
B 0100 0010 010 1111110
K 0100 1011 111 10
D 0100 0100 000 1110
M 0100 1101 110 111110
X 0101 1000 101 110
P 0101 0000 100 1111111
L 0100 1100 001 11110
7. Порівння середньої довжини кодового слова при різних методах
кодування.
Загальна формула:
[Середня довжина кодового слова] = ∑𝑖 (𝑝𝑖 ∙ 𝑙𝑖 ), де
𝑙𝑖 – довжина i-го кодового слова,
𝑝𝑖 – ймовірність появи i-го кодового слова.
Розрахунок середньої довжини кодового слова для алгоритму
ASCII:
𝒑𝒊 ∙ 𝒍𝒊
C 1,36
B 0,72
K 1,2
D 0,96
M 0,88
X 1,2
P 0,72
L 0,96
∑𝟖 8

Розрахунок середньої довжини кодового слова для алгоритму


Шеннона-Фано:
𝒑𝒊 ∙ 𝒍𝒊
C 0,51
B 0,27
K 0,45
D 0,36
M 0,33
X 0,45
P 0,27
L 0,36
∑𝟖 3

Розрахунок середньої довжини кодового слова для алгоритму


Хаффмана:
𝒑𝒊 ∙ 𝒍𝒊
C 0,17
B 0,63
K 0,3
D 0,48
M 0,66
X 0,45
P 0,63
L 0,6
∑𝟖 3,92

Згідно результатів середньої довжини кодового слова для трьох


алгоритмів, найвигідніше використовувати слово, що закодоване за
алгоритмом Шеннона-Фано.

Висновок
В ході виконання даної лабораторної роботи я набув навичок процедур
дослідження комп’ютерних систем, мереж та їх компонентів, з проблемами
аналізу складних технічних об’єктів, проблемою оцінювання якості
виконання підфункції 6.b2 «Ефективне кодування даних» 6.b «Представлення
абстрактного синтаксису», що застосовується для дослідження об’єктів
комп’ютерної інженерії. Також під час виконання роботи було набуто
навички кодування за алгоритмами Шеннона-Фано та Хаффмана.

You might also like