- •7.100402 «Транспорті системи»
- •1. Основні поняття та етапи розвитку інформаційних систем та технологій
- •1.1 Етапи розвитку інформаційних технологій
- •1.2 Інформаційні системи
- •1.3. Структура іс
- •1.4. Класифікація іс
- •2.3. Мережева модель даних
- •2.4. Реляційна модель даних
- •2. Бази даних
- •2.1. Інформаційні моделі даних
- •2.2. Ієрархічна модель даних
- •Тобто кожний атрибут приймає значення з одного з 4-х доменів.
- •3. Реляційні бази даних
- •3.1. Первинний ключ (суперключ) відношення
- •3.2. Можливий (потенційний) ключ відношення
- •3.3. Чужий (зовнішній) ключ відношення
- •4. Проектування реляційної бази даних
- •4.1. Цілі проектування рбд
- •4.2. Універсальне відношення
- •4.2.1. Поняття форми відношення. Перша нормальна форма
- •4.2.2. Проблеми, що можуть виникнути під час роботи з погано запроектованою рбд
- •4.3. Нормалізація відношення
- •4.3.1. Нормальна форма Бойса-Кодда
- •4.3.2. Функціональні залежності
- •4.4.1. Поняття сутності та зв’язку
- •4.4.2. Тип зв’язку
- •4.5. Побудова попередніх відношень
- •4.5.1. Правило №1
- •4.5.2. Правило №2
- •4.5.3. Правило №3
- •4.5.4. Правило №4
- •4.5.5. Правило №5
- •4.5.6. Правило №6
- •4.6. Перевірка отриманих відношень.
- •5 Теорія інформації
- •5.1 Основні поняття теорії інформації
- •5.2 Одиниці виміру ступеню невизначеності системи. Властивості ентропії
- •5.3 Ентропія та інформація
- •5.4 Кодування дискретних повідомлень
- •5.5 Способи перетворювання кодів
- •5.6 Ентропія як міра кількості інформації
- •5.7 Класифікація (двійкових) кодів
- •5.7.1. Ненадлишкові коди
- •5.7.2. Надлишкові коди
- •5.7.2.1. Коди з виявленням помилок
- •5.7.2.2 Коди з виправленням помилок
- •6. Системи класифікації і кодування інформації
- •6.1 Класифікатори
- •6.2 Методи класифікації об’єктів
- •6.3 Система та методи ідентифікаційного кодування інформації
- •6.4 Захист ідентифікаційних кодів від помилок
- •6.4.1 Захист від помилок коду станції
- •6.4.2 Захист від помилок інвентарного номера вагона
- •6.5 Уніфікована система документації. Документообіг
5.7 Класифікація (двійкових) кодів
За
кількістю дозволених кодових комбінацій
коди поділяють на ненадлишкові
(коли
)
й надлишкові
(коли
<
)
. Тут
–
кількість дозволених кодових комбінацій
(тих, що застосовані для кодування
символів повідомлень).
5.7.1. Ненадлишкові коди
В ненадлишкових кодах дозволені всі можливі кодові комбінації N0, що можуть бути складені з n двійкових розрядів (біт), тобто загальна кількість кодових комбінацій дорівнює числу поєднань з двох кодових символів по n штук (N0=2n). Тому будь-яке перекручування через перешкоди одного з кодових символів в кодовому слові викликає помилку, тому, що кодове слово перетворюється в деяке інше допустиме кодове слово. Таким чином приймач прийме повідомлення з помилкою. Тобто ненадлишкові коди не дозволяють виявляти помилки.
Ненадлишкові коди бувають рівномірні і нерівномірні.
В рівномірних кодах усі кодові комбінації мають однакову довжину і тому при передачі повідомлень не потрібно відокремлювати одну кодову комбінацію від іншої.
Прикладом рівномірного коду є телеграфний код, за допомогою якого передають 32 символи кириліці. Код має основу m=2, загальна кількість кодових слів N0=25=32, довжина кодового слова n=log32=log25=5 біт.
Код складається із 5 символів двійкового алфавіту (0,1). Всього з урахуванням цифр і знаків є потреба передавати 54 символи, тому під час передачі повідомлень використовують регістрові кодові комбінації, що настроюють приймач на прийом букв або цифр.
В комп’ютерних мережах використовується восьмирозрядний двійковий код (n=8 біт, N0=28=256). Однак вже відчутна нестача кодових слів для кодування символів у 8‑розрядних ЕОМ.
Виникає проблема кодування символів національних алфавітів. Двохсот п’ятдесяти шести символів недостатньо для того, щоб закодувати усі необхідні символи повідомлень. У зв’язку з цим, кодами деяких основних символів кодуються додаткові символи національних алфавітів, а при розкодуванні утворюються неоднозначності. Ця проблема особливо яскраво виявляється при прийомі повідомлень із Інтернету.
Для розв’язання проблеми впроваджується 16-бітовий код, спроможний закодувати N0=216=65536 символів.
Рівномірні коди не завжди є оптимальними за числом розрядів, що припадають на один переданий символ. Як це зрозуміти?
Наприклад, для передачі десяткових цифр потрібний 4-бітовий рівномірний код: 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001. Але ентропія десяткової цифри не 4 біта, а
біта.
Звідси виникла ідея використання нерівномірних кодів, у котрих одні символи (наприклад ті, які часто зустрічаються в повідомленнях) кодують більш короткими кодовими комбінаціями, а решту (ті, що рідко зустрічаються в повідомленнях) – більш довгими. І таким чином можна скласти оптимальний нерівномірний код, у якому враховуються статистичні дані про частоту появи тих або інших символів у переданих повідомленнях.
Як приклад нерівномірного коду розглянемо код Хаффмена для кодування десяткових цифр
0~000 2~010 4~100 6~1100(0110) 8~1110(1000)
1~001 3~011 5~101 7~1101(0111) 9~1111(1001).
У середньому для запису кодом Хаффмена однієї десяткової цифри потрібно
біта.
Це майже дорівнює ентропії десяткової цифри 3,32 біта.
Чому не 3,32 біта? Тому що нерівномірні коди мають бути префіксними, коли жодна кодова комбінація не є початком іншої, що дозволяє зчитувати повідомлення, записані без відокремлень одне від одного, за допомогою спеціального алгоритму.
Алгоритм розпізнавання змісту повідомлень, закодованих кодом Хаффмена: виділяють два старших біта; якщо це «11» – то це тетрада (в кодовому слові 4 біта), інакше – це тріада. В такому вигляді повідомлення передаються каналами зв’язку. Після передачі повідомлення вже на приймачі в тріадах доповнюють 0-й старший біт, а тетради спеціальним чином також перетворюють у двійковий код.
До речі, рівномірні коди є префіксними за визначенням. Але щоб нерівномірні коди стали префіксними використовують специфічні прийоми на кшталт складання алгоритмів розпізнавання змісту повідомлень, наведеному вище.
