Код Хеммінга. Кодування числової інформації
У своєму функціонуванні будь-яка автоматизована система стикається з проблемою адекватного сприйняття даних, чистоти отриманої інформації, знаходження помилок, а також їх виправлень. Чим серйозніше завдання, покладені на об'єкт обробки інформації, тим з більш складною і чутливої системою визначення збійних елементів програмного забезпечення і помилок в потоці інформації доводиться йому працювати.
Одним з варіантів перевірки інформаційного потоку на наявність помилок, і навіть їх виправлення, є кодування числової інформації. Існує безліч кодів і способів, що використовуються при роботі з різними даними. Так званий код Хеммінга є класичним зразком, який став відправною точкою для створення більш складних і витончених способів пошуку та усунення виникають у ході передачі даних помилок.
Історія появи коду починається в середині 1940-х років. У цей час Річард Хеммінга освоював лічильну машину Bell Model V, працюючи в іменитих Bell Labs. Тоді це був ультрасучасний механізм, який використовує електромеханічний принцип дії. У конструкції машинки використовувалися релейні блоки. Їх використання не давало істотного виграшу в швидкості. На здійснення одного обороту було потрібно кілька секунд. Введення даних відбувався за коштами перфокарт, і помилки в процесі їх читання були не рідкістю. В будні дні для виявлення та виправлення знайдених помилок використовувалися спеціальні коди. Машина інформувала оператора світінням лампочок, той у свою чергу виправляв помилку і заново запускав процес обчислення. А от у вихідні дні процес відбувався за іншими правилами. Виявивши помилку, машина автоматично припиняла виконання першої програми і переходила до виконання іншої.
Так як Хеммінга дуже часто доводилося працювати по вихідних днях, його дуже дратувало подібна поведінка обчислювальної машини, адже йому доводилося щоразу перезавантажувати програму над якою він працював, і всьому виною була ненадійність перфокарт. Кілька років йому довелося витратити на побудову максимально ефективних алгоритмів щодо виправлення помилок. В результаті до 1950 року йому вдалося знайти і оприлюднити оптимальний спосіб вирішення даної проблеми, зараз він відомий всьому світу як код Хеммінга.
Вихід, запропонований Річардом Хеммінга, отримав одразу широке поширення. Способи кодування інформації поповнилися кількома великими блоками. Приміром, систематичні коди являють собою велику групу, яка складається з блокових, так званих разделімих кодів (іншими словами тих, в яких всі символи поділяються на інформаційні та перевірочні).
У систематичних кодів є особливість, перевірочні символи є результатом лінійних операцій над символами інформації. При цьому в будь дозволеної кодової комбінації присутня можливість отримання результату з лінійних операцій, вироблених над набором незалежних лінійно кодових комбінацій.
Код Хеммінга являє собою Самоконтролюючою код. Такі коди дозволяють виявляти помилки автоматично в процесі передачі даних. Щоб їх побудувати, необхідно лише приписати до кожного слова один контрольний (додатковий) двійковий розряд. Цифра вибирається з таким розрахунком, щоб у загальній кількості одиниць при зображенні числа було, за умовою, парних.
Якщо виникає одиночна помилка, то вона змінить парність у загальній кількості одиниць.
Коди, що призводять до виправлення помилок в автоматичному режимі, називають самокорегуюча. Для побудови подібного коду вже недостатньо одного контролюючого розряду. Найбільший інтерес являють собою двійкові коди блокові, які є коригуючими.
Підводячи підсумок, можна зробити висновок про те, що код Хеммінга використовує принцип перевірки на парність, де досліджується число одиничних символів.